.include "asm/macros.inc" .include "global.inc" .section .text .balign 4, 0 thumb_func_start MOD85_021D74E0 MOD85_021D74E0: ; 0x021D74E0 push {r4, r5, lr} sub sp, #0xc add r5, r0, #0 mov r0, #0 add r1, r0, #0 bl FUN_02015F10 bl FUN_02015F1C bl FUN_0201E6D8 bl FUN_0201E740 mov r2, #2 mov r0, #3 mov r1, #0x4f lsl r2, r2, #0x12 bl FUN_0201681C add r0, r5, #0 mov r1, #8 mov r2, #0x4f bl FUN_02006268 add r4, r0, #0 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] add r0, r5, #0 bl FUN_0200628C str r0, [r4] bl MOD85_021D76CC add r5, r0, #0 str r5, [r4, #4] bl MOD85_021D811C add r0, r5, #0 bl MOD85_021D7FCC add r0, r5, #0 bl MOD85_021D76FC add r0, r5, #0 bl MOD85_021D797C add r0, r5, #0 bl MOD85_021D7B28 bl MOD85_021D7C6C add r0, r5, #0 bl MOD85_021D7CB0 add r0, r5, #0 bl MOD85_021D8188 add r0, r5, #0 bl MOD85_021DC108 add r0, r5, #0 bl MOD85_021DC24C add r0, r5, #0 bl MOD85_021DC384 mov r1, #0 mov r0, #0x42 add r2, r1, #0 bl FUN_0200433C add r0, r5, #0 bl MOD85_021D8020 mov r0, #8 str r0, [sp] mov r1, #1 str r1, [sp, #4] mov r0, #0x4f str r0, [sp, #8] mov r0, #0 add r2, r1, #0 add r3, r0, #0 bl FUN_0200E1D0 mov r0, #1 add sp, #0xc pop {r4, r5, pc} .align 2, 0 thumb_func_end MOD85_021D74E0 thumb_func_start MOD85_021D75A0 MOD85_021D75A0: ; 0x021D75A0 push {r4, r5, lr} sub sp, #0xc add r4, r1, #0 bl FUN_02006278 ldr r5, [r0, #4] ldr r0, [r4] cmp r0, #3 bhi _021D7626 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021D75BE: ; jump table .short _021D75C6 - _021D75BE - 2 ; case 0 .short _021D75D6 - _021D75BE - 2 ; case 1 .short _021D7608 - _021D75BE - 2 ; case 2 .short _021D7616 - _021D75BE - 2 ; case 3 _021D75C6: bl FUN_0200E308 cmp r0, #0 beq _021D7626 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021D7626 _021D75D6: add r0, r5, #0 bl MOD85_021D820C cmp r0, #1 bne _021D7626 ldr r0, [r4] mov r1, #0 add r0, r0, #1 str r0, [r4] mov r0, #8 str r0, [sp] mov r0, #1 str r0, [sp, #4] mov r0, #0x4f str r0, [sp, #8] mov r0, #2 add r2, r1, #0 add r3, r1, #0 bl FUN_0200E1D0 add r0, r5, #0 mov r1, #0 bl MOD85_021D7FF4 b _021D7626 _021D7608: bl FUN_0200E308 cmp r0, #0 beq _021D7626 ldr r0, [r4] add r0, r0, #1 str r0, [r4] _021D7616: add r0, r5, #0 bl MOD85_021D8014 cmp r0, #0 bne _021D7626 add sp, #0xc mov r0, #1 pop {r4, r5, pc} _021D7626: ldr r0, _021D7640 ; =0x0000044C ldr r0, [r5, r0] bl FUN_02064584 mov r0, #0x45 lsl r0, r0, #4 ldr r0, [r5, r0] bl MOD85_021DE830 mov r0, #0 add sp, #0xc pop {r4, r5, pc} nop _021D7640: .word 0x0000044C thumb_func_end MOD85_021D75A0 thumb_func_start MOD85_021D7644 MOD85_021D7644: ; 0x021D7644 push {r4, r5, r6, lr} add r5, r0, #0 bl FUN_02006278 add r6, r0, #0 mov r0, #0 ldr r4, [r6, #4] add r1, r0, #0 bl FUN_02015F10 add r0, r6, #0 add r1, r4, #0 bl MOD85_021D769C add r0, r4, #0 bl MOD85_021D7FE4 add r0, r4, #0 bl MOD85_021D77DC add r0, r4, #0 bl MOD85_021D7BB8 add r0, r4, #0 bl MOD85_021D81AC add r0, r4, #0 bl MOD85_021D8044 add r0, r4, #0 bl MOD85_021D8134 add r0, r4, #0 bl MOD85_021D76F4 add r0, r5, #0 bl FUN_0200627C mov r0, #0x4f bl FUN_020168D0 mov r0, #1 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD85_021D7644 thumb_func_start MOD85_021D769C MOD85_021D769C: ; 0x021D769C push {r3, lr} add r2, r1, #0 ldr r3, [r2, #0x60] ldr r1, _021D76C8 ; =0x0000C350 cmp r3, r1 bls _021D76AA add r3, r1, #0 _021D76AA: ldr r1, [r0] ldr r1, [r1] str r3, [r1] ldr r3, [r2, #0x20] ldr r1, [r0] str r3, [r1, #0xc] ldr r0, [r0] ldr r0, [r0, #8] cmp r0, #0 beq _021D76C6 ldr r2, [r2, #0xc] mov r1, #0xe bl FUN_0202A11C _021D76C6: pop {r3, pc} .align 2, 0 _021D76C8: .word 0x0000C350 thumb_func_end MOD85_021D769C thumb_func_start MOD85_021D76CC MOD85_021D76CC: ; 0x021D76CC push {r4, lr} add r4, r0, #0 ldr r0, _021D76EC ; =0x000004C8 bl MOD85_021D80F8 ldr r1, [r4] ldr r1, [r1] str r1, [r0, #0x60] add r1, r0, #0 ldr r2, [r4, #4] add r1, #0x88 str r2, [r1] ldr r2, [r4, #0x10] ldr r1, _021D76F0 ; =0x000004C4 str r2, [r0, r1] pop {r4, pc} .align 2, 0 _021D76EC: .word 0x000004C8 _021D76F0: .word 0x000004C4 thumb_func_end MOD85_021D76CC thumb_func_start MOD85_021D76F4 MOD85_021D76F4: ; 0x021D76F4 ldr r3, _021D76F8 ; =FUN_02016A18 bx r3 .align 2, 0 _021D76F8: .word FUN_02016A18 thumb_func_end MOD85_021D76F4 thumb_func_start MOD85_021D76FC MOD85_021D76FC: ; 0x021D76FC push {r3, r4, r5, r6, r7, lr} add r4, r0, #0 mov r0, #0x4f bl FUN_02016B94 ldr r1, _021D77CC ; =0x0000043C str r0, [r4, r1] bl MOD85_021D77F8 ldr r0, _021D77CC ; =0x0000043C ldr r0, [r4, r0] bl MOD85_021D7818 bl MOD85_021D7930 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, #8 mov r1, #0 bl FUN_0201E6E4 mov r0, #0x10 mov r1, #1 bl FUN_0201E6E4 mov r0, #1 mov r1, #0 bl FUN_0201E74C mov r0, #2 mov r1, #0 bl FUN_0201E74C mov r0, #4 mov r1, #0 bl FUN_0201E74C mov r0, #8 mov r1, #1 bl FUN_0201E74C mov r0, #0x10 mov r1, #1 bl FUN_0201E74C ldr r0, _021D77D0 ; =0x04000008 mov r2, #3 ldrh r1, [r0] mov r3, #1 mov r7, #2 bic r1, r2 strh r1, [r0] ldrh r1, [r0, #2] ldr r6, _021D77D4 ; =0x04001008 bic r1, r2 orr r1, r3 strh r1, [r0, #2] ldrh r1, [r0, #4] bic r1, r2 orr r1, r7 strh r1, [r0, #4] ldrh r5, [r0, #6] mov r1, #3 bic r5, r2 orr r5, r1 strh r5, [r0, #6] ldrh r5, [r6] bic r5, r2 strh r5, [r6] ldrh r5, [r6, #2] bic r5, r2 orr r3, r5 strh r3, [r6, #2] ldrh r3, [r6, #4] add r0, #0x48 bic r3, r2 orr r3, r7 strh r3, [r6, #4] ldrh r3, [r6, #6] bic r3, r2 orr r1, r3 strh r1, [r6, #6] mov r1, #9 str r1, [sp] mov r1, #4 mov r2, #0x10 mov r3, #8 bl G2x_SetBlendAlpha_ ldr r0, _021D77D8 ; =MOD85_021D80DC add r1, r4, #0 bl FUN_02015F10 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021D77CC: .word 0x0000043C _021D77D0: .word 0x04000008 _021D77D4: .word 0x04001008 _021D77D8: .word MOD85_021D80DC thumb_func_end MOD85_021D76FC thumb_func_start MOD85_021D77DC MOD85_021D77DC: ; 0x021D77DC push {r4, lr} add r4, r0, #0 ldr r0, _021D77F4 ; =0x0000043C ldr r0, [r4, r0] bl MOD85_021D7904 add r0, r4, #0 bl MOD85_021D7D04 bl MOD85_021D7CA4 pop {r4, pc} .align 2, 0 _021D77F4: .word 0x0000043C thumb_func_end MOD85_021D77DC thumb_func_start MOD85_021D77F8 MOD85_021D77F8: ; 0x021D77F8 push {r4, lr} sub sp, #0x28 ldr r4, _021D7814 ; =0x021DED7C add r3, sp, #0 mov r2, #5 _021D7802: ldmia r4!, {r0, r1} stmia r3!, {r0, r1} sub r2, r2, #1 bne _021D7802 add r0, sp, #0 bl FUN_0201E66C add sp, #0x28 pop {r4, pc} .align 2, 0 _021D7814: .word 0x021DED7C thumb_func_end MOD85_021D77F8 thumb_func_start MOD85_021D7818 MOD85_021D7818: ; 0x021D7818 push {r3, r4, r5, lr} sub sp, #0x80 ldr r2, _021D78EC ; =0x04000304 add r4, r0, #0 ldrh r1, [r2] lsr r0, r2, #0xb ldr r5, _021D78F0 ; =0x021DECEC orr r0, r1 strh r0, [r2] add r3, sp, #0x70 add r2, r3, #0 ldmia r5!, {r0, r1} stmia r3!, {r0, r1} ldmia r5!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 bl FUN_02016BBC ldr r5, _021D78F4 ; =0x021DED28 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, #0 str r0, [r3] add r0, r4, #0 add r3, r1, #0 bl FUN_02016C18 add r0, r4, #0 mov r1, #0 bl FUN_02018744 mov r0, #0 mov r1, #0x20 add r2, r0, #0 mov r3, #0x4f bl FUN_02017F18 ldr r5, _021D78F8 ; =0x021DED44 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, #1 str r0, [r3] add r0, r4, #0 mov r3, #0 bl FUN_02016C18 add r0, r4, #0 mov r1, #1 bl FUN_02018744 ldr r5, _021D78FC ; =0x021DED60 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, #2 str r0, [r3] add r0, r4, #0 mov r3, #0 bl FUN_02016C18 add r0, r4, #0 mov r1, #2 bl FUN_02018744 ldr r5, _021D7900 ; =0x021DED0C 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, #7 str r0, [r3] add r0, r4, #0 mov r3, #0 bl FUN_02016C18 add r0, r4, #0 mov r1, #7 bl FUN_02018744 add sp, #0x80 pop {r3, r4, r5, pc} .align 2, 0 _021D78EC: .word 0x04000304 _021D78F0: .word 0x021DECEC _021D78F4: .word 0x021DED28 _021D78F8: .word 0x021DED44 _021D78FC: .word 0x021DED60 _021D7900: .word 0x021DED0C thumb_func_end MOD85_021D7818 thumb_func_start MOD85_021D7904 MOD85_021D7904: ; 0x021D7904 push {r4, lr} add r4, r0, #0 mov r1, #0 bl FUN_020178A0 add r0, r4, #0 mov r1, #1 bl FUN_020178A0 add r0, r4, #0 mov r1, #2 bl FUN_020178A0 add r0, r4, #0 mov r1, #7 bl FUN_020178A0 add r0, r4, #0 bl FUN_02016A18 pop {r4, pc} .align 2, 0 thumb_func_end MOD85_021D7904 thumb_func_start MOD85_021D7930 MOD85_021D7930: ; 0x021D7930 push {r4, r5} mov r0, #1 lsl r0, r0, #0x1a ldr r2, [r0] ldr r1, _021D7978 ; =0xFFFF1FFF add r5, r0, #0 and r2, r1 lsr r1, r0, #0xd orr r1, r2 str r1, [r0] add r5, #0x48 ldrh r3, [r5] mov r1, #0x3f mov r2, #0x1f bic r3, r1 add r4, r3, #0 orr r4, r2 mov r3, #0x20 orr r4, r3 strh r4, [r5] add r4, r0, #0 add r4, #0x4a ldrh r5, [r4] bic r5, r1 add r1, r5, #0 orr r1, r2 orr r1, r3 strh r1, [r4] add r1, r0, #0 mov r2, #0xff add r1, #0x40 strh r2, [r1] add r0, #0x44 strh r2, [r0] pop {r4, r5} bx lr .align 2, 0 _021D7978: .word 0xFFFF1FFF thumb_func_end MOD85_021D7930 thumb_func_start MOD85_021D797C MOD85_021D797C: ; 0x021D797C push {r3, r4, r5, lr} mov r1, #3 mov r2, #0 add r4, r0, #0 bl MOD85_021D8144 ldr r1, _021D7B1C ; =0x00000448 add r5, r0, #0 add r1, r4, r1 bl FUN_020B0138 ldr r1, _021D7B1C ; =0x00000448 mov r2, #0x1a ldr r1, [r4, r1] mov r0, #1 ldr r1, [r1, #0xc] lsl r2, r2, #4 mov r3, #0 bl FUN_02017FB4 add r0, r5, #0 bl FUN_02016A18 mov r1, #0 add r0, r4, #0 add r2, r1, #0 bl MOD85_021D8144 ldr r1, _021D7B20 ; =0x00000444 add r5, r0, #0 add r1, r4, r1 bl FUN_020B0088 ldr r0, _021D7B20 ; =0x00000444 mov r1, #0 ldr r3, [r4, r0] sub r0, #8 str r1, [sp] ldr r2, [r3, #0x14] ldr r0, [r4, r0] ldr r3, [r3, #0x10] mov r1, #1 bl FUN_02017E14 add r0, r5, #0 bl FUN_02016A18 add r0, r4, #0 mov r1, #1 mov r2, #0 bl MOD85_021D8144 mov r1, #0x11 lsl r1, r1, #6 add r1, r4, r1 add r5, r0, #0 bl FUN_020B0180 mov r0, #0x11 lsl r0, r0, #6 ldr r3, [r4, r0] sub r0, r0, #4 add r2, r3, #0 ldr r0, [r4, r0] ldr r3, [r3, #8] mov r1, #1 add r2, #0xc bl FUN_02017DFC ldr r0, _021D7B24 ; =0x0000043C mov r1, #1 ldr r0, [r4, r0] bl FUN_02017CD0 add r0, r5, #0 bl FUN_02016A18 add r0, r4, #0 mov r1, #8 mov r2, #0 bl MOD85_021D8144 ldr r1, _021D7B20 ; =0x00000444 add r5, r0, #0 add r1, r4, r1 bl FUN_020B0088 ldr r0, _021D7B20 ; =0x00000444 mov r1, #0 ldr r3, [r4, r0] sub r0, #8 str r1, [sp] ldr r2, [r3, #0x14] ldr r0, [r4, r0] ldr r3, [r3, #0x10] mov r1, #2 bl FUN_02017E14 add r0, r5, #0 bl FUN_02016A18 add r0, r4, #0 mov r1, #9 mov r2, #0 bl MOD85_021D8144 mov r1, #0x11 lsl r1, r1, #6 add r1, r4, r1 add r5, r0, #0 bl FUN_020B0180 mov r0, #0x11 lsl r0, r0, #6 ldr r3, [r4, r0] sub r0, r0, #4 add r2, r3, #0 ldr r0, [r4, r0] ldr r3, [r3, #8] mov r1, #2 add r2, #0xc bl FUN_02017DFC ldr r0, _021D7B24 ; =0x0000043C mov r1, #2 ldr r0, [r4, r0] bl FUN_02017CD0 add r0, r5, #0 bl FUN_02016A18 add r0, r4, #0 mov r1, #3 mov r2, #0 bl MOD85_021D8144 ldr r1, _021D7B1C ; =0x00000448 add r5, r0, #0 add r1, r4, r1 bl FUN_020B0138 ldr r1, _021D7B1C ; =0x00000448 mov r2, #0x1a ldr r1, [r4, r1] mov r0, #7 ldr r1, [r1, #0xc] lsl r2, r2, #4 mov r3, #0 bl FUN_02017FB4 add r0, r5, #0 bl FUN_02016A18 add r0, r4, #0 mov r1, #2 mov r2, #0 bl MOD85_021D8144 ldr r1, _021D7B20 ; =0x00000444 add r5, r0, #0 add r1, r4, r1 bl FUN_020B0088 ldr r0, _021D7B20 ; =0x00000444 mov r1, #0 ldr r3, [r4, r0] sub r0, #8 str r1, [sp] ldr r2, [r3, #0x14] ldr r0, [r4, r0] ldr r3, [r3, #0x10] mov r1, #7 bl FUN_02017E14 add r0, r5, #0 bl FUN_02016A18 add r0, r4, #0 mov r1, #4 mov r2, #0 bl MOD85_021D8144 mov r1, #0x11 lsl r1, r1, #6 add r1, r4, r1 add r5, r0, #0 bl FUN_020B0180 mov r0, #0x11 lsl r0, r0, #6 ldr r3, [r4, r0] sub r0, r0, #4 add r2, r3, #0 ldr r0, [r4, r0] ldr r3, [r3, #8] mov r1, #7 add r2, #0xc bl FUN_02017DFC ldr r0, _021D7B24 ; =0x0000043C mov r1, #7 ldr r0, [r4, r0] bl FUN_02017CD0 add r0, r5, #0 bl FUN_02016A18 pop {r3, r4, r5, pc} .align 2, 0 _021D7B1C: .word 0x00000448 _021D7B20: .word 0x00000444 _021D7B24: .word 0x0000043C thumb_func_end MOD85_021D797C thumb_func_start MOD85_021D7B28 MOD85_021D7B28: ; 0x021D7B28 push {r3, r4, r5, lr} sub sp, #8 add r5, r0, #0 ldr r0, _021D7BA4 ; =0x00000408 mov r1, #0 add r4, r5, r0 str r1, [sp] mov r2, #0x4f str r2, [sp, #4] add r0, #0x34 ldr r0, [r5, r0] mov r2, #1 mov r3, #0xf bl FUN_0200CB00 ldr r1, _021D7BA8 ; =0x000004C4 mov r2, #0x1f ldr r0, [r5, r1] sub r1, #0x88 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp] mov r0, #0x4f str r0, [sp, #4] ldr r0, [r5, r1] mov r1, #0 mov r3, #0xe bl FUN_0200CD68 mov r1, #0x1e mov r0, #0 lsl r1, r1, #4 mov r2, #0x4f bl FUN_02002EEC ldr r2, _021D7BAC ; =0x000001E9 mov r0, #0 mov r1, #0x1a mov r3, #0x4f bl FUN_0200A86C ldr r1, _021D7BA4 ; =0x00000408 str r0, [r5, r1] mov r0, #0x4f bl FUN_0200AA80 str r0, [r4, #4] ldr r0, _021D7BB0 ; =0x0000043C add r1, r4, #0 ldr r0, [r5, r0] ldr r2, _021D7BB4 ; =0x021DECE4 add r1, #8 bl FUN_02019150 mov r0, #1 lsl r0, r0, #8 mov r1, #0x4f bl FUN_020219F4 str r0, [r4, #0x18] add sp, #8 pop {r3, r4, r5, pc} .align 2, 0 _021D7BA4: .word 0x00000408 _021D7BA8: .word 0x000004C4 _021D7BAC: .word 0x000001E9 _021D7BB0: .word 0x0000043C _021D7BB4: .word 0x021DECE4 thumb_func_end MOD85_021D7B28 thumb_func_start MOD85_021D7BB8 MOD85_021D7BB8: ; 0x021D7BB8 push {r4, r5, r6, lr} add r5, r0, #0 ldr r0, _021D7BE8 ; =0x00000408 add r4, r5, r0 add r6, r4, #0 add r6, #8 add r0, r6, #0 bl FUN_02019570 add r0, r6, #0 bl FUN_02019178 ldr r0, _021D7BE8 ; =0x00000408 ldr r0, [r5, r0] bl FUN_0200A8B8 ldr r0, [r4, #4] bl FUN_0200AB18 ldr r0, [r4, #0x18] bl FUN_02021A20 pop {r4, r5, r6, pc} nop _021D7BE8: .word 0x00000408 thumb_func_end MOD85_021D7BB8 thumb_func_start MOD85_021D7BEC MOD85_021D7BEC: ; 0x021D7BEC push {r3, r4, r5, r6, lr} sub sp, #0xc add r5, r0, #0 ldr r0, _021D7C40 ; =0x00000408 add r6, r1, #0 add r4, r5, r0 add r0, r4, #0 add r0, #8 mov r1, #1 mov r2, #0x1f mov r3, #0xe bl FUN_0200D0BC add r0, r4, #0 add r0, #8 mov r1, #0xf bl FUN_02019620 ldr r0, _021D7C40 ; =0x00000408 ldr r2, [r4, #0x18] ldr r0, [r5, r0] add r1, r6, #0 bl FUN_0200A8E0 mov r3, #0 str r3, [sp] mov r0, #0xff str r0, [sp, #4] str r3, [sp, #8] add r0, r4, #0 ldr r2, [r4, #0x18] add r0, #8 mov r1, #1 bl FUN_0201BD84 add r4, #8 add r0, r4, #0 bl FUN_02019220 add sp, #0xc pop {r3, r4, r5, r6, pc} nop _021D7C40: .word 0x00000408 thumb_func_end MOD85_021D7BEC thumb_func_start MOD85_021D7C44 MOD85_021D7C44: ; 0x021D7C44 push {r3, r4, r5, lr} ldr r4, _021D7C68 ; =0x00000408 add r5, r0, #0 add r0, r5, r4 add r0, #8 mov r1, #1 bl FUN_0200D0E0 add r0, r5, r4 add r0, #8 mov r1, #0 bl FUN_02019620 add r0, r5, r4 add r0, #8 bl FUN_02019220 pop {r3, r4, r5, pc} .align 2, 0 _021D7C68: .word 0x00000408 thumb_func_end MOD85_021D7C44 thumb_func_start MOD85_021D7C6C MOD85_021D7C6C: ; 0x021D7C6C push {r4, lr} sub sp, #0x10 ldr r4, _021D7C9C ; =0x021DECFC add r3, sp, #0 add r2, r3, #0 ldmia r4!, {r0, r1} stmia r3!, {r0, r1} ldmia r4!, {r0, r1} stmia r3!, {r0, r1} ldr r1, _021D7CA0 ; =0x00200010 add r0, r2, #0 add r2, r1, #0 bl FUN_0201D060 mov r0, #0x10 mov r1, #0x4f bl FUN_0201E00C bl FUN_0201D168 bl FUN_0201E0BC add sp, #0x10 pop {r4, pc} .align 2, 0 _021D7C9C: .word 0x021DECFC _021D7CA0: .word 0x00200010 thumb_func_end MOD85_021D7C6C thumb_func_start MOD85_021D7CA4 MOD85_021D7CA4: ; 0x021D7CA4 push {r3, lr} bl FUN_0201D12C bl FUN_0201E08C pop {r3, pc} thumb_func_end MOD85_021D7CA4 thumb_func_start MOD85_021D7CB0 MOD85_021D7CB0: ; 0x021D7CB0 push {r3, r4, lr} sub sp, #0x1c add r4, r0, #0 bl FUN_020B0FC0 mov r0, #0 str r0, [sp] mov r1, #0x80 str r1, [sp, #4] str r0, [sp, #8] mov r3, #0x20 str r3, [sp, #0xc] mov r2, #0x4f str r2, [sp, #0x10] add r2, r0, #0 bl FUN_02009EAC mov r0, #0x10 str r0, [sp] mov r1, #0x40 str r1, [sp, #4] mov r2, #0x20 str r2, [sp, #8] mov r3, #0xb str r3, [sp, #0xc] mov r0, #8 str r0, [sp, #0x10] str r3, [sp, #0x14] str r3, [sp, #0x18] mov r0, #0x4f add r3, r1, #0 bl MOD85_021DE5A4 mov r1, #0x45 lsl r1, r1, #4 str r0, [r4, r1] add r0, r4, #0 bl MOD85_021D7D1C add sp, #0x1c pop {r3, r4, pc} .align 2, 0 thumb_func_end MOD85_021D7CB0 thumb_func_start MOD85_021D7D04 MOD85_021D7D04: ; 0x021D7D04 push {r4, lr} add r4, r0, #0 bl MOD85_021D7FC8 mov r0, #0x45 lsl r0, r0, #4 ldr r0, [r4, r0] bl MOD85_021DE710 bl FUN_02009FA0 pop {r4, pc} thumb_func_end MOD85_021D7D04 thumb_func_start MOD85_021D7D1C MOD85_021D7D1C: ; 0x021D7D1C push {r3, r4, lr} sub sp, #4 mov r2, #0x45 add r4, r0, #0 mov r0, #0 lsl r2, r2, #4 str r0, [sp] ldr r0, [r4, r2] sub r2, #0x18 ldr r2, [r4, r2] mov r1, #1 mov r3, #0xb bl MOD85_021DE840 mov r1, #1 mov r2, #0x45 str r1, [sp] lsl r2, r2, #4 ldr r0, [r4, r2] sub r2, #0x18 ldr r2, [r4, r2] mov r3, #0x15 bl MOD85_021DE840 mov r2, #0x45 mov r0, #6 lsl r2, r2, #4 str r0, [sp] ldr r0, [r4, r2] sub r2, #0x18 ldr r2, [r4, r2] mov r1, #2 mov r3, #0x44 bl MOD85_021DE840 mov r2, #0x45 mov r0, #7 lsl r2, r2, #4 str r0, [sp] ldr r0, [r4, r2] sub r2, #0x18 ldr r2, [r4, r2] mov r1, #2 mov r3, #0x47 bl MOD85_021DE840 mov r2, #0x45 mov r0, #8 lsl r2, r2, #4 str r0, [sp] ldr r0, [r4, r2] sub r2, #0x18 ldr r2, [r4, r2] mov r1, #2 mov r3, #0x40 bl MOD85_021DE840 mov r2, #0x45 mov r0, #9 lsl r2, r2, #4 str r0, [sp] ldr r0, [r4, r2] sub r2, #0x18 ldr r2, [r4, r2] mov r1, #2 mov r3, #0x3c bl MOD85_021DE840 mov r2, #0x45 mov r0, #0 lsl r2, r2, #4 str r0, [sp] ldr r0, [r4, r2] sub r2, #0x18 ldr r2, [r4, r2] mov r1, #3 mov r3, #0xa bl MOD85_021DE910 mov r1, #1 mov r2, #0x45 str r1, [sp] lsl r2, r2, #4 ldr r0, [r4, r2] sub r2, #0x18 ldr r2, [r4, r2] mov r3, #0x14 bl MOD85_021DE910 mov r2, #0x45 mov r0, #6 lsl r2, r2, #4 str r0, [sp] ldr r0, [r4, r2] sub r2, #0x18 ldr r2, [r4, r2] mov r1, #2 mov r3, #0x43 bl MOD85_021DE910 mov r2, #0x45 mov r0, #7 lsl r2, r2, #4 str r0, [sp] ldr r0, [r4, r2] sub r2, #0x18 ldr r2, [r4, r2] mov r1, #2 mov r3, #0x3f bl MOD85_021DE910 mov r1, #0x45 lsl r1, r1, #4 ldr r0, [r4, r1] sub r1, #0x18 ldr r1, [r4, r1] mov r2, #0xc mov r3, #0 bl MOD85_021DE9E4 mov r1, #0x45 lsl r1, r1, #4 ldr r0, [r4, r1] sub r1, #0x18 ldr r1, [r4, r1] mov r2, #0x16 mov r3, #1 bl MOD85_021DE9E4 mov r1, #0x45 lsl r1, r1, #4 ldr r0, [r4, r1] sub r1, #0x18 ldr r1, [r4, r1] mov r2, #0x45 mov r3, #6 bl MOD85_021DE9E4 mov r1, #0x45 lsl r1, r1, #4 ldr r0, [r4, r1] sub r1, #0x18 ldr r1, [r4, r1] mov r2, #0x48 mov r3, #7 bl MOD85_021DE9E4 mov r1, #0x45 lsl r1, r1, #4 ldr r0, [r4, r1] sub r1, #0x18 ldr r1, [r4, r1] mov r2, #0x41 mov r3, #8 bl MOD85_021DE9E4 mov r1, #0x45 lsl r1, r1, #4 ldr r0, [r4, r1] sub r1, #0x18 ldr r1, [r4, r1] mov r2, #0x3d mov r3, #9 bl MOD85_021DE9E4 mov r1, #0x45 lsl r1, r1, #4 ldr r0, [r4, r1] sub r1, #0x18 ldr r1, [r4, r1] mov r2, #0xd mov r3, #0 bl MOD85_021DEA4C mov r1, #0x45 lsl r1, r1, #4 ldr r0, [r4, r1] sub r1, #0x18 ldr r1, [r4, r1] mov r2, #0x17 mov r3, #1 bl MOD85_021DEA4C mov r1, #0x45 lsl r1, r1, #4 ldr r0, [r4, r1] sub r1, #0x18 ldr r1, [r4, r1] mov r2, #0x46 mov r3, #6 bl MOD85_021DEA4C mov r1, #0x45 lsl r1, r1, #4 ldr r0, [r4, r1] sub r1, #0x18 ldr r1, [r4, r1] mov r2, #0x49 mov r3, #7 bl MOD85_021DEA4C mov r1, #0x45 lsl r1, r1, #4 ldr r0, [r4, r1] sub r1, #0x18 ldr r1, [r4, r1] mov r2, #0x42 mov r3, #8 bl MOD85_021DEA4C mov r1, #0x45 lsl r1, r1, #4 ldr r0, [r4, r1] sub r1, #0x18 ldr r1, [r4, r1] mov r2, #0x3e mov r3, #9 bl MOD85_021DEA4C mov r0, #0x45 lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #0 bl MOD85_021DE8A8 mov r0, #0x45 lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #1 bl MOD85_021DE8A8 mov r0, #0x45 lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #6 bl MOD85_021DE8A8 mov r0, #0x45 lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #7 bl MOD85_021DE8A8 mov r0, #0x45 lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #8 bl MOD85_021DE8A8 mov r0, #0x45 lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #9 bl MOD85_021DE8A8 mov r0, #0x45 lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #0 bl MOD85_021DE8DC mov r0, #0x45 lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #1 bl MOD85_021DE8DC mov r0, #0x45 lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #6 bl MOD85_021DE8DC mov r0, #0x45 lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #7 bl MOD85_021DE8DC mov r0, #0x45 lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #8 bl MOD85_021DE8DC mov r0, #0x45 lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #9 bl MOD85_021DE8DC mov r0, #0x45 lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #0 bl MOD85_021DE97C mov r0, #0x45 lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #1 bl MOD85_021DE97C mov r0, #0x45 lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #6 bl MOD85_021DE97C mov r0, #0x45 lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #7 bl MOD85_021DE97C mov r0, #0x45 lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #0 bl MOD85_021DE9B0 mov r0, #0x45 lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #1 bl MOD85_021DE9B0 mov r0, #0x45 lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #6 bl MOD85_021DE9B0 mov r0, #0x45 lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #7 bl MOD85_021DE9B0 add sp, #4 pop {r3, r4, pc} .align 2, 0 thumb_func_end MOD85_021D7D1C thumb_func_start MOD85_021D7FC8 MOD85_021D7FC8: ; 0x021D7FC8 bx lr .align 2, 0 thumb_func_end MOD85_021D7FC8 thumb_func_start MOD85_021D7FCC MOD85_021D7FCC: ; 0x021D7FCC push {r4, lr} add r4, r0, #0 mov r0, #0x4f mov r1, #0x80 bl FUN_020643C0 ldr r1, _021D7FE0 ; =0x0000044C str r0, [r4, r1] pop {r4, pc} nop _021D7FE0: .word 0x0000044C thumb_func_end MOD85_021D7FCC thumb_func_start MOD85_021D7FE4 MOD85_021D7FE4: ; 0x021D7FE4 ldr r1, _021D7FEC ; =0x0000044C ldr r3, _021D7FF0 ; =FUN_020643F0 ldr r0, [r0, r1] bx r3 .align 2, 0 _021D7FEC: .word 0x0000044C _021D7FF0: .word FUN_020643F0 thumb_func_end MOD85_021D7FE4 thumb_func_start MOD85_021D7FF4 MOD85_021D7FF4: ; 0x021D7FF4 ldr r2, _021D8010 ; =0x00000424 add r2, r0, r2 ldr r0, [r2, #8] cmp r0, r1 beq _021D800C ldr r0, [r2, #0xc] cmp r0, r1 beq _021D800C str r1, [r2, #0xc] mov r0, #1 str r0, [r2] str r0, [r2, #4] _021D800C: bx lr nop _021D8010: .word 0x00000424 thumb_func_end MOD85_021D7FF4 thumb_func_start MOD85_021D8014 MOD85_021D8014: ; 0x021D8014 ldr r1, _021D801C ; =0x00000428 ldr r0, [r0, r1] bx lr nop _021D801C: .word 0x00000428 thumb_func_end MOD85_021D8014 thumb_func_start MOD85_021D8020 MOD85_021D8020: ; 0x021D8020 push {r4, lr} add r1, r0, #0 ldr r0, _021D803C ; =0x00000424 mov r2, #0x90 add r4, r1, r0 mov r0, #0 str r0, [r4, #8] mov r0, #3 str r0, [r4, #0xc] ldr r0, _021D8040 ; =MOD85_021D8054 bl FUN_0200CA44 str r0, [r4, #0x10] pop {r4, pc} .align 2, 0 _021D803C: .word 0x00000424 _021D8040: .word MOD85_021D8054 thumb_func_end MOD85_021D8020 thumb_func_start MOD85_021D8044 MOD85_021D8044: ; 0x021D8044 ldr r1, _021D804C ; =0x00000434 ldr r3, _021D8050 ; =FUN_0200CAB4 ldr r0, [r0, r1] bx r3 .align 2, 0 _021D804C: .word 0x00000434 _021D8050: .word FUN_0200CAB4 thumb_func_end MOD85_021D8044 thumb_func_start MOD85_021D8054 MOD85_021D8054: ; 0x021D8054 push {r4, lr} ldr r0, _021D80D8 ; =0x00000424 add r4, r1, r0 ldr r1, [r4] cmp r1, #0 beq _021D80D4 cmp r1, #1 beq _021D806A cmp r1, #2 beq _021D809E pop {r4, pc} _021D806A: ldr r1, [r4, #8] cmp r1, #0 beq _021D807A cmp r1, #1 beq _021D8084 cmp r1, #2 beq _021D808E b _021D8096 _021D807A: mov r0, #1 add r1, r0, #0 bl FUN_020047C8 b _021D8096 _021D8084: add r0, #0x7c mov r1, #0 bl FUN_02005350 b _021D8096 _021D808E: add r0, #0x7d mov r1, #0 bl FUN_02005350 _021D8096: ldr r0, [r4] add r0, r0, #1 str r0, [r4] pop {r4, pc} _021D809E: ldr r1, [r4, #0xc] cmp r1, #0 beq _021D80AE cmp r1, #1 beq _021D80B8 cmp r1, #2 beq _021D80C0 b _021D80C6 _021D80AE: mov r0, #1 mov r1, #0 bl FUN_020047C8 b _021D80C6 _021D80B8: add r0, #0x7c bl FUN_020051F4 b _021D80C6 _021D80C0: add r0, #0x7d bl FUN_020051F4 _021D80C6: ldr r0, [r4, #0xc] str r0, [r4, #8] mov r0, #3 str r0, [r4, #0xc] mov r0, #0 str r0, [r4, #4] str r0, [r4] _021D80D4: pop {r4, pc} nop _021D80D8: .word 0x00000424 thumb_func_end MOD85_021D8054 thumb_func_start MOD85_021D80DC MOD85_021D80DC: ; 0x021D80DC push {r4, lr} add r4, r0, #0 bl FUN_0201C30C bl FUN_02009F80 ldr r0, _021D80F4 ; =0x0000043C ldr r0, [r4, r0] bl FUN_0201AB60 pop {r4, pc} nop _021D80F4: .word 0x0000043C thumb_func_end MOD85_021D80DC thumb_func_start MOD85_021D80F8 MOD85_021D80F8: ; 0x021D80F8 push {r3, r4, r5, lr} add r5, r0, #0 mov r0, #0x4f add r1, r5, #0 bl FUN_02016998 add r4, r0, #0 bne _021D810C bl ErrorHandling _021D810C: add r0, r4, #0 mov r1, #0 add r2, r5, #0 bl Call_FillMemWithValue add r0, r4, #0 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD85_021D80F8 thumb_func_start MOD85_021D811C MOD85_021D811C: ; 0x021D811C push {r4, lr} add r4, r0, #0 mov r0, #0x85 mov r1, #0x4f bl FUN_02006670 ldr r1, _021D8130 ; =0x00000438 str r0, [r4, r1] pop {r4, pc} nop _021D8130: .word 0x00000438 thumb_func_end MOD85_021D811C thumb_func_start MOD85_021D8134 MOD85_021D8134: ; 0x021D8134 ldr r1, _021D813C ; =0x00000438 ldr r3, _021D8140 ; =FUN_020066F4 ldr r0, [r0, r1] bx r3 .align 2, 0 _021D813C: .word 0x00000438 _021D8140: .word FUN_020066F4 thumb_func_end MOD85_021D8134 thumb_func_start MOD85_021D8144 MOD85_021D8144: ; 0x021D8144 push {r4, r5, r6, lr} add r4, r0, #0 ldr r0, _021D8184 ; =0x00000438 add r6, r1, #0 ldr r0, [r4, r0] add r5, r2, #0 bl FUN_020067D0 add r1, r0, #0 cmp r5, #1 bne _021D8162 mov r0, #0x4f bl FUN_02016998 b _021D8168 _021D8162: mov r0, #0x4f bl FUN_020169D8 _021D8168: add r5, r0, #0 cmp r5, #0 bne _021D8172 bl ErrorHandling _021D8172: ldr r0, _021D8184 ; =0x00000438 add r1, r6, #0 ldr r0, [r4, r0] add r2, r5, #0 bl FUN_02006774 add r0, r5, #0 pop {r4, r5, r6, pc} nop _021D8184: .word 0x00000438 thumb_func_end MOD85_021D8144 thumb_func_start MOD85_021D8188 MOD85_021D8188: ; 0x021D8188 push {r4, lr} add r4, r0, #0 bl MOD85_021D81C8 add r0, r4, #0 bl MOD85_021D92E8 add r0, r4, #0 bl MOD85_021DAD20 add r0, r4, #0 bl MOD85_021DAEC0 add r0, r4, #0 bl MOD85_021DB494 pop {r4, pc} .align 2, 0 thumb_func_end MOD85_021D8188 thumb_func_start MOD85_021D81AC MOD85_021D81AC: ; 0x021D81AC push {r4, lr} add r4, r0, #0 bl MOD85_021D931C add r0, r4, #0 bl MOD85_021DAD44 add r0, r4, #0 bl MOD85_021DAEE4 add r0, r4, #0 bl MOD85_021DB600 pop {r4, pc} thumb_func_end MOD85_021D81AC thumb_func_start MOD85_021D81C8 MOD85_021D81C8: ; 0x021D81C8 push {r3, r4, r5, r6, r7, lr} mov r7, #0x15 add r5, r0, #0 mov r4, #0 lsl r6, r7, #0x11 _021D81D2: bl FUN_0201B9EC add r1, r7, #0 bl _s32_div_f add r0, r5, #0 add r0, #0xa8 str r1, [r0] lsl r0, r1, #0x11 sub r1, r6, r0 add r0, r5, #0 add r0, #0x90 str r1, [r0] add r0, r5, #0 add r0, #0x90 mov r1, #0x2a ldr r0, [r0] lsl r1, r1, #0x10 bl _s32_div_f add r0, r5, #0 add r0, #0x90 add r4, r4, #1 add r5, r5, #4 str r1, [r0] cmp r4, #3 blt _021D81D2 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD85_021D81C8 thumb_func_start MOD85_021D820C MOD85_021D820C: ; 0x021D820C push {r3, r4, r5, lr} ldr r4, _021D822C ; =0x021DEF94 add r5, r0, #0 _021D8212: ldr r1, [r5] add r0, r5, #0 lsl r1, r1, #2 ldr r1, [r4, r1] blx r1 cmp r0, #1 beq _021D8212 cmp r0, #2 bne _021D8228 mov r0, #1 pop {r3, r4, r5, pc} _021D8228: mov r0, #0 pop {r3, r4, r5, pc} .align 2, 0 _021D822C: .word 0x021DEF94 thumb_func_end MOD85_021D820C thumb_func_start MOD85_021D8230 MOD85_021D8230: ; 0x021D8230 push {r4, lr} add r4, r0, #0 mov r1, #0 str r1, [r4, #0x64] mov r3, #1 add r2, r4, #0 str r1, [r4, #0x68] lsl r3, r3, #0x10 add r2, #0x8c str r3, [r2] str r1, [r4, #0x74] str r1, [r4, #8] mov r2, #1 str r2, [r4] bl MOD85_021DC094 add r0, r4, #0 mov r1, #1 bl MOD85_021DC094 add r0, r4, #0 mov r1, #2 bl MOD85_021DC094 add r0, r4, #0 bl MOD85_021DB754 add r0, r4, #0 bl MOD85_021DB95C ldr r1, [r4, #0x60] cmp r1, #0 bne _021D827C mov r0, #0x3c str r0, [r4] mov r0, #0x3f str r0, [r4, #4] b _021D8298 _021D827C: cmp r1, #3 bge _021D828A mov r0, #0x3b str r0, [r4] mov r0, #0x3f str r0, [r4, #4] b _021D8298 _021D828A: ldr r0, _021D829C ; =0x0000C350 cmp r1, r0 blt _021D8298 mov r0, #0x3d str r0, [r4] mov r0, #1 str r0, [r4, #4] _021D8298: mov r0, #1 pop {r4, pc} .align 2, 0 _021D829C: .word 0x0000C350 thumb_func_end MOD85_021D8230 thumb_func_start MOD85_021D82A0 MOD85_021D82A0: ; 0x021D82A0 push {r4, lr} add r4, r0, #0 mov r0, #8 bl MOD85_021DBD54 cmp r0, #0 beq _021D82BC add r0, r4, #0 bl MOD85_021DB9A0 mov r0, #0x3f str r0, [r4] mov r0, #0 pop {r4, pc} _021D82BC: mov r0, #1 lsl r0, r0, #0xa bl MOD85_021DBD54 cmp r0, #0 beq _021D82F0 ldr r0, [r4, #0x60] sub r0, r0, #3 str r0, [r4, #0x60] ldr r0, _021D82F4 ; =0x0000045C ldr r1, [r4, r0] add r1, r1, #3 str r1, [r4, r0] mov r0, #2 str r0, [r4] ldr r0, _021D82F8 ; =0x000005ED bl FUN_020054C8 add r0, r4, #0 bl MOD85_021DB9A0 add r0, r4, #0 bl MOD85_021DB76C mov r0, #0 pop {r4, pc} _021D82F0: mov r0, #0 pop {r4, pc} .align 2, 0 _021D82F4: .word 0x0000045C _021D82F8: .word 0x000005ED thumb_func_end MOD85_021D82A0 thumb_func_start MOD85_021D82FC MOD85_021D82FC: ; 0x021D82FC push {r4, lr} add r4, r0, #0 mov r0, #8 bl MOD85_021DBD54 cmp r0, #0 beq _021D8318 ldr r0, [r4, #0x60] add r0, r0, #3 str r0, [r4, #0x60] mov r0, #0x3f str r0, [r4] mov r0, #0 pop {r4, pc} _021D8318: mov r0, #0x12 lsl r0, r0, #6 bl MOD85_021DBD54 cmp r0, #0 beq _021D832C mov r0, #3 str r0, [r4] mov r0, #1 pop {r4, pc} _021D832C: mov r0, #0 pop {r4, pc} thumb_func_end MOD85_021D82FC thumb_func_start MOD85_021D8330 MOD85_021D8330: ; 0x021D8330 push {r4, lr} add r4, r0, #0 bl MOD85_021DA804 mov r0, #0x46 lsl r0, r0, #4 ldr r1, [r4, r0] add r1, r1, #1 str r1, [r4, r0] add r1, r0, #4 ldr r1, [r4, r1] add r0, r0, #4 add r1, r1, #1 str r1, [r4, r0] mov r0, #0 str r0, [r4, #0x70] ldr r1, [r4, #0x74] mov r0, #0x33 tst r0, r1 beq _021D835C mov r0, #1 str r0, [r4, #0x70] _021D835C: mov r0, #0 str r0, [r4, #0x30] ldr r0, [r4, #0x74] cmp r0, #0 beq _021D8398 add r0, r4, #0 bl MOD85_021DA948 cmp r0, #0 bne _021D8378 mov r0, #0x55 mov r1, #4 lsl r0, r0, #2 b _021D838C _021D8378: ldr r0, [r4, #0x74] bl MOD85_021DBF70 mov r1, #0x55 lsl r1, r1, #2 str r0, [r4, r1] mov r0, #0x49 lsl r0, r0, #4 ldr r1, [r4, r0] add r1, r1, #1 _021D838C: str r1, [r4, r0] mov r1, #1 add r0, r4, #0 str r1, [r4, #0x30] bl MOD85_021DAEF4 _021D8398: add r0, r4, #0 mov r1, #0 bl MOD85_021DC094 add r0, r4, #0 mov r1, #1 bl MOD85_021DC094 add r0, r4, #0 mov r1, #2 bl MOD85_021DC094 add r0, r4, #0 bl MOD85_021DB76C add r0, r4, #0 mov r1, #0 bl MOD85_021D9338 add r0, r4, #0 mov r1, #1 bl MOD85_021D9338 add r0, r4, #0 mov r1, #2 bl MOD85_021D9338 add r0, r4, #0 bl MOD85_021DBFA4 mov r1, #1 add r0, r4, #0 str r1, [r4, #0x7c] add r0, #0x80 str r1, [r0] add r0, r4, #0 add r0, #0x84 str r1, [r0] mov r0, #0 str r0, [r4, #0x6c] mov r0, #4 str r0, [r4] ldr r0, _021D83F8 ; =0x000005EE bl FUN_020054C8 mov r0, #1 pop {r4, pc} nop _021D83F8: .word 0x000005EE thumb_func_end MOD85_021D8330 thumb_func_start MOD85_021D83FC MOD85_021D83FC: ; 0x021D83FC mov r1, #1 ldr r2, [r0, #0x6c] lsl r1, r1, #0xc add r2, r2, r1 lsl r1, r1, #3 str r2, [r0, #0x6c] cmp r2, r1 blt _021D8418 mov r1, #0 str r1, [r0, #0x6c] mov r1, #5 str r1, [r0] mov r0, #1 bx lr _021D8418: mov r0, #0 bx lr thumb_func_end MOD85_021D83FC thumb_func_start MOD85_021D841C MOD85_021D841C: ; 0x021D841C push {r4, lr} ldr r1, _021D850C ; =0x021C48B8 add r4, r0, #0 ldr r2, [r1, #0x48] ldr r1, [r4, #0x7c] cmp r1, #1 bne _021D8462 mov r1, #2 lsl r1, r1, #0xa add r3, r2, #0 tst r3, r1 beq _021D8462 mov r2, #2 str r2, [r4, #0x7c] bl MOD85_021DBFB4 add r0, r4, #0 bl MOD85_021DBFDC cmp r0, #0 bne _021D844A mov r0, #0 str r0, [r4, #0x70] _021D844A: add r0, r4, #0 mov r1, #0 bl MOD85_021DC050 add r0, r4, #0 mov r1, #0 bl MOD85_021D9350 ldr r0, _021D8510 ; =0x00000626 bl FUN_020054C8 b _021D84EA _021D8462: add r0, r4, #0 add r0, #0x80 ldr r0, [r0] cmp r0, #1 bne _021D84A6 mov r1, #2 add r0, r2, #0 tst r0, r1 beq _021D84A6 add r0, r4, #0 add r0, #0x80 str r1, [r0] add r0, r4, #0 bl MOD85_021DBFB4 add r0, r4, #0 bl MOD85_021DBFDC cmp r0, #0 bne _021D848E mov r0, #0 str r0, [r4, #0x70] _021D848E: add r0, r4, #0 mov r1, #1 bl MOD85_021DC050 add r0, r4, #0 mov r1, #1 bl MOD85_021D9350 ldr r0, _021D8510 ; =0x00000626 bl FUN_020054C8 b _021D84EA _021D84A6: add r0, r4, #0 add r0, #0x84 ldr r0, [r0] cmp r0, #1 bne _021D84EA mov r1, #1 add r0, r2, #0 tst r0, r1 beq _021D84EA add r0, r4, #0 mov r2, #2 add r0, #0x84 str r2, [r0] add r0, r4, #0 bl MOD85_021DBFB4 add r0, r4, #0 bl MOD85_021DBFDC cmp r0, #0 bne _021D84D4 mov r0, #0 str r0, [r4, #0x70] _021D84D4: add r0, r4, #0 mov r1, #2 bl MOD85_021DC050 add r0, r4, #0 mov r1, #2 bl MOD85_021D9350 ldr r0, _021D8510 ; =0x00000626 bl FUN_020054C8 _021D84EA: ldr r0, [r4, #0x7c] cmp r0, #2 bne _021D8508 add r0, r4, #0 add r0, #0x80 ldr r0, [r0] cmp r0, #2 bne _021D8508 add r0, r4, #0 add r0, #0x84 ldr r0, [r0] cmp r0, #2 bne _021D8508 mov r0, #6 str r0, [r4] _021D8508: mov r0, #0 pop {r4, pc} .align 2, 0 _021D850C: .word 0x021C48B8 _021D8510: .word 0x00000626 thumb_func_end MOD85_021D841C thumb_func_start MOD85_021D8514 MOD85_021D8514: ; 0x021D8514 push {r4, lr} mov r1, #0 add r4, r0, #0 bl MOD85_021D9360 cmp r0, #1 beq _021D853A add r0, r4, #0 mov r1, #1 bl MOD85_021D9360 cmp r0, #1 beq _021D853A add r0, r4, #0 mov r1, #2 bl MOD85_021D9360 cmp r0, #1 bne _021D853E _021D853A: mov r0, #0 pop {r4, pc} _021D853E: add r0, r4, #0 bl MOD85_021DB754 mov r0, #7 str r0, [r4] mov r0, #1 pop {r4, pc} thumb_func_end MOD85_021D8514 thumb_func_start MOD85_021D854C MOD85_021D854C: ; 0x021D854C push {r4, lr} add r4, r0, #0 add r2, r4, #0 ldr r1, [r4, #0x74] add r2, #0x48 bl MOD85_021DBED4 str r0, [r4, #0x44] cmp r0, #6 bne _021D8584 ldr r1, [r4, #0x74] mov r0, #0xaa tst r0, r1 beq _021D8570 mov r0, #0x10 str r0, [r4] mov r0, #1 pop {r4, pc} _021D8570: cmp r1, #0 beq _021D857C mov r0, #0xa str r0, [r4] mov r0, #1 pop {r4, pc} _021D857C: mov r0, #8 str r0, [r4] mov r0, #1 pop {r4, pc} _021D8584: ldr r2, [r4, #0x74] mov r1, #0xaa tst r1, r2 beq _021D859E mov r0, #2 tst r0, r2 beq _021D8596 mov r0, #0x15 b _021D8598 _021D8596: mov r0, #0x13 _021D8598: str r0, [r4] mov r0, #1 pop {r4, pc} _021D859E: cmp r0, #2 bne _021D85AA mov r0, #0xe str r0, [r4] mov r0, #1 pop {r4, pc} _021D85AA: mov r0, #0xc str r0, [r4] mov r0, #1 pop {r4, pc} .align 2, 0 thumb_func_end MOD85_021D854C thumb_func_start MOD85_021D85B4 MOD85_021D85B4: ; 0x021D85B4 push {r4, lr} add r4, r0, #0 bl MOD85_021DB754 mov r0, #0 str r0, [r4, #0x6c] mov r0, #9 str r0, [r4] mov r0, #1 pop {r4, pc} thumb_func_end MOD85_021D85B4 thumb_func_start MOD85_021D85C8 MOD85_021D85C8: ; 0x021D85C8 mov r1, #1 ldr r2, [r0, #0x6c] lsl r1, r1, #0xc add r2, r2, r1 lsl r1, r1, #3 str r2, [r0, #0x6c] cmp r2, r1 blt _021D85DE mov r1, #0 str r1, [r0, #0x6c] str r1, [r0] _021D85DE: mov r0, #0 bx lr .align 2, 0 thumb_func_end MOD85_021D85C8 thumb_func_start MOD85_021D85E4 MOD85_021D85E4: ; 0x021D85E4 push {r4, lr} add r4, r0, #0 bl MOD85_021DB754 add r0, r4, #0 mov r1, #2 bl MOD85_021DAEF4 mov r0, #0xb str r0, [r4] mov r0, #0 pop {r4, pc} thumb_func_end MOD85_021D85E4 thumb_func_start MOD85_021D85FC MOD85_021D85FC: ; 0x021D85FC push {r4, lr} add r4, r0, #0 bl MOD85_021DAF08 cmp r0, #1 bne _021D8618 add r0, r4, #0 mov r1, #0 bl MOD85_021DAEF4 mov r0, #0 str r0, [r4] mov r0, #1 pop {r4, pc} _021D8618: mov r0, #0 pop {r4, pc} thumb_func_end MOD85_021D85FC thumb_func_start MOD85_021D861C MOD85_021D861C: ; 0x021D861C push {r4, lr} add r4, r0, #0 bl MOD85_021DC0D8 ldr r1, _021D8648 ; =0x00000458 str r0, [r4, #0x64] ldr r2, [r4, r1] add r0, r2, r0 str r0, [r4, r1] mov r0, #0 str r0, [r4, #0x6c] mov r0, #0xd str r0, [r4] add r0, r4, #0 bl MOD85_021DAD54 add r0, r4, #0 mov r1, #0xb bl MOD85_021DAEF4 mov r0, #0 pop {r4, pc} .align 2, 0 _021D8648: .word 0x00000458 thumb_func_end MOD85_021D861C thumb_func_start MOD85_021D864C MOD85_021D864C: ; 0x021D864C push {r4, lr} add r4, r0, #0 mov r1, #1 ldr r2, [r4, #0x6c] lsl r1, r1, #0xc add r2, r2, r1 mov r1, #0x1e lsl r1, r1, #0xc str r2, [r4, #0x6c] cmp r2, r1 bne _021D866A mov r1, #2 bl MOD85_021DAEF4 b _021D8690 _021D866A: ble _021D8690 bl MOD85_021DAD68 cmp r0, #1 bne _021D8690 add r0, r4, #0 bl MOD85_021DAF08 cmp r0, #1 bne _021D8690 add r0, r4, #0 mov r1, #0 bl MOD85_021DAEF4 mov r0, #0 str r0, [r4, #0x6c] str r0, [r4] mov r0, #1 pop {r4, pc} _021D8690: mov r0, #0 pop {r4, pc} thumb_func_end MOD85_021D864C thumb_func_start MOD85_021D8694 MOD85_021D8694: ; 0x021D8694 push {r4, lr} add r4, r0, #0 mov r1, #0 str r1, [r4, #0x64] str r1, [r4, #0x6c] mov r1, #0xf str r1, [r4] bl MOD85_021DAD54 add r0, r4, #0 mov r1, #0xb bl MOD85_021DAEF4 mov r0, #0 pop {r4, pc} .align 2, 0 thumb_func_end MOD85_021D8694 thumb_func_start MOD85_021D86B4 MOD85_021D86B4: ; 0x021D86B4 push {r4, lr} add r4, r0, #0 mov r1, #1 ldr r2, [r4, #0x6c] lsl r1, r1, #0xc add r2, r2, r1 mov r1, #0xf lsl r1, r1, #0xc str r2, [r4, #0x6c] cmp r2, r1 bne _021D86D2 mov r1, #2 bl MOD85_021DAEF4 b _021D86FA _021D86D2: ble _021D86FA bl MOD85_021DAD68 cmp r0, #1 bne _021D86FA add r0, r4, #0 bl MOD85_021DAF08 cmp r0, #1 bne _021D86FA add r0, r4, #0 mov r1, #0 bl MOD85_021DAEF4 mov r0, #0 str r0, [r4, #0x6c] mov r0, #3 str r0, [r4] mov r0, #1 pop {r4, pc} _021D86FA: mov r0, #0 pop {r4, pc} .align 2, 0 thumb_func_end MOD85_021D86B4 thumb_func_start MOD85_021D8700 MOD85_021D8700: ; 0x021D8700 push {r4, lr} add r4, r0, #0 bl MOD85_021DB754 add r0, r4, #0 bl MOD85_021DA96C add r0, r4, #0 bl MOD85_021DAA2C add r0, r4, #0 mov r1, #0xb bl MOD85_021DAEF4 mov r0, #0 str r0, [r4, #0x6c] mov r1, #0x11 str r1, [r4] pop {r4, pc} .align 2, 0 thumb_func_end MOD85_021D8700 thumb_func_start MOD85_021D8728 MOD85_021D8728: ; 0x021D8728 push {r4, lr} add r4, r0, #0 mov r1, #1 ldr r2, [r4, #0x6c] lsl r1, r1, #0xc add r2, r2, r1 lsl r1, r1, #3 str r2, [r4, #0x6c] cmp r2, r1 blt _021D874E mov r1, #3 bl MOD85_021DAEF4 add r0, r4, #0 mov r1, #1 bl MOD85_021D7FF4 mov r0, #0x12 str r0, [r4] _021D874E: mov r0, #0 pop {r4, pc} .align 2, 0 thumb_func_end MOD85_021D8728 thumb_func_start MOD85_021D8754 MOD85_021D8754: ; 0x021D8754 push {r4, lr} add r4, r0, #0 bl MOD85_021DAF08 cmp r0, #1 bne _021D8768 mov r0, #0x17 str r0, [r4] mov r0, #1 pop {r4, pc} _021D8768: mov r0, #0 pop {r4, pc} thumb_func_end MOD85_021D8754 thumb_func_start MOD85_021D876C MOD85_021D876C: ; 0x021D876C push {r4, lr} add r4, r0, #0 bl MOD85_021DC0D8 str r0, [r4, #0x64] mov r0, #0 str r0, [r4, #0x6c] mov r0, #0x14 str r0, [r4] add r0, r4, #0 bl MOD85_021DAD54 add r0, r4, #0 bl MOD85_021DA96C add r0, r4, #0 bl MOD85_021DAA2C add r0, r4, #0 mov r1, #0xb bl MOD85_021DAEF4 mov r0, #0 pop {r4, pc} thumb_func_end MOD85_021D876C thumb_func_start MOD85_021D879C MOD85_021D879C: ; 0x021D879C push {r4, lr} add r4, r0, #0 mov r1, #1 ldr r2, [r4, #0x6c] lsl r1, r1, #0xc add r2, r2, r1 mov r1, #0x1e lsl r1, r1, #0xc str r2, [r4, #0x6c] cmp r2, r1 bne _021D87C2 mov r1, #1 bl MOD85_021D7FF4 add r0, r4, #0 mov r1, #3 bl MOD85_021DAEF4 b _021D87E2 _021D87C2: blt _021D87E2 bl MOD85_021DAD68 cmp r0, #1 bne _021D87E2 add r0, r4, #0 bl MOD85_021DAF08 cmp r0, #1 bne _021D87E2 mov r0, #0 str r0, [r4, #0x6c] mov r0, #0x17 str r0, [r4] mov r0, #1 pop {r4, pc} _021D87E2: mov r0, #0 pop {r4, pc} .align 2, 0 thumb_func_end MOD85_021D879C thumb_func_start MOD85_021D87E8 MOD85_021D87E8: ; 0x021D87E8 push {r4, lr} add r4, r0, #0 mov r1, #0 str r1, [r4, #0x6c] mov r1, #0x16 str r1, [r4] bl MOD85_021DAD54 add r0, r4, #0 mov r1, #0xb bl MOD85_021DAEF4 add r0, r4, #0 bl MOD85_021DA96C add r0, r4, #0 bl MOD85_021DAA2C mov r0, #0 pop {r4, pc} thumb_func_end MOD85_021D87E8 thumb_func_start MOD85_021D8810 MOD85_021D8810: ; 0x021D8810 push {r4, lr} add r4, r0, #0 mov r1, #1 ldr r2, [r4, #0x6c] lsl r1, r1, #0xc add r3, r2, r1 lsl r2, r1, #3 str r3, [r4, #0x6c] cmp r3, r2 bne _021D8834 mov r1, #3 bl MOD85_021DAEF4 add r0, r4, #0 mov r1, #1 bl MOD85_021D7FF4 b _021D8858 _021D8834: lsl r1, r1, #3 cmp r3, r1 blt _021D8858 bl MOD85_021DAD68 cmp r0, #1 bne _021D8858 add r0, r4, #0 bl MOD85_021DAF08 cmp r0, #1 bne _021D8858 mov r0, #0 str r0, [r4, #0x6c] mov r0, #0x18 str r0, [r4] mov r0, #1 pop {r4, pc} _021D8858: mov r0, #0 pop {r4, pc} thumb_func_end MOD85_021D8810 thumb_func_start MOD85_021D885C MOD85_021D885C: ; 0x021D885C push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x50] cmp r0, #6 blt _021D886A bl ErrorHandling _021D886A: mov r0, #0x19 str r0, [r4] mov r0, #1 pop {r4, pc} .align 2, 0 thumb_func_end MOD85_021D885C thumb_func_start MOD85_021D8874 MOD85_021D8874: ; 0x021D8874 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x50] cmp r0, #6 blt _021D8882 bl ErrorHandling _021D8882: mov r0, #0x1c str r0, [r4] mov r0, #1 pop {r4, pc} .align 2, 0 thumb_func_end MOD85_021D8874 thumb_func_start MOD85_021D888C MOD85_021D888C: ; 0x021D888C push {r4, lr} add r4, r0, #0 mov r1, #0 str r1, [r4, #0x64] str r1, [r4, #0x68] mov r2, #0x1a str r2, [r4] str r1, [r4, #0x74] bl MOD85_021DC094 add r0, r4, #0 mov r1, #1 bl MOD85_021DC094 add r0, r4, #0 mov r1, #2 bl MOD85_021DC094 add r0, r4, #0 bl MOD85_021DB754 add r0, r4, #0 bl MOD85_021DB95C add r0, r4, #0 mov r1, #7 bl MOD85_021DAEF4 ldr r1, [r4, #0x60] cmp r1, #0 bne _021D88D4 mov r0, #0x3c str r0, [r4] mov r0, #0x3f str r0, [r4, #4] b _021D88F0 _021D88D4: cmp r1, #3 bge _021D88E2 mov r0, #0x3b str r0, [r4] mov r0, #0x3f str r0, [r4, #4] b _021D88F0 _021D88E2: ldr r0, _021D88F4 ; =0x0000C350 cmp r1, r0 blt _021D88F0 mov r0, #0x3d str r0, [r4] mov r0, #0x1a str r0, [r4, #4] _021D88F0: mov r0, #1 pop {r4, pc} .align 2, 0 _021D88F4: .word 0x0000C350 thumb_func_end MOD85_021D888C thumb_func_start MOD85_021D88F8 MOD85_021D88F8: ; 0x021D88F8 push {r4, lr} add r4, r0, #0 mov r0, #8 bl MOD85_021DBD54 cmp r0, #0 beq _021D8914 mov r0, #0x3f str r0, [r4] add r0, r4, #0 bl MOD85_021DB9A0 mov r0, #0 pop {r4, pc} _021D8914: mov r0, #1 lsl r0, r0, #0xa bl MOD85_021DBD54 cmp r0, #0 beq _021D8948 ldr r0, [r4, #0x60] sub r0, r0, #3 str r0, [r4, #0x60] ldr r0, _021D894C ; =0x0000045C ldr r1, [r4, r0] add r1, r1, #3 str r1, [r4, r0] mov r0, #0x1b str r0, [r4] ldr r0, _021D8950 ; =0x000005ED bl FUN_020054C8 add r0, r4, #0 bl MOD85_021DB9A0 add r0, r4, #0 bl MOD85_021DB76C mov r0, #0 pop {r4, pc} _021D8948: mov r0, #0 pop {r4, pc} .align 2, 0 _021D894C: .word 0x0000045C _021D8950: .word 0x000005ED thumb_func_end MOD85_021D88F8 thumb_func_start MOD85_021D8954 MOD85_021D8954: ; 0x021D8954 push {r4, lr} add r4, r0, #0 mov r0, #8 bl MOD85_021DBD54 cmp r0, #0 beq _021D8970 ldr r0, [r4, #0x60] add r0, r0, #3 str r0, [r4, #0x60] mov r0, #0x3f str r0, [r4] mov r0, #0 pop {r4, pc} _021D8970: mov r0, #0x12 lsl r0, r0, #6 bl MOD85_021DBD54 cmp r0, #0 beq _021D8984 mov r0, #0x1c str r0, [r4] mov r0, #1 pop {r4, pc} _021D8984: mov r0, #0 pop {r4, pc} thumb_func_end MOD85_021D8954 thumb_func_start MOD85_021D8988 MOD85_021D8988: ; 0x021D8988 push {r4, lr} add r4, r0, #0 bl MOD85_021DAAF0 mov r1, #0x46 lsl r1, r1, #4 ldr r0, [r4, r1] add r0, r0, #1 str r0, [r4, r1] add r0, r1, #0 add r0, #8 ldr r0, [r4, r0] add r1, #8 add r0, r0, #1 str r0, [r4, r1] mov r0, #0 str r0, [r4, #0x70] ldr r1, [r4, #0x74] mov r0, #0x33 tst r0, r1 beq _021D89B6 mov r0, #1 str r0, [r4, #0x70] _021D89B6: mov r0, #0 str r0, [r4, #0x30] ldr r0, [r4, #0x74] cmp r0, #0 beq _021D89C4 mov r0, #1 str r0, [r4, #0x30] _021D89C4: add r0, r4, #0 mov r1, #0 bl MOD85_021DC094 add r0, r4, #0 mov r1, #1 bl MOD85_021DC094 add r0, r4, #0 mov r1, #2 bl MOD85_021DC094 add r0, r4, #0 bl MOD85_021DB76C add r0, r4, #0 mov r1, #0 bl MOD85_021D9338 add r0, r4, #0 mov r1, #1 bl MOD85_021D9338 add r0, r4, #0 mov r1, #2 bl MOD85_021D9338 add r0, r4, #0 bl MOD85_021DBFA4 add r0, r4, #0 mov r1, #9 bl MOD85_021DAEF4 mov r1, #1 add r0, r4, #0 str r1, [r4, #0x7c] add r0, #0x80 str r1, [r0] add r0, r4, #0 add r0, #0x84 str r1, [r0] mov r0, #0 str r0, [r4, #0x6c] mov r0, #0x1d str r0, [r4] ldr r0, _021D8A2C ; =0x000005EE bl FUN_020054C8 mov r0, #1 pop {r4, pc} nop _021D8A2C: .word 0x000005EE thumb_func_end MOD85_021D8988 thumb_func_start MOD85_021D8A30 MOD85_021D8A30: ; 0x021D8A30 mov r1, #1 ldr r2, [r0, #0x6c] lsl r1, r1, #0xc add r2, r2, r1 lsl r1, r1, #3 str r2, [r0, #0x6c] cmp r2, r1 blt _021D8A4C mov r1, #0 str r1, [r0, #0x6c] mov r1, #0x1e str r1, [r0] mov r0, #1 bx lr _021D8A4C: mov r0, #0 bx lr thumb_func_end MOD85_021D8A30 thumb_func_start MOD85_021D8A50 MOD85_021D8A50: ; 0x021D8A50 push {r4, lr} ldr r1, _021D8B40 ; =0x021C48B8 add r4, r0, #0 ldr r2, [r1, #0x48] ldr r1, [r4, #0x7c] cmp r1, #1 bne _021D8A96 mov r1, #2 lsl r1, r1, #0xa add r3, r2, #0 tst r3, r1 beq _021D8A96 mov r2, #2 str r2, [r4, #0x7c] bl MOD85_021DBFB4 add r0, r4, #0 bl MOD85_021DBFDC cmp r0, #0 bne _021D8A7E mov r0, #0 str r0, [r4, #0x70] _021D8A7E: add r0, r4, #0 mov r1, #0 bl MOD85_021DC050 add r0, r4, #0 mov r1, #0 bl MOD85_021D9350 ldr r0, _021D8B44 ; =0x00000626 bl FUN_020054C8 b _021D8B1E _021D8A96: add r0, r4, #0 add r0, #0x80 ldr r0, [r0] cmp r0, #1 bne _021D8ADA mov r1, #2 add r0, r2, #0 tst r0, r1 beq _021D8ADA add r0, r4, #0 add r0, #0x80 str r1, [r0] add r0, r4, #0 bl MOD85_021DBFB4 add r0, r4, #0 bl MOD85_021DBFDC cmp r0, #0 bne _021D8AC2 mov r0, #0 str r0, [r4, #0x70] _021D8AC2: add r0, r4, #0 mov r1, #1 bl MOD85_021DC050 add r0, r4, #0 mov r1, #1 bl MOD85_021D9350 ldr r0, _021D8B44 ; =0x00000626 bl FUN_020054C8 b _021D8B1E _021D8ADA: add r0, r4, #0 add r0, #0x84 ldr r0, [r0] cmp r0, #1 bne _021D8B1E mov r1, #1 add r0, r2, #0 tst r0, r1 beq _021D8B1E add r0, r4, #0 mov r2, #2 add r0, #0x84 str r2, [r0] add r0, r4, #0 bl MOD85_021DBFB4 add r0, r4, #0 bl MOD85_021DBFDC cmp r0, #0 bne _021D8B08 mov r0, #0 str r0, [r4, #0x70] _021D8B08: add r0, r4, #0 mov r1, #2 bl MOD85_021DC050 add r0, r4, #0 mov r1, #2 bl MOD85_021D9350 ldr r0, _021D8B44 ; =0x00000626 bl FUN_020054C8 _021D8B1E: ldr r0, [r4, #0x7c] cmp r0, #2 bne _021D8B3C add r0, r4, #0 add r0, #0x80 ldr r0, [r0] cmp r0, #2 bne _021D8B3C add r0, r4, #0 add r0, #0x84 ldr r0, [r0] cmp r0, #2 bne _021D8B3C mov r0, #0x1f str r0, [r4] _021D8B3C: mov r0, #0 pop {r4, pc} .align 2, 0 _021D8B40: .word 0x021C48B8 _021D8B44: .word 0x00000626 thumb_func_end MOD85_021D8A50 thumb_func_start MOD85_021D8B48 MOD85_021D8B48: ; 0x021D8B48 push {r4, lr} mov r1, #0 add r4, r0, #0 bl MOD85_021D9360 cmp r0, #1 beq _021D8B6E add r0, r4, #0 mov r1, #1 bl MOD85_021D9360 cmp r0, #1 beq _021D8B6E add r0, r4, #0 mov r1, #2 bl MOD85_021D9360 cmp r0, #1 bne _021D8B72 _021D8B6E: mov r0, #0 pop {r4, pc} _021D8B72: add r0, r4, #0 bl MOD85_021DB754 mov r0, #0x20 str r0, [r4] mov r0, #1 pop {r4, pc} thumb_func_end MOD85_021D8B48 thumb_func_start MOD85_021D8B80 MOD85_021D8B80: ; 0x021D8B80 push {r4, lr} add r4, r0, #0 add r2, r4, #0 ldr r1, [r4, #0x74] add r2, #0x48 bl MOD85_021DBED4 str r0, [r4, #0x44] cmp r0, #6 bne _021D8B9C mov r0, #0x21 str r0, [r4] mov r0, #1 pop {r4, pc} _021D8B9C: mov r1, #3 ldr r2, [r4, #0x74] lsl r1, r1, #8 tst r1, r2 beq _021D8BAE mov r0, #0x27 str r0, [r4] mov r0, #1 pop {r4, pc} _021D8BAE: cmp r0, #2 bne _021D8BBA mov r0, #0x25 str r0, [r4] mov r0, #1 pop {r4, pc} _021D8BBA: mov r0, #0x23 str r0, [r4] mov r0, #1 pop {r4, pc} .align 2, 0 thumb_func_end MOD85_021D8B80 thumb_func_start MOD85_021D8BC4 MOD85_021D8BC4: ; 0x021D8BC4 push {r4, lr} add r4, r0, #0 bl MOD85_021DB754 add r0, r4, #0 mov r1, #7 bl MOD85_021DAEF4 mov r0, #0 str r0, [r4, #0x6c] mov r0, #0x22 str r0, [r4] mov r0, #1 pop {r4, pc} thumb_func_end MOD85_021D8BC4 thumb_func_start MOD85_021D8BE0 MOD85_021D8BE0: ; 0x021D8BE0 mov r1, #1 ldr r2, [r0, #0x6c] lsl r1, r1, #0xc add r2, r2, r1 lsl r1, r1, #3 str r2, [r0, #0x6c] cmp r2, r1 blt _021D8BFC mov r1, #0 str r1, [r0, #0x6c] mov r1, #0x19 str r1, [r0] mov r0, #1 bx lr _021D8BFC: mov r0, #0 bx lr thumb_func_end MOD85_021D8BE0 thumb_func_start MOD85_021D8C00 MOD85_021D8C00: ; 0x021D8C00 push {r4, lr} add r4, r0, #0 bl MOD85_021DC0D8 ldr r1, _021D8C2C ; =0x00000458 str r0, [r4, #0x64] ldr r2, [r4, r1] add r0, r2, r0 str r0, [r4, r1] mov r0, #0 str r0, [r4, #0x6c] mov r0, #0x24 str r0, [r4] add r0, r4, #0 bl MOD85_021DAD54 add r0, r4, #0 mov r1, #0xa bl MOD85_021DAEF4 mov r0, #0 pop {r4, pc} .align 2, 0 _021D8C2C: .word 0x00000458 thumb_func_end MOD85_021D8C00 thumb_func_start MOD85_021D8C30 MOD85_021D8C30: ; 0x021D8C30 push {r4, lr} add r4, r0, #0 bl MOD85_021DAD68 cmp r0, #1 bne _021D8C4C add r0, r4, #0 mov r1, #7 bl MOD85_021DAEF4 mov r0, #0x19 str r0, [r4] mov r0, #1 pop {r4, pc} _021D8C4C: mov r0, #0 pop {r4, pc} thumb_func_end MOD85_021D8C30 thumb_func_start MOD85_021D8C50 MOD85_021D8C50: ; 0x021D8C50 push {r4, lr} add r4, r0, #0 mov r1, #0 str r1, [r4, #0x64] str r1, [r4, #0x6c] mov r1, #0x26 str r1, [r4] bl MOD85_021DAD54 add r0, r4, #0 mov r1, #0xa bl MOD85_021DAEF4 mov r0, #0 pop {r4, pc} .align 2, 0 thumb_func_end MOD85_021D8C50 thumb_func_start MOD85_021D8C70 MOD85_021D8C70: ; 0x021D8C70 push {r4, lr} add r4, r0, #0 mov r1, #1 ldr r2, [r4, #0x6c] lsl r1, r1, #0xc add r2, r2, r1 mov r1, #0xf lsl r1, r1, #0xc str r2, [r4, #0x6c] cmp r2, r1 ble _021D8CA8 bl MOD85_021DAD68 cmp r0, #1 bne _021D8CA8 add r0, r4, #0 mov r1, #7 bl MOD85_021DAEF4 add r0, r4, #0 bl MOD85_021DB754 mov r0, #0 str r0, [r4, #0x6c] mov r0, #0x1c str r0, [r4] mov r0, #1 pop {r4, pc} _021D8CA8: mov r0, #0 pop {r4, pc} thumb_func_end MOD85_021D8C70 thumb_func_start MOD85_021D8CAC MOD85_021D8CAC: ; 0x021D8CAC push {r4, lr} add r4, r0, #0 bl MOD85_021DC0D8 ldr r1, _021D8CF0 ; =0x00000458 str r0, [r4, #0x64] ldr r2, [r4, r1] add r0, r2, r0 str r0, [r4, r1] mov r0, #0 str r0, [r4, #0x6c] mov r0, #0x28 str r0, [r4] add r0, r4, #0 bl MOD85_021DAD54 add r0, r4, #0 mov r1, #0xa bl MOD85_021DAEF4 add r0, r4, #0 bl MOD85_021DBB0C add r0, r4, #0 mov r1, #2 bl MOD85_021D7FF4 add r0, r4, #0 bl MOD85_021DE264 ldr r1, _021D8CF4 ; =0x00000454 str r0, [r4, r1] mov r0, #0 pop {r4, pc} .align 2, 0 _021D8CF0: .word 0x00000458 _021D8CF4: .word 0x00000454 thumb_func_end MOD85_021D8CAC thumb_func_start MOD85_021D8CF8 MOD85_021D8CF8: ; 0x021D8CF8 push {r4, lr} add r4, r0, #0 bl MOD85_021DAD68 cmp r0, #1 bne _021D8D1C ldr r0, _021D8D20 ; =0x00000454 ldr r0, [r4, r0] bl FUN_02064520 add r0, r4, #0 mov r1, #7 bl MOD85_021DAEF4 mov r0, #0x29 str r0, [r4] mov r0, #1 pop {r4, pc} _021D8D1C: mov r0, #0 pop {r4, pc} .align 2, 0 _021D8D20: .word 0x00000454 thumb_func_end MOD85_021D8CF8 thumb_func_start MOD85_021D8D24 MOD85_021D8D24: ; 0x021D8D24 push {r4, lr} add r4, r0, #0 bl MOD85_021DAF10 mov r0, #0 str r0, [r4, #0x1c] str r0, [r4, #0x14] mov r0, #1 str r0, [r4, #8] mov r1, #0x2a str r1, [r4] pop {r4, pc} thumb_func_end MOD85_021D8D24 thumb_func_start MOD85_021D8D3C MOD85_021D8D3C: ; 0x021D8D3C push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0xc] add r0, r0, #1 str r0, [r4, #0xc] ldr r0, [r4, #0x1c] add r1, r0, #1 ldr r0, _021D8D84 ; =0x000003E7 str r1, [r4, #0x1c] cmp r1, r0 bls _021D8D54 str r0, [r4, #0x1c] _021D8D54: ldr r1, [r4, #0x1c] add r0, r4, #0 bl MOD85_021DE118 mov r0, #0x10 str r0, [r4, #0x10] mov r0, #1 str r0, [r4, #8] mov r0, #0 str r0, [r4, #0x24] str r0, [r4, #0x28] str r0, [r4, #0x2c] add r0, r4, #0 bl MOD85_021DAC44 cmp r0, #0 bne _021D8D7A mov r0, #1 str r0, [r4, #0x2c] _021D8D7A: mov r0, #0x2b str r0, [r4] mov r0, #1 pop {r4, pc} nop _021D8D84: .word 0x000003E7 thumb_func_end MOD85_021D8D3C thumb_func_start MOD85_021D8D88 MOD85_021D8D88: ; 0x021D8D88 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x10] sub r0, r0, #1 str r0, [r4, #0x10] cmp r0, #1 bge _021D8D9A bl ErrorHandling _021D8D9A: add r0, r4, #0 mov r1, #0 bl MOD85_021DC094 add r0, r4, #0 mov r1, #1 bl MOD85_021DC094 add r0, r4, #0 mov r1, #2 bl MOD85_021DC094 add r0, r4, #0 bl MOD85_021DB754 add r0, r4, #0 bl MOD85_021DB95C add r0, r4, #0 mov r1, #7 bl MOD85_021DAEF4 mov r2, #0x2c str r2, [r4] ldr r1, [r4, #0x60] cmp r1, #0 bne _021D8DDA mov r0, #0x3c str r0, [r4] mov r0, #0x3f str r0, [r4, #4] b _021D8DF4 _021D8DDA: cmp r1, #1 bge _021D8DE8 mov r0, #0x3c str r0, [r4] mov r0, #0x3f str r0, [r4, #4] b _021D8DF4 _021D8DE8: ldr r0, _021D8DF8 ; =0x0000C350 cmp r1, r0 blt _021D8DF4 mov r0, #0x3d str r0, [r4] str r2, [r4, #4] _021D8DF4: mov r0, #1 pop {r4, pc} .align 2, 0 _021D8DF8: .word 0x0000C350 thumb_func_end MOD85_021D8D88 thumb_func_start MOD85_021D8DFC MOD85_021D8DFC: ; 0x021D8DFC push {r4, lr} add r4, r0, #0 mov r0, #8 bl MOD85_021DBD54 cmp r0, #0 beq _021D8E12 mov r0, #0x3f str r0, [r4] mov r0, #0 pop {r4, pc} _021D8E12: mov r0, #1 lsl r0, r0, #0xa bl MOD85_021DBD54 cmp r0, #0 beq _021D8E58 ldr r0, [r4, #0x60] sub r0, r0, #1 str r0, [r4, #0x60] ldr r0, [r4, #0x14] sub r0, r0, #1 str r0, [r4, #0x14] ldr r0, _021D8E5C ; =0x0000045C ldr r1, [r4, r0] add r1, r1, #1 str r1, [r4, r0] ldr r0, [r4, #0x14] cmp r0, #0 bge _021D8E3C mov r0, #0 str r0, [r4, #0x14] _021D8E3C: mov r0, #0x2d str r0, [r4] ldr r0, _021D8E60 ; =0x000005ED bl FUN_020054C8 add r0, r4, #0 bl MOD85_021DB9A0 add r0, r4, #0 mov r1, #0 bl MOD85_021DB714 mov r0, #0 pop {r4, pc} _021D8E58: mov r0, #0 pop {r4, pc} .align 2, 0 _021D8E5C: .word 0x0000045C _021D8E60: .word 0x000005ED thumb_func_end MOD85_021D8DFC thumb_func_start MOD85_021D8E64 MOD85_021D8E64: ; 0x021D8E64 push {r4, lr} add r4, r0, #0 mov r0, #8 bl MOD85_021DBD54 cmp r0, #0 beq _021D8E80 ldr r0, [r4, #0x60] add r0, r0, #1 str r0, [r4, #0x60] mov r0, #0x3f str r0, [r4] mov r0, #0 pop {r4, pc} _021D8E80: mov r0, #0x12 lsl r0, r0, #6 bl MOD85_021DBD54 cmp r0, #0 beq _021D8E94 mov r0, #0x2e str r0, [r4] mov r0, #1 pop {r4, pc} _021D8E94: mov r0, #0 pop {r4, pc} thumb_func_end MOD85_021D8E64 thumb_func_start MOD85_021D8E98 MOD85_021D8E98: ; 0x021D8E98 push {r4, lr} mov r2, #0x46 add r4, r0, #0 lsl r2, r2, #4 ldr r1, [r4, r2] add r1, r1, #1 str r1, [r4, r2] add r1, r2, #0 add r1, #0xc ldr r1, [r4, r1] add r2, #0xc add r1, r1, #1 str r1, [r4, r2] mov r1, #1 str r1, [r4, #0x74] str r1, [r4, #0x30] str r1, [r4, #0x70] mov r1, #0 bl MOD85_021DC094 add r0, r4, #0 mov r1, #1 bl MOD85_021DC094 add r0, r4, #0 mov r1, #2 bl MOD85_021DC094 add r0, r4, #0 mov r1, #0 bl MOD85_021DB714 add r0, r4, #0 mov r1, #0 bl MOD85_021D9338 add r0, r4, #0 mov r1, #1 bl MOD85_021D9338 add r0, r4, #0 mov r1, #2 bl MOD85_021D9338 add r0, r4, #0 bl MOD85_021DBFA4 add r0, r4, #0 bl MOD85_021DAD0C mov r1, #1 add r0, r4, #0 str r1, [r4, #0x7c] add r0, #0x80 str r1, [r0] add r0, r4, #0 add r0, #0x84 str r1, [r0] mov r0, #0 str r0, [r4, #0x6c] mov r0, #0x2f str r0, [r4] ldr r0, _021D8F80 ; =0x000005EE bl FUN_020054C8 ldr r0, [r4, #0x24] cmp r0, #0 bne _021D8F4C ldr r0, [r4, #0x28] cmp r0, #0 bne _021D8F4C add r0, r4, #0 bl MOD85_021DAC20 cmp r0, #1 bne _021D8F3E mov r0, #1 str r0, [r4, #0x28] mov r0, #0x13 lsl r0, r0, #6 ldr r1, [r4, r0] add r1, r1, #1 str r1, [r4, r0] _021D8F3E: ldr r0, [r4, #0x28] cmp r0, #1 bne _021D8F4C add r0, r4, #0 mov r1, #1 bl MOD85_021DBB54 _021D8F4C: ldr r0, [r4, #0x24] cmp r0, #0 bne _021D8F7C ldr r0, [r4, #0x28] cmp r0, #0 bne _021D8F7C add r0, r4, #0 bl MOD85_021DABFC cmp r0, #1 bne _021D8F6E mov r0, #1 str r0, [r4, #0x24] ldr r0, _021D8F84 ; =0x000004BC ldr r1, [r4, r0] add r1, r1, #1 str r1, [r4, r0] _021D8F6E: ldr r0, [r4, #0x24] cmp r0, #1 bne _021D8F7C add r0, r4, #0 mov r1, #0 bl MOD85_021DBB54 _021D8F7C: mov r0, #1 pop {r4, pc} .align 2, 0 _021D8F80: .word 0x000005EE _021D8F84: .word 0x000004BC thumb_func_end MOD85_021D8E98 thumb_func_start MOD85_021D8F88 MOD85_021D8F88: ; 0x021D8F88 push {r3, lr} mov r1, #1 ldr r2, [r0, #0x6c] lsl r1, r1, #0xc add r2, r2, r1 lsl r1, r1, #3 str r2, [r0, #0x6c] cmp r2, r1 blt _021D8FAC mov r1, #0 str r1, [r0, #0x6c] mov r1, #0x30 str r1, [r0] mov r1, #6 bl MOD85_021DAEF4 mov r0, #1 pop {r3, pc} _021D8FAC: mov r0, #0 pop {r3, pc} thumb_func_end MOD85_021D8F88 thumb_func_start MOD85_021D8FB0 MOD85_021D8FB0: ; 0x021D8FB0 push {r4, lr} ldr r1, _021D90A8 ; =0x021C48B8 add r4, r0, #0 ldr r2, [r1, #0x48] ldr r1, [r4, #0x7c] cmp r1, #1 bne _021D8FF8 mov r1, #2 lsl r1, r1, #0xa add r3, r2, #0 tst r3, r1 beq _021D8FF8 mov r2, #2 str r2, [r4, #0x7c] bl MOD85_021DBFB4 add r0, r4, #0 bl MOD85_021DC01C cmp r0, #0 bne _021D8FE0 mov r0, #0 str r0, [r4, #0x70] str r0, [r4, #0x30] _021D8FE0: add r0, r4, #0 mov r1, #0 bl MOD85_021DC050 add r0, r4, #0 mov r1, #0 bl MOD85_021D9350 ldr r0, _021D90AC ; =0x000005F5 bl FUN_020054C8 b _021D9084 _021D8FF8: add r0, r4, #0 add r0, #0x80 ldr r0, [r0] cmp r0, #1 bne _021D903E mov r1, #2 add r0, r2, #0 tst r0, r1 beq _021D903E add r0, r4, #0 add r0, #0x80 str r1, [r0] add r0, r4, #0 bl MOD85_021DBFB4 add r0, r4, #0 bl MOD85_021DC01C cmp r0, #0 bne _021D9026 mov r0, #0 str r0, [r4, #0x70] str r0, [r4, #0x30] _021D9026: add r0, r4, #0 mov r1, #1 bl MOD85_021DC050 add r0, r4, #0 mov r1, #1 bl MOD85_021D9350 ldr r0, _021D90AC ; =0x000005F5 bl FUN_020054C8 b _021D9084 _021D903E: add r0, r4, #0 add r0, #0x84 ldr r0, [r0] cmp r0, #1 bne _021D9084 mov r1, #1 add r0, r2, #0 tst r0, r1 beq _021D9084 add r0, r4, #0 mov r2, #2 add r0, #0x84 str r2, [r0] add r0, r4, #0 bl MOD85_021DBFB4 add r0, r4, #0 bl MOD85_021DC01C cmp r0, #0 bne _021D906E mov r0, #0 str r0, [r4, #0x70] str r0, [r4, #0x30] _021D906E: add r0, r4, #0 mov r1, #2 bl MOD85_021DC050 add r0, r4, #0 mov r1, #2 bl MOD85_021D9350 ldr r0, _021D90AC ; =0x000005F5 bl FUN_020054C8 _021D9084: ldr r0, [r4, #0x7c] cmp r0, #2 bne _021D90A2 add r0, r4, #0 add r0, #0x80 ldr r0, [r0] cmp r0, #2 bne _021D90A2 add r0, r4, #0 add r0, #0x84 ldr r0, [r0] cmp r0, #2 bne _021D90A2 mov r0, #0x31 str r0, [r4] _021D90A2: mov r0, #0 pop {r4, pc} nop _021D90A8: .word 0x021C48B8 _021D90AC: .word 0x000005F5 thumb_func_end MOD85_021D8FB0 thumb_func_start MOD85_021D90B0 MOD85_021D90B0: ; 0x021D90B0 push {r4, lr} mov r1, #0 add r4, r0, #0 bl MOD85_021D9360 cmp r0, #1 beq _021D90D6 add r0, r4, #0 mov r1, #1 bl MOD85_021D9360 cmp r0, #1 beq _021D90D6 add r0, r4, #0 mov r1, #2 bl MOD85_021D9360 cmp r0, #1 bne _021D90DA _021D90D6: mov r0, #0 pop {r4, pc} _021D90DA: add r0, r4, #0 bl MOD85_021DB754 mov r0, #0x32 str r0, [r4] mov r0, #1 pop {r4, pc} thumb_func_end MOD85_021D90B0 thumb_func_start MOD85_021D90E8 MOD85_021D90E8: ; 0x021D90E8 push {r4, lr} add r4, r0, #0 add r2, r4, #0 ldr r1, [r4, #0x74] add r2, #0x48 bl MOD85_021DBF48 str r0, [r4, #0x44] cmp r0, #6 ldr r0, [r4, #0x28] bne _021D910E cmp r0, #1 bne _021D9106 mov r0, #3 str r0, [r4, #0x28] _021D9106: mov r0, #0x33 str r0, [r4] mov r0, #1 pop {r4, pc} _021D910E: cmp r0, #1 bne _021D9116 mov r0, #2 str r0, [r4, #0x28] _021D9116: mov r0, #0x34 str r0, [r4] mov r0, #1 pop {r4, pc} .align 2, 0 thumb_func_end MOD85_021D90E8 thumb_func_start MOD85_021D9120 MOD85_021D9120: ; 0x021D9120 push {r4, lr} add r4, r0, #0 bl MOD85_021DB754 add r0, r4, #0 mov r1, #7 bl MOD85_021DAEF4 ldr r0, [r4, #0x10] cmp r0, #1 bgt _021D913A mov r0, #0x36 b _021D913C _021D913A: mov r0, #0x2b _021D913C: str r0, [r4] mov r0, #0 pop {r4, pc} .align 2, 0 thumb_func_end MOD85_021D9120 thumb_func_start MOD85_021D9144 MOD85_021D9144: ; 0x021D9144 push {r4, lr} add r4, r0, #0 ldr r1, [r4, #0x44] lsl r2, r1, #2 ldr r1, _021D9170 ; =0x021DFC4C ldr r3, [r1, r2] ldr r1, _021D9174 ; =0x00000458 str r3, [r4, #0x64] ldr r2, [r4, r1] add r2, r2, r3 str r2, [r4, r1] bl MOD85_021DAD54 add r0, r4, #0 mov r1, #0xa bl MOD85_021DAEF4 mov r0, #0 str r0, [r4, #0x6c] mov r1, #0x35 str r1, [r4] pop {r4, pc} .align 2, 0 _021D9170: .word 0x021DFC4C _021D9174: .word 0x00000458 thumb_func_end MOD85_021D9144 thumb_func_start MOD85_021D9178 MOD85_021D9178: ; 0x021D9178 push {r4, lr} add r4, r0, #0 bl MOD85_021DAD68 cmp r0, #0 bne _021D9188 mov r0, #0 pop {r4, pc} _021D9188: add r0, r4, #0 mov r1, #7 bl MOD85_021DAEF4 ldr r0, [r4, #0x10] cmp r0, #1 bgt _021D919A mov r0, #0x36 b _021D919C _021D919A: mov r0, #0x2b _021D919C: str r0, [r4] mov r0, #1 pop {r4, pc} .align 2, 0 thumb_func_end MOD85_021D9178 thumb_func_start MOD85_021D91A4 MOD85_021D91A4: ; 0x021D91A4 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x10] sub r0, r0, #1 str r0, [r4, #0x10] beq _021D91B4 bl ErrorHandling _021D91B4: ldr r0, [r4, #0x2c] cmp r0, #1 bne _021D91D0 ldr r0, [r4, #0x24] cmp r0, #0 bne _021D91D0 add r0, r4, #0 mov r1, #8 bl MOD85_021DAEF4 mov r0, #0x3a str r0, [r4] mov r0, #0 pop {r4, pc} _021D91D0: mov r0, #0x37 str r0, [r4] mov r0, #1 pop {r4, pc} thumb_func_end MOD85_021D91A4 thumb_func_start MOD85_021D91D8 MOD85_021D91D8: ; 0x021D91D8 push {r4, lr} add r4, r0, #0 bl MOD85_021DAC58 add r0, r4, #0 bl MOD85_021DACAC ldr r1, [r4, #0x24] cmp r1, #1 bne _021D91EE mov r0, #2 _021D91EE: cmp r0, #2 bne _021D9202 add r0, r4, #0 mov r1, #5 bl MOD85_021DAEF4 mov r0, #0x38 str r0, [r4] mov r0, #0 pop {r4, pc} _021D9202: cmp r0, #1 bne _021D9216 add r0, r4, #0 mov r1, #0xc bl MOD85_021DAEF4 mov r0, #0x39 str r0, [r4] mov r0, #0 pop {r4, pc} _021D9216: mov r0, #0x23 bl FUN_02005578 mov r0, #0x2a str r0, [r4] mov r0, #0 pop {r4, pc} thumb_func_end MOD85_021D91D8 thumb_func_start MOD85_021D9224 MOD85_021D9224: ; 0x021D9224 push {r4, lr} add r4, r0, #0 bl MOD85_021DAF08 cmp r0, #0 bne _021D9234 mov r0, #0 pop {r4, pc} _021D9234: mov r0, #0x2a str r0, [r4] mov r0, #1 pop {r4, pc} thumb_func_end MOD85_021D9224 thumb_func_start MOD85_021D923C MOD85_021D923C: ; 0x021D923C push {r4, lr} add r4, r0, #0 bl MOD85_021DAF08 cmp r0, #0 bne _021D924C mov r0, #0 pop {r4, pc} _021D924C: mov r0, #0x2a str r0, [r4] mov r0, #1 pop {r4, pc} thumb_func_end MOD85_021D923C thumb_func_start MOD85_021D9254 MOD85_021D9254: ; 0x021D9254 push {r4, lr} add r4, r0, #0 bl MOD85_021DAF08 cmp r0, #0 bne _021D9264 mov r0, #0 pop {r4, pc} _021D9264: ldr r1, [r4, #0x1c] ldr r0, [r4, #0x20] cmp r1, r0 bls _021D926E str r1, [r4, #0x20] _021D926E: add r0, r4, #0 mov r1, #0 bl MOD85_021D7FF4 add r0, r4, #0 bl MOD85_021DBB30 mov r0, #0 str r0, [r4] mov r0, #1 pop {r4, pc} thumb_func_end MOD85_021D9254 thumb_func_start MOD85_021D9284 MOD85_021D9284: ; 0x021D9284 push {r4, lr} mov r1, #0 add r4, r0, #0 bl MOD85_021D7BEC mov r0, #0x3e str r0, [r4] mov r0, #0 pop {r4, pc} .align 2, 0 thumb_func_end MOD85_021D9284 thumb_func_start MOD85_021D9298 MOD85_021D9298: ; 0x021D9298 push {r4, lr} mov r1, #2 add r4, r0, #0 bl MOD85_021D7BEC mov r0, #0x3e str r0, [r4] mov r0, #0 pop {r4, pc} .align 2, 0 thumb_func_end MOD85_021D9298 thumb_func_start MOD85_021D92AC MOD85_021D92AC: ; 0x021D92AC push {r4, lr} mov r1, #1 add r4, r0, #0 bl MOD85_021D7BEC mov r0, #0x3e str r0, [r4] mov r0, #0 pop {r4, pc} .align 2, 0 thumb_func_end MOD85_021D92AC thumb_func_start MOD85_021D92C0 MOD85_021D92C0: ; 0x021D92C0 push {r4, lr} add r4, r0, #0 mov r0, #3 bl MOD85_021DBD54 cmp r0, #0 beq _021D92D8 add r0, r4, #0 bl MOD85_021D7C44 ldr r0, [r4, #4] str r0, [r4] _021D92D8: mov r0, #0 pop {r4, pc} thumb_func_end MOD85_021D92C0 thumb_func_start MOD85_021D92DC MOD85_021D92DC: ; 0x021D92DC push {r3, lr} bl MOD85_021DB9A0 mov r0, #2 pop {r3, pc} .align 2, 0 thumb_func_end MOD85_021D92DC thumb_func_start MOD85_021D92E8 MOD85_021D92E8: ; 0x021D92E8 push {r3, r4, r5, r6, r7, lr} add r7, r0, #0 add r5, r7, #0 add r5, #0xb4 mov r4, #0 add r6, r5, #0 _021D92F4: mov r0, #0 str r0, [r5] add r2, r4, #0 str r4, [r5, #0x10] ldr r0, _021D9318 ; =MOD85_021D936C add r1, r6, #0 add r2, #0x81 str r7, [r5, #0x20] bl FUN_0200CA44 str r0, [r5, #0x1c] add r4, r4, #1 add r5, #0x24 add r6, #0x24 cmp r4, #3 blo _021D92F4 pop {r3, r4, r5, r6, r7, pc} nop _021D9318: .word MOD85_021D936C thumb_func_end MOD85_021D92E8 thumb_func_start MOD85_021D931C MOD85_021D931C: ; 0x021D931C push {r3, r4, r5, lr} add r5, r0, #0 mov r4, #0 _021D9322: add r0, r5, #0 add r0, #0xd0 ldr r0, [r0] bl FUN_0200CAB4 add r4, r4, #1 add r5, #0x24 cmp r4, #3 blo _021D9322 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD85_021D931C thumb_func_start MOD85_021D9338 MOD85_021D9338: ; 0x021D9338 mov r2, #0x24 add r3, r1, #0 mul r3, r2 add r1, r0, r3 add r0, r0, r3 mov r2, #1 add r1, #0xb4 str r2, [r1] add r0, #0xb8 str r2, [r0] bx lr .align 2, 0 thumb_func_end MOD85_021D9338 thumb_func_start MOD85_021D9350 MOD85_021D9350: ; 0x021D9350 mov r2, #0x24 mul r2, r1 add r0, r0, r2 mov r3, #2 add r0, #0xb4 str r3, [r0] bx lr .align 2, 0 thumb_func_end MOD85_021D9350 thumb_func_start MOD85_021D9360 MOD85_021D9360: ; 0x021D9360 mov r2, #0x24 mul r2, r1 add r0, r0, r2 add r0, #0xb8 ldr r0, [r0] bx lr thumb_func_end MOD85_021D9360 thumb_func_start MOD85_021D936C MOD85_021D936C: ; 0x021D936C push {r4, r5, r6, lr} add r5, r1, #0 ldr r4, [r5, #0x20] ldr r6, _021D9388 ; =0x021DEE20 _021D9374: ldr r2, [r5] add r0, r5, #0 lsl r2, r2, #2 ldr r2, [r6, r2] add r1, r4, #0 blx r2 cmp r0, #1 beq _021D9374 pop {r4, r5, r6, pc} nop _021D9388: .word 0x021DEE20 thumb_func_end MOD85_021D936C thumb_func_start MOD85_021D938C MOD85_021D938C: ; 0x021D938C mov r0, #0 bx lr thumb_func_end MOD85_021D938C thumb_func_start MOD85_021D9390 MOD85_021D9390: ; 0x021D9390 push {r3, lr} add r2, r0, #0 add r0, r1, #0 ldr r1, [r2, #0x10] add r2, r0, #0 add r2, #0x8c ldr r2, [r2] bl MOD85_021DA744 mov r0, #0 pop {r3, pc} .align 2, 0 thumb_func_end MOD85_021D9390 thumb_func_start MOD85_021D93A8 MOD85_021D93A8: ; 0x021D93A8 push {r3, r4, r5, lr} add r5, r0, #0 ldr r2, [r5] add r4, r1, #0 add r2, r2, #1 str r2, [r5] mov r2, #0 str r2, [r5, #0x14] str r2, [r5, #0x18] ldr r2, [r4, #0x30] cmp r2, #1 ldr r2, [r4, #8] bne _021D93F2 cmp r2, #0 bne _021D93DC bl MOD85_021D94E4 cmp r0, #0 bne _021D9400 add r0, r5, #0 add r1, r4, #0 bl MOD85_021D9EDC mov r0, #0 str r0, [r4, #0x30] b _021D9400 _021D93DC: bl MOD85_021D951C cmp r0, #0 bne _021D9400 add r0, r5, #0 add r1, r4, #0 bl MOD85_021D9F8C mov r0, #0 str r0, [r4, #0x30] b _021D9400 _021D93F2: cmp r2, #0 bne _021D93FC bl MOD85_021D9EDC b _021D9400 _021D93FC: bl MOD85_021D9F8C _021D9400: mov r0, #1 pop {r3, r4, r5, pc} thumb_func_end MOD85_021D93A8 thumb_func_start MOD85_021D9404 MOD85_021D9404: ; 0x021D9404 push {r3, r4, r5, r6, r7, lr} sub sp, #0x18 add r5, r0, #0 add r3, r1, #0 ldr r1, [r5, #0x10] add r7, r3, #0 lsl r0, r1, #2 add r7, #0x90 str r0, [sp] ldr r0, [r7, r0] mov r4, #0 lsr r6, r0, #0x1f lsl r2, r0, #0xf sub r2, r2, r6 mov r0, #0xf ror r2, r0 add r0, r6, r2 beq _021D943E add r2, r3, #0 add r2, #0x8c ldr r2, [r2] mov r4, #1 cmp r0, r2 bge _021D9436 add r2, r0, #0 _021D9436: add r0, r3, #0 bl MOD85_021DA780 b _021D9464 _021D943E: ldr r2, [r5, #0x18] cmp r2, #0 beq _021D9464 sub r0, r2, #1 str r0, [r5, #0x18] add r0, r3, #0 add r3, #0x8c ldr r2, [r3] mov r4, #1 bl MOD85_021DA744 ldr r0, [sp] ldr r0, [r7, r0] lsr r2, r0, #0x1f lsl r1, r0, #0xf sub r1, r1, r2 mov r0, #0xf ror r1, r0 add r0, r2, r1 _021D9464: cmp r0, #0 bne _021D94A0 ldr r6, [r5, #0x18] cmp r6, #0 bne _021D94A0 ldr r3, _021D94A8 ; =0x021DEE34 add r2, sp, #4 ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldr r0, [r3] cmp r6, #4 str r0, [r2] ble _021D9484 mov r6, #4 _021D9484: lsl r1, r6, #2 add r0, sp, #4 ldr r0, [r0, r1] str r0, [r5, #8] mov r0, #0 str r0, [r5, #0xc] ldr r0, [r5] add r0, r0, #1 str r0, [r5] cmp r4, #0 bne _021D94A0 add sp, #0x18 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D94A0: mov r0, #0 add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} nop _021D94A8: .word 0x021DEE34 thumb_func_end MOD85_021D9404 thumb_func_start MOD85_021D94AC MOD85_021D94AC: ; 0x021D94AC push {r3, r4} ldr r2, [r0, #0x10] ldr r3, [r0, #8] add r1, #0x9c lsl r2, r2, #2 str r3, [r1, r2] ldr r3, [r0, #8] neg r3, r3 str r3, [r0, #8] ldr r3, [r0, #0xc] add r4, r3, #1 mov r3, #1 str r4, [r0, #0xc] tst r3, r4 bne _021D94D0 ldr r3, [r0, #8] asr r3, r3, #2 str r3, [r0, #8] _021D94D0: ldr r3, [r0, #8] cmp r3, #0 bne _021D94DE mov r3, #0 str r3, [r0] str r3, [r0, #4] str r3, [r1, r2] _021D94DE: mov r0, #0 pop {r3, r4} bx lr thumb_func_end MOD85_021D94AC thumb_func_start MOD85_021D94E4 MOD85_021D94E4: ; 0x021D94E4 push {r3, lr} ldr r2, [r1, #0x74] cmp r2, #0 bne _021D94F0 mov r0, #0 pop {r3, pc} _021D94F0: ldr r2, [r0, #0x10] cmp r2, #0 beq _021D9500 cmp r2, #1 beq _021D9506 cmp r2, #2 beq _021D950C b _021D9512 _021D9500: bl MOD85_021D953C pop {r3, pc} _021D9506: bl MOD85_021D9578 pop {r3, pc} _021D950C: bl MOD85_021D95B4 pop {r3, pc} _021D9512: bl ErrorHandling mov r0, #0 pop {r3, pc} .align 2, 0 thumb_func_end MOD85_021D94E4 thumb_func_start MOD85_021D951C MOD85_021D951C: ; 0x021D951C push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 ldr r0, [r4, #0x74] cmp r0, #0 bne _021D952C mov r0, #0 pop {r3, r4, r5, pc} _021D952C: bl MOD85_021DBD74 add r2, r0, #0 add r0, r5, #0 add r1, r4, #0 bl MOD85_021D9E94 pop {r3, r4, r5, pc} thumb_func_end MOD85_021D951C thumb_func_start MOD85_021D953C MOD85_021D953C: ; 0x021D953C push {r4, r5, r6, lr} add r4, r1, #0 add r5, r0, #0 ldr r0, [r4, #0x74] bl MOD85_021DBD74 add r6, r0, #0 cmp r6, #6 bne _021D9552 mov r0, #0 pop {r4, r5, r6, pc} _021D9552: add r0, r5, #0 add r1, r4, #0 bl MOD85_021DA058 cmp r0, #1 bne _021D956A add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 bl MOD85_021D95F0 pop {r4, r5, r6, pc} _021D956A: add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 bl MOD85_021D9708 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD85_021D953C thumb_func_start MOD85_021D9578 MOD85_021D9578: ; 0x021D9578 push {r4, r5, r6, lr} add r4, r1, #0 add r5, r0, #0 ldr r0, [r4, #0x74] bl MOD85_021DBD74 add r6, r0, #0 cmp r6, #6 bne _021D958E mov r0, #0 pop {r4, r5, r6, pc} _021D958E: add r0, r5, #0 add r1, r4, #0 bl MOD85_021DA058 cmp r0, #1 bne _021D95A6 add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 bl MOD85_021D9A48 pop {r4, r5, r6, pc} _021D95A6: add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 bl MOD85_021D9AF0 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD85_021D9578 thumb_func_start MOD85_021D95B4 MOD85_021D95B4: ; 0x021D95B4 push {r4, r5, r6, lr} add r4, r1, #0 add r5, r0, #0 ldr r0, [r4, #0x74] bl MOD85_021DBD74 add r6, r0, #0 cmp r6, #6 bne _021D95CA mov r0, #0 pop {r4, r5, r6, pc} _021D95CA: add r0, r5, #0 add r1, r4, #0 bl MOD85_021DA058 cmp r0, #1 bne _021D95E2 add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 bl MOD85_021D9A48 pop {r4, r5, r6, pc} _021D95E2: add r0, r5, #0 add r1, r4, #0 add r2, r6, #0 bl MOD85_021D9AF0 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD85_021D95B4 thumb_func_start MOD85_021D95F0 MOD85_021D95F0: ; 0x021D95F0 push {r4, r5, r6, r7, lr} sub sp, #0x14 str r0, [sp] ldr r0, [r0, #0x10] add r4, r1, #0 add r6, r2, #0 str r0, [sp, #8] mov r7, #1 _021D9600: ldr r1, [sp, #8] add r0, r4, #0 add r2, r7, #0 bl MOD85_021DBD30 cmp r6, r0 bne _021D9638 mov r5, #0 cmp r7, #3 bgt _021D9638 _021D9614: add r0, r4, #0 add r1, r5, #0 add r2, r6, #0 bl MOD85_021DA290 cmp r0, #1 bne _021D9630 ldr r0, [sp] add r1, r7, r5 str r1, [r0, #0x14] str r5, [r0, #0x18] add sp, #0x14 mov r0, #1 pop {r4, r5, r6, r7, pc} _021D9630: add r5, r5, #1 add r0, r7, r5 cmp r0, #3 ble _021D9614 _021D9638: add r7, r7, #1 cmp r7, #3 ble _021D9600 mov r0, #4 str r0, [sp, #0x10] ldr r0, [r4, #0x70] cmp r0, #1 bne _021D964C mov r0, #0x15 str r0, [sp, #0x10] _021D964C: add r0, r4, #0 add r0, #0xa8 ldr r0, [r0] mov r7, #1 str r0, [sp, #0xc] ldr r0, [sp, #0x10] cmp r0, #1 blt _021D9700 _021D965C: mov r2, #1 ldr r1, [sp, #8] add r0, r4, #0 sub r2, r2, r7 bl MOD85_021DBD30 cmp r6, r0 bne _021D96F8 mov r5, #0 _021D966E: add r0, r7, r5 str r0, [sp, #4] ldr r1, [sp, #4] add r0, r4, #0 add r2, r6, #0 bl MOD85_021DA290 cmp r0, #1 bne _021D96F2 cmp r5, #0 bne _021D96B4 ldr r0, [sp, #0xc] ldr r1, [sp, #0xc] lsr r0, r0, #0x1f lsl r2, r1, #0x1e sub r2, r2, r0 mov r1, #0x1e ror r2, r1 add r0, r0, r2 bne _021D96E2 add r0, r4, #0 add r1, r7, #2 add r2, r6, #0 bl MOD85_021DA290 cmp r0, #1 bne _021D96E2 ldr r0, [sp] mov r1, #3 str r1, [r0, #0x14] add r1, r7, #2 str r1, [r0, #0x18] add sp, #0x14 mov r0, #1 pop {r4, r5, r6, r7, pc} _021D96B4: cmp r5, #1 bne _021D96E2 ldr r0, [sp, #0xc] mov r1, #6 bl _s32_div_f cmp r1, #2 bge _021D96E2 add r0, r4, #0 add r1, r7, #2 add r2, r6, #0 bl MOD85_021DA290 cmp r0, #1 bne _021D96E2 ldr r0, [sp] mov r1, #3 str r1, [r0, #0x14] add r1, r7, #2 str r1, [r0, #0x18] add sp, #0x14 mov r0, #1 pop {r4, r5, r6, r7, pc} _021D96E2: ldr r0, [sp] add r1, r5, #1 str r1, [r0, #0x14] ldr r1, [sp, #4] add sp, #0x14 str r1, [r0, #0x18] mov r0, #1 pop {r4, r5, r6, r7, pc} _021D96F2: add r5, r5, #1 cmp r5, #3 blt _021D966E _021D96F8: ldr r0, [sp, #0x10] add r7, r7, #1 cmp r7, r0 ble _021D965C _021D9700: mov r0, #0 add sp, #0x14 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD85_021D95F0 thumb_func_start MOD85_021D9708 MOD85_021D9708: ; 0x021D9708 push {r3, r4, r5, r6, r7, lr} sub sp, #0x18 add r4, r2, #0 add r2, r0, #0 ldr r7, [r2, #0x10] add r2, sp, #0xc str r2, [sp] add r2, sp, #0x14 add r3, sp, #0x10 str r0, [sp, #4] add r5, r1, #0 bl MOD85_021DA0A8 cmp r0, #0 bne _021D972C add sp, #0x18 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _021D972C: add r0, r5, #0 mov r1, #0 add r2, r4, #0 bl MOD85_021DA290 cmp r0, #1 bne _021D979C ldr r2, [sp, #0x14] add r0, r5, #0 add r1, r7, #0 bl MOD85_021DBD30 cmp r4, r0 bne _021D9758 ldr r1, [sp, #0x14] ldr r0, [sp, #4] add sp, #0x18 str r1, [r0, #0x14] mov r1, #0 str r1, [r0, #0x18] mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D9758: ldr r2, [sp, #0x10] cmp r2, #0 beq _021D977A add r0, r5, #0 add r1, r7, #0 bl MOD85_021DBD30 cmp r4, r0 bne _021D977A ldr r1, [sp, #0x10] ldr r0, [sp, #4] add sp, #0x18 str r1, [r0, #0x14] mov r1, #0 str r1, [r0, #0x18] mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D977A: ldr r2, [sp, #0xc] cmp r2, #0 beq _021D979C add r0, r5, #0 add r1, r7, #0 bl MOD85_021DBD30 cmp r4, r0 bne _021D979C ldr r1, [sp, #0xc] ldr r0, [sp, #4] add sp, #0x18 str r1, [r0, #0x14] mov r1, #0 str r1, [r0, #0x18] mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D979C: mov r0, #4 str r0, [sp, #8] ldr r0, [r5, #0x70] cmp r0, #1 bne _021D97AA mov r0, #0x15 str r0, [sp, #8] _021D97AA: ldr r0, [sp, #0x10] cmp r0, #0 bne _021D97F2 ldr r0, [sp, #8] mov r6, #1 cmp r0, #1 blt _021D97EC _021D97B8: ldr r2, [sp, #0x14] add r0, r5, #0 add r1, r7, #0 sub r2, r2, r6 bl MOD85_021DBD30 cmp r4, r0 bne _021D97E4 add r0, r5, #0 add r1, r6, #0 add r2, r4, #0 bl MOD85_021DA290 cmp r0, #1 bne _021D97E4 ldr r1, [sp, #0x14] ldr r0, [sp, #4] add sp, #0x18 str r1, [r0, #0x14] str r6, [r0, #0x18] mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D97E4: ldr r0, [sp, #8] add r6, r6, #1 cmp r6, r0 ble _021D97B8 _021D97EC: add sp, #0x18 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _021D97F2: ldr r0, [sp, #0xc] cmp r0, #0 bne _021D98C4 ldr r0, [sp, #8] mov r6, #1 cmp r0, #1 blt _021D98BE _021D9800: mov r0, #1 tst r0, r6 beq _021D985E ldr r2, [sp, #0x14] add r0, r5, #0 add r1, r7, #0 sub r2, r2, r6 bl MOD85_021DBD30 cmp r4, r0 bne _021D9832 add r0, r5, #0 add r1, r6, #0 add r2, r4, #0 bl MOD85_021DA290 cmp r0, #1 bne _021D9832 ldr r1, [sp, #0x14] ldr r0, [sp, #4] add sp, #0x18 str r1, [r0, #0x14] str r6, [r0, #0x18] mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D9832: ldr r2, [sp, #0x10] add r0, r5, #0 add r1, r7, #0 sub r2, r2, r6 bl MOD85_021DBD30 cmp r4, r0 bne _021D98B6 add r0, r5, #0 add r1, r6, #0 add r2, r4, #0 bl MOD85_021DA290 cmp r0, #1 bne _021D98B6 ldr r1, [sp, #0x10] ldr r0, [sp, #4] add sp, #0x18 str r1, [r0, #0x14] str r6, [r0, #0x18] mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D985E: ldr r2, [sp, #0x10] add r0, r5, #0 add r1, r7, #0 sub r2, r2, r6 bl MOD85_021DBD30 cmp r4, r0 bne _021D988A add r0, r5, #0 add r1, r6, #0 add r2, r4, #0 bl MOD85_021DA290 cmp r0, #1 bne _021D988A ldr r1, [sp, #0x10] ldr r0, [sp, #4] add sp, #0x18 str r1, [r0, #0x14] str r6, [r0, #0x18] mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D988A: ldr r2, [sp, #0x14] add r0, r5, #0 add r1, r7, #0 sub r2, r2, r6 bl MOD85_021DBD30 cmp r4, r0 bne _021D98B6 add r0, r5, #0 add r1, r6, #0 add r2, r4, #0 bl MOD85_021DA290 cmp r0, #1 bne _021D98B6 ldr r1, [sp, #0x14] ldr r0, [sp, #4] add sp, #0x18 str r1, [r0, #0x14] str r6, [r0, #0x18] mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D98B6: ldr r0, [sp, #8] add r6, r6, #1 cmp r6, r0 ble _021D9800 _021D98BE: add sp, #0x18 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _021D98C4: ldr r0, [sp, #8] mov r6, #1 cmp r0, #1 bge _021D98CE b _021D9A42 _021D98CE: mov r0, #3 and r0, r6 bne _021D9958 ldr r2, [sp, #0x14] add r0, r5, #0 add r1, r7, #0 sub r2, r2, r6 bl MOD85_021DBD30 cmp r4, r0 bne _021D9900 add r0, r5, #0 add r1, r6, #0 add r2, r4, #0 bl MOD85_021DA290 cmp r0, #1 bne _021D9900 ldr r1, [sp, #0x14] ldr r0, [sp, #4] add sp, #0x18 str r1, [r0, #0x14] str r6, [r0, #0x18] mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D9900: ldr r2, [sp, #0x10] add r0, r5, #0 add r1, r7, #0 sub r2, r2, r6 bl MOD85_021DBD30 cmp r4, r0 bne _021D992C add r0, r5, #0 add r1, r6, #0 add r2, r4, #0 bl MOD85_021DA290 cmp r0, #1 bne _021D992C ldr r1, [sp, #0x10] ldr r0, [sp, #4] add sp, #0x18 str r1, [r0, #0x14] str r6, [r0, #0x18] mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D992C: ldr r2, [sp, #0xc] add r0, r5, #0 add r1, r7, #0 sub r2, r2, r6 bl MOD85_021DBD30 cmp r4, r0 bne _021D9A38 add r0, r5, #0 add r1, r6, #0 add r2, r4, #0 bl MOD85_021DA290 cmp r0, #1 bne _021D9A38 ldr r1, [sp, #0xc] ldr r0, [sp, #4] add sp, #0x18 str r1, [r0, #0x14] str r6, [r0, #0x18] mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D9958: cmp r0, #1 bne _021D99B4 ldr r2, [sp, #0x10] add r0, r5, #0 add r1, r7, #0 sub r2, r2, r6 bl MOD85_021DBD30 cmp r4, r0 bne _021D9988 add r0, r5, #0 add r1, r6, #0 add r2, r4, #0 bl MOD85_021DA290 cmp r0, #1 bne _021D9988 ldr r1, [sp, #0x10] ldr r0, [sp, #4] add sp, #0x18 str r1, [r0, #0x14] str r6, [r0, #0x18] mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D9988: ldr r2, [sp, #0x14] add r0, r5, #0 add r1, r7, #0 sub r2, r2, r6 bl MOD85_021DBD30 cmp r4, r0 bne _021D9A38 add r0, r5, #0 add r1, r6, #0 add r2, r4, #0 bl MOD85_021DA290 cmp r0, #1 bne _021D9A38 ldr r1, [sp, #0x14] ldr r0, [sp, #4] add sp, #0x18 str r1, [r0, #0x14] str r6, [r0, #0x18] mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D99B4: ldr r2, [sp, #0xc] add r0, r5, #0 add r1, r7, #0 sub r2, r2, r6 bl MOD85_021DBD30 cmp r4, r0 bne _021D99E0 add r0, r5, #0 add r1, r6, #0 add r2, r4, #0 bl MOD85_021DA290 cmp r0, #1 bne _021D99E0 ldr r1, [sp, #0xc] ldr r0, [sp, #4] add sp, #0x18 str r1, [r0, #0x14] str r6, [r0, #0x18] mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D99E0: ldr r2, [sp, #0x14] add r0, r5, #0 add r1, r7, #0 sub r2, r2, r6 bl MOD85_021DBD30 cmp r4, r0 bne _021D9A0C add r0, r5, #0 add r1, r6, #0 add r2, r4, #0 bl MOD85_021DA290 cmp r0, #1 bne _021D9A0C ldr r1, [sp, #0x14] ldr r0, [sp, #4] add sp, #0x18 str r1, [r0, #0x14] str r6, [r0, #0x18] mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D9A0C: ldr r2, [sp, #0x10] add r0, r5, #0 add r1, r7, #0 sub r2, r2, r6 bl MOD85_021DBD30 cmp r4, r0 bne _021D9A38 add r0, r5, #0 add r1, r6, #0 add r2, r4, #0 bl MOD85_021DA290 cmp r0, #1 bne _021D9A38 ldr r1, [sp, #0x10] ldr r0, [sp, #4] add sp, #0x18 str r1, [r0, #0x14] str r6, [r0, #0x18] mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D9A38: ldr r0, [sp, #8] add r6, r6, #1 cmp r6, r0 bgt _021D9A42 b _021D98CE _021D9A42: mov r0, #0 add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD85_021D9708 thumb_func_start MOD85_021D9A48 MOD85_021D9A48: ; 0x021D9A48 push {r3, r4, r5, r6, r7, lr} sub sp, #8 ldr r7, [r0, #0x10] str r0, [sp] add r4, r1, #0 add r6, r2, #0 mov r5, #1 _021D9A56: add r0, r4, #0 add r1, r7, #0 add r2, r5, #0 bl MOD85_021DBD30 cmp r6, r0 bne _021D9A72 ldr r0, [sp] mov r1, #0 str r5, [r0, #0x14] str r1, [r0, #0x18] add sp, #8 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D9A72: add r5, r5, #1 cmp r5, #3 ble _021D9A56 mov r0, #4 str r0, [sp, #4] ldr r0, [r4, #0x70] cmp r0, #1 bne _021D9A86 mov r0, #0x15 str r0, [sp, #4] _021D9A86: ldr r0, [sp, #4] mov r5, #1 cmp r0, #1 blt _021D9AE8 _021D9A8E: mov r2, #1 add r0, r4, #0 add r1, r7, #0 sub r2, r2, r5 bl MOD85_021DBD30 cmp r6, r0 bne _021D9AE0 lsr r2, r5, #0x1f lsl r1, r5, #0x1e sub r1, r1, r2 mov r0, #0x1e ror r1, r0 add r0, r2, r1 cmp r0, #1 bne _021D9ABE ldr r0, [sp] mov r1, #3 str r1, [r0, #0x14] add r1, r5, #2 str r1, [r0, #0x18] add sp, #8 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D9ABE: sub r0, r0, #2 cmp r0, #1 bhi _021D9AD4 ldr r0, [sp] mov r1, #2 str r1, [r0, #0x14] add r1, r5, #1 str r1, [r0, #0x18] add sp, #8 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D9AD4: ldr r1, [sp] mov r0, #1 str r0, [r1, #0x14] add sp, #8 str r5, [r1, #0x18] pop {r3, r4, r5, r6, r7, pc} _021D9AE0: ldr r0, [sp, #4] add r5, r5, #1 cmp r5, r0 ble _021D9A8E _021D9AE8: mov r0, #0 add sp, #8 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD85_021D9A48 thumb_func_start MOD85_021D9AF0 MOD85_021D9AF0: ; 0x021D9AF0 push {r3, r4, r5, r6, r7, lr} sub sp, #0x48 add r5, r2, #0 add r2, r0, #0 ldr r7, [r2, #0x10] add r2, sp, #0x3c str r2, [sp] add r2, sp, #0x44 add r3, sp, #0x40 str r0, [sp, #4] add r6, r1, #0 bl MOD85_021DA0A8 cmp r0, #0 bne _021D9B14 add sp, #0x48 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _021D9B14: ldr r2, [sp, #0x44] add r0, r6, #0 add r1, r7, #0 bl MOD85_021DBD30 cmp r5, r0 bne _021D9B32 ldr r1, [sp, #0x44] ldr r0, [sp, #4] add sp, #0x48 str r1, [r0, #0x14] mov r1, #0 str r1, [r0, #0x18] mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D9B32: ldr r2, [sp, #0x40] cmp r2, #0 beq _021D9B54 add r0, r6, #0 add r1, r7, #0 bl MOD85_021DBD30 cmp r5, r0 bne _021D9B54 ldr r1, [sp, #0x40] ldr r0, [sp, #4] add sp, #0x48 str r1, [r0, #0x14] mov r1, #0 str r1, [r0, #0x18] mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D9B54: ldr r2, [sp, #0x3c] cmp r2, #0 beq _021D9B76 add r0, r6, #0 add r1, r7, #0 bl MOD85_021DBD30 cmp r5, r0 bne _021D9B76 ldr r1, [sp, #0x3c] ldr r0, [sp, #4] add sp, #0x48 str r1, [r0, #0x14] mov r1, #0 str r1, [r0, #0x18] mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D9B76: ldr r0, [r6, #0x70] mov r4, #4 cmp r0, #1 bne _021D9B80 mov r4, #0x15 _021D9B80: ldr r0, [sp, #0x40] cmp r0, #0 bne _021D9BC0 mov r0, #1 str r0, [sp, #0x38] cmp r4, #1 blt _021D9BBA _021D9B8E: ldr r3, [sp, #0x44] ldr r2, [sp, #0x38] add r0, r6, #0 add r1, r7, #0 sub r2, r3, r2 bl MOD85_021DBD30 cmp r5, r0 bne _021D9BB0 ldr r1, [sp, #0x44] ldr r0, [sp, #4] str r1, [r0, #0x14] ldr r1, [sp, #0x38] add sp, #0x48 str r1, [r0, #0x18] mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D9BB0: ldr r0, [sp, #0x38] add r0, r0, #1 str r0, [sp, #0x38] cmp r0, r4 ble _021D9B8E _021D9BBA: add sp, #0x48 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _021D9BC0: lsl r0, r7, #2 add r0, r6, r0 add r0, #0xa8 ldr r1, [sp, #0x3c] ldr r0, [r0] cmp r1, #0 bne _021D9CA6 mov r1, #1 str r1, [sp, #8] tst r0, r1 beq _021D9C3C cmp r4, #1 blt _021D9C06 _021D9BDA: ldr r3, [sp, #0x44] ldr r2, [sp, #8] add r0, r6, #0 add r1, r7, #0 sub r2, r3, r2 bl MOD85_021DBD30 cmp r5, r0 bne _021D9BFC ldr r1, [sp, #0x44] ldr r0, [sp, #4] str r1, [r0, #0x14] ldr r1, [sp, #8] add sp, #0x48 str r1, [r0, #0x18] mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D9BFC: ldr r0, [sp, #8] add r0, r0, #1 str r0, [sp, #8] cmp r0, r4 ble _021D9BDA _021D9C06: mov r0, #1 str r0, [sp, #0xc] cmp r4, #1 blt _021D9CA0 _021D9C0E: ldr r3, [sp, #0x40] ldr r2, [sp, #0xc] add r0, r6, #0 add r1, r7, #0 sub r2, r3, r2 bl MOD85_021DBD30 cmp r5, r0 bne _021D9C30 ldr r1, [sp, #0x40] ldr r0, [sp, #4] str r1, [r0, #0x14] ldr r1, [sp, #0xc] add sp, #0x48 str r1, [r0, #0x18] mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D9C30: ldr r0, [sp, #0xc] add r0, r0, #1 str r0, [sp, #0xc] cmp r0, r4 ble _021D9C0E b _021D9CA0 _021D9C3C: cmp r4, #1 blt _021D9C6C _021D9C40: ldr r3, [sp, #0x40] ldr r2, [sp, #8] add r0, r6, #0 add r1, r7, #0 sub r2, r3, r2 bl MOD85_021DBD30 cmp r5, r0 bne _021D9C62 ldr r1, [sp, #0x40] ldr r0, [sp, #4] str r1, [r0, #0x14] ldr r1, [sp, #8] add sp, #0x48 str r1, [r0, #0x18] mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D9C62: ldr r0, [sp, #8] add r0, r0, #1 str r0, [sp, #8] cmp r0, r4 ble _021D9C40 _021D9C6C: mov r0, #1 str r0, [sp, #0x10] cmp r4, #1 blt _021D9CA0 _021D9C74: ldr r3, [sp, #0x44] ldr r2, [sp, #0x10] add r0, r6, #0 add r1, r7, #0 sub r2, r3, r2 bl MOD85_021DBD30 cmp r5, r0 bne _021D9C96 ldr r1, [sp, #0x44] ldr r0, [sp, #4] str r1, [r0, #0x14] ldr r1, [sp, #0x10] add sp, #0x48 str r1, [r0, #0x18] mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D9C96: ldr r0, [sp, #0x10] add r0, r0, #1 str r0, [sp, #0x10] cmp r0, r4 ble _021D9C74 _021D9CA0: add sp, #0x48 mov r0, #0 pop {r3, r4, r5, r6, r7, pc} _021D9CA6: mov r1, #3 bl _s32_div_f cmp r1, #0 bne _021D9D4E mov r0, #1 str r0, [sp, #0x14] cmp r4, #1 blt _021D9CE4 _021D9CB8: ldr r3, [sp, #0x44] ldr r2, [sp, #0x14] add r0, r6, #0 add r1, r7, #0 sub r2, r3, r2 bl MOD85_021DBD30 cmp r5, r0 bne _021D9CDA ldr r1, [sp, #0x44] ldr r0, [sp, #4] str r1, [r0, #0x14] ldr r1, [sp, #0x14] add sp, #0x48 str r1, [r0, #0x18] mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D9CDA: ldr r0, [sp, #0x14] add r0, r0, #1 str r0, [sp, #0x14] cmp r0, r4 ble _021D9CB8 _021D9CE4: mov r0, #1 str r0, [sp, #0x18] cmp r4, #1 blt _021D9D18 _021D9CEC: ldr r3, [sp, #0x40] ldr r2, [sp, #0x18] add r0, r6, #0 add r1, r7, #0 sub r2, r3, r2 bl MOD85_021DBD30 cmp r5, r0 bne _021D9D0E ldr r1, [sp, #0x40] ldr r0, [sp, #4] str r1, [r0, #0x14] ldr r1, [sp, #0x18] add sp, #0x48 str r1, [r0, #0x18] mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D9D0E: ldr r0, [sp, #0x18] add r0, r0, #1 str r0, [sp, #0x18] cmp r0, r4 ble _021D9CEC _021D9D18: mov r0, #1 str r0, [sp, #0x1c] cmp r4, #1 blt _021D9D4C _021D9D20: ldr r3, [sp, #0x3c] ldr r2, [sp, #0x1c] add r0, r6, #0 add r1, r7, #0 sub r2, r3, r2 bl MOD85_021DBD30 cmp r5, r0 bne _021D9D42 ldr r1, [sp, #0x3c] ldr r0, [sp, #4] str r1, [r0, #0x14] ldr r1, [sp, #0x1c] add sp, #0x48 str r1, [r0, #0x18] mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D9D42: ldr r0, [sp, #0x1c] add r0, r0, #1 str r0, [sp, #0x1c] cmp r0, r4 ble _021D9D20 _021D9D4C: b _021D9E8C _021D9D4E: cmp r1, #1 bne _021D9DF0 mov r0, #1 str r0, [sp, #0x20] cmp r4, #1 blt _021D9D86 _021D9D5A: ldr r3, [sp, #0x40] ldr r2, [sp, #0x20] add r0, r6, #0 add r1, r7, #0 sub r2, r3, r2 bl MOD85_021DBD30 cmp r5, r0 bne _021D9D7C ldr r1, [sp, #0x40] ldr r0, [sp, #4] str r1, [r0, #0x14] ldr r1, [sp, #0x20] add sp, #0x48 str r1, [r0, #0x18] mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D9D7C: ldr r0, [sp, #0x20] add r0, r0, #1 str r0, [sp, #0x20] cmp r0, r4 ble _021D9D5A _021D9D86: mov r0, #1 str r0, [sp, #0x24] cmp r4, #1 blt _021D9DBA _021D9D8E: ldr r3, [sp, #0x3c] ldr r2, [sp, #0x24] add r0, r6, #0 add r1, r7, #0 sub r2, r3, r2 bl MOD85_021DBD30 cmp r5, r0 bne _021D9DB0 ldr r1, [sp, #0x3c] ldr r0, [sp, #4] str r1, [r0, #0x14] ldr r1, [sp, #0x24] add sp, #0x48 str r1, [r0, #0x18] mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D9DB0: ldr r0, [sp, #0x24] add r0, r0, #1 str r0, [sp, #0x24] cmp r0, r4 ble _021D9D8E _021D9DBA: mov r0, #1 str r0, [sp, #0x28] cmp r4, #1 blt _021D9E8C _021D9DC2: ldr r3, [sp, #0x44] ldr r2, [sp, #0x28] add r0, r6, #0 add r1, r7, #0 sub r2, r3, r2 bl MOD85_021DBD30 cmp r5, r0 bne _021D9DE4 ldr r1, [sp, #0x44] ldr r0, [sp, #4] str r1, [r0, #0x14] ldr r1, [sp, #0x28] add sp, #0x48 str r1, [r0, #0x18] mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D9DE4: ldr r0, [sp, #0x28] add r0, r0, #1 str r0, [sp, #0x28] cmp r0, r4 ble _021D9DC2 b _021D9E8C _021D9DF0: mov r0, #1 str r0, [sp, #0x2c] cmp r4, #1 blt _021D9E24 _021D9DF8: ldr r3, [sp, #0x3c] ldr r2, [sp, #0x2c] add r0, r6, #0 add r1, r7, #0 sub r2, r3, r2 bl MOD85_021DBD30 cmp r5, r0 bne _021D9E1A ldr r1, [sp, #0x3c] ldr r0, [sp, #4] str r1, [r0, #0x14] ldr r1, [sp, #0x2c] add sp, #0x48 str r1, [r0, #0x18] mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D9E1A: ldr r0, [sp, #0x2c] add r0, r0, #1 str r0, [sp, #0x2c] cmp r0, r4 ble _021D9DF8 _021D9E24: mov r0, #1 str r0, [sp, #0x30] cmp r4, #1 blt _021D9E58 _021D9E2C: ldr r3, [sp, #0x44] ldr r2, [sp, #0x30] add r0, r6, #0 add r1, r7, #0 sub r2, r3, r2 bl MOD85_021DBD30 cmp r5, r0 bne _021D9E4E ldr r1, [sp, #0x44] ldr r0, [sp, #4] str r1, [r0, #0x14] ldr r1, [sp, #0x30] add sp, #0x48 str r1, [r0, #0x18] mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D9E4E: ldr r0, [sp, #0x30] add r0, r0, #1 str r0, [sp, #0x30] cmp r0, r4 ble _021D9E2C _021D9E58: mov r0, #1 str r0, [sp, #0x34] cmp r4, #1 blt _021D9E8C _021D9E60: ldr r3, [sp, #0x40] ldr r2, [sp, #0x34] add r0, r6, #0 add r1, r7, #0 sub r2, r3, r2 bl MOD85_021DBD30 cmp r5, r0 bne _021D9E82 ldr r1, [sp, #0x40] ldr r0, [sp, #4] str r1, [r0, #0x14] ldr r1, [sp, #0x34] add sp, #0x48 str r1, [r0, #0x18] mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D9E82: ldr r0, [sp, #0x34] add r0, r0, #1 str r0, [sp, #0x34] cmp r0, r4 ble _021D9E60 _021D9E8C: mov r0, #0 add sp, #0x48 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD85_021D9AF0 thumb_func_start MOD85_021D9E94 MOD85_021D9E94: ; 0x021D9E94 push {r3, r4, r5, r6, r7, lr} sub sp, #8 str r0, [sp] ldr r0, [r0, #0x10] add r6, r1, #0 str r0, [sp, #4] ldr r0, [r6, #0x70] add r7, r2, #0 mov r5, #4 cmp r0, #1 bne _021D9EAC mov r5, #0x15 _021D9EAC: mov r4, #0 cmp r5, #0 blt _021D9ED6 _021D9EB2: mov r2, #2 ldr r1, [sp, #4] add r0, r6, #0 sub r2, r2, r4 bl MOD85_021DBD30 cmp r7, r0 bne _021D9ED0 ldr r0, [sp] mov r1, #2 str r1, [r0, #0x14] str r4, [r0, #0x18] add sp, #8 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D9ED0: add r4, r4, #1 cmp r4, r5 ble _021D9EB2 _021D9ED6: mov r0, #0 add sp, #8 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD85_021D9E94 thumb_func_start MOD85_021D9EDC MOD85_021D9EDC: ; 0x021D9EDC push {r4, r5, r6, lr} add r4, r1, #0 add r6, r0, #0 add r0, r4, #0 bl MOD85_021DA040 ldr r1, [r6, #0x10] cmp r1, #0 beq _021D9EF2 cmp r0, #2 blt _021D9F88 _021D9EF2: cmp r1, #0 bne _021D9F18 cmp r0, #2 bge _021D9F18 mov r5, #0 _021D9EFC: add r0, r4, #0 add r1, r5, #0 bl MOD85_021DA24C cmp r0, #0 bne _021D9F0C str r5, [r6, #0x18] pop {r4, r5, r6, pc} _021D9F0C: add r5, r5, #1 cmp r5, #0x15 ble _021D9EFC bl ErrorHandling pop {r4, r5, r6, pc} _021D9F18: cmp r1, #0 beq _021D9F26 cmp r1, #1 beq _021D9F46 cmp r1, #2 beq _021D9F66 b _021D9F84 _021D9F26: mov r5, #1 _021D9F28: add r0, r6, #0 add r1, r4, #0 add r2, r5, #0 bl MOD85_021DA2AC cmp r0, #0 bne _021D9F3A str r5, [r6, #0x18] pop {r4, r5, r6, pc} _021D9F3A: add r5, r5, #1 cmp r5, #0x15 ble _021D9F28 bl ErrorHandling pop {r4, r5, r6, pc} _021D9F46: mov r5, #1 _021D9F48: add r0, r6, #0 add r1, r4, #0 add r2, r5, #0 bl MOD85_021DA3F8 cmp r0, #0 bne _021D9F5A str r5, [r6, #0x18] pop {r4, r5, r6, pc} _021D9F5A: add r5, r5, #1 cmp r5, #0x15 ble _021D9F48 bl ErrorHandling b _021D9F84 _021D9F66: mov r5, #1 _021D9F68: add r0, r6, #0 add r1, r4, #0 add r2, r5, #0 bl MOD85_021DA530 cmp r0, #0 bne _021D9F7A str r5, [r6, #0x18] pop {r4, r5, r6, pc} _021D9F7A: add r5, r5, #1 cmp r5, #0x15 ble _021D9F68 bl ErrorHandling _021D9F84: bl ErrorHandling _021D9F88: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD85_021D9EDC thumb_func_start MOD85_021D9F8C MOD85_021D9F8C: ; 0x021D9F8C push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 add r6, r0, #0 add r0, r4, #0 bl MOD85_021DA040 ldr r1, [r6, #0x10] cmp r1, #0 beq _021D9FA2 cmp r0, #2 blt _021DA03C _021D9FA2: cmp r1, #0 bne _021D9FCA cmp r0, #2 bge _021D9FCA mov r5, #0 mov r7, #2 _021D9FAE: add r0, r4, #0 mov r1, #0 sub r2, r7, r5 bl MOD85_021DBD30 cmp r0, #3 beq _021D9FC0 str r5, [r6, #0x18] pop {r3, r4, r5, r6, r7, pc} _021D9FC0: add r5, r5, #1 cmp r5, #0x15 blt _021D9FAE bl ErrorHandling _021D9FCA: ldr r0, [r6, #0x10] cmp r0, #0 beq _021D9FDA cmp r0, #1 beq _021D9FFA cmp r0, #2 beq _021DA01A b _021DA038 _021D9FDA: mov r5, #0 _021D9FDC: add r0, r6, #0 add r1, r4, #0 add r2, r5, #0 bl MOD85_021DA668 cmp r0, #0 bne _021D9FEE str r5, [r6, #0x18] pop {r3, r4, r5, r6, r7, pc} _021D9FEE: add r5, r5, #1 cmp r5, #0x15 blt _021D9FDC bl ErrorHandling pop {r3, r4, r5, r6, r7, pc} _021D9FFA: mov r5, #0 _021D9FFC: add r0, r6, #0 add r1, r4, #0 add r2, r5, #0 bl MOD85_021DA6B4 cmp r0, #0 bne _021DA00E str r5, [r6, #0x18] pop {r3, r4, r5, r6, r7, pc} _021DA00E: add r5, r5, #1 cmp r5, #0x15 ble _021D9FFC bl ErrorHandling pop {r3, r4, r5, r6, r7, pc} _021DA01A: mov r5, #0 _021DA01C: add r0, r6, #0 add r1, r4, #0 add r2, r5, #0 bl MOD85_021DA6FC cmp r0, #0 bne _021DA02E str r5, [r6, #0x18] pop {r3, r4, r5, r6, r7, pc} _021DA02E: add r5, r5, #1 cmp r5, #0x15 ble _021DA01C bl ErrorHandling _021DA038: bl ErrorHandling _021DA03C: pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD85_021D9F8C thumb_func_start MOD85_021DA040 MOD85_021DA040: ; 0x021DA040 mov r2, #0 add r3, r2, #0 _021DA044: ldr r1, [r0, #0x7c] cmp r1, #1 beq _021DA04C add r3, r3, #1 _021DA04C: add r2, r2, #1 add r0, r0, #4 cmp r2, #3 blt _021DA044 add r0, r3, #0 bx lr thumb_func_end MOD85_021DA040 thumb_func_start MOD85_021DA058 MOD85_021DA058: ; 0x021DA058 ldr r0, [r0, #0x10] cmp r0, #0 beq _021DA068 cmp r0, #1 beq _021DA07E cmp r0, #2 beq _021DA090 b _021DA0A2 _021DA068: add r0, r1, #0 add r0, #0x80 ldr r0, [r0] cmp r0, #1 bne _021DA07A add r1, #0x84 ldr r0, [r1] cmp r0, #1 beq _021DA0A2 _021DA07A: mov r0, #0 bx lr _021DA07E: ldr r0, [r1, #0x7c] cmp r0, #1 bne _021DA08C add r1, #0x84 ldr r0, [r1] cmp r0, #1 beq _021DA0A2 _021DA08C: mov r0, #0 bx lr _021DA090: ldr r0, [r1, #0x7c] cmp r0, #1 bne _021DA09E add r1, #0x80 ldr r0, [r1] cmp r0, #1 beq _021DA0A2 _021DA09E: mov r0, #0 bx lr _021DA0A2: mov r0, #1 bx lr .align 2, 0 thumb_func_end MOD85_021DA058 thumb_func_start MOD85_021DA0A8 MOD85_021DA0A8: ; 0x021DA0A8 push {r3, r4, r5, r6, r7, lr} sub sp, #8 str r0, [sp] add r5, r1, #0 ldr r0, [sp, #0x20] add r1, r3, #0 str r0, [sp, #0x20] add r0, r5, #0 add r0, #0x80 ldr r0, [r0] ldr r7, [r5, #0x7c] str r0, [sp, #4] add r0, r5, #0 add r0, #0x84 ldr r0, [r0] mov r3, #0 mov ip, r0 add r0, r5, #0 add r0, #0xc8 ldr r4, [r0] add r0, r5, #0 add r0, #0xec ldr r6, [r0] mov r0, #0x11 lsl r0, r0, #4 ldr r5, [r5, r0] ldr r0, [sp, #0x20] str r3, [r2] str r3, [r1] str r3, [r0] ldr r0, [sp] ldr r0, [r0, #0x10] cmp r0, #0 beq _021DA0F6 cmp r0, #1 beq _021DA160 cmp r0, #2 beq _021DA1DC b _021DA240 _021DA0F6: ldr r0, [sp, #4] cmp r0, #1 beq _021DA124 mov r0, ip cmp r0, #1 beq _021DA124 cmp r6, r5 bne _021DA10E add sp, #8 str r6, [r2] mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021DA10E: cmp r5, #1 bne _021DA11C mov r0, #3 str r0, [r2] add sp, #8 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021DA11C: mov r0, #1 str r0, [r2] add sp, #8 pop {r3, r4, r5, r6, r7, pc} _021DA124: ldr r0, [sp, #4] cmp r0, #1 beq _021DA148 cmp r6, #2 bne _021DA140 mov r0, #1 str r0, [r2] mov r2, #2 str r2, [r1] ldr r1, [sp, #0x20] mov r2, #3 str r2, [r1] add sp, #8 pop {r3, r4, r5, r6, r7, pc} _021DA140: add sp, #8 str r6, [r2] mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021DA148: cmp r5, #2 bne _021DA154 add sp, #8 str r5, [r2] mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021DA154: mov r0, #1 str r0, [r2] mov r2, #3 str r2, [r1] add sp, #8 pop {r3, r4, r5, r6, r7, pc} _021DA160: cmp r7, #1 beq _021DA180 mov r0, ip cmp r0, #1 beq _021DA180 cmp r4, r5 bne _021DA176 add sp, #8 str r4, [r2] mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021DA176: mov r0, #2 str r0, [r2] add sp, #8 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021DA180: cmp r7, #1 beq _021DA1B0 cmp r4, #2 bne _021DA192 mov r0, #2 str r0, [r2] add sp, #8 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021DA192: cmp r4, #1 bne _021DA1A2 mov r0, #1 str r0, [r2] mov r2, #2 str r2, [r1] add sp, #8 pop {r3, r4, r5, r6, r7, pc} _021DA1A2: mov r0, #2 str r0, [r2] mov r0, #3 str r0, [r1] add sp, #8 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021DA1B0: cmp r5, #2 bne _021DA1BE mov r0, #2 str r0, [r2] add sp, #8 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021DA1BE: cmp r5, #1 bne _021DA1CE mov r0, #1 str r0, [r2] mov r2, #2 str r2, [r1] add sp, #8 pop {r3, r4, r5, r6, r7, pc} _021DA1CE: mov r0, #2 str r0, [r2] mov r0, #3 str r0, [r1] add sp, #8 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021DA1DC: cmp r7, #1 beq _021DA204 ldr r0, [sp, #4] cmp r0, #1 beq _021DA204 cmp r4, r6 bne _021DA1F2 add sp, #8 str r4, [r2] mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021DA1F2: cmp r4, #1 bne _021DA1FA mov r0, #3 b _021DA1FC _021DA1FA: mov r0, #1 _021DA1FC: str r0, [r2] add sp, #8 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021DA204: cmp r7, #1 beq _021DA222 cmp r4, #2 bne _021DA216 mov r0, #2 str r0, [r2] add sp, #8 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021DA216: mov r0, #1 str r0, [r2] mov r2, #3 str r2, [r1] add sp, #8 pop {r3, r4, r5, r6, r7, pc} _021DA222: cmp r6, #2 bne _021DA238 mov r0, #1 str r0, [r2] mov r2, #2 str r2, [r1] ldr r1, [sp, #0x20] mov r2, #3 str r2, [r1] add sp, #8 pop {r3, r4, r5, r6, r7, pc} _021DA238: add sp, #8 str r6, [r2] mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021DA240: bl ErrorHandling mov r0, #0 add sp, #8 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD85_021DA0A8 thumb_func_start MOD85_021DA24C MOD85_021DA24C: ; 0x021DA24C push {r3, r4, r5, lr} add r4, r1, #0 mov r2, #1 mov r1, #0 sub r2, r2, r4 add r5, r0, #0 bl MOD85_021DBD30 cmp r0, #3 bne _021DA264 mov r0, #1 pop {r3, r4, r5, pc} _021DA264: mov r2, #2 add r0, r5, #0 mov r1, #0 sub r2, r2, r4 bl MOD85_021DBD30 cmp r0, #3 bne _021DA278 mov r0, #1 pop {r3, r4, r5, pc} _021DA278: mov r2, #3 add r0, r5, #0 mov r1, #0 sub r2, r2, r4 bl MOD85_021DBD30 cmp r0, #3 bne _021DA28C mov r0, #1 pop {r3, r4, r5, pc} _021DA28C: mov r0, #0 pop {r3, r4, r5, pc} thumb_func_end MOD85_021DA24C thumb_func_start MOD85_021DA290 MOD85_021DA290: ; 0x021DA290 push {r3, lr} cmp r2, #3 bne _021DA29A mov r0, #1 pop {r3, pc} _021DA29A: bl MOD85_021DA24C cmp r0, #0 bne _021DA2A6 mov r0, #1 pop {r3, pc} _021DA2A6: mov r0, #0 pop {r3, pc} .align 2, 0 thumb_func_end MOD85_021DA290 thumb_func_start MOD85_021DA2AC MOD85_021DA2AC: ; 0x021DA2AC push {r3, r4, r5, r6, r7, lr} sub sp, #0x20 add r4, r1, #0 add r0, r4, #0 add r0, #0xf0 ldr r7, [r0] mov r0, #0x45 lsl r0, r0, #2 ldr r6, [r4, r0] mov r1, #1 add r0, r2, #0 sub r0, r1, r0 str r0, [sp, #0x10] str r2, [sp] ldr r2, [sp, #0x10] add r0, r4, #0 mov r1, #0 bl MOD85_021DBD30 mov r1, #1 add r5, r0, #0 add r0, r4, #0 sub r2, r1, r7 bl MOD85_021DBD30 str r0, [sp, #0x14] mov r0, #1 sub r0, r0, r6 str r0, [sp, #4] ldr r2, [sp, #4] add r0, r4, #0 mov r1, #2 bl MOD85_021DBD30 cmp r5, #3 beq _021DA2FE ldr r1, [sp, #0x14] cmp r5, r1 bne _021DA304 cmp r5, r0 bne _021DA304 _021DA2FE: add sp, #0x20 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021DA304: ldr r2, [sp] mov r3, #2 add r0, r4, #0 mov r1, #0 sub r2, r3, r2 bl MOD85_021DBD30 add r5, r0, #0 mov r0, #2 sub r0, r0, r7 str r0, [sp, #0xc] ldr r2, [sp, #0xc] add r0, r4, #0 mov r1, #1 bl MOD85_021DBD30 mov r1, #2 str r0, [sp, #0x18] add r0, r4, #0 sub r2, r1, r6 bl MOD85_021DBD30 cmp r5, #3 beq _021DA33E ldr r1, [sp, #0x18] cmp r5, r1 bne _021DA344 cmp r5, r0 bne _021DA344 _021DA33E: add sp, #0x20 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021DA344: ldr r0, [sp] mov r1, #3 sub r0, r1, r0 str r0, [sp, #8] ldr r2, [sp, #8] add r0, r4, #0 mov r1, #0 bl MOD85_021DBD30 mov r2, #3 add r5, r0, #0 add r0, r4, #0 mov r1, #1 sub r2, r2, r7 bl MOD85_021DBD30 add r7, r0, #0 mov r0, #3 sub r0, r0, r6 str r0, [sp, #0x1c] ldr r2, [sp, #0x1c] add r0, r4, #0 mov r1, #2 bl MOD85_021DBD30 cmp r5, #3 beq _021DA382 cmp r5, r7 bne _021DA388 cmp r5, r0 bne _021DA388 _021DA382: add sp, #0x20 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021DA388: ldr r2, [sp, #0x10] add r0, r4, #0 mov r1, #0 bl MOD85_021DBD30 add r5, r0, #0 ldr r2, [sp, #0xc] add r0, r4, #0 mov r1, #1 bl MOD85_021DBD30 add r6, r0, #0 ldr r2, [sp, #0x1c] add r0, r4, #0 mov r1, #2 bl MOD85_021DBD30 cmp r5, #3 beq _021DA3B6 cmp r5, r6 bne _021DA3BC cmp r5, r0 bne _021DA3BC _021DA3B6: add sp, #0x20 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021DA3BC: ldr r2, [sp, #8] add r0, r4, #0 mov r1, #0 bl MOD85_021DBD30 add r5, r0, #0 ldr r2, [sp, #0xc] add r0, r4, #0 mov r1, #1 bl MOD85_021DBD30 add r6, r0, #0 ldr r2, [sp, #4] add r0, r4, #0 mov r1, #2 bl MOD85_021DBD30 cmp r5, #3 beq _021DA3EA cmp r5, r6 bne _021DA3F0 cmp r5, r0 bne _021DA3F0 _021DA3EA: add sp, #0x20 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021DA3F0: mov r0, #0 add sp, #0x20 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD85_021DA2AC thumb_func_start MOD85_021DA3F8 MOD85_021DA3F8: ; 0x021DA3F8 push {r4, r5, r6, r7, lr} sub sp, #0x24 add r5, r1, #0 add r0, r5, #0 add r0, #0xcc ldr r6, [r0] mov r0, #0x45 lsl r0, r0, #2 ldr r4, [r5, r0] mov r0, #1 sub r0, r0, r6 str r0, [sp, #0xc] add r7, r2, #0 ldr r2, [sp, #0xc] add r0, r5, #0 mov r1, #0 bl MOD85_021DBD30 mov r1, #1 str r0, [sp, #0x10] add r0, r5, #0 sub r2, r1, r7 bl MOD85_021DBD30 str r0, [sp, #0x14] mov r0, #1 sub r0, r0, r4 str r0, [sp] ldr r2, [sp] add r0, r5, #0 mov r1, #2 bl MOD85_021DBD30 ldr r2, [sp, #0x10] ldr r1, [sp, #0x14] cmp r2, r1 bne _021DA44E add r1, r2, #0 cmp r1, r0 bne _021DA44E add sp, #0x24 mov r0, #1 pop {r4, r5, r6, r7, pc} _021DA44E: mov r2, #2 add r0, r5, #0 mov r1, #0 sub r2, r2, r6 bl MOD85_021DBD30 str r0, [sp, #0x18] mov r0, #2 sub r0, r0, r7 str r0, [sp, #8] ldr r2, [sp, #8] add r0, r5, #0 mov r1, #1 bl MOD85_021DBD30 mov r1, #2 str r0, [sp, #0x1c] add r0, r5, #0 sub r2, r1, r4 bl MOD85_021DBD30 ldr r2, [sp, #0x18] ldr r1, [sp, #0x1c] cmp r2, r1 bne _021DA48C add r1, r2, #0 cmp r1, r0 bne _021DA48C add sp, #0x24 mov r0, #1 pop {r4, r5, r6, r7, pc} _021DA48C: mov r0, #3 sub r0, r0, r6 str r0, [sp, #4] ldr r2, [sp, #4] add r0, r5, #0 mov r1, #0 bl MOD85_021DBD30 mov r2, #3 add r6, r0, #0 add r0, r5, #0 mov r1, #1 sub r2, r2, r7 bl MOD85_021DBD30 str r0, [sp, #0x20] mov r0, #3 sub r7, r0, r4 add r0, r5, #0 mov r1, #2 add r2, r7, #0 bl MOD85_021DBD30 ldr r1, [sp, #0x20] cmp r6, r1 bne _021DA4CA cmp r6, r0 bne _021DA4CA add sp, #0x24 mov r0, #1 pop {r4, r5, r6, r7, pc} _021DA4CA: ldr r2, [sp, #0xc] add r0, r5, #0 mov r1, #0 bl MOD85_021DBD30 add r4, r0, #0 ldr r2, [sp, #8] add r0, r5, #0 mov r1, #1 bl MOD85_021DBD30 add r6, r0, #0 add r0, r5, #0 mov r1, #2 add r2, r7, #0 bl MOD85_021DBD30 cmp r4, r6 bne _021DA4FA cmp r4, r0 bne _021DA4FA add sp, #0x24 mov r0, #1 pop {r4, r5, r6, r7, pc} _021DA4FA: ldr r2, [sp, #4] add r0, r5, #0 mov r1, #0 bl MOD85_021DBD30 add r4, r0, #0 ldr r2, [sp, #8] add r0, r5, #0 mov r1, #1 bl MOD85_021DBD30 add r6, r0, #0 ldr r2, [sp] add r0, r5, #0 mov r1, #2 bl MOD85_021DBD30 cmp r4, r6 bne _021DA52A cmp r4, r0 bne _021DA52A add sp, #0x24 mov r0, #1 pop {r4, r5, r6, r7, pc} _021DA52A: mov r0, #0 add sp, #0x24 pop {r4, r5, r6, r7, pc} thumb_func_end MOD85_021DA3F8 thumb_func_start MOD85_021DA530 MOD85_021DA530: ; 0x021DA530 push {r3, r4, r5, r6, r7, lr} sub sp, #0x20 add r5, r1, #0 add r0, r5, #0 add r0, #0xcc ldr r6, [r0] add r0, r5, #0 add r0, #0xf0 ldr r4, [r0] mov r0, #1 sub r0, r0, r6 str r0, [sp, #0xc] add r7, r2, #0 ldr r2, [sp, #0xc] add r0, r5, #0 mov r1, #0 bl MOD85_021DBD30 mov r1, #1 str r0, [sp, #0x10] add r0, r5, #0 sub r2, r1, r4 bl MOD85_021DBD30 str r0, [sp, #0x14] mov r0, #1 sub r0, r0, r7 str r0, [sp] ldr r2, [sp] add r0, r5, #0 mov r1, #2 bl MOD85_021DBD30 ldr r2, [sp, #0x10] ldr r1, [sp, #0x14] cmp r2, r1 bne _021DA586 add r1, r2, #0 cmp r1, r0 bne _021DA586 add sp, #0x20 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021DA586: mov r2, #2 add r0, r5, #0 mov r1, #0 sub r2, r2, r6 bl MOD85_021DBD30 str r0, [sp, #0x18] mov r0, #2 sub r0, r0, r4 str r0, [sp, #8] ldr r2, [sp, #8] add r0, r5, #0 mov r1, #1 bl MOD85_021DBD30 mov r1, #2 str r0, [sp, #0x1c] add r0, r5, #0 sub r2, r1, r7 bl MOD85_021DBD30 ldr r2, [sp, #0x18] ldr r1, [sp, #0x1c] cmp r2, r1 bne _021DA5C4 add r1, r2, #0 cmp r1, r0 bne _021DA5C4 add sp, #0x20 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021DA5C4: mov r0, #3 sub r0, r0, r6 str r0, [sp, #4] ldr r2, [sp, #4] add r0, r5, #0 mov r1, #0 bl MOD85_021DBD30 mov r2, #3 add r6, r0, #0 add r0, r5, #0 mov r1, #1 sub r2, r2, r4 bl MOD85_021DBD30 add r4, r0, #0 mov r0, #3 sub r7, r0, r7 add r0, r5, #0 mov r1, #2 add r2, r7, #0 bl MOD85_021DBD30 cmp r6, r4 bne _021DA600 cmp r6, r0 bne _021DA600 add sp, #0x20 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021DA600: ldr r2, [sp, #0xc] add r0, r5, #0 mov r1, #0 bl MOD85_021DBD30 add r4, r0, #0 ldr r2, [sp, #8] add r0, r5, #0 mov r1, #1 bl MOD85_021DBD30 add r6, r0, #0 add r0, r5, #0 mov r1, #2 add r2, r7, #0 bl MOD85_021DBD30 cmp r4, r6 bne _021DA630 cmp r4, r0 bne _021DA630 add sp, #0x20 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021DA630: ldr r2, [sp, #4] add r0, r5, #0 mov r1, #0 bl MOD85_021DBD30 add r4, r0, #0 ldr r2, [sp, #8] add r0, r5, #0 mov r1, #1 bl MOD85_021DBD30 add r6, r0, #0 ldr r2, [sp] add r0, r5, #0 mov r1, #2 bl MOD85_021DBD30 cmp r4, r6 bne _021DA660 cmp r4, r0 bne _021DA660 add sp, #0x20 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021DA660: mov r0, #0 add sp, #0x20 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD85_021DA530 thumb_func_start MOD85_021DA668 MOD85_021DA668: ; 0x021DA668 push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 add r0, r5, #0 add r0, #0xf0 ldr r7, [r0] mov r0, #0x45 lsl r0, r0, #2 mov r3, #2 ldr r6, [r5, r0] add r0, r5, #0 mov r1, #0 sub r2, r3, r2 bl MOD85_021DBD30 mov r2, #2 add r4, r0, #0 add r0, r5, #0 mov r1, #1 sub r2, r2, r7 bl MOD85_021DBD30 mov r1, #2 add r7, r0, #0 add r0, r5, #0 sub r2, r1, r6 bl MOD85_021DBD30 cmp r4, #3 beq _021DA6AA cmp r4, r7 bne _021DA6AE cmp r4, r0 bne _021DA6AE _021DA6AA: mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021DA6AE: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD85_021DA668 thumb_func_start MOD85_021DA6B4 MOD85_021DA6B4: ; 0x021DA6B4 push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 add r7, r2, #0 add r2, r5, #0 add r2, #0xcc mov r0, #0x45 ldr r3, [r2] lsl r0, r0, #2 mov r2, #2 ldr r6, [r5, r0] add r0, r5, #0 mov r1, #0 sub r2, r2, r3 bl MOD85_021DBD30 mov r2, #2 add r4, r0, #0 add r0, r5, #0 mov r1, #1 sub r2, r2, r7 bl MOD85_021DBD30 mov r1, #2 add r7, r0, #0 add r0, r5, #0 sub r2, r1, r6 bl MOD85_021DBD30 cmp r4, r7 bne _021DA6F8 cmp r4, r0 bne _021DA6F8 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021DA6F8: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD85_021DA6B4 thumb_func_start MOD85_021DA6FC MOD85_021DA6FC: ; 0x021DA6FC push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 add r7, r2, #0 add r2, r5, #0 add r2, #0xcc add r0, r5, #0 ldr r3, [r2] add r0, #0xf0 mov r2, #2 ldr r6, [r0] add r0, r5, #0 mov r1, #0 sub r2, r2, r3 bl MOD85_021DBD30 mov r2, #2 add r4, r0, #0 add r0, r5, #0 mov r1, #1 sub r2, r2, r6 bl MOD85_021DBD30 mov r1, #2 add r6, r0, #0 add r0, r5, #0 sub r2, r1, r7 bl MOD85_021DBD30 cmp r4, r6 bne _021DA740 cmp r4, r0 bne _021DA740 mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021DA740: mov r0, #0 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD85_021DA6FC thumb_func_start MOD85_021DA744 MOD85_021DA744: ; 0x021DA744 push {r4, r5, r6, lr} add r6, r0, #0 add r4, r6, #0 lsl r5, r1, #2 add r4, #0x90 ldr r0, [r4, r5] mov r1, #0x2a add r0, r0, r2 str r0, [r4, r5] ldr r0, [r4, r5] lsl r1, r1, #0x10 bl _s32_div_f str r1, [r4, r5] ldr r1, [r4, r5] asr r0, r1, #0xb lsr r0, r0, #0x14 add r0, r1, r0 asr r1, r0, #0xc asr r0, r1, #4 lsr r0, r0, #0x1b add r0, r1, r0 asr r1, r0, #5 mov r0, #0x15 sub r1, r0, r1 add r0, r6, r5 add r0, #0xa8 str r1, [r0] pop {r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD85_021DA744 thumb_func_start MOD85_021DA780 MOD85_021DA780: ; 0x021DA780 push {r3, r4, r5, r6, r7, lr} add r7, r0, #0 add r5, r7, #0 add r5, #0x90 lsl r4, r1, #2 ldr r0, [r5, r4] lsr r6, r0, #0x1f lsl r3, r0, #0xf sub r3, r3, r6 mov r0, #0xf ror r3, r0 add r0, r6, r3 beq _021DA7B4 cmp r0, r2 bge _021DA7A0 add r2, r0, #0 _021DA7A0: add r0, r7, #0 bl MOD85_021DA744 ldr r0, [r5, r4] lsr r2, r0, #0x1f lsl r1, r0, #0xf sub r1, r1, r2 mov r0, #0xf ror r1, r0 add r0, r2, r1 _021DA7B4: pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD85_021DA780 thumb_func_start MOD85_021DA7B8 MOD85_021DA7B8: ; 0x021DA7B8 push {r3, lr} bl FUN_0201B9EC mov r1, #0x64 bl _u32_div_f add r0, r1, #0 pop {r3, pc} thumb_func_end MOD85_021DA7B8 thumb_func_start MOD85_021DA7C8 MOD85_021DA7C8: ; 0x021DA7C8 ldr r3, [r1] sub r2, r3, r0 str r2, [r1] bpl _021DA7D4 mov r2, #0 str r2, [r1] _021DA7D4: cmp r3, r0 bhs _021DA7DC mov r0, #1 bx lr _021DA7DC: mov r0, #0 bx lr thumb_func_end MOD85_021DA7C8 thumb_func_start MOD85_021DA7E0 MOD85_021DA7E0: ; 0x021DA7E0 push {r4, lr} add r4, r0, #0 bl MOD85_021DA7B8 add r4, #0x88 ldr r1, [r4] lsl r2, r1, #2 ldr r1, _021DA800 ; =0x021DFC7C ldr r1, [r1, r2] cmp r1, r0 bls _021DA7FA mov r0, #1 pop {r4, pc} _021DA7FA: mov r0, #0 pop {r4, pc} nop _021DA800: .word 0x021DFC7C thumb_func_end MOD85_021DA7E0 thumb_func_start MOD85_021DA804 MOD85_021DA804: ; 0x021DA804 push {r3, r4, r5, lr} add r5, r0, #0 mov r1, #0 str r1, [r5, #0x74] bl MOD85_021DA7E0 cmp r0, #1 beq _021DA816 b _021DA928 _021DA816: add r0, r5, #0 bl MOD85_021DA7B8 add r1, r5, #0 str r0, [sp] add r1, #0x88 ldr r1, [r1] ldr r0, _021DA92C ; =0x021DFD24 lsl r3, r1, #4 mov r1, #0x47 lsl r1, r1, #4 ldr r2, [r5, r1] add r4, r0, r3 add r2, r2, #1 str r2, [r5, r1] ldrh r0, [r0, r3] add r1, sp, #0 bl MOD85_021DA7C8 cmp r0, #0 beq _021DA856 ldr r1, [r5, #0x74] mov r0, #8 orr r0, r1 str r0, [r5, #0x74] mov r0, #0x4a lsl r0, r0, #4 ldr r1, [r5, r0] add r1, r1, #1 str r1, [r5, r0] mov r0, #1 pop {r3, r4, r5, pc} _021DA856: ldrh r0, [r4, #2] add r1, sp, #0 bl MOD85_021DA7C8 cmp r0, #0 beq _021DA876 ldr r1, [r5, #0x74] mov r0, #4 orr r0, r1 str r0, [r5, #0x74] ldr r0, _021DA930 ; =0x0000049C ldr r1, [r5, r0] add r1, r1, #1 str r1, [r5, r0] mov r0, #1 pop {r3, r4, r5, pc} _021DA876: ldrh r0, [r4, #4] add r1, sp, #0 bl MOD85_021DA7C8 cmp r0, #0 beq _021DA898 ldr r1, [r5, #0x74] mov r0, #0x80 orr r0, r1 str r0, [r5, #0x74] mov r0, #0x4b lsl r0, r0, #4 ldr r1, [r5, r0] add r1, r1, #1 str r1, [r5, r0] mov r0, #1 pop {r3, r4, r5, pc} _021DA898: ldrh r0, [r4, #6] add r1, sp, #0 bl MOD85_021DA7C8 cmp r0, #0 beq _021DA8B8 ldr r1, [r5, #0x74] mov r0, #0x40 orr r0, r1 str r0, [r5, #0x74] ldr r0, _021DA934 ; =0x000004AC ldr r1, [r5, r0] add r1, r1, #1 str r1, [r5, r0] mov r0, #1 pop {r3, r4, r5, pc} _021DA8B8: ldrh r0, [r4, #8] add r1, sp, #0 bl MOD85_021DA7C8 cmp r0, #0 beq _021DA8D8 ldr r1, [r5, #0x74] mov r0, #0x20 orr r0, r1 str r0, [r5, #0x74] ldr r0, _021DA938 ; =0x000004A8 ldr r1, [r5, r0] add r1, r1, #1 str r1, [r5, r0] mov r0, #1 pop {r3, r4, r5, pc} _021DA8D8: ldrh r0, [r4, #0xa] add r1, sp, #0 bl MOD85_021DA7C8 cmp r0, #0 beq _021DA8F8 ldr r1, [r5, #0x74] mov r0, #0x10 orr r0, r1 str r0, [r5, #0x74] ldr r0, _021DA93C ; =0x000004A4 ldr r1, [r5, r0] add r1, r1, #1 str r1, [r5, r0] mov r0, #1 pop {r3, r4, r5, pc} _021DA8F8: ldrh r0, [r4, #0xc] add r1, sp, #0 bl MOD85_021DA7C8 cmp r0, #0 ldr r1, [r5, #0x74] beq _021DA918 mov r0, #2 orr r0, r1 str r0, [r5, #0x74] ldr r0, _021DA940 ; =0x00000498 ldr r1, [r5, r0] add r1, r1, #1 str r1, [r5, r0] mov r0, #1 pop {r3, r4, r5, pc} _021DA918: mov r0, #1 orr r1, r0 str r1, [r5, #0x74] ldr r1, _021DA944 ; =0x00000494 ldr r2, [r5, r1] add r2, r2, #1 str r2, [r5, r1] pop {r3, r4, r5, pc} _021DA928: mov r0, #0 pop {r3, r4, r5, pc} .align 2, 0 _021DA92C: .word 0x021DFD24 _021DA930: .word 0x0000049C _021DA934: .word 0x000004AC _021DA938: .word 0x000004A8 _021DA93C: .word 0x000004A4 _021DA940: .word 0x00000498 _021DA944: .word 0x00000494 thumb_func_end MOD85_021DA804 thumb_func_start MOD85_021DA948 MOD85_021DA948: ; 0x021DA948 push {r4, lr} add r4, r0, #0 bl MOD85_021DA7B8 add r4, #0x88 ldr r1, [r4] lsl r2, r1, #2 ldr r1, _021DA968 ; =0x021DFC34 ldr r1, [r1, r2] cmp r0, r1 bhs _021DA962 mov r0, #1 pop {r4, pc} _021DA962: mov r0, #0 pop {r4, pc} nop _021DA968: .word 0x021DFC34 thumb_func_end MOD85_021DA948 thumb_func_start MOD85_021DA96C MOD85_021DA96C: ; 0x021DA96C push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r5, r0, #0 bl MOD85_021DA7B8 str r0, [sp, #4] add r0, r5, #0 add r0, #0x88 ldr r1, [r0] mov r0, #0x48 ldr r2, _021DAA1C ; =0x021E0090 mul r0, r1 add r0, r2, r0 str r0, [sp] mov r6, #0 add r4, r0, #0 add r7, sp, #4 _021DA98E: ldr r0, [r4] add r1, r7, #0 bl MOD85_021DA7C8 cmp r0, #1 bne _021DA9EE mov r0, #0xc add r1, r6, #0 mul r1, r0 ldr r0, [sp] add r1, r0, r1 ldr r0, [r1, #4] str r0, [r5, #0x50] ldr r0, [r1, #8] str r0, [r5, #0x4c] ldr r0, [r5, #0x50] lsl r1, r0, #2 ldr r0, _021DAA20 ; =0x021DFCC4 ldr r0, [r0, r1] str r0, [r5, #0x18] ldr r0, [r5, #0x4c] cmp r0, #0 beq _021DA9C8 cmp r0, #1 beq _021DA9D4 cmp r0, #2 beq _021DA9E0 add sp, #8 pop {r3, r4, r5, r6, r7, pc} _021DA9C8: ldr r0, _021DAA24 ; =0x00000478 add sp, #8 ldr r1, [r5, r0] add r1, r1, #1 str r1, [r5, r0] pop {r3, r4, r5, r6, r7, pc} _021DA9D4: ldr r0, _021DAA28 ; =0x0000047C add sp, #8 ldr r1, [r5, r0] add r1, r1, #1 str r1, [r5, r0] pop {r3, r4, r5, r6, r7, pc} _021DA9E0: mov r0, #0x12 lsl r0, r0, #6 ldr r1, [r5, r0] add sp, #8 add r1, r1, #1 str r1, [r5, r0] pop {r3, r4, r5, r6, r7, pc} _021DA9EE: add r6, r6, #1 add r4, #0xc cmp r6, #6 blt _021DA98E sub r1, r6, #1 mov r0, #0xc add r2, r1, #0 mul r2, r0 ldr r0, [sp] add r1, r0, r2 ldr r0, [r1, #4] str r0, [r5, #0x50] ldr r0, [r1, #8] str r0, [r5, #0x4c] ldr r0, [r5, #0x50] lsl r1, r0, #2 ldr r0, _021DAA20 ; =0x021DFCC4 ldr r0, [r0, r1] str r0, [r5, #0x18] bl ErrorHandling add sp, #8 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021DAA1C: .word 0x021E0090 _021DAA20: .word 0x021DFCC4 _021DAA24: .word 0x00000478 _021DAA28: .word 0x0000047C thumb_func_end MOD85_021DA96C thumb_func_start MOD85_021DAA2C MOD85_021DAA2C: ; 0x021DAA2C push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r6, r0, #0 mov r4, #0 bl MOD85_021DA7B8 str r0, [sp, #4] add r0, r6, #0 add r0, #0x88 ldr r1, [r0] mov r0, #0x48 mul r0, r1 ldr r2, _021DAABC ; =0x021DFEE0 ldr r1, [r6, #0x4c] add r2, r2, r0 mov r0, #0x18 mul r0, r1 add r5, r2, r0 str r5, [sp] add r7, sp, #4 _021DAA54: ldr r0, [r5] add r1, r7, #0 bl MOD85_021DA7C8 cmp r0, #1 bne _021DAAA4 ldr r0, [sp] lsl r1, r4, #3 add r0, r0, r1 ldr r1, [r0, #4] mov r0, #0x56 lsl r0, r0, #2 str r1, [r6, r0] ldr r0, [r6, r0] cmp r0, #0 beq _021DAA80 cmp r0, #1 beq _021DAA8C cmp r0, #2 beq _021DAA98 add sp, #8 pop {r3, r4, r5, r6, r7, pc} _021DAA80: ldr r0, _021DAAC0 ; =0x00000488 add sp, #8 ldr r1, [r6, r0] add r1, r1, #1 str r1, [r6, r0] pop {r3, r4, r5, r6, r7, pc} _021DAA8C: ldr r0, _021DAAC4 ; =0x00000484 add sp, #8 ldr r1, [r6, r0] add r1, r1, #1 str r1, [r6, r0] pop {r3, r4, r5, r6, r7, pc} _021DAA98: ldr r0, _021DAAC8 ; =0x0000048C add sp, #8 ldr r1, [r6, r0] add r1, r1, #1 str r1, [r6, r0] pop {r3, r4, r5, r6, r7, pc} _021DAAA4: add r4, r4, #1 add r5, #8 cmp r4, #3 blo _021DAA54 mov r0, #0x56 mov r1, #1 lsl r0, r0, #2 str r1, [r6, r0] bl ErrorHandling add sp, #8 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021DAABC: .word 0x021DFEE0 _021DAAC0: .word 0x00000488 _021DAAC4: .word 0x00000484 _021DAAC8: .word 0x0000048C thumb_func_end MOD85_021DAA2C thumb_func_start MOD85_021DAACC MOD85_021DAACC: ; 0x021DAACC push {r4, lr} add r1, r0, #0 add r1, #0x88 ldr r1, [r1] lsl r2, r1, #2 ldr r1, _021DAAEC ; =0x021DFC94 ldr r4, [r1, r2] bl MOD85_021DA7B8 cmp r0, r4 bhs _021DAAE6 mov r0, #1 pop {r4, pc} _021DAAE6: mov r0, #0 pop {r4, pc} nop _021DAAEC: .word 0x021DFC94 thumb_func_end MOD85_021DAACC thumb_func_start MOD85_021DAAF0 MOD85_021DAAF0: ; 0x021DAAF0 push {r3, r4, r5, lr} add r4, r0, #0 add r1, r4, #0 add r1, #0x88 ldr r1, [r1] ldr r2, _021DABE4 ; =0x021DFD84 lsl r1, r1, #4 add r5, r2, r1 bl MOD85_021DA7B8 str r0, [sp] mov r0, #0 str r0, [r4, #0x74] add r0, r4, #0 bl MOD85_021DAACC cmp r0, #0 bne _021DAB7A ldr r0, _021DABE8 ; =0x00000474 ldr r1, [r4, r0] add r1, r1, #1 str r1, [r4, r0] ldr r1, [r4, #0x50] cmp r1, #5 bhi _021DAB6A add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021DAB2E: ; jump table .short _021DAB3A - _021DAB2E - 2 ; case 0 .short _021DAB3A - _021DAB2E - 2 ; case 1 .short _021DAB3A - _021DAB2E - 2 ; case 2 .short _021DAB52 - _021DAB2E - 2 ; case 3 .short _021DAB52 - _021DAB2E - 2 ; case 4 .short _021DAB52 - _021DAB2E - 2 ; case 5 _021DAB3A: mov r1, #2 ldr r2, [r4, #0x74] lsl r1, r1, #8 orr r1, r2 str r1, [r4, #0x74] add r1, r0, #0 add r1, #0x44 ldr r1, [r4, r1] add r0, #0x44 add r1, r1, #1 str r1, [r4, r0] pop {r3, r4, r5, pc} _021DAB52: mov r1, #1 ldr r2, [r4, #0x74] lsl r1, r1, #8 orr r1, r2 str r1, [r4, #0x74] add r1, r0, #0 add r1, #0x40 ldr r1, [r4, r1] add r0, #0x40 add r1, r1, #1 str r1, [r4, r0] pop {r3, r4, r5, pc} _021DAB6A: bl ErrorHandling mov r0, #2 ldr r1, [r4, #0x74] lsl r0, r0, #8 orr r0, r1 str r0, [r4, #0x74] pop {r3, r4, r5, pc} _021DAB7A: ldr r0, [r5] add r1, sp, #0 bl MOD85_021DA7C8 cmp r0, #1 bne _021DAB98 ldr r1, [r4, #0x74] mov r0, #4 orr r0, r1 str r0, [r4, #0x74] ldr r0, _021DABEC ; =0x0000049C ldr r1, [r4, r0] add r1, r1, #1 str r1, [r4, r0] pop {r3, r4, r5, pc} _021DAB98: ldr r0, [r5, #4] add r1, sp, #0 bl MOD85_021DA7C8 cmp r0, #1 bne _021DABB6 ldr r1, [r4, #0x74] mov r0, #0x40 orr r0, r1 str r0, [r4, #0x74] ldr r0, _021DABF0 ; =0x000004AC ldr r1, [r4, r0] add r1, r1, #1 str r1, [r4, r0] pop {r3, r4, r5, pc} _021DABB6: ldr r0, [r5, #4] add r1, sp, #0 bl MOD85_021DA7C8 cmp r0, #1 bne _021DABD4 ldr r1, [r4, #0x74] mov r0, #0x10 orr r0, r1 str r0, [r4, #0x74] ldr r0, _021DABF4 ; =0x000004A4 ldr r1, [r4, r0] add r1, r1, #1 str r1, [r4, r0] pop {r3, r4, r5, pc} _021DABD4: mov r0, #1 str r0, [r4, #0x74] ldr r0, _021DABF8 ; =0x00000494 ldr r1, [r4, r0] add r1, r1, #1 str r1, [r4, r0] pop {r3, r4, r5, pc} nop _021DABE4: .word 0x021DFD84 _021DABE8: .word 0x00000474 _021DABEC: .word 0x0000049C _021DABF0: .word 0x000004AC _021DABF4: .word 0x000004A4 _021DABF8: .word 0x00000494 thumb_func_end MOD85_021DAAF0 thumb_func_start MOD85_021DABFC MOD85_021DABFC: ; 0x021DABFC push {r4, lr} add r4, r0, #0 bl MOD85_021DA7B8 add r4, #0x88 ldr r1, [r4] lsl r2, r1, #2 ldr r1, _021DAC1C ; =0x021DFCDC ldr r1, [r1, r2] cmp r0, r1 bhs _021DAC16 mov r0, #1 pop {r4, pc} _021DAC16: mov r0, #0 pop {r4, pc} nop _021DAC1C: .word 0x021DFCDC thumb_func_end MOD85_021DABFC thumb_func_start MOD85_021DAC20 MOD85_021DAC20: ; 0x021DAC20 push {r4, lr} add r4, r0, #0 bl MOD85_021DA7B8 add r4, #0x88 ldr r1, [r4] lsl r2, r1, #2 ldr r1, _021DAC40 ; =0x021DFC64 ldr r1, [r1, r2] cmp r0, r1 bhs _021DAC3A mov r0, #1 pop {r4, pc} _021DAC3A: mov r0, #0 pop {r4, pc} nop _021DAC40: .word 0x021DFC64 thumb_func_end MOD85_021DAC20 thumb_func_start MOD85_021DAC44 MOD85_021DAC44: ; 0x021DAC44 push {r4, lr} ldr r4, [r0, #0x18] bl MOD85_021DA7B8 cmp r0, r4 bhs _021DAC54 mov r0, #1 pop {r4, pc} _021DAC54: mov r0, #0 pop {r4, pc} thumb_func_end MOD85_021DAC44 thumb_func_start MOD85_021DAC58 MOD85_021DAC58: ; 0x021DAC58 push {r3, r4, r5, r6, lr} sub sp, #4 add r5, r0, #0 ldr r4, [r5, #0x18] bl MOD85_021DA7B8 str r0, [sp] add r0, r5, #0 add r0, #0x88 ldr r0, [r0] ldr r1, _021DACA8 ; =0x021DFCF4 lsl r0, r0, #3 add r6, r1, r0 ldr r0, [r5, #0x28] cmp r0, #2 bne _021DAC7C sub r4, #0xa b _021DAC9A _021DAC7C: ldr r0, [r6] add r1, sp, #0 bl MOD85_021DA7C8 cmp r0, #1 bne _021DAC8C sub r4, #0xa b _021DAC9A _021DAC8C: ldr r0, [r6, #4] add r1, sp, #0 bl MOD85_021DA7C8 cmp r0, #1 bne _021DAC9A sub r4, r4, #5 _021DAC9A: cmp r4, #0 bge _021DACA0 mov r4, #0 _021DACA0: str r4, [r5, #0x18] add sp, #4 pop {r3, r4, r5, r6, pc} nop _021DACA8: .word 0x021DFCF4 thumb_func_end MOD85_021DAC58 thumb_func_start MOD85_021DACAC MOD85_021DACAC: ; 0x021DACAC push {r3, r4, r5, lr} add r5, r0, #0 ldr r4, [r5, #0x18] bl MOD85_021DA7B8 str r0, [sp] add r5, #0x88 ldr r1, [r5] mov r0, #0x90 mul r0, r1 ldr r2, _021DAD08 ; =0x021E0240 mov r1, #0 add r5, r2, r0 add r2, r5, #0 _021DACC8: ldr r0, [r2] cmp r4, r0 blo _021DACF8 lsl r4, r1, #4 add r0, r5, r4 ldr r0, [r0, #4] add r1, sp, #0 bl MOD85_021DA7C8 cmp r0, #1 bne _021DACE2 mov r0, #1 pop {r3, r4, r5, pc} _021DACE2: add r0, r5, r4 ldr r0, [r0, #8] add r1, sp, #0 bl MOD85_021DA7C8 cmp r0, #1 bne _021DACF4 mov r0, #0 pop {r3, r4, r5, pc} _021DACF4: mov r0, #2 pop {r3, r4, r5, pc} _021DACF8: add r1, r1, #1 add r2, #0x10 cmp r1, #9 blt _021DACC8 bl ErrorHandling mov r0, #0 pop {r3, r4, r5, pc} .align 2, 0 _021DAD08: .word 0x021E0240 thumb_func_end MOD85_021DACAC thumb_func_start MOD85_021DAD0C MOD85_021DAD0C: ; 0x021DAD0C push {r4, lr} add r4, r0, #0 bl FUN_0201B9EC mov r1, #6 bl _s32_div_f str r1, [r4, #0x34] pop {r4, pc} .align 2, 0 thumb_func_end MOD85_021DAD0C thumb_func_start MOD85_021DAD20 MOD85_021DAD20: ; 0x021DAD20 push {r4, lr} mov r1, #0x12 lsl r1, r1, #4 add r4, r0, r1 mov r1, #0 str r1, [r4] str r1, [r4, #4] str r0, [r4, #0xc] ldr r0, _021DAD40 ; =MOD85_021DAD70 add r1, r4, #0 mov r2, #0x8a bl FUN_0200CA44 str r0, [r4, #0x10] pop {r4, pc} nop _021DAD40: .word MOD85_021DAD70 thumb_func_end MOD85_021DAD20 thumb_func_start MOD85_021DAD44 MOD85_021DAD44: ; 0x021DAD44 mov r1, #0x13 lsl r1, r1, #4 ldr r3, _021DAD50 ; =FUN_0200CAB4 ldr r0, [r0, r1] bx r3 nop _021DAD50: .word FUN_0200CAB4 thumb_func_end MOD85_021DAD44 thumb_func_start MOD85_021DAD54 MOD85_021DAD54: ; 0x021DAD54 mov r1, #0x49 lsl r1, r1, #2 mov r3, #0 str r3, [r0, r1] add r2, r1, #4 str r3, [r0, r2] mov r2, #1 sub r1, r1, #4 str r2, [r0, r1] bx lr thumb_func_end MOD85_021DAD54 thumb_func_start MOD85_021DAD68 MOD85_021DAD68: ; 0x021DAD68 mov r1, #0x49 lsl r1, r1, #2 ldr r0, [r0, r1] bx lr thumb_func_end MOD85_021DAD68 thumb_func_start MOD85_021DAD70 MOD85_021DAD70: ; 0x021DAD70 push {r3, r4, r5, lr} add r5, r1, #0 ldr r0, [r5] ldr r4, [r5, #0xc] cmp r0, #3 bhi _021DAE5E add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021DAD88: ; jump table .short _021DAE5E - _021DAD88 - 2 ; case 0 .short _021DAD90 - _021DAD88 - 2 ; case 1 .short _021DAD9E - _021DAD88 - 2 ; case 2 .short _021DADC0 - _021DAD88 - 2 ; case 3 _021DAD90: add r0, r5, #0 bl MOD85_021DAE70 ldr r0, [r5] add r0, r0, #1 str r0, [r5] pop {r3, r4, r5, pc} _021DAD9E: ldr r0, [r5, #0x14] cmp r0, #0 beq _021DADAC bl MOD85_021DB7B8 cmp r0, #1 bne _021DAE5E _021DADAC: ldr r0, [r5, #0x18] cmp r0, #0 beq _021DADBA bl MOD85_021DB7B8 cmp r0, #1 bne _021DAE5E _021DADBA: ldr r0, [r5] add r0, r0, #1 str r0, [r5] _021DADC0: mov r0, #1 lsl r0, r0, #0xa bl MOD85_021DBD54 cmp r0, #0 bne _021DADD2 ldr r0, [r4, #0x64] cmp r0, #0 bne _021DAE20 _021DADD2: ldr r0, _021DAE60 ; =0x0000062D bl FUN_020054C8 ldr r1, [r4, #0x60] ldr r0, [r4, #0x64] add r1, r1, r0 ldr r0, _021DAE64 ; =0x0000C350 str r1, [r4, #0x60] cmp r1, r0 blt _021DADE8 str r0, [r4, #0x60] _021DADE8: ldr r0, [r4, #8] cmp r0, #1 bne _021DADF6 ldr r1, [r4, #0x14] ldr r0, [r4, #0x64] add r0, r1, r0 str r0, [r4, #0x14] _021DADF6: mov r0, #0 str r0, [r4, #0x64] ldr r0, [r5, #0x14] cmp r0, #0 beq _021DAE08 bl FUN_02064520 mov r0, #0 str r0, [r5, #0x14] _021DAE08: ldr r0, [r5, #0x18] cmp r0, #0 beq _021DAE16 bl FUN_02064520 mov r0, #0 str r0, [r5, #0x18] _021DAE16: mov r0, #1 str r0, [r5, #4] mov r0, #0 str r0, [r5] pop {r3, r4, r5, pc} _021DAE20: ldr r1, _021DAE68 ; =0x021C48B8 mov r0, #3 ldr r2, [r1, #0x44] ldr r1, _021DAE6C ; =0x00000C03 tst r1, r2 beq _021DAE2E mov r0, #1 _021DAE2E: ldr r1, [r5, #8] add r1, r1, #1 str r1, [r5, #8] tst r0, r1 bne _021DAE5E ldr r0, [r4, #0x64] sub r0, r0, #1 str r0, [r4, #0x64] ldr r0, [r4, #0x60] add r1, r0, #1 ldr r0, _021DAE64 ; =0x0000C350 str r1, [r4, #0x60] cmp r1, r0 blt _021DAE4C str r0, [r4, #0x60] _021DAE4C: ldr r0, _021DAE60 ; =0x0000062D bl FUN_020054C8 ldr r0, [r4, #8] cmp r0, #1 bne _021DAE5E ldr r0, [r4, #0x14] add r0, r0, #1 str r0, [r4, #0x14] _021DAE5E: pop {r3, r4, r5, pc} .align 2, 0 _021DAE60: .word 0x0000062D _021DAE64: .word 0x0000C350 _021DAE68: .word 0x021C48B8 _021DAE6C: .word 0x00000C03 thumb_func_end MOD85_021DAD70 thumb_func_start MOD85_021DAE70 MOD85_021DAE70: ; 0x021DAE70 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 ldr r7, [r5, #0xc] ldr r6, [r7, #0x48] cmp r6, #0 bne _021DAE80 bl ErrorHandling _021DAE80: mov r4, #0 _021DAE82: mov r0, #1 tst r0, r6 beq _021DAEB4 ldr r0, [r5, #0x14] cmp r0, #0 bne _021DAE9C ldr r2, [r7, #0x64] add r0, r7, #0 add r1, r4, #0 bl MOD85_021DB784 str r0, [r5, #0x14] b _021DAEB4 _021DAE9C: ldr r0, [r5, #0x18] cmp r0, #0 bne _021DAEB0 ldr r2, [r7, #0x64] add r0, r7, #0 add r1, r4, #0 bl MOD85_021DB784 str r0, [r5, #0x18] b _021DAEB4 _021DAEB0: bl ErrorHandling _021DAEB4: add r4, r4, #1 lsr r6, r6, #1 cmp r4, #5 blt _021DAE82 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD85_021DAE70 thumb_func_start MOD85_021DAEC0 MOD85_021DAEC0: ; 0x021DAEC0 push {r4, lr} mov r1, #0x4f lsl r1, r1, #2 add r4, r0, r1 mov r1, #0 str r1, [r4] str r1, [r4, #4] str r0, [r4, #0x20] ldr r0, _021DAEE0 ; =MOD85_021DAF80 add r1, r4, #0 mov r2, #0x84 bl FUN_0200CA44 str r0, [r4, #0x24] pop {r4, pc} nop _021DAEE0: .word MOD85_021DAF80 thumb_func_end MOD85_021DAEC0 thumb_func_start MOD85_021DAEE4 MOD85_021DAEE4: ; 0x021DAEE4 mov r1, #0x16 lsl r1, r1, #4 ldr r3, _021DAEF0 ; =FUN_0200CAB4 ldr r0, [r0, r1] bx r3 nop _021DAEF0: .word FUN_0200CAB4 thumb_func_end MOD85_021DAEE4 thumb_func_start MOD85_021DAEF4 MOD85_021DAEF4: ; 0x021DAEF4 mov r2, #0x4f lsl r2, r2, #2 add r2, r0, r2 str r1, [r2] mov r0, #0 str r0, [r2, #4] str r0, [r2, #8] str r0, [r2, #0x10] bx lr .align 2, 0 thumb_func_end MOD85_021DAEF4 thumb_func_start MOD85_021DAF08 MOD85_021DAF08: ; 0x021DAF08 mov r1, #0x51 lsl r1, r1, #2 ldr r0, [r0, r1] bx lr thumb_func_end MOD85_021DAF08 thumb_func_start MOD85_021DAF10 MOD85_021DAF10: ; 0x021DAF10 push {r4, lr} mov r1, #0x52 add r4, r0, #0 mov r2, #0 lsl r1, r1, #2 str r2, [r4, r1] bl MOD85_021DD984 mov r1, #0x5d lsl r1, r1, #2 str r0, [r4, r1] add r0, r4, #0 bl MOD85_021DDB10 mov r1, #0x5e lsl r1, r1, #2 str r0, [r4, r1] add r0, r4, #0 bl MOD85_021DDCAC mov r1, #0x5f lsl r1, r1, #2 str r0, [r4, r1] add r0, r4, #0 bl MOD85_021DDE10 mov r1, #6 lsl r1, r1, #6 str r0, [r4, r1] pop {r4, pc} thumb_func_end MOD85_021DAF10 thumb_func_start MOD85_021DAF4C MOD85_021DAF4C: ; 0x021DAF4C push {r4, lr} add r4, r0, #0 mov r0, #0x52 mov r1, #1 lsl r0, r0, #2 str r1, [r4, r0] add r0, #0x2c ldr r0, [r4, r0] bl FUN_02064520 mov r0, #0x5e lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_02064520 mov r0, #0x5f lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_02064520 mov r0, #6 lsl r0, r0, #6 ldr r0, [r4, r0] bl FUN_02064520 pop {r4, pc} thumb_func_end MOD85_021DAF4C thumb_func_start MOD85_021DAF80 MOD85_021DAF80: ; 0x021DAF80 push {r3, r4, r5, lr} ldr r4, _021DAF9C ; =0x021DEED0 add r5, r1, #0 _021DAF86: ldr r1, [r5] add r0, r5, #0 lsl r1, r1, #2 ldr r2, [r4, r1] ldr r1, [r5, #4] lsl r1, r1, #2 ldr r1, [r2, r1] blx r1 cmp r0, #1 beq _021DAF86 pop {r3, r4, r5, pc} .align 2, 0 _021DAF9C: .word 0x021DEED0 thumb_func_end MOD85_021DAF80 thumb_func_start MOD85_021DAFA0 MOD85_021DAFA0: ; 0x021DAFA0 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x20] ldr r1, [r4, #0x18] bl MOD85_021DC4B4 str r0, [r4, #0x28] ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] mov r0, #0 pop {r4, pc} thumb_func_end MOD85_021DAFA0 thumb_func_start MOD85_021DAFB8 MOD85_021DAFB8: ; 0x021DAFB8 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x28] bl MOD85_021DC520 cmp r0, #0 bne _021DAFCA mov r0, #0 pop {r4, pc} _021DAFCA: ldr r0, [r4, #0x28] mov r1, #1 bl MOD85_021DC4EC ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] mov r0, #0 pop {r4, pc} thumb_func_end MOD85_021DAFB8 thumb_func_start MOD85_021DAFDC MOD85_021DAFDC: ; 0x021DAFDC push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x28] bl MOD85_021DC520 cmp r0, #0 bne _021DAFEE mov r0, #0 pop {r4, pc} _021DAFEE: ldr r0, [r4, #0x28] mov r1, #5 bl MOD85_021DC4EC mov r0, #1 str r0, [r4, #8] ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] mov r0, #0 pop {r4, pc} thumb_func_end MOD85_021DAFDC thumb_func_start MOD85_021DB004 MOD85_021DB004: ; 0x021DB004 mov r0, #0 bx lr thumb_func_end MOD85_021DB004 thumb_func_start MOD85_021DB008 MOD85_021DB008: ; 0x021DB008 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x28] mov r1, #4 bl MOD85_021DC4EC ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] mov r0, #0 pop {r4, pc} .align 2, 0 thumb_func_end MOD85_021DB008 thumb_func_start MOD85_021DB020 MOD85_021DB020: ; 0x021DB020 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x28] bl MOD85_021DC520 cmp r0, #1 bne _021DB03E ldr r0, [r4, #0x28] bl FUN_02064520 mov r0, #1 str r0, [r4, #8] ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] _021DB03E: mov r0, #0 pop {r4, pc} .align 2, 0 thumb_func_end MOD85_021DB020 thumb_func_start MOD85_021DB044 MOD85_021DB044: ; 0x021DB044 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x28] mov r1, #2 bl MOD85_021DC4EC ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] mov r0, #0 pop {r4, pc} .align 2, 0 thumb_func_end MOD85_021DB044 thumb_func_start MOD85_021DB05C MOD85_021DB05C: ; 0x021DB05C push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x28] bl MOD85_021DC520 cmp r0, #1 bne _021DB082 ldr r0, [r4, #0x20] bl MOD85_021DCBE0 str r0, [r4, #0x2c] ldr r0, [r4, #0x20] ldr r1, [r4, #0x1c] bl MOD85_021DCEC0 str r0, [r4, #0x30] ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] _021DB082: mov r0, #0 pop {r4, pc} .align 2, 0 thumb_func_end MOD85_021DB05C thumb_func_start MOD85_021DB088 MOD85_021DB088: ; 0x021DB088 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x30] bl MOD85_021DCF0C cmp r0, #1 bne _021DB0AC ldr r0, [r4, #0x30] mov r1, #1 bl MOD85_021DCEF8 ldr r0, [r4, #0x28] mov r1, #1 bl MOD85_021DC500 ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] _021DB0AC: mov r0, #0 pop {r4, pc} thumb_func_end MOD85_021DB088 thumb_func_start MOD85_021DB0B0 MOD85_021DB0B0: ; 0x021DB0B0 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x30] bl MOD85_021DCF0C cmp r0, #1 bne _021DB0CE ldr r0, [r4, #0x2c] bl FUN_02064520 mov r0, #1 str r0, [r4, #8] ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] _021DB0CE: mov r0, #0 pop {r4, pc} .align 2, 0 thumb_func_end MOD85_021DB0B0 thumb_func_start MOD85_021DB0D4 MOD85_021DB0D4: ; 0x021DB0D4 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x20] bl MOD85_021DCBE0 str r0, [r4, #0x2c] ldr r0, [r4, #0x30] mov r1, #2 bl MOD85_021DCEF8 ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] mov r0, #0 pop {r4, pc} .align 2, 0 thumb_func_end MOD85_021DB0D4 thumb_func_start MOD85_021DB0F4 MOD85_021DB0F4: ; 0x021DB0F4 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x30] bl MOD85_021DCF0C cmp r0, #1 bne _021DB124 ldr r0, [r4, #0x30] bl FUN_02064520 ldr r0, [r4, #0x2c] bl FUN_02064520 ldr r0, [r4, #0x28] mov r1, #0 bl MOD85_021DC500 ldr r0, [r4, #0x28] mov r1, #3 bl MOD85_021DC4EC ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] _021DB124: mov r0, #0 pop {r4, pc} thumb_func_end MOD85_021DB0F4 thumb_func_start MOD85_021DB128 MOD85_021DB128: ; 0x021DB128 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x28] bl MOD85_021DC520 cmp r0, #1 bne _021DB144 ldr r0, [r4, #0x28] mov r1, #4 bl MOD85_021DC4EC ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] _021DB144: mov r0, #0 pop {r4, pc} thumb_func_end MOD85_021DB128 thumb_func_start MOD85_021DB148 MOD85_021DB148: ; 0x021DB148 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x28] bl MOD85_021DC520 cmp r0, #1 bne _021DB166 ldr r0, [r4, #0x28] bl FUN_02064520 mov r0, #1 str r0, [r4, #8] ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] _021DB166: mov r0, #0 pop {r4, pc} .align 2, 0 thumb_func_end MOD85_021DB148 thumb_func_start MOD85_021DB16C MOD85_021DB16C: ; 0x021DB16C push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x30] mov r1, #3 bl MOD85_021DCEF8 ldr r0, [r4, #0x20] bl MOD85_021DD54C str r0, [r4, #0x34] mov r0, #0 str r0, [r4, #0x10] ldr r1, [r4, #4] add r1, r1, #1 str r1, [r4, #4] pop {r4, pc} thumb_func_end MOD85_021DB16C thumb_func_start MOD85_021DB18C MOD85_021DB18C: ; 0x021DB18C push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x10] add r0, r0, #1 str r0, [r4, #0x10] cmp r0, #0x30 blt _021DB1B2 mov r0, #0 str r0, [r4, #0x10] ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] mov r0, #0x23 bl FUN_02005578 ldr r0, [r4, #0x30] mov r1, #4 bl MOD85_021DCEF8 _021DB1B2: mov r0, #0 pop {r4, pc} .align 2, 0 thumb_func_end MOD85_021DB18C thumb_func_start MOD85_021DB1B8 MOD85_021DB1B8: ; 0x021DB1B8 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x34] bl MOD85_021DD578 cmp r0, #1 bne _021DB1E2 ldr r0, [r4, #0x30] mov r1, #3 bl MOD85_021DCEF8 ldr r0, [r4, #0x34] bl FUN_02064520 ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] mov r0, #0 str r0, [r4, #0x10] mov r0, #1 str r0, [r4, #8] _021DB1E2: mov r0, #0 pop {r4, pc} .align 2, 0 thumb_func_end MOD85_021DB1B8 thumb_func_start MOD85_021DB1E8 MOD85_021DB1E8: ; 0x021DB1E8 push {r3, lr} ldr r1, [r0, #0x20] ldr r3, _021DB210 ; =0x021DEF04 ldr r2, [r1, #0x34] mov r1, #0x18 mul r1, r2 add r2, r3, r1 ldr r1, [r0, #4] add r1, r1, #1 str r1, [r0, #4] mov r1, #0 str r1, [r0, #0x14] lsl r1, r1, #2 add r1, r2, r1 ldr r0, [r0, #0x30] ldr r1, [r1, #0xc] bl MOD85_021DCEF8 mov r0, #0 pop {r3, pc} .align 2, 0 _021DB210: .word 0x021DEF04 thumb_func_end MOD85_021DB1E8 thumb_func_start MOD85_021DB214 MOD85_021DB214: ; 0x021DB214 push {r3, r4, r5, lr} ldr r2, [r0, #0x20] mov r1, #0 add r4, r1, #0 add r5, r2, #0 _021DB21E: ldr r3, [r5, #0x7c] cmp r3, #1 beq _021DB226 add r1, r1, #1 _021DB226: add r4, r4, #1 add r5, r5, #4 cmp r4, #3 blt _021DB21E ldr r3, [r0, #0x14] cmp r3, #2 bge _021DB250 cmp r3, r1 beq _021DB250 ldr r3, [r2, #0x34] mov r2, #0x18 ldr r4, _021DB254 ; =0x021DEF04 str r1, [r0, #0x14] mul r2, r3 add r2, r4, r2 lsl r1, r1, #2 add r1, r2, r1 ldr r0, [r0, #0x30] ldr r1, [r1, #0xc] bl MOD85_021DCEF8 _021DB250: mov r0, #0 pop {r3, r4, r5, pc} .align 2, 0 _021DB254: .word 0x021DEF04 thumb_func_end MOD85_021DB214 thumb_func_start MOD85_021DB258 MOD85_021DB258: ; 0x021DB258 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x30] mov r1, #3 bl MOD85_021DCEF8 ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] mov r0, #0 pop {r4, pc} .align 2, 0 thumb_func_end MOD85_021DB258 thumb_func_start MOD85_021DB270 MOD85_021DB270: ; 0x021DB270 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x20] bl MOD85_021DAF4C ldr r0, [r4, #0x20] bl MOD85_021DCBE0 str r0, [r4, #0x2c] ldr r0, [r4, #0x30] mov r1, #2 bl MOD85_021DCEF8 ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] mov r0, #0 pop {r4, pc} thumb_func_end MOD85_021DB270 thumb_func_start MOD85_021DB294 MOD85_021DB294: ; 0x021DB294 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x30] bl MOD85_021DCF0C cmp r0, #1 bne _021DB2C4 ldr r0, [r4, #0x30] bl FUN_02064520 ldr r0, [r4, #0x2c] bl FUN_02064520 ldr r0, [r4, #0x28] mov r1, #0 bl MOD85_021DC500 ldr r0, [r4, #0x28] mov r1, #3 bl MOD85_021DC4EC ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] _021DB2C4: mov r0, #0 pop {r4, pc} thumb_func_end MOD85_021DB294 thumb_func_start MOD85_021DB2C8 MOD85_021DB2C8: ; 0x021DB2C8 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x28] bl MOD85_021DC520 cmp r0, #1 bne _021DB2F8 ldr r0, [r4, #0x20] bl MOD85_021DDA30 ldr r0, [r4, #0x20] bl MOD85_021DDBBC ldr r0, [r4, #0x20] mov r1, #0 bl MOD85_021DDF40 ldr r0, [r4, #0x20] mov r1, #1 bl MOD85_021DDF40 ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] _021DB2F8: mov r0, #0 pop {r4, pc} thumb_func_end MOD85_021DB2C8 thumb_func_start MOD85_021DB2FC MOD85_021DB2FC: ; 0x021DB2FC push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x10] add r0, r0, #1 str r0, [r4, #0x10] cmp r0, #0x2d blt _021DB31C mov r0, #0 str r0, [r4, #0x10] ldr r0, [r4, #0x28] mov r1, #4 bl MOD85_021DC4EC ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] _021DB31C: mov r0, #0 pop {r4, pc} thumb_func_end MOD85_021DB2FC thumb_func_start MOD85_021DB320 MOD85_021DB320: ; 0x021DB320 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x28] bl MOD85_021DC520 cmp r0, #1 bne _021DB33E ldr r0, [r4, #0x28] bl FUN_02064520 mov r0, #1 str r0, [r4, #8] ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] _021DB33E: mov r0, #0 pop {r4, pc} .align 2, 0 thumb_func_end MOD85_021DB320 thumb_func_start MOD85_021DB344 MOD85_021DB344: ; 0x021DB344 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x30] mov r1, #4 bl MOD85_021DCEF8 mov r0, #1 str r0, [r4, #8] ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] mov r0, #0 pop {r4, pc} .align 2, 0 thumb_func_end MOD85_021DB344 thumb_func_start MOD85_021DB360 MOD85_021DB360: ; 0x021DB360 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x30] mov r1, #8 bl MOD85_021DCEF8 mov r0, #1 str r0, [r4, #8] ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] mov r0, #0 pop {r4, pc} .align 2, 0 thumb_func_end MOD85_021DB360 thumb_func_start MOD85_021DB37C MOD85_021DB37C: ; 0x021DB37C push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x28] mov r1, #6 bl MOD85_021DC4EC ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] mov r0, #1 str r0, [r4, #8] mov r0, #0 pop {r4, pc} .align 2, 0 thumb_func_end MOD85_021DB37C thumb_func_start MOD85_021DB398 MOD85_021DB398: ; 0x021DB398 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x20] bl MOD85_021DCBE0 str r0, [r4, #0x2c] ldr r0, [r4, #0x30] mov r1, #2 bl MOD85_021DCEF8 mov r0, #1 str r0, [r4, #0xc] ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] mov r0, #0 pop {r4, pc} .align 2, 0 thumb_func_end MOD85_021DB398 thumb_func_start MOD85_021DB3BC MOD85_021DB3BC: ; 0x021DB3BC push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x30] bl MOD85_021DCF0C cmp r0, #1 bne _021DB3F0 ldr r0, [r4, #0x2c] bl FUN_02064520 ldr r0, [r4, #0x30] bl FUN_02064520 ldr r0, [r4, #0x28] mov r1, #0 bl MOD85_021DC500 ldr r0, [r4, #0x28] mov r1, #3 bl MOD85_021DC4EC mov r0, #0 str r0, [r4, #0x10] ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] _021DB3F0: mov r0, #0 pop {r4, pc} thumb_func_end MOD85_021DB3BC thumb_func_start MOD85_021DB3F4 MOD85_021DB3F4: ; 0x021DB3F4 push {r3, lr} ldr r1, [r0, #0x10] add r1, r1, #1 str r1, [r0, #0x10] cmp r1, #0x1e blt _021DB412 mov r1, #0 str r1, [r0, #0x10] ldr r1, [r0, #4] add r1, r1, #1 str r1, [r0, #4] ldr r0, [r0, #0x28] mov r1, #2 bl MOD85_021DC4EC _021DB412: mov r0, #0 pop {r3, pc} .align 2, 0 thumb_func_end MOD85_021DB3F4 thumb_func_start MOD85_021DB418 MOD85_021DB418: ; 0x021DB418 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x28] bl MOD85_021DC520 cmp r0, #1 bne _021DB442 ldr r0, [r4, #0x20] bl MOD85_021DCBE0 str r0, [r4, #0x2c] ldr r0, [r4, #0x20] ldr r1, [r4, #0x1c] bl MOD85_021DCEC0 str r0, [r4, #0x30] mov r0, #0 str r0, [r4, #0xc] ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] _021DB442: mov r0, #0 pop {r4, pc} .align 2, 0 thumb_func_end MOD85_021DB418 thumb_func_start MOD85_021DB448 MOD85_021DB448: ; 0x021DB448 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x30] bl MOD85_021DCF0C cmp r0, #1 bne _021DB46C ldr r0, [r4, #0x30] mov r1, #1 bl MOD85_021DCEF8 ldr r0, [r4, #0x28] mov r1, #1 bl MOD85_021DC500 ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] _021DB46C: mov r0, #0 pop {r4, pc} thumb_func_end MOD85_021DB448 thumb_func_start MOD85_021DB470 MOD85_021DB470: ; 0x021DB470 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x30] bl MOD85_021DCF0C cmp r0, #1 bne _021DB48E ldr r0, [r4, #0x2c] bl FUN_02064520 mov r0, #1 str r0, [r4, #8] ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] _021DB48E: mov r0, #0 pop {r4, pc} .align 2, 0 thumb_func_end MOD85_021DB470 thumb_func_start MOD85_021DB494 MOD85_021DB494: ; 0x021DB494 push {r3, r4, r5, r6, lr} sub sp, #4 mov r1, #0x61 add r5, r0, #0 lsl r1, r1, #2 add r4, r5, r1 mov r1, #3 mov r2, #0 str r5, [r4] bl MOD85_021D8144 add r1, sp, #0 add r6, r0, #0 bl FUN_020B0138 ldr r0, [sp] mov r1, #1 add r2, r4, #4 bl MOD85_021DB604 add r2, r4, #0 ldr r0, [sp] mov r1, #2 add r2, #0xa4 bl MOD85_021DB604 add r2, r4, #0 ldr r0, [sp] mov r1, #3 add r2, #0xc4 bl MOD85_021DB604 add r2, r4, #0 ldr r0, [sp] mov r1, #3 add r2, #0xe4 bl MOD85_021DB604 mov r2, #0x41 lsl r2, r2, #2 ldr r0, [sp] mov r1, #4 add r2, r4, r2 bl MOD85_021DB604 mov r2, #0x49 lsl r2, r2, #2 ldr r0, [sp] mov r1, #4 add r2, r4, r2 bl MOD85_021DB604 add r0, r6, #0 bl FUN_02016A18 add r0, r5, #0 mov r1, #5 mov r2, #0 bl MOD85_021D8144 add r1, sp, #0 add r6, r0, #0 bl FUN_020B0138 add r2, r4, #0 ldr r0, [sp] mov r1, #0 add r2, #0x24 bl MOD85_021DB604 add r0, r6, #0 bl FUN_02016A18 add r0, r5, #0 mov r1, #6 mov r2, #0 bl MOD85_021D8144 add r1, sp, #0 add r6, r0, #0 bl FUN_020B0138 add r2, r4, #0 ldr r0, [sp] mov r1, #0 add r2, #0x44 bl MOD85_021DB604 add r0, r6, #0 bl FUN_02016A18 add r0, r5, #0 mov r1, #7 mov r2, #0 bl MOD85_021D8144 add r1, sp, #0 add r6, r0, #0 bl FUN_020B0138 add r2, r4, #0 ldr r0, [sp] mov r1, #0 add r2, #0x64 bl MOD85_021DB604 add r0, r6, #0 bl FUN_02016A18 add r0, r5, #0 mov r1, #0x4a mov r2, #0 bl MOD85_021D8144 add r1, sp, #0 add r6, r0, #0 bl FUN_020B0138 mov r2, #0x51 lsl r2, r2, #2 ldr r0, [sp] mov r1, #0 add r2, r4, r2 bl MOD85_021DB604 add r0, r6, #0 bl FUN_02016A18 add r0, r5, #0 mov r1, #0x4b mov r2, #0 bl MOD85_021D8144 add r1, sp, #0 add r6, r0, #0 bl FUN_020B0138 mov r2, #0x59 lsl r2, r2, #2 ldr r0, [sp] mov r1, #0 add r2, r4, r2 bl MOD85_021DB604 mov r2, #0x61 lsl r2, r2, #2 ldr r0, [sp] mov r1, #0 add r2, r4, r2 bl MOD85_021DB604 add r0, r6, #0 bl FUN_02016A18 add r0, r5, #0 mov r1, #0x4c mov r2, #0 bl MOD85_021D8144 add r1, sp, #0 add r5, r0, #0 bl FUN_020B0138 mov r2, #0x69 lsl r2, r2, #2 ldr r0, [sp] mov r1, #0 add r2, r4, r2 bl MOD85_021DB604 mov r2, #0x71 lsl r2, r2, #2 ldr r0, [sp] mov r1, #0 add r2, r4, r2 bl MOD85_021DB604 add r0, r5, #0 bl FUN_02016A18 add sp, #4 pop {r3, r4, r5, r6, pc} thumb_func_end MOD85_021DB494 thumb_func_start MOD85_021DB600 MOD85_021DB600: ; 0x021DB600 bx lr .align 2, 0 thumb_func_end MOD85_021DB600 thumb_func_start MOD85_021DB604 MOD85_021DB604: ; 0x021DB604 ldr r3, [r0, #0xc] lsl r0, r1, #5 add r3, r3, r0 mov r1, #0 _021DB60C: ldrh r0, [r3] add r1, r1, #1 add r3, r3, #2 strh r0, [r2] add r2, r2, #2 cmp r1, #0x10 blt _021DB60C bx lr thumb_func_end MOD85_021DB604 thumb_func_start MOD85_021DB61C MOD85_021DB61C: ; 0x021DB61C push {r0, r1, r2, r3} push {r3, r4, r5, r6} add r1, r2, #0 add r0, r3, #0 add r2, sp, #0x10 add r3, sp, #0x14 cmp r1, #0x10 bls _021DB62E mov r1, #0x10 _021DB62E: ldrh r4, [r2] ldrh r3, [r3] lsl r2, r4, #0x16 lsr r6, r2, #0x1b lsl r2, r4, #0x1b lsr r5, r2, #0x1b lsl r2, r4, #0x11 lsl r4, r3, #0x11 lsr r2, r2, #0x1b lsr r4, r4, #0x1b sub r4, r4, r2 mul r4, r1 asr r4, r4, #4 add r2, r2, r4 lsl r4, r2, #0xa lsl r2, r3, #0x1b lsl r3, r3, #0x16 lsr r3, r3, #0x1b lsr r2, r2, #0x1b sub r3, r3, r6 sub r2, r2, r5 mul r2, r1 mul r3, r1 asr r1, r3, #4 asr r2, r2, #4 add r1, r6, r1 add r2, r5, r2 lsl r1, r1, #5 orr r1, r2 orr r1, r4 strh r1, [r0] pop {r3, r4, r5, r6} add sp, #0x10 bx lr .align 2, 0 thumb_func_end MOD85_021DB61C thumb_func_start MOD85_021DB674 MOD85_021DB674: ; 0x021DB674 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 add r4, r1, #0 str r2, [sp] add r6, r3, #0 mov r7, #0 _021DB680: ldrh r0, [r5] ldrh r1, [r4] ldr r2, [sp] add r3, r6, #0 bl MOD85_021DB61C add r7, r7, #1 add r6, r6, #2 add r4, r4, #2 add r5, r5, #2 cmp r7, #0x10 blt _021DB680 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD85_021DB674 thumb_func_start MOD85_021DB69C MOD85_021DB69C: ; 0x021DB69C push {r4, lr} add r4, r2, #0 lsl r0, r1, #0x18 add r1, r3, #0 lsl r3, r4, #0x15 lsr r0, r0, #0x18 mov r2, #0x20 lsr r3, r3, #0x10 bl FUN_02017FB4 pop {r4, pc} .align 2, 0 thumb_func_end MOD85_021DB69C thumb_func_start MOD85_021DB6B4 MOD85_021DB6B4: ; 0x021DB6B4 push {r4, lr} add r3, r1, #0 lsl r4, r3, #2 ldr r2, _021DB6D0 ; =0x021E05C0 lsl r3, r3, #5 ldr r2, [r2, r4] mov r4, #0x8a lsl r4, r4, #2 add r4, r0, r4 mov r1, #1 add r3, r4, r3 bl MOD85_021DB69C pop {r4, pc} .align 2, 0 _021DB6D0: .word 0x021E05C0 thumb_func_end MOD85_021DB6B4 thumb_func_start MOD85_021DB6D4 MOD85_021DB6D4: ; 0x021DB6D4 push {r3, r4, r5, r6, r7, lr} add r7, r0, #0 mov r2, #0x61 lsl r2, r2, #2 ldr r0, _021DB710 ; =0x021E05C0 lsl r4, r1, #2 ldr r6, [r0, r4] add r0, r2, #0 add r3, r7, r2 add r0, #0x60 add r4, r3, r0 add r0, r3, #0 sub r2, #0x40 lsl r5, r1, #5 add r1, r3, r2 add r0, #0xa4 add r0, r0, r5 add r1, r1, r5 mov r2, #0xa add r3, r4, r5 bl MOD85_021DB674 add r0, r7, #0 mov r1, #1 add r2, r6, #0 add r3, r4, r5 bl MOD85_021DB69C pop {r3, r4, r5, r6, r7, pc} nop _021DB710: .word 0x021E05C0 thumb_func_end MOD85_021DB6D4 thumb_func_start MOD85_021DB714 MOD85_021DB714: ; 0x021DB714 push {r3, r4, r5, r6, r7, lr} add r7, r0, #0 mov r2, #0x61 lsl r2, r2, #2 ldr r0, _021DB750 ; =0x021E05C0 lsl r4, r1, #2 ldr r6, [r0, r4] add r0, r2, #0 add r3, r7, r2 add r0, #0x60 add r4, r3, r0 add r0, r3, #0 sub r2, #0x40 lsl r5, r1, #5 add r1, r3, r2 add r0, #0xa4 add r0, r0, r5 add r1, r1, r5 mov r2, #0xc add r3, r4, r5 bl MOD85_021DB674 add r0, r7, #0 mov r1, #1 add r2, r6, #0 add r3, r4, r5 bl MOD85_021DB69C pop {r3, r4, r5, r6, r7, pc} nop _021DB750: .word 0x021E05C0 thumb_func_end MOD85_021DB714 thumb_func_start MOD85_021DB754 MOD85_021DB754: ; 0x021DB754 push {r3, r4, r5, lr} add r5, r0, #0 mov r4, #0 _021DB75A: add r0, r5, #0 add r1, r4, #0 bl MOD85_021DB6B4 add r4, r4, #1 cmp r4, #5 blt _021DB75A pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD85_021DB754 thumb_func_start MOD85_021DB76C MOD85_021DB76C: ; 0x021DB76C push {r3, r4, r5, lr} add r5, r0, #0 mov r4, #0 _021DB772: add r0, r5, #0 add r1, r4, #0 bl MOD85_021DB6D4 add r4, r4, #1 cmp r4, #5 blt _021DB772 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD85_021DB76C thumb_func_start MOD85_021DB784 MOD85_021DB784: ; 0x021DB784 push {r4, lr} sub sp, #0x20 add r4, sp, #0x14 mov r3, #0 str r3, [r4] str r3, [r4, #4] str r1, [sp, #8] str r2, [sp, #0xc] str r3, [r4, #8] str r0, [sp, #0x10] add r1, sp, #8 str r1, [sp] mov r1, #0x8f str r1, [sp, #4] ldr r1, _021DB7B0 ; =0x0000044C add r2, r4, #0 ldr r0, [r0, r1] ldr r1, _021DB7B4 ; =0x021DEE0C bl FUN_020644E4 add sp, #0x20 pop {r4, pc} .align 2, 0 _021DB7B0: .word 0x0000044C _021DB7B4: .word 0x021DEE0C thumb_func_end MOD85_021DB784 thumb_func_start MOD85_021DB7B8 MOD85_021DB7B8: ; 0x021DB7B8 push {r3, lr} bl FUN_02064738 ldr r0, [r0, #0xc] pop {r3, pc} .align 2, 0 thumb_func_end MOD85_021DB7B8 thumb_func_start MOD85_021DB7C4 MOD85_021DB7C4: ; 0x021DB7C4 push {r4, lr} add r4, r1, #0 bl FUN_0206475C ldr r1, [r0, #8] str r1, [r4, #0x1c] ldr r1, [r0] str r1, [r4, #0x10] ldr r0, [r0, #4] str r0, [r4, #0x14] mov r0, #0x61 ldr r1, [r4, #0x1c] lsl r0, r0, #2 add r0, r1, r0 str r0, [r4, #0x20] mov r0, #1 pop {r4, pc} .align 2, 0 thumb_func_end MOD85_021DB7C4 thumb_func_start MOD85_021DB7E8 MOD85_021DB7E8: ; 0x021DB7E8 ldr r3, _021DB7F0 ; =MOD85_021DB6B4 ldr r0, [r1, #0x1c] ldr r1, [r1, #0x10] bx r3 .align 2, 0 _021DB7F0: .word MOD85_021DB6B4 thumb_func_end MOD85_021DB7E8 thumb_func_start MOD85_021DB7F4 MOD85_021DB7F4: ; 0x021DB7F4 push {r3, r4, r5, r6, r7, lr} add r4, r1, #0 ldr r2, [r4, #0x10] ldr r0, _021DB958 ; =0x021E05C0 lsl r1, r2, #2 ldr r0, [r0, r1] lsl r5, r2, #5 mov r1, #0x79 ldr r2, [r4, #0x20] lsl r1, r1, #2 add r6, r2, r1 sub r1, #0xa0 str r0, [sp] add r0, r2, #0 add r1, r2, r1 ldr r2, [r4] add r0, #0xa4 cmp r2, #4 bls _021DB81C b _021DB956 _021DB81C: add r2, r2, r2 add r2, pc ldrh r2, [r2, #6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _021DB828: ; jump table .short _021DB832 - _021DB828 - 2 ; case 0 .short _021DB874 - _021DB828 - 2 ; case 1 .short _021DB8D8 - _021DB828 - 2 ; case 2 .short _021DB91A - _021DB828 - 2 ; case 3 .short _021DB956 - _021DB828 - 2 ; case 4 _021DB832: mov r7, #1 ldr r2, [r4, #0x18] lsl r7, r7, #0xe add r3, r2, r7 lsl r2, r7, #2 str r3, [r4, #0x18] cmp r3, r2 ble _021DB844 str r2, [r4, #0x18] _021DB844: ldr r2, [r4, #0x18] asr r3, r2, #0xb lsr r3, r3, #0x14 add r3, r2, r3 asr r2, r3, #0xc cmp r2, #0x10 bne _021DB858 ldr r3, [r4] add r3, r3, #1 str r3, [r4] _021DB858: lsl r2, r2, #0x10 add r0, r0, r5 add r1, r1, r5 lsr r2, r2, #0x10 add r3, r6, r5 bl MOD85_021DB674 ldr r0, [r4, #0x1c] ldr r2, [sp] mov r1, #1 add r3, r6, r5 bl MOD85_021DB69C pop {r3, r4, r5, r6, r7, pc} _021DB874: mov r2, #1 ldr r3, [r4, #0x18] lsl r2, r2, #0xe sub r2, r3, r2 str r2, [r4, #0x18] bpl _021DB884 mov r2, #0 str r2, [r4, #0x18] _021DB884: ldr r2, [r4, #0x18] asr r3, r2, #0xb lsr r3, r3, #0x14 add r3, r2, r3 asr r2, r3, #0xc bne _021DB8BC ldr r3, [r4, #4] add r3, r3, #1 str r3, [r4, #4] cmp r3, #4 blt _021DB8B6 ldr r3, [r4, #0x14] cmp r3, #0 beq _021DB8AC ldr r3, [r4] add r3, r3, #1 str r3, [r4] mov r3, #1 str r3, [r4, #0xc] b _021DB8BC _021DB8AC: mov r3, #4 str r3, [r4] mov r3, #1 str r3, [r4, #0xc] b _021DB8BC _021DB8B6: ldr r3, [r4] sub r3, r3, #1 str r3, [r4] _021DB8BC: lsl r2, r2, #0x10 add r0, r0, r5 add r1, r1, r5 lsr r2, r2, #0x10 add r3, r6, r5 bl MOD85_021DB674 ldr r0, [r4, #0x1c] ldr r2, [sp] mov r1, #1 add r3, r6, r5 bl MOD85_021DB69C pop {r3, r4, r5, r6, r7, pc} _021DB8D8: mov r7, #2 ldr r2, [r4, #0x18] lsl r7, r7, #0xe add r3, r2, r7 lsl r2, r7, #1 str r3, [r4, #0x18] cmp r3, r2 ble _021DB8EA str r2, [r4, #0x18] _021DB8EA: ldr r2, [r4, #0x18] asr r3, r2, #0xb lsr r3, r3, #0x14 add r3, r2, r3 asr r2, r3, #0xc cmp r2, #0x10 bne _021DB8FE ldr r3, [r4] add r3, r3, #1 str r3, [r4] _021DB8FE: lsl r2, r2, #0x10 add r0, r0, r5 add r1, r1, r5 lsr r2, r2, #0x10 add r3, r6, r5 bl MOD85_021DB674 ldr r0, [r4, #0x1c] ldr r2, [sp] mov r1, #1 add r3, r6, r5 bl MOD85_021DB69C pop {r3, r4, r5, r6, r7, pc} _021DB91A: mov r2, #2 ldr r3, [r4, #0x18] lsl r2, r2, #0xe sub r2, r3, r2 str r2, [r4, #0x18] bpl _021DB92A mov r2, #0 str r2, [r4, #0x18] _021DB92A: ldr r2, [r4, #0x18] asr r3, r2, #0xb lsr r3, r3, #0x14 add r3, r2, r3 asr r2, r3, #0xc bne _021DB93C ldr r3, [r4] sub r3, r3, #1 str r3, [r4] _021DB93C: lsl r2, r2, #0x10 add r0, r0, r5 add r1, r1, r5 lsr r2, r2, #0x10 add r3, r6, r5 bl MOD85_021DB674 ldr r0, [r4, #0x1c] ldr r2, [sp] mov r1, #1 add r3, r6, r5 bl MOD85_021DB69C _021DB956: pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021DB958: .word 0x021E05C0 thumb_func_end MOD85_021DB7F4 thumb_func_start MOD85_021DB95C MOD85_021DB95C: ; 0x021DB95C push {r3, r4, lr} sub sp, #0x14 add r4, r0, #0 add r1, sp, #8 mov r0, #0 str r0, [r1] str r0, [r1, #4] str r0, [r1, #8] mov r0, #0x4d lsl r0, r0, #2 ldr r0, [r4, r0] cmp r0, #0 beq _021DB97A bl ErrorHandling _021DB97A: str r4, [sp] mov r0, #0x8f str r0, [sp, #4] ldr r0, _021DB998 ; =0x0000044C ldr r1, _021DB99C ; =0x021DEE5C ldr r0, [r4, r0] add r2, sp, #8 mov r3, #0 bl FUN_020644E4 mov r1, #0x4d lsl r1, r1, #2 str r0, [r4, r1] add sp, #0x14 pop {r3, r4, pc} .align 2, 0 _021DB998: .word 0x0000044C _021DB99C: .word 0x021DEE5C thumb_func_end MOD85_021DB95C thumb_func_start MOD85_021DB9A0 MOD85_021DB9A0: ; 0x021DB9A0 push {r4, lr} add r4, r0, #0 mov r0, #0x4d lsl r0, r0, #2 ldr r0, [r4, r0] cmp r0, #0 beq _021DB9BA bl FUN_02064520 mov r0, #0x4d mov r1, #0 lsl r0, r0, #2 str r1, [r4, r0] _021DB9BA: add r0, r4, #0 bl MOD85_021DB754 pop {r4, pc} .align 2, 0 thumb_func_end MOD85_021DB9A0 thumb_func_start MOD85_021DB9C4 MOD85_021DB9C4: ; 0x021DB9C4 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r6, r0, #0 ldr r0, [r6, #4] ldr r1, _021DBADC ; =0x021DF094 lsl r0, r0, #4 add r4, r1, r0 mov r0, #1 str r0, [sp, #8] str r0, [sp, #0xc] ldr r0, _021DBAE0 ; =0x021E05C0 add r5, r6, #0 str r0, [sp] mov r7, #0 _021DB9E0: ldr r1, [r4] ldr r0, [sp, #0xc] tst r0, r1 beq _021DBA6C ldr r0, [r6, #8] cmp r0, #0 bne _021DB9F8 ldr r0, [r4, #4] str r0, [r5, #0x14] mov r0, #0 str r0, [sp, #8] b _021DBA2C _021DB9F8: ldr r1, [r4, #4] ldr r0, [r4, #8] cmp r1, r0 ldr r1, [r5, #0x14] bge _021DBA18 ldr r0, [r4, #0xc] add r1, r1, r0 str r1, [r5, #0x14] ldr r0, [r4, #8] cmp r1, r0 blt _021DBA12 str r0, [r5, #0x14] b _021DBA2C _021DBA12: mov r0, #0 str r0, [sp, #8] b _021DBA2C _021DBA18: ldr r0, [r4, #0xc] sub r1, r1, r0 str r1, [r5, #0x14] ldr r0, [r4, #8] cmp r1, r0 bgt _021DBA28 str r0, [r5, #0x14] b _021DBA2C _021DBA28: mov r0, #0 str r0, [sp, #8] _021DBA2C: ldr r0, [sp] mov r2, #0x51 ldr r0, [r0] ldr r1, [r6, #0x2c] str r0, [sp, #4] mov r0, #0x79 lsl r0, r0, #2 add r0, r1, r0 str r0, [sp, #0x10] add r0, r1, #0 lsl r2, r2, #2 add r1, r1, r2 ldr r3, [r5, #0x14] add r0, #0xa4 asr r2, r3, #0xb lsr r2, r2, #0x14 add r2, r3, r2 ldr r3, [sp, #0x10] lsl r2, r2, #4 add r0, r0, r7 add r1, r1, r7 lsr r2, r2, #0x10 add r3, r3, r7 bl MOD85_021DB674 ldr r3, [sp, #0x10] ldr r0, [r6, #0x28] ldr r2, [sp, #4] mov r1, #1 add r3, r3, r7 bl MOD85_021DB69C _021DBA6C: ldr r0, [sp] add r5, r5, #4 add r0, r0, #4 str r0, [sp] ldr r0, [sp, #0xc] add r7, #0x20 lsl r0, r0, #1 str r0, [sp, #0xc] cmp r0, #0x10 bls _021DB9E0 cmp r0, #0x20 bhi _021DBAB6 add r5, r6, #0 mov r7, #1 add r5, #0xc mov r1, #0 lsl r7, r7, #0xc mov r0, #0x20 _021DBA90: ldr r2, [r4] tst r2, r0 beq _021DBAAC ldr r2, [r5] add r2, r2, r7 str r2, [r5] ldr r3, [r6, #0xc] ldr r2, [r4, #4] cmp r3, r2 blt _021DBAA8 str r1, [r6, #0xc] b _021DBAAC _021DBAA8: mov r2, #0 str r2, [sp, #8] _021DBAAC: ldr r2, [sp, #0xc] lsl r2, r2, #1 str r2, [sp, #0xc] cmp r2, #0x20 bls _021DBA90 _021DBAB6: mov r0, #1 str r0, [r6, #8] ldr r0, [sp, #8] cmp r0, #1 bne _021DBAD6 mov r3, #0 str r3, [r6, #8] ldr r0, [r6, #4] ldr r1, _021DBADC ; =0x021DF094 add r0, r0, #1 str r0, [r6, #4] lsl r0, r0, #4 ldr r0, [r1, r0] cmp r0, #0x40 bne _021DBAD6 str r3, [r6, #4] _021DBAD6: add sp, #0x14 pop {r4, r5, r6, r7, pc} nop _021DBADC: .word 0x021DF094 _021DBAE0: .word 0x021E05C0 thumb_func_end MOD85_021DB9C4 thumb_func_start MOD85_021DBAE4 MOD85_021DBAE4: ; 0x021DBAE4 push {r4, lr} add r4, r1, #0 bl FUN_0206475C mov r1, #0x61 lsl r1, r1, #2 str r0, [r4, #0x28] add r0, r0, r1 str r0, [r4, #0x2c] mov r0, #1 pop {r4, pc} .align 2, 0 thumb_func_end MOD85_021DBAE4 thumb_func_start MOD85_021DBAFC MOD85_021DBAFC: ; 0x021DBAFC bx lr .align 2, 0 thumb_func_end MOD85_021DBAFC thumb_func_start MOD85_021DBB00 MOD85_021DBB00: ; 0x021DBB00 ldr r3, _021DBB08 ; =MOD85_021DB9C4 add r0, r1, #0 bx r3 nop _021DBB08: .word MOD85_021DB9C4 thumb_func_end MOD85_021DBB00 thumb_func_start MOD85_021DBB0C MOD85_021DBB0C: ; 0x021DBB0C push {r4, lr} add r4, r0, #0 mov r0, #0x4f mov r1, #0x10 bl FUN_020169D8 add r1, r0, #0 mov r0, #0 str r0, [r1] str r0, [r1, #4] ldr r0, _021DBB2C ; =MOD85_021DBB88 mov r2, #0x8f str r4, [r1, #0xc] bl FUN_0200CA44 pop {r4, pc} .align 2, 0 _021DBB2C: .word MOD85_021DBB88 thumb_func_end MOD85_021DBB0C thumb_func_start MOD85_021DBB30 MOD85_021DBB30: ; 0x021DBB30 push {r4, lr} add r4, r0, #0 mov r0, #0x4f mov r1, #0x10 bl FUN_020169D8 add r1, r0, #0 mov r0, #0 str r0, [r1] str r0, [r1, #4] ldr r0, _021DBB50 ; =MOD85_021DBBE8 mov r2, #0x8f str r4, [r1, #0xc] bl FUN_0200CA44 pop {r4, pc} .align 2, 0 _021DBB50: .word MOD85_021DBBE8 thumb_func_end MOD85_021DBB30 thumb_func_start MOD85_021DBB54 MOD85_021DBB54: ; 0x021DBB54 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 mov r0, #0x4f mov r1, #0x10 bl FUN_020169D8 add r1, r0, #0 mov r0, #0 str r0, [r1] mov r0, #2 str r4, [r1, #8] lsl r0, r0, #0xe str r0, [r1, #4] ldr r0, _021DBB84 ; =MOD85_021DBC48 mov r2, #0x8f str r5, [r1, #0xc] bl FUN_0200CA44 mov r0, #0x5f lsl r0, r0, #4 bl FUN_020054C8 pop {r3, r4, r5, pc} .align 2, 0 _021DBB84: .word MOD85_021DBC48 thumb_func_end MOD85_021DBB54 thumb_func_start MOD85_021DBB88 MOD85_021DBB88: ; 0x021DBB88 push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 add r7, r0, #0 mov r0, #0x61 ldr r1, [r5, #0xc] lsl r0, r0, #2 add r2, r1, r0 mov r0, #2 ldr r3, [r5, #4] lsl r0, r0, #0xa add r0, r3, r0 asr r3, r0, #0xb lsr r3, r3, #0x14 add r1, r2, #0 add r6, r2, #0 add r3, r0, r3 str r0, [r5, #4] lsl r0, r3, #4 lsr r4, r0, #0x10 add r1, #0x24 add r6, #0x84 cmp r4, #0x10 bls _021DBBB8 mov r4, #0x10 _021DBBB8: add r0, r2, #4 add r2, r4, #0 add r3, r6, #0 bl MOD85_021DB674 ldr r0, [r5, #0xc] mov r1, #7 mov r2, #1 add r3, r6, #0 bl MOD85_021DB69C cmp r4, #0x10 beq _021DBBDA ldr r0, [r5, #0xc] ldr r0, [r0] cmp r0, #0x3f bne _021DBBE6 _021DBBDA: add r0, r5, #0 bl FUN_02016A18 add r0, r7, #0 bl FUN_0200CAB4 _021DBBE6: pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD85_021DBB88 thumb_func_start MOD85_021DBBE8 MOD85_021DBBE8: ; 0x021DBBE8 push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 add r7, r0, #0 mov r0, #0x61 ldr r1, [r5, #0xc] lsl r0, r0, #2 add r2, r1, r0 mov r1, #2 ldr r3, [r5, #4] lsl r1, r1, #0xa add r1, r3, r1 asr r3, r1, #0xb lsr r3, r3, #0x14 add r0, r2, #0 add r6, r2, #0 add r3, r1, r3 str r1, [r5, #4] lsl r1, r3, #4 lsr r4, r1, #0x10 add r0, #0x24 add r6, #0x84 cmp r4, #0x10 bls _021DBC18 mov r4, #0x10 _021DBC18: add r1, r2, #4 add r2, r4, #0 add r3, r6, #0 bl MOD85_021DB674 ldr r0, [r5, #0xc] mov r1, #7 mov r2, #1 add r3, r6, #0 bl MOD85_021DB69C cmp r4, #0x10 beq _021DBC3A ldr r0, [r5, #0xc] ldr r0, [r0] cmp r0, #0x3f bne _021DBC46 _021DBC3A: add r0, r5, #0 bl FUN_02016A18 add r0, r7, #0 bl FUN_0200CAB4 _021DBC46: pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD85_021DBBE8 thumb_func_start MOD85_021DBC48 MOD85_021DBC48: ; 0x021DBC48 push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 ldr r1, [r5, #0xc] mov r2, #0x61 lsl r2, r2, #2 add r7, r0, #0 add r0, r1, r2 add r6, r1, r2 ldr r3, [r1] add r0, #0x24 add r6, #0x84 cmp r3, #0x3f bne _021DBC70 add r0, r5, #0 bl FUN_02016A18 add r0, r7, #0 bl FUN_0200CAB4 pop {r3, r4, r5, r6, r7, pc} _021DBC70: ldr r3, [r5, #8] cmp r3, #0 bne _021DBC7C add r1, r1, r2 add r1, #0x44 b _021DBC80 _021DBC7C: add r1, r1, r2 add r1, #0x64 _021DBC80: ldr r2, [r5] cmp r2, #0 beq _021DBC8C cmp r2, #1 beq _021DBCC2 pop {r3, r4, r5, r6, r7, pc} _021DBC8C: mov r2, #1 ldr r3, [r5, #4] lsl r2, r2, #0xc add r3, r3, r2 asr r2, r3, #0xb lsr r2, r2, #0x14 add r2, r3, r2 asr r2, r2, #0xc str r3, [r5, #4] cmp r2, #0x10 ble _021DBCAA ldr r3, [r5] mov r2, #0x10 add r3, r3, #1 str r3, [r5] _021DBCAA: lsl r2, r2, #0x10 lsr r2, r2, #0x10 add r3, r6, #0 bl MOD85_021DB674 ldr r0, [r5, #0xc] mov r1, #7 mov r2, #1 add r3, r6, #0 bl MOD85_021DB69C pop {r3, r4, r5, r6, r7, pc} _021DBCC2: mov r2, #1 ldr r3, [r5, #4] lsl r2, r2, #0xa sub r2, r3, r2 asr r3, r2, #0xb lsr r3, r3, #0x14 add r3, r2, r3 str r2, [r5, #4] asr r4, r3, #0xc bpl _021DBCD8 mov r4, #0 _021DBCD8: lsl r2, r4, #0x10 lsr r2, r2, #0x10 add r3, r6, #0 bl MOD85_021DB674 ldr r0, [r5, #0xc] mov r1, #7 mov r2, #1 add r3, r6, #0 bl MOD85_021DB69C cmp r4, #0 bne _021DBCFE add r0, r5, #0 bl FUN_02016A18 add r0, r7, #0 bl FUN_0200CAB4 _021DBCFE: pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD85_021DBC48 thumb_func_start MOD85_021DBD00 MOD85_021DBD00: ; 0x021DBD00 push {r4, lr} add r4, r1, #0 lsl r1, r4, #2 add r0, r0, r1 add r0, #0xa8 ldr r0, [r0] mov r1, #0x15 add r0, r2, r0 bl _s32_div_f cmp r1, #0 bge _021DBD1A add r1, #0x15 _021DBD1A: mov r0, #0x54 add r2, r4, #0 mul r2, r0 ldr r0, _021DBD2C ; =0x021DFDE4 lsl r1, r1, #2 add r0, r0, r2 ldr r0, [r1, r0] pop {r4, pc} nop _021DBD2C: .word 0x021DFDE4 thumb_func_end MOD85_021DBD00 thumb_func_start MOD85_021DBD30 MOD85_021DBD30: ; 0x021DBD30 push {r4, r5, r6, lr} lsl r4, r1, #2 add r4, r0, r4 add r4, #0x90 ldr r4, [r4] mov r3, #0 lsr r6, r4, #0x1f lsl r5, r4, #0xf sub r5, r5, r6 mov r4, #0xf ror r5, r4 add r4, r6, r5 beq _021DBD4C sub r3, r3, #1 _021DBD4C: add r2, r2, r3 bl MOD85_021DBD00 pop {r4, r5, r6, pc} thumb_func_end MOD85_021DBD30 thumb_func_start MOD85_021DBD54 MOD85_021DBD54: ; 0x021DBD54 ldr r1, _021DBD70 ; =0x021C48B8 ldr r1, [r1, #0x48] and r1, r0 cmp r1, r0 bne _021DBD62 mov r0, #2 bx lr _021DBD62: tst r0, r1 beq _021DBD6A mov r0, #1 bx lr _021DBD6A: mov r0, #0 bx lr nop _021DBD70: .word 0x021C48B8 thumb_func_end MOD85_021DBD54 thumb_func_start MOD85_021DBD74 MOD85_021DBD74: ; 0x021DBD74 mov r2, #3 add r1, r0, #0 tst r1, r2 beq _021DBD80 mov r0, #2 bx lr _021DBD80: mov r1, #0xc tst r1, r0 beq _021DBD8A add r0, r2, #0 bx lr _021DBD8A: mov r1, #0x30 tst r1, r0 beq _021DBD94 mov r0, #4 bx lr _021DBD94: mov r1, #0xc0 add r2, r0, #0 tst r2, r1 beq _021DBDA0 mov r0, #5 bx lr _021DBDA0: add r1, #0x40 tst r1, r0 beq _021DBDAA mov r0, #1 bx lr _021DBDAA: mov r1, #2 lsl r1, r1, #8 tst r0, r1 beq _021DBDB6 mov r0, #0 bx lr _021DBDB6: mov r0, #6 bx lr .align 2, 0 thumb_func_end MOD85_021DBD74 thumb_func_start MOD85_021DBDBC MOD85_021DBDBC: ; 0x021DBDBC push {r4, r5, r6, lr} mov r1, #0 mov r2, #1 add r5, r0, #0 bl MOD85_021DBD30 mov r1, #1 add r4, r0, #0 add r0, r5, #0 add r2, r1, #0 bl MOD85_021DBD30 add r6, r0, #0 add r0, r5, #0 mov r1, #2 mov r2, #1 bl MOD85_021DBD30 cmp r4, #3 beq _021DBDEC cmp r4, r6 bne _021DBDF0 cmp r4, r0 bne _021DBDF0 _021DBDEC: add r0, r4, #0 pop {r4, r5, r6, pc} _021DBDF0: mov r0, #6 pop {r4, r5, r6, pc} thumb_func_end MOD85_021DBDBC thumb_func_start MOD85_021DBDF4 MOD85_021DBDF4: ; 0x021DBDF4 push {r4, r5, r6, lr} add r5, r0, #0 mov r1, #0 mov r2, #2 bl MOD85_021DBD30 add r4, r0, #0 add r0, r5, #0 mov r1, #1 mov r2, #2 bl MOD85_021DBD30 mov r1, #2 add r6, r0, #0 add r0, r5, #0 add r2, r1, #0 bl MOD85_021DBD30 cmp r4, #3 beq _021DBE24 cmp r4, r6 bne _021DBE28 cmp r4, r0 bne _021DBE28 _021DBE24: add r0, r4, #0 pop {r4, r5, r6, pc} _021DBE28: mov r0, #6 pop {r4, r5, r6, pc} thumb_func_end MOD85_021DBDF4 thumb_func_start MOD85_021DBE2C MOD85_021DBE2C: ; 0x021DBE2C push {r4, r5, r6, lr} add r5, r0, #0 mov r1, #0 mov r2, #3 bl MOD85_021DBD30 add r4, r0, #0 add r0, r5, #0 mov r1, #1 mov r2, #3 bl MOD85_021DBD30 add r6, r0, #0 add r0, r5, #0 mov r1, #2 mov r2, #3 bl MOD85_021DBD30 cmp r4, #3 beq _021DBE5C cmp r4, r6 bne _021DBE60 cmp r4, r0 bne _021DBE60 _021DBE5C: add r0, r4, #0 pop {r4, r5, r6, pc} _021DBE60: mov r0, #6 pop {r4, r5, r6, pc} thumb_func_end MOD85_021DBE2C thumb_func_start MOD85_021DBE64 MOD85_021DBE64: ; 0x021DBE64 push {r4, r5, r6, lr} add r5, r0, #0 mov r1, #0 mov r2, #1 bl MOD85_021DBD30 add r4, r0, #0 add r0, r5, #0 mov r1, #1 mov r2, #2 bl MOD85_021DBD30 add r6, r0, #0 add r0, r5, #0 mov r1, #2 mov r2, #3 bl MOD85_021DBD30 cmp r4, #3 beq _021DBE94 cmp r4, r6 bne _021DBE98 cmp r4, r0 bne _021DBE98 _021DBE94: add r0, r4, #0 pop {r4, r5, r6, pc} _021DBE98: mov r0, #6 pop {r4, r5, r6, pc} thumb_func_end MOD85_021DBE64 thumb_func_start MOD85_021DBE9C MOD85_021DBE9C: ; 0x021DBE9C push {r4, r5, r6, lr} add r5, r0, #0 mov r1, #0 mov r2, #3 bl MOD85_021DBD30 add r4, r0, #0 add r0, r5, #0 mov r1, #1 mov r2, #2 bl MOD85_021DBD30 add r6, r0, #0 add r0, r5, #0 mov r1, #2 mov r2, #1 bl MOD85_021DBD30 cmp r4, #3 beq _021DBECC cmp r4, r6 bne _021DBED0 cmp r4, r0 bne _021DBED0 _021DBECC: add r0, r4, #0 pop {r4, r5, r6, pc} _021DBED0: mov r0, #6 pop {r4, r5, r6, pc} thumb_func_end MOD85_021DBE9C thumb_func_start MOD85_021DBED4 MOD85_021DBED4: ; 0x021DBED4 push {r4, r5, r6, lr} add r4, r2, #0 mov r1, #0 add r5, r0, #0 str r1, [r4] mov r6, #6 bl MOD85_021DBDBC cmp r0, #6 beq _021DBEF2 ldr r1, [r4] add r6, r0, #0 mov r0, #2 orr r0, r1 str r0, [r4] _021DBEF2: add r0, r5, #0 bl MOD85_021DBDF4 cmp r0, #6 beq _021DBF06 ldr r1, [r4] add r6, r0, #0 mov r0, #1 orr r0, r1 str r0, [r4] _021DBF06: add r0, r5, #0 bl MOD85_021DBE2C cmp r0, #6 beq _021DBF1A ldr r1, [r4] add r6, r0, #0 mov r0, #4 orr r0, r1 str r0, [r4] _021DBF1A: add r0, r5, #0 bl MOD85_021DBE64 cmp r0, #6 beq _021DBF2E ldr r1, [r4] add r6, r0, #0 mov r0, #8 orr r0, r1 str r0, [r4] _021DBF2E: add r0, r5, #0 bl MOD85_021DBE9C cmp r0, #6 beq _021DBF42 ldr r1, [r4] add r6, r0, #0 mov r0, #0x10 orr r0, r1 str r0, [r4] _021DBF42: add r0, r6, #0 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD85_021DBED4 thumb_func_start MOD85_021DBF48 MOD85_021DBF48: ; 0x021DBF48 push {r3, r4, r5, lr} add r5, r2, #0 mov r1, #0 str r1, [r5] bl MOD85_021DBDF4 add r4, r0, #0 cmp r4, #6 beq _021DBF6A cmp r4, #2 beq _021DBF62 bl ErrorHandling _021DBF62: ldr r1, [r5] mov r0, #1 orr r0, r1 str r0, [r5] _021DBF6A: add r0, r4, #0 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD85_021DBF48 thumb_func_start MOD85_021DBF70 MOD85_021DBF70: ; 0x021DBF70 push {r3, lr} mov r2, #3 add r1, r0, #0 tst r1, r2 beq _021DBF7E mov r0, #1 pop {r3, pc} _021DBF7E: mov r1, #0xc tst r1, r0 beq _021DBF88 mov r0, #0 pop {r3, pc} _021DBF88: mov r1, #0x30 tst r1, r0 beq _021DBF92 mov r0, #2 pop {r3, pc} _021DBF92: mov r1, #0xc0 tst r0, r1 beq _021DBF9C add r0, r2, #0 pop {r3, pc} _021DBF9C: bl ErrorHandling mov r0, #4 pop {r3, pc} thumb_func_end MOD85_021DBF70 thumb_func_start MOD85_021DBFA4 MOD85_021DBFA4: ; 0x021DBFA4 mov r2, #0 add r1, r2, #0 _021DBFA8: add r2, r2, #1 str r1, [r0, #0x54] add r0, r0, #4 cmp r2, #3 blt _021DBFA8 bx lr thumb_func_end MOD85_021DBFA4 thumb_func_start MOD85_021DBFB4 MOD85_021DBFB4: ; 0x021DBFB4 push {r4, r5, r6, lr} add r5, r0, #0 add r6, r1, #0 mov r4, #0 add r1, r5, #0 _021DBFBE: ldr r0, [r1, #0x54] cmp r0, #0 beq _021DBFCC add r4, r4, #1 add r1, r1, #4 cmp r4, #3 blt _021DBFBE _021DBFCC: cmp r4, #3 blt _021DBFD4 bl ErrorHandling _021DBFD4: lsl r0, r4, #2 add r0, r5, r0 str r6, [r0, #0x54] pop {r4, r5, r6, pc} thumb_func_end MOD85_021DBFB4 thumb_func_start MOD85_021DBFDC MOD85_021DBFDC: ; 0x021DBFDC push {r4, r5, r6} sub sp, #0xc ldr r6, _021DC018 ; =0x021DEDC8 add r4, r0, #0 ldmia r6!, {r0, r1} add r5, sp, #0 add r3, r5, #0 stmia r5!, {r0, r1} ldr r0, [r6] mov r2, #0 str r0, [r5] _021DBFF2: ldr r1, [r4, #0x54] cmp r1, #0 beq _021DC006 ldr r0, [r3] cmp r1, r0 beq _021DC006 add sp, #0xc mov r0, #0 pop {r4, r5, r6} bx lr _021DC006: add r2, r2, #1 add r4, r4, #4 add r3, r3, #4 cmp r2, #3 blt _021DBFF2 mov r0, #1 add sp, #0xc pop {r4, r5, r6} bx lr .align 2, 0 _021DC018: .word 0x021DEDC8 thumb_func_end MOD85_021DBFDC thumb_func_start MOD85_021DC01C MOD85_021DC01C: ; 0x021DC01C push {r3, r4} ldr r2, [r0, #0x34] mov r1, #0x18 ldr r3, _021DC04C ; =0x021DEF04 mul r1, r2 mov r4, #0 add r3, r3, r1 _021DC02A: ldr r2, [r0, #0x54] cmp r2, #0 beq _021DC03C ldr r1, [r3] cmp r2, r1 beq _021DC03C mov r0, #0 pop {r3, r4} bx lr _021DC03C: add r4, r4, #1 add r0, r0, #4 add r3, r3, #4 cmp r4, #3 blt _021DC02A mov r0, #1 pop {r3, r4} bx lr .align 2, 0 _021DC04C: .word 0x021DEF04 thumb_func_end MOD85_021DC01C thumb_func_start MOD85_021DC050 MOD85_021DC050: ; 0x021DC050 push {r4, r5, lr} sub sp, #0xc add r4, r0, #0 mov r0, #3 str r0, [sp] mov r0, #2 lsl r2, r1, #3 ldr r3, _021DC08C ; =0x021DEE9C str r0, [sp, #4] mov r0, #6 str r0, [sp, #8] add r5, r3, r2 ldr r2, [r3, r2] ldr r0, _021DC090 ; =0x0000043C ldr r3, [r5, #4] lsl r2, r2, #0x18 lsl r3, r3, #0x18 ldr r0, [r4, r0] mov r1, #1 lsr r2, r2, #0x18 lsr r3, r3, #0x18 bl FUN_020186B4 ldr r0, _021DC090 ; =0x0000043C mov r1, #1 ldr r0, [r4, r0] bl FUN_0201AC68 add sp, #0xc pop {r4, r5, pc} .align 2, 0 _021DC08C: .word 0x021DEE9C _021DC090: .word 0x0000043C thumb_func_end MOD85_021DC050 thumb_func_start MOD85_021DC094 MOD85_021DC094: ; 0x021DC094 push {r4, r5, lr} sub sp, #0xc add r4, r0, #0 mov r0, #3 str r0, [sp] mov r0, #2 lsl r2, r1, #3 ldr r3, _021DC0D0 ; =0x021DEE9C str r0, [sp, #4] mov r0, #5 str r0, [sp, #8] add r5, r3, r2 ldr r2, [r3, r2] ldr r0, _021DC0D4 ; =0x0000043C ldr r3, [r5, #4] lsl r2, r2, #0x18 lsl r3, r3, #0x18 ldr r0, [r4, r0] mov r1, #1 lsr r2, r2, #0x18 lsr r3, r3, #0x18 bl FUN_020186B4 ldr r0, _021DC0D4 ; =0x0000043C mov r1, #1 ldr r0, [r4, r0] bl FUN_0201AC68 add sp, #0xc pop {r4, r5, pc} .align 2, 0 _021DC0D0: .word 0x021DEE9C _021DC0D4: .word 0x0000043C thumb_func_end MOD85_021DC094 thumb_func_start MOD85_021DC0D8 MOD85_021DC0D8: ; 0x021DC0D8 push {r3, r4, r5, lr} ldr r4, [r0, #0x44] ldr r5, [r0, #0x48] cmp r4, #6 bne _021DC0E6 bl ErrorHandling _021DC0E6: ldr r3, _021DC104 ; =0x021DFCAC lsl r2, r4, #2 mov r1, #0 ldr r3, [r3, r2] add r0, r1, #0 mov r2, #1 _021DC0F2: add r4, r5, #0 tst r4, r2 beq _021DC0FA add r0, r0, r3 _021DC0FA: add r1, r1, #1 lsr r5, r5, #1 cmp r1, #5 blt _021DC0F2 pop {r3, r4, r5, pc} .align 2, 0 _021DC104: .word 0x021DFCAC thumb_func_end MOD85_021DC0D8 thumb_func_start MOD85_021DC108 MOD85_021DC108: ; 0x021DC108 push {r3, r4, r5, r6, r7, lr} sub sp, #0x20 add r7, r0, #0 mov r4, #0 add r0, sp, #8 str r4, [r0] str r4, [r0, #4] mov r6, #0x11 lsl r6, r6, #0xe str r4, [r0, #8] str r7, [sp, #0x14] cmp r4, #3 bge _021DC15A _021DC122: mov r5, #0 _021DC124: str r6, [sp, #8] str r4, [sp, #0x1c] str r5, [sp, #0x18] add r0, sp, #0x14 str r0, [sp] mov r0, #0x8b str r0, [sp, #4] ldr r0, _021DC160 ; =0x0000044C ldr r1, _021DC164 ; =0x021DF938 ldr r0, [r7, r0] add r2, sp, #8 mov r3, #0 bl FUN_020644E4 mov r0, #2 lsl r0, r0, #0x10 add r5, r5, r0 mov r0, #0xa lsl r0, r0, #0x10 cmp r5, r0 blt _021DC124 mov r0, #0xf lsl r0, r0, #0xe add r4, r4, #1 add r6, r6, r0 cmp r4, #3 blt _021DC122 _021DC15A: add sp, #0x20 pop {r3, r4, r5, r6, r7, pc} nop _021DC160: .word 0x0000044C _021DC164: .word 0x021DF938 thumb_func_end MOD85_021DC108 thumb_func_start MOD85_021DC168 MOD85_021DC168: ; 0x021DC168 push {r3, r4, r5, lr} sub sp, #0x28 add r5, r0, #0 add r4, r1, #0 bl FUN_0206475C add r3, r0, #0 ldmia r3!, {r0, r1} add r2, r4, #0 stmia r2!, {r0, r1} ldr r0, [r3] add r1, sp, #0x1c str r0, [r2] add r0, r5, #0 bl FUN_0206477C mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] str r0, [sp, #0xc] str r0, [sp, #0x10] mov r0, #3 str r0, [sp, #0x14] mov r0, #2 str r0, [sp, #0x18] mov r0, #0x45 ldr r1, [r4] lsl r0, r0, #4 ldr r0, [r1, r0] add r1, r4, #0 add r1, #0xc add r2, sp, #0x1c mov r3, #1 bl MOD85_021DEC00 ldr r0, [r4, #0x10] mov r1, #1 bl FUN_020200BC mov r0, #1 add sp, #0x28 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD85_021DC168 thumb_func_start MOD85_021DC1C0 MOD85_021DC1C0: ; 0x021DC1C0 ldr r3, _021DC1C8 ; =MOD85_021DECA0 add r1, #0xc add r0, r1, #0 bx r3 .align 2, 0 _021DC1C8: .word MOD85_021DECA0 thumb_func_end MOD85_021DC1C0 thumb_func_start MOD85_021DC1CC MOD85_021DC1CC: ; 0x021DC1CC push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r5, r1, #0 ldr r7, [r5, #8] str r0, [sp] ldr r0, [r5] lsl r6, r7, #2 add r0, r0, r6 add r0, #0x90 ldr r1, [r5, #4] ldr r0, [r0] add r0, r1, r0 mov r1, #0xa lsl r1, r1, #0x10 bl _s32_div_f add r4, r1, #0 ldr r0, [sp] add r1, sp, #4 bl FUN_0206477C ldr r1, [r5] mov r0, #1 add r1, r1, r6 add r1, #0x9c lsl r0, r0, #0x10 ldr r1, [r1] add r0, r4, r0 add r0, r0, r1 str r0, [sp, #8] ldr r0, [r5, #0x10] add r1, sp, #4 bl FUN_02020044 asr r2, r4, #0x10 lsr r2, r2, #0xf add r2, r4, r2 ldr r0, [r5] add r1, r7, #0 asr r2, r2, #0x11 bl MOD85_021DBD00 lsl r1, r0, #2 ldr r0, _021DC244 ; =0x021DF9D8 ldr r4, [r0, r1] ldr r0, [r5, #0x10] bl FUN_020201DC cmp r4, r0 beq _021DC240 ldr r0, [r5, #0x10] add r1, r4, #0 bl FUN_02020130 ldr r0, [r5, #0x10] mov r1, #0 bl FUN_02020208 _021DC240: add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021DC244: .word 0x021DF9D8 thumb_func_end MOD85_021DC1CC thumb_func_start MOD85_021DC248 MOD85_021DC248: ; 0x021DC248 bx lr .align 2, 0 thumb_func_end MOD85_021DC248 thumb_func_start MOD85_021DC24C MOD85_021DC24C: ; 0x021DC24C push {r4, r5, r6, r7, lr} sub sp, #0x14 ldr r3, _021DC290 ; =0x021DF628 add r5, r0, #0 ldmia r3!, {r0, r1} add r2, sp, #8 add r6, r2, #0 stmia r2!, {r0, r1} ldr r0, [r3] mov r4, #1 str r0, [r2] mov r7, #0x8d _021DC264: str r5, [sp] ldr r0, _021DC294 ; =0x0000044C str r7, [sp, #4] ldr r0, [r5, r0] ldr r1, _021DC298 ; =0x021DF94C add r2, r6, #0 add r3, r4, #0 bl FUN_020644E4 mov r0, #0xa mul r4, r0 mov r0, #2 ldr r1, [sp, #8] lsl r0, r0, #0xe sub r0, r1, r0 str r0, [sp, #8] ldr r0, _021DC29C ; =0x000186A0 cmp r4, r0 blo _021DC264 add sp, #0x14 pop {r4, r5, r6, r7, pc} nop _021DC290: .word 0x021DF628 _021DC294: .word 0x0000044C _021DC298: .word 0x021DF94C _021DC29C: .word 0x000186A0 thumb_func_end MOD85_021DC24C thumb_func_start MOD85_021DC2A0 MOD85_021DC2A0: ; 0x021DC2A0 push {r3, r4, r5, lr} sub sp, #0x28 add r5, r0, #0 add r4, r1, #0 bl FUN_02064754 mov r1, #0xa str r0, [r4, #4] mul r1, r0 str r1, [r4, #8] add r0, r5, #0 bl FUN_0206475C str r0, [r4] add r0, r5, #0 add r1, sp, #0x1c bl FUN_0206477C mov r0, #0 str r0, [sp] mov r3, #1 str r3, [sp, #4] str r3, [sp, #8] str r3, [sp, #0xc] str r3, [sp, #0x10] str r3, [sp, #0x14] str r3, [sp, #0x18] mov r0, #0x45 ldr r1, [r4] lsl r0, r0, #4 ldr r0, [r1, r0] add r1, r4, #0 add r1, #0xc add r2, sp, #0x1c bl MOD85_021DEC00 ldr r0, [r4, #0x10] mov r1, #1 bl FUN_020200BC mov r0, #1 add sp, #0x28 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD85_021DC2A0 thumb_func_start MOD85_021DC2F8 MOD85_021DC2F8: ; 0x021DC2F8 ldr r3, _021DC300 ; =MOD85_021DECA0 add r1, #0xc add r0, r1, #0 bx r3 .align 2, 0 _021DC300: .word MOD85_021DECA0 thumb_func_end MOD85_021DC2F8 thumb_func_start MOD85_021DC304 MOD85_021DC304: ; 0x021DC304 push {r3, r4, r5, r6, lr} sub sp, #0xc add r5, r1, #0 add r6, r0, #0 ldr r0, [r5] ldr r4, [r0, #0x60] ldr r0, [r5, #4] cmp r0, #1 bls _021DC326 cmp r4, r0 bhs _021DC326 ldr r0, [r5, #0x10] mov r1, #0 bl FUN_020200A0 add sp, #0xc pop {r3, r4, r5, r6, pc} _021DC326: ldr r0, [r5, #0x10] mov r1, #1 bl FUN_020200A0 ldr r1, [r5, #8] add r0, r4, #0 bl _u32_div_f add r4, r1, #0 ldr r1, [r5, #4] add r0, r4, #0 bl _u32_div_f add r4, r0, #0 ldr r0, [r5, #0x10] bl FUN_020201DC cmp r4, r0 beq _021DC35A ldr r0, [r5, #0x10] add r1, r4, #0 bl FUN_02020130 ldr r0, [r5, #0x10] bl FUN_02020198 _021DC35A: add r0, r6, #0 add r1, sp, #0 bl FUN_0206477C ldr r0, _021DC37C ; =0x021DFAD8 lsl r1, r4, #2 ldr r0, [r0, r1] ldr r2, [sp] add r1, sp, #0 add r0, r2, r0 str r0, [sp] ldr r0, [r5, #0x10] bl FUN_02020044 add sp, #0xc pop {r3, r4, r5, r6, pc} nop _021DC37C: .word 0x021DFAD8 thumb_func_end MOD85_021DC304 thumb_func_start MOD85_021DC380 MOD85_021DC380: ; 0x021DC380 bx lr .align 2, 0 thumb_func_end MOD85_021DC380 thumb_func_start MOD85_021DC384 MOD85_021DC384: ; 0x021DC384 push {r4, r5, r6, r7, lr} sub sp, #0x14 ldr r3, _021DC3C8 ; =0x021DF6F4 add r5, r0, #0 ldmia r3!, {r0, r1} add r2, sp, #8 add r6, r2, #0 stmia r2!, {r0, r1} ldr r0, [r3] mov r4, #1 str r0, [r2] mov r7, #0x8d _021DC39C: str r5, [sp] ldr r0, _021DC3CC ; =0x0000044C str r7, [sp, #4] ldr r0, [r5, r0] ldr r1, _021DC3D0 ; =0x021DF960 add r2, r6, #0 add r3, r4, #0 bl FUN_020644E4 mov r0, #0xa mul r4, r0 mov r0, #2 ldr r1, [sp, #8] lsl r0, r0, #0xe sub r0, r1, r0 str r0, [sp, #8] ldr r0, _021DC3D4 ; =0x000186A0 cmp r4, r0 blo _021DC39C add sp, #0x14 pop {r4, r5, r6, r7, pc} nop _021DC3C8: .word 0x021DF6F4 _021DC3CC: .word 0x0000044C _021DC3D0: .word 0x021DF960 _021DC3D4: .word 0x000186A0 thumb_func_end MOD85_021DC384 thumb_func_start MOD85_021DC3D8 MOD85_021DC3D8: ; 0x021DC3D8 push {r3, r4, r5, lr} sub sp, #0x28 add r5, r0, #0 add r4, r1, #0 bl FUN_02064754 mov r1, #0xa str r0, [r4, #4] mul r1, r0 str r1, [r4, #8] add r0, r5, #0 bl FUN_0206475C str r0, [r4] add r0, r5, #0 add r1, sp, #0x1c bl FUN_0206477C mov r0, #0 str r0, [sp] mov r3, #1 str r3, [sp, #4] str r3, [sp, #8] str r3, [sp, #0xc] str r3, [sp, #0x10] str r3, [sp, #0x14] str r3, [sp, #0x18] mov r0, #0x45 ldr r1, [r4] lsl r0, r0, #4 ldr r0, [r1, r0] add r1, r4, #0 add r1, #0xc add r2, sp, #0x1c bl MOD85_021DEC00 ldr r0, [r4, #0x10] mov r1, #1 bl FUN_020200BC mov r0, #1 add sp, #0x28 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD85_021DC3D8 thumb_func_start MOD85_021DC430 MOD85_021DC430: ; 0x021DC430 ldr r3, _021DC438 ; =MOD85_021DECA0 add r1, #0xc add r0, r1, #0 bx r3 .align 2, 0 _021DC438: .word MOD85_021DECA0 thumb_func_end MOD85_021DC430 thumb_func_start MOD85_021DC43C MOD85_021DC43C: ; 0x021DC43C push {r3, r4, r5, r6, lr} sub sp, #0xc add r5, r1, #0 add r6, r0, #0 ldr r0, [r5] ldr r4, [r0, #0x64] ldr r0, [r5, #4] cmp r4, r0 ldr r0, [r5, #0x10] bhs _021DC45A mov r1, #0 bl FUN_020200A0 add sp, #0xc pop {r3, r4, r5, r6, pc} _021DC45A: mov r1, #1 bl FUN_020200A0 ldr r1, [r5, #8] add r0, r4, #0 bl _u32_div_f add r4, r1, #0 ldr r1, [r5, #4] add r0, r4, #0 bl _u32_div_f add r4, r0, #0 ldr r0, [r5, #0x10] bl FUN_020201DC cmp r4, r0 beq _021DC48C ldr r0, [r5, #0x10] add r1, r4, #0 bl FUN_02020130 ldr r0, [r5, #0x10] bl FUN_02020198 _021DC48C: add r0, r6, #0 add r1, sp, #0 bl FUN_0206477C ldr r0, _021DC4AC ; =0x021DFAB0 lsl r1, r4, #2 ldr r0, [r0, r1] ldr r2, [sp] add r1, sp, #0 add r0, r2, r0 str r0, [sp] ldr r0, [r5, #0x10] bl FUN_02020044 add sp, #0xc pop {r3, r4, r5, r6, pc} .align 2, 0 _021DC4AC: .word 0x021DFAB0 thumb_func_end MOD85_021DC43C thumb_func_start MOD85_021DC4B0 MOD85_021DC4B0: ; 0x021DC4B0 bx lr .align 2, 0 thumb_func_end MOD85_021DC4B0 thumb_func_start MOD85_021DC4B4 MOD85_021DC4B4: ; 0x021DC4B4 push {r3, r4, r5, r6, lr} sub sp, #0x14 ldr r6, _021DC4E0 ; =0x021DF808 add r5, sp, #8 add r4, r0, #0 add r3, r1, #0 ldmia r6!, {r0, r1} add r2, r5, #0 stmia r5!, {r0, r1} ldr r0, [r6] ldr r1, _021DC4E4 ; =0x021DF974 str r0, [r5] str r4, [sp] mov r0, #0x86 str r0, [sp, #4] ldr r0, _021DC4E8 ; =0x0000044C ldr r0, [r4, r0] bl FUN_020644E4 add sp, #0x14 pop {r3, r4, r5, r6, pc} nop _021DC4E0: .word 0x021DF808 _021DC4E4: .word 0x021DF974 _021DC4E8: .word 0x0000044C thumb_func_end MOD85_021DC4B4 thumb_func_start MOD85_021DC4EC MOD85_021DC4EC: ; 0x021DC4EC push {r4, lr} add r4, r1, #0 bl FUN_02064738 str r4, [r0] mov r1, #0 str r1, [r0, #4] str r1, [r0, #8] str r1, [r0, #0x30] pop {r4, pc} thumb_func_end MOD85_021DC4EC thumb_func_start MOD85_021DC500 MOD85_021DC500: ; 0x021DC500 push {r4, lr} add r4, r1, #0 bl FUN_02064738 cmp r4, #1 ldr r0, [r0, #0x40] bne _021DC516 mov r1, #0 bl FUN_020200A0 pop {r4, pc} _021DC516: mov r1, #1 bl FUN_020200A0 pop {r4, pc} .align 2, 0 thumb_func_end MOD85_021DC500 thumb_func_start MOD85_021DC520 MOD85_021DC520: ; 0x021DC520 push {r3, lr} bl FUN_02064738 ldr r0, [r0, #8] pop {r3, pc} .align 2, 0 thumb_func_end MOD85_021DC520 thumb_func_start MOD85_021DC52C MOD85_021DC52C: ; 0x021DC52C push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 bl FUN_0206475C str r0, [r4, #0x38] add r0, r5, #0 bl FUN_02064754 str r0, [r4, #0x10] mov r0, #1 pop {r3, r4, r5, pc} thumb_func_end MOD85_021DC52C thumb_func_start MOD85_021DC544 MOD85_021DC544: ; 0x021DC544 push {r4, lr} add r4, r1, #0 ldr r0, [r4, #0x40] cmp r0, #0 beq _021DC55C ldr r0, [r4, #0x38] bl MOD85_021DCB00 add r4, #0x3c add r0, r4, #0 bl MOD85_021DECA0 _021DC55C: pop {r4, pc} .align 2, 0 thumb_func_end MOD85_021DC544 thumb_func_start MOD85_021DC560 MOD85_021DC560: ; 0x021DC560 push {r3, r4, r5, lr} ldr r4, _021DC57C ; =0x021DF9F0 add r5, r1, #0 _021DC566: ldr r1, [r5] add r0, r5, #0 lsl r1, r1, #2 ldr r2, [r4, r1] ldr r1, [r5, #4] lsl r1, r1, #2 ldr r1, [r2, r1] blx r1 cmp r0, #1 beq _021DC566 pop {r3, r4, r5, pc} .align 2, 0 _021DC57C: .word 0x021DF9F0 thumb_func_end MOD85_021DC560 thumb_func_start MOD85_021DC580 MOD85_021DC580: ; 0x021DC580 bx lr .align 2, 0 thumb_func_end MOD85_021DC580 thumb_func_start MOD85_021DC584 MOD85_021DC584: ; 0x021DC584 push {r4, lr} add r4, r0, #0 ldr r1, [r4, #0x10] bl MOD85_021DCA68 ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] mov r0, #0 pop {r4, pc} thumb_func_end MOD85_021DC584 thumb_func_start MOD85_021DC598 MOD85_021DC598: ; 0x021DC598 ldr r1, [r0, #0xc] cmp r1, #2 bne _021DC5A4 ldr r1, [r0, #4] add r1, r1, #1 str r1, [r0, #4] _021DC5A4: mov r0, #0 bx lr thumb_func_end MOD85_021DC598 thumb_func_start MOD85_021DC5A8 MOD85_021DC5A8: ; 0x021DC5A8 push {r4, r5, lr} sub sp, #0xc ldr r5, _021DC5D8 ; =0x021DF820 add r4, r0, #0 ldmia r5!, {r0, r1} add r3, sp, #0 add r2, r3, #0 stmia r3!, {r0, r1} ldr r0, [r5] add r1, r4, #0 str r0, [r3] ldr r0, [r4, #0x38] add r1, #0x3c bl MOD85_021DCB6C mov r0, #1 str r0, [r4, #8] ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] mov r0, #0 add sp, #0xc pop {r4, r5, pc} nop _021DC5D8: .word 0x021DF820 thumb_func_end MOD85_021DC5A8 thumb_func_start MOD85_021DC5DC MOD85_021DC5DC: ; 0x021DC5DC mov r0, #0 bx lr thumb_func_end MOD85_021DC5DC thumb_func_start MOD85_021DC5E0 MOD85_021DC5E0: ; 0x021DC5E0 push {r3, r4, r5, lr} sub sp, #0x18 ldr r3, _021DC63C ; =0x021DF7E4 add r4, r0, #0 ldmia r3!, {r0, r1} add r2, sp, #0xc stmia r2!, {r0, r1} ldr r0, [r3] ldr r5, _021DC640 ; =0x021DF70C str r0, [r2] add r3, sp, #0 ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldr r0, [r5] add r1, r2, #0 str r0, [r3] ldr r0, [r4, #0x40] bl FUN_02020064 ldr r0, [r4, #0x40] mov r1, #0 bl FUN_02020088 ldr r0, [r4, #0x40] add r1, sp, #0xc bl FUN_02020044 ldr r0, [r4, #0x40] mov r1, #0 bl FUN_02020130 ldr r0, [r4, #0x40] mov r1, #0 bl FUN_02020208 ldr r0, _021DC644 ; =0x00000624 bl FUN_020054C8 ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] mov r0, #0 add sp, #0x18 pop {r3, r4, r5, pc} nop _021DC63C: .word 0x021DF7E4 _021DC640: .word 0x021DF70C _021DC644: .word 0x00000624 thumb_func_end MOD85_021DC5E0 thumb_func_start MOD85_021DC648 MOD85_021DC648: ; 0x021DC648 push {r4, lr} sub sp, #0x18 add r4, r0, #0 ldr r0, [r4, #0x40] add r1, sp, #0xc bl MOD85_021DECBC ldr r0, [r4, #0x40] add r1, sp, #0 bl MOD85_021DECD0 mov r0, #1 ldr r1, [sp, #0x10] lsl r0, r0, #0xe sub r1, r1, r0 str r1, [sp, #0x10] ldr r2, [sp] ldr r1, _021DC6AC ; =0x000001C7 sub r2, r2, r1 str r2, [sp] ldr r2, [sp, #4] sub r1, r2, r1 str r1, [sp, #4] ldr r1, [r4, #0x30] add r1, r1, #1 str r1, [r4, #0x30] cmp r1, #9 blo _021DC696 mov r1, #0x16 lsr r0, r0, #2 lsl r1, r1, #0x10 str r1, [sp, #0x10] str r0, [sp] str r0, [sp, #4] mov r0, #0 str r0, [r4, #0x30] ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] _021DC696: ldr r0, [r4, #0x40] add r1, sp, #0xc bl FUN_02020044 ldr r0, [r4, #0x40] add r1, sp, #0 bl FUN_02020064 mov r0, #0 add sp, #0x18 pop {r4, pc} .align 2, 0 _021DC6AC: .word 0x000001C7 thumb_func_end MOD85_021DC648 thumb_func_start MOD85_021DC6B0 MOD85_021DC6B0: ; 0x021DC6B0 ldr r1, [r0, #0x30] add r1, r1, #1 str r1, [r0, #0x30] cmp r1, #3 blo _021DC6C8 mov r1, #0 str r1, [r0, #0x30] mov r1, #1 str r1, [r0, #8] ldr r1, [r0, #4] add r1, r1, #1 str r1, [r0, #4] _021DC6C8: mov r0, #0 bx lr thumb_func_end MOD85_021DC6B0 thumb_func_start MOD85_021DC6CC MOD85_021DC6CC: ; 0x021DC6CC push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x40] mov r1, #1 bl FUN_02020130 ldr r0, [r4, #0x40] bl FUN_02020198 ldr r0, [r4, #0x40] mov r1, #1 bl FUN_020200BC mov r0, #0x6d lsl r0, r0, #4 bl FUN_020054C8 ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] mov r0, #0 pop {r4, pc} thumb_func_end MOD85_021DC6CC thumb_func_start MOD85_021DC6F8 MOD85_021DC6F8: ; 0x021DC6F8 ldr r1, [r0, #0x30] add r1, r1, #1 str r1, [r0, #0x30] cmp r1, #4 blo _021DC710 mov r1, #0 str r1, [r0, #0x30] mov r1, #1 str r1, [r0, #8] ldr r1, [r0, #4] add r1, r1, #1 str r1, [r0, #4] _021DC710: mov r0, #0 bx lr thumb_func_end MOD85_021DC6F8 thumb_func_start MOD85_021DC714 MOD85_021DC714: ; 0x021DC714 push {r3, r4, r5, lr} sub sp, #0x18 ldr r3, _021DC774 ; =0x021DF754 add r4, r0, #0 ldmia r3!, {r0, r1} add r2, sp, #0xc stmia r2!, {r0, r1} ldr r0, [r3] ldr r5, _021DC778 ; =0x021DF670 str r0, [r2] add r3, sp, #0 ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldr r0, [r5] add r5, r2, #0 str r0, [r3] add r3, r4, #0 ldmia r5!, {r0, r1} add r3, #0x14 stmia r3!, {r0, r1} ldr r0, [r5] add r1, r2, #0 str r0, [r3] ldr r0, [r4, #0x40] bl FUN_02020044 ldr r0, [r4, #0x40] add r1, sp, #0xc bl FUN_02020064 ldr r0, [r4, #0x40] mov r1, #0 bl FUN_02020088 ldr r0, [r4, #0x40] mov r1, #3 bl FUN_02020130 ldr r0, [r4, #0x40] bl FUN_02020198 ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] mov r0, #1 add sp, #0x18 pop {r3, r4, r5, pc} .align 2, 0 _021DC774: .word 0x021DF754 _021DC778: .word 0x021DF670 thumb_func_end MOD85_021DC714 thumb_func_start MOD85_021DC77C MOD85_021DC77C: ; 0x021DC77C push {r3, r4, r5, r6, lr} sub sp, #0x2c ldr r5, _021DC7DC ; =0x021DFA0C add r4, r0, #0 add r2, sp, #0 ldmia r5!, {r0, r1} add r3, r2, #0 stmia r2!, {r0, r1} ldmia r5!, {r0, r1} stmia r2!, {r0, r1} ldmia r5!, {r0, r1} stmia r2!, {r0, r1} ldmia r5!, {r0, r1} add r6, r4, #0 add r6, #0x14 stmia r2!, {r0, r1} add r5, sp, #0x20 ldmia r6!, {r0, r1} add r2, r5, #0 stmia r5!, {r0, r1} ldr r0, [r6] str r0, [r5] ldr r1, [r4, #0x30] ldr r0, [sp, #0x24] lsr r1, r1, #1 lsl r1, r1, #2 ldr r1, [r3, r1] add r0, r0, r1 str r0, [sp, #0x24] ldr r0, [r4, #0x40] add r1, r2, #0 bl FUN_02020044 ldr r0, [r4, #0x30] add r0, r0, #1 str r0, [r4, #0x30] cmp r0, #0x10 blo _021DC7D6 mov r0, #0 str r0, [r4, #0x30] mov r0, #1 str r0, [r4, #8] ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] _021DC7D6: mov r0, #0 add sp, #0x2c pop {r3, r4, r5, r6, pc} .align 2, 0 _021DC7DC: .word 0x021DFA0C thumb_func_end MOD85_021DC77C thumb_func_start MOD85_021DC7E0 MOD85_021DC7E0: ; 0x021DC7E0 push {r3, r4, r5, lr} sub sp, #0x18 ldr r3, _021DC840 ; =0x021DF640 add r4, r0, #0 ldmia r3!, {r0, r1} add r2, sp, #0xc stmia r2!, {r0, r1} ldr r0, [r3] ldr r5, _021DC844 ; =0x021DF730 str r0, [r2] add r3, sp, #0 ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldr r0, [r5] add r5, r2, #0 str r0, [r3] add r3, r4, #0 ldmia r5!, {r0, r1} add r3, #0x14 stmia r3!, {r0, r1} ldr r0, [r5] add r1, r2, #0 str r0, [r3] ldr r0, [r4, #0x40] bl FUN_02020044 ldr r0, [r4, #0x40] add r1, sp, #0xc bl FUN_02020064 ldr r0, [r4, #0x40] mov r1, #0 bl FUN_02020088 ldr r0, [r4, #0x40] mov r1, #4 bl FUN_02020130 ldr r0, [r4, #0x40] bl FUN_02020198 ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] mov r0, #1 add sp, #0x18 pop {r3, r4, r5, pc} .align 2, 0 _021DC840: .word 0x021DF640 _021DC844: .word 0x021DF730 thumb_func_end MOD85_021DC7E0 thumb_func_start MOD85_021DC848 MOD85_021DC848: ; 0x021DC848 push {r4, lr} sub sp, #0x18 add r4, r0, #0 ldr r0, [r4, #0x40] add r1, sp, #0xc bl MOD85_021DECBC ldr r0, [r4, #0x40] add r1, sp, #0 bl MOD85_021DECD0 mov r0, #1 ldr r1, [sp, #0x10] lsl r0, r0, #0xe add r1, r1, r0 str r1, [sp, #0x10] ldr r2, [sp] ldr r1, _021DC8B0 ; =0x000001C7 add r2, r2, r1 str r2, [sp] ldr r2, [sp, #4] add r1, r2, r1 str r1, [sp, #4] ldr r1, [r4, #0x30] add r1, r1, #1 str r1, [r4, #0x30] cmp r1, #0xa blo _021DC89A mov r1, #7 lsr r0, r0, #2 lsl r1, r1, #0x12 str r1, [sp, #0x10] str r0, [sp] str r0, [sp, #4] mov r0, #0 str r0, [r4, #0x30] mov r0, #1 str r0, [r4, #8] ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] _021DC89A: ldr r0, [r4, #0x40] add r1, sp, #0xc bl FUN_02020044 ldr r0, [r4, #0x40] add r1, sp, #0 bl FUN_02020064 mov r0, #0 add sp, #0x18 pop {r4, pc} .align 2, 0 _021DC8B0: .word 0x000001C7 thumb_func_end MOD85_021DC848 thumb_func_start MOD85_021DC8B4 MOD85_021DC8B4: ; 0x021DC8B4 push {r4, r5, r6, r7, lr} sub sp, #0x24 ldr r3, _021DC934 ; =0x021DF6AC add r4, r0, #0 ldmia r3!, {r0, r1} add r2, sp, #0x18 stmia r2!, {r0, r1} ldr r0, [r3] ldr r3, _021DC938 ; =0x021DF61C str r0, [r2] add r2, sp, #0xc ldmia r3!, {r0, r1} add r6, r2, #0 stmia r2!, {r0, r1} ldr r0, [r3] add r5, sp, #0 mov r7, #0 str r7, [r5] str r0, [r2] add r3, r6, #0 str r7, [r5, #4] add r2, r4, #0 ldmia r3!, {r0, r1} str r7, [r5, #8] add r2, #0x14 stmia r2!, {r0, r1} ldr r0, [r3] str r0, [r2] add r2, r4, #0 ldmia r5!, {r0, r1} add r2, #0x20 stmia r2!, {r0, r1} ldr r0, [r5] add r1, r6, #0 str r0, [r2] str r7, [r4, #0x30] str r7, [r4, #0x34] str r7, [r4, #0x2c] mov r0, #1 str r0, [r4, #8] ldr r0, [r4, #0x40] bl FUN_02020044 ldr r0, [r4, #0x40] add r1, sp, #0x18 bl FUN_02020064 ldr r0, [r4, #0x40] add r1, r7, #0 bl FUN_02020088 ldr r0, [r4, #0x40] mov r1, #2 bl FUN_02020130 ldr r0, [r4, #0x40] bl FUN_02020198 ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] mov r0, #1 add sp, #0x24 pop {r4, r5, r6, r7, pc} .align 2, 0 _021DC934: .word 0x021DF6AC _021DC938: .word 0x021DF61C thumb_func_end MOD85_021DC8B4 thumb_func_start MOD85_021DC93C MOD85_021DC93C: ; 0x021DC93C push {r3, r4, r5, r6, r7, lr} sub sp, #0x60 ldr r3, _021DC9D8 ; =0x021DFA2C add r4, r0, #0 ldmia r3!, {r0, r1} add r2, sp, #0x40 add r6, r2, #0 stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldr r3, _021DC9DC ; =0x021DFA4C add r2, sp, #0x20 ldmia r3!, {r0, r1} add r5, r2, #0 stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldr r3, _021DC9E0 ; =0x021DFA6C add r2, sp, #0 add r7, r2, #0 ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldr r1, [r4, #0x34] ldr r0, [r4, #0x2c] lsl r1, r1, #2 ldr r1, [r6, r1] add r0, r0, r1 str r0, [r4, #0x2c] ldr r0, [r4, #0x34] ldr r1, [r4, #0x14] lsl r0, r0, #2 ldr r0, [r5, r0] add r0, r1, r0 str r0, [r4, #0x14] ldr r0, [r4, #0x30] add r2, r0, #1 str r2, [r4, #0x30] ldr r1, [r4, #0x34] lsl r0, r1, #2 ldr r0, [r7, r0] cmp r2, r0 blo _021DC9BC add r0, r1, #1 str r0, [r4, #0x34] cmp r0, #8 blt _021DC9B8 mov r0, #0 str r0, [r4, #0x34] _021DC9B8: mov r0, #0 str r0, [r4, #0x30] _021DC9BC: add r1, r4, #0 ldr r0, [r4, #0x40] add r1, #0x14 bl FUN_02020044 ldr r1, [r4, #0x2c] ldr r0, [r4, #0x40] lsl r1, r1, #0x10 lsr r1, r1, #0x10 bl FUN_02020088 mov r0, #0 add sp, #0x60 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021DC9D8: .word 0x021DFA2C _021DC9DC: .word 0x021DFA4C _021DC9E0: .word 0x021DFA6C thumb_func_end MOD85_021DC93C thumb_func_start MOD85_021DC9E4 MOD85_021DC9E4: ; 0x021DC9E4 push {r3, r4, r5, r6, lr} sub sp, #0x24 ldr r3, _021DCA60 ; =0x021DF5F8 add r4, r0, #0 ldmia r3!, {r0, r1} add r2, sp, #0x18 stmia r2!, {r0, r1} ldr r0, [r3] ldr r5, _021DCA64 ; =0x021DF658 str r0, [r2] add r2, sp, #0xc add r3, r2, #0 ldmia r5!, {r0, r1} stmia r2!, {r0, r1} ldr r0, [r5] add r5, r4, #0 str r0, [r2] add r2, sp, #0 mov r0, #0 str r0, [r2] str r0, [r2, #4] add r6, r3, #0 str r0, [r2, #8] ldmia r6!, {r0, r1} add r5, #0x14 stmia r5!, {r0, r1} ldr r0, [r6] str r0, [r5] add r5, r4, #0 ldmia r2!, {r0, r1} add r5, #0x20 stmia r5!, {r0, r1} ldr r0, [r2] add r1, r3, #0 str r0, [r5] mov r0, #1 str r0, [r4, #8] ldr r0, [r4, #0x40] bl FUN_02020044 ldr r0, [r4, #0x40] add r1, sp, #0x18 bl FUN_02020064 ldr r0, [r4, #0x40] mov r1, #0 bl FUN_02020088 ldr r0, [r4, #0x40] mov r1, #2 bl FUN_02020130 ldr r0, [r4, #0x40] bl FUN_02020198 ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] mov r0, #1 add sp, #0x24 pop {r3, r4, r5, r6, pc} nop _021DCA60: .word 0x021DF5F8 _021DCA64: .word 0x021DF658 thumb_func_end MOD85_021DC9E4 thumb_func_start MOD85_021DCA68 MOD85_021DCA68: ; 0x021DCA68 push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 add r5, r1, #0 ldr r4, [r6, #0x38] cmp r5, #5 blt _021DCA78 bl ErrorHandling _021DCA78: mov r1, #2 mov r2, #0x45 ldr r7, _021DCAF0 ; =0x021DFB30 lsl r3, r5, #4 str r1, [sp] lsl r2, r2, #4 ldr r0, [r4, r2] sub r2, #0x18 add r5, r7, r3 ldr r2, [r4, r2] ldr r3, [r7, r3] bl MOD85_021DE840 mov r1, #2 mov r2, #0x45 str r1, [sp] lsl r2, r2, #4 ldr r0, [r4, r2] sub r2, #0x18 ldr r2, [r4, r2] ldr r3, [r5, #4] bl MOD85_021DE910 mov r1, #0x45 lsl r1, r1, #4 ldr r0, [r4, r1] sub r1, #0x18 ldr r1, [r4, r1] ldr r2, [r5, #8] mov r3, #2 bl MOD85_021DE9E4 mov r1, #0x45 lsl r1, r1, #4 ldr r0, [r4, r1] sub r1, #0x18 ldr r1, [r4, r1] ldr r2, [r5, #0xc] mov r3, #2 bl MOD85_021DEA4C ldr r0, _021DCAF4 ; =MOD85_021DCB18 ldr r2, _021DCAF8 ; =0x00000101 add r1, r6, #0 bl FUN_0200CA60 cmp r0, #0 bne _021DCADC bl ErrorHandling _021DCADC: ldr r0, _021DCAFC ; =MOD85_021DCB44 ldr r2, _021DCAF8 ; =0x00000101 add r1, r6, #0 bl FUN_0200CA98 cmp r0, #0 bne _021DCAEE bl ErrorHandling _021DCAEE: pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021DCAF0: .word 0x021DFB30 _021DCAF4: .word MOD85_021DCB18 _021DCAF8: .word 0x00000101 _021DCAFC: .word MOD85_021DCB44 thumb_func_end MOD85_021DCA68 thumb_func_start MOD85_021DCB00 MOD85_021DCB00: ; 0x021DCB00 push {r3, lr} mov r1, #2 mov r2, #0x45 str r1, [sp] lsl r2, r2, #4 ldr r0, [r0, r2] add r2, r1, #0 add r3, r1, #0 bl MOD85_021DEAB4 pop {r3, pc} .align 2, 0 thumb_func_end MOD85_021DCB00 thumb_func_start MOD85_021DCB18 MOD85_021DCB18: ; 0x021DCB18 push {r4, r5, r6, lr} add r5, r1, #0 add r6, r0, #0 mov r0, #0x45 ldr r4, [r5, #0x38] lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #2 bl MOD85_021DE8A8 mov r0, #0x45 lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #2 bl MOD85_021DE97C mov r0, #1 str r0, [r5, #0xc] add r0, r6, #0 bl FUN_0200CAB4 pop {r4, r5, r6, pc} thumb_func_end MOD85_021DCB18 thumb_func_start MOD85_021DCB44 MOD85_021DCB44: ; 0x021DCB44 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 ldr r0, [r4, #0xc] ldr r1, [r4, #0x38] cmp r0, #1 bne _021DCB68 mov r0, #0x45 lsl r0, r0, #4 ldr r0, [r1, r0] mov r1, #2 bl MOD85_021DE9B0 mov r0, #2 str r0, [r4, #0xc] add r0, r5, #0 bl FUN_0200CAB4 _021DCB68: pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD85_021DCB44 thumb_func_start MOD85_021DCB6C MOD85_021DCB6C: ; 0x021DCB6C push {r3, r4, r5, r6, lr} sub sp, #0x34 add r5, r0, #0 add r4, r1, #0 add r1, sp, #0x28 mov r0, #0 str r0, [r1] str r0, [r1, #4] ldr r6, _021DCBDC ; =0x021DF85C str r0, [r1, #8] ldmia r6!, {r0, r1} add r3, sp, #0x1c stmia r3!, {r0, r1} ldr r0, [r6] add r1, r4, #0 str r0, [r3] mov r0, #1 str r0, [sp] mov r3, #2 str r3, [sp, #4] str r3, [sp, #8] str r3, [sp, #0xc] str r3, [sp, #0x10] str r3, [sp, #0x14] mov r0, #7 str r0, [sp, #0x18] mov r0, #0x45 lsl r0, r0, #4 ldr r0, [r5, r0] bl MOD85_021DEC00 ldr r0, [r4, #4] mov r1, #2 bl FUN_020200EC ldr r0, [r4, #4] add r1, sp, #0x28 bl FUN_02020054 ldr r0, [r4, #4] add r1, sp, #0x1c bl FUN_02020064 mov r0, #0 bl FUN_0201B9A0 add r1, r0, #0 ldr r0, [r4, #4] bl FUN_02020088 ldr r0, [r4, #4] mov r1, #1 bl FUN_020200BC add sp, #0x34 pop {r3, r4, r5, r6, pc} .align 2, 0 _021DCBDC: .word 0x021DF85C thumb_func_end MOD85_021DCB6C thumb_func_start MOD85_021DCBE0 MOD85_021DCBE0: ; 0x021DCBE0 push {r4, r5, lr} sub sp, #0x14 ldr r5, _021DCC0C ; =0x021DF6E8 add r3, r0, #0 ldmia r5!, {r0, r1} add r4, sp, #8 add r2, r4, #0 stmia r4!, {r0, r1} ldr r0, [r5] ldr r1, _021DCC10 ; =0x021DF8AC str r0, [r4] str r3, [sp] mov r0, #0x87 str r0, [sp, #4] ldr r0, _021DCC14 ; =0x0000044C ldr r0, [r3, r0] mov r3, #0 bl FUN_020644E4 add sp, #0x14 pop {r4, r5, pc} nop _021DCC0C: .word 0x021DF6E8 _021DCC10: .word 0x021DF8AC _021DCC14: .word 0x0000044C thumb_func_end MOD85_021DCBE0 thumb_func_start MOD85_021DCC18 MOD85_021DCC18: ; 0x021DCC18 push {r4, lr} add r4, r1, #0 bl FUN_0206475C str r0, [r4, #0x10] add r0, r4, #0 bl MOD85_021DCD50 mov r0, #1 pop {r4, pc} thumb_func_end MOD85_021DCC18 thumb_func_start MOD85_021DCC2C MOD85_021DCC2C: ; 0x021DCC2C push {r3, r4, lr} sub sp, #4 add r4, r1, #0 ldr r0, [r4, #0x18] cmp r0, #0 beq _021DCC54 mov r1, #3 str r1, [sp] mov r0, #0x45 ldr r2, [r4, #0x10] lsl r0, r0, #4 ldr r0, [r2, r0] add r2, r1, #0 add r3, r1, #0 bl MOD85_021DEAB4 add r4, #0x14 add r0, r4, #0 bl MOD85_021DECA0 _021DCC54: add sp, #4 pop {r3, r4, pc} thumb_func_end MOD85_021DCC2C thumb_func_start MOD85_021DCC58 MOD85_021DCC58: ; 0x021DCC58 push {r4, lr} sub sp, #0x28 add r4, r1, #0 ldr r1, [r4] cmp r1, #3 bhi _021DCCF4 add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021DCC70: ; jump table .short _021DCC78 - _021DCC70 - 2 ; case 0 .short _021DCCBA - _021DCC70 - 2 ; case 1 .short _021DCCD2 - _021DCC70 - 2 ; case 2 .short _021DCCF4 - _021DCC70 - 2 ; case 3 _021DCC78: ldr r1, [r4, #0xc] cmp r1, #2 bne _021DCCF4 add r1, sp, #0x1c bl FUN_0206477C mov r0, #1 str r0, [sp] mov r0, #3 str r0, [sp, #4] str r0, [sp, #8] str r0, [sp, #0xc] str r0, [sp, #0x10] mov r3, #2 str r3, [sp, #0x14] mov r0, #5 str r0, [sp, #0x18] mov r0, #0x45 ldr r1, [r4, #0x10] lsl r0, r0, #4 ldr r0, [r1, r0] add r1, r4, #0 add r1, #0x14 add r2, sp, #0x1c bl MOD85_021DEC00 ldr r0, [r4, #0x18] mov r1, #1 bl FUN_020200BC ldr r0, [r4] add r0, r0, #1 str r0, [r4] _021DCCBA: ldr r0, [r4, #8] add r0, r0, #1 str r0, [r4, #8] cmp r0, #0xf blo _021DCCF4 ldr r0, [r4] add sp, #0x28 add r0, r0, #1 str r0, [r4] mov r0, #1 str r0, [r4, #4] pop {r4, pc} _021DCCD2: mov r1, #3 str r1, [sp] mov r0, #0x45 ldr r2, [r4, #0x10] lsl r0, r0, #4 ldr r0, [r2, r0] add r2, r1, #0 add r3, r1, #0 bl MOD85_021DEAB4 add r0, r4, #0 add r0, #0x14 bl MOD85_021DECA0 ldr r0, [r4] add r0, r0, #1 str r0, [r4] _021DCCF4: add sp, #0x28 pop {r4, pc} thumb_func_end MOD85_021DCC58 thumb_func_start MOD85_021DCCF8 MOD85_021DCCF8: ; 0x021DCCF8 bx lr .align 2, 0 thumb_func_end MOD85_021DCCF8 thumb_func_start MOD85_021DCCFC MOD85_021DCCFC: ; 0x021DCCFC push {r4, r5, r6, lr} add r5, r1, #0 add r6, r0, #0 mov r0, #0x45 ldr r4, [r5, #0x10] lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #3 bl MOD85_021DE8A8 mov r0, #0x45 lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #3 bl MOD85_021DE97C mov r0, #1 str r0, [r5, #0xc] add r0, r6, #0 bl FUN_0200CAB4 pop {r4, r5, r6, pc} thumb_func_end MOD85_021DCCFC thumb_func_start MOD85_021DCD28 MOD85_021DCD28: ; 0x021DCD28 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 ldr r0, [r4, #0xc] ldr r1, [r4, #0x10] cmp r0, #1 bne _021DCD4C mov r0, #0x45 lsl r0, r0, #4 ldr r0, [r1, r0] mov r1, #3 bl MOD85_021DE9B0 mov r0, #2 str r0, [r4, #0xc] add r0, r5, #0 bl FUN_0200CAB4 _021DCD4C: pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD85_021DCD28 thumb_func_start MOD85_021DCD50 MOD85_021DCD50: ; 0x021DCD50 push {r3, r4, r5, lr} add r5, r0, #0 mov r2, #0x45 ldr r4, [r5, #0x10] mov r0, #3 lsl r2, r2, #4 str r0, [sp] ldr r0, [r4, r2] sub r2, #0x18 ldr r2, [r4, r2] mov r1, #2 mov r3, #0x2c bl MOD85_021DE840 mov r2, #0x45 mov r0, #3 lsl r2, r2, #4 str r0, [sp] ldr r0, [r4, r2] sub r2, #0x18 ldr r2, [r4, r2] mov r1, #2 mov r3, #0x2f bl MOD85_021DE910 mov r1, #0x45 lsl r1, r1, #4 ldr r0, [r4, r1] sub r1, #0x18 ldr r1, [r4, r1] mov r2, #0x2d mov r3, #3 bl MOD85_021DE9E4 mov r1, #0x45 lsl r1, r1, #4 ldr r0, [r4, r1] sub r1, #0x18 ldr r1, [r4, r1] mov r2, #0x2e mov r3, #3 bl MOD85_021DEA4C ldr r0, _021DCDCC ; =MOD85_021DCCFC ldr r2, _021DCDD0 ; =0x00000101 add r1, r5, #0 bl FUN_0200CA60 cmp r0, #0 bne _021DCDB8 bl ErrorHandling _021DCDB8: ldr r0, _021DCDD4 ; =MOD85_021DCD28 ldr r2, _021DCDD0 ; =0x00000101 add r1, r5, #0 bl FUN_0200CA98 cmp r0, #0 bne _021DCDCA bl ErrorHandling _021DCDCA: pop {r3, r4, r5, pc} .align 2, 0 _021DCDCC: .word MOD85_021DCCFC _021DCDD0: .word 0x00000101 _021DCDD4: .word MOD85_021DCD28 thumb_func_end MOD85_021DCD50 thumb_func_start MOD85_021DCDD8 MOD85_021DCDD8: ; 0x021DCDD8 push {r4, r5, r6, lr} add r5, r1, #0 add r6, r0, #0 mov r0, #0x45 ldr r4, [r5, #0x20] lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #4 bl MOD85_021DE8A8 mov r0, #0x45 lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #4 bl MOD85_021DE97C mov r0, #1 str r0, [r5, #0x10] add r0, r6, #0 bl FUN_0200CAB4 pop {r4, r5, r6, pc} thumb_func_end MOD85_021DCDD8 thumb_func_start MOD85_021DCE04 MOD85_021DCE04: ; 0x021DCE04 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 ldr r0, [r4, #0x10] ldr r1, [r4, #0x20] cmp r0, #1 bne _021DCE28 mov r0, #0x45 lsl r0, r0, #4 ldr r0, [r1, r0] mov r1, #4 bl MOD85_021DE9B0 mov r0, #2 str r0, [r4, #0x10] add r0, r5, #0 bl FUN_0200CAB4 _021DCE28: pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD85_021DCE04 thumb_func_start MOD85_021DCE2C MOD85_021DCE2C: ; 0x021DCE2C push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 ldr r0, [r6, #0x18] mov r2, #0x45 lsl r3, r0, #4 ldr r7, _021DCEB0 ; =0x021DFB00 ldr r4, [r6, #0x20] mov r0, #4 lsl r2, r2, #4 str r0, [sp] ldr r0, [r4, r2] sub r2, #0x18 add r5, r7, r3 ldr r2, [r4, r2] ldr r3, [r7, r3] mov r1, #2 bl MOD85_021DE840 mov r2, #0x45 mov r0, #4 str r0, [sp] lsl r2, r2, #4 ldr r0, [r4, r2] sub r2, #0x18 ldr r2, [r4, r2] ldr r3, [r5, #4] mov r1, #2 bl MOD85_021DE910 mov r1, #0x45 lsl r1, r1, #4 ldr r0, [r4, r1] sub r1, #0x18 ldr r1, [r4, r1] ldr r2, [r5, #8] mov r3, #4 bl MOD85_021DE9E4 mov r1, #0x45 lsl r1, r1, #4 ldr r0, [r4, r1] sub r1, #0x18 ldr r1, [r4, r1] ldr r2, [r5, #0xc] mov r3, #4 bl MOD85_021DEA4C ldr r0, _021DCEB4 ; =MOD85_021DCDD8 ldr r2, _021DCEB8 ; =0x00000101 add r1, r6, #0 bl FUN_0200CA60 cmp r0, #0 bne _021DCE9C bl ErrorHandling _021DCE9C: ldr r0, _021DCEBC ; =MOD85_021DCE04 ldr r2, _021DCEB8 ; =0x00000101 add r1, r6, #0 bl FUN_0200CA98 cmp r0, #0 bne _021DCEAE bl ErrorHandling _021DCEAE: pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021DCEB0: .word 0x021DFB00 _021DCEB4: .word MOD85_021DCDD8 _021DCEB8: .word 0x00000101 _021DCEBC: .word MOD85_021DCE04 thumb_func_end MOD85_021DCE2C thumb_func_start MOD85_021DCEC0 MOD85_021DCEC0: ; 0x021DCEC0 push {r3, r4, r5, r6, lr} sub sp, #0x14 ldr r6, _021DCEEC ; =0x021DF838 add r5, sp, #8 add r4, r0, #0 add r3, r1, #0 ldmia r6!, {r0, r1} add r2, r5, #0 stmia r5!, {r0, r1} ldr r0, [r6] ldr r1, _021DCEF0 ; =0x021DF8C0 str r0, [r5] str r4, [sp] mov r0, #0x89 str r0, [sp, #4] ldr r0, _021DCEF4 ; =0x0000044C ldr r0, [r4, r0] bl FUN_020644E4 add sp, #0x14 pop {r3, r4, r5, r6, pc} nop _021DCEEC: .word 0x021DF838 _021DCEF0: .word 0x021DF8C0 _021DCEF4: .word 0x0000044C thumb_func_end MOD85_021DCEC0 thumb_func_start MOD85_021DCEF8 MOD85_021DCEF8: ; 0x021DCEF8 push {r4, lr} add r4, r1, #0 bl FUN_02064738 str r4, [r0, #4] mov r1, #0 str r1, [r0, #8] str r1, [r0, #0xc] str r1, [r0, #0x14] pop {r4, pc} thumb_func_end MOD85_021DCEF8 thumb_func_start MOD85_021DCF0C MOD85_021DCF0C: ; 0x021DCF0C push {r3, lr} bl FUN_02064738 ldr r0, [r0, #0xc] pop {r3, pc} .align 2, 0 thumb_func_end MOD85_021DCF0C thumb_func_start MOD85_021DCF18 MOD85_021DCF18: ; 0x021DCF18 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 bl FUN_0206475C str r0, [r4, #0x20] add r0, r5, #0 bl FUN_02064754 str r0, [r4, #0x18] add r0, r4, #0 bl MOD85_021DCE2C mov r0, #1 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD85_021DCF18 thumb_func_start MOD85_021DCF38 MOD85_021DCF38: ; 0x021DCF38 push {r3, r4, lr} sub sp, #4 add r4, r1, #0 ldr r0, [r4, #0x28] cmp r0, #0 beq _021DCF60 mov r1, #4 str r1, [sp] mov r0, #0x45 ldr r2, [r4, #0x20] lsl r0, r0, #4 ldr r0, [r2, r0] add r2, r1, #0 add r3, r1, #0 bl MOD85_021DEAB4 add r4, #0x24 add r0, r4, #0 bl MOD85_021DECA0 _021DCF60: add sp, #4 pop {r3, r4, pc} thumb_func_end MOD85_021DCF38 thumb_func_start MOD85_021DCF64 MOD85_021DCF64: ; 0x021DCF64 push {r3, r4, r5, lr} ldr r4, _021DCF80 ; =0x021DFA8C add r5, r1, #0 _021DCF6A: ldr r1, [r5, #4] add r0, r5, #0 lsl r1, r1, #2 ldr r2, [r4, r1] ldr r1, [r5, #8] lsl r1, r1, #2 ldr r1, [r2, r1] blx r1 cmp r0, #1 beq _021DCF6A pop {r3, r4, r5, pc} .align 2, 0 _021DCF80: .word 0x021DFA8C thumb_func_end MOD85_021DCF64 thumb_func_start MOD85_021DCF84 MOD85_021DCF84: ; 0x021DCF84 bx lr .align 2, 0 thumb_func_end MOD85_021DCF84 thumb_func_start MOD85_021DCF88 MOD85_021DCF88: ; 0x021DCF88 push {r4, r5, lr} sub sp, #0x34 add r4, r0, #0 ldr r0, [r4, #0x10] cmp r0, #2 bne _021DCFFA ldr r5, _021DD000 ; =0x021DF6D0 add r3, sp, #0x28 ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldr r0, [r5] add r1, sp, #0x1c str r0, [r3] mov r0, #0 str r0, [r1] str r0, [r1, #4] str r0, [r1, #8] mov r0, #1 str r0, [sp] mov r0, #4 str r0, [sp, #4] str r0, [sp, #8] str r0, [sp, #0xc] str r0, [sp, #0x10] mov r3, #2 str r3, [sp, #0x14] mov r0, #6 str r0, [sp, #0x18] mov r0, #0x45 ldr r1, [r4, #0x20] lsl r0, r0, #4 ldr r0, [r1, r0] add r1, r4, #0 add r1, #0x24 bl MOD85_021DEC00 ldr r0, [r4, #0x28] mov r1, #2 bl FUN_020200EC ldr r0, [r4, #0x28] add r1, sp, #0x1c bl FUN_02020054 mov r0, #0 bl FUN_0201B9A0 add r1, r0, #0 ldr r0, [r4, #0x28] bl FUN_02020088 mov r0, #1 str r0, [r4, #0xc] ldr r0, [r4, #8] add r0, r0, #1 str r0, [r4, #8] _021DCFFA: mov r0, #0 add sp, #0x34 pop {r4, r5, pc} .align 2, 0 _021DD000: .word 0x021DF6D0 thumb_func_end MOD85_021DCF88 thumb_func_start MOD85_021DD004 MOD85_021DD004: ; 0x021DD004 mov r0, #0 bx lr thumb_func_end MOD85_021DD004 thumb_func_start MOD85_021DD008 MOD85_021DD008: ; 0x021DD008 push {r3, r4, r5, lr} sub sp, #0x18 ldr r3, _021DD05C ; =0x021DF7FC add r4, r0, #0 ldmia r3!, {r0, r1} add r2, sp, #0xc stmia r2!, {r0, r1} ldr r0, [r3] ldr r5, _021DD060 ; =0x021DF7F0 str r0, [r2] add r3, sp, #0 ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldr r0, [r5] add r1, r2, #0 str r0, [r3] ldr r0, [r4, #0x28] bl FUN_02020064 ldr r0, [r4, #0x28] add r1, sp, #0xc bl FUN_02020044 ldr r0, [r4, #0x28] mov r1, #1 bl FUN_02020130 ldr r0, [r4, #0x28] mov r1, #0 bl FUN_020200D8 ldr r0, [r4, #0x28] mov r1, #0 bl FUN_020200BC ldr r0, [r4, #8] add r0, r0, #1 str r0, [r4, #8] mov r0, #0 add sp, #0x18 pop {r3, r4, r5, pc} .align 2, 0 _021DD05C: .word 0x021DF7FC _021DD060: .word 0x021DF7F0 thumb_func_end MOD85_021DD008 thumb_func_start MOD85_021DD064 MOD85_021DD064: ; 0x021DD064 push {r4, lr} sub sp, #0x18 add r4, r0, #0 ldr r0, [r4, #0x28] add r1, sp, #0xc bl MOD85_021DECBC ldr r0, [r4, #0x28] add r1, sp, #0 bl MOD85_021DECD0 ldr r0, [sp] add r0, #0xc0 str r0, [sp] ldr r0, [sp, #4] add r0, #0xc0 str r0, [sp, #4] ldr r0, [r4, #0x14] add r0, r0, #1 str r0, [r4, #0x14] cmp r0, #0x10 blt _021DD0AE mov r0, #5 lsl r0, r0, #0x12 str r0, [sp, #0x10] mov r0, #1 lsl r0, r0, #0xc str r0, [sp] str r0, [sp, #4] mov r0, #0 str r0, [r4, #0x14] ldr r0, [r4, #8] add r0, r0, #1 str r0, [r4, #8] mov r0, #0x23 bl FUN_02005578 _021DD0AE: ldr r0, [r4, #0x28] add r1, sp, #0 bl FUN_02020064 ldr r0, [r4, #0x28] add r1, sp, #0xc bl FUN_02020044 mov r0, #0 add sp, #0x18 pop {r4, pc} thumb_func_end MOD85_021DD064 thumb_func_start MOD85_021DD0C4 MOD85_021DD0C4: ; 0x021DD0C4 push {r4, lr} add r4, r0, #0 mov r1, #1 ldr r0, [r4, #0x28] lsl r1, r1, #0xc bl FUN_020201E4 ldr r0, [r4, #0x14] add r0, r0, #1 str r0, [r4, #0x14] cmp r0, #9 blt _021DD0EA mov r0, #0 str r0, [r4, #0x14] ldr r0, [r4, #8] add r0, r0, #1 str r0, [r4, #8] mov r0, #1 str r0, [r4, #0xc] _021DD0EA: mov r0, #0 pop {r4, pc} .align 2, 0 thumb_func_end MOD85_021DD0C4 thumb_func_start MOD85_021DD0F0 MOD85_021DD0F0: ; 0x021DD0F0 push {r3, r4, r5, lr} sub sp, #0x18 ldr r3, _021DD14C ; =0x021DF7D8 add r4, r0, #0 ldmia r3!, {r0, r1} add r2, sp, #0xc stmia r2!, {r0, r1} ldr r0, [r3] ldr r5, _021DD150 ; =0x021DF7CC str r0, [r2] add r3, sp, #0 ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldr r0, [r5] add r1, r2, #0 str r0, [r3] ldr r0, [r4, #0x28] bl FUN_02020064 ldr r0, [r4, #0x28] add r1, sp, #0xc bl FUN_02020044 ldr r0, [r4, #0x28] mov r1, #1 bl FUN_02020130 ldr r0, [r4, #0x28] mov r1, #0 bl FUN_020200D8 ldr r0, [r4, #0x28] mov r1, #0 bl FUN_020200BC ldr r0, _021DD154 ; =0x000006D1 bl FUN_020054C8 ldr r0, [r4, #8] add r0, r0, #1 str r0, [r4, #8] mov r0, #0 add sp, #0x18 pop {r3, r4, r5, pc} nop _021DD14C: .word 0x021DF7D8 _021DD150: .word 0x021DF7CC _021DD154: .word 0x000006D1 thumb_func_end MOD85_021DD0F0 thumb_func_start MOD85_021DD158 MOD85_021DD158: ; 0x021DD158 push {r4, lr} sub sp, #0x18 add r4, r0, #0 ldr r0, [r4, #0x28] add r1, sp, #0xc bl MOD85_021DECBC ldr r0, [r4, #0x28] add r1, sp, #0 bl MOD85_021DECD0 mov r0, #6 ldr r1, [sp] lsl r0, r0, #6 sub r1, r1, r0 str r1, [sp] ldr r1, [sp, #4] sub r0, r1, r0 str r0, [sp, #4] ldr r0, [r4, #0x14] add r0, r0, #1 str r0, [r4, #0x14] cmp r0, #8 blt _021DD1A4 mov r0, #0x1d lsl r0, r0, #0x10 str r0, [sp, #0x10] mov r0, #1 lsl r0, r0, #0xc str r0, [sp] str r0, [sp, #4] mov r0, #0 str r0, [r4, #0x14] ldr r0, [r4, #8] add r0, r0, #1 str r0, [r4, #8] mov r0, #1 str r0, [r4, #0xc] _021DD1A4: ldr r0, [r4, #0x28] add r1, sp, #0 bl FUN_02020064 ldr r0, [r4, #0x28] add r1, sp, #0xc bl FUN_02020044 mov r0, #0 add sp, #0x18 pop {r4, pc} .align 2, 0 thumb_func_end MOD85_021DD158 thumb_func_start MOD85_021DD1BC MOD85_021DD1BC: ; 0x021DD1BC push {r3, r4, r5, lr} sub sp, #0x18 ldr r3, _021DD21C ; =0x021DF7B4 add r4, r0, #0 ldmia r3!, {r0, r1} add r2, sp, #0xc stmia r2!, {r0, r1} ldr r0, [r3] ldr r5, _021DD220 ; =0x021DF7A8 str r0, [r2] add r3, sp, #0 ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldr r0, [r5] add r1, r2, #0 str r0, [r3] ldr r0, [r4, #0x28] bl FUN_02020064 ldr r0, [r4, #0x28] add r1, sp, #0xc bl FUN_02020044 ldr r0, [r4, #0x28] mov r1, #0 bl FUN_02020130 ldr r0, [r4, #0x28] mov r1, #0 bl FUN_020200BC ldr r0, [r4, #0x28] mov r1, #0 bl FUN_020200D8 ldr r0, [r4, #0x28] bl FUN_02020198 mov r0, #1 str r0, [r4, #0xc] ldr r0, [r4, #8] add r0, r0, #1 str r0, [r4, #8] mov r0, #0 add sp, #0x18 pop {r3, r4, r5, pc} nop _021DD21C: .word 0x021DF7B4 _021DD220: .word 0x021DF7A8 thumb_func_end MOD85_021DD1BC thumb_func_start MOD85_021DD224 MOD85_021DD224: ; 0x021DD224 push {r3, r4, r5, lr} sub sp, #0x18 ldr r3, _021DD290 ; =0x021DF760 add r4, r0, #0 ldmia r3!, {r0, r1} add r2, sp, #0xc stmia r2!, {r0, r1} ldr r0, [r3] ldr r5, _021DD294 ; =0x021DF6DC str r0, [r2] add r3, sp, #0 ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldr r0, [r5] add r1, r2, #0 str r0, [r3] ldr r0, [r4, #0x28] bl FUN_02020064 ldr r0, [r4, #0x28] add r1, sp, #0xc bl FUN_02020044 ldr r0, [r4, #0x28] mov r1, #1 bl FUN_020200BC mov r1, #2 ldr r0, [r4, #0x28] lsl r1, r1, #0xa bl FUN_020200D8 ldr r0, [r4, #0x28] bl FUN_020201DC cmp r0, #2 beq _021DD27E ldr r0, [r4, #0x28] mov r1, #2 bl FUN_02020130 ldr r0, [r4, #0x28] bl FUN_02020198 _021DD27E: mov r0, #1 str r0, [r4, #0xc] ldr r0, [r4, #8] add r0, r0, #1 str r0, [r4, #8] mov r0, #0 add sp, #0x18 pop {r3, r4, r5, pc} nop _021DD290: .word 0x021DF760 _021DD294: .word 0x021DF6DC thumb_func_end MOD85_021DD224 thumb_func_start MOD85_021DD298 MOD85_021DD298: ; 0x021DD298 push {r3, r4, r5, lr} sub sp, #0x18 ldr r3, _021DD2F8 ; =0x021DF67C add r4, r0, #0 ldmia r3!, {r0, r1} add r2, sp, #0xc stmia r2!, {r0, r1} ldr r0, [r3] ldr r5, _021DD2FC ; =0x021DF850 str r0, [r2] add r3, sp, #0 ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldr r0, [r5] add r1, r2, #0 str r0, [r3] ldr r0, [r4, #0x28] bl FUN_02020064 ldr r0, [r4, #0x28] add r1, sp, #0xc bl FUN_02020044 ldr r0, [r4, #0x28] mov r1, #5 bl FUN_02020130 ldr r0, [r4, #0x28] mov r1, #1 bl FUN_020200BC mov r1, #1 ldr r0, [r4, #0x28] lsl r1, r1, #0xc bl FUN_020200D8 ldr r0, [r4, #0x28] bl FUN_02020198 mov r0, #1 str r0, [r4, #0xc] ldr r0, [r4, #8] add r0, r0, #1 str r0, [r4, #8] mov r0, #0 add sp, #0x18 pop {r3, r4, r5, pc} .align 2, 0 _021DD2F8: .word 0x021DF67C _021DD2FC: .word 0x021DF850 thumb_func_end MOD85_021DD298 thumb_func_start MOD85_021DD300 MOD85_021DD300: ; 0x021DD300 push {r3, r4, r5, lr} sub sp, #0x18 ldr r3, _021DD360 ; =0x021DF688 add r4, r0, #0 ldmia r3!, {r0, r1} add r2, sp, #0xc stmia r2!, {r0, r1} ldr r0, [r3] ldr r5, _021DD364 ; =0x021DF73C str r0, [r2] add r3, sp, #0 ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldr r0, [r5] add r1, r2, #0 str r0, [r3] ldr r0, [r4, #0x28] bl FUN_02020064 ldr r0, [r4, #0x28] add r1, sp, #0xc bl FUN_02020044 ldr r0, [r4, #0x28] mov r1, #4 bl FUN_02020130 ldr r0, [r4, #0x28] mov r1, #1 bl FUN_020200BC mov r1, #1 ldr r0, [r4, #0x28] lsl r1, r1, #0xc bl FUN_020200D8 ldr r0, [r4, #0x28] bl FUN_02020198 mov r0, #1 str r0, [r4, #0xc] ldr r0, [r4, #8] add r0, r0, #1 str r0, [r4, #8] mov r0, #0 add sp, #0x18 pop {r3, r4, r5, pc} .align 2, 0 _021DD360: .word 0x021DF688 _021DD364: .word 0x021DF73C thumb_func_end MOD85_021DD300 thumb_func_start MOD85_021DD368 MOD85_021DD368: ; 0x021DD368 push {r3, r4, r5, lr} sub sp, #0x18 ldr r3, _021DD3C8 ; =0x021DF718 add r4, r0, #0 ldmia r3!, {r0, r1} add r2, sp, #0xc stmia r2!, {r0, r1} ldr r0, [r3] ldr r5, _021DD3CC ; =0x021DF724 str r0, [r2] add r3, sp, #0 ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldr r0, [r5] add r1, r2, #0 str r0, [r3] ldr r0, [r4, #0x28] bl FUN_02020064 ldr r0, [r4, #0x28] add r1, sp, #0xc bl FUN_02020044 ldr r0, [r4, #0x28] mov r1, #3 bl FUN_02020130 ldr r0, [r4, #0x28] mov r1, #1 bl FUN_020200BC mov r1, #1 ldr r0, [r4, #0x28] lsl r1, r1, #0xc bl FUN_020200D8 ldr r0, [r4, #0x28] bl FUN_02020198 mov r0, #1 str r0, [r4, #0xc] ldr r0, [r4, #8] add r0, r0, #1 str r0, [r4, #8] mov r0, #0 add sp, #0x18 pop {r3, r4, r5, pc} .align 2, 0 _021DD3C8: .word 0x021DF718 _021DD3CC: .word 0x021DF724 thumb_func_end MOD85_021DD368 thumb_func_start MOD85_021DD3D0 MOD85_021DD3D0: ; 0x021DD3D0 push {r3, r4, r5, lr} sub sp, #0x18 ldr r3, _021DD434 ; =0x021DF778 add r4, r0, #0 ldmia r3!, {r0, r1} add r2, sp, #0xc stmia r2!, {r0, r1} ldr r0, [r3] ldr r5, _021DD438 ; =0x021DF604 str r0, [r2] add r3, sp, #0 ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldr r0, [r5] add r1, r2, #0 str r0, [r3] ldr r0, [r4, #0x28] bl FUN_02020064 ldr r0, [r4, #0x28] add r1, sp, #0xc bl FUN_02020044 ldr r0, [r4, #0x28] mov r1, #0 bl FUN_020200BC mov r1, #1 ldr r0, [r4, #0x28] lsl r1, r1, #0xc bl FUN_020200D8 ldr r0, [r4, #0x28] mov r1, #5 bl FUN_02020130 ldr r0, [r4, #0x28] bl FUN_02020198 mov r0, #0 str r0, [r4, #0x14] mov r1, #1 str r1, [r4, #0xc] ldr r1, [r4, #8] add r1, r1, #1 str r1, [r4, #8] add sp, #0x18 pop {r3, r4, r5, pc} nop _021DD434: .word 0x021DF778 _021DD438: .word 0x021DF604 thumb_func_end MOD85_021DD3D0 thumb_func_start MOD85_021DD43C MOD85_021DD43C: ; 0x021DD43C push {r4, lr} add r4, r0, #0 mov r1, #1 ldr r0, [r4, #0x28] lsl r1, r1, #0xc bl FUN_020201E4 ldr r0, [r4, #0x28] bl FUN_02020388 cmp r0, #0 bne _021DD468 ldr r0, [r4, #0x14] add r0, r0, #1 str r0, [r4, #0x14] cmp r0, #8 blt _021DD468 mov r0, #0 str r0, [r4, #0x14] ldr r0, [r4, #0x28] bl FUN_02020198 _021DD468: mov r0, #0 pop {r4, pc} thumb_func_end MOD85_021DD43C thumb_func_start MOD85_021DD46C MOD85_021DD46C: ; 0x021DD46C push {r4, r5, r6, lr} add r5, r1, #0 add r6, r0, #0 mov r0, #0x45 ldr r4, [r5, #0x2c] lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #5 bl MOD85_021DE8A8 mov r0, #0x45 lsl r0, r0, #4 ldr r0, [r4, r0] mov r1, #5 bl MOD85_021DE97C mov r0, #1 str r0, [r5, #0x10] add r0, r6, #0 bl FUN_0200CAB4 pop {r4, r5, r6, pc} thumb_func_end MOD85_021DD46C thumb_func_start MOD85_021DD498 MOD85_021DD498: ; 0x021DD498 push {r3, r4, r5, lr} add r4, r1, #0 ldr r1, [r4, #0x2c] add r5, r0, #0 mov r0, #1 str r0, [r4, #0x10] ldr r0, [r4, #0x10] cmp r0, #0 beq _021DD4C0 mov r0, #0x45 lsl r0, r0, #4 ldr r0, [r1, r0] mov r1, #5 bl MOD85_021DE9B0 mov r0, #2 str r0, [r4, #0x10] add r0, r5, #0 bl FUN_0200CAB4 _021DD4C0: pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD85_021DD498 thumb_func_start MOD85_021DD4C4 MOD85_021DD4C4: ; 0x021DD4C4 push {r3, r4, r5, lr} add r5, r0, #0 mov r2, #0x45 ldr r4, [r5, #0x2c] mov r0, #5 lsl r2, r2, #4 str r0, [sp] ldr r0, [r4, r2] sub r2, #0x18 ldr r2, [r4, r2] mov r1, #2 mov r3, #0x38 bl MOD85_021DE840 mov r2, #0x45 mov r0, #5 lsl r2, r2, #4 str r0, [sp] ldr r0, [r4, r2] sub r2, #0x18 ldr r2, [r4, r2] mov r1, #2 mov r3, #0x3b bl MOD85_021DE910 mov r1, #0x45 lsl r1, r1, #4 ldr r0, [r4, r1] sub r1, #0x18 ldr r1, [r4, r1] mov r2, #0x39 mov r3, #5 bl MOD85_021DE9E4 mov r1, #0x45 lsl r1, r1, #4 ldr r0, [r4, r1] sub r1, #0x18 ldr r1, [r4, r1] mov r2, #0x3a mov r3, #5 bl MOD85_021DEA4C ldr r0, _021DD540 ; =MOD85_021DD46C ldr r2, _021DD544 ; =0x00000101 add r1, r5, #0 bl FUN_0200CA60 cmp r0, #0 bne _021DD52C bl ErrorHandling _021DD52C: ldr r0, _021DD548 ; =MOD85_021DD498 ldr r2, _021DD544 ; =0x00000101 add r1, r5, #0 bl FUN_0200CA98 cmp r0, #0 bne _021DD53E bl ErrorHandling _021DD53E: pop {r3, r4, r5, pc} .align 2, 0 _021DD540: .word MOD85_021DD46C _021DD544: .word 0x00000101 _021DD548: .word MOD85_021DD498 thumb_func_end MOD85_021DD4C4 thumb_func_start MOD85_021DD54C MOD85_021DD54C: ; 0x021DD54C push {lr} sub sp, #0x14 add r2, sp, #8 mov r3, #0 str r3, [r2] str r3, [r2, #4] str r3, [r2, #8] str r0, [sp] mov r1, #0x88 str r1, [sp, #4] ldr r1, _021DD570 ; =0x0000044C ldr r0, [r0, r1] ldr r1, _021DD574 ; =0x021DF8D4 bl FUN_020644E4 add sp, #0x14 pop {pc} nop _021DD570: .word 0x0000044C _021DD574: .word 0x021DF8D4 thumb_func_end MOD85_021DD54C thumb_func_start MOD85_021DD578 MOD85_021DD578: ; 0x021DD578 push {r3, lr} bl FUN_02064738 ldr r0, [r0, #4] pop {r3, pc} .align 2, 0 thumb_func_end MOD85_021DD578 thumb_func_start MOD85_021DD584 MOD85_021DD584: ; 0x021DD584 push {r4, lr} add r4, r1, #0 bl FUN_0206475C str r0, [r4, #0x2c] add r0, r4, #0 bl MOD85_021DD4C4 mov r0, #1 pop {r4, pc} thumb_func_end MOD85_021DD584 thumb_func_start MOD85_021DD598 MOD85_021DD598: ; 0x021DD598 push {r3, r4, lr} sub sp, #4 add r4, r1, #0 ldr r0, [r4, #0x34] cmp r0, #0 beq _021DD5CE mov r1, #5 str r1, [sp] mov r0, #0x45 ldr r2, [r4, #0x2c] lsl r0, r0, #4 ldr r0, [r2, r0] add r2, r1, #0 add r3, r1, #0 bl MOD85_021DEAB4 add r0, r4, #0 add r0, #0x30 bl MOD85_021DECA0 ldr r0, [r4, #0x40] cmp r0, #0 beq _021DD5CE add r4, #0x3c add r0, r4, #0 bl MOD85_021DECA0 _021DD5CE: add sp, #4 pop {r3, r4, pc} .align 2, 0 thumb_func_end MOD85_021DD598 thumb_func_start MOD85_021DD5D4 MOD85_021DD5D4: ; 0x021DD5D4 push {r3, r4, r5, r6, r7, lr} sub sp, #0x18 add r5, r1, #0 add r1, sp, #0xc add r7, r0, #0 add r4, r2, #0 add r6, r3, #0 bl FUN_0206477C ldr r0, [sp, #0xc] ldr r1, [sp, #0x10] add r0, r0, r6 str r0, [sp, #0xc] ldr r0, [sp, #0x30] add r0, r1, r0 str r0, [sp, #0x10] add r0, r7, #0 add r1, sp, #0xc bl FUN_0206476C ldr r0, [sp, #0x38] cmp r0, #0 bne _021DD60A ldr r0, [sp, #0xc] add r0, r5, r0 str r0, [sp] b _021DD610 _021DD60A: ldr r0, [sp, #0xc] sub r0, r5, r0 str r0, [sp] _021DD610: ldr r0, [sp, #0x10] add r1, sp, #0 sub r0, r4, r0 str r0, [sp, #4] ldr r0, [sp, #0x34] bl FUN_02020044 add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD85_021DD5D4 thumb_func_start MOD85_021DD624 MOD85_021DD624: ; 0x021DD624 push {r4, r5, r6, lr} sub sp, #0x40 add r4, r1, #0 ldr r1, [r4] add r6, r0, #0 cmp r1, #0xa bls _021DD634 b _021DD96C _021DD634: add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021DD640: ; jump table .short _021DD656 - _021DD640 - 2 ; case 0 .short _021DD6C8 - _021DD640 - 2 ; case 1 .short _021DD750 - _021DD640 - 2 ; case 2 .short _021DD764 - _021DD640 - 2 ; case 3 .short _021DD796 - _021DD640 - 2 ; case 4 .short _021DD7C8 - _021DD640 - 2 ; case 5 .short _021DD7FA - _021DD640 - 2 ; case 6 .short _021DD842 - _021DD640 - 2 ; case 7 .short _021DD858 - _021DD640 - 2 ; case 8 .short _021DD8A4 - _021DD640 - 2 ; case 9 .short _021DD904 - _021DD640 - 2 ; case 10 _021DD656: ldr r0, [r4, #0x10] cmp r0, #2 beq _021DD65E b _021DD96C _021DD65E: ldr r5, _021DD970 ; =0x021DF82C add r3, sp, #0x34 ldmia r5!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} ldr r0, [r5] str r0, [r3] mov r0, #1 str r0, [sp] mov r0, #5 str r0, [sp, #4] str r0, [sp, #8] str r0, [sp, #0xc] str r0, [sp, #0x10] mov r3, #2 str r3, [sp, #0x14] mov r0, #4 str r0, [sp, #0x18] mov r0, #0x45 ldr r1, [r4, #0x2c] lsl r0, r0, #4 ldr r0, [r1, r0] add r1, r4, #0 add r1, #0x30 bl MOD85_021DEC00 mov r0, #1 str r0, [sp] mov r0, #5 str r0, [sp, #4] str r0, [sp, #8] str r0, [sp, #0xc] str r0, [sp, #0x10] mov r3, #2 str r3, [sp, #0x14] mov r0, #4 str r0, [sp, #0x18] mov r0, #0x45 ldr r1, [r4, #0x2c] lsl r0, r0, #4 ldr r0, [r1, r0] add r1, r4, #0 add r1, #0x3c add r2, sp, #0x34 bl MOD85_021DEC00 ldr r0, [r4, #0x40] mov r1, #1 bl FUN_02020100 ldr r0, [r4] add r0, r0, #1 str r0, [r4] _021DD6C8: add r0, r6, #0 add r1, sp, #0x28 mov r5, #0 bl FUN_0206477C mov r1, #2 ldr r2, [sp, #0x2c] lsl r1, r1, #0xe ldr r0, [sp, #0x28] add r2, r2, r1 add r0, r0, r1 str r2, [sp, #0x2c] lsl r2, r1, #3 str r0, [sp, #0x28] cmp r0, r2 blt _021DD6EE add r0, r2, #0 str r0, [sp, #0x28] add r5, r5, #1 _021DD6EE: mov r0, #0xe ldr r1, [sp, #0x2c] lsl r0, r0, #0xe cmp r1, r0 blt _021DD700 mov r0, #1 lsl r0, r0, #0x12 str r0, [sp, #0x2c] add r5, r5, #1 _021DD700: add r0, r6, #0 add r1, sp, #0x28 bl FUN_0206476C mov r0, #2 ldr r1, [sp, #0x28] lsl r0, r0, #0x10 sub r0, r1, r0 str r0, [sp, #0x1c] mov r0, #0x69 ldr r1, [sp, #0x2c] lsl r0, r0, #0xe sub r0, r0, r1 str r0, [sp, #0x20] ldr r0, [r4, #0x34] add r1, sp, #0x1c bl FUN_02020044 mov r0, #0x12 ldr r1, [sp, #0x28] lsl r0, r0, #0x10 sub r0, r0, r1 str r0, [sp, #0x1c] mov r0, #0x69 ldr r1, [sp, #0x2c] lsl r0, r0, #0xe sub r0, r0, r1 str r0, [sp, #0x20] ldr r0, [r4, #0x40] add r1, sp, #0x1c bl FUN_02020044 cmp r5, #2 beq _021DD746 b _021DD96C _021DD746: ldr r0, [r4] add sp, #0x40 add r0, r0, #1 str r0, [r4] pop {r4, r5, r6, pc} _021DD750: ldr r0, [r4, #8] add r0, r0, #1 str r0, [r4, #8] cmp r0, #8 blo _021DD84C mov r0, #0 str r0, [r4, #8] ldr r0, [r4] add r0, r0, #1 str r0, [r4] _021DD764: ldr r3, _021DD974 ; =0xFFFFC000 mov r2, #0x69 str r3, [sp] ldr r0, [r4, #0x34] lsl r1, r3, #3 str r0, [sp, #4] mov r0, #0 str r0, [sp, #8] add r0, r6, #0 lsl r2, r2, #0xe asr r3, r3, #1 bl MOD85_021DD5D4 ldr r0, [r4, #8] add r0, r0, #1 str r0, [r4, #8] cmp r0, #4 blo _021DD84C mov r0, #0 str r0, [r4, #8] ldr r0, [r4] add sp, #0x40 add r0, r0, #1 str r0, [r4] pop {r4, r5, r6, pc} _021DD796: mov r3, #1 lsl r3, r3, #0xe str r3, [sp] ldr r1, [r4, #0x34] mov r2, #0x69 str r1, [sp, #4] mov r1, #0 str r1, [sp, #8] ldr r1, _021DD978 ; =0xFFFE0000 lsl r2, r2, #0xe lsr r3, r3, #1 bl MOD85_021DD5D4 ldr r0, [r4, #8] add r0, r0, #1 str r0, [r4, #8] cmp r0, #4 blo _021DD84C mov r0, #0 str r0, [r4, #8] ldr r0, [r4] add sp, #0x40 add r0, r0, #1 str r0, [r4] pop {r4, r5, r6, pc} _021DD7C8: ldr r3, _021DD974 ; =0xFFFFC000 mov r2, #0x69 str r3, [sp] ldr r1, [r4, #0x40] lsl r2, r2, #0xe str r1, [sp, #4] mov r1, #1 str r1, [sp, #8] mov r1, #0x12 lsl r1, r1, #0x10 asr r3, r3, #1 bl MOD85_021DD5D4 ldr r0, [r4, #8] add r0, r0, #1 str r0, [r4, #8] cmp r0, #4 blo _021DD84C mov r0, #0 str r0, [r4, #8] ldr r0, [r4] add sp, #0x40 add r0, r0, #1 str r0, [r4] pop {r4, r5, r6, pc} _021DD7FA: mov r1, #1 lsl r1, r1, #0xe str r1, [sp] ldr r1, [r4, #0x40] mov r2, #0x69 str r1, [sp, #4] mov r3, #1 mov r1, #0x12 str r3, [sp, #8] lsl r1, r1, #0x10 lsl r2, r2, #0xe lsl r3, r3, #0xd bl MOD85_021DD5D4 ldr r0, [r4, #8] add r0, r0, #1 str r0, [r4, #8] cmp r0, #4 blo _021DD84C mov r1, #0 str r1, [r4, #8] ldr r0, [r4, #0xc] add r0, r0, #1 str r0, [r4, #0xc] cmp r0, #2 bhs _021DD836 mov r0, #3 add sp, #0x40 str r0, [r4] pop {r4, r5, r6, pc} _021DD836: str r1, [r4, #0xc] ldr r0, [r4] add sp, #0x40 add r0, r0, #1 str r0, [r4] pop {r4, r5, r6, pc} _021DD842: ldr r0, [r4, #8] add r0, r0, #1 str r0, [r4, #8] cmp r0, #8 bhs _021DD84E _021DD84C: b _021DD96C _021DD84E: mov r0, #0 str r0, [r4, #8] ldr r0, [r4] add r0, r0, #1 str r0, [r4] _021DD858: ldr r3, _021DD974 ; =0xFFFFC000 mov r2, #0x69 str r3, [sp] ldr r0, [r4, #0x34] lsl r1, r3, #3 str r0, [sp, #4] mov r0, #0 str r0, [sp, #8] add r0, r6, #0 lsl r2, r2, #0xe asr r3, r3, #1 bl MOD85_021DD5D4 mov r3, #0 str r3, [sp] ldr r0, [r4, #0x40] mov r1, #0x12 str r0, [sp, #4] mov r0, #1 mov r2, #0x69 str r0, [sp, #8] add r0, r6, #0 lsl r1, r1, #0x10 lsl r2, r2, #0xe bl MOD85_021DD5D4 ldr r0, [r4, #8] add r0, r0, #1 str r0, [r4, #8] cmp r0, #4 blo _021DD96C mov r0, #0 str r0, [r4, #8] ldr r0, [r4] add sp, #0x40 add r0, r0, #1 str r0, [r4] pop {r4, r5, r6, pc} _021DD8A4: mov r3, #1 lsl r3, r3, #0xe str r3, [sp] ldr r1, [r4, #0x34] mov r2, #0x69 str r1, [sp, #4] mov r1, #0 str r1, [sp, #8] ldr r1, _021DD978 ; =0xFFFE0000 lsl r2, r2, #0xe lsr r3, r3, #1 bl MOD85_021DD5D4 mov r3, #0 str r3, [sp] ldr r0, [r4, #0x40] mov r1, #0x12 str r0, [sp, #4] mov r0, #1 mov r2, #0x69 str r0, [sp, #8] add r0, r6, #0 lsl r1, r1, #0x10 lsl r2, r2, #0xe bl MOD85_021DD5D4 ldr r0, [r4, #8] add r0, r0, #1 str r0, [r4, #8] cmp r0, #4 blo _021DD96C mov r1, #0 str r1, [r4, #8] ldr r0, [r4, #0xc] add r0, r0, #1 str r0, [r4, #0xc] cmp r0, #2 bhs _021DD8F8 mov r0, #8 add sp, #0x40 str r0, [r4] pop {r4, r5, r6, pc} _021DD8F8: str r1, [r4, #0xc] ldr r0, [r4] add sp, #0x40 add r0, r0, #1 str r0, [r4] pop {r4, r5, r6, pc} _021DD904: ldr r3, _021DD97C ; =0xFFFF8000 mov r2, #0x69 str r3, [sp] ldr r1, [r4, #0x34] lsl r2, r2, #0xe str r1, [sp, #4] mov r1, #0 str r1, [sp, #8] lsl r1, r3, #2 bl MOD85_021DD5D4 mov r3, #0 str r3, [sp] ldr r0, [r4, #0x40] mov r1, #0x12 str r0, [sp, #4] mov r0, #1 mov r2, #0x69 str r0, [sp, #8] add r0, r6, #0 lsl r1, r1, #0x10 lsl r2, r2, #0xe bl MOD85_021DD5D4 ldr r0, [r4, #8] add r0, r0, #1 str r0, [r4, #8] cmp r0, #4 blo _021DD962 add r0, r4, #0 add r0, #0x30 bl MOD85_021DECA0 add r0, r4, #0 add r0, #0x3c bl MOD85_021DECA0 mov r1, #5 str r1, [sp] mov r0, #0x45 ldr r2, [r4, #0x2c] lsl r0, r0, #4 ldr r0, [r2, r0] add r2, r1, #0 add r3, r1, #0 bl MOD85_021DEAB4 _021DD962: ldr r0, [r4] add r0, r0, #1 str r0, [r4] mov r0, #1 str r0, [r4, #4] _021DD96C: add sp, #0x40 pop {r4, r5, r6, pc} .align 2, 0 _021DD970: .word 0x021DF82C _021DD974: .word 0xFFFFC000 _021DD978: .word 0xFFFE0000 _021DD97C: .word 0xFFFF8000 thumb_func_end MOD85_021DD624 thumb_func_start MOD85_021DD980 MOD85_021DD980: ; 0x021DD980 bx lr .align 2, 0 thumb_func_end MOD85_021DD980 thumb_func_start MOD85_021DD984 MOD85_021DD984: ; 0x021DD984 push {r4, r5, lr} sub sp, #0x14 ldr r5, _021DD9B0 ; =0x021DF6B8 add r3, r0, #0 ldmia r5!, {r0, r1} add r4, sp, #8 add r2, r4, #0 stmia r4!, {r0, r1} ldr r0, [r5] ldr r1, _021DD9B4 ; =0x021DF8E8 str r0, [r4] str r3, [sp] mov r0, #0x8e str r0, [sp, #4] ldr r0, _021DD9B8 ; =0x0000044C ldr r0, [r3, r0] mov r3, #0 bl FUN_020644E4 add sp, #0x14 pop {r4, r5, pc} nop _021DD9B0: .word 0x021DF6B8 _021DD9B4: .word 0x021DF8E8 _021DD9B8: .word 0x0000044C thumb_func_end MOD85_021DD984 thumb_func_start MOD85_021DD9BC MOD85_021DD9BC: ; 0x021DD9BC push {r3, r4, r5, lr} sub sp, #0x28 add r5, r0, #0 add r4, r1, #0 bl FUN_0206475C str r0, [r4] add r0, r5, #0 add r1, sp, #0x1c bl FUN_0206477C mov r0, #0 str r0, [sp] mov r0, #6 str r0, [sp, #4] str r0, [sp, #8] str r0, [sp, #0xc] str r0, [sp, #0x10] mov r3, #2 str r3, [sp, #0x14] mov r0, #3 str r0, [sp, #0x18] mov r0, #0x45 ldr r1, [r4] lsl r0, r0, #4 ldr r0, [r1, r0] add r1, r4, #4 add r2, sp, #0x1c bl MOD85_021DEC00 ldr r0, [r4, #8] mov r1, #1 bl FUN_020200BC mov r0, #1 add sp, #0x28 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD85_021DD9BC thumb_func_start MOD85_021DDA08 MOD85_021DDA08: ; 0x021DDA08 ldr r3, _021DDA10 ; =MOD85_021DECA0 add r0, r1, #4 bx r3 nop _021DDA10: .word MOD85_021DECA0 thumb_func_end MOD85_021DDA08 thumb_func_start MOD85_021DDA14 MOD85_021DDA14: ; 0x021DDA14 mov r0, #0x52 ldr r2, [r1] lsl r0, r0, #2 ldr r0, [r2, r0] mov r3, #1 cmp r0, #1 bne _021DDA24 mov r3, #0 _021DDA24: ldr r0, [r1, #8] add r1, r3, #0 ldr r3, _021DDA2C ; =FUN_020200A0 bx r3 .align 2, 0 _021DDA2C: .word FUN_020200A0 thumb_func_end MOD85_021DDA14 thumb_func_start MOD85_021DDA30 MOD85_021DDA30: ; 0x021DDA30 push {lr} sub sp, #0x14 mov r1, #0x15 lsl r1, r1, #0xe str r1, [sp, #8] mov r1, #0x13 lsl r1, r1, #0x10 str r1, [sp, #0xc] str r0, [sp] mov r1, #0x8e str r1, [sp, #4] ldr r1, _021DDA58 ; =0x0000044C add r2, sp, #8 ldr r0, [r0, r1] ldr r1, _021DDA5C ; =0x021DF924 mov r3, #0 bl FUN_020644E4 add sp, #0x14 pop {pc} .align 2, 0 _021DDA58: .word 0x0000044C _021DDA5C: .word 0x021DF924 thumb_func_end MOD85_021DDA30 thumb_func_start MOD85_021DDA60 MOD85_021DDA60: ; 0x021DDA60 push {r3, r4, r5, lr} sub sp, #0x40 add r5, r0, #0 add r4, r1, #0 add r1, sp, #0x28 mov r0, #0 str r0, [r1] str r0, [r1, #4] ldr r3, _021DDAEC ; =0x021DF6A0 str r0, [r1, #8] ldmia r3!, {r0, r1} add r2, sp, #0x1c stmia r2!, {r0, r1} ldr r0, [r3] str r0, [r2] add r0, r5, #0 bl FUN_0206475C str r0, [r4, #4] add r0, r5, #0 add r1, sp, #0x34 bl FUN_0206477C mov r0, #0 str r0, [sp] mov r0, #6 str r0, [sp, #4] str r0, [sp, #8] str r0, [sp, #0xc] str r0, [sp, #0x10] mov r3, #2 str r3, [sp, #0x14] mov r0, #3 str r0, [sp, #0x18] mov r0, #0x45 ldr r1, [r4, #4] lsl r0, r0, #4 ldr r0, [r1, r0] add r1, r4, #0 add r1, #8 add r2, sp, #0x34 bl MOD85_021DEC00 ldr r0, [r4, #0xc] mov r1, #2 bl FUN_020200EC ldr r0, [r4, #0xc] add r1, sp, #0x28 bl FUN_02020054 ldr r0, [r4, #0xc] add r1, sp, #0x1c bl FUN_02020064 mov r0, #0 bl FUN_0201B9A0 add r1, r0, #0 ldr r0, [r4, #0xc] bl FUN_02020088 ldr r0, [r4, #0xc] mov r1, #1 bl FUN_020200BC mov r0, #1 add sp, #0x40 pop {r3, r4, r5, pc} nop _021DDAEC: .word 0x021DF6A0 thumb_func_end MOD85_021DDA60 thumb_func_start MOD85_021DDAF0 MOD85_021DDAF0: ; 0x021DDAF0 ldr r3, _021DDAF8 ; =MOD85_021DECA0 add r1, #8 add r0, r1, #0 bx r3 .align 2, 0 _021DDAF8: .word MOD85_021DECA0 thumb_func_end MOD85_021DDAF0 thumb_func_start MOD85_021DDAFC MOD85_021DDAFC: ; 0x021DDAFC push {r3, lr} ldr r2, [r1] add r2, r2, #1 str r2, [r1] cmp r2, #0x2d blt _021DDB0C bl FUN_02064520 _021DDB0C: pop {r3, pc} .align 2, 0 thumb_func_end MOD85_021DDAFC thumb_func_start MOD85_021DDB10 MOD85_021DDB10: ; 0x021DDB10 push {r4, r5, lr} sub sp, #0x14 ldr r5, _021DDB3C ; =0x021DF790 add r3, r0, #0 ldmia r5!, {r0, r1} add r4, sp, #8 add r2, r4, #0 stmia r4!, {r0, r1} ldr r0, [r5] ldr r1, _021DDB40 ; =0x021DF988 str r0, [r4] str r3, [sp] mov r0, #0x8e str r0, [sp, #4] ldr r0, _021DDB44 ; =0x0000044C ldr r0, [r3, r0] mov r3, #0 bl FUN_020644E4 add sp, #0x14 pop {r4, r5, pc} nop _021DDB3C: .word 0x021DF790 _021DDB40: .word 0x021DF988 _021DDB44: .word 0x0000044C thumb_func_end MOD85_021DDB10 thumb_func_start MOD85_021DDB48 MOD85_021DDB48: ; 0x021DDB48 push {r3, r4, r5, lr} sub sp, #0x28 add r5, r0, #0 add r4, r1, #0 bl FUN_0206475C str r0, [r4] add r0, r5, #0 add r1, sp, #0x1c bl FUN_0206477C mov r0, #0 str r0, [sp] mov r1, #7 str r1, [sp, #4] mov r0, #6 str r0, [sp, #8] str r1, [sp, #0xc] str r1, [sp, #0x10] mov r3, #2 str r3, [sp, #0x14] mov r0, #3 str r0, [sp, #0x18] mov r0, #0x45 ldr r1, [r4] lsl r0, r0, #4 ldr r0, [r1, r0] add r1, r4, #4 add r2, sp, #0x1c bl MOD85_021DEC00 ldr r0, [r4, #8] mov r1, #1 bl FUN_020200BC mov r0, #1 add sp, #0x28 pop {r3, r4, r5, pc} thumb_func_end MOD85_021DDB48 thumb_func_start MOD85_021DDB94 MOD85_021DDB94: ; 0x021DDB94 ldr r3, _021DDB9C ; =MOD85_021DECA0 add r0, r1, #4 bx r3 nop _021DDB9C: .word MOD85_021DECA0 thumb_func_end MOD85_021DDB94 thumb_func_start MOD85_021DDBA0 MOD85_021DDBA0: ; 0x021DDBA0 mov r0, #0x52 ldr r2, [r1] lsl r0, r0, #2 ldr r0, [r2, r0] mov r3, #1 cmp r0, #1 bne _021DDBB0 mov r3, #0 _021DDBB0: ldr r0, [r1, #8] add r1, r3, #0 ldr r3, _021DDBB8 ; =FUN_020200A0 bx r3 .align 2, 0 _021DDBB8: .word FUN_020200A0 thumb_func_end MOD85_021DDBA0 thumb_func_start MOD85_021DDBBC MOD85_021DDBBC: ; 0x021DDBBC push {r4, r5, lr} sub sp, #0x14 ldr r5, _021DDBF0 ; =0x021DF64C add r3, r0, #0 ldmia r5!, {r0, r1} add r4, sp, #8 add r2, r4, #0 stmia r4!, {r0, r1} ldr r0, [r5] ldr r1, _021DDBF4 ; =0x021DF9B0 str r0, [r4] mov r0, #0x11 lsl r0, r0, #0xe str r0, [sp, #8] lsl r0, r0, #2 str r0, [sp, #0xc] str r3, [sp] mov r0, #0x8e str r0, [sp, #4] ldr r0, _021DDBF8 ; =0x0000044C ldr r0, [r3, r0] mov r3, #0 bl FUN_020644E4 add sp, #0x14 pop {r4, r5, pc} .align 2, 0 _021DDBF0: .word 0x021DF64C _021DDBF4: .word 0x021DF9B0 _021DDBF8: .word 0x0000044C thumb_func_end MOD85_021DDBBC thumb_func_start MOD85_021DDBFC MOD85_021DDBFC: ; 0x021DDBFC push {r3, r4, r5, lr} sub sp, #0x40 add r5, r0, #0 add r4, r1, #0 add r1, sp, #0x28 mov r0, #0 str r0, [r1] str r0, [r1, #4] ldr r3, _021DDC88 ; =0x021DF748 str r0, [r1, #8] ldmia r3!, {r0, r1} add r2, sp, #0x1c stmia r2!, {r0, r1} ldr r0, [r3] str r0, [r2] add r0, r5, #0 bl FUN_0206475C str r0, [r4, #4] add r0, r5, #0 add r1, sp, #0x34 bl FUN_0206477C mov r0, #0 str r0, [sp] mov r1, #7 str r1, [sp, #4] mov r0, #6 str r0, [sp, #8] str r1, [sp, #0xc] str r1, [sp, #0x10] mov r3, #2 str r3, [sp, #0x14] mov r0, #3 str r0, [sp, #0x18] mov r0, #0x45 ldr r1, [r4, #4] lsl r0, r0, #4 ldr r0, [r1, r0] add r1, r4, #0 add r1, #8 add r2, sp, #0x34 bl MOD85_021DEC00 ldr r0, [r4, #0xc] mov r1, #2 bl FUN_020200EC ldr r0, [r4, #0xc] add r1, sp, #0x28 bl FUN_02020054 ldr r0, [r4, #0xc] add r1, sp, #0x1c bl FUN_02020064 mov r0, #0 bl FUN_0201B9A0 add r1, r0, #0 ldr r0, [r4, #0xc] bl FUN_02020088 ldr r0, [r4, #0xc] mov r1, #1 bl FUN_020200BC mov r0, #1 add sp, #0x40 pop {r3, r4, r5, pc} .align 2, 0 _021DDC88: .word 0x021DF748 thumb_func_end MOD85_021DDBFC thumb_func_start MOD85_021DDC8C MOD85_021DDC8C: ; 0x021DDC8C ldr r3, _021DDC94 ; =MOD85_021DECA0 add r1, #8 add r0, r1, #0 bx r3 .align 2, 0 _021DDC94: .word MOD85_021DECA0 thumb_func_end MOD85_021DDC8C thumb_func_start MOD85_021DDC98 MOD85_021DDC98: ; 0x021DDC98 push {r3, lr} ldr r2, [r1] add r2, r2, #1 str r2, [r1] cmp r2, #0x2d blt _021DDCA8 bl FUN_02064520 _021DDCA8: pop {r3, pc} .align 2, 0 thumb_func_end MOD85_021DDC98 thumb_func_start MOD85_021DDCAC MOD85_021DDCAC: ; 0x021DDCAC push {r4, r5, lr} sub sp, #0x14 ldr r5, _021DDCD8 ; =0x021DF610 add r3, r0, #0 ldmia r5!, {r0, r1} add r4, sp, #8 add r2, r4, #0 stmia r4!, {r0, r1} ldr r0, [r5] ldr r1, _021DDCDC ; =0x021DF898 str r0, [r4] str r3, [sp] mov r0, #0x8e str r0, [sp, #4] ldr r0, _021DDCE0 ; =0x0000044C ldr r0, [r3, r0] mov r3, #0 bl FUN_020644E4 add sp, #0x14 pop {r4, r5, pc} nop _021DDCD8: .word 0x021DF610 _021DDCDC: .word 0x021DF898 _021DDCE0: .word 0x0000044C thumb_func_end MOD85_021DDCAC thumb_func_start MOD85_021DDCE4 MOD85_021DDCE4: ; 0x021DDCE4 push {r3, r4, r5, r6, r7, lr} sub sp, #0x28 add r4, r0, #0 add r7, r1, #0 bl FUN_0206475C str r0, [r7] add r0, r4, #0 add r1, sp, #0x1c bl FUN_0206477C mov r6, #0 add r4, r7, #4 add r5, r7, #0 _021DDD00: mov r0, #0 str r0, [sp] mov r0, #8 str r0, [sp, #4] mov r0, #6 str r0, [sp, #8] mov r0, #8 str r0, [sp, #0xc] str r0, [sp, #0x10] mov r0, #2 str r0, [sp, #0x14] mov r0, #3 str r0, [sp, #0x18] mov r0, #0x45 ldr r1, [r7] lsl r0, r0, #4 ldr r0, [r1, r0] add r1, r4, #0 add r2, sp, #0x1c mov r3, #2 bl MOD85_021DEC00 ldr r0, [r5, #8] mov r1, #0 bl FUN_020200A0 ldr r0, [r5, #8] mov r1, #1 bl FUN_020200BC add r6, r6, #1 add r4, #0xc add r5, #0xc cmp r6, #2 blt _021DDD00 mov r0, #1 add sp, #0x28 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD85_021DDCE4 thumb_func_start MOD85_021DDD4C MOD85_021DDD4C: ; 0x021DDD4C push {r4, lr} add r4, r1, #0 add r0, r4, #4 bl MOD85_021DECA0 add r4, #0x10 add r0, r4, #0 bl MOD85_021DECA0 pop {r4, pc} thumb_func_end MOD85_021DDD4C thumb_func_start MOD85_021DDD60 MOD85_021DDD60: ; 0x021DDD60 push {r4, r5, r6, r7, lr} sub sp, #0xc add r5, r1, #0 mov r0, #0x4f ldr r1, [r5] lsl r0, r0, #2 add r4, r1, r0 ldr r0, [r5, #8] mov r1, #0 bl FUN_020200A0 ldr r0, [r5, #0x14] mov r1, #0 bl FUN_020200A0 ldr r0, [r4, #0xc] cmp r0, #1 beq _021DDE06 ldr r3, _021DDE0C ; =0x021DF76C add r2, sp, #0 ldmia r3!, {r0, r1} stmia r2!, {r0, r1} ldr r0, [r3] mov r6, #0 str r0, [r2] ldr r0, [r5] ldr r7, [r0, #0x10] cmp r7, #0x63 bls _021DDD9C mov r7, #0x63 _021DDD9C: add r0, r7, #0 mov r1, #0x64 bl _u32_div_f add r0, r1, #0 mov r1, #0xa bl _u32_div_f add r4, r0, #0 beq _021DDDDA ldr r0, [r5, #8] add r1, sp, #0 bl FUN_02020044 ldr r0, [r5, #8] add r1, r4, #0 bl FUN_02020130 ldr r0, [r5, #8] bl FUN_02020198 ldr r0, [r5, #8] mov r1, #1 bl FUN_020200A0 mov r0, #2 ldr r1, [sp] lsl r0, r0, #0xe add r0, r1, r0 str r0, [sp] add r6, r6, #1 _021DDDDA: mov r0, #0xc add r4, r6, #0 add r5, #8 mul r4, r0 ldr r0, [r5, r4] add r1, sp, #0 bl FUN_02020044 add r0, r7, #0 mov r1, #0xa bl _u32_div_f ldr r0, [r5, r4] bl FUN_02020130 ldr r0, [r5, r4] bl FUN_02020198 ldr r0, [r5, r4] mov r1, #1 bl FUN_020200A0 _021DDE06: add sp, #0xc pop {r4, r5, r6, r7, pc} nop _021DDE0C: .word 0x021DF76C thumb_func_end MOD85_021DDD60 thumb_func_start MOD85_021DDE10 MOD85_021DDE10: ; 0x021DDE10 push {r4, r5, lr} sub sp, #0x14 ldr r5, _021DDE3C ; =0x021DF844 add r3, r0, #0 ldmia r5!, {r0, r1} add r4, sp, #8 add r2, r4, #0 stmia r4!, {r0, r1} ldr r0, [r5] ldr r1, _021DDE40 ; =0x021DF8FC str r0, [r4] str r3, [sp] mov r0, #0x8e str r0, [sp, #4] ldr r0, _021DDE44 ; =0x0000044C ldr r0, [r3, r0] mov r3, #0 bl FUN_020644E4 add sp, #0x14 pop {r4, r5, pc} nop _021DDE3C: .word 0x021DF844 _021DDE40: .word 0x021DF8FC _021DDE44: .word 0x0000044C thumb_func_end MOD85_021DDE10 thumb_func_start MOD85_021DDE48 MOD85_021DDE48: ; 0x021DDE48 push {r3, r4, r5, r6, r7, lr} sub sp, #0x28 ldr r3, _021DDEAC ; =0x021DF6C4 add r4, r0, #0 add r6, r1, #0 ldmia r3!, {r0, r1} add r2, sp, #0x1c stmia r2!, {r0, r1} ldr r0, [r3] str r0, [r2] add r0, r4, #0 bl FUN_0206475C str r0, [r6] mov r4, #0 add r5, r6, #4 mov r7, #2 _021DDE6A: mov r0, #0 str r0, [sp] mov r0, #8 str r0, [sp, #4] mov r0, #6 str r0, [sp, #8] mov r0, #8 str r0, [sp, #0xc] str r0, [sp, #0x10] str r7, [sp, #0x14] mov r0, #3 str r0, [sp, #0x18] mov r0, #0x45 ldr r1, [r6] lsl r0, r0, #4 ldr r0, [r1, r0] add r1, r5, #0 add r2, sp, #0x1c add r3, r7, #0 bl MOD85_021DEC00 mov r0, #2 ldr r1, [sp, #0x1c] lsl r0, r0, #0xe add r0, r1, r0 add r4, r4, #1 add r5, #0xc str r0, [sp, #0x1c] cmp r4, #5 blt _021DDE6A mov r0, #1 add sp, #0x28 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021DDEAC: .word 0x021DF6C4 thumb_func_end MOD85_021DDE48 thumb_func_start MOD85_021DDEB0 MOD85_021DDEB0: ; 0x021DDEB0 push {r3, r4, r5, lr} mov r4, #0 add r5, r1, #4 _021DDEB6: add r0, r5, #0 bl MOD85_021DECA0 add r4, r4, #1 add r5, #0xc cmp r4, #5 blt _021DDEB6 pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD85_021DDEB0 thumb_func_start MOD85_021DDEC8 MOD85_021DDEC8: ; 0x021DDEC8 push {r3, r4, r5, r6, r7, lr} add r5, r1, #0 mov r0, #0x52 ldr r1, [r5] lsl r0, r0, #2 ldr r0, [r1, r0] mov r7, #1 cmp r0, #1 bne _021DDEDC mov r7, #0 _021DDEDC: mov r6, #0 add r4, r5, #0 _021DDEE0: ldr r0, [r4, #8] add r1, r7, #0 bl FUN_020200A0 add r6, r6, #1 add r4, #0xc cmp r6, #5 blt _021DDEE0 cmp r7, #0 beq _021DDF34 ldr r0, [r5] ldr r6, [r0, #0x14] ldr r0, _021DDF38 ; =0x0000C350 cmp r6, r0 ble _021DDF00 add r6, r0, #0 _021DDF00: ldr r4, _021DDF3C ; =0x00002710 mov r7, #0xa _021DDF04: add r1, r4, #0 add r0, r6, #0 mul r1, r7 bl _s32_div_f add r0, r1, #0 add r1, r4, #0 bl _s32_div_f add r1, r0, #0 ldr r0, [r5, #8] bl FUN_02020130 ldr r0, [r5, #8] bl FUN_02020198 add r0, r4, #0 mov r1, #0xa bl _s32_div_f add r4, r0, #0 add r5, #0xc cmp r4, #1 bge _021DDF04 _021DDF34: pop {r3, r4, r5, r6, r7, pc} nop _021DDF38: .word 0x0000C350 _021DDF3C: .word 0x00002710 thumb_func_end MOD85_021DDEC8 thumb_func_start MOD85_021DDF40 MOD85_021DDF40: ; 0x021DDF40 push {lr} sub sp, #0x14 add r3, r1, #0 add r2, sp, #8 mov r1, #0 str r1, [r2] str r1, [r2, #4] str r1, [r2, #8] str r0, [sp] mov r1, #0x8e str r1, [sp, #4] ldr r1, _021DDF64 ; =0x0000044C ldr r0, [r0, r1] ldr r1, _021DDF68 ; =0x021DF99C bl FUN_020644E4 add sp, #0x14 pop {pc} .align 2, 0 _021DDF64: .word 0x0000044C _021DDF68: .word 0x021DF99C thumb_func_end MOD85_021DDF40 thumb_func_start MOD85_021DDF6C MOD85_021DDF6C: ; 0x021DDF6C push {r4, r5, r6, r7, lr} sub sp, #0x44 add r6, r0, #0 add r5, r1, #0 add r1, sp, #0x2c mov r0, #0 str r0, [r1] str r0, [r1, #4] ldr r3, _021DE0D0 ; =0x021DF79C str r0, [r1, #8] ldmia r3!, {r0, r1} add r2, sp, #0x20 stmia r2!, {r0, r1} ldr r0, [r3] str r0, [r2] add r0, r6, #0 bl FUN_0206475C add r4, r0, #0 add r0, r6, #0 bl FUN_02064754 str r0, [r5] str r4, [r5, #0x14] ldr r0, [r5] cmp r0, #0 bne _021DDFD6 ldr r1, [r4, #0x1c] ldr r0, _021DE0D4 ; =0x000003E7 str r1, [r5, #4] cmp r1, r0 bls _021DDFAE str r0, [r5, #4] _021DDFAE: ldr r0, [r5, #4] cmp r0, #0x64 blo _021DDFBA mov r0, #3 str r0, [r5, #8] b _021DDFC8 _021DDFBA: cmp r0, #0xa blo _021DDFC4 mov r0, #2 str r0, [r5, #8] b _021DDFC8 _021DDFC4: mov r0, #1 str r0, [r5, #8] _021DDFC8: mov r0, #0x32 lsl r0, r0, #0xe str r0, [sp, #0x38] mov r0, #0x13 lsl r0, r0, #0x10 str r0, [sp, #0x3c] b _021DE022 _021DDFD6: ldr r1, [r4, #0x14] ldr r0, _021DE0D8 ; =0x0001869F str r1, [r5, #4] cmp r1, r0 bls _021DDFE2 str r0, [r5, #4] _021DDFE2: ldr r1, [r5, #4] ldr r0, _021DE0DC ; =0x00002710 cmp r1, r0 blo _021DDFF0 mov r0, #5 str r0, [r5, #8] b _021DE016 _021DDFF0: mov r0, #0xfa lsl r0, r0, #2 cmp r1, r0 blo _021DDFFE mov r0, #4 str r0, [r5, #8] b _021DE016 _021DDFFE: cmp r1, #0x64 blo _021DE008 mov r0, #3 str r0, [r5, #8] b _021DE016 _021DE008: cmp r1, #0xa blo _021DE012 mov r0, #2 str r0, [r5, #8] b _021DE016 _021DE012: mov r0, #1 str r0, [r5, #8] _021DE016: mov r0, #0x32 lsl r0, r0, #0xe str r0, [sp, #0x38] mov r0, #0x11 lsl r0, r0, #0x10 str r0, [sp, #0x3c] _021DE022: ldr r0, [r5, #8] mov r7, #0 mov r6, #1 cmp r0, #0 bls _021DE0C6 add r0, r5, #0 str r0, [sp, #0x1c] add r0, #0x18 str r0, [sp, #0x1c] add r4, r5, #0 _021DE036: mov r0, #0 str r0, [sp] mov r0, #8 str r0, [sp, #4] mov r0, #6 str r0, [sp, #8] mov r0, #8 str r0, [sp, #0xc] str r0, [sp, #0x10] mov r0, #2 str r0, [sp, #0x14] mov r0, #3 str r0, [sp, #0x18] mov r0, #0x45 ldr r1, [r5, #0x14] lsl r0, r0, #4 ldr r0, [r1, r0] ldr r1, [sp, #0x1c] add r2, sp, #0x38 mov r3, #2 bl MOD85_021DEC00 ldr r0, [r4, #0x1c] mov r1, #2 bl FUN_020200EC ldr r0, [r4, #0x1c] add r1, sp, #0x2c bl FUN_02020054 ldr r0, [r4, #0x1c] add r1, sp, #0x20 bl FUN_02020064 mov r0, #0 bl FUN_0201B9A0 add r1, r0, #0 ldr r0, [r4, #0x1c] bl FUN_02020088 mov r1, #0xa ldr r0, [r5, #4] mul r1, r6 bl _u32_div_f add r0, r1, #0 add r1, r6, #0 bl _u32_div_f add r1, r0, #0 ldr r0, [r4, #0x1c] bl FUN_02020130 ldr r0, [r4, #0x1c] bl FUN_02020198 ldr r0, [sp, #0x1c] ldr r1, [sp, #0x38] add r0, #0xc str r0, [sp, #0x1c] mov r0, #0xa mul r6, r0 mov r0, #1 lsl r0, r0, #0x10 sub r0, r1, r0 str r0, [sp, #0x38] ldr r0, [r5, #8] add r7, r7, #1 add r4, #0xc cmp r7, r0 blo _021DE036 _021DE0C6: str r7, [r5, #0x10] mov r0, #1 add sp, #0x44 pop {r4, r5, r6, r7, pc} nop _021DE0D0: .word 0x021DF79C _021DE0D4: .word 0x000003E7 _021DE0D8: .word 0x0001869F _021DE0DC: .word 0x00002710 thumb_func_end MOD85_021DDF6C thumb_func_start MOD85_021DE0E0 MOD85_021DE0E0: ; 0x021DE0E0 push {r4, r5, r6, lr} add r6, r1, #0 ldr r0, [r6, #0x10] mov r4, #0 cmp r0, #0 ble _021DE100 add r5, r6, #0 add r5, #0x18 _021DE0F0: add r0, r5, #0 bl MOD85_021DECA0 ldr r0, [r6, #0x10] add r4, r4, #1 add r5, #0xc cmp r4, r0 blt _021DE0F0 _021DE100: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD85_021DE0E0 thumb_func_start MOD85_021DE104 MOD85_021DE104: ; 0x021DE104 push {r3, lr} ldr r2, [r1, #0xc] add r2, r2, #1 str r2, [r1, #0xc] cmp r2, #0x2d blt _021DE114 bl FUN_02064520 _021DE114: pop {r3, pc} .align 2, 0 thumb_func_end MOD85_021DE104 thumb_func_start MOD85_021DE118 MOD85_021DE118: ; 0x021DE118 push {r4, r5, lr} sub sp, #0x14 ldr r5, _021DE14C ; =0x021DF664 add r2, r0, #0 add r3, r1, #0 ldmia r5!, {r0, r1} add r4, sp, #8 stmia r4!, {r0, r1} ldr r0, [r5] str r0, [r4] ldr r0, _021DE150 ; =0x000003E7 cmp r3, r0 bls _021DE134 add r3, r0, #0 _021DE134: str r2, [sp] mov r0, #0x8e str r0, [sp, #4] ldr r0, _021DE154 ; =0x0000044C ldr r1, _021DE158 ; =0x021DF9C4 ldr r0, [r2, r0] add r2, sp, #8 bl FUN_020644E4 add sp, #0x14 pop {r4, r5, pc} nop _021DE14C: .word 0x021DF664 _021DE150: .word 0x000003E7 _021DE154: .word 0x0000044C _021DE158: .word 0x021DF9C4 thumb_func_end MOD85_021DE118 thumb_func_start MOD85_021DE15C MOD85_021DE15C: ; 0x021DE15C push {r3, r4, r5, r6, r7, lr} sub sp, #0x30 add r4, r0, #0 add r5, r1, #0 bl FUN_0206475C str r0, [r5, #8] add r0, r4, #0 bl FUN_02064754 str r0, [sp, #0x20] add r0, r4, #0 add r1, sp, #0x24 bl FUN_0206477C ldr r0, [sp, #0x20] cmp r0, #0x64 blo _021DE192 mov r0, #3 str r0, [r5, #4] mov r0, #1 ldr r1, [sp, #0x24] lsl r0, r0, #0x10 sub r0, r1, r0 mov r4, #0x64 str r0, [sp, #0x24] b _021DE1AA _021DE192: cmp r0, #0xa blo _021DE1A6 mov r0, #2 str r0, [r5, #4] ldr r1, [sp, #0x24] lsl r0, r0, #0xe sub r0, r1, r0 mov r4, #0xa str r0, [sp, #0x24] b _021DE1AA _021DE1A6: mov r4, #1 str r4, [r5, #4] _021DE1AA: ldr r0, [r5, #4] mov r6, #0 cmp r0, #0 ble _021DE226 add r0, r5, #0 str r0, [sp, #0x1c] add r0, #0xc str r0, [sp, #0x1c] add r7, r5, #0 _021DE1BC: mov r0, #0 str r0, [sp] mov r0, #9 str r0, [sp, #4] mov r0, #7 str r0, [sp, #8] mov r0, #9 str r0, [sp, #0xc] str r0, [sp, #0x10] mov r0, #2 str r0, [sp, #0x14] mov r0, #3 str r0, [sp, #0x18] mov r0, #0x45 ldr r1, [r5, #8] lsl r0, r0, #4 ldr r0, [r1, r0] ldr r1, [sp, #0x1c] add r2, sp, #0x24 mov r3, #2 bl MOD85_021DEC00 mov r1, #0xa ldr r0, [sp, #0x20] mul r1, r4 bl _u32_div_f add r0, r1, #0 add r1, r4, #0 bl _u32_div_f add r1, r0, #0 ldr r0, [r7, #0x10] bl FUN_02020130 ldr r0, [sp, #0x1c] ldr r1, [sp, #0x24] add r0, #0xc str r0, [sp, #0x1c] mov r0, #1 lsl r0, r0, #0x10 add r0, r1, r0 str r0, [sp, #0x24] add r0, r4, #0 mov r1, #0xa add r7, #0xc add r6, r6, #1 bl _u32_div_f add r4, r0, #0 ldr r0, [r5, #4] cmp r6, r0 blt _021DE1BC _021DE226: mov r0, #1 add sp, #0x30 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD85_021DE15C thumb_func_start MOD85_021DE22C MOD85_021DE22C: ; 0x021DE22C push {r4, r5, r6, lr} add r6, r1, #0 ldr r0, [r6, #4] mov r4, #0 cmp r0, #0 ble _021DE24C add r5, r6, #0 add r5, #0xc _021DE23C: add r0, r5, #0 bl MOD85_021DECA0 ldr r0, [r6, #4] add r4, r4, #1 add r5, #0xc cmp r4, r0 blt _021DE23C _021DE24C: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_end MOD85_021DE22C thumb_func_start MOD85_021DE250 MOD85_021DE250: ; 0x021DE250 push {r3, lr} ldr r2, [r1] add r2, r2, #1 str r2, [r1] cmp r2, #0x3c blt _021DE260 bl FUN_02064520 _021DE260: pop {r3, pc} .align 2, 0 thumb_func_end MOD85_021DE250 thumb_func_start MOD85_021DE264 MOD85_021DE264: ; 0x021DE264 push {lr} sub sp, #0x14 add r2, sp, #8 mov r3, #0 str r3, [r2] str r3, [r2, #4] str r3, [r2, #8] str r0, [sp] mov r1, #0x8c str r1, [sp, #4] ldr r1, _021DE288 ; =0x0000044C ldr r0, [r0, r1] ldr r1, _021DE28C ; =0x021DF910 bl FUN_020644E4 add sp, #0x14 pop {pc} nop _021DE288: .word 0x0000044C _021DE28C: .word 0x021DF910 thumb_func_end MOD85_021DE264 thumb_func_start MOD85_021DE290 MOD85_021DE290: ; 0x021DE290 push {r4, lr} add r4, r1, #0 bl FUN_0206475C str r0, [r4, #0x44] ldr r0, [r0, #0x44] add r3, r4, #0 str r0, [r4, #0x18] ldr r0, [r4, #0x44] add r3, #0x1c ldr r0, [r0, #0x48] mov r1, #1 _021DE2A8: add r2, r0, #0 tst r2, r1 bne _021DE2BC ldr r2, [r3] lsr r0, r0, #1 add r2, r2, #1 str r2, [r3] ldr r2, [r4, #0x1c] cmp r2, #5 blt _021DE2A8 _021DE2BC: ldr r0, [r4, #0x1c] cmp r0, #5 blt _021DE2C6 bl ErrorHandling _021DE2C6: add r0, r4, #0 bl MOD85_021DE4F0 mov r0, #1 pop {r4, pc} thumb_func_end MOD85_021DE290 thumb_func_start MOD85_021DE2D0 MOD85_021DE2D0: ; 0x021DE2D0 push {r3, r4, r5, r6, r7, lr} add r7, r1, #0 ldr r0, [r7, #0x14] cmp r0, #0 bne _021DE30C add r5, r7, #0 mov r6, #0 add r4, r7, #0 add r5, #0x20 _021DE2E2: ldr r0, [r4, #0x24] cmp r0, #0 beq _021DE2EE add r0, r5, #0 bl MOD85_021DECA0 _021DE2EE: add r6, r6, #1 add r4, #0xc add r5, #0xc cmp r6, #3 blt _021DE2E2 mov r1, #0xa str r1, [sp] mov r0, #0x45 ldr r2, [r7, #0x44] lsl r0, r0, #4 ldr r0, [r2, r0] mov r2, #8 add r3, r1, #0 bl MOD85_021DEAB4 _021DE30C: pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD85_021DE2D0 thumb_func_start MOD85_021DE310 MOD85_021DE310: ; 0x021DE310 push {r3, r4, r5, r6, r7, lr} sub sp, #0x30 add r5, r1, #0 ldr r0, [r5] cmp r0, #5 bhi _021DE33A add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021DE328: ; jump table .short _021DE334 - _021DE328 - 2 ; case 0 .short _021DE3AE - _021DE328 - 2 ; case 1 .short _021DE3F8 - _021DE328 - 2 ; case 2 .short _021DE410 - _021DE328 - 2 ; case 3 .short _021DE454 - _021DE328 - 2 ; case 4 .short _021DE46C - _021DE328 - 2 ; case 5 _021DE334: ldr r0, [r5, #8] cmp r0, #2 beq _021DE33C _021DE33A: b _021DE4A0 _021DE33C: mov r4, #0 add r7, r5, #0 str r4, [sp, #0x20] add r7, #0x20 add r6, r5, #0 _021DE346: ldr r1, [r5, #0x1c] mov r0, #0x24 add r2, r1, #0 mul r2, r0 ldr r0, _021DE4A4 ; =0x021DFB80 add r0, r0, r2 add r3, r4, r0 add r2, sp, #0x24 ldmia r3!, {r0, r1} mov ip, r2 stmia r2!, {r0, r1} ldr r0, [r3] mov r3, #3 str r0, [r2] mov r0, #0 str r0, [sp] mov r0, #0xa str r0, [sp, #4] mov r0, #0 str r0, [sp, #8] mov r0, #0xa str r0, [sp, #0xc] str r0, [sp, #0x10] mov r0, #1 str r0, [sp, #0x14] mov r0, #0 str r0, [sp, #0x18] mov r0, #0x45 ldr r1, [r5, #0x44] lsl r0, r0, #4 ldr r0, [r1, r0] add r1, r7, #0 mov r2, ip bl MOD85_021DEC00 ldr r0, [r6, #0x24] mov r1, #1 bl FUN_020200BC ldr r0, [sp, #0x20] add r4, #0xc add r0, r0, #1 add r7, #0xc add r6, #0xc str r0, [sp, #0x20] cmp r0, #3 blt _021DE346 ldr r0, [r5] add sp, #0x30 add r0, r0, #1 str r0, [r5] pop {r3, r4, r5, r6, r7, pc} _021DE3AE: mov r6, #0 str r6, [sp, #0x1c] add r4, r5, #0 add r7, sp, #0x24 _021DE3B6: ldr r0, [r4, #0x24] add r1, r7, #0 bl MOD85_021DECBC mov r0, #1 ldr r1, [sp, #0x28] lsl r0, r0, #0xe add r1, r1, r0 mov r0, #0xf lsl r0, r0, #0x10 str r1, [sp, #0x28] cmp r1, r0 blt _021DE3D4 str r0, [sp, #0x28] b _021DE3D8 _021DE3D4: mov r0, #1 str r0, [sp, #0x1c] _021DE3D8: ldr r0, [r4, #0x24] add r1, r7, #0 bl FUN_02020044 add r6, r6, #1 add r4, #0xc cmp r6, #3 blt _021DE3B6 ldr r0, [sp, #0x1c] cmp r0, #0 bne _021DE4A0 ldr r0, [r5] add sp, #0x30 add r0, r0, #1 str r0, [r5] pop {r3, r4, r5, r6, r7, pc} _021DE3F8: ldr r0, [r5, #0xc] add r0, r0, #1 str r0, [r5, #0xc] cmp r0, #0x1e blt _021DE4A0 mov r0, #0 str r0, [r5, #0xc] ldr r0, [r5] add sp, #0x30 add r0, r0, #1 str r0, [r5] pop {r3, r4, r5, r6, r7, pc} _021DE410: ldr r0, [r5, #0xc] add r0, r0, #1 str r0, [r5, #0xc] cmp r0, #0xc blt _021DE41E mov r7, #1 b _021DE420 _021DE41E: mov r7, #0 _021DE420: mov r6, #0 add r4, r5, #0 _021DE424: ldr r0, [r4, #0x24] add r1, r7, #0 bl FUN_020200A0 add r6, r6, #1 add r4, #0xc cmp r6, #3 blt _021DE424 ldr r0, [r5, #0xc] cmp r0, #0x1e blt _021DE4A0 mov r1, #0 str r1, [r5, #0xc] ldr r0, [r5, #0x10] add r0, r0, #1 str r0, [r5, #0x10] cmp r0, #3 blt _021DE4A0 str r1, [r5, #0x10] ldr r0, [r5] add sp, #0x30 add r0, r0, #1 str r0, [r5] pop {r3, r4, r5, r6, r7, pc} _021DE454: ldr r0, [r5, #0xc] add r0, r0, #1 str r0, [r5, #0xc] cmp r0, #0x1e blt _021DE4A0 mov r0, #0 str r0, [r5, #0xc] ldr r0, [r5] add sp, #0x30 add r0, r0, #1 str r0, [r5] pop {r3, r4, r5, r6, r7, pc} _021DE46C: add r4, r5, #0 mov r6, #0 add r4, #0x20 _021DE472: add r0, r4, #0 bl MOD85_021DECA0 add r6, r6, #1 add r4, #0xc cmp r6, #3 blt _021DE472 mov r1, #0xa str r1, [sp] mov r0, #0x45 ldr r2, [r5, #0x44] lsl r0, r0, #4 ldr r0, [r2, r0] mov r2, #8 add r3, r1, #0 bl MOD85_021DEAB4 ldr r0, [r5] add r0, r0, #1 str r0, [r5] mov r0, #1 str r0, [r5, #4] str r0, [r5, #0x14] _021DE4A0: add sp, #0x30 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021DE4A4: .word 0x021DFB80 thumb_func_end MOD85_021DE310 thumb_func_start MOD85_021DE4A8 MOD85_021DE4A8: ; 0x021DE4A8 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 mov r0, #0x45 ldr r1, [r4, #0x44] lsl r0, r0, #4 ldr r0, [r1, r0] mov r1, #0xa bl MOD85_021DE8A8 mov r0, #1 str r0, [r4, #8] add r0, r5, #0 bl FUN_0200CAB4 pop {r3, r4, r5, pc} thumb_func_end MOD85_021DE4A8 thumb_func_start MOD85_021DE4C8 MOD85_021DE4C8: ; 0x021DE4C8 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 ldr r0, [r4, #8] ldr r1, [r4, #0x44] cmp r0, #1 bne _021DE4EC mov r0, #0x45 lsl r0, r0, #4 ldr r0, [r1, r0] mov r1, #0xa bl MOD85_021DE8DC mov r0, #2 str r0, [r4, #8] add r0, r5, #0 bl FUN_0200CAB4 _021DE4EC: pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD85_021DE4C8 thumb_func_start MOD85_021DE4F0 MOD85_021DE4F0: ; 0x021DE4F0 push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, [r5, #0x18] ldr r4, [r5, #0x44] cmp r0, #0 bne _021DE538 mov r2, #0x45 mov r0, #0xa lsl r2, r2, #4 str r0, [sp] ldr r0, [r4, r2] sub r2, #0x18 ldr r2, [r4, r2] mov r1, #3 mov r3, #0xe bl MOD85_021DE840 mov r1, #0x45 lsl r1, r1, #4 ldr r0, [r4, r1] sub r1, #0x18 ldr r1, [r4, r1] mov r2, #0xf mov r3, #0xa bl MOD85_021DE9E4 mov r1, #0x45 lsl r1, r1, #4 ldr r0, [r4, r1] sub r1, #0x18 ldr r1, [r4, r1] mov r2, #0x10 mov r3, #0xa bl MOD85_021DEA4C b _021DE572 _021DE538: mov r2, #0x45 mov r0, #0xa lsl r2, r2, #4 str r0, [sp] ldr r0, [r4, r2] sub r2, #0x18 ldr r2, [r4, r2] mov r1, #3 mov r3, #0x11 bl MOD85_021DE840 mov r1, #0x45 lsl r1, r1, #4 ldr r0, [r4, r1] sub r1, #0x18 ldr r1, [r4, r1] mov r2, #0x12 mov r3, #0xa bl MOD85_021DE9E4 mov r1, #0x45 lsl r1, r1, #4 ldr r0, [r4, r1] sub r1, #0x18 ldr r1, [r4, r1] mov r2, #0x13 mov r3, #0xa bl MOD85_021DEA4C _021DE572: ldr r0, _021DE598 ; =MOD85_021DE4A8 ldr r2, _021DE59C ; =0x00000101 add r1, r5, #0 bl FUN_0200CA60 cmp r0, #0 bne _021DE584 bl ErrorHandling _021DE584: ldr r0, _021DE5A0 ; =MOD85_021DE4C8 ldr r2, _021DE59C ; =0x00000101 add r1, r5, #0 bl FUN_0200CA98 cmp r0, #0 bne _021DE596 bl ErrorHandling _021DE596: pop {r3, r4, r5, pc} .align 2, 0 _021DE598: .word MOD85_021DE4A8 _021DE59C: .word 0x00000101 _021DE5A0: .word MOD85_021DE4C8 thumb_func_end MOD85_021DE4F0 thumb_func_start MOD85_021DE5A4 MOD85_021DE5A4: ; 0x021DE5A4 push {r4, r5, r6, r7, lr} sub sp, #0xc str r1, [sp, #4] ldr r1, [sp, #0x28] str r0, [sp] str r1, [sp, #0x28] mov r1, #0x57 lsl r1, r1, #2 str r2, [sp, #8] add r7, r3, #0 ldr r5, [sp, #0x20] ldr r6, [sp, #0x24] bl FUN_02016998 add r4, r0, #0 bne _021DE5C8 bl ErrorHandling _021DE5C8: ldr r0, [sp] add r1, r4, #0 str r0, [r4] strb r7, [r4, #4] strb r5, [r4, #5] ldr r0, [sp, #0x28] strb r6, [r4, #6] strb r0, [r4, #7] ldr r0, [sp, #0x2c] ldr r2, [sp] strb r0, [r4, #8] ldr r0, [sp, #0x30] add r1, #0x10 strb r0, [r4, #9] ldr r0, [sp, #0x34] strb r0, [r4, #0xa] ldr r0, [sp, #0x38] strb r0, [r4, #0xb] ldr r0, [sp, #4] bl FUN_02008C9C str r0, [r4, #0xc] ldr r0, [sp, #8] ldr r1, [sp] bl FUN_0201C328 mov r1, #0x4e lsl r1, r1, #2 str r0, [r4, r1] ldr r0, [sp, #8] ldr r1, [sp] bl FUN_0201C24C ldr r2, [sp] add r0, r7, #0 mov r1, #0 bl FUN_02008DEC mov r1, #0x4f lsl r1, r1, #2 str r0, [r4, r1] ldr r2, [sp] add r0, r5, #0 mov r1, #1 bl FUN_02008DEC mov r1, #5 lsl r1, r1, #6 str r0, [r4, r1] ldr r2, [sp] add r0, r6, #0 mov r1, #2 bl FUN_02008DEC mov r1, #0x51 lsl r1, r1, #2 str r0, [r4, r1] ldr r0, [sp, #0x28] ldr r2, [sp] mov r1, #3 bl FUN_02008DEC mov r1, #0x52 lsl r1, r1, #2 str r0, [r4, r1] ldr r0, [sp] lsl r1, r7, #3 bl FUN_02016998 mov r1, #0x53 lsl r1, r1, #2 str r0, [r4, r1] ldr r0, [sp] lsl r1, r5, #3 bl FUN_02016998 mov r1, #0x15 lsl r1, r1, #4 str r0, [r4, r1] ldr r0, [sp] lsl r1, r6, #3 bl FUN_02016998 mov r1, #0x55 lsl r1, r1, #2 str r0, [r4, r1] ldr r1, [sp, #0x28] ldr r0, [sp] lsl r1, r1, #3 bl FUN_02016998 mov r1, #0x56 lsl r1, r1, #2 str r0, [r4, r1] mov r1, #0 cmp r7, #0 bls _021DE6A4 bls _021DE6A4 ldr r0, [sp, #0x2c] add r2, r1, #0 lsl r0, r0, #0x10 lsr r0, r0, #0x10 _021DE694: mov r3, #0x53 lsl r3, r3, #2 ldr r3, [r4, r3] add r1, r1, #1 strh r0, [r3, r2] add r2, #8 cmp r1, r7 blo _021DE694 _021DE6A4: mov r3, #0 cmp r5, #0 bls _021DE6C4 bls _021DE6C4 ldr r0, [sp, #0x30] mov r7, #0x15 lsl r0, r0, #0x10 add r2, r3, #0 lsr r1, r0, #0x10 lsl r7, r7, #4 _021DE6B8: ldr r0, [r4, r7] add r3, r3, #1 strh r1, [r0, r2] add r2, #8 cmp r3, r5 blo _021DE6B8 _021DE6C4: mov r1, #0 cmp r6, #0 bls _021DE6E4 bls _021DE6E4 ldr r2, [sp, #0x34] add r0, r1, #0 lsl r2, r2, #0x10 lsr r5, r2, #0x10 mov r2, #0x55 lsl r2, r2, #2 _021DE6D8: ldr r3, [r4, r2] add r1, r1, #1 strh r5, [r3, r0] add r0, #8 cmp r1, r6 blo _021DE6D8 _021DE6E4: ldr r0, [sp, #0x28] mov r1, #0 cmp r0, #0 bls _021DE708 bls _021DE708 ldr r2, [sp, #0x38] mov r3, #0x56 lsl r2, r2, #0x10 add r0, r1, #0 lsr r5, r2, #0x10 lsl r3, r3, #2 _021DE6FA: ldr r2, [r4, r3] add r1, r1, #1 strh r5, [r2, r0] ldr r2, [sp, #0x28] add r0, #8 cmp r1, r2 blo _021DE6FA _021DE708: add r0, r4, #0 add sp, #0xc pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD85_021DE5A4 thumb_func_start MOD85_021DE710 MOD85_021DE710: ; 0x021DE710 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 ldrb r0, [r5, #4] mov r6, #0 cmp r0, #0 bls _021DE73E mov r7, #0x53 add r4, r6, #0 lsl r7, r7, #2 _021DE722: ldr r1, [r5, r7] ldrb r2, [r5, #8] add r0, r1, r4 ldrh r1, [r1, r4] cmp r2, r1 beq _021DE734 ldr r0, [r0, #4] bl FUN_02009C0C _021DE734: ldrb r0, [r5, #4] add r6, r6, #1 add r4, #8 cmp r6, r0 blo _021DE722 _021DE73E: ldrb r0, [r5, #5] mov r6, #0 cmp r0, #0 bls _021DE768 mov r7, #0x15 add r4, r6, #0 lsl r7, r7, #4 _021DE74C: ldr r1, [r5, r7] ldrb r2, [r5, #9] add r0, r1, r4 ldrh r1, [r1, r4] cmp r2, r1 beq _021DE75E ldr r0, [r0, #4] bl FUN_02009E04 _021DE75E: ldrb r0, [r5, #5] add r6, r6, #1 add r4, #8 cmp r6, r0 blo _021DE74C _021DE768: ldrb r0, [r5, #6] mov r6, #0 cmp r0, #0 bls _021DE792 mov r7, #0x55 add r4, r6, #0 lsl r7, r7, #2 _021DE776: ldr r1, [r5, r7] ldrb r2, [r5, #0xa] add r0, r1, r4 ldrh r1, [r1, r4] cmp r2, r1 beq _021DE788 ldr r0, [r0, #4] bl FUN_02009474 _021DE788: ldrb r0, [r5, #6] add r6, r6, #1 add r4, #8 cmp r6, r0 blo _021DE776 _021DE792: ldrb r0, [r5, #7] mov r6, #0 cmp r0, #0 bls _021DE7BC mov r7, #0x56 add r4, r6, #0 lsl r7, r7, #2 _021DE7A0: ldr r1, [r5, r7] ldrb r2, [r5, #0xb] add r0, r1, r4 ldrh r1, [r1, r4] cmp r2, r1 beq _021DE7B2 ldr r0, [r0, #4] bl FUN_02009474 _021DE7B2: ldrb r0, [r5, #7] add r6, r6, #1 add r4, #8 cmp r6, r0 blo _021DE7A0 _021DE7BC: mov r0, #0x4f lsl r0, r0, #2 ldr r0, [r5, r0] bl FUN_02008E2C mov r0, #5 lsl r0, r0, #6 ldr r0, [r5, r0] bl FUN_02008E2C mov r0, #0x51 lsl r0, r0, #2 ldr r0, [r5, r0] bl FUN_02008E2C mov r0, #0x52 lsl r0, r0, #2 ldr r0, [r5, r0] bl FUN_02008E2C mov r0, #0x53 lsl r0, r0, #2 ldr r0, [r5, r0] bl FUN_02016A18 mov r0, #0x15 lsl r0, r0, #4 ldr r0, [r5, r0] bl FUN_02016A18 mov r0, #0x55 lsl r0, r0, #2 ldr r0, [r5, r0] bl FUN_02016A18 mov r0, #0x56 lsl r0, r0, #2 ldr r0, [r5, r0] bl FUN_02016A18 bl FUN_0201C29C mov r0, #0x4e lsl r0, r0, #2 ldr r0, [r5, r0] bl FUN_0201C350 ldr r0, [r5, #0xc] bl FUN_0201FDB4 ldr r0, [r5, #0xc] bl FUN_0201FD58 add r0, r5, #0 bl FUN_02016A18 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD85_021DE710 thumb_func_start MOD85_021DE830 MOD85_021DE830: ; 0x021DE830 push {r3, lr} ldr r0, [r0, #0xc] bl FUN_0201FDEC bl FUN_0201C348 pop {r3, pc} .align 2, 0 thumb_func_end MOD85_021DE830 thumb_func_start MOD85_021DE840 MOD85_021DE840: ; 0x021DE840 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r4, r0, #0 ldrb r5, [r4, #4] add r7, r1, #0 mov r1, #0 str r2, [sp, #0xc] mov ip, r3 cmp r5, #0 bls _021DE8A0 mov r0, #0x53 lsl r0, r0, #2 ldr r6, [r4, r0] ldrb r3, [r4, #8] add r2, r6, #0 _021DE85E: ldrh r0, [r2] cmp r3, r0 bne _021DE898 ldr r0, [sp, #0x28] lsl r5, r1, #3 mov r1, #0x53 strh r0, [r6, r5] lsl r1, r1, #2 ldr r2, [r4, r1] mov r3, #0 add r2, r2, r5 strh r3, [r2, #2] str r0, [sp] str r7, [sp, #4] ldr r0, [r4] sub r1, #0x10 str r0, [sp, #8] ldr r0, [r4, r1] ldr r1, [sp, #0xc] mov r2, ip bl FUN_020091E0 mov r1, #0x53 lsl r1, r1, #2 ldr r1, [r4, r1] add sp, #0x10 add r1, r1, r5 str r0, [r1, #4] pop {r3, r4, r5, r6, r7, pc} _021DE898: add r1, r1, #1 add r2, #8 cmp r1, r5 blo _021DE85E _021DE8A0: bl ErrorHandling add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD85_021DE840 thumb_func_start MOD85_021DE8A8 MOD85_021DE8A8: ; 0x021DE8A8 push {r3, r4, r5, lr} ldrb r2, [r0, #4] mov r4, #0 cmp r2, #0 bls _021DE8D4 mov r3, #0x53 lsl r3, r3, #2 ldr r5, [r0, r3] add r3, r5, #0 _021DE8BA: ldrh r0, [r3] cmp r1, r0 bne _021DE8CC lsl r0, r4, #3 add r0, r5, r0 ldr r0, [r0, #4] bl FUN_02009B04 pop {r3, r4, r5, pc} _021DE8CC: add r4, r4, #1 add r3, #8 cmp r4, r2 blo _021DE8BA _021DE8D4: bl ErrorHandling pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD85_021DE8A8 thumb_func_start MOD85_021DE8DC MOD85_021DE8DC: ; 0x021DE8DC push {r3, r4, r5, lr} ldrb r2, [r0, #4] mov r4, #0 cmp r2, #0 bls _021DE908 mov r3, #0x53 lsl r3, r3, #2 ldr r5, [r0, r3] add r3, r5, #0 _021DE8EE: ldrh r0, [r3] cmp r1, r0 bne _021DE900 lsl r0, r4, #3 add r0, r5, r0 ldr r0, [r0, #4] bl FUN_02009474 pop {r3, r4, r5, pc} _021DE900: add r4, r4, #1 add r3, #8 cmp r4, r2 blo _021DE8EE _021DE908: bl ErrorHandling pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD85_021DE8DC thumb_func_start MOD85_021DE910 MOD85_021DE910: ; 0x021DE910 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r4, r0, #0 ldrb r5, [r4, #4] add r7, r1, #0 mov r1, #0 str r2, [sp, #0x10] mov ip, r3 cmp r5, #0 bls _021DE974 mov r0, #0x15 lsl r0, r0, #4 ldr r6, [r4, r0] ldrb r3, [r4, #9] add r2, r6, #0 _021DE92E: ldrh r0, [r2] cmp r3, r0 bne _021DE96C ldr r0, [sp, #0x28] lsl r5, r1, #3 mov r1, #0x15 strh r0, [r6, r5] lsl r1, r1, #4 ldr r2, [r4, r1] mov r3, #0 add r2, r2, r5 strh r3, [r2, #2] str r0, [sp] str r7, [sp, #4] mov r0, #1 str r0, [sp, #8] ldr r0, [r4] sub r1, #0x10 str r0, [sp, #0xc] ldr r0, [r4, r1] ldr r1, [sp, #0x10] mov r2, ip bl FUN_02009298 mov r1, #0x15 lsl r1, r1, #4 ldr r1, [r4, r1] add sp, #0x14 add r1, r1, r5 str r0, [r1, #4] pop {r4, r5, r6, r7, pc} _021DE96C: add r1, r1, #1 add r2, #8 cmp r1, r5 blo _021DE92E _021DE974: bl ErrorHandling add sp, #0x14 pop {r4, r5, r6, r7, pc} thumb_func_end MOD85_021DE910 thumb_func_start MOD85_021DE97C MOD85_021DE97C: ; 0x021DE97C push {r3, r4, r5, lr} ldrb r2, [r0, #5] mov r4, #0 cmp r2, #0 bls _021DE9A8 mov r3, #0x15 lsl r3, r3, #4 ldr r5, [r0, r3] add r3, r5, #0 _021DE98E: ldrh r0, [r3] cmp r1, r0 bne _021DE9A0 lsl r0, r4, #3 add r0, r5, r0 ldr r0, [r0, #4] bl FUN_02009D68 pop {r3, r4, r5, pc} _021DE9A0: add r4, r4, #1 add r3, #8 cmp r4, r2 blo _021DE98E _021DE9A8: bl ErrorHandling pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD85_021DE97C thumb_func_start MOD85_021DE9B0 MOD85_021DE9B0: ; 0x021DE9B0 push {r3, r4, r5, lr} ldrb r2, [r0, #5] mov r4, #0 cmp r2, #0 bls _021DE9DC mov r3, #0x15 lsl r3, r3, #4 ldr r5, [r0, r3] add r3, r5, #0 _021DE9C2: ldrh r0, [r3] cmp r1, r0 bne _021DE9D4 lsl r0, r4, #3 add r0, r5, r0 ldr r0, [r0, #4] bl FUN_02009474 pop {r3, r4, r5, pc} _021DE9D4: add r4, r4, #1 add r3, #8 cmp r4, r2 blo _021DE9C2 _021DE9DC: bl ErrorHandling pop {r3, r4, r5, pc} .align 2, 0 thumb_func_end MOD85_021DE9B0 thumb_func_start MOD85_021DE9E4 MOD85_021DE9E4: ; 0x021DE9E4 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r4, r0, #0 ldrb r5, [r4, #4] str r1, [sp, #0xc] mov ip, r2 add r6, r3, #0 mov r1, #0 cmp r5, #0 bls _021DEA44 mov r0, #0x55 lsl r0, r0, #2 ldr r7, [r4, r0] ldrb r3, [r4, #0xa] add r2, r7, #0 _021DEA02: ldrh r0, [r2] cmp r3, r0 bne _021DEA3C lsl r5, r1, #3 mov r0, #0x55 strh r6, [r7, r5] lsl r0, r0, #2 ldr r1, [r4, r0] mov r3, #0 add r1, r1, r5 strh r3, [r1, #2] str r6, [sp] mov r1, #2 str r1, [sp, #4] ldr r1, [r4] sub r0, #0x10 str r1, [sp, #8] ldr r0, [r4, r0] ldr r1, [sp, #0xc] mov r2, ip bl FUN_02009358 mov r1, #0x55 lsl r1, r1, #2 ldr r1, [r4, r1] add sp, #0x10 add r1, r1, r5 str r0, [r1, #4] pop {r3, r4, r5, r6, r7, pc} _021DEA3C: add r1, r1, #1 add r2, #8 cmp r1, r5 blo _021DEA02 _021DEA44: bl ErrorHandling add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD85_021DE9E4 thumb_func_start MOD85_021DEA4C MOD85_021DEA4C: ; 0x021DEA4C push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r4, r0, #0 ldrb r5, [r4, #4] str r1, [sp, #0xc] mov ip, r2 add r6, r3, #0 mov r1, #0 cmp r5, #0 bls _021DEAAC mov r0, #0x56 lsl r0, r0, #2 ldr r7, [r4, r0] ldrb r3, [r4, #0xb] add r2, r7, #0 _021DEA6A: ldrh r0, [r2] cmp r3, r0 bne _021DEAA4 lsl r5, r1, #3 mov r0, #0x56 strh r6, [r7, r5] lsl r0, r0, #2 ldr r1, [r4, r0] mov r3, #0 add r1, r1, r5 strh r3, [r1, #2] str r6, [sp] mov r1, #3 str r1, [sp, #4] ldr r1, [r4] sub r0, #0x10 str r1, [sp, #8] ldr r0, [r4, r0] ldr r1, [sp, #0xc] mov r2, ip bl FUN_02009358 mov r1, #0x56 lsl r1, r1, #2 ldr r1, [r4, r1] add sp, #0x10 add r1, r1, r5 str r0, [r1, #4] pop {r3, r4, r5, r6, r7, pc} _021DEAA4: add r1, r1, #1 add r2, #8 cmp r1, r5 blo _021DEA6A _021DEAAC: bl ErrorHandling add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD85_021DEA4C thumb_func_start MOD85_021DEAB4 MOD85_021DEAB4: ; 0x021DEAB4 push {r3, r4, r5, r6, r7, lr} sub sp, #8 add r4, r0, #0 add r0, r1, #0 ldrb r1, [r4, #8] add r7, r2, #0 str r3, [sp] ldr r6, [sp, #0x20] cmp r0, r1 beq _021DEB10 ldrb r5, [r4, #4] mov r2, #0 cmp r5, #0 bls _021DEB10 mov r1, #0x53 lsl r1, r1, #2 ldr r3, [r4, r1] mov ip, r3 _021DEAD8: ldrh r1, [r3] cmp r0, r1 bne _021DEB08 lsl r5, r2, #3 mov r0, ip add r0, r0, r5 ldr r0, [r0, #4] bl FUN_02009C0C mov r1, #0x4f lsl r1, r1, #2 ldr r0, [r4, r1] add r1, #0x10 ldr r1, [r4, r1] add r1, r1, r5 ldr r1, [r1, #4] bl FUN_02009490 mov r0, #0x53 lsl r0, r0, #2 ldrb r1, [r4, #8] ldr r0, [r4, r0] strh r1, [r0, r5] b _021DEB10 _021DEB08: add r2, r2, #1 add r3, #8 cmp r2, r5 blo _021DEAD8 _021DEB10: ldrb r0, [r4, #9] cmp r7, r0 beq _021DEB5E ldrb r0, [r4, #5] mov r1, #0 cmp r0, #0 bls _021DEB5E mov r2, #0x15 lsl r2, r2, #4 ldr r3, [r4, r2] str r3, [sp, #4] _021DEB26: ldrh r2, [r3] cmp r7, r2 bne _021DEB56 ldr r0, [sp, #4] lsl r5, r1, #3 add r0, r0, r5 ldr r0, [r0, #4] bl FUN_02009E04 mov r1, #5 lsl r1, r1, #6 ldr r0, [r4, r1] add r1, #0x10 ldr r1, [r4, r1] add r1, r1, r5 ldr r1, [r1, #4] bl FUN_02009490 mov r0, #0x15 lsl r0, r0, #4 ldrb r1, [r4, #9] ldr r0, [r4, r0] strh r1, [r0, r5] b _021DEB5E _021DEB56: add r1, r1, #1 add r3, #8 cmp r1, r0 blo _021DEB26 _021DEB5E: ldrb r1, [r4, #0xa] ldr r0, [sp] cmp r0, r1 beq _021DEBAE ldrb r3, [r4, #6] mov r5, #0 cmp r3, #0 bls _021DEBAE mov r0, #0x55 lsl r0, r0, #2 ldr r7, [r4, r0] add r2, r7, #0 _021DEB76: ldrh r1, [r2] ldr r0, [sp] cmp r0, r1 bne _021DEBA6 lsl r5, r5, #3 add r0, r7, r5 ldr r0, [r0, #4] bl FUN_02009474 mov r1, #0x51 lsl r1, r1, #2 ldr r0, [r4, r1] add r1, #0x10 ldr r1, [r4, r1] add r1, r1, r5 ldr r1, [r1, #4] bl FUN_02009490 mov r0, #0x55 lsl r0, r0, #2 ldrb r1, [r4, #0xa] ldr r0, [r4, r0] strh r1, [r0, r5] b _021DEBAE _021DEBA6: add r5, r5, #1 add r2, #8 cmp r5, r3 blo _021DEB76 _021DEBAE: ldrb r0, [r4, #0xb] cmp r6, r0 beq _021DEBFC ldrb r1, [r4, #7] mov r2, #0 cmp r1, #0 bls _021DEBFC mov r0, #0x56 lsl r0, r0, #2 ldr r0, [r4, r0] add r5, r0, #0 _021DEBC4: ldrh r3, [r5] cmp r6, r3 bne _021DEBF4 lsl r5, r2, #3 add r0, r0, r5 ldr r0, [r0, #4] bl FUN_02009474 mov r1, #0x52 lsl r1, r1, #2 ldr r0, [r4, r1] add r1, #0x10 ldr r1, [r4, r1] add r1, r1, r5 ldr r1, [r1, #4] bl FUN_02009490 mov r0, #0x56 lsl r0, r0, #2 ldrb r1, [r4, #0xb] ldr r0, [r4, r0] add sp, #8 strh r1, [r0, r5] pop {r3, r4, r5, r6, r7, pc} _021DEBF4: add r2, r2, #1 add r5, #8 cmp r2, r1 blo _021DEBC4 _021DEBFC: add sp, #8 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD85_021DEAB4 thumb_func_start MOD85_021DEC00 MOD85_021DEC00: ; 0x021DEC00 push {r3, r4, r5, r6, r7, lr} sub sp, #0x70 add r5, r0, #0 ldrb r0, [r5, #0xb] add r4, r1, #0 ldr r1, [sp, #0x98] add r6, r2, #0 add r7, r3, #0 cmp r1, r0 bne _021DEC1A mov r0, #0 mvn r0, r0 str r0, [sp, #0x98] _021DEC1A: ldr r0, [sp, #0x98] mov r1, #0x4f str r0, [sp] mov r0, #0 mvn r0, r0 str r0, [sp, #4] str r0, [sp, #8] ldr r0, [sp, #0x88] lsl r1, r1, #2 str r0, [sp, #0xc] ldr r0, [sp, #0x9c] ldr r2, [sp, #0x90] str r0, [sp, #0x10] ldr r0, [r5, r1] ldr r3, [sp, #0x94] str r0, [sp, #0x14] add r0, r1, #4 ldr r0, [r5, r0] str r0, [sp, #0x18] add r0, r1, #0 add r0, #8 ldr r0, [r5, r0] add r1, #0xc str r0, [sp, #0x1c] ldr r0, [r5, r1] ldr r1, [sp, #0x8c] str r0, [sp, #0x20] mov r0, #0 str r0, [sp, #0x24] str r0, [sp, #0x28] add r0, sp, #0x4c bl FUN_02008AA4 ldr r0, [sp, #0x88] cmp r0, #1 bne _021DEC6A ldr r0, [sp, #0x4c] str r0, [r4, #8] mov r0, #1 b _021DEC6C _021DEC6A: mov r0, #0 _021DEC6C: str r0, [r4] ldr r0, [r5, #0xc] add r2, sp, #0x34 str r0, [sp, #0x2c] add r0, sp, #0x4c str r0, [sp, #0x30] ldmia r6!, {r0, r1} stmia r2!, {r0, r1} ldr r0, [r6] str r0, [r2] ldr r0, [sp, #0xa0] str r7, [sp, #0x44] str r0, [sp, #0x40] ldr r0, [r5] str r0, [sp, #0x48] add r0, sp, #0x2c bl FUN_0201FF84 str r0, [r4, #4] cmp r0, #0 bne _021DEC9A bl ErrorHandling _021DEC9A: add sp, #0x70 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD85_021DEC00 thumb_func_start MOD85_021DECA0 MOD85_021DECA0: ; 0x021DECA0 push {r4, lr} add r4, r0, #0 ldr r0, [r4] cmp r0, #1 bne _021DECB0 ldr r0, [r4, #8] bl FUN_02009CDC _021DECB0: ldr r0, [r4, #4] bl FUN_0201FFC8 mov r0, #0 str r0, [r4, #4] pop {r4, pc} thumb_func_end MOD85_021DECA0 thumb_func_start MOD85_021DECBC MOD85_021DECBC: ; 0x021DECBC push {r4, lr} add r4, r1, #0 bl FUN_0202011C add r2, r0, #0 ldmia r2!, {r0, r1} stmia r4!, {r0, r1} ldr r0, [r2] str r0, [r4] pop {r4, pc} thumb_func_end MOD85_021DECBC thumb_func_start MOD85_021DECD0 MOD85_021DECD0: ; 0x021DECD0 push {r4, lr} add r4, r1, #0 bl FUN_02020120 add r2, r0, #0 ldmia r2!, {r0, r1} stmia r4!, {r0, r1} ldr r0, [r2] str r0, [r4] pop {r4, pc} thumb_func_end MOD85_021DECD0 .section .rodata ; 0x021DECE4 .incbin "baserom.nds", 0x30AC04, 0x18BC .section .data ; 0x021E05C0 .incbin "baserom.nds", 0x30C4E0, 0x20