.include "asm/macros.inc" .include "global.inc" .section .text .balign 4, 0 thumb_func_start MOD17_021D74E0 MOD17_021D74E0: ; 0x021D74E0 push {r3, r4, r5, r6, r7, lr} add r7, r1, #0 add r5, r0, #0 add r0, r7, #0 mov r1, #8 bl FUN_02016998 lsl r6, r5, #3 add r4, r0, #0 add r0, r7, #0 add r1, r6, #0 bl FUN_02016998 mov r1, #0 add r2, r6, #0 str r0, [r4] bl Call_FillMemWithValue str r5, [r4, #4] add r0, r4, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD17_021D74E0 thumb_func_start MOD17_021D750C MOD17_021D750C: ; 0x021D750C push {r4, lr} add r4, r0, #0 ldr r0, [r4] bl FUN_02016A18 add r0, r4, #0 bl FUN_02016A18 pop {r4, pc} .align 2, 0 thumb_func_end MOD17_021D750C thumb_func_start MOD17_021D7520 MOD17_021D7520: ; 0x021D7520 push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, [r5] bl MOD17_021D76E0 add r4, r0, #0 bne _021D7532 bl ErrorHandling _021D7532: ldr r0, [r5, #0x18] str r0, [r4] add r0, r5, #0 bl MOD17_021D770C str r0, [r4, #4] add r0, r4, #0 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD17_021D7520 thumb_func_start MOD17_021D7544 MOD17_021D7544: ; 0x021D7544 push {r3, lr} add r1, sp, #0 bl MOD17_021D7740 add r0, sp, #0 bl FUN_02020A40 pop {r3, pc} thumb_func_end MOD17_021D7544 thumb_func_start MOD17_021D7554 MOD17_021D7554: ; 0x021D7554 push {r4, r5, r6, r7, lr} sub sp, #0xc add r4, r0, #0 add r6, r1, #0 str r2, [sp] add r7, r3, #0 bl MOD17_021D7544 cmp r0, #0 bne _021D756E add sp, #0xc mov r0, #0 pop {r4, r5, r6, r7, pc} _021D756E: add r0, r4, #0 add r1, sp, #8 add r2, sp, #4 bl MOD17_021D7600 ldr r0, _021D75D8 ; =0x021C48F8 ldr r1, [sp, #8] ldrh r2, [r0, #0x1c] sub r1, r2, r1 str r1, [r6] ldrh r1, [r0, #0x1e] ldr r0, [sp, #4] sub r1, r1, r0 ldr r0, [sp] sub r4, r1, #4 str r1, [r0] add r0, r1, #4 cmp r4, r0 bge _021D75D2 _021D7594: cmp r4, #0 blt _021D75C6 ldr r0, [r6] sub r5, r0, #4 add r0, r0, #4 cmp r5, r0 bge _021D75C6 _021D75A2: cmp r5, #0 blt _021D75BC add r0, r7, #0 add r1, r5, #0 add r2, r4, #0 mov r3, #0 bl MOD17_021D7B0C cmp r0, #0 bne _021D75BC add sp, #0xc mov r0, #1 pop {r4, r5, r6, r7, pc} _021D75BC: ldr r0, [r6] add r5, r5, #1 add r0, r0, #4 cmp r5, r0 blt _021D75A2 _021D75C6: ldr r0, [sp] add r4, r4, #1 ldr r0, [r0] add r0, r0, #4 cmp r4, r0 blt _021D7594 _021D75D2: mov r0, #0 add sp, #0xc pop {r4, r5, r6, r7, pc} .align 2, 0 _021D75D8: .word 0x021C48F8 thumb_func_end MOD17_021D7554 thumb_func_start MOD17_021D75DC MOD17_021D75DC: ; 0x021D75DC push {r3, r4, r5, lr} add r5, r1, #0 add r4, r2, #0 add r1, sp, #0 bl MOD17_021D7740 add r0, sp, #0 add r1, r5, #0 add r2, r4, #0 bl FUN_02020AE8 pop {r3, r4, r5, pc} thumb_func_end MOD17_021D75DC thumb_func_start MOD17_021D75F4 MOD17_021D75F4: ; 0x021D75F4 ldr r3, _021D75FC ; =0x02013EC5 ldr r0, [r0, #4] bx r3 nop _021D75FC: .word 0x02013EC5 thumb_func_end MOD17_021D75F4 thumb_func_start MOD17_021D7600 MOD17_021D7600: ; 0x021D7600 push {r3, r4, r5, lr} sub sp, #8 ldr r0, [r0, #4] add r5, r1, #0 add r4, r2, #0 bl FUN_02013ECC add r1, sp, #0 strh r0, [r1] lsr r0, r0, #0x10 strh r0, [r1, #2] ldrh r0, [r1] strh r0, [r1, #4] ldrh r0, [r1, #2] strh r0, [r1, #6] mov r0, #4 ldrsh r0, [r1, r0] str r0, [r5] mov r0, #6 ldrsh r0, [r1, r0] str r0, [r4] add sp, #8 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD17_021D7600 thumb_func_start MOD17_021D7630 MOD17_021D7630: ; 0x021D7630 push {r3, r4, r5, lr} sub sp, #8 ldr r0, [r0, #4] add r5, r1, #0 add r4, r2, #0 bl FUN_02013EF0 add r1, sp, #0 strh r0, [r1] lsr r0, r0, #0x10 strh r0, [r1, #2] ldrh r0, [r1] strh r0, [r1, #4] ldrh r0, [r1, #2] strh r0, [r1, #6] mov r0, #4 ldrsh r0, [r1, r0] str r0, [r5] mov r0, #6 ldrsh r0, [r1, r0] str r0, [r4] add sp, #8 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD17_021D7630 thumb_func_start MOD17_021D7660 MOD17_021D7660: ; 0x021D7660 ldr r3, _021D7668 ; =0x02013EB1 ldr r0, [r0, #4] bx r3 nop _021D7668: .word 0x02013EB1 thumb_func_end MOD17_021D7660 thumb_func_start MOD17_021D766C MOD17_021D766C: ; 0x021D766C ldr r3, _021D7674 ; =0x02013EFD ldr r0, [r0, #4] bx r3 nop _021D7674: .word 0x02013EFD thumb_func_end MOD17_021D766C thumb_func_start MOD17_021D7678 MOD17_021D7678: ; 0x021D7678 ldr r3, _021D7680 ; =0x02013F01 ldr r0, [r0, #4] bx r3 nop _021D7680: .word 0x02013F01 thumb_func_end MOD17_021D7678 thumb_func_start MOD17_021D7684 MOD17_021D7684: ; 0x021D7684 push {r3, r4, r5, lr} sub sp, #8 add r5, r1, #0 add r4, r2, #0 add r1, sp, #4 add r2, sp, #0 bl MOD17_021D7630 ldr r0, [sp, #4] cmp r0, #0x10 beq _021D76A4 cmp r0, #0x20 beq _021D76AA cmp r0, #0x40 beq _021D76B0 b _021D76B4 _021D76A4: mov r0, #0 str r0, [r5] b _021D76B4 _021D76AA: mov r0, #0xa str r0, [r5] b _021D76B4 _021D76B0: mov r0, #0x14 str r0, [r5] _021D76B4: ldr r0, [sp] cmp r0, #0x10 beq _021D76C6 cmp r0, #0x20 beq _021D76CE cmp r0, #0x40 beq _021D76D6 add sp, #8 pop {r3, r4, r5, pc} _021D76C6: mov r0, #0 add sp, #8 str r0, [r4] pop {r3, r4, r5, pc} _021D76CE: mov r0, #0xa add sp, #8 str r0, [r4] pop {r3, r4, r5, pc} _021D76D6: mov r0, #0x14 str r0, [r4] add sp, #8 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD17_021D7684 thumb_func_start MOD17_021D76E0 MOD17_021D76E0: ; 0x021D76E0 push {r3, r4} ldr r4, [r0, #4] mov r1, #0 cmp r4, #0 ble _021D7704 ldr r3, [r0] add r2, r3, #0 _021D76EE: ldr r0, [r2, #4] cmp r0, #0 bne _021D76FC lsl r0, r1, #3 add r0, r3, r0 pop {r3, r4} bx lr _021D76FC: add r1, r1, #1 add r2, #8 cmp r1, r4 blt _021D76EE _021D7704: mov r0, #0 pop {r3, r4} bx lr .align 2, 0 thumb_func_end MOD17_021D76E0 thumb_func_start MOD17_021D770C MOD17_021D770C: ; 0x021D770C push {r3, lr} sub sp, #0x20 ldr r1, [r0, #4] mov r3, #0 str r1, [sp] ldr r1, [r0, #8] str r1, [sp, #4] ldr r1, [r0, #0xc] str r1, [sp, #8] ldr r2, [r0, #0x10] add r1, sp, #0 strh r2, [r1, #0xc] ldr r2, [r0, #0x14] strh r2, [r1, #0xe] strh r3, [r1, #0x10] mov r2, #0x1f str r2, [sp, #0x14] str r3, [sp, #0x18] ldr r0, [r0, #0x1c] strh r0, [r1, #0x1c] add r0, sp, #0 bl FUN_02013E84 add sp, #0x20 pop {r3, pc} .align 2, 0 thumb_func_end MOD17_021D770C thumb_func_start MOD17_021D7740 MOD17_021D7740: ; 0x021D7740 push {r3, r4, r5, lr} sub sp, #0x10 add r5, r0, #0 ldr r0, [r5, #4] add r4, r1, #0 bl FUN_02013ECC add r1, sp, #0 strh r0, [r1, #4] lsr r0, r0, #0x10 strh r0, [r1, #6] ldrh r0, [r1, #4] strh r0, [r1, #0xc] ldrh r0, [r1, #6] strh r0, [r1, #0xe] ldr r0, [r5, #4] bl FUN_02013EF0 add r1, sp, #0 strh r0, [r1] lsr r0, r0, #0x10 strh r0, [r1, #2] ldrh r0, [r1] strh r0, [r1, #8] ldrh r0, [r1, #2] strh r0, [r1, #0xa] mov r0, #0xe ldrsh r2, [r1, r0] mov r0, #0xa strb r2, [r4] ldrsh r0, [r1, r0] add r0, r2, r0 strb r0, [r4, #1] mov r0, #0xc ldrsh r2, [r1, r0] mov r0, #8 strb r2, [r4, #2] ldrsh r0, [r1, r0] add r0, r2, r0 strb r0, [r4, #3] add sp, #0x10 pop {r3, r4, r5, pc} thumb_func_end MOD17_021D7740 thumb_func_start MOD17_021D7794 MOD17_021D7794: ; 0x021D7794 push {r3, lr} bl MOD17_021D7D08 bl MOD17_021D7D28 bl MOD17_021D7DB0 ldr r0, _021D77B0 ; =0x021C4918 mov r1, #1 strb r1, [r0, #5] bl FUN_0201E7A0 pop {r3, pc} nop _021D77B0: .word 0x021C4918 thumb_func_end MOD17_021D7794 thumb_func_start MOD17_021D77B4 MOD17_021D77B4: ; 0x021D77B4 push {r3, lr} ldr r0, _021D77D0 ; =0x021C4918 mov r1, #0 strb r1, [r0, #5] bl FUN_0201E7A0 bl MOD17_021D7E0C bl MOD17_021D7E00 bl GX_ResetBankForTex pop {r3, pc} nop _021D77D0: .word 0x021C4918 thumb_func_end MOD17_021D77B4 thumb_func_start MOD17_021D77D4 MOD17_021D77D4: ; 0x021D77D4 push {r3, r4, r5, lr} sub sp, #0x10 ldr r5, _021D7824 ; =0x021DE274 add r3, sp, #0 add r4, r0, #0 add r2, r3, #0 ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} add r0, r4, #0 add r1, r2, #0 bl MOD17_021D7E1C mov r2, #0xa add r0, r4, #0 mov r1, #0xe lsl r2, r2, #0xa mov r3, #0x20 bl MOD17_021D82E4 add r0, r4, #0 bl MOD17_021D8088 add r0, r4, #0 mov r1, #0xd bl MOD17_021D82B8 add r0, r4, #0 bl MOD17_021D80CC mov r0, #0xe bl FUN_02016B94 str r0, [r4, #0x38] add r0, r4, #0 bl MOD17_021D7F34 add sp, #0x10 pop {r3, r4, r5, pc} .align 2, 0 _021D7824: .word 0x021DE274 thumb_func_end MOD17_021D77D4 thumb_func_start MOD17_021D7828 MOD17_021D7828: ; 0x021D7828 push {r4, lr} add r4, r0, #0 bl MOD17_021D82D4 add r0, r4, #0 bl MOD17_021D7E58 add r0, r4, #0 bl MOD17_021D8058 ldr r0, [r4, #0x38] bl FUN_02016A18 add r0, r4, #0 bl MOD17_021D834C add r0, r4, #0 bl MOD17_021D816C add r0, r4, #0 bl MOD17_021D80B4 ldr r0, [r4, #4] bl FUN_02016A18 mov r0, #0 str r0, [r4, #4] ldr r0, [r4, #0x10] bl FUN_02016A18 mov r0, #0 str r0, [r4, #0x10] pop {r4, pc} .align 2, 0 thumb_func_end MOD17_021D7828 thumb_func_start MOD17_021D786C MOD17_021D786C: ; 0x021D786C push {r4, lr} add r4, r0, #0 bl FUN_020222AC bl FUN_020B02C8 ldr r0, [r4, #0x1c] cmp r0, #0 beq _021D7884 add r0, r4, #0 bl MOD17_021D7E68 _021D7884: ldr r0, [r4, #0x24] cmp r0, #0 beq _021D7890 ldr r0, [r4, #0x20] bl FUN_02006ED4 _021D7890: mov r0, #0 add r1, r0, #0 bl FUN_020222B4 add r0, r4, #0 bl MOD17_021D8194 pop {r4, pc} thumb_func_end MOD17_021D786C thumb_func_start MOD17_021D78A0 MOD17_021D78A0: ; 0x021D78A0 push {r3, r4, r5, lr} add r4, r1, #0 ldr r1, [r4] ldr r2, [r4, #4] add r5, r0, #0 bl MOD17_021D7E74 ldr r1, [r4, #8] ldr r2, [r4, #0xc] add r0, r5, #0 bl MOD17_021D7ED4 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD17_021D78A0 thumb_func_start MOD17_021D78BC MOD17_021D78BC: ; 0x021D78BC push {r4, lr} add r4, r0, #0 ldr r0, [r4] bl FUN_02013DEC ldr r0, [r4] bl FUN_02013E5C pop {r4, pc} .align 2, 0 thumb_func_end MOD17_021D78BC thumb_func_start MOD17_021D78D0 MOD17_021D78D0: ; 0x021D78D0 push {r4, r5, r6, lr} sub sp, #0x70 add r5, r0, #0 mov r0, #0 str r1, [sp] mvn r0, r0 str r0, [sp, #4] str r0, [sp, #8] mov r0, #0 str r0, [sp, #0xc] str r0, [sp, #0x10] add r4, r2, #0 ldr r2, [r5, #0x40] add r6, r3, #0 str r2, [sp, #0x14] ldr r2, [r5, #0x44] add r3, r1, #0 str r2, [sp, #0x18] ldr r2, [r5, #0x48] str r2, [sp, #0x1c] ldr r2, [r5, #0x4c] str r2, [sp, #0x20] str r0, [sp, #0x24] str r0, [sp, #0x28] add r0, sp, #0x4c add r2, r1, #0 bl FUN_02008AA4 ldr r0, [r5, #0x3c] str r0, [sp, #0x2c] add r0, sp, #0x4c str r0, [sp, #0x30] lsl r0, r4, #0xc str r0, [sp, #0x34] lsl r0, r6, #0xc str r0, [sp, #0x38] mov r0, #0 str r0, [sp, #0x3c] ldr r0, [sp, #0x80] str r0, [sp, #0x40] ldr r0, [sp, #0x84] str r0, [sp, #0x44] mov r0, #0xe str r0, [sp, #0x48] add r0, sp, #0x2c bl FUN_0201FF84 add sp, #0x70 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD17_021D78D0 thumb_func_start MOD17_021D7934 MOD17_021D7934: ; 0x021D7934 push {r3, r4, lr} sub sp, #0xc ldr r4, [sp, #0x1c] str r4, [sp] ldr r4, [sp, #0x18] str r4, [sp, #4] mov r4, #0xe str r4, [sp, #8] ldr r0, [r0, #0x40] bl FUN_02008F34 bl FUN_02009B04 add sp, #0xc pop {r3, r4, pc} .align 2, 0 thumb_func_end MOD17_021D7934 thumb_func_start MOD17_021D7954 MOD17_021D7954: ; 0x021D7954 push {r4, lr} sub sp, #0x10 ldr r4, [sp, #0x20] str r4, [sp] ldr r4, [sp, #0x18] str r4, [sp, #4] ldr r4, [sp, #0x1c] str r4, [sp, #8] mov r4, #0xe str r4, [sp, #0xc] ldr r0, [r0, #0x44] bl FUN_02008FEC bl FUN_02009D68 add sp, #0x10 pop {r4, pc} .align 2, 0 thumb_func_end MOD17_021D7954 thumb_func_start MOD17_021D7978 MOD17_021D7978: ; 0x021D7978 push {r3, r4, lr} sub sp, #0xc ldr r4, [sp, #0x18] str r4, [sp] mov r4, #2 str r4, [sp, #4] mov r4, #0xe str r4, [sp, #8] ldr r0, [r0, #0x48] bl FUN_020090AC add sp, #0xc pop {r3, r4, pc} .align 2, 0 thumb_func_end MOD17_021D7978 thumb_func_start MOD17_021D7994 MOD17_021D7994: ; 0x021D7994 push {r3, r4, lr} sub sp, #0xc ldr r4, [sp, #0x18] str r4, [sp] mov r4, #3 str r4, [sp, #4] mov r4, #0xe str r4, [sp, #8] ldr r0, [r0, #0x4c] bl FUN_020090AC add sp, #0xc pop {r3, r4, pc} .align 2, 0 thumb_func_end MOD17_021D7994 thumb_func_start MOD17_021D79B0 MOD17_021D79B0: ; 0x021D79B0 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x40] bl FUN_020094F0 add r1, r0, #0 ldr r0, [r4, #0x40] bl FUN_02009490 pop {r4, pc} thumb_func_end MOD17_021D79B0 thumb_func_start MOD17_021D79C4 MOD17_021D79C4: ; 0x021D79C4 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x44] bl FUN_020094F0 add r1, r0, #0 ldr r0, [r4, #0x44] bl FUN_02009490 pop {r4, pc} thumb_func_end MOD17_021D79C4 thumb_func_start MOD17_021D79D8 MOD17_021D79D8: ; 0x021D79D8 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x48] bl FUN_020094F0 add r1, r0, #0 ldr r0, [r4, #0x48] bl FUN_02009490 pop {r4, pc} thumb_func_end MOD17_021D79D8 thumb_func_start MOD17_021D79EC MOD17_021D79EC: ; 0x021D79EC push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x4c] bl FUN_020094F0 add r1, r0, #0 ldr r0, [r4, #0x4c] bl FUN_02009490 pop {r4, pc} thumb_func_end MOD17_021D79EC thumb_func_start MOD17_021D7A00 MOD17_021D7A00: ; 0x021D7A00 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 mov r1, #0x76 mov r2, #0x13 mov r3, #0xe bl MOD17_021D8358 add r0, r5, #0 add r1, r4, #0 bl MOD17_021D81A0 add r0, r5, #0 add r1, r4, #0 bl MOD17_021D821C pop {r3, r4, r5, pc} thumb_func_end MOD17_021D7A00 thumb_func_start MOD17_021D7A24 MOD17_021D7A24: ; 0x021D7A24 ldr r3, _021D7A28 ; =MOD17_021D83AC bx r3 .align 2, 0 _021D7A28: .word MOD17_021D83AC thumb_func_end MOD17_021D7A24 thumb_func_start MOD17_021D7A2C MOD17_021D7A2C: ; 0x021D7A2C push {r4, r5, r6, lr} add r4, r0, #0 ldr r0, [r4, #0x2c] add r6, r1, #0 add r5, r2, #0 bl FUN_02020CD4 ldr r1, [r4, #0x30] lsl r5, r5, #2 add r0, r6, #0 add r1, r1, r5 bl FUN_020B0088 ldr r0, [r4, #0x30] ldr r0, [r0, r5] pop {r4, r5, r6, pc} thumb_func_end MOD17_021D7A2C thumb_func_start MOD17_021D7A4C MOD17_021D7A4C: ; 0x021D7A4C push {r3, r4} mov r0, #1 lsl r0, r0, #0x1a ldr r2, [r0] ldr r1, _021D7A78 ; =0xFFFF1FFF add r3, r0, #0 and r1, r2 str r1, [r0] add r3, #8 ldrh r4, [r3] mov r2, #3 mov r1, #1 bic r4, r2 orr r1, r4 add r0, #0xa strh r1, [r3] ldrh r1, [r0] bic r1, r2 strh r1, [r0] pop {r3, r4} bx lr nop _021D7A78: .word 0xFFFF1FFF thumb_func_end MOD17_021D7A4C thumb_func_start MOD17_021D7A7C MOD17_021D7A7C: ; 0x021D7A7C push {r3, r4} mov r0, #1 lsl r0, r0, #0x1a ldr r2, [r0] ldr r1, _021D7AD8 ; =0xFFFF1FFF add r3, r0, #0 and r2, r1 lsr r1, r0, #0xd orr r1, r2 str r1, [r0] add r3, #0x48 ldrh r4, [r3] mov r2, #0x3f mov r1, #0x1f bic r4, r2 orr r1, r4 strh r1, [r3] add r3, r0, #0 add r3, #0x4a ldrh r4, [r3] mov r1, #0x12 bic r4, r2 orr r1, r4 strh r1, [r3] add r1, r0, #0 ldr r2, _021D7ADC ; =0x00000AF6 add r1, #0x40 strh r2, [r1] add r1, r0, #0 ldr r2, _021D7AE0 ; =0x0000128F add r1, #0x44 strh r2, [r1] add r2, r0, #0 add r2, #8 ldrh r3, [r2] mov r1, #3 add r0, #0xa bic r3, r1 strh r3, [r2] ldrh r2, [r0] bic r2, r1 mov r1, #1 orr r1, r2 strh r1, [r0] pop {r3, r4} bx lr .align 2, 0 _021D7AD8: .word 0xFFFF1FFF _021D7ADC: .word 0x00000AF6 _021D7AE0: .word 0x0000128F thumb_func_end MOD17_021D7A7C thumb_func_start MOD17_021D7AE4 MOD17_021D7AE4: ; 0x021D7AE4 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x38] bl FUN_0201AB60 ldr r0, [r4, #0x20] bl FUN_020081C4 bl FUN_02009F80 pop {r4, pc} .align 2, 0 thumb_func_end MOD17_021D7AE4 thumb_func_start MOD17_021D7AFC MOD17_021D7AFC: ; 0x021D7AFC push {r3, lr} add r3, r1, #0 mov r1, #0x76 mov r2, #0x13 bl MOD17_021D8358 pop {r3, pc} .align 2, 0 thumb_func_end MOD17_021D7AFC thumb_func_start MOD17_021D7B0C MOD17_021D7B0C: ; 0x021D7B0C push {r4, r5} ldrh r5, [r0, #2] ldrh r4, [r0] lsl r5, r5, #3 cmp r1, #0 blt _021D7B26 cmp r2, #0 blt _021D7B26 cmp r1, r5 bge _021D7B26 lsl r4, r4, #3 cmp r2, r4 blt _021D7B2C _021D7B26: mov r0, #2 pop {r4, r5} bx lr _021D7B2C: add r4, r2, #0 mul r4, r5 add r4, r1, r4 lsr r5, r4, #0x1f lsl r2, r4, #0x1d sub r2, r2, r5 mov r1, #0x1d ror r2, r1 add r1, r5, r2 lsl r2, r1, #2 add r1, r3, #0 ldr r3, [r0, #0x14] asr r0, r4, #2 lsr r0, r0, #0x1d add r0, r4, r0 asr r0, r0, #3 lsl r0, r0, #2 ldr r3, [r3, r0] mov r0, #0xf lsl r0, r2 lsl r1, r2 and r0, r3 cmp r1, r0 bne _021D7B62 mov r0, #1 pop {r4, r5} bx lr _021D7B62: mov r0, #0 pop {r4, r5} bx lr thumb_func_end MOD17_021D7B0C thumb_func_start MOD17_021D7B68 MOD17_021D7B68: ; 0x021D7B68 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r2, #0 bl MOD17_021D7E1C mov r2, #0xa add r0, r5, #0 add r1, r4, #0 lsl r2, r2, #0xa mov r3, #0x20 bl MOD17_021D82E4 ldr r0, [r5, #0x20] mov r1, #1 bl FUN_0200825C add r0, r5, #0 add r1, r4, #0 bl MOD17_021D82B8 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD17_021D7B68 thumb_func_start MOD17_021D7B94 MOD17_021D7B94: ; 0x021D7B94 push {r4, r5, lr} sub sp, #0x1c ldr r3, _021D7BE0 ; =0x021DE2D8 add r5, r0, #0 str r1, [r5, #0x38] add r4, r2, #0 ldmia r3!, {r0, r1} add r2, sp, #0 stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldr r0, [r3] mov r1, #2 str r0, [r2] ldr r0, [r5, #0x38] bl FUN_020178A0 ldr r0, [r5, #0x38] mov r1, #2 add r2, sp, #0 mov r3, #0 bl FUN_02016C18 mov r0, #2 mov r1, #0x20 mov r2, #0 add r3, r4, #0 bl FUN_02017F18 ldr r0, [r5, #0x38] mov r1, #2 bl FUN_02018744 add sp, #0x1c pop {r4, r5, pc} nop _021D7BE0: .word 0x021DE2D8 thumb_func_end MOD17_021D7B94 thumb_func_start MOD17_021D7BE4 MOD17_021D7BE4: ; 0x021D7BE4 push {r4, lr} add r4, r0, #0 bl MOD17_021D82D4 add r0, r4, #0 bl MOD17_021D7E58 add r0, r4, #0 bl MOD17_021D834C ldr r0, [r4, #4] bl FUN_02016A18 mov r0, #0 str r0, [r4, #4] ldr r0, [r4, #0x10] bl FUN_02016A18 mov r0, #0 str r0, [r4, #0x10] pop {r4, pc} .align 2, 0 thumb_func_end MOD17_021D7BE4 thumb_func_start MOD17_021D7C10 MOD17_021D7C10: ; 0x021D7C10 ldr r3, _021D7C18 ; =0x020178A1 ldr r0, [r0, #0x38] mov r1, #2 bx r3 .align 2, 0 _021D7C18: .word 0x020178A1 thumb_func_end MOD17_021D7C10 thumb_func_start MOD17_021D7C1C MOD17_021D7C1C: ; 0x021D7C1C ldr r3, _021D7C24 ; =0x020081C5 ldr r0, [r0, #0x20] bx r3 nop _021D7C24: .word 0x020081C5 thumb_func_end MOD17_021D7C1C thumb_func_start MOD17_021D7C28 MOD17_021D7C28: ; 0x021D7C28 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r4, r1, #0 ldr r0, _021D7CAC ; =0x04000454 str r3, [sp] mov r1, #0 str r1, [r0] sub r0, #0x10 add r6, r2, #0 ldr r7, [sp, #0x18] str r1, [r0] bl FUN_020B02C8 ldr r1, _021D7CB0 ; =0x04000470 lsl r0, r4, #0xc str r0, [r1] lsl r0, r6, #0xc str r0, [r1] mov r0, #0 str r0, [r1] ldr r0, [sp] ldr r1, _021D7CB4 ; =0x020FFA38 asr r0, r0, #4 lsl r2, r0, #1 lsl r0, r2, #1 add r2, r2, #1 lsl r2, r2, #1 ldrsh r0, [r1, r0] ldrsh r1, [r1, r2] bl G3_RotZ ldr r2, [r7, #8] ldr r1, [r7, #4] ldr r3, [r7] ldr r0, _021D7CB8 ; =0x0400046C str r3, [r0] str r1, [r0] neg r1, r4 str r2, [r0] lsl r1, r1, #0xc str r1, [r0, #4] neg r1, r6 lsl r1, r1, #0xc str r1, [r0, #4] mov r1, #0 str r1, [r0, #4] sub r0, #0x28 str r1, [r0] ldr r0, [r5, #0x1c] cmp r0, #0 beq _021D7C94 add r0, r5, #0 bl MOD17_021D7E68 _021D7C94: ldr r0, [r5, #0x24] cmp r0, #0 beq _021D7CA0 ldr r0, [r5, #0x20] bl FUN_02006ED4 _021D7CA0: ldr r0, _021D7CBC ; =0x04000448 mov r1, #1 str r1, [r0] str r1, [r0] pop {r3, r4, r5, r6, r7, pc} nop _021D7CAC: .word 0x04000454 _021D7CB0: .word 0x04000470 _021D7CB4: .word 0x020FFA38 _021D7CB8: .word 0x0400046C _021D7CBC: .word 0x04000448 thumb_func_end MOD17_021D7C28 thumb_func_start MOD17_021D7CC0 MOD17_021D7CC0: ; 0x021D7CC0 push {r4, lr} add r4, r0, #0 bl MOD17_021D80CC mov r0, #0xe bl FUN_02016B94 str r0, [r4, #0x38] add r0, r4, #0 bl MOD17_021D7F34 pop {r4, pc} thumb_func_end MOD17_021D7CC0 thumb_func_start MOD17_021D7CD8 MOD17_021D7CD8: ; 0x021D7CD8 push {r4, lr} add r4, r0, #0 bl MOD17_021D8058 ldr r0, [r4, #0x38] bl FUN_02016A18 add r0, r4, #0 bl MOD17_021D816C pop {r4, pc} .align 2, 0 thumb_func_end MOD17_021D7CD8 thumb_func_start MOD17_021D7CF0 MOD17_021D7CF0: ; 0x021D7CF0 push {r3, lr} ldr r0, [r0, #0x38] bl FUN_0201AB60 bl FUN_02009F80 pop {r3, pc} .align 2, 0 thumb_func_end MOD17_021D7CF0 thumb_func_start MOD17_021D7D00 MOD17_021D7D00: ; 0x021D7D00 ldr r3, _021D7D04 ; =MOD17_021D8194 bx r3 .align 2, 0 _021D7D04: .word MOD17_021D8194 thumb_func_end MOD17_021D7D00 thumb_func_start MOD17_021D7D08 MOD17_021D7D08: ; 0x021D7D08 push {r4, lr} sub sp, #0x28 ldr r4, _021D7D24 ; =0x021DE32C add r3, sp, #0 mov r2, #5 _021D7D12: ldmia r4!, {r0, r1} stmia r3!, {r0, r1} sub r2, r2, #1 bne _021D7D12 add r0, sp, #0 bl FUN_0201E66C add sp, #0x28 pop {r4, pc} .align 2, 0 _021D7D24: .word 0x021DE32C thumb_func_end MOD17_021D7D08 thumb_func_start MOD17_021D7D28 MOD17_021D7D28: ; 0x021D7D28 push {r3, lr} bl FUN_020BB7F4 bl G3X_InitMtxStack mov r0, #1 add r1, r0, #0 bl FUN_0201E6E4 ldr r0, _021D7D9C ; =0x04000008 mov r1, #3 ldrh r2, [r0] bic r2, r1 mov r1, #1 orr r1, r2 strh r1, [r0] add r0, #0x58 ldrh r1, [r0] ldr r2, _021D7DA0 ; =0xFFFFCFFD and r1, r2 strh r1, [r0] ldrh r3, [r0] add r1, r2, #2 and r3, r1 mov r1, #0x10 orr r1, r3 strh r1, [r0] ldrh r3, [r0] ldr r1, _021D7DA4 ; =0x0000CFFB and r1, r3 strh r1, [r0] add r1, r2, #2 ldrh r3, [r0] lsr r2, r2, #0x11 and r3, r1 mov r1, #8 orr r1, r3 strh r1, [r0] mov r0, #0 add r1, r0, #0 mov r3, #0x3f str r0, [sp] bl G3X_SetClearColor ldr r2, _021D7DA8 ; =0x04000540 mov r0, #2 ldr r1, _021D7DAC ; =0xBFFF0000 str r0, [r2] str r1, [r2, #0x40] mov r1, #1 bl FUN_020AEB70 mov r0, #1 lsl r0, r0, #0xe mov r1, #1 bl FUN_020AEDF4 pop {r3, pc} .align 2, 0 _021D7D9C: .word 0x04000008 _021D7DA0: .word 0xFFFFCFFD _021D7DA4: .word 0x0000CFFB _021D7DA8: .word 0x04000540 _021D7DAC: .word 0xBFFF0000 thumb_func_end MOD17_021D7D28 thumb_func_start MOD17_021D7DB0 MOD17_021D7DB0: ; 0x021D7DB0 push {r4, lr} sub sp, #0x10 ldr r4, _021D7DF8 ; =0x021DE254 add r3, sp, #0 add r2, r3, #0 ldmia r4!, {r0, r1} stmia r3!, {r0, r1} ldmia r4!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 bl FUN_02016BBC mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] ldr r0, _021D7DFC ; =0xFFCFFFEF and r1, r0 mov r0, #0x10 orr r0, r1 str r0, [r2] bl FUN_020B0FC0 bl FUN_0201E6D8 bl FUN_0201E740 mov r0, #0x1f mov r1, #1 bl FUN_0201E6E4 mov r0, #0x13 mov r1, #1 bl FUN_0201E74C add sp, #0x10 pop {r4, pc} .align 2, 0 _021D7DF8: .word 0x021DE254 _021D7DFC: .word 0xFFCFFFEF thumb_func_end MOD17_021D7DB0 thumb_func_start MOD17_021D7E00 MOD17_021D7E00: ; 0x021D7E00 push {r3, lr} bl FUN_020AEAF4 bl FUN_020AEC60 pop {r3, pc} thumb_func_end MOD17_021D7E00 thumb_func_start MOD17_021D7E0C MOD17_021D7E0C: ; 0x021D7E0C push {r3, lr} bl FUN_0201E6D8 bl FUN_0201E740 bl FUN_020B0FC0 pop {r3, pc} thumb_func_end MOD17_021D7E0C thumb_func_start MOD17_021D7E1C MOD17_021D7E1C: ; 0x021D7E1C push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 add r0, r4, #0 bl FUN_02013CD4 str r0, [r5] mov r1, #0x76 ldr r0, [r4, #0xc] lsl r1, r1, #2 bl FUN_02016998 str r0, [r5, #4] mov r0, #0x76 str r0, [r5, #8] mov r0, #0 str r0, [r5, #0xc] ldr r0, [r4, #0xc] mov r1, #0x4c bl FUN_02016998 str r0, [r5, #0x10] mov r0, #0x13 str r0, [r5, #0x14] mov r0, #0 str r0, [r5, #0x18] mov r0, #1 str r0, [r5, #0x1c] pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD17_021D7E1C thumb_func_start MOD17_021D7E58 MOD17_021D7E58: ; 0x021D7E58 push {r4, lr} add r4, r0, #0 ldr r0, [r4] bl FUN_02013D18 mov r0, #0 str r0, [r4] pop {r4, pc} thumb_func_end MOD17_021D7E58 thumb_func_start MOD17_021D7E68 MOD17_021D7E68: ; 0x021D7E68 ldr r3, _021D7E70 ; =0x02013D5D ldr r0, [r0] bx r3 nop _021D7E70: .word 0x02013D5D thumb_func_end MOD17_021D7E68 thumb_func_start MOD17_021D7E74 MOD17_021D7E74: ; 0x021D7E74 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r5, r0, #0 mov r0, #0 str r0, [sp, #4] add r0, r2, #0 add r4, r1, #0 str r2, [sp] cmp r0, #0 ble _021D7ED0 add r7, r5, #0 add r6, r4, #0 add r7, #0xc _021D7E8E: ldr r1, [r5, #0xc] ldr r0, [r5, #8] cmp r1, r0 blt _021D7E9A bl ErrorHandling _021D7E9A: ldr r0, [r4, #4] cmp r0, #0 beq _021D7EB0 add r0, r6, #0 bl FUN_02013D98 ldr r2, [r5, #0xc] ldr r1, [r5, #4] lsl r2, r2, #2 str r0, [r1, r2] b _021D7EBA _021D7EB0: ldr r1, [r5, #0xc] ldr r0, [r5, #4] lsl r2, r1, #2 mov r1, #0 str r1, [r0, r2] _021D7EBA: ldr r0, [r7] add r4, #8 add r0, r0, #1 str r0, [r7] ldr r0, [sp, #4] add r6, #8 add r1, r0, #1 ldr r0, [sp] str r1, [sp, #4] cmp r1, r0 blt _021D7E8E _021D7ED0: add sp, #8 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD17_021D7E74 thumb_func_start MOD17_021D7ED4 MOD17_021D7ED4: ; 0x021D7ED4 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r5, r0, #0 mov r0, #0 str r0, [sp, #4] add r0, r2, #0 add r4, r1, #0 str r2, [sp] cmp r0, #0 ble _021D7F30 add r7, r5, #0 add r6, r4, #0 add r7, #0x18 _021D7EEE: ldr r1, [r5, #0x18] ldr r0, [r5, #0x14] cmp r1, r0 blt _021D7EFA bl ErrorHandling _021D7EFA: ldr r0, [r4, #4] cmp r0, #0 beq _021D7F10 add r0, r6, #0 bl FUN_02013E14 ldr r2, [r5, #0x18] ldr r1, [r5, #0x10] lsl r2, r2, #2 str r0, [r1, r2] b _021D7F1A _021D7F10: ldr r1, [r5, #0x18] ldr r0, [r5, #0x10] lsl r2, r1, #2 mov r1, #0 str r1, [r0, r2] _021D7F1A: ldr r0, [r7] add r4, #0xc add r0, r0, #1 str r0, [r7] ldr r0, [sp, #4] add r6, #0xc add r1, r0, #1 ldr r0, [sp] str r1, [sp, #4] cmp r1, r0 blt _021D7EEE _021D7F30: add sp, #8 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD17_021D7ED4 thumb_func_start MOD17_021D7F34 MOD17_021D7F34: ; 0x021D7F34 push {r4, r5, lr} sub sp, #0x8c ldr r5, _021D8044 ; =0x021DE2A0 add r4, r0, #0 ldmia r5!, {r0, r1} add r3, sp, #0x70 add r2, r3, #0 stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r5] mov r1, #1 str r0, [r3] ldr r0, [r4, #0x38] mov r3, #0 bl FUN_02016C18 mov r0, #1 mov r1, #0x20 mov r2, #0 mov r3, #0xe bl FUN_02017F18 ldr r0, [r4, #0x38] mov r1, #1 bl FUN_02018744 ldr r5, _021D8048 ; =0x021DE2BC add r3, sp, #0x54 ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r5] mov r1, #2 str r0, [r3] ldr r0, [r4, #0x38] mov r3, #0 bl FUN_02016C18 mov r0, #2 mov r1, #0x20 mov r2, #0 mov r3, #0xe bl FUN_02017F18 ldr r0, [r4, #0x38] mov r1, #2 bl FUN_02018744 ldr r5, _021D804C ; =0x021DE2F4 add r3, sp, #0x38 ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r5] mov r1, #3 str r0, [r3] ldr r0, [r4, #0x38] mov r3, #0 bl FUN_02016C18 mov r0, #3 mov r1, #0x20 mov r2, #0 mov r3, #0xe bl FUN_02017F18 ldr r0, [r4, #0x38] mov r1, #3 bl FUN_02018744 ldr r5, _021D8050 ; =0x021DE284 add r3, sp, #0x1c ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r5] mov r1, #4 str r0, [r3] ldr r0, [r4, #0x38] mov r3, #0 bl FUN_02016C18 mov r0, #4 mov r1, #0x20 mov r2, #0 mov r3, #0xe bl FUN_02017F18 ldr r0, [r4, #0x38] mov r1, #4 bl FUN_02018744 ldr r5, _021D8054 ; =0x021DE310 add r3, sp, #0 ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldr r0, [r5] mov r1, #5 str r0, [r3] ldr r0, [r4, #0x38] mov r3, #0 bl FUN_02016C18 mov r0, #5 mov r1, #0x20 mov r2, #0 mov r3, #0xe bl FUN_02017F18 ldr r0, [r4, #0x38] mov r1, #5 bl FUN_02018744 add sp, #0x8c pop {r4, r5, pc} nop _021D8044: .word 0x021DE2A0 _021D8048: .word 0x021DE2BC _021D804C: .word 0x021DE2F4 _021D8050: .word 0x021DE284 _021D8054: .word 0x021DE310 thumb_func_end MOD17_021D7F34 thumb_func_start MOD17_021D8058 MOD17_021D8058: ; 0x021D8058 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x38] mov r1, #1 bl FUN_020178A0 ldr r0, [r4, #0x38] mov r1, #2 bl FUN_020178A0 ldr r0, [r4, #0x38] mov r1, #3 bl FUN_020178A0 ldr r0, [r4, #0x38] mov r1, #4 bl FUN_020178A0 ldr r0, [r4, #0x38] mov r1, #5 bl FUN_020178A0 pop {r4, pc} .align 2, 0 thumb_func_end MOD17_021D8058 thumb_func_start MOD17_021D8088 MOD17_021D8088: ; 0x021D8088 push {r4, lr} add r4, r0, #0 mov r0, #0x77 mov r1, #0xe bl FUN_02020C44 mov r1, #0x77 str r0, [r4, #0x2c] mov r0, #0xe lsl r1, r1, #2 bl FUN_02016998 mov r2, #0x77 mov r1, #0 lsl r2, r2, #2 str r0, [r4, #0x30] bl Call_FillMemWithValue mov r0, #0x77 str r0, [r4, #0x34] pop {r4, pc} .align 2, 0 thumb_func_end MOD17_021D8088 thumb_func_start MOD17_021D80B4 MOD17_021D80B4: ; 0x021D80B4 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x30] bl FUN_02016A18 ldr r0, [r4, #0x2c] bl FUN_02020C90 mov r0, #0 str r0, [r4, #0x34] pop {r4, pc} .align 2, 0 thumb_func_end MOD17_021D80B4 thumb_func_start MOD17_021D80CC MOD17_021D80CC: ; 0x021D80CC push {r4, r5, lr} sub sp, #0x24 ldr r5, _021D8168 ; =0x021DE264 add r3, sp, #0x14 add r4, r0, #0 add r2, r3, #0 ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} mov r1, #0x10 add r0, r2, #0 add r2, r1, #0 bl FUN_0201D060 mov r0, #5 mov r1, #0xe bl FUN_0201E00C bl FUN_0201D168 bl FUN_0201E0BC bl FUN_020B0FC0 mov r0, #0 str r0, [sp] mov r1, #0x7c str r1, [sp, #4] str r0, [sp, #8] mov r3, #0x1f str r3, [sp, #0xc] mov r2, #0xe str r2, [sp, #0x10] add r2, r0, #0 bl FUN_02009EAC add r1, r4, #0 mov r0, #0x30 add r1, #0x50 mov r2, #0xe bl FUN_02008C9C str r0, [r4, #0x3c] add r0, r4, #0 mov r2, #2 add r0, #0x50 mov r1, #0 lsl r2, r2, #0x14 bl FUN_02008D24 mov r0, #8 mov r1, #0 mov r2, #0xe bl FUN_02008DEC str r0, [r4, #0x40] mov r0, #5 mov r1, #1 mov r2, #0xe bl FUN_02008DEC str r0, [r4, #0x44] mov r0, #0x30 mov r1, #2 mov r2, #0xe bl FUN_02008DEC str r0, [r4, #0x48] mov r0, #0x30 mov r1, #3 mov r2, #0xe bl FUN_02008DEC str r0, [r4, #0x4c] add sp, #0x24 pop {r4, r5, pc} nop _021D8168: .word 0x021DE264 thumb_func_end MOD17_021D80CC thumb_func_start MOD17_021D816C MOD17_021D816C: ; 0x021D816C push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, [r5, #0x3c] bl FUN_0201FD58 mov r4, #0 _021D8178: ldr r0, [r5, #0x40] bl FUN_02008E2C add r4, r4, #1 add r5, r5, #4 cmp r4, #4 blt _021D8178 bl FUN_0201D12C bl FUN_0201E08C bl FUN_02009FA0 pop {r3, r4, r5, pc} thumb_func_end MOD17_021D816C thumb_func_start MOD17_021D8194 MOD17_021D8194: ; 0x021D8194 ldr r3, _021D819C ; =0x0201FDED ldr r0, [r0, #0x3c] bx r3 nop _021D819C: .word 0x0201FDED thumb_func_end MOD17_021D8194 thumb_func_start MOD17_021D81A0 MOD17_021D81A0: ; 0x021D81A0 push {r3, r4, r5, r6, r7, lr} sub sp, #8 mov r4, #0 add r7, r0, #0 add r6, r1, #0 add r5, r4, #0 _021D81AC: mov r0, #1 str r0, [sp] mov r0, #0x19 add r1, r4, #1 mov r2, #0 mov r3, #0xe bl FUN_02006C98 str r0, [sp, #4] cmp r0, #0 bne _021D81C6 bl ErrorHandling _021D81C6: ldr r1, [sp, #4] add r0, r7, #0 add r2, r4, #0 bl MOD17_021D7A2C ldr r1, [r6] add r4, r4, #1 add r1, r1, r5 str r0, [r1, #4] ldr r1, [r7] ldr r0, [r6] str r1, [r0, r5] add r5, #8 cmp r4, #0x64 blt _021D81AC mov r0, #1 mov r1, #0 str r0, [sp] mov r0, #0x19 add r2, r1, #0 mov r3, #0xe bl FUN_02006C98 add r4, r0, #0 ldr r0, [r6, #0x14] add r1, r4, #0 mov r2, #0 bl FUN_02020CD4 ldr r1, [r6, #8] add r0, r4, #0 add r1, r1, #4 bl FUN_020B0138 ldr r1, [r7] ldr r0, [r6, #8] str r1, [r0] ldr r0, [r6, #8] mov r1, #3 str r1, [r0, #8] add sp, #8 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD17_021D81A0 thumb_func_start MOD17_021D821C MOD17_021D821C: ; 0x021D821C push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r7, r0, #0 mov r0, #0x87 add r5, r1, #0 mov r4, #0 str r0, [sp, #8] _021D822A: mov r0, #1 add r1, r4, #0 str r0, [sp] mov r0, #0x19 add r1, #0xce mov r2, #0 mov r3, #0xe bl FUN_02006C98 add r2, r4, #0 add r1, r0, #0 add r2, #0x64 add r0, r7, #0 lsl r6, r2, #3 bl MOD17_021D7A2C ldr r1, [r5] mov r2, #0 add r1, r1, r6 str r0, [r1, #4] ldr r1, [r7] ldr r0, [r5] mov r3, #0xe str r1, [r0, r6] add r0, r4, #1 str r0, [sp, #4] mov r0, #1 str r0, [sp] ldr r1, [sp, #8] mov r0, #0x19 bl FUN_02006C98 str r0, [sp, #0xc] ldr r0, [r5, #0x14] ldr r1, [sp, #0xc] ldr r2, [sp, #4] bl FUN_02020CD4 ldr r1, [sp, #4] mov r0, #0xc add r6, r1, #0 mul r6, r0 ldr r1, [r5, #8] ldr r0, [sp, #0xc] add r1, r1, r6 add r1, r1, #4 bl FUN_020B0138 ldr r0, [r5, #8] add r0, r0, r6 ldr r0, [r0, #4] cmp r0, #0 bne _021D8298 bl ErrorHandling _021D8298: ldr r1, [r7] ldr r0, [r5, #8] add r4, r4, #1 str r1, [r0, r6] ldr r0, [r5, #8] add r1, r0, r6 mov r0, #1 str r0, [r1, #8] ldr r0, [sp, #8] add r0, r0, #4 str r0, [sp, #8] cmp r4, #0x12 blt _021D822A add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD17_021D821C thumb_func_start MOD17_021D82B8 MOD17_021D82B8: ; 0x021D82B8 push {r3, r4, lr} sub sp, #4 add r4, r0, #0 add r3, r1, #0 mov r2, #0 mov r0, #0x19 mov r1, #0xeb str r2, [sp] bl FUN_02006C98 str r0, [r4, #0x28] add sp, #4 pop {r3, r4, pc} .align 2, 0 thumb_func_end MOD17_021D82B8 thumb_func_start MOD17_021D82D4 MOD17_021D82D4: ; 0x021D82D4 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x28] bl FUN_02016A18 mov r0, #0 str r0, [r4, #0x28] pop {r4, pc} thumb_func_end MOD17_021D82D4 thumb_func_start MOD17_021D82E4 MOD17_021D82E4: ; 0x021D82E4 push {r4, r5, r6, lr} add r5, r0, #0 add r0, r1, #0 add r4, r2, #0 add r6, r3, #0 bl FUN_02006D98 str r0, [r5, #0x20] ldr r3, _021D833C ; =0x021064B8 mov r1, #0 ldr r3, [r3] add r0, r4, #0 add r2, r1, #0 blx r3 ldr r3, _021D8340 ; =0x021064C0 add r4, r0, #0 ldr r3, [r3] add r0, r6, #0 mov r1, #0 mov r2, #1 blx r3 ldr r2, _021D8344 ; =0x7FFF0000 add r6, r0, #0 and r2, r4 lsl r1, r4, #0x10 lsr r2, r2, #0x10 ldr r0, [r5, #0x20] lsr r1, r1, #0xd lsl r2, r2, #4 bl FUN_020081A8 ldr r2, _021D8348 ; =0xFFFF0000 lsl r1, r6, #0x10 and r2, r6 lsr r2, r2, #0x10 ldr r0, [r5, #0x20] lsr r1, r1, #0xd lsl r2, r2, #3 bl FUN_020081B4 mov r0, #1 str r0, [r5, #0x24] pop {r4, r5, r6, pc} nop _021D833C: .word 0x021064B8 _021D8340: .word 0x021064C0 _021D8344: .word 0x7FFF0000 _021D8348: .word 0xFFFF0000 thumb_func_end MOD17_021D82E4 thumb_func_start MOD17_021D834C MOD17_021D834C: ; 0x021D834C ldr r3, _021D8354 ; =0x020072E9 ldr r0, [r0, #0x20] bx r3 nop _021D8354: .word 0x020072E9 thumb_func_end MOD17_021D834C thumb_func_start MOD17_021D8358 MOD17_021D8358: ; 0x021D8358 push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 add r5, r0, #0 lsl r0, r4, #3 str r0, [sp] add r7, r3, #0 ldr r1, [sp] add r0, r7, #0 add r6, r2, #0 bl FUN_02016998 ldr r2, [sp] mov r1, #0 str r0, [r5] bl Call_FillMemWithValue add r0, r4, #0 add r1, r7, #0 bl FUN_02020C44 str r0, [r5, #0x10] str r4, [r5, #4] mov r0, #0xc add r4, r6, #0 mul r4, r0 add r0, r7, #0 add r1, r4, #0 bl FUN_02016998 mov r1, #0 add r2, r4, #0 str r0, [r5, #8] bl Call_FillMemWithValue add r0, r6, #0 add r1, r7, #0 bl FUN_02020C44 str r0, [r5, #0x14] str r6, [r5, #0xc] pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD17_021D8358 thumb_func_start MOD17_021D83AC MOD17_021D83AC: ; 0x021D83AC push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x10] cmp r0, #0 beq _021D83BE bl FUN_02020C90 mov r0, #0 str r0, [r4, #0x10] _021D83BE: ldr r0, [r4, #0x14] cmp r0, #0 beq _021D83CC bl FUN_02020C90 mov r0, #0 str r0, [r4, #0x14] _021D83CC: ldr r0, [r4] bl FUN_02016A18 mov r0, #0 str r0, [r4] ldr r0, [r4, #8] bl FUN_02016A18 mov r0, #0 str r0, [r4, #8] pop {r4, pc} .align 2, 0 thumb_func_end MOD17_021D83AC thumb_func_start MOD17_021D83E4 MOD17_021D83E4: ; 0x021D83E4 push {r3, r4, r5, lr} sub sp, #8 mov r2, #2 add r4, r0, #0 mov r0, #3 mov r1, #0xd lsl r2, r2, #0x10 bl FUN_0201681C mov r2, #1 mov r0, #3 mov r1, #0xe lsl r2, r2, #0x12 bl FUN_0201681C ldr r1, _021D84D8 ; =0x000006D8 add r0, r4, #0 mov r2, #0xd bl FUN_02006268 ldr r2, _021D84D8 ; =0x000006D8 mov r1, #0 add r5, r0, #0 bl Call_FillMemWithValue ldr r0, _021D84DC ; =MOD17_021D8FC8 add r1, r5, #0 bl FUN_02015F10 bl FUN_02015F1C add r0, r4, #0 bl FUN_0200628C add r4, r0, #0 ldr r1, [r4, #0xc] ldr r0, _021D84E0 ; =0x000006C8 str r1, [r5, r0] bl FUN_0201CC08 mov r0, #4 bl FUN_0201CC24 mov r1, #0x5e lsl r1, r1, #2 ldr r0, [r4, #8] add r1, r5, r1 bl MOD17_021DAFA4 add r0, r5, #0 bl MOD17_021D8D60 mov r1, #0x35 lsl r1, r1, #4 add r0, r5, r1 sub r1, #0x81 mov r2, #0xd bl MOD17_021DB9F4 mov r0, #0xaf lsl r0, r0, #2 mov r1, #0xd bl MOD17_021D74E0 mov r1, #0xd6 lsl r1, r1, #2 str r0, [r5, r1] ldr r1, [r4] add r0, r5, #0 mov r2, #0xa bl MOD17_021D8DA8 add r0, r5, #0 bl MOD17_021D8E84 add r0, r5, #0 mov r1, #0 bl MOD17_021D8FD0 add r0, r5, #0 bl MOD17_021D9024 ldr r1, [r4, #0xc] add r0, r5, #0 bl MOD17_021D9228 ldr r0, _021D84E4 ; =0x00000554 mov r2, #0xfa add r1, r5, r0 str r1, [sp] mov r1, #1 sub r0, #0xc8 lsl r2, r2, #2 str r1, [sp, #4] add r1, r5, r2 sub r2, #0x8c add r0, r5, r0 add r2, r5, r2 add r3, r5, #0 bl MOD17_021DB038 mov r0, #0xd bl FUN_02014590 ldr r1, _021D84E8 ; =0x000006A4 str r0, [r5, r1] mov r0, #0xd mov r1, #1 bl FUN_02018FF4 ldr r2, _021D84EC ; =0x000006A8 mov r1, #0 str r0, [r5, r2] sub r2, #0xc str r1, [r5, r2] mov r0, #0x35 add r2, r1, #0 bl FUN_0200433C mov r0, #1 add sp, #8 pop {r3, r4, r5, pc} .align 2, 0 _021D84D8: .word 0x000006D8 _021D84DC: .word MOD17_021D8FC8 _021D84E0: .word 0x000006C8 _021D84E4: .word 0x00000554 _021D84E8: .word 0x000006A4 _021D84EC: .word 0x000006A8 thumb_func_end MOD17_021D83E4 thumb_func_start MOD17_021D84F0 MOD17_021D84F0: ; 0x021D84F0 push {r4, r5, r6, r7, lr} sub sp, #0xc add r7, r0, #0 add r5, r1, #0 bl FUN_02006278 add r4, r0, #0 add r0, r7, #0 mov r6, #0 bl FUN_0200628C ldr r1, [r5] cmp r1, #0xc bhi _021D85BA add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021D8518: ; jump table .short _021D8532 - _021D8518 - 2 ; case 0 .short _021D8532 - _021D8518 - 2 ; case 1 .short _021D854E - _021D8518 - 2 ; case 2 .short _021D855E - _021D8518 - 2 ; case 3 .short _021D858A - _021D8518 - 2 ; case 4 .short _021D85AA - _021D8518 - 2 ; case 5 .short _021D85D8 - _021D8518 - 2 ; case 6 .short _021D860C - _021D8518 - 2 ; case 7 .short _021D8636 - _021D8518 - 2 ; case 8 .short _021D8678 - _021D8518 - 2 ; case 9 .short _021D86B2 - _021D8518 - 2 ; case 10 .short _021D86D4 - _021D8518 - 2 ; case 11 .short _021D86F2 - _021D8518 - 2 ; case 12 _021D8532: mov r0, #6 str r0, [sp] mov r0, #1 str r0, [sp, #4] mov r1, #0xd str r1, [sp, #8] mov r1, #5 add r2, r1, #0 add r3, r6, #0 bl FUN_0200E1D0 mov r0, #2 str r0, [r5] b _021D8710 _021D854E: bl FUN_0200E308 cmp r0, #0 beq _021D85BA ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D8710 _021D855E: ldr r0, [r0, #0x1c] cmp r0, #1 bne _021D8584 mov r0, #1 bl FUN_02002BB8 ldr r0, _021D871C ; =0x00000554 ldr r2, _021D8720 ; =0x00000151 add r0, r4, r0 mov r1, #0x1a mov r3, #0x2f bl MOD17_021DCB80 ldr r1, _021D8724 ; =0x000006CC str r0, [r4, r1] ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D8710 _021D8584: mov r0, #6 str r0, [r5] b _021D8710 _021D858A: ldr r0, _021D8724 ; =0x000006CC ldr r0, [r4, r0] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_0201BD70 cmp r0, #0 bne _021D85BA ldr r0, _021D871C ; =0x00000554 add r0, r4, r0 bl MOD17_021DCBC0 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D8710 _021D85AA: ldr r0, _021D8728 ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #3 and r1, r0 ldr r0, _021D872C ; =0x021C48F8 ldrh r0, [r0, #0x20] orr r0, r1 bne _021D85BC _021D85BA: b _021D8710 _021D85BC: ldr r0, _021D871C ; =0x00000554 ldr r2, _021D8720 ; =0x00000151 add r0, r4, r0 mov r1, #0x1a mov r3, #0x30 bl MOD17_021DCB48 add r0, r6, #0 bl FUN_02002BB8 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D8710 _021D85D8: ldr r1, _021D8730 ; =0x0000069C ldr r0, [r4, r1] cmp r0, #3 bne _021D85EE add r1, r1, #4 add r0, r4, #0 add r1, r4, r1 bl MOD17_021D92BC mov r0, #7 str r0, [r5] _021D85EE: ldr r0, _021D8734 ; =0x0000048C add r0, r4, r0 bl MOD17_021DAF64 add r0, r4, #0 bl MOD17_021D9BE8 ldr r0, _021D871C ; =0x00000554 add r0, r4, r0 bl MOD17_021DCB30 add r0, r4, #0 bl MOD17_021D9140 b _021D8710 _021D860C: mov r0, #0x6a lsl r0, r0, #4 ldr r1, [r4, r0] cmp r1, #0 beq _021D8710 add r1, r6, #0 str r1, [r4, r0] mov r1, #8 str r1, [r5] mov r1, #4 sub r0, r0, #4 str r1, [r4, r0] mov r1, #0x47 lsl r1, r1, #4 add r0, r4, r1 sub r1, #0x88 add r1, r4, r1 mov r2, #0xe bl MOD17_021DD464 b _021D8710 _021D8636: ldr r1, _021D8730 ; =0x0000069C ldr r0, [r4, r1] cmp r0, #9 bne _021D864E add r1, r1, #4 add r0, r4, #0 add r1, r4, r1 bl MOD17_021D942C mov r0, #0xa str r0, [r5] b _021D8710 _021D864E: cmp r0, #8 bne _021D8662 mov r0, #9 str r0, [r5] mov r0, #5 str r0, [r4, r1] add r0, r4, #0 bl MOD17_021D9C3C b _021D8710 _021D8662: add r0, r4, #0 bl MOD17_021D98F0 ldr r1, _021D8730 ; =0x0000069C str r0, [r4, r1] mov r0, #0x47 lsl r0, r0, #4 add r0, r4, r0 bl MOD17_021DD488 b _021D8710 _021D8678: ldr r0, _021D8730 ; =0x0000069C ldr r1, [r4, r0] cmp r1, #6 bne _021D868C mov r1, #1 add r0, #0x10 str r1, [r4, r0] mov r0, #0xb str r0, [r5] b _021D8710 _021D868C: cmp r1, #7 bne _021D869C add r1, r6, #0 add r0, #0x10 str r1, [r4, r0] mov r0, #0xb str r0, [r5] b _021D8710 _021D869C: add r0, r4, #0 bl MOD17_021D9CAC ldr r1, _021D8730 ; =0x0000069C str r0, [r4, r1] mov r0, #0x47 lsl r0, r0, #4 add r0, r4, r0 bl MOD17_021DD488 b _021D8710 _021D86B2: mov r0, #0x6a lsl r0, r0, #4 ldr r1, [r4, r0] cmp r1, #0 beq _021D8710 add r2, r6, #0 str r2, [r4, r0] mov r1, #6 str r1, [r5] sub r0, r0, #4 str r2, [r4, r0] mov r0, #0x47 lsl r0, r0, #4 add r0, r4, r0 bl MOD17_021DD494 b _021D8710 _021D86D4: mov r0, #6 str r0, [sp] mov r0, #1 str r0, [sp, #4] mov r1, #0xd str r1, [sp, #8] add r1, r6, #0 add r2, r1, #0 add r3, r1, #0 bl FUN_0200E1D0 ldr r0, [r5] add r0, r0, #1 str r0, [r5] b _021D8710 _021D86F2: bl FUN_0200E308 cmp r0, #0 beq _021D8710 add r0, r6, #0 str r0, [r5] ldr r0, _021D8730 ; =0x0000069C mov r1, #0xa str r1, [r4, r0] mov r0, #0x47 lsl r0, r0, #4 add r0, r4, r0 mov r6, #1 bl MOD17_021DD494 _021D8710: add r0, r4, #0 bl MOD17_021D8D8C add r0, r6, #0 add sp, #0xc pop {r4, r5, r6, r7, pc} .align 2, 0 _021D871C: .word 0x00000554 _021D8720: .word 0x00000151 _021D8724: .word 0x000006CC _021D8728: .word 0x021C48B8 _021D872C: .word 0x021C48F8 _021D8730: .word 0x0000069C _021D8734: .word 0x0000048C thumb_func_end MOD17_021D84F0 thumb_func_start MOD17_021D8738 MOD17_021D8738: ; 0x021D8738 push {r4, r5, r6, lr} add r6, r0, #0 bl FUN_02006278 add r4, r0, #0 add r0, r6, #0 bl FUN_0200628C add r5, r0, #0 ldr r0, _021D8808 ; =0x000006AC ldr r0, [r4, r0] cmp r0, #1 bne _021D8768 ldr r0, [r5, #0x10] mov r1, #7 bl FUN_0202A170 mov r1, #0xfa lsl r1, r1, #2 ldr r0, [r5, #4] ldr r2, [r5, #0x14] add r1, r4, r1 bl MOD17_021D95AC _021D8768: ldr r1, [r5, #0x18] cmp r1, #0 beq _021D8780 ldr r0, _021D8808 ; =0x000006AC ldr r0, [r4, r0] cmp r0, #1 bne _021D877C mov r0, #1 str r0, [r1] b _021D8780 _021D877C: mov r0, #0 str r0, [r1] _021D8780: ldr r0, _021D880C ; =0x000006A4 ldr r0, [r4, r0] bl FUN_020145A8 ldr r0, _021D8810 ; =0x000006A8 mov r1, #1 ldr r0, [r4, r0] bl FUN_020191A4 add r0, r4, #0 bl MOD17_021D92AC ldr r0, _021D8814 ; =0x0000048C add r0, r4, r0 bl MOD17_021DB08C add r0, r4, #0 bl MOD17_021D912C add r0, r4, #0 bl MOD17_021D9014 add r0, r4, #0 bl MOD17_021D8E60 add r0, r4, #0 bl MOD17_021D8F40 mov r0, #0xd6 lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD17_021D750C mov r0, #0xd6 mov r1, #0 lsl r0, r0, #2 str r1, [r4, r0] sub r0, #8 add r0, r4, r0 bl MOD17_021DBA1C add r0, r4, #0 bl MOD17_021D8D94 mov r0, #0 add r1, r0, #0 bl FUN_02015F10 bl FUN_02015F1C bl FUN_0201CD04 cmp r0, #1 beq _021D87F0 bl ErrorHandling _021D87F0: add r0, r6, #0 bl FUN_0200627C mov r0, #0xd bl FUN_020168D0 mov r0, #0xe bl FUN_020168D0 mov r0, #1 pop {r4, r5, r6, pc} nop _021D8808: .word 0x000006AC _021D880C: .word 0x000006A4 _021D8810: .word 0x000006A8 _021D8814: .word 0x0000048C thumb_func_end MOD17_021D8738 thumb_func_start MOD17_021D8818 MOD17_021D8818: ; 0x021D8818 push {r3, r4, r5, lr} sub sp, #8 mov r2, #2 add r5, r0, #0 mov r0, #3 mov r1, #0xd lsl r2, r2, #0x10 bl FUN_0201681C mov r2, #1 mov r0, #3 mov r1, #0xe lsl r2, r2, #0x12 bl FUN_0201681C ldr r1, _021D897C ; =0x000006D8 add r0, r5, #0 mov r2, #0xd bl FUN_02006268 ldr r2, _021D897C ; =0x000006D8 mov r1, #0 add r4, r0, #0 bl Call_FillMemWithValue ldr r0, _021D8980 ; =MOD17_021D8FC8 add r1, r4, #0 bl FUN_02015F10 bl FUN_02015F1C add r0, r5, #0 bl FUN_0200628C add r5, r0, #0 ldr r0, [r5, #0xc] ldr r1, _021D8984 ; =0x000006B4 str r0, [r4, r1] ldr r2, [r5, #0x10] add r0, r1, #4 str r2, [r4, r0] add r0, r1, #0 ldr r2, [r5, #0x14] add r0, #8 str r2, [r4, r0] add r0, r1, #0 ldr r2, [r5, #8] add r0, #0xc str r2, [r4, r0] ldr r0, [r5, #0x1c] add r1, #0x10 str r0, [r4, r1] bl FUN_0201CC08 mov r0, #4 bl FUN_0201CC24 mov r1, #0x5e lsl r1, r1, #2 ldr r0, [r5, #0x18] add r1, r4, r1 bl MOD17_021DAFA4 add r0, r4, #0 bl MOD17_021D8D60 ldr r0, [r4, #0x3c] mov r1, #0 bl FUN_0201FD98 bl FUN_02033E74 mov r0, #1 mov r1, #0x10 bl FUN_02008D44 mov r0, #1 bl FUN_02008DDC mov r1, #0x35 lsl r1, r1, #4 add r0, r4, r1 sub r1, #0x81 mov r2, #0xd bl MOD17_021DB9F4 mov r0, #0xaf lsl r0, r0, #2 mov r1, #0xd bl MOD17_021D74E0 mov r1, #0xd6 lsl r1, r1, #2 str r0, [r4, r1] ldr r1, [r5, #0x20] ldr r0, _021D8988 ; =0x000006C8 str r1, [r4, r0] sub r1, r0, #4 ldr r1, [r4, r1] ldrb r1, [r1, #0x16] cmp r1, #0 bne _021D88F2 ldr r0, [r5, #0xc] bl MOD17_021D9C08 mov r1, #0x6b lsl r1, r1, #4 str r0, [r4, r1] b _021D88F8 _021D88F2: mov r1, #0x14 sub r0, #0x18 str r1, [r4, r0] _021D88F8: mov r2, #0x6b lsl r2, r2, #4 ldr r1, [r5] ldr r2, [r4, r2] add r0, r4, #0 bl MOD17_021D8E18 add r0, r4, #0 bl MOD17_021D8E84 add r0, r4, #0 mov r1, #0 bl MOD17_021D8FD0 add r0, r4, #0 bl MOD17_021D90A8 ldr r0, [r5, #0x20] mov r1, #0x6b str r0, [sp] lsl r1, r1, #4 ldr r1, [r4, r1] ldr r2, [r5, #8] ldr r3, [r5, #0x1c] add r0, r4, #0 bl MOD17_021D926C ldr r0, _021D898C ; =0x00000554 mov r2, #0xfa add r1, r4, r0 str r1, [sp] mov r1, #0 sub r0, #0xc8 lsl r2, r2, #2 str r1, [sp, #4] add r1, r4, r2 sub r2, #0x8c add r0, r4, r0 add r2, r4, r2 add r3, r4, #0 bl MOD17_021DB038 mov r0, #0xd bl FUN_02014590 ldr r1, _021D8990 ; =0x000006A4 str r0, [r4, r1] mov r0, #0xd mov r1, #1 bl FUN_02018FF4 ldr r1, _021D8994 ; =0x000006A8 mov r2, #0 str r0, [r4, r1] add r0, r1, #0 sub r0, #0xc add r1, #0x1c str r2, [r4, r0] ldr r0, [r4, r1] ldrb r0, [r0, #0x16] bl FUN_020833D4 mov r0, #1 add sp, #8 pop {r3, r4, r5, pc} nop _021D897C: .word 0x000006D8 _021D8980: .word MOD17_021D8FC8 _021D8984: .word 0x000006B4 _021D8988: .word 0x000006C8 _021D898C: .word 0x00000554 _021D8990: .word 0x000006A4 _021D8994: .word 0x000006A8 thumb_func_end MOD17_021D8818 thumb_func_start MOD17_021D8998 MOD17_021D8998: ; 0x021D8998 push {r3, r4, r5, r6, lr} sub sp, #0xc add r4, r1, #0 bl FUN_02006278 ldr r1, [r4] add r5, r0, #0 mov r6, #0 cmp r1, #0x14 bhi _021D89FA add r2, r1, r1 add r2, pc ldrh r2, [r2, #6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _021D89B8: ; jump table .short _021D89E2 - _021D89B8 - 2 ; case 0 .short _021D89F2 - _021D89B8 - 2 ; case 1 .short _021D8A04 - _021D89B8 - 2 ; case 2 .short _021D8A3C - _021D89B8 - 2 ; case 3 .short _021D8A5A - _021D89B8 - 2 ; case 4 .short _021D8A72 - _021D89B8 - 2 ; case 5 .short _021D8A90 - _021D89B8 - 2 ; case 6 .short _021D8AB2 - _021D89B8 - 2 ; case 7 .short _021D8AD0 - _021D89B8 - 2 ; case 8 .short _021D8AE8 - _021D89B8 - 2 ; case 9 .short _021D8B0A - _021D89B8 - 2 ; case 10 .short _021D8B1C - _021D89B8 - 2 ; case 11 .short _021D8B3A - _021D89B8 - 2 ; case 12 .short _021D8B56 - _021D89B8 - 2 ; case 13 .short _021D8BBC - _021D89B8 - 2 ; case 14 .short _021D8BEA - _021D89B8 - 2 ; case 15 .short _021D8C64 - _021D89B8 - 2 ; case 16 .short _021D8C64 - _021D89B8 - 2 ; case 17 .short _021D8C64 - _021D89B8 - 2 ; case 18 .short _021D8C04 - _021D89B8 - 2 ; case 19 .short _021D8C34 - _021D89B8 - 2 ; case 20 _021D89E2: mov r0, #0x2a mov r1, #0x1e bl FUN_020053CC ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D8C64 _021D89F2: bl FUN_02005404 cmp r0, #0 beq _021D89FC _021D89FA: b _021D8C64 _021D89FC: ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D8C64 _021D8A04: bl MOD17_021D9778 mov r2, #0x6b lsl r2, r2, #4 ldr r2, [r5, r2] add r0, r5, #0 add r1, r6, #0 bl MOD17_021D9BA4 ldr r0, _021D8C70 ; =0x000006B8 ldr r0, [r5, r0] cmp r0, #3 beq _021D8A28 add r0, r5, #0 mov r1, #0x1a bl MOD17_021D9B9C b _021D8A30 _021D8A28: add r0, r5, #0 mov r1, #0x1c bl MOD17_021D9B9C _021D8A30: ldr r1, _021D8C74 ; =0x000006CC str r0, [r5, r1] ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D8C64 _021D8A3C: ldr r0, _021D8C74 ; =0x000006CC ldr r0, [r5, r0] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_0201BD70 cmp r0, #0 bne _021D8B42 add r0, r5, #0 bl MOD17_021D9BC4 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D8C64 _021D8A5A: mov r1, #0x1b lsl r1, r1, #6 ldr r1, [r5, r1] add r1, #0x1d bl MOD17_021D9B9C ldr r1, _021D8C74 ; =0x000006CC str r0, [r5, r1] ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D8C64 _021D8A72: ldr r0, _021D8C74 ; =0x000006CC ldr r0, [r5, r0] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_0201BD70 cmp r0, #0 bne _021D8B42 add r0, r5, #0 bl MOD17_021D9BC4 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D8C64 _021D8A90: ldr r1, _021D8C70 ; =0x000006B8 ldr r1, [r5, r1] cmp r1, #3 beq _021D8AA0 mov r1, #0x2a bl MOD17_021D9B9C b _021D8AA6 _021D8AA0: mov r1, #0x29 bl MOD17_021D9B9C _021D8AA6: ldr r1, _021D8C74 ; =0x000006CC str r0, [r5, r1] ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D8C64 _021D8AB2: ldr r0, _021D8C74 ; =0x000006CC ldr r0, [r5, r0] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_0201BD70 cmp r0, #0 bne _021D8B42 add r0, r5, #0 bl MOD17_021D9BC4 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D8C64 _021D8AD0: ldr r0, _021D8C78 ; =0x000006C4 ldr r0, [r5, r0] ldrb r0, [r0, #0x16] cmp r0, #0 beq _021D8AE0 mov r0, #2 bl FUN_02031588 _021D8AE0: ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D8C64 _021D8AE8: ldr r0, _021D8C78 ; =0x000006C4 ldr r0, [r5, r0] ldrb r0, [r0, #0x16] cmp r0, #0 beq _021D8B04 mov r0, #2 bl FUN_020315D8 cmp r0, #0 beq _021D8B42 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D8C64 _021D8B04: add r0, r1, #1 str r0, [r4] b _021D8C64 _021D8B0A: bl MOD17_021D9800 ldr r0, _021D8C7C ; =0x00000643 bl FUN_020054C8 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D8C64 _021D8B1C: mov r0, #6 str r0, [sp] mov r0, #1 str r0, [sp, #4] mov r1, #0xd str r1, [sp, #8] mov r1, #0x11 mov r2, #0x13 add r3, r6, #0 bl FUN_0200E1D0 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D8C64 _021D8B3A: bl FUN_0200E308 cmp r0, #0 bne _021D8B44 _021D8B42: b _021D8C64 _021D8B44: ldr r1, _021D8C80 ; =0x00000491 mov r0, #7 add r2, r6, #0 bl FUN_0200433C ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D8C64 _021D8B56: ldr r0, _021D8C84 ; =0x0000069C ldr r1, [r5, r0] cmp r1, #3 bne _021D8B86 add r0, #0x28 ldr r0, [r5, r0] mov r1, #1 bl FUN_02083A7C ldr r0, _021D8C78 ; =0x000006C4 ldr r0, [r5, r0] ldrb r0, [r0, #0x16] cmp r0, #0 beq _021D8B80 ldr r0, _021D8C88 ; =0x00000554 ldr r2, _021D8C8C ; =0x00000151 add r0, r5, r0 mov r1, #0x1a mov r3, #0x2e bl MOD17_021DCB48 _021D8B80: mov r0, #0xe str r0, [r4] b _021D8C64 _021D8B86: ldr r0, _021D8C88 ; =0x00000554 add r0, r5, r0 bl MOD17_021DCBE4 cmp r0, #0 bne _021D8B9E mov r0, #0xf str r0, [r4] mov r0, #0x1a lsl r0, r0, #6 bl FUN_020054C8 _021D8B9E: ldr r0, _021D8C90 ; =0x0000048C add r0, r5, r0 bl MOD17_021DAF64 add r0, r5, #0 bl MOD17_021D9BE8 ldr r0, _021D8C88 ; =0x00000554 add r0, r5, r0 bl MOD17_021DCB30 add r0, r5, #0 bl MOD17_021D9140 b _021D8C64 _021D8BBC: ldr r0, _021D8C88 ; =0x00000554 add r0, r5, r0 bl MOD17_021DCBE4 cmp r0, #0 bne _021D8BD4 mov r0, #0xf str r0, [r4] mov r0, #0x1a lsl r0, r0, #6 bl FUN_020054C8 _021D8BD4: add r0, r5, #0 bl MOD17_021D9BE8 ldr r0, _021D8C88 ; =0x00000554 add r0, r5, r0 bl MOD17_021DCB30 add r0, r5, #0 bl MOD17_021D9E28 b _021D8C64 _021D8BEA: ldr r0, _021D8C88 ; =0x00000554 add r0, r5, r0 bl MOD17_021DCB30 ldr r0, _021D8C88 ; =0x00000554 add r0, r5, r0 bl MOD17_021DCBF4 cmp r0, #0 beq _021D8C64 mov r0, #0x13 str r0, [r4] b _021D8C64 _021D8C04: mov r0, #0x1a lsl r0, r0, #6 bl FUN_02005508 cmp r0, #1 beq _021D8C64 mov r0, #6 str r0, [sp] mov r0, #1 str r0, [sp, #4] mov r1, #0xd str r1, [sp, #8] mov r1, #0x1a add r2, r1, #0 add r3, r6, #0 bl FUN_0200E1D0 ldr r0, _021D8C94 ; =0x00000684 bl FUN_020054C8 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D8C64 _021D8C34: bl FUN_0200E308 cmp r0, #0 beq _021D8C64 add r0, r6, #0 str r0, [r4] mov r2, #1 ldr r0, _021D8C84 ; =0x0000069C mov r1, #0xa str r1, [r5, r0] lsl r2, r2, #0x1a ldr r1, [r2] ldr r0, _021D8C98 ; =0xFFFF1FFF mov r6, #1 and r0, r1 str r0, [r2] mov r0, #0xfa lsl r0, r0, #2 add r1, r6, #0 add r0, r5, r0 sub r1, #0x41 mov r2, #0x28 bl MOD17_021DA118 _021D8C64: add r0, r5, #0 bl MOD17_021D8D8C add r0, r6, #0 add sp, #0xc pop {r3, r4, r5, r6, pc} .align 2, 0 _021D8C70: .word 0x000006B8 _021D8C74: .word 0x000006CC _021D8C78: .word 0x000006C4 _021D8C7C: .word 0x00000643 _021D8C80: .word 0x00000491 _021D8C84: .word 0x0000069C _021D8C88: .word 0x00000554 _021D8C8C: .word 0x00000151 _021D8C90: .word 0x0000048C _021D8C94: .word 0x00000684 _021D8C98: .word 0xFFFF1FFF thumb_func_end MOD17_021D8998 thumb_func_start MOD17_021D8C9C MOD17_021D8C9C: ; 0x021D8C9C push {r3, r4, r5, lr} add r5, r0, #0 bl FUN_02006278 add r4, r0, #0 add r0, r5, #0 bl FUN_0200628C ldr r2, _021D8D50 ; =0x000006B4 add r3, r0, #0 mov r1, #0xfa ldr r0, [r3, #4] lsl r1, r1, #2 ldr r2, [r4, r2] ldr r3, [r3, #0x24] add r1, r4, r1 bl MOD17_021D964C ldr r0, _021D8D54 ; =0x000006A4 ldr r0, [r4, r0] bl FUN_020145A8 ldr r0, _021D8D58 ; =0x000006A8 mov r1, #1 ldr r0, [r4, r0] bl FUN_020191A4 add r0, r4, #0 bl MOD17_021D92AC ldr r0, _021D8D5C ; =0x0000048C add r0, r4, r0 bl MOD17_021DB08C add r0, r4, #0 bl MOD17_021D912C add r0, r4, #0 bl MOD17_021D9014 add r0, r4, #0 bl MOD17_021D8E60 add r0, r4, #0 bl MOD17_021D8F40 mov r0, #0xd6 lsl r0, r0, #2 ldr r0, [r4, r0] bl MOD17_021D750C mov r0, #0xd6 mov r1, #0 lsl r0, r0, #2 str r1, [r4, r0] sub r0, #8 add r0, r4, r0 bl MOD17_021DBA1C add r0, r4, #0 bl MOD17_021D8D94 mov r0, #0 add r1, r0, #0 bl FUN_02015F10 bl FUN_02015F1C bl FUN_0201CD04 cmp r0, #1 beq _021D8D30 bl ErrorHandling _021D8D30: add r0, r5, #0 bl FUN_0200627C mov r0, #0xd bl FUN_020168D0 mov r0, #0xe bl FUN_020168D0 bl FUN_02083404 bl FUN_02033ED0 mov r0, #1 pop {r3, r4, r5, pc} nop _021D8D50: .word 0x000006B4 _021D8D54: .word 0x000006A4 _021D8D58: .word 0x000006A8 _021D8D5C: .word 0x0000048C thumb_func_end MOD17_021D8C9C thumb_func_start MOD17_021D8D60 MOD17_021D8D60: ; 0x021D8D60 push {r4, lr} sub sp, #0x18 add r4, r0, #0 bl MOD17_021D7794 add r0, r4, #0 bl MOD17_021D77D4 add r0, r4, #0 add r1, sp, #0 bl MOD17_021D7A00 add r0, r4, #0 add r1, sp, #0 bl MOD17_021D78A0 add r0, sp, #0 bl MOD17_021D7A24 add sp, #0x18 pop {r4, pc} .align 2, 0 thumb_func_end MOD17_021D8D60 thumb_func_start MOD17_021D8D8C MOD17_021D8D8C: ; 0x021D8D8C ldr r3, _021D8D90 ; =MOD17_021D786C bx r3 .align 2, 0 _021D8D90: .word MOD17_021D786C thumb_func_end MOD17_021D8D8C thumb_func_start MOD17_021D8D94 MOD17_021D8D94: ; 0x021D8D94 push {r4, lr} add r4, r0, #0 bl MOD17_021D78BC add r0, r4, #0 bl MOD17_021D7828 bl MOD17_021D77B4 pop {r4, pc} thumb_func_end MOD17_021D8D94 thumb_func_start MOD17_021D8DA8 MOD17_021D8DA8: ; 0x021D8DA8 push {r4, r5, lr} sub sp, #0x34 add r5, r0, #0 ldr r0, [r5] add r4, r1, #0 str r0, [sp, #0x10] ldr r0, [r5, #4] mov r1, #0xd6 str r0, [sp, #0x14] ldr r0, [r5, #0x10] lsl r1, r1, #2 str r0, [sp, #0x18] ldr r0, [r5, #0x28] str r0, [sp, #0x1c] ldr r0, [r5, #0x20] str r0, [sp, #0x20] ldr r0, [r5, #0x38] str r2, [sp, #0x30] str r0, [sp, #0x24] ldr r0, [r5, r1] str r0, [sp, #0x28] add r0, r1, #0 sub r0, #8 add r0, r5, r0 add r1, #0x90 str r0, [sp, #0x2c] add r0, r5, r1 add r1, sp, #0x10 bl MOD17_021D9F80 mov r0, #0xfa lsl r0, r0, #2 add r0, r5, r0 add r1, r4, #0 add r2, sp, #0 mov r3, #0xe bl MOD17_021DA024 add r0, r5, #0 add r1, sp, #0 bl MOD17_021DB6D8 mov r0, #0xfa lsl r0, r0, #2 add r0, r5, r0 bl MOD17_021DA178 mov r0, #0xfa lsl r0, r0, #2 add r0, r5, r0 mov r1, #0 mov r2, #0xe bl MOD17_021DA2F0 add sp, #0x34 pop {r4, r5, pc} thumb_func_end MOD17_021D8DA8 thumb_func_start MOD17_021D8E18 MOD17_021D8E18: ; 0x021D8E18 push {r4, lr} sub sp, #0x10 add r4, r0, #0 bl MOD17_021D8DA8 mov r0, #0x46 lsl r0, r0, #4 add r0, r4, r0 add r1, sp, #0xc add r2, sp, #8 bl MOD17_021DB878 mov r0, #0x46 lsl r0, r0, #4 add r0, r4, r0 add r1, sp, #4 add r2, sp, #0 bl MOD17_021DB960 ldr r3, [sp, #8] mov r0, #0x46 lsr r2, r3, #0x1f add r2, r3, r2 asr r3, r2, #1 ldr r2, [sp] lsl r0, r0, #4 sub r3, r3, r2 mov r2, #0x8d add r0, r4, r0 mov r1, #0xc0 sub r2, r2, r3 bl MOD17_021DB7F4 add sp, #0x10 pop {r4, pc} .align 2, 0 thumb_func_end MOD17_021D8E18 thumb_func_start MOD17_021D8E60 MOD17_021D8E60: ; 0x021D8E60 push {r4, lr} add r4, r0, #0 mov r0, #0xfa lsl r0, r0, #2 add r0, r4, r0 bl MOD17_021DA33C mov r0, #0xfa lsl r0, r0, #2 add r0, r4, r0 bl MOD17_021DA100 mov r0, #0xfa lsl r0, r0, #2 add r0, r4, r0 bl MOD17_021D9FD4 pop {r4, pc} thumb_func_end MOD17_021D8E60 thumb_func_start MOD17_021D8E84 MOD17_021D8E84: ; 0x021D8E84 push {r4, r5, r6, r7, lr} sub sp, #0x2c add r5, r0, #0 ldr r0, [r5] str r0, [sp] ldr r0, [r5, #4] str r0, [sp, #4] ldr r0, [r5, #0x10] str r0, [sp, #8] ldr r0, [r5, #0x28] str r0, [sp, #0xc] ldr r0, [r5, #0x38] str r0, [sp, #0x10] mov r0, #0x5e lsl r0, r0, #2 add r0, r5, r0 str r0, [sp, #0x28] mov r0, #0xd6 lsl r0, r0, #2 ldr r1, [r5, r0] str r1, [sp, #0x14] add r1, r0, #0 sub r1, #8 add r1, r5, r1 str r1, [sp, #0x18] mov r1, #0xe str r1, [sp, #0x1c] mov r1, #2 str r1, [sp, #0x20] mov r1, #1 add r0, r0, #4 str r1, [sp, #0x24] add r0, r5, r0 add r1, sp, #0 bl MOD17_021DA5A8 mov r0, #0xd7 lsl r0, r0, #2 mov r1, #0 add r0, r5, r0 add r2, r1, #0 bl MOD17_021DA918 mov r6, #0 _021D8EDC: mov r0, #0x5e lsl r0, r0, #2 add r0, r5, r0 add r1, r6, #0 bl MOD17_021DAFF4 add r7, r0, #0 mov r4, #0 cmp r7, #0 ble _021D8F04 _021D8EF0: mov r0, #0xd7 lsl r0, r0, #2 add r0, r5, r0 mov r1, #0 add r2, r6, #0 bl MOD17_021DA6FC add r4, r4, #1 cmp r4, r7 blt _021D8EF0 _021D8F04: add r6, r6, #1 cmp r6, #0x64 blt _021D8EDC mov r7, #0xd7 mov r6, #0x5e mov r4, #0 lsl r7, r7, #2 lsl r6, r6, #2 _021D8F14: add r0, r5, r6 add r1, r4, #0 bl MOD17_021DB008 add r2, r0, #0 cmp r2, #0x12 bge _021D8F2A add r0, r5, r7 mov r1, #1 bl MOD17_021DA6FC _021D8F2A: add r4, r4, #1 cmp r4, #0x12 blt _021D8F14 mov r0, #0xd7 lsl r0, r0, #2 add r0, r5, r0 bl MOD17_021DA844 add sp, #0x2c pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD17_021D8E84 thumb_func_start MOD17_021D8F40 MOD17_021D8F40: ; 0x021D8F40 push {r4, lr} add r4, r0, #0 mov r0, #0xd7 lsl r0, r0, #2 add r0, r4, r0 bl MOD17_021DAA60 mov r0, #0xd7 lsl r0, r0, #2 add r0, r4, r0 bl MOD17_021DA818 mov r0, #0xd7 lsl r0, r0, #2 add r0, r4, r0 bl MOD17_021DA5E0 pop {r4, pc} thumb_func_end MOD17_021D8F40 thumb_func_start MOD17_021D8F64 MOD17_021D8F64: ; 0x021D8F64 push {r3, r4, lr} sub sp, #4 add r4, r0, #0 ldr r0, _021D8FC4 ; =0x04000008 mov r2, #3 ldrh r3, [r0] mov r1, #1 bic r3, r2 orr r1, r3 strh r1, [r0] ldrh r1, [r0, #2] bic r1, r2 strh r1, [r0, #2] ldrh r3, [r0, #4] mov r1, #2 bic r3, r2 orr r1, r3 strh r1, [r0, #4] ldrh r3, [r0, #6] mov r1, #3 bic r3, r2 add r2, r3, #0 orr r2, r1 strh r2, [r0, #6] add r3, r1, #0 ldr r0, [r4, #0x38] add r2, r1, #0 sub r3, #0x13 bl FUN_020179E0 mov r0, #0xd7 lsl r0, r0, #2 add r0, r4, r0 mov r1, #0 bl MOD17_021DA9AC mov r1, #0 mov r0, #0xd7 lsl r0, r0, #2 add r0, r4, r0 mov r2, #2 add r3, r1, #0 str r1, [sp] bl MOD17_021DA9F8 add sp, #4 pop {r3, r4, pc} nop _021D8FC4: .word 0x04000008 thumb_func_end MOD17_021D8F64 thumb_func_start MOD17_021D8FC8 MOD17_021D8FC8: ; 0x021D8FC8 ldr r3, _021D8FCC ; =MOD17_021D7AE4 bx r3 .align 2, 0 _021D8FCC: .word MOD17_021D7AE4 thumb_func_end MOD17_021D8FC8 thumb_func_start MOD17_021D8FD0 MOD17_021D8FD0: ; 0x021D8FD0 push {r3, lr} sub sp, #0x30 ldr r2, [r0, #0x38] str r2, [sp] mov r2, #0x19 str r2, [sp, #4] lsl r2, r1, #1 add r1, r2, #0 add r1, #0x79 str r1, [sp, #8] mov r1, #0x85 str r1, [sp, #0xc] mov r1, #1 add r2, #0x7a str r2, [sp, #0x10] mov r2, #0 str r1, [sp, #0x1c] str r1, [sp, #0x20] mov r1, #2 str r1, [sp, #0x24] mov r1, #0xe str r1, [sp, #0x2c] ldr r1, _021D9010 ; =0x000004A8 str r2, [sp, #0x14] add r0, r0, r1 add r1, sp, #0 str r2, [sp, #0x18] str r2, [sp, #0x28] bl MOD17_021DBD04 add sp, #0x30 pop {r3, pc} .align 2, 0 _021D9010: .word 0x000004A8 thumb_func_end MOD17_021D8FD0 thumb_func_start MOD17_021D9014 MOD17_021D9014: ; 0x021D9014 ldr r1, _021D901C ; =0x000004A8 ldr r3, _021D9020 ; =MOD17_021DBD4C add r0, r0, r1 bx r3 .align 2, 0 _021D901C: .word 0x000004A8 _021D9020: .word MOD17_021DBD4C thumb_func_end MOD17_021D9014 thumb_func_start MOD17_021D9024 MOD17_021D9024: ; 0x021D9024 push {r3, r4, lr} sub sp, #4 add r4, r0, #0 ldr r0, _021D9090 ; =0x000004D4 add r1, r4, #0 add r0, r4, r0 bl MOD17_021DC304 ldr r0, _021D9090 ; =0x000004D4 mov r1, #0 ldr r2, _021D9094 ; =MOD17_021D9180 add r0, r4, r0 add r3, r4, #0 str r1, [sp] bl MOD17_021DC538 mov r0, #0 str r0, [sp] ldr r0, _021D9090 ; =0x000004D4 ldr r2, _021D9098 ; =MOD17_021D91A0 add r0, r4, r0 mov r1, #1 add r3, r4, #0 bl MOD17_021DC538 mov r0, #0 str r0, [sp] ldr r0, _021D9090 ; =0x000004D4 ldr r2, _021D909C ; =MOD17_021D91C0 add r0, r4, r0 mov r1, #2 add r3, r4, #0 bl MOD17_021DC538 mov r0, #0 str r0, [sp] ldr r0, _021D9090 ; =0x000004D4 ldr r2, _021D90A0 ; =MOD17_021D91F4 add r0, r4, r0 mov r1, #3 add r3, r4, #0 bl MOD17_021DC538 mov r0, #0 str r0, [sp] ldr r0, _021D9090 ; =0x000004D4 ldr r2, _021D90A4 ; =MOD17_021D9160 add r0, r4, r0 mov r1, #4 add r3, r4, #0 bl MOD17_021DC538 add sp, #4 pop {r3, r4, pc} .align 2, 0 _021D9090: .word 0x000004D4 _021D9094: .word MOD17_021D9180 _021D9098: .word MOD17_021D91A0 _021D909C: .word MOD17_021D91C0 _021D90A0: .word MOD17_021D91F4 _021D90A4: .word MOD17_021D9160 thumb_func_end MOD17_021D9024 thumb_func_start MOD17_021D90A8 MOD17_021D90A8: ; 0x021D90A8 push {r3, r4, lr} sub sp, #4 add r4, r0, #0 ldr r0, _021D9114 ; =0x000004D4 add r1, r4, #0 add r0, r4, r0 bl MOD17_021DC304 ldr r0, _021D9114 ; =0x000004D4 mov r1, #0 ldr r2, _021D9118 ; =MOD17_021D9180 add r0, r4, r0 add r3, r4, #0 str r1, [sp] bl MOD17_021DC538 mov r0, #0 str r0, [sp] ldr r0, _021D9114 ; =0x000004D4 ldr r2, _021D911C ; =MOD17_021D91A0 add r0, r4, r0 mov r1, #1 add r3, r4, #0 bl MOD17_021DC538 mov r0, #0 str r0, [sp] ldr r0, _021D9114 ; =0x000004D4 ldr r2, _021D9120 ; =MOD17_021D91C0 add r0, r4, r0 mov r1, #2 add r3, r4, #0 bl MOD17_021DC538 mov r0, #0 str r0, [sp] ldr r0, _021D9114 ; =0x000004D4 ldr r2, _021D9124 ; =MOD17_021D91F4 add r0, r4, r0 mov r1, #3 add r3, r4, #0 bl MOD17_021DC538 mov r0, #0 str r0, [sp] ldr r0, _021D9114 ; =0x000004D4 ldr r2, _021D9128 ; =MOD17_021D9160 add r0, r4, r0 mov r1, #4 add r3, r4, #0 bl MOD17_021DC538 add sp, #4 pop {r3, r4, pc} .align 2, 0 _021D9114: .word 0x000004D4 _021D9118: .word MOD17_021D9180 _021D911C: .word MOD17_021D91A0 _021D9120: .word MOD17_021D91C0 _021D9124: .word MOD17_021D91F4 _021D9128: .word MOD17_021D9160 thumb_func_end MOD17_021D90A8 thumb_func_start MOD17_021D912C MOD17_021D912C: ; 0x021D912C add r1, r0, #0 ldr r0, _021D9138 ; =0x000004D4 ldr r3, _021D913C ; =MOD17_021DC468 add r0, r1, r0 bx r3 nop _021D9138: .word 0x000004D4 _021D913C: .word MOD17_021DC468 thumb_func_end MOD17_021D912C thumb_func_start MOD17_021D9140 MOD17_021D9140: ; 0x021D9140 ldr r1, _021D9148 ; =0x000004D4 ldr r3, _021D914C ; =MOD17_021DC4CC add r0, r0, r1 bx r3 .align 2, 0 _021D9148: .word 0x000004D4 _021D914C: .word MOD17_021DC4CC thumb_func_end MOD17_021D9140 thumb_func_start MOD17_021D9150 MOD17_021D9150: ; 0x021D9150 ldr r1, _021D9158 ; =0x000004D4 ldr r3, _021D915C ; =MOD17_021DC4E4 add r0, r0, r1 bx r3 .align 2, 0 _021D9158: .word 0x000004D4 _021D915C: .word MOD17_021DC4E4 thumb_func_end MOD17_021D9150 thumb_func_start MOD17_021D9160 MOD17_021D9160: ; 0x021D9160 push {r4, lr} mov r0, #0xd7 add r4, r1, #0 lsl r0, r0, #2 add r0, r4, r0 bl MOD17_021DAAB8 cmp r0, #0 beq _021D9178 ldr r0, _021D917C ; =0x0000069C mov r1, #3 str r1, [r4, r0] _021D9178: pop {r4, pc} nop _021D917C: .word 0x0000069C thumb_func_end MOD17_021D9160 thumb_func_start MOD17_021D9180 MOD17_021D9180: ; 0x021D9180 push {r4, lr} mov r0, #0xd7 add r4, r1, #0 lsl r0, r0, #2 add r0, r4, r0 bl MOD17_021DAA6C add r1, r0, #0 mov r0, #0xd7 lsl r0, r0, #2 add r0, r4, r0 mov r2, #0 bl MOD17_021DA8B0 pop {r4, pc} .align 2, 0 thumb_func_end MOD17_021D9180 thumb_func_start MOD17_021D91A0 MOD17_021D91A0: ; 0x021D91A0 push {r4, lr} mov r0, #0xd7 add r4, r1, #0 lsl r0, r0, #2 add r0, r4, r0 bl MOD17_021DAA6C add r1, r0, #0 mov r0, #0xd7 lsl r0, r0, #2 add r0, r4, r0 mov r2, #1 bl MOD17_021DA8B0 pop {r4, pc} .align 2, 0 thumb_func_end MOD17_021D91A0 thumb_func_start MOD17_021D91C0 MOD17_021D91C0: ; 0x021D91C0 push {r4, lr} ldr r0, _021D91F0 ; =0x0000069C add r4, r1, #0 ldr r0, [r4, r0] cmp r0, #0 beq _021D91EC mov r0, #0xd7 lsl r0, r0, #2 add r0, r4, r0 mov r1, #0 bl MOD17_021DAA7C add r2, r0, #0 mov r0, #0xd7 lsl r0, r0, #2 add r0, r4, r0 mov r1, #0 bl MOD17_021DA918 ldr r0, _021D91F0 ; =0x0000069C mov r1, #0 str r1, [r4, r0] _021D91EC: pop {r4, pc} nop _021D91F0: .word 0x0000069C thumb_func_end MOD17_021D91C0 thumb_func_start MOD17_021D91F4 MOD17_021D91F4: ; 0x021D91F4 push {r4, lr} ldr r0, _021D9224 ; =0x0000069C add r4, r1, #0 ldr r0, [r4, r0] cmp r0, #1 beq _021D9220 mov r0, #0xd7 lsl r0, r0, #2 add r0, r4, r0 mov r1, #1 bl MOD17_021DAA7C add r2, r0, #0 mov r0, #0xd7 lsl r0, r0, #2 add r0, r4, r0 mov r1, #1 bl MOD17_021DA918 ldr r0, _021D9224 ; =0x0000069C mov r1, #1 str r1, [r4, r0] _021D9220: pop {r4, pc} nop _021D9224: .word 0x0000069C thumb_func_end MOD17_021D91F4 thumb_func_start MOD17_021D9228 MOD17_021D9228: ; 0x021D9228 push {r4, r5, lr} sub sp, #0x24 add r4, r0, #0 add r2, sp, #0 mov r0, #0 add r3, r1, #0 add r5, r2, #0 add r1, r0, #0 stmia r5!, {r0, r1} stmia r5!, {r0, r1} stmia r5!, {r0, r1} stmia r5!, {r0, r1} str r0, [r5] ldr r0, [r4, #0x38] add r1, r2, #0 str r0, [sp] ldr r0, [r4, #0x3c] mov r2, #0xf str r0, [sp, #4] add r0, r4, #0 add r0, #0x40 str r0, [sp, #8] mov r0, #0xa str r0, [sp, #0x10] ldr r0, _021D9268 ; =0x00000554 str r3, [sp, #0xc] add r0, r4, r0 bl MOD17_021DC950 add sp, #0x24 pop {r4, r5, pc} nop _021D9268: .word 0x00000554 thumb_func_end MOD17_021D9228 thumb_func_start MOD17_021D926C MOD17_021D926C: ; 0x021D926C push {r3, r4, lr} sub sp, #0x24 ldr r4, [r0, #0x38] str r4, [sp] ldr r4, [r0, #0x3c] str r1, [sp, #0x10] ldr r1, _021D92A4 ; =0x00000151 str r4, [sp, #4] str r1, [sp, #0x14] add r1, r2, #7 str r1, [sp, #0x18] mov r1, #0x3c str r1, [sp, #0x1c] ldr r1, [sp, #0x30] add r4, r0, #0 str r1, [sp, #0xc] ldr r1, _021D92A8 ; =0x00000554 add r4, #0x40 add r0, r0, r1 add r1, sp, #0 mov r2, #0x3f str r4, [sp, #8] str r3, [sp, #0x20] bl MOD17_021DC950 add sp, #0x24 pop {r3, r4, pc} nop _021D92A4: .word 0x00000151 _021D92A8: .word 0x00000554 thumb_func_end MOD17_021D926C thumb_func_start MOD17_021D92AC MOD17_021D92AC: ; 0x021D92AC ldr r1, _021D92B4 ; =0x00000554 ldr r3, _021D92B8 ; =MOD17_021DCA80 add r0, r0, r1 bx r3 .align 2, 0 _021D92B4: .word 0x00000554 _021D92B8: .word MOD17_021DCA80 thumb_func_end MOD17_021D92AC thumb_func_start MOD17_021D92BC MOD17_021D92BC: ; 0x021D92BC push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 ldr r0, _021D92E0 ; =MOD17_021D92E4 mov r1, #0x10 mov r2, #0xa mov r3, #0xd bl FUN_020061E8 bl FUN_0201B6C8 str r5, [r0] str r4, [r0, #4] mov r1, #0 str r1, [r0, #8] str r1, [r0, #0xc] pop {r3, r4, r5, pc} nop _021D92E0: .word MOD17_021D92E4 thumb_func_end MOD17_021D92BC thumb_func_start MOD17_021D92E4 MOD17_021D92E4: ; 0x021D92E4 push {r3, r4, lr} sub sp, #4 add r4, r1, #0 ldr r1, [r4, #0xc] cmp r1, #9 bls _021D92F2 b _021D9424 _021D92F2: add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021D92FE: ; jump table .short _021D9312 - _021D92FE - 2 ; case 0 .short _021D9334 - _021D92FE - 2 ; case 1 .short _021D934E - _021D92FE - 2 ; case 2 .short _021D936A - _021D92FE - 2 ; case 3 .short _021D937E - _021D92FE - 2 ; case 4 .short _021D93A4 - _021D92FE - 2 ; case 5 .short _021D93C4 - _021D92FE - 2 ; case 6 .short _021D93EA - _021D92FE - 2 ; case 7 .short _021D9406 - _021D92FE - 2 ; case 8 .short _021D941A - _021D92FE - 2 ; case 9 _021D9312: mov r0, #0xd7 ldr r1, [r4] lsl r0, r0, #2 add r0, r1, r0 mov r1, #3 mov r2, #0 bl MOD17_021DA870 cmp r0, #0 bne _021D932A bl ErrorHandling _021D932A: ldr r0, [r4, #0xc] add sp, #4 add r0, r0, #1 str r0, [r4, #0xc] pop {r3, r4, pc} _021D9334: mov r0, #0xd7 ldr r1, [r4] lsl r0, r0, #2 add r0, r1, r0 bl MOD17_021DAAB8 cmp r0, #0 beq _021D9424 ldr r0, [r4, #0xc] add sp, #4 add r0, r0, #1 str r0, [r4, #0xc] pop {r3, r4, pc} _021D934E: mov r0, #1 str r0, [sp] mov r0, #8 add r1, r0, #0 sub r1, #0x18 mov r2, #0 mov r3, #0xa bl FUN_0200A208 ldr r0, [r4, #0xc] add sp, #4 add r0, r0, #1 str r0, [r4, #0xc] pop {r3, r4, pc} _021D936A: mov r0, #1 bl FUN_0200A344 cmp r0, #0 beq _021D9424 ldr r0, [r4, #0xc] add sp, #4 add r0, r0, #1 str r0, [r4, #0xc] pop {r3, r4, pc} _021D937E: ldr r1, [r4] ldr r0, _021D9428 ; =0x000004D4 mov r2, #8 add r0, r1, r0 mov r1, #0 bl MOD17_021DC508 ldr r0, [r4, #8] add r0, r0, #1 str r0, [r4, #8] cmp r0, #8 blt _021D9424 mov r0, #0 str r0, [r4, #8] ldr r0, [r4, #0xc] add sp, #4 add r0, r0, #1 str r0, [r4, #0xc] pop {r3, r4, pc} _021D93A4: mov r1, #7 add r0, r4, #0 mvn r1, r1 mov r2, #5 mov r3, #8 bl MOD17_021D970C cmp r0, #0 beq _021D9424 mov r0, #0 str r0, [r4, #8] ldr r0, [r4, #0xc] add sp, #4 add r0, r0, #1 str r0, [r4, #0xc] pop {r3, r4, pc} _021D93C4: ldr r0, [r4] mov r1, #1 bl MOD17_021D8FD0 ldr r0, [r4] mov r1, #1 ldr r0, [r0, #0x38] mov r2, #3 mov r3, #0 bl FUN_0201AEE4 ldr r0, [r4] bl MOD17_021D9848 ldr r0, [r4, #0xc] add sp, #4 add r0, r0, #1 str r0, [r4, #0xc] pop {r3, r4, pc} _021D93EA: mov r1, #0 mov r0, #1 add r2, r1, #0 str r0, [sp] mov r0, #8 sub r2, #0x10 mov r3, #0xa bl FUN_0200A208 ldr r0, [r4, #0xc] add sp, #4 add r0, r0, #1 str r0, [r4, #0xc] pop {r3, r4, pc} _021D9406: mov r0, #1 bl FUN_0200A344 cmp r0, #0 beq _021D9424 ldr r0, [r4, #0xc] add sp, #4 add r0, r0, #1 str r0, [r4, #0xc] pop {r3, r4, pc} _021D941A: ldr r1, [r4, #4] mov r2, #1 str r2, [r1] bl FUN_0200621C _021D9424: add sp, #4 pop {r3, r4, pc} .align 2, 0 _021D9428: .word 0x000004D4 thumb_func_end MOD17_021D92E4 thumb_func_start MOD17_021D942C MOD17_021D942C: ; 0x021D942C push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 ldr r0, _021D9450 ; =MOD17_021D9454 mov r1, #0x10 mov r2, #0xa mov r3, #0xd bl FUN_020061E8 bl FUN_0201B6C8 str r5, [r0] str r4, [r0, #4] mov r1, #0 str r1, [r0, #8] str r1, [r0, #0xc] pop {r3, r4, r5, pc} nop _021D9450: .word MOD17_021D9454 thumb_func_end MOD17_021D942C thumb_func_start MOD17_021D9454 MOD17_021D9454: ; 0x021D9454 push {r3, r4, lr} sub sp, #4 add r4, r1, #0 ldr r1, [r4, #0xc] cmp r1, #9 bls _021D9462 b _021D95A4 _021D9462: add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021D946E: ; jump table .short _021D9482 - _021D946E - 2 ; case 0 .short _021D949E - _021D946E - 2 ; case 1 .short _021D94B2 - _021D946E - 2 ; case 2 .short _021D94E6 - _021D946E - 2 ; case 3 .short _021D9506 - _021D946E - 2 ; case 4 .short _021D952E - _021D946E - 2 ; case 5 .short _021D954A - _021D946E - 2 ; case 6 .short _021D955E - _021D946E - 2 ; case 7 .short _021D9580 - _021D946E - 2 ; case 8 .short _021D959A - _021D946E - 2 ; case 9 _021D9482: mov r0, #1 str r0, [sp] mov r0, #8 add r1, r0, #0 sub r1, #0x18 mov r2, #0 mov r3, #0xa bl FUN_0200A208 ldr r0, [r4, #0xc] add sp, #4 add r0, r0, #1 str r0, [r4, #0xc] pop {r3, r4, pc} _021D949E: mov r0, #1 bl FUN_0200A344 cmp r0, #0 beq _021D95A4 ldr r0, [r4, #0xc] add sp, #4 add r0, r0, #1 str r0, [r4, #0xc] pop {r3, r4, pc} _021D94B2: ldr r0, [r4] bl MOD17_021D98D0 ldr r0, [r4] bl MOD17_021D8F64 ldr r0, [r4] bl MOD17_021D9150 ldr r0, [r4] mov r1, #0 bl MOD17_021D8FD0 ldr r0, [r4] mov r2, #3 add r3, r2, #0 ldr r0, [r0, #0x38] mov r1, #1 sub r3, #0x2b bl FUN_0201AEE4 ldr r0, [r4, #0xc] add sp, #4 add r0, r0, #1 str r0, [r4, #0xc] pop {r3, r4, pc} _021D94E6: mov r1, #8 add r2, r1, #0 add r0, r4, #0 sub r2, #0xd add r3, r1, #0 bl MOD17_021D970C cmp r0, #0 beq _021D95A4 mov r0, #0 str r0, [r4, #8] ldr r0, [r4, #0xc] add sp, #4 add r0, r0, #1 str r0, [r4, #0xc] pop {r3, r4, pc} _021D9506: ldr r1, [r4] ldr r0, _021D95A8 ; =0x000004D4 add r0, r1, r0 mov r1, #0 add r2, r1, #0 sub r2, #8 bl MOD17_021DC508 ldr r0, [r4, #8] add r0, r0, #1 str r0, [r4, #8] cmp r0, #8 blt _021D95A4 mov r0, #0 str r0, [r4, #8] ldr r0, [r4, #0xc] add sp, #4 add r0, r0, #1 str r0, [r4, #0xc] pop {r3, r4, pc} _021D952E: mov r1, #0 mov r0, #1 add r2, r1, #0 str r0, [sp] mov r0, #8 sub r2, #0x10 mov r3, #0xa bl FUN_0200A208 ldr r0, [r4, #0xc] add sp, #4 add r0, r0, #1 str r0, [r4, #0xc] pop {r3, r4, pc} _021D954A: mov r0, #1 bl FUN_0200A344 cmp r0, #0 beq _021D95A4 ldr r0, [r4, #0xc] add sp, #4 add r0, r0, #1 str r0, [r4, #0xc] pop {r3, r4, pc} _021D955E: mov r0, #0xd7 ldr r1, [r4] lsl r0, r0, #2 add r0, r1, r0 mov r1, #0 add r2, r1, #0 bl MOD17_021DA870 cmp r0, #0 bne _021D9576 bl ErrorHandling _021D9576: ldr r0, [r4, #0xc] add sp, #4 add r0, r0, #1 str r0, [r4, #0xc] pop {r3, r4, pc} _021D9580: mov r0, #0xd7 ldr r1, [r4] lsl r0, r0, #2 add r0, r1, r0 bl MOD17_021DAAB8 cmp r0, #0 beq _021D95A4 ldr r0, [r4, #0xc] add sp, #4 add r0, r0, #1 str r0, [r4, #0xc] pop {r3, r4, pc} _021D959A: ldr r1, [r4, #4] mov r2, #1 str r2, [r1] bl FUN_0200621C _021D95A4: add sp, #4 pop {r3, r4, pc} .align 2, 0 _021D95A8: .word 0x000004D4 thumb_func_end MOD17_021D9454 thumb_func_start MOD17_021D95AC MOD17_021D95AC: ; 0x021D95AC push {r3, r4, r5, r6, r7, lr} str r1, [sp] add r6, r0, #0 add r4, r2, #0 bl FUN_02027310 ldr r1, [sp] ldr r2, [sp] add r1, #0x84 ldr r1, [r1] add r0, r6, #0 add r2, #0x78 bl FUN_02027348 cmp r4, #0 beq _021D95EC add r0, r4, #0 mov r1, #0xd bl FUN_020239A0 add r5, r0, #0 add r0, r4, #0 bl FUN_020239CC add r2, r0, #0 add r0, r6, #0 add r1, r5, #0 bl FUN_020274F0 add r0, r5, #0 bl FUN_02021A20 _021D95EC: ldr r0, [sp] mov r5, #0 add r7, r0, #0 ldr r4, [r0, #0x1c] add r7, #0x14 cmp r4, r7 beq _021D9612 _021D95FA: ldr r0, [r4, #4] cmp r0, #0 bne _021D960C ldr r1, [r4] add r0, r6, #0 add r2, r5, #0 bl FUN_02027380 add r5, r5, #1 _021D960C: ldr r4, [r4, #8] cmp r4, r7 bne _021D95FA _021D9612: ldr r0, [sp] ldr r4, [r0, #0xc] add r7, r0, #4 cmp r4, r7 beq _021D9634 _021D961C: ldr r0, [r4, #4] cmp r0, #0 bne _021D962E ldr r1, [r4] add r0, r6, #0 add r2, r5, #0 bl FUN_02027380 add r5, r5, #1 _021D962E: ldr r4, [r4, #8] cmp r4, r7 bne _021D961C _021D9634: ldr r1, [sp] add r0, r6, #0 ldr r1, [r1, #0x74] lsl r1, r1, #0x18 lsr r1, r1, #0x18 bl FUN_02027448 add r0, r6, #0 bl FUN_020272D4 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD17_021D95AC thumb_func_start MOD17_021D964C MOD17_021D964C: ; 0x021D964C push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r7, r0, #0 str r1, [sp] mov r0, #0xd mov r1, #0xac str r2, [sp, #4] add r4, r3, #0 bl FUN_02016998 add r6, r0, #0 bl MOD17_021D9CD4 ldr r1, [sp] ldr r2, [sp] add r1, #0x84 ldr r1, [r1] add r0, r7, #0 add r2, #0x78 bl FUN_02027778 cmp r4, #0 beq _021D969A add r0, r4, #0 mov r1, #0xd bl FUN_020239A0 add r5, r0, #0 add r0, r4, #0 bl FUN_020239CC add r2, r0, #0 add r0, r7, #0 add r1, r5, #0 bl FUN_02027A58 add r0, r5, #0 bl FUN_02021A20 _021D969A: ldr r1, [sp] add r0, r6, #0 add r1, #0x14 mov r2, #1 bl MOD17_021D9E00 ldr r1, [sp] add r0, r6, #0 add r1, r1, #4 mov r2, #0 bl MOD17_021D9E00 add r0, r6, #0 bl MOD17_021D9D14 mov r4, #0 add r5, r4, #0 _021D96BC: add r0, r6, #0 add r1, r5, #0 bl MOD17_021D9D84 cmp r0, #1 bne _021D96DE add r0, r6, #0 add r1, r5, #0 bl MOD17_021D9D70 add r1, r0, #0 ldr r1, [r1] add r0, r7, #0 add r2, r4, #0 bl FUN_020277B4 add r4, r4, #1 _021D96DE: add r5, r5, #1 cmp r5, #0x15 blt _021D96BC ldr r1, [sp] add r0, r7, #0 ldr r1, [r1, #0x74] lsl r1, r1, #0x18 lsr r1, r1, #0x18 bl FUN_0202787C ldr r1, [sp, #4] add r0, r7, #0 bl FUN_020278AC add r0, r7, #0 bl FUN_02027710 add r0, r6, #0 bl FUN_02016A18 add sp, #8 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD17_021D964C thumb_func_start MOD17_021D970C MOD17_021D970C: ; 0x021D970C push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 ldr r0, [r5, #8] add r4, r1, #0 add r6, r2, #0 add r7, r3, #0 cmp r0, #8 bge _021D9728 mov r0, #0xfa ldr r3, [r5] lsl r0, r0, #2 add r0, r3, r0 bl MOD17_021DA118 _021D9728: ldr r0, [r5, #8] cmp r0, #1 blt _021D9766 ldr r0, [r5] mov r1, #2 ldr r0, [r0, #0x38] add r2, r1, #0 add r3, r4, #0 bl FUN_0201AEE4 ldr r0, [r5] mov r1, #1 ldr r0, [r0, #0x38] mov r2, #2 add r3, r4, #0 bl FUN_0201AEE4 ldr r0, [r5] mov r1, #2 ldr r0, [r0, #0x38] mov r2, #5 add r3, r6, #0 bl FUN_0201AEE4 ldr r0, [r5] mov r1, #1 ldr r0, [r0, #0x38] mov r2, #5 add r3, r6, #0 bl FUN_0201AEE4 _021D9766: ldr r0, [r5, #8] add r0, r0, #1 str r0, [r5, #8] cmp r0, r7 ble _021D9774 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D9774: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD17_021D970C thumb_func_start MOD17_021D9778 MOD17_021D9778: ; 0x021D9778 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x38] mov r1, #3 bl FUN_02018744 mov r2, #0 ldr r0, [r4, #0x38] mov r1, #3 add r3, r2, #0 bl FUN_020179E0 mov r1, #3 ldr r0, [r4, #0x38] add r2, r1, #0 mov r3, #0 bl FUN_020179E0 add r0, r4, #0 mov r1, #0 bl MOD17_021D9B74 ldr r1, _021D97FC ; =0x04000008 mov r3, #3 ldrh r2, [r1] mov r0, #2 bic r2, r3 orr r0, r2 strh r0, [r1] ldrh r2, [r1, #2] mov r0, #1 bic r2, r3 orr r2, r0 strh r2, [r1, #2] ldrh r4, [r1, #4] mov r2, #3 bic r4, r3 orr r2, r4 strh r2, [r1, #4] ldrh r2, [r1, #6] bic r2, r3 strh r2, [r1, #6] mov r1, #0 bl FUN_0201E6E4 mov r0, #2 mov r1, #0 bl FUN_0201E6E4 mov r0, #4 mov r1, #0 bl FUN_0201E6E4 mov r0, #8 mov r1, #1 bl FUN_0201E6E4 mov r0, #0x10 mov r1, #1 bl FUN_0201E6E4 mov r0, #0 bl FUN_0200E394 pop {r4, pc} nop _021D97FC: .word 0x04000008 thumb_func_end MOD17_021D9778 thumb_func_start MOD17_021D9800 MOD17_021D9800: ; 0x021D9800 push {r4, lr} add r4, r0, #0 bl MOD17_021D9BCC ldr r0, [r4, #0x38] mov r1, #3 bl FUN_02018744 add r0, r4, #0 bl MOD17_021D8F64 mov r0, #0 add r1, r0, #0 bl FUN_0200E3A0 ldr r0, [r4, #0x3c] mov r1, #1 bl FUN_0201FD98 mov r0, #1 add r1, r0, #0 bl FUN_0201E6E4 mov r0, #2 mov r1, #1 bl FUN_0201E6E4 mov r0, #4 mov r1, #1 bl FUN_0201E6E4 mov r0, #0x10 mov r1, #1 bl FUN_0201E6E4 pop {r4, pc} thumb_func_end MOD17_021D9800 thumb_func_start MOD17_021D9848 MOD17_021D9848: ; 0x021D9848 push {r3, r4, lr} sub sp, #0x14 add r4, r0, #0 ldr r0, [r4, #0x38] mov r1, #3 bl FUN_02018744 mov r2, #0 ldr r0, [r4, #0x38] mov r1, #3 add r3, r2, #0 bl FUN_020179E0 mov r1, #3 ldr r0, [r4, #0x38] add r2, r1, #0 mov r3, #0 bl FUN_020179E0 ldr r0, [r4, #0x38] mov r1, #0x19 str r0, [sp] mov r0, #3 str r0, [sp, #4] mov r0, #0 str r0, [sp, #8] mov r0, #5 str r0, [sp, #0xc] add r0, sp, #0 strb r1, [r0, #0x10] mov r1, #4 strb r1, [r0, #0x11] ldr r0, _021D98C8 ; =0x000006A4 add r1, sp, #0 ldr r0, [r4, r0] bl FUN_020145C8 add r0, r4, #0 mov r1, #1 bl MOD17_021D9B4C ldr r0, _021D98CC ; =0x04000008 mov r2, #3 ldrh r3, [r0] mov r1, #2 bic r3, r2 orr r1, r3 strh r1, [r0] ldrh r3, [r0, #2] mov r1, #1 bic r3, r2 orr r1, r3 strh r1, [r0, #2] ldrh r3, [r0, #4] mov r1, #3 bic r3, r2 orr r1, r3 strh r1, [r0, #4] ldrh r1, [r0, #6] bic r1, r2 strh r1, [r0, #6] add sp, #0x14 pop {r3, r4, pc} nop _021D98C8: .word 0x000006A4 _021D98CC: .word 0x04000008 thumb_func_end MOD17_021D9848 thumb_func_start MOD17_021D98D0 MOD17_021D98D0: ; 0x021D98D0 push {r4, lr} add r4, r0, #0 ldr r0, _021D98EC ; =0x000006A4 ldr r0, [r4, r0] bl FUN_020146C4 add r0, r4, #0 bl MOD17_021D9B6C ldr r0, [r4, #0x38] mov r1, #3 bl FUN_02018744 pop {r4, pc} .align 2, 0 _021D98EC: .word 0x000006A4 thumb_func_end MOD17_021D98D0 thumb_func_start MOD17_021D98F0 MOD17_021D98F0: ; 0x021D98F0 push {r3, lr} ldr r1, _021D9914 ; =0x000006A4 ldr r0, [r0, r1] bl FUN_0201466C cmp r0, #0 beq _021D9908 cmp r0, #1 beq _021D990C cmp r0, #2 beq _021D9910 pop {r3, pc} _021D9908: mov r0, #4 pop {r3, pc} _021D990C: mov r0, #8 pop {r3, pc} _021D9910: mov r0, #9 pop {r3, pc} .align 2, 0 _021D9914: .word 0x000006A4 thumb_func_end MOD17_021D98F0 thumb_func_start MOD17_021D9918 MOD17_021D9918: ; 0x021D9918 push {r3, r4, r5, r6, r7, lr} sub sp, #0x18 add r5, r0, #0 ldr r0, _021D99D0 ; =0x000006C8 str r1, [sp, #0x14] ldr r0, [r5, r0] add r7, r2, #0 add r4, r3, #0 bl FUN_02025084 add r6, r0, #0 mov r0, #0 mov r1, #0xe0 mov r2, #0xe bl FUN_02002EEC str r4, [sp] add r0, sp, #0x20 ldrb r1, [r0, #0x10] mov r2, #3 add r3, r7, #0 str r1, [sp, #4] ldrb r0, [r0, #0x14] ldr r1, _021D99D4 ; =0x000006A8 str r0, [sp, #8] mov r0, #7 str r0, [sp, #0xc] mov r0, #0x92 str r0, [sp, #0x10] ldr r0, [r5, #0x38] ldr r1, [r5, r1] bl FUN_02019064 ldr r0, _021D99D4 ; =0x000006A8 mov r1, #0xf ldr r0, [r5, r0] bl FUN_02019620 lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp] mov r0, #0xe str r0, [sp, #4] ldr r0, [r5, #0x38] mov r1, #3 mov r2, #0x74 mov r3, #8 bl FUN_0200CD68 ldr r0, _021D99D4 ; =0x000006A8 mov r1, #0 ldr r0, [r5, r0] mov r2, #0x74 mov r3, #8 bl FUN_0200D0BC ldr r2, _021D99D8 ; =0x00000151 mov r0, #0 mov r1, #0x1a mov r3, #0xd bl FUN_0200A86C ldr r1, [sp, #0x14] add r6, r0, #0 bl FUN_0200A914 add r4, r0, #0 mov r3, #0 str r3, [sp] ldr r0, _021D99DC ; =0x0001020F str r3, [sp, #4] str r0, [sp, #8] ldr r0, _021D99D4 ; =0x000006A8 str r3, [sp, #0xc] ldr r0, [r5, r0] mov r1, #1 add r2, r4, #0 bl FUN_0201BDE0 add r0, r4, #0 bl FUN_02021A20 add r0, r6, #0 bl FUN_0200A8B8 ldr r0, _021D99D4 ; =0x000006A8 ldr r0, [r5, r0] bl FUN_020191D0 add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} nop _021D99D0: .word 0x000006C8 _021D99D4: .word 0x000006A8 _021D99D8: .word 0x00000151 _021D99DC: .word 0x0001020F thumb_func_end MOD17_021D9918 thumb_func_start MOD17_021D99E0 MOD17_021D99E0: ; 0x021D99E0 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r5, r0, #0 ldr r0, _021D9A58 ; =0x000006A8 add r4, r1, #0 ldr r0, [r5, r0] mov r1, #0xf bl FUN_02019620 ldr r2, _021D9A5C ; =0x00000151 mov r0, #0 mov r1, #0x1a mov r3, #0xd bl FUN_0200A86C add r1, r4, #0 add r7, r0, #0 bl FUN_0200A914 add r6, r0, #0 mov r0, #1 lsl r0, r0, #8 mov r1, #0xd bl FUN_020219F4 add r4, r0, #0 ldr r0, _021D9A60 ; =0x000006D4 add r1, r4, #0 ldr r0, [r5, r0] add r2, r6, #0 bl FUN_0200B7B8 mov r3, #0 str r3, [sp] ldr r0, _021D9A64 ; =0x0001020F str r3, [sp, #4] str r0, [sp, #8] ldr r0, _021D9A58 ; =0x000006A8 str r3, [sp, #0xc] ldr r0, [r5, r0] mov r1, #1 add r2, r4, #0 bl FUN_0201BDE0 add r0, r4, #0 bl FUN_02021A20 add r0, r6, #0 bl FUN_02021A20 add r0, r7, #0 bl FUN_0200A8B8 ldr r0, _021D9A58 ; =0x000006A8 ldr r0, [r5, r0] bl FUN_020191D0 add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} nop _021D9A58: .word 0x000006A8 _021D9A5C: .word 0x00000151 _021D9A60: .word 0x000006D4 _021D9A64: .word 0x0001020F thumb_func_end MOD17_021D99E0 thumb_func_start MOD17_021D9A68 MOD17_021D9A68: ; 0x021D9A68 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r5, r0, #0 mov r0, #0x6d lsl r0, r0, #4 ldr r0, [r5, r0] add r4, r1, #0 cmp r0, #0 beq _021D9A7E bl ErrorHandling _021D9A7E: ldr r0, _021D9B08 ; =0x000006A8 mov r1, #0xf ldr r0, [r5, r0] bl FUN_02019620 ldr r2, _021D9B0C ; =0x00000151 mov r0, #0 mov r1, #0x1a mov r3, #0xd bl FUN_0200A86C add r1, r4, #0 add r7, r0, #0 bl FUN_0200A914 add r4, r0, #0 mov r0, #1 lsl r0, r0, #8 mov r1, #0xd bl FUN_020219F4 mov r1, #0x6d lsl r1, r1, #4 str r0, [r5, r1] add r0, r1, #4 ldr r0, [r5, r0] ldr r1, [r5, r1] add r2, r4, #0 bl FUN_0200B7B8 ldr r0, _021D9B10 ; =0x000006C4 ldr r1, [r5, r0] ldrb r1, [r1, #0x16] cmp r1, #0 bne _021D9ACE add r0, r0, #4 ldr r0, [r5, r0] bl FUN_02024FF4 b _021D9AD0 _021D9ACE: mov r0, #1 _021D9AD0: mov r3, #0 str r3, [sp] str r0, [sp, #4] ldr r0, _021D9B14 ; =0x0001020F ldr r2, _021D9B08 ; =0x000006A8 str r0, [sp, #8] str r3, [sp, #0xc] ldr r0, [r5, r2] add r2, #0x28 ldr r2, [r5, r2] mov r1, #1 bl FUN_0201BDE0 add r6, r0, #0 add r0, r4, #0 bl FUN_02021A20 add r0, r7, #0 bl FUN_0200A8B8 ldr r0, _021D9B08 ; =0x000006A8 ldr r0, [r5, r0] bl FUN_020191D0 add r0, r6, #0 add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} nop _021D9B08: .word 0x000006A8 _021D9B0C: .word 0x00000151 _021D9B10: .word 0x000006C4 _021D9B14: .word 0x0001020F thumb_func_end MOD17_021D9A68 thumb_func_start MOD17_021D9B18 MOD17_021D9B18: ; 0x021D9B18 push {r4, lr} add r4, r0, #0 mov r0, #0x6d lsl r0, r0, #4 ldr r0, [r4, r0] bl FUN_02021A20 mov r0, #0x6d mov r1, #0 lsl r0, r0, #4 str r1, [r4, r0] pop {r4, pc} thumb_func_end MOD17_021D9B18 thumb_func_start MOD17_021D9B30 MOD17_021D9B30: ; 0x021D9B30 push {r4, lr} add r4, r0, #0 ldr r0, _021D9B48 ; =0x000006A8 ldr r0, [r4, r0] bl FUN_02019570 ldr r0, _021D9B48 ; =0x000006A8 ldr r0, [r4, r0] bl FUN_02019178 pop {r4, pc} nop _021D9B48: .word 0x000006A8 thumb_func_end MOD17_021D9B30 thumb_func_start MOD17_021D9B4C MOD17_021D9B4C: ; 0x021D9B4C push {r3, lr} sub sp, #8 mov r2, #0x1b str r2, [sp] mov r2, #2 mov r3, #1 str r2, [sp, #4] bl MOD17_021D9918 add sp, #8 pop {r3, pc} .align 2, 0 thumb_func_end MOD17_021D9B4C thumb_func_start MOD17_021D9B64 MOD17_021D9B64: ; 0x021D9B64 ldr r3, _021D9B68 ; =MOD17_021D99E0 bx r3 .align 2, 0 _021D9B68: .word MOD17_021D99E0 thumb_func_end MOD17_021D9B64 thumb_func_start MOD17_021D9B6C MOD17_021D9B6C: ; 0x021D9B6C ldr r3, _021D9B70 ; =MOD17_021D9B30 bx r3 .align 2, 0 _021D9B70: .word MOD17_021D9B30 thumb_func_end MOD17_021D9B6C thumb_func_start MOD17_021D9B74 MOD17_021D9B74: ; 0x021D9B74 push {r4, lr} sub sp, #8 mov r2, #0x1b str r2, [sp] mov r2, #4 str r2, [sp, #4] mov r2, #2 mov r3, #0x13 add r4, r0, #0 bl MOD17_021D9918 mov r0, #0xd bl FUN_0200AA80 ldr r1, _021D9B98 ; =0x000006D4 str r0, [r4, r1] add sp, #8 pop {r4, pc} .align 2, 0 _021D9B98: .word 0x000006D4 thumb_func_end MOD17_021D9B74 thumb_func_start MOD17_021D9B9C MOD17_021D9B9C: ; 0x021D9B9C ldr r3, _021D9BA0 ; =MOD17_021D9A68 bx r3 .align 2, 0 _021D9BA0: .word MOD17_021D9A68 thumb_func_end MOD17_021D9B9C thumb_func_start MOD17_021D9BA4 MOD17_021D9BA4: ; 0x021D9BA4 push {r3, lr} sub sp, #8 mov r3, #0 str r3, [sp] mov r3, #1 str r3, [sp, #4] ldr r3, _021D9BC0 ; =0x000006D4 ldr r0, [r0, r3] mov r3, #2 bl FUN_0200AD38 add sp, #8 pop {r3, pc} nop _021D9BC0: .word 0x000006D4 thumb_func_end MOD17_021D9BA4 thumb_func_start MOD17_021D9BC4 MOD17_021D9BC4: ; 0x021D9BC4 ldr r3, _021D9BC8 ; =MOD17_021D9B18 bx r3 .align 2, 0 _021D9BC8: .word MOD17_021D9B18 thumb_func_end MOD17_021D9BC4 thumb_func_start MOD17_021D9BCC MOD17_021D9BCC: ; 0x021D9BCC push {r4, lr} add r4, r0, #0 bl MOD17_021D9B30 ldr r0, _021D9BE4 ; =0x000006D4 ldr r0, [r4, r0] bl FUN_0200AB18 ldr r0, _021D9BE4 ; =0x000006D4 mov r1, #0 str r1, [r4, r0] pop {r4, pc} .align 2, 0 _021D9BE4: .word 0x000006D4 thumb_func_end MOD17_021D9BCC thumb_func_start MOD17_021D9BE8 MOD17_021D9BE8: ; 0x021D9BE8 push {r4, lr} add r4, r0, #0 mov r0, #0xfa lsl r0, r0, #2 add r0, r4, r0 bl MOD17_021DA368 add r1, r0, #0 ldr r0, _021D9C04 ; =0x00000554 add r0, r4, r0 bl MOD17_021DCBD8 pop {r4, pc} nop _021D9C04: .word 0x00000554 thumb_func_end MOD17_021D9BE8 thumb_func_start MOD17_021D9C08 MOD17_021D9C08: ; 0x021D9C08 push {r4, lr} cmp r0, #3 bhi _021D9C32 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021D9C1A: ; jump table .short _021D9C22 - _021D9C1A - 2 ; case 0 .short _021D9C26 - _021D9C1A - 2 ; case 1 .short _021D9C2A - _021D9C1A - 2 ; case 2 .short _021D9C2E - _021D9C1A - 2 ; case 3 _021D9C22: mov r4, #5 b _021D9C36 _021D9C26: mov r4, #0xa b _021D9C36 _021D9C2A: mov r4, #0xf b _021D9C36 _021D9C2E: mov r4, #0x14 b _021D9C36 _021D9C32: bl ErrorHandling _021D9C36: add r0, r4, #0 pop {r4, pc} .align 2, 0 thumb_func_end MOD17_021D9C08 thumb_func_start MOD17_021D9C3C MOD17_021D9C3C: ; 0x021D9C3C push {r3, r4, lr} sub sp, #0x14 add r4, r0, #0 ldr r0, [r4, #0x38] mov r1, #0x19 str r0, [sp] mov r0, #3 str r0, [sp, #4] mov r0, #0 str r0, [sp, #8] mov r0, #5 str r0, [sp, #0xc] add r0, sp, #0 strb r1, [r0, #0x10] mov r1, #4 strb r1, [r0, #0x11] ldr r0, _021D9CA4 ; =0x000006A4 ldr r0, [r4, r0] bl FUN_020146C4 ldr r0, _021D9CA4 ; =0x000006A4 add r1, sp, #0 ldr r0, [r4, r0] bl FUN_020145C8 add r0, r4, #0 mov r1, #2 bl MOD17_021D9B64 ldr r0, _021D9CA8 ; =0x04000008 mov r2, #3 ldrh r3, [r0] mov r1, #2 bic r3, r2 orr r1, r3 strh r1, [r0] ldrh r3, [r0, #2] mov r1, #1 bic r3, r2 orr r1, r3 strh r1, [r0, #2] ldrh r3, [r0, #4] mov r1, #3 bic r3, r2 orr r1, r3 strh r1, [r0, #4] ldrh r1, [r0, #6] bic r1, r2 strh r1, [r0, #6] add sp, #0x14 pop {r3, r4, pc} nop _021D9CA4: .word 0x000006A4 _021D9CA8: .word 0x04000008 thumb_func_end MOD17_021D9C3C thumb_func_start MOD17_021D9CAC MOD17_021D9CAC: ; 0x021D9CAC push {r3, lr} ldr r1, _021D9CD0 ; =0x000006A4 ldr r0, [r0, r1] bl FUN_0201466C cmp r0, #0 beq _021D9CC4 cmp r0, #1 beq _021D9CC8 cmp r0, #2 beq _021D9CCC pop {r3, pc} _021D9CC4: mov r0, #5 pop {r3, pc} _021D9CC8: mov r0, #6 pop {r3, pc} _021D9CCC: mov r0, #7 pop {r3, pc} .align 2, 0 _021D9CD0: .word 0x000006A4 thumb_func_end MOD17_021D9CAC thumb_func_start MOD17_021D9CD4 MOD17_021D9CD4: ; 0x021D9CD4 ldr r3, _021D9CDC ; =0x020DF4A4 mov r1, #0 mov r2, #0xac bx r3 .align 2, 0 _021D9CDC: .word 0x020DF4A4 thumb_func_end MOD17_021D9CD4 thumb_func_start MOD17_021D9CE0 MOD17_021D9CE0: ; 0x021D9CE0 push {r4, r5, r6, lr} add r4, r1, #0 add r5, r0, #0 add r6, r2, #0 cmp r4, #0 bne _021D9CF0 bl ErrorHandling _021D9CF0: add r0, r5, #0 add r0, #0xa8 ldr r0, [r0] lsl r0, r0, #3 str r4, [r5, r0] add r0, r5, #0 add r0, #0xa8 ldr r0, [r0] lsl r0, r0, #3 add r0, r5, r0 str r6, [r0, #4] add r0, r5, #0 add r0, #0xa8 ldr r0, [r0] add r5, #0xa8 add r0, r0, #1 str r0, [r5] pop {r4, r5, r6, pc} thumb_func_end MOD17_021D9CE0 thumb_func_start MOD17_021D9D14 MOD17_021D9D14: ; 0x021D9D14 push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 add r0, #0xa8 ldr r2, [r0] mov r1, #0 cmp r2, #0 ble _021D9D6C _021D9D22: lsl r0, r1, #3 add r7, r6, r0 ldr r0, [r7, #4] cmp r0, #1 bne _021D9D60 mov r4, #0 cmp r2, #0 ble _021D9D58 add r5, r6, #0 _021D9D34: ldr r0, [r5, #4] cmp r0, #0 bne _021D9D4A add r0, r7, #0 add r1, r5, #0 bl MOD17_021D9DA4 cmp r0, #1 bne _021D9D4A mov r0, #1 str r0, [r5, #4] _021D9D4A: add r0, r6, #0 add r0, #0xa8 ldr r0, [r0] add r4, r4, #1 add r5, #8 cmp r4, r0 blt _021D9D34 _021D9D58: mov r0, #2 str r0, [r7, #4] mov r1, #0 b _021D9D62 _021D9D60: add r1, r1, #1 _021D9D62: add r0, r6, #0 add r0, #0xa8 ldr r2, [r0] cmp r1, r2 blt _021D9D22 _021D9D6C: pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD17_021D9D14 thumb_func_start MOD17_021D9D70 MOD17_021D9D70: ; 0x021D9D70 push {r3, r4, r5, lr} add r5, r1, #0 add r4, r0, #0 cmp r5, #0x15 blo _021D9D7E bl ErrorHandling _021D9D7E: lsl r0, r5, #3 ldr r0, [r4, r0] pop {r3, r4, r5, pc} thumb_func_end MOD17_021D9D70 thumb_func_start MOD17_021D9D84 MOD17_021D9D84: ; 0x021D9D84 push {r3, r4, r5, lr} add r5, r1, #0 add r4, r0, #0 cmp r5, #0x15 blo _021D9D92 bl ErrorHandling _021D9D92: lsl r0, r5, #3 add r0, r4, r0 ldr r0, [r0, #4] cmp r0, #0 beq _021D9DA0 mov r0, #1 pop {r3, r4, r5, pc} _021D9DA0: mov r0, #0 pop {r3, r4, r5, pc} thumb_func_end MOD17_021D9D84 thumb_func_start MOD17_021D9DA4 MOD17_021D9DA4: ; 0x021D9DA4 push {r4, r5, r6, r7, lr} sub sp, #0x2c add r4, r0, #0 ldr r0, [r4] add r5, r1, #0 add r1, sp, #0x28 add r2, sp, #0x24 bl MOD17_021DBCC8 add r0, sp, #0x20 str r0, [sp] ldr r0, [r4] add r1, sp, #0x14 add r2, sp, #0x18 add r3, sp, #0x1c bl MOD17_021DBC70 mov r4, #0 add r6, sp, #0x10 add r7, sp, #0xc _021D9DCC: str r4, [sp] str r6, [sp, #4] str r7, [sp, #8] ldr r0, [sp, #0x14] ldr r1, [sp, #0x18] ldr r2, [sp, #0x1c] ldr r3, [sp, #0x20] bl MOD17_021D9E78 ldr r0, [r5] ldr r1, [sp, #0x10] ldr r2, [sp, #0xc] bl MOD17_021DBAE8 cmp r0, #1 bne _021D9DF2 add sp, #0x2c mov r0, #1 pop {r4, r5, r6, r7, pc} _021D9DF2: add r4, r4, #1 cmp r4, #0x10 blt _021D9DCC mov r0, #0 add sp, #0x2c pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD17_021D9DA4 thumb_func_start MOD17_021D9E00 MOD17_021D9E00: ; 0x021D9E00 push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 ldr r4, [r5, #8] add r6, r0, #0 add r7, r2, #0 cmp r4, r5 beq _021D9E24 _021D9E0E: ldr r0, [r4, #4] cmp r0, #0 bne _021D9E1E add r0, r6, #0 add r1, r4, #0 add r2, r7, #0 bl MOD17_021D9CE0 _021D9E1E: ldr r4, [r4, #8] cmp r4, r5 bne _021D9E0E _021D9E24: pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD17_021D9E00 thumb_func_start MOD17_021D9E28 MOD17_021D9E28: ; 0x021D9E28 push {r3, r4, r5, lr} ldr r2, _021D9E70 ; =0x000006C4 mov r1, #0 ldr r2, [r0, r2] ldrb r3, [r2, #0x16] cmp r3, #0 bne _021D9E40 ldr r2, _021D9E74 ; =0x00000554 add r0, r0, r2 bl MOD17_021DCBEC pop {r3, r4, r5, pc} _021D9E40: ldrb r4, [r2, #0x14] ldrb r3, [r2, #0x15] cmp r4, r3 bne _021D9E6C add r4, r1, #0 add r5, r2, #0 _021D9E4C: ldrb r3, [r5, #0x10] cmp r3, #1 bne _021D9E54 add r1, r1, #1 _021D9E54: add r4, r4, #1 add r5, r5, #1 cmp r4, #4 blt _021D9E4C ldrb r2, [r2, #0x17] cmp r2, r1 bgt _021D9E6C ldr r1, _021D9E74 ; =0x00000554 add r0, r0, r1 mov r1, #0 bl MOD17_021DCBEC _021D9E6C: pop {r3, r4, r5, pc} nop _021D9E70: .word 0x000006C4 _021D9E74: .word 0x00000554 thumb_func_end MOD17_021D9E28 thumb_func_start MOD17_021D9E78 MOD17_021D9E78: ; 0x021D9E78 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r6, r0, #0 str r1, [sp] add r7, r2, #0 add r0, r3, #0 sub r0, r0, r7 mov r1, #3 str r3, [sp, #4] ldr r4, [sp, #0x2c] ldr r5, [sp, #0x30] bl _u32_div_f add r1, r7, r0 lsl r0, r0, #1 add r0, r7, r0 str r0, [sp, #8] ldr r0, [sp] str r1, [sp, #0xc] sub r0, r0, r6 mov r1, #3 bl _u32_div_f add r2, r6, r0 lsl r0, r0, #1 ldr r1, [sp, #0x28] add r0, r6, r0 cmp r1, #0xf bhi _021D9F7A add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021D9EBE: ; jump table .short _021D9EDE - _021D9EBE - 2 ; case 0 .short _021D9EE6 - _021D9EBE - 2 ; case 1 .short _021D9EEE - _021D9EBE - 2 ; case 2 .short _021D9EF6 - _021D9EBE - 2 ; case 3 .short _021D9F00 - _021D9EBE - 2 ; case 4 .short _021D9F0A - _021D9EBE - 2 ; case 5 .short _021D9F14 - _021D9EBE - 2 ; case 6 .short _021D9F1E - _021D9EBE - 2 ; case 7 .short _021D9F2A - _021D9EBE - 2 ; case 8 .short _021D9F34 - _021D9EBE - 2 ; case 9 .short _021D9F3E - _021D9EBE - 2 ; case 10 .short _021D9F48 - _021D9EBE - 2 ; case 11 .short _021D9F54 - _021D9EBE - 2 ; case 12 .short _021D9F5E - _021D9EBE - 2 ; case 13 .short _021D9F68 - _021D9EBE - 2 ; case 14 .short _021D9F72 - _021D9EBE - 2 ; case 15 _021D9EDE: str r7, [r4] add sp, #0x10 str r6, [r5] pop {r3, r4, r5, r6, r7, pc} _021D9EE6: str r7, [r4] add sp, #0x10 str r2, [r5] pop {r3, r4, r5, r6, r7, pc} _021D9EEE: str r7, [r4] add sp, #0x10 str r0, [r5] pop {r3, r4, r5, r6, r7, pc} _021D9EF6: ldr r0, [sp] str r7, [r4] add sp, #0x10 str r0, [r5] pop {r3, r4, r5, r6, r7, pc} _021D9F00: ldr r0, [sp, #0xc] add sp, #0x10 str r0, [r4] str r6, [r5] pop {r3, r4, r5, r6, r7, pc} _021D9F0A: ldr r0, [sp, #0xc] add sp, #0x10 str r0, [r4] str r2, [r5] pop {r3, r4, r5, r6, r7, pc} _021D9F14: ldr r1, [sp, #0xc] add sp, #0x10 str r1, [r4] str r0, [r5] pop {r3, r4, r5, r6, r7, pc} _021D9F1E: ldr r0, [sp, #0xc] str r0, [r4] ldr r0, [sp] add sp, #0x10 str r0, [r5] pop {r3, r4, r5, r6, r7, pc} _021D9F2A: ldr r0, [sp, #8] add sp, #0x10 str r0, [r4] str r6, [r5] pop {r3, r4, r5, r6, r7, pc} _021D9F34: ldr r0, [sp, #8] add sp, #0x10 str r0, [r4] str r2, [r5] pop {r3, r4, r5, r6, r7, pc} _021D9F3E: ldr r1, [sp, #8] add sp, #0x10 str r1, [r4] str r0, [r5] pop {r3, r4, r5, r6, r7, pc} _021D9F48: ldr r0, [sp, #8] str r0, [r4] ldr r0, [sp] add sp, #0x10 str r0, [r5] pop {r3, r4, r5, r6, r7, pc} _021D9F54: ldr r0, [sp, #4] add sp, #0x10 str r0, [r4] str r6, [r5] pop {r3, r4, r5, r6, r7, pc} _021D9F5E: ldr r0, [sp, #4] add sp, #0x10 str r0, [r4] str r2, [r5] pop {r3, r4, r5, r6, r7, pc} _021D9F68: ldr r1, [sp, #4] add sp, #0x10 str r1, [r4] str r0, [r5] pop {r3, r4, r5, r6, r7, pc} _021D9F72: ldr r0, [sp, #4] str r0, [r4] ldr r0, [sp] str r0, [r5] _021D9F7A: add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD17_021D9E78 thumb_func_start MOD17_021D9F80 MOD17_021D9F80: ; 0x021D9F80 push {r4, lr} add r4, r0, #0 ldr r0, [r1] mov r2, #0 str r0, [r4, #0x2c] ldr r0, [r1, #4] str r0, [r4, #0x30] ldr r0, [r1, #8] str r0, [r4, #0x34] ldr r0, [r1, #0xc] str r0, [r4, #0x38] ldr r0, [r1, #0x10] str r0, [r4, #0x3c] ldr r0, [r1, #0x14] str r0, [r4, #0x40] ldr r0, [r1, #0x18] str r0, [r4, #0x44] str r2, [r4, #0x74] ldr r0, [r1, #0x1c] str r0, [r4] add r0, r4, #4 str r0, [r4, #0xc] str r0, [r4, #0x10] add r0, r4, #0 add r0, #0x14 str r0, [r4, #0x1c] str r0, [r4, #0x20] str r2, [r4, #0x24] ldr r0, [r1, #0x20] add r1, r4, #0 str r0, [r4, #0x28] ldr r0, [r4] add r1, #0x78 mov r2, #3 bl MOD17_021DBA30 add r4, #0x14 add r1, r4, #0 bl MOD17_021DBA90 pop {r4, pc} .align 2, 0 thumb_func_end MOD17_021D9F80 thumb_func_start MOD17_021D9FD4 MOD17_021D9FD4: ; 0x021D9FD4 push {r4, lr} add r4, r0, #0 bl MOD17_021DA058 add r0, r4, #0 bl MOD17_021DA100 add r0, r4, #0 mov r1, #0 mov r2, #0x88 bl Call_FillMemWithValue pop {r4, pc} .align 2, 0 thumb_func_end MOD17_021D9FD4 thumb_func_start MOD17_021D9FF0 MOD17_021D9FF0: ; 0x021D9FF0 push {r3, r4, r5, r6, r7, lr} add r4, r0, #0 ldr r0, [sp, #0x20] add r6, r1, #0 str r0, [sp] add r5, r2, #0 add r0, r4, #0 add r7, r3, #0 ldr r1, [r4, #0x3c] add r0, #0x78 add r2, r6, #0 add r3, r5, #0 bl MOD17_021DB700 add r0, r4, #0 ldr r1, [sp, #0x1c] add r0, #0x78 bl MOD17_021DB7D8 add r4, #0x78 ldr r2, [sp, #0x18] add r0, r4, #0 add r1, r7, #0 bl MOD17_021DB7F4 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD17_021D9FF0 thumb_func_start MOD17_021DA024 MOD17_021DA024: ; 0x021DA024 push {r3, r4, r5, r6, lr} sub sp, #4 add r6, r0, #0 str r3, [sp] add r5, r1, #0 add r4, r2, #0 ldr r1, [r6, #0x3c] add r0, #0x78 add r2, r5, #0 add r3, r4, #0 bl MOD17_021DB700 add sp, #4 pop {r3, r4, r5, r6, pc} thumb_func_end MOD17_021DA024 thumb_func_start MOD17_021DA040 MOD17_021DA040: ; 0x021DA040 ldr r3, _021DA04C ; =MOD17_021DBA90 add r2, r0, #0 add r0, r1, #0 ldr r1, [r2, #0x20] bx r3 nop _021DA04C: .word MOD17_021DBA90 thumb_func_end MOD17_021DA040 thumb_func_start MOD17_021DA050 MOD17_021DA050: ; 0x021DA050 ldr r3, _021DA054 ; =MOD17_021DBAA0 bx r3 .align 2, 0 _021DA054: .word MOD17_021DBAA0 thumb_func_end MOD17_021DA050 thumb_func_start MOD17_021DA058 MOD17_021DA058: ; 0x021DA058 ldr r3, _021DA060 ; =MOD17_021DB7C0 add r0, #0x78 bx r3 nop _021DA060: .word MOD17_021DB7C0 thumb_func_end MOD17_021DA058 thumb_func_start MOD17_021DA064 MOD17_021DA064: ; 0x021DA064 push {r3, r4, r5, lr} sub sp, #0x20 add r4, r0, #0 ldr r5, [r4, #0x24] ldr r0, [r4, #0x28] cmp r5, r0 bge _021DA0BE ldr r0, [r4, #0x44] str r0, [sp] ldr r0, [r4, #0x2c] str r0, [sp, #4] ldr r5, [r4, #0x30] lsl r0, r1, #2 ldr r0, [r5, r0] str r0, [sp, #8] ldr r0, [r4, #0x34] ldr r0, [r0] str r2, [sp, #0x10] str r3, [sp, #0x14] str r1, [sp, #0x18] str r0, [sp, #0xc] ldr r0, [r4, #0x38] ldrb r0, [r0, r1] str r0, [sp, #0x1c] add r0, sp, #0 bl MOD17_021D7520 ldr r1, [sp, #0x30] add r5, r0, #0 bl MOD17_021D766C ldr r0, [r4] add r1, r5, #0 mov r2, #0 bl MOD17_021DBA30 add r1, r4, #4 bl MOD17_021DBA90 ldr r0, [r4, #0x24] add sp, #0x20 add r0, r0, #1 str r0, [r4, #0x24] mov r0, #1 pop {r3, r4, r5, pc} _021DA0BE: mov r0, #0 add sp, #0x20 pop {r3, r4, r5, pc} thumb_func_end MOD17_021DA064 thumb_func_start MOD17_021DA0C4 MOD17_021DA0C4: ; 0x021DA0C4 push {r3, r4, r5, lr} add r4, r0, #0 add r3, r2, #0 ldr r5, [r4, #0x24] ldr r2, [r4, #0x28] cmp r5, r2 bge _021DA0E2 mov r2, #1 bl MOD17_021DA454 ldr r0, [r4, #0x24] add r0, r0, #1 str r0, [r4, #0x24] mov r0, #1 pop {r3, r4, r5, pc} _021DA0E2: mov r0, #0 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD17_021DA0C4 thumb_func_start MOD17_021DA0E8 MOD17_021DA0E8: ; 0x021DA0E8 push {r4, lr} add r4, r0, #0 add r0, r1, #0 bl MOD17_021DBAA0 ldr r0, [r4, #0x24] sub r0, r0, #1 str r0, [r4, #0x24] bpl _021DA0FE bl ErrorHandling _021DA0FE: pop {r4, pc} thumb_func_end MOD17_021DA0E8 thumb_func_start MOD17_021DA100 MOD17_021DA100: ; 0x021DA100 push {r4, lr} add r4, r0, #0 add r0, r4, #4 bl MOD17_021DBAB0 add r0, r4, #0 add r0, #0x14 bl MOD17_021DBAB0 mov r0, #0 str r0, [r4, #0x24] pop {r4, pc} thumb_func_end MOD17_021DA100 thumb_func_start MOD17_021DA118 MOD17_021DA118: ; 0x021DA118 push {r4, r5, r6, lr} add r5, r0, #0 add r0, r5, #4 add r4, r1, #0 add r6, r2, #0 bl MOD17_021DBC38 add r5, #0x14 add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 bl MOD17_021DBC38 pop {r4, r5, r6, pc} thumb_func_end MOD17_021DA118 thumb_func_start MOD17_021DA134 MOD17_021DA134: ; 0x021DA134 ldr r3, _021DA13C ; =MOD17_021DBC38 add r0, #0x14 bx r3 nop _021DA13C: .word MOD17_021DBC38 thumb_func_end MOD17_021DA134 thumb_func_start MOD17_021DA140 MOD17_021DA140: ; 0x021DA140 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 neg r4, r2 neg r7, r1 add r0, r5, #4 add r1, r7, #0 add r2, r4, #0 add r6, r3, #0 bl MOD17_021DBC38 ldr r2, [sp, #0x18] add r0, r5, #4 add r1, r6, #0 bl MOD17_021DBC38 add r0, r5, #0 add r0, #0x14 add r1, r7, #0 add r2, r4, #0 bl MOD17_021DBC38 add r5, #0x14 ldr r2, [sp, #0x18] add r0, r5, #0 add r1, r6, #0 bl MOD17_021DBC38 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD17_021DA140 thumb_func_start MOD17_021DA178 MOD17_021DA178: ; 0x021DA178 ldr r3, _021DA180 ; =MOD17_021DA184 mov r1, #0 mvn r1, r1 bx r3 .align 2, 0 _021DA180: .word MOD17_021DA184 thumb_func_end MOD17_021DA178 thumb_func_start MOD17_021DA184 MOD17_021DA184: ; 0x021DA184 push {r3, r4, r5, r6, r7, lr} add r7, r0, #0 add r6, r7, #0 ldr r4, [r7, #0x1c] add r6, #0x14 add r5, r1, #0 cmp r4, r6 beq _021DA1B2 _021DA194: ldr r0, [r4, #4] cmp r0, #0 ldr r0, [r4] bne _021DA1A4 add r1, r5, #0 bl MOD17_021D766C b _021DA1AA _021DA1A4: add r1, r5, #0 bl MOD17_021DB7D8 _021DA1AA: ldr r4, [r4, #8] sub r5, r5, #1 cmp r4, r6 bne _021DA194 _021DA1B2: ldr r4, [r7, #0xc] add r6, r7, #4 sub r5, #8 cmp r4, r6 beq _021DA1DA _021DA1BC: ldr r0, [r4, #4] cmp r0, #0 ldr r0, [r4] bne _021DA1CC add r1, r5, #0 bl MOD17_021D766C b _021DA1D2 _021DA1CC: add r1, r5, #0 bl MOD17_021DB7D8 _021DA1D2: ldr r4, [r4, #8] sub r5, r5, #1 cmp r4, r6 bne _021DA1BC _021DA1DA: pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD17_021DA184 thumb_func_start MOD17_021DA1DC MOD17_021DA1DC: ; 0x021DA1DC push {r3, r4, r5, r6, r7, lr} add r7, r0, #0 add r6, r7, #0 ldr r4, [r7, #0x1c] add r6, #0x14 add r5, r1, #0 cmp r4, r6 beq _021DA218 _021DA1EC: ldr r0, [r4, #4] cmp r0, #0 ldr r0, [r4] bne _021DA204 bl MOD17_021D7678 add r1, r0, #0 ldr r0, [r4] add r1, r1, r5 bl MOD17_021D766C b _021DA212 _021DA204: bl MOD17_021DB7E8 add r1, r0, #0 ldr r0, [r4] add r1, r1, r5 bl MOD17_021DB7D8 _021DA212: ldr r4, [r4, #8] cmp r4, r6 bne _021DA1EC _021DA218: ldr r4, [r7, #0xc] add r6, r7, #4 cmp r4, r6 beq _021DA24C _021DA220: ldr r0, [r4, #4] cmp r0, #0 ldr r0, [r4] bne _021DA238 bl MOD17_021D7678 add r1, r0, #0 ldr r0, [r4] add r1, r1, r5 bl MOD17_021D766C b _021DA246 _021DA238: bl MOD17_021DB7E8 add r1, r0, #0 ldr r0, [r4] add r1, r1, r5 bl MOD17_021DB7D8 _021DA246: ldr r4, [r4, #8] cmp r4, r6 bne _021DA220 _021DA24C: pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD17_021DA1DC thumb_func_start MOD17_021DA250 MOD17_021DA250: ; 0x021DA250 push {r3, lr} mov r1, #0x12 add r0, sp, #0 strb r1, [r0] mov r1, #0x8f strb r1, [r0, #1] mov r1, #0x8a strb r1, [r0, #2] mov r1, #0xf6 strb r1, [r0, #3] add r0, sp, #0 bl FUN_02020A40 pop {r3, pc} thumb_func_end MOD17_021DA250 thumb_func_start MOD17_021DA26C MOD17_021DA26C: ; 0x021DA26C push {r3, lr} mov r3, #0x12 add r0, sp, #0 strb r3, [r0] mov r3, #0x8f strb r3, [r0, #1] mov r3, #0x8a strb r3, [r0, #2] mov r3, #0xf6 strb r3, [r0, #3] add r0, sp, #0 bl FUN_02020AE8 pop {r3, pc} thumb_func_end MOD17_021DA26C thumb_func_start MOD17_021DA288 MOD17_021DA288: ; 0x021DA288 push {r4, r5, r6, r7, lr} sub sp, #0xc ldr r5, [r0, #0x1c] str r0, [sp] str r0, [sp, #4] add r0, #0x14 add r4, r1, #0 add r6, r2, #0 add r7, r3, #0 str r0, [sp, #4] cmp r5, r0 beq _021DA2BE _021DA2A0: add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 add r3, r7, #0 bl MOD17_021DBB1C cmp r0, #1 bne _021DA2B6 add sp, #0xc add r0, r5, #0 pop {r4, r5, r6, r7, pc} _021DA2B6: ldr r5, [r5, #8] ldr r0, [sp, #4] cmp r5, r0 bne _021DA2A0 _021DA2BE: ldr r0, [sp] ldr r5, [r0, #0xc] add r0, r0, #4 str r0, [sp, #8] cmp r5, r0 beq _021DA2E8 _021DA2CA: add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 add r3, r7, #0 bl MOD17_021DBB1C cmp r0, #1 bne _021DA2E0 add sp, #0xc add r0, r5, #0 pop {r4, r5, r6, r7, pc} _021DA2E0: ldr r5, [r5, #8] ldr r0, [sp, #8] cmp r5, r0 bne _021DA2CA _021DA2E8: mov r0, #0 add sp, #0xc pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD17_021DA288 thumb_func_start MOD17_021DA2F0 MOD17_021DA2F0: ; 0x021DA2F0 push {r3, r4, r5, lr} sub sp, #0x30 add r5, r0, #0 ldr r0, [r5, #0x40] add r4, r1, #0 str r0, [sp] mov r0, #0x19 lsl r1, r4, #2 str r0, [sp, #4] add r0, r1, #0 add r0, #0x86 str r0, [sp, #8] add r0, r1, #0 add r0, #0x87 str r0, [sp, #0xc] mov r0, #0x88 str r0, [sp, #0x14] mov r0, #0x10 str r0, [sp, #0x18] mov r0, #2 str r0, [sp, #0x1c] mov r0, #1 add r1, #0x88 str r1, [sp, #0x10] str r0, [sp, #0x20] str r0, [sp, #0x24] mov r0, #0 str r0, [sp, #0x28] add r0, r5, #0 add r0, #0x48 add r1, sp, #0 str r2, [sp, #0x2c] bl MOD17_021DBD04 str r4, [r5, #0x74] add sp, #0x30 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD17_021DA2F0 thumb_func_start MOD17_021DA33C MOD17_021DA33C: ; 0x021DA33C ldr r3, _021DA344 ; =MOD17_021DBD4C add r0, #0x48 bx r3 nop _021DA344: .word MOD17_021DBD4C thumb_func_end MOD17_021DA33C thumb_func_start MOD17_021DA348 MOD17_021DA348: ; 0x021DA348 push {r4, r5, r6, lr} add r5, r0, #0 ldr r0, [r5, #0x78] add r4, r1, #0 mov r1, #0 add r6, r2, #0 bl FUN_0200782C str r0, [r4] ldr r0, [r5, #0x78] mov r1, #1 bl FUN_0200782C str r0, [r6] pop {r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD17_021DA348 thumb_func_start MOD17_021DA368 MOD17_021DA368: ; 0x021DA368 ldr r0, [r0, #0x24] bx lr thumb_func_end MOD17_021DA368 thumb_func_start MOD17_021DA36C MOD17_021DA36C: ; 0x021DA36C push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r7, r0, #0 ldr r6, [r7, #0x1c] mov r4, #0 add r7, #0x14 str r1, [sp] str r2, [sp, #4] add r5, r4, #0 cmp r6, r7 beq _021DA3CA _021DA382: add r0, r6, #0 add r1, sp, #0xc add r2, sp, #8 bl MOD17_021DA528 cmp r4, #0 bge _021DA394 neg r1, r4 b _021DA396 _021DA394: add r1, r4, #0 _021DA396: ldr r0, [sp, #0xc] cmp r0, #0 bge _021DA3A0 neg r2, r0 b _021DA3A2 _021DA3A0: add r2, r0, #0 _021DA3A2: cmp r2, r1 ble _021DA3A8 add r4, r0, #0 _021DA3A8: cmp r5, #0 bge _021DA3B0 neg r1, r5 b _021DA3B2 _021DA3B0: add r1, r5, #0 _021DA3B2: ldr r0, [sp, #8] cmp r0, #0 bge _021DA3BC neg r2, r0 b _021DA3BE _021DA3BC: add r2, r0, #0 _021DA3BE: cmp r2, r1 ble _021DA3C4 add r5, r0, #0 _021DA3C4: ldr r6, [r6, #8] cmp r6, r7 bne _021DA382 _021DA3CA: ldr r0, [sp] str r4, [r0] ldr r0, [sp, #4] str r5, [r0] add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD17_021DA36C thumb_func_start MOD17_021DA3D8 MOD17_021DA3D8: ; 0x021DA3D8 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r7, r0, #0 ldr r4, [r0, #0x1c] add r7, #0x14 str r0, [sp] add r6, r1, #0 cmp r4, r7 beq _021DA436 asr r0, r6, #0xa mov r1, #0x1f and r0, r1 str r0, [sp, #0xc] asr r0, r6, #5 and r0, r1 str r0, [sp, #8] add r0, r6, #0 and r0, r1 str r0, [sp, #4] _021DA3FE: ldr r0, [r4, #4] cmp r0, #0 bne _021DA410 ldr r0, [r4] add r1, r6, #0 ldr r0, [r0, #4] bl FUN_02013F0C b _021DA430 _021DA410: ldr r5, [r4] ldr r2, [sp, #0xc] ldr r0, [r5] mov r1, #0x18 bl FUN_02007558 ldr r0, [r5] ldr r2, [sp, #8] mov r1, #0x19 bl FUN_02007558 ldr r0, [r5] ldr r2, [sp, #4] mov r1, #0x1a bl FUN_02007558 _021DA430: ldr r4, [r4, #8] cmp r4, r7 bne _021DA3FE _021DA436: ldr r0, [sp] ldr r4, [r0, #0xc] add r5, r0, #4 cmp r4, r5 beq _021DA450 _021DA440: ldr r0, [r4] add r1, r6, #0 ldr r0, [r0, #4] bl FUN_02013F0C ldr r4, [r4, #8] cmp r4, r5 bne _021DA440 _021DA450: add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD17_021DA3D8 thumb_func_start MOD17_021DA454 MOD17_021DA454: ; 0x021DA454 push {r3, r4, r5, r6, r7, lr} sub sp, #0x50 str r0, [sp, #0xc] str r2, [sp, #0x14] str r1, [sp, #0x10] add r0, r1, #0 add r1, sp, #0x4c add r2, sp, #0x48 add r4, r3, #0 bl MOD17_021DBBB8 ldr r0, [sp, #0x10] add r1, sp, #0x44 add r2, sp, #0x40 bl MOD17_021DBC08 ldr r0, [sp, #0x10] add r1, sp, #0x3c add r2, sp, #0x38 bl MOD17_021DBC20 mov r0, #0x76 lsl r0, r0, #2 ldr r0, [r4, r0] mov r5, #0 str r0, [sp, #0x20] ldr r0, [sp, #0x4c] ldr r1, [sp, #0x44] str r0, [sp, #0x24] add r0, r0, r1 ldr r6, [sp, #0x3c] ldr r1, [sp, #0x40] sub r0, r0, r6 str r0, [sp, #0x1c] ldr r0, [sp, #0x48] ldr r7, [sp, #0x38] str r0, [sp, #0x28] add r0, r0, r1 sub r0, r0, r7 str r0, [sp, #0x18] ldr r0, [sp, #0xc] add r4, r5, #0 str r0, [sp, #0x2c] add r0, #0x78 str r0, [sp, #0x2c] _021DA4AE: str r4, [sp] add r0, sp, #0x34 str r0, [sp, #4] add r0, sp, #0x30 str r0, [sp, #8] ldr r0, [sp, #0x28] ldr r2, [sp, #0x24] ldr r1, [sp, #0x18] ldr r3, [sp, #0x1c] add r0, r0, r7 add r2, r2, r6 bl MOD17_021D9E78 ldr r0, [sp, #0x2c] ldr r1, [sp, #0x34] ldr r2, [sp, #0x30] ldr r3, [sp, #0x20] bl MOD17_021DB8F8 add r4, r4, #1 orr r5, r0 cmp r4, #0x10 blt _021DA4AE cmp r5, #0 beq _021DA504 ldr r0, [sp, #0x14] cmp r0, #0 beq _021DA4F6 ldr r1, [sp, #0xc] ldr r0, [sp, #0x10] add r1, #0x14 str r1, [sp, #0xc] bl MOD17_021DBA90 add sp, #0x50 pop {r3, r4, r5, r6, r7, pc} _021DA4F6: ldr r1, [sp, #0xc] ldr r0, [sp, #0x10] ldr r1, [r1, #0x20] bl MOD17_021DBA90 add sp, #0x50 pop {r3, r4, r5, r6, r7, pc} _021DA504: ldr r0, [sp, #0x14] cmp r0, #0 beq _021DA518 ldr r1, [sp, #0xc] ldr r0, [sp, #0x10] add r1, r1, #4 bl MOD17_021DBA90 add sp, #0x50 pop {r3, r4, r5, r6, r7, pc} _021DA518: ldr r1, [sp, #0xc] ldr r0, [sp, #0x10] ldr r1, [r1, #0x10] bl MOD17_021DBA90 add sp, #0x50 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD17_021DA454 thumb_func_start MOD17_021DA528 MOD17_021DA528: ; 0x021DA528 push {r3, r4, r5, r6, r7, lr} sub sp, #0x18 add r5, r1, #0 add r4, r2, #0 add r6, r0, #0 add r1, sp, #0x14 add r2, sp, #0x10 bl MOD17_021DBC08 add r0, r6, #0 add r1, sp, #0xc add r2, sp, #8 bl MOD17_021DBBB8 add r0, r6, #0 add r1, sp, #4 add r2, sp, #0 bl MOD17_021DBC20 ldr r1, [sp, #4] ldr r0, [sp, #0xc] mov r2, #0x8a add r3, r0, r1 sub r6, r2, r3 ldr r2, [sp, #0x14] ldr r7, [sp, #8] add r0, r0, r2 sub r3, r0, r1 ldr r2, [sp] mov r0, #0x12 add r1, r7, r2 sub r0, r0, r1 ldr r1, [sp, #0x10] sub r3, #0xf6 add r1, r7, r1 sub r2, r1, r2 sub r2, #0x8f cmp r6, #0 ble _021DA57A str r6, [r5] b _021DA588 _021DA57A: cmp r3, #0 ble _021DA584 neg r1, r3 str r1, [r5] b _021DA588 _021DA584: mov r1, #0 str r1, [r5] _021DA588: cmp r0, #0 ble _021DA592 add sp, #0x18 str r0, [r4] pop {r3, r4, r5, r6, r7, pc} _021DA592: cmp r2, #0 ble _021DA59E neg r0, r2 add sp, #0x18 str r0, [r4] pop {r3, r4, r5, r6, r7, pc} _021DA59E: mov r0, #0 str r0, [r4] add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD17_021DA528 thumb_func_start MOD17_021DA5A8 MOD17_021DA5A8: ; 0x021DA5A8 push {r3, r4, r5, lr} add r4, r1, #0 ldr r1, [r4] add r5, r0, #0 str r1, [r5, #0x44] ldr r1, [r4, #4] str r1, [r5, #0x48] ldr r1, [r4, #8] str r1, [r5, #0x4c] ldr r1, [r4, #0xc] str r1, [r5, #0x50] ldr r1, [r4, #0x10] str r1, [r5, #0x54] ldr r1, [r4, #0x14] str r1, [r5, #0x58] ldr r1, [r4, #0x18] str r1, [r5, #8] ldr r1, [r4, #0x28] str r1, [r5, #4] mov r1, #0 bl MOD17_021DA9AC add r0, r5, #0 add r1, r4, #0 bl MOD17_021DAAC8 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD17_021DA5A8 thumb_func_start MOD17_021DA5E0 MOD17_021DA5E0: ; 0x021DA5E0 push {r4, r5, r6, lr} add r6, r0, #0 bl MOD17_021DA818 add r5, r6, #0 mov r4, #0 add r5, #0xc _021DA5EE: add r0, r5, #0 bl MOD17_021DAB8C add r4, r4, #1 add r5, #0xc cmp r4, #4 blt _021DA5EE add r0, r6, #0 mov r1, #0 mov r2, #0x8c bl Call_FillMemWithValue pop {r4, r5, r6, pc} thumb_func_end MOD17_021DA5E0 thumb_func_start MOD17_021DA608 MOD17_021DA608: ; 0x021DA608 push {r3, lr} cmp r0, #0 beq _021DA618 cmp r0, #1 beq _021DA688 cmp r0, #2 beq _021DA696 pop {r3, pc} _021DA618: cmp r1, #5 bgt _021DA620 mov r0, #0 pop {r3, pc} _021DA620: cmp r1, #0xb bgt _021DA628 mov r0, #1 pop {r3, pc} _021DA628: cmp r1, #0x11 bgt _021DA630 mov r0, #2 pop {r3, pc} _021DA630: cmp r1, #0x15 bgt _021DA638 mov r0, #3 pop {r3, pc} _021DA638: cmp r1, #0x1c bgt _021DA640 mov r0, #4 pop {r3, pc} _021DA640: cmp r1, #0x21 bgt _021DA648 mov r0, #5 pop {r3, pc} _021DA648: cmp r1, #0x26 bgt _021DA650 mov r0, #6 pop {r3, pc} _021DA650: cmp r1, #0x2a bgt _021DA658 mov r0, #7 pop {r3, pc} _021DA658: cmp r1, #0x31 bgt _021DA660 mov r0, #8 pop {r3, pc} _021DA660: cmp r1, #0x37 bgt _021DA668 mov r0, #9 pop {r3, pc} _021DA668: cmp r1, #0x3c bgt _021DA670 mov r0, #0xa pop {r3, pc} _021DA670: cmp r1, #0x47 bgt _021DA678 mov r0, #0xb pop {r3, pc} _021DA678: cmp r1, #0x5b bgt _021DA680 mov r0, #0xc pop {r3, pc} _021DA680: cmp r1, #0x63 bgt _021DA6A2 mov r0, #0xd pop {r3, pc} _021DA688: add r0, r2, #0 bl MOD17_021DB014 mov r1, #9 bl _s32_div_f pop {r3, pc} _021DA696: add r0, r2, #0 bl MOD17_021DB014 mov r1, #9 bl _s32_div_f _021DA6A2: pop {r3, pc} thumb_func_end MOD17_021DA608 thumb_func_start MOD17_021DA6A4 MOD17_021DA6A4: ; 0x021DA6A4 push {r3, r4, r5, lr} add r5, r2, #0 add r4, r3, #0 cmp r0, #0 beq _021DA6B8 cmp r0, #1 beq _021DA6EA cmp r0, #2 beq _021DA6EA pop {r3, r4, r5, pc} _021DA6B8: mov r0, #0xa str r0, [r5] mov r0, #0x12 str r0, [r4] bl FUN_0201BA60 ldr r2, [sp, #0x10] mov r1, #0x6c sub r1, r1, r2 bl _u32_div_f ldr r0, [r5] add r0, r0, r1 str r0, [r5] bl FUN_0201BA60 ldr r2, [sp, #0x14] mov r1, #0x7d sub r1, r1, r2 bl _u32_div_f ldr r0, [r4] add r0, r0, r1 str r0, [r4] pop {r3, r4, r5, pc} _021DA6EA: ldr r0, [sp, #0x18] bl MOD17_021DB014 add r1, r5, #0 add r2, r4, #0 bl MOD17_021DAC68 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD17_021DA6A4 thumb_func_start MOD17_021DA6FC MOD17_021DA6FC: ; 0x021DA6FC push {r3, r4, r5, r6, r7, lr} sub sp, #0x48 add r5, r0, #0 ldr r0, [r5, #0x58] add r4, r2, #0 str r4, [sp, #0x40] str r0, [sp, #0x28] ldr r0, [r5, #0x44] add r6, r1, #0 mov r1, #0 str r0, [sp, #0x2c] str r1, [sp, #0x38] str r1, [sp, #0x3c] cmp r6, #0 beq _021DA724 cmp r6, #1 beq _021DA730 cmp r6, #2 beq _021DA73E b _021DA74C _021DA724: ldr r0, [r5, #0x50] str r4, [sp, #0xc] ldrb r0, [r0, r4] add r7, r1, #0 str r0, [sp, #0x44] b _021DA750 _021DA730: add r0, r4, #0 str r0, [sp, #0xc] add r0, #0x64 str r0, [sp, #0xc] add r7, r4, #1 str r1, [sp, #0x44] b _021DA750 _021DA73E: add r0, r4, #0 str r0, [sp, #0xc] add r0, #0x64 str r0, [sp, #0xc] add r7, r4, #1 str r1, [sp, #0x44] b _021DA750 _021DA74C: bl ErrorHandling _021DA750: ldr r0, [sp, #0xc] ldr r1, [r5, #0x48] lsl r0, r0, #2 ldr r0, [r1, r0] lsl r1, r7, #2 str r0, [sp, #0x30] ldr r2, [r5, #0x4c] cmp r0, #0 ldr r1, [r2, r1] str r1, [sp, #0x34] bne _021DA76A bl ErrorHandling _021DA76A: ldr r0, [sp, #0x34] cmp r0, #0 bne _021DA774 bl ErrorHandling _021DA774: ldr r2, [r5, #4] add r0, r6, #0 add r1, r4, #0 bl MOD17_021DA608 add r7, r0, #0 add r0, sp, #0x28 bl MOD17_021D7520 str r0, [sp, #0x10] ldr r0, [r5, #8] ldr r1, [sp, #0x10] add r2, r6, #0 bl MOD17_021DBA30 mov r1, #0xc mul r1, r6 add r1, r5, r1 ldr r2, [r1, #0xc] lsl r1, r7, #4 add r1, r2, r1 ldr r1, [r1, #0xc] str r0, [sp, #0x14] bl MOD17_021DBA90 ldr r0, [sp, #0x14] add r1, sp, #0x1c add r2, sp, #0x18 bl MOD17_021DBC08 ldr r0, [sp, #0x1c] add r1, r4, #0 str r0, [sp] ldr r0, [sp, #0x18] add r2, sp, #0x24 str r0, [sp, #4] ldr r0, [r5, #4] add r3, sp, #0x20 str r0, [sp, #8] add r0, r6, #0 bl MOD17_021DA6A4 ldr r0, [sp, #0x14] ldr r1, [sp, #0x24] ldr r2, [sp, #0x20] bl MOD17_021DBB68 ldr r1, [sp, #0x10] add r0, r5, #0 add r2, r6, #0 add r3, r7, #0 bl MOD17_021DAC40 add sp, #0x48 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD17_021DA6FC thumb_func_start MOD17_021DA7E4 MOD17_021DA7E4: ; 0x021DA7E4 push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 mov r1, #0xc add r5, r0, #0 mul r1, r4 add r7, r3, #0 add r1, r5, r1 add r6, r2, #0 ldr r2, [r1, #0xc] lsl r1, r6, #4 add r0, r7, #0 add r1, r2, r1 bl MOD17_021DBA90 ldr r1, [r7] add r0, r5, #0 add r2, r4, #0 add r3, r6, #0 bl MOD17_021DAC40 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD17_021DA7E4 thumb_func_start MOD17_021DA810 MOD17_021DA810: ; 0x021DA810 ldr r3, _021DA814 ; =MOD17_021DBAA0 bx r3 .align 2, 0 _021DA814: .word MOD17_021DBAA0 thumb_func_end MOD17_021DA810 thumb_func_start MOD17_021DA818 MOD17_021DA818: ; 0x021DA818 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 mov r7, #0 _021DA81E: ldr r0, [r5, #0x10] mov r6, #0 cmp r0, #0 ble _021DA83A add r4, r6, #0 _021DA828: ldr r0, [r5, #0xc] add r0, r0, r4 bl MOD17_021DBAB0 ldr r0, [r5, #0x10] add r6, r6, #1 add r4, #0x10 cmp r6, r0 blt _021DA828 _021DA83A: add r7, r7, #1 add r5, #0xc cmp r7, #3 blt _021DA81E pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD17_021DA818 thumb_func_start MOD17_021DA844 MOD17_021DA844: ; 0x021DA844 push {r4, r5, r6, lr} mov r5, #0 mvn r5, r5 bl MOD17_021DABB4 add r6, r0, #0 ldr r4, [r6, #8] cmp r4, r6 beq _021DA86C _021DA856: ldr r0, [r4, #4] cmp r0, #2 bhi _021DA864 ldr r0, [r4] add r1, r5, #0 bl MOD17_021D766C _021DA864: ldr r4, [r4, #8] sub r5, r5, #1 cmp r4, r6 bne _021DA856 _021DA86C: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD17_021DA844 thumb_func_start MOD17_021DA870 MOD17_021DA870: ; 0x021DA870 push {r3, r4, r5, r6, lr} sub sp, #4 add r5, r0, #0 add r6, r1, #0 ldr r1, [r5, #0x3c] add r4, r2, #0 cmp r1, #0 bne _021DA8A8 ldr r1, [r5] mov r2, #0xc mul r2, r1 str r4, [sp] add r2, r5, r2 ldr r2, [r2, #0x14] add r3, r6, #0 bl MOD17_021DACA4 mov r0, #0xc mul r0, r6 str r6, [r5] add r0, r5, r0 str r4, [r0, #0x14] add r0, r5, #0 bl MOD17_021DA844 add sp, #4 mov r0, #1 pop {r3, r4, r5, r6, pc} _021DA8A8: mov r0, #0 add sp, #4 pop {r3, r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD17_021DA870 thumb_func_start MOD17_021DA8B0 MOD17_021DA8B0: ; 0x021DA8B0 push {r4, r5, r6, r7, lr} sub sp, #0xc str r1, [sp, #4] str r0, [sp] str r2, [sp, #8] bl MOD17_021DAA7C add r7, r0, #0 ldr r0, [sp, #4] mov r1, #0xc mul r1, r0 ldr r0, [sp] mov r4, #1 add r6, r0, r1 ldr r0, [r6, #0x10] cmp r0, #1 ble _021DA912 _021DA8D2: ldr r0, [sp, #8] cmp r0, #0 bne _021DA8E4 ldr r1, [r6, #0x10] add r0, r4, r7 bl _s32_div_f add r5, r1, #0 b _021DA8EC _021DA8E4: sub r5, r7, r4 bpl _021DA8EC ldr r0, [r6, #0x10] add r5, r5, r0 _021DA8EC: ldr r0, [sp] ldr r1, [sp, #4] add r2, r5, #0 bl MOD17_021DABDC ldr r1, [r0, #8] cmp r1, r0 beq _021DA90A ldr r0, [sp] ldr r1, [sp, #4] add r2, r5, #0 bl MOD17_021DA870 add sp, #0xc pop {r4, r5, r6, r7, pc} _021DA90A: ldr r0, [r6, #0x10] add r4, r4, #1 cmp r4, r0 blt _021DA8D2 _021DA912: mov r0, #0 add sp, #0xc pop {r4, r5, r6, r7, pc} thumb_func_end MOD17_021DA8B0 thumb_func_start MOD17_021DA918 MOD17_021DA918: ; 0x021DA918 push {r4, r5, r6, lr} add r4, r1, #0 mov r1, #0 add r5, r0, #0 add r6, r2, #0 bl MOD17_021DAB38 mov r0, #0xc mul r0, r4 str r4, [r5] add r0, r5, r0 str r6, [r0, #0x14] add r0, r5, #0 mov r1, #1 bl MOD17_021DAB38 add r0, r5, #0 bl MOD17_021DA844 pop {r4, r5, r6, pc} thumb_func_end MOD17_021DA918 thumb_func_start MOD17_021DA940 MOD17_021DA940: ; 0x021DA940 push {r3, lr} mov r1, #0x12 add r0, sp, #0 strb r1, [r0] mov r1, #0x8f strb r1, [r0, #1] mov r1, #0xa strb r1, [r0, #2] mov r1, #0x76 strb r1, [r0, #3] add r0, sp, #0 bl FUN_02020A40 pop {r3, pc} thumb_func_end MOD17_021DA940 thumb_func_start MOD17_021DA95C MOD17_021DA95C: ; 0x021DA95C push {r3, lr} mov r3, #0x12 add r0, sp, #0 strb r3, [r0] mov r3, #0x8f strb r3, [r0, #1] mov r3, #0xa strb r3, [r0, #2] mov r3, #0x76 strb r3, [r0, #3] add r0, sp, #0 bl FUN_02020AE8 pop {r3, pc} thumb_func_end MOD17_021DA95C thumb_func_start MOD17_021DA978 MOD17_021DA978: ; 0x021DA978 push {r3, r4, r5, r6, r7, lr} add r6, r1, #0 add r7, r2, #0 str r3, [sp] bl MOD17_021DABB4 add r5, r0, #0 ldr r4, [r5, #8] cmp r4, r5 beq _021DA9A6 _021DA98C: ldr r3, [sp] add r0, r4, #0 add r1, r6, #0 add r2, r7, #0 bl MOD17_021DBB1C cmp r0, #1 bne _021DA9A0 add r0, r4, #0 pop {r3, r4, r5, r6, r7, pc} _021DA9A0: ldr r4, [r4, #8] cmp r4, r5 bne _021DA98C _021DA9A6: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD17_021DA978 thumb_func_start MOD17_021DA9AC MOD17_021DA9AC: ; 0x021DA9AC push {r3, r4, r5, lr} sub sp, #0x30 add r5, r0, #0 ldr r0, [r5, #0x54] add r4, r1, #0 str r0, [sp] mov r0, #0x19 lsl r1, r4, #1 str r0, [sp, #4] add r0, r1, #0 add r0, #0x81 str r0, [sp, #8] mov r0, #0x85 str r0, [sp, #0xc] mov r0, #8 str r0, [sp, #0x14] mov r0, #0x81 str r0, [sp, #0x18] mov r0, #3 str r0, [sp, #0x1c] mov r0, #1 str r0, [sp, #0x20] mov r0, #2 str r0, [sp, #0x24] mov r0, #0 str r0, [sp, #0x28] mov r0, #0xe add r1, #0x82 str r0, [sp, #0x2c] add r0, r5, #0 str r1, [sp, #0x10] add r0, #0x5c add r1, sp, #0 bl MOD17_021DBD04 str r4, [r5, #0x40] add sp, #0x30 pop {r3, r4, r5, pc} thumb_func_end MOD17_021DA9AC thumb_func_start MOD17_021DA9F8 MOD17_021DA9F8: ; 0x021DA9F8 push {r3, r4, r5, r6, r7, lr} sub sp, #0x38 add r5, r0, #0 ldr r0, [r5, #0x54] add r4, r1, #0 str r0, [sp, #8] mov r0, #0x19 lsl r1, r4, #1 str r0, [sp, #0xc] add r0, r1, #0 add r0, #0x81 str r0, [sp, #0x10] mov r0, #0x85 str r0, [sp, #0x14] mov r0, #8 add r1, #0x82 str r0, [sp, #0x1c] mov r0, #0x81 str r1, [sp, #0x18] str r0, [sp, #0x20] mov r0, #3 mov r1, #2 str r0, [sp, #0x24] mov r0, #1 str r1, [sp, #0x2c] mov r7, #0 mov r1, #0xe str r0, [sp, #0x28] str r7, [sp, #0x30] str r1, [sp, #0x34] tst r0, r2 beq _021DAA3A mov r7, #0x70 _021DAA3A: mov r0, #2 tst r0, r2 beq _021DAA44 mov r6, #0x81 b _021DAA46 _021DAA44: mov r6, #0 _021DAA46: ldr r0, [sp, #0x50] str r3, [sp] str r0, [sp, #4] add r0, r5, #0 add r0, #0x5c add r1, sp, #8 add r2, r7, #0 add r3, r6, #0 bl MOD17_021DBE3C str r4, [r5, #0x40] add sp, #0x38 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD17_021DA9F8 thumb_func_start MOD17_021DAA60 MOD17_021DAA60: ; 0x021DAA60 ldr r3, _021DAA68 ; =MOD17_021DBD4C add r0, #0x5c bx r3 nop _021DAA68: .word MOD17_021DBD4C thumb_func_end MOD17_021DAA60 thumb_func_start MOD17_021DAA6C MOD17_021DAA6C: ; 0x021DAA6C push {r4, lr} add r4, r0, #0 bne _021DAA76 bl ErrorHandling _021DAA76: ldr r0, [r4] pop {r4, pc} .align 2, 0 thumb_func_end MOD17_021DAA6C thumb_func_start MOD17_021DAA7C MOD17_021DAA7C: ; 0x021DAA7C push {r4, r5, lr} sub sp, #0xc add r5, r0, #0 add r4, r1, #0 cmp r5, #0 bne _021DAA8C bl ErrorHandling _021DAA8C: mov r0, #0xc mul r0, r4 add r3, r5, r0 add r3, #0xc ldmia r3!, {r0, r1} add r2, sp, #0 stmia r2!, {r0, r1} ldr r0, [r3] str r0, [r2] ldr r0, [sp, #8] add sp, #0xc pop {r4, r5, pc} thumb_func_end MOD17_021DAA7C thumb_func_start MOD17_021DAAA4 MOD17_021DAAA4: ; 0x021DAAA4 push {r4, lr} add r4, r3, #0 bl MOD17_021DABDC ldr r2, [sp, #8] add r1, r4, #0 bl MOD17_021DBC38 pop {r4, pc} .align 2, 0 thumb_func_end MOD17_021DAAA4 thumb_func_start MOD17_021DAAB8 MOD17_021DAAB8: ; 0x021DAAB8 ldr r0, [r0, #0x3c] cmp r0, #0 bne _021DAAC2 mov r0, #1 bx lr _021DAAC2: mov r0, #0 bx lr .align 2, 0 thumb_func_end MOD17_021DAAB8 thumb_func_start MOD17_021DAAC8 MOD17_021DAAC8: ; 0x021DAAC8 push {r3, r4, r5, lr} add r4, r1, #0 ldr r1, [r4, #0x1c] add r5, r0, #0 add r0, #0xc bl MOD17_021DAB48 mov r0, #0 str r0, [r5] ldr r0, [r5, #0xc] mov r1, #1 bl MOD17_021DAB04 add r0, r5, #0 ldr r1, [r4, #0x20] add r0, #0x18 bl MOD17_021DAB48 add r0, r5, #0 ldr r1, [r4, #0x24] add r0, #0x24 bl MOD17_021DAB48 add r5, #0x30 add r0, r5, #0 mov r1, #1 bl MOD17_021DAB48 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD17_021DAAC8 thumb_func_start MOD17_021DAB04 MOD17_021DAB04: ; 0x021DAB04 push {r4, r5, r6, lr} add r5, r0, #0 ldr r4, [r5, #8] add r6, r1, #0 cmp r4, r5 beq _021DAB24 _021DAB10: ldr r0, [r4, #4] cmp r0, #2 bhi _021DAB1E ldr r0, [r4] add r1, r6, #0 bl MOD17_021D7660 _021DAB1E: ldr r4, [r4, #8] cmp r4, r5 bne _021DAB10 _021DAB24: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD17_021DAB04 thumb_func_start MOD17_021DAB28 MOD17_021DAB28: ; 0x021DAB28 push {r4, lr} add r4, r3, #0 bl MOD17_021DABDC add r1, r4, #0 bl MOD17_021DAB04 pop {r4, pc} thumb_func_end MOD17_021DAB28 thumb_func_start MOD17_021DAB38 MOD17_021DAB38: ; 0x021DAB38 push {r4, lr} add r4, r1, #0 bl MOD17_021DABB4 add r1, r4, #0 bl MOD17_021DAB04 pop {r4, pc} thumb_func_end MOD17_021DAB38 thumb_func_start MOD17_021DAB48 MOD17_021DAB48: ; 0x021DAB48 push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 add r5, r0, #0 mov r0, #0xe lsl r1, r4, #4 bl FUN_02016998 str r0, [r5] str r4, [r5, #4] mov r6, #0 str r6, [r5, #8] ldr r0, [r5, #4] cmp r0, #0 ble _021DAB88 add r4, r6, #0 add r7, r6, #0 _021DAB68: ldr r0, [r5] add r1, r7, #0 add r0, r0, r4 str r0, [r0, #8] ldr r0, [r5] add r0, r0, r4 str r0, [r0, #0xc] ldr r0, [r5] add r0, r0, r4 bl MOD17_021DAB04 ldr r0, [r5, #4] add r6, r6, #1 add r4, #0x10 cmp r6, r0 blt _021DAB68 _021DAB88: pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD17_021DAB48 thumb_func_start MOD17_021DAB8C MOD17_021DAB8C: ; 0x021DAB8C push {r4, lr} add r4, r0, #0 ldr r0, [r4] bl FUN_02016A18 mov r0, #0 str r0, [r4] strb r0, [r4] strb r0, [r4, #1] strb r0, [r4, #2] strb r0, [r4, #3] strb r0, [r4, #4] strb r0, [r4, #5] strb r0, [r4, #6] strb r0, [r4, #7] strb r0, [r4, #8] strb r0, [r4, #9] strb r0, [r4, #0xa] strb r0, [r4, #0xb] pop {r4, pc} thumb_func_end MOD17_021DAB8C thumb_func_start MOD17_021DABB4 MOD17_021DABB4: ; 0x021DABB4 push {r3} sub sp, #0xc ldr r2, [r0] mov r1, #0xc mul r1, r2 add r3, r0, r1 add r3, #0xc ldmia r3!, {r0, r1} add r2, sp, #0 stmia r2!, {r0, r1} ldr r0, [r3] str r0, [r2] ldr r0, [sp, #8] ldr r1, [sp] lsl r0, r0, #4 add r0, r1, r0 add sp, #0xc pop {r3} bx lr .align 2, 0 thumb_func_end MOD17_021DABB4 thumb_func_start MOD17_021DABDC MOD17_021DABDC: ; 0x021DABDC push {r4} sub sp, #0xc mov r3, #0xc mul r3, r1 add r4, r0, r3 add r4, #0xc ldmia r4!, {r0, r1} add r3, sp, #0 stmia r3!, {r0, r1} ldr r0, [r4] str r0, [r3] ldr r1, [sp] lsl r0, r2, #4 add r0, r1, r0 add sp, #0xc pop {r4} bx lr .align 2, 0 thumb_func_end MOD17_021DABDC thumb_func_start MOD17_021DAC00 MOD17_021DAC00: ; 0x021DAC00 push {r4, lr} mov r4, #0 bl MOD17_021DABDC ldr r1, [r0, #8] cmp r1, r0 beq _021DAC16 _021DAC0E: ldr r1, [r1, #8] add r4, r4, #1 cmp r1, r0 bne _021DAC0E _021DAC16: add r0, r4, #0 pop {r4, pc} .align 2, 0 thumb_func_end MOD17_021DAC00 thumb_func_start MOD17_021DAC1C MOD17_021DAC1C: ; 0x021DAC1C push {r3, r4, r5, lr} add r5, r3, #0 mov r4, #0 bl MOD17_021DABDC ldr r1, [r0, #8] cmp r1, r0 beq _021DAC3C _021DAC2C: cmp r4, r5 bne _021DAC34 add r0, r1, #0 pop {r3, r4, r5, pc} _021DAC34: ldr r1, [r1, #8] add r4, r4, #1 cmp r1, r0 bne _021DAC2C _021DAC3C: mov r0, #0 pop {r3, r4, r5, pc} thumb_func_end MOD17_021DAC1C thumb_func_start MOD17_021DAC40 MOD17_021DAC40: ; 0x021DAC40 push {r4, lr} ldr r4, [r0] cmp r4, r2 bne _021DAC54 mov r4, #0xc mul r4, r2 add r0, r0, r4 ldr r0, [r0, #0x14] cmp r3, r0 beq _021DAC5E _021DAC54: add r0, r1, #0 mov r1, #0 bl MOD17_021D7660 pop {r4, pc} _021DAC5E: add r0, r1, #0 mov r1, #1 bl MOD17_021D7660 pop {r4, pc} thumb_func_end MOD17_021DAC40 thumb_func_start MOD17_021DAC68 MOD17_021DAC68: ; 0x021DAC68 push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 mov r1, #9 add r4, r2, #0 bl _s32_div_f add r7, r1, #0 add r0, r7, #0 mov r1, #3 bl _s32_div_f add r6, r0, #0 add r0, r7, #0 mov r1, #3 bl _s32_div_f add r0, r6, #1 lsl r2, r0, #3 lsl r0, r6, #5 add r0, r2, r0 add r0, #0x10 str r0, [r4] add r0, r1, #1 lsl r2, r0, #3 mov r0, #0x18 mul r0, r1 add r0, r2, r0 add r0, #8 str r0, [r5] pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD17_021DAC68 thumb_func_start MOD17_021DACA4 MOD17_021DACA4: ; 0x021DACA4 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r6, r1, #0 add r7, r2, #0 str r3, [sp] ldr r0, _021DAD18 ; =MOD17_021DAD1C mov r1, #0x30 mov r2, #0 mov r3, #0xd bl FUN_020061E8 bl FUN_0201B6C8 add r4, r0, #0 str r5, [r4] str r6, [r4, #4] ldr r0, [sp] str r7, [r4, #8] str r0, [r4, #0xc] ldr r0, [sp, #0x18] add r1, r6, #0 str r0, [r4, #0x10] mov r0, #0 str r0, [r4, #0x1c] add r0, r5, #0 add r2, r7, #0 bl MOD17_021DAC00 str r0, [r4, #0x20] ldr r1, [sp] ldr r2, [sp, #0x18] add r0, r5, #0 bl MOD17_021DAC00 str r0, [r4, #0x24] ldr r1, [r4, #0x20] add r2, r1, r0 mov r1, #0xc mov r0, #0xd mul r1, r2 str r2, [r4, #0x2c] bl FUN_02016998 str r0, [r4, #0x28] cmp r0, #0 bne _021DAD04 bl ErrorHandling _021DAD04: ldr r3, [r4, #0x2c] mov r2, #0xc ldr r0, [r4, #0x28] mov r1, #0 mul r2, r3 bl Call_FillMemWithValue mov r0, #1 str r0, [r5, #0x3c] pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021DAD18: .word MOD17_021DAD1C thumb_func_end MOD17_021DACA4 thumb_func_start MOD17_021DAD1C MOD17_021DAD1C: ; 0x021DAD1C push {r3, r4, r5, r6, lr} sub sp, #4 add r4, r1, #0 add r5, r0, #0 ldr r0, [r4, #0x1c] cmp r0, #4 bls _021DAD2C b _021DAE74 _021DAD2C: add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021DAD38: ; jump table .short _021DAD42 - _021DAD38 - 2 ; case 0 .short _021DAD96 - _021DAD38 - 2 ; case 1 .short _021DADE2 - _021DAD38 - 2 ; case 2 .short _021DAE28 - _021DAD38 - 2 ; case 3 .short _021DAE40 - _021DAD38 - 2 ; case 4 _021DAD42: mov r0, #0x83 mvn r0, r0 str r0, [sp] ldr r0, [r4] ldr r1, [r4, #0xc] ldr r2, [r4, #0x10] mov r3, #0 bl MOD17_021DAAA4 ldr r0, [r4] ldr r1, [r4, #0xc] ldr r2, [r4, #0x10] mov r3, #1 bl MOD17_021DAB28 mov r0, #0 str r0, [r4, #0x14] add r1, r4, #0 ldr r0, [r4] add r1, #0x14 str r1, [sp] ldr r1, [r0, #0x40] add r1, r1, #1 lsr r3, r1, #0x1f lsl r2, r1, #0x1f sub r2, r2, r3 mov r1, #0x1f ror r2, r1 add r1, r3, r2 mov r2, #2 mov r3, #5 bl MOD17_021DA9F8 ldr r0, [r4, #0x20] mov r1, #1 bl MOD17_021DAF30 str r0, [r4, #0x18] ldr r0, [r4, #0x1c] add r0, r0, #1 str r0, [r4, #0x1c] b _021DAE78 _021DAD96: ldr r0, [r4, #0x18] mov r6, #0 cmp r0, #0 ble _021DADCA add r5, r4, #0 add r5, #0x20 _021DADA2: ldr r0, [r4, #0x20] sub r0, r0, #1 bmi _021DADC2 ldr r0, [r5] sub r0, r0, #1 str r0, [r5] ldr r0, [r4] ldr r1, [r4, #4] ldr r2, [r4, #8] ldr r3, [r4, #0x20] bl MOD17_021DAC1C ldr r1, [r4, #0x28] ldr r2, [r4, #0x2c] bl MOD17_021DAE84 _021DADC2: ldr r0, [r4, #0x18] add r6, r6, #1 cmp r6, r0 blt _021DADA2 _021DADCA: ldr r0, [r4, #0x20] cmp r0, #0 bne _021DAE78 ldr r0, [r4, #0x24] mov r1, #2 bl MOD17_021DAF30 str r0, [r4, #0x18] ldr r0, [r4, #0x1c] add r0, r0, #1 str r0, [r4, #0x1c] b _021DAE78 _021DADE2: ldr r0, [r4, #0x18] mov r6, #0 cmp r0, #0 ble _021DAE16 add r5, r4, #0 add r5, #0x24 _021DADEE: ldr r0, [r4, #0x24] sub r0, r0, #1 bmi _021DAE0E ldr r0, [r5] sub r0, r0, #1 str r0, [r5] ldr r0, [r4] ldr r1, [r4, #0xc] ldr r2, [r4, #0x10] ldr r3, [r4, #0x24] bl MOD17_021DAC1C ldr r1, [r4, #0x28] ldr r2, [r4, #0x2c] bl MOD17_021DAE84 _021DAE0E: ldr r0, [r4, #0x18] add r6, r6, #1 cmp r6, r0 blt _021DADEE _021DAE16: ldr r0, [r4, #0x24] cmp r0, #0 bne _021DAE78 ldr r0, [r4, #0x1c] add r0, r0, #1 str r0, [r4, #0x1c] mov r0, #0 str r0, [r4, #0x18] b _021DAE78 _021DAE28: ldr r0, [r4, #0x18] add r0, r0, #1 str r0, [r4, #0x18] cmp r0, #3 ble _021DAE78 ldr r0, [r4, #0x14] cmp r0, #0 beq _021DAE78 ldr r0, [r4, #0x1c] add r0, r0, #1 str r0, [r4, #0x1c] b _021DAE78 _021DAE40: ldr r0, [r4] ldr r1, [r4, #4] ldr r2, [r4, #8] mov r3, #0 bl MOD17_021DAB28 mov r0, #0x83 mvn r0, r0 str r0, [sp] ldr r0, [r4] ldr r1, [r4, #4] ldr r2, [r4, #8] mov r3, #0 bl MOD17_021DAAA4 ldr r0, [r4] mov r1, #0 str r1, [r0, #0x3c] ldr r0, [r4, #0x28] bl FUN_02016A18 add r0, r5, #0 bl FUN_0200621C add sp, #4 pop {r3, r4, r5, r6, pc} _021DAE74: bl ErrorHandling _021DAE78: ldr r0, [r4, #0x28] ldr r1, [r4, #0x2c] bl MOD17_021DAEC4 add sp, #4 pop {r3, r4, r5, r6, pc} thumb_func_end MOD17_021DAD1C thumb_func_start MOD17_021DAE84 MOD17_021DAE84: ; 0x021DAE84 push {r4, lr} add r4, r0, #0 add r0, r1, #0 add r1, r2, #0 bl MOD17_021DAE9C str r4, [r0] mov r1, #3 str r1, [r0, #4] mov r1, #0x2c str r1, [r0, #8] pop {r4, pc} thumb_func_end MOD17_021DAE84 thumb_func_start MOD17_021DAE9C MOD17_021DAE9C: ; 0x021DAE9C push {r3, r4} mov r3, #0 cmp r1, #0 ble _021DAEBE add r4, r0, #0 _021DAEA6: ldr r2, [r4] cmp r2, #0 bne _021DAEB6 mov r1, #0xc mul r1, r3 add r0, r0, r1 pop {r3, r4} bx lr _021DAEB6: add r3, r3, #1 add r4, #0xc cmp r3, r1 blt _021DAEA6 _021DAEBE: mov r0, #0 pop {r3, r4} bx lr thumb_func_end MOD17_021DAE9C thumb_func_start MOD17_021DAEC4 MOD17_021DAEC4: ; 0x021DAEC4 push {r4, r5, r6, lr} add r6, r1, #0 add r5, r0, #0 mov r4, #0 cmp r6, #0 ble _021DAEE4 _021DAED0: ldr r0, [r5] cmp r0, #0 beq _021DAEDC add r0, r5, #0 bl MOD17_021DAEE8 _021DAEDC: add r4, r4, #1 add r5, #0xc cmp r4, r6 blt _021DAED0 _021DAEE4: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD17_021DAEC4 thumb_func_start MOD17_021DAEE8 MOD17_021DAEE8: ; 0x021DAEE8 push {r4, lr} sub sp, #8 add r4, r0, #0 ldr r0, [r4] add r1, sp, #4 add r2, sp, #0 bl MOD17_021DBBB8 ldr r1, [sp] ldr r0, [r4, #8] add r2, r1, r0 str r2, [sp] ldr r0, [r4] ldr r1, [sp, #4] bl MOD17_021DBB68 ldr r0, [r4, #4] sub r0, r0, #1 str r0, [r4, #4] cmp r0, #0 bgt _021DAF2C mov r0, #0 strb r0, [r4] strb r0, [r4, #1] strb r0, [r4, #2] strb r0, [r4, #3] strb r0, [r4, #4] strb r0, [r4, #5] strb r0, [r4, #6] strb r0, [r4, #7] strb r0, [r4, #8] strb r0, [r4, #9] strb r0, [r4, #0xa] strb r0, [r4, #0xb] _021DAF2C: add sp, #8 pop {r4, pc} thumb_func_end MOD17_021DAEE8 thumb_func_start MOD17_021DAF30 MOD17_021DAF30: ; 0x021DAF30 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 bl _s32_div_f sub r0, r4, r1 add r0, r5, r0 add r1, r4, #0 bl _s32_div_f pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD17_021DAF30 thumb_func_start MOD17_021DAF48 MOD17_021DAF48: ; 0x021DAF48 add r3, r0, #0 mov r2, #0x1c mov r1, #0 _021DAF4E: strb r1, [r3] add r3, r3, #1 sub r2, r2, #1 bne _021DAF4E ldr r1, _021DAF60 ; =MOD17_021DAFA0 str r1, [r0, #4] str r1, [r0, #8] str r1, [r0, #0xc] bx lr .align 2, 0 _021DAF60: .word MOD17_021DAFA0 thumb_func_end MOD17_021DAF48 thumb_func_start MOD17_021DAF64 MOD17_021DAF64: ; 0x021DAF64 push {r4, lr} ldr r1, _021DAF9C ; =0x021C48F8 add r4, r0, #0 ldrh r2, [r1, #0x20] cmp r2, #0 beq _021DAF76 ldr r1, [r4, #4] blx r1 b _021DAF8C _021DAF76: ldrh r1, [r1, #0x22] cmp r1, #0 beq _021DAF82 ldr r1, [r4, #0xc] blx r1 b _021DAF8C _021DAF82: ldrb r1, [r4, #0x18] cmp r1, #0 beq _021DAF8C ldr r1, [r4, #8] blx r1 _021DAF8C: ldr r0, _021DAF9C ; =0x021C48F8 ldrh r1, [r0, #0x1c] strh r1, [r4, #0x14] ldrh r1, [r0, #0x1e] strh r1, [r4, #0x16] ldrh r0, [r0, #0x22] strb r0, [r4, #0x18] pop {r4, pc} .align 2, 0 _021DAF9C: .word 0x021C48F8 thumb_func_end MOD17_021DAF64 thumb_func_start MOD17_021DAFA0 MOD17_021DAFA0: ; 0x021DAFA0 bx lr .align 2, 0 thumb_func_end MOD17_021DAFA0 thumb_func_start MOD17_021DAFA4 MOD17_021DAFA4: ; 0x021DAFA4 push {r3, r4, r5, r6, r7, lr} add r7, r1, #0 add r6, r0, #0 mov r4, #0 add r5, r7, #0 _021DAFAE: add r0, r6, #0 add r1, r4, #0 bl FUN_02027114 add r4, r4, #1 stmia r5!, {r0} cmp r4, #0x64 blt _021DAFAE mov r0, #0x19 mov r3, #0 add r2, r7, #0 mov r1, #0x12 lsl r0, r0, #4 _021DAFC8: add r3, r3, #1 str r1, [r2, r0] add r2, r2, #4 cmp r3, #0x12 blt _021DAFC8 mov r5, #0x19 mov r4, #0 lsl r5, r5, #4 _021DAFD8: add r0, r6, #0 add r1, r4, #0 bl FUN_0202714C cmp r0, #0x12 beq _021DAFEA lsl r0, r0, #2 add r0, r7, r0 str r4, [r0, r5] _021DAFEA: add r4, r4, #1 cmp r4, #0x12 blt _021DAFD8 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD17_021DAFA4 thumb_func_start MOD17_021DAFF4 MOD17_021DAFF4: ; 0x021DAFF4 push {r3, r4, r5, lr} add r5, r1, #0 add r4, r0, #0 cmp r5, #0x64 blo _021DB002 bl ErrorHandling _021DB002: lsl r0, r5, #2 ldr r0, [r4, r0] pop {r3, r4, r5, pc} thumb_func_end MOD17_021DAFF4 thumb_func_start MOD17_021DB008 MOD17_021DB008: ; 0x021DB008 lsl r1, r1, #2 add r1, r0, r1 mov r0, #0x19 lsl r0, r0, #4 ldr r0, [r1, r0] bx lr thumb_func_end MOD17_021DB008 thumb_func_start MOD17_021DB014 MOD17_021DB014: ; 0x021DB014 push {r3, r4} mov r2, #0x19 mov r4, #0 lsl r2, r2, #4 _021DB01C: ldr r3, [r0, r2] cmp r1, r3 bne _021DB028 add r0, r4, #0 pop {r3, r4} bx lr _021DB028: add r4, r4, #1 add r0, r0, #4 cmp r4, #0x12 blt _021DB01C add r0, r4, #0 pop {r3, r4} bx lr .align 2, 0 thumb_func_end MOD17_021DB014 thumb_func_start MOD17_021DB038 MOD17_021DB038: ; 0x021DB038 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r4, r1, #0 add r6, r2, #0 add r7, r3, #0 bl MOD17_021DAF48 mov r0, #0xd mov r1, #0x34 bl FUN_02016998 str r0, [r5] mov r1, #0 mov r2, #0x34 bl Call_FillMemWithValue ldr r1, [r5] ldr r0, [sp, #0x18] str r4, [r1, #4] str r6, [r1, #8] str r7, [r1] str r0, [r1, #0xc] ldr r0, [sp, #0x1c] str r0, [r1, #0x2c] ldr r0, _021DB07C ; =MOD17_021DB0A0 str r0, [r5, #4] ldr r0, _021DB080 ; =MOD17_021DB210 str r0, [r5, #8] ldr r0, _021DB084 ; =MOD17_021DB3A4 str r0, [r5, #0xc] ldr r0, _021DB088 ; =MOD17_021DB08C str r0, [r5, #0x10] pop {r3, r4, r5, r6, r7, pc} nop _021DB07C: .word MOD17_021DB0A0 _021DB080: .word MOD17_021DB210 _021DB084: .word MOD17_021DB3A4 _021DB088: .word MOD17_021DB08C thumb_func_end MOD17_021DB038 thumb_func_start MOD17_021DB08C MOD17_021DB08C: ; 0x021DB08C push {r4, lr} add r4, r0, #0 ldr r0, [r4] bl FUN_02016A18 add r0, r4, #0 bl MOD17_021DAF48 pop {r4, pc} .align 2, 0 thumb_func_end MOD17_021DB08C thumb_func_start MOD17_021DB0A0 MOD17_021DB0A0: ; 0x021DB0A0 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r5, r0, #0 ldr r4, [r5] ldr r0, [r4, #4] bl MOD17_021DA250 cmp r0, #0 beq _021DB122 ldr r3, [r4] ldr r0, [r4, #4] ldr r3, [r3, #0x30] add r1, sp, #0xc add r2, sp, #8 bl MOD17_021DA288 add r6, r0, #0 beq _021DB0D2 ldr r0, [r6, #4] cmp r0, #3 bne _021DB0D2 ldr r0, [r4, #0x2c] cmp r0, #0 bne _021DB0D2 mov r6, #0 _021DB0D2: cmp r6, #0 beq _021DB15E ldr r0, [r6, #4] cmp r0, #0 bne _021DB0E8 ldr r0, [r4, #4] add r1, r6, #0 bl MOD17_021DA0E8 mov r7, #0 b _021DB104 _021DB0E8: add r0, r6, #0 bl MOD17_021DA050 ldr r0, [r6] bl MOD17_021DB7E8 add r1, r4, #0 add r2, r4, #0 add r7, r0, #0 add r0, r6, #0 add r1, #0x24 add r2, #0x28 bl MOD17_021DBBB8 _021DB104: ldr r0, [r4, #4] bl MOD17_021DA178 ldr r0, [sp, #8] add r1, r6, #0 str r0, [sp] str r7, [sp, #4] ldr r3, [sp, #0xc] add r0, r4, #0 mov r2, #1 bl MOD17_021DB4D8 bl MOD17_021D7A7C b _021DB15E _021DB122: ldr r0, [r4, #8] bl MOD17_021DA940 cmp r0, #0 beq _021DB15E ldr r3, [r4] ldr r0, [r4, #8] ldr r3, [r3, #0x30] add r1, sp, #0xc add r2, sp, #8 bl MOD17_021DA978 add r6, r0, #0 beq _021DB15E bl MOD17_021DA810 ldr r0, [r4, #8] bl MOD17_021DA844 ldr r0, [sp, #8] mov r2, #0 str r0, [sp] str r2, [sp, #4] ldr r3, [sp, #0xc] add r0, r4, #0 add r1, r6, #0 bl MOD17_021DB4D8 bl MOD17_021D7A7C _021DB15E: ldr r1, [r4, #0x10] cmp r1, #0 beq _021DB1A8 ldr r1, [r1, #4] ldr r0, _021DB1AC ; =0x000005EB cmp r1, #0 beq _021DB176 cmp r1, #1 beq _021DB180 cmp r1, #3 beq _021DB192 b _021DB19A _021DB176: ldr r1, _021DB1B0 ; =MOD17_021DB210 str r1, [r5, #8] ldr r1, _021DB1B4 ; =MOD17_021DB3A4 str r1, [r5, #0xc] b _021DB19A _021DB180: ldr r0, _021DB1B8 ; =MOD17_021DB1D0 str r0, [r5, #8] ldr r0, _021DB1BC ; =MOD17_021DB1CC str r0, [r5, #0xc] add r0, r5, #0 bl MOD17_021DB4AC ldr r0, _021DB1C0 ; =0x0000067E b _021DB19A _021DB192: ldr r1, _021DB1C4 ; =MOD17_021DB3D4 str r1, [r5, #8] ldr r1, _021DB1C8 ; =MOD17_021DB404 str r1, [r5, #0xc] _021DB19A: lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_020054C8 add r0, r4, #0 bl MOD17_021DB680 _021DB1A8: add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021DB1AC: .word 0x000005EB _021DB1B0: .word MOD17_021DB210 _021DB1B4: .word MOD17_021DB3A4 _021DB1B8: .word MOD17_021DB1D0 _021DB1BC: .word MOD17_021DB1CC _021DB1C0: .word 0x0000067E _021DB1C4: .word MOD17_021DB3D4 _021DB1C8: .word MOD17_021DB404 thumb_func_end MOD17_021DB0A0 thumb_func_start MOD17_021DB1CC MOD17_021DB1CC: ; 0x021DB1CC bx lr .align 2, 0 thumb_func_end MOD17_021DB1CC thumb_func_start MOD17_021DB1D0 MOD17_021DB1D0: ; 0x021DB1D0 push {r4, lr} sub sp, #8 ldr r4, [r0] ldr r0, [r4, #0x10] cmp r0, #0 beq _021DB20A ldr r0, [r0, #4] cmp r0, #1 beq _021DB1E6 bl ErrorHandling _021DB1E6: ldr r0, [r4, #0x10] mov r2, #0x1c ldr r0, [r0, #4] mov r3, #0x1e str r0, [sp] add r0, r4, #0 add r0, #0x21 ldrb r0, [r0] mov r1, #4 str r0, [sp, #4] ldrsh r2, [r4, r2] ldrsh r3, [r4, r3] add r0, r4, #0 bl MOD17_021DB59C add r0, r4, #0 bl MOD17_021DB534 _021DB20A: add sp, #8 pop {r4, pc} .align 2, 0 thumb_func_end MOD17_021DB1D0 thumb_func_start MOD17_021DB210 MOD17_021DB210: ; 0x021DB210 push {r4, r5, r6, lr} sub sp, #0x28 add r6, r0, #0 ldr r4, [r6] ldr r1, [r4, #0x10] cmp r1, #0 bne _021DB220 b _021DB38E _021DB220: add r1, sp, #0x18 str r1, [sp] add r1, sp, #0x24 add r2, sp, #0x20 add r3, sp, #0x1c bl MOD17_021DB588 ldr r0, [r4, #4] ldr r1, [sp, #0x1c] ldr r2, [sp, #0x24] bl MOD17_021DA26C add r5, r0, #0 ldr r0, [r4, #4] ldr r1, [sp, #0x18] ldr r2, [sp, #0x24] bl MOD17_021DA26C add r5, r5, r0 ldr r0, [r4, #4] ldr r1, [sp, #0x1c] ldr r2, [sp, #0x20] bl MOD17_021DA26C add r5, r5, r0 ldr r0, [r4, #4] ldr r1, [sp, #0x18] ldr r2, [sp, #0x20] bl MOD17_021DA26C add r0, r5, r0 cmp r0, #4 blt _021DB2C2 ldr r2, [r4] ldr r0, [r4, #4] ldr r1, [r4, #0x10] ldr r2, [r2, #0x30] bl MOD17_021DA0C4 cmp r0, #0 bne _021DB2AC mov r0, #0x1c ldrsh r0, [r4, r0] str r0, [sp, #0xc] mov r0, #0x1e ldrsh r0, [r4, r0] str r0, [sp, #8] ldr r0, _021DB394 ; =0x00000683 bl FUN_020054C8 ldr r0, [r4, #0xc] ldr r2, _021DB398 ; =0x00000151 mov r1, #0x1a mov r3, #3 bl MOD17_021DCB48 ldr r0, [r4, #0x10] mov r1, #4 ldr r0, [r0, #4] str r0, [sp] add r0, r4, #0 add r0, #0x21 ldrb r0, [r0] str r0, [sp, #4] ldr r2, [sp, #0xc] ldr r3, [sp, #8] add r0, r4, #0 bl MOD17_021DB59C b _021DB388 _021DB2AC: ldr r0, [r4, #4] bl MOD17_021DA178 bl MOD17_021D7A4C mov r0, #0 str r0, [r4, #0x30] ldr r0, _021DB39C ; =0x000005EA bl FUN_020054C8 b _021DB388 _021DB2C2: ldr r0, [r4, #0x10] add r1, sp, #0x24 ldr r5, [r0] add r0, sp, #0x18 str r0, [sp] add r0, r6, #0 add r2, sp, #0x20 add r3, sp, #0x1c bl MOD17_021DB548 ldr r0, [r4, #8] ldr r1, [sp, #0x1c] ldr r2, [sp, #0x24] bl MOD17_021DA95C add r6, r0, #0 ldr r0, [r4, #8] ldr r1, [sp, #0x18] ldr r2, [sp, #0x20] bl MOD17_021DA95C add r0, r6, r0 cmp r0, #2 bge _021DB340 add r0, r4, #0 add r0, #0x20 ldrb r0, [r0] cmp r0, #1 bne _021DB32C ldr r0, [r4, #0x10] add r1, sp, #0x14 add r2, sp, #0x10 bl MOD17_021DBC08 bl FUN_0201BA60 ldr r2, [sp, #0x14] mov r1, #0x6c sub r1, r1, r2 bl _u32_div_f add r1, #0xa str r1, [sp, #0xc] bl FUN_0201BA60 ldr r2, [sp, #0x10] mov r1, #0x7d sub r1, r1, r2 bl _u32_div_f add r1, #0x12 str r1, [sp, #8] b _021DB338 _021DB32C: mov r0, #0x1c ldrsh r0, [r4, r0] str r0, [sp, #0xc] mov r0, #0x1e ldrsh r0, [r4, r0] str r0, [sp, #8] _021DB338: ldr r0, _021DB394 ; =0x00000683 bl FUN_020054C8 b _021DB350 _021DB340: ldr r0, [r4, #0x10] add r1, sp, #0xc add r2, sp, #8 bl MOD17_021DBBB8 ldr r0, _021DB3A0 ; =0x000005EB bl FUN_020054C8 _021DB350: add r0, r4, #0 add r0, #0x20 ldrb r0, [r0] cmp r0, #1 bne _021DB36E ldr r0, [r4, #0x10] ldr r2, [r4, #8] ldr r0, [r0, #4] ldr r1, [r5] ldr r2, [r2, #4] bl MOD17_021DA608 add r1, r4, #0 add r1, #0x21 strb r0, [r1] _021DB36E: ldr r0, [r4, #0x10] mov r1, #4 ldr r0, [r0, #4] str r0, [sp] add r0, r4, #0 add r0, #0x21 ldrb r0, [r0] str r0, [sp, #4] ldr r2, [sp, #0xc] ldr r3, [sp, #8] add r0, r4, #0 bl MOD17_021DB59C _021DB388: add r0, r4, #0 bl MOD17_021DB534 _021DB38E: add sp, #0x28 pop {r4, r5, r6, pc} nop _021DB394: .word 0x00000683 _021DB398: .word 0x00000151 _021DB39C: .word 0x000005EA _021DB3A0: .word 0x000005EB thumb_func_end MOD17_021DB210 thumb_func_start MOD17_021DB3A4 MOD17_021DB3A4: ; 0x021DB3A4 push {r4, lr} ldr r2, [r0] ldr r0, [r2, #0x10] cmp r0, #0 beq _021DB3C8 ldr r3, _021DB3CC ; =0x021C48F8 ldr r1, _021DB3D0 ; =0x0000FFFF ldrh r4, [r3, #0x1c] cmp r4, r1 beq _021DB3C8 beq _021DB3C8 ldrh r3, [r3, #0x1e] ldr r1, [r2, #0x14] ldr r2, [r2, #0x18] sub r1, r4, r1 sub r2, r3, r2 bl MOD17_021DBB68 _021DB3C8: pop {r4, pc} nop _021DB3CC: .word 0x021C48F8 _021DB3D0: .word 0x0000FFFF thumb_func_end MOD17_021DB3A4 thumb_func_start MOD17_021DB3D4 MOD17_021DB3D4: ; 0x021DB3D4 push {r4, lr} ldr r4, [r0] ldr r1, [r4, #0x10] cmp r1, #0 beq _021DB3FE ldr r0, [r4, #4] bl MOD17_021DA040 ldr r0, [r4, #4] bl MOD17_021DA178 bl MOD17_021D7A4C mov r0, #0 str r0, [r4, #0x30] ldr r0, _021DB400 ; =0x000005EB bl FUN_020054C8 add r0, r4, #0 bl MOD17_021DB534 _021DB3FE: pop {r4, pc} .align 2, 0 _021DB400: .word 0x000005EB thumb_func_end MOD17_021DB3D4 thumb_func_start MOD17_021DB404 MOD17_021DB404: ; 0x021DB404 push {r4, r5, r6, r7, lr} sub sp, #0x14 ldr r4, [r0] str r0, [sp] ldr r0, [r4, #0x10] cmp r0, #0 beq _021DB49E ldr r1, _021DB4A4 ; =0x021C48F8 ldrh r2, [r1, #0x1c] ldr r1, _021DB4A8 ; =0x0000FFFF cmp r2, r1 beq _021DB49E beq _021DB49E add r1, sp, #8 add r2, sp, #4 bl MOD17_021DBC20 ldr r0, [r4, #0x10] add r1, sp, #0x10 add r2, sp, #0xc bl MOD17_021DBC08 ldr r0, _021DB4A4 ; =0x021C48F8 ldr r1, [r4, #0x14] ldrh r2, [r0, #0x1c] ldr r3, [sp, #0xc] sub r5, r2, r1 ldrh r1, [r0, #0x1e] ldr r0, [r4, #0x18] ldr r2, [sp, #4] sub r6, r1, r0 sub r3, r3, r2 ldr r1, [sp, #8] ldr r0, [sp, #0x10] str r3, [sp, #0xc] sub r0, r0, r1 add r3, r5, r1 add r7, r6, r2 str r0, [sp, #0x10] cmp r3, #0x8a bgt _021DB45C mov r0, #0x8a sub r5, r0, r1 b _021DB466 _021DB45C: add r1, r5, r0 cmp r1, #0xf6 blt _021DB466 mov r1, #0xf6 sub r5, r1, r0 _021DB466: cmp r7, #0x12 bgt _021DB470 mov r0, #0x12 sub r6, r0, r2 b _021DB47C _021DB470: ldr r1, [sp, #0xc] add r0, r6, r1 cmp r0, #0x8f blt _021DB47C mov r0, #0x8f sub r6, r0, r1 _021DB47C: ldr r0, [sp] add r1, r5, #0 add r2, r6, #0 bl MOD17_021DB6B4 ldr r0, [r4, #4] add r1, sp, #8 add r2, sp, #4 bl MOD17_021DA36C ldr r1, [sp, #8] ldr r2, [sp, #4] ldr r0, [sp] add r1, r5, r1 add r2, r6, r2 bl MOD17_021DB6B4 _021DB49E: add sp, #0x14 pop {r4, r5, r6, r7, pc} nop _021DB4A4: .word 0x021C48F8 _021DB4A8: .word 0x0000FFFF thumb_func_end MOD17_021DB404 thumb_func_start MOD17_021DB4AC MOD17_021DB4AC: ; 0x021DB4AC push {r3, r4, r5, lr} ldr r4, [r0] ldr r0, [r4, #0x10] cmp r0, #0 beq _021DB4D4 ldr r0, [r0, #4] cmp r0, #1 beq _021DB4C0 bl ErrorHandling _021DB4C0: ldr r0, [r4, #0x10] ldr r5, [r0] ldr r0, [r4, #4] bl MOD17_021DA33C ldr r0, [r4, #4] ldr r1, [r5] mov r2, #0xe bl MOD17_021DA2F0 _021DB4D4: pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD17_021DB4AC thumb_func_start MOD17_021DB4D8 MOD17_021DB4D8: ; 0x021DB4D8 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r4, r1, #0 add r5, r0, #0 add r6, r2, #0 add r0, r4, #0 add r1, sp, #4 add r2, sp, #0 add r7, r3, #0 bl MOD17_021DBBB8 str r4, [r5, #0x10] ldr r0, [sp, #4] strh r0, [r5, #0x1c] ldr r0, [sp] strh r0, [r5, #0x1e] add r0, r5, #0 add r0, #0x20 strb r6, [r0] ldr r0, [sp, #0x20] str r7, [r5, #0x14] str r0, [r5, #0x18] cmp r6, #0 bne _021DB51A ldr r1, [r5, #0x10] ldr r0, [r5, #8] ldr r1, [r1, #4] bl MOD17_021DAA7C add r1, r5, #0 add r1, #0x21 strb r0, [r1] b _021DB522 _021DB51A: add r0, r5, #0 mov r1, #0 add r0, #0x21 strb r1, [r0] _021DB522: mov r0, #1 str r0, [r5, #0x30] ldr r1, [sp, #0x24] add r0, r4, #0 bl MOD17_021DBAD0 add sp, #8 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD17_021DB4D8 thumb_func_start MOD17_021DB534 MOD17_021DB534: ; 0x021DB534 mov r2, #0 str r2, [r0, #0x10] strh r2, [r0, #0x1c] add r1, r0, #0 strh r2, [r0, #0x1e] add r1, #0x20 strb r2, [r1] add r0, #0x21 strb r2, [r0] bx lr thumb_func_end MOD17_021DB534 thumb_func_start MOD17_021DB548 MOD17_021DB548: ; 0x021DB548 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 ldr r4, [r0] add r5, r1, #0 ldr r0, [r4, #0x10] add r6, r2, #0 add r1, sp, #0xc add r2, sp, #8 add r7, r3, #0 bl MOD17_021DBC08 ldr r0, [r4, #0x10] add r1, sp, #4 add r2, sp, #0 bl MOD17_021DBBB8 ldr r0, [sp] str r0, [r5] ldr r1, [sp] ldr r0, [sp, #8] add r0, r1, r0 str r0, [r6] ldr r0, [sp, #4] str r0, [r7] ldr r1, [sp, #4] ldr r0, [sp, #0xc] add r1, r1, r0 ldr r0, [sp, #0x28] str r1, [r0] add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD17_021DB548 thumb_func_start MOD17_021DB588 MOD17_021DB588: ; 0x021DB588 push {r3, r4, lr} sub sp, #4 ldr r4, [sp, #0x10] str r4, [sp] ldr r0, [r0] ldr r0, [r0, #0x10] bl MOD17_021DBC70 add sp, #4 pop {r3, r4, pc} thumb_func_end MOD17_021DB588 thumb_func_start MOD17_021DB59C MOD17_021DB59C: ; 0x021DB59C push {r4, r5, r6, r7, lr} sub sp, #0xc add r5, r0, #0 add r6, r1, #0 add r7, r2, #0 str r3, [sp] ldr r0, _021DB60C ; =MOD17_021DB610 mov r1, #0x2c mov r2, #0 mov r3, #0xd bl FUN_020061E8 bl FUN_0201B6C8 add r4, r0, #0 ldr r0, [r5, #8] add r1, sp, #8 str r0, [r4] ldr r0, [r5, #0x10] add r2, sp, #4 str r0, [r4, #4] str r6, [r4, #0x20] ldr r0, [sp] str r7, [r4, #0x10] str r0, [r4, #0x14] ldr r0, [sp, #0x20] str r0, [r4, #0x18] ldr r0, [sp, #0x24] str r0, [r4, #0x1c] ldr r0, [r5, #8] add r0, #0x3c str r0, [r4, #0x24] add r0, r5, #0 add r0, #0x30 str r0, [r4, #0x28] ldr r0, [r5, #0x10] bl MOD17_021DBBB8 ldr r1, [r4, #0x10] ldr r0, [sp, #8] sub r0, r1, r0 add r1, r6, #0 bl _s32_div_f str r0, [r4, #8] ldr r1, [r4, #0x14] ldr r0, [sp, #4] sub r0, r1, r0 add r1, r6, #0 bl _s32_div_f str r0, [r4, #0xc] mov r0, #0 str r0, [r5, #0x30] add sp, #0xc pop {r4, r5, r6, r7, pc} .align 2, 0 _021DB60C: .word MOD17_021DB610 thumb_func_end MOD17_021DB59C thumb_func_start MOD17_021DB610 MOD17_021DB610: ; 0x021DB610 push {r3, r4, r5, lr} sub sp, #8 add r4, r1, #0 add r5, r0, #0 ldr r0, [r4, #0x24] ldr r0, [r0] cmp r0, #1 beq _021DB67C ldr r0, [r4, #4] add r1, sp, #4 add r2, sp, #0 bl MOD17_021DBBB8 ldr r1, [sp, #4] ldr r0, [r4, #8] add r0, r1, r0 str r0, [sp, #4] ldr r1, [sp] ldr r0, [r4, #0xc] add r0, r1, r0 str r0, [sp] ldr r0, [r4, #0x20] sub r0, r0, #1 str r0, [r4, #0x20] ldr r0, [r4, #4] bpl _021DB674 ldr r1, [r4, #0x10] ldr r2, [r4, #0x14] bl MOD17_021DBB68 ldr r0, [r4] ldr r1, [r4, #0x18] ldr r2, [r4, #0x1c] ldr r3, [r4, #4] bl MOD17_021DA7E4 ldr r0, [r4] bl MOD17_021DA844 ldr r0, [r4, #0x28] ldr r0, [r0] cmp r0, #0 bne _021DB66A bl MOD17_021D7A4C _021DB66A: add r0, r5, #0 bl FUN_0200621C add sp, #8 pop {r3, r4, r5, pc} _021DB674: ldr r1, [sp, #4] ldr r2, [sp] bl MOD17_021DBB68 _021DB67C: add sp, #8 pop {r3, r4, r5, pc} thumb_func_end MOD17_021DB610 thumb_func_start MOD17_021DB680 MOD17_021DB680: ; 0x021DB680 push {r3, lr} ldr r3, [r0, #0x10] ldr r1, [r3, #4] cmp r1, #0 bne _021DB69A ldr r3, [r3] ldr r0, [r0, #0xc] ldr r2, _021DB6B0 ; =0x00000152 ldr r3, [r3] mov r1, #0x1a bl MOD17_021DCB48 pop {r3, pc} _021DB69A: cmp r1, #1 bne _021DB6AE ldr r3, [r3] mov r2, #0x55 ldr r0, [r0, #0xc] ldr r3, [r3] mov r1, #0x1a lsl r2, r2, #2 bl MOD17_021DCB48 _021DB6AE: pop {r3, pc} .align 2, 0 _021DB6B0: .word 0x00000152 thumb_func_end MOD17_021DB680 thumb_func_start MOD17_021DB6B4 MOD17_021DB6B4: ; 0x021DB6B4 push {r4, r5, r6, lr} ldr r4, [r0] add r5, r1, #0 ldr r0, [r4, #0x10] add r6, r2, #0 bl MOD17_021DBB68 ldr r1, [r4, #0x24] ldr r2, [r4, #0x28] ldr r0, [r4, #4] sub r1, r5, r1 sub r2, r6, r2 bl MOD17_021DA134 str r5, [r4, #0x24] str r6, [r4, #0x28] pop {r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD17_021DB6B4 thumb_func_start MOD17_021DB6D8 MOD17_021DB6D8: ; 0x021DB6D8 push {r3, r4, lr} sub sp, #4 mov r2, #0 str r2, [sp] add r4, r0, #0 ldrh r0, [r1] ldrh r1, [r1, #2] mov r3, #0xe bl FUN_02006C98 add r1, r0, #0 add r0, r4, #0 mov r2, #0x76 bl MOD17_021D7A2C ldr r0, [r0, #0x14] bl FUN_02008A74 add sp, #4 pop {r3, r4, pc} thumb_func_end MOD17_021DB6D8 thumb_func_start MOD17_021DB700 MOD17_021DB700: ; 0x021DB700 push {r4, r5, r6, r7, lr} sub sp, #0x1c add r4, r2, #0 add r5, r0, #0 add r7, r1, #0 add r6, r3, #0 add r0, r4, #0 mov r1, #5 mov r2, #0 bl FUN_020671BC add r0, r6, #0 add r1, r4, #0 mov r2, #2 bl FUN_02068B68 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] str r0, [sp, #0xc] add r0, r7, #0 add r1, r6, #0 mov r2, #0xc0 mov r3, #0x38 bl FUN_020073A0 str r0, [r5] add r0, r5, #0 add r1, sp, #0x18 add r2, sp, #0x14 bl MOD17_021DB878 ldr r1, [sp, #0x18] mov r2, #0x38 lsr r0, r1, #0x1f add r0, r1, r0 asr r0, r0, #1 ldr r1, [sp, #0x14] str r0, [sp, #0x18] lsr r0, r1, #0x1f add r0, r1, r0 asr r0, r0, #1 str r0, [sp, #0x14] sub r0, r2, r0 strb r0, [r5, #4] ldr r0, [sp, #0x14] mov r1, #0xc0 add r0, #0x38 strb r0, [r5, #5] ldr r0, [sp, #0x18] sub r0, r1, r0 strb r0, [r5, #6] ldr r0, [sp, #0x18] add r0, #0xc0 strb r0, [r5, #7] ldr r0, [sp, #0x14] str r0, [sp] ldr r3, [sp, #0x18] add r0, r5, #4 bl MOD17_021DB9B8 add r0, r4, #0 mov r1, #2 bl FUN_02068E14 mov r2, #0 str r2, [sp] add r7, r0, #0 ldrh r0, [r6] ldrh r1, [r6, #2] ldr r3, [sp, #0x30] bl FUN_02006C98 add r1, sp, #0x10 add r6, r0, #0 bl FUN_020B0088 ldr r0, [sp, #0x10] ldr r0, [r0, #0x14] bl FUN_02008A74 ldr r1, [sp, #0x10] ldr r0, [r1, #0x14] ldrh r1, [r1, #2] lsl r1, r1, #3 bl MOD17_021DB96C strb r0, [r5, #8] add r0, r6, #0 strb r7, [r5, #9] bl FUN_02016A18 str r4, [r5, #0xc] add sp, #0x1c pop {r4, r5, r6, r7, pc} thumb_func_end MOD17_021DB700 thumb_func_start MOD17_021DB7C0 MOD17_021DB7C0: ; 0x021DB7C0 push {r4, lr} add r4, r0, #0 ldr r0, [r4] bl FUN_02007534 mov r1, #0x10 mov r0, #0 _021DB7CE: strb r0, [r4] add r4, r4, #1 sub r1, r1, #1 bne _021DB7CE pop {r4, pc} thumb_func_end MOD17_021DB7C0 thumb_func_start MOD17_021DB7D8 MOD17_021DB7D8: ; 0x021DB7D8 ldr r3, _021DB7E4 ; =0x02007559 add r2, r1, #0 ldr r0, [r0] mov r1, #2 bx r3 nop _021DB7E4: .word 0x02007559 thumb_func_end MOD17_021DB7D8 thumb_func_start MOD17_021DB7E8 MOD17_021DB7E8: ; 0x021DB7E8 ldr r3, _021DB7F0 ; =0x0200782D ldr r0, [r0] mov r1, #2 bx r3 .align 2, 0 _021DB7F0: .word 0x0200782D thumb_func_end MOD17_021DB7E8 thumb_func_start MOD17_021DB7F4 MOD17_021DB7F4: ; 0x021DB7F4 push {r3, r4, r5, r6, lr} sub sp, #0xc add r4, r1, #0 add r6, r2, #0 add r5, r0, #0 add r1, sp, #8 add r2, sp, #4 bl MOD17_021DB878 ldr r0, [r5] mov r1, #0 add r2, r4, #0 bl FUN_02007558 ldr r0, [r5] mov r1, #1 add r2, r6, #0 bl FUN_02007558 ldr r1, [sp, #4] lsr r0, r1, #0x1f add r0, r1, r0 asr r2, r0, #1 ldr r1, [sp, #8] str r2, [sp, #4] lsr r0, r1, #0x1f add r0, r1, r0 asr r0, r0, #1 str r0, [sp, #8] str r2, [sp] ldr r3, [sp, #8] add r0, r5, #4 add r1, r4, #0 add r2, r6, #0 bl MOD17_021DB9B8 add sp, #0xc pop {r3, r4, r5, r6, pc} thumb_func_end MOD17_021DB7F4 thumb_func_start MOD17_021DB840 MOD17_021DB840: ; 0x021DB840 ldr r3, _021DB848 ; =0x02020A41 add r0, r0, #4 bx r3 nop _021DB848: .word 0x02020A41 thumb_func_end MOD17_021DB840 thumb_func_start MOD17_021DB84C MOD17_021DB84C: ; 0x021DB84C ldr r3, _021DB854 ; =0x02020AE9 add r0, r0, #4 bx r3 nop _021DB854: .word 0x02020AE9 thumb_func_end MOD17_021DB84C thumb_func_start MOD17_021DB858 MOD17_021DB858: ; 0x021DB858 push {r4, r5, r6, lr} add r5, r0, #0 ldr r0, [r5] add r4, r1, #0 mov r1, #0 add r6, r2, #0 bl FUN_0200782C str r0, [r4] ldr r0, [r5] mov r1, #1 bl FUN_0200782C str r0, [r6] pop {r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD17_021DB858 thumb_func_start MOD17_021DB878 MOD17_021DB878: ; 0x021DB878 mov r0, #0x50 str r0, [r1] str r0, [r2] bx lr thumb_func_end MOD17_021DB878 thumb_func_start MOD17_021DB880 MOD17_021DB880: ; 0x021DB880 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r5, r0, #0 add r4, r1, #0 add r6, r2, #0 add r7, r3, #0 bl MOD17_021DB840 cmp r0, #0 bne _021DB89A add sp, #0x10 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _021DB89A: add r0, r5, #0 add r1, sp, #4 add r2, sp, #0 bl MOD17_021DB858 add r0, r5, #0 add r1, sp, #0xc add r2, sp, #8 bl MOD17_021DB878 ldr r1, [sp, #0xc] ldr r2, [sp, #4] lsr r0, r1, #0x1f add r0, r1, r0 asr r0, r0, #1 sub r1, r2, r0 ldr r3, [sp, #8] ldr r0, [sp] lsr r2, r3, #0x1f add r2, r3, r2 asr r2, r2, #1 sub r0, r0, r2 str r0, [sp] ldr r0, _021DB8F4 ; =0x021C48F8 str r1, [sp, #4] ldrh r2, [r0, #0x1c] mov r3, #0 sub r1, r2, r1 str r1, [r4] ldrh r1, [r0, #0x1e] ldr r0, [sp] sub r2, r1, r0 str r2, [r6] ldr r1, [r4] add r0, r7, #0 bl MOD17_021D7B0C cmp r0, #0 bne _021DB8EE add sp, #0x10 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021DB8EE: mov r0, #0 add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021DB8F4: .word 0x021C48F8 thumb_func_end MOD17_021DB880 thumb_func_start MOD17_021DB8F8 MOD17_021DB8F8: ; 0x021DB8F8 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r5, r0, #0 add r4, r1, #0 add r6, r2, #0 add r7, r3, #0 bl MOD17_021DB84C cmp r0, #0 bne _021DB912 add sp, #0x10 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _021DB912: add r0, r5, #0 add r1, sp, #4 add r2, sp, #0 bl MOD17_021DB858 add r0, r5, #0 add r1, sp, #0xc add r2, sp, #8 bl MOD17_021DB878 ldr r1, [sp, #0xc] ldr r2, [sp, #4] lsr r0, r1, #0x1f add r0, r1, r0 asr r0, r0, #1 sub r1, r2, r0 ldr r3, [sp, #8] str r1, [sp, #4] lsr r2, r3, #0x1f add r2, r3, r2 ldr r0, [sp] asr r2, r2, #1 sub r0, r0, r2 str r0, [sp] sub r2, r6, r0 sub r1, r4, r1 add r0, r7, #0 mov r3, #0 bl MOD17_021D7B0C cmp r0, #0 bne _021DB958 add sp, #0x10 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021DB958: mov r0, #0 add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD17_021DB8F8 thumb_func_start MOD17_021DB960 MOD17_021DB960: ; 0x021DB960 ldrb r3, [r0, #8] str r3, [r1] ldrb r0, [r0, #9] str r0, [r2] bx lr .align 2, 0 thumb_func_end MOD17_021DB960 thumb_func_start MOD17_021DB96C MOD17_021DB96C: ; 0x021DB96C push {r4, r5, r6, r7} mov ip, r0 add r7, r1, #0 mov r2, #0 _021DB974: mov r3, #0 add r4, r3, #0 _021DB978: add r1, r2, r4 lsr r0, r1, #0x1f lsl r6, r1, #0x1f sub r6, r6, r0 mov r5, #0x1f ror r6, r5 add r5, r0, r6 lsl r6, r5, #2 mov r5, #0xf add r0, r1, r0 lsl r5, r6 asr r1, r0, #1 mov r0, ip lsl r5, r5, #0x18 ldrsb r0, [r0, r1] lsr r5, r5, #0x18 tst r0, r5 beq _021DB9A2 add r0, r2, #0 pop {r4, r5, r6, r7} bx lr _021DB9A2: add r3, r3, #1 add r4, r4, r7 cmp r3, #0x50 blt _021DB978 add r2, r2, #1 cmp r2, #0x50 blt _021DB974 mov r0, #0x50 pop {r4, r5, r6, r7} bx lr .align 2, 0 thumb_func_end MOD17_021DB96C thumb_func_start MOD17_021DB9B8 MOD17_021DB9B8: ; 0x021DB9B8 push {r3, r4} ldr r4, [sp, #8] sub r4, r2, r4 bmi _021DB9C2 b _021DB9C4 _021DB9C2: mov r4, #0 _021DB9C4: strb r4, [r0] ldr r4, [sp, #8] add r2, r2, r4 cmp r2, #0xbf bgt _021DB9D0 b _021DB9D2 _021DB9D0: mov r2, #0xbf _021DB9D2: strb r2, [r0, #1] sub r2, r1, r3 bmi _021DB9DA b _021DB9DC _021DB9DA: mov r2, #0 _021DB9DC: add r1, r1, r3 strb r2, [r0, #2] cmp r1, #0xff bgt _021DB9EA strb r1, [r0, #3] pop {r3, r4} bx lr _021DB9EA: mov r1, #0xff strb r1, [r0, #3] pop {r3, r4} bx lr .align 2, 0 thumb_func_end MOD17_021DB9B8 thumb_func_start MOD17_021DB9F4 MOD17_021DB9F4: ; 0x021DB9F4 push {r4, r5, r6, lr} add r6, r1, #0 lsl r4, r6, #4 add r5, r0, #0 add r0, r2, #0 add r1, r4, #0 bl FUN_02016998 str r0, [r5] cmp r0, #0 bne _021DBA0E bl ErrorHandling _021DBA0E: ldr r0, [r5] mov r1, #0 add r2, r4, #0 bl Call_FillMemWithValue str r6, [r5, #4] pop {r4, r5, r6, pc} thumb_func_end MOD17_021DB9F4 thumb_func_start MOD17_021DBA1C MOD17_021DBA1C: ; 0x021DBA1C push {r4, lr} add r4, r0, #0 ldr r0, [r4] bl FUN_02016A18 mov r0, #0 str r0, [r4] str r0, [r4, #4] pop {r4, pc} .align 2, 0 thumb_func_end MOD17_021DBA1C thumb_func_start MOD17_021DBA30 MOD17_021DBA30: ; 0x021DBA30 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 ldr r0, [r5] add r6, r1, #0 add r7, r2, #0 cmp r0, #0 bne _021DBA42 bl ErrorHandling _021DBA42: ldr r0, [r5, #4] cmp r0, #0 bne _021DBA4C bl ErrorHandling _021DBA4C: ldr r2, [r5, #4] mov r4, #0 cmp r2, #0 ble _021DBA64 ldr r1, [r5] _021DBA56: ldr r0, [r1] cmp r0, #0 beq _021DBA64 add r4, r4, #1 add r1, #0x10 cmp r4, r2 blt _021DBA56 _021DBA64: cmp r2, r4 bgt _021DBA6C bl ErrorHandling _021DBA6C: ldr r0, [r5] lsl r1, r4, #4 str r6, [r0, r1] ldr r0, [r5] add r0, r0, r1 str r7, [r0, #4] ldr r0, [r5] add r0, r0, r1 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD17_021DBA30 thumb_func_start MOD17_021DBA80 MOD17_021DBA80: ; 0x021DBA80 mov r2, #0x10 mov r1, #0 _021DBA84: strb r1, [r0] add r0, r0, #1 sub r2, r2, #1 bne _021DBA84 bx lr .align 2, 0 thumb_func_end MOD17_021DBA80 thumb_func_start MOD17_021DBA90 MOD17_021DBA90: ; 0x021DBA90 ldr r2, [r1, #8] str r2, [r0, #8] ldr r2, [r1, #8] str r0, [r2, #0xc] str r1, [r0, #0xc] str r0, [r1, #8] bx lr .align 2, 0 thumb_func_end MOD17_021DBA90 thumb_func_start MOD17_021DBAA0 MOD17_021DBAA0: ; 0x021DBAA0 ldr r2, [r0, #8] ldr r1, [r0, #0xc] str r2, [r1, #8] ldr r1, [r0, #0xc] ldr r0, [r0, #8] str r1, [r0, #0xc] bx lr .align 2, 0 thumb_func_end MOD17_021DBAA0 thumb_func_start MOD17_021DBAB0 MOD17_021DBAB0: ; 0x021DBAB0 push {r4, r5, r6, lr} add r6, r0, #0 ldr r4, [r6, #8] cmp r4, r6 beq _021DBACE _021DBABA: add r0, r4, #0 ldr r5, [r4, #8] bl MOD17_021DBAA0 add r0, r4, #0 bl MOD17_021DBA80 add r4, r5, #0 cmp r5, r6 bne _021DBABA _021DBACE: pop {r4, r5, r6, pc} thumb_func_end MOD17_021DBAB0 thumb_func_start MOD17_021DBAD0 MOD17_021DBAD0: ; 0x021DBAD0 push {r3, lr} ldr r2, [r0, #4] ldr r0, [r0] cmp r2, #3 bge _021DBAE0 bl MOD17_021D766C pop {r3, pc} _021DBAE0: bl MOD17_021DB7D8 pop {r3, pc} .align 2, 0 thumb_func_end MOD17_021DBAD0 thumb_func_start MOD17_021DBAE8 MOD17_021DBAE8: ; 0x021DBAE8 push {r3, lr} ldr r3, [r0, #4] ldr r0, [r0] cmp r3, #3 bge _021DBB06 mov r3, #0 mvn r3, r3 cmp r1, r3 bne _021DBB00 bl MOD17_021D7544 pop {r3, pc} _021DBB00: bl MOD17_021D75DC pop {r3, pc} _021DBB06: mov r3, #0 mvn r3, r3 cmp r1, r3 bne _021DBB14 bl MOD17_021DB840 pop {r3, pc} _021DBB14: bl MOD17_021DB84C pop {r3, pc} .align 2, 0 thumb_func_end MOD17_021DBAE8 thumb_func_start MOD17_021DBB1C MOD17_021DBB1C: ; 0x021DBB1C push {r4, lr} ldr r4, [r0, #4] cmp r4, #0 bne _021DBB32 ldr r0, [r0] ldr r4, [r0] lsl r4, r4, #2 ldr r3, [r3, r4] bl MOD17_021D7554 pop {r4, pc} _021DBB32: cmp r4, #1 bne _021DBB46 ldr r0, [r0] ldr r4, [r0] add r4, #0x64 lsl r4, r4, #2 ldr r3, [r3, r4] bl MOD17_021D7554 pop {r4, pc} _021DBB46: cmp r4, #2 ldr r0, [r0] bne _021DBB5A ldr r4, [r0] add r4, #0x64 lsl r4, r4, #2 ldr r3, [r3, r4] bl MOD17_021D7554 pop {r4, pc} _021DBB5A: mov r4, #0x76 lsl r4, r4, #2 ldr r3, [r3, r4] bl MOD17_021DB880 pop {r4, pc} .align 2, 0 thumb_func_end MOD17_021DBB1C thumb_func_start MOD17_021DBB68 MOD17_021DBB68: ; 0x021DBB68 push {r4, r5, r6, lr} sub sp, #8 add r5, r1, #0 ldr r1, [r0, #4] add r4, r2, #0 cmp r1, #3 bge _021DBB88 lsl r1, r5, #0x10 lsl r2, r4, #0x10 ldr r0, [r0] asr r1, r1, #0x10 asr r2, r2, #0x10 bl MOD17_021D75F4 add sp, #8 pop {r4, r5, r6, pc} _021DBB88: ldr r6, [r0] add r1, sp, #4 add r0, r6, #0 add r2, sp, #0 bl MOD17_021DB878 ldr r1, [sp, #4] ldr r2, [sp] lsr r0, r1, #0x1f add r0, r1, r0 asr r1, r0, #1 lsr r0, r2, #0x1f add r0, r2, r0 asr r2, r0, #1 str r1, [sp, #4] str r2, [sp] add r0, r6, #0 add r1, r5, r1 add r2, r4, r2 bl MOD17_021DB7F4 add sp, #8 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD17_021DBB68 thumb_func_start MOD17_021DBBB8 MOD17_021DBBB8: ; 0x021DBBB8 push {r4, r5, r6, lr} sub sp, #8 ldr r3, [r0, #4] add r5, r1, #0 add r4, r2, #0 cmp r3, #3 bge _021DBBD0 ldr r0, [r0] bl MOD17_021D7600 add sp, #8 pop {r4, r5, r6, pc} _021DBBD0: ldr r6, [r0] add r0, r6, #0 bl MOD17_021DB858 add r0, r6, #0 add r1, sp, #4 add r2, sp, #0 bl MOD17_021DB878 ldr r1, [sp, #4] lsr r0, r1, #0x1f add r0, r1, r0 asr r2, r0, #1 ldr r1, [sp] str r2, [sp, #4] lsr r0, r1, #0x1f add r0, r1, r0 asr r0, r0, #1 str r0, [sp] ldr r0, [r5] sub r0, r0, r2 str r0, [r5] ldr r1, [r4] ldr r0, [sp] sub r0, r1, r0 str r0, [r4] add sp, #8 pop {r4, r5, r6, pc} thumb_func_end MOD17_021DBBB8 thumb_func_start MOD17_021DBC08 MOD17_021DBC08: ; 0x021DBC08 push {r3, lr} ldr r3, [r0, #4] ldr r0, [r0] cmp r3, #3 bge _021DBC18 bl MOD17_021D7630 pop {r3, pc} _021DBC18: bl MOD17_021DB878 pop {r3, pc} .align 2, 0 thumb_func_end MOD17_021DBC08 thumb_func_start MOD17_021DBC20 MOD17_021DBC20: ; 0x021DBC20 push {r3, lr} ldr r3, [r0, #4] ldr r0, [r0] cmp r3, #3 bge _021DBC30 bl MOD17_021D7684 pop {r3, pc} _021DBC30: bl MOD17_021DB960 pop {r3, pc} .align 2, 0 thumb_func_end MOD17_021DBC20 thumb_func_start MOD17_021DBC38 MOD17_021DBC38: ; 0x021DBC38 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r5, r0, #0 ldr r4, [r5, #8] add r6, r1, #0 add r7, r2, #0 cmp r4, r5 beq _021DBC6A _021DBC48: add r0, r4, #0 add r1, sp, #4 add r2, sp, #0 bl MOD17_021DBBB8 ldr r0, [sp, #4] add r1, r0, r6 ldr r0, [sp] str r1, [sp, #4] add r2, r0, r7 str r2, [sp] add r0, r4, #0 bl MOD17_021DBB68 ldr r4, [r4, #8] cmp r4, r5 bne _021DBC48 _021DBC6A: add sp, #8 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD17_021DBC38 thumb_func_start MOD17_021DBC70 MOD17_021DBC70: ; 0x021DBC70 push {r3, r4, r5, r6, r7, lr} sub sp, #0x18 add r4, r1, #0 add r6, r2, #0 add r5, r0, #0 add r1, sp, #0x14 add r2, sp, #0x10 add r7, r3, #0 bl MOD17_021DBC08 add r0, r5, #0 add r1, sp, #0xc add r2, sp, #8 bl MOD17_021DBBB8 add r0, r5, #0 add r1, sp, #4 add r2, sp, #0 bl MOD17_021DBC20 ldr r1, [sp, #8] ldr r0, [sp] add r0, r1, r0 str r0, [r4] ldr r1, [sp, #8] ldr r0, [sp, #0x10] add r1, r1, r0 ldr r0, [sp] sub r0, r1, r0 str r0, [r6] ldr r1, [sp, #0xc] ldr r0, [sp, #4] add r0, r1, r0 str r0, [r7] ldr r1, [sp, #0xc] ldr r0, [sp, #0x14] add r1, r1, r0 ldr r0, [sp, #4] sub r1, r1, r0 ldr r0, [sp, #0x30] str r1, [r0] add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD17_021DBC70 thumb_func_start MOD17_021DBCC8 MOD17_021DBCC8: ; 0x021DBCC8 push {r4, r5, r6, lr} sub sp, #0x10 add r5, r1, #0 add r4, r2, #0 add r6, r0, #0 add r1, sp, #0xc add r2, sp, #8 bl MOD17_021DBC08 add r0, r6, #0 add r1, sp, #4 add r2, sp, #0 bl MOD17_021DBBB8 ldr r1, [sp, #0xc] ldr r2, [sp, #4] lsr r0, r1, #0x1f add r0, r1, r0 asr r0, r0, #1 add r0, r2, r0 str r0, [r5] ldr r1, [sp, #8] ldr r2, [sp] lsr r0, r1, #0x1f add r0, r1, r0 asr r0, r0, #1 add r0, r2, r0 str r0, [r4] add sp, #0x10 pop {r4, r5, r6, pc} thumb_func_end MOD17_021DBCC8 thumb_func_start MOD17_021DBD04 MOD17_021DBD04: ; 0x021DBD04 add r2, r0, #0 ldr r0, [r1] str r0, [r2] ldr r3, [r1, #0x14] asr r0, r3, #2 lsr r0, r0, #0x1d add r0, r3, r0 asr r0, r0, #3 str r0, [r2, #0xc] ldr r3, [r1, #0x18] asr r0, r3, #2 lsr r0, r0, #0x1d add r0, r3, r0 asr r0, r0, #3 str r0, [r2, #0x10] ldr r0, [r1, #0x1c] ldr r3, _021DBD48 ; =MOD17_021DBEE8 str r0, [r2, #0x1c] ldr r0, [r1, #0x24] str r0, [r2, #0x20] ldr r0, [r1, #0x20] str r0, [r2, #0x24] ldr r0, [r1, #0x28] str r0, [r2, #0x28] ldr r0, [r1, #4] str r0, [r2, #4] ldr r0, [r1, #0x10] str r0, [r2, #8] add r0, r1, #0 add r1, r2, #0 add r1, #0x14 add r2, #0x18 bx r3 nop _021DBD48: .word MOD17_021DBEE8 thumb_func_end MOD17_021DBD04 thumb_func_start MOD17_021DBD4C MOD17_021DBD4C: ; 0x021DBD4C push {r4, lr} add r4, r0, #0 ldr r1, [r4, #0x1c] ldr r0, [r4] lsl r1, r1, #0x18 lsr r1, r1, #0x18 bl FUN_02018744 add r0, r4, #0 mov r1, #0 mov r2, #0x2c bl Call_FillMemWithValue pop {r4, pc} thumb_func_end MOD17_021DBD4C thumb_func_start MOD17_021DBD68 MOD17_021DBD68: ; 0x021DBD68 ldr r2, [r1] str r2, [r0] ldr r2, [r1, #4] str r2, [r0, #4] ldr r2, [r1, #8] str r2, [r0, #8] mov r2, #0 str r2, [r0, #0xc] str r2, [r0, #0x10] ldr r1, [r1, #0xc] str r1, [r0, #0x14] bx lr thumb_func_end MOD17_021DBD68 thumb_func_start MOD17_021DBD80 MOD17_021DBD80: ; 0x021DBD80 push {r3, r4, r5, lr} sub sp, #0x18 add r5, r0, #0 ldr r0, [r5, #0xc] add r1, r0, r1 str r1, [r5, #0xc] ldr r0, [r5, #8] cmp r1, r0 ble _021DBDE4 mov r2, #0 str r2, [r5, #0xc] ldr r0, [r5, #0x10] cmp r0, #0 bne _021DBDA4 ldr r1, [r5, #4] mov r0, #1 str r0, [r5, #0x10] b _021DBDAA _021DBDA4: ldr r0, [r5] ldr r1, [r0, #8] str r2, [r5, #0x10] _021DBDAA: ldr r0, [r5, #0x14] mov r2, #0 str r0, [sp] ldr r0, [r5] add r3, sp, #0x14 ldr r0, [r0, #4] bl FUN_02006BDC ldr r3, [r5] add r4, r0, #0 ldr r0, [r3, #0x18] str r0, [sp] ldr r0, [r3, #0xc] str r0, [sp, #4] ldr r0, [r3, #0x10] str r0, [sp, #8] ldr r0, [r3, #0x28] str r0, [sp, #0xc] ldr r0, [r3, #0x20] str r0, [sp, #0x10] ldr r0, [r3] ldr r1, [r3, #0x1c] ldr r2, [sp, #0x14] ldr r3, [r3, #0x14] bl MOD17_021DC004 add r0, r4, #0 bl FUN_02016A18 _021DBDE4: add sp, #0x18 pop {r3, r4, r5, pc} thumb_func_end MOD17_021DBD80 thumb_func_start MOD17_021DBDE8 MOD17_021DBDE8: ; 0x021DBDE8 push {r3, r4, r5, lr} sub sp, #0x18 add r5, r0, #0 ldr r1, [r5] ldr r0, [r5, #0x14] mov r2, #0 str r0, [sp] ldr r0, [r1, #4] ldr r1, [r1, #8] add r3, sp, #0x14 bl FUN_02006BDC ldr r3, [r5] add r4, r0, #0 ldr r0, [r3, #0x18] str r0, [sp] ldr r0, [r3, #0xc] str r0, [sp, #4] ldr r0, [r3, #0x10] str r0, [sp, #8] ldr r0, [r3, #0x28] str r0, [sp, #0xc] ldr r0, [r3, #0x20] str r0, [sp, #0x10] ldr r0, [r3] ldr r1, [r3, #0x1c] ldr r2, [sp, #0x14] ldr r3, [r3, #0x14] bl MOD17_021DC004 add r0, r4, #0 bl FUN_02016A18 mov r1, #0x18 mov r0, #0 _021DBE2E: strb r0, [r5] add r5, r5, #1 sub r1, r1, #1 bne _021DBE2E add sp, #0x18 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD17_021DBDE8 thumb_func_start MOD17_021DBE3C MOD17_021DBE3C: ; 0x021DBE3C push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r6, r0, #0 add r5, r1, #0 str r2, [sp] str r3, [sp, #4] ldr r0, _021DBEC4 ; =MOD17_021DBF94 mov r1, #0x4c mov r2, #0 mov r3, #0xd bl FUN_020061E8 bl FUN_0201B6C8 add r4, r0, #0 str r6, [r4] add r7, r5, #0 add r3, r4, #4 mov r2, #6 _021DBE62: ldmia r7!, {r0, r1} stmia r3!, {r0, r1} sub r2, r2, #1 bne _021DBE62 ldr r0, [sp, #0x24] ldr r1, [sp, #0x20] str r0, [r4, #0x34] ldr r0, [sp] str r1, [r4, #0x38] bl _s32_div_f str r0, [r4, #0x3c] ldr r0, [sp, #4] ldr r1, [sp, #0x20] bl _s32_div_f str r0, [r4, #0x40] ldr r0, [r6] ldr r1, [r6, #0x1c] bl FUN_02017B48 str r0, [r4, #0x44] ldr r0, [r6] ldr r1, [r6, #0x1c] bl FUN_02017B54 str r0, [r4, #0x48] mov r0, #0x80 str r0, [r5, #0x28] mov r0, #5 str r0, [r5, #0x24] ldr r1, [r5, #0x14] ldr r0, [sp] sub r0, r1, r0 str r0, [r5, #0x14] ldr r1, [r5, #0x18] ldr r0, [sp, #4] sub r0, r1, r0 str r0, [r5, #0x18] mov r0, #0xe mov r1, #0 str r0, [r5, #0x2c] add r0, r5, #0 add r2, r1, #0 bl MOD17_021DBEE8 add sp, #8 pop {r3, r4, r5, r6, r7, pc} nop _021DBEC4: .word MOD17_021DBF94 thumb_func_end MOD17_021DBE3C thumb_func_start MOD17_021DBEC8 MOD17_021DBEC8: ; 0x021DBEC8 push {r3, r4} ldr r2, [r0, #8] add r0, #0xc lsr r4, r2, #1 mov r3, #0 cmp r4, #0 ble _021DBEE4 _021DBED6: ldrh r2, [r0] add r3, r3, #1 add r2, r2, r1 strh r2, [r0] add r0, r0, #2 cmp r3, r4 blt _021DBED6 _021DBEE4: pop {r3, r4} bx lr thumb_func_end MOD17_021DBEC8 thumb_func_start MOD17_021DBEE8 MOD17_021DBEE8: ; 0x021DBEE8 push {r3, r4, r5, r6, r7, lr} sub sp, #0x28 add r5, r0, #0 add r4, r1, #0 ldr r1, [r5, #0x14] add r6, r2, #0 asr r0, r1, #2 lsr r0, r0, #0x1d add r0, r1, r0 asr r0, r0, #3 ldr r1, [r5, #0x18] str r0, [sp, #0x18] asr r0, r1, #2 lsr r0, r0, #0x1d add r0, r1, r0 asr r0, r0, #3 str r0, [sp, #0x14] ldr r0, [r5, #0x28] str r0, [sp] ldr r0, [r5, #0x2c] str r0, [sp, #4] ldr r0, [r5, #4] ldr r1, [r5, #8] ldr r2, [r5] ldr r3, [r5, #0x1c] bl MOD17_021DC084 ldr r0, [r5, #0x1c] cmp r0, #4 bge _021DBF28 mov r2, #0 b _021DBF2A _021DBF28: mov r2, #4 _021DBF2A: ldr r0, [r5, #0x20] lsl r0, r0, #5 str r0, [sp] ldr r0, [r5, #0x2c] str r0, [sp, #4] ldr r3, [r5, #0x24] ldr r0, [r5, #4] ldr r1, [r5, #0xc] lsl r3, r3, #5 bl MOD17_021DC0D4 ldr r0, [r5, #0x2c] mov r2, #0 str r0, [sp] ldr r0, [r5, #4] ldr r1, [r5, #0x10] add r3, sp, #0x24 bl FUN_02006BDC ldr r2, [sp, #0x24] str r0, [sp, #0x20] ldrh r0, [r2] lsr r7, r0, #3 ldrh r0, [r2, #2] add r3, r7, #0 lsr r0, r0, #3 str r0, [sp, #0x1c] str r0, [sp] ldr r0, [sp, #0x18] str r0, [sp, #4] ldr r0, [sp, #0x14] str r0, [sp, #8] ldr r0, [r5, #0x28] str r0, [sp, #0xc] ldr r0, [r5, #0x24] str r0, [sp, #0x10] ldr r0, [r5] ldr r1, [r5, #0x1c] bl MOD17_021DC004 ldr r0, [sp, #0x20] bl FUN_02016A18 cmp r4, #0 beq _021DBF86 str r7, [r4] _021DBF86: cmp r6, #0 beq _021DBF8E ldr r0, [sp, #0x1c] str r0, [r6] _021DBF8E: add sp, #0x28 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD17_021DBEE8 thumb_func_start MOD17_021DBF94 MOD17_021DBF94: ; 0x021DBF94 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 ldr r0, [r4, #0x38] sub r0, r0, #1 str r0, [r4, #0x38] ldr r1, [r4] bmi _021DBFC8 ldr r0, [r1] ldr r1, [r1, #0x1c] ldr r3, [r4, #0x3c] lsl r1, r1, #0x18 lsr r1, r1, #0x18 mov r2, #2 bl FUN_0201AEE4 ldr r1, [r4] ldr r3, [r4, #0x40] ldr r0, [r1] ldr r1, [r1, #0x1c] mov r2, #5 lsl r1, r1, #0x18 lsr r1, r1, #0x18 bl FUN_0201AEE4 pop {r3, r4, r5, pc} _021DBFC8: ldr r0, [r1] ldr r1, [r1, #0x1c] ldr r3, [r4, #0x44] lsl r1, r1, #0x18 lsr r1, r1, #0x18 mov r2, #0 bl FUN_0201AEE4 ldr r1, [r4] ldr r3, [r4, #0x48] ldr r0, [r1] ldr r1, [r1, #0x1c] mov r2, #3 lsl r1, r1, #0x18 lsr r1, r1, #0x18 bl FUN_0201AEE4 ldr r0, [r4] add r1, r4, #4 bl MOD17_021DBD04 ldr r1, [r4, #0x34] cmp r1, #0 beq _021DBFFC mov r0, #1 str r0, [r1] _021DBFFC: add r0, r5, #0 bl FUN_0200621C pop {r3, r4, r5, pc} thumb_func_end MOD17_021DBF94 thumb_func_start MOD17_021DC004 MOD17_021DC004: ; 0x021DC004 push {r4, r5, r6, r7, lr} sub sp, #0x1c add r5, r1, #0 add r4, r2, #0 add r7, r0, #0 ldr r1, [sp, #0x3c] add r0, r4, #0 add r6, r3, #0 bl MOD17_021DBEC8 ldr r1, [sp, #0x30] lsl r0, r6, #0x18 lsr r0, r0, #0x18 lsl r1, r1, #0x18 lsr r2, r1, #0x18 str r0, [sp] ldr r3, [sp, #0x38] str r2, [sp, #4] add r4, #0xc lsl r3, r3, #0x18 str r4, [sp, #8] mov r1, #0 str r1, [sp, #0xc] str r1, [sp, #0x10] str r0, [sp, #0x14] str r2, [sp, #0x18] ldr r2, [sp, #0x34] lsl r1, r5, #0x18 lsl r2, r2, #0x18 add r0, r7, #0 lsr r1, r1, #0x18 lsr r2, r2, #0x18 lsr r3, r3, #0x18 bl FUN_02018170 lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp] ldr r0, [sp, #0x30] ldr r2, [sp, #0x34] lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #4] ldr r0, [sp, #0x40] ldr r3, [sp, #0x38] lsl r0, r0, #0x18 lsr r0, r0, #0x18 lsl r1, r5, #0x18 lsl r2, r2, #0x18 lsl r3, r3, #0x18 str r0, [sp, #8] add r0, r7, #0 lsr r1, r1, #0x18 lsr r2, r2, #0x18 lsr r3, r3, #0x18 bl FUN_020186B4 lsl r1, r5, #0x18 add r0, r7, #0 lsr r1, r1, #0x18 bl FUN_0201AC68 add sp, #0x1c pop {r4, r5, r6, r7, pc} thumb_func_end MOD17_021DC004 thumb_func_start MOD17_021DC084 MOD17_021DC084: ; 0x021DC084 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r7, r0, #0 str r1, [sp, #4] ldr r0, [sp, #0x24] mov r1, #0x14 add r5, r2, #0 add r6, r3, #0 bl FUN_02016998 add r4, r0, #0 add r2, r4, #0 mov r1, #0x14 mov r0, #0 _021DC0A0: strb r0, [r2] add r2, r2, #1 sub r1, r1, #1 bne _021DC0A0 ldr r0, [sp, #0x24] ldr r1, [sp, #4] str r0, [sp] add r0, r7, #0 mov r2, #0 add r3, r4, #4 bl FUN_02006BB0 str r0, [r4, #8] str r5, [r4] ldr r0, [sp, #0x20] str r6, [r4, #0xc] str r0, [r4, #0x10] ldr r0, _021DC0D0 ; =MOD17_021DC11C add r1, r4, #0 mov r2, #0x80 bl FUN_0200CA98 add sp, #8 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021DC0D0: .word MOD17_021DC11C thumb_func_end MOD17_021DC084 thumb_func_start MOD17_021DC0D4 MOD17_021DC0D4: ; 0x021DC0D4 push {r3, r4, r5, r6, r7, lr} add r7, r0, #0 str r1, [sp] ldr r0, [sp, #0x1c] mov r1, #0x14 add r5, r2, #0 add r6, r3, #0 bl FUN_02016998 add r4, r0, #0 add r2, r4, #0 mov r1, #0x14 mov r0, #0 _021DC0EE: strb r0, [r2] add r2, r2, #1 sub r1, r1, #1 bne _021DC0EE ldr r1, [sp] ldr r3, [sp, #0x1c] add r0, r7, #0 add r2, r4, #0 bl FUN_02006C08 str r0, [r4, #4] str r5, [r4, #8] ldr r0, [sp, #0x18] str r6, [r4, #0xc] str r0, [r4, #0x10] ldr r0, _021DC118 ; =MOD17_021DC158 add r1, r4, #0 mov r2, #0x80 bl FUN_0200CA98 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021DC118: .word MOD17_021DC158 thumb_func_end MOD17_021DC0D4 thumb_func_start MOD17_021DC11C MOD17_021DC11C: ; 0x021DC11C push {r3, r4, r5, lr} add r4, r1, #0 ldr r1, [r4, #4] add r5, r0, #0 ldr r0, [r1, #0x14] ldr r1, [r1, #0x10] bl DC_FlushRange ldr r3, [r4, #4] ldr r0, [r4, #0x10] str r0, [sp] ldr r1, [r4, #0xc] ldr r2, [r3, #0x14] lsl r1, r1, #0x18 ldr r0, [r4] ldr r3, [r3, #0x10] lsr r1, r1, #0x18 bl FUN_02017E14 add r0, r5, #0 bl FUN_0200CAB4 ldr r0, [r4, #8] bl FUN_02016A18 add r0, r4, #0 bl FUN_02016A18 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD17_021DC11C thumb_func_start MOD17_021DC158 MOD17_021DC158: ; 0x021DC158 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 ldr r0, [r4] ldr r1, [r4, #0x10] ldr r0, [r0, #0xc] bl DC_FlushRange ldr r0, [r4, #8] cmp r0, #0 bne _021DC17C ldr r0, [r4] ldr r1, [r4, #0xc] ldr r0, [r0, #0xc] ldr r2, [r4, #0x10] bl GX_LoadBGPltt b _021DC18C _021DC17C: cmp r0, #4 bne _021DC18C ldr r0, [r4] ldr r1, [r4, #0xc] ldr r0, [r0, #0xc] ldr r2, [r4, #0x10] bl GXS_LoadBGPltt _021DC18C: add r0, r5, #0 bl FUN_0200CAB4 ldr r0, [r4, #4] bl FUN_02016A18 add r0, r4, #0 bl FUN_02016A18 pop {r3, r4, r5, pc} thumb_func_end MOD17_021DC158 thumb_func_start MOD17_021DC1A0 MOD17_021DC1A0: ; 0x021DC1A0 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 cmp r5, #0 bne _021DC1AE bl ErrorHandling _021DC1AE: cmp r4, #0 bne _021DC1B6 bl ErrorHandling _021DC1B6: ldr r0, [r4] bl FUN_0201FE94 str r0, [r5] cmp r0, #0 bne _021DC1C6 bl ErrorHandling _021DC1C6: ldr r0, [r4, #0xc] str r0, [r5, #4] ldr r0, [r4, #8] str r0, [r5, #8] ldr r0, [r4, #4] cmp r0, #0 beq _021DC1D8 str r0, [r5, #0xc] pop {r3, r4, r5, pc} _021DC1D8: ldr r0, _021DC1E0 ; =MOD17_021DC2DC str r0, [r5, #0xc] pop {r3, r4, r5, pc} nop _021DC1E0: .word MOD17_021DC2DC thumb_func_end MOD17_021DC1A0 thumb_func_start MOD17_021DC1E4 MOD17_021DC1E4: ; 0x021DC1E4 push {r3, r4, r5, lr} sub sp, #0x30 add r4, r1, #0 add r5, r0, #0 bl MOD17_021DC1A0 ldr r0, [r4, #0x14] str r0, [sp] ldr r0, [r4, #0x10] str r0, [sp, #4] ldr r0, [r4] ldr r0, [r0] str r0, [sp, #8] ldr r0, [r4, #0x18] str r0, [sp, #0xc] ldr r0, [r5] str r0, [sp, #0x10] ldr r0, [r4, #0x24] str r0, [sp, #0x14] ldr r0, [r4, #0x1c] str r0, [sp, #0x18] ldr r0, [r4, #0x20] str r0, [sp, #0x1c] mov r0, #0 str r0, [sp, #0x20] str r0, [sp, #0x24] ldr r0, [r4] ldr r0, [r0, #0x28] str r0, [sp, #0x28] ldr r0, [r4] ldr r0, [r0, #0x2c] str r0, [sp, #0x2c] add r0, sp, #0 bl FUN_020117E8 str r0, [r5, #0x10] add sp, #0x30 pop {r3, r4, r5, pc} thumb_func_end MOD17_021DC1E4 thumb_func_start MOD17_021DC230 MOD17_021DC230: ; 0x021DC230 push {r4, lr} add r4, r0, #0 ldr r0, [r4] bl FUN_0201FFC8 mov r1, #0x10 mov r0, #0 _021DC23E: strb r0, [r4] add r4, r4, #1 sub r1, r1, #1 bne _021DC23E pop {r4, pc} thumb_func_end MOD17_021DC230 thumb_func_start MOD17_021DC248 MOD17_021DC248: ; 0x021DC248 push {r4, lr} add r4, r0, #0 bl MOD17_021DC230 ldr r0, [r4, #0x10] bl FUN_02011870 add r0, r4, #0 mov r1, #0 mov r2, #0x20 bl Call_FillMemWithValue pop {r4, pc} .align 2, 0 thumb_func_end MOD17_021DC248 thumb_func_start MOD17_021DC264 MOD17_021DC264: ; 0x021DC264 push {r3, lr} ldr r2, [r0, #4] cmp r1, r2 bne _021DC272 ldr r1, [r0, #8] ldr r2, [r0, #0xc] blx r2 _021DC272: pop {r3, pc} thumb_func_end MOD17_021DC264 thumb_func_start MOD17_021DC274 MOD17_021DC274: ; 0x021DC274 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r7, r1, #0 add r6, r2, #0 mov r4, #2 add r5, #0x20 _021DC280: cmp r4, r7 beq _021DC28C add r0, r5, #0 bl MOD17_021DC2EC b _021DC2B0 _021DC28C: cmp r6, #0 bne _021DC29E add r0, r5, #0 bl MOD17_021DC2F8 ldr r0, _021DC2BC ; =0x0000067D bl FUN_020054C8 b _021DC2B0 _021DC29E: cmp r6, #2 bne _021DC2AA add r0, r5, #0 bl MOD17_021DC2E0 b _021DC2B0 _021DC2AA: add r0, r5, #0 bl MOD17_021DC2F8 _021DC2B0: add r4, r4, #1 add r5, #0x10 cmp r4, #3 ble _021DC280 pop {r3, r4, r5, r6, r7, pc} nop _021DC2BC: .word 0x0000067D thumb_func_end MOD17_021DC274 thumb_func_start MOD17_021DC2C0 MOD17_021DC2C0: ; 0x021DC2C0 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r4, r1, #0 add r6, r2, #0 add r7, r3, #0 cmp r5, #0 bne _021DC2D2 bl ErrorHandling _021DC2D2: str r7, [r5, #4] str r6, [r5, #8] str r4, [r5, #0xc] pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD17_021DC2C0 thumb_func_start MOD17_021DC2DC MOD17_021DC2DC: ; 0x021DC2DC bx lr .align 2, 0 thumb_func_end MOD17_021DC2DC thumb_func_start MOD17_021DC2E0 MOD17_021DC2E0: ; 0x021DC2E0 ldr r3, _021DC2E8 ; =0x02020209 ldr r0, [r0] mov r1, #2 bx r3 .align 2, 0 _021DC2E8: .word 0x02020209 thumb_func_end MOD17_021DC2E0 thumb_func_start MOD17_021DC2EC MOD17_021DC2EC: ; 0x021DC2EC ldr r3, _021DC2F4 ; =0x02020209 ldr r0, [r0] mov r1, #0 bx r3 .align 2, 0 _021DC2F4: .word 0x02020209 thumb_func_end MOD17_021DC2EC thumb_func_start MOD17_021DC2F8 MOD17_021DC2F8: ; 0x021DC2F8 ldr r3, _021DC300 ; =0x02020209 ldr r0, [r0] mov r1, #1 bx r3 .align 2, 0 _021DC300: .word 0x02020209 thumb_func_end MOD17_021DC2F8 thumb_func_start MOD17_021DC304 MOD17_021DC304: ; 0x021DC304 push {r3, r4, r5, r6, lr} sub sp, #0x14 add r5, r0, #0 add r4, r1, #0 mov r0, #1 mov r1, #0xd bl FUN_02011744 str r0, [r5, #0x64] add r0, r4, #0 bl MOD17_021DC760 mov r0, #0x90 str r0, [sp] mov r0, #0x28 str r0, [sp, #4] mov r0, #0x20 str r0, [sp, #8] add r0, r5, #0 mov r1, #0 add r2, r4, #0 mov r3, #0x30 bl MOD17_021DC628 mov r0, #0x28 str r0, [sp] mov r0, #0x18 str r0, [sp, #4] add r0, r5, #0 add r0, #0x6c mov r1, #0 mov r2, #0x30 mov r3, #0x98 bl MOD17_021DC748 mov r0, #0x90 str r0, [sp] mov r0, #0x28 str r0, [sp, #4] mov r0, #0x20 str r0, [sp, #8] add r0, r5, #0 add r0, #0x10 mov r1, #1 add r2, r4, #0 mov r3, #8 bl MOD17_021DC628 mov r0, #0x28 str r0, [sp] mov r0, #0x18 str r0, [sp, #4] add r0, r5, #0 add r0, #0x6c mov r1, #1 mov r2, #8 mov r3, #0x98 bl MOD17_021DC748 mov r0, #0x90 str r0, [sp] mov r0, #0x2a str r0, [sp, #4] str r0, [sp, #8] add r0, r5, #0 add r0, #0x20 mov r1, #2 add r2, r4, #0 mov r3, #0x60 bl MOD17_021DC628 mov r0, #0x2a str r0, [sp] mov r0, #0x22 str r0, [sp, #4] add r0, r5, #0 add r0, #0x6c mov r1, #2 mov r2, #0x60 mov r3, #0x9c bl MOD17_021DC748 mov r0, #0x90 str r0, [sp] mov r0, #0x2a str r0, [sp, #4] str r0, [sp, #8] add r0, r5, #0 add r0, #0x30 mov r1, #3 add r2, r4, #0 mov r3, #0x88 bl MOD17_021DC628 mov r0, #0x2a str r0, [sp] mov r0, #0x22 str r0, [sp, #4] add r0, r5, #0 add r0, #0x6c mov r1, #3 mov r2, #0x88 mov r3, #0x9c bl MOD17_021DC748 mov r0, #2 mov r1, #0xe bl FUN_02002C50 mov r0, #9 str r0, [sp] mov r0, #5 str r0, [sp, #4] ldr r2, _021DC460 ; =0x00000151 add r0, r4, #0 mov r1, #0x1a mov r3, #0 bl MOD17_021DC880 add r6, r0, #0 str r6, [sp] mov r0, #0xb8 str r0, [sp, #4] mov r0, #0x90 str r0, [sp, #8] mov r0, #0x48 str r0, [sp, #0xc] mov r0, #0x2a str r0, [sp, #0x10] add r0, r5, #0 ldr r3, [r5, #0x64] add r0, #0x40 mov r1, #4 add r2, r4, #0 bl MOD17_021DC698 mov r0, #0x48 str r0, [sp] mov r0, #0x22 str r0, [sp, #4] add r0, r5, #0 add r0, #0x6c mov r1, #4 mov r2, #0xb8 mov r3, #0x9c bl MOD17_021DC748 add r0, r6, #0 bl MOD17_021DC8F8 mov r0, #2 bl FUN_02002CF8 mov r0, #1 str r0, [r5, #0x60] add r0, r4, #0 bl MOD17_021DC7E0 add r0, r5, #0 add r0, #0x20 bl MOD17_021DC2E0 mov r0, #0xd str r0, [sp] add r0, r5, #0 ldr r2, _021DC464 ; =MOD17_021DC570 add r0, #0x6c mov r1, #5 add r3, r5, #0 bl FUN_020220C4 str r0, [r5, #0x68] add sp, #0x14 pop {r3, r4, r5, r6, pc} .align 2, 0 _021DC460: .word 0x00000151 _021DC464: .word MOD17_021DC570 thumb_func_end MOD17_021DC304 thumb_func_start MOD17_021DC468 MOD17_021DC468: ; 0x021DC468 push {r4, r5, r6, lr} add r6, r0, #0 add r5, r1, #0 mov r4, #0 _021DC470: add r0, r5, #0 add r1, r4, #0 bl MOD17_021D79D8 add r0, r5, #0 add r1, r4, #0 bl MOD17_021D79EC add r0, r4, #0 bl FUN_0201D324 add r4, r4, #1 cmp r4, #5 blt _021DC470 mov r0, #0 bl FUN_0201E1C8 mov r0, #1 bl FUN_0201E1C8 mov r5, #0 add r4, r6, #0 _021DC49C: add r0, r4, #0 bl MOD17_021DC230 add r5, r5, #1 add r4, #0x10 cmp r5, #4 blt _021DC49C add r0, r6, #0 add r0, #0x54 bl FUN_0201D5E8 add r0, r6, #0 add r0, #0x40 bl MOD17_021DC248 ldr r0, [r6, #0x64] bl FUN_020117BC ldr r0, [r6, #0x68] bl FUN_0202212C mov r0, #0 str r0, [r6, #0x68] pop {r4, r5, r6, pc} thumb_func_end MOD17_021DC468 thumb_func_start MOD17_021DC4CC MOD17_021DC4CC: ; 0x021DC4CC push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x68] cmp r0, #0 bne _021DC4DA bl ErrorHandling _021DC4DA: ldr r0, [r4, #0x68] bl FUN_02022144 pop {r4, pc} .align 2, 0 thumb_func_end MOD17_021DC4CC thumb_func_start MOD17_021DC4E4 MOD17_021DC4E4: ; 0x021DC4E4 push {r4, lr} add r4, r0, #0 add r0, #0x40 mov r1, #3 bl MOD17_021DC808 add r0, r4, #0 add r0, #0x40 mov r1, #3 bl MOD17_021DC82C add r0, r4, #0 mov r1, #2 mov r2, #3 bl MOD17_021DC274 pop {r4, pc} .align 2, 0 thumb_func_end MOD17_021DC4E4 thumb_func_start MOD17_021DC508 MOD17_021DC508: ; 0x021DC508 push {r3, r4, r5, r6, r7, lr} str r0, [sp] add r6, r1, #0 add r7, r2, #0 mov r4, #0 add r5, r0, #0 _021DC514: add r0, r5, #0 add r1, r6, #0 add r2, r7, #0 bl MOD17_021DC904 add r4, r4, #1 add r5, #0x10 cmp r4, #4 blt _021DC514 ldr r0, [sp] add r1, r6, #0 add r0, #0x40 add r2, r7, #0 str r0, [sp] bl MOD17_021DC940 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD17_021DC508 thumb_func_start MOD17_021DC538 MOD17_021DC538: ; 0x021DC538 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r4, r1, #0 add r6, r2, #0 add r7, r3, #0 cmp r5, #0 bne _021DC54A bl ErrorHandling _021DC54A: cmp r4, #4 bge _021DC55E lsl r0, r4, #4 ldr r3, [sp, #0x18] add r0, r5, r0 add r1, r6, #0 add r2, r7, #0 bl MOD17_021DC2C0 pop {r3, r4, r5, r6, r7, pc} _021DC55E: add r5, #0x40 ldr r3, [sp, #0x18] add r0, r5, #0 add r1, r6, #0 add r2, r7, #0 bl MOD17_021DC2C0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD17_021DC538 thumb_func_start MOD17_021DC570 MOD17_021DC570: ; 0x021DC570 push {r4, r5, r6, lr} add r6, r0, #0 add r5, r1, #0 add r4, r2, #0 cmp r6, #4 bhi _021DC618 add r0, r6, r6 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021DC588: ; jump table .short _021DC592 - _021DC588 - 2 ; case 0 .short _021DC5AE - _021DC588 - 2 ; case 1 .short _021DC5D0 - _021DC588 - 2 ; case 2 .short _021DC5D0 - _021DC588 - 2 ; case 3 .short _021DC5E6 - _021DC588 - 2 ; case 4 _021DC592: add r0, r4, #0 bl MOD17_021DC808 ldr r1, _021DC620 ; =0x00000681 add r0, r4, #0 mov r2, #0 add r3, r5, #0 bl MOD17_021DC870 add r0, r4, #0 add r1, r5, #0 bl MOD17_021DC264 pop {r4, r5, r6, pc} _021DC5AE: add r0, r4, #0 add r0, #0x10 bl MOD17_021DC808 add r0, r4, #0 ldr r1, _021DC620 ; =0x00000681 add r0, #0x10 mov r2, #0 add r3, r5, #0 bl MOD17_021DC870 add r4, #0x10 add r0, r4, #0 add r1, r5, #0 bl MOD17_021DC264 pop {r4, r5, r6, pc} _021DC5D0: add r0, r4, #0 add r1, r6, #0 add r2, r5, #0 bl MOD17_021DC274 lsl r0, r6, #4 add r0, r4, r0 add r1, r5, #0 bl MOD17_021DC264 pop {r4, r5, r6, pc} _021DC5E6: ldr r0, [r4, #0x60] cmp r0, #1 bne _021DC61C add r0, r4, #0 add r0, #0x40 bl MOD17_021DC808 add r0, r4, #0 add r0, #0x40 add r1, r5, #0 bl MOD17_021DC82C add r0, r4, #0 ldr r1, _021DC624 ; =0x000005E2 add r0, #0x40 mov r2, #0 add r3, r5, #0 bl MOD17_021DC870 add r4, #0x40 add r0, r4, #0 add r1, r5, #0 bl MOD17_021DC264 pop {r4, r5, r6, pc} _021DC618: bl ErrorHandling _021DC61C: pop {r4, r5, r6, pc} nop _021DC620: .word 0x00000681 _021DC624: .word 0x000005E2 thumb_func_end MOD17_021DC570 thumb_func_start MOD17_021DC628 MOD17_021DC628: ; 0x021DC628 push {r4, r5, r6, lr} sub sp, #0x90 add r6, r0, #0 mov r0, #0 str r1, [sp] mvn r0, r0 str r0, [sp, #4] add r5, r2, #0 str r0, [sp, #8] mov r2, #0 str r2, [sp, #0xc] str r2, [sp, #0x10] ldr r0, [r5, #0x40] add r4, r3, #0 str r0, [sp, #0x14] ldr r0, [r5, #0x44] add r3, r1, #0 str r0, [sp, #0x18] ldr r0, [r5, #0x48] str r0, [sp, #0x1c] ldr r0, [r5, #0x4c] str r0, [sp, #0x20] str r2, [sp, #0x24] str r2, [sp, #0x28] add r0, sp, #0x5c bl FUN_02008AA4 ldr r0, [r5, #0x3c] mov r2, #0 mov r1, #1 str r0, [sp, #0x2c] add r0, sp, #0x5c str r0, [sp, #0x30] lsl r0, r4, #0xc str r0, [sp, #0x34] ldr r0, [sp, #0xa0] str r1, [sp, #0x54] lsl r0, r0, #0xc str r0, [sp, #0x38] mov r0, #2 str r0, [sp, #0x50] mov r0, #0xe str r0, [sp, #0x58] add r0, sp, #0x2c str r0, [sp, #0x80] str r1, [sp, #0x8c] add r0, r6, #0 add r1, sp, #0x80 str r2, [sp, #0x3c] str r2, [sp, #0x84] str r2, [sp, #0x88] bl MOD17_021DC1A0 add sp, #0x90 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD17_021DC628 thumb_func_start MOD17_021DC698 MOD17_021DC698: ; 0x021DC698 push {r4, r5, r6, lr} sub sp, #0xa8 add r5, r0, #0 mov r0, #0 str r1, [sp] mvn r0, r0 str r0, [sp, #4] add r4, r2, #0 str r0, [sp, #8] mov r2, #0 str r2, [sp, #0xc] str r2, [sp, #0x10] ldr r0, [r4, #0x40] add r6, r3, #0 str r0, [sp, #0x14] ldr r0, [r4, #0x44] add r3, r1, #0 str r0, [sp, #0x18] ldr r0, [r4, #0x48] str r0, [sp, #0x1c] ldr r0, [r4, #0x4c] str r0, [sp, #0x20] str r2, [sp, #0x24] str r2, [sp, #0x28] add r0, sp, #0x5c bl FUN_02008AA4 ldr r0, [r4, #0x3c] mov r1, #2 str r0, [sp, #0x2c] add r0, sp, #0x5c str r0, [sp, #0x30] ldr r0, [sp, #0xbc] mov r2, #0xe lsl r0, r0, #0xc str r0, [sp, #0x34] ldr r0, [sp, #0xc0] str r1, [sp, #0x50] mov r1, #1 lsl r0, r0, #0xc str r0, [sp, #0x38] mov r0, #0 str r2, [sp, #0x58] add r2, sp, #0x2c str r0, [sp, #0x3c] str r0, [sp, #0x84] str r0, [sp, #0x88] ldr r0, [sp, #0xb8] str r1, [sp, #0x54] str r0, [sp, #0x90] mov r0, #0x10 str r0, [sp, #0x9c] mov r0, #0x13 str r2, [sp, #0x80] str r1, [sp, #0x8c] str r6, [sp, #0x94] str r0, [sp, #0xa0] ldr r0, [r4, #0x44] bl FUN_020094F0 mov r1, #0 bl FUN_02009E54 str r0, [sp, #0x98] ldr r0, [sp, #0xb8] mov r1, #1 mov r2, #0xd bl FUN_02011898 mov r1, #1 add r3, r5, #0 add r2, r1, #0 add r3, #0x14 bl FUN_0201D568 cmp r0, #0 bne _021DC736 bl ErrorHandling _021DC736: ldr r0, [r5, #0x18] add r1, sp, #0x80 str r0, [sp, #0xa4] add r0, r5, #0 bl MOD17_021DC1E4 add sp, #0xa8 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD17_021DC698 thumb_func_start MOD17_021DC748 MOD17_021DC748: ; 0x021DC748 lsl r1, r1, #2 strb r3, [r0, r1] add r1, r0, r1 ldr r0, [sp, #4] strb r2, [r1, #2] add r0, r3, r0 strb r0, [r1, #1] ldr r0, [sp] add r0, r2, r0 strb r0, [r1, #3] bx lr .align 2, 0 thumb_func_end MOD17_021DC748 thumb_func_start MOD17_021DC760 MOD17_021DC760: ; 0x021DC760 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r5, r0, #0 mov r0, #0x6b mov r4, #0 str r0, [sp, #0xc] mov r7, #0x6a mov r6, #0x69 _021DC770: mov r0, #1 str r0, [sp] ldr r2, [sp, #0xc] add r0, r5, #0 mov r1, #0x19 mov r3, #0 str r4, [sp, #4] bl MOD17_021D7934 add r0, r5, #0 mov r1, #0x19 add r2, r7, #0 mov r3, #0 str r4, [sp] bl MOD17_021D7978 add r0, r5, #0 mov r1, #0x19 add r2, r6, #0 mov r3, #0 str r4, [sp] bl MOD17_021D7994 ldr r0, [sp, #0xc] add r4, r4, #1 add r0, r0, #3 str r0, [sp, #0xc] add r7, r7, #3 add r6, r6, #3 cmp r4, #5 blt _021DC770 mov r0, #1 str r0, [sp] mov r0, #3 str r0, [sp, #4] mov r3, #0 add r0, r5, #0 mov r1, #0x19 mov r2, #0x68 str r3, [sp, #8] bl MOD17_021D7954 mov r1, #1 str r1, [sp] mov r0, #2 str r0, [sp, #4] str r1, [sp, #8] add r0, r5, #0 mov r1, #0x19 mov r2, #0x78 mov r3, #0 bl MOD17_021D7954 add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD17_021DC760 thumb_func_start MOD17_021DC7E0 MOD17_021DC7E0: ; 0x021DC7E0 push {r3, r4, r5, lr} add r5, r0, #0 mov r4, #0 _021DC7E6: add r0, r5, #0 add r1, r4, #0 bl MOD17_021D79B0 add r4, r4, #1 cmp r4, #5 blt _021DC7E6 add r0, r5, #0 mov r1, #0 bl MOD17_021D79C4 add r0, r5, #0 mov r1, #1 bl MOD17_021D79C4 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD17_021DC7E0 thumb_func_start MOD17_021DC808 MOD17_021DC808: ; 0x021DC808 push {r3, lr} cmp r1, #0 bne _021DC814 bl MOD17_021DC2F8 pop {r3, pc} _021DC814: cmp r1, #2 bne _021DC81E bl MOD17_021DC2E0 pop {r3, pc} _021DC81E: cmp r1, #1 beq _021DC826 cmp r1, #3 bne _021DC82A _021DC826: bl MOD17_021DC2EC _021DC82A: pop {r3, pc} thumb_func_end MOD17_021DC808 thumb_func_start MOD17_021DC82C MOD17_021DC82C: ; 0x021DC82C push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 bne _021DC848 ldr r0, [r5, #0x10] mov r1, #0x10 mov r2, #0xf bl FUN_020118C4 ldr r0, [r5, #0x10] mov r1, #4 bl FUN_02011A60 pop {r3, r4, r5, pc} _021DC848: cmp r4, #1 bne _021DC856 ldr r0, [r5, #0x10] mov r1, #0x10 mov r2, #0x13 bl FUN_020118C4 _021DC856: cmp r4, #3 bne _021DC86C ldr r0, [r5, #0x10] mov r1, #0x10 mov r2, #0x13 bl FUN_020118C4 ldr r0, [r5, #0x10] mov r1, #3 bl FUN_02011A60 _021DC86C: pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD17_021DC82C thumb_func_start MOD17_021DC870 MOD17_021DC870: ; 0x021DC870 push {r3, lr} cmp r3, r2 bne _021DC87E lsl r0, r1, #0x10 lsr r0, r0, #0x10 bl FUN_020054C8 _021DC87E: pop {r3, pc} thumb_func_end MOD17_021DC870 thumb_func_start MOD17_021DC880 MOD17_021DC880: ; 0x021DC880 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r5, r0, #0 add r4, r3, #0 mov r0, #0 mov r3, #0xd bl FUN_0200A86C add r6, r0, #0 bne _021DC898 bl ErrorHandling _021DC898: add r0, r6, #0 add r1, r4, #0 bl FUN_0200A914 add r7, r0, #0 mov r0, #0xe mov r1, #1 bl FUN_02018FF4 add r4, r0, #0 bl FUN_0201901C mov r0, #0 ldr r2, [sp, #0x28] ldr r3, [sp, #0x2c] str r0, [sp] str r0, [sp, #4] lsl r2, r2, #0x18 lsl r3, r3, #0x18 ldr r0, [r5, #0x38] add r1, r4, #0 lsr r2, r2, #0x18 lsr r3, r3, #0x18 bl FUN_020190EC mov r3, #0 str r3, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, _021DC8F4 ; =0x00010203 mov r1, #2 str r0, [sp, #8] add r0, r4, #0 add r2, r7, #0 str r3, [sp, #0xc] bl FUN_0201BDE0 add r0, r7, #0 bl FUN_02021A20 add r0, r6, #0 bl FUN_0200A8B8 add r0, r4, #0 add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021DC8F4: .word 0x00010203 thumb_func_end MOD17_021DC880 thumb_func_start MOD17_021DC8F8 MOD17_021DC8F8: ; 0x021DC8F8 ldr r3, _021DC900 ; =0x020191A5 mov r1, #1 bx r3 nop _021DC900: .word 0x020191A5 thumb_func_end MOD17_021DC8F8 thumb_func_start MOD17_021DC904 MOD17_021DC904: ; 0x021DC904 push {r4, r5, r6, r7, lr} sub sp, #0xc add r5, r0, #0 ldr r0, [r5] add r4, r1, #0 add r6, r2, #0 bl FUN_0202011C add r3, r0, #0 add r2, sp, #0 ldmia r3!, {r0, r1} add r7, r2, #0 stmia r2!, {r0, r1} ldr r0, [r3] str r0, [r2] ldr r1, [sp] lsl r0, r4, #0xc add r0, r1, r0 str r0, [sp] ldr r1, [sp, #4] lsl r0, r6, #0xc add r0, r1, r0 str r0, [sp, #4] ldr r0, [r5] add r1, r7, #0 bl FUN_02020044 add sp, #0xc pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD17_021DC904 thumb_func_start MOD17_021DC940 MOD17_021DC940: ; 0x021DC940 push {r4, lr} add r4, r0, #0 bl MOD17_021DC904 ldr r0, [r4, #0x10] bl FUN_02011938 pop {r4, pc} thumb_func_end MOD17_021DC940 thumb_func_start MOD17_021DC950 MOD17_021DC950: ; 0x021DC950 push {r4, r5, r6, lr} sub sp, #0x10 add r4, r1, #0 add r6, r2, #0 mov r1, #1 add r5, r0, #0 tst r1, r6 beq _021DC96A mov r2, #0x52 mov r1, #0 lsl r2, r2, #2 bl Call_FillMemWithValue _021DC96A: mov r0, #2 tst r0, r6 beq _021DC978 ldr r1, [r4] add r0, r5, #0 bl MOD17_021DCC00 _021DC978: mov r0, #4 add r1, r6, #0 tst r1, r0 beq _021DC99C mov r1, #0x1b str r1, [sp] str r0, [sp, #4] mov r0, #0x1f str r0, [sp, #8] mov r0, #1 str r0, [sp, #0xc] add r0, r5, #0 ldr r1, [r4] add r0, #0x2c mov r2, #2 mov r3, #0x13 bl MOD17_021DCC68 _021DC99C: mov r0, #8 tst r0, r6 beq _021DC9B0 add r0, r5, #0 ldr r1, [r4, #4] ldr r2, [r4, #8] ldr r3, [r4, #0x10] add r0, #0x38 bl MOD17_021DCE34 _021DC9B0: mov r0, #0x10 tst r0, r6 beq _021DC9CC ldr r0, [r4] str r0, [sp] ldr r0, [r4, #0x20] str r0, [sp, #4] add r0, r5, #0 ldr r1, [r4, #4] ldr r2, [r4, #8] ldr r3, [r4, #0x1c] add r0, #0xa0 bl MOD17_021DD074 _021DC9CC: mov r0, #0x20 tst r0, r6 beq _021DCA42 mov r0, #0x1b str r0, [sp] mov r2, #2 str r2, [sp, #4] mov r0, #0x8b str r0, [sp, #8] mov r3, #1 str r3, [sp, #0xc] add r0, #0xa9 ldr r1, [r4] add r0, r5, r0 bl MOD17_021DCC68 mov r0, #0x4d lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #0xf bl FUN_02019620 mov r0, #0 str r0, [sp] str r0, [sp, #4] ldr r0, _021DCA7C ; =0x0001020F mov r1, #0x1a str r0, [sp, #8] mov r0, #0xff str r0, [sp, #0xc] add r0, #0x35 ldr r0, [r5, r0] ldr r2, [r4, #0x14] mov r3, #6 bl MOD17_021DCD80 mov r0, #0x48 str r0, [sp] mov r0, #0 str r0, [sp, #4] ldr r0, _021DCA7C ; =0x0001020F mov r1, #0x1a str r0, [sp, #8] mov r0, #0xff str r0, [sp, #0xc] add r0, #0x35 ldr r0, [r5, r0] ldr r2, [r4, #0x14] ldr r3, [r4, #0x18] bl MOD17_021DCD80 mov r0, #0x4d lsl r0, r0, #2 mov r2, #1 ldr r0, [r5, r0] mov r1, #0 add r3, r2, #0 bl FUN_0200D0BC _021DCA42: ldr r0, [r4, #4] str r0, [r5, #0x30] ldr r0, [r4, #8] str r0, [r5, #0x34] ldr r0, [r4] ldr r1, [r4, #0xc] bl MOD17_021DCC38 ldr r0, [r4, #0xc] bl FUN_02025084 mov r1, #0x4f lsl r1, r1, #2 str r0, [r5, r1] ldr r0, [r4, #0xc] bl FUN_02024FF4 mov r1, #5 lsl r1, r1, #6 str r0, [r5, r1] add r0, r1, #0 sub r0, #8 ldr r0, [r5, r0] sub r1, #8 orr r0, r6 str r0, [r5, r1] add sp, #0x10 pop {r4, r5, r6, pc} nop _021DCA7C: .word 0x0001020F thumb_func_end MOD17_021DC950 thumb_func_start MOD17_021DCA80 MOD17_021DCA80: ; 0x021DCA80 push {r4, lr} mov r1, #0x4e add r4, r0, #0 lsl r1, r1, #2 ldr r2, [r4, r1] mov r1, #2 tst r1, r2 beq _021DCAA0 bl MOD17_021DCCD8 mov r1, #0x4e lsl r1, r1, #2 ldr r2, [r4, r1] mov r0, #2 bic r2, r0 str r2, [r4, r1] _021DCAA0: mov r0, #0x4e lsl r0, r0, #2 ldr r1, [r4, r0] mov r0, #4 tst r0, r1 beq _021DCABE ldr r0, [r4, #0x2c] bl MOD17_021DCCE0 mov r1, #0x4e lsl r1, r1, #2 ldr r2, [r4, r1] mov r0, #4 bic r2, r0 str r2, [r4, r1] _021DCABE: mov r0, #0x4e lsl r0, r0, #2 ldr r1, [r4, r0] mov r0, #8 tst r0, r1 beq _021DCAE0 add r0, r4, #0 ldr r1, [r4, #0x34] add r0, #0x38 bl MOD17_021DCF30 mov r1, #0x4e lsl r1, r1, #2 ldr r2, [r4, r1] mov r0, #8 bic r2, r0 str r2, [r4, r1] _021DCAE0: mov r0, #0x4e lsl r0, r0, #2 ldr r1, [r4, r0] mov r0, #0x10 tst r0, r1 beq _021DCB02 add r0, r4, #0 ldr r1, [r4, #0x34] add r0, #0xa0 bl MOD17_021DD178 mov r1, #0x4e lsl r1, r1, #2 ldr r2, [r4, r1] mov r0, #0x10 bic r2, r0 str r2, [r4, r1] _021DCB02: mov r0, #0x4e lsl r0, r0, #2 ldr r2, [r4, r0] mov r1, #0x20 tst r1, r2 beq _021DCB22 sub r0, r0, #4 ldr r0, [r4, r0] bl MOD17_021DCCE0 mov r1, #0x4e lsl r1, r1, #2 ldr r2, [r4, r1] mov r0, #0x20 bic r2, r0 str r2, [r4, r1] _021DCB22: mov r2, #0x52 add r0, r4, #0 mov r1, #0 lsl r2, r2, #2 bl Call_FillMemWithValue pop {r4, pc} thumb_func_end MOD17_021DCA80 thumb_func_start MOD17_021DCB30 MOD17_021DCB30: ; 0x021DCB30 push {r3, lr} mov r1, #0x4e lsl r1, r1, #2 ldr r2, [r0, r1] mov r1, #0x10 tst r1, r2 beq _021DCB44 add r0, #0xa0 bl MOD17_021DD1AC _021DCB44: pop {r3, pc} .align 2, 0 thumb_func_end MOD17_021DCB30 thumb_func_start MOD17_021DCB48 MOD17_021DCB48: ; 0x021DCB48 push {r4, r5, r6, r7, lr} sub sp, #0xc add r5, r0, #0 mov r0, #0x4e lsl r0, r0, #2 add r4, r1, #0 ldr r1, [r5, r0] mov r0, #4 add r6, r2, #0 add r7, r3, #0 tst r0, r1 bne _021DCB64 bl ErrorHandling _021DCB64: mov r0, #0 str r0, [sp] str r0, [sp, #4] mov r0, #0xff str r0, [sp, #8] ldr r0, [r5, #0x2c] add r1, r4, #0 add r2, r6, #0 add r3, r7, #0 bl MOD17_021DCCEC add sp, #0xc pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD17_021DCB48 thumb_func_start MOD17_021DCB80 MOD17_021DCB80: ; 0x021DCB80 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r5, r0, #0 mov r0, #0x4e lsl r0, r0, #2 add r4, r1, #0 ldr r1, [r5, r0] mov r0, #4 add r6, r2, #0 add r7, r3, #0 tst r0, r1 bne _021DCB9C bl ErrorHandling _021DCB9C: mov r0, #0 str r0, [sp] str r0, [sp, #4] mov r0, #5 lsl r0, r0, #6 ldr r1, [r5, r0] add r0, r0, #4 str r1, [sp, #8] add r0, r5, r0 str r0, [sp, #0xc] ldr r0, [r5, #0x2c] add r1, r4, #0 add r2, r6, #0 add r3, r7, #0 bl MOD17_021DCD34 add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD17_021DCB80 thumb_func_start MOD17_021DCBC0 MOD17_021DCBC0: ; 0x021DCBC0 push {r4, lr} add r4, r0, #0 mov r0, #0x51 lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_02021A20 mov r0, #0x51 mov r1, #0 lsl r0, r0, #2 str r1, [r4, r0] pop {r4, pc} thumb_func_end MOD17_021DCBC0 thumb_func_start MOD17_021DCBD8 MOD17_021DCBD8: ; 0x021DCBD8 ldr r3, _021DCBE0 ; =MOD17_021DCEE8 add r0, #0x38 bx r3 nop _021DCBE0: .word MOD17_021DCEE8 thumb_func_end MOD17_021DCBD8 thumb_func_start MOD17_021DCBE4 MOD17_021DCBE4: ; 0x021DCBE4 add r0, #0xbc ldr r0, [r0] bx lr .align 2, 0 thumb_func_end MOD17_021DCBE4 thumb_func_start MOD17_021DCBEC MOD17_021DCBEC: ; 0x021DCBEC add r0, #0xc0 str r1, [r0] bx lr .align 2, 0 thumb_func_end MOD17_021DCBEC thumb_func_start MOD17_021DCBF4 MOD17_021DCBF4: ; 0x021DCBF4 ldr r3, _021DCBFC ; =MOD17_021DD454 add r0, #0xd0 bx r3 nop _021DCBFC: .word MOD17_021DD454 thumb_func_end MOD17_021DCBF4 thumb_func_start MOD17_021DCC00 MOD17_021DCC00: ; 0x021DCC00 push {r3, lr} sub sp, #0x30 str r1, [sp] mov r1, #0x19 str r1, [sp, #4] mov r1, #0xe0 str r1, [sp, #8] mov r1, #0xe1 str r1, [sp, #0xc] mov r2, #0 mov r1, #0xe2 str r1, [sp, #0x10] mov r1, #4 str r1, [sp, #0x1c] mov r1, #1 str r1, [sp, #0x20] mov r1, #0xe str r1, [sp, #0x2c] add r1, sp, #0 str r2, [sp, #0x14] str r2, [sp, #0x18] str r2, [sp, #0x24] str r2, [sp, #0x28] bl MOD17_021DBD04 add sp, #0x30 pop {r3, pc} .align 2, 0 thumb_func_end MOD17_021DCC00 thumb_func_start MOD17_021DCC38 MOD17_021DCC38: ; 0x021DCC38 push {r4, lr} sub sp, #8 add r4, r0, #0 add r0, r1, #0 bl FUN_02025084 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp] mov r0, #0xe mov r2, #1 str r0, [sp, #4] add r0, r4, #0 mov r1, #5 add r3, r2, #0 bl FUN_0200CD68 mov r0, #4 mov r1, #0x40 mov r2, #0xe bl FUN_02002EEC add sp, #8 pop {r4, pc} thumb_func_end MOD17_021DCC38 thumb_func_start MOD17_021DCC68 MOD17_021DCC68: ; 0x021DCC68 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r5, r0, #0 add r7, r1, #0 add r6, r3, #0 mov r0, #0xe mov r1, #1 add r4, r2, #0 bl FUN_02018FF4 str r0, [r5] bl FUN_0201901C lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp] ldr r0, [sp, #0x28] lsl r3, r4, #0x18 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #4] ldr r0, [sp, #0x2c] mov r2, #5 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #8] mov r0, #2 str r0, [sp, #0xc] ldr r0, [sp, #0x30] lsr r3, r3, #0x18 lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x10] ldr r1, [r5] add r0, r7, #0 bl FUN_02019064 ldr r0, [r5] mov r1, #0xf bl FUN_02019620 ldr r0, [sp, #0x34] cmp r0, #0 beq _021DCCCC mov r2, #1 ldr r0, [r5] mov r1, #0 add r3, r2, #0 bl FUN_0200D0BC _021DCCCC: ldr r0, [r5] bl FUN_020191D0 add sp, #0x14 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD17_021DCC68 thumb_func_start MOD17_021DCCD8 MOD17_021DCCD8: ; 0x021DCCD8 ldr r3, _021DCCDC ; =MOD17_021DBD4C bx r3 .align 2, 0 _021DCCDC: .word MOD17_021DBD4C thumb_func_end MOD17_021DCCD8 thumb_func_start MOD17_021DCCE0 MOD17_021DCCE0: ; 0x021DCCE0 ldr r3, _021DCCE8 ; =0x020191A5 mov r1, #1 bx r3 nop _021DCCE8: .word 0x020191A5 thumb_func_end MOD17_021DCCE0 thumb_func_start MOD17_021DCCEC MOD17_021DCCEC: ; 0x021DCCEC push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r4, r1, #0 mov r1, #0xf add r5, r0, #0 add r6, r2, #0 add r7, r3, #0 bl FUN_02019620 ldr r0, [sp, #0x28] add r1, r4, #0 str r0, [sp] ldr r0, [sp, #0x2c] add r2, r6, #0 str r0, [sp, #4] ldr r0, _021DCD30 ; =0x0001020F add r3, r7, #0 str r0, [sp, #8] ldr r0, [sp, #0x30] str r0, [sp, #0xc] add r0, r5, #0 bl MOD17_021DCD80 mov r2, #1 add r4, r0, #0 add r0, r5, #0 mov r1, #0 add r3, r2, #0 bl FUN_0200D0BC add r0, r4, #0 add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} nop _021DCD30: .word 0x0001020F thumb_func_end MOD17_021DCCEC thumb_func_start MOD17_021DCD34 MOD17_021DCD34: ; 0x021DCD34 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r4, r1, #0 mov r1, #0xf add r5, r0, #0 add r6, r2, #0 add r7, r3, #0 bl FUN_02019620 ldr r0, [sp, #0x28] add r1, r4, #0 str r0, [sp] ldr r0, [sp, #0x2c] add r2, r6, #0 str r0, [sp, #4] ldr r0, _021DCD7C ; =0x0001020F add r3, r7, #0 str r0, [sp, #8] ldr r0, [sp, #0x30] str r0, [sp, #0xc] ldr r0, [sp, #0x34] str r0, [sp, #0x10] add r0, r5, #0 bl MOD17_021DCDD4 mov r2, #1 add r4, r0, #0 add r0, r5, #0 mov r1, #0 add r3, r2, #0 bl FUN_0200D0BC add r0, r4, #0 add sp, #0x14 pop {r4, r5, r6, r7, pc} nop _021DCD7C: .word 0x0001020F thumb_func_end MOD17_021DCD34 thumb_func_start MOD17_021DCD80 MOD17_021DCD80: ; 0x021DCD80 push {r4, r5, r6, lr} sub sp, #0x10 add r6, r0, #0 add r4, r3, #0 mov r0, #0 mov r3, #0xd bl FUN_0200A86C add r5, r0, #0 bne _021DCD98 bl ErrorHandling _021DCD98: add r0, r5, #0 add r1, r4, #0 bl FUN_0200A914 add r4, r0, #0 ldr r0, [sp, #0x24] ldr r3, [sp, #0x20] str r0, [sp] ldr r0, [sp, #0x2c] mov r1, #1 str r0, [sp, #4] ldr r0, [sp, #0x28] add r2, r4, #0 str r0, [sp, #8] mov r0, #0 str r0, [sp, #0xc] add r0, r6, #0 bl FUN_0201BDE0 add r6, r0, #0 add r0, r4, #0 bl FUN_02021A20 add r0, r5, #0 bl FUN_0200A8B8 add r0, r6, #0 add sp, #0x10 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD17_021DCD80 thumb_func_start MOD17_021DCDD4 MOD17_021DCDD4: ; 0x021DCDD4 push {r4, r5, r6, r7, lr} sub sp, #0x14 ldr r4, [sp, #0x38] add r7, r0, #0 ldr r0, [r4] add r5, r1, #0 add r6, r2, #0 str r3, [sp, #0x10] cmp r0, #0 beq _021DCDEC bl ErrorHandling _021DCDEC: mov r0, #0 add r1, r5, #0 add r2, r6, #0 mov r3, #0xd bl FUN_0200A86C add r5, r0, #0 bne _021DCE00 bl ErrorHandling _021DCE00: ldr r1, [sp, #0x10] add r0, r5, #0 bl FUN_0200A914 str r0, [r4] ldr r0, [sp, #0x2c] ldr r3, [sp, #0x28] str r0, [sp] ldr r0, [sp, #0x34] mov r1, #1 str r0, [sp, #4] ldr r0, [sp, #0x30] str r0, [sp, #8] mov r0, #0 str r0, [sp, #0xc] ldr r2, [r4] add r0, r7, #0 bl FUN_0201BDE0 add r4, r0, #0 add r0, r5, #0 bl FUN_0200A8B8 add r0, r4, #0 add sp, #0x14 pop {r4, r5, r6, r7, pc} thumb_func_end MOD17_021DCDD4 thumb_func_start MOD17_021DCE34 MOD17_021DCE34: ; 0x021DCE34 push {r4, r5, r6, r7, lr} sub sp, #0x6c add r5, r1, #0 mov r1, #0x67 str r1, [sp] mov r1, #0xe1 str r1, [sp, #4] mov r1, #0x66 str r1, [sp, #8] mov r1, #0x65 str r1, [sp, #0xc] mov r1, #2 str r1, [sp, #0x10] mov r1, #0x7d add r4, r2, #0 lsl r1, r1, #4 str r3, [sp, #0x1c] str r1, [sp, #0x14] str r0, [sp, #0x18] add r1, r4, #0 mov r2, #0xe mov r3, #0x19 bl MOD17_021DCF54 ldr r0, [sp, #0x18] add r1, r4, #0 add r2, sp, #0x48 mov r3, #0 bl MOD17_021DD014 add r0, sp, #0x48 str r0, [sp, #0x2c] mov r0, #2 str r0, [sp, #0x40] mov r0, #0 str r0, [sp, #0x24] str r0, [sp, #0x3c] mov r0, #0xe str r0, [sp, #0x44] mov r0, #0x68 ldr r7, [sp, #0x24] str r5, [sp, #0x28] str r0, [sp, #0x20] _021DCE8A: ldr r0, [sp, #0x20] mov r6, #0 str r0, [sp, #0x34] lsl r1, r0, #0xc mov r0, #2 lsl r0, r0, #0x14 str r1, [sp, #0x34] add r0, r1, r0 str r0, [sp, #0x34] ldr r0, [sp, #0x18] lsl r1, r7, #2 mov r4, #0x26 add r5, r0, r1 _021DCEA4: str r4, [sp, #0x30] lsl r0, r4, #0xc str r0, [sp, #0x30] add r0, sp, #0x28 bl FUN_0201FF84 mov r1, #1 str r0, [r5, #0x10] bl FUN_02020130 ldr r0, [sp, #0x1c] add r1, r6, r7 cmp r1, r0 blt _021DCEC8 ldr r0, [r5, #0x10] mov r1, #0 bl FUN_020200A0 _021DCEC8: add r6, r6, #1 add r4, #0x12 add r5, r5, #4 cmp r6, #0xa blt _021DCEA4 ldr r0, [sp, #0x20] add r7, #0xa add r0, #0x12 str r0, [sp, #0x20] ldr r0, [sp, #0x24] add r0, r0, #1 str r0, [sp, #0x24] cmp r0, #2 blt _021DCE8A add sp, #0x6c pop {r4, r5, r6, r7, pc} thumb_func_end MOD17_021DCE34 thumb_func_start MOD17_021DCEE8 MOD17_021DCEE8: ; 0x021DCEE8 push {r3, r4, r5, r6, r7, lr} add r7, r0, #0 ldr r6, [r7, #0x60] add r5, r1, #0 cmp r6, r5 bge _021DCF0E cmp r6, r5 bge _021DCF2C lsl r0, r6, #2 add r4, r7, r0 _021DCEFC: ldr r0, [r4, #0x10] mov r1, #0 bl FUN_02020130 add r6, r6, #1 add r4, r4, #4 cmp r6, r5 blt _021DCEFC b _021DCF2C _021DCF0E: cmp r6, r5 ble _021DCF2C sub r6, r6, #1 cmp r6, r5 blt _021DCF2C lsl r0, r6, #2 add r4, r7, r0 _021DCF1C: ldr r0, [r4, #0x10] mov r1, #1 bl FUN_02020130 sub r6, r6, #1 sub r4, r4, #4 cmp r6, r5 bge _021DCF1C _021DCF2C: str r5, [r7, #0x60] pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD17_021DCEE8 thumb_func_start MOD17_021DCF30 MOD17_021DCF30: ; 0x021DCF30 push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 add r7, r1, #0 mov r4, #0 add r5, r6, #0 _021DCF3A: ldr r0, [r5, #0x10] bl FUN_0201FFC8 add r4, r4, #1 add r5, r5, #4 cmp r4, #0x14 blt _021DCF3A add r0, r6, #0 add r1, r7, #0 bl MOD17_021DCFE0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD17_021DCF30 thumb_func_start MOD17_021DCF54 MOD17_021DCF54: ; 0x021DCF54 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r6, r2, #0 ldr r7, [sp, #0x3c] ldr r2, [sp, #0x28] add r5, r0, #0 add r0, r7, r2 str r0, [sp] mov r0, #2 str r0, [sp, #4] add r4, r1, #0 str r6, [sp, #8] ldr r0, [r4] str r3, [sp, #0x10] add r1, r3, #0 mov r3, #0 bl FUN_02008F34 str r0, [r5] bl FUN_02009B04 ldr r0, [r5] bl FUN_02009474 ldr r2, [sp, #0x2c] ldr r1, [sp, #0x10] add r0, r7, r2 str r0, [sp] mov r0, #2 str r0, [sp, #4] ldr r0, [sp, #0x38] mov r3, #0 str r0, [sp, #8] str r6, [sp, #0xc] ldr r0, [r4, #4] bl FUN_02008FEC str r0, [r5, #4] bl FUN_02009D68 ldr r0, [r5, #4] bl FUN_02009474 ldr r2, [sp, #0x30] ldr r1, [sp, #0x10] add r0, r7, r2 str r0, [sp] mov r0, #2 str r0, [sp, #4] str r6, [sp, #8] ldr r0, [r4, #8] mov r3, #0 bl FUN_020090AC ldr r2, [sp, #0x34] str r0, [r5, #8] add r0, r7, r2 str r0, [sp] mov r0, #3 str r0, [sp, #4] str r6, [sp, #8] ldr r0, [r4, #0xc] ldr r1, [sp, #0x10] mov r3, #0 bl FUN_020090AC str r0, [r5, #0xc] add sp, #0x14 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD17_021DCF54 thumb_func_start MOD17_021DCFE0 MOD17_021DCFE0: ; 0x021DCFE0 push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, [r5] add r4, r1, #0 bl FUN_02009C0C ldr r0, [r5, #4] bl FUN_02009E04 ldr r0, [r4] ldr r1, [r5] bl FUN_02009490 ldr r0, [r4, #4] ldr r1, [r5, #4] bl FUN_02009490 ldr r0, [r4, #8] ldr r1, [r5, #8] bl FUN_02009490 ldr r0, [r4, #0xc] ldr r1, [r5, #0xc] bl FUN_02009490 pop {r3, r4, r5, pc} thumb_func_end MOD17_021DCFE0 thumb_func_start MOD17_021DD014 MOD17_021DD014: ; 0x021DD014 push {r3, r4, r5, r6, r7, lr} sub sp, #0x38 add r5, r0, #0 ldr r0, [r5] add r4, r1, #0 add r7, r2, #0 add r6, r3, #0 bl FUN_02009530 str r0, [sp, #0x2c] ldr r0, [r5, #4] bl FUN_02009530 str r0, [sp, #0x30] ldr r0, [r5, #8] bl FUN_02009530 str r0, [sp, #0x34] ldr r0, [r5, #0xc] bl FUN_02009530 str r0, [sp] mov r0, #0 mvn r0, r0 str r0, [sp, #4] str r0, [sp, #8] mov r0, #0 str r0, [sp, #0xc] str r6, [sp, #0x10] ldr r1, [r4] ldr r2, [sp, #0x30] str r1, [sp, #0x14] ldr r1, [r4, #4] ldr r3, [sp, #0x34] str r1, [sp, #0x18] ldr r1, [r4, #8] str r1, [sp, #0x1c] ldr r1, [r4, #0xc] str r1, [sp, #0x20] str r0, [sp, #0x24] str r0, [sp, #0x28] ldr r1, [sp, #0x2c] add r0, r7, #0 bl FUN_02008AA4 add sp, #0x38 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD17_021DD014 thumb_func_start MOD17_021DD074 MOD17_021DD074: ; 0x021DD074 push {r3, r4, r5, r6, r7, lr} sub sp, #0x60 add r4, r1, #0 mov r1, #0xe5 str r1, [sp] mov r1, #0xe6 str r1, [sp, #4] mov r1, #0xe4 str r1, [sp, #8] mov r1, #0xe3 str r1, [sp, #0xc] mov r1, #2 str r1, [sp, #0x10] ldr r1, _021DD170 ; =0x00000BB8 add r5, r2, #0 str r3, [sp, #0x18] str r1, [sp, #0x14] add r7, r0, #0 add r1, r5, #0 mov r2, #0xe mov r3, #0x19 bl MOD17_021DCF54 add r0, r7, #0 add r1, r5, #0 add r2, sp, #0x3c mov r3, #0 bl MOD17_021DD014 add r0, sp, #0x3c str r0, [sp, #0x20] mov r2, #2 mov r0, #0xe mov r1, #0x3a str r0, [sp, #0x38] lsl r1, r1, #0xc lsl r0, r2, #0x14 mov r6, #0 str r4, [sp, #0x1c] str r1, [sp, #0x28] add r0, r1, r0 str r2, [sp, #0x34] str r6, [sp, #0x30] str r0, [sp, #0x28] mov r4, #0x67 add r5, r7, #0 _021DD0D0: str r4, [sp, #0x24] lsl r0, r4, #0xc str r0, [sp, #0x24] add r0, sp, #0x1c bl FUN_0201FF84 str r0, [r5, #0x10] add r6, r6, #1 add r4, #0x18 add r5, r5, #4 cmp r6, #2 blt _021DD0D0 ldr r0, [sp, #0x18] mov r1, #0x1e str r0, [r7, #0x1c] mul r1, r0 str r1, [r7, #0x20] ldr r1, [sp, #0x7c] str r1, [r7, #0x2c] str r0, [r1] ldr r1, [r7, #0x2c] str r0, [r1, #8] add r0, r7, #0 mov r1, #0 add r0, #0x90 str r1, [r0] add r0, r7, #0 bl MOD17_021DD204 mov r0, #0xe str r0, [sp] mov r0, #4 str r0, [sp, #4] mov r0, #0xc1 str r0, [sp, #8] mov r0, #0 str r0, [sp, #0xc] add r0, r7, #0 ldr r1, [sp, #0x78] add r0, #0x18 mov r2, #0xa mov r3, #8 bl MOD17_021DCC68 ldr r0, [r7, #0x18] mov r1, #0 bl FUN_02019620 mov r0, #0 str r0, [sp] mov r3, #4 ldr r0, _021DD174 ; =0x00010200 str r3, [sp, #4] str r0, [sp, #8] mov r2, #0xff str r2, [sp, #0xc] ldr r0, [r7, #0x18] mov r1, #0x1a add r2, #0x52 bl MOD17_021DCD80 mov r0, #0x48 str r0, [sp] mov r0, #4 str r0, [sp, #4] ldr r0, _021DD174 ; =0x00010200 mov r2, #0xff str r0, [sp, #8] str r2, [sp, #0xc] ldr r0, [r7, #0x18] mov r1, #0x1a add r2, #0x52 mov r3, #5 bl MOD17_021DCD80 ldr r0, [r7, #0x18] bl FUN_020191D0 add sp, #0x60 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021DD170: .word 0x00000BB8 _021DD174: .word 0x00010200 thumb_func_end MOD17_021DD074 thumb_func_start MOD17_021DD178 MOD17_021DD178: ; 0x021DD178 push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, [r5, #0x24] add r4, r1, #0 cmp r0, #0 beq _021DD188 bl FUN_0200CAB4 _021DD188: ldr r0, [r5, #0x28] cmp r0, #0 beq _021DD192 bl FUN_0200CAB4 _021DD192: add r0, r5, #0 add r1, r4, #0 bl MOD17_021DCFE0 ldr r0, [r5, #0x18] bl MOD17_021DCCE0 add r0, r5, #0 mov r1, #0 mov r2, #0x94 bl Call_FillMemWithValue pop {r3, r4, r5, pc} thumb_func_end MOD17_021DD178 thumb_func_start MOD17_021DD1AC MOD17_021DD1AC: ; 0x021DD1AC push {r4, lr} add r4, r0, #0 bl MOD17_021DD27C ldr r0, [r4, #0x20] mov r1, #0x1e bl _s32_div_f add r1, r0, #0 ldr r0, [r4, #0x2c] bl FUN_02083A34 add r0, r4, #0 bl MOD17_021DD1DC add r0, r4, #0 bl MOD17_021DD204 add r4, #0x30 add r0, r4, #0 bl MOD17_021DD3BC pop {r4, pc} .align 2, 0 thumb_func_end MOD17_021DD1AC thumb_func_start MOD17_021DD1DC MOD17_021DD1DC: ; 0x021DD1DC push {r3, lr} ldr r1, [r0, #0x2c] ldr r2, [r1] ldr r1, [r0, #0x1c] cmp r1, r2 beq _021DD1FC str r2, [r0, #0x1c] cmp r2, #0xa bgt _021DD1FC add r1, r0, #0 add r1, #0x30 bl MOD17_021DD2E0 ldr r0, _021DD200 ; =0x00000683 bl FUN_020054C8 _021DD1FC: pop {r3, pc} nop _021DD200: .word 0x00000683 thumb_func_end MOD17_021DD1DC thumb_func_start MOD17_021DD204 MOD17_021DD204: ; 0x021DD204 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r6, r0, #0 ldr r0, [r6, #0x1c] mov r1, #1 str r0, [sp] mov r0, #0xa add r4, r1, #0 mul r4, r0 mov r7, #0 add r5, r6, #0 _021DD21A: ldr r0, [sp] add r1, r4, #0 bl _s32_div_f str r0, [sp, #4] cmp r0, #0xa ble _021DD22C bl ErrorHandling _021DD22C: ldr r0, [r5, #0x10] ldr r1, [sp, #4] bl FUN_02020130 ldr r0, [sp, #4] add r1, r0, #0 ldr r0, [sp] mul r1, r4 sub r0, r0, r1 str r0, [sp] add r0, r4, #0 mov r1, #0xa bl _s32_div_f add r4, r0, #0 add r0, r6, #0 add r0, #0x90 ldr r0, [r0] cmp r0, #0 bne _021DD26E ldr r0, [r6, #0x1c] cmp r0, #0xa bgt _021DD26E ldr r0, [r5, #0x10] mov r1, #1 bl FUN_0202027C cmp r7, #1 bne _021DD26E add r1, r6, #0 add r1, #0x90 mov r0, #1 str r0, [r1] _021DD26E: add r7, r7, #1 add r5, r5, #4 cmp r7, #2 blt _021DD21A add sp, #8 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD17_021DD204 thumb_func_start MOD17_021DD27C MOD17_021DD27C: ; 0x021DD27C ldr r1, [r0, #0x20] sub r1, r1, #1 bmi _021DD284 str r1, [r0, #0x20] _021DD284: bx lr .align 2, 0 thumb_func_end MOD17_021DD27C thumb_func_start MOD17_021DD288 MOD17_021DD288: ; 0x021DD288 str r1, [r0] str r1, [r0, #4] sub r1, r2, r1 str r1, [r0, #8] str r3, [r0, #0x10] mov r1, #0 str r1, [r0, #0xc] bx lr thumb_func_end MOD17_021DD288 thumb_func_start MOD17_021DD298 MOD17_021DD298: ; 0x021DD298 push {r4, lr} add r4, r0, #0 ldr r2, [r4, #0xc] ldr r0, [r4, #8] lsl r2, r2, #0xc asr r1, r0, #0x1f asr r3, r2, #0x1f bl _ll_mul mov r2, #2 mov r3, #0 lsl r2, r2, #0xa add r0, r0, r2 adc r1, r3 lsl r1, r1, #0x14 lsr r0, r0, #0xc orr r0, r1 ldr r1, [r4, #0x10] lsl r1, r1, #0xc bl FX_Div ldr r1, [r4, #4] add r0, r0, r1 str r0, [r4] ldr r0, [r4, #0xc] ldr r1, [r4, #0x10] add r0, r0, #1 cmp r0, r1 bgt _021DD2D8 str r0, [r4, #0xc] mov r0, #0 pop {r4, pc} _021DD2D8: str r1, [r4, #0xc] mov r0, #1 pop {r4, pc} .align 2, 0 thumb_func_end MOD17_021DD298 thumb_func_start MOD17_021DD2E0 MOD17_021DD2E0: ; 0x021DD2E0 push {r3, r4, r5, r6, r7, lr} sub sp, #0x18 str r0, [sp] str r1, [sp, #4] mov r1, #0x3a mov r0, #2 lsl r1, r1, #0xc lsl r0, r0, #0x14 ldr r4, [sp, #4] str r1, [sp, #0x10] add r0, r1, r0 str r0, [sp, #0x10] add r0, r4, #0 ldr r6, [sp] mov r7, #0 mov r5, #0x67 str r0, [sp, #8] _021DD302: ldr r0, [r6, #0x10] mov r1, #2 str r0, [r4, #4] bl FUN_020200EC ldr r2, [sp, #8] str r5, [sp, #0xc] lsl r0, r5, #0xc add r2, #0xc add r3, sp, #0xc str r0, [sp, #0xc] ldmia r3!, {r0, r1} str r2, [sp, #8] stmia r2!, {r0, r1} ldr r0, [r3] add r7, r7, #1 str r0, [r2] add r6, r6, #4 add r4, r4, #4 add r5, #0x18 cmp r7, #2 blt _021DD302 ldr r0, [sp] ldr r1, [r0, #0x1c] mov r0, #0xa sub r0, r0, r1 cmp r0, #0 ble _021DD35C lsl r0, r0, #0xc ldr r2, _021DD3B8 ; =0x00000266 asr r1, r0, #0x1f mov r3, #0 bl _ll_mul mov r2, #2 mov r3, #0 lsl r2, r2, #0xa add r4, r0, r2 adc r1, r3 lsl r0, r1, #0x14 lsr r1, r4, #0xc orr r1, r0 lsl r0, r2, #1 add r4, r1, r0 b _021DD360 _021DD35C: mov r4, #1 lsl r4, r4, #0xc _021DD360: ldr r0, [sp, #4] mov r2, #1 add r0, #0x24 add r1, r4, #0 lsl r2, r2, #0xc mov r3, #0x10 bl MOD17_021DD288 mov r2, #6 asr r1, r4, #0x1f add r0, r4, #0 lsl r2, r2, #0xe mov r3, #0 bl _ll_mul mov r3, #2 mov r2, #0 lsl r3, r3, #0xa add r3, r0, r3 adc r1, r2 lsl r0, r1, #0x14 lsr r1, r3, #0xc orr r1, r0 mov r0, #6 lsl r0, r0, #0xe sub r4, r1, r0 ldr r0, [sp, #4] add r1, r4, #0 add r0, #0x38 mov r3, #0x10 bl MOD17_021DD288 ldr r0, [sp, #4] add r1, r4, #0 add r0, #0x4c mov r2, #0 mov r3, #0x10 bl MOD17_021DD288 ldr r0, [sp, #4] mov r1, #1 str r1, [r0] add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021DD3B8: .word 0x00000266 thumb_func_end MOD17_021DD2E0 thumb_func_start MOD17_021DD3BC MOD17_021DD3BC: ; 0x021DD3BC push {r4, r5, r6, lr} sub sp, #0x18 add r5, r0, #0 ldr r0, [r5] cmp r0, #0 beq _021DD44E add r0, r5, #0 add r0, #0x24 bl MOD17_021DD298 add r4, r0, #0 add r0, r5, #0 add r0, #0x38 bl MOD17_021DD298 add r0, r5, #0 add r0, #0x4c bl MOD17_021DD298 ldr r0, [r5, #0x24] add r1, sp, #0xc str r0, [sp, #0xc] ldr r0, [r5, #0x24] str r0, [sp, #0x10] ldr r0, [r5, #0x24] str r0, [sp, #0x14] ldr r0, [r5, #4] bl FUN_02020064 ldr r0, [r5, #8] add r1, sp, #0xc bl FUN_02020064 add r6, r5, #0 add r6, #0xc add r3, sp, #0 ldmia r6!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldr r0, [r6] str r0, [r3] ldr r1, [sp] ldr r0, [r5, #0x38] sub r0, r1, r0 str r0, [sp] ldr r1, [sp, #4] ldr r0, [r5, #0x4c] sub r0, r1, r0 str r0, [sp, #4] ldr r0, [r5, #4] add r1, r2, #0 bl FUN_02020044 add r6, r5, #0 add r6, #0x18 add r3, sp, #0 ldmia r6!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldr r0, [r6] str r0, [r3] ldr r1, [sp, #4] ldr r0, [r5, #0x4c] sub r0, r1, r0 str r0, [sp, #4] ldr r0, [r5, #8] add r1, r2, #0 bl FUN_02020044 cmp r4, #0 beq _021DD44E mov r0, #0 str r0, [r5] _021DD44E: add sp, #0x18 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD17_021DD3BC thumb_func_start MOD17_021DD454 MOD17_021DD454: ; 0x021DD454 ldr r0, [r0] cmp r0, #1 beq _021DD45E mov r0, #1 bx lr _021DD45E: mov r0, #0 bx lr .align 2, 0 thumb_func_end MOD17_021DD454 thumb_func_start MOD17_021DD464 MOD17_021DD464: ; 0x021DD464 push {r3, lr} sub sp, #0x10 add r3, r1, #0 stmia r0!, {r1} add r3, #0x48 str r3, [sp] ldr r1, [r1, #0x74] lsl r1, r1, #2 add r1, #0x89 str r1, [sp, #4] mov r1, #0x10 str r1, [sp, #8] add r1, sp, #0 str r2, [sp, #0xc] bl MOD17_021DBD68 add sp, #0x10 pop {r3, pc} thumb_func_end MOD17_021DD464 thumb_func_start MOD17_021DD488 MOD17_021DD488: ; 0x021DD488 ldr r3, _021DD490 ; =MOD17_021DBD80 add r0, r0, #4 mov r1, #1 bx r3 .align 2, 0 _021DD490: .word MOD17_021DBD80 thumb_func_end MOD17_021DD488 thumb_func_start MOD17_021DD494 MOD17_021DD494: ; 0x021DD494 push {r4, lr} add r4, r0, #0 add r0, r4, #4 bl MOD17_021DBDE8 mov r1, #0x1c mov r0, #0 _021DD4A2: strb r0, [r4] add r4, r4, #1 sub r1, r1, #1 bne _021DD4A2 pop {r4, pc} thumb_func_end MOD17_021DD494 thumb_func_start MOD17_021DD4AC MOD17_021DD4AC: ; 0x021DD4AC push {r3, r4, lr} sub sp, #0x6c add r2, r0, #0 add r4, r1, #0 add r0, sp, #0 add r1, r2, #0 bl MOD17_021DD9E8 add r0, sp, #0 add r1, r4, #0 bl MOD17_021DD9FC add r0, sp, #0 bl MOD17_021DD6DC add sp, #0x6c pop {r3, r4, pc} .align 2, 0 thumb_func_end MOD17_021DD4AC thumb_func_start MOD17_021DD4D0 MOD17_021DD4D0: ; 0x021DD4D0 push {r3, r4, lr} sub sp, #0x6c add r2, r0, #0 add r4, r1, #0 add r0, sp, #0 add r1, r2, #0 bl MOD17_021DD9E8 add r0, sp, #0 add r1, r4, #0 bl MOD17_021DDA44 add r0, sp, #0 bl MOD17_021DD6DC add sp, #0x6c pop {r3, r4, pc} .align 2, 0 thumb_func_end MOD17_021DD4D0 thumb_func_start MOD17_021DD4F4 MOD17_021DD4F4: ; 0x021DD4F4 push {r3, r4, lr} sub sp, #0x6c add r2, r0, #0 add r4, r1, #0 add r0, sp, #0 add r1, r2, #0 bl MOD17_021DD9E8 add r0, sp, #0 add r1, r4, #0 bl MOD17_021DDA44 add r0, sp, #0 bl MOD17_021DD778 add sp, #0x6c pop {r3, r4, pc} .align 2, 0 thumb_func_end MOD17_021DD4F4 thumb_func_start MOD17_021DD518 MOD17_021DD518: ; 0x021DD518 push {r4, lr} add r4, r0, #0 mov r0, #0x95 lsl r0, r0, #2 ldr r1, [r4, r0] cmp r1, #1 bne _021DD52E sub r0, #0x48 add r0, r4, r0 bl MOD17_021DD488 _021DD52E: mov r0, #0x96 lsl r0, r0, #2 ldr r0, [r4, r0] cmp r0, #1 bne _021DD53E add r0, r4, #0 bl MOD17_021DD838 _021DD53E: pop {r4, pc} thumb_func_end MOD17_021DD518 thumb_func_start MOD17_021DD540 MOD17_021DD540: ; 0x021DD540 push {r4, lr} mov r1, #0x95 add r4, r0, #0 lsl r1, r1, #2 ldr r1, [r4, r1] cmp r1, #0 beq _021DD552 bl MOD17_021DD984 _021DD552: add r0, r4, #0 bl MOD17_021DD968 mov r0, #6 lsl r0, r0, #6 ldr r0, [r4, r0] bl MOD17_021D750C mov r0, #6 mov r1, #0 lsl r0, r0, #6 str r1, [r4, r0] sub r0, #8 add r0, r4, r0 bl MOD17_021DBA1C add r0, r4, #0 bl MOD17_021DD86C mov r0, #0x8a lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_02016A18 add r0, r4, #0 bl FUN_02016A18 pop {r4, pc} .align 2, 0 thumb_func_end MOD17_021DD540 thumb_func_start MOD17_021DD58C MOD17_021DD58C: ; 0x021DD58C ldr r3, _021DD590 ; =MOD17_021D7C1C bx r3 .align 2, 0 _021DD590: .word MOD17_021D7C1C thumb_func_end MOD17_021DD58C thumb_func_start MOD17_021DD594 MOD17_021DD594: ; 0x021DD594 mov r2, #0x96 lsl r2, r2, #2 str r1, [r0, r2] bx lr thumb_func_end MOD17_021DD594 thumb_func_start MOD17_021DD59C MOD17_021DD59C: ; 0x021DD59C str r1, [r0, #0x1c] bx lr thumb_func_end MOD17_021DD59C thumb_func_start MOD17_021DD5A0 MOD17_021DD5A0: ; 0x021DD5A0 push {r3, r4, r5, r6, lr} sub sp, #4 add r6, r2, #0 mov r2, #0x61 add r4, r1, #0 lsl r2, r2, #2 add r5, r0, #0 add r1, r2, #0 add r0, r5, r2 str r6, [sp] add r1, #0xac add r2, #0xb0 ldr r1, [r5, r1] ldr r2, [r5, r2] add r3, r4, #0 bl MOD17_021DA140 mov r0, #0x95 lsl r0, r0, #2 ldr r0, [r5, r0] cmp r0, #0 beq _021DD5E8 mov r3, #0x88 ldr r0, [r5, #0x38] mov r1, #2 mov r2, #0 sub r3, r3, r4 bl FUN_020179E0 mov r3, #0x10 ldr r0, [r5, #0x38] mov r1, #2 mov r2, #3 sub r3, r3, r6 bl FUN_020179E0 _021DD5E8: mov r0, #0x23 lsl r0, r0, #4 str r4, [r5, r0] add r0, r0, #4 str r6, [r5, r0] add sp, #4 pop {r3, r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD17_021DD5A0 thumb_func_start MOD17_021DD5F8 MOD17_021DD5F8: ; 0x021DD5F8 mov r3, #0x8e lsl r3, r3, #2 str r1, [r0, r3] add r1, r3, #4 str r2, [r0, r1] bx lr thumb_func_end MOD17_021DD5F8 thumb_func_start MOD17_021DD604 MOD17_021DD604: ; 0x021DD604 mov r2, #9 lsl r2, r2, #6 strh r1, [r0, r2] bx lr thumb_func_end MOD17_021DD604 thumb_func_start MOD17_021DD60C MOD17_021DD60C: ; 0x021DD60C push {r3, r4} mov r4, #0x91 lsl r4, r4, #2 str r1, [r0, r4] add r1, r4, #4 str r2, [r0, r1] add r4, #8 str r3, [r0, r4] pop {r3, r4} bx lr thumb_func_end MOD17_021DD60C thumb_func_start MOD17_021DD620 MOD17_021DD620: ; 0x021DD620 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r5, r0, #0 mov r0, #0x7f lsl r0, r0, #2 add r4, r1, #0 add r6, r2, #0 add r0, r5, r0 add r1, sp, #8 add r2, sp, #4 bl MOD17_021DB878 mov r0, #0x61 lsl r0, r0, #2 add r0, r5, r0 add r1, sp, #0x10 add r2, sp, #0xc bl MOD17_021DA348 mov r0, #0x23 lsl r0, r0, #4 ldr r1, [sp, #0x10] ldr r2, [r5, r0] sub r1, r4, r1 add r0, r0, #4 add r7, r2, r1 ldr r1, [r5, r0] ldr r0, [sp, #0xc] sub r0, r6, r0 add r0, r1, r0 str r0, [sp] ldr r2, [sp] add r0, r5, #0 add r1, r7, #0 bl MOD17_021DD5A0 ldr r2, [sp] add r0, r5, #0 sub r1, r4, r7 sub r2, r6, r2 bl MOD17_021DD5F8 add sp, #0x14 pop {r4, r5, r6, r7, pc} thumb_func_end MOD17_021DD620 thumb_func_start MOD17_021DD678 MOD17_021DD678: ; 0x021DD678 push {r4, r5, r6, lr} add r4, r2, #0 mov r2, #0x92 add r5, r0, #0 mov r0, #0x28 lsl r2, r2, #2 sub r0, r0, r3 ldr r2, [r5, r2] lsl r0, r0, #0xc add r6, r1, #0 asr r1, r0, #0x1f asr r3, r2, #0x1f bl _ll_mul add r2, r0, #0 add r0, r5, #0 mov r5, #2 add r3, r1, #0 add r1, r6, #0 mov r6, #0 lsl r5, r5, #0xa add r5, r2, r5 adc r3, r6 lsl r2, r3, #0x14 lsr r3, r5, #0xc orr r3, r2 asr r2, r3, #0xc sub r2, r4, r2 bl MOD17_021DD620 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD17_021DD678 thumb_func_start MOD17_021DD6B8 MOD17_021DD6B8: ; 0x021DD6B8 mov r2, #0x25 lsl r2, r2, #4 strh r1, [r0, r2] sub r2, #0xcc ldr r3, _021DD6C8 ; =MOD17_021DA3D8 add r0, r0, r2 bx r3 nop _021DD6C8: .word MOD17_021DA3D8 thumb_func_end MOD17_021DD6B8 thumb_func_start MOD17_021DD6CC MOD17_021DD6CC: ; 0x021DD6CC mov r2, #0x61 lsl r2, r2, #2 ldr r3, _021DD6D8 ; =MOD17_021DA1DC add r0, r0, r2 bx r3 nop _021DD6D8: .word MOD17_021DA1DC thumb_func_end MOD17_021DD6CC thumb_func_start MOD17_021DD6DC MOD17_021DD6DC: ; 0x021DD6DC push {r3, r4, r5, lr} add r5, r0, #0 mov r1, #0x97 ldr r0, [r5, #0x68] lsl r1, r1, #2 bl FUN_02016998 mov r2, #0x97 mov r1, #0 lsl r2, r2, #2 add r4, r0, #0 bl Call_FillMemWithValue mov r0, #0x8b ldr r1, [r5, #0x68] lsl r0, r0, #2 str r1, [r4, r0] ldr r0, [r5, #0x68] bl FUN_020669C0 mov r1, #0x8a lsl r1, r1, #2 str r0, [r4, r1] ldr r0, [r5] ldr r1, [r4, r1] bl FUN_02027CB8 add r0, r4, #0 add r1, r5, #0 bl MOD17_021DD7F4 ldr r1, [r5, #0x58] ldr r2, [r5, #0x68] add r0, r4, #0 bl MOD17_021D7B94 mov r0, #0x5e lsl r0, r0, #2 ldr r2, [r5, #0x68] add r0, r4, r0 mov r1, #0x15 bl MOD17_021DB9F4 ldr r1, [r5, #0x68] mov r0, #0x14 bl MOD17_021D74E0 mov r1, #6 lsl r1, r1, #6 str r0, [r4, r1] add r0, r4, #0 add r1, r5, #0 bl MOD17_021DD88C add r0, r4, #0 add r1, r5, #0 bl MOD17_021DD954 mov r1, #0x83 lsl r1, r1, #2 add r0, r4, r1 sub r1, #0x88 ldr r2, [r5, #0x68] add r1, r4, r1 bl MOD17_021DD464 mov r0, #0x95 mov r1, #1 lsl r0, r0, #2 str r1, [r4, r0] add r0, r0, #4 str r1, [r4, r0] add r0, r4, #0 add r1, r5, #0 bl MOD17_021DD994 add r0, r4, #0 pop {r3, r4, r5, pc} thumb_func_end MOD17_021DD6DC thumb_func_start MOD17_021DD778 MOD17_021DD778: ; 0x021DD778 push {r3, r4, r5, lr} add r5, r0, #0 mov r1, #0x97 ldr r0, [r5, #0x68] lsl r1, r1, #2 bl FUN_02016998 mov r2, #0x97 mov r1, #0 lsl r2, r2, #2 add r4, r0, #0 bl Call_FillMemWithValue mov r0, #0x8b ldr r1, [r5, #0x68] lsl r0, r0, #2 str r1, [r4, r0] ldr r0, [r5, #0x68] bl FUN_020669C0 mov r1, #0x8a lsl r1, r1, #2 str r0, [r4, r1] ldr r0, [r5] ldr r1, [r4, r1] bl FUN_02027CB8 add r0, r4, #0 add r1, r5, #0 bl MOD17_021DD7F4 mov r0, #0x5e lsl r0, r0, #2 ldr r2, [r5, #0x68] add r0, r4, r0 mov r1, #0x15 bl MOD17_021DB9F4 ldr r1, [r5, #0x68] mov r0, #0x14 bl MOD17_021D74E0 mov r1, #6 lsl r1, r1, #6 str r0, [r4, r1] add r0, r4, #0 add r1, r5, #0 bl MOD17_021DD88C mov r0, #0x95 mov r1, #0 lsl r0, r0, #2 str r1, [r4, r0] mov r1, #1 add r0, r0, #4 str r1, [r4, r0] add r0, r4, #0 add r1, r5, #0 bl MOD17_021DD994 add r0, r4, #0 pop {r3, r4, r5, pc} thumb_func_end MOD17_021DD778 thumb_func_start MOD17_021DD7F4 MOD17_021DD7F4: ; 0x021DD7F4 push {r3, r4, r5, lr} sub sp, #0x28 add r4, r1, #0 ldr r1, _021DD834 ; =0x000002CE add r5, r0, #0 str r1, [sp] mov r1, #0x76 str r1, [sp, #4] mov r1, #0x13 str r1, [sp, #8] ldr r1, [r4, #0x68] str r1, [sp, #0xc] ldr r2, [r4, #0x68] add r1, sp, #0 bl MOD17_021D7B68 ldr r3, [r4, #0x68] add r0, r5, #0 add r1, sp, #0x10 add r2, r4, #0 bl MOD17_021DDA8C add r0, r5, #0 add r1, sp, #0x10 bl MOD17_021D78A0 add r0, sp, #0x10 bl MOD17_021D7A24 add sp, #0x28 pop {r3, r4, r5, pc} nop _021DD834: .word 0x000002CE thumb_func_end MOD17_021DD7F4 thumb_func_start MOD17_021DD838 MOD17_021DD838: ; 0x021DD838 push {r3, r4, lr} sub sp, #4 mov r3, #0x91 lsl r3, r3, #2 add r1, r0, r3 str r1, [sp] add r1, r3, #0 sub r1, #0x14 ldr r2, [r0, r1] add r1, r3, #0 sub r1, #0xc ldr r1, [r0, r1] add r1, r2, r1 add r2, r3, #0 sub r2, #0x10 ldr r4, [r0, r2] add r2, r3, #0 sub r2, #8 sub r3, r3, #4 ldr r2, [r0, r2] ldrh r3, [r0, r3] add r2, r4, r2 bl MOD17_021D7C28 add sp, #4 pop {r3, r4, pc} thumb_func_end MOD17_021DD838 thumb_func_start MOD17_021DD86C MOD17_021DD86C: ; 0x021DD86C push {r4, lr} add r4, r0, #0 bl MOD17_021D78BC add r0, r4, #0 bl MOD17_021D7BE4 mov r0, #0x95 lsl r0, r0, #2 ldr r0, [r4, r0] cmp r0, #0 beq _021DD88A add r0, r4, #0 bl MOD17_021D7C10 _021DD88A: pop {r4, pc} thumb_func_end MOD17_021DD86C thumb_func_start MOD17_021DD88C MOD17_021DD88C: ; 0x021DD88C push {r4, r5, r6, r7, lr} sub sp, #0x4c add r5, r0, #0 add r2, sp, #0x28 mov r0, #0 add r6, r1, #0 add r3, r2, #0 add r1, r0, #0 stmia r3!, {r0, r1} stmia r3!, {r0, r1} stmia r3!, {r0, r1} stmia r3!, {r0, r1} str r0, [r3] ldr r0, [r5] str r0, [sp, #0x28] ldr r0, [r5, #4] str r0, [sp, #0x2c] ldr r0, [r5, #0x10] str r0, [sp, #0x30] ldr r0, [r5, #0x28] str r0, [sp, #0x34] ldr r0, [r5, #0x20] str r0, [sp, #0x38] ldr r0, [r5, #0x38] str r0, [sp, #0x3c] mov r0, #6 lsl r0, r0, #6 ldr r1, [r5, r0] str r1, [sp, #0x40] add r1, r0, #0 sub r1, #8 add r1, r5, r1 str r1, [sp, #0x44] mov r1, #0x15 add r0, r0, #4 str r1, [sp, #0x48] add r0, r5, r0 add r1, r2, #0 bl MOD17_021D9F80 ldr r0, [r6] bl FUN_02027CA8 add r7, r0, #0 ldr r0, [r6] bl FUN_02027CB0 add r4, r0, #0 ldr r0, [r6] bl FUN_02027CA0 str r4, [sp] str r0, [sp, #4] ldr r0, [r6, #0x68] mov r1, #0x61 lsl r1, r1, #2 str r0, [sp, #8] add r0, r5, r1 add r1, #0xa4 ldr r1, [r5, r1] add r2, sp, #0x18 add r3, r7, #0 bl MOD17_021D9FF0 ldr r0, [r6, #0x54] mov r7, #0 cmp r0, #0 ble _021DD950 add r4, r6, #0 _021DD916: ldr r0, [r4, #4] bl FUN_02027CF8 str r0, [sp, #0xc] ldr r0, [r4, #4] bl FUN_02027CFC str r0, [sp, #0x10] ldr r0, [r4, #4] bl FUN_02027D00 str r0, [sp, #0x14] ldr r0, [r4, #4] bl FUN_02027D04 str r0, [sp] mov r0, #0x61 lsl r0, r0, #2 ldr r1, [sp, #0xc] ldr r2, [sp, #0x10] ldr r3, [sp, #0x14] add r0, r5, r0 bl MOD17_021DA064 ldr r0, [r6, #0x54] add r7, r7, #1 add r4, r4, #4 cmp r7, r0 blt _021DD916 _021DD950: add sp, #0x4c pop {r4, r5, r6, r7, pc} thumb_func_end MOD17_021DD88C thumb_func_start MOD17_021DD954 MOD17_021DD954: ; 0x021DD954 add r2, r1, #0 mov r1, #0x61 lsl r1, r1, #2 add r0, r0, r1 ldr r1, [r2, #0x5c] ldr r3, _021DD964 ; =MOD17_021DA2F0 ldr r2, [r2, #0x68] bx r3 .align 2, 0 _021DD964: .word MOD17_021DA2F0 thumb_func_end MOD17_021DD954 thumb_func_start MOD17_021DD968 MOD17_021DD968: ; 0x021DD968 push {r4, lr} add r4, r0, #0 mov r0, #0x61 lsl r0, r0, #2 add r0, r4, r0 bl MOD17_021DA100 mov r0, #0x61 lsl r0, r0, #2 add r0, r4, r0 bl MOD17_021D9FD4 pop {r4, pc} .align 2, 0 thumb_func_end MOD17_021DD968 thumb_func_start MOD17_021DD984 MOD17_021DD984: ; 0x021DD984 mov r1, #0x61 lsl r1, r1, #2 ldr r3, _021DD990 ; =MOD17_021DA33C add r0, r0, r1 bx r3 nop _021DD990: .word MOD17_021DA33C thumb_func_end MOD17_021DD984 thumb_func_start MOD17_021DD994 MOD17_021DD994: ; 0x021DD994 push {r3, r4, r5, lr} add r3, r1, #0 mov r1, #0x23 add r4, r0, #0 mov r2, #0x48 lsl r1, r1, #4 str r2, [r4, r1] mov r5, #0x38 add r2, r1, #4 str r5, [r4, r2] add r2, r1, #0 add r2, #8 str r5, [r4, r2] add r2, r1, #0 mov r5, #0x40 add r2, #0xc str r5, [r4, r2] lsl r2, r5, #6 add r5, r1, #0 add r5, #0x14 str r2, [r4, r5] add r5, r1, #0 add r5, #0x18 str r2, [r4, r5] add r5, r1, #0 add r5, #0x1c str r2, [r4, r5] mov r2, #0 add r1, #0x10 strh r2, [r4, r1] ldr r1, [r3, #0x60] ldr r2, [r3, #0x64] bl MOD17_021DD5A0 mov r0, #0x25 ldr r1, _021DD9E4 ; =0x00007FFF lsl r0, r0, #4 strh r1, [r4, r0] pop {r3, r4, r5, pc} nop _021DD9E4: .word 0x00007FFF thumb_func_end MOD17_021DD994 thumb_func_start MOD17_021DD9E8 MOD17_021DD9E8: ; 0x021DD9E8 ldr r2, [r1] str r2, [r0, #0x58] ldr r2, [r1, #4] str r2, [r0, #0x60] ldr r2, [r1, #8] str r2, [r0, #0x64] ldr r1, [r1, #0xc] str r1, [r0, #0x68] bx lr .align 2, 0 thumb_func_end MOD17_021DD9E8 thumb_func_start MOD17_021DD9FC MOD17_021DD9FC: ; 0x021DD9FC push {r3, r4, r5, r6, r7, lr} add r7, r1, #0 add r5, r0, #0 add r0, r7, #0 bl FUN_02027564 add r6, r5, #0 str r0, [r5] mov r4, #0 str r4, [r5, #0x54] add r6, #0x54 _021DDA12: add r0, r7, #0 add r1, r4, #0 bl FUN_02027528 cmp r0, #0 beq _021DDA34 add r0, r7, #0 add r1, r4, #0 bl FUN_02027590 ldr r1, [r5, #0x54] lsl r1, r1, #2 add r1, r5, r1 str r0, [r1, #4] ldr r0, [r6] add r0, r0, #1 str r0, [r6] _021DDA34: add r4, r4, #1 cmp r4, #0xa blt _021DDA12 add r0, r7, #0 bl FUN_0202766C str r0, [r5, #0x5c] pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD17_021DD9FC thumb_func_start MOD17_021DDA44 MOD17_021DDA44: ; 0x021DDA44 push {r3, r4, r5, r6, r7, lr} add r7, r1, #0 add r5, r0, #0 add r0, r7, #0 bl FUN_02027A94 add r6, r5, #0 str r0, [r5] mov r4, #0 str r4, [r5, #0x54] add r6, #0x54 _021DDA5A: add r0, r7, #0 add r1, r4, #0 bl FUN_02027A14 cmp r0, #0 beq _021DDA7C add r0, r7, #0 add r1, r4, #0 bl FUN_02027AC4 ldr r1, [r5, #0x54] lsl r1, r1, #2 add r1, r5, r1 str r0, [r1, #4] ldr r0, [r6] add r0, r0, #1 str r0, [r6] _021DDA7C: add r4, r4, #1 cmp r4, #0x14 blt _021DDA5A add r0, r7, #0 bl FUN_02027C28 str r0, [r5, #0x5c] pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD17_021DDA44 thumb_func_start MOD17_021DDA8C MOD17_021DDA8C: ; 0x021DDA8C push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 add r7, r3, #0 add r5, r0, #0 add r6, r2, #0 add r0, r4, #0 add r1, r7, #0 bl MOD17_021D7AFC add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 add r3, r7, #0 bl MOD17_021DDAAC pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD17_021DDA8C thumb_func_start MOD17_021DDAAC MOD17_021DDAAC: ; 0x021DDAAC push {r4, r5, r6, r7, lr} sub sp, #0x14 str r0, [sp, #4] mov r0, #0 str r0, [sp, #0x10] add r0, r2, #0 ldr r0, [r0, #0x54] add r4, r1, #0 str r2, [sp, #8] str r3, [sp, #0xc] cmp r0, #0 ble _021DDB1E add r6, r2, #0 _021DDAC6: ldr r0, [r6, #4] bl FUN_02027CF8 add r5, r0, #0 ldr r0, [r4, #0x10] add r1, r5, #0 bl FUN_02020CB0 cmp r0, #1 bne _021DDB0C mov r0, #1 str r0, [sp] ldr r3, [sp, #0xc] mov r0, #0x19 add r1, r5, #1 mov r2, #0 bl FUN_02006C98 add r7, r0, #0 ldr r0, [r4, #0x10] add r1, r7, #0 add r2, r5, #0 bl FUN_02020CD4 ldr r1, [r4] lsl r5, r5, #3 add r1, r1, r5 add r0, r7, #0 add r1, r1, #4 bl FUN_020B0088 ldr r0, [sp, #4] ldr r1, [r0] ldr r0, [r4] str r1, [r0, r5] _021DDB0C: ldr r0, [sp, #0x10] add r6, r6, #4 add r0, r0, #1 str r0, [sp, #0x10] ldr r0, [sp, #8] ldr r1, [r0, #0x54] ldr r0, [sp, #0x10] cmp r0, r1 blt _021DDAC6 _021DDB1E: mov r0, #1 mov r1, #0 str r0, [sp] ldr r3, [sp, #0xc] mov r0, #0x19 add r2, r1, #0 bl FUN_02006C98 add r5, r0, #0 ldr r0, [r4, #0x14] add r1, r5, #0 mov r2, #0 bl FUN_02020CD4 ldr r1, [r4, #8] add r0, r5, #0 add r1, r1, #4 bl FUN_020B0138 ldr r0, [sp, #4] ldr r1, [r0] ldr r0, [r4, #8] str r1, [r0] ldr r0, [r4, #8] mov r1, #3 str r1, [r0, #8] add sp, #0x14 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD17_021DDAAC thumb_func_start MOD17_021DDB58 MOD17_021DDB58: ; 0x021DDB58 push {r3, r4, r5, lr} sub sp, #0x10 mov r2, #2 add r5, r0, #0 mov r0, #3 mov r1, #0xd lsl r2, r2, #0x10 bl FUN_0201681C mov r2, #1 mov r0, #3 mov r1, #0xe lsl r2, r2, #0x12 bl FUN_0201681C mov r1, #0x65 add r0, r5, #0 lsl r1, r1, #2 mov r2, #0xd bl FUN_02006268 mov r2, #0x65 mov r1, #0 lsl r2, r2, #2 add r4, r0, #0 bl Call_FillMemWithValue ldr r0, _021DDC28 ; =MOD17_021DDD40 add r1, r4, #0 bl FUN_02015F10 bl FUN_02015F1C add r0, r5, #0 bl FUN_0200628C add r5, r0, #0 ldr r0, [r5, #8] cmp r0, #0 ldr r0, [r5] bne _021DDBB4 ldr r1, [r5, #4] bl FUN_02027008 str r0, [r4] b _021DDBBC _021DDBB4: ldr r1, [r5, #4] bl FUN_02027044 str r0, [r4, #4] _021DDBBC: ldr r0, [r5, #4] str r0, [r4, #8] ldr r0, [r5, #8] str r0, [r4, #0xc] bl MOD17_021D7794 ldr r0, _021DDC2C ; =0x021C4918 mov r1, #0 strb r1, [r0, #5] bl FUN_0201E7A0 add r0, r4, #0 add r0, #0x14 mov r1, #0xe bl MOD17_021D7CC0 ldr r0, [r4, #0x4c] str r0, [sp] mov r0, #0x48 str r0, [sp, #4] mov r0, #0x10 str r0, [sp, #8] mov r0, #0xe str r0, [sp, #0xc] ldr r0, [r4, #0xc] cmp r0, #0 add r0, sp, #0 bne _021DDBFC ldr r1, [r4] bl MOD17_021DD4AC b _021DDC02 _021DDBFC: ldr r1, [r4, #4] bl MOD17_021DD4D0 _021DDC02: str r0, [r4, #0x10] add r0, r4, #0 bl MOD17_021DDD54 add r0, r4, #0 bl MOD17_021DDDFC add r0, r4, #0 bl MOD17_021DDE50 add r0, r4, #0 bl MOD17_021DDF1C add r0, r4, #0 bl MOD17_021DDFAC mov r0, #1 add sp, #0x10 pop {r3, r4, r5, pc} .align 2, 0 _021DDC28: .word MOD17_021DDD40 _021DDC2C: .word 0x021C4918 thumb_func_end MOD17_021DDB58 thumb_func_start MOD17_021DDC30 MOD17_021DDC30: ; 0x021DDC30 push {r4, r5, lr} sub sp, #0xc add r4, r1, #0 bl FUN_02006278 add r5, r0, #0 bl FUN_020222AC bl FUN_020B02C8 ldr r0, [r5, #0x10] bl MOD17_021DD518 mov r0, #0 add r1, r0, #0 bl FUN_020222B4 add r5, #0x14 add r0, r5, #0 bl MOD17_021D7D00 ldr r0, [r4] cmp r0, #5 bhi _021DDCEA add r1, r0, r0 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021DDC6C: ; jump table .short _021DDC78 - _021DDC6C - 2 ; case 0 .short _021DDC7E - _021DDC6C - 2 ; case 1 .short _021DDC9C - _021DDC6C - 2 ; case 2 .short _021DDCAC - _021DDC6C - 2 ; case 3 .short _021DDCBC - _021DDC6C - 2 ; case 4 .short _021DDCDC - _021DDC6C - 2 ; case 5 _021DDC78: add r0, r0, #1 str r0, [r4] b _021DDCEA _021DDC7E: mov r0, #6 str r0, [sp] mov r2, #1 str r2, [sp, #4] mov r0, #0xd str r0, [sp, #8] mov r0, #0 mov r1, #5 add r3, r0, #0 bl FUN_0200E1D0 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021DDCEA _021DDC9C: bl FUN_0200E308 cmp r0, #0 beq _021DDCEA ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021DDCEA _021DDCAC: ldr r1, _021DDCF0 ; =0x021C48B8 ldr r2, [r1, #0x48] mov r1, #3 tst r1, r2 beq _021DDCEA add r0, r0, #1 str r0, [r4] b _021DDCEA _021DDCBC: mov r0, #6 str r0, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #0xd str r0, [sp, #8] mov r0, #0 mov r1, #2 add r2, r0, #0 add r3, r0, #0 bl FUN_0200E1D0 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021DDCEA _021DDCDC: bl FUN_0200E308 cmp r0, #0 beq _021DDCEA add sp, #0xc mov r0, #1 pop {r4, r5, pc} _021DDCEA: mov r0, #0 add sp, #0xc pop {r4, r5, pc} .align 2, 0 _021DDCF0: .word 0x021C48B8 thumb_func_end MOD17_021DDC30 thumb_func_start MOD17_021DDCF4 MOD17_021DDCF4: ; 0x021DDCF4 push {r3, r4, r5, lr} add r5, r0, #0 bl FUN_02006278 add r4, r0, #0 ldr r0, [r4, #0x10] bl MOD17_021DD540 add r0, r4, #0 bl MOD17_021DDEDC add r0, r4, #0 bl MOD17_021DDF84 add r4, #0x14 add r0, r4, #0 bl MOD17_021D7CD8 bl MOD17_021D77B4 mov r0, #0 add r1, r0, #0 bl FUN_02015F10 bl FUN_02015F1C add r0, r5, #0 bl FUN_0200627C mov r0, #0xd bl FUN_020168D0 mov r0, #0xe bl FUN_020168D0 mov r0, #1 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD17_021DDCF4 thumb_func_start MOD17_021DDD40 MOD17_021DDD40: ; 0x021DDD40 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x10] bl MOD17_021DD58C add r4, #0x14 add r0, r4, #0 bl MOD17_021D7CF0 pop {r4, pc} thumb_func_end MOD17_021DDD40 thumb_func_start MOD17_021DDD54 MOD17_021DDD54: ; 0x021DDD54 push {r3, r4, r5, r6, lr} sub sp, #0x14 add r5, r0, #0 mov r0, #0x40 str r0, [sp] mov r0, #0xe str r0, [sp, #4] mov r0, #0x19 mov r1, #0x7e mov r2, #0 mov r3, #0x60 bl FUN_02006930 mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] mov r0, #0xe str r0, [sp, #0xc] ldr r2, [r5, #0x4c] mov r0, #0x19 mov r1, #0x7d mov r3, #1 bl FUN_0200687C ldr r0, [r5, #0xc] cmp r0, #0 bne _021DDD92 mov r1, #0x80 mov r4, #4 b _021DDD96 _021DDD92: mov r1, #0x7f mov r4, #3 _021DDD96: mov r0, #0xe str r0, [sp] mov r0, #0x19 mov r2, #0 add r3, sp, #0x10 bl FUN_02006BDC ldr r2, [sp, #0x10] mov r3, #0 str r3, [sp] add r6, r0, #0 ldrh r0, [r2] mov r1, #1 lsl r0, r0, #0x15 lsr r0, r0, #0x18 str r0, [sp, #4] ldrh r0, [r2, #2] add r2, #0xc lsl r0, r0, #0x15 lsr r0, r0, #0x18 str r0, [sp, #8] ldr r0, [r5, #0x4c] bl FUN_02018148 ldr r1, [sp, #0x10] mov r2, #0 ldrh r0, [r1] add r3, r2, #0 lsl r0, r0, #0x15 lsr r0, r0, #0x18 str r0, [sp] ldrh r0, [r1, #2] mov r1, #1 lsl r0, r0, #0x15 lsr r0, r0, #0x18 str r0, [sp, #4] lsl r0, r4, #0x18 lsr r0, r0, #0x18 str r0, [sp, #8] ldr r0, [r5, #0x4c] bl FUN_020186B4 add r0, r6, #0 bl FUN_02016A18 ldr r0, [r5, #0x4c] mov r1, #1 bl FUN_0201AC68 add sp, #0x14 pop {r3, r4, r5, r6, pc} thumb_func_end MOD17_021DDD54 thumb_func_start MOD17_021DDDFC MOD17_021DDDFC: ; 0x021DDDFC push {r4, lr} sub sp, #0x10 add r4, r0, #0 mov r0, #0x20 str r0, [sp] mov r0, #0xe str r0, [sp, #4] mov r0, #0xc add r1, r0, #0 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, #0xe str r0, [sp, #0xc] ldr r2, [r4, #0x4c] mov r0, #0xc mov r1, #0xb mov r3, #4 bl FUN_020068C8 mov r0, #0 str r0, [sp] str r0, [sp, #4] mov r0, #1 str r0, [sp, #8] mov r0, #0xe str r0, [sp, #0xc] ldr r2, [r4, #0x4c] mov r0, #0xc mov r1, #0xa mov r3, #4 bl FUN_0200687C add sp, #0x10 pop {r4, pc} .align 2, 0 thumb_func_end MOD17_021DDDFC thumb_func_start MOD17_021DDE50 MOD17_021DDE50: ; 0x021DDE50 push {r3, r4, lr} sub sp, #0xc add r4, r0, #0 mov r0, #1 str r0, [sp] mov r0, #0xfa lsl r0, r0, #2 str r0, [sp, #4] add r0, r4, #0 add r0, #0x14 mov r1, #0x19 mov r2, #0xe9 mov r3, #0 bl MOD17_021D7934 mov r0, #1 str r0, [sp] mov r0, #6 str r0, [sp, #4] mov r0, #0xfa lsl r0, r0, #2 str r0, [sp, #8] add r0, r4, #0 add r0, #0x14 mov r1, #0x19 mov r2, #0xea mov r3, #0 bl MOD17_021D7954 mov r0, #0xfa lsl r0, r0, #2 str r0, [sp] add r0, r4, #0 add r0, #0x14 mov r1, #0x19 mov r2, #0xe8 mov r3, #0 bl MOD17_021D7978 mov r0, #0xfa lsl r0, r0, #2 str r0, [sp] add r0, r4, #0 add r0, #0x14 mov r1, #0x19 mov r2, #0xe7 mov r3, #0 bl MOD17_021D7994 mov r0, #0x64 str r0, [sp] mov r0, #1 str r0, [sp, #4] add r0, r4, #0 mov r1, #0xfa add r0, #0x14 lsl r1, r1, #2 mov r2, #0 mov r3, #0x90 bl MOD17_021D78D0 mov r1, #0x63 lsl r1, r1, #2 str r0, [r4, r1] ldr r0, [r4, r1] mov r1, #1 bl FUN_02020238 add sp, #0xc pop {r3, r4, pc} thumb_func_end MOD17_021DDE50 thumb_func_start MOD17_021DDEDC MOD17_021DDEDC: ; 0x021DDEDC push {r4, lr} mov r1, #0xfa add r4, r0, #0 add r0, #0x14 lsl r1, r1, #2 bl MOD17_021D79B0 add r0, r4, #0 mov r1, #0xfa add r0, #0x14 lsl r1, r1, #2 bl MOD17_021D79C4 add r0, r4, #0 mov r1, #0xfa add r0, #0x14 lsl r1, r1, #2 bl MOD17_021D79D8 add r0, r4, #0 mov r1, #0xfa add r0, #0x14 lsl r1, r1, #2 bl MOD17_021D79EC mov r0, #0x63 lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_0201FFC8 pop {r4, pc} .align 2, 0 thumb_func_end MOD17_021DDEDC thumb_func_start MOD17_021DDF1C MOD17_021DDF1C: ; 0x021DDF1C push {r3, r4, lr} sub sp, #0x14 add r4, r0, #0 mov r0, #0xe mov r1, #1 bl FUN_02018FF4 mov r1, #0x19 lsl r1, r1, #4 str r0, [r4, r1] mov r0, #0x12 str r0, [sp] mov r0, #0x20 str r0, [sp, #4] mov r0, #6 str r0, [sp, #8] mov r0, #5 str r0, [sp, #0xc] mov r0, #1 str r0, [sp, #0x10] ldr r0, [r4, #0x4c] ldr r1, [r4, r1] mov r2, #3 mov r3, #0 bl FUN_02019064 mov r0, #0 mov r1, #0xa0 mov r2, #0xe bl FUN_02002ED0 mov r0, #3 mov r1, #0 bl FUN_020178BC mov r0, #0 mov r1, #2 bl FUN_020178BC mov r0, #1 add r1, r0, #0 bl FUN_020178BC mov r1, #3 ldr r0, [r4, #0x4c] add r2, r1, #0 mov r3, #0 bl FUN_020179E0 add sp, #0x14 pop {r3, r4, pc} .align 2, 0 thumb_func_end MOD17_021DDF1C thumb_func_start MOD17_021DDF84 MOD17_021DDF84: ; 0x021DDF84 push {r4, lr} add r4, r0, #0 mov r0, #0x19 lsl r0, r0, #4 ldr r0, [r4, r0] bl FUN_02019570 mov r0, #0x19 lsl r0, r0, #4 ldr r0, [r4, r0] bl FUN_02019178 mov r0, #0x19 lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #1 bl FUN_020191A4 pop {r4, pc} .align 2, 0 thumb_func_end MOD17_021DDF84 thumb_func_start MOD17_021DDFAC MOD17_021DDFAC: ; 0x021DDFAC push {r4, lr} add r4, r0, #0 mov r0, #0x19 lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #0 bl FUN_02019620 ldr r0, [r4, #0xc] cmp r0, #0 bne _021DDFCA add r0, r4, #0 bl MOD17_021DDFDC b _021DDFD0 _021DDFCA: add r0, r4, #0 bl MOD17_021DE0F4 _021DDFD0: mov r0, #0x19 lsl r0, r0, #4 ldr r0, [r4, r0] bl FUN_020191D0 pop {r4, pc} thumb_func_end MOD17_021DDFAC thumb_func_start MOD17_021DDFDC MOD17_021DDFDC: ; 0x021DDFDC push {r3, r4, r5, r6, r7, lr} sub sp, #0x20 ldr r2, _021DE0EC ; =0x00000151 add r5, r0, #0 mov r0, #0 mov r1, #0x1a mov r3, #0xd bl FUN_0200A86C str r0, [sp, #0x10] cmp r0, #0 bne _021DDFF8 bl ErrorHandling _021DDFF8: mov r0, #0xd bl FUN_0200AA80 add r6, r0, #0 mov r0, #0x63 lsl r0, r0, #2 ldr r0, [r5, r0] mov r1, #5 bl FUN_02020130 mov r0, #3 lsl r0, r0, #0x10 str r0, [sp, #0x14] mov r0, #9 lsl r0, r0, #0x10 str r0, [sp, #0x18] mov r0, #0 str r0, [sp, #0x1c] mov r0, #0x63 lsl r0, r0, #2 ldr r0, [r5, r0] add r1, sp, #0x14 bl FUN_02020044 mov r0, #0xc mov r1, #0xd bl FUN_020219F4 add r7, r0, #0 ldr r0, [r5] add r1, r7, #0 bl FUN_02027608 mov r0, #0 add r1, r7, #0 add r2, r0, #0 bl FUN_02002E14 add r4, r0, #0 mov r0, #7 str r0, [sp] mov r1, #0 lsr r3, r4, #0x1f add r3, r4, r3 asr r4, r3, #1 mov r3, #0x80 ldr r0, _021DE0F0 ; =0x00010200 str r1, [sp, #4] str r0, [sp, #8] mov r0, #0x19 str r1, [sp, #0xc] lsl r0, r0, #4 ldr r0, [r5, r0] add r2, r7, #0 sub r3, r3, r4 bl FUN_0201BDE0 add r0, r7, #0 bl FUN_02021A20 ldr r0, [r5] bl FUN_0202769C add r2, r0, #0 add r0, r6, #0 mov r1, #0 bl FUN_0200B518 mov r0, #0xc8 mov r1, #0xd bl FUN_020219F4 add r4, r0, #0 ldr r0, [sp, #0x10] mov r1, #0x2d bl FUN_0200A914 add r7, r0, #0 add r0, r6, #0 add r1, r4, #0 add r2, r7, #0 bl FUN_0200B7B8 mov r0, #0 add r1, r4, #0 add r2, r0, #0 bl FUN_02002E14 add r3, r0, #0 mov r0, #0x1b str r0, [sp] mov r1, #0 ldr r0, _021DE0F0 ; =0x00010200 str r1, [sp, #4] str r0, [sp, #8] mov r0, #0x19 str r1, [sp, #0xc] lsl r0, r0, #4 ldr r0, [r5, r0] lsr r5, r3, #0x1f add r5, r3, r5 asr r5, r5, #1 mov r3, #0x80 add r2, r4, #0 sub r3, r3, r5 bl FUN_0201BDE0 add r0, r4, #0 bl FUN_02021A20 add r0, r7, #0 bl FUN_02021A20 ldr r0, [sp, #0x10] bl FUN_0200A8B8 add r0, r6, #0 bl FUN_0200AB18 add sp, #0x20 pop {r3, r4, r5, r6, r7, pc} nop _021DE0EC: .word 0x00000151 _021DE0F0: .word 0x00010200 thumb_func_end MOD17_021DDFDC thumb_func_start MOD17_021DE0F4 MOD17_021DE0F4: ; 0x021DE0F4 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r5, r0, #0 mov r0, #0x63 lsl r0, r0, #2 ldr r0, [r5, r0] ldr r1, [r5, #8] bl FUN_02020130 ldr r0, [r5, #4] bl FUN_02027C58 add r6, r0, #0 mov r0, #0xd bl FUN_0200AA80 add r7, r0, #0 mov r0, #0xc8 mov r1, #0xd bl FUN_020219F4 add r4, r0, #0 ldr r0, [r5, #8] bl FUN_02083298 add r2, r0, #0 add r0, r7, #0 mov r1, #0 bl FUN_0200B2AC add r0, r6, #0 bl FUN_02083268 add r2, r0, #0 add r0, r7, #0 mov r1, #1 bl FUN_0200B278 ldr r0, [r5, #4] bl FUN_02027B44 add r6, r0, #0 ldr r0, [r5, #4] add r1, r4, #0 bl FUN_02027B0C mov r0, #1 str r0, [sp] mov r0, #2 str r0, [sp, #4] add r0, r7, #0 mov r1, #3 add r2, r4, #0 add r3, r6, #0 bl FUN_0200ABB4 mov r0, #0xd bl FUN_020669C0 add r6, r0, #0 ldr r0, [r5, #4] add r1, r6, #0 bl FUN_02027B78 add r0, r6, #0 bl FUN_020690E4 add r2, r0, #0 add r0, r7, #0 mov r1, #4 bl FUN_0200ACF8 add r0, r6, #0 bl FUN_02016A18 ldr r2, _021DE24C ; =0x00000151 mov r0, #0 mov r1, #0x1a mov r3, #0xd bl FUN_0200A86C str r0, [sp, #0x10] cmp r0, #0 bne _021DE1A0 bl ErrorHandling _021DE1A0: ldr r0, [sp, #0x10] mov r1, #0x2b bl FUN_0200A914 add r6, r0, #0 add r0, r7, #0 add r1, r4, #0 add r2, r6, #0 bl FUN_0200B7B8 add r0, r6, #0 bl FUN_02021A20 mov r0, #0 add r1, r4, #0 add r2, r0, #0 bl FUN_02002E14 add r3, r0, #0 mov r0, #7 str r0, [sp] mov r1, #0 lsr r6, r3, #0x1f add r6, r3, r6 ldr r0, _021DE250 ; =0x00010200 str r1, [sp, #4] str r0, [sp, #8] mov r0, #0x19 str r1, [sp, #0xc] lsl r0, r0, #4 ldr r0, [r5, r0] asr r6, r6, #1 mov r3, #0x80 add r2, r4, #0 sub r3, r3, r6 bl FUN_0201BDE0 ldr r0, [sp, #0x10] mov r1, #0x2c bl FUN_0200A914 add r6, r0, #0 add r0, r7, #0 add r1, r4, #0 add r2, r6, #0 bl FUN_0200B7B8 add r0, r6, #0 bl FUN_02021A20 mov r0, #0 add r1, r4, #0 add r2, r0, #0 bl FUN_02002E14 add r3, r0, #0 mov r0, #0x1b str r0, [sp] mov r1, #0 ldr r0, _021DE250 ; =0x00010200 str r1, [sp, #4] str r0, [sp, #8] mov r0, #0x19 str r1, [sp, #0xc] lsl r0, r0, #4 ldr r0, [r5, r0] lsr r5, r3, #0x1f add r5, r3, r5 asr r5, r5, #1 mov r3, #0x80 add r2, r4, #0 sub r3, r3, r5 bl FUN_0201BDE0 add r0, r4, #0 bl FUN_02021A20 ldr r0, [sp, #0x10] bl FUN_0200A8B8 add r0, r7, #0 bl FUN_0200AB18 add sp, #0x14 pop {r4, r5, r6, r7, pc} nop _021DE24C: .word 0x00000151 _021DE250: .word 0x00010200 thumb_func_end MOD17_021DE0F4 .section .rodata ; 0x021DE254 .incbin "baserom.nds", 0x26AF74, 0x100