.include "asm/macros.inc" .include "global.inc" .text thumb_func_start FUN_020023C0 FUN_020023C0: ; 0x020023C0 push {r3-r6, lr} sub sp, #0xc add r4, r0, #0x0 add r1, r4, #0x0 add r1, #0x24 ldrb r1, [r1, #0x0] add r6, r4, #0x0 add r6, #0x1c cmp r1, #0x6 bls _020023D6 b _02002838 _020023D6: add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _020023E2: ; jump table (using 16-bit offset) .short _020023F0 - _020023E2 - 2; case 0 .short _02002742 - _020023E2 - 2; case 1 .short _0200275C - _020023E2 - 2; case 2 .short _02002786 - _020023E2 - 2; case 3 .short _020027B6 - _020023E2 - 2; case 4 .short _0200280C - _020023E2 - 2; case 5 .short _02002818 - _020023E2 - 2; case 6 _020023F0: ldr r0, _02002658 ; =0x021C48B8 ldr r1, [r0, #0x44] mov r0, #0x3 tst r0, r1 beq _02002402 ldrb r0, [r6, #0x0] lsl r0, r0, #0x1b lsr r0, r0, #0x1f bne _02002414 _02002402: ldr r0, _0200265C ; =0x021C48F8 ldrh r0, [r0, #0x22] cmp r0, #0x0 beq _02002432 ldr r0, _02002660 ; =0x02106FC4 ldrb r0, [r0, #0x0] lsl r0, r0, #0x1b lsr r0, r0, #0x1f beq _02002432 _02002414: add r0, r4, #0x0 mov r1, #0x0 add r0, #0x26 strb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x25 ldrb r0, [r0, #0x0] lsl r0, r0, #0x19 lsr r0, r0, #0x19 beq _02002432 ldr r1, _02002660 ; =0x02106FC4 mov r0, #0x40 ldrb r2, [r1, #0x0] orr r0, r2 strb r0, [r1, #0x0] _02002432: add r0, r4, #0x0 add r0, #0x26 ldrb r0, [r0, #0x0] cmp r0, #0x0 beq _0200248C add r0, r4, #0x0 add r0, #0x25 ldrb r0, [r0, #0x0] lsl r0, r0, #0x19 lsr r0, r0, #0x19 beq _0200248C add r0, r4, #0x0 add r0, #0x26 ldrb r0, [r0, #0x0] sub r1, r0, #0x1 add r0, r4, #0x0 add r0, #0x26 strb r1, [r0, #0x0] ldr r0, _02002660 ; =0x02106FC4 ldrb r0, [r0, #0x0] lsl r1, r0, #0x1f lsr r1, r1, #0x1f beq _02002486 ldr r1, _02002658 ; =0x021C48B8 ldr r2, [r1, #0x48] mov r1, #0x3 tst r1, r2 bne _02002478 ldr r1, _0200265C ; =0x021C48F8 ldrh r1, [r1, #0x20] cmp r1, #0x0 beq _02002486 lsl r0, r0, #0x1b lsr r0, r0, #0x1f beq _02002486 _02002478: ldrb r1, [r6, #0x0] mov r0, #0x10 add r4, #0x26 orr r0, r1 strb r0, [r6, #0x0] mov r0, #0x0 strb r0, [r4, #0x0] _02002486: add sp, #0xc mov r0, #0x3 pop {r3-r6, pc} _0200248C: add r0, r4, #0x0 add r0, #0x25 ldrb r0, [r0, #0x0] lsl r0, r0, #0x19 lsr r1, r0, #0x19 add r0, r4, #0x0 add r0, #0x26 strb r1, [r0, #0x0] ldr r0, [r4, #0x0] ldrh r5, [r0, #0x0] add r0, r0, #0x2 str r0, [r4, #0x0] mov r0, #0xf1 lsl r0, r0, #0x8 cmp r5, r0 bne _020024B0 bl ErrorHandling _020024B0: ldr r0, _02002664 ; =0x0000F0FD cmp r5, r0 bgt _020024DA bge _0200250E ldr r1, _02002668 ; =0x000025BD cmp r5, r1 bgt _020024D0 sub r0, r1, #0x1 cmp r5, r0 blt _020024CE bne _020024C8 b _020026D8 _020024C8: cmp r5, r1 bne _020024CE b _020026EC _020024CE: b _02002700 _020024D0: mov r0, #0xe lsl r0, r0, #0xc cmp r5, r0 beq _020024F2 b _02002700 _020024DA: ldr r0, _0200266C ; =0x0000FFFE cmp r5, r0 bgt _020024E4 beq _0200251A b _02002700 _020024E4: add r0, r0, #0x1 cmp r5, r0 beq _020024EC b _02002700 _020024EC: add sp, #0xc mov r0, #0x1 pop {r3-r6, pc} _020024F2: ldrb r0, [r4, #0xa] mov r1, #0x1 strb r0, [r4, #0xc] ldrb r0, [r4, #0x9] bl FUN_02002E4C ldrb r1, [r4, #0xf] ldrb r2, [r4, #0xd] add sp, #0xc add r0, r1, r0 add r0, r2, r0 strb r0, [r4, #0xd] mov r0, #0x2 pop {r3-r6, pc} _0200250E: ldr r0, [r4, #0x0] add sp, #0xc add r0, r0, #0x2 str r0, [r4, #0x0] mov r0, #0x2 pop {r3-r6, pc} _0200251A: ldr r0, [r4, #0x0] sub r0, r0, #0x2 str r0, [r4, #0x0] bl FUN_0201B8E0 lsl r0, r0, #0x10 ldr r1, _02002670 ; =0x0000FE06 lsr r0, r0, #0x10 cmp r0, r1 bgt _02002552 blt _02002532 b _02002678 _02002532: mov r1, #0x2 lsl r1, r1, #0x8 sub r1, r0, r1 cmp r1, #0x4 bhi _0200255C add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02002548: ; jump table (using 16-bit offset) .short _020025B4 - _02002548 - 2; case 0 .short _020025DE - _02002548 - 2; case 1 .short _02002600 - _02002548 - 2; case 2 .short _02002618 - _02002548 - 2; case 3 .short _02002624 - _02002548 - 2; case 4 _02002552: mov r1, #0xff lsl r1, r1, #0x8 cmp r0, r1 bgt _0200255E beq _02002566 _0200255C: b _020026CA _0200255E: add r1, r1, #0x1 cmp r0, r1 beq _02002630 b _020026CA _02002566: ldr r0, [r4, #0x0] mov r1, #0x0 bl FUN_0201B914 lsl r0, r0, #0x10 lsr r0, r0, #0x10 cmp r0, #0xff bne _02002596 ldrb r0, [r4, #0x11] ldrb r2, [r4, #0x17] sub r1, r0, #0x1 lsr r0, r1, #0x1f add r0, r1, r0 asr r0, r0, #0x1 add r0, #0x64 strb r0, [r4, #0x17] cmp r2, #0x64 blo _02002644 cmp r2, #0x6b bhs _02002644 sub r2, #0x64 lsl r0, r2, #0x10 lsr r0, r0, #0x10 b _0200259E _02002596: cmp r0, #0x64 blo _0200259E strb r0, [r4, #0x17] b _020026CA _0200259E: lsl r1, r0, #0x1 add r0, r1, #0x1 strb r0, [r4, #0x11] add r0, r1, #0x2 strb r0, [r4, #0x13] ldrb r0, [r4, #0x11] ldrb r1, [r4, #0x12] ldrb r2, [r4, #0x13] bl FUN_0201C05C b _020026CA _020025B4: ldr r0, [r4, #0x0] mov r1, #0x0 bl FUN_0201B914 lsl r0, r0, #0x10 lsr r3, r0, #0x10 ldrb r1, [r4, #0xc] ldrb r2, [r4, #0xd] add r0, r4, #0x0 bl FUN_0201C1EC add r0, r4, #0x0 add r0, #0x25 ldrb r0, [r0, #0x0] lsl r0, r0, #0x18 lsr r0, r0, #0x1f beq _020026CA ldr r0, [r4, #0x4] bl FUN_020191D0 b _020026CA _020025DE: ldr r0, [r4, #0x0] mov r1, #0x0 bl FUN_0201B914 add r1, r4, #0x0 add r1, #0x26 strb r0, [r1, #0x0] ldr r0, [r4, #0x0] bl FUN_0201B8B8 str r0, [r4, #0x0] mov r0, #0x6 add r4, #0x24 strb r0, [r4, #0x0] add sp, #0xc mov r0, #0x3 pop {r3-r6, pc} _02002600: ldr r0, [r4, #0x0] mov r1, #0x0 bl FUN_0201B914 strh r0, [r4, #0x2a] ldr r0, [r4, #0x0] bl FUN_0201B8B8 str r0, [r4, #0x0] add sp, #0xc mov r0, #0x3 pop {r3-r6, pc} _02002618: ldr r0, [r4, #0x0] mov r1, #0x0 bl FUN_0201B914 strb r0, [r4, #0xc] b _020026CA _02002624: ldr r0, [r4, #0x0] mov r1, #0x0 bl FUN_0201B914 strb r0, [r4, #0xd] b _020026CA _02002630: ldr r0, [r4, #0x0] mov r1, #0x0 bl FUN_0201B914 lsl r0, r0, #0x10 lsr r0, r0, #0x10 cmp r0, #0x64 beq _02002646 cmp r0, #0xc8 beq _0200264E _02002644: b _020026CA _02002646: mov r0, #0x0 strh r0, [r4, #0x14] strb r0, [r4, #0x16] b _020026CA _0200264E: ldr r0, _02002674 ; =0x0000FFFC strh r0, [r4, #0x14] mov r0, #0x0 strb r0, [r4, #0x16] b _020026CA .balign 4 _02002658: .word 0x021C48B8 _0200265C: .word 0x021C48F8 _02002660: .word 0x02106FC4 _02002664: .word 0x0000F0FD _02002668: .word 0x000025BD _0200266C: .word 0x0000FFFE _02002670: .word 0x0000FE06 _02002674: .word 0x0000FFFC _02002678: ldr r0, [r4, #0x0] mov r1, #0x0 bl FUN_0201B914 lsl r0, r0, #0x10 lsr r1, r0, #0x10 mov r0, #0xfe lsl r0, r0, #0x8 cmp r1, r0 beq _020026AE add r0, r0, #0x1 cmp r1, r0 bne _020026CA add r0, r4, #0x0 mov r1, #0x2 add r0, #0x24 strb r1, [r0, #0x0] add r0, r4, #0x0 bl FUN_0200284C ldr r0, [r4, #0x0] bl FUN_0201B8B8 str r0, [r4, #0x0] add sp, #0xc mov r0, #0x3 pop {r3-r6, pc} _020026AE: add r0, r4, #0x0 mov r1, #0x3 add r0, #0x24 strb r1, [r0, #0x0] add r0, r4, #0x0 bl FUN_0200284C ldr r0, [r4, #0x0] bl FUN_0201B8B8 str r0, [r4, #0x0] add sp, #0xc mov r0, #0x3 pop {r3-r6, pc} _020026CA: ldr r0, [r4, #0x0] bl FUN_0201B8B8 str r0, [r4, #0x0] add sp, #0xc mov r0, #0x2 pop {r3-r6, pc} _020026D8: add r0, r4, #0x0 mov r1, #0x2 add r0, #0x24 strb r1, [r0, #0x0] add r0, r4, #0x0 bl FUN_0200284C add sp, #0xc mov r0, #0x3 pop {r3-r6, pc} _020026EC: add r0, r4, #0x0 mov r1, #0x3 add r0, #0x24 strb r1, [r0, #0x0] add r0, r4, #0x0 bl FUN_0200284C add sp, #0xc mov r0, #0x3 pop {r3-r6, pc} _02002700: ldrb r0, [r6, #0x0] add r1, r5, #0x0 lsl r0, r0, #0x1c lsr r0, r0, #0x1c bl FUN_02002D94 add r5, r0, #0x0 ldrb r0, [r4, #0xc] add r2, r5, #0x0 add r3, r5, #0x0 str r0, [sp, #0x0] ldrb r0, [r4, #0xd] add r2, #0x80 add r3, #0x81 str r0, [sp, #0x4] ldrh r0, [r4, #0x14] add r1, r5, #0x0 str r0, [sp, #0x8] ldrb r2, [r2, #0x0] ldrb r3, [r3, #0x0] ldr r0, [r4, #0x4] bl FUN_0201974C add r5, #0x80 ldrb r1, [r5, #0x0] ldrb r0, [r4, #0xe] ldrb r2, [r4, #0xc] add sp, #0xc add r0, r1, r0 add r0, r2, r0 strb r0, [r4, #0xc] mov r0, #0x0 pop {r3-r6, pc} _02002742: bl FUN_02002B3C cmp r0, #0x0 beq _02002756 add r0, r4, #0x0 bl FUN_02002A00 mov r0, #0x0 add r4, #0x24 strb r0, [r4, #0x0] _02002756: add sp, #0xc mov r0, #0x3 pop {r3-r6, pc} _0200275C: bl FUN_02002B18 cmp r0, #0x0 beq _02002780 add r0, r4, #0x0 bl FUN_02002A00 ldrb r1, [r4, #0x12] ldr r0, [r4, #0x4] bl FUN_02019620 ldrb r0, [r4, #0xa] strb r0, [r4, #0xc] ldrb r0, [r4, #0xb] strb r0, [r4, #0xd] mov r0, #0x0 add r4, #0x24 strb r0, [r4, #0x0] _02002780: add sp, #0xc mov r0, #0x3 pop {r3-r6, pc} _02002786: bl FUN_02002B18 cmp r0, #0x0 beq _020027B0 add r0, r4, #0x0 bl FUN_02002A00 ldrb r0, [r4, #0x9] mov r1, #0x1 bl FUN_02002E4C ldrb r1, [r4, #0xf] add r1, r1, r0 add r0, r4, #0x0 add r0, #0x27 strb r1, [r0, #0x0] ldrb r0, [r4, #0xa] strb r0, [r4, #0xc] mov r0, #0x4 add r4, #0x24 strb r0, [r4, #0x0] _020027B0: add sp, #0xc mov r0, #0x3 pop {r3-r6, pc} _020027B6: add r0, #0x27 ldrb r2, [r0, #0x0] cmp r2, #0x0 beq _02002800 cmp r2, #0x4 ldrb r5, [r4, #0x12] bge _020027D8 lsl r3, r5, #0x4 orr r3, r5 lsl r3, r3, #0x18 ldr r0, [r4, #0x4] mov r1, #0x0 lsr r3, r3, #0x18 bl FUN_0201A8C8 mov r1, #0x0 b _020027F2 _020027D8: lsl r3, r5, #0x4 orr r3, r5 lsl r3, r3, #0x18 ldr r0, [r4, #0x4] mov r1, #0x0 mov r2, #0x4 lsr r3, r3, #0x18 bl FUN_0201A8C8 add r0, r4, #0x0 add r0, #0x27 ldrb r0, [r0, #0x0] sub r1, r0, #0x4 _020027F2: add r0, r4, #0x0 add r0, #0x27 strb r1, [r0, #0x0] ldr r0, [r4, #0x4] bl FUN_020191D0 b _02002806 _02002800: mov r0, #0x0 add r4, #0x24 strb r0, [r4, #0x0] _02002806: add sp, #0xc mov r0, #0x3 pop {r3-r6, pc} _0200280C: mov r0, #0x0 add r4, #0x24 strb r0, [r4, #0x0] add sp, #0xc mov r0, #0x3 pop {r3-r6, pc} _02002818: add r0, #0x26 ldrb r0, [r0, #0x0] cmp r0, #0x0 beq _0200282C add r0, r4, #0x0 add r0, #0x26 ldrb r0, [r0, #0x0] add r4, #0x26 sub r0, r0, #0x1 b _02002830 _0200282C: mov r0, #0x0 add r4, #0x24 _02002830: add sp, #0xc strb r0, [r4, #0x0] mov r0, #0x3 pop {r3-r6, pc} _02002838: mov r0, #0x1 add sp, #0xc pop {r3-r6, pc} .balign 4 thumb_func_start FUN_02002840 FUN_02002840: ; 0x02002840 ldr r1, _02002848 ; =0x02106FC4 strh r0, [r1, #0x2] bx lr nop _02002848: .word 0x02106FC4 thumb_func_start FUN_0200284C FUN_0200284C: ; 0x0200284C ldr r1, _02002874 ; =0x02106FC4 add r0, #0x1c ldrb r1, [r1, #0x0] lsl r1, r1, #0x1d lsr r1, r1, #0x1f beq _02002862 ldrb r2, [r0, #0x2] mov r1, #0xff bic r2, r1 strb r2, [r0, #0x2] bx lr _02002862: ldrb r2, [r0, #0x1] mov r1, #0x60 bic r2, r1 strb r2, [r0, #0x1] ldrb r2, [r0, #0x1] mov r1, #0x1f bic r2, r1 strb r2, [r0, #0x1] bx lr .balign 4 _02002874: .word 0x02106FC4 thumb_func_start FUN_02002878 FUN_02002878: ; 0x02002878 push {r4-r7, lr} sub sp, #0x2c add r5, r0, #0x0 ldr r0, _020029F8 ; =0x02106FC4 add r4, r5, #0x0 ldrb r0, [r0, #0x0] add r4, #0x1c lsl r0, r0, #0x1d lsr r0, r0, #0x1f beq _0200288E b _020029F4 _0200288E: ldrb r0, [r4, #0x1] lsl r1, r0, #0x1b lsr r2, r1, #0x1b beq _020028AC mov r1, #0x1f add r2, #0xff bic r0, r1 lsl r1, r2, #0x18 lsr r2, r1, #0x18 mov r1, #0x1f and r1, r2 orr r0, r1 add sp, #0x2c strb r0, [r4, #0x1] pop {r4-r7, pc} _020028AC: ldr r0, [r5, #0x4] bl FUN_0201AB08 str r0, [sp, #0x20] ldr r0, [r5, #0x4] bl FUN_0201AB14 str r0, [sp, #0x24] ldr r0, [r5, #0x4] bl FUN_0201AB18 str r0, [sp, #0x28] ldr r0, [r5, #0x4] bl FUN_0201AB0C ldr r1, _020029F8 ; =0x02106FC4 ldrh r6, [r1, #0x2] ldr r1, [sp, #0x28] add r7, r1, #0x2 ldr r1, [sp, #0x24] add r2, r6, #0x0 add r0, r1, r0 str r0, [sp, #0x1c] add r0, r0, #0x1 str r0, [sp, #0x18] lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] mov r0, #0x10 str r0, [sp, #0xc] add r2, #0x12 mov r12, r2 ldrb r2, [r4, #0x1] ldr r0, [r5, #0x4] ldr r1, [sp, #0x20] lsl r2, r2, #0x19 lsr r3, r2, #0x1e ldr r2, _020029FC ; =0x020ECB50 ldr r0, [r0, #0x0] ldrb r2, [r2, r3] mov r3, r12 lsl r2, r2, #0x2 add r2, r3, r2 ldr r3, [sp, #0x18] lsl r2, r2, #0x10 lsl r3, r3, #0x18 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r0, [sp, #0x1c] ldr r1, [sp, #0x20] add r0, r0, #0x2 str r0, [sp, #0x10] lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] mov r0, #0x10 str r0, [sp, #0xc] ldrb r2, [r4, #0x1] add r7, r6, #0x0 ldr r0, [r5, #0x4] lsl r2, r2, #0x19 lsr r3, r2, #0x1e ldr r2, _020029FC ; =0x020ECB50 add r7, #0x13 ldrb r2, [r2, r3] ldr r3, [sp, #0x10] ldr r0, [r0, #0x0] lsl r2, r2, #0x2 add r2, r7, r2 lsl r2, r2, #0x10 lsl r3, r3, #0x18 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r0, [sp, #0x28] add r7, r6, #0x0 add r0, r0, #0x3 str r0, [sp, #0x14] lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] mov r0, #0x10 str r0, [sp, #0xc] ldrb r2, [r4, #0x1] ldr r0, [r5, #0x4] add r7, #0x14 lsl r2, r2, #0x19 lsr r3, r2, #0x1e ldr r2, _020029FC ; =0x020ECB50 ldr r0, [r0, #0x0] ldrb r2, [r2, r3] ldr r3, [sp, #0x18] ldr r1, [sp, #0x20] lsl r2, r2, #0x2 add r2, r7, r2 lsl r2, r2, #0x10 lsl r3, r3, #0x18 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r0, [sp, #0x14] add r6, #0x15 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] mov r0, #0x10 str r0, [sp, #0xc] ldrb r2, [r4, #0x1] ldr r0, [r5, #0x4] ldr r1, [sp, #0x20] lsl r2, r2, #0x19 lsr r3, r2, #0x1e ldr r2, _020029FC ; =0x020ECB50 ldr r0, [r0, #0x0] ldrb r2, [r2, r3] ldr r3, [sp, #0x10] lsl r2, r2, #0x2 add r2, r6, r2 lsl r2, r2, #0x10 lsl r3, r3, #0x18 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r0, [r5, #0x4] ldr r1, [sp, #0x20] ldr r0, [r0, #0x0] bl FUN_02017CD0 ldrb r1, [r4, #0x1] mov r0, #0x1f bic r1, r0 mov r0, #0x8 orr r0, r1 strb r0, [r4, #0x1] ldrb r2, [r4, #0x1] mov r1, #0x60 add r0, r2, #0x0 bic r0, r1 lsl r1, r2, #0x19 lsr r1, r1, #0x1e add r1, r1, #0x1 lsl r1, r1, #0x18 lsr r1, r1, #0x18 lsl r1, r1, #0x1e lsr r1, r1, #0x19 orr r0, r1 strb r0, [r4, #0x1] _020029F4: add sp, #0x2c pop {r4-r7, pc} .balign 4 _020029F8: .word 0x02106FC4 _020029FC: .word 0x020ECB50 thumb_func_start FUN_02002A00 FUN_02002A00: ; 0x02002A00 push {r3-r7, lr} sub sp, #0x18 add r5, r0, #0x0 ldr r0, [r5, #0x4] bl FUN_0201AB08 str r0, [sp, #0x10] ldr r0, [r5, #0x4] bl FUN_0201AB14 str r0, [sp, #0x14] ldr r0, [r5, #0x4] bl FUN_0201AB18 add r6, r0, #0x0 ldr r0, [r5, #0x4] bl FUN_0201AB0C ldr r1, _02002A90 ; =0x02106FC4 add r7, r6, #0x2 ldrh r4, [r1, #0x2] ldr r1, [sp, #0x14] add r6, r1, r0 lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] mov r0, #0x2 str r0, [sp, #0x8] mov r0, #0x10 str r0, [sp, #0xc] ldr r0, [r5, #0x4] add r2, r4, #0x0 add r2, #0xa add r3, r6, #0x1 lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r0, [r0, #0x0] ldr r1, [sp, #0x10] lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] mov r0, #0x2 str r0, [sp, #0x8] mov r0, #0x10 str r0, [sp, #0xc] ldr r0, [r5, #0x4] add r4, #0xb add r3, r6, #0x2 lsl r2, r4, #0x10 lsl r3, r3, #0x18 ldr r0, [r0, #0x0] ldr r1, [sp, #0x10] lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r0, [r5, #0x4] ldr r1, [sp, #0x10] ldr r0, [r0, #0x0] bl FUN_02017CD0 add sp, #0x18 pop {r3-r7, pc} nop _02002A90: .word 0x02106FC4 thumb_func_start FUN_02002A94 FUN_02002A94: ; 0x02002A94 push {r3, lr} ldr r0, _02002ACC ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #0x3 tst r0, r1 bne _02002AB2 ldr r0, _02002AD0 ; =0x021C48F8 ldrh r0, [r0, #0x20] cmp r0, #0x0 beq _02002AC6 ldr r0, _02002AD4 ; =0x02106FC4 ldrb r0, [r0, #0x0] lsl r0, r0, #0x1b lsr r0, r0, #0x1f beq _02002AC6 _02002AB2: ldr r0, _02002AD8 ; =0x000005DC bl FUN_020054C8 ldr r1, _02002AD4 ; =0x02106FC4 mov r0, #0x80 ldrb r2, [r1, #0x0] orr r0, r2 strb r0, [r1, #0x0] mov r0, #0x1 pop {r3, pc} _02002AC6: mov r0, #0x0 pop {r3, pc} nop _02002ACC: .word 0x021C48B8 _02002AD0: .word 0x021C48F8 _02002AD4: .word 0x02106FC4 _02002AD8: .word 0x000005DC thumb_func_start FUN_02002ADC FUN_02002ADC: ; 0x02002ADC push {r4, lr} add r2, r0, #0x0 add r2, #0x1c ldrb r1, [r2, #0x2] add r4, r1, #0x0 cmp r4, #0x64 bne _02002AEE mov r0, #0x1 pop {r4, pc} _02002AEE: mov r3, #0xff bic r1, r3 add r3, r4, #0x1 lsl r3, r3, #0x18 lsr r3, r3, #0x18 lsl r3, r3, #0x18 lsr r3, r3, #0x18 orr r1, r3 strb r1, [r2, #0x2] ldr r1, _02002B14 ; =0x02106FC4 ldrb r1, [r1, #0x0] lsl r1, r1, #0x1a lsr r1, r1, #0x1f beq _02002B10 bl FUN_02002A94 pop {r4, pc} _02002B10: mov r0, #0x0 pop {r4, pc} .balign 4 _02002B14: .word 0x02106FC4 thumb_func_start FUN_02002B18 FUN_02002B18: ; 0x02002B18 push {r4, lr} ldr r1, _02002B38 ; =0x02106FC4 add r4, r0, #0x0 ldrb r1, [r1, #0x0] lsl r1, r1, #0x1d lsr r1, r1, #0x1f beq _02002B2C bl FUN_02002ADC pop {r4, pc} _02002B2C: bl FUN_02002878 add r0, r4, #0x0 bl FUN_02002A94 pop {r4, pc} .balign 4 _02002B38: .word 0x02106FC4 thumb_func_start FUN_02002B3C FUN_02002B3C: ; 0x02002B3C push {r3, lr} ldr r1, _02002B5C ; =0x02106FC4 ldrb r1, [r1, #0x0] lsl r1, r1, #0x1d lsr r1, r1, #0x1f beq _02002B52 bl FUN_02002ADC lsl r0, r0, #0x18 lsr r0, r0, #0x18 pop {r3, pc} _02002B52: bl FUN_02002A94 lsl r0, r0, #0x18 lsr r0, r0, #0x18 pop {r3, pc} .balign 4 _02002B5C: .word 0x02106FC4 thumb_func_start FUN_02002B60 FUN_02002B60: ; 0x02002B60 ldr r2, _02002B78 ; =0x02106FC4 mov r1, #0x1 ldrb r3, [r2, #0x0] lsl r0, r0, #0x18 bic r3, r1 lsr r1, r0, #0x18 mov r0, #0x1 and r0, r1 orr r0, r3 strb r0, [r2, #0x0] bx lr nop _02002B78: .word 0x02106FC4 thumb_func_start FUN_02002B7C FUN_02002B7C: ; 0x02002B7C push {r3-r4} ldr r1, _02002BB4 ; =0x02106FC4 mov r3, #0x4 ldrb r2, [r1, #0x0] mov r4, #0x1 bic r2, r3 add r3, r0, #0x0 and r3, r4 lsl r3, r3, #0x18 lsr r3, r3, #0x18 lsl r3, r3, #0x1f lsr r3, r3, #0x1d orr r2, r3 asr r0, r0, #0x1 and r0, r4 strb r2, [r1, #0x0] lsl r0, r0, #0x18 lsr r0, r0, #0x18 lsl r0, r0, #0x1f ldrb r2, [r1, #0x0] mov r3, #0x20 lsr r0, r0, #0x1a bic r2, r3 orr r0, r2 strb r0, [r1, #0x0] pop {r3-r4} bx lr nop _02002BB4: .word 0x02106FC4 thumb_func_start FUN_02002BB8 FUN_02002BB8: ; 0x02002BB8 ldr r2, _02002BD0 ; =0x02106FC4 lsl r0, r0, #0x18 ldrb r3, [r2, #0x0] lsr r0, r0, #0x18 mov r1, #0x10 lsl r0, r0, #0x1f bic r3, r1 lsr r0, r0, #0x1b orr r0, r3 strb r0, [r2, #0x0] bx lr nop _02002BD0: .word 0x02106FC4 thumb_func_start FUN_02002BD4 FUN_02002BD4: ; 0x02002BD4 ldr r0, _02002BE0 ; =0x02106FC4 ldrb r0, [r0, #0x0] lsl r0, r0, #0x19 lsr r0, r0, #0x1f bx lr nop _02002BE0: .word 0x02106FC4 thumb_func_start FUN_02002BE4 FUN_02002BE4: ; 0x02002BE4 ldr r1, _02002BF0 ; =0x02106FC4 mov r0, #0x40 ldrb r2, [r1, #0x0] bic r2, r0 strb r2, [r1, #0x0] bx lr .balign 4 _02002BF0: .word 0x02106FC4 thumb_func_start FUN_02002BF4 FUN_02002BF4: ; 0x02002BF4 ldr r0, _02002C00 ; =0x02106FC4 ldrb r0, [r0, #0x0] lsl r0, r0, #0x18 lsr r0, r0, #0x1f bx lr nop _02002C00: .word 0x02106FC4 thumb_func_start FUN_02002C04 FUN_02002C04: ; 0x02002C04 ldr r1, _02002C10 ; =0x02106FC4 mov r0, #0x80 ldrb r2, [r1, #0x0] bic r2, r0 strb r2, [r1, #0x0] bx lr .balign 4 _02002C10: .word 0x02106FC4 thumb_func_start FUN_02002C14 FUN_02002C14: ; 0x02002C14 push {r4, lr} ldr r0, _02002C44 ; =0x02106FCC ldr r4, _02002C48 ; =0x02106FC8 mov r1, #0x0 str r0, [r4, #0x0] add r2, r1, #0x0 add r0, r1, #0x0 _02002C22: ldr r3, [r4, #0x0] add r1, r1, #0x1 add r3, r3, r2 add r3, #0x84 str r0, [r3, #0x0] ldr r3, [r4, #0x0] add r3, r3, r2 add r3, #0x94 add r2, r2, #0x4 str r0, [r3, #0x0] cmp r1, #0x4 blo _02002C22 ldr r0, _02002C4C ; =0x020ECB64 bl FUN_0201BCBC pop {r4, pc} nop _02002C44: .word 0x02106FCC _02002C48: .word 0x02106FC8 _02002C4C: .word 0x020ECB64 thumb_func_start FUN_02002C50 FUN_02002C50: ; 0x02002C50 push {r3-r4, lr} sub sp, #0x4 str r1, [sp, #0x0] lsl r4, r0, #0x2 ldr r1, _02002C78 ; =0x020ECB54 ldr r3, _02002C7C ; =0x020ECB56 ldrh r1, [r1, r4] ldrh r3, [r3, r4] mov r0, #0xe mov r2, #0x1 bl FUN_02021590 ldr r1, _02002C80 ; =0x02106FC8 ldr r1, [r1, #0x0] add r1, r1, r4 add r1, #0x94 str r0, [r1, #0x0] add sp, #0x4 pop {r3-r4, pc} nop _02002C78: .word 0x020ECB54 _02002C7C: .word 0x020ECB56 _02002C80: .word 0x02106FC8 thumb_func_start FUN_02002C84 FUN_02002C84: ; 0x02002C84 push {r3-r5, lr} add r4, r0, #0x0 add r5, r1, #0x0 cmp r4, #0x4 blt _02002C92 bl ErrorHandling _02002C92: ldr r0, _02002CBC ; =0x02106FC8 lsl r4, r4, #0x2 ldr r0, [r0, #0x0] add r0, r0, r4 add r0, #0x94 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02002CA6 bl ErrorHandling _02002CA6: ldr r0, _02002CBC ; =0x02106FC8 mov r1, #0x0 ldr r0, [r0, #0x0] add r2, r5, #0x0 add r0, r0, r4 add r0, #0x94 ldr r0, [r0, #0x0] bl FUN_020215E0 pop {r3-r5, pc} nop _02002CBC: .word 0x02106FC8 thumb_func_start FUN_02002CC0 FUN_02002CC0: ; 0x02002CC0 push {r4, lr} add r4, r0, #0x0 cmp r4, #0x4 blt _02002CCC bl ErrorHandling _02002CCC: ldr r0, _02002CF4 ; =0x02106FC8 lsl r4, r4, #0x2 ldr r0, [r0, #0x0] add r0, r0, r4 add r0, #0x94 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02002CE0 bl ErrorHandling _02002CE0: ldr r0, _02002CF4 ; =0x02106FC8 mov r1, #0x1 ldr r0, [r0, #0x0] mov r2, #0x0 add r0, r0, r4 add r0, #0x94 ldr r0, [r0, #0x0] bl FUN_020215E0 pop {r4, pc} .balign 4 _02002CF4: .word 0x02106FC8 thumb_func_start FUN_02002CF8 FUN_02002CF8: ; 0x02002CF8 push {r3-r7, lr} add r4, r0, #0x0 cmp r4, #0x4 blt _02002D04 bl ErrorHandling _02002D04: ldr r0, _02002D8C ; =0x02106FC8 lsl r6, r4, #0x2 ldr r7, [r0, #0x0] add r0, r7, r6 add r0, #0x84 ldr r0, [r0, #0x0] mov r12, r0 cmp r0, #0x0 beq _02002D68 ldr r2, _02002D90 ; =0x020ECB54 mov r1, #0x0 ldrh r0, [r2, r6] add r3, r7, #0x0 _02002D1E: cmp r1, r4 beq _02002D3E ldrh r5, [r2, #0x0] cmp r5, r0 bne _02002D3E add r5, r3, #0x0 add r5, #0x94 ldr r5, [r5, #0x0] cmp r5, #0x0 beq _02002D3E lsl r0, r1, #0x2 add r2, r7, r0 add r2, #0x84 mov r0, r12 str r0, [r2, #0x0] b _02002D48 _02002D3E: add r1, r1, #0x1 add r2, r2, #0x4 add r3, r3, #0x4 cmp r1, #0x4 blo _02002D1E _02002D48: cmp r1, #0x4 bne _02002D68 ldr r0, _02002D8C ; =0x02106FC8 lsl r5, r4, #0x2 ldr r0, [r0, #0x0] add r0, r0, r5 add r0, #0x84 ldr r0, [r0, #0x0] bl FUN_02016A18 ldr r0, _02002D8C ; =0x02106FC8 mov r1, #0x0 ldr r0, [r0, #0x0] add r0, r0, r5 add r0, #0x84 str r1, [r0, #0x0] _02002D68: ldr r0, _02002D8C ; =0x02106FC8 ldr r0, [r0, #0x0] add r0, r0, r6 add r0, #0x94 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _02002D88 bl FUN_020215C8 ldr r0, _02002D8C ; =0x02106FC8 mov r2, #0x0 ldr r1, [r0, #0x0] lsl r0, r4, #0x2 add r0, r1, r0 add r0, #0x94 str r2, [r0, #0x0] _02002D88: pop {r3-r7, pc} nop _02002D8C: .word 0x02106FC8 _02002D90: .word 0x020ECB54 thumb_func_start FUN_02002D94 FUN_02002D94: ; 0x02002D94 push {r3, lr} ldr r2, _02002DAC ; =0x02106FC8 lsl r0, r0, #0x2 ldr r2, [r2, #0x0] add r0, r2, r0 add r0, #0x94 ldr r0, [r0, #0x0] bl FUN_02021750 ldr r0, _02002DAC ; =0x02106FC8 ldr r0, [r0, #0x0] pop {r3, pc} .balign 4 _02002DAC: .word 0x02106FC8 thumb_func_start FUN_02002DB0 FUN_02002DB0: ; 0x02002DB0 push {r4, lr} add r3, r1, #0x0 add r3, #0x1c ldrb r2, [r3, #0x1] lsl r2, r2, #0x18 lsr r2, r2, #0x1f bne _02002DD8 ldrb r2, [r3, #0x0] mov r4, #0xf lsl r0, r0, #0x18 bic r2, r4 lsr r4, r0, #0x18 mov r0, #0xf and r0, r4 orr r0, r2 strb r0, [r3, #0x0] ldrb r2, [r3, #0x1] mov r0, #0x80 orr r0, r2 strb r0, [r3, #0x1] _02002DD8: add r0, r1, #0x0 bl FUN_020023C0 pop {r4, pc} thumb_func_start FUN_02002DE0 FUN_02002DE0: ; 0x02002DE0 push {r4-r6, lr} lsl r4, r0, #0x2 ldr r0, _02002E10 ; =0x02106FC8 add r5, r1, #0x0 ldr r0, [r0, #0x0] add r6, r2, #0x0 add r0, r0, r4 add r0, #0x94 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02002DFA bl ErrorHandling _02002DFA: ldr r0, _02002E10 ; =0x02106FC8 add r1, r5, #0x0 ldr r0, [r0, #0x0] add r2, r6, #0x0 add r0, r0, r4 add r0, #0x94 ldr r0, [r0, #0x0] bl FUN_020218D8 pop {r4-r6, pc} nop _02002E10: .word 0x02106FC8 thumb_func_start FUN_02002E14 FUN_02002E14: ; 0x02002E14 push {r4-r6, lr} lsl r4, r0, #0x2 ldr r0, _02002E48 ; =0x02106FC8 add r5, r1, #0x0 ldr r0, [r0, #0x0] add r6, r2, #0x0 add r0, r0, r4 add r0, #0x94 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02002E2E bl ErrorHandling _02002E2E: add r0, r5, #0x0 bl FUN_02021F2C add r1, r0, #0x0 ldr r0, _02002E48 ; =0x02106FC8 add r2, r6, #0x0 ldr r0, [r0, #0x0] add r0, r0, r4 add r0, #0x94 ldr r0, [r0, #0x0] bl FUN_020218D8 pop {r4-r6, pc} .balign 4 _02002E48: .word 0x02106FC8 thumb_func_start FUN_02002E4C FUN_02002E4C: ; 0x02002E4C mov r2, #0x0 cmp r1, #0x7 bhi _02002EAC add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02002E5E: ; jump table (using 16-bit offset) .short _02002E6E - _02002E5E - 2; case 0 .short _02002E76 - _02002E5E - 2; case 1 .short _02002E7E - _02002E5E - 2; case 2 .short _02002E86 - _02002E5E - 2; case 3 .short _02002E8E - _02002E5E - 2; case 4 .short _02002E96 - _02002E5E - 2; case 5 .short _02002E9E - _02002E5E - 2; case 6 .short _02002EA6 - _02002E5E - 2; case 7 _02002E6E: lsl r1, r0, #0x3 ldr r0, _02002EB0 ; =0x020ECB64 ldrb r2, [r0, r1] b _02002EAC _02002E76: lsl r1, r0, #0x3 ldr r0, _02002EB4 ; =0x020ECB65 ldrb r2, [r0, r1] b _02002EAC _02002E7E: lsl r1, r0, #0x3 ldr r0, _02002EB8 ; =0x020ECB66 ldrb r2, [r0, r1] b _02002EAC _02002E86: lsl r1, r0, #0x3 ldr r0, _02002EBC ; =0x020ECB67 ldrb r2, [r0, r1] b _02002EAC _02002E8E: lsl r1, r0, #0x3 ldr r0, _02002EC0 ; =0x020ECB68 ldrb r2, [r0, r1] b _02002EAC _02002E96: lsl r1, r0, #0x3 ldr r0, _02002EC4 ; =0x020ECB69 ldrb r2, [r0, r1] b _02002EAC _02002E9E: lsl r1, r0, #0x3 ldr r0, _02002EC8 ; =0x020ECB6A ldrb r2, [r0, r1] b _02002EAC _02002EA6: lsl r1, r0, #0x3 ldr r0, _02002ECC ; =0x020ECB6B ldrb r2, [r0, r1] _02002EAC: add r0, r2, #0x0 bx lr .balign 4 _02002EB0: .word 0x020ECB64 _02002EB4: .word 0x020ECB65 _02002EB8: .word 0x020ECB66 _02002EBC: .word 0x020ECB67 _02002EC0: .word 0x020ECB68 _02002EC4: .word 0x020ECB69 _02002EC8: .word 0x020ECB6A _02002ECC: .word 0x020ECB6B thumb_func_start FUN_02002ED0 FUN_02002ED0: ; 0x02002ED0 push {r4, lr} sub sp, #0x8 add r4, r0, #0x0 mov r0, #0x20 str r0, [sp, #0x0] add r3, r1, #0x0 str r2, [sp, #0x4] mov r0, #0xe mov r1, #0x6 add r2, r4, #0x0 bl FUN_02006930 add sp, #0x8 pop {r4, pc} thumb_func_start FUN_02002EEC FUN_02002EEC: ; 0x02002EEC push {r4, lr} sub sp, #0x8 add r4, r0, #0x0 mov r0, #0x20 str r0, [sp, #0x0] add r3, r1, #0x0 str r2, [sp, #0x4] mov r0, #0xe mov r1, #0x7 add r2, r4, #0x0 bl FUN_02006930 add sp, #0x8 pop {r4, pc} thumb_func_start FUN_02002F08 FUN_02002F08: ; 0x02002F08 push {r4-r6, lr} lsl r4, r0, #0x2 ldr r0, _02002F3C ; =0x02106FC8 add r5, r1, #0x0 ldr r0, [r0, #0x0] add r6, r2, #0x0 add r0, r0, r4 add r0, #0x94 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02002F22 bl ErrorHandling _02002F22: add r0, r5, #0x0 bl FUN_02021F2C add r1, r0, #0x0 ldr r0, _02002F3C ; =0x02106FC8 add r2, r6, #0x0 ldr r0, [r0, #0x0] add r0, r0, r4 add r0, #0x94 ldr r0, [r0, #0x0] bl FUN_02021934 pop {r4-r6, pc} .balign 4 _02002F3C: .word 0x02106FC8 thumb_func_start FUN_02002F40 FUN_02002F40: ; 0x02002F40 push {r4, lr} add r4, r3, #0x0 bl FUN_02002E14 cmp r0, r4 bhs _02002F52 sub r0, r4, r0 lsr r0, r0, #0x1 pop {r4, pc} _02002F52: mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02002F58 FUN_02002F58: ; 0x02002F58 push {r3-r7, lr} ldrh r2, [r0, #0x0] ldr r1, _02002F8C ; =0x0000FFFF mov r5, #0x1 cmp r2, r1 beq _02002F88 mov r6, #0xe lsl r6, r6, #0xc add r7, r1, #0x0 sub r4, r1, #0x1 _02002F6C: cmp r2, r4 bne _02002F76 bl FUN_0201B8B8 b _02002F82 _02002F76: cmp r2, r6 bne _02002F80 add r5, r5, #0x1 add r0, r0, #0x2 b _02002F82 _02002F80: add r0, r0, #0x2 _02002F82: ldrh r2, [r0, #0x0] cmp r2, r7 bne _02002F6C _02002F88: add r0, r5, #0x0 pop {r3-r7, pc} .balign 4 _02002F8C: .word 0x0000FFFF thumb_func_start FUN_02002F90 FUN_02002F90: ; 0x02002F90 push {r3, lr} bl FUN_02021F2C bl FUN_02002F58 pop {r3, pc} thumb_func_start FUN_02002F9C FUN_02002F9C: ; 0x02002F9C push {r3-r5, lr} lsl r4, r0, #0x2 ldr r0, _02002FCC ; =0x02106FC8 add r5, r1, #0x0 ldr r0, [r0, #0x0] add r0, r0, r4 add r0, #0x94 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02002FB4 bl ErrorHandling _02002FB4: add r0, r5, #0x0 bl FUN_02021F2C add r1, r0, #0x0 ldr r0, _02002FCC ; =0x02106FC8 ldr r0, [r0, #0x0] add r0, r0, r4 add r0, #0x94 ldr r0, [r0, #0x0] bl FUN_0202199C pop {r3-r5, pc} .balign 4 _02002FCC: .word 0x02106FC8 thumb_func_start FUN_02002FD0 FUN_02002FD0: ; 0x02002FD0 push {r4, lr} mov r1, #0x12 lsl r1, r1, #0x4 bl FUN_02016998 mov r2, #0x12 mov r1, #0x0 lsl r2, r2, #0x4 add r4, r0, #0x0 blx MI_CpuFill8 add r0, r4, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02002FEC FUN_02002FEC: ; 0x02002FEC ldr r3, _02002FF0 ; =FUN_02016A18 bx r3 .balign 4 _02002FF0: .word FUN_02016A18 thumb_func_start FUN_02002FF4 FUN_02002FF4: ; 0x02002FF4 push {r3-r4} mov r4, #0x14 mul r4, r1 str r2, [r0, r4] add r1, r0, r4 ldr r0, [sp, #0x8] str r3, [r1, #0x4] str r0, [r1, #0x8] pop {r3-r4} bx lr thumb_func_start FUN_02003008 FUN_02003008: ; 0x02003008 push {r3-r7, lr} sub sp, #0x8 add r4, r2, #0x0 add r5, r0, #0x0 add r6, r1, #0x0 str r3, [sp, #0x4] add r0, r3, #0x0 add r1, r4, #0x0 bl FUN_02016998 add r7, r0, #0x0 ldr r0, [sp, #0x4] add r1, r4, #0x0 bl FUN_02016998 add r3, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 str r4, [sp, #0x0] bl FUN_02002FF4 add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_02003038 FUN_02003038: ; 0x02003038 push {r3-r5, lr} add r4, r0, #0x0 mov r0, #0x14 add r5, r1, #0x0 mul r5, r0 ldr r0, [r4, r5] bl FUN_02016A18 add r0, r4, r5 ldr r0, [r0, #0x4] bl FUN_02016A18 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02003054 FUN_02003054: ; 0x02003054 push {r3-r7, lr} add r5, r0, #0x0 add r0, sp, #0x8 ldrh r7, [r0, #0x10] add r6, r2, #0x0 mov r0, #0x14 mul r6, r0 str r1, [sp, #0x0] add r0, r1, #0x0 ldr r1, [r5, r6] lsl r4, r3, #0x1 add r1, r1, r4 add r2, r7, #0x0 blx MIi_CpuCopy16 add r1, r5, r6 ldr r1, [r1, #0x4] ldr r0, [sp, #0x0] add r1, r1, r4 add r2, r7, #0x0 blx MIi_CpuCopy16 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02003084 FUN_02003084: ; 0x02003084 push {r4-r6, lr} sub sp, #0x8 add r5, r0, #0x0 add r0, r1, #0x0 add r1, r2, #0x0 add r2, sp, #0x4 ldr r4, [sp, #0x1c] bl FUN_02006C08 add r6, r0, #0x0 bne _0200309E bl ErrorHandling _0200309E: cmp r4, #0x0 bne _020030A6 ldr r0, [sp, #0x4] ldr r4, [r0, #0x8] _020030A6: add r0, sp, #0x8 ldrh r0, [r0, #0x18] ldr r2, [sp, #0x18] mov r1, #0x14 mul r1, r2 add r1, r5, r1 lsl r0, r0, #0x1 ldr r1, [r1, #0x8] add r0, r4, r0 cmp r0, r1 bls _020030C0 bl ErrorHandling _020030C0: lsl r0, r4, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x0] ldr r1, [sp, #0x4] add r3, sp, #0x8 ldr r2, [r1, #0xc] ldrh r1, [r3, #0x1c] ldrh r3, [r3, #0x18] add r0, r5, #0x0 lsl r1, r1, #0x1 add r1, r2, r1 ldr r2, [sp, #0x18] bl FUN_02003054 add r0, r6, #0x0 bl FUN_02016A18 add sp, #0x8 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_020030E8 FUN_020030E8: ; 0x020030E8 push {r4, lr} sub sp, #0x10 ldr r4, [sp, #0x18] str r4, [sp, #0x0] ldr r4, [sp, #0x1c] str r4, [sp, #0x4] add r4, sp, #0x8 ldrh r4, [r4, #0x18] str r4, [sp, #0x8] mov r4, #0x0 str r4, [sp, #0xc] bl FUN_02003084 add sp, #0x10 pop {r4, pc} .balign 4 thumb_func_start FUN_02003108 FUN_02003108: ; 0x02003108 push {r3-r7, lr} add r4, r1, #0x0 mov r1, #0x14 add r6, r0, #0x0 mul r1, r4 add r5, r2, #0x0 add r1, r6, r1 add r7, r3, #0x0 lsl r0, r5, #0x1 ldr r1, [r1, #0x8] add r0, r7, r0 cmp r0, r1 bls _02003126 bl ErrorHandling _02003126: cmp r4, #0x3 bhi _0200315E add r0, r4, r4 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02003136: ; jump table (using 16-bit offset) .short _0200313E - _02003136 - 2; case 0 .short _02003146 - _02003136 - 2; case 1 .short _0200314E - _02003136 - 2; case 2 .short _02003156 - _02003136 - 2; case 3 _0200313E: bl FUN_020222E8 add r1, r0, #0x0 b _02003164 _02003146: bl FUN_020222F8 add r1, r0, #0x0 b _02003164 _0200314E: bl FUN_02022308 add r1, r0, #0x0 b _02003164 _02003156: bl FUN_02022310 add r1, r0, #0x0 b _02003164 _0200315E: bl ErrorHandling pop {r3-r7, pc} _02003164: lsl r0, r7, #0x10 lsr r0, r0, #0x10 lsl r2, r5, #0x1 str r0, [sp, #0x0] add r1, r1, r2 add r0, r6, #0x0 add r2, r4, #0x0 add r3, r5, #0x0 bl FUN_02003054 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200317C FUN_0200317C: ; 0x0200317C push {r3-r5, lr} add r4, r2, #0x0 add r5, r3, #0x0 add r2, sp, #0x0 add r3, r4, #0x0 bl FUN_02006C08 add r4, r0, #0x0 bne _02003192 bl ErrorHandling _02003192: cmp r5, #0x0 bne _0200319A ldr r0, [sp, #0x0] ldr r5, [r0, #0x8] _0200319A: ldr r0, [sp, #0x0] add r2, r5, #0x0 ldr r1, [r0, #0xc] add r0, sp, #0x0 ldrh r0, [r0, #0x10] lsl r0, r0, #0x1 add r0, r1, r0 ldr r1, [sp, #0x14] blx MIi_CpuCopy16 add r0, r4, #0x0 bl FUN_02016A18 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020031B8 FUN_020031B8: ; 0x020031B8 push {r3-r7, lr} sub sp, #0x8 add r4, sp, #0x10 add r5, r0, #0x0 add r0, r1, #0x0 ldrh r1, [r4, #0x14] add r6, r3, #0x0 str r1, [sp, #0x0] ldrh r1, [r4, #0x10] lsl r4, r2, #0x1 ldr r2, [sp, #0x0] lsl r7, r1, #0x1 mov r1, #0x14 mul r6, r1 mul r1, r0 ldr r0, [r5, r1] str r1, [sp, #0x4] ldr r1, [r5, r6] add r0, r0, r4 add r1, r1, r7 blx MIi_CpuCopy16 ldr r0, [sp, #0x4] add r1, r5, r6 ldr r0, [r5, r0] ldr r1, [r1, #0x4] ldr r2, [sp, #0x0] add r0, r0, r4 add r1, r1, r7 blx MIi_CpuCopy16 add sp, #0x8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020031FC FUN_020031FC: ; 0x020031FC mov r2, #0x14 mul r2, r1 ldr r0, [r0, r2] bx lr thumb_func_start FUN_02003204 FUN_02003204: ; 0x02003204 mov r2, #0x14 mul r2, r1 add r0, r0, r2 ldr r0, [r0, #0x4] bx lr .balign 4 thumb_func_start FUN_02003210 FUN_02003210: ; 0x02003210 push {r0-r3} push {r3-r7, lr} sub sp, #0x10 str r3, [sp, #0x8] add r5, r0, #0x0 ldr r0, [sp, #0x38] mov r6, #0x0 str r0, [sp, #0x38] ldr r0, [sp, #0x3c] add r7, r1, #0x0 str r0, [sp, #0x3c] ldr r0, [sp, #0x40] add r4, r6, #0x0 str r0, [sp, #0x40] add r0, sp, #0x28 ldrh r0, [r0, #0x8] str r0, [sp, #0xc] _02003232: add r0, r7, #0x0 add r1, r4, #0x0 bl FUN_02003314 cmp r0, #0x1 bne _020032A6 mov r0, #0x46 lsl r0, r0, #0x2 ldrh r0, [r5, r0] add r1, r4, #0x0 lsl r0, r0, #0x10 lsr r0, r0, #0x12 bl FUN_02003314 cmp r0, #0x0 bne _020032A6 mov r0, #0x14 add r6, r4, #0x0 mul r6, r0 add r0, r4, #0x0 add r1, r5, r6 add r2, sp, #0x30 bl FUN_02003368 ldr r0, [sp, #0x3c] add r1, sp, #0x28 str r0, [sp, #0x0] ldr r0, [sp, #0x40] str r0, [sp, #0x4] add r0, r5, r6 ldrh r1, [r1, #0x8] ldr r2, [sp, #0x8] ldr r3, [sp, #0x38] add r0, #0xc bl FUN_020033A4 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02003328 cmp r4, #0x4 blo _02003294 mov r2, #0x1 add r0, r5, #0x0 add r1, r4, #0x0 lsl r2, r2, #0x8 bl FUN_0200359C b _0200329E _02003294: add r0, r5, #0x0 add r1, r4, #0x0 mov r2, #0x10 bl FUN_0200359C _0200329E: ldr r1, [sp, #0xc] add r0, sp, #0x28 strh r1, [r0, #0x8] mov r6, #0x1 _020032A6: add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #0xe blo _02003232 cmp r6, #0x1 bne _02003300 mov r0, #0x46 lsl r0, r0, #0x2 ldrh r2, [r5, r0] ldr r1, _0200330C ; =0xFFFF0003 and r1, r2 lsl r2, r2, #0x10 lsr r2, r2, #0x12 orr r2, r7 lsl r2, r2, #0x12 lsr r2, r2, #0x10 orr r1, r2 strh r1, [r5, r0] add r1, r0, #0x2 ldrh r1, [r5, r1] lsl r1, r1, #0x11 lsr r1, r1, #0x1f bne _02003300 add r1, r0, #0x2 ldrh r2, [r5, r1] mov r1, #0x1 lsl r1, r1, #0xe orr r2, r1 add r1, r0, #0x2 strh r2, [r5, r1] ldrh r2, [r5, r0] mov r1, #0x3 bic r2, r1 mov r1, #0x1 orr r1, r2 strh r1, [r5, r0] mov r2, #0x0 add r0, r0, #0x4 strb r2, [r5, r0] ldr r0, _02003310 ; =FUN_02003464 add r1, r5, #0x0 sub r2, r2, #0x2 bl FUN_0200CA44 _02003300: add r0, r6, #0x0 add sp, #0x10 pop {r3-r7} pop {r3} add sp, #0x10 bx r3 .balign 4 _0200330C: .word 0xFFFF0003 _02003310: .word FUN_02003464 thumb_func_start FUN_02003314 FUN_02003314: ; 0x02003314 mov r3, #0x1 add r2, r3, #0x0 lsl r2, r1 tst r0, r2 bne _02003320 mov r3, #0x0 _02003320: lsl r0, r3, #0x18 lsr r0, r0, #0x18 bx lr .balign 4 thumb_func_start FUN_02003328 FUN_02003328: ; 0x02003328 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, _02003360 ; =0x0000011A add r4, r1, #0x0 ldrh r0, [r5, r0] lsl r0, r0, #0x12 lsr r0, r0, #0x12 bl FUN_02003314 cmp r0, #0x1 beq _0200335E ldr r3, _02003360 ; =0x0000011A ldr r1, _02003364 ; =0xFFFFC000 ldrh r2, [r5, r3] add r0, r2, #0x0 lsl r2, r2, #0x12 lsr r6, r2, #0x12 mov r2, #0x1 lsl r2, r4 orr r2, r6 lsl r2, r2, #0x10 and r0, r1 lsr r2, r2, #0x10 lsr r1, r1, #0x12 and r1, r2 orr r0, r1 strh r0, [r5, r3] _0200335E: pop {r4-r6, pc} .balign 4 _02003360: .word 0x0000011A _02003364: .word 0xFFFFC000 thumb_func_start FUN_02003368 FUN_02003368: ; 0x02003368 push {r4-r5} cmp r0, #0x4 ldr r0, [r1, #0x8] bge _02003374 lsl r0, r0, #0x13 b _02003378 _02003374: lsr r0, r0, #0x9 lsl r0, r0, #0x18 _02003378: mov r4, #0x0 lsr r0, r0, #0x18 add r5, r4, #0x0 cmp r0, #0x0 bls _02003398 mov r3, #0x1 _02003384: add r1, r3, #0x0 lsl r1, r5 add r1, r4, r1 lsl r1, r1, #0x10 lsr r4, r1, #0x10 add r1, r5, #0x1 lsl r1, r1, #0x18 lsr r5, r1, #0x18 cmp r5, r0 blo _02003384 _02003398: ldrh r0, [r2, #0x0] and r0, r4 strh r0, [r2, #0x0] pop {r4-r5} bx lr .balign 4 thumb_func_start FUN_020033A4 FUN_020033A4: ; 0x020033A4 push {r4-r6, lr} add r5, r0, #0x0 add r6, r1, #0x0 add r4, r3, #0x0 cmp r2, #0x0 bge _020033D4 add r0, r2, #0x0 blx FUN_020DE3F0 add r0, r0, #0x2 ldrh r1, [r5, #0x6] mov r2, #0xf lsl r0, r0, #0x10 bic r1, r2 lsr r2, r0, #0x10 mov r0, #0xf and r0, r2 orr r0, r1 strh r0, [r5, #0x6] ldrh r1, [r5, #0x2] mov r0, #0x3f bic r1, r0 strh r1, [r5, #0x2] b _020033F2 _020033D4: ldrh r1, [r5, #0x6] mov r0, #0xf bic r1, r0 mov r0, #0x2 orr r0, r1 strh r0, [r5, #0x6] ldrh r0, [r5, #0x2] mov r1, #0x3f bic r0, r1 lsl r1, r2, #0x10 lsr r2, r1, #0x10 mov r1, #0x3f and r1, r2 orr r0, r1 strh r0, [r5, #0x2] _020033F2: strh r6, [r5, #0x0] ldrh r1, [r5, #0x2] ldr r0, _02003454 ; =0xFFFFF83F add r3, sp, #0x0 and r1, r0 lsl r0, r4, #0x1b lsr r0, r0, #0x15 orr r0, r1 strh r0, [r5, #0x2] ldrh r1, [r5, #0x2] ldr r0, _02003458 ; =0xFFFF07FF add r2, r1, #0x0 ldrb r1, [r3, #0x10] and r2, r0 lsl r0, r1, #0x1b lsr r0, r0, #0x10 orr r0, r2 strh r0, [r5, #0x2] ldrh r0, [r5, #0x4] ldr r2, _0200345C ; =0xFFFF8000 ldrh r6, [r3, #0x14] lsr r3, r2, #0x11 and r0, r2 and r3, r6 orr r0, r3 strh r0, [r5, #0x4] ldrh r3, [r5, #0x6] ldr r0, _02003460 ; =0xFFFFFC0F and r0, r3 ldrh r3, [r5, #0x2] lsl r3, r3, #0x1a lsr r3, r3, #0x1a lsl r3, r3, #0x1a lsr r3, r3, #0x16 orr r0, r3 strh r0, [r5, #0x6] cmp r4, r1 ldrh r1, [r5, #0x4] bhs _02003448 sub r0, r2, #0x1 and r0, r1 strh r0, [r5, #0x4] pop {r4-r6, pc} _02003448: mov r0, #0x2 lsl r0, r0, #0xe orr r0, r1 strh r0, [r5, #0x4] pop {r4-r6, pc} nop _02003454: .word 0xFFFFF83F _02003458: .word 0xFFFF07FF _0200345C: .word 0xFFFF8000 _02003460: .word 0xFFFFFC0F thumb_func_start FUN_02003464 FUN_02003464: ; 0x02003464 push {r4-r6, lr} add r4, r1, #0x0 mov r1, #0x47 lsl r1, r1, #0x2 ldrb r2, [r4, r1] add r5, r0, #0x0 cmp r2, #0x1 bne _020034A4 mov r2, #0x0 strb r2, [r4, r1] sub r2, r1, #0x2 ldrh r3, [r4, r2] ldr r2, _020034F4 ; =0xFFFFC000 add r5, r3, #0x0 and r5, r2 sub r3, r1, #0x2 strh r5, [r4, r3] sub r3, r1, #0x4 ldrh r5, [r4, r3] ldr r3, _020034F8 ; =0xFFFF0003 sub r2, r2, #0x1 and r5, r3 sub r3, r1, #0x4 strh r5, [r4, r3] sub r3, r1, #0x2 ldrh r3, [r4, r3] sub r1, r1, #0x2 and r2, r3 strh r2, [r4, r1] bl FUN_0200CAB4 pop {r4-r6, pc} _020034A4: sub r0, r1, #0x4 ldrh r2, [r4, r0] lsl r0, r2, #0x1e lsr r0, r0, #0x1e cmp r0, #0x1 bne _020034F0 sub r0, r1, #0x2 ldrh r0, [r4, r0] ldr r3, _020034F4 ; =0xFFFFC000 lsl r2, r2, #0x10 lsr r6, r2, #0x12 lsr r2, r3, #0x12 and r0, r3 and r2, r6 orr r2, r0 sub r0, r1, #0x2 strh r2, [r4, r0] add r0, r4, #0x0 bl FUN_02003500 add r0, r4, #0x0 bl FUN_02003520 mov r1, #0x46 lsl r1, r1, #0x2 ldrh r0, [r4, r1] lsl r0, r0, #0x10 lsr r0, r0, #0x12 bne _020034F0 add r0, r1, #0x2 ldrh r2, [r4, r0] ldr r0, _020034FC ; =0xFFFFBFFF and r2, r0 add r0, r1, #0x2 strh r2, [r4, r0] add r0, r5, #0x0 bl FUN_0200CAB4 _020034F0: pop {r4-r6, pc} nop _020034F4: .word 0xFFFFC000 _020034F8: .word 0xFFFF0003 _020034FC: .word 0xFFFFBFFF thumb_func_start FUN_02003500 FUN_02003500: ; 0x02003500 push {r4-r6, lr} add r5, r0, #0x0 mov r4, #0x0 mov r6, #0x10 _02003508: add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_02003540 add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #0x4 blo _02003508 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02003520 FUN_02003520: ; 0x02003520 push {r4-r6, lr} mov r4, #0x4 add r6, r4, #0x0 add r5, r0, #0x0 add r6, #0xfc _0200352A: add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_02003540 add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #0xe blo _0200352A pop {r4-r6, pc} thumb_func_start FUN_02003540 FUN_02003540: ; 0x02003540 push {r4-r6, lr} add r5, r0, #0x0 mov r0, #0x46 lsl r0, r0, #0x2 ldrh r0, [r5, r0] add r4, r1, #0x0 add r6, r2, #0x0 lsl r0, r0, #0x10 lsr r0, r0, #0x12 bl FUN_02003314 cmp r0, #0x0 beq _02003594 mov r0, #0x14 mul r0, r4 add r2, r5, r0 ldrh r0, [r2, #0x12] ldrh r3, [r2, #0xe] lsl r1, r0, #0x16 lsl r3, r3, #0x1a lsr r1, r1, #0x1a lsr r3, r3, #0x1a cmp r1, r3 bhs _02003584 ldr r3, _02003598 ; =0xFFFFFC0F and r3, r0 add r0, r1, #0x1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 lsl r0, r0, #0x1a lsr r0, r0, #0x16 orr r0, r3 strh r0, [r2, #0x12] pop {r4-r6, pc} _02003584: ldr r1, _02003598 ; =0xFFFFFC0F and r0, r1 strh r0, [r2, #0x12] add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_0200359C _02003594: pop {r4-r6, pc} nop _02003598: .word 0xFFFFFC0F thumb_func_start FUN_0200359C FUN_0200359C: ; 0x0200359C push {r4-r7, lr} sub sp, #0xc str r1, [sp, #0x4] str r0, [sp, #0x0] ldr r0, [sp, #0x4] mov r1, #0x14 mul r1, r0 ldr r0, [sp, #0x0] mov r6, #0x0 add r5, r0, r1 add r0, r5, #0x0 str r0, [sp, #0x8] add r0, #0xc add r7, r2, #0x0 add r4, r6, #0x0 str r0, [sp, #0x8] _020035BC: ldrh r0, [r5, #0xc] lsl r1, r6, #0x10 lsr r1, r1, #0x10 bl FUN_02003314 cmp r0, #0x0 beq _020035DC ldr r0, [r5, #0x0] lsl r1, r4, #0x1 ldr r2, [r5, #0x4] add r0, r0, r1 add r1, r2, r1 ldr r2, [sp, #0x8] add r3, r7, #0x0 bl FUN_020035F8 _020035DC: add r6, r6, #0x1 add r4, r4, r7 cmp r6, #0x10 blo _020035BC ldr r1, [sp, #0x4] add r5, #0xc lsl r1, r1, #0x18 ldr r0, [sp, #0x0] lsr r1, r1, #0x18 add r2, r5, #0x0 bl FUN_02003684 add sp, #0xc pop {r4-r7, pc} thumb_func_start FUN_020035F8 FUN_020035F8: ; 0x020035F8 push {r3-r7, lr} sub sp, #0x8 str r0, [sp, #0x4] mov r0, #0x0 add r6, r1, #0x0 mov r12, r0 str r2, [sp, #0x0] mov lr, r3 add r0, r3, #0x0 beq _02003680 _0200360C: ldr r0, [sp, #0x4] mov r1, #0x1f ldrh r0, [r0, #0x0] asr r2, r0, #0x5 add r5, r2, #0x0 and r5, r1 ldr r1, [sp, #0x0] asr r4, r0, #0xa ldrh r1, [r1, #0x4] lsl r1, r1, #0x11 lsr r3, r1, #0x11 ldr r1, [sp, #0x0] ldrh r1, [r1, #0x2] lsl r1, r1, #0x15 lsr r2, r1, #0x1b mov r1, #0x1f and r1, r4 mov r4, #0x1f and r0, r4 and r4, r3 sub r4, r4, r0 mul r4, r2 asr r4, r4, #0x4 add r0, r0, r4 lsl r0, r0, #0x18 lsr r7, r0, #0x18 asr r4, r3, #0xa mov r0, #0x1f and r0, r4 sub r0, r0, r1 mul r0, r2 asr r0, r0, #0x4 add r0, r1, r0 lsl r0, r0, #0x18 lsr r0, r0, #0x18 asr r3, r3, #0x5 mov r1, #0x1f and r1, r3 sub r1, r1, r5 mul r1, r2 asr r1, r1, #0x4 add r1, r5, r1 lsl r1, r1, #0x18 lsl r0, r0, #0xa lsr r1, r1, #0x13 orr r0, r1 orr r0, r7 strh r0, [r6, #0x0] ldr r0, [sp, #0x4] add r6, r6, #0x2 add r0, r0, #0x2 str r0, [sp, #0x4] mov r0, r12 add r1, r0, #0x1 mov r0, lr mov r12, r1 cmp r1, r0 blo _0200360C _02003680: add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_02003684 FUN_02003684: ; 0x02003684 push {r4-r5} ldrh r4, [r2, #0x2] lsl r3, r4, #0x10 lsl r4, r4, #0x15 lsr r3, r3, #0x1b lsr r4, r4, #0x1b cmp r4, r3 bne _020036BE mov r3, #0x46 lsl r3, r3, #0x2 ldrh r4, [r0, r3] mov r2, #0x1 lsl r2, r1 lsl r1, r4, #0x10 lsr r5, r1, #0x12 add r1, r5, #0x0 tst r1, r2 beq _0200371E eor r2, r5 lsl r2, r2, #0x10 ldr r1, _02003724 ; =0xFFFF0003 lsr r2, r2, #0x10 lsl r2, r2, #0x12 and r1, r4 lsr r2, r2, #0x10 orr r1, r2 strh r1, [r0, r3] pop {r4-r5} bx lr _020036BE: ldrh r0, [r2, #0x4] lsl r0, r0, #0x10 lsr r0, r0, #0x1f bne _020036F4 lsl r0, r4, #0x10 asr r1, r0, #0x10 ldrh r0, [r2, #0x6] lsl r0, r0, #0x1c lsr r0, r0, #0x1c add r0, r1, r0 lsl r0, r0, #0x10 asr r4, r0, #0x10 cmp r4, r3 ble _020036DE lsl r0, r3, #0x10 asr r4, r0, #0x10 _020036DE: ldrh r1, [r2, #0x2] ldr r0, _02003728 ; =0xFFFFF83F and r1, r0 lsl r0, r4, #0x10 lsr r0, r0, #0x10 lsl r0, r0, #0x1b lsr r0, r0, #0x15 orr r0, r1 strh r0, [r2, #0x2] pop {r4-r5} bx lr _020036F4: lsl r0, r4, #0x10 asr r1, r0, #0x10 ldrh r0, [r2, #0x6] lsl r0, r0, #0x1c lsr r0, r0, #0x1c sub r0, r1, r0 lsl r0, r0, #0x10 asr r4, r0, #0x10 cmp r4, r3 bge _0200370C lsl r0, r3, #0x10 asr r4, r0, #0x10 _0200370C: ldrh r1, [r2, #0x2] ldr r0, _02003728 ; =0xFFFFF83F and r1, r0 lsl r0, r4, #0x10 lsr r0, r0, #0x10 lsl r0, r0, #0x1b lsr r0, r0, #0x15 orr r0, r1 strh r0, [r2, #0x2] _0200371E: pop {r4-r5} bx lr nop _02003724: .word 0xFFFF0003 _02003728: .word 0xFFFFF83F thumb_func_start FUN_0200372C FUN_0200372C: ; 0x0200372C push {r3-r7, lr} add r6, r0, #0x0 ldr r0, _020038DC ; =0x0000011A ldrh r1, [r6, r0] lsl r1, r1, #0x10 lsr r1, r1, #0x1f bne _02003748 sub r0, r0, #0x2 ldrh r0, [r6, r0] lsl r0, r0, #0x1e lsr r0, r0, #0x1e cmp r0, #0x1 beq _02003748 b _020038DA _02003748: mov r7, #0x2 mov r5, #0x0 add r4, r6, #0x0 lsl r7, r7, #0xc _02003750: ldr r0, _020038DC ; =0x0000011A ldrh r1, [r6, r0] lsl r0, r1, #0x10 lsr r0, r0, #0x1f bne _02003770 ldr r0, [r4, #0x4] cmp r0, #0x0 beq _0200377C lsl r0, r1, #0x12 lsl r1, r5, #0x10 lsr r0, r0, #0x12 lsr r1, r1, #0x10 bl FUN_02003314 cmp r0, #0x0 beq _0200377C _02003770: ldr r0, [r4, #0x4] ldr r1, [r4, #0x8] blx DC_FlushRange cmp r5, #0xd bls _0200377E _0200377C: b _020038A4 _0200377E: add r0, r5, r5 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0200378A: ; jump table (using 16-bit offset) .short _020037A6 - _0200378A - 2; case 0 .short _020037B2 - _0200378A - 2; case 1 .short _020037BE - _0200378A - 2; case 2 .short _020037CA - _0200378A - 2; case 3 .short _020037D6 - _0200378A - 2; case 4 .short _020037EA - _0200378A - 2; case 5 .short _020037FE - _0200378A - 2; case 6 .short _02003814 - _0200378A - 2; case 7 .short _0200382A - _0200378A - 2; case 8 .short _0200383E - _0200378A - 2; case 9 .short _02003852 - _0200378A - 2; case 10 .short _02003868 - _0200378A - 2; case 11 .short _0200387E - _0200378A - 2; case 12 .short _02003892 - _0200378A - 2; case 13 _020037A6: ldr r0, [r4, #0x4] ldr r2, [r4, #0x8] mov r1, #0x0 blx FUN_020C9550 b _020038A4 _020037B2: ldr r0, [r4, #0x4] ldr r2, [r4, #0x8] mov r1, #0x0 blx FUN_020C94E8 b _020038A4 _020037BE: ldr r0, [r4, #0x4] ldr r2, [r4, #0x8] mov r1, #0x0 blx FUN_020C9480 b _020038A4 _020037CA: ldr r0, [r4, #0x4] ldr r2, [r4, #0x8] mov r1, #0x0 blx FUN_020C9418 b _020038A4 _020037D6: blx FUN_020C8B10 ldr r0, [r4, #0x4] ldr r2, [r4, #0x8] mov r1, #0x0 blx FUN_020C8A90 blx FUN_020C8A2C b _020038A4 _020037EA: blx FUN_020C8B10 ldr r0, [r4, #0x4] ldr r2, [r4, #0x8] add r1, r7, #0x0 blx FUN_020C8A90 blx FUN_020C8A2C b _020038A4 _020037FE: blx FUN_020C8B10 mov r1, #0x1 ldr r0, [r4, #0x4] ldr r2, [r4, #0x8] lsl r1, r1, #0xe blx FUN_020C8A90 blx FUN_020C8A2C b _020038A4 _02003814: blx FUN_020C8B10 mov r1, #0x6 ldr r0, [r4, #0x4] ldr r2, [r4, #0x8] lsl r1, r1, #0xc blx FUN_020C8A90 blx FUN_020C8A2C b _020038A4 _0200382A: blx FUN_020C88CC ldr r0, [r4, #0x4] ldr r2, [r4, #0x8] mov r1, #0x0 blx FUN_020C8858 blx FUN_020C880C b _020038A4 _0200383E: blx FUN_020C88CC ldr r0, [r4, #0x4] ldr r2, [r4, #0x8] add r1, r7, #0x0 blx FUN_020C8858 blx FUN_020C880C b _020038A4 _02003852: blx FUN_020C88CC mov r1, #0x1 ldr r0, [r4, #0x4] ldr r2, [r4, #0x8] lsl r1, r1, #0xe blx FUN_020C8858 blx FUN_020C880C b _020038A4 _02003868: blx FUN_020C88CC mov r1, #0x6 ldr r0, [r4, #0x4] ldr r2, [r4, #0x8] lsl r1, r1, #0xc blx FUN_020C8858 blx FUN_020C880C b _020038A4 _0200387E: blx FUN_020C89BC ldr r0, [r4, #0x4] ldr r2, [r4, #0x8] mov r1, #0x0 blx FUN_020C8948 blx FUN_020C88F0 b _020038A4 _02003892: blx FUN_020C87E8 ldr r0, [r4, #0x4] ldr r2, [r4, #0x8] mov r1, #0x0 blx FUN_020C8774 blx FUN_020C8728 _020038A4: add r5, r5, #0x1 add r4, #0x14 cmp r5, #0xe bge _020038AE b _02003750 _020038AE: ldr r3, _020038DC ; =0x0000011A ldr r1, _020038E0 ; =0xFFFFC000 sub r2, r3, #0x2 ldrh r2, [r6, r2] ldrh r0, [r6, r3] lsl r2, r2, #0x10 and r0, r1 lsr r2, r2, #0x12 lsr r1, r1, #0x12 and r1, r2 orr r0, r1 strh r0, [r6, r3] ldrh r0, [r6, r3] lsl r0, r0, #0x12 lsr r0, r0, #0x12 bne _020038DA sub r0, r3, #0x2 ldrh r1, [r6, r0] mov r0, #0x3 bic r1, r0 sub r0, r3, #0x2 strh r1, [r6, r0] _020038DA: pop {r3-r7, pc} .balign 4 _020038DC: .word 0x0000011A _020038E0: .word 0xFFFFC000 thumb_func_start FUN_020038E4 FUN_020038E4: ; 0x020038E4 mov r1, #0x46 lsl r1, r1, #0x2 ldrh r0, [r0, r1] lsl r0, r0, #0x10 lsr r0, r0, #0x12 bx lr thumb_func_start FUN_020038F0 FUN_020038F0: ; 0x020038F0 push {r3-r4} ldr r3, _0200390C ; =0x0000011A lsl r1, r1, #0x10 ldrh r4, [r0, r3] ldr r2, _02003910 ; =0xFFFF7FFF lsr r1, r1, #0x10 lsl r1, r1, #0x1f and r2, r4 lsr r1, r1, #0x10 orr r1, r2 strh r1, [r0, r3] pop {r3-r4} bx lr nop _0200390C: .word 0x0000011A _02003910: .word 0xFFFF7FFF thumb_func_start FUN_02003914 FUN_02003914: ; 0x02003914 push {r3-r7, lr} sub sp, #0x8 add r6, r0, #0x0 str r3, [sp, #0x0] mov r0, #0x14 add r4, r1, #0x0 mul r4, r0 add r0, sp, #0x10 ldrh r0, [r0, #0x14] add r7, r2, #0x0 ldr r5, [sp, #0x20] str r0, [sp, #0x4] lsl r1, r0, #0x1 add r0, r6, r4 ldr r0, [r0, #0x8] cmp r1, r0 bls _0200393A bl ErrorHandling _0200393A: sub r0, r7, #0x1 cmp r0, #0x1 bhi _02003952 ldr r2, [r6, r4] lsl r1, r5, #0x1 add r1, r2, r1 ldr r2, [sp, #0x4] ldr r0, [sp, #0x0] sub r2, r2, r5 lsl r2, r2, #0x1 blx MIi_CpuClear16 _02003952: cmp r7, #0x0 beq _0200395A cmp r7, #0x2 bne _0200396E _0200395A: add r1, r6, r4 ldr r2, [r1, #0x4] lsl r1, r5, #0x1 add r1, r2, r1 ldr r2, [sp, #0x4] ldr r0, [sp, #0x0] sub r2, r2, r5 lsl r2, r2, #0x1 blx MIi_CpuClear16 _0200396E: add sp, #0x8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02003974 FUN_02003974: ; 0x02003974 push {r4-r7, lr} sub sp, #0xc str r0, [sp, #0x0] add r0, sp, #0x10 ldrh r0, [r0, #0x10] str r1, [sp, #0x4] add r7, r2, #0x0 lsl r1, r0, #0x1b lsr r1, r1, #0x1b mov r12, r1 lsl r1, r0, #0x16 lsl r0, r0, #0x11 lsr r1, r1, #0x1b lsr r0, r0, #0x1b mov r2, #0x0 mov lr, r1 str r0, [sp, #0x8] cmp r7, #0x0 bls _020039E2 _0200399A: ldr r0, [sp, #0x0] lsl r6, r2, #0x1 ldrh r4, [r0, r6] lsl r0, r4, #0x1b lsr r1, r0, #0x1b lsl r0, r4, #0x16 lsl r4, r4, #0x11 lsr r5, r4, #0x1b ldr r4, [sp, #0x8] lsr r0, r0, #0x1b sub r4, r4, r5 mul r4, r3 asr r4, r4, #0x4 add r4, r5, r4 lsl r5, r4, #0xa mov r4, r12 sub r4, r4, r1 mul r4, r3 asr r4, r4, #0x4 add r1, r1, r4 mov r4, lr sub r4, r4, r0 mul r4, r3 asr r4, r4, #0x4 add r0, r0, r4 lsl r0, r0, #0x5 orr r0, r1 add r1, r5, #0x0 orr r1, r0 ldr r0, [sp, #0x4] strh r1, [r0, r6] add r0, r2, #0x1 lsl r0, r0, #0x10 lsr r2, r0, #0x10 cmp r2, r7 blo _0200399A _020039E2: add sp, #0xc pop {r4-r7, pc} .balign 4 thumb_func_start FUN_020039E8 FUN_020039E8: ; 0x020039E8 push {r3-r7, lr} sub sp, #0x8 add r7, r2, #0x0 add r5, r0, #0x0 mov r2, #0x14 add r6, r1, #0x0 mul r6, r2 str r3, [sp, #0x4] ldr r1, [r5, r6] mov r0, #0x0 add r4, r5, r6 cmp r1, #0x0 beq _02003A0A ldr r1, [r4, #0x4] cmp r1, #0x0 beq _02003A0A mov r0, #0x1 _02003A0A: cmp r0, #0x0 bne _02003A12 bl ErrorHandling _02003A12: add r3, sp, #0x10 ldrh r0, [r3, #0x14] add r2, r5, r6 lsl r1, r7, #0x1 str r0, [sp, #0x0] ldr r0, [r4, #0x0] ldr r2, [r2, #0x4] add r0, r0, r1 add r1, r2, r1 ldrb r3, [r3, #0x10] ldr r2, [sp, #0x4] bl FUN_02003974 add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_02003A30 FUN_02003A30: ; 0x02003A30 push {r3-r7, lr} sub sp, #0x8 str r3, [sp, #0x4] add r5, r0, #0x0 add r6, r1, #0x0 add r4, r2, #0x0 ldr r7, [sp, #0x20] beq _02003A60 _02003A40: mov r0, #0x1 tst r0, r4 beq _02003A54 str r7, [sp, #0x0] ldr r3, [sp, #0x4] add r0, r5, #0x0 add r1, r6, #0x0 mov r2, #0x10 bl FUN_02003974 _02003A54: lsl r0, r4, #0xf lsr r4, r0, #0x10 add r6, #0x20 add r5, #0x20 cmp r4, #0x0 bne _02003A40 _02003A60: add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_02003A64 FUN_02003A64: ; 0x02003A64 push {r4-r7, lr} sub sp, #0xc str r3, [sp, #0x8] add r6, r0, #0x0 add r7, r1, #0x0 ldr r0, [sp, #0x20] add r5, r2, #0x0 mov r1, #0x14 add r2, r7, #0x0 str r0, [sp, #0x20] mul r2, r1 mov r4, #0x0 ldr r1, [r6, r2] add r0, r4, #0x0 cmp r1, #0x0 beq _02003A8E add r1, r6, r2 ldr r1, [r1, #0x4] cmp r1, #0x0 beq _02003A8E mov r0, #0x1 _02003A8E: cmp r0, #0x0 bne _02003A96 bl ErrorHandling _02003A96: cmp r5, #0x0 beq _02003AC0 _02003A9A: mov r0, #0x1 tst r0, r5 beq _02003AB6 ldr r0, [sp, #0x8] lsl r2, r4, #0x10 str r0, [sp, #0x0] ldr r0, [sp, #0x20] add r1, r7, #0x0 str r0, [sp, #0x4] add r0, r6, #0x0 lsr r2, r2, #0x10 mov r3, #0x10 bl FUN_020039E8 _02003AB6: lsl r0, r5, #0xf lsr r5, r0, #0x10 add r4, #0x10 cmp r5, #0x0 bne _02003A9A _02003AC0: add sp, #0xc pop {r4-r7, pc} thumb_func_start FUN_02003AC4 FUN_02003AC4: ; 0x02003AC4 push {r3-r7, lr} mov lr, r1 mov r12, r2 add r7, r3, #0x0 mov r4, #0x0 cmp r1, #0x0 ble _02003B3C ldr r6, [sp, #0x18] _02003AD4: ldrh r3, [r0, #0x0] mov r1, #0x1f add r2, r3, #0x0 asr r5, r3, #0xa and r2, r1 and r5, r1 mov r1, #0x1d mul r1, r5 mov r5, #0x4c mul r5, r2 asr r3, r3, #0x5 mov r2, #0x1f and r3, r2 mov r2, #0x97 mul r2, r3 add r2, r5, r2 add r1, r1, r2 asr r3, r1, #0x8 mov r1, r12 add r2, r1, #0x0 mul r2, r3 lsl r1, r2, #0x10 lsr r1, r1, #0x10 asr r2, r1, #0x8 add r1, r7, #0x0 mul r1, r3 mul r3, r6 lsl r1, r1, #0x10 lsl r3, r3, #0x10 lsr r1, r1, #0x10 lsr r3, r3, #0x10 asr r1, r1, #0x8 asr r3, r3, #0x8 cmp r2, #0x1f ble _02003B1C mov r2, #0x1f _02003B1C: cmp r1, #0x1f ble _02003B22 mov r1, #0x1f _02003B22: cmp r3, #0x1f ble _02003B28 mov r3, #0x1f _02003B28: lsl r3, r3, #0xa lsl r1, r1, #0x5 orr r1, r3 orr r1, r2 strh r1, [r0, #0x0] add r4, r4, #0x1 mov r1, lr add r0, r0, #0x2 cmp r4, r1 blt _02003AD4 _02003B3C: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02003B40 FUN_02003B40: ; 0x02003B40 push {r3-r5, lr} sub sp, #0x8 add r5, r0, #0x0 add r0, r1, #0x0 add r1, r2, #0x0 add r2, sp, #0x4 bl FUN_02006C08 add r4, r0, #0x0 bne _02003B58 bl ErrorHandling _02003B58: ldr r0, [sp, #0x1c] cmp r0, #0x0 bne _02003B64 ldr r0, [sp, #0x4] ldr r0, [r0, #0x8] str r0, [sp, #0x1c] _02003B64: ldr r0, [sp, #0x2c] ldr r2, [sp, #0x24] str r0, [sp, #0x0] ldr r0, [sp, #0x4] ldr r3, [sp, #0x28] ldr r0, [r0, #0xc] mov r1, #0x10 bl FUN_02003AC4 ldr r0, [sp, #0x1c] add r3, sp, #0x8 lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x0] ldr r1, [sp, #0x4] ldrh r3, [r3, #0x18] ldr r1, [r1, #0xc] ldr r2, [sp, #0x18] add r0, r5, #0x0 bl FUN_02003054 add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x8 pop {r3-r5, pc} thumb_func_start FUN_02003B98 FUN_02003B98: ; 0x02003B98 push {r4-r6, lr} add r5, r0, #0x0 add r6, r1, #0x0 bl FUN_02003D30 add r4, r0, #0x0 blx FUN_020C01D0 bl FUN_020040C8 add r0, r4, #0x0 bl FUN_02004064 add r0, r4, #0x0 ldr r1, _02003C00 ; =0x000BBC00 add r0, #0x94 blx FUN_020C2A94 add r1, r4, #0x0 add r1, #0x90 str r0, [r1, #0x0] add r2, r4, #0x0 add r2, #0x90 ldr r1, _02003C04 ; =0x02104780 ldr r2, [r2, #0x0] add r0, r4, #0x0 mov r3, #0x0 blx FUN_020C26F8 add r0, r4, #0x0 add r0, #0x90 ldr r0, [r0, #0x0] blx FUN_020C39CC add r0, r4, #0x0 bl FUN_02004088 add r0, r4, #0x0 bl FUN_020040A4 ldr r0, _02003C08 ; =0x02107070 mov r1, #0x0 str r1, [r0, #0x4] ldr r0, _02003C0C ; =0x000BCD4C str r5, [r4, r0] ldrh r0, [r6, #0x0] lsl r0, r0, #0x1a lsr r0, r0, #0x1e bl FUN_02004D60 pop {r4-r6, pc} nop _02003C00: .word 0x000BBC00 _02003C04: .word 0x02104780 _02003C08: .word 0x02107070 _02003C0C: .word 0x000BCD4C thumb_func_start FUN_02003C10 FUN_02003C10: ; 0x02003C10 push {r4, lr} bl FUN_02003D30 add r4, r0, #0x0 bl FUN_02003D04 cmp r0, #0x0 bne _02003C30 ldr r0, _02003C3C ; =0x000BCD00 ldr r1, [r4, r0] cmp r1, #0x0 ble _02003C2C sub r1, r1, #0x1 str r1, [r4, r0] _02003C2C: bl FUN_02003C40 _02003C30: bl FUN_02005CFC blx FUN_020C01A0 pop {r4, pc} nop _02003C3C: .word 0x000BCD00 thumb_func_start FUN_02003C40 FUN_02003C40: ; 0x02003C40 push {r4, lr} bl FUN_02003D30 add r4, r0, #0x0 ldr r0, _02003CDC ; =0x02107070 ldr r0, [r0, #0x0] cmp r0, #0x6 bhi _02003CD8 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02003C5C: ; jump table (using 16-bit offset) .short _02003CD8 - _02003C5C - 2; case 0 .short _02003C6A - _02003C5C - 2; case 1 .short _02003CD8 - _02003C5C - 2; case 2 .short _02003C72 - _02003C5C - 2; case 3 .short _02003C82 - _02003C5C - 2; case 4 .short _02003C92 - _02003C5C - 2; case 5 .short _02003CB0 - _02003C5C - 2; case 6 _02003C6A: mov r0, #0x2 bl FUN_02003CE8 pop {r4, pc} _02003C72: bl FUN_02005404 cmp r0, #0x0 bne _02003CD8 mov r0, #0x2 bl FUN_02003CE8 pop {r4, pc} _02003C82: bl FUN_02005404 cmp r0, #0x0 bne _02003CD8 mov r0, #0x2 bl FUN_02003CE8 pop {r4, pc} _02003C92: bl FUN_02005404 cmp r0, #0x0 bne _02003CD8 bl FUN_02004D94 cmp r0, #0x0 bne _02003CD8 bl FUN_020040DC ldr r0, _02003CE0 ; =0x000BCD0E ldrh r0, [r4, r0] bl FUN_0200521C pop {r4, pc} _02003CB0: bl FUN_02005404 cmp r0, #0x0 bne _02003CD8 bl FUN_02004D94 cmp r0, #0x0 bne _02003CD8 bl FUN_020040DC ldr r0, _02003CE0 ; =0x000BCD0E ldrh r0, [r4, r0] bl FUN_0200521C ldr r1, _02003CE4 ; =0x000BCD08 mov r0, #0x7f ldr r1, [r4, r1] mov r2, #0x0 bl FUN_0200538C _02003CD8: pop {r4, pc} nop _02003CDC: .word 0x02107070 _02003CE0: .word 0x000BCD0E _02003CE4: .word 0x000BCD08 thumb_func_start FUN_02003CE8 FUN_02003CE8: ; 0x02003CE8 push {r4, lr} add r4, r0, #0x0 bl FUN_02003D30 ldr r1, _02003CFC ; =0x000BCCFC mov r2, #0x0 strh r2, [r0, r1] ldr r0, _02003D00 ; =0x02107070 str r4, [r0, #0x0] pop {r4, pc} .balign 4 _02003CFC: .word 0x000BCCFC _02003D00: .word 0x02107070 thumb_func_start FUN_02003D04 FUN_02003D04: ; 0x02003D04 push {r4, lr} bl FUN_02003D30 add r4, r0, #0x0 mov r0, #0x2 bl FUN_020048BC cmp r0, #0x0 beq _02003D1A mov r0, #0x1 pop {r4, pc} _02003D1A: ldr r0, _02003D2C ; =0x000BCD12 ldrh r0, [r4, r0] cmp r0, #0x0 beq _02003D26 mov r0, #0x1 pop {r4, pc} _02003D26: mov r0, #0x0 pop {r4, pc} nop _02003D2C: .word 0x000BCD12 thumb_func_start FUN_02003D30 FUN_02003D30: ; 0x02003D30 ldr r0, _02003D34 ; =0x02107078 bx lr .balign 4 _02003D34: .word 0x02107078 thumb_func_start FUN_02003D38 FUN_02003D38: ; 0x02003D38 push {r4, lr} add r4, r0, #0x0 bl FUN_02003D30 cmp r4, #0x27 bls _02003D46 b _02003E92 _02003D46: add r1, r4, r4 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02003D52: ; jump table (using 16-bit offset) .short _02003DA8 - _02003D52 - 2; case 0 .short _02003DAE - _02003D52 - 2; case 1 .short _02003DB4 - _02003D52 - 2; case 2 .short _02003DBA - _02003D52 - 2; case 3 .short _02003DC0 - _02003D52 - 2; case 4 .short _02003DA2 - _02003D52 - 2; case 5 .short _02003DC6 - _02003D52 - 2; case 6 .short _02003DCC - _02003D52 - 2; case 7 .short _02003DD2 - _02003D52 - 2; case 8 .short _02003DD8 - _02003D52 - 2; case 9 .short _02003DDE - _02003D52 - 2; case 10 .short _02003DE4 - _02003D52 - 2; case 11 .short _02003DEA - _02003D52 - 2; case 12 .short _02003DF0 - _02003D52 - 2; case 13 .short _02003DF6 - _02003D52 - 2; case 14 .short _02003DFC - _02003D52 - 2; case 15 .short _02003E02 - _02003D52 - 2; case 16 .short _02003E08 - _02003D52 - 2; case 17 .short _02003E0E - _02003D52 - 2; case 18 .short _02003E14 - _02003D52 - 2; case 19 .short _02003E1A - _02003D52 - 2; case 20 .short _02003E20 - _02003D52 - 2; case 21 .short _02003E26 - _02003D52 - 2; case 22 .short _02003E2C - _02003D52 - 2; case 23 .short _02003E32 - _02003D52 - 2; case 24 .short _02003E38 - _02003D52 - 2; case 25 .short _02003E3E - _02003D52 - 2; case 26 .short _02003E44 - _02003D52 - 2; case 27 .short _02003E4A - _02003D52 - 2; case 28 .short _02003E50 - _02003D52 - 2; case 29 .short _02003E56 - _02003D52 - 2; case 30 .short _02003E5C - _02003D52 - 2; case 31 .short _02003E62 - _02003D52 - 2; case 32 .short _02003E68 - _02003D52 - 2; case 33 .short _02003E6E - _02003D52 - 2; case 34 .short _02003E74 - _02003D52 - 2; case 35 .short _02003E7A - _02003D52 - 2; case 36 .short _02003E80 - _02003D52 - 2; case 37 .short _02003E86 - _02003D52 - 2; case 38 .short _02003E8C - _02003D52 - 2; case 39 _02003DA2: ldr r1, _02003E9C ; =0x000BCCFE add r0, r0, r1 pop {r4, pc} _02003DA8: ldr r1, _02003EA0 ; =0x000BBCB8 add r0, r0, r1 pop {r4, pc} _02003DAE: ldr r1, _02003EA4 ; =0x000BBCBC add r0, r0, r1 pop {r4, pc} _02003DB4: ldr r1, _02003EA8 ; =0x000BBCC0 add r0, r0, r1 pop {r4, pc} _02003DBA: ldr r1, _02003EAC ; =0x000BBCE0 add r0, r0, r1 pop {r4, pc} _02003DC0: ldr r1, _02003EB0 ; =0x000BCCE0 add r0, r0, r1 pop {r4, pc} _02003DC6: ldr r1, _02003EB4 ; =0x000BCD00 add r0, r0, r1 pop {r4, pc} _02003DCC: ldr r1, _02003EB8 ; =0x000BCD04 add r0, r0, r1 pop {r4, pc} _02003DD2: ldr r1, _02003EBC ; =0x000BCD08 add r0, r0, r1 pop {r4, pc} _02003DD8: ldr r1, _02003EC0 ; =0x000BCD0C add r0, r0, r1 pop {r4, pc} _02003DDE: ldr r1, _02003EC4 ; =0x000BCD0E add r0, r0, r1 pop {r4, pc} _02003DE4: ldr r1, _02003EC8 ; =0x000BCD10 add r0, r0, r1 pop {r4, pc} _02003DEA: ldr r1, _02003ECC ; =0x000BCD11 add r0, r0, r1 pop {r4, pc} _02003DF0: ldr r1, _02003ED0 ; =0x000BCD12 add r0, r0, r1 pop {r4, pc} _02003DF6: ldr r1, _02003ED4 ; =0x000BCD14 add r0, r0, r1 pop {r4, pc} _02003DFC: ldr r1, _02003ED8 ; =0x000BCD15 add r0, r0, r1 pop {r4, pc} _02003E02: ldr r1, _02003EDC ; =0x000BCD16 add r0, r0, r1 pop {r4, pc} _02003E08: ldr r1, _02003EE0 ; =0x000BCD17 add r0, r0, r1 pop {r4, pc} _02003E0E: ldr r1, _02003EE4 ; =0x000BCD18 add r0, r0, r1 pop {r4, pc} _02003E14: ldr r1, _02003EE8 ; =0x000BCD19 add r0, r0, r1 pop {r4, pc} _02003E1A: ldr r1, _02003EEC ; =0x000BCD1A add r0, r0, r1 pop {r4, pc} _02003E20: ldr r1, _02003EF0 ; =0x000BCD1B add r0, r0, r1 pop {r4, pc} _02003E26: ldr r1, _02003EF4 ; =0x000BCD1C add r0, r0, r1 pop {r4, pc} _02003E2C: ldr r1, _02003EF8 ; =0x000BCD20 add r0, r0, r1 pop {r4, pc} _02003E32: ldr r1, _02003EFC ; =0x000BCD24 add r0, r0, r1 pop {r4, pc} _02003E38: ldr r1, _02003F00 ; =0x000BCD28 add r0, r0, r1 pop {r4, pc} _02003E3E: ldr r1, _02003F04 ; =0x000BCD2C add r0, r0, r1 pop {r4, pc} _02003E44: ldr r1, _02003F08 ; =0x000BCD30 add r0, r0, r1 pop {r4, pc} _02003E4A: ldr r1, _02003F0C ; =0x000BCD34 add r0, r0, r1 pop {r4, pc} _02003E50: ldr r1, _02003F10 ; =0x000BCD38 add r0, r0, r1 pop {r4, pc} _02003E56: ldr r1, _02003F14 ; =0x000BCD39 add r0, r0, r1 pop {r4, pc} _02003E5C: ldr r1, _02003F18 ; =0x000BCD3A add r0, r0, r1 pop {r4, pc} _02003E62: ldr r1, _02003F1C ; =0x000BCD3C add r0, r0, r1 pop {r4, pc} _02003E68: ldr r1, _02003F20 ; =0x000BCD40 add r0, r0, r1 pop {r4, pc} _02003E6E: ldr r1, _02003F24 ; =0x000BCD48 add r0, r0, r1 pop {r4, pc} _02003E74: ldr r1, _02003F28 ; =0x000BCD4C add r0, r0, r1 pop {r4, pc} _02003E7A: ldr r1, _02003F2C ; =0x000BCD50 add r0, r0, r1 pop {r4, pc} _02003E80: ldr r1, _02003F30 ; =0x000BCD54 add r0, r0, r1 pop {r4, pc} _02003E86: ldr r1, _02003F34 ; =0x000BCD58 add r0, r0, r1 pop {r4, pc} _02003E8C: ldr r1, _02003F38 ; =0x000BCD5C add r0, r0, r1 pop {r4, pc} _02003E92: bl ErrorHandling mov r0, #0x0 pop {r4, pc} nop _02003E9C: .word 0x000BCCFE _02003EA0: .word 0x000BBCB8 _02003EA4: .word 0x000BBCBC _02003EA8: .word 0x000BBCC0 _02003EAC: .word 0x000BBCE0 _02003EB0: .word 0x000BCCE0 _02003EB4: .word 0x000BCD00 _02003EB8: .word 0x000BCD04 _02003EBC: .word 0x000BCD08 _02003EC0: .word 0x000BCD0C _02003EC4: .word 0x000BCD0E _02003EC8: .word 0x000BCD10 _02003ECC: .word 0x000BCD11 _02003ED0: .word 0x000BCD12 _02003ED4: .word 0x000BCD14 _02003ED8: .word 0x000BCD15 _02003EDC: .word 0x000BCD16 _02003EE0: .word 0x000BCD17 _02003EE4: .word 0x000BCD18 _02003EE8: .word 0x000BCD19 _02003EEC: .word 0x000BCD1A _02003EF0: .word 0x000BCD1B _02003EF4: .word 0x000BCD1C _02003EF8: .word 0x000BCD20 _02003EFC: .word 0x000BCD24 _02003F00: .word 0x000BCD28 _02003F04: .word 0x000BCD2C _02003F08: .word 0x000BCD30 _02003F0C: .word 0x000BCD34 _02003F10: .word 0x000BCD38 _02003F14: .word 0x000BCD39 _02003F18: .word 0x000BCD3A _02003F1C: .word 0x000BCD3C _02003F20: .word 0x000BCD40 _02003F24: .word 0x000BCD48 _02003F28: .word 0x000BCD4C _02003F2C: .word 0x000BCD50 _02003F30: .word 0x000BCD54 _02003F34: .word 0x000BCD58 _02003F38: .word 0x000BCD5C thumb_func_start FUN_02003F3C FUN_02003F3C: ; 0x02003F3C push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02003D30 add r0, #0x90 ldr r0, [r0, #0x0] blx FUN_020C290C add r4, r0, #0x0 mov r0, #0x0 mvn r0, r0 cmp r4, r0 bne _02003F5A bl ErrorHandling _02003F5A: cmp r5, #0x0 beq _02003F60 str r4, [r5, #0x0] _02003F60: add r0, r4, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02003F64 FUN_02003F64: ; 0x02003F64 push {r4, lr} add r4, r0, #0x0 bl FUN_02003D30 add r0, #0x90 ldr r0, [r0, #0x0] add r1, r4, #0x0 blx FUN_020C2828 pop {r4, pc} thumb_func_start FUN_02003F78 FUN_02003F78: ; 0x02003F78 push {r4, lr} add r4, r0, #0x0 bl FUN_02003D30 add r1, r0, #0x0 add r1, #0x90 ldr r1, [r1, #0x0] add r0, r4, #0x0 blx FUN_020C36A8 pop {r4, pc} .balign 4 thumb_func_start FUN_02003F90 FUN_02003F90: ; 0x02003F90 push {r4, lr} add r4, r0, #0x0 bl FUN_02003D30 add r1, r0, #0x0 add r1, #0x90 ldr r1, [r1, #0x0] add r0, r4, #0x0 blx FUN_020C3674 pop {r4, pc} .balign 4 thumb_func_start FUN_02003FA8 FUN_02003FA8: ; 0x02003FA8 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_02003D30 add r2, r0, #0x0 add r2, #0x90 ldr r2, [r2, #0x0] add r0, r5, #0x0 add r1, r4, #0x0 blx FUN_020C35E0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02003FC4 FUN_02003FC4: ; 0x02003FC4 push {r4, lr} add r4, r0, #0x0 bl FUN_02003D30 add r1, r0, #0x0 add r1, #0x90 ldr r1, [r1, #0x0] add r0, r4, #0x0 blx FUN_020C360C pop {r4, pc} .balign 4 thumb_func_start FUN_02003FDC FUN_02003FDC: ; 0x02003FDC push {r4, lr} add r4, r0, #0x0 bl FUN_02003D30 add r1, r0, #0x0 add r1, #0x90 ldr r1, [r1, #0x0] add r0, r4, #0x0 blx FUN_020C3640 pop {r4, pc} .balign 4 thumb_func_start FUN_02003FF4 FUN_02003FF4: ; 0x02003FF4 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02003D30 add r4, r0, #0x0 cmp r5, #0x9 blt _02004008 bl ErrorHandling mov r5, #0x0 _02004008: ldr r0, _02004014 ; =0x000BBC94 add r1, r4, r0 lsl r0, r5, #0x2 add r0, r1, r0 pop {r3-r5, pc} nop _02004014: .word 0x000BBC94 thumb_func_start FUN_02004018 FUN_02004018: ; 0x02004018 push {r3, lr} cmp r0, #0x7 bhi _0200405A add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0200402A: ; jump table (using 16-bit offset) .short _0200403E - _0200402A - 2; case 0 .short _0200403A - _0200402A - 2; case 1 .short _02004042 - _0200402A - 2; case 2 .short _02004046 - _0200402A - 2; case 3 .short _0200404A - _0200402A - 2; case 4 .short _0200404E - _0200402A - 2; case 5 .short _02004052 - _0200402A - 2; case 6 .short _02004056 - _0200402A - 2; case 7 _0200403A: mov r0, #0x0 pop {r3, pc} _0200403E: mov r0, #0x1 pop {r3, pc} _02004042: mov r0, #0x2 pop {r3, pc} _02004046: mov r0, #0x3 pop {r3, pc} _0200404A: mov r0, #0x4 pop {r3, pc} _0200404E: mov r0, #0x5 pop {r3, pc} _02004052: mov r0, #0x6 pop {r3, pc} _02004056: mov r0, #0x7 pop {r3, pc} _0200405A: bl ErrorHandling mov r0, #0x3 pop {r3, pc} .balign 4 thumb_func_start FUN_02004064 FUN_02004064: ; 0x02004064 push {r4, lr} ldr r2, _02004080 ; =0x000BCD60 mov r1, #0x0 add r4, r0, #0x0 blx FUN_020DF4A4 ldr r0, _02004084 ; =0x000BCD1C mov r1, #0x0 _02004074: add r1, r1, #0x1 str r1, [r4, r0] add r4, r4, #0x4 cmp r1, #0x7 blt _02004074 pop {r4, pc} .balign 4 _02004080: .word 0x000BCD60 _02004084: .word 0x000BCD1C thumb_func_start FUN_02004088 FUN_02004088: ; 0x02004088 push {r3-r5, lr} ldr r1, _020040A0 ; =0x000BBC94 mov r4, #0x0 add r5, r0, r1 _02004090: add r0, r5, #0x0 blx FUN_020C0F80 add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, #0x9 blt _02004090 pop {r3-r5, pc} .balign 4 _020040A0: .word 0x000BBC94 thumb_func_start FUN_020040A4 FUN_020040A4: ; 0x020040A4 push {r4, lr} add r4, r0, #0x0 ldr r0, _020040C0 ; =0x000BCD1C add r0, r4, r0 bl FUN_02003F3C mov r0, #0x0 bl FUN_02003F78 ldr r0, _020040C4 ; =0x000BCD20 add r0, r4, r0 bl FUN_02003F3C pop {r4, pc} .balign 4 _020040C0: .word 0x000BCD1C _020040C4: .word 0x000BCD20 thumb_func_start FUN_020040C8 FUN_020040C8: ; 0x020040C8 push {r3, lr} blx MIC_Init mov r0, #0x1 blx FUN_020D5168 mov r0, #0x2 blx FUN_020D5150 pop {r3, pc} thumb_func_start FUN_020040DC FUN_020040DC: ; 0x020040DC push {r3, lr} mov r0, #0x7 mov r1, #0x0 blx FUN_020C1040 mov r0, #0x7 bl FUN_02003FF4 blx FUN_020C0F68 pop {r3, pc} .balign 4 thumb_func_start FUN_020040F4 FUN_020040F4: ; 0x020040F4 push {r4, lr} add r4, r0, #0x0 mov r0, #0x5 bl FUN_02003D38 strb r4, [r0, #0x0] pop {r4, pc} .balign 4 thumb_func_start FUN_02004104 FUN_02004104: ; 0x02004104 push {r3, lr} mov r0, #0x5 bl FUN_02003D38 ldrb r0, [r0, #0x0] pop {r3, pc} thumb_func_start FUN_02004110 FUN_02004110: ; 0x02004110 push {r4, lr} add r4, r0, #0x0 mov r0, #0x9 bl FUN_02003D38 strh r4, [r0, #0x0] mov r0, #0x0 bl FUN_02004130 pop {r4, pc} thumb_func_start FUN_02004124 FUN_02004124: ; 0x02004124 push {r3, lr} mov r0, #0x9 bl FUN_02003D38 ldrh r0, [r0, #0x0] pop {r3, pc} thumb_func_start FUN_02004130 FUN_02004130: ; 0x02004130 push {r4, lr} add r4, r0, #0x0 mov r0, #0xa bl FUN_02003D38 strh r4, [r0, #0x0] pop {r4, pc} .balign 4 thumb_func_start FUN_02004140 FUN_02004140: ; 0x02004140 push {r3, lr} mov r0, #0xa bl FUN_02003D38 ldrh r0, [r0, #0x0] pop {r3, pc} thumb_func_start FUN_0200414C FUN_0200414C: ; 0x0200414C push {r4, lr} add r4, r0, #0x0 mov r0, #0x1f bl FUN_02003D38 strh r4, [r0, #0x0] pop {r4, pc} .balign 4 thumb_func_start FUN_0200415C FUN_0200415C: ; 0x0200415C push {r3-r5, lr} add r5, r0, #0x0 mov r0, #0x14 bl FUN_02003D38 add r4, r0, #0x0 mov r0, #0x15 bl FUN_02003D38 cmp r5, #0x33 bhs _0200417A strb r5, [r4, #0x0] mov r1, #0x0 strb r1, [r0, #0x0] pop {r3-r5, pc} _0200417A: strb r5, [r0, #0x0] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02004180 FUN_02004180: ; 0x02004180 push {r3, lr} cmp r0, #0x39 bgt _020041DE blt _0200418A b _020042C8 _0200418A: cmp r0, #0x35 bgt _020041CC blt _02004192 b _0200429A _02004192: cmp r0, #0x33 bgt _020041C6 bge _0200427C cmp r0, #0xe bhi _020041CA add r2, r0, r0 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _020041A8: ; jump table (using 16-bit offset) .short _0200432C - _020041A8 - 2; case 0 .short _02004222 - _020041A8 - 2; case 1 .short _0200422C - _020041A8 - 2; case 2 .short _02004236 - _020041A8 - 2; case 3 .short _02004240 - _020041A8 - 2; case 4 .short _0200424A - _020041A8 - 2; case 5 .short _0200425E - _020041A8 - 2; case 6 .short _0200429A - _020041A8 - 2; case 7 .short _02004268 - _020041A8 - 2; case 8 .short _02004222 - _020041A8 - 2; case 9 .short _02004222 - _020041A8 - 2; case 10 .short _02004254 - _020041A8 - 2; case 11 .short _02004272 - _020041A8 - 2; case 12 .short _0200422C - _020041A8 - 2; case 13 .short _02004222 - _020041A8 - 2; case 14 _020041C6: cmp r0, #0x34 beq _02004290 _020041CA: b _0200432C _020041CC: cmp r0, #0x37 bgt _020041D8 bge _020042AE cmp r0, #0x36 beq _020042A4 b _0200432C _020041D8: cmp r0, #0x38 beq _020042BE b _0200432C _020041DE: cmp r0, #0x3d bgt _020041F8 blt _020041E6 b _020042F0 _020041E6: cmp r0, #0x3b bgt _020041F2 bge _020042DC cmp r0, #0x3a beq _020042D2 b _0200432C _020041F2: cmp r0, #0x3c beq _020042E6 b _0200432C _020041F8: cmp r0, #0x3f bgt _02004206 blt _02004200 b _02004304 _02004200: cmp r0, #0x3e beq _020042FA b _0200432C _02004206: sub r0, #0x40 cmp r0, #0x3 bls _0200420E b _0200432C _0200420E: add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0200421A: ; jump table (using 16-bit offset) .short _0200430E - _0200421A - 2; case 0 .short _0200431E - _0200421A - 2; case 1 .short _02004286 - _0200421A - 2; case 2 .short _020042AE - _0200421A - 2; case 3 _02004222: mov r0, #0x1 bl FUN_02003F78 add r1, r0, #0x0 b _0200432C _0200422C: mov r0, #0x2 bl FUN_02003F78 add r1, r0, #0x0 b _0200432C _02004236: mov r0, #0xd bl FUN_02003F78 add r1, r0, #0x0 b _0200432C _02004240: mov r0, #0x1 bl FUN_02003F78 add r1, r0, #0x0 b _0200432C _0200424A: mov r0, #0x2 bl FUN_02003F78 add r1, r0, #0x0 b _0200432C _02004254: mov r0, #0x1 bl FUN_02003F78 add r1, r0, #0x0 b _0200432C _0200425E: mov r0, #0xb bl FUN_02003F78 add r1, r0, #0x0 b _0200432C _02004268: mov r0, #0x1 bl FUN_02003F78 add r1, r0, #0x0 b _0200432C _02004272: mov r0, #0xe bl FUN_02003F78 add r1, r0, #0x0 b _0200432C _0200427C: mov r0, #0x3 bl FUN_02003F78 add r1, r0, #0x0 b _0200432C _02004286: mov r0, #0x6 bl FUN_02003F78 add r1, r0, #0x0 b _0200432C _02004290: mov r0, #0x5 bl FUN_02003F78 add r1, r0, #0x0 b _0200432C _0200429A: mov r0, #0x9 bl FUN_02003F78 add r1, r0, #0x0 b _0200432C _020042A4: mov r0, #0xa bl FUN_02003F78 add r1, r0, #0x0 b _0200432C _020042AE: ldr r0, _02004330 ; =0x000005E5 bl FUN_02003FDC ldr r0, _02004330 ; =0x000005E5 bl FUN_02003FC4 add r1, r0, #0x0 b _0200432C _020042BE: mov r0, #0xc bl FUN_02003F78 add r1, r0, #0x0 b _0200432C _020042C8: mov r0, #0x7 bl FUN_02003F78 add r1, r0, #0x0 b _0200432C _020042D2: mov r0, #0x8 bl FUN_02003F78 add r1, r0, #0x0 b _0200432C _020042DC: mov r0, #0xf bl FUN_02003F78 add r1, r0, #0x0 b _0200432C _020042E6: mov r0, #0x3 bl FUN_02003F78 add r1, r0, #0x0 b _0200432C _020042F0: mov r0, #0x5 bl FUN_02003F78 add r1, r0, #0x0 b _0200432C _020042FA: mov r0, #0xf bl FUN_02003F78 add r1, r0, #0x0 b _0200432C _02004304: mov r0, #0x4 bl FUN_02003F78 add r1, r0, #0x0 b _0200432C _0200430E: ldr r0, _02004334 ; =0x000005ED bl FUN_02003FDC ldr r0, _02004334 ; =0x000005ED bl FUN_02003FC4 add r1, r0, #0x0 b _0200432C _0200431E: ldr r0, _02004338 ; =0x000005EC bl FUN_02003FDC ldr r0, _02004338 ; =0x000005EC bl FUN_02003FC4 add r1, r0, #0x0 _0200432C: add r0, r1, #0x0 pop {r3, pc} .balign 4 _02004330: .word 0x000005E5 _02004334: .word 0x000005ED _02004338: .word 0x000005EC thumb_func_start FUN_0200433C FUN_0200433C: ; 0x0200433C push {r3-r7, lr} sub sp, #0x8 add r4, r0, #0x0 mov r0, #0x14 add r5, r1, #0x0 add r6, r2, #0x0 bl FUN_02003D38 str r0, [sp, #0x0] mov r0, #0x15 bl FUN_02003D38 str r0, [sp, #0x4] mov r0, #0xd bl FUN_02003D38 add r7, r0, #0x0 cmp r4, #0x33 bhs _02004370 ldr r0, [sp, #0x0] ldrb r0, [r0, #0x0] cmp r0, r4 bne _0200437E add sp, #0x8 mov r0, #0x0 pop {r3-r7, pc} _02004370: ldr r0, [sp, #0x4] ldrb r0, [r0, #0x0] cmp r0, r4 bne _0200437E add sp, #0x8 mov r0, #0x0 pop {r3-r7, pc} _0200437E: add r0, r4, #0x0 bl FUN_0200415C cmp r4, #0x39 bgt _020043DC bge _02004458 cmp r4, #0x35 bgt _020043CA bge _02004458 cmp r4, #0x33 bgt _020043C4 bge _02004458 cmp r4, #0xe bhi _020043C8 add r0, r4, r4 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _020043A6: ; jump table (using 16-bit offset) .short _020044A0 - _020043A6 - 2; case 0 .short _02004460 - _020043A6 - 2; case 1 .short _02004484 - _020043A6 - 2; case 2 .short _02004496 - _020043A6 - 2; case 3 .short _0200441C - _020043A6 - 2; case 4 .short _02004430 - _020043A6 - 2; case 5 .short _02004444 - _020043A6 - 2; case 6 .short _0200444E - _020043A6 - 2; case 7 .short _02004496 - _020043A6 - 2; case 8 .short _02004496 - _020043A6 - 2; case 9 .short _02004496 - _020043A6 - 2; case 10 .short _0200443A - _020043A6 - 2; case 11 .short _02004496 - _020043A6 - 2; case 12 .short _02004496 - _020043A6 - 2; case 13 .short _02004472 - _020043A6 - 2; case 14 _020043C4: cmp r4, #0x34 beq _02004458 _020043C8: b _020044A0 _020043CA: cmp r4, #0x37 bgt _020043D6 bge _02004458 cmp r4, #0x36 beq _02004458 b _020044A0 _020043D6: cmp r4, #0x38 beq _02004458 b _020044A0 _020043DC: cmp r4, #0x3d bgt _020043F4 bge _02004458 cmp r4, #0x3b bgt _020043EE bge _02004458 cmp r4, #0x3a beq _02004458 b _020044A0 _020043EE: cmp r4, #0x3c beq _02004458 b _020044A0 _020043F4: cmp r4, #0x3f bgt _02004400 bge _02004458 cmp r4, #0x3e beq _02004458 b _020044A0 _02004400: add r0, r4, #0x0 sub r0, #0x40 cmp r0, #0x3 bhi _020044A0 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02004414: ; jump table (using 16-bit offset) .short _02004458 - _02004414 - 2; case 0 .short _02004458 - _02004414 - 2; case 1 .short _02004458 - _02004414 - 2; case 2 .short _02004458 - _02004414 - 2; case 3 _0200441C: mov r0, #0x0 bl FUN_0200516C add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_020044D4 mov r0, #0x0 strh r0, [r7, #0x0] b _020044A0 _02004430: add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02004648 b _020044A0 _0200443A: add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02004680 b _020044A0 _02004444: add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_020046A0 b _020044A0 _0200444E: add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_020046C4 b _020044A0 _02004458: add r0, r4, #0x0 bl FUN_020046E8 b _020044A0 _02004460: mov r0, #0x1 bl FUN_0200516C add r0, r4, #0x0 add r1, r5, #0x0 add r2, r6, #0x0 bl FUN_02004704 b _020044A0 _02004472: mov r0, #0x2 bl FUN_0200516C add r0, r4, #0x0 add r1, r5, #0x0 add r2, r6, #0x0 bl FUN_02004704 b _020044A0 _02004484: mov r0, #0x0 bl FUN_0200516C add r0, r4, #0x0 add r1, r5, #0x0 add r2, r6, #0x0 bl FUN_02004704 b _020044A0 _02004496: add r0, r4, #0x0 add r1, r5, #0x0 add r2, r6, #0x0 bl FUN_02004704 _020044A0: mov r0, #0x1 add sp, #0x8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020044A8 FUN_020044A8: ; 0x020044A8 push {r4, lr} add r4, r0, #0x0 mov r0, #0x17 bl FUN_02003D38 ldr r0, [r0, #0x0] bl FUN_02003F64 mov r0, #0x18 bl FUN_02003D38 bl FUN_02003F3C add r0, r4, #0x0 bl FUN_02004180 mov r0, #0x19 bl FUN_02003D38 bl FUN_02003F3C pop {r4, pc} thumb_func_start FUN_020044D4 FUN_020044D4: ; 0x020044D4 push {r4-r6, lr} add r5, r0, #0x0 mov r0, #0xb bl FUN_02003D38 add r6, r0, #0x0 mov r0, #0x17 bl FUN_02003D38 mov r0, #0x1f bl FUN_02003D38 mov r0, #0x0 bl FUN_02003FF4 bl FUN_020048EC add r4, r0, #0x0 ldrb r0, [r6, #0x0] cmp r0, #0x0 bne _0200450E cmp r4, r5 bne _0200450E bl FUN_02004140 mov r1, #0x12 lsl r1, r1, #0x6 cmp r0, r1 bne _02004566 _0200450E: mov r0, #0x1 bl FUN_02004DBC bl FUN_02005454 cmp r4, r5 beq _02004528 mov r0, #0x1 mov r1, #0x0 bl FUN_020047C8 bl FUN_0200541C _02004528: ldrb r0, [r6, #0x0] cmp r0, #0x1 bne _02004560 mov r0, #0x2 bl FUN_02004748 bl FUN_02003F64 mov r0, #0x4 bl FUN_02004180 mov r0, #0x19 bl FUN_02003D38 bl FUN_02003F3C cmp r4, r5 beq _02004554 mov r0, #0x1 mov r1, #0x0 bl FUN_020047C8 _02004554: lsl r1, r4, #0x10 add r0, r5, #0x0 lsr r1, r1, #0x10 bl FUN_02004568 pop {r4-r6, pc} _02004560: add r0, r5, #0x0 bl FUN_0200521C _02004566: pop {r4-r6, pc} thumb_func_start FUN_02004568 FUN_02004568: ; 0x02004568 push {r3-r5, lr} add r5, r0, #0x0 mov r0, #0x1f bl FUN_02003D38 add r4, r0, #0x0 ldrh r0, [r4, #0x0] bl FUN_02004900 ldr r1, _020045C0 ; =0x000003E9 cmp r0, r1 beq _02004594 add r1, r1, #0x2 cmp r0, r1 beq _02004594 add r0, r5, #0x0 mov r1, #0x4 bl FUN_02003FA8 bl ErrorHandling b _0200459C _02004594: ldrh r0, [r4, #0x0] mov r1, #0x6 bl FUN_02003FA8 _0200459C: mov r0, #0x1a bl FUN_02003D38 bl FUN_02003F3C mov r0, #0x1 mov r1, #0x0 bl FUN_020047C8 mov r0, #0x7f mov r1, #0x28 mov r2, #0x0 bl FUN_0200538C mov r0, #0x0 bl FUN_02004DBC pop {r3-r5, pc} .balign 4 _020045C0: .word 0x000003E9 thumb_func_start FUN_020045C4 FUN_020045C4: ; 0x020045C4 push {r3-r7, lr} add r7, r0, #0x0 mov r0, #0x12 add r5, r1, #0x0 bl FUN_02003D38 add r6, r0, #0x0 mov r0, #0x1f bl FUN_02003D38 add r4, r0, #0x0 ldrb r0, [r6, #0x0] cmp r0, #0x1 beq _020045E4 cmp r5, #0x0 bne _02004642 _020045E4: mov r0, #0x1 bl FUN_02004748 bl FUN_02003F64 ldrh r0, [r4, #0x0] mov r1, #0x2 bl FUN_02003FA8 mov r0, #0x18 bl FUN_02003D38 bl FUN_02003F3C mov r0, #0x4 bl FUN_02004180 mov r0, #0x19 bl FUN_02003D38 bl FUN_02003F3C ldrh r0, [r4, #0x0] bl FUN_02004900 ldr r1, _02004644 ; =0x000003E9 cmp r0, r1 beq _02004630 add r1, r1, #0x2 cmp r0, r1 beq _02004630 add r0, r7, #0x0 mov r1, #0x4 bl FUN_02003FA8 bl ErrorHandling b _02004638 _02004630: ldrh r0, [r4, #0x0] mov r1, #0x4 bl FUN_02003FA8 _02004638: mov r0, #0x1a bl FUN_02003D38 bl FUN_02003F3C _02004642: pop {r3-r7, pc} .balign 4 _02004644: .word 0x000003E9 thumb_func_start FUN_02004648 FUN_02004648: ; 0x02004648 push {r4, lr} add r4, r0, #0x0 mov r0, #0x17 bl FUN_02003D38 bl FUN_020051AC mov r0, #0x2 bl FUN_02004748 bl FUN_02003F64 mov r0, #0x5 bl FUN_02004180 mov r0, #0x19 bl FUN_02003D38 bl FUN_02003F3C mov r0, #0x1 bl FUN_02004DBC add r0, r4, #0x0 bl FUN_0200521C pop {r4, pc} .balign 4 thumb_func_start FUN_02004680 FUN_02004680: ; 0x02004680 push {r4, lr} add r4, r0, #0x0 mov r0, #0x17 bl FUN_02003D38 bl FUN_0200541C bl FUN_02004810 mov r0, #0x4 bl FUN_020044A8 add r0, r4, #0x0 bl FUN_0200521C pop {r4, pc} thumb_func_start FUN_020046A0 FUN_020046A0: ; 0x020046A0 push {r4, lr} add r4, r0, #0x0 mov r0, #0x17 bl FUN_02003D38 bl FUN_0200541C mov r0, #0x6 bl FUN_020044A8 mov r0, #0x1 bl FUN_02004DBC add r0, r4, #0x0 bl FUN_0200521C pop {r4, pc} .balign 4 thumb_func_start FUN_020046C4 FUN_020046C4: ; 0x020046C4 push {r4, lr} add r4, r0, #0x0 mov r0, #0x17 bl FUN_02003D38 bl FUN_0200541C mov r0, #0x7 bl FUN_020044A8 mov r0, #0x1 bl FUN_02004DBC add r0, r4, #0x0 bl FUN_0200521C pop {r4, pc} .balign 4 thumb_func_start FUN_020046E8 FUN_020046E8: ; 0x020046E8 push {r4, lr} add r4, r0, #0x0 bl FUN_02004738 add r0, r4, #0x0 bl FUN_02004180 mov r0, #0x1b bl FUN_02003D38 bl FUN_02003F3C pop {r4, pc} .balign 4 thumb_func_start FUN_02004704 FUN_02004704: ; 0x02004704 push {r3-r5, lr} add r5, r0, #0x0 mov r0, #0x17 add r4, r1, #0x0 bl FUN_02003D38 bl FUN_0200541C add r0, r5, #0x0 bl FUN_020044A8 add r0, r4, #0x0 bl FUN_0200521C pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02004724 FUN_02004724: ; 0x02004724 push {r4, lr} add r4, r0, #0x0 bl FUN_02003D30 bl FUN_020051AC add r0, r4, #0x0 bl FUN_0200521C pop {r4, pc} thumb_func_start FUN_02004738 FUN_02004738: ; 0x02004738 push {r3, lr} mov r0, #0x4 bl FUN_02004748 bl FUN_02003F64 pop {r3, pc} .balign 4 thumb_func_start FUN_02004748 FUN_02004748: ; 0x02004748 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02003D30 cmp r4, #0x7 blt _02004762 bl ErrorHandling mov r0, #0x1a bl FUN_02003D38 ldr r0, [r0, #0x0] pop {r3-r5, pc} _02004762: cmp r4, #0x6 bhi _020047C4 add r0, r4, r4 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02004772: ; jump table (using 16-bit offset) .short _02004780 - _02004772 - 2; case 0 .short _0200478A - _02004772 - 2; case 1 .short _02004794 - _02004772 - 2; case 2 .short _0200479E - _02004772 - 2; case 3 .short _020047A8 - _02004772 - 2; case 4 .short _020047B2 - _02004772 - 2; case 5 .short _020047BC - _02004772 - 2; case 6 _02004780: mov r0, #0x16 bl FUN_02003D38 add r5, r0, #0x0 b _020047C4 _0200478A: mov r0, #0x17 bl FUN_02003D38 add r5, r0, #0x0 b _020047C4 _02004794: mov r0, #0x18 bl FUN_02003D38 add r5, r0, #0x0 b _020047C4 _0200479E: mov r0, #0x19 bl FUN_02003D38 add r5, r0, #0x0 b _020047C4 _020047A8: mov r0, #0x1a bl FUN_02003D38 add r5, r0, #0x0 b _020047C4 _020047B2: mov r0, #0x1b bl FUN_02003D38 add r5, r0, #0x0 b _020047C4 _020047BC: mov r0, #0x1c bl FUN_02003D38 add r5, r0, #0x0 _020047C4: ldr r0, [r5, #0x0] pop {r3-r5, pc} thumb_func_start FUN_020047C8 FUN_020047C8: ; 0x020047C8 push {r4-r6, lr} add r5, r1, #0x0 cmp r0, #0x1 bne _020047DC mov r0, #0xb bl FUN_02003D38 add r6, r0, #0x0 mov r4, #0x0 b _020047EA _020047DC: cmp r0, #0x7 bne _0200480E mov r0, #0xc bl FUN_02003D38 add r6, r0, #0x0 mov r4, #0x7 _020047EA: cmp r5, #0x0 bne _02004800 add r0, r4, #0x0 bl FUN_02003FF4 bl FUN_020048EC lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_02004110 _02004800: add r0, r4, #0x0 bl FUN_02003FF4 add r1, r5, #0x0 blx FUN_020C0F8C strb r5, [r6, #0x0] _0200480E: pop {r4-r6, pc} thumb_func_start FUN_02004810 FUN_02004810: ; 0x02004810 push {r4, lr} mov r0, #0xb bl FUN_02003D38 add r4, r0, #0x0 mov r0, #0xc bl FUN_02003D38 mov r1, #0x0 strb r1, [r4, #0x0] strb r1, [r0, #0x0] pop {r4, pc} thumb_func_start FUN_02004828 FUN_02004828: ; 0x02004828 push {r3-r5, lr} add r5, r1, #0x0 add r4, r2, #0x0 bl FUN_02003FF4 add r1, r5, #0x0 add r2, r4, #0x0 blx FUN_020C0EF4 pop {r3-r5, pc} thumb_func_start FUN_0200483C FUN_0200483C: ; 0x0200483C push {r4, lr} add r4, r1, #0x0 bpl _02004844 mov r4, #0x0 _02004844: cmp r4, #0x7f ble _0200484A mov r4, #0x7f _0200484A: bl FUN_02003FF4 add r1, r4, #0x0 blx FUN_020C0F30 pop {r4, pc} .balign 4 thumb_func_start FUN_02004858 FUN_02004858: ; 0x02004858 push {r3-r5, lr} add r5, r1, #0x0 blx FUN_020C23FC cmp r5, #0x1 beq _02004868 cmp r5, #0x8 bne _0200486C _02004868: mov r4, #0x7f b _02004872 _0200486C: cmp r0, #0x0 beq _0200488A ldrb r4, [r0, #0x2] _02004872: bl FUN_020313EC cmp r0, #0x1 bne _0200488A add r0, r4, #0x0 mov r1, #0x5 blx _s32_div_f add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_0200483C _0200488A: pop {r3-r5, pc} thumb_func_start FUN_0200488C FUN_0200488C: ; 0x0200488C push {r4, lr} add r4, r1, #0x0 bl FUN_020048D0 bl FUN_02004018 add r1, r4, #0x0 bl FUN_0200483C pop {r4, pc} thumb_func_start FUN_020048A0 FUN_020048A0: ; 0x020048A0 push {r3-r5, lr} add r5, r1, #0x0 add r4, r2, #0x0 bl FUN_02003FF4 mov r2, #0x0 mvn r2, r2 add r1, r5, #0x0 add r3, r2, #0x0 str r4, [sp, #0x0] blx FUN_020C3910 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020048BC FUN_020048BC: ; 0x020048BC push {r4, lr} add r4, r0, #0x0 bpl _020048C6 bl ErrorHandling _020048C6: add r0, r4, #0x0 blx FUN_020C0F50 pop {r4, pc} .balign 4 thumb_func_start FUN_020048D0 FUN_020048D0: ; 0x020048D0 push {r3, lr} cmp r0, #0x0 bne _020048DA mov r0, #0xff pop {r3, pc} _020048DA: blx FUN_020C23FC cmp r0, #0x0 bne _020048E6 mov r0, #0xff pop {r3, pc} _020048E6: ldrb r0, [r0, #0x5] pop {r3, pc} .balign 4 thumb_func_start FUN_020048EC FUN_020048EC: ; 0x020048EC ldr r3, _020048F0 ; =FUN_020C0E14 bx r3 .balign 4 _020048F0: .word FUN_020C0E14 thumb_func_start FUN_020048F4 FUN_020048F4: ; 0x020048F4 push {r3, lr} bl FUN_02004900 blx FUN_020C22D0 pop {r3, pc} thumb_func_start FUN_02004900 FUN_02004900: ; 0x02004900 push {r3, lr} blx FUN_020C23FC cmp r0, #0x0 bne _0200490E mov r0, #0x0 pop {r3, pc} _0200490E: ldrh r0, [r0, #0x0] pop {r3, pc} .balign 4 thumb_func_start FUN_02004914 FUN_02004914: ; 0x02004914 ldr r3, _02004918 ; =MIC_StartAutoSampling bx r3 .balign 4 _02004918: .word MIC_StartAutoSampling thumb_func_start FUN_0200491C FUN_0200491C: ; 0x0200491C push {r3, lr} bl FUN_02003D30 blx MIC_StopAutoSampling pop {r3, pc} thumb_func_start FUN_02004928 FUN_02004928: ; 0x02004928 push {r3, lr} blx MIC_DoSamplingAsync pop {r3, pc} thumb_func_start FUN_02004930 FUN_02004930: ; 0x02004930 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02003D30 mov r0, #0xf bl FUN_02003D38 add r6, r0, #0x0 mov r0, #0x10 bl FUN_02003D38 add r4, r0, #0x0 cmp r5, #0xe beq _02004954 cmp r5, #0xf beq _02004954 bl ErrorHandling _02004954: cmp r5, #0xe bne _02004962 ldrb r0, [r6, #0x0] cmp r0, #0x0 bne _02004962 bl ErrorHandling _02004962: cmp r5, #0xf bne _02004970 ldrb r0, [r4, #0x0] cmp r0, #0x0 bne _02004970 bl ErrorHandling _02004970: cmp r5, #0xe bne _0200497C mov r0, #0x0 bl FUN_02003D38 pop {r4-r6, pc} _0200497C: mov r0, #0x1 bl FUN_02003D38 pop {r4-r6, pc} thumb_func_start FUN_02004984 FUN_02004984: ; 0x02004984 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02003D30 mov r0, #0xf bl FUN_02003D38 add r6, r0, #0x0 mov r0, #0x10 bl FUN_02003D38 add r4, r0, #0x0 cmp r5, #0xe beq _020049A8 cmp r5, #0xf beq _020049A8 bl ErrorHandling _020049A8: cmp r5, #0xe bne _020049D6 ldrb r0, [r6, #0x0] cmp r0, #0x0 bne _020049D0 mov r0, #0x0 bl FUN_02003D38 add r4, r0, #0x0 add r0, r5, #0x0 blx FUN_020C0688 str r0, [r4, #0x0] cmp r0, #0x0 bne _020049CA mov r0, #0x0 pop {r4-r6, pc} _020049CA: mov r0, #0x1 strb r0, [r6, #0x0] b _020049FE _020049D0: bl ErrorHandling b _020049FE _020049D6: ldrb r0, [r4, #0x0] cmp r0, #0x0 bne _020049FA mov r0, #0x1 bl FUN_02003D38 add r6, r0, #0x0 add r0, r5, #0x0 blx FUN_020C0688 str r0, [r6, #0x0] cmp r0, #0x0 bne _020049F4 mov r0, #0x0 pop {r4-r6, pc} _020049F4: mov r0, #0x1 strb r0, [r4, #0x0] b _020049FE _020049FA: bl ErrorHandling _020049FE: mov r0, #0x1 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02004A04 FUN_02004A04: ; 0x02004A04 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02003D30 mov r0, #0xf bl FUN_02003D38 add r6, r0, #0x0 mov r0, #0x10 bl FUN_02003D38 add r4, r0, #0x0 cmp r5, #0xe beq _02004A2A cmp r5, #0xf beq _02004A2A bl ErrorHandling pop {r4-r6, pc} _02004A2A: cmp r5, #0xe bne _02004A4C ldrb r0, [r6, #0x0] cmp r0, #0x1 bne _02004A46 add r0, r5, #0x0 bl FUN_02004930 ldr r0, [r0, #0x0] blx FUN_020C0670 mov r0, #0x0 strb r0, [r6, #0x0] pop {r4-r6, pc} _02004A46: bl ErrorHandling pop {r4-r6, pc} _02004A4C: ldrb r0, [r4, #0x0] cmp r0, #0x1 bne _02004A64 add r0, r5, #0x0 bl FUN_02004930 ldr r0, [r0, #0x0] blx FUN_020C0670 mov r0, #0x0 strb r0, [r4, #0x0] pop {r4-r6, pc} _02004A64: bl ErrorHandling pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02004A6C FUN_02004A6C: ; 0x02004A6C push {r3-r5, lr} sub sp, #0x18 add r3, r0, #0x0 ldr r0, [r3, #0x10] add r4, r1, #0x0 str r0, [sp, #0x0] ldr r0, [r3, #0x14] str r0, [sp, #0x4] ldr r0, [r3, #0x18] str r0, [sp, #0x8] ldr r0, [r3, #0x1c] str r0, [sp, #0xc] ldr r0, [r3, #0x20] str r0, [sp, #0x10] ldr r0, [r3, #0x24] str r0, [sp, #0x14] ldr r0, [r3, #0x0] ldr r1, [r3, #0x4] ldr r2, [r3, #0x8] ldr r0, [r0, #0x0] ldr r3, [r3, #0xc] blx FUN_020C054C add r5, r0, #0x0 bne _02004AA4 add r0, r4, #0x0 bl FUN_02004A04 _02004AA4: add r0, r5, #0x0 add sp, #0x18 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02004AAC FUN_02004AAC: ; 0x02004AAC push {r3, lr} bl FUN_02004930 ldr r0, [r0, #0x0] blx FUN_020C0510 pop {r3, pc} .balign 4 thumb_func_start FUN_02004ABC FUN_02004ABC: ; 0x02004ABC push {r3, lr} bl FUN_02004930 ldr r0, [r0, #0x0] blx FUN_020C03B8 pop {r3, pc} .balign 4 thumb_func_start FUN_02004ACC FUN_02004ACC: ; 0x02004ACC push {r4, lr} add r4, r1, #0x0 cmp r4, #0x7f bls _02004AD6 mov r4, #0x7f _02004AD6: bl FUN_02004930 ldr r0, [r0, #0x0] add r1, r4, #0x0 blx FUN_020C041C pop {r4, pc} thumb_func_start FUN_02004AE4 FUN_02004AE4: ; 0x02004AE4 push {r4, lr} add r4, r1, #0x0 bl FUN_02004930 ldr r0, [r0, #0x0] add r1, r4, #0x0 blx FUN_020C044C pop {r4, pc} .balign 4 thumb_func_start FUN_02004AF8 FUN_02004AF8: ; 0x02004AF8 push {r3-r5, lr} add r4, r0, #0x0 add r5, r1, #0x0 bl FUN_020313EC cmp r0, #0x1 bne _02004B20 add r0, r4, #0x0 bl FUN_02004930 add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x5 blx _s32_div_f add r1, r0, #0x0 ldr r0, [r4, #0x0] blx FUN_020C04DC pop {r3-r5, pc} _02004B20: add r0, r4, #0x0 bl FUN_02004930 ldr r0, [r0, #0x0] add r1, r5, #0x0 blx FUN_020C04DC pop {r3-r5, pc} thumb_func_start FUN_02004B30 FUN_02004B30: ; 0x02004B30 push {r3-r7, lr} sub sp, #0x30 add r6, r0, #0x0 str r1, [sp, #0x0] str r2, [sp, #0x4] add r5, r3, #0x0 bl FUN_02003D30 mov r0, #0x21 bl FUN_02003D38 add r4, r0, #0x0 cmp r5, #0xe beq _02004B54 cmp r5, #0xf beq _02004B54 bl ErrorHandling _02004B54: add r0, r6, #0x0 blx FUN_020C226C add r7, r0, #0x0 bne _02004B68 bl ErrorHandling add sp, #0x30 mov r0, #0x0 pop {r3-r7, pc} _02004B68: ldr r0, [r7, #0x0] lsl r0, r0, #0x8 lsr r0, r0, #0x8 blx FUN_020C217C add r6, r0, #0x0 bne _02004B80 bl ErrorHandling add sp, #0x30 mov r0, #0x0 pop {r3-r7, pc} _02004B80: cmp r5, #0xe bne _02004BCE ldr r0, [sp, #0x48] add r1, r6, #0x0 bl FUN_02016998 str r0, [r4, #0x0] cmp r0, #0x0 bne _02004B9C bl ErrorHandling add sp, #0x30 mov r0, #0x0 pop {r3-r7, pc} _02004B9C: mov r1, #0x0 add r2, r6, #0x0 blx FUN_020DF4A4 ldr r0, [r7, #0x0] ldr r1, [r4, #0x0] lsl r0, r0, #0x8 lsr r0, r0, #0x8 add r2, r6, #0x0 mov r3, #0x0 blx FUN_020C2104 mov r1, #0x0 mvn r1, r1 cmp r0, r1 bne _02004BC6 bl ErrorHandling add sp, #0x30 mov r0, #0x0 pop {r3-r7, pc} _02004BC6: ldr r0, [r4, #0x0] add r1, r6, #0x0 bl FUN_02004C1C _02004BCE: add r0, r5, #0x0 bl FUN_02004930 mov r1, #0x0 str r1, [sp, #0xc] str r0, [sp, #0x8] ldr r0, [r4, #0x0] str r0, [sp, #0x10] ldr r0, _02004C18 ; =0x00003443 str r1, [sp, #0x14] str r0, [sp, #0x20] ldr r0, [sp, #0x0] str r1, [sp, #0x18] str r0, [sp, #0x24] mov r0, #0x6 lsl r0, r0, #0xc str r0, [sp, #0x28] ldr r0, [sp, #0x4] add r1, r5, #0x0 str r0, [sp, #0x2c] add r0, sp, #0x8 str r6, [sp, #0x1c] bl FUN_02004A6C add r4, r0, #0x0 ldr r1, [sp, #0x0] add r0, r5, #0x0 bl FUN_02004AF8 mov r0, #0xe bl FUN_02003D38 mov r1, #0x1 strb r1, [r0, #0x0] add r0, r4, #0x0 add sp, #0x30 pop {r3-r7, pc} .balign 4 _02004C18: .word 0x00003443 thumb_func_start FUN_02004C1C FUN_02004C1C: ; 0x02004C1C push {r3-r6} mov r5, #0x0 lsr r6, r1, #0x1 beq _02004C36 sub r2, r1, #0x1 _02004C26: sub r3, r2, r5 ldrb r4, [r0, r5] ldrb r1, [r0, r3] strb r1, [r0, r5] add r5, r5, #0x1 strb r4, [r0, r3] cmp r5, r6 blo _02004C26 _02004C36: pop {r3-r6} bx lr .balign 4 thumb_func_start FUN_02004C3C FUN_02004C3C: ; 0x02004C3C push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02003D30 mov r0, #0xe bl FUN_02003D38 add r4, r0, #0x0 mov r0, #0x21 bl FUN_02003D38 add r6, r0, #0x0 cmp r5, #0xe beq _02004C60 cmp r5, #0xf beq _02004C60 bl ErrorHandling _02004C60: add r0, r5, #0x0 bl FUN_02004AAC ldrb r0, [r4, #0x0] cmp r0, #0x1 bne _02004C76 mov r0, #0x0 strb r0, [r4, #0x0] ldr r0, [r6, #0x0] bl FUN_02016A18 _02004C76: pop {r4-r6, pc} thumb_func_start FUN_02004C78 FUN_02004C78: ; 0x02004C78 ldr r3, _02004C7C ; =FUN_020C1E58 bx r3 .balign 4 _02004C7C: .word FUN_020C1E58 thumb_func_start FUN_02004C80 FUN_02004C80: ; 0x02004C80 push {r3-r4, lr} sub sp, #0x4 add r4, r0, #0x0 bl FUN_02003D30 mov r0, #0x3 bl FUN_02003D38 mov r1, #0x1 mov r3, #0xfa lsl r1, r1, #0xc mov r2, #0x0 lsl r3, r3, #0x6 str r4, [sp, #0x0] blx FUN_020C1FF0 add sp, #0x4 pop {r3-r4, pc} thumb_func_start FUN_02004CA4 FUN_02004CA4: ; 0x02004CA4 ldr r3, _02004CA8 ; =FUN_020C1F54 bx r3 .balign 4 _02004CA8: .word FUN_020C1F54 thumb_func_start FUN_02004CAC FUN_02004CAC: ; 0x02004CAC ldr r3, _02004CB0 ; =FUN_020C1FA4 bx r3 .balign 4 _02004CB0: .word FUN_020C1FA4 thumb_func_start FUN_02004CB4 FUN_02004CB4: ; 0x02004CB4 push {r3-r4, lr} sub sp, #0xc bl FUN_02003D30 mov r0, #0x4 bl FUN_02003D38 mov r1, #0x0 mov r2, #0x1c blx MI_CpuFill8 mov r0, #0x3 bl FUN_02003D38 add r4, r0, #0x0 mov r0, #0x4 bl FUN_02003D38 mov r2, #0x2 ldr r1, _02004CF4 ; =FUN_02005068 str r2, [sp, #0x0] str r1, [sp, #0x4] str r0, [sp, #0x8] lsl r1, r2, #0xb ldr r3, _02004CF8 ; =0x000055F0 add r0, r4, #0x0 mov r2, #0x0 blx FUN_020C1EA4 add sp, #0xc pop {r3-r4, pc} nop _02004CF4: .word FUN_02005068 _02004CF8: .word 0x000055F0 thumb_func_start FUN_02004CFC FUN_02004CFC: ; 0x02004CFC ldr r3, _02004D00 ; =FUN_020C1E68 bx r3 .balign 4 _02004D00: .word FUN_020C1E68 thumb_func_start FUN_02004D04 FUN_02004D04: ; 0x02004D04 push {r4, lr} add r4, r0, #0x0 mov r0, #0x13 bl FUN_02003D38 cmp r4, #0x8 ble _02004D16 mov r4, #0x8 b _02004D1C _02004D16: cmp r4, #0x0 bge _02004D1C mov r4, #0x0 _02004D1C: strb r4, [r0, #0x0] pop {r4, pc} thumb_func_start FUN_02004D20 FUN_02004D20: ; 0x02004D20 push {r3-r5, lr} add r5, r1, #0x0 add r4, r2, #0x0 bl FUN_02003FF4 add r1, r5, #0x0 add r2, r4, #0x0 blx FUN_020C0EA4 pop {r3-r5, pc} thumb_func_start FUN_02004D34 FUN_02004D34: ; 0x02004D34 push {r3-r5, lr} add r5, r1, #0x0 add r4, r2, #0x0 bl FUN_020048D0 bl FUN_02004018 add r1, r5, #0x0 add r2, r4, #0x0 bl FUN_02004D20 pop {r3-r5, pc} thumb_func_start FUN_02004D4C FUN_02004D4C: ; 0x02004D4C push {r3-r5, lr} add r5, r1, #0x0 add r4, r2, #0x0 bl FUN_02003FF4 add r1, r5, #0x0 add r2, r4, #0x0 blx FUN_020C0E7C pop {r3-r5, pc} thumb_func_start FUN_02004D60 FUN_02004D60: ; 0x02004D60 push {r4, lr} add r4, r0, #0x0 blx FUN_020C0174 ldr r0, _02004D70 ; =0x021C3DD8 str r4, [r0, #0x0] pop {r4, pc} nop _02004D70: .word 0x021C3DD8 thumb_func_start FUN_02004D74 FUN_02004D74: ; 0x02004D74 push {r4, lr} add r4, r0, #0x0 mov r0, #0x6 bl FUN_02003D38 str r4, [r0, #0x0] pop {r4, pc} .balign 4 thumb_func_start FUN_02004D84 FUN_02004D84: ; 0x02004D84 push {r4, lr} add r4, r0, #0x0 mov r0, #0x7 bl FUN_02003D38 str r4, [r0, #0x0] pop {r4, pc} .balign 4 thumb_func_start FUN_02004D94 FUN_02004D94: ; 0x02004D94 push {r3, lr} mov r0, #0x7 bl FUN_02003D38 ldrh r1, [r0, #0x0] cmp r1, #0x0 bne _02004DAA mov r1, #0x0 strh r1, [r0, #0x0] add r0, r1, #0x0 pop {r3, pc} _02004DAA: sub r1, r1, #0x1 strh r1, [r0, #0x0] ldrh r0, [r0, #0x0] pop {r3, pc} .balign 4 thumb_func_start FUN_02004DB4 FUN_02004DB4: ; 0x02004DB4 ldr r0, _02004DB8 ; =0x021C3DE0 bx lr .balign 4 _02004DB8: .word 0x021C3DE0 thumb_func_start FUN_02004DBC FUN_02004DBC: ; 0x02004DBC push {r4, lr} add r4, r0, #0x0 mov r0, #0x12 bl FUN_02003D38 strb r4, [r0, #0x0] pop {r4, pc} .balign 4 thumb_func_start FUN_02004DCC FUN_02004DCC: ; 0x02004DCC push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 mov r0, #0x15 add r6, r1, #0x0 add r7, r2, #0x0 str r3, [sp, #0x8] bl FUN_02003D38 add r4, r0, #0x0 add r0, sp, #0x10 ldrb r0, [r0, #0x10] ldr r3, [sp, #0x8] add r1, r6, #0x0 str r0, [sp, #0x0] ldr r0, [sp, #0x24] add r2, r7, #0x0 str r0, [sp, #0x4] add r0, r5, #0x0 bl FUN_02004E44 mov r0, #0x0 strb r0, [r4, #0x0] mov r0, #0x5 bl FUN_02003CE8 mov r0, #0x1 add sp, #0xc pop {r4-r7, pc} .balign 4 thumb_func_start FUN_02004E08 FUN_02004E08: ; 0x02004E08 push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 mov r0, #0x8 add r6, r1, #0x0 add r7, r2, #0x0 str r3, [sp, #0x8] bl FUN_02003D38 add r4, r0, #0x0 add r0, sp, #0x10 ldrb r0, [r0, #0x14] ldr r3, [sp, #0x8] add r1, r6, #0x0 str r0, [sp, #0x0] ldr r0, [sp, #0x28] add r2, r7, #0x0 str r0, [sp, #0x4] add r0, r5, #0x0 bl FUN_02004E44 ldr r0, [sp, #0x20] str r0, [r4, #0x0] mov r0, #0x6 bl FUN_02003CE8 mov r0, #0x1 add sp, #0xc pop {r4-r7, pc} .balign 4 thumb_func_start FUN_02004E44 FUN_02004E44: ; 0x02004E44 push {r3-r7, lr} add r6, r2, #0x0 mov r0, #0x2 add r5, r1, #0x0 add r7, r3, #0x0 bl FUN_02003D38 add r4, r0, #0x0 mov r0, #0x0 add r1, r6, #0x0 bl FUN_020053CC mov r0, #0x0 bl FUN_02004110 add r0, r5, #0x0 bl FUN_02004130 add r0, r7, #0x0 bl FUN_02004D84 add r0, r5, #0x0 bl FUN_020048F4 str r0, [r4, #0x0] add r0, sp, #0x8 ldrb r0, [r0, #0x10] bl FUN_02004DBC pop {r3-r7, pc} thumb_func_start FUN_02004E80 FUN_02004E80: ; 0x02004E80 cmp r0, #0x0 bne _02004E88 mov r0, #0x0 bx lr _02004E88: add r0, #0xc bx lr thumb_func_start FUN_02004E8C FUN_02004E8C: ; 0x02004E8C cmp r0, #0x0 bne _02004E94 mov r0, #0x0 bx lr _02004E94: ldr r0, [r0, #0x8] bx lr thumb_func_start FUN_02004E98 FUN_02004E98: ; 0x02004E98 push {r3-r5, lr} add r5, r0, #0x0 mov r0, #0x5 bl FUN_02004748 bl FUN_02003F64 lsl r0, r5, #0x10 lsr r4, r0, #0x10 ldr r0, _02004ECC ; =0x000001B9 cmp r4, r0 beq _02004EBC add r0, #0x36 cmp r5, r0 bgt _02004EBA cmp r5, #0x0 bne _02004EBC _02004EBA: mov r4, #0x1 _02004EBC: add r0, r4, #0x0 bl FUN_02003FC4 add r0, r4, #0x0 bl FUN_02004ED0 pop {r3-r5, pc} nop _02004ECC: .word 0x000001B9 thumb_func_start FUN_02004ED0 FUN_02004ED0: ; 0x02004ED0 push {r3-r5, lr} add r5, r0, #0x0 mov r0, #0x20 bl FUN_02003D38 add r4, r0, #0x0 lsl r0, r5, #0x10 ldr r1, _02004F24 ; =0x000001B9 lsr r0, r0, #0x10 cmp r0, r1 beq _02004EF2 add r1, #0x36 cmp r5, r1 bgt _02004EF0 cmp r5, #0x0 bne _02004EF2 _02004EF0: mov r0, #0x1 _02004EF2: blx FUN_020C226C cmp r0, #0x0 bne _02004F02 bl ErrorHandling mov r0, #0x0 pop {r3-r5, pc} _02004F02: ldr r0, [r0, #0x0] lsl r0, r0, #0x8 lsr r0, r0, #0x8 blx FUN_020C20DC cmp r0, #0x0 bne _02004F18 bl ErrorHandling mov r0, #0x0 pop {r3-r5, pc} _02004F18: mov r1, #0x0 blx SND_GetWaveDataAddress str r0, [r4, #0x0] pop {r3-r5, pc} nop _02004F24: .word 0x000001B9 thumb_func_start FUN_02004F28 FUN_02004F28: ; 0x02004F28 push {r4-r6, lr} mov r0, #0x1 add r5, r1, #0x0 add r6, r2, #0x0 bl FUN_02004F64 mov r1, #0x3 add r4, r0, #0x0 add r0, r6, #0x0 lsl r1, r1, #0x8 ldr r5, [r5, #0x8] blx _s32_div_f lsl r1, r0, #0x1 bpl _02004F50 mov r0, #0x20 blx _s32_div_f neg r0, r0 b _02004F5A _02004F50: cmp r1, #0x0 bne _02004F58 mov r0, #0x20 b _02004F5A _02004F58: lsl r0, r1, #0x5 _02004F5A: mul r0, r4 cmp r0, r5 blo _02004F62 mov r0, #0x0 _02004F62: pop {r4-r6, pc} thumb_func_start FUN_02004F64 FUN_02004F64: ; 0x02004F64 push {r3, lr} bl FUN_02003FF4 blx FUN_020C0DD4 pop {r3, pc} thumb_func_start FUN_02004F70 FUN_02004F70: ; 0x02004F70 push {r3-r7, lr} sub sp, #0x8 str r0, [sp, #0x0] add r4, r1, #0x0 add r6, r2, #0x0 ldr r1, [sp, #0x0] mov r0, #0x1 add r2, r3, #0x0 bl FUN_02004F28 add r1, r0, #0x0 mov r12, r0 sub r1, #0x64 bpl _02004F8E mov r1, #0x0 _02004F8E: ldr r0, [sp, #0x0] mov r3, #0x0 add r0, r0, r1 ldrb r0, [r0, #0xc] add r7, r3, #0x0 cmp r0, #0x80 bhs _02004FA0 mov r0, #0x1 b _02004FA2 _02004FA0: sub r0, r3, #0x1 _02004FA2: lsl r0, r0, #0x18 asr r5, r0, #0x18 mov r0, r12 cmp r1, r0 bhs _02005022 _02004FAC: mov r0, #0x0 cmp r5, #0x0 ble _02004FC6 ldr r2, [sp, #0x0] add r2, r2, r1 str r2, [sp, #0x4] ldrb r2, [r2, #0xc] cmp r2, #0x80 bls _02004FC2 mov r0, #0x1 b _02004FD8 _02004FC2: add r3, r3, #0x1 b _02004FD8 _02004FC6: ldr r2, [sp, #0x0] add r2, r2, r1 str r2, [sp, #0x4] ldrb r2, [r2, #0xc] cmp r2, #0x80 bhs _02004FD6 mov r0, #0x1 b _02004FD8 _02004FD6: add r3, r3, #0x1 _02004FD8: cmp r0, #0x1 bne _0200501A ldr r5, _02005064 ; =0x020ECB8C mov r2, #0x0 _02004FE0: ldrb r0, [r5, #0x0] cmp r3, r0 bge _02004FEA add r7, r2, #0x0 b _02004FF2 _02004FEA: add r2, r2, #0x1 add r5, r5, #0x1 cmp r2, #0x9 blt _02004FE0 _02004FF2: cmp r7, r6 blt _02004FF8 sub r7, r6, #0x1 _02004FF8: cmp r3, #0x0 beq _02005006 sub r0, r6, #0x1 sub r0, r0, r7 ldrb r2, [r4, r0] add r2, r2, #0x1 strb r2, [r4, r0] _02005006: ldr r0, [sp, #0x4] mov r3, #0x0 ldrb r0, [r0, #0xc] cmp r0, #0x80 bhs _02005014 mov r0, #0x1 b _02005016 _02005014: sub r0, r3, #0x1 _02005016: lsl r0, r0, #0x18 asr r5, r0, #0x18 _0200501A: add r1, r1, #0x2 mov r0, r12 cmp r1, r0 blo _02004FAC _02005022: mov r2, #0x0 cmp r6, #0x0 ble _02005038 mov r0, #0x9 _0200502A: ldrb r1, [r4, r2] cmp r1, #0xa blo _02005032 strb r0, [r4, r2] _02005032: add r2, r2, #0x1 cmp r2, r6 blt _0200502A _02005038: sub r2, r6, #0x1 mov r3, #0x0 cmp r2, #0x0 ble _02005060 _02005040: ldrb r0, [r4, r3] add r1, r4, r3 cmp r0, #0x0 bne _0200505A ldrb r0, [r1, #0x1] cmp r0, #0x0 beq _0200505A add r0, r3, #0x1 ldrb r0, [r4, r0] add sp, #0x8 lsr r0, r0, #0x1 strb r0, [r1, #0x0] pop {r3-r7, pc} _0200505A: add r3, r3, #0x1 cmp r3, r2 blt _02005040 _02005060: add sp, #0x8 pop {r3-r7, pc} .balign 4 _02005064: .word 0x020ECB8C thumb_func_start FUN_02005068 FUN_02005068: ; 0x02005068 push {r3-r7, lr} sub sp, #0x30 add r5, r0, #0x0 ldr r0, [sp, #0x48] add r6, r1, #0x0 str r0, [sp, #0xc] mov r0, #0x13 str r2, [sp, #0x0] add r4, r3, #0x0 bl FUN_02003D38 add r7, r0, #0x0 cmp r4, #0x1 beq _0200508A ldr r0, [sp, #0x0] lsr r0, r0, #0x1 str r0, [sp, #0x0] _0200508A: ldrb r2, [r7, #0x0] cmp r2, #0x0 beq _0200515A mov r0, #0x0 cmp r2, #0x0 ble _020050BC add r1, sp, #0x10 _02005098: ldr r3, [sp, #0x0] sub r2, r3, r2 add r2, r0, r2 lsl r2, r2, #0x1 ldrsh r2, [r5, r2] strh r2, [r1, #0x0] ldrb r3, [r7, #0x0] ldr r2, [sp, #0x0] sub r2, r2, r3 add r2, r0, r2 lsl r2, r2, #0x1 ldrsh r2, [r6, r2] add r0, r0, #0x1 strh r2, [r1, #0x2] ldrb r2, [r7, #0x0] add r1, r1, #0x4 cmp r0, r2 blt _02005098 _020050BC: ldr r0, [sp, #0x0] sub r4, r0, #0x1 sub r0, r2, #0x1 cmp r4, r0 blt _02005126 lsl r1, r4, #0x1 add r0, r5, r1 str r0, [sp, #0x8] add r0, r6, r1 str r0, [sp, #0x4] _020050D0: mov r0, #0x0 add r1, r0, #0x0 cmp r2, #0x0 ble _020050E6 _020050D8: sub r3, r4, r1 lsl r3, r3, #0x1 ldrsh r3, [r5, r3] add r1, r1, #0x1 add r0, r0, r3 cmp r1, r2 blt _020050D8 _020050E6: add r1, r2, #0x0 blx _s32_div_f ldr r1, [sp, #0x8] strh r0, [r1, #0x0] mov r0, #0x0 ldrb r1, [r7, #0x0] add r2, r0, #0x0 cmp r1, #0x0 ble _02005108 _020050FA: sub r3, r4, r2 lsl r3, r3, #0x1 ldrsh r3, [r6, r3] add r2, r2, #0x1 add r0, r0, r3 cmp r2, r1 blt _020050FA _02005108: blx _s32_div_f ldr r1, [sp, #0x4] sub r4, r4, #0x1 strh r0, [r1, #0x0] ldr r0, [sp, #0x8] ldrb r2, [r7, #0x0] sub r0, r0, #0x2 str r0, [sp, #0x8] add r0, r1, #0x0 sub r0, r0, #0x2 str r0, [sp, #0x4] sub r0, r2, #0x1 cmp r4, r0 bge _020050D0 _02005126: mov r1, #0x0 cmp r2, #0x0 ble _0200514A add r0, sp, #0x10 mov r4, #0x2 _02005130: mov r2, #0x0 ldrsh r3, [r0, r2] ldr r2, [sp, #0xc] add r1, r1, #0x1 strh r3, [r2, #0x0] ldrsh r3, [r0, r4] add r0, r0, #0x4 strh r3, [r2, #0x2] add r2, r2, #0x4 str r2, [sp, #0xc] ldrb r2, [r7, #0x0] cmp r1, r2 blt _02005130 _0200514A: ldr r1, [sp, #0x0] add r0, r5, #0x0 blx DC_FlushRange ldr r1, [sp, #0x0] add r0, r6, #0x0 blx DC_FlushRange _0200515A: add sp, #0x30 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02005160 FUN_02005160: ; 0x02005160 ldr r3, _02005168 ; =FUN_020C1148 add r1, r0, #0x0 mov r0, #0x7 bx r3 .balign 4 _02005168: .word FUN_020C1148 thumb_func_start FUN_0200516C FUN_0200516C: ; 0x0200516C push {r3, lr} cmp r0, #0x0 bne _02005180 ldr r0, _020051A4 ; =0x000007FF bl FUN_02005160 mov r0, #0x0 bl FUN_02004CA4 b _0200519C _02005180: cmp r0, #0x1 ldr r0, _020051A8 ; =0x00007FFF bne _02005192 bl FUN_02005160 mov r0, #0x1e bl FUN_02004C80 b _0200519C _02005192: bl FUN_02005160 mov r0, #0xf bl FUN_02004C80 _0200519C: bl FUN_02004C78 pop {r3, pc} nop _020051A4: .word 0x000007FF _020051A8: .word 0x00007FFF thumb_func_start FUN_020051AC FUN_020051AC: ; 0x020051AC push {r3, lr} bl FUN_02005404 cmp r0, #0x0 bne _020051E0 mov r0, #0x0 bl FUN_02003FF4 bl FUN_020048EC mov r1, #0x0 mvn r1, r1 cmp r0, r1 beq _020051E0 bl FUN_02004124 ldr r1, _020051E8 ; =0x0000047E cmp r0, r1 beq _020051E0 bl FUN_02005454 mov r0, #0x1 add r1, r0, #0x0 bl FUN_020047C8 pop {r3, pc} _020051E0: bl FUN_0200541C pop {r3, pc} nop _020051E8: .word 0x0000047E thumb_func_start FUN_020051EC FUN_020051EC: ; 0x020051EC ldr r3, _020051F0 ; =FUN_020C1180 bx r3 .balign 4 _020051F0: .word FUN_020C1180 thumb_func_start FUN_020051F4 FUN_020051F4: ; 0x020051F4 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_020048D0 bl FUN_02004018 add r4, r0, #0x0 bl FUN_02003FF4 add r1, r5, #0x0 blx FUN_020C3980 add r6, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0200526C add r0, r6, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0200521C FUN_0200521C: ; 0x0200521C push {r4-r6, lr} add r5, r0, #0x0 bl FUN_020048D0 add r4, r0, #0x0 bl FUN_02004018 add r6, r0, #0x0 cmp r4, #0x7 bne _0200523E add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_02005288 add r4, r0, #0x0 b _02005258 _0200523E: cmp r4, #0x1 bne _02005250 add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_020052B8 add r4, r0, #0x0 b _02005258 _02005250: bl ErrorHandling mov r0, #0x0 pop {r4-r6, pc} _02005258: mov r0, #0x0 bl FUN_02004DBC add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_0200526C add r0, r4, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0200526C FUN_0200526C: ; 0x0200526C push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_02004110 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02004858 mov r0, #0x1 bl FUN_02003CE8 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02005288 FUN_02005288: ; 0x02005288 push {r3-r5, lr} add r5, r0, #0x0 mov r0, #0x3 add r4, r2, #0x0 bl FUN_02004748 bl FUN_02003F64 add r0, r5, #0x0 bl FUN_02003F90 mov r0, #0x1a bl FUN_02003D38 bl FUN_02003F3C add r0, r4, #0x0 bl FUN_02003FF4 add r1, r5, #0x0 blx FUN_020C3980 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020052B8 FUN_020052B8: ; 0x020052B8 push {r3-r6, lr} sub sp, #0x4 add r5, r0, #0x0 mov r0, #0x12 add r6, r2, #0x0 bl FUN_02003D38 mov r0, #0x1f bl FUN_02003D38 add r4, r0, #0x0 mov r0, #0x0 bl FUN_02003FF4 bl FUN_020048EC bl FUN_02004900 add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_020045C4 add r0, r6, #0x0 bl FUN_02003FF4 add r6, r0, #0x0 ldrh r0, [r4, #0x0] bl FUN_02004900 mov r1, #0x0 mvn r1, r1 add r2, r0, #0x0 add r0, r6, #0x0 add r3, r1, #0x0 str r5, [sp, #0x0] blx FUN_020C3910 add sp, #0x4 pop {r3-r6, pc} .balign 4 thumb_func_start FUN_02005308 FUN_02005308: ; 0x02005308 push {r3-r5, lr} add r5, r1, #0x0 cmp r0, #0x4 beq _02005318 bl ErrorHandling mov r0, #0x0 pop {r3-r5, pc} _02005318: add r0, r5, #0x0 bl FUN_020048D0 cmp r0, #0x7 beq _0200532A bl ErrorHandling mov r0, #0x0 pop {r3-r5, pc} _0200532A: add r0, r5, #0x0 mov r1, #0x1 bl FUN_02003FA8 mov r0, #0x7 bl FUN_02003FF4 add r1, r5, #0x0 blx FUN_020C3980 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02004110 mov r0, #0x1 bl FUN_02003CE8 add r0, r4, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02005350 FUN_02005350: ; 0x02005350 push {r4, lr} add r4, r0, #0x0 blx FUN_020C0FDC add r0, r4, #0x0 bl FUN_020048D0 cmp r0, #0xff beq _0200536E bl FUN_02004018 bl FUN_02003FF4 blx FUN_020C0F68 _0200536E: bl FUN_02005374 pop {r4, pc} thumb_func_start FUN_02005374 FUN_02005374: ; 0x02005374 push {r3, lr} mov r0, #0x0 bl FUN_02004110 mov r0, #0x0 bl FUN_02004130 mov r0, #0x0 bl FUN_02003CE8 pop {r3, pc} .balign 4 thumb_func_start FUN_0200538C FUN_0200538C: ; 0x0200538C push {r3-r7, lr} add r6, r0, #0x0 add r5, r1, #0x0 add r4, r2, #0x0 bl FUN_02004124 bl FUN_020048D0 cmp r0, #0xff beq _020053C8 bl FUN_02004018 add r7, r0, #0x0 cmp r4, #0x0 bne _020053B2 mov r1, #0x0 add r2, r1, #0x0 bl FUN_02004828 _020053B2: add r0, r7, #0x0 add r1, r6, #0x0 add r2, r5, #0x0 bl FUN_02004828 add r0, r5, #0x0 bl FUN_02004D74 mov r0, #0x3 bl FUN_02003CE8 _020053C8: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020053CC FUN_020053CC: ; 0x020053CC push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_02004124 bl FUN_020048D0 add r6, r0, #0x0 cmp r6, #0xff beq _02005402 bl FUN_02005404 cmp r0, #0x0 bne _020053FC add r0, r6, #0x0 bl FUN_02004018 add r1, r5, #0x0 add r2, r4, #0x0 bl FUN_02004828 add r0, r4, #0x0 bl FUN_02004D74 _020053FC: mov r0, #0x4 bl FUN_02003CE8 _02005402: pop {r4-r6, pc} thumb_func_start FUN_02005404 FUN_02005404: ; 0x02005404 push {r3, lr} mov r0, #0x6 bl FUN_02003D38 ldrh r0, [r0, #0x0] pop {r3, pc} thumb_func_start FUN_02005410 FUN_02005410: ; 0x02005410 push {r3, lr} bl FUN_020048D0 bl FUN_020048BC pop {r3, pc} thumb_func_start FUN_0200541C FUN_0200541C: ; 0x0200541C push {r3-r5, lr} mov r0, #0xf bl FUN_02003D38 add r5, r0, #0x0 mov r0, #0x10 bl FUN_02003D38 add r4, r0, #0x0 mov r0, #0x0 blx FUN_020C0F9C ldrb r0, [r5, #0x0] cmp r0, #0x1 bne _02005440 mov r0, #0xe bl FUN_02004AAC _02005440: ldrb r0, [r4, #0x0] cmp r0, #0x1 bne _0200544C mov r0, #0xf bl FUN_02004AAC _0200544C: mov r0, #0x0 bl FUN_02003CE8 pop {r3-r5, pc} thumb_func_start FUN_02005454 FUN_02005454: ; 0x02005454 push {r3-r7, lr} mov r0, #0xf bl FUN_02003D38 add r7, r0, #0x0 mov r0, #0x10 bl FUN_02003D38 add r6, r0, #0x0 mov r0, #0x7 bl FUN_02003FF4 mov r1, #0x0 blx FUN_020C10A4 bl FUN_02005374 mov r5, #0x0 add r4, r5, #0x0 _0200547A: add r0, r5, #0x3 add r1, r4, #0x0 bl FUN_020054F8 add r5, r5, #0x1 cmp r5, #0x4 blt _0200547A mov r0, #0x0 bl FUN_02005614 ldrb r0, [r7, #0x0] cmp r0, #0x1 bne _0200549A mov r0, #0xe bl FUN_02004AAC _0200549A: ldrb r0, [r6, #0x0] cmp r0, #0x1 bne _020054A6 mov r0, #0xf bl FUN_02004AAC _020054A6: pop {r3-r7, pc} thumb_func_start FUN_020054A8 FUN_020054A8: ; 0x020054A8 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_020054C8 add r6, r0, #0x0 ldr r1, _020054C4 ; =0x0000FFFF add r0, r5, #0x0 add r2, r4, #0x0 bl FUN_02005530 add r0, r6, #0x0 pop {r4-r6, pc} nop _020054C4: .word 0x0000FFFF thumb_func_start FUN_020054C8 FUN_020054C8: ; 0x020054C8 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_020048D0 bl FUN_02004018 add r4, r0, #0x0 bl FUN_02003FF4 add r1, r5, #0x0 blx FUN_020C3980 add r6, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02004858 add r0, r6, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_020054F0 FUN_020054F0: ; 0x020054F0 ldr r3, _020054F4 ; =FUN_020C0FDC bx r3 .balign 4 _020054F4: .word FUN_020C0FDC thumb_func_start FUN_020054F8 FUN_020054F8: ; 0x020054F8 push {r4, lr} add r4, r1, #0x0 bl FUN_02003FF4 add r1, r4, #0x0 blx FUN_020C10A4 pop {r4, pc} thumb_func_start FUN_02005508 FUN_02005508: ; 0x02005508 push {r3, lr} bl FUN_020048D0 bl FUN_020048BC pop {r3, pc} thumb_func_start FUN_02005514 FUN_02005514: ; 0x02005514 push {r4, lr} mov r4, #0x0 _02005518: add r0, r4, #0x3 bl FUN_020048BC cmp r0, #0x1 bne _02005526 mov r0, #0x1 pop {r4, pc} _02005526: add r4, r4, #0x1 cmp r4, #0x4 blt _02005518 mov r0, #0x0 pop {r4, pc} thumb_func_start FUN_02005530 FUN_02005530: ; 0x02005530 push {r3-r5, lr} add r5, r1, #0x0 add r4, r2, #0x0 bl FUN_020048D0 bl FUN_02004018 bl FUN_02003FF4 add r1, r5, #0x0 add r2, r4, #0x0 blx FUN_020C0E7C pop {r3-r5, pc} thumb_func_start FUN_0200554C FUN_0200554C: ; 0x0200554C push {r3-r7, lr} add r6, r0, #0x0 mov r0, #0x3 bl FUN_02004018 ldr r7, _02005574 ; =0x0000FFFF add r4, r0, #0x0 mov r5, #0x0 _0200555C: add r0, r4, r5 bl FUN_02003FF4 add r1, r7, #0x0 add r2, r6, #0x0 blx FUN_020C0E7C add r5, r5, #0x1 cmp r5, #0x4 blt _0200555C pop {r3-r7, pc} nop _02005574: .word 0x0000FFFF thumb_func_start FUN_02005578 FUN_02005578: ; 0x02005578 push {r3-r5, lr} add r5, r0, #0x0 mov r0, #0x11 bl FUN_02003D38 add r4, r0, #0x0 mov r0, #0x23 bl FUN_02003D38 ldr r1, _02005610 ; =0x000001B9 cmp r5, r1 beq _0200559C add r1, #0x36 cmp r5, r1 bhi _0200559A cmp r5, #0x0 bne _0200559C _0200559A: mov r5, #0x1 _0200559C: ldr r1, _02005610 ; =0x000001B9 cmp r5, r1 bne _020055BC mov r1, #0x0 ldr r0, [r0, #0x0] mov r2, #0x7f add r3, r1, #0x0 bl FUN_02005D48 cmp r0, #0x1 bne _020055BC mov r0, #0x0 bl FUN_02005E80 mov r0, #0x1 pop {r3-r5, pc} _020055BC: ldrb r0, [r4, #0x0] cmp r0, #0x0 bne _020055E8 mov r0, #0x0 bl FUN_02005614 mov r0, #0x1 bl FUN_02003FF4 mov r1, #0x2 str r1, [sp, #0x0] sub r1, r1, #0x3 add r2, r5, #0x0 add r3, r1, #0x0 blx FUN_020C3910 add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x1 bl FUN_02004858 b _02005606 _020055E8: mov r0, #0x8 bl FUN_02003FF4 mov r1, #0x2 str r1, [sp, #0x0] sub r1, r1, #0x3 add r2, r5, #0x0 add r3, r1, #0x0 blx FUN_020C3910 add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x8 bl FUN_02004858 _02005606: mov r0, #0x0 bl FUN_02005E80 add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 _02005610: .word 0x000001B9 thumb_func_start FUN_02005614 FUN_02005614: ; 0x02005614 push {r4-r6, lr} add r5, r0, #0x0 mov r0, #0xf bl FUN_02003D38 add r6, r0, #0x0 mov r0, #0x10 bl FUN_02003D38 add r4, r0, #0x0 mov r0, #0xe bl FUN_02003D38 mov r0, #0x1 bl FUN_02003FF4 add r1, r5, #0x0 blx FUN_020C10A4 mov r0, #0x8 bl FUN_02003FF4 add r1, r5, #0x0 blx FUN_020C10A4 ldrb r0, [r6, #0x0] cmp r0, #0x1 bne _02005658 mov r0, #0xe bl FUN_02004C3C mov r0, #0xe bl FUN_02004A04 _02005658: ldrb r0, [r4, #0x0] cmp r0, #0x1 bne _0200566A mov r0, #0xf bl FUN_02004C3C mov r0, #0xf bl FUN_02004A04 _0200566A: bl FUN_02005DFC pop {r4-r6, pc} thumb_func_start FUN_02005670 FUN_02005670: ; 0x02005670 push {r3-r5, lr} mov r0, #0xf bl FUN_02003D38 add r5, r0, #0x0 mov r0, #0x10 bl FUN_02003D38 add r4, r0, #0x0 mov r0, #0xe bl FUN_02003D38 ldrb r0, [r5, #0x0] cmp r0, #0x1 bne _02005696 mov r0, #0xe bl FUN_02004ABC pop {r3-r5, pc} _02005696: ldrb r0, [r4, #0x0] cmp r0, #0x1 bne _020056A4 mov r0, #0xf bl FUN_02004ABC pop {r3-r5, pc} _020056A4: mov r0, #0x0 bl FUN_020048BC pop {r3-r5, pc} thumb_func_start FUN_020056AC FUN_020056AC: ; 0x020056AC push {r3-r7, lr} sub sp, #0x20 str r0, [sp, #0x4] mov r0, #0xf str r1, [sp, #0x8] add r5, r2, #0x0 add r6, r3, #0x0 ldr r7, [sp, #0x38] bl FUN_02003D38 str r0, [sp, #0x14] mov r0, #0x10 bl FUN_02003D38 str r0, [sp, #0x10] mov r0, #0x11 bl FUN_02003D38 add r4, r0, #0x0 mov r0, #0x1d bl FUN_02003D38 str r0, [sp, #0xc] mov r0, #0x23 bl FUN_02003D38 lsr r0, r5, #0x1f add r0, r5, r0 asr r0, r0, #0x1 str r0, [sp, #0x1c] add r0, #0x40 str r0, [sp, #0x1c] add r0, r6, #0x0 str r0, [sp, #0x18] sub r0, #0x1e str r0, [sp, #0x18] cmp r0, #0x0 bgt _020056FC mov r0, #0x1 str r0, [sp, #0x18] _020056FC: mov r0, #0x0 strb r0, [r4, #0x0] ldr r0, [sp, #0x14] ldrb r0, [r0, #0x0] cmp r0, #0x1 bne _02005714 mov r0, #0xe bl FUN_02004C3C mov r0, #0xe bl FUN_02004A04 _02005714: ldr r0, [sp, #0x10] ldrb r0, [r0, #0x0] cmp r0, #0x1 bne _02005728 mov r0, #0xf bl FUN_02004C3C mov r0, #0xf bl FUN_02004A04 _02005728: ldr r4, [sp, #0x8] ldr r0, _02005AB4 ; =0x000001B9 add r1, r4, #0x0 cmp r1, r0 beq _0200573E add r0, #0x36 cmp r1, r0 bhi _0200573C add r0, r4, #0x0 bne _0200573E _0200573C: mov r4, #0x1 _0200573E: ldr r0, _02005AB4 ; =0x000001B9 ldr r1, [sp, #0x8] cmp r1, r0 bne _020057B4 ldr r1, [sp, #0x4] cmp r1, #0xc bhi _020057AE add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02005758: ; jump table (using 16-bit offset) .short _02005772 - _02005758 - 2; case 0 .short _02005772 - _02005758 - 2; case 1 .short _02005772 - _02005758 - 2; case 2 .short _020057AE - _02005758 - 2; case 3 .short _020057AE - _02005758 - 2; case 4 .short _02005772 - _02005758 - 2; case 5 .short _020057AE - _02005758 - 2; case 6 .short _020057AE - _02005758 - 2; case 7 .short _020057AE - _02005758 - 2; case 8 .short _020057AE - _02005758 - 2; case 9 .short _020057AE - _02005758 - 2; case 10 .short _02005772 - _02005758 - 2; case 11 .short _02005772 - _02005758 - 2; case 12 _02005772: bl FUN_02005578 ldr r0, [sp, #0xc] ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _02005794 ldr r1, _02005AB8 ; =0x0000FFFF mov r0, #0x1 add r2, r5, #0x0 bl FUN_02004D4C add r0, r4, #0x0 mov r1, #0x1 add r2, r6, #0x0 bl FUN_02005AC8 b _020057A8 _02005794: ldr r1, [sp, #0x1c] mov r0, #0xe lsl r1, r1, #0x18 lsr r1, r1, #0x18 bl FUN_02004ACC mov r0, #0xe add r1, r6, #0x0 bl FUN_02004AF8 _020057A8: add sp, #0x20 mov r0, #0x1 pop {r3-r7, pc} _020057AE: mov r0, #0x1 bl FUN_02005E80 _020057B4: ldr r0, [sp, #0x4] cmp r0, #0xe bls _020057BC b _02005AC2 _020057BC: add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _020057C8: ; jump table (using 16-bit offset) .short _020057E6 - _020057C8 - 2; case 0 .short _02005802 - _020057C8 - 2; case 1 .short _02005826 - _020057C8 - 2; case 2 .short _02005868 - _020057C8 - 2; case 3 .short _020058B2 - _020057C8 - 2; case 4 .short _02005900 - _020057C8 - 2; case 5 .short _02005928 - _020057C8 - 2; case 6 .short _0200596C - _020057C8 - 2; case 7 .short _0200599C - _020057C8 - 2; case 8 .short _020059CA - _020057C8 - 2; case 9 .short _020059FE - _020057C8 - 2; case 10 .short _02005A2E - _020057C8 - 2; case 11 .short _02005A56 - _020057C8 - 2; case 12 .short _02005A86 - _020057C8 - 2; case 13 .short _02005ABC - _020057C8 - 2; case 14 _020057E6: add r0, r4, #0x0 bl FUN_02005578 ldr r1, _02005AB8 ; =0x0000FFFF mov r0, #0x1 add r2, r5, #0x0 bl FUN_02004D4C add r0, r4, #0x0 mov r1, #0x1 add r2, r6, #0x0 bl FUN_02005AC8 b _02005AC2 _02005802: add r0, r4, #0x0 bl FUN_02005578 ldr r1, _02005AB8 ; =0x0000FFFF mov r0, #0x1 add r2, r5, #0x0 bl FUN_02004D4C add r0, r4, #0x0 mov r1, #0x1 add r2, r6, #0x0 bl FUN_02005AC8 mov r0, #0x14 add r1, r7, #0x0 bl FUN_02005AE0 b _02005AC2 _02005826: add r0, r4, #0x0 bl FUN_02005578 ldr r1, _02005AB8 ; =0x0000FFFF mov r0, #0x1 add r2, r5, #0x0 bl FUN_02004D4C add r0, r4, #0x0 mov r1, #0x1 add r2, r6, #0x0 bl FUN_02005AC8 ldr r1, _02005AB8 ; =0x0000FFFF mov r0, #0x1 mov r2, #0x40 bl FUN_02004D20 add r0, r4, #0x0 mov r1, #0x14 bl FUN_02005BC8 ldr r1, _02005AB8 ; =0x0000FFFF mov r0, #0x8 add r2, r5, #0x0 bl FUN_02004D4C ldr r2, [sp, #0x18] add r0, r4, #0x0 mov r1, #0x8 bl FUN_02005AC8 b _02005AC2 _02005868: add r0, r4, #0x0 bl FUN_02005578 ldr r1, _02005AB8 ; =0x0000FFFF mov r0, #0x1 add r2, r5, #0x0 bl FUN_02004D4C add r0, r4, #0x0 mov r1, #0x1 add r2, r6, #0x0 bl FUN_02005AC8 mov r0, #0x1e add r1, r7, #0x0 bl FUN_02005AE0 ldr r1, _02005AB8 ; =0x0000FFFF mov r0, #0x1 mov r2, #0xc0 bl FUN_02004D20 add r0, r4, #0x0 mov r1, #0x10 bl FUN_02005BC8 ldr r1, _02005AB8 ; =0x0000FFFF mov r0, #0x8 add r2, r5, #0x0 bl FUN_02004D4C ldr r2, [sp, #0x18] add r0, r4, #0x0 mov r1, #0x8 bl FUN_02005AC8 b _02005AC2 _020058B2: mov r0, #0xe bl FUN_02004984 ldr r2, [sp, #0x1c] add r0, r4, #0x0 add r1, r6, #0x0 mov r3, #0xe str r7, [sp, #0x0] bl FUN_02004B30 ldr r1, [sp, #0x1c] mov r0, #0xe lsl r1, r1, #0x18 lsr r1, r1, #0x18 bl FUN_02004ACC mov r0, #0xf add r1, r7, #0x0 bl FUN_02005AE0 mov r1, #0x86 mov r0, #0xe lsl r1, r1, #0x8 bl FUN_02004AE4 mov r1, #0x3f ldr r2, [sp, #0x18] ldr r3, [sp, #0x1c] add r0, r4, #0x0 mvn r1, r1 str r7, [sp, #0x0] bl FUN_02005BF8 mov r1, #0x86 mov r0, #0xf lsl r1, r1, #0x8 bl FUN_02004AE4 b _02005AC2 _02005900: add r0, r4, #0x0 bl FUN_02005578 ldr r1, _02005AB8 ; =0x0000FFFF mov r0, #0x1 add r2, r5, #0x0 bl FUN_02004D4C add r0, r4, #0x0 mov r1, #0x1 add r2, r6, #0x0 bl FUN_02005AC8 mov r0, #0x1 add r2, r0, #0x0 ldr r1, _02005AB8 ; =0x0000FFFF sub r2, #0xe1 bl FUN_02004D20 b _02005AC2 _02005928: add r0, r4, #0x0 bl FUN_02005578 ldr r1, _02005AB8 ; =0x0000FFFF mov r0, #0x1 add r2, r5, #0x0 bl FUN_02004D4C add r0, r4, #0x0 mov r1, #0x1 add r2, r6, #0x0 bl FUN_02005AC8 ldr r1, _02005AB8 ; =0x0000FFFF mov r0, #0x1 mov r2, #0x2c bl FUN_02004D20 mov r1, #0x3f add r0, r4, #0x0 mvn r1, r1 bl FUN_02005BC8 ldr r1, _02005AB8 ; =0x0000FFFF mov r0, #0x8 add r2, r5, #0x0 bl FUN_02004D4C ldr r2, [sp, #0x18] add r0, r4, #0x0 mov r1, #0x8 bl FUN_02005AC8 b _02005AC2 _0200596C: add r0, r4, #0x0 bl FUN_02005578 ldr r1, _02005AB8 ; =0x0000FFFF mov r0, #0x1 add r2, r5, #0x0 bl FUN_02004D4C add r0, r4, #0x0 mov r1, #0x1 add r2, r6, #0x0 bl FUN_02005AC8 mov r0, #0xb add r1, r7, #0x0 bl FUN_02005AE0 mov r0, #0x1 add r2, r0, #0x0 ldr r1, _02005AB8 ; =0x0000FFFF sub r2, #0x81 bl FUN_02004D20 b _02005AC2 _0200599C: add r0, r4, #0x0 bl FUN_02005578 ldr r1, _02005AB8 ; =0x0000FFFF mov r0, #0x1 add r2, r5, #0x0 bl FUN_02004D4C add r0, r4, #0x0 mov r1, #0x1 add r2, r6, #0x0 bl FUN_02005AC8 mov r0, #0x3c add r1, r7, #0x0 bl FUN_02005AE0 ldr r1, _02005AB8 ; =0x0000FFFF mov r0, #0x1 mov r2, #0x3c bl FUN_02004D20 b _02005AC2 _020059CA: mov r0, #0xe bl FUN_02004984 ldr r2, [sp, #0x1c] add r0, r4, #0x0 add r1, r6, #0x0 mov r3, #0xe str r7, [sp, #0x0] bl FUN_02004B30 ldr r1, [sp, #0x1c] mov r0, #0xe lsl r1, r1, #0x18 lsr r1, r1, #0x18 bl FUN_02004ACC mov r0, #0xd add r1, r7, #0x0 bl FUN_02005AE0 mov r1, #0x1a mov r0, #0xe lsl r1, r1, #0xa bl FUN_02004AE4 b _02005AC2 _020059FE: add r0, r4, #0x0 bl FUN_02005578 ldr r1, _02005AB8 ; =0x0000FFFF mov r0, #0x1 add r2, r5, #0x0 bl FUN_02004D4C add r0, r4, #0x0 mov r1, #0x1 add r2, r6, #0x0 bl FUN_02005AC8 mov r0, #0x64 add r1, r7, #0x0 bl FUN_02005AE0 mov r0, #0x1 add r2, r0, #0x0 ldr r1, _02005AB8 ; =0x0000FFFF sub r2, #0x2d bl FUN_02004D20 b _02005AC2 _02005A2E: add r0, r4, #0x0 bl FUN_02005578 ldr r1, _02005AB8 ; =0x0000FFFF mov r0, #0x1 add r2, r5, #0x0 bl FUN_02004D4C add r0, r4, #0x0 mov r1, #0x1 add r2, r6, #0x0 bl FUN_02005AC8 mov r0, #0x1 add r2, r0, #0x0 ldr r1, _02005AB8 ; =0x0000FFFF sub r2, #0x61 bl FUN_02004D20 b _02005AC2 _02005A56: add r0, r4, #0x0 bl FUN_02005578 ldr r1, _02005AB8 ; =0x0000FFFF mov r0, #0x1 add r2, r5, #0x0 bl FUN_02004D4C add r0, r4, #0x0 mov r1, #0x1 add r2, r6, #0x0 bl FUN_02005AC8 mov r0, #0x14 add r1, r7, #0x0 bl FUN_02005AE0 mov r0, #0x1 add r2, r0, #0x0 ldr r1, _02005AB8 ; =0x0000FFFF sub r2, #0x61 bl FUN_02004D20 b _02005AC2 _02005A86: add r0, r4, #0x0 bl FUN_02005578 add r0, r4, #0x0 mov r1, #0x1 mov r2, #0x7f bl FUN_02005AC8 add r0, r4, #0x0 mov r1, #0x14 bl FUN_02005BC8 ldr r1, _02005AB8 ; =0x0000FFFF mov r0, #0x8 add r2, r5, #0x0 bl FUN_02004D4C mov r0, #0x8 add r1, r6, #0x0 mov r2, #0x0 bl FUN_02004828 b _02005AC2 .balign 4 _02005AB4: .word 0x000001B9 _02005AB8: .word 0x0000FFFF _02005ABC: add r0, r4, #0x0 bl FUN_02005578 _02005AC2: mov r0, #0x1 add sp, #0x20 pop {r3-r7, pc} thumb_func_start FUN_02005AC8 FUN_02005AC8: ; 0x02005AC8 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r0, r4, #0x0 add r1, r2, #0x0 bl FUN_0200483C add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02004858 pop {r3-r5, pc} thumb_func_start FUN_02005AE0 FUN_02005AE0: ; 0x02005AE0 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 mov r0, #0x22 bl FUN_02003D38 add r6, r0, #0x0 bl FUN_02005BA0 add r0, r4, #0x0 mov r1, #0x8 bl FUN_02016998 add r4, r0, #0x0 bne _02005B04 bl ErrorHandling pop {r4-r6, pc} _02005B04: mov r2, #0x0 strb r2, [r4, #0x0] strb r2, [r4, #0x1] strb r2, [r4, #0x2] strb r2, [r4, #0x3] strb r2, [r4, #0x4] strb r2, [r4, #0x5] strb r2, [r4, #0x6] strb r2, [r4, #0x7] ldr r0, _02005B28 ; =FUN_02005B2C add r1, r4, #0x0 str r5, [r4, #0x0] bl FUN_0200CA44 str r0, [r4, #0x4] str r0, [r6, #0x0] pop {r4-r6, pc} nop _02005B28: .word FUN_02005B2C thumb_func_start FUN_02005B2C FUN_02005B2C: ; 0x02005B2C push {r4-r6, lr} mov r0, #0xf add r5, r1, #0x0 bl FUN_02003D38 add r6, r0, #0x0 mov r0, #0x10 bl FUN_02003D38 ldr r2, [r5, #0x0] add r4, r0, #0x0 cmp r2, #0xa bne _02005B58 mov r0, #0x1 mov r1, #0x0 bl FUN_02004828 ldr r2, [r5, #0x0] mov r0, #0x8 mov r1, #0x0 bl FUN_02004828 _02005B58: ldr r0, [r5, #0x0] sub r0, r0, #0x1 str r0, [r5, #0x0] bl FUN_02005670 cmp r0, #0x0 bne _02005B6A mov r0, #0x0 str r0, [r5, #0x0] _02005B6A: ldr r0, [r5, #0x0] cmp r0, #0x0 bgt _02005B9E mov r0, #0x0 bl FUN_02005614 ldrb r0, [r6, #0x0] cmp r0, #0x1 bne _02005B88 mov r0, #0xe bl FUN_02004C3C mov r0, #0xe bl FUN_02004A04 _02005B88: ldrb r0, [r4, #0x0] cmp r0, #0x1 bne _02005B9A mov r0, #0xf bl FUN_02004C3C mov r0, #0xf bl FUN_02004A04 _02005B9A: bl FUN_02005BA0 _02005B9E: pop {r4-r6, pc} thumb_func_start FUN_02005BA0 FUN_02005BA0: ; 0x02005BA0 push {r3-r5, lr} mov r0, #0x22 bl FUN_02003D38 add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x0 beq _02005BC2 bl FUN_0201B6C8 add r5, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_0200CAB4 add r0, r5, #0x0 bl FUN_02016A18 _02005BC2: mov r0, #0x0 str r0, [r4, #0x0] pop {r3-r5, pc} thumb_func_start FUN_02005BC8 FUN_02005BC8: ; 0x02005BC8 push {r3-r5, lr} add r5, r0, #0x0 mov r0, #0x11 add r4, r1, #0x0 bl FUN_02003D38 mov r1, #0x1 strb r1, [r0, #0x0] add r0, r1, #0x0 bl FUN_02005E80 add r0, r5, #0x0 bl FUN_02005578 add r5, r0, #0x0 ldr r1, _02005BF4 ; =0x0000FFFF mov r0, #0x8 add r2, r4, #0x0 bl FUN_02004D20 add r0, r5, #0x0 pop {r3-r5, pc} .balign 4 _02005BF4: .word 0x0000FFFF thumb_func_start FUN_02005BF8 FUN_02005BF8: ; 0x02005BF8 push {r3-r6, lr} sub sp, #0x4 add r5, r0, #0x0 mov r0, #0x11 add r4, r2, #0x0 add r6, r3, #0x0 bl FUN_02003D38 mov r1, #0x1 strb r1, [r0, #0x0] mov r0, #0xf bl FUN_02004984 ldr r0, [sp, #0x18] add r1, r4, #0x0 str r0, [sp, #0x0] add r0, r5, #0x0 add r2, r6, #0x0 mov r3, #0xf bl FUN_02004B30 add sp, #0x4 pop {r3-r6, pc} .balign 4 thumb_func_start FUN_02005C28 FUN_02005C28: ; 0x02005C28 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_020048F4 add r0, r5, #0x0 bl FUN_02005CEC bl FUN_02004124 bl FUN_020048D0 cmp r0, #0xff beq _02005C48 mov r1, #0x1 bl FUN_020047C8 _02005C48: mov r0, #0x1c bl FUN_02003D38 bl FUN_02003F3C add r0, r5, #0x0 mov r1, #0x3 bl FUN_02003FA8 mov r0, #0x2 bl FUN_02003FF4 add r1, r5, #0x0 blx FUN_020C3980 add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x2 bl FUN_02004858 add r0, r4, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02005C74 FUN_02005C74: ; 0x02005C74 push {r4, lr} mov r0, #0xd bl FUN_02003D38 add r4, r0, #0x0 mov r0, #0x2 bl FUN_020048BC cmp r0, #0x0 beq _02005C8C mov r0, #0x1 pop {r4, pc} _02005C8C: ldrh r0, [r4, #0x0] cmp r0, #0x0 beq _02005C9A sub r0, r0, #0x1 strh r0, [r4, #0x0] mov r0, #0x1 pop {r4, pc} _02005C9A: mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02005CA0 FUN_02005CA0: ; 0x02005CA0 push {r4, lr} add r4, r0, #0x0 mov r0, #0x2 bl FUN_02003FF4 add r1, r4, #0x0 blx FUN_020C10A4 mov r0, #0x6 bl FUN_02004748 bl FUN_02003F64 pop {r4, pc} thumb_func_start FUN_02005CBC FUN_02005CBC: ; 0x02005CBC push {r3, lr} mov r0, #0xd bl FUN_02003D38 bl FUN_02005C74 cmp r0, #0x1 bne _02005CD0 mov r0, #0x1 pop {r3, pc} _02005CD0: mov r0, #0x0 bl FUN_02005CA0 bl FUN_02004124 bl FUN_020048D0 cmp r0, #0xff beq _02005CE8 mov r1, #0x0 bl FUN_020047C8 _02005CE8: mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_02005CEC FUN_02005CEC: ; 0x02005CEC push {r3, lr} mov r0, #0xd bl FUN_02003D38 mov r1, #0xf strh r1, [r0, #0x0] pop {r3, pc} .balign 4 thumb_func_start FUN_02005CFC FUN_02005CFC: ; 0x02005CFC push {r3, lr} mov r0, #0x1d bl FUN_02003D38 ldrb r0, [r0, #0x0] cmp r0, #0x1 bne _02005D1C mov r0, #0xe bl FUN_02004ABC cmp r0, #0x0 bne _02005D1C bl FUN_02005DFC mov r0, #0x1 pop {r3, pc} _02005D1C: mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_02005D20 FUN_02005D20: ; 0x02005D20 push {r3-r5, lr} add r5, r0, #0x0 mov r0, #0x1e bl FUN_02003D38 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02029F04 cmp r0, #0x0 bne _02005D3A mov r0, #0x0 pop {r3-r5, pc} _02005D3A: ldrb r0, [r4, #0x0] cmp r0, #0x1 beq _02005D44 mov r0, #0x1 pop {r3-r5, pc} _02005D44: mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02005D48 FUN_02005D48: ; 0x02005D48 push {r3-r7, lr} sub sp, #0x30 add r6, r0, #0x0 add r5, r2, #0x0 add r7, r3, #0x0 bl FUN_02004DB4 str r0, [sp, #0x0] mov r0, #0x1d bl FUN_02003D38 str r0, [sp, #0x4] add r0, r6, #0x0 bl FUN_02005D20 cmp r0, #0x0 bne _02005D70 add sp, #0x30 mov r0, #0x0 pop {r3-r7, pc} _02005D70: mov r0, #0x0 bl FUN_02005614 bl FUN_02005DFC mov r0, #0xe bl FUN_02004984 bl FUN_0201B9EC lsr r2, r0, #0x1f lsl r1, r0, #0x13 sub r1, r1, r2 mov r0, #0x13 ror r1, r0 add r0, r2, r1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 add r0, r6, #0x0 bl FUN_02029F10 add r1, r0, #0x0 ldr r0, [sp, #0x0] bl FUN_02029F14 mov r0, #0xe bl FUN_02004930 str r0, [sp, #0x8] mov r0, #0x0 str r0, [sp, #0xc] bl FUN_02004DB4 str r0, [sp, #0x10] mov r0, #0x0 str r0, [sp, #0x14] str r0, [sp, #0x18] mov r0, #0x7d lsl r0, r0, #0x4 str r0, [sp, #0x1c] str r0, [sp, #0x20] mov r0, #0x2 lsl r0, r0, #0xe add r0, r4, r0 str r0, [sp, #0x28] lsr r0, r7, #0x1f add r0, r7, r0 asr r0, r0, #0x1 add r0, #0x40 str r0, [sp, #0x2c] add r0, sp, #0x8 mov r1, #0xe str r5, [sp, #0x24] bl FUN_02004A6C add r4, r0, #0x0 mov r0, #0xe add r1, r5, #0x0 bl FUN_02004AF8 ldr r0, [sp, #0x4] mov r1, #0x1 strb r1, [r0, #0x0] mov r0, #0x0 bl FUN_02005E80 add r0, r4, #0x0 add sp, #0x30 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02005DFC FUN_02005DFC: ; 0x02005DFC push {r3-r5, lr} mov r0, #0xf bl FUN_02003D38 add r5, r0, #0x0 mov r0, #0x1d bl FUN_02003D38 add r4, r0, #0x0 ldrb r0, [r5, #0x0] cmp r0, #0x1 bne _02005E20 mov r0, #0xe bl FUN_02004C3C mov r0, #0xe bl FUN_02004A04 _02005E20: mov r0, #0x0 strb r0, [r4, #0x0] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02005E28 FUN_02005E28: ; 0x02005E28 push {lr} sub sp, #0x1c mov r0, #0x2 str r0, [sp, #0x0] bl FUN_02004DB4 mov r1, #0x7d str r0, [sp, #0x4] lsl r1, r1, #0x4 mov r0, #0x1f str r1, [sp, #0x8] tst r0, r1 beq _02005E48 mov r0, #0x1f bic r1, r0 str r1, [sp, #0x8] _02005E48: ldr r0, _02005E60 ; =0x00004174 str r0, [sp, #0xc] mov r0, #0x0 str r0, [sp, #0x10] str r0, [sp, #0x14] str r0, [sp, #0x18] add r0, sp, #0x0 bl FUN_02004914 add sp, #0x1c pop {pc} nop _02005E60: .word 0x00004174 thumb_func_start FUN_02005E64 FUN_02005E64: ; 0x02005E64 ldr r3, _02005E68 ; =FUN_0200491C bx r3 .balign 4 _02005E68: .word FUN_0200491C thumb_func_start FUN_02005E6C FUN_02005E6C: ; 0x02005E6C push {r4, lr} add r4, r0, #0x0 bl FUN_02004DB4 add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_02029F4C pop {r4, pc} .balign 4 thumb_func_start FUN_02005E80 FUN_02005E80: ; 0x02005E80 push {r4, lr} add r4, r0, #0x0 mov r0, #0x1e bl FUN_02003D38 strb r4, [r0, #0x0] pop {r4, pc} .balign 4 thumb_func_start FUN_02005E90 FUN_02005E90: ; 0x02005E90 push {r3-r7, lr} add r5, r0, #0x0 mov r0, #0x23 add r7, r1, #0x0 add r4, r2, #0x0 add r6, r3, #0x0 bl FUN_02003D38 cmp r5, #0x0 bne _02005EB2 ldr r0, [r0, #0x0] add r1, r7, #0x0 add r2, r4, #0x0 add r3, r6, #0x0 bl FUN_02005D48 b _02005EBE _02005EB2: add r0, r5, #0x0 add r1, r7, #0x0 add r2, r4, #0x0 add r3, r6, #0x0 bl FUN_02005D48 _02005EBE: cmp r0, #0x0 bne _02005ED8 mov r0, #0x1 bl FUN_02005E80 mov r0, #0xb str r0, [sp, #0x0] ldr r1, _02005EDC ; =0x000001B9 mov r0, #0x0 add r2, r6, #0x0 add r3, r4, #0x0 bl FUN_020056AC _02005ED8: pop {r3-r7, pc} nop _02005EDC: .word 0x000001B9 thumb_func_start FUN_02005EE0 FUN_02005EE0: ; 0x02005EE0 push {r4, lr} add r4, r0, #0x0 bl FUN_02029F04 cmp r0, #0x0 bne _02005EF0 mov r0, #0x0 pop {r4, pc} _02005EF0: add r0, r4, #0x0 bl FUN_02029F10 mov r1, #0xf ldrsb r0, [r0, r1] sub r1, #0x2d cmp r0, r1 bge _02005F04 mov r0, #0x1 pop {r4, pc} _02005F04: cmp r0, #0x1e blt _02005F10 cmp r0, #0x80 bge _02005F10 mov r0, #0x2 pop {r4, pc} _02005F10: mov r0, #0x0 pop {r4, pc} thumb_func_start FUN_02005F14 FUN_02005F14: ; 0x02005F14 cmp r0, #0xb bgt _02005F2E bge _02005F32 cmp r0, #0x5 bgt _02005F36 cmp r0, #0x0 blt _02005F36 beq _02005F32 cmp r0, #0x1 beq _02005F32 cmp r0, #0x5 beq _02005F32 b _02005F36 _02005F2E: cmp r0, #0xc bne _02005F36 _02005F32: mov r0, #0x1 bx lr _02005F36: mov r0, #0x0 bx lr .balign 4 thumb_func_start FUN_02005F3C FUN_02005F3C: ; 0x02005F3C push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x4] cmp r0, #0x1 beq _02005F4A bl ErrorHandling _02005F4A: ldr r1, [r4, #0x0] mov r0, #0x0 blx FS_UnloadOverlay cmp r0, #0x1 beq _02005F5A bl ErrorHandling _02005F5A: mov r0, #0x0 str r0, [r4, #0x4] pop {r4, pc} thumb_func_start FUN_02005F60 FUN_02005F60: ; 0x02005F60 push {r4, lr} add r4, r0, #0x0 bl FUN_02005F90 bl FUN_0200610C mov r2, #0x0 add r3, r0, #0x0 _02005F70: ldr r1, [r3, #0x4] cmp r1, #0x1 bne _02005F86 ldr r1, [r3, #0x0] cmp r4, r1 bne _02005F86 lsl r1, r2, #0x3 add r0, r0, r1 bl FUN_02005F3C pop {r4, pc} _02005F86: add r2, r2, #0x1 add r3, #0x8 cmp r2, #0x8 blt _02005F70 pop {r4, pc} thumb_func_start FUN_02005F90 FUN_02005F90: ; 0x02005F90 push {lr} sub sp, #0x2c add r2, r0, #0x0 add r0, sp, #0x0 mov r1, #0x0 blx FS_LoadOverlayInfo cmp r0, #0x1 beq _02005FA6 bl ErrorHandling _02005FA6: mov r0, #0x2 ldr r2, [sp, #0x4] lsl r0, r0, #0x18 cmp r2, r0 bhi _02005FBC lsr r0, r0, #0x1 cmp r2, r0 blo _02005FBC add sp, #0x2c mov r0, #0x1 pop {pc} _02005FBC: mov r0, #0x1 ldr r1, _02005FD8 ; =0x027E0000 lsl r0, r0, #0xe add r0, r1, r0 cmp r2, r0 bhi _02005FD2 cmp r2, r1 blo _02005FD2 add sp, #0x2c mov r0, #0x2 pop {pc} _02005FD2: mov r0, #0x0 add sp, #0x2c pop {pc} .balign 4 _02005FD8: .word 0x027E0000 thumb_func_start FUN_02005FDC FUN_02005FDC: ; 0x02005FDC push {r3-r7, lr} add r4, r1, #0x0 mov r1, #0x0 mvn r1, r1 add r5, r0, #0x0 str r1, [sp, #0x0] bl FUN_02006090 cmp r0, #0x0 bne _02005FF4 mov r0, #0x0 pop {r3-r7, pc} _02005FF4: add r0, r5, #0x0 bl FUN_02005F90 add r7, r0, #0x0 bl FUN_0200610C add r3, r0, #0x0 mov r6, #0x0 add r1, r3, #0x0 _02006006: ldr r0, [r1, #0x4] cmp r0, #0x0 bne _02006018 lsl r1, r6, #0x3 add r2, r3, r1 mov r0, #0x1 str r0, [r2, #0x4] str r5, [r3, r1] b _02006020 _02006018: add r6, r6, #0x1 add r1, #0x8 cmp r6, #0x8 blt _02006006 _02006020: cmp r6, #0x8 blt _0200602C bl ErrorHandling mov r0, #0x0 pop {r3-r7, pc} _0200602C: sub r6, r7, #0x1 cmp r6, #0x1 bhi _0200603C mov r0, #0x0 mvn r0, r0 blx FS_SetDefaultDMA str r0, [sp, #0x0] _0200603C: cmp r4, #0x0 beq _0200604A cmp r4, #0x1 beq _02006056 cmp r4, #0x2 beq _02006062 b _0200606E _0200604A: mov r0, #0x0 add r1, r5, #0x0 bl FUN_02006168 add r4, r0, #0x0 b _02006076 _02006056: mov r0, #0x0 add r1, r5, #0x0 bl FUN_02006170 add r4, r0, #0x0 b _02006076 _02006062: mov r0, #0x0 add r1, r5, #0x0 bl FUN_020061A8 add r4, r0, #0x0 b _02006076 _0200606E: bl ErrorHandling mov r0, #0x0 pop {r3-r7, pc} _02006076: cmp r6, #0x1 bhi _02006080 ldr r0, [sp, #0x0] blx FS_SetDefaultDMA _02006080: cmp r4, #0x0 bne _0200608C bl ErrorHandling mov r0, #0x0 pop {r3-r7, pc} _0200608C: mov r0, #0x1 pop {r3-r7, pc} thumb_func_start FUN_02006090 FUN_02006090: ; 0x02006090 push {r3-r7, lr} sub sp, #0x10 add r1, sp, #0xc add r2, sp, #0x8 add r4, r0, #0x0 bl FUN_02006130 cmp r0, #0x0 bne _020060A8 add sp, #0x10 mov r0, #0x0 pop {r3-r7, pc} _020060A8: add r0, r4, #0x0 bl FUN_02005F90 bl FUN_0200610C add r5, r0, #0x0 mov r4, #0x0 add r6, sp, #0x4 add r7, sp, #0x0 _020060BA: ldr r0, [r5, #0x4] cmp r0, #0x1 bne _020060FC ldr r0, [r5, #0x0] add r1, r6, #0x0 add r2, r7, #0x0 bl FUN_02006130 cmp r0, #0x1 bne _020060FC ldr r1, [sp, #0x4] ldr r2, [sp, #0xc] cmp r2, r1 blo _020060DC ldr r0, [sp, #0x0] cmp r2, r0 blo _020060F2 _020060DC: ldr r3, [sp, #0x8] cmp r3, r1 bls _020060E8 ldr r0, [sp, #0x0] cmp r3, r0 bls _020060F2 _020060E8: cmp r2, r1 bhi _020060FC ldr r0, [sp, #0x0] cmp r3, r0 blo _020060FC _020060F2: bl ErrorHandling add sp, #0x10 mov r0, #0x0 pop {r3-r7, pc} _020060FC: add r4, r4, #0x1 add r5, #0x8 cmp r4, #0x8 blt _020060BA mov r0, #0x1 add sp, #0x10 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200610C FUN_0200610C: ; 0x0200610C cmp r0, #0x0 beq _02006118 cmp r0, #0x1 beq _0200611C cmp r0, #0x2 beq _02006120 _02006118: ldr r0, _02006124 ; =0x021C45B0 bx lr _0200611C: ldr r0, _02006128 ; =0x021C45F0 bx lr _02006120: ldr r0, _0200612C ; =0x021C4630 bx lr .balign 4 _02006124: .word 0x021C45B0 _02006128: .word 0x021C45F0 _0200612C: .word 0x021C4630 thumb_func_start FUN_02006130 FUN_02006130: ; 0x02006130 push {r4-r5, lr} sub sp, #0x2c add r3, r0, #0x0 add r5, r1, #0x0 add r4, r2, #0x0 add r0, sp, #0x0 mov r1, #0x0 add r2, r3, #0x0 blx FS_LoadOverlayInfo cmp r0, #0x0 bne _02006152 bl ErrorHandling add sp, #0x2c mov r0, #0x0 pop {r4-r5, pc} _02006152: ldr r2, [sp, #0x4] str r2, [r5, #0x0] ldr r1, [sp, #0x8] ldr r0, [sp, #0xc] add r0, r1, r0 add r0, r2, r0 str r0, [r4, #0x0] mov r0, #0x1 add sp, #0x2c pop {r4-r5, pc} .balign 4 thumb_func_start FUN_02006168 FUN_02006168: ; 0x02006168 ldr r3, _0200616C ; =FS_LoadOverlay bx r3 .balign 4 _0200616C: .word FS_LoadOverlay thumb_func_start FUN_02006170 FUN_02006170: ; 0x02006170 push {lr} sub sp, #0x2c add r3, r0, #0x0 add r2, r1, #0x0 add r0, sp, #0x0 add r1, r3, #0x0 blx FS_LoadOverlayInfo cmp r0, #0x0 bne _0200618A add sp, #0x2c mov r0, #0x0 pop {pc} _0200618A: add r0, sp, #0x0 blx FS_LoadOverlayImage cmp r0, #0x0 bne _0200619A add sp, #0x2c mov r0, #0x0 pop {pc} _0200619A: add r0, sp, #0x0 blx FS_StartOverlay mov r0, #0x1 add sp, #0x2c pop {pc} .balign 4 thumb_func_start FUN_020061A8 FUN_020061A8: ; 0x020061A8 push {lr} sub sp, #0x74 add r3, r0, #0x0 add r2, r1, #0x0 add r0, sp, #0x0 add r1, r3, #0x0 blx FS_LoadOverlayInfo cmp r0, #0x0 bne _020061C2 add sp, #0x74 mov r0, #0x0 pop {pc} _020061C2: add r0, sp, #0x2c blx FS_InitFile add r0, sp, #0x0 add r1, sp, #0x2c blx FS_LoadOverlayImageAsync add r0, sp, #0x2c blx FS_WaitAsync add r0, sp, #0x2c blx FS_CloseFile add r0, sp, #0x0 blx FS_StartOverlay mov r0, #0x1 add sp, #0x74 pop {pc} thumb_func_start FUN_020061E8 FUN_020061E8: ; 0x020061E8 push {r3-r7, lr} add r5, r1, #0x0 add r6, r0, #0x0 add r7, r2, #0x0 cmp r5, #0x0 beq _0200620C add r0, r3, #0x0 bl FUN_02016998 add r4, r0, #0x0 bne _02006202 mov r0, #0x0 pop {r3-r7, pc} _02006202: mov r1, #0x0 add r2, r5, #0x0 blx FUN_020DF4A4 b _0200620E _0200620C: mov r4, #0x0 _0200620E: add r0, r6, #0x0 add r1, r4, #0x0 add r2, r7, #0x0 bl FUN_0200CA44 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200621C FUN_0200621C: ; 0x0200621C push {r4, lr} add r4, r0, #0x0 bl FUN_0201B6C8 cmp r0, #0x0 beq _0200622C bl FUN_02016A18 _0200622C: add r0, r4, #0x0 bl FUN_0200CAB4 pop {r4, pc} thumb_func_start FUN_02006234 FUN_02006234: ; 0x02006234 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r0, r2, #0x0 mov r1, #0x28 bl FUN_02016998 add r3, r0, #0x0 add r2, r3, #0x0 ldmia r5!, {r0-r1} stmia r2!, {r0-r1} ldmia r5!, {r0-r1} stmia r2!, {r0-r1} mov r0, #0x0 str r0, [r3, #0x10] str r0, [r3, #0x14] str r4, [r3, #0x18] str r0, [r3, #0x1c] str r0, [r3, #0x20] str r0, [r3, #0x24] add r0, r3, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02006260 FUN_02006260: ; 0x02006260 ldr r3, _02006264 ; =FUN_02016A18 bx r3 .balign 4 _02006264: .word FUN_02016A18 thumb_func_start FUN_02006268 FUN_02006268: ; 0x02006268 push {r4, lr} add r4, r0, #0x0 add r0, r2, #0x0 bl FUN_02016998 str r0, [r4, #0x1c] pop {r4, pc} .balign 4 thumb_func_start FUN_02006278 FUN_02006278: ; 0x02006278 ldr r0, [r0, #0x1c] bx lr thumb_func_start FUN_0200627C FUN_0200627C: ; 0x0200627C push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x1c] bl FUN_02016A18 mov r0, #0x0 str r0, [r4, #0x1c] pop {r4, pc} thumb_func_start FUN_0200628C FUN_0200628C: ; 0x0200628C ldr r0, [r0, #0x18] bx lr thumb_func_start FUN_02006290 FUN_02006290: ; 0x02006290 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x10] cmp r1, #0x3 bhi _0200630E add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _020062A6: ; jump table (using 16-bit offset) .short _020062AE - _020062A6 - 2; case 0 .short _020062C2 - _020062A6 - 2; case 1 .short _020062DA - _020062A6 - 2; case 2 .short _020062F0 - _020062A6 - 2; case 3 _020062AE: mov r1, #0x0 ldr r0, [r4, #0xc] mvn r1, r1 cmp r0, r1 beq _020062BE mov r1, #0x2 bl FUN_02005FDC _020062BE: mov r0, #0x1 str r0, [r4, #0x10] _020062C2: add r1, r4, #0x0 ldr r2, [r4, #0x0] add r0, r4, #0x0 add r1, #0x14 blx r2 cmp r0, #0x1 bne _0200630E mov r0, #0x2 str r0, [r4, #0x10] mov r0, #0x0 str r0, [r4, #0x14] b _0200630E _020062DA: add r1, r4, #0x0 ldr r2, [r4, #0x4] add r1, #0x14 blx r2 cmp r0, #0x1 bne _0200630E mov r0, #0x3 str r0, [r4, #0x10] mov r0, #0x0 str r0, [r4, #0x14] b _0200630E _020062F0: add r1, r4, #0x0 ldr r2, [r4, #0x8] add r1, #0x14 blx r2 cmp r0, #0x1 bne _0200630E mov r1, #0x0 ldr r0, [r4, #0xc] mvn r1, r1 cmp r0, r1 beq _0200630A bl FUN_02005F60 _0200630A: mov r0, #0x1 pop {r4, pc} _0200630E: mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02006314 FUN_02006314: ; 0x02006314 push {r3-r7, lr} sub sp, #0x60 add r4, r1, #0x0 mov r1, #0x0 str r0, [sp, #0x0] str r1, [sp, #0x14] str r1, [sp, #0x10] str r1, [sp, #0xc] add r0, sp, #0x8 strh r1, [r0, #0x0] add r0, sp, #0x18 add r5, r2, #0x0 str r3, [sp, #0x4] blx FS_InitFile add r0, sp, #0x18 add r1, r4, #0x0 blx FS_OpenFile add r0, sp, #0x18 mov r1, #0xc mov r2, #0x0 blx FS_SeekFile add r0, sp, #0x18 add r1, sp, #0x14 mov r2, #0x2 blx FS_ReadFile ldr r4, [sp, #0x14] add r0, sp, #0x18 add r1, r4, #0x4 mov r2, #0x0 blx FS_SeekFile add r0, sp, #0x18 add r1, sp, #0x14 mov r2, #0x4 blx FS_ReadFile add r0, sp, #0x18 add r1, sp, #0x8 mov r2, #0x2 blx FS_ReadFile add r0, sp, #0x8 ldrh r0, [r0, #0x0] cmp r0, r5 bgt _0200637A bl ErrorHandling _0200637A: ldr r0, [sp, #0x14] mov r2, #0x0 add r6, r4, r0 add r0, sp, #0x18 add r1, r6, #0x4 blx FS_SeekFile add r0, sp, #0x18 add r1, sp, #0x14 mov r2, #0x4 blx FS_ReadFile add r4, #0xc lsl r1, r5, #0x3 add r0, sp, #0x18 add r1, r4, r1 mov r2, #0x0 ldr r7, [sp, #0x14] blx FS_SeekFile add r0, sp, #0x18 add r1, sp, #0x10 mov r2, #0x4 blx FS_ReadFile add r0, sp, #0x18 add r1, sp, #0xc mov r2, #0x4 blx FS_ReadFile add r2, r6, r7 ldr r1, [sp, #0x10] add r2, #0x8 add r2, r2, r1 ldr r1, [sp, #0x4] add r0, sp, #0x18 add r1, r1, r2 mov r2, #0x0 blx FS_SeekFile ldr r0, [sp, #0x78] cmp r0, #0x0 bne _020063D6 ldr r1, [sp, #0xc] ldr r0, [sp, #0x10] sub r0, r1, r0 _020063D6: str r0, [sp, #0x14] cmp r0, #0x0 bne _020063E0 bl ErrorHandling _020063E0: ldr r1, [sp, #0x0] ldr r2, [sp, #0x14] add r0, sp, #0x18 blx FS_ReadFile add r0, sp, #0x18 blx FS_CloseFile add sp, #0x60 pop {r3-r7, pc} thumb_func_start FUN_020063F4 FUN_020063F4: ; 0x020063F4 push {r3-r7, lr} sub sp, #0x60 add r5, r1, #0x0 mov r1, #0x0 add r4, r0, #0x0 str r1, [sp, #0x14] str r1, [sp, #0x10] str r1, [sp, #0xc] add r0, sp, #0x8 strh r1, [r0, #0x0] add r0, sp, #0x18 str r2, [sp, #0x0] str r3, [sp, #0x4] blx FS_InitFile add r0, sp, #0x18 add r1, r4, #0x0 blx FS_OpenFile add r0, sp, #0x18 mov r1, #0xc mov r2, #0x0 blx FS_SeekFile add r0, sp, #0x18 add r1, sp, #0x14 mov r2, #0x2 blx FS_ReadFile ldr r4, [sp, #0x14] add r0, sp, #0x18 add r1, r4, #0x4 mov r2, #0x0 blx FS_SeekFile add r0, sp, #0x18 add r1, sp, #0x14 mov r2, #0x4 blx FS_ReadFile add r0, sp, #0x18 add r1, sp, #0x8 mov r2, #0x2 blx FS_ReadFile add r0, sp, #0x8 ldrh r0, [r0, #0x0] cmp r0, r5 bgt _0200645A bl ErrorHandling _0200645A: ldr r0, [sp, #0x14] mov r2, #0x0 add r6, r4, r0 add r0, sp, #0x18 add r1, r6, #0x4 blx FS_SeekFile add r0, sp, #0x18 add r1, sp, #0x14 mov r2, #0x4 blx FS_ReadFile add r4, #0xc lsl r1, r5, #0x3 add r0, sp, #0x18 add r1, r4, r1 mov r2, #0x0 ldr r7, [sp, #0x14] blx FS_SeekFile add r0, sp, #0x18 add r1, sp, #0x10 mov r2, #0x4 blx FS_ReadFile add r0, sp, #0x18 add r1, sp, #0xc mov r2, #0x4 blx FS_ReadFile add r2, r6, r7 ldr r1, [sp, #0x10] add r2, #0x8 add r2, r2, r1 ldr r1, [sp, #0x4] add r0, sp, #0x18 add r1, r1, r2 mov r2, #0x0 blx FS_SeekFile ldr r0, [sp, #0x78] cmp r0, #0x0 bne _020064B6 ldr r1, [sp, #0xc] ldr r0, [sp, #0x10] sub r0, r1, r0 _020064B6: str r0, [sp, #0x14] cmp r0, #0x0 bne _020064C0 bl ErrorHandling _020064C0: ldr r0, [sp, #0x7c] cmp r0, #0x0 bne _020064D0 ldr r0, [sp, #0x0] ldr r1, [sp, #0x14] bl FUN_02016998 b _020064D8 _020064D0: ldr r0, [sp, #0x0] ldr r1, [sp, #0x14] bl FUN_020169D8 _020064D8: add r4, r0, #0x0 ldr r2, [sp, #0x14] add r0, sp, #0x18 add r1, r4, #0x0 blx FS_ReadFile add r0, sp, #0x18 blx FS_CloseFile add r0, r4, #0x0 add sp, #0x60 pop {r3-r7, pc} thumb_func_start FUN_020064F0 FUN_020064F0: ; 0x020064F0 push {r3-r4, lr} sub sp, #0x4 mov r3, #0x0 lsl r4, r1, #0x2 ldr r1, _02006508 ; =0x021058A0 str r3, [sp, #0x0] ldr r1, [r1, r4] bl FUN_02006314 add sp, #0x4 pop {r3-r4, pc} nop _02006508: .word 0x021058A0 thumb_func_start FUN_0200650C FUN_0200650C: ; 0x0200650C push {r4, lr} sub sp, #0x8 mov r3, #0x0 str r3, [sp, #0x0] lsl r4, r0, #0x2 ldr r0, _02006524 ; =0x021058A0 str r3, [sp, #0x4] ldr r0, [r0, r4] bl FUN_020063F4 add sp, #0x8 pop {r4, pc} .balign 4 _02006524: .word 0x021058A0 thumb_func_start FUN_02006528 FUN_02006528: ; 0x02006528 push {r4, lr} sub sp, #0x8 mov r3, #0x0 str r3, [sp, #0x0] mov r4, #0x1 str r4, [sp, #0x4] lsl r4, r0, #0x2 ldr r0, _02006544 ; =0x021058A0 ldr r0, [r0, r4] bl FUN_020063F4 add sp, #0x8 pop {r4, pc} nop _02006544: .word 0x021058A0 thumb_func_start FUN_02006548 FUN_02006548: ; 0x02006548 push {r3-r4, lr} sub sp, #0x4 ldr r4, [sp, #0x10] str r4, [sp, #0x0] lsl r4, r1, #0x2 ldr r1, _02006560 ; =0x021058A0 ldr r1, [r1, r4] bl FUN_02006314 add sp, #0x4 pop {r3-r4, pc} nop _02006560: .word 0x021058A0 thumb_func_start FUN_02006564 FUN_02006564: ; 0x02006564 push {r4, lr} sub sp, #0x8 ldr r4, [sp, #0x10] str r4, [sp, #0x0] mov r4, #0x0 str r4, [sp, #0x4] lsl r4, r0, #0x2 ldr r0, _02006580 ; =0x021058A0 ldr r0, [r0, r4] bl FUN_020063F4 add sp, #0x8 pop {r4, pc} nop _02006580: .word 0x021058A0 thumb_func_start FUN_02006584 FUN_02006584: ; 0x02006584 push {r4, lr} sub sp, #0x8 ldr r4, [sp, #0x10] str r4, [sp, #0x0] mov r4, #0x1 str r4, [sp, #0x4] lsl r4, r0, #0x2 ldr r0, _020065A0 ; =0x021058A0 ldr r0, [r0, r4] bl FUN_020063F4 add sp, #0x8 pop {r4, pc} nop _020065A0: .word 0x021058A0 thumb_func_start FUN_020065A4 FUN_020065A4: ; 0x020065A4 push {r3-r7, lr} sub sp, #0x58 add r5, r1, #0x0 mov r1, #0x0 add r4, r0, #0x0 str r1, [sp, #0xc] str r1, [sp, #0x8] str r1, [sp, #0x4] add r0, sp, #0x0 strh r1, [r0, #0x0] add r0, sp, #0x10 blx FS_InitFile ldr r1, _0200666C ; =0x021058A0 lsl r2, r4, #0x2 ldr r1, [r1, r2] add r0, sp, #0x10 blx FS_OpenFile add r0, sp, #0x10 mov r1, #0xc mov r2, #0x0 blx FS_SeekFile add r0, sp, #0x10 add r1, sp, #0xc mov r2, #0x2 blx FS_ReadFile ldr r4, [sp, #0xc] add r0, sp, #0x10 add r1, r4, #0x4 mov r2, #0x0 blx FS_SeekFile add r0, sp, #0x10 add r1, sp, #0xc mov r2, #0x4 blx FS_ReadFile add r0, sp, #0x10 add r1, sp, #0x0 mov r2, #0x2 blx FS_ReadFile add r0, sp, #0x0 ldrh r0, [r0, #0x0] cmp r0, r5 bgt _0200660A bl ErrorHandling _0200660A: ldr r0, [sp, #0xc] mov r2, #0x0 add r6, r4, r0 add r0, sp, #0x10 add r1, r6, #0x4 blx FS_SeekFile add r0, sp, #0x10 add r1, sp, #0xc mov r2, #0x4 blx FS_ReadFile add r4, #0xc lsl r1, r5, #0x3 add r0, sp, #0x10 add r1, r4, r1 mov r2, #0x0 ldr r7, [sp, #0xc] blx FS_SeekFile add r0, sp, #0x10 add r1, sp, #0x8 mov r2, #0x4 blx FS_ReadFile add r0, sp, #0x10 add r1, sp, #0x4 mov r2, #0x4 blx FS_ReadFile add r2, r6, r7 ldr r1, [sp, #0x8] add r2, #0x8 add r1, r2, r1 add r0, sp, #0x10 mov r2, #0x0 blx FS_SeekFile ldr r1, [sp, #0x4] ldr r0, [sp, #0x8] sub r0, r1, r0 str r0, [sp, #0xc] bne _02006664 bl ErrorHandling _02006664: ldr r0, [sp, #0xc] add sp, #0x58 pop {r3-r7, pc} nop _0200666C: .word 0x021058A0 thumb_func_start FUN_02006670 FUN_02006670: ; 0x02006670 push {r3-r5, lr} add r5, r0, #0x0 add r0, r1, #0x0 mov r1, #0x54 bl FUN_02016998 add r4, r0, #0x0 beq _020066EC mov r1, #0x0 str r1, [r4, #0x48] blx FS_InitFile ldr r1, _020066F0 ; =0x021058A0 lsl r2, r5, #0x2 ldr r1, [r1, r2] add r0, r4, #0x0 blx FS_OpenFile add r0, r4, #0x0 mov r1, #0xc mov r2, #0x0 blx FS_SeekFile add r1, r4, #0x0 add r0, r4, #0x0 add r1, #0x48 mov r2, #0x2 blx FS_ReadFile ldr r1, [r4, #0x48] add r0, r4, #0x0 add r1, r1, #0x4 mov r2, #0x0 blx FS_SeekFile add r0, r4, #0x0 add r1, sp, #0x0 mov r2, #0x4 blx FS_ReadFile add r1, r4, #0x0 add r0, r4, #0x0 add r1, #0x50 mov r2, #0x2 blx FS_ReadFile ldr r1, [r4, #0x48] ldr r0, [sp, #0x0] mov r2, #0x0 add r5, r1, r0 add r0, r4, #0x0 add r1, r5, #0x4 blx FS_SeekFile add r0, r4, #0x0 add r1, sp, #0x0 mov r2, #0x4 blx FS_ReadFile ldr r0, [sp, #0x0] add r0, r5, r0 str r0, [r4, #0x4c] _020066EC: add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 _020066F0: .word 0x021058A0 thumb_func_start FUN_020066F4 FUN_020066F4: ; 0x020066F4 push {r4, lr} add r4, r0, #0x0 blx FS_CloseFile add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} thumb_func_start FUN_02006704 FUN_02006704: ; 0x02006704 push {r4-r6, lr} sub sp, #0x8 add r5, r0, #0x0 add r0, #0x50 ldrh r0, [r0, #0x0] add r4, r1, #0x0 add r6, r2, #0x0 cmp r0, r4 bhi _0200671A bl ErrorHandling _0200671A: ldr r2, [r5, #0x48] lsl r1, r4, #0x3 add r2, #0xc add r1, r2, r1 add r0, r5, #0x0 mov r2, #0x0 blx FS_SeekFile add r0, r5, #0x0 add r1, sp, #0x4 mov r2, #0x4 blx FS_ReadFile add r0, r5, #0x0 add r1, sp, #0x0 mov r2, #0x4 blx FS_ReadFile ldr r2, [r5, #0x4c] ldr r1, [sp, #0x4] add r2, #0x8 add r1, r2, r1 add r0, r5, #0x0 mov r2, #0x0 blx FS_SeekFile ldr r2, [sp, #0x0] ldr r1, [sp, #0x4] add r0, r6, #0x0 sub r1, r2, r1 bl FUN_02016998 add r4, r0, #0x0 beq _0200676C ldr r3, [sp, #0x0] ldr r2, [sp, #0x4] add r0, r5, #0x0 add r1, r4, #0x0 sub r2, r3, r2 blx FS_ReadFile _0200676C: add r0, r4, #0x0 add sp, #0x8 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02006774 FUN_02006774: ; 0x02006774 push {r4-r6, lr} sub sp, #0x8 add r5, r0, #0x0 add r0, #0x50 ldrh r0, [r0, #0x0] add r4, r1, #0x0 add r6, r2, #0x0 cmp r0, r4 bhi _0200678A bl ErrorHandling _0200678A: ldr r2, [r5, #0x48] lsl r1, r4, #0x3 add r2, #0xc add r1, r2, r1 add r0, r5, #0x0 mov r2, #0x0 blx FS_SeekFile add r0, r5, #0x0 add r1, sp, #0x4 mov r2, #0x4 blx FS_ReadFile add r0, r5, #0x0 add r1, sp, #0x0 mov r2, #0x4 blx FS_ReadFile ldr r2, [r5, #0x4c] ldr r1, [sp, #0x4] add r2, #0x8 add r1, r2, r1 add r0, r5, #0x0 mov r2, #0x0 blx FS_SeekFile ldr r3, [sp, #0x0] ldr r2, [sp, #0x4] add r0, r5, #0x0 add r1, r6, #0x0 sub r2, r3, r2 blx FS_ReadFile add sp, #0x8 pop {r4-r6, pc} thumb_func_start FUN_020067D0 FUN_020067D0: ; 0x020067D0 push {r3-r5, lr} sub sp, #0x8 add r5, r0, #0x0 add r0, #0x50 ldrh r0, [r0, #0x0] add r4, r1, #0x0 cmp r0, r4 bhi _020067E4 bl ErrorHandling _020067E4: ldr r2, [r5, #0x48] lsl r1, r4, #0x3 add r2, #0xc add r1, r2, r1 add r0, r5, #0x0 mov r2, #0x0 blx FS_SeekFile add r0, r5, #0x0 add r1, sp, #0x4 mov r2, #0x4 blx FS_ReadFile add r0, r5, #0x0 add r1, sp, #0x0 mov r2, #0x4 blx FS_ReadFile ldr r1, [sp, #0x0] ldr r0, [sp, #0x4] sub r0, r1, r0 add sp, #0x8 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02006814 FUN_02006814: ; 0x02006814 push {r3-r7, lr} add r5, r0, #0x0 add r0, #0x50 ldrh r0, [r0, #0x0] add r4, r1, #0x0 add r6, r2, #0x0 add r7, r3, #0x0 cmp r0, r4 bhi _0200682A bl ErrorHandling _0200682A: ldr r2, [r5, #0x48] lsl r1, r4, #0x3 add r2, #0xc add r1, r2, r1 add r0, r5, #0x0 mov r2, #0x0 blx FS_SeekFile add r0, r5, #0x0 add r1, sp, #0x0 mov r2, #0x4 blx FS_ReadFile ldr r2, [r5, #0x4c] ldr r1, [sp, #0x0] add r2, #0x8 add r1, r2, r1 add r0, r5, #0x0 add r1, r6, r1 mov r2, #0x0 blx FS_SeekFile ldr r1, [sp, #0x18] add r0, r5, #0x0 add r2, r7, #0x0 blx FS_ReadFile pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02006864 FUN_02006864: ; 0x02006864 add r3, r1, #0x0 add r1, r2, #0x0 add r2, r3, #0x0 ldr r3, _02006870 ; =0x020D180C bx r3 nop _02006870: .word 0x020D180C thumb_func_start FUN_02006874 FUN_02006874: ; 0x02006874 add r0, #0x50 ldrh r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_0200687C FUN_0200687C: ; 0x0200687C push {r3-r7, lr} sub sp, #0x8 add r6, r2, #0x0 mov r2, #0x0 add r5, r3, #0x0 str r2, [sp, #0x0] ldr r2, [sp, #0x28] ldr r3, [sp, #0x2c] ldr r4, [sp, #0x24] bl FUN_02006C98 add r7, r0, #0x0 beq _020068C2 add r1, sp, #0x4 blx FUN_020B0030 cmp r0, #0x0 beq _020068BC cmp r4, #0x0 bne _020068A8 ldr r0, [sp, #0x4] ldr r4, [r0, #0x10] _020068A8: ldr r0, [sp, #0x20] lsl r1, r5, #0x18 str r0, [sp, #0x0] ldr r2, [sp, #0x4] add r0, r6, #0x0 ldr r2, [r2, #0x14] lsr r1, r1, #0x18 add r3, r4, #0x0 bl FUN_02017E14 _020068BC: add r0, r7, #0x0 bl FUN_02016A18 _020068C2: add r0, r4, #0x0 add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_020068C8 FUN_020068C8: ; 0x020068C8 push {r3-r7, lr} sub sp, #0x8 add r6, r2, #0x0 mov r2, #0x1 add r5, r3, #0x0 str r2, [sp, #0x0] ldr r2, [sp, #0x28] ldr r3, [sp, #0x2c] ldr r4, [sp, #0x24] bl FUN_02006C98 add r7, r0, #0x0 beq _0200692C add r1, sp, #0x4 blx FUN_020B0180 cmp r0, #0x0 beq _02006926 cmp r4, #0x0 bne _020068F4 ldr r0, [sp, #0x4] ldr r4, [r0, #0x8] _020068F4: lsl r1, r5, #0x18 add r0, r6, #0x0 lsr r1, r1, #0x18 bl FUN_0201886C cmp r0, #0x0 beq _02006912 ldr r2, [sp, #0x4] lsl r1, r5, #0x18 add r0, r6, #0x0 lsr r1, r1, #0x18 add r2, #0xc add r3, r4, #0x0 bl FUN_02017DFC _02006912: ldr r0, [sp, #0x20] lsl r1, r5, #0x18 str r0, [sp, #0x0] ldr r2, [sp, #0x4] add r0, r6, #0x0 lsr r1, r1, #0x18 add r2, #0xc add r3, r4, #0x0 bl FUN_02017CE8 _02006926: add r0, r7, #0x0 bl FUN_02016A18 _0200692C: add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_02006930 FUN_02006930: ; 0x02006930 push {lr} sub sp, #0xc str r3, [sp, #0x0] ldr r3, [sp, #0x10] str r3, [sp, #0x4] ldr r3, [sp, #0x14] str r3, [sp, #0x8] mov r3, #0x0 bl FUN_02006948 add sp, #0xc pop {pc} thumb_func_start FUN_02006948 FUN_02006948: ; 0x02006948 push {r4-r7, lr} sub sp, #0xc add r4, r2, #0x0 add r7, r3, #0x0 mov r2, #0x1 str r2, [sp, #0x0] ldr r3, [sp, #0x28] mov r2, #0x0 ldr r6, [sp, #0x20] ldr r5, [sp, #0x24] bl FUN_02006C98 str r0, [sp, #0x4] cmp r0, #0x0 beq _02006A2A add r1, sp, #0x8 blx FUN_020B0138 cmp r0, #0x0 beq _02006A24 ldr r0, [sp, #0x8] ldr r1, [r0, #0xc] add r1, r1, r7 str r1, [r0, #0xc] cmp r5, #0x0 bne _02006982 ldr r0, [sp, #0x8] ldr r0, [r0, #0x8] sub r5, r0, r7 _02006982: ldr r0, [sp, #0x8] add r1, r5, #0x0 ldr r0, [r0, #0xc] blx DC_FlushRange cmp r4, #0x7 bhi _02006A14 add r0, r4, r4 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0200699C: ; jump table (using 16-bit offset) .short _02006A14 - _0200699C - 2; case 0 .short _02006A14 - _0200699C - 2; case 1 .short _020069AC - _0200699C - 2; case 2 .short _020069E0 - _0200699C - 2; case 3 .short _02006A14 - _0200699C - 2; case 4 .short _02006A14 - _0200699C - 2; case 5 .short _020069C6 - _0200699C - 2; case 6 .short _020069FA - _0200699C - 2; case 7 _020069AC: blx FUN_020C8B10 ldr r0, [sp, #0x8] ldr r3, _02006A30 ; =0x020ECBB0 lsl r4, r4, #0x2 ldr r0, [r0, #0xc] ldr r3, [r3, r4] add r1, r6, #0x0 add r2, r5, #0x0 blx r3 blx FUN_020C8A2C b _02006A24 _020069C6: blx FUN_020C88CC ldr r0, [sp, #0x8] ldr r3, _02006A30 ; =0x020ECBB0 lsl r4, r4, #0x2 ldr r0, [r0, #0xc] ldr r3, [r3, r4] add r1, r6, #0x0 add r2, r5, #0x0 blx r3 blx FUN_020C880C b _02006A24 _020069E0: blx FUN_020C89BC ldr r0, [sp, #0x8] ldr r3, _02006A30 ; =0x020ECBB0 lsl r4, r4, #0x2 ldr r0, [r0, #0xc] ldr r3, [r3, r4] add r1, r6, #0x0 add r2, r5, #0x0 blx r3 blx FUN_020C88F0 b _02006A24 _020069FA: blx FUN_020C87E8 ldr r0, [sp, #0x8] ldr r3, _02006A30 ; =0x020ECBB0 lsl r4, r4, #0x2 ldr r0, [r0, #0xc] ldr r3, [r3, r4] add r1, r6, #0x0 add r2, r5, #0x0 blx r3 blx FUN_020C8728 b _02006A24 _02006A14: ldr r0, [sp, #0x8] ldr r3, _02006A30 ; =0x020ECBB0 lsl r4, r4, #0x2 ldr r0, [r0, #0xc] ldr r3, [r3, r4] add r1, r6, #0x0 add r2, r5, #0x0 blx r3 _02006A24: ldr r0, [sp, #0x4] bl FUN_02016A18 _02006A2A: add sp, #0xc pop {r4-r7, pc} nop _02006A30: .word 0x020ECBB0 thumb_func_start FUN_02006A34 FUN_02006A34: ; 0x02006A34 push {r3-r7, lr} sub sp, #0x8 add r5, r2, #0x0 mov r2, #0x1 add r6, r3, #0x0 str r2, [sp, #0x0] ldr r2, [sp, #0x24] ldr r3, [sp, #0x28] ldr r4, [sp, #0x20] bl FUN_02006C98 add r7, r0, #0x0 beq _02006A80 add r1, sp, #0x4 blx FUN_020B0088 cmp r0, #0x0 beq _02006A7A cmp r4, #0x0 bne _02006A60 ldr r0, [sp, #0x4] ldr r4, [r0, #0x10] _02006A60: ldr r0, [sp, #0x4] add r1, r4, #0x0 ldr r0, [r0, #0x14] blx DC_FlushRange ldr r0, [sp, #0x4] ldr r3, _02006A88 ; =0x020ECBA0 lsl r5, r5, #0x2 ldr r0, [r0, #0x14] ldr r3, [r3, r5] add r1, r6, #0x0 add r2, r4, #0x0 blx r3 _02006A7A: add r0, r7, #0x0 bl FUN_02016A18 _02006A80: add r0, r4, #0x0 add sp, #0x8 pop {r3-r7, pc} nop _02006A88: .word 0x020ECBA0 thumb_func_start FUN_02006A8C FUN_02006A8C: ; 0x02006A8C push {r4-r7, lr} sub sp, #0xc add r5, r2, #0x0 add r4, r3, #0x0 mov r2, #0x1 str r2, [sp, #0x0] ldr r3, [sp, #0x20] mov r2, #0x0 bl FUN_02006C98 add r6, r0, #0x0 beq _02006AE0 add r1, sp, #0x4 blx FUN_020B00F0 add r7, r0, #0x0 add r0, r6, #0x0 add r1, sp, #0x8 blx FUN_020B0138 cmp r0, #0x0 beq _02006ADA cmp r7, #0x0 beq _02006ACE ldr r0, [sp, #0x24] add r2, r4, #0x0 str r0, [sp, #0x0] ldr r0, [sp, #0x8] ldr r1, [sp, #0x4] add r3, r5, #0x0 blx FUN_020B10E8 b _02006ADA _02006ACE: ldr r0, [sp, #0x8] ldr r3, [sp, #0x24] add r1, r4, #0x0 add r2, r5, #0x0 blx FUN_020B1240 _02006ADA: add r0, r6, #0x0 bl FUN_02016A18 _02006AE0: add sp, #0xc pop {r4-r7, pc} thumb_func_start FUN_02006AE4 FUN_02006AE4: ; 0x02006AE4 push {r4-r6, lr} sub sp, #0x8 add r5, r3, #0x0 mov r3, #0x1 str r3, [sp, #0x0] ldr r3, [sp, #0x24] bl FUN_02006C98 add r6, r0, #0x0 ldr r4, _02006B30 ; =0x00000000 beq _02006B28 add r1, sp, #0x4 blx FUN_020B0088 cmp r0, #0x0 beq _02006B22 ldr r1, [sp, #0x18] cmp r1, #0x0 beq _02006B0E ldr r0, [sp, #0x4] str r1, [r0, #0x10] _02006B0E: ldr r4, _02006B34 ; =0x020ECBA8 lsl r5, r5, #0x2 ldr r0, [sp, #0x4] ldr r1, [sp, #0x20] ldr r2, [sp, #0x1c] ldr r3, [sp, #0x28] ldr r4, [r4, r5] blx r4 ldr r0, [sp, #0x4] ldr r4, [r0, #0x10] _02006B22: add r0, r6, #0x0 bl FUN_02016A18 _02006B28: add r0, r4, #0x0 add sp, #0x8 pop {r4-r6, pc} nop _02006B30: .word 0x00000000 _02006B34: .word 0x020ECBA8 thumb_func_start FUN_02006B38 FUN_02006B38: ; 0x02006B38 push {r4-r6, lr} sub sp, #0x8 add r5, r3, #0x0 mov r3, #0x1 str r3, [sp, #0x0] ldr r3, [sp, #0x24] bl FUN_02006C98 add r4, r0, #0x0 beq _02006B9E add r1, sp, #0x4 blx FUN_020B0088 cmp r0, #0x0 beq _02006B98 ldr r1, [sp, #0x18] cmp r1, #0x0 beq _02006B60 ldr r0, [sp, #0x4] str r1, [r0, #0x10] _02006B60: ldr r0, [sp, #0x1c] cmp r0, #0x1 beq _02006B6C cmp r0, #0x2 beq _02006B7C b _02006B88 _02006B6C: mov r0, #0x1 lsl r0, r0, #0x1a ldr r1, [r0, #0x0] ldr r0, _02006BA4 ; =0x00300010 and r1, r0 ldr r0, [sp, #0x4] str r1, [r0, #0x8] b _02006B88 _02006B7C: ldr r0, _02006BA8 ; =0x04001000 ldr r1, [r0, #0x0] ldr r0, _02006BA4 ; =0x00300010 and r1, r0 ldr r0, [sp, #0x4] str r1, [r0, #0x8] _02006B88: lsl r6, r5, #0x2 ldr r5, _02006BAC ; =0x020ECB98 ldr r0, [sp, #0x4] ldr r1, [sp, #0x20] ldr r2, [sp, #0x1c] ldr r3, [sp, #0x28] ldr r5, [r5, r6] blx r5 _02006B98: add r0, r4, #0x0 bl FUN_02016A18 _02006B9E: add sp, #0x8 pop {r4-r6, pc} nop _02006BA4: .word 0x00300010 _02006BA8: .word 0x04001000 _02006BAC: .word 0x020ECB98 thumb_func_start FUN_02006BB0 FUN_02006BB0: ; 0x02006BB0 push {r3-r5, lr} add r4, r3, #0x0 mov r3, #0x0 str r3, [sp, #0x0] ldr r3, [sp, #0x10] bl FUN_02006C98 add r5, r0, #0x0 beq _02006BD6 add r1, r4, #0x0 blx FUN_020B0030 cmp r0, #0x0 bne _02006BD6 add r0, r5, #0x0 bl FUN_02016A18 mov r0, #0x0 pop {r3-r5, pc} _02006BD6: add r0, r5, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02006BDC FUN_02006BDC: ; 0x02006BDC push {r3-r5, lr} add r4, r3, #0x0 mov r3, #0x0 str r3, [sp, #0x0] ldr r3, [sp, #0x10] bl FUN_02006C98 add r5, r0, #0x0 beq _02006C02 add r1, r4, #0x0 blx FUN_020B0180 cmp r0, #0x0 bne _02006C02 add r0, r5, #0x0 bl FUN_02016A18 mov r0, #0x0 pop {r3-r5, pc} _02006C02: add r0, r5, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02006C08 FUN_02006C08: ; 0x02006C08 push {r3-r5, lr} add r5, r2, #0x0 mov r2, #0x0 str r2, [sp, #0x0] bl FUN_02006C98 add r4, r0, #0x0 beq _02006C2C add r1, r5, #0x0 blx FUN_020B0138 cmp r0, #0x0 bne _02006C2C add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x0 pop {r3-r5, pc} _02006C2C: add r0, r4, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02006C30 FUN_02006C30: ; 0x02006C30 push {r3-r5, lr} add r4, r3, #0x0 mov r3, #0x0 str r3, [sp, #0x0] ldr r3, [sp, #0x10] bl FUN_02006C98 add r5, r0, #0x0 beq _02006C56 add r1, r4, #0x0 blx FUN_020AFEB8 cmp r0, #0x0 bne _02006C56 add r0, r5, #0x0 bl FUN_02016A18 mov r0, #0x0 pop {r3-r5, pc} _02006C56: add r0, r5, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02006C5C FUN_02006C5C: ; 0x02006C5C push {r3-r5, lr} add r4, r3, #0x0 mov r3, #0x0 str r3, [sp, #0x0] ldr r3, [sp, #0x10] bl FUN_02006C98 add r5, r0, #0x0 beq _02006C82 add r1, r4, #0x0 blx FUN_020AFD94 cmp r0, #0x0 bne _02006C82 add r0, r5, #0x0 bl FUN_02016A18 mov r0, #0x0 pop {r3-r5, pc} _02006C82: add r0, r5, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02006C88 FUN_02006C88: ; 0x02006C88 push {r3, lr} add r3, r2, #0x0 mov r2, #0x0 str r2, [sp, #0x0] mov r2, #0x1 bl FUN_02006C98 pop {r3, pc} thumb_func_start FUN_02006C98 FUN_02006C98: ; 0x02006C98 push {r3-r7, lr} add r5, r2, #0x0 add r7, r0, #0x0 add r6, r3, #0x0 str r1, [sp, #0x0] cmp r5, #0x0 bne _02006CAC ldr r2, [sp, #0x18] cmp r2, #0x1 bne _02006CC0 _02006CAC: ldr r1, [sp, #0x0] add r0, r7, #0x0 bl FUN_020065A4 add r1, r0, #0x0 add r0, r6, #0x0 bl FUN_020169D8 add r4, r0, #0x0 b _02006CCE _02006CC0: bl FUN_020065A4 add r1, r0, #0x0 add r0, r6, #0x0 bl FUN_02016998 add r4, r0, #0x0 _02006CCE: cmp r4, #0x0 beq _02006D12 ldr r2, [sp, #0x0] add r0, r4, #0x0 add r1, r7, #0x0 bl FUN_020064F0 cmp r5, #0x0 beq _02006D12 ldr r0, [sp, #0x18] cmp r0, #0x0 bne _02006CF2 ldr r1, [r4, #0x0] add r0, r6, #0x0 lsr r1, r1, #0x8 bl FUN_02016998 b _02006CFC _02006CF2: ldr r1, [r4, #0x0] add r0, r6, #0x0 lsr r1, r1, #0x8 bl FUN_020169D8 _02006CFC: add r5, r0, #0x0 cmp r5, #0x0 beq _02006D10 add r0, r4, #0x0 add r1, r5, #0x0 blx MI_UncompressLZ8 add r0, r4, #0x0 bl FUN_02016A18 _02006D10: add r4, r5, #0x0 _02006D12: add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02006D18 FUN_02006D18: ; 0x02006D18 push {r3-r7, lr} sub sp, #0x8 ldr r5, [sp, #0x24] str r0, [sp, #0x0] str r1, [sp, #0x4] add r6, r2, #0x0 add r7, r3, #0x0 bl FUN_020065A4 str r0, [r5, #0x0] cmp r6, #0x0 bne _02006D36 ldr r0, [sp, #0x20] cmp r0, #0x1 bne _02006D42 _02006D36: ldr r1, [r5, #0x0] add r0, r7, #0x0 bl FUN_020169D8 add r4, r0, #0x0 b _02006D4C _02006D42: ldr r1, [r5, #0x0] add r0, r7, #0x0 bl FUN_02016998 add r4, r0, #0x0 _02006D4C: cmp r4, #0x0 beq _02006D92 ldr r1, [sp, #0x0] ldr r2, [sp, #0x4] add r0, r4, #0x0 bl FUN_020064F0 cmp r6, #0x0 beq _02006D92 ldr r0, [r4, #0x0] lsr r0, r0, #0x8 str r0, [r5, #0x0] ldr r0, [sp, #0x20] cmp r0, #0x0 bne _02006D74 ldr r1, [r5, #0x0] add r0, r7, #0x0 bl FUN_02016998 b _02006D7C _02006D74: ldr r1, [r5, #0x0] add r0, r7, #0x0 bl FUN_020169D8 _02006D7C: add r5, r0, #0x0 cmp r5, #0x0 beq _02006D90 add r0, r4, #0x0 add r1, r5, #0x0 blx MI_UncompressLZ8 add r0, r4, #0x0 bl FUN_02016A18 _02006D90: add r4, r5, #0x0 _02006D92: add r0, r4, #0x0 add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_02006D98 FUN_02006D98: ; 0x02006D98 push {r3-r7, lr} sub sp, #0x10 mov r1, #0xba lsl r1, r1, #0x2 add r5, r0, #0x0 bl FUN_02016998 add r4, r0, #0x0 mov r0, #0xa6 lsl r0, r0, #0x2 add r1, r0, #0x0 add r3, r0, #0x0 str r5, [r4, r0] mov r2, #0x0 add r1, #0x48 strb r2, [r4, r1] add r1, r0, #0x4 str r2, [r4, r1] mov r1, #0x2 lsl r1, r1, #0xe add r3, #0x8 str r1, [r4, r3] add r3, r0, #0x0 add r3, #0xc str r2, [r4, r3] mov r2, #0x80 add r0, #0x10 str r2, [r4, r0] add r0, r5, #0x0 bl FUN_02016998 mov r1, #0xab lsl r1, r1, #0x2 str r0, [r4, r1] add r0, r5, #0x0 mov r1, #0xc0 bl FUN_02016998 mov r1, #0x2b lsl r1, r1, #0x4 str r0, [r4, r1] ldr r1, [r4, r1] mov r0, #0x0 mov r2, #0x4 blx MIi_CpuClearFast add r0, r5, #0x0 mov r1, #0xc0 bl FUN_02016998 mov r1, #0xad lsl r1, r1, #0x2 str r0, [r4, r1] ldr r1, [r4, r1] mov r0, #0x0 mov r2, #0x4 blx MIi_CpuClearFast mov r6, #0x0 add r5, r4, #0x0 add r7, r6, #0x0 _02006E12: add r0, r7, #0x0 add r1, r5, #0x0 mov r2, #0x98 blx MIi_CpuClearFast add r6, r6, #0x1 add r5, #0x98 cmp r6, #0x4 blt _02006E12 blx FUN_020B02C8 ldr r2, _02006EC8 ; =0x000002E3 mov r0, #0x0 strb r0, [r4, r2] sub r2, #0x4b ldr r2, [r4, r2] mov r0, #0x75 mov r1, #0xd3 bl FUN_0200650C add r1, sp, #0xc str r0, [sp, #0x4] blx FUN_020B0088 ldr r0, [sp, #0xc] mov r1, #0xaf ldr r0, [r0, #0x4] lsl r1, r1, #0x2 str r0, [r4, r1] ldr r0, [sp, #0xc] ldr r2, [r0, #0x8] add r0, r1, #0x4 str r2, [r4, r0] ldr r0, [sp, #0xc] add r1, #0x8 ldr r0, [r0, #0xc] str r0, [r4, r1] ldr r0, [sp, #0xc] ldr r0, [r0, #0x14] str r0, [sp, #0x8] bl FUN_02008A74 ldr r1, [sp, #0x8] mov r0, #0xab lsl r0, r0, #0x2 mov r2, #0x2 ldrb r1, [r1, #0x0] ldr r0, [r4, r0] lsl r2, r2, #0xe blx MI_CpuFill8 mov r0, #0x0 mov r7, #0xab ldr r6, _02006ECC ; =0x00005050 mov r12, r0 str r0, [sp, #0x0] add r3, r0, #0x0 lsl r7, r7, #0x2 _02006E86: ldr r2, [sp, #0x8] ldr r0, [sp, #0x0] mov r1, #0x0 add r2, r2, r0 _02006E8E: ldr r5, [r4, r7] ldrb r0, [r2, #0x0] add r5, r3, r5 add r5, r1, r5 add r1, r1, #0x1 add r2, r2, #0x1 strb r0, [r5, r6] cmp r1, #0x28 blt _02006E8E ldr r0, [sp, #0x0] add r3, #0x80 add r0, #0x50 str r0, [sp, #0x0] mov r0, r12 add r0, r0, #0x1 mov r12, r0 cmp r0, #0x50 blt _02006E86 ldr r0, [sp, #0x4] bl FUN_02016A18 ldr r0, _02006ED0 ; =0x000002E1 mov r1, #0x1 strb r1, [r4, r0] add r0, r0, #0x1 strb r1, [r4, r0] add r0, r4, #0x0 add sp, #0x10 pop {r3-r7, pc} .balign 4 _02006EC8: .word 0x000002E3 _02006ECC: .word 0x00005050 _02006ED0: .word 0x000002E1 thumb_func_start FUN_02006ED4 FUN_02006ED4: ; 0x02006ED4 push {r3-r7, lr} sub sp, #0x20 add r5, r0, #0x0 bl FUN_020082A8 add r0, r5, #0x0 bl FUN_020086F4 blx FUN_020BB394 mov r6, #0x9f mov r0, #0x0 ldr r4, _02007250 ; =0x04000444 lsl r6, r6, #0x2 str r0, [r4, #0x0] str r0, [sp, #0x18] add r0, r6, #0x0 sub r0, #0xc ldr r1, [r5, r0] add r3, r6, #0x0 ldr r2, [r5, r6] add r0, r6, #0x0 sub r3, #0x8 add r6, #0x20 ldr r3, [r5, r3] ldr r6, [r5, r6] sub r0, #0x10 ldr r0, [r5, r0] lsr r6, r6, #0x3 lsl r3, r3, #0x1a orr r6, r3 mov r3, #0x1 lsl r3, r3, #0x1e lsl r0, r0, #0x14 orr r3, r6 lsl r1, r1, #0x17 orr r0, r3 lsl r2, r2, #0x1d orr r0, r1 orr r0, r2 str r0, [r4, #0x64] ldr r0, [sp, #0x18] add r4, r5, #0x0 str r0, [sp, #0x14] ldr r0, _02007254 ; =0x020ECD4C str r0, [sp, #0x1c] _02006F30: ldr r0, [r4, #0x0] lsl r0, r0, #0x1f lsr r0, r0, #0x1f beq _02006F46 ldr r0, [r4, #0x54] lsl r1, r0, #0x1f lsr r1, r1, #0x1f bne _02006F46 lsl r0, r0, #0x14 lsr r0, r0, #0x1f beq _02006F48 _02006F46: b _020072BC _02006F48: ldr r2, [r4, #0x68] cmp r2, #0x0 beq _02006F56 add r1, r4, #0x0 add r0, r4, #0x0 add r1, #0x24 blx r2 _02006F56: blx FUN_020BB394 ldr r0, _02007258 ; =0x000002E3 ldrb r0, [r5, r0] cmp r0, #0x1 beq _02006F68 ldr r0, _0200725C ; =0x04000454 mov r1, #0x0 str r1, [r0, #0x0] _02006F68: add r0, r4, #0x0 bl FUN_02007F48 mov r0, #0x9d lsl r0, r0, #0x2 ldr r0, [r5, r0] cmp r0, #0x2 bne _02006F7C mov r0, #0x1 b _02006F7E _02006F7C: mov r0, #0x0 _02006F7E: mov r1, #0xa9 lsl r1, r1, #0x2 ldr r2, [r5, r1] ldr r1, [sp, #0x14] add r2, r2, r1 mov r1, #0x4 sub r0, r1, r0 add r1, r2, #0x0 lsr r1, r0 ldr r0, _02007260 ; =0x040004AC str r1, [r0, #0x0] ldr r0, [r4, #0x28] lsl r1, r0, #0xc mov r0, #0x26 ldrsh r2, [r4, r0] mov r0, #0x42 ldrsh r0, [r4, r0] add r0, r2, r0 mov r2, #0x24 ldrsh r3, [r4, r2] mov r2, #0x40 ldrsh r2, [r4, r2] lsl r0, r0, #0xc add r2, r3, r2 lsl r3, r2, #0xc ldr r2, _02007264 ; =0x04000470 str r3, [r2, #0x0] str r0, [r2, #0x0] add r0, r2, #0x0 str r1, [r0, #0x0] ldrh r0, [r4, #0x38] asr r0, r0, #0x4 lsl r1, r0, #0x2 ldr r0, _02007268 ; =0x020FFA38 add r2, r0, r1 ldrsh r0, [r0, r1] mov r1, #0x2 ldrsh r1, [r2, r1] blx FUN_020C8068 ldrh r0, [r4, #0x3a] asr r0, r0, #0x4 lsl r1, r0, #0x2 ldr r0, _02007268 ; =0x020FFA38 add r2, r0, r1 ldrsh r0, [r0, r1] mov r1, #0x2 ldrsh r1, [r2, r1] blx FUN_020C802C ldrh r0, [r4, #0x3c] asr r0, r0, #0x4 lsl r1, r0, #0x2 ldr r0, _02007268 ; =0x020FFA38 add r2, r0, r1 ldrsh r0, [r0, r1] mov r1, #0x2 ldrsh r1, [r2, r1] blx FUN_020C7FF0 ldr r0, [r4, #0x28] lsl r0, r0, #0xc neg r1, r0 mov r0, #0x26 ldrsh r2, [r4, r0] mov r0, #0x42 ldrsh r0, [r4, r0] add r0, r2, r0 mov r2, #0x24 ldrsh r3, [r4, r2] mov r2, #0x40 ldrsh r2, [r4, r2] lsl r0, r0, #0xc neg r0, r0 add r2, r3, r2 lsl r2, r2, #0xc neg r3, r2 ldr r2, _02007264 ; =0x04000470 str r3, [r2, #0x0] str r0, [r2, #0x0] add r0, r2, #0x0 str r1, [r0, #0x0] ldr r3, [r4, #0x50] lsl r0, r3, #0x11 lsr r0, r0, #0x1b lsl r2, r3, #0x16 lsl r1, r0, #0xa lsl r0, r3, #0x1b lsr r2, r2, #0x1b lsr r0, r0, #0x1b lsl r2, r2, #0x5 orr r0, r2 orr r0, r1 lsl r0, r0, #0x10 lsr r2, r0, #0x10 lsl r0, r3, #0x2 lsr r0, r0, #0x1b lsl r1, r0, #0xa lsl r0, r3, #0xc lsl r3, r3, #0x7 lsr r3, r3, #0x1b lsr r0, r0, #0x1b lsl r3, r3, #0x5 orr r0, r3 orr r0, r1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 lsl r0, r0, #0x10 add r1, r2, #0x0 orr r1, r0 mov r0, #0x2 lsl r0, r0, #0xe orr r1, r0 ldr r0, _0200726C ; =0x040004C0 str r1, [r0, #0x0] ldr r1, _02007270 ; =0x00004210 add r0, r0, #0x4 str r1, [r0, #0x0] ldr r1, [r4, #0x0] ldr r0, [r4, #0x54] lsl r1, r1, #0x19 lsl r0, r0, #0x19 lsr r1, r1, #0x1a lsr r0, r0, #0x1b lsl r2, r1, #0x18 mov r1, #0xc0 lsl r0, r0, #0x10 orr r1, r2 orr r1, r0 ldr r0, _02007274 ; =0x040004A4 str r1, [r0, #0x0] ldr r0, [r4, #0x54] lsl r0, r0, #0x1e lsr r0, r0, #0x1f beq _02007104 add r0, r4, #0x0 add r0, #0x5b ldrb r0, [r0, #0x0] add r2, r4, #0x0 add r2, #0x44 lsl r1, r0, #0x4 ldr r0, [sp, #0x1c] ldrb r3, [r2, #0x0] add r0, r0, r1 ldr r2, [sp, #0x1c] ldr r0, [r0, #0x4] ldr r1, [r2, r1] add r6, r3, r1 add r1, r4, #0x0 add r1, #0x46 ldrb r1, [r1, #0x0] mov r12, r1 add r1, r4, #0x0 add r1, #0x45 ldrb r2, [r1, #0x0] add r1, r2, r0 add r0, r4, #0x0 add r0, #0x47 ldrb r7, [r0, #0x0] mov r0, r12 add r0, r0, r6 str r7, [sp, #0x0] str r6, [sp, #0x4] str r1, [sp, #0x8] str r0, [sp, #0xc] add r0, r7, r1 str r0, [sp, #0x10] mov r1, #0x24 ldrsh r1, [r4, r1] mov r0, #0x2c ldrsh r0, [r4, r0] sub r1, #0x28 add r1, r1, r3 add r0, r0, r1 mov r3, #0x26 ldrsh r3, [r4, r3] mov r1, #0x2e lsl r0, r0, #0x10 sub r3, #0x28 add r2, r3, r2 ldrsh r1, [r4, r1] ldr r3, [r4, #0x28] asr r0, r0, #0x10 add r2, r1, r2 mov r1, #0x6e ldrsb r1, [r4, r1] sub r1, r2, r1 ldr r2, [r4, #0x30] lsl r1, r1, #0x10 add r2, r3, r2 asr r1, r1, #0x10 mov r3, r12 blx FUN_020B0250 b _02007174 _02007104: mov r0, #0x34 ldrsh r1, [r4, r0] mov r0, #0x50 ldr r2, [sp, #0x1c] mul r0, r1 asr r3, r0, #0x8 mov r0, #0x36 ldrsh r1, [r4, r0] mov r0, #0x50 ldr r6, [sp, #0x1c] mul r0, r1 asr r1, r0, #0x8 add r0, r4, #0x0 add r0, #0x5b ldrb r0, [r0, #0x0] lsl r0, r0, #0x4 str r1, [sp, #0x0] add r2, r2, r0 ldr r0, [r6, r0] lsr r6, r1, #0x1f str r0, [sp, #0x4] ldr r0, [r2, #0x4] add r6, r1, r6 str r0, [sp, #0x8] ldr r0, [r2, #0x8] asr r1, r6, #0x1 str r0, [sp, #0xc] ldr r0, [r2, #0xc] str r0, [sp, #0x10] mov r0, #0x24 ldrsh r2, [r4, r0] lsr r0, r3, #0x1f add r0, r3, r0 asr r0, r0, #0x1 sub r2, r2, r0 mov r0, #0x2c ldrsh r0, [r4, r0] ldr r6, [r4, #0x28] add r0, r2, r0 mov r2, #0x26 ldrsh r2, [r4, r2] lsl r0, r0, #0x10 asr r0, r0, #0x10 sub r2, r2, r1 mov r1, #0x2e ldrsh r1, [r4, r1] add r2, r2, r1 mov r1, #0x6e ldrsb r1, [r4, r1] sub r1, r2, r1 ldr r2, [r4, #0x30] lsl r1, r1, #0x10 asr r1, r1, #0x10 add r2, r6, r2 blx FUN_020B0250 _02007174: add r0, r4, #0x0 add r0, #0x6c ldrh r0, [r0, #0x0] lsl r1, r0, #0x1e lsr r1, r1, #0x1e beq _0200719A lsl r0, r0, #0x19 lsr r0, r0, #0x1e beq _0200719A ldr r0, [r4, #0x54] lsl r0, r0, #0x1e lsr r0, r0, #0x1f bne _0200719A mov r0, #0xb9 lsl r0, r0, #0x2 ldr r1, [r5, r0] mov r0, #0x1 tst r0, r1 beq _0200719C _0200719A: b _020072BC _0200719C: ldr r0, _02007258 ; =0x000002E3 ldrb r0, [r5, r0] cmp r0, #0x1 beq _020071AA ldr r0, _0200725C ; =0x04000454 mov r1, #0x0 str r1, [r0, #0x0] _020071AA: mov r0, #0x9d lsl r0, r0, #0x2 ldr r0, [r5, r0] cmp r0, #0x2 bne _020071B8 mov r1, #0x1 b _020071BA _020071B8: mov r1, #0x0 _020071BA: add r2, r4, #0x0 add r2, #0x6c ldrh r2, [r2, #0x0] mov r0, #0xa9 lsl r0, r0, #0x2 lsl r2, r2, #0x1e lsr r2, r2, #0x1e add r2, r2, #0x3 ldr r0, [r5, r0] lsl r2, r2, #0x5 add r2, r0, r2 mov r0, #0x4 sub r0, r0, r1 add r1, r2, #0x0 lsr r1, r0 ldr r0, _02007260 ; =0x040004AC str r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x6c ldrh r0, [r0, #0x0] lsl r0, r0, #0x1b lsr r0, r0, #0x1f beq _020071FA mov r0, #0x34 ldrsh r0, [r4, r0] lsl r0, r0, #0x6 asr r3, r0, #0x8 mov r0, #0x36 ldrsh r0, [r4, r0] lsl r0, r0, #0x4 asr r1, r0, #0x8 b _020071FE _020071FA: mov r3, #0x40 mov r1, #0x10 _020071FE: add r0, r4, #0x0 add r0, #0x6c ldrh r0, [r0, #0x0] lsl r0, r0, #0x1d lsr r0, r0, #0x1f beq _02007220 mov r0, #0x74 ldrsh r2, [r4, r0] mov r0, #0x24 mov r6, #0x2c ldrsh r0, [r4, r0] ldrsh r6, [r4, r6] add r0, r0, r6 add r2, r2, r0 add r0, r4, #0x0 add r0, #0x70 strh r2, [r0, #0x0] _02007220: add r0, r4, #0x0 add r0, #0x6c ldrh r0, [r0, #0x0] lsl r0, r0, #0x1c lsr r0, r0, #0x1f beq _02007242 mov r0, #0x76 ldrsh r2, [r4, r0] mov r0, #0x26 mov r6, #0x2e ldrsh r0, [r4, r0] ldrsh r6, [r4, r6] add r0, r0, r6 add r2, r2, r0 add r0, r4, #0x0 add r0, #0x72 strh r2, [r0, #0x0] _02007242: add r0, r4, #0x0 add r0, #0x6c ldrh r0, [r0, #0x0] ldr r2, _02007278 ; =0x020ECBD0 ldr r6, _02007278 ; =0x020ECBD0 b _0200727C nop _02007250: .word 0x04000444 _02007254: .word 0x020ECD4C _02007258: .word 0x000002E3 _0200725C: .word 0x04000454 _02007260: .word 0x040004AC _02007264: .word 0x04000470 _02007268: .word 0x020FFA38 _0200726C: .word 0x040004C0 _02007270: .word 0x00004210 _02007274: .word 0x040004A4 _02007278: .word 0x020ECBD0 _0200727C: lsl r0, r0, #0x19 lsr r0, r0, #0x1e lsl r0, r0, #0x4 str r1, [sp, #0x0] add r2, r2, r0 ldr r0, [r6, r0] lsr r6, r1, #0x1f str r0, [sp, #0x4] ldr r0, [r2, #0x4] add r6, r1, r6 str r0, [sp, #0x8] ldr r0, [r2, #0x8] asr r1, r6, #0x1 str r0, [sp, #0xc] ldr r0, [r2, #0xc] str r0, [sp, #0x10] mov r0, #0x70 ldrsh r2, [r4, r0] lsr r0, r3, #0x1f add r0, r3, r0 asr r0, r0, #0x1 sub r0, r2, r0 mov r2, #0x72 ldrsh r2, [r4, r2] lsl r0, r0, #0x10 asr r0, r0, #0x10 sub r1, r2, r1 lsl r1, r1, #0x10 ldr r2, _020072E0 ; =0xFFFFFC18 asr r1, r1, #0x10 blx FUN_020B0250 _020072BC: ldr r0, [sp, #0x14] add r4, #0x98 add r0, #0x20 str r0, [sp, #0x14] ldr r0, [sp, #0x1c] add r0, #0x20 str r0, [sp, #0x1c] ldr r0, [sp, #0x18] add r0, r0, #0x1 str r0, [sp, #0x18] cmp r0, #0x4 bge _020072D6 b _02006F30 _020072D6: ldr r0, _020072E4 ; =0x04000448 mov r1, #0x1 str r1, [r0, #0x0] add sp, #0x20 pop {r3-r7, pc} .balign 4 _020072E0: .word 0xFFFFFC18 _020072E4: .word 0x04000448 thumb_func_start FUN_020072E8 FUN_020072E8: ; 0x020072E8 push {r4, lr} add r4, r0, #0x0 mov r0, #0xab lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02016A18 mov r0, #0x2b lsl r0, r0, #0x4 ldr r0, [r4, r0] bl FUN_02016A18 mov r0, #0xad lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02016A18 add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} .balign 4 thumb_func_start FUN_02007314 FUN_02007314: ; 0x02007314 push {r3-r4} add r1, r0, #0x0 mov r3, #0x0 add r1, #0x59 strb r3, [r1, #0x0] add r1, r3, #0x0 _02007320: add r2, r0, r3 add r2, #0x5c add r3, r3, #0x1 strb r1, [r2, #0x0] cmp r3, #0xa blt _02007320 add r2, r0, #0x0 add r2, #0x59 ldrb r2, [r2, #0x0] lsl r2, r2, #0x1 add r3, r0, r2 mov r2, #0x84 ldrsb r4, [r3, r2] add r3, r2, #0x0 sub r3, #0x85 cmp r4, r3 bne _0200734A add r0, #0x5b strb r1, [r0, #0x0] pop {r3-r4} bx lr _0200734A: add r1, r0, #0x0 mov r3, #0x1 add r1, #0x58 strb r3, [r1, #0x0] add r1, r0, #0x0 add r1, #0x59 ldrb r1, [r1, #0x0] lsl r1, r1, #0x1 add r1, r0, r1 ldrsb r2, [r1, r2] add r1, r0, #0x0 add r1, #0x5b strb r2, [r1, #0x0] add r1, r0, #0x0 add r1, #0x59 ldrb r1, [r1, #0x0] lsl r1, r1, #0x1 add r1, r0, r1 add r1, #0x85 ldrb r1, [r1, #0x0] add r0, #0x5a strb r1, [r0, #0x0] pop {r3-r4} bx lr .balign 4 thumb_func_start FUN_0200737C FUN_0200737C: ; 0x0200737C add r2, r0, #0x0 ldr r3, _0200738C ; =MI_CpuCopy8 add r2, #0x84 add r0, r1, #0x0 add r1, r2, #0x0 mov r2, #0x14 bx r3 nop _0200738C: .word MI_CpuCopy8 thumb_func_start FUN_02007390 FUN_02007390: ; 0x02007390 add r0, #0x58 ldrb r0, [r0, #0x0] cmp r0, #0x0 beq _0200739C mov r0, #0x1 bx lr _0200739C: mov r0, #0x0 bx lr thumb_func_start FUN_020073A0 FUN_020073A0: ; 0x020073A0 push {r3-r7, lr} sub sp, #0x18 add r5, r0, #0x0 add r6, r1, #0x0 add r7, r2, #0x0 str r3, [sp, #0x14] mov r4, #0x0 _020073AE: ldr r1, [r0, #0x0] lsl r1, r1, #0x1f lsr r1, r1, #0x1f beq _020073BE add r4, r4, #0x1 add r0, #0x98 cmp r4, #0x4 blt _020073AE _020073BE: cmp r4, #0x4 bne _020073C6 bl ErrorHandling _020073C6: ldr r0, [sp, #0x30] ldr r3, [sp, #0x14] str r0, [sp, #0x0] ldr r0, [sp, #0x34] add r1, r6, #0x0 str r0, [sp, #0x4] ldr r0, [sp, #0x38] str r4, [sp, #0x8] str r0, [sp, #0xc] ldr r0, [sp, #0x3c] add r2, r7, #0x0 str r0, [sp, #0x10] add r0, r5, #0x0 bl FUN_020073E8 add sp, #0x18 pop {r3-r7, pc} thumb_func_start FUN_020073E8 FUN_020073E8: ; 0x020073E8 push {r4-r7, lr} sub sp, #0xc str r1, [sp, #0x8] ldr r1, [sp, #0x28] add r4, r0, #0x0 mov r0, #0x98 add r6, r1, #0x0 mul r6, r0 ldr r0, [r4, r6] str r2, [sp, #0x0] lsl r0, r0, #0x1f str r3, [sp, #0x4] lsr r0, r0, #0x1f beq _02007408 bl ErrorHandling _02007408: add r5, r4, r6 mov r0, #0x0 add r1, r5, #0x0 mov r2, #0x98 blx MIi_CpuClearFast ldr r1, [r4, r6] mov r0, #0x1 bic r1, r0 mov r0, #0x1 orr r0, r1 str r0, [r4, r6] ldr r1, [r4, r6] mov r0, #0x80 orr r0, r1 str r0, [r4, r6] mov r0, #0x80 ldr r1, [r4, r6] add r0, #0x80 orr r0, r1 str r0, [r4, r6] add r2, r5, #0x0 ldr r0, [r4, r6] mov r1, #0x7e bic r0, r1 ldr r1, [sp, #0x24] add r7, r2, #0x4 lsl r1, r1, #0x1a lsr r1, r1, #0x19 orr r0, r1 str r0, [r4, r6] ldr r0, [sp, #0x8] mov r12, r0 mov r3, r12 ldmia r3!, {r0-r1} stmia r7!, {r0-r1} ldmia r3!, {r0-r1} stmia r7!, {r0-r1} add r7, r2, #0x0 ldr r3, [sp, #0x8] add r7, #0x14 ldmia r3!, {r0-r1} stmia r7!, {r0-r1} str r3, [sp, #0x8] ldmia r3!, {r0-r1} stmia r7!, {r0-r1} ldr r0, [sp, #0x0] ldr r1, [sp, #0x4] lsl r0, r0, #0x10 asr r0, r0, #0x10 lsl r1, r1, #0x10 asr r7, r1, #0x10 strh r0, [r2, #0x24] str r3, [sp, #0x8] ldr r1, [sp, #0x20] strh r7, [r2, #0x26] str r1, [r2, #0x28] mov r1, #0x80 add r1, #0x80 strh r1, [r2, #0x34] strh r1, [r2, #0x36] ldr r1, [r5, #0x54] mov r3, #0x7c bic r1, r3 mov r3, #0x7c orr r1, r3 str r1, [r5, #0x54] ldr r1, [r5, #0x50] mov r3, #0x1f bic r1, r3 mov r3, #0x1f orr r3, r1 ldr r1, _02007520 ; =0xFFFFFC1F and r1, r3 mov r3, #0x1f lsl r3, r3, #0x5 orr r3, r1 ldr r1, _02007524 ; =0xFFFF83FF and r1, r3 mov r3, #0x1f lsl r3, r3, #0xa orr r3, r1 ldr r1, _02007528 ; =0xFFF07FFF and r1, r3 mov r3, #0x80 lsl r3, r3, #0xc orr r3, r1 ldr r1, _0200752C ; =0xFE0FFFFF and r1, r3 mov r3, #0x80 lsl r3, r3, #0x11 orr r3, r1 ldr r1, _02007530 ; =0xC1FFFFFF and r1, r3 mov r3, #0x80 lsl r3, r3, #0x16 orr r1, r3 str r1, [r5, #0x50] ldr r1, [sp, #0x30] str r1, [r2, #0x68] add r1, r2, #0x0 add r1, #0x70 strh r0, [r1, #0x0] add r2, #0x72 add r0, r5, #0x0 strh r7, [r2, #0x0] add r0, #0x6c ldrh r1, [r0, #0x0] mov r0, #0x4 orr r1, r0 add r0, r5, #0x0 add r0, #0x6c strh r1, [r0, #0x0] add r0, r5, #0x0 add r0, #0x6c ldrh r1, [r0, #0x0] mov r0, #0x8 orr r1, r0 add r0, r5, #0x0 add r0, #0x6c strh r1, [r0, #0x0] add r0, r5, #0x0 add r0, #0x6c ldrh r1, [r0, #0x0] mov r0, #0x10 add r5, #0x6c orr r0, r1 strh r0, [r5, #0x0] ldr r0, [sp, #0x2c] cmp r0, #0x0 beq _02007518 add r1, r4, r6 add r1, #0x84 mov r2, #0x14 blx MI_CpuCopy8 _02007518: add r0, r4, r6 add sp, #0xc pop {r4-r7, pc} nop _02007520: .word 0xFFFFFC1F _02007524: .word 0xFFFF83FF _02007528: .word 0xFFF07FFF _0200752C: .word 0xFE0FFFFF _02007530: .word 0xC1FFFFFF thumb_func_start FUN_02007534 FUN_02007534: ; 0x02007534 ldr r2, [r0, #0x0] mov r1, #0x1 bic r2, r1 str r2, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02007540 FUN_02007540: ; 0x02007540 push {r3-r5, lr} add r5, r0, #0x0 mov r4, #0x0 _02007546: add r0, r5, #0x0 bl FUN_02007534 add r4, r4, #0x1 add r5, #0x98 cmp r4, #0x4 blt _02007546 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02007558 FUN_02007558: ; 0x02007558 cmp r1, #0x2e bls _0200755E b _02007800 _0200755E: add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0200756A: ; jump table (using 16-bit offset) .short _020075C8 - _0200756A - 2; case 0 .short _020075CC - _0200756A - 2; case 1 .short _020075D0 - _0200756A - 2; case 2 .short _020075D4 - _0200756A - 2; case 3 .short _020075D8 - _0200756A - 2; case 4 .short _020075DC - _0200756A - 2; case 5 .short _020075E0 - _0200756A - 2; case 6 .short _020075F0 - _0200756A - 2; case 7 .short _020075F4 - _0200756A - 2; case 8 .short _020075F8 - _0200756A - 2; case 9 .short _020075FC - _0200756A - 2; case 10 .short _02007602 - _0200756A - 2; case 11 .short _02007608 - _0200756A - 2; case 12 .short _0200760C - _0200756A - 2; case 13 .short _02007610 - _0200756A - 2; case 14 .short _02007620 - _0200756A - 2; case 15 .short _02007626 - _0200756A - 2; case 16 .short _0200762C - _0200756A - 2; case 17 .short _02007632 - _0200756A - 2; case 18 .short _02007638 - _0200756A - 2; case 19 .short _0200763E - _0200756A - 2; case 20 .short _02007644 - _0200756A - 2; case 21 .short _0200764A - _0200756A - 2; case 22 .short _02007650 - _0200756A - 2; case 23 .short _02007660 - _0200756A - 2; case 24 .short _02007670 - _0200756A - 2; case 25 .short _02007680 - _0200756A - 2; case 26 .short _02007690 - _0200756A - 2; case 27 .short _020076A0 - _0200756A - 2; case 28 .short _020076B0 - _0200756A - 2; case 29 .short _020076C0 - _0200756A - 2; case 30 .short _020076DA - _0200756A - 2; case 31 .short _020076E8 - _0200756A - 2; case 32 .short _020076FA - _0200756A - 2; case 33 .short _0200770C - _0200756A - 2; case 34 .short _02007712 - _0200756A - 2; case 35 .short _0200772A - _0200756A - 2; case 36 .short _02007742 - _0200756A - 2; case 37 .short _02007752 - _0200756A - 2; case 38 .short _02007800 - _0200756A - 2; case 39 .short _02007758 - _0200756A - 2; case 40 .short _02007770 - _0200756A - 2; case 41 .short _02007776 - _0200756A - 2; case 42 .short _0200779A - _0200756A - 2; case 43 .short _020077B4 - _0200756A - 2; case 44 .short _020077CE - _0200756A - 2; case 45 .short _020077E8 - _0200756A - 2; case 46 _020075C8: strh r2, [r0, #0x24] bx lr _020075CC: strh r2, [r0, #0x26] bx lr _020075D0: str r2, [r0, #0x28] bx lr _020075D4: strh r2, [r0, #0x2c] bx lr _020075D8: strh r2, [r0, #0x2e] bx lr _020075DC: str r2, [r0, #0x30] bx lr _020075E0: ldr r3, [r0, #0x54] mov r1, #0x1 bic r3, r1 mov r1, #0x1 and r1, r2 orr r1, r3 str r1, [r0, #0x54] bx lr _020075F0: strh r2, [r0, #0x38] bx lr _020075F4: strh r2, [r0, #0x3a] bx lr _020075F8: strh r2, [r0, #0x3c] bx lr _020075FC: add r0, #0x40 strh r2, [r0, #0x0] bx lr _02007602: add r0, #0x42 strh r2, [r0, #0x0] bx lr _02007608: strh r2, [r0, #0x34] bx lr _0200760C: strh r2, [r0, #0x36] bx lr _02007610: ldr r3, [r0, #0x54] mov r1, #0x2 bic r3, r1 lsl r1, r2, #0x1f lsr r1, r1, #0x1e orr r1, r3 str r1, [r0, #0x54] bx lr _02007620: add r0, #0x44 strb r2, [r0, #0x0] bx lr _02007626: add r0, #0x45 strb r2, [r0, #0x0] bx lr _0200762C: add r0, #0x46 strb r2, [r0, #0x0] bx lr _02007632: add r0, #0x47 strb r2, [r0, #0x0] bx lr _02007638: add r0, #0x70 strh r2, [r0, #0x0] bx lr _0200763E: add r0, #0x72 strh r2, [r0, #0x0] bx lr _02007644: add r0, #0x74 strh r2, [r0, #0x0] bx lr _0200764A: add r0, #0x76 strh r2, [r0, #0x0] bx lr _02007650: ldr r3, [r0, #0x54] mov r1, #0x7c bic r3, r1 lsl r1, r2, #0x1b lsr r1, r1, #0x19 orr r1, r3 str r1, [r0, #0x54] bx lr _02007660: ldr r3, [r0, #0x50] mov r1, #0x1f bic r3, r1 mov r1, #0x1f and r1, r2 orr r1, r3 str r1, [r0, #0x50] bx lr _02007670: ldr r3, [r0, #0x50] ldr r1, _02007804 ; =0xFFFFFC1F and r3, r1 lsl r1, r2, #0x1b lsr r1, r1, #0x16 orr r1, r3 str r1, [r0, #0x50] bx lr _02007680: ldr r3, [r0, #0x50] ldr r1, _02007808 ; =0xFFFF83FF and r3, r1 lsl r1, r2, #0x1b lsr r1, r1, #0x11 orr r1, r3 str r1, [r0, #0x50] bx lr _02007690: ldr r3, [r0, #0x50] ldr r1, _0200780C ; =0xFFF07FFF and r3, r1 lsl r1, r2, #0x1b lsr r1, r1, #0xc orr r1, r3 str r1, [r0, #0x50] bx lr _020076A0: ldr r3, [r0, #0x50] ldr r1, _02007810 ; =0xFE0FFFFF and r3, r1 lsl r1, r2, #0x1b lsr r1, r1, #0x7 orr r1, r3 str r1, [r0, #0x50] bx lr _020076B0: ldr r3, [r0, #0x50] ldr r1, _02007814 ; =0xC1FFFFFF and r3, r1 lsl r1, r2, #0x1b lsr r1, r1, #0x2 orr r1, r3 str r1, [r0, #0x50] bx lr _020076C0: ldr r3, [r0, #0x54] ldr r1, _02007818 ; =0xFFFFEFFF and r3, r1 lsl r1, r2, #0x1f lsr r1, r1, #0x13 orr r1, r3 str r1, [r0, #0x54] mov r1, #0x1 ldr r2, [r0, #0x0] lsl r1, r1, #0x8 orr r1, r2 str r1, [r0, #0x0] bx lr _020076DA: str r2, [r0, #0x4c] mov r1, #0x1 ldr r2, [r0, #0x0] lsl r1, r1, #0x8 orr r1, r2 str r1, [r0, #0x0] bx lr _020076E8: add r1, r0, #0x0 add r1, #0x48 strb r2, [r1, #0x0] mov r1, #0x1 ldr r2, [r0, #0x0] lsl r1, r1, #0x8 orr r1, r2 str r1, [r0, #0x0] bx lr _020076FA: add r1, r0, #0x0 add r1, #0x49 strb r2, [r1, #0x0] mov r1, #0x1 ldr r2, [r0, #0x0] lsl r1, r1, #0x8 orr r1, r2 str r1, [r0, #0x0] bx lr _0200770C: add r0, #0x4a strb r2, [r0, #0x0] bx lr _02007712: ldr r3, [r0, #0x54] ldr r1, _0200781C ; =0xFFFFFDFF and r3, r1 lsl r1, r2, #0x1f lsr r1, r1, #0x16 orr r1, r3 str r1, [r0, #0x54] ldr r2, [r0, #0x0] mov r1, #0x80 orr r1, r2 str r1, [r0, #0x0] bx lr _0200772A: ldr r3, [r0, #0x54] ldr r1, _02007820 ; =0xFFFFFBFF and r3, r1 lsl r1, r2, #0x1f lsr r1, r1, #0x15 orr r1, r3 str r1, [r0, #0x54] ldr r2, [r0, #0x0] mov r1, #0x80 orr r1, r2 str r1, [r0, #0x0] bx lr _02007742: ldr r3, [r0, #0x54] ldr r1, _02007824 ; =0xFFFFF7FF and r3, r1 lsl r1, r2, #0x1f lsr r1, r1, #0x14 orr r1, r3 str r1, [r0, #0x54] bx lr _02007752: add r0, #0x5b strb r2, [r0, #0x0] bx lr _02007758: ldr r3, [r0, #0x54] ldr r1, _02007828 ; =0xFFFE1FFF and r3, r1 lsl r1, r2, #0x1c lsr r1, r1, #0xf orr r1, r3 str r1, [r0, #0x54] ldr r2, [r0, #0x0] mov r1, #0x80 orr r1, r2 str r1, [r0, #0x0] bx lr _02007770: add r0, #0x6e strb r2, [r0, #0x0] bx lr _02007776: add r1, r0, #0x0 add r1, #0x6c ldrh r3, [r1, #0x0] mov r1, #0x3 bic r3, r1 lsl r1, r2, #0x10 lsr r1, r1, #0x10 mov r2, #0x3 and r1, r2 orr r3, r1 add r1, r0, #0x0 add r1, #0x6c strh r3, [r1, #0x0] ldr r1, [r0, #0x0] add r2, #0xfd orr r1, r2 str r1, [r0, #0x0] bx lr _0200779A: add r1, r0, #0x0 add r1, #0x6c ldrh r3, [r1, #0x0] mov r1, #0x4 add r0, #0x6c bic r3, r1 lsl r1, r2, #0x10 lsr r1, r1, #0x10 lsl r1, r1, #0x1f lsr r1, r1, #0x1d orr r1, r3 strh r1, [r0, #0x0] bx lr _020077B4: add r1, r0, #0x0 add r1, #0x6c ldrh r3, [r1, #0x0] mov r1, #0x8 add r0, #0x6c bic r3, r1 lsl r1, r2, #0x10 lsr r1, r1, #0x10 lsl r1, r1, #0x1f lsr r1, r1, #0x1c orr r1, r3 strh r1, [r0, #0x0] bx lr _020077CE: add r1, r0, #0x0 add r1, #0x6c ldrh r3, [r1, #0x0] mov r1, #0x10 add r0, #0x6c bic r3, r1 lsl r1, r2, #0x10 lsr r1, r1, #0x10 lsl r1, r1, #0x1f lsr r1, r1, #0x1b orr r1, r3 strh r1, [r0, #0x0] bx lr _020077E8: add r1, r0, #0x0 add r1, #0x6c ldrh r3, [r1, #0x0] mov r1, #0x60 add r0, #0x6c bic r3, r1 lsl r1, r2, #0x10 lsr r1, r1, #0x10 lsl r1, r1, #0x1e lsr r1, r1, #0x19 orr r1, r3 strh r1, [r0, #0x0] _02007800: bx lr nop _02007804: .word 0xFFFFFC1F _02007808: .word 0xFFFF83FF _0200780C: .word 0xFFF07FFF _02007810: .word 0xFE0FFFFF _02007814: .word 0xC1FFFFFF _02007818: .word 0xFFFFEFFF _0200781C: .word 0xFFFFFDFF _02007820: .word 0xFFFFFBFF _02007824: .word 0xFFFFF7FF _02007828: .word 0xFFFE1FFF thumb_func_start FUN_0200782C FUN_0200782C: ; 0x0200782C push {r3, lr} cmp r1, #0x2e bls _02007834 b _020079D6 _02007834: add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02007840: ; jump table (using 16-bit offset) .short _0200789E - _02007840 - 2; case 0 .short _020078A4 - _02007840 - 2; case 1 .short _020078AA - _02007840 - 2; case 2 .short _020078AE - _02007840 - 2; case 3 .short _020078B4 - _02007840 - 2; case 4 .short _020078BA - _02007840 - 2; case 5 .short _020078BE - _02007840 - 2; case 6 .short _020078C6 - _02007840 - 2; case 7 .short _020078CA - _02007840 - 2; case 8 .short _020078CE - _02007840 - 2; case 9 .short _020078D2 - _02007840 - 2; case 10 .short _020078D8 - _02007840 - 2; case 11 .short _020078DE - _02007840 - 2; case 12 .short _020078E4 - _02007840 - 2; case 13 .short _020078EA - _02007840 - 2; case 14 .short _020078F2 - _02007840 - 2; case 15 .short _020078F8 - _02007840 - 2; case 16 .short _020078FE - _02007840 - 2; case 17 .short _02007904 - _02007840 - 2; case 18 .short _0200790A - _02007840 - 2; case 19 .short _02007910 - _02007840 - 2; case 20 .short _02007916 - _02007840 - 2; case 21 .short _0200791C - _02007840 - 2; case 22 .short _02007922 - _02007840 - 2; case 23 .short _0200792A - _02007840 - 2; case 24 .short _02007932 - _02007840 - 2; case 25 .short _0200793A - _02007840 - 2; case 26 .short _02007942 - _02007840 - 2; case 27 .short _0200794A - _02007840 - 2; case 28 .short _02007952 - _02007840 - 2; case 29 .short _0200795A - _02007840 - 2; case 30 .short _02007962 - _02007840 - 2; case 31 .short _02007966 - _02007840 - 2; case 32 .short _0200796C - _02007840 - 2; case 33 .short _02007972 - _02007840 - 2; case 34 .short _02007978 - _02007840 - 2; case 35 .short _02007980 - _02007840 - 2; case 36 .short _02007988 - _02007840 - 2; case 37 .short _02007990 - _02007840 - 2; case 38 .short _020079D6 - _02007840 - 2; case 39 .short _02007996 - _02007840 - 2; case 40 .short _0200799E - _02007840 - 2; case 41 .short _020079A4 - _02007840 - 2; case 42 .short _020079AE - _02007840 - 2; case 43 .short _020079B8 - _02007840 - 2; case 44 .short _020079C2 - _02007840 - 2; case 45 .short _020079CC - _02007840 - 2; case 46 _0200789E: mov r1, #0x24 ldrsh r0, [r0, r1] pop {r3, pc} _020078A4: mov r1, #0x26 ldrsh r0, [r0, r1] pop {r3, pc} _020078AA: ldr r0, [r0, #0x28] pop {r3, pc} _020078AE: mov r1, #0x2c ldrsh r0, [r0, r1] pop {r3, pc} _020078B4: mov r1, #0x2e ldrsh r0, [r0, r1] pop {r3, pc} _020078BA: ldr r0, [r0, #0x30] pop {r3, pc} _020078BE: ldr r0, [r0, #0x54] lsl r0, r0, #0x1f lsr r0, r0, #0x1f pop {r3, pc} _020078C6: ldrh r0, [r0, #0x38] pop {r3, pc} _020078CA: ldrh r0, [r0, #0x3a] pop {r3, pc} _020078CE: ldrh r0, [r0, #0x3c] pop {r3, pc} _020078D2: mov r1, #0x40 ldrsh r0, [r0, r1] pop {r3, pc} _020078D8: mov r1, #0x42 ldrsh r0, [r0, r1] pop {r3, pc} _020078DE: mov r1, #0x34 ldrsh r0, [r0, r1] pop {r3, pc} _020078E4: mov r1, #0x36 ldrsh r0, [r0, r1] pop {r3, pc} _020078EA: ldr r0, [r0, #0x54] lsl r0, r0, #0x1e lsr r0, r0, #0x1f pop {r3, pc} _020078F2: add r0, #0x44 ldrb r0, [r0, #0x0] pop {r3, pc} _020078F8: add r0, #0x45 ldrb r0, [r0, #0x0] pop {r3, pc} _020078FE: add r0, #0x46 ldrb r0, [r0, #0x0] pop {r3, pc} _02007904: add r0, #0x47 ldrb r0, [r0, #0x0] pop {r3, pc} _0200790A: mov r1, #0x70 ldrsh r0, [r0, r1] pop {r3, pc} _02007910: mov r1, #0x72 ldrsh r0, [r0, r1] pop {r3, pc} _02007916: mov r1, #0x74 ldrsh r0, [r0, r1] pop {r3, pc} _0200791C: mov r1, #0x76 ldrsh r0, [r0, r1] pop {r3, pc} _02007922: ldr r0, [r0, #0x54] lsl r0, r0, #0x19 lsr r0, r0, #0x1b pop {r3, pc} _0200792A: ldr r0, [r0, #0x50] lsl r0, r0, #0x1b lsr r0, r0, #0x1b pop {r3, pc} _02007932: ldr r0, [r0, #0x50] lsl r0, r0, #0x16 lsr r0, r0, #0x1b pop {r3, pc} _0200793A: ldr r0, [r0, #0x50] lsl r0, r0, #0x11 lsr r0, r0, #0x1b pop {r3, pc} _02007942: ldr r0, [r0, #0x50] lsl r0, r0, #0xc lsr r0, r0, #0x1b pop {r3, pc} _0200794A: ldr r0, [r0, #0x50] lsl r0, r0, #0x7 lsr r0, r0, #0x1b pop {r3, pc} _02007952: ldr r0, [r0, #0x50] lsl r0, r0, #0x2 lsr r0, r0, #0x1b pop {r3, pc} _0200795A: ldr r0, [r0, #0x54] lsl r0, r0, #0x13 lsr r0, r0, #0x1f pop {r3, pc} _02007962: ldr r0, [r0, #0x4c] pop {r3, pc} _02007966: add r0, #0x48 ldrb r0, [r0, #0x0] pop {r3, pc} _0200796C: add r0, #0x49 ldrb r0, [r0, #0x0] pop {r3, pc} _02007972: add r0, #0x4a ldrb r0, [r0, #0x0] pop {r3, pc} _02007978: ldr r0, [r0, #0x54] lsl r0, r0, #0x16 lsr r0, r0, #0x1f pop {r3, pc} _02007980: ldr r0, [r0, #0x54] lsl r0, r0, #0x15 lsr r0, r0, #0x1f pop {r3, pc} _02007988: ldr r0, [r0, #0x54] lsl r0, r0, #0x14 lsr r0, r0, #0x1f pop {r3, pc} _02007990: add r0, #0x5b ldrb r0, [r0, #0x0] pop {r3, pc} _02007996: ldr r0, [r0, #0x54] lsl r0, r0, #0xf lsr r0, r0, #0x1c pop {r3, pc} _0200799E: mov r1, #0x6e ldrsb r0, [r0, r1] pop {r3, pc} _020079A4: add r0, #0x6c ldrh r0, [r0, #0x0] lsl r0, r0, #0x1e lsr r0, r0, #0x1e pop {r3, pc} _020079AE: add r0, #0x6c ldrh r0, [r0, #0x0] lsl r0, r0, #0x1d lsr r0, r0, #0x1f pop {r3, pc} _020079B8: add r0, #0x6c ldrh r0, [r0, #0x0] lsl r0, r0, #0x1c lsr r0, r0, #0x1f pop {r3, pc} _020079C2: add r0, #0x6c ldrh r0, [r0, #0x0] lsl r0, r0, #0x1b lsr r0, r0, #0x1f pop {r3, pc} _020079CC: add r0, #0x6c ldrh r0, [r0, #0x0] lsl r0, r0, #0x19 lsr r0, r0, #0x1e pop {r3, pc} _020079D6: bl ErrorHandling mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_020079E0 FUN_020079E0: ; 0x020079E0 push {r3-r4} add r3, r0, #0x0 add r0, r2, #0x0 cmp r1, #0x2e bls _020079EC b _02007E12 _020079EC: add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _020079F8: ; jump table (using 16-bit offset) .short _02007A56 - _020079F8 - 2; case 0 .short _02007A62 - _020079F8 - 2; case 1 .short _02007A6E - _020079F8 - 2; case 2 .short _02007A78 - _020079F8 - 2; case 3 .short _02007A84 - _020079F8 - 2; case 4 .short _02007A90 - _020079F8 - 2; case 5 .short _02007A9A - _020079F8 - 2; case 6 .short _02007AB4 - _020079F8 - 2; case 7 .short _02007ABE - _020079F8 - 2; case 8 .short _02007AC8 - _020079F8 - 2; case 9 .short _02007AD2 - _020079F8 - 2; case 10 .short _02007AE0 - _020079F8 - 2; case 11 .short _02007AEE - _020079F8 - 2; case 12 .short _02007AFA - _020079F8 - 2; case 13 .short _02007B06 - _020079F8 - 2; case 14 .short _02007B20 - _020079F8 - 2; case 15 .short _02007B30 - _020079F8 - 2; case 16 .short _02007B40 - _020079F8 - 2; case 17 .short _02007B50 - _020079F8 - 2; case 18 .short _02007B60 - _020079F8 - 2; case 19 .short _02007B6E - _020079F8 - 2; case 20 .short _02007B7C - _020079F8 - 2; case 21 .short _02007B8A - _020079F8 - 2; case 22 .short _02007B98 - _020079F8 - 2; case 23 .short _02007BB2 - _020079F8 - 2; case 24 .short _02007BCC - _020079F8 - 2; case 25 .short _02007BE4 - _020079F8 - 2; case 26 .short _02007BFC - _020079F8 - 2; case 27 .short _02007C14 - _020079F8 - 2; case 28 .short _02007C2C - _020079F8 - 2; case 29 .short _02007C44 - _020079F8 - 2; case 30 .short _02007C66 - _020079F8 - 2; case 31 .short _02007C7A - _020079F8 - 2; case 32 .short _02007C96 - _020079F8 - 2; case 33 .short _02007CB2 - _020079F8 - 2; case 34 .short _02007CC2 - _020079F8 - 2; case 35 .short _02007CE2 - _020079F8 - 2; case 36 .short _02007D02 - _020079F8 - 2; case 37 .short _02007D1A - _020079F8 - 2; case 38 .short _02007E12 - _020079F8 - 2; case 39 .short _02007D2A - _020079F8 - 2; case 40 .short _02007D4A - _020079F8 - 2; case 41 .short _02007D58 - _020079F8 - 2; case 42 .short _02007D86 - _020079F8 - 2; case 43 .short _02007DAA - _020079F8 - 2; case 44 .short _02007DCE - _020079F8 - 2; case 45 .short _02007DF2 - _020079F8 - 2; case 46 _02007A56: mov r1, #0x24 ldrsh r1, [r3, r1] add r0, r1, r0 strh r0, [r3, #0x24] pop {r3-r4} bx lr _02007A62: mov r1, #0x26 ldrsh r1, [r3, r1] add r0, r1, r0 strh r0, [r3, #0x26] pop {r3-r4} bx lr _02007A6E: ldr r1, [r3, #0x28] add r0, r1, r0 str r0, [r3, #0x28] pop {r3-r4} bx lr _02007A78: mov r1, #0x2c ldrsh r1, [r3, r1] add r0, r1, r0 strh r0, [r3, #0x2c] pop {r3-r4} bx lr _02007A84: mov r1, #0x2e ldrsh r1, [r3, r1] add r0, r1, r0 strh r0, [r3, #0x2e] pop {r3-r4} bx lr _02007A90: ldr r1, [r3, #0x30] add r0, r1, r0 str r0, [r3, #0x30] pop {r3-r4} bx lr _02007A9A: ldr r4, [r3, #0x54] mov r2, #0x1 add r1, r4, #0x0 bic r1, r2 lsl r2, r4, #0x1f lsr r2, r2, #0x1f add r2, r2, r0 mov r0, #0x1 and r0, r2 orr r0, r1 str r0, [r3, #0x54] pop {r3-r4} bx lr _02007AB4: ldrh r1, [r3, #0x38] add r0, r1, r0 strh r0, [r3, #0x38] pop {r3-r4} bx lr _02007ABE: ldrh r1, [r3, #0x3a] add r0, r1, r0 strh r0, [r3, #0x3a] pop {r3-r4} bx lr _02007AC8: ldrh r1, [r3, #0x3c] add r0, r1, r0 strh r0, [r3, #0x3c] pop {r3-r4} bx lr _02007AD2: mov r1, #0x40 ldrsh r1, [r3, r1] add r3, #0x40 add r0, r1, r0 strh r0, [r3, #0x0] pop {r3-r4} bx lr _02007AE0: mov r1, #0x42 ldrsh r1, [r3, r1] add r3, #0x42 add r0, r1, r0 strh r0, [r3, #0x0] pop {r3-r4} bx lr _02007AEE: mov r1, #0x34 ldrsh r1, [r3, r1] add r0, r1, r0 strh r0, [r3, #0x34] pop {r3-r4} bx lr _02007AFA: mov r1, #0x36 ldrsh r1, [r3, r1] add r0, r1, r0 strh r0, [r3, #0x36] pop {r3-r4} bx lr _02007B06: ldr r4, [r3, #0x54] mov r2, #0x2 add r1, r4, #0x0 bic r1, r2 lsl r2, r4, #0x1e lsr r2, r2, #0x1f add r0, r2, r0 lsl r0, r0, #0x1f lsr r0, r0, #0x1e orr r0, r1 str r0, [r3, #0x54] pop {r3-r4} bx lr _02007B20: add r1, r3, #0x0 add r1, #0x44 ldrb r1, [r1, #0x0] add r3, #0x44 add r0, r1, r0 strb r0, [r3, #0x0] pop {r3-r4} bx lr _02007B30: add r1, r3, #0x0 add r1, #0x45 ldrb r1, [r1, #0x0] add r3, #0x45 add r0, r1, r0 strb r0, [r3, #0x0] pop {r3-r4} bx lr _02007B40: add r1, r3, #0x0 add r1, #0x46 ldrb r1, [r1, #0x0] add r3, #0x46 add r0, r1, r0 strb r0, [r3, #0x0] pop {r3-r4} bx lr _02007B50: add r1, r3, #0x0 add r1, #0x47 ldrb r1, [r1, #0x0] add r3, #0x47 add r0, r1, r0 strb r0, [r3, #0x0] pop {r3-r4} bx lr _02007B60: mov r1, #0x70 ldrsh r1, [r3, r1] add r3, #0x70 add r0, r1, r0 strh r0, [r3, #0x0] pop {r3-r4} bx lr _02007B6E: mov r1, #0x72 ldrsh r1, [r3, r1] add r3, #0x72 add r0, r1, r0 strh r0, [r3, #0x0] pop {r3-r4} bx lr _02007B7C: mov r1, #0x74 ldrsh r1, [r3, r1] add r3, #0x74 add r0, r1, r0 strh r0, [r3, #0x0] pop {r3-r4} bx lr _02007B8A: mov r1, #0x76 ldrsh r1, [r3, r1] add r3, #0x76 add r0, r1, r0 strh r0, [r3, #0x0] pop {r3-r4} bx lr _02007B98: ldr r4, [r3, #0x54] mov r2, #0x7c add r1, r4, #0x0 bic r1, r2 lsl r2, r4, #0x19 lsr r2, r2, #0x1b add r0, r2, r0 lsl r0, r0, #0x1b lsr r0, r0, #0x19 orr r0, r1 str r0, [r3, #0x54] pop {r3-r4} bx lr _02007BB2: ldr r4, [r3, #0x50] mov r2, #0x1f add r1, r4, #0x0 bic r1, r2 lsl r2, r4, #0x1b lsr r2, r2, #0x1b add r2, r2, r0 mov r0, #0x1f and r0, r2 orr r0, r1 str r0, [r3, #0x50] pop {r3-r4} bx lr _02007BCC: ldr r2, [r3, #0x50] ldr r1, _02007E18 ; =0xFFFFFC1F and r1, r2 lsl r2, r2, #0x16 lsr r2, r2, #0x1b add r0, r2, r0 lsl r0, r0, #0x1b lsr r0, r0, #0x16 orr r0, r1 str r0, [r3, #0x50] pop {r3-r4} bx lr _02007BE4: ldr r2, [r3, #0x50] ldr r1, _02007E1C ; =0xFFFF83FF and r1, r2 lsl r2, r2, #0x11 lsr r2, r2, #0x1b add r0, r2, r0 lsl r0, r0, #0x1b lsr r0, r0, #0x11 orr r0, r1 str r0, [r3, #0x50] pop {r3-r4} bx lr _02007BFC: ldr r2, [r3, #0x50] ldr r1, _02007E20 ; =0xFFF07FFF and r1, r2 lsl r2, r2, #0xc lsr r2, r2, #0x1b add r0, r2, r0 lsl r0, r0, #0x1b lsr r0, r0, #0xc orr r0, r1 str r0, [r3, #0x50] pop {r3-r4} bx lr _02007C14: ldr r2, [r3, #0x50] ldr r1, _02007E24 ; =0xFE0FFFFF and r1, r2 lsl r2, r2, #0x7 lsr r2, r2, #0x1b add r0, r2, r0 lsl r0, r0, #0x1b lsr r0, r0, #0x7 orr r0, r1 str r0, [r3, #0x50] pop {r3-r4} bx lr _02007C2C: ldr r2, [r3, #0x50] ldr r1, _02007E28 ; =0xC1FFFFFF and r1, r2 lsl r2, r2, #0x2 lsr r2, r2, #0x1b add r0, r2, r0 lsl r0, r0, #0x1b lsr r0, r0, #0x2 orr r0, r1 str r0, [r3, #0x50] pop {r3-r4} bx lr _02007C44: ldr r2, [r3, #0x54] ldr r1, _02007E2C ; =0xFFFFEFFF and r1, r2 lsl r2, r2, #0x13 lsr r2, r2, #0x1f add r0, r2, r0 lsl r0, r0, #0x1f lsr r0, r0, #0x13 orr r0, r1 str r0, [r3, #0x54] mov r0, #0x1 ldr r1, [r3, #0x0] lsl r0, r0, #0x8 orr r0, r1 str r0, [r3, #0x0] pop {r3-r4} bx lr _02007C66: ldr r1, [r3, #0x4c] add r0, r1, r0 str r0, [r3, #0x4c] mov r0, #0x1 ldr r1, [r3, #0x0] lsl r0, r0, #0x8 orr r0, r1 str r0, [r3, #0x0] pop {r3-r4} bx lr _02007C7A: add r1, r3, #0x0 add r1, #0x48 ldrb r1, [r1, #0x0] add r1, r1, r0 add r0, r3, #0x0 add r0, #0x48 strb r1, [r0, #0x0] mov r0, #0x1 ldr r1, [r3, #0x0] lsl r0, r0, #0x8 orr r0, r1 str r0, [r3, #0x0] pop {r3-r4} bx lr _02007C96: add r1, r3, #0x0 add r1, #0x49 ldrb r1, [r1, #0x0] add r1, r1, r0 add r0, r3, #0x0 add r0, #0x49 strb r1, [r0, #0x0] mov r0, #0x1 ldr r1, [r3, #0x0] lsl r0, r0, #0x8 orr r0, r1 str r0, [r3, #0x0] pop {r3-r4} bx lr _02007CB2: add r1, r3, #0x0 add r1, #0x4a ldrb r1, [r1, #0x0] add r3, #0x4a add r0, r1, r0 strb r0, [r3, #0x0] pop {r3-r4} bx lr _02007CC2: ldr r2, [r3, #0x54] ldr r1, _02007E30 ; =0xFFFFFDFF and r1, r2 lsl r2, r2, #0x16 lsr r2, r2, #0x1f add r0, r2, r0 lsl r0, r0, #0x1f lsr r0, r0, #0x16 orr r0, r1 str r0, [r3, #0x54] ldr r1, [r3, #0x0] mov r0, #0x80 orr r0, r1 str r0, [r3, #0x0] pop {r3-r4} bx lr _02007CE2: ldr r2, [r3, #0x54] ldr r1, _02007E34 ; =0xFFFFFBFF and r1, r2 lsl r2, r2, #0x15 lsr r2, r2, #0x1f add r0, r2, r0 lsl r0, r0, #0x1f lsr r0, r0, #0x15 orr r0, r1 str r0, [r3, #0x54] ldr r1, [r3, #0x0] mov r0, #0x80 orr r0, r1 str r0, [r3, #0x0] pop {r3-r4} bx lr _02007D02: ldr r2, [r3, #0x54] ldr r1, _02007E38 ; =0xFFFFF7FF and r1, r2 lsl r2, r2, #0x14 lsr r2, r2, #0x1f add r0, r2, r0 lsl r0, r0, #0x1f lsr r0, r0, #0x14 orr r0, r1 str r0, [r3, #0x54] pop {r3-r4} bx lr _02007D1A: add r1, r3, #0x0 add r1, #0x5b ldrb r1, [r1, #0x0] add r3, #0x5b add r0, r1, r0 strb r0, [r3, #0x0] pop {r3-r4} bx lr _02007D2A: ldr r2, [r3, #0x54] ldr r1, _02007E3C ; =0xFFFE1FFF and r1, r2 lsl r2, r2, #0xf lsr r2, r2, #0x1c add r0, r2, r0 lsl r0, r0, #0x1c lsr r0, r0, #0xf orr r0, r1 str r0, [r3, #0x54] ldr r1, [r3, #0x0] mov r0, #0x80 orr r0, r1 str r0, [r3, #0x0] pop {r3-r4} bx lr _02007D4A: mov r1, #0x6e ldrsb r1, [r3, r1] add r3, #0x6e add r0, r1, r0 strb r0, [r3, #0x0] pop {r3-r4} bx lr _02007D58: add r1, r3, #0x0 add r1, #0x6c ldrh r4, [r1, #0x0] mov r2, #0x3 add r1, r4, #0x0 bic r1, r2 lsl r2, r4, #0x1e lsr r2, r2, #0x1e add r0, r2, r0 lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r2, #0x3 and r0, r2 orr r1, r0 add r0, r3, #0x0 add r0, #0x6c strh r1, [r0, #0x0] ldr r0, [r3, #0x0] add r2, #0xfd orr r0, r2 str r0, [r3, #0x0] pop {r3-r4} bx lr _02007D86: add r1, r3, #0x0 add r1, #0x6c ldrh r4, [r1, #0x0] mov r2, #0x4 add r3, #0x6c add r1, r4, #0x0 bic r1, r2 lsl r2, r4, #0x1d lsr r2, r2, #0x1f add r0, r2, r0 lsl r0, r0, #0x10 lsr r0, r0, #0x10 lsl r0, r0, #0x1f lsr r0, r0, #0x1d orr r0, r1 strh r0, [r3, #0x0] pop {r3-r4} bx lr _02007DAA: add r1, r3, #0x0 add r1, #0x6c ldrh r4, [r1, #0x0] mov r2, #0x8 add r3, #0x6c add r1, r4, #0x0 bic r1, r2 lsl r2, r4, #0x1c lsr r2, r2, #0x1f add r0, r2, r0 lsl r0, r0, #0x10 lsr r0, r0, #0x10 lsl r0, r0, #0x1f lsr r0, r0, #0x1c orr r0, r1 strh r0, [r3, #0x0] pop {r3-r4} bx lr _02007DCE: add r1, r3, #0x0 add r1, #0x6c ldrh r4, [r1, #0x0] mov r2, #0x10 add r3, #0x6c add r1, r4, #0x0 bic r1, r2 lsl r2, r4, #0x1b lsr r2, r2, #0x1f add r0, r2, r0 lsl r0, r0, #0x10 lsr r0, r0, #0x10 lsl r0, r0, #0x1f lsr r0, r0, #0x1b orr r0, r1 strh r0, [r3, #0x0] pop {r3-r4} bx lr _02007DF2: add r1, r3, #0x0 add r1, #0x6c ldrh r4, [r1, #0x0] mov r2, #0x60 add r3, #0x6c add r1, r4, #0x0 bic r1, r2 lsl r2, r4, #0x19 lsr r2, r2, #0x1e add r0, r2, r0 lsl r0, r0, #0x10 lsr r0, r0, #0x10 lsl r0, r0, #0x1e lsr r0, r0, #0x19 orr r0, r1 strh r0, [r3, #0x0] _02007E12: pop {r3-r4} bx lr nop _02007E18: .word 0xFFFFFC1F _02007E1C: .word 0xFFFF83FF _02007E20: .word 0xFFF07FFF _02007E24: .word 0xFE0FFFFF _02007E28: .word 0xC1FFFFFF _02007E2C: .word 0xFFFFEFFF _02007E30: .word 0xFFFFFDFF _02007E34: .word 0xFFFFFBFF _02007E38: .word 0xFFFFF7FF _02007E3C: .word 0xFFFE1FFF thumb_func_start FUN_02007E40 FUN_02007E40: ; 0x02007E40 push {r4-r5} ldr r5, [r0, #0x54] mov r4, #0x2 orr r4, r5 str r4, [r0, #0x54] add r4, r0, #0x0 add r4, #0x44 strb r1, [r4, #0x0] add r1, r0, #0x0 add r1, #0x45 strb r2, [r1, #0x0] add r1, r0, #0x0 add r1, #0x46 strb r3, [r1, #0x0] ldr r1, [sp, #0x8] add r0, #0x47 strb r1, [r0, #0x0] pop {r4-r5} bx lr .balign 4 thumb_func_start FUN_02007E68 FUN_02007E68: ; 0x02007E68 push {r4-r5} mov r4, #0x1 ldr r5, [r0, #0x54] lsl r4, r4, #0xc orr r4, r5 str r4, [r0, #0x54] add r4, r0, #0x0 add r4, #0x48 strb r1, [r4, #0x0] add r1, r0, #0x0 add r1, #0x49 strb r2, [r1, #0x0] add r1, r0, #0x0 mov r2, #0x0 add r1, #0x4a strb r2, [r1, #0x0] add r1, r0, #0x0 add r1, #0x4b strb r3, [r1, #0x0] ldr r1, [sp, #0x8] str r1, [r0, #0x4c] pop {r4-r5} bx lr .balign 4 thumb_func_start FUN_02007E98 FUN_02007E98: ; 0x02007E98 push {r4-r7} add r4, r0, #0x0 add r0, r1, #0x0 add r5, r2, #0x0 lsl r0, r0, #0x18 lsr r6, r0, #0x18 lsl r0, r5, #0x18 lsr r5, r0, #0x18 lsl r0, r3, #0x18 ldr r2, [sp, #0x10] mov r1, #0x0 lsr r0, r0, #0x18 _02007EB0: ldr r3, [r4, #0x0] lsl r3, r3, #0x1f lsr r3, r3, #0x1f beq _02007EDE mov r3, #0x1 ldr r7, [r4, #0x54] lsl r3, r3, #0xc orr r3, r7 str r3, [r4, #0x54] add r3, r4, #0x0 add r3, #0x48 strb r6, [r3, #0x0] add r3, r4, #0x0 add r3, #0x49 add r7, r4, #0x0 strb r5, [r3, #0x0] add r7, #0x4a mov r3, #0x0 strb r3, [r7, #0x0] add r3, r4, #0x0 add r3, #0x4b strb r0, [r3, #0x0] str r2, [r4, #0x4c] _02007EDE: add r1, r1, #0x1 add r4, #0x98 cmp r1, #0x4 blt _02007EB0 pop {r4-r7} bx lr .balign 4 thumb_func_start FUN_02007EEC FUN_02007EEC: ; 0x02007EEC ldr r2, [r0, #0x54] ldr r1, _02007F1C ; =0xFFFFEFFF and r1, r2 str r1, [r0, #0x54] add r1, r0, #0x0 mov r2, #0x0 add r1, #0x48 strb r2, [r1, #0x0] add r1, r0, #0x0 add r1, #0x49 strb r2, [r1, #0x0] add r1, r0, #0x0 add r1, #0x4a strb r2, [r1, #0x0] add r1, r0, #0x0 add r1, #0x4b strb r2, [r1, #0x0] str r2, [r0, #0x4c] mov r1, #0x1 ldr r2, [r0, #0x0] lsl r1, r1, #0x8 orr r1, r2 str r1, [r0, #0x0] bx lr .balign 4 _02007F1C: .word 0xFFFFEFFF thumb_func_start FUN_02007F20 FUN_02007F20: ; 0x02007F20 ldr r0, [r0, #0x54] lsl r0, r0, #0x13 lsr r0, r0, #0x1f cmp r0, #0x1 bne _02007F2E mov r0, #0x1 bx lr _02007F2E: mov r0, #0x0 bx lr .balign 4 thumb_func_start FUN_02007F34 FUN_02007F34: ; 0x02007F34 mov r2, #0x28 sub r2, r2, r1 mov r1, #0x36 ldrsh r1, [r0, r1] mul r1, r2 asr r1, r1, #0x8 sub r1, r2, r1 strh r1, [r0, #0x2e] bx lr .balign 4 thumb_func_start FUN_02007F48 FUN_02007F48: ; 0x02007F48 push {r4-r7} add r1, r0, #0x0 add r1, #0x58 ldrb r1, [r1, #0x0] add r6, r0, #0x0 add r6, #0x59 cmp r1, #0x0 beq _0200800A add r1, r0, #0x0 add r1, #0x5a ldrb r1, [r1, #0x0] cmp r1, #0x0 bne _02007FFE ldrb r1, [r6, #0x0] add r1, r1, #0x1 strb r1, [r6, #0x0] ldrb r3, [r6, #0x0] mov r1, #0x84 lsl r4, r3, #0x1 add r2, r0, r4 ldrsb r2, [r2, r1] sub r1, #0x85 cmp r2, r1 bge _02007FC6 mov r2, #0x0 sub r1, r2, #0x2 _02007F7C: add r4, r0, r3 add r4, #0x5c ldrb r4, [r4, #0x0] add r3, r0, r3 add r3, #0x5c add r4, r4, #0x1 strb r4, [r3, #0x0] ldrb r5, [r6, #0x0] lsl r3, r5, #0x1 add r4, r0, r3 add r3, r4, #0x0 add r7, r0, r5 add r3, #0x85 add r7, #0x5c ldrb r3, [r3, #0x0] ldrb r7, [r7, #0x0] cmp r3, r7 beq _02007FA4 cmp r3, #0x0 bne _02007FAE _02007FA4: add r3, r0, r5 add r3, #0x5c strb r2, [r3, #0x0] add r6, r6, #0x1 b _02007FB6 _02007FAE: mov r3, #0x84 ldrsb r3, [r4, r3] sub r3, r1, r3 strb r3, [r6, #0x0] _02007FB6: ldrb r3, [r6, #0x0] mov r5, #0x84 lsl r4, r3, #0x1 add r7, r0, r4 ldrsb r7, [r7, r5] sub r5, #0x85 cmp r7, r5 blt _02007F7C _02007FC6: add r2, r0, r4 mov r1, #0x84 ldrsb r2, [r2, r1] sub r1, #0x85 cmp r2, r1 beq _02007FD6 cmp r3, #0xa blo _02007FE6 _02007FD6: add r1, r0, #0x0 mov r2, #0x0 add r1, #0x5b strb r2, [r1, #0x0] add r0, #0x58 strb r2, [r0, #0x0] pop {r4-r7} bx lr _02007FE6: add r1, r0, #0x0 add r1, #0x5b strb r2, [r1, #0x0] ldrb r1, [r6, #0x0] lsl r1, r1, #0x1 add r1, r0, r1 add r1, #0x85 ldrb r1, [r1, #0x0] add r0, #0x5a strb r1, [r0, #0x0] pop {r4-r7} bx lr _02007FFE: add r1, r0, #0x0 add r1, #0x5a ldrb r1, [r1, #0x0] add r0, #0x5a sub r1, r1, #0x1 strb r1, [r0, #0x0] _0200800A: pop {r4-r7} bx lr .balign 4 thumb_func_start FUN_02008010 FUN_02008010: ; 0x02008010 mov r2, #0x1 strb r2, [r0, #0x0] mov r3, #0x0 strb r3, [r0, #0x2] ldrsb r2, [r1, r3] strb r2, [r0, #0x1] ldrb r2, [r1, #0x1] strb r2, [r0, #0x3] str r1, [r0, #0x10] add r2, r3, #0x0 _02008024: add r1, r0, r3 add r3, r3, #0x1 strb r2, [r1, #0x4] cmp r3, #0xa blt _02008024 bx lr thumb_func_start FUN_02008030 FUN_02008030: ; 0x02008030 push {r4-r7} ldrb r1, [r0, #0x0] cmp r1, #0x0 beq _020080C6 add r3, r0, #0x2 ldr r4, [r0, #0x10] cmp r1, #0x0 beq _020080C0 ldrb r1, [r0, #0x3] cmp r1, #0x0 bne _020080BC ldrb r1, [r3, #0x0] add r1, r1, #0x1 strb r1, [r3, #0x0] ldrb r2, [r3, #0x0] mov r1, #0x0 mvn r1, r1 lsl r5, r2, #0x1 ldrsb r6, [r4, r5] cmp r6, r1 bge _02008098 mov r1, #0x0 _0200805C: add r5, r0, r2 ldrb r2, [r5, #0x4] add r2, r2, #0x1 strb r2, [r5, #0x4] ldrb r2, [r3, #0x0] add r5, r0, r2 lsl r2, r2, #0x1 add r2, r4, r2 ldrb r7, [r2, #0x1] ldrb r6, [r5, #0x4] cmp r7, r6 beq _02008078 cmp r7, #0x0 bne _0200807E _02008078: strb r1, [r5, #0x4] add r3, r3, #0x1 b _0200808A _0200807E: mov r5, #0x0 ldrsb r5, [r2, r5] mov r2, #0x1 mvn r2, r2 sub r2, r2, r5 strb r2, [r3, #0x0] _0200808A: ldrb r2, [r3, #0x0] mov r6, #0x0 mvn r6, r6 lsl r5, r2, #0x1 ldrsb r7, [r4, r5] cmp r7, r6 blt _0200805C _02008098: ldrsb r5, [r4, r5] mov r1, #0x0 mvn r1, r1 cmp r5, r1 beq _020080A6 cmp r2, #0xa blo _020080AE _020080A6: mov r1, #0x0 strb r1, [r0, #0x1] strb r1, [r0, #0x0] b _020080C0 _020080AE: strb r5, [r0, #0x1] ldrb r1, [r3, #0x0] lsl r1, r1, #0x1 add r1, r4, r1 ldrb r1, [r1, #0x1] strb r1, [r0, #0x3] b _020080C0 _020080BC: sub r1, r1, #0x1 strb r1, [r0, #0x3] _020080C0: ldrb r0, [r0, #0x1] pop {r4-r7} bx lr _020080C6: mov r0, #0x0 mvn r0, r0 pop {r4-r7} bx lr .balign 4 thumb_func_start FUN_020080D0 FUN_020080D0: ; 0x020080D0 ldr r2, [r0, #0x0] mov r1, #0x80 orr r2, r1 add r1, #0x80 orr r1, r2 str r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_020080E0 FUN_020080E0: ; 0x020080E0 push {r3-r4} add r2, r0, #0x0 add r3, r2, #0x0 add r4, r2, #0x4 add r3, #0x14 ldmia r4!, {r0-r1} stmia r3!, {r0-r1} ldmia r4!, {r0-r1} stmia r3!, {r0-r1} add r0, r2, #0x0 add r0, #0x6c ldrh r1, [r0, #0x0] add r0, r2, #0x0 add r0, #0x78 strh r1, [r0, #0x0] add r0, r2, #0x0 add r0, #0x6e ldrh r1, [r0, #0x0] add r0, r2, #0x0 add r0, #0x7a strh r1, [r0, #0x0] add r0, r2, #0x0 add r0, #0x70 ldrh r1, [r0, #0x0] add r0, r2, #0x0 add r0, #0x7c strh r1, [r0, #0x0] add r0, r2, #0x0 add r0, #0x72 ldrh r1, [r0, #0x0] add r0, r2, #0x0 add r0, #0x7e strh r1, [r0, #0x0] add r0, r2, #0x0 add r0, #0x74 ldrh r1, [r0, #0x0] add r0, r2, #0x0 add r0, #0x80 strh r1, [r0, #0x0] add r0, r2, #0x0 add r0, #0x76 ldrh r0, [r0, #0x0] add r2, #0x82 strh r0, [r2, #0x0] pop {r3-r4} bx lr thumb_func_start FUN_0200813C FUN_0200813C: ; 0x0200813C push {r3-r4} add r2, r0, #0x0 add r4, r2, #0x0 add r4, #0x14 add r3, r2, #0x4 ldmia r4!, {r0-r1} stmia r3!, {r0-r1} ldmia r4!, {r0-r1} stmia r3!, {r0-r1} add r0, r2, #0x0 add r0, #0x78 ldrh r1, [r0, #0x0] add r0, r2, #0x0 add r0, #0x6c strh r1, [r0, #0x0] add r0, r2, #0x0 add r0, #0x7a ldrh r1, [r0, #0x0] add r0, r2, #0x0 add r0, #0x6e strh r1, [r0, #0x0] add r0, r2, #0x0 add r0, #0x7c ldrh r1, [r0, #0x0] add r0, r2, #0x0 add r0, #0x70 strh r1, [r0, #0x0] add r0, r2, #0x0 add r0, #0x7e ldrh r1, [r0, #0x0] add r0, r2, #0x0 add r0, #0x72 strh r1, [r0, #0x0] add r0, r2, #0x0 add r0, #0x80 ldrh r1, [r0, #0x0] add r0, r2, #0x0 add r0, #0x74 strh r1, [r0, #0x0] add r0, r2, #0x0 add r0, #0x82 ldrh r1, [r0, #0x0] add r0, r2, #0x0 add r0, #0x76 strh r1, [r0, #0x0] ldr r1, [r2, #0x0] mov r0, #0x80 orr r1, r0 add r0, #0x80 orr r0, r1 str r0, [r2, #0x0] pop {r3-r4} bx lr .balign 4 thumb_func_start FUN_020081A8 FUN_020081A8: ; 0x020081A8 mov r3, #0xa7 lsl r3, r3, #0x2 str r1, [r0, r3] add r1, r3, #0x4 str r2, [r0, r1] bx lr thumb_func_start FUN_020081B4 FUN_020081B4: ; 0x020081B4 mov r3, #0xa9 lsl r3, r3, #0x2 str r1, [r0, r3] add r1, r3, #0x4 str r2, [r0, r1] bx lr thumb_func_start FUN_020081C0 FUN_020081C0: ; 0x020081C0 add r0, r0, #0x4 bx lr thumb_func_start FUN_020081C4 FUN_020081C4: ; 0x020081C4 push {r4, lr} add r4, r0, #0x0 ldr r0, _02008254 ; =0x000002E1 ldrb r1, [r4, r0] cmp r1, #0x0 beq _02008212 mov r1, #0x0 strb r1, [r4, r0] sub r0, #0x81 add r0, r4, r0 blx FUN_020B1A24 mov r3, #0xae lsl r3, r3, #0x2 mov r1, #0x20 strh r1, [r4, r3] add r0, r3, #0x2 strh r1, [r4, r0] add r0, r3, #0x0 sub r0, #0x18 ldr r1, [r4, r0] add r0, r3, #0x0 add r0, #0x10 str r1, [r4, r0] add r0, r3, #0x0 sub r0, #0xc ldr r1, [r4, r0] add r0, r3, #0x0 add r0, #0x14 str r1, [r4, r0] add r1, r3, #0x0 sub r1, #0x1c add r0, r4, r3 sub r3, #0x58 ldr r1, [r4, r1] mov r2, #0x0 add r3, r4, r3 blx FUN_020B1528 _02008212: ldr r0, _02008258 ; =0x000002E2 ldrb r1, [r4, r0] cmp r1, #0x0 beq _02008252 mov r1, #0x0 strb r1, [r4, r0] sub r0, #0x5e add r0, r4, r0 blx FUN_020B19DC mov r3, #0xaa lsl r3, r3, #0x2 add r0, r3, #0x0 ldr r1, [r4, r3] add r0, #0x30 str r1, [r4, r0] add r0, r3, #0x0 add r0, #0x8 ldr r1, [r4, r0] add r0, r3, #0x0 add r0, #0x34 str r1, [r4, r0] add r0, r3, #0x0 sub r1, r3, #0x4 add r0, #0x28 sub r3, #0x24 ldr r1, [r4, r1] add r0, r4, r0 mov r2, #0x0 add r3, r4, r3 blx FUN_020B1240 _02008252: pop {r4, pc} .balign 4 _02008254: .word 0x000002E1 _02008258: .word 0x000002E2 thumb_func_start FUN_0200825C FUN_0200825C: ; 0x0200825C ldr r2, _02008264 ; =0x000002E3 strb r1, [r0, r2] bx lr nop _02008264: .word 0x000002E3 thumb_func_start FUN_02008268 FUN_02008268: ; 0x02008268 push {r4, lr} add r4, r0, #0x0 bne _02008272 bl ErrorHandling _02008272: ldr r0, [r4, #0x0] lsl r0, r0, #0x1f lsr r0, r0, #0x1f beq _0200827E mov r0, #0x1 pop {r4, pc} _0200827E: mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02008284 FUN_02008284: ; 0x02008284 mov r2, #0xb9 lsl r2, r2, #0x2 ldr r3, [r0, r2] orr r1, r3 str r1, [r0, r2] bx lr thumb_func_start FUN_02008290 FUN_02008290: ; 0x02008290 push {r3-r4} mov r3, #0xb9 lsl r3, r3, #0x2 mov r2, #0x0 mvn r2, r2 ldr r4, [r0, r3] eor r1, r2 and r1, r4 str r1, [r0, r3] pop {r3-r4} bx lr .balign 4 thumb_func_start FUN_020082A8 FUN_020082A8: ; 0x020082A8 push {r4-r7, lr} sub sp, #0x5c add r6, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x48] str r0, [sp, #0x54] ldr r0, [sp, #0x48] str r6, [sp, #0x44] str r0, [sp, #0x38] _020082BA: ldr r0, [sp, #0x44] ldr r1, [r0, #0x0] lsl r0, r1, #0x1f lsr r0, r0, #0x1f beq _020082CA lsl r0, r1, #0x18 lsr r0, r0, #0x1f bne _020082CC _020082CA: b _020086C2 _020082CC: mov r0, #0x80 bic r1, r0 ldr r0, [sp, #0x44] mov r2, #0xa6 str r1, [r0, #0x0] mov r0, #0x1 str r0, [sp, #0x48] ldr r0, [sp, #0x44] ldr r1, [sp, #0x44] lsl r2, r2, #0x2 ldrh r0, [r0, #0x4] ldrh r1, [r1, #0x6] ldr r2, [r6, r2] bl FUN_0200650C add r1, sp, #0x58 str r0, [sp, #0x4c] blx FUN_020B0088 ldr r0, [sp, #0x58] mov r1, #0xaf ldr r0, [r0, #0x4] lsl r1, r1, #0x2 str r0, [r6, r1] ldr r0, [sp, #0x58] ldr r2, [r0, #0x8] add r0, r1, #0x4 str r2, [r6, r0] ldr r0, [sp, #0x58] add r1, #0x8 ldr r0, [r0, #0xc] str r0, [r6, r1] ldr r0, [sp, #0x58] ldr r0, [r0, #0x14] str r0, [sp, #0x50] bl FUN_02008A74 ldr r0, [sp, #0x44] ldr r1, [sp, #0x50] bl FUN_020088EC ldr r0, [sp, #0x54] cmp r0, #0x3 beq _02008326 b _02008554 _02008326: mov r5, #0x0 add r0, r5, #0x0 str r5, [sp, #0x14] str r0, [sp, #0x24] _0200832E: ldr r0, [sp, #0x14] mov r1, #0x4f sub r2, r1, r0 mov r0, #0x50 add r1, r2, #0x0 mul r1, r0 ldr r0, [sp, #0x50] mov r4, #0x0 add r0, r0, r1 str r0, [sp, #0x20] ldr r1, [sp, #0x50] ldr r0, [sp, #0x24] add r7, r1, r0 ldr r0, [sp, #0x20] str r7, [sp, #0x18] str r0, [sp, #0x1c] ldr r0, [sp, #0x14] sub r0, r0, #0x1 lsl r0, r0, #0x7 str r0, [sp, #0x10] _02008356: cmp r4, #0x28 bge _02008442 ldr r0, [sp, #0x44] ldr r1, [r0, #0x54] lsl r0, r1, #0x16 lsr r0, r0, #0x1f beq _02008386 lsl r1, r1, #0x15 lsr r1, r1, #0x1f beq _02008386 mov r0, #0x27 sub r1, r0, r4 ldr r0, [sp, #0x1c] ldrb r0, [r0, r1] bl FUN_020088D8 mov r1, #0xab lsl r1, r1, #0x2 ldr r1, [r6, r1] add r1, r5, r1 add r1, r4, r1 add r1, #0x50 strb r0, [r1, #0x0] b _0200852E _02008386: cmp r0, #0x0 beq _020083A6 mov r0, #0x27 sub r1, r0, r4 ldr r0, [sp, #0x18] ldrb r0, [r0, r1] bl FUN_020088D8 mov r1, #0xab lsl r1, r1, #0x2 ldr r1, [r6, r1] add r1, r5, r1 add r1, r4, r1 add r1, #0x50 strb r0, [r1, #0x0] b _0200852E _020083A6: ldr r0, [sp, #0x44] ldr r0, [r0, #0x54] lsl r1, r0, #0x15 lsr r1, r1, #0x1f beq _020083C4 mov r1, #0xab lsl r1, r1, #0x2 ldr r0, [sp, #0x20] ldr r1, [r6, r1] ldrb r0, [r0, #0x0] add r1, r5, r1 add r1, r4, r1 add r1, #0x50 strb r0, [r1, #0x0] b _0200852E _020083C4: lsl r0, r0, #0xf lsr r0, r0, #0x1c str r0, [sp, #0xc] beq _02008430 ldr r1, [sp, #0xc] ldr r0, [sp, #0x14] lsl r1, r1, #0x1 blx _u32_div_f cmp r1, #0x0 beq _020083F4 mov r0, #0xab lsl r0, r0, #0x2 ldr r1, [r6, r0] ldr r0, [sp, #0x10] add r0, r0, r1 add r0, r4, r0 add r0, #0x50 add r1, r5, r1 add r1, r4, r1 ldrb r0, [r0, #0x0] add r1, #0x50 strb r0, [r1, #0x0] b _0200852E _020083F4: ldr r1, [sp, #0xc] add r0, r4, #0x0 blx _u32_div_f cmp r1, #0x0 beq _02008416 mov r0, #0xab lsl r0, r0, #0x2 ldr r0, [r6, r0] add r2, r5, r0 add r0, r2, r4 add r0, #0x4f ldrb r1, [r0, #0x0] add r0, r2, r4 add r0, #0x50 strb r1, [r0, #0x0] b _0200852E _02008416: ldrb r1, [r7, #0x0] mov r0, #0xf and r1, r0 lsl r0, r1, #0x4 orr r0, r1 mov r1, #0xab lsl r1, r1, #0x2 ldr r1, [r6, r1] add r1, r5, r1 add r1, r4, r1 add r1, #0x50 strb r0, [r1, #0x0] b _0200852E _02008430: mov r1, #0xab lsl r1, r1, #0x2 ldr r1, [r6, r1] ldrb r0, [r7, #0x0] add r1, r5, r1 add r1, r4, r1 add r1, #0x50 strb r0, [r1, #0x0] b _0200852E _02008442: ldr r0, [sp, #0x44] ldr r1, [r0, #0x54] lsl r0, r1, #0x16 lsr r0, r0, #0x1f beq _02008472 lsl r1, r1, #0x15 lsr r1, r1, #0x1f beq _02008472 add r1, r4, #0x0 sub r1, #0x28 mov r0, #0x4f sub r1, r0, r1 ldr r0, [sp, #0x1c] ldrb r0, [r0, r1] bl FUN_020088D8 mov r1, #0xab lsl r1, r1, #0x2 ldr r1, [r6, r1] add r1, r5, r1 add r2, r4, r1 ldr r1, _020086E8 ; =0x00002828 strb r0, [r2, r1] b _0200852E _02008472: cmp r0, #0x0 beq _02008496 add r1, r4, #0x0 sub r1, #0x28 mov r0, #0x4f sub r1, r0, r1 ldr r0, [sp, #0x18] ldrb r0, [r0, r1] bl FUN_020088D8 mov r1, #0xab lsl r1, r1, #0x2 ldr r1, [r6, r1] add r1, r5, r1 add r2, r4, r1 ldr r1, _020086E8 ; =0x00002828 strb r0, [r2, r1] b _0200852E _02008496: ldr r0, [sp, #0x44] ldr r0, [r0, #0x54] lsl r1, r0, #0x15 lsr r1, r1, #0x1f beq _020084B4 mov r1, #0xab lsl r1, r1, #0x2 ldr r0, [sp, #0x20] ldr r1, [r6, r1] ldrb r0, [r0, #0x0] add r1, r5, r1 add r2, r4, r1 ldr r1, _020086E8 ; =0x00002828 strb r0, [r2, r1] b _0200852E _020084B4: lsl r0, r0, #0xf lsr r0, r0, #0x1c str r0, [sp, #0x8] beq _0200851E ldr r1, [sp, #0x8] ldr r0, [sp, #0x14] lsl r1, r1, #0x1 blx _u32_div_f cmp r1, #0x0 beq _020084E4 mov r0, #0xab lsl r0, r0, #0x2 ldr r1, [r6, r0] ldr r0, [sp, #0x10] add r0, r0, r1 add r2, r4, r0 ldr r0, _020086E8 ; =0x00002828 add r1, r5, r1 ldrb r0, [r2, r0] add r2, r4, r1 ldr r1, _020086E8 ; =0x00002828 strb r0, [r2, r1] b _0200852E _020084E4: ldr r1, [sp, #0x8] add r0, r4, #0x0 blx _u32_div_f cmp r1, #0x0 beq _02008504 mov r0, #0xab lsl r0, r0, #0x2 ldr r0, [r6, r0] ldr r1, _020086EC ; =0x00002827 add r0, r5, r0 add r0, r0, r4 ldrb r2, [r0, r1] add r1, r1, #0x1 strb r2, [r0, r1] b _0200852E _02008504: ldrb r1, [r7, #0x0] mov r0, #0xf and r1, r0 lsl r0, r1, #0x4 orr r0, r1 mov r1, #0xab lsl r1, r1, #0x2 ldr r1, [r6, r1] add r1, r5, r1 add r2, r4, r1 ldr r1, _020086E8 ; =0x00002828 strb r0, [r2, r1] b _0200852E _0200851E: mov r1, #0xab lsl r1, r1, #0x2 ldr r1, [r6, r1] ldrb r0, [r7, #0x0] add r1, r5, r1 add r2, r4, r1 ldr r1, _020086E8 ; =0x00002828 strb r0, [r2, r1] _0200852E: ldr r0, [sp, #0x20] add r4, r4, #0x1 add r0, r0, #0x1 add r7, r7, #0x1 str r0, [sp, #0x20] cmp r4, #0x50 bge _0200853E b _02008356 _0200853E: ldr r0, [sp, #0x24] add r5, #0x80 add r0, #0x50 str r0, [sp, #0x24] ldr r0, [sp, #0x14] add r0, r0, #0x1 str r0, [sp, #0x14] cmp r0, #0x50 bge _02008552 b _0200832E _02008552: b _020086BC _02008554: mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x40] str r0, [sp, #0x3c] _0200855C: ldr r0, [sp, #0x0] mov r1, #0x4f sub r2, r1, r0 mov r0, #0x50 add r1, r2, #0x0 mul r1, r0 ldr r0, [sp, #0x50] mov r4, #0x0 add r0, r0, r1 str r0, [sp, #0x34] ldr r1, [sp, #0x50] ldr r0, [sp, #0x3c] add r7, r1, r0 ldr r0, [sp, #0x34] ldr r1, [sp, #0x38] str r0, [sp, #0x30] ldr r0, [sp, #0x40] str r7, [sp, #0x2c] add r5, r1, r0 ldr r0, [sp, #0x0] sub r0, r0, #0x1 lsl r1, r0, #0x7 ldr r0, [sp, #0x38] add r0, r0, r1 str r0, [sp, #0x28] _0200858E: ldr r0, [sp, #0x44] ldr r1, [r0, #0x54] lsl r0, r1, #0x16 lsr r0, r0, #0x1f beq _020085D6 lsl r1, r1, #0x15 lsr r1, r1, #0x1f beq _020085D6 cmp r4, #0x28 bge _020085BA mov r0, #0x27 sub r1, r0, r4 ldr r0, [sp, #0x30] ldrb r0, [r0, r1] bl FUN_020088D8 mov r1, #0xab lsl r1, r1, #0x2 ldr r1, [r6, r1] add r1, r5, r1 strb r0, [r4, r1] b _02008694 _020085BA: add r1, r4, #0x0 sub r1, #0x28 mov r0, #0x4f sub r1, r0, r1 ldr r0, [sp, #0x30] ldrb r0, [r0, r1] bl FUN_020088D8 mov r1, #0xab lsl r1, r1, #0x2 ldr r1, [r6, r1] add r1, r5, r1 strb r0, [r4, r1] b _02008694 _020085D6: cmp r0, #0x0 beq _02008612 cmp r4, #0x28 bge _020085F6 mov r0, #0x27 sub r1, r0, r4 ldr r0, [sp, #0x2c] ldrb r0, [r0, r1] bl FUN_020088D8 mov r1, #0xab lsl r1, r1, #0x2 ldr r1, [r6, r1] add r1, r5, r1 strb r0, [r4, r1] b _02008694 _020085F6: add r1, r4, #0x0 sub r1, #0x28 mov r0, #0x4f sub r1, r0, r1 ldr r0, [sp, #0x2c] ldrb r0, [r0, r1] bl FUN_020088D8 mov r1, #0xab lsl r1, r1, #0x2 ldr r1, [r6, r1] add r1, r5, r1 strb r0, [r4, r1] b _02008694 _02008612: ldr r0, [sp, #0x44] ldr r0, [r0, #0x54] lsl r1, r0, #0x15 lsr r1, r1, #0x1f beq _0200862C ldr r0, [sp, #0x34] mov r1, #0xab lsl r1, r1, #0x2 ldr r1, [r6, r1] ldrb r0, [r0, #0x0] add r1, r5, r1 strb r0, [r4, r1] b _02008694 _0200862C: lsl r0, r0, #0xf lsr r0, r0, #0x1c str r0, [sp, #0x4] beq _02008688 ldr r1, [sp, #0x4] ldr r0, [sp, #0x0] lsl r1, r1, #0x1 blx _u32_div_f cmp r1, #0x0 beq _02008654 mov r0, #0xab lsl r0, r0, #0x2 ldr r0, [r6, r0] ldr r1, [sp, #0x28] add r1, r1, r0 ldrb r1, [r4, r1] add r0, r5, r0 strb r1, [r4, r0] b _02008694 _02008654: ldr r1, [sp, #0x4] add r0, r4, #0x0 blx _u32_div_f cmp r1, #0x0 beq _02008672 mov r0, #0xab lsl r0, r0, #0x2 ldr r0, [r6, r0] add r1, r5, r0 add r0, r1, r4 sub r0, r0, #0x1 ldrb r0, [r0, #0x0] strb r0, [r1, r4] b _02008694 _02008672: ldrb r1, [r7, #0x0] mov r0, #0xf and r1, r0 lsl r0, r1, #0x4 orr r0, r1 mov r1, #0xab lsl r1, r1, #0x2 ldr r1, [r6, r1] add r1, r5, r1 strb r0, [r4, r1] b _02008694 _02008688: mov r1, #0xab lsl r1, r1, #0x2 ldr r1, [r6, r1] ldrb r0, [r7, #0x0] add r1, r5, r1 strb r0, [r4, r1] _02008694: ldr r0, [sp, #0x34] add r4, r4, #0x1 add r0, r0, #0x1 add r7, r7, #0x1 str r0, [sp, #0x34] cmp r4, #0x50 bge _020086A4 b _0200858E _020086A4: ldr r0, [sp, #0x40] add r0, #0x80 str r0, [sp, #0x40] ldr r0, [sp, #0x3c] add r0, #0x50 str r0, [sp, #0x3c] ldr r0, [sp, #0x0] add r0, r0, #0x1 str r0, [sp, #0x0] cmp r0, #0x50 bge _020086BC b _0200855C _020086BC: ldr r0, [sp, #0x4c] bl FUN_02016A18 _020086C2: ldr r0, [sp, #0x44] mov r1, #0xa add r0, #0x98 str r0, [sp, #0x44] ldr r0, [sp, #0x38] lsl r1, r1, #0xa add r0, r0, r1 str r0, [sp, #0x38] ldr r0, [sp, #0x54] add r0, r0, #0x1 str r0, [sp, #0x54] cmp r0, #0x4 bge _020086DE b _020082BA _020086DE: ldr r1, _020086F0 ; =0x000002E1 ldr r0, [sp, #0x48] strb r0, [r6, r1] add sp, #0x5c pop {r4-r7, pc} .balign 4 _020086E8: .word 0x00002828 _020086EC: .word 0x00002827 _020086F0: .word 0x000002E1 thumb_func_start FUN_020086F4 FUN_020086F4: ; 0x020086F4 push {r4-r7, lr} sub sp, #0x1c add r5, r0, #0x0 mov r0, #0x0 str r0, [sp, #0xc] str r0, [sp, #0x14] ldr r0, [sp, #0xc] add r4, r5, #0x0 str r0, [sp, #0x8] _02008706: ldr r1, [r4, #0x0] lsl r0, r1, #0x1f lsr r0, r0, #0x1f beq _020087E0 lsl r0, r1, #0x17 lsr r0, r0, #0x1f beq _020087E0 ldr r0, _020088CC ; =0xFFFFFEFF mov r2, #0xa6 and r0, r1 str r0, [r4, #0x0] mov r0, #0x1 str r0, [sp, #0xc] lsl r2, r2, #0x2 ldrh r0, [r4, #0x4] ldrh r1, [r4, #0x8] ldr r2, [r5, r2] bl FUN_0200650C add r1, sp, #0x18 str r0, [sp, #0x10] blx FUN_020B0138 ldr r0, [sp, #0x18] mov r7, #0x0 ldr r1, [r0, #0x0] mov r0, #0x2d lsl r0, r0, #0x4 str r1, [r5, r0] ldr r0, [sp, #0x18] add r2, r7, #0x0 ldr r1, [r0, #0xc] ldr r0, [sp, #0x8] lsl r3, r0, #0x1 _0200874A: mov r6, #0x2b lsl r6, r6, #0x4 ldr r6, [r5, r6] ldrh r0, [r1, #0x0] add r6, r3, r6 add r7, r7, #0x1 strh r0, [r2, r6] mov r6, #0xad lsl r6, r6, #0x2 ldrh r0, [r1, #0x0] ldr r6, [r5, r6] add r1, r1, #0x2 add r6, r3, r6 strh r0, [r2, r6] add r2, r2, #0x2 cmp r7, #0x10 blt _0200874A ldr r0, [sp, #0x10] bl FUN_02016A18 add r0, r4, #0x0 add r0, #0x6c ldrh r0, [r0, #0x0] lsl r0, r0, #0x1e lsr r0, r0, #0x1e beq _020087E0 mov r2, #0xa6 lsl r2, r2, #0x2 ldr r2, [r5, r2] mov r0, #0x75 mov r1, #0xd4 bl FUN_0200650C add r1, sp, #0x18 str r0, [sp, #0x4] blx FUN_020B0138 ldr r0, [sp, #0x18] mov r7, #0xad ldr r0, [r0, #0xc] mov r1, #0x0 lsl r7, r7, #0x2 _0200879E: add r6, r4, #0x0 add r6, #0x6c ldrh r6, [r6, #0x0] mov r2, #0x2b lsl r2, r2, #0x4 lsl r6, r6, #0x1e lsr r6, r6, #0x1e add r6, r6, #0x3 lsl r6, r6, #0x4 add r6, r1, r6 ldrh r3, [r0, #0x0] ldr r2, [r5, r2] lsl r6, r6, #0x1 strh r3, [r2, r6] add r6, r4, #0x0 add r6, #0x6c ldrh r6, [r6, #0x0] ldrh r3, [r0, #0x0] ldr r2, [r5, r7] lsl r6, r6, #0x1e lsr r6, r6, #0x1e add r6, r6, #0x3 lsl r6, r6, #0x4 add r6, r1, r6 lsl r6, r6, #0x1 add r1, r1, #0x1 add r0, r0, #0x2 strh r3, [r2, r6] cmp r1, #0x10 blt _0200879E ldr r0, [sp, #0x4] bl FUN_02016A18 _020087E0: ldr r0, [r4, #0x0] lsl r0, r0, #0x1f lsr r0, r0, #0x1f beq _020088AE ldr r0, [r4, #0x54] lsl r0, r0, #0x13 lsr r0, r0, #0x1f beq _020088AE add r0, r4, #0x0 add r0, #0x4a ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _020088A0 mov r0, #0x1 str r0, [sp, #0xc] add r0, r4, #0x0 add r0, #0x4b ldrb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x4a strb r1, [r0, #0x0] ldr r0, [sp, #0x8] mov r2, #0xad lsl r1, r0, #0x1 ldr r0, [r4, #0x4c] add r3, r4, #0x0 lsl r0, r0, #0x10 lsr r0, r0, #0x10 lsl r2, r2, #0x2 str r0, [sp, #0x0] ldr r0, [r5, r2] sub r2, r2, #0x4 add r3, #0x48 ldr r2, [r5, r2] add r0, r0, r1 add r1, r2, r1 ldrb r3, [r3, #0x0] mov r2, #0x10 bl FUN_02003974 add r0, r4, #0x0 add r0, #0x6c ldrh r0, [r0, #0x0] lsl r0, r0, #0x1e lsr r0, r0, #0x1e beq _02008862 add r0, r0, #0x3 lsl r1, r0, #0x5 ldr r0, [r4, #0x4c] mov r2, #0xad lsl r0, r0, #0x10 lsr r0, r0, #0x10 add r3, r4, #0x0 lsl r2, r2, #0x2 str r0, [sp, #0x0] ldr r0, [r5, r2] sub r2, r2, #0x4 add r3, #0x48 ldr r2, [r5, r2] add r0, r0, r1 add r1, r2, r1 ldrb r3, [r3, #0x0] mov r2, #0x10 bl FUN_02003974 _02008862: add r0, r4, #0x0 add r0, #0x49 ldrb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x48 ldrb r0, [r0, #0x0] cmp r0, r1 bne _0200887C ldr r1, [r4, #0x54] ldr r0, _020088D0 ; =0xFFFFEFFF and r0, r1 str r0, [r4, #0x54] b _020088AE _0200887C: cmp r0, r1 bls _02008890 add r0, r4, #0x0 add r0, #0x48 ldrb r0, [r0, #0x0] sub r1, r0, #0x1 add r0, r4, #0x0 add r0, #0x48 strb r1, [r0, #0x0] b _020088AE _02008890: add r0, r4, #0x0 add r0, #0x48 ldrb r0, [r0, #0x0] add r1, r0, #0x1 add r0, r4, #0x0 add r0, #0x48 strb r1, [r0, #0x0] b _020088AE _020088A0: add r0, r4, #0x0 add r0, #0x4a ldrb r0, [r0, #0x0] sub r1, r0, #0x1 add r0, r4, #0x0 add r0, #0x4a strb r1, [r0, #0x0] _020088AE: ldr r0, [sp, #0x8] add r4, #0x98 add r0, #0x10 str r0, [sp, #0x8] ldr r0, [sp, #0x14] add r0, r0, #0x1 str r0, [sp, #0x14] cmp r0, #0x4 bge _020088C2 b _02008706 _020088C2: ldr r1, _020088D4 ; =0x000002E2 ldr r0, [sp, #0xc] strb r0, [r5, r1] add sp, #0x1c pop {r4-r7, pc} .balign 4 _020088CC: .word 0xFFFFFEFF _020088D0: .word 0xFFFFEFFF _020088D4: .word 0x000002E2 thumb_func_start FUN_020088D8 FUN_020088D8: ; 0x020088D8 mov r1, #0xf0 and r1, r0 lsl r1, r1, #0x14 lsl r0, r0, #0x1c lsr r1, r1, #0x18 lsr r0, r0, #0x18 orr r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 bx lr thumb_func_start FUN_020088EC FUN_020088EC: ; 0x020088EC push {r3, lr} add r2, r0, #0x0 ldrh r0, [r2, #0xa] cmp r0, #0x0 beq _02008900 add r0, r1, #0x0 ldr r1, [r2, #0x10] mov r2, #0x1 bl FUN_02008904 _02008900: pop {r3, pc} .balign 4 thumb_func_start FUN_02008904 FUN_02008904: ; 0x02008904 push {r4-r7, lr} sub sp, #0x1c add r3, r0, #0x0 add r0, r1, #0x0 mov lr, r0 mov r0, #0x0 mov r12, r0 ldr r0, _02008A50 ; =0x02105AE8 str r1, [sp, #0x0] str r2, [sp, #0x4] str r0, [sp, #0x10] _0200891A: ldr r0, [sp, #0x10] mov r1, #0x0 ldr r6, [r0, #0x0] ldrb r0, [r6, #0x0] cmp r0, #0xff beq _02008992 ldr r0, [sp, #0x0] mov r2, #0xf and r0, r2 str r0, [sp, #0xc] sub r0, #0x8 str r0, [sp, #0xc] ldr r0, [sp, #0x0] mov r2, #0xf0 and r0, r2 lsr r7, r0, #0x4 sub r7, #0x8 _0200893C: lsl r0, r1, #0x1 add r2, r6, r0 ldrb r4, [r6, r0] ldrb r2, [r2, #0x1] ldr r0, [sp, #0xc] add r0, r0, r4 add r2, r7, r2 lsl r0, r0, #0x18 lsl r2, r2, #0x18 lsr r0, r0, #0x18 lsr r4, r2, #0x18 mov r2, #0x50 mul r2, r4 lsr r5, r0, #0x1 add r2, r5, r2 mov r4, #0x1 tst r0, r4 ldrb r4, [r3, r2] beq _02008974 mov r0, #0xf0 and r0, r4 cmp r0, #0x10 blt _02008984 cmp r0, #0x30 bgt _02008984 add r4, #0x50 strb r4, [r3, r2] b _02008984 _02008974: mov r0, #0xf and r0, r4 cmp r0, #0x1 blt _02008984 cmp r0, #0x3 bgt _02008984 add r0, r4, #0x5 strb r0, [r3, r2] _02008984: add r0, r1, #0x1 lsl r0, r0, #0x18 lsr r1, r0, #0x18 lsl r0, r1, #0x1 ldrb r0, [r6, r0] cmp r0, #0xff bne _0200893C _02008992: ldr r0, [sp, #0x0] lsr r0, r0, #0x8 str r0, [sp, #0x0] ldr r0, [sp, #0x10] add r0, r0, #0x4 str r0, [sp, #0x10] mov r0, r12 add r0, r0, #0x1 mov r12, r0 cmp r0, #0x4 blt _0200891A mov r0, lr str r0, [sp, #0x0] ldr r0, [sp, #0x4] cmp r0, #0x0 beq _02008A4A mov r0, #0x0 str r0, [sp, #0x8] ldr r0, _02008A50 ; =0x02105AE8 str r0, [sp, #0x18] _020089BA: ldr r0, [sp, #0x18] mov r4, #0x0 ldr r2, [r0, #0x0] ldrb r0, [r2, #0x0] cmp r0, #0xff beq _02008A34 ldr r0, [sp, #0x0] mov r1, #0xf and r0, r1 str r0, [sp, #0x14] add r0, #0x48 str r0, [sp, #0x14] ldr r0, [sp, #0x0] mov r1, #0xf0 and r0, r1 lsr r7, r0, #0x4 sub r7, #0x8 _020089DC: lsl r0, r4, #0x1 add r5, r2, r0 ldrb r1, [r2, r0] ldrb r5, [r5, #0x1] ldr r0, [sp, #0x14] sub r1, #0xe add r0, r0, r1 add r5, r7, r5 lsl r0, r0, #0x18 lsl r5, r5, #0x18 lsr r1, r0, #0x18 lsr r6, r5, #0x18 mov r5, #0x50 lsr r0, r1, #0x1 mul r5, r6 add r0, r0, r5 mov r5, #0x1 tst r1, r5 ldrb r5, [r3, r0] beq _02008A16 mov r1, #0xf0 and r1, r5 cmp r1, #0x10 blt _02008A26 cmp r1, #0x30 bgt _02008A26 add r5, #0x50 strb r5, [r3, r0] b _02008A26 _02008A16: mov r1, #0xf and r1, r5 cmp r1, #0x1 blt _02008A26 cmp r1, #0x3 bgt _02008A26 add r1, r5, #0x5 strb r1, [r3, r0] _02008A26: add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 lsl r0, r4, #0x1 ldrb r0, [r2, r0] cmp r0, #0xff bne _020089DC _02008A34: ldr r0, [sp, #0x0] lsr r0, r0, #0x8 str r0, [sp, #0x0] ldr r0, [sp, #0x18] add r0, r0, #0x4 str r0, [sp, #0x18] ldr r0, [sp, #0x8] add r0, r0, #0x1 str r0, [sp, #0x8] cmp r0, #0x4 blt _020089BA _02008A4A: add sp, #0x1c pop {r4-r7, pc} nop _02008A50: .word 0x02105AE8 thumb_func_start FUN_02008A54 FUN_02008A54: ; 0x02008A54 ldr r2, [r0, #0x0] ldr r1, _02008A6C ; =0x41C64E6D add r3, r2, #0x0 mul r3, r1 ldr r1, _02008A70 ; =0x00006073 add r1, r3, r1 str r1, [r0, #0x0] lsr r0, r1, #0x10 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bx lr nop _02008A6C: .word 0x41C64E6D _02008A70: .word 0x00006073 thumb_func_start FUN_02008A74 FUN_02008A74: ; 0x02008A74 push {r3-r7, lr} ldr r1, _02008AA0 ; =0x000018FE mov r6, #0x0 ldrh r2, [r0, r1] lsr r4, r1, #0x1 add r5, r0, r1 str r2, [sp, #0x0] add r7, sp, #0x0 mvn r6, r6 _02008A86: ldrh r1, [r5, #0x0] ldr r0, [sp, #0x0] eor r0, r1 strh r0, [r5, #0x0] add r0, r7, #0x0 bl FUN_02008A54 sub r4, r4, #0x1 sub r5, r5, #0x2 cmp r4, r6 bgt _02008A86 pop {r3-r7, pc} nop _02008AA0: .word 0x000018FE thumb_func_start FUN_02008AA4 FUN_02008AA4: ; 0x02008AA4 push {r3-r7, lr} sub sp, #0x18 mov r4, #0x0 add r5, r0, #0x0 add r0, r4, #0x0 str r0, [sp, #0x8] ldr r0, [sp, #0x44] add r6, r1, #0x0 str r2, [sp, #0x0] str r3, [sp, #0x4] str r4, [sp, #0xc] cmp r0, #0x0 bne _02008AC2 bl ErrorHandling _02008AC2: ldr r0, [sp, #0x48] cmp r0, #0x0 bne _02008ACC bl ErrorHandling _02008ACC: ldr r0, [sp, #0x50] cmp r0, #0x0 bne _02008AD6 bl ErrorHandling _02008AD6: ldr r0, [sp, #0x4c] cmp r0, #0x0 bne _02008AE0 bl ErrorHandling _02008AE0: cmp r5, #0x0 bne _02008AE8 bl ErrorHandling _02008AE8: ldr r0, [sp, #0x44] add r1, r6, #0x0 bl FUN_020094F0 add r7, r0, #0x0 bne _02008AF8 bl ErrorHandling _02008AF8: ldr r0, [sp, #0x48] ldr r1, [sp, #0x0] bl FUN_020094F0 str r0, [sp, #0x14] cmp r0, #0x0 bne _02008B0A bl ErrorHandling _02008B0A: ldr r0, [sp, #0x4c] ldr r1, [sp, #0x4] bl FUN_020094F0 str r0, [sp, #0x10] cmp r0, #0x0 bne _02008B1C bl ErrorHandling _02008B1C: ldr r0, [sp, #0x50] cmp r0, #0x0 beq _02008B3A mov r2, #0x0 ldr r1, [sp, #0x30] mvn r2, r2 cmp r1, r2 beq _02008B3A bl FUN_020094F0 str r0, [sp, #0xc] cmp r0, #0x0 bne _02008B3A bl ErrorHandling _02008B3A: ldr r0, [sp, #0x54] cmp r0, #0x0 beq _02008B62 mov r2, #0x0 ldr r1, [sp, #0x34] mvn r2, r2 cmp r1, r2 beq _02008B50 bl FUN_020094F0 add r4, r0, #0x0 _02008B50: mov r0, #0x0 ldr r1, [sp, #0x38] mvn r0, r0 cmp r1, r0 beq _02008B62 ldr r0, [sp, #0x58] bl FUN_020094F0 str r0, [sp, #0x8] _02008B62: ldr r0, [sp, #0x3c] cmp r0, #0x0 beq _02008B82 ldr r1, [sp, #0x10] add r0, r7, #0x0 bl FUN_02009C80 add r6, r0, #0x0 bne _02008B78 bl ErrorHandling _02008B78: add r0, r7, #0x0 bl FUN_02009544 str r0, [r5, #0x4] b _02008B94 _02008B82: add r0, r7, #0x0 bl FUN_02009C5C add r6, r0, #0x0 bne _02008B90 bl ErrorHandling _02008B90: mov r0, #0x0 str r0, [r5, #0x4] _02008B94: ldr r0, [sp, #0x14] add r1, r6, #0x0 bl FUN_02009E54 str r0, [r5, #0x8] ldr r0, [sp, #0x10] str r6, [r5, #0x0] bl FUN_02009574 str r0, [r5, #0xc] ldr r0, [sp, #0xc] cmp r0, #0x0 beq _02008BB4 bl FUN_0200958C b _02008BB6 _02008BB4: mov r0, #0x0 _02008BB6: str r0, [r5, #0x10] cmp r4, #0x0 beq _02008BCC add r0, r4, #0x0 bl FUN_020095A4 str r0, [r5, #0x14] ldr r0, [sp, #0x8] bl FUN_020095BC b _02008BD0 _02008BCC: mov r0, #0x0 str r0, [r5, #0x14] _02008BD0: str r0, [r5, #0x18] ldr r0, [sp, #0x3c] str r0, [r5, #0x1c] ldr r0, [sp, #0x40] add r5, #0x20 strb r0, [r5, #0x0] add sp, #0x18 pop {r3-r7, pc} thumb_func_start FUN_02008BE0 FUN_02008BE0: ; 0x02008BE0 push {r4-r7, lr} sub sp, #0x34 add r5, r0, #0x0 ldr r0, [sp, #0x48] add r7, r1, #0x0 str r0, [sp, #0x48] ldr r0, [sp, #0x4c] mov r4, #0x0 str r0, [sp, #0x4c] ldr r0, [sp, #0x50] ldr r1, [r5, #0x0] str r0, [sp, #0x50] ldr r0, [sp, #0x54] str r2, [sp, #0x2c] str r0, [sp, #0x54] sub r0, r4, #0x2 str r3, [sp, #0x30] cmp r1, r0 beq _02008C14 add r2, r5, #0x0 sub r0, r4, #0x2 _02008C0A: add r2, #0x20 ldr r1, [r2, #0x0] add r4, r4, #0x1 cmp r1, r0 bne _02008C0A _02008C14: add r0, r7, #0x0 mov r1, #0x8 bl FUN_02016998 mov r1, #0x24 add r6, r0, #0x0 add r0, r7, #0x0 mul r1, r4 bl FUN_02016998 str r0, [r6, #0x0] mov r7, #0x0 str r4, [r6, #0x4] cmp r4, #0x0 ble _02008C7A add r4, r7, #0x0 _02008C34: ldr r0, [r5, #0xc] str r0, [sp, #0x0] ldr r0, [r5, #0x10] str r0, [sp, #0x4] ldr r0, [r5, #0x14] str r0, [sp, #0x8] ldr r0, [r5, #0x18] str r0, [sp, #0xc] ldr r0, [r5, #0x1c] str r0, [sp, #0x10] ldr r0, [sp, #0x2c] str r0, [sp, #0x14] ldr r0, [sp, #0x30] str r0, [sp, #0x18] ldr r0, [sp, #0x48] str r0, [sp, #0x1c] ldr r0, [sp, #0x4c] str r0, [sp, #0x20] ldr r0, [sp, #0x50] str r0, [sp, #0x24] ldr r0, [sp, #0x54] str r0, [sp, #0x28] ldr r0, [r6, #0x0] ldr r1, [r5, #0x0] ldr r2, [r5, #0x4] ldr r3, [r5, #0x8] add r0, r0, r4 bl FUN_02008AA4 ldr r0, [r6, #0x4] add r7, r7, #0x1 add r5, #0x20 add r4, #0x24 cmp r7, r0 blt _02008C34 _02008C7A: add r0, r6, #0x0 add sp, #0x34 pop {r4-r7, pc} thumb_func_start FUN_02008C80 FUN_02008C80: ; 0x02008C80 push {r4, lr} add r4, r0, #0x0 bne _02008C8A bl ErrorHandling _02008C8A: ldr r0, [r4, #0x0] cmp r0, #0x0 beq _02008C94 bl FUN_02016A18 _02008C94: add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} thumb_func_start FUN_02008C9C FUN_02008C9C: ; 0x02008C9C push {r3-r6, lr} sub sp, #0x1c add r4, r1, #0x0 add r5, r0, #0x0 ldr r1, _02008D00 ; =0xFFFFF000 add r0, r4, #0x0 add r6, r2, #0x0 bl FUN_0202134C mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x4] mov r0, #0xff lsl r0, r0, #0xc str r0, [sp, #0x8] mov r0, #0x3 lsl r0, r0, #0x12 str r0, [sp, #0xc] add r0, r4, #0x0 add r0, #0x98 add r1, sp, #0x0 mov r2, #0x1 add r3, r4, #0x0 bl FUN_02009FD8 mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0xff mov r1, #0x3 lsl r1, r1, #0x12 lsl r0, r0, #0xc str r0, [sp, #0x8] add r0, r4, #0x0 str r1, [sp, #0x4] str r1, [sp, #0xc] add r0, #0xe0 add r1, sp, #0x0 mov r2, #0x2 add r3, r4, #0x0 bl FUN_02009FD8 add r0, sp, #0x10 str r5, [sp, #0x10] str r4, [sp, #0x14] str r6, [sp, #0x18] bl FUN_0201FCB0 add sp, #0x1c pop {r3-r6, pc} nop _02008D00: .word 0xFFFFF000 thumb_func_start FUN_02008D04 FUN_02008D04: ; 0x02008D04 push {r3, lr} sub sp, #0x10 str r1, [sp, #0x0] mov r1, #0xff lsl r1, r1, #0xc str r1, [sp, #0x8] mov r1, #0x3 lsl r1, r1, #0x12 str r1, [sp, #0xc] add r0, #0x98 add r1, sp, #0x0 str r2, [sp, #0x4] bl FUN_02021390 add sp, #0x10 pop {r3, pc} thumb_func_start FUN_02008D24 FUN_02008D24: ; 0x02008D24 push {r3, lr} sub sp, #0x10 str r1, [sp, #0x0] mov r1, #0xff lsl r1, r1, #0xc str r1, [sp, #0x8] mov r1, #0x3 lsl r1, r1, #0x12 str r1, [sp, #0xc] add r0, #0xe0 add r1, sp, #0x0 str r2, [sp, #0x4] bl FUN_02021390 add sp, #0x10 pop {r3, pc} thumb_func_start FUN_02008D44 FUN_02008D44: ; 0x02008D44 push {r4, lr} add r4, r0, #0x0 cmp r1, #0x10 beq _02008D5A ldr r2, _02008DCC ; =0x00100010 cmp r1, r2 beq _02008D8A ldr r0, _02008DD0 ; =0x00200010 cmp r1, r0 beq _02008D98 b _02008DC4 _02008D5A: blx FUN_020C5DBC cmp r0, #0x40 beq _02008D6A blx FUN_020C5DBC cmp r0, #0x20 bne _02008D7A _02008D6A: mov r0, #0x3e mov r1, #0x2 lsl r0, r0, #0x8 lsl r1, r1, #0x8 add r2, r4, #0x0 bl FUN_0201D194 pop {r4, pc} _02008D7A: mov r0, #0x7e mov r1, #0x2 lsl r0, r0, #0x8 lsl r1, r1, #0x8 add r2, r4, #0x0 bl FUN_0201D194 pop {r4, pc} _02008D8A: mov r0, #0xfe lsr r1, r2, #0xb lsl r0, r0, #0x8 add r2, r4, #0x0 bl FUN_0201D194 pop {r4, pc} _02008D98: blx FUN_020C5DBC cmp r0, #0x30 beq _02008DA8 blx FUN_020C5DBC cmp r0, #0x50 bne _02008DB6 _02008DA8: mov r1, #0x2 ldr r0, _02008DD4 ; =0x00013E00 lsl r1, r1, #0x8 add r2, r4, #0x0 bl FUN_0201D194 pop {r4, pc} _02008DB6: mov r1, #0x2 ldr r0, _02008DD8 ; =0x0001FE00 lsl r1, r1, #0x8 add r2, r4, #0x0 bl FUN_0201D194 pop {r4, pc} _02008DC4: bl ErrorHandling pop {r4, pc} nop _02008DCC: .word 0x00100010 _02008DD0: .word 0x00200010 _02008DD4: .word 0x00013E00 _02008DD8: .word 0x0001FE00 thumb_func_start FUN_02008DDC FUN_02008DDC: ; 0x02008DDC ldr r3, _02008DE8 ; =0x0201E069 add r1, r0, #0x0 mov r0, #0x3 lsl r0, r0, #0xe bx r3 nop _02008DE8: .word 0x0201E069 thumb_func_start FUN_02008DEC FUN_02008DEC: ; 0x02008DEC push {r3-r7, lr} add r5, r0, #0x0 add r6, r1, #0x0 str r2, [sp, #0x0] add r0, r2, #0x0 mov r1, #0x14 bl FUN_02016998 add r4, r0, #0x0 ldr r1, [sp, #0x0] add r0, r5, #0x0 bl FUN_02020C44 str r0, [r4, #0x0] mov r0, #0xc add r7, r5, #0x0 mul r7, r0 ldr r0, [sp, #0x0] add r1, r7, #0x0 bl FUN_02016998 mov r1, #0x0 add r2, r7, #0x0 str r0, [r4, #0x4] blx FUN_020DF4A4 str r5, [r4, #0x8] mov r0, #0x0 str r0, [r4, #0xc] str r6, [r4, #0x10] add r0, r4, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02008E2C FUN_02008E2C: ; 0x02008E2C push {r4, lr} add r4, r0, #0x0 bne _02008E36 bl ErrorHandling _02008E36: ldr r0, [r4, #0x0] cmp r0, #0x0 bne _02008E40 bl ErrorHandling _02008E40: ldr r0, [r4, #0x4] cmp r0, #0x0 bne _02008E4A bl ErrorHandling _02008E4A: add r0, r4, #0x0 bl FUN_020094C4 ldr r0, [r4, #0x0] bl FUN_02020C90 mov r0, #0x0 str r0, [r4, #0x0] ldr r0, [r4, #0x4] bl FUN_02016A18 mov r0, #0x0 str r0, [r4, #0x4] add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} thumb_func_start FUN_02008E6C FUN_02008E6C: ; 0x02008E6C push {r3-r7, lr} sub sp, #0x20 add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 add r7, r3, #0x0 cmp r5, #0x0 bne _02008E80 bl ErrorHandling _02008E80: cmp r4, #0x0 bne _02008E88 bl ErrorHandling _02008E88: ldr r0, [r4, #0x4] cmp r0, r6 bgt _02008E92 bl ErrorHandling _02008E92: ldr r1, [r5, #0x10] ldr r0, [r4, #0x8] cmp r1, r0 beq _02008E9E bl ErrorHandling _02008E9E: add r0, r5, #0x0 bl FUN_020097D0 str r0, [sp, #0x1c] cmp r0, #0x0 bne _02008EAE bl ErrorHandling _02008EAE: ldrb r0, [r4, #0xc] cmp r0, #0x0 bne _02008EEA ldr r2, [r4, #0x0] mov r0, #0x4c add r1, r6, #0x0 mul r1, r0 add r6, r2, r1 ldr r1, [r2, r1] add r0, r5, #0x0 bl FUN_0200945C cmp r0, #0x1 beq _02008ECE bl ErrorHandling _02008ECE: ldr r0, [r6, #0x44] ldr r1, [sp, #0x1c] str r0, [sp, #0x0] ldr r0, [r6, #0x48] add r2, r6, #0x4 str r0, [sp, #0x4] ldr r0, [r4, #0x8] str r0, [sp, #0x8] str r7, [sp, #0xc] ldr r3, [r6, #0x0] add r0, r5, #0x0 bl FUN_0200994C b _02008F28 _02008EEA: mov r0, #0x18 ldr r1, [r4, #0x0] mul r0, r6 add r6, r1, r0 ldr r1, [r6, #0xc] add r0, r5, #0x0 bl FUN_0200945C cmp r0, #0x1 beq _02008F02 bl ErrorHandling _02008F02: ldr r0, [r6, #0x8] ldr r1, [sp, #0x1c] str r0, [sp, #0x0] ldr r0, [r6, #0xc] str r0, [sp, #0x4] ldr r0, [r6, #0x10] str r0, [sp, #0x8] ldr r0, [r6, #0x14] str r0, [sp, #0xc] ldr r0, [r4, #0x8] str r0, [sp, #0x10] str r7, [sp, #0x14] mov r0, #0x0 str r0, [sp, #0x18] ldr r2, [r6, #0x0] ldr r3, [r6, #0x4] add r0, r5, #0x0 bl FUN_02009978 _02008F28: ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] ldr r0, [sp, #0x1c] add sp, #0x20 pop {r3-r7, pc} thumb_func_start FUN_02008F34 FUN_02008F34: ; 0x02008F34 push {r3-r7, lr} sub sp, #0x20 add r5, r0, #0x0 add r7, r1, #0x0 add r4, r3, #0x0 str r2, [sp, #0x1c] cmp r5, #0x0 bne _02008F48 bl ErrorHandling _02008F48: ldr r0, [r5, #0x10] cmp r0, #0x0 beq _02008F52 bl ErrorHandling _02008F52: add r0, r5, #0x0 bl FUN_020097D0 add r6, r0, #0x0 bne _02008F60 bl ErrorHandling _02008F60: ldr r0, [sp, #0x38] str r4, [sp, #0x0] str r0, [sp, #0x4] ldr r0, [sp, #0x3c] mov r1, #0x0 str r0, [sp, #0x8] str r1, [sp, #0xc] ldr r0, [sp, #0x40] str r1, [sp, #0x10] str r0, [sp, #0x14] str r1, [sp, #0x18] ldr r3, [sp, #0x1c] add r0, r5, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 bl FUN_02009978 ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] add r0, r6, #0x0 add sp, #0x20 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02008F90 FUN_02008F90: ; 0x02008F90 push {r3-r7, lr} sub sp, #0x20 add r5, r0, #0x0 add r7, r1, #0x0 add r4, r3, #0x0 str r2, [sp, #0x1c] cmp r5, #0x0 bne _02008FA4 bl ErrorHandling _02008FA4: ldr r0, [r5, #0x10] cmp r0, #0x0 beq _02008FAE bl ErrorHandling _02008FAE: add r0, r5, #0x0 bl FUN_020097D0 add r6, r0, #0x0 bne _02008FBC bl ErrorHandling _02008FBC: ldr r0, [sp, #0x38] str r4, [sp, #0x0] str r0, [sp, #0x4] ldr r0, [sp, #0x3c] ldr r3, [sp, #0x1c] str r0, [sp, #0x8] mov r0, #0x0 str r0, [sp, #0xc] str r0, [sp, #0x10] ldr r0, [sp, #0x40] add r1, r6, #0x0 str r0, [sp, #0x14] ldr r0, [sp, #0x44] add r2, r7, #0x0 str r0, [sp, #0x18] add r0, r5, #0x0 bl FUN_02009978 ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] add r0, r6, #0x0 add sp, #0x20 pop {r3-r7, pc} thumb_func_start FUN_02008FEC FUN_02008FEC: ; 0x02008FEC push {r3-r7, lr} sub sp, #0x20 add r5, r0, #0x0 add r7, r1, #0x0 add r4, r3, #0x0 str r2, [sp, #0x1c] cmp r5, #0x0 bne _02009000 bl ErrorHandling _02009000: ldr r0, [r5, #0x10] cmp r0, #0x1 beq _0200900A bl ErrorHandling _0200900A: add r0, r5, #0x0 bl FUN_020097D0 add r6, r0, #0x0 bne _02009018 bl ErrorHandling _02009018: ldr r0, [sp, #0x38] str r4, [sp, #0x0] str r0, [sp, #0x4] ldr r0, [sp, #0x3c] ldr r3, [sp, #0x1c] str r0, [sp, #0x8] ldr r0, [sp, #0x40] add r1, r6, #0x0 str r0, [sp, #0xc] mov r0, #0x1 str r0, [sp, #0x10] ldr r0, [sp, #0x44] add r2, r7, #0x0 str r0, [sp, #0x14] mov r0, #0x0 str r0, [sp, #0x18] add r0, r5, #0x0 bl FUN_02009978 ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] add r0, r6, #0x0 add sp, #0x20 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200904C FUN_0200904C: ; 0x0200904C push {r3-r7, lr} sub sp, #0x20 add r5, r0, #0x0 add r7, r1, #0x0 add r4, r3, #0x0 str r2, [sp, #0x1c] cmp r5, #0x0 bne _02009060 bl ErrorHandling _02009060: ldr r0, [r5, #0x10] cmp r0, #0x1 beq _0200906A bl ErrorHandling _0200906A: add r0, r5, #0x0 bl FUN_020097D0 add r6, r0, #0x0 bne _02009078 bl ErrorHandling _02009078: ldr r0, [sp, #0x38] str r4, [sp, #0x0] str r0, [sp, #0x4] ldr r0, [sp, #0x3c] ldr r3, [sp, #0x1c] str r0, [sp, #0x8] ldr r0, [sp, #0x40] add r1, r6, #0x0 str r0, [sp, #0xc] mov r0, #0x1 str r0, [sp, #0x10] ldr r0, [sp, #0x44] add r2, r7, #0x0 str r0, [sp, #0x14] ldr r0, [sp, #0x48] str r0, [sp, #0x18] add r0, r5, #0x0 bl FUN_02009978 ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] add r0, r6, #0x0 add sp, #0x20 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020090AC FUN_020090AC: ; 0x020090AC push {r3-r7, lr} sub sp, #0x20 add r5, r0, #0x0 add r7, r1, #0x0 add r4, r3, #0x0 str r2, [sp, #0x1c] cmp r5, #0x0 bne _020090C0 bl ErrorHandling _020090C0: add r0, r5, #0x0 bl FUN_020097D0 add r6, r0, #0x0 bne _020090CE bl ErrorHandling _020090CE: ldr r0, [sp, #0x38] str r4, [sp, #0x0] str r0, [sp, #0x4] mov r1, #0x0 str r1, [sp, #0x8] ldr r0, [sp, #0x3c] str r1, [sp, #0xc] str r0, [sp, #0x10] ldr r0, [sp, #0x40] ldr r3, [sp, #0x1c] str r0, [sp, #0x14] str r1, [sp, #0x18] add r0, r5, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 bl FUN_02009978 ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] add r0, r6, #0x0 add sp, #0x20 pop {r3-r7, pc} thumb_func_start FUN_020090FC FUN_020090FC: ; 0x020090FC push {r4-r7, lr} sub sp, #0x24 add r5, r0, #0x0 add r4, r1, #0x0 str r2, [sp, #0x1c] str r3, [sp, #0x20] cmp r5, #0x0 bne _02009110 bl ErrorHandling _02009110: ldr r0, [r5, #0x10] cmp r0, #0x0 beq _0200911A bl ErrorHandling _0200911A: cmp r4, #0x0 bne _02009122 bl ErrorHandling _02009122: ldr r0, [r4, #0x4] cmp r0, #0x0 beq _0200912C bl ErrorHandling _0200912C: add r0, r4, #0x0 bl FUN_02009530 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_020095E4 add r7, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02009490 ldr r0, [sp, #0x38] mov r1, #0x0 str r0, [sp, #0x0] str r6, [sp, #0x4] str r7, [sp, #0x8] str r1, [sp, #0xc] ldr r0, [sp, #0x3c] str r1, [sp, #0x10] str r0, [sp, #0x14] str r1, [sp, #0x18] ldr r2, [sp, #0x1c] ldr r3, [sp, #0x20] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02009978 add sp, #0x24 pop {r4-r7, pc} thumb_func_start FUN_02009168 FUN_02009168: ; 0x02009168 push {r3-r7, lr} sub sp, #0x28 add r5, r0, #0x0 add r4, r1, #0x0 str r2, [sp, #0x1c] str r3, [sp, #0x20] cmp r5, #0x0 bne _0200917C bl ErrorHandling _0200917C: ldr r0, [r5, #0x10] cmp r0, #0x1 beq _02009186 bl ErrorHandling _02009186: cmp r4, #0x0 bne _0200918E bl ErrorHandling _0200918E: ldr r0, [r4, #0x4] cmp r0, #0x1 beq _02009198 bl ErrorHandling _02009198: add r0, r4, #0x0 bl FUN_02009530 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_020095E4 add r7, r0, #0x0 add r0, r4, #0x0 bl FUN_02009610 str r0, [sp, #0x24] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02009490 ldr r0, [sp, #0x40] ldr r2, [sp, #0x1c] str r0, [sp, #0x0] str r6, [sp, #0x4] ldr r0, [sp, #0x24] str r7, [sp, #0x8] str r0, [sp, #0xc] mov r0, #0x1 str r0, [sp, #0x10] ldr r0, [sp, #0x44] ldr r3, [sp, #0x20] str r0, [sp, #0x14] mov r0, #0x0 str r0, [sp, #0x18] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02009978 add sp, #0x28 pop {r3-r7, pc} thumb_func_start FUN_020091E0 FUN_020091E0: ; 0x020091E0 push {r3-r7, lr} sub sp, #0x20 add r5, r0, #0x0 add r7, r1, #0x0 add r4, r3, #0x0 str r2, [sp, #0x1c] cmp r5, #0x0 bne _020091F4 bl ErrorHandling _020091F4: ldr r0, [r5, #0x10] cmp r0, #0x0 beq _020091FE bl ErrorHandling _020091FE: add r0, r5, #0x0 bl FUN_020097D0 add r6, r0, #0x0 bne _0200920C bl ErrorHandling _0200920C: ldr r0, [sp, #0x38] str r4, [sp, #0x0] str r0, [sp, #0x4] ldr r0, [sp, #0x3c] mov r1, #0x0 str r0, [sp, #0x8] str r1, [sp, #0xc] ldr r0, [sp, #0x40] str r1, [sp, #0x10] str r0, [sp, #0x14] str r1, [sp, #0x18] ldr r3, [sp, #0x1c] add r0, r5, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 bl FUN_020099B0 ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] add r0, r6, #0x0 add sp, #0x20 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200923C FUN_0200923C: ; 0x0200923C push {r3-r7, lr} sub sp, #0x20 add r5, r0, #0x0 add r7, r1, #0x0 add r4, r3, #0x0 str r2, [sp, #0x1c] cmp r5, #0x0 bne _02009250 bl ErrorHandling _02009250: ldr r0, [r5, #0x10] cmp r0, #0x0 beq _0200925A bl ErrorHandling _0200925A: add r0, r5, #0x0 bl FUN_020097D0 add r6, r0, #0x0 bne _02009268 bl ErrorHandling _02009268: ldr r0, [sp, #0x38] str r4, [sp, #0x0] str r0, [sp, #0x4] ldr r0, [sp, #0x3c] ldr r3, [sp, #0x1c] str r0, [sp, #0x8] mov r0, #0x0 str r0, [sp, #0xc] str r0, [sp, #0x10] ldr r0, [sp, #0x40] add r1, r6, #0x0 str r0, [sp, #0x14] ldr r0, [sp, #0x44] add r2, r7, #0x0 str r0, [sp, #0x18] add r0, r5, #0x0 bl FUN_020099B0 ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] add r0, r6, #0x0 add sp, #0x20 pop {r3-r7, pc} thumb_func_start FUN_02009298 FUN_02009298: ; 0x02009298 push {r3-r7, lr} sub sp, #0x20 add r5, r0, #0x0 add r7, r1, #0x0 add r4, r3, #0x0 str r2, [sp, #0x1c] cmp r5, #0x0 bne _020092AC bl ErrorHandling _020092AC: ldr r0, [r5, #0x10] cmp r0, #0x1 beq _020092B6 bl ErrorHandling _020092B6: add r0, r5, #0x0 bl FUN_020097D0 add r6, r0, #0x0 bne _020092C4 bl ErrorHandling _020092C4: ldr r0, [sp, #0x38] str r4, [sp, #0x0] str r0, [sp, #0x4] ldr r0, [sp, #0x3c] ldr r3, [sp, #0x1c] str r0, [sp, #0x8] ldr r0, [sp, #0x40] add r1, r6, #0x0 str r0, [sp, #0xc] mov r0, #0x1 str r0, [sp, #0x10] ldr r0, [sp, #0x44] add r2, r7, #0x0 str r0, [sp, #0x14] mov r0, #0x0 str r0, [sp, #0x18] add r0, r5, #0x0 bl FUN_020099B0 ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] add r0, r6, #0x0 add sp, #0x20 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020092F8 FUN_020092F8: ; 0x020092F8 push {r3-r7, lr} sub sp, #0x20 add r5, r0, #0x0 add r7, r1, #0x0 add r4, r3, #0x0 str r2, [sp, #0x1c] cmp r5, #0x0 bne _0200930C bl ErrorHandling _0200930C: ldr r0, [r5, #0x10] cmp r0, #0x1 beq _02009316 bl ErrorHandling _02009316: add r0, r5, #0x0 bl FUN_020097D0 add r6, r0, #0x0 bne _02009324 bl ErrorHandling _02009324: ldr r0, [sp, #0x38] str r4, [sp, #0x0] str r0, [sp, #0x4] ldr r0, [sp, #0x3c] ldr r3, [sp, #0x1c] str r0, [sp, #0x8] ldr r0, [sp, #0x40] add r1, r6, #0x0 str r0, [sp, #0xc] mov r0, #0x1 str r0, [sp, #0x10] ldr r0, [sp, #0x44] add r2, r7, #0x0 str r0, [sp, #0x14] ldr r0, [sp, #0x48] str r0, [sp, #0x18] add r0, r5, #0x0 bl FUN_020099B0 ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] add r0, r6, #0x0 add sp, #0x20 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02009358 FUN_02009358: ; 0x02009358 push {r3-r7, lr} sub sp, #0x20 add r5, r0, #0x0 add r7, r1, #0x0 add r4, r3, #0x0 str r2, [sp, #0x1c] cmp r5, #0x0 bne _0200936C bl ErrorHandling _0200936C: add r0, r5, #0x0 bl FUN_020097D0 add r6, r0, #0x0 bne _0200937A bl ErrorHandling _0200937A: ldr r0, [sp, #0x38] str r4, [sp, #0x0] str r0, [sp, #0x4] mov r1, #0x0 str r1, [sp, #0x8] ldr r0, [sp, #0x3c] str r1, [sp, #0xc] str r0, [sp, #0x10] ldr r0, [sp, #0x40] ldr r3, [sp, #0x1c] str r0, [sp, #0x14] str r1, [sp, #0x18] add r0, r5, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 bl FUN_020099B0 ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] add r0, r6, #0x0 add sp, #0x20 pop {r3-r7, pc} thumb_func_start FUN_020093A8 FUN_020093A8: ; 0x020093A8 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 add r7, r3, #0x0 cmp r5, #0x0 bne _020093BC bl ErrorHandling _020093BC: cmp r4, #0x0 bne _020093C4 bl ErrorHandling _020093C4: str r6, [sp, #0x0] str r7, [sp, #0x4] ldr r3, [r4, #0x4] add r0, r5, #0x0 add r1, r4, #0x0 mov r2, #0x0 bl FUN_020093DC ldr r0, [r4, #0x4] add sp, #0x8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020093DC FUN_020093DC: ; 0x020093DC push {r3-r7, lr} sub sp, #0x8 str r0, [sp, #0x0] add r5, r2, #0x0 ldr r0, [sp, #0x24] add r7, r5, r3 str r1, [sp, #0x4] ldr r4, [sp, #0x20] str r0, [sp, #0x24] cmp r5, r7 bge _02009420 add r6, r4, #0x0 add r6, #0x8 _020093F6: ldr r0, [sp, #0x0] ldr r1, [sp, #0x4] ldr r3, [sp, #0x24] add r2, r5, #0x0 bl FUN_02008E6C cmp r4, #0x0 beq _0200941A ldr r2, [r4, #0x8] ldr r1, [r4, #0x4] cmp r1, r2 ble _0200941A ldr r1, [r4, #0x0] lsl r2, r2, #0x2 str r0, [r1, r2] ldr r0, [r6, #0x0] add r0, r0, #0x1 str r0, [r6, #0x0] _0200941A: add r5, r5, #0x1 cmp r5, r7 blt _020093F6 _02009420: add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_02009424 FUN_02009424: ; 0x02009424 push {r4-r6, lr} add r6, r1, #0x0 add r5, r0, #0x0 add r0, r6, #0x0 mov r1, #0xc bl FUN_02016998 add r4, r0, #0x0 add r0, r6, #0x0 lsl r1, r5, #0x2 bl FUN_02016998 str r0, [r4, #0x0] str r5, [r4, #0x4] mov r0, #0x0 str r0, [r4, #0x8] add r0, r4, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02009448 FUN_02009448: ; 0x02009448 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_02016A18 add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} .balign 4 thumb_func_start FUN_0200945C FUN_0200945C: ; 0x0200945C push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _0200946A bl ErrorHandling _0200946A: ldr r0, [r5, #0x0] add r1, r4, #0x0 bl FUN_02020CB0 pop {r3-r5, pc} thumb_func_start FUN_02009474 FUN_02009474: ; 0x02009474 push {r4, lr} add r4, r0, #0x0 bne _0200947E bl ErrorHandling _0200947E: add r0, r4, #0x0 bl FUN_02009920 ldr r0, [r4, #0x0] mov r1, #0x0 bl FUN_02020E1C pop {r4, pc} .balign 4 thumb_func_start FUN_02009490 FUN_02009490: ; 0x02009490 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _0200949E bl ErrorHandling _0200949E: ldr r0, [r5, #0x4] cmp r0, #0x0 bne _020094A8 bl ErrorHandling _020094A8: add r0, r4, #0x0 bl FUN_02009920 ldr r0, [r5, #0x0] ldr r1, [r4, #0x0] bl FUN_02020D68 mov r0, #0x0 str r0, [r4, #0x0] ldr r0, [r5, #0xc] sub r0, r0, #0x1 str r0, [r5, #0xc] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020094C4 FUN_020094C4: ; 0x020094C4 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0x8] mov r6, #0x0 cmp r0, #0x0 ble _020094EC add r4, r6, #0x0 _020094D2: ldr r1, [r5, #0x4] ldr r0, [r1, r4] cmp r0, #0x0 beq _020094E2 add r0, r5, #0x0 add r1, r1, r4 bl FUN_02009490 _020094E2: ldr r0, [r5, #0x8] add r6, r6, #0x1 add r4, #0xc cmp r6, r0 blt _020094D2 _020094EC: pop {r4-r6, pc} .balign 4 thumb_func_start FUN_020094F0 FUN_020094F0: ; 0x020094F0 push {r3-r7, lr} add r5, r0, #0x0 add r7, r1, #0x0 cmp r5, #0x0 bne _020094FE bl ErrorHandling _020094FE: ldr r0, [r5, #0x8] mov r6, #0x0 cmp r0, #0x0 ble _0200952C add r4, r6, #0x0 _02009508: ldr r0, [r5, #0x4] ldr r0, [r0, r4] cmp r0, #0x0 beq _02009522 bl FUN_02020E38 cmp r0, r7 bne _02009522 mov r0, #0xc ldr r1, [r5, #0x4] mul r0, r6 add r0, r1, r0 pop {r3-r7, pc} _02009522: ldr r0, [r5, #0x8] add r6, r6, #0x1 add r4, #0xc cmp r6, r0 blt _02009508 _0200952C: mov r0, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02009530 FUN_02009530: ; 0x02009530 push {r4, lr} add r4, r0, #0x0 bne _0200953A bl ErrorHandling _0200953A: ldr r0, [r4, #0x0] bl FUN_02020E38 pop {r4, pc} .balign 4 thumb_func_start FUN_02009544 FUN_02009544: ; 0x02009544 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x4] cmp r0, #0x0 beq _02009552 bl ErrorHandling _02009552: add r0, r4, #0x0 bl FUN_02009934 ldr r0, [r0, #0x0] pop {r4, pc} thumb_func_start FUN_0200955C FUN_0200955C: ; 0x0200955C push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x4] cmp r0, #0x1 beq _0200956A bl ErrorHandling _0200956A: add r0, r4, #0x0 bl FUN_02009934 ldr r0, [r0, #0x0] pop {r4, pc} thumb_func_start FUN_02009574 FUN_02009574: ; 0x02009574 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x4] cmp r0, #0x2 beq _02009582 bl ErrorHandling _02009582: add r0, r4, #0x0 bl FUN_02009934 ldr r0, [r0, #0x0] pop {r4, pc} thumb_func_start FUN_0200958C FUN_0200958C: ; 0x0200958C push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x4] cmp r0, #0x3 beq _0200959A bl ErrorHandling _0200959A: add r0, r4, #0x0 bl FUN_02009934 ldr r0, [r0, #0x0] pop {r4, pc} thumb_func_start FUN_020095A4 FUN_020095A4: ; 0x020095A4 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x4] cmp r0, #0x4 beq _020095B2 bl ErrorHandling _020095B2: add r0, r4, #0x0 bl FUN_02009934 ldr r0, [r0, #0x0] pop {r4, pc} thumb_func_start FUN_020095BC FUN_020095BC: ; 0x020095BC push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x4] cmp r0, #0x5 beq _020095CA bl ErrorHandling _020095CA: add r0, r4, #0x0 bl FUN_02009934 ldr r0, [r0, #0x0] pop {r4, pc} thumb_func_start FUN_020095D4 FUN_020095D4: ; 0x020095D4 push {r4, lr} add r4, r0, #0x0 bne _020095DE bl ErrorHandling _020095DE: ldr r0, [r4, #0x4] pop {r4, pc} .balign 4 thumb_func_start FUN_020095E4 FUN_020095E4: ; 0x020095E4 push {r4, lr} add r4, r0, #0x0 bne _020095EE bl ErrorHandling _020095EE: ldr r0, [r4, #0x4] cmp r0, #0x0 bne _020095FE add r0, r4, #0x0 bl FUN_02009934 ldr r0, [r0, #0x4] pop {r4, pc} _020095FE: cmp r0, #0x1 bne _0200960C add r0, r4, #0x0 bl FUN_02009934 ldr r0, [r0, #0x4] pop {r4, pc} _0200960C: mov r0, #0x0 pop {r4, pc} thumb_func_start FUN_02009610 FUN_02009610: ; 0x02009610 push {r4, lr} add r4, r0, #0x0 bne _0200961A bl ErrorHandling _0200961A: ldr r0, [r4, #0x4] cmp r0, #0x1 bne _0200962A add r0, r4, #0x0 bl FUN_02009934 ldr r0, [r0, #0x8] pop {r4, pc} _0200962A: mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02009630 FUN_02009630: ; 0x02009630 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _0200963E bl ErrorHandling _0200963E: ldr r0, [r5, #0x4] cmp r0, #0x0 bne _0200964C add r0, r5, #0x0 bl FUN_02009934 str r4, [r0, #0x4] _0200964C: ldr r0, [r5, #0x4] cmp r0, #0x1 bne _0200965A add r0, r5, #0x0 bl FUN_02009934 str r4, [r0, #0x4] _0200965A: pop {r3-r5, pc} thumb_func_start FUN_0200965C FUN_0200965C: ; 0x0200965C mov r0, #0x10 bx lr thumb_func_start FUN_02009660 FUN_02009660: ; 0x02009660 lsl r1, r1, #0x4 add r0, r0, r1 bx lr .balign 4 thumb_func_start FUN_02009668 FUN_02009668: ; 0x02009668 push {r4-r6, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r6, r2, #0x0 cmp r4, #0x0 bne _02009678 bl ErrorHandling _02009678: ldr r0, [r5, #0x0] str r0, [r4, #0x8] mov r0, #0x1 strb r0, [r4, #0xc] add r0, r5, #0x4 bl FUN_020099E8 add r2, r0, #0x0 str r0, [r4, #0x4] cmp r2, #0x0 ble _0200969A mov r1, #0x18 add r0, r6, #0x0 mul r1, r2 bl FUN_02016998 b _0200969C _0200969A: mov r0, #0x0 _0200969C: str r0, [r4, #0x0] ldr r0, [r4, #0x0] cmp r0, #0x0 beq _020096B0 ldr r3, [r4, #0x4] mov r2, #0x18 add r1, r5, #0x4 mul r2, r3 blx FUN_020DF438 _020096B0: pop {r4-r6, pc} .balign 4 thumb_func_start FUN_020096B4 FUN_020096B4: ; 0x020096B4 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x0 beq _020096C2 bl FUN_02016A18 _020096C2: mov r0, #0x0 str r0, [r4, #0x0] str r0, [r4, #0x4] pop {r4, pc} .balign 4 thumb_func_start FUN_020096CC FUN_020096CC: ; 0x020096CC push {r4, lr} add r4, r0, #0x0 bne _020096D6 bl ErrorHandling _020096D6: ldr r0, [r4, #0x4] pop {r4, pc} .balign 4 thumb_func_start FUN_020096DC FUN_020096DC: ; 0x020096DC push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _020096EA bl ErrorHandling _020096EA: ldr r0, [r5, #0x4] cmp r0, r4 bgt _020096F4 bl ErrorHandling _020096F4: ldrb r0, [r5, #0xc] ldr r1, [r5, #0x0] cmp r0, #0x0 bne _02009704 mov r0, #0x4c mul r0, r4 ldr r0, [r1, r0] pop {r3-r5, pc} _02009704: mov r0, #0x18 mul r0, r4 add r0, r1, r0 ldr r0, [r0, #0xc] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02009710 FUN_02009710: ; 0x02009710 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _0200971E bl ErrorHandling _0200971E: ldr r0, [r5, #0x4] cmp r0, r4 bgt _02009728 bl ErrorHandling _02009728: ldrb r0, [r5, #0xc] cmp r0, #0x1 bne _02009738 mov r0, #0x18 ldr r1, [r5, #0x0] mul r0, r4 add r0, r1, r0 ldr r6, [r0, #0x4] _02009738: add r0, r6, #0x0 pop {r4-r6, pc} thumb_func_start FUN_0200973C FUN_0200973C: ; 0x0200973C push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _0200974A bl ErrorHandling _0200974A: ldr r0, [r5, #0x4] cmp r0, r4 bgt _02009754 bl ErrorHandling _02009754: ldrb r0, [r5, #0xc] cmp r0, #0x1 bne _02009764 mov r0, #0x18 ldr r1, [r5, #0x0] mul r0, r4 add r0, r1, r0 ldr r6, [r0, #0x8] _02009764: add r0, r6, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02009768 FUN_02009768: ; 0x02009768 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _02009776 bl ErrorHandling _02009776: ldr r0, [r5, #0x4] cmp r0, r4 bgt _02009780 bl ErrorHandling _02009780: ldrb r0, [r5, #0xc] ldr r1, [r5, #0x0] cmp r0, #0x0 bne _02009792 mov r0, #0x4c mul r0, r4 add r0, r1, r0 ldr r0, [r0, #0x44] pop {r3-r5, pc} _02009792: mov r0, #0x18 mul r0, r4 add r0, r1, r0 ldr r0, [r0, #0x10] pop {r3-r5, pc} thumb_func_start FUN_0200979C FUN_0200979C: ; 0x0200979C push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _020097AA bl ErrorHandling _020097AA: ldr r0, [r5, #0x4] cmp r0, r4 bgt _020097B4 bl ErrorHandling _020097B4: ldrb r0, [r5, #0xc] ldr r1, [r5, #0x0] cmp r0, #0x0 bne _020097C6 mov r0, #0x4c mul r0, r4 add r0, r1, r0 ldr r0, [r0, #0x48] pop {r3-r5, pc} _020097C6: mov r0, #0x18 mul r0, r4 add r0, r1, r0 ldr r0, [r0, #0x14] pop {r3-r5, pc} thumb_func_start FUN_020097D0 FUN_020097D0: ; 0x020097D0 push {r3-r4} ldr r4, [r0, #0x8] mov r1, #0x0 cmp r4, #0x0 ble _020097F6 ldr r3, [r0, #0x4] add r2, r3, #0x0 _020097DE: ldr r0, [r2, #0x0] cmp r0, #0x0 bne _020097EE mov r0, #0xc mul r0, r1 add r0, r3, r0 pop {r3-r4} bx lr _020097EE: add r1, r1, #0x1 add r2, #0xc cmp r1, r4 blt _020097DE _020097F6: mov r0, #0x0 pop {r3-r4} bx lr thumb_func_start FUN_020097FC FUN_020097FC: ; 0x020097FC push {r3-r7, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] add r6, r1, #0x0 add r7, r2, #0x0 str r3, [sp, #0x0] ldr r5, [sp, #0x18] bl FUN_02020E0C cmp r6, #0x5 bhi _0200986A add r1, r6, r6 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0200981E: ; jump table (using 16-bit offset) .short _0200982A - _0200981E - 2; case 0 .short _02009836 - _0200981E - 2; case 1 .short _02009844 - _0200981E - 2; case 2 .short _0200984E - _0200981E - 2; case 3 .short _02009858 - _0200981E - 2; case 4 .short _02009862 - _0200981E - 2; case 5 _0200982A: add r1, r7, #0x0 add r2, r5, #0x0 bl FUN_0200986C str r0, [r4, #0x8] pop {r3-r7, pc} _02009836: ldr r2, [sp, #0x0] add r1, r7, #0x0 add r3, r5, #0x0 bl FUN_0200988C str r0, [r4, #0x8] pop {r3-r7, pc} _02009844: add r1, r5, #0x0 bl FUN_020098B0 str r0, [r4, #0x8] pop {r3-r7, pc} _0200984E: add r1, r5, #0x0 bl FUN_020098CC str r0, [r4, #0x8] pop {r3-r7, pc} _02009858: add r1, r5, #0x0 bl FUN_020098E8 str r0, [r4, #0x8] pop {r3-r7, pc} _02009862: add r1, r5, #0x0 bl FUN_02009904 str r0, [r4, #0x8] _0200986A: pop {r3-r7, pc} thumb_func_start FUN_0200986C FUN_0200986C: ; 0x0200986C push {r4-r6, lr} add r6, r0, #0x0 add r5, r1, #0x0 add r0, r2, #0x0 mov r1, #0x8 bl FUN_02016998 add r4, r0, #0x0 add r0, r6, #0x0 add r1, r4, #0x0 blx FUN_020B0088 str r5, [r4, #0x4] add r0, r4, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0200988C FUN_0200988C: ; 0x0200988C push {r3-r7, lr} add r7, r0, #0x0 add r5, r1, #0x0 add r0, r3, #0x0 mov r1, #0xc add r6, r2, #0x0 bl FUN_02016998 add r4, r0, #0x0 add r0, r7, #0x0 add r1, r4, #0x0 blx FUN_020B0138 str r5, [r4, #0x4] str r6, [r4, #0x8] add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020098B0 FUN_020098B0: ; 0x020098B0 push {r3-r5, lr} add r5, r0, #0x0 add r0, r1, #0x0 mov r1, #0x4 bl FUN_02016998 add r4, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 blx FUN_020AFEB8 add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020098CC FUN_020098CC: ; 0x020098CC push {r3-r5, lr} add r5, r0, #0x0 add r0, r1, #0x0 mov r1, #0x4 bl FUN_02016998 add r4, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 blx FUN_020AFD94 add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020098E8 FUN_020098E8: ; 0x020098E8 push {r3-r5, lr} add r5, r0, #0x0 add r0, r1, #0x0 mov r1, #0x4 bl FUN_02016998 add r4, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 blx FUN_020AFFD8 add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02009904 FUN_02009904: ; 0x02009904 push {r3-r5, lr} add r5, r0, #0x0 add r0, r1, #0x0 mov r1, #0x4 bl FUN_02016998 add r4, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 blx FUN_020AFD88 add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02009920 FUN_02009920: ; 0x02009920 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x8] cmp r0, #0x0 beq _0200992E bl FUN_02016A18 _0200992E: mov r0, #0x0 str r0, [r4, #0x8] pop {r4, pc} thumb_func_start FUN_02009934 FUN_02009934: ; 0x02009934 push {r4, lr} add r4, r0, #0x0 bne _0200993E bl ErrorHandling _0200993E: ldr r0, [r4, #0x8] cmp r0, #0x0 bne _02009948 bl ErrorHandling _02009948: ldr r0, [r4, #0x8] pop {r4, pc} thumb_func_start FUN_0200994C FUN_0200994C: ; 0x0200994C push {r3-r4, lr} sub sp, #0x4 add r4, r1, #0x0 add r1, r2, #0x0 add r2, r3, #0x0 ldr r0, [r0, #0x0] ldr r3, [sp, #0x1c] bl FUN_02020D10 str r0, [r4, #0x0] ldr r1, [sp, #0x18] ldr r0, [sp, #0x1c] str r1, [r4, #0x4] str r0, [sp, #0x0] ldr r2, [sp, #0x10] ldr r3, [sp, #0x14] add r0, r4, #0x0 bl FUN_020097FC add sp, #0x4 pop {r3-r4, pc} .balign 4 thumb_func_start FUN_02009978 FUN_02009978: ; 0x02009978 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [sp, #0x28] add r4, r1, #0x0 str r0, [sp, #0x0] add r0, r2, #0x0 add r1, r3, #0x0 ldr r2, [sp, #0x10] ldr r3, [sp, #0x24] bl FUN_02006C98 add r1, r0, #0x0 ldr r0, [r5, #0x0] ldr r2, [sp, #0x14] bl FUN_02020CD4 str r0, [r4, #0x0] ldr r1, [sp, #0x20] ldr r0, [sp, #0x24] str r1, [r4, #0x4] str r0, [sp, #0x0] ldr r2, [sp, #0x18] ldr r3, [sp, #0x1c] add r0, r4, #0x0 bl FUN_020097FC pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020099B0 FUN_020099B0: ; 0x020099B0 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [sp, #0x28] add r4, r1, #0x0 str r0, [sp, #0x0] add r0, r2, #0x0 add r1, r3, #0x0 ldr r2, [sp, #0x10] ldr r3, [sp, #0x24] bl FUN_02009A04 add r1, r0, #0x0 ldr r0, [r5, #0x0] ldr r2, [sp, #0x14] bl FUN_02020CD4 str r0, [r4, #0x0] ldr r1, [sp, #0x20] ldr r0, [sp, #0x24] str r1, [r4, #0x4] str r0, [sp, #0x0] ldr r2, [sp, #0x18] ldr r3, [sp, #0x1c] add r0, r4, #0x0 bl FUN_020097FC pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020099E8 FUN_020099E8: ; 0x020099E8 mov r3, #0x0 ldr r2, [r0, #0x0] sub r1, r3, #0x2 cmp r2, r1 beq _020099FE sub r1, r3, #0x2 _020099F4: add r0, #0x18 ldr r2, [r0, #0x0] add r3, r3, #0x1 cmp r2, r1 bne _020099F4 _020099FE: add r0, r3, #0x0 bx lr .balign 4 thumb_func_start FUN_02009A04 FUN_02009A04: ; 0x02009A04 push {r4-r6, lr} add r6, r3, #0x0 add r5, r2, #0x0 add r2, r6, #0x0 bl FUN_02006704 add r4, r0, #0x0 beq _02009A4A cmp r5, #0x0 beq _02009A4A ldr r0, [sp, #0x10] cmp r0, #0x0 bne _02009A2A ldr r1, [r4, #0x0] add r0, r6, #0x0 lsr r1, r1, #0x8 bl FUN_02016998 b _02009A34 _02009A2A: ldr r1, [r4, #0x0] add r0, r6, #0x0 lsr r1, r1, #0x8 bl FUN_020169D8 _02009A34: add r5, r0, #0x0 cmp r5, #0x0 beq _02009A48 add r0, r4, #0x0 add r1, r5, #0x0 blx MI_UncompressLZ8 add r0, r4, #0x0 bl FUN_02016A18 _02009A48: add r4, r5, #0x0 _02009A4A: add r0, r4, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02009A50 FUN_02009A50: ; 0x02009A50 push {r4, lr} sub sp, #0x10 add r4, r0, #0x0 bne _02009A5C bl ErrorHandling _02009A5C: add r0, r4, #0x0 bl FUN_020095D4 cmp r0, #0x0 beq _02009A6A bl ErrorHandling _02009A6A: add r0, r4, #0x0 bl FUN_02009544 str r0, [sp, #0x0] add r0, r4, #0x0 bl FUN_020095E4 str r0, [sp, #0x4] add r0, r4, #0x0 bl FUN_02009530 str r0, [sp, #0x8] mov r0, #0x0 str r0, [sp, #0xc] add r0, sp, #0x0 bl FUN_0201D1F8 add sp, #0x10 pop {r4, pc} thumb_func_start FUN_02009A90 FUN_02009A90: ; 0x02009A90 push {r4-r6, lr} add r5, r0, #0x0 bne _02009A9A bl ErrorHandling _02009A9A: ldr r0, [r5, #0x4] mov r6, #0x0 cmp r0, #0x0 ble _02009AC2 add r4, r6, #0x0 _02009AA4: ldr r0, [r5, #0x0] ldr r0, [r0, r4] cmp r0, #0x0 beq _02009AB8 bl FUN_02009A50 cmp r0, #0x0 bne _02009AB8 bl ErrorHandling _02009AB8: ldr r0, [r5, #0x4] add r6, r6, #0x1 add r4, r4, #0x4 cmp r6, r0 blt _02009AA4 _02009AC2: pop {r4-r6, pc} thumb_func_start FUN_02009AC4 FUN_02009AC4: ; 0x02009AC4 push {r4, lr} sub sp, #0x10 add r4, r0, #0x0 bne _02009AD0 bl ErrorHandling _02009AD0: add r0, r4, #0x0 bl FUN_020095D4 cmp r0, #0x0 beq _02009ADE bl ErrorHandling _02009ADE: add r0, r4, #0x0 bl FUN_02009544 str r0, [sp, #0x0] add r0, r4, #0x0 bl FUN_020095E4 str r0, [sp, #0x4] add r0, r4, #0x0 bl FUN_02009530 str r0, [sp, #0x8] mov r0, #0x0 str r0, [sp, #0xc] add r0, sp, #0x0 bl FUN_0201D250 add sp, #0x10 pop {r4, pc} thumb_func_start FUN_02009B04 FUN_02009B04: ; 0x02009B04 push {r4, lr} sub sp, #0x10 add r4, r0, #0x0 bne _02009B10 bl ErrorHandling _02009B10: add r0, r4, #0x0 bl FUN_020095D4 cmp r0, #0x0 beq _02009B1E bl ErrorHandling _02009B1E: add r0, r4, #0x0 bl FUN_02009544 str r0, [sp, #0x0] add r0, r4, #0x0 bl FUN_020095E4 str r0, [sp, #0x4] add r0, r4, #0x0 bl FUN_02009530 str r0, [sp, #0x8] mov r0, #0x1 str r0, [sp, #0xc] add r0, sp, #0x0 bl FUN_0201D1F8 add sp, #0x10 pop {r4, pc} thumb_func_start FUN_02009B44 FUN_02009B44: ; 0x02009B44 push {r4-r6, lr} add r5, r0, #0x0 bne _02009B4E bl ErrorHandling _02009B4E: ldr r0, [r5, #0x4] mov r6, #0x0 cmp r0, #0x0 ble _02009B76 add r4, r6, #0x0 _02009B58: ldr r0, [r5, #0x0] ldr r0, [r0, r4] cmp r0, #0x0 beq _02009B6C bl FUN_02009B04 cmp r0, #0x0 bne _02009B6C bl ErrorHandling _02009B6C: ldr r0, [r5, #0x4] add r6, r6, #0x1 add r4, r4, #0x4 cmp r6, r0 blt _02009B58 _02009B76: pop {r4-r6, pc} thumb_func_start FUN_02009B78 FUN_02009B78: ; 0x02009B78 push {r4, lr} sub sp, #0x10 add r4, r0, #0x0 bne _02009B84 bl ErrorHandling _02009B84: add r0, r4, #0x0 bl FUN_020095D4 cmp r0, #0x0 beq _02009B92 bl ErrorHandling _02009B92: add r0, r4, #0x0 bl FUN_02009544 str r0, [sp, #0x0] add r0, r4, #0x0 bl FUN_020095E4 str r0, [sp, #0x4] add r0, r4, #0x0 bl FUN_02009530 str r0, [sp, #0x8] mov r0, #0x1 str r0, [sp, #0xc] add r0, sp, #0x0 bl FUN_0201D250 add sp, #0x10 pop {r4, pc} thumb_func_start FUN_02009BB8 FUN_02009BB8: ; 0x02009BB8 push {r3-r5, lr} add r4, r0, #0x0 add r5, r1, #0x0 cmp r4, #0x0 bne _02009BC6 bl ErrorHandling _02009BC6: cmp r5, #0x0 bne _02009BCE bl ErrorHandling _02009BCE: add r0, r4, #0x0 bl FUN_02009530 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02009544 add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_0201D2DC pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02009BE8 FUN_02009BE8: ; 0x02009BE8 push {r3-r5, lr} add r5, r0, #0x0 bne _02009BF2 bl ErrorHandling _02009BF2: add r0, r5, #0x0 bl FUN_02009530 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02009544 add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_0201D2DC pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02009C0C FUN_02009C0C: ; 0x02009C0C push {r4, lr} add r4, r0, #0x0 bne _02009C16 bl ErrorHandling _02009C16: add r0, r4, #0x0 bl FUN_020095D4 cmp r0, #0x0 beq _02009C24 bl ErrorHandling _02009C24: add r0, r4, #0x0 bl FUN_02009530 bl FUN_0201D324 pop {r4, pc} thumb_func_start FUN_02009C30 FUN_02009C30: ; 0x02009C30 push {r4-r6, lr} add r5, r0, #0x0 bne _02009C3A bl ErrorHandling _02009C3A: ldr r0, [r5, #0x4] mov r6, #0x0 cmp r0, #0x0 ble _02009C5A add r4, r6, #0x0 _02009C44: ldr r0, [r5, #0x0] ldr r0, [r0, r4] cmp r0, #0x0 beq _02009C50 bl FUN_02009C0C _02009C50: ldr r0, [r5, #0x4] add r6, r6, #0x1 add r4, r4, #0x4 cmp r6, r0 blt _02009C44 _02009C5A: pop {r4-r6, pc} thumb_func_start FUN_02009C5C FUN_02009C5C: ; 0x02009C5C push {r4, lr} add r4, r0, #0x0 bne _02009C66 bl ErrorHandling _02009C66: add r0, r4, #0x0 bl FUN_020095D4 cmp r0, #0x0 beq _02009C74 bl ErrorHandling _02009C74: add r0, r4, #0x0 bl FUN_02009530 bl FUN_0201D3B0 pop {r4, pc} thumb_func_start FUN_02009C80 FUN_02009C80: ; 0x02009C80 push {r3-r5, lr} add r4, r0, #0x0 add r5, r1, #0x0 cmp r4, #0x0 bne _02009C8E bl ErrorHandling _02009C8E: add r0, r4, #0x0 bl FUN_020095D4 cmp r0, #0x0 beq _02009C9C bl ErrorHandling _02009C9C: cmp r5, #0x0 bne _02009CA4 bl ErrorHandling _02009CA4: add r0, r5, #0x0 bl FUN_020095D4 cmp r0, #0x2 beq _02009CB2 bl ErrorHandling _02009CB2: add r0, r4, #0x0 bl FUN_02009530 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02009574 add r1, r0, #0x0 ldr r1, [r1, #0xc] add r0, r4, #0x0 ldr r1, [r1, #0x0] bl FUN_0201D3D4 cmp r0, #0x0 bne _02009CDA add r0, r4, #0x0 bl FUN_0201D3B0 bl FUN_0201D458 _02009CDA: pop {r3-r5, pc} thumb_func_start FUN_02009CDC FUN_02009CDC: ; 0x02009CDC push {r4, lr} add r4, r0, #0x0 bne _02009CE6 bl ErrorHandling _02009CE6: add r0, r4, #0x0 bl FUN_0201D4F0 pop {r4, pc} .balign 4 thumb_func_start FUN_02009CF0 FUN_02009CF0: ; 0x02009CF0 push {r4, lr} sub sp, #0x10 add r4, r0, #0x0 bne _02009CFC bl ErrorHandling _02009CFC: add r0, r4, #0x0 bl FUN_020095D4 cmp r0, #0x1 beq _02009D0A bl ErrorHandling _02009D0A: add r0, r4, #0x0 bl FUN_0200955C str r0, [sp, #0x0] add r0, r4, #0x0 bl FUN_020095E4 str r0, [sp, #0x4] add r0, r4, #0x0 bl FUN_02009530 str r0, [sp, #0xc] add r0, r4, #0x0 bl FUN_02009610 str r0, [sp, #0x8] add r0, sp, #0x0 bl FUN_0201E0E4 add sp, #0x10 pop {r4, pc} thumb_func_start FUN_02009D34 FUN_02009D34: ; 0x02009D34 push {r4-r6, lr} add r5, r0, #0x0 bne _02009D3E bl ErrorHandling _02009D3E: ldr r0, [r5, #0x4] mov r6, #0x0 cmp r0, #0x0 ble _02009D66 add r4, r6, #0x0 _02009D48: ldr r0, [r5, #0x0] ldr r0, [r0, r4] cmp r0, #0x0 beq _02009D5C bl FUN_02009CF0 cmp r0, #0x0 bne _02009D5C bl ErrorHandling _02009D5C: ldr r0, [r5, #0x4] add r6, r6, #0x1 add r4, r4, #0x4 cmp r6, r0 blt _02009D48 _02009D66: pop {r4-r6, pc} thumb_func_start FUN_02009D68 FUN_02009D68: ; 0x02009D68 push {r4, lr} sub sp, #0x10 add r4, r0, #0x0 bne _02009D74 bl ErrorHandling _02009D74: add r0, r4, #0x0 bl FUN_020095D4 cmp r0, #0x1 beq _02009D82 bl ErrorHandling _02009D82: add r0, r4, #0x0 bl FUN_0200955C str r0, [sp, #0x0] add r0, r4, #0x0 bl FUN_020095E4 str r0, [sp, #0x4] add r0, r4, #0x0 bl FUN_02009530 str r0, [sp, #0xc] add r0, r4, #0x0 bl FUN_02009610 str r0, [sp, #0x8] add r0, sp, #0x0 bl FUN_0201E128 add sp, #0x10 pop {r4, pc} thumb_func_start FUN_02009DAC FUN_02009DAC: ; 0x02009DAC push {r4-r6, lr} add r5, r0, #0x0 bne _02009DB6 bl ErrorHandling _02009DB6: ldr r0, [r5, #0x4] mov r6, #0x0 cmp r0, #0x0 ble _02009DDE add r4, r6, #0x0 _02009DC0: ldr r0, [r5, #0x0] ldr r0, [r0, r4] cmp r0, #0x0 beq _02009DD4 bl FUN_02009D68 cmp r0, #0x0 bne _02009DD4 bl ErrorHandling _02009DD4: ldr r0, [r5, #0x4] add r6, r6, #0x1 add r4, r4, #0x4 cmp r6, r0 blt _02009DC0 _02009DDE: pop {r4-r6, pc} thumb_func_start FUN_02009DE0 FUN_02009DE0: ; 0x02009DE0 push {r3-r5, lr} add r5, r0, #0x0 bne _02009DEA bl ErrorHandling _02009DEA: add r0, r5, #0x0 bl FUN_02009530 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0200955C add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_0201E168 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02009E04 FUN_02009E04: ; 0x02009E04 push {r4, lr} add r4, r0, #0x0 bne _02009E0E bl ErrorHandling _02009E0E: add r0, r4, #0x0 bl FUN_020095D4 cmp r0, #0x1 beq _02009E1C bl ErrorHandling _02009E1C: add r0, r4, #0x0 bl FUN_02009530 bl FUN_0201E1C8 pop {r4, pc} thumb_func_start FUN_02009E28 FUN_02009E28: ; 0x02009E28 push {r4-r6, lr} add r5, r0, #0x0 bne _02009E32 bl ErrorHandling _02009E32: ldr r0, [r5, #0x4] mov r6, #0x0 cmp r0, #0x0 ble _02009E52 add r4, r6, #0x0 _02009E3C: ldr r0, [r5, #0x0] ldr r0, [r0, r4] cmp r0, #0x0 beq _02009E48 bl FUN_02009E04 _02009E48: ldr r0, [r5, #0x4] add r6, r6, #0x1 add r4, r4, #0x4 cmp r6, r0 blt _02009E3C _02009E52: pop {r4-r6, pc} thumb_func_start FUN_02009E54 FUN_02009E54: ; 0x02009E54 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _02009E62 bl ErrorHandling _02009E62: add r0, r5, #0x0 bl FUN_020095D4 cmp r0, #0x1 beq _02009E70 bl ErrorHandling _02009E70: add r0, r5, #0x0 bl FUN_02009530 cmp r4, #0x0 beq _02009E82 add r1, r4, #0x0 bl FUN_0201E258 pop {r3-r5, pc} _02009E82: bl FUN_0201E230 pop {r3-r5, pc} thumb_func_start FUN_02009E88 FUN_02009E88: ; 0x02009E88 push {r4, lr} add r4, r1, #0x0 mov r1, #0x0 bl FUN_02009E54 add r1, r4, #0x0 blx FUN_020B19C4 mov r1, #0x0 mvn r1, r1 cmp r0, r1 beq _02009EA8 asr r1, r0, #0x4 lsr r1, r1, #0x1b add r1, r0, r1 asr r0, r1, #0x5 _02009EA8: pop {r4, pc} .balign 4 thumb_func_start FUN_02009EAC FUN_02009EAC: ; 0x02009EAC push {r3-r4, lr} sub sp, #0x14 add r4, r0, #0x0 cmp r4, #0x4 bge _02009EC0 mov r0, #0x4 cmp r1, #0x7c ble _02009EC0 sub r4, r0, r4 sub r1, r1, r4 _02009EC0: cmp r2, #0x1 bge _02009ED0 mov r4, #0x1 cmp r3, #0x1e ble _02009ED2 sub r2, r4, r2 sub r3, r3, r2 b _02009ED2 _02009ED0: add r4, r2, #0x0 _02009ED2: ldr r2, [sp, #0x20] str r2, [sp, #0x0] ldr r2, [sp, #0x24] str r2, [sp, #0x4] ldr r2, [sp, #0x28] str r2, [sp, #0x8] ldr r2, [sp, #0x2c] str r2, [sp, #0xc] ldr r2, [sp, #0x30] str r2, [sp, #0x10] add r2, r4, #0x0 bl FUN_02009EF0 add sp, #0x14 pop {r3-r4, pc} thumb_func_start FUN_02009EF0 FUN_02009EF0: ; 0x02009EF0 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 ldr r0, _02009F7C ; =0x021C4670 add r4, r1, #0x0 ldr r0, [r0, #0x0] add r6, r2, #0x0 add r7, r3, #0x0 cmp r0, #0x0 beq _02009F08 bl ErrorHandling _02009F08: ldr r0, [sp, #0x30] mov r1, #0x3c bl FUN_02016998 ldr r1, _02009F7C ; =0x021C4670 cmp r0, #0x0 str r0, [r1, #0x0] bne _02009F1C bl ErrorHandling _02009F1C: ldr r1, _02009F7C ; =0x021C4670 lsl r3, r6, #0x10 ldr r2, [sp, #0x30] ldr r0, [r1, #0x0] lsr r3, r3, #0x10 str r2, [r0, #0x38] lsl r0, r7, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x0] mov r0, #0x0 str r0, [sp, #0x4] ldr r0, [r1, #0x0] lsl r1, r5, #0x10 lsl r2, r4, #0x10 lsr r1, r1, #0x10 lsr r2, r2, #0x10 blx FUN_020B0E34 cmp r0, #0x0 bne _02009F48 bl ErrorHandling _02009F48: ldr r0, [sp, #0x2c] ldr r1, [sp, #0x20] lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] ldr r0, _02009F7C ; =0x021C4670 ldr r2, [sp, #0x24] ldr r3, [sp, #0x28] ldr r0, [r0, #0x0] lsl r1, r1, #0x10 lsl r2, r2, #0x10 lsl r3, r3, #0x10 add r0, #0x1c lsr r1, r1, #0x10 lsr r2, r2, #0x10 lsr r3, r3, #0x10 blx FUN_020B0E34 cmp r0, #0x0 bne _02009F78 bl ErrorHandling _02009F78: add sp, #0x8 pop {r3-r7, pc} .balign 4 _02009F7C: .word 0x021C4670 thumb_func_start FUN_02009F80 FUN_02009F80: ; 0x02009F80 push {r3, lr} ldr r0, _02009F9C ; =0x021C4670 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _02009F98 blx FUN_020B0870 ldr r0, _02009F9C ; =0x021C4670 ldr r0, [r0, #0x0] add r0, #0x1c blx FUN_020B0870 _02009F98: pop {r3, pc} nop _02009F9C: .word 0x021C4670 thumb_func_start FUN_02009FA0 FUN_02009FA0: ; 0x02009FA0 push {r3, lr} ldr r0, _02009FD4 ; =0x021C4670 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02009FAE bl ErrorHandling _02009FAE: ldr r0, _02009FD4 ; =0x021C4670 ldr r0, [r0, #0x0] ldr r0, [r0, #0x38] bl FUN_0200A064 ldr r0, _02009FD4 ; =0x021C4670 ldr r0, [r0, #0x0] ldr r0, [r0, #0x38] bl FUN_0200A06C ldr r0, _02009FD4 ; =0x021C4670 ldr r0, [r0, #0x0] bl FUN_02016A18 ldr r0, _02009FD4 ; =0x021C4670 mov r1, #0x0 str r1, [r0, #0x0] pop {r3, pc} nop _02009FD4: .word 0x021C4670 thumb_func_start FUN_02009FD8 FUN_02009FD8: ; 0x02009FD8 push {r4-r7, lr} sub sp, #0xc add r6, r0, #0x0 ldr r0, _0200A024 ; =0x021C4670 add r7, r1, #0x0 ldr r0, [r0, #0x0] add r5, r2, #0x0 add r4, r3, #0x0 cmp r0, #0x0 bne _02009FF0 bl ErrorHandling _02009FF0: cmp r5, #0x1 bne _0200A00C ldr r0, _0200A028 ; =FUN_020213A0 ldr r2, _0200A02C ; =FUN_0200A074 str r0, [sp, #0x0] str r5, [sp, #0x4] ldr r3, _0200A030 ; =FUN_0200A0B8 add r0, r6, #0x0 add r1, r7, #0x0 str r4, [sp, #0x8] bl FUN_0202135C add sp, #0xc pop {r4-r7, pc} _0200A00C: ldr r0, _0200A028 ; =FUN_020213A0 ldr r2, _0200A034 ; =FUN_0200A094 str r0, [sp, #0x0] str r5, [sp, #0x4] ldr r3, _0200A038 ; =FUN_0200A0DC add r0, r6, #0x0 add r1, r7, #0x0 str r4, [sp, #0x8] bl FUN_0202135C add sp, #0xc pop {r4-r7, pc} .balign 4 _0200A024: .word 0x021C4670 _0200A028: .word FUN_020213A0 _0200A02C: .word FUN_0200A074 _0200A030: .word FUN_0200A0B8 _0200A034: .word FUN_0200A094 _0200A038: .word FUN_0200A0DC thumb_func_start FUN_0200A03C FUN_0200A03C: ; 0x0200A03C push {r4, lr} add r4, r0, #0x0 ldr r0, _0200A060 ; =0x021C4670 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _0200A04C bl ErrorHandling _0200A04C: cmp r4, #0x0 bne _0200A056 ldr r0, _0200A060 ; =0x021C4670 ldr r0, [r0, #0x0] pop {r4, pc} _0200A056: ldr r0, _0200A060 ; =0x021C4670 ldr r0, [r0, #0x0] add r0, #0x1c pop {r4, pc} nop _0200A060: .word 0x021C4670 thumb_func_start FUN_0200A064 FUN_0200A064: ; 0x0200A064 ldr r3, _0200A068 ; =FUN_020203CC bx r3 .balign 4 _0200A068: .word FUN_020203CC thumb_func_start FUN_0200A06C FUN_0200A06C: ; 0x0200A06C ldr r3, _0200A070 ; =FUN_02020404 bx r3 .balign 4 _0200A070: .word FUN_02020404 thumb_func_start FUN_0200A074 FUN_0200A074: ; 0x0200A074 push {r4, lr} add r3, r0, #0x0 ldr r0, _0200A090 ; =0x021C4670 add r2, r1, #0x0 ldr r0, [r0, #0x0] add r1, r3, #0x0 blx FUN_020B0C7C add r4, r0, #0x0 bne _0200A08C bl ErrorHandling _0200A08C: add r0, r4, #0x0 pop {r4, pc} .balign 4 _0200A090: .word 0x021C4670 thumb_func_start FUN_0200A094 FUN_0200A094: ; 0x0200A094 push {r4, lr} add r3, r0, #0x0 ldr r0, _0200A0B4 ; =0x021C4670 add r2, r1, #0x0 ldr r0, [r0, #0x0] add r1, r3, #0x0 add r0, #0x1c blx FUN_020B0C7C add r4, r0, #0x0 bne _0200A0AE bl ErrorHandling _0200A0AE: add r0, r4, #0x0 pop {r4, pc} nop _0200A0B4: .word 0x021C4670 thumb_func_start FUN_0200A0B8 FUN_0200A0B8: ; 0x0200A0B8 push {r4, lr} add r1, r0, #0x0 ldr r0, _0200A0D4 ; =0x021C4670 ldr r0, [r0, #0x0] blx FUN_020B0BB0 add r4, r0, #0x0 ldr r0, _0200A0D8 ; =0x0000FFFE cmp r4, r0 bne _0200A0D0 bl ErrorHandling _0200A0D0: add r0, r4, #0x0 pop {r4, pc} .balign 4 _0200A0D4: .word 0x021C4670 _0200A0D8: .word 0x0000FFFE thumb_func_start FUN_0200A0DC FUN_0200A0DC: ; 0x0200A0DC push {r4, lr} add r1, r0, #0x0 ldr r0, _0200A0FC ; =0x021C4670 ldr r0, [r0, #0x0] add r0, #0x1c blx FUN_020B0BB0 add r4, r0, #0x0 ldr r0, _0200A100 ; =0x0000FFFE cmp r4, r0 bne _0200A0F6 bl ErrorHandling _0200A0F6: add r0, r4, #0x0 pop {r4, pc} nop _0200A0FC: .word 0x021C4670 _0200A100: .word 0x0000FFFE thumb_func_start FUN_0200A104 FUN_0200A104: ; 0x0200A104 push {r3-r7, lr} add r5, r0, #0x0 mov r0, #0x10 ldrsb r2, [r5, r0] mov r0, #0x14 ldrsh r0, [r5, r0] add r1, r2, #0x0 mov r7, #0x1a ldrsh r2, [r5, r7] mul r1, r0 mov r6, #0xa ldrsh r0, [r5, r6] add r1, r2, r1 mov r4, #0x0 cmp r0, r1 beq _0200A162 cmp r2, r0 beq _0200A162 strh r1, [r5, #0x1a] ldrh r3, [r5, #0x18] ldrh r0, [r5, #0x16] add r2, r5, #0x0 add r1, r5, #0x0 add r0, r3, r0 strh r0, [r5, #0x18] ldrh r3, [r5, #0x18] ldrh r0, [r5, #0x8] add r2, #0x1a add r1, #0x18 cmp r3, r0 blo _0200A166 mov r3, #0x10 ldrsh r0, [r2, r4] ldrsb r3, [r5, r3] add r0, r0, r3 strh r0, [r2, #0x0] ldrsh r2, [r5, r7] ldrsh r0, [r5, r6] cmp r2, r0 beq _0200A15E ldrh r2, [r1, #0x0] ldrh r0, [r5, #0x8] sub r0, r2, r0 strh r0, [r1, #0x0] b _0200A166 _0200A15E: mov r4, #0x1 b _0200A166 _0200A162: strh r0, [r5, #0x1a] mov r4, #0x1 _0200A166: ldr r1, [r5, #0x4] mov r0, #0x1 tst r0, r1 beq _0200A17C mov r2, #0x1a ldrsh r2, [r5, r2] ldr r0, _0200A198 ; =0x04000050 ldr r1, [r5, #0x0] blx FUN_020C74B8 b _0200A18E _0200A17C: mov r0, #0x2 tst r0, r1 beq _0200A18E mov r2, #0x1a ldrsh r2, [r5, r2] ldr r0, _0200A19C ; =0x04001050 ldr r1, [r5, #0x0] blx FUN_020C74B8 _0200A18E: cmp r4, #0x1 bne _0200A196 mov r0, #0x0 str r0, [r5, #0x1c] _0200A196: pop {r3-r7, pc} .balign 4 _0200A198: .word 0x04000050 _0200A19C: .word 0x04001050 thumb_func_start FUN_0200A1A0 FUN_0200A1A0: ; 0x0200A1A0 push {r3-r7, lr} add r5, r0, #0x0 ldr r0, [r5, #0x1c] add r4, r1, #0x0 add r6, r2, #0x0 add r7, r3, #0x0 cmp r0, #0x0 beq _0200A1B4 bl ErrorHandling _0200A1B4: ldr r1, [sp, #0x18] mov r0, #0x1 lsl r1, r1, #0x18 str r0, [r5, #0x1c] lsr r1, r1, #0x18 str r1, [r5, #0x0] ldr r1, [sp, #0x1c] lsl r1, r1, #0x18 lsr r1, r1, #0x18 str r1, [r5, #0x4] strh r4, [r5, #0x8] strh r6, [r5, #0xa] strh r7, [r5, #0x1a] sub r1, r7, r6 strh r1, [r5, #0x12] mov r1, #0x12 ldrsh r2, [r5, r1] cmp r2, #0x0 ble _0200A1E0 sub r1, #0x13 strb r1, [r5, #0x10] b _0200A1EA _0200A1E0: strb r0, [r5, #0x10] ldrsh r0, [r5, r1] sub r1, #0x13 mul r1, r0 strh r1, [r5, #0x12] _0200A1EA: mov r0, #0x12 ldrsh r0, [r5, r0] add r1, r4, #0x0 blx _s32_div_f strh r0, [r5, #0x14] mov r0, #0x12 ldrsh r0, [r5, r0] add r1, r4, #0x0 blx _s32_div_f strh r1, [r5, #0x16] mov r0, #0x0 strh r0, [r5, #0x18] pop {r3-r7, pc} thumb_func_start FUN_0200A208 FUN_0200A208: ; 0x0200A208 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 add r7, r1, #0x0 add r6, r2, #0x0 add r4, r3, #0x0 cmp r5, #0x0 beq _0200A25E ldr r1, [sp, #0x20] mov r0, #0x1 tst r0, r1 beq _0200A23A ldr r0, _0200A264 ; =0x04000050 add r1, r4, #0x0 blx FUN_020C74B8 str r4, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] ldr r0, _0200A268 ; =0x021C4694 add r1, r5, #0x0 add r2, r7, #0x0 add r3, r6, #0x0 bl FUN_0200A1A0 _0200A23A: ldr r1, [sp, #0x20] mov r0, #0x2 tst r0, r1 beq _0200A25E ldr r0, _0200A26C ; =0x04001050 add r1, r4, #0x0 add r2, r6, #0x0 blx FUN_020C74B8 str r4, [sp, #0x0] mov r0, #0x2 str r0, [sp, #0x4] ldr r0, _0200A270 ; =0x021C4674 add r1, r5, #0x0 add r2, r7, #0x0 add r3, r6, #0x0 bl FUN_0200A1A0 _0200A25E: add sp, #0x8 pop {r3-r7, pc} nop _0200A264: .word 0x04000050 _0200A268: .word 0x021C4694 _0200A26C: .word 0x04001050 _0200A270: .word 0x021C4674 thumb_func_start FUN_0200A274 FUN_0200A274: ; 0x0200A274 push {r4-r6, lr} add r5, r0, #0x0 add r4, r2, #0x0 mov r0, #0x1 add r6, r1, #0x0 tst r0, r4 beq _0200A28A ldr r0, _0200A2A4 ; =0x04000050 add r2, r5, #0x0 blx FUN_020C74B8 _0200A28A: mov r0, #0x2 tst r0, r4 beq _0200A29A ldr r0, _0200A2A8 ; =0x04001050 add r1, r6, #0x0 add r2, r5, #0x0 blx FUN_020C74B8 _0200A29A: add r0, r4, #0x0 bl FUN_0200A2D8 pop {r4-r6, pc} nop _0200A2A4: .word 0x04000050 _0200A2A8: .word 0x04001050 thumb_func_start FUN_0200A2AC FUN_0200A2AC: ; 0x0200A2AC push {r3, lr} ldr r0, _0200A2CC ; =0x021C4694 mov r1, #0x0 mov r2, #0x20 blx MI_CpuFill8 ldr r0, _0200A2D0 ; =0x021C4674 mov r1, #0x0 mov r2, #0x20 blx MI_CpuFill8 ldr r0, _0200A2D4 ; =0x021C4674 mov r1, #0x0 str r1, [r0, #0x3c] str r1, [r0, #0x1c] pop {r3, pc} .balign 4 _0200A2CC: .word 0x021C4694 _0200A2D0: .word 0x021C4674 _0200A2D4: .word 0x021C4674 thumb_func_start FUN_0200A2D8 FUN_0200A2D8: ; 0x0200A2D8 push {r4, lr} add r4, r0, #0x0 mov r0, #0x1 tst r0, r4 beq _0200A2F2 ldr r0, _0200A30C ; =0x021C4694 mov r1, #0x0 mov r2, #0x20 blx MI_CpuFill8 ldr r0, _0200A310 ; =0x021C4674 mov r1, #0x0 str r1, [r0, #0x3c] _0200A2F2: mov r0, #0x2 tst r0, r4 beq _0200A308 ldr r0, _0200A314 ; =0x021C4674 mov r1, #0x0 mov r2, #0x20 blx MI_CpuFill8 ldr r0, _0200A310 ; =0x021C4674 mov r1, #0x0 str r1, [r0, #0x1c] _0200A308: pop {r4, pc} nop _0200A30C: .word 0x021C4694 _0200A310: .word 0x021C4674 _0200A314: .word 0x021C4674 thumb_func_start FUN_0200A318 FUN_0200A318: ; 0x0200A318 push {r3, lr} ldr r0, _0200A338 ; =0x021C4674 ldr r0, [r0, #0x3c] cmp r0, #0x0 beq _0200A328 ldr r0, _0200A33C ; =0x021C4694 bl FUN_0200A104 _0200A328: ldr r0, _0200A338 ; =0x021C4674 ldr r0, [r0, #0x1c] cmp r0, #0x0 beq _0200A336 ldr r0, _0200A340 ; =0x021C4674 bl FUN_0200A104 _0200A336: pop {r3, pc} .balign 4 _0200A338: .word 0x021C4674 _0200A33C: .word 0x021C4694 _0200A340: .word 0x021C4674 thumb_func_start FUN_0200A344 FUN_0200A344: ; 0x0200A344 cmp r0, #0x3 bne _0200A35A ldr r0, _0200A380 ; =0x021C4674 ldr r1, [r0, #0x3c] cmp r1, #0x0 bne _0200A37A ldr r0, [r0, #0x1c] cmp r0, #0x0 bne _0200A37A mov r0, #0x1 bx lr _0200A35A: cmp r0, #0x1 bne _0200A36A ldr r0, _0200A380 ; =0x021C4674 ldr r0, [r0, #0x3c] cmp r0, #0x0 bne _0200A37A mov r0, #0x1 bx lr _0200A36A: cmp r0, #0x2 bne _0200A37A ldr r0, _0200A380 ; =0x021C4674 ldr r0, [r0, #0x1c] cmp r0, #0x0 bne _0200A37A mov r0, #0x1 bx lr _0200A37A: mov r0, #0x0 bx lr nop _0200A380: .word 0x021C4674 thumb_func_start FUN_0200A384 FUN_0200A384: ; 0x0200A384 ldr r3, _0200A388 ; =FUN_0200650C bx r3 .balign 4 _0200A388: .word FUN_0200650C thumb_func_start FUN_0200A38C FUN_0200A38C: ; 0x0200A38C ldr r3, _0200A390 ; =FUN_02016A18 bx r3 .balign 4 _0200A390: .word FUN_02016A18 thumb_func_start FUN_0200A394 FUN_0200A394: ; 0x0200A394 push {r3-r7, lr} sub sp, #0x8 add r3, r0, #0x0 ldrh r0, [r3, #0x0] add r5, r1, #0x0 add r4, r2, #0x0 cmp r5, r0 bhs _0200A404 lsl r0, r5, #0x3 add r0, r3, r0 ldr r2, [r0, #0x4] ldr r1, [r0, #0x8] ldr r6, _0200A40C ; =0x000002FD str r2, [sp, #0x0] str r1, [sp, #0x4] ldrh r0, [r3, #0x2] add r7, r5, #0x1 mul r6, r0 add r0, r7, #0x0 mul r0, r6 lsl r0, r0, #0x10 lsr r6, r0, #0x10 lsl r0, r6, #0x10 orr r0, r6 eor r2, r0 eor r0, r1 str r0, [sp, #0x4] str r2, [sp, #0x0] add r1, r3, r2 add r0, r4, #0x0 add r2, sp, #0x0 bl FUN_0200A4C0 ldr r2, [sp, #0x4] ldr r0, _0200A410 ; =0x00091BD3 add r1, r7, #0x0 mul r0, r1 lsl r0, r0, #0x10 lsr r5, r0, #0x10 sub r3, r2, #0x1 cmp r2, #0x0 beq _0200A408 ldr r0, _0200A414 ; =0x0000493D _0200A3EA: ldrh r1, [r4, #0x0] eor r1, r5 strh r1, [r4, #0x0] add r1, r5, r0 lsl r1, r1, #0x10 lsr r5, r1, #0x10 add r1, r3, #0x0 add r4, r4, #0x2 sub r3, r3, #0x1 cmp r1, #0x0 bne _0200A3EA add sp, #0x8 pop {r3-r7, pc} _0200A404: bl ErrorHandling _0200A408: add sp, #0x8 pop {r3-r7, pc} .balign 4 _0200A40C: .word 0x000002FD _0200A410: .word 0x00091BD3 _0200A414: .word 0x0000493D thumb_func_start FUN_0200A418 FUN_0200A418: ; 0x0200A418 push {r4-r6, lr} sub sp, #0x10 add r5, r1, #0x0 add r1, r3, #0x0 add r4, r2, #0x0 bl FUN_02006670 add r6, r0, #0x0 beq _0200A4AE add r1, sp, #0xc str r1, [sp, #0x0] add r1, r5, #0x0 mov r2, #0x0 mov r3, #0x4 bl FUN_02006814 add r0, sp, #0x4 lsl r2, r4, #0x3 str r0, [sp, #0x0] add r0, r6, #0x0 add r1, r5, #0x0 add r2, r2, #0x4 mov r3, #0x8 bl FUN_02006814 add r0, sp, #0x4 ldrh r2, [r0, #0xa] ldr r0, _0200A4B4 ; =0x000002FD add r1, r4, #0x1 mul r0, r2 mul r0, r1 lsl r0, r0, #0x10 lsr r1, r0, #0x10 lsl r0, r1, #0x10 orr r1, r0 ldr r0, [sp, #0x4] eor r0, r1 str r0, [sp, #0x4] ldr r0, [sp, #0x8] eor r0, r1 str r0, [sp, #0x8] ldr r0, [sp, #0x20] add r1, r5, #0x0 str r0, [sp, #0x0] ldr r3, [sp, #0x8] ldr r2, [sp, #0x4] add r0, r6, #0x0 lsl r3, r3, #0x1 bl FUN_02006814 ldr r2, _0200A4B8 ; =0x00091BD3 add r3, r4, #0x1 mul r2, r3 lsl r2, r2, #0x10 ldr r0, [sp, #0x8] lsr r3, r2, #0x10 sub r2, r0, #0x1 ldr r1, [sp, #0x20] cmp r0, #0x0 beq _0200A4A8 ldr r0, _0200A4BC ; =0x0000493D _0200A492: ldrh r4, [r1, #0x0] eor r4, r3 strh r4, [r1, #0x0] add r3, r3, r0 lsl r3, r3, #0x10 add r4, r2, #0x0 add r1, r1, #0x2 lsr r3, r3, #0x10 sub r2, r2, #0x1 cmp r4, #0x0 bne _0200A492 _0200A4A8: add r0, r6, #0x0 bl FUN_020066F4 _0200A4AE: add sp, #0x10 pop {r4-r6, pc} nop _0200A4B4: .word 0x000002FD _0200A4B8: .word 0x00091BD3 _0200A4BC: .word 0x0000493D thumb_func_start FUN_0200A4C0 FUN_0200A4C0: ; 0x0200A4C0 add r3, r0, #0x0 add r0, r1, #0x0 add r1, r3, #0x0 ldr r2, [r2, #0x4] ldr r3, _0200A4D0 ; =MIi_CpuCopy16 lsl r2, r2, #0x1 bx r3 nop _0200A4D0: .word MIi_CpuCopy16 thumb_func_start FUN_0200A4D4 FUN_0200A4D4: ; 0x0200A4D4 push {r3-r7, lr} sub sp, #0x10 add r5, r0, #0x0 ldrh r0, [r5, #0x0] add r4, r1, #0x0 str r2, [sp, #0x0] cmp r4, r0 bhs _0200A56A lsl r0, r4, #0x3 add r0, r5, r0 ldr r3, [r0, #0x4] ldr r2, [r0, #0x8] ldrh r1, [r5, #0x2] ldr r6, _0200A578 ; =0x000002FD add r0, r4, #0x1 mul r6, r1 add r1, r0, #0x0 mul r1, r6 lsl r0, r1, #0x10 lsr r1, r0, #0x10 lsl r0, r1, #0x10 orr r1, r0 add r0, r3, #0x0 add r6, r2, #0x0 str r3, [sp, #0x8] eor r0, r1 eor r6, r1 str r0, [sp, #0x8] lsl r0, r6, #0x1 str r0, [sp, #0x4] str r2, [sp, #0xc] ldr r1, [sp, #0x4] mov r0, #0x0 str r6, [sp, #0xc] bl FUN_020169D8 add r7, r0, #0x0 beq _0200A574 ldr r0, [sp, #0x8] ldr r2, [sp, #0x4] add r0, r5, r0 add r1, r7, #0x0 blx MIi_CpuCopy16 ldr r1, _0200A57C ; =0x00091BD3 add r2, r4, #0x1 mul r1, r2 lsl r1, r1, #0x10 lsr r2, r1, #0x10 add r0, r7, #0x0 sub r1, r6, #0x1 cmp r6, #0x0 beq _0200A556 ldr r3, _0200A580 ; =0x0000493D _0200A540: ldrh r4, [r0, #0x0] eor r4, r2 strh r4, [r0, #0x0] add r2, r2, r3 lsl r2, r2, #0x10 add r4, r1, #0x0 add r0, r0, #0x2 lsr r2, r2, #0x10 sub r1, r1, #0x1 cmp r4, #0x0 bne _0200A540 _0200A556: ldr r0, [sp, #0x0] add r1, r7, #0x0 add r2, r6, #0x0 bl FUN_02021E8C add r0, r7, #0x0 bl FUN_02016A18 add sp, #0x10 pop {r3-r7, pc} _0200A56A: bl ErrorHandling ldr r0, [sp, #0x0] bl FUN_02021A4C _0200A574: add sp, #0x10 pop {r3-r7, pc} .balign 4 _0200A578: .word 0x000002FD _0200A57C: .word 0x00091BD3 _0200A580: .word 0x0000493D thumb_func_start FUN_0200A584 FUN_0200A584: ; 0x0200A584 push {r3-r7, lr} sub sp, #0x10 add r5, r0, #0x0 ldrh r0, [r5, #0x0] add r4, r1, #0x0 str r2, [sp, #0x0] cmp r4, r0 bhs _0200A62C lsl r0, r4, #0x3 add r0, r5, r0 ldr r3, [r0, #0x4] ldr r2, [r0, #0x8] ldrh r1, [r5, #0x2] ldr r6, _0200A63C ; =0x000002FD add r0, r4, #0x1 mul r6, r1 add r1, r0, #0x0 mul r1, r6 lsl r0, r1, #0x10 lsr r1, r0, #0x10 lsl r0, r1, #0x10 orr r1, r0 add r0, r3, #0x0 add r6, r2, #0x0 str r3, [sp, #0x8] eor r0, r1 eor r6, r1 str r0, [sp, #0x8] lsl r0, r6, #0x1 str r0, [sp, #0x4] str r2, [sp, #0xc] ldr r0, [sp, #0x0] ldr r1, [sp, #0x4] str r6, [sp, #0xc] bl FUN_020169D8 add r7, r0, #0x0 beq _0200A626 ldr r0, [sp, #0x8] ldr r2, [sp, #0x4] add r0, r5, r0 add r1, r7, #0x0 blx MIi_CpuCopy16 ldr r1, _0200A640 ; =0x00091BD3 add r2, r4, #0x1 mul r1, r2 lsl r1, r1, #0x10 lsr r2, r1, #0x10 add r0, r7, #0x0 sub r1, r6, #0x1 cmp r6, #0x0 beq _0200A606 ldr r3, _0200A644 ; =0x0000493D _0200A5F0: ldrh r4, [r0, #0x0] eor r4, r2 strh r4, [r0, #0x0] add r2, r2, r3 lsl r2, r2, #0x10 add r4, r1, #0x0 add r0, r0, #0x2 lsr r2, r2, #0x10 sub r1, r1, #0x1 cmp r4, #0x0 bne _0200A5F0 _0200A606: ldr r1, [sp, #0x0] add r0, r6, #0x0 bl FUN_020219F4 add r4, r0, #0x0 beq _0200A61A add r1, r7, #0x0 add r2, r6, #0x0 bl FUN_02021E8C _0200A61A: add r0, r7, #0x0 bl FUN_02016A18 add sp, #0x10 add r0, r4, #0x0 pop {r3-r7, pc} _0200A626: add sp, #0x10 mov r0, #0x0 pop {r3-r7, pc} _0200A62C: bl ErrorHandling ldr r1, [sp, #0x0] mov r0, #0x4 bl FUN_020219F4 add sp, #0x10 pop {r3-r7, pc} .balign 4 _0200A63C: .word 0x000002FD _0200A640: .word 0x00091BD3 _0200A644: .word 0x0000493D thumb_func_start FUN_0200A648 FUN_0200A648: ; 0x0200A648 push {r3-r7, lr} add r7, r3, #0x0 add r5, r1, #0x0 add r1, r7, #0x0 add r4, r2, #0x0 bl FUN_02006670 add r6, r0, #0x0 beq _0200A66E ldr r1, [sp, #0x18] add r2, r4, #0x0 str r1, [sp, #0x0] add r1, r5, #0x0 add r3, r7, #0x0 bl FUN_0200A670 add r0, r6, #0x0 bl FUN_020066F4 _0200A66E: pop {r3-r7, pc} thumb_func_start FUN_0200A670 FUN_0200A670: ; 0x0200A670 push {r4-r7, lr} sub sp, #0x14 add r5, r2, #0x0 add r2, sp, #0x10 add r4, r3, #0x0 str r2, [sp, #0x0] mov r2, #0x0 mov r3, #0x4 add r7, r0, #0x0 str r1, [sp, #0x4] bl FUN_02006814 add r0, sp, #0x8 ldrh r0, [r0, #0x8] cmp r5, r0 bhs _0200A71E add r0, sp, #0x8 lsl r2, r5, #0x3 str r0, [sp, #0x0] ldr r1, [sp, #0x4] add r0, r7, #0x0 add r2, r2, #0x4 mov r3, #0x8 bl FUN_02006814 add r0, sp, #0x8 ldrh r2, [r0, #0xa] ldr r0, _0200A72C ; =0x000002FD add r1, r5, #0x1 mul r0, r2 mul r0, r1 lsl r0, r0, #0x10 lsr r1, r0, #0x10 lsl r0, r1, #0x10 orr r1, r0 ldr r0, [sp, #0x8] eor r0, r1 str r0, [sp, #0x8] ldr r0, [sp, #0xc] eor r0, r1 lsl r6, r0, #0x1 str r0, [sp, #0xc] add r0, r4, #0x0 add r1, r6, #0x0 bl FUN_020169D8 add r4, r0, #0x0 beq _0200A728 str r4, [sp, #0x0] ldr r1, [sp, #0x4] ldr r2, [sp, #0x8] add r0, r7, #0x0 add r3, r6, #0x0 bl FUN_02006814 ldr r2, _0200A730 ; =0x00091BD3 add r3, r5, #0x1 mul r2, r3 lsl r2, r2, #0x10 ldr r0, [sp, #0xc] lsr r3, r2, #0x10 add r1, r4, #0x0 sub r2, r0, #0x1 cmp r0, #0x0 beq _0200A70A ldr r0, _0200A734 ; =0x0000493D _0200A6F4: ldrh r5, [r1, #0x0] eor r5, r3 strh r5, [r1, #0x0] add r3, r3, r0 lsl r3, r3, #0x10 add r5, r2, #0x0 add r1, r1, #0x2 lsr r3, r3, #0x10 sub r2, r2, #0x1 cmp r5, #0x0 bne _0200A6F4 _0200A70A: ldr r0, [sp, #0x28] ldr r2, [sp, #0xc] add r1, r4, #0x0 bl FUN_02021E8C add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x14 pop {r4-r7, pc} _0200A71E: bl ErrorHandling ldr r0, [sp, #0x28] bl FUN_02021A4C _0200A728: add sp, #0x14 pop {r4-r7, pc} .balign 4 _0200A72C: .word 0x000002FD _0200A730: .word 0x00091BD3 _0200A734: .word 0x0000493D thumb_func_start FUN_0200A738 FUN_0200A738: ; 0x0200A738 push {r3-r7, lr} add r6, r3, #0x0 add r5, r1, #0x0 add r1, r6, #0x0 add r4, r2, #0x0 bl FUN_02006670 add r7, r0, #0x0 beq _0200A75E add r1, r5, #0x0 add r2, r4, #0x0 add r3, r6, #0x0 bl FUN_0200A76C add r4, r0, #0x0 add r0, r7, #0x0 bl FUN_020066F4 b _0200A768 _0200A75E: mov r0, #0x4 add r1, r6, #0x0 bl FUN_020219F4 add r4, r0, #0x0 _0200A768: add r0, r4, #0x0 pop {r3-r7, pc} thumb_func_start FUN_0200A76C FUN_0200A76C: ; 0x0200A76C push {r3-r7, lr} sub sp, #0x18 add r4, r2, #0x0 add r2, sp, #0x14 add r5, r3, #0x0 str r2, [sp, #0x0] mov r2, #0x0 mov r3, #0x4 add r7, r0, #0x0 str r1, [sp, #0x4] bl FUN_02006814 add r0, sp, #0xc ldrh r0, [r0, #0x8] cmp r4, r0 bhs _0200A82A add r0, sp, #0xc lsl r2, r4, #0x3 str r0, [sp, #0x0] ldr r1, [sp, #0x4] add r0, r7, #0x0 add r2, r2, #0x4 mov r3, #0x8 bl FUN_02006814 add r0, sp, #0xc ldrh r2, [r0, #0xa] ldr r0, _0200A83C ; =0x000002FD add r1, r4, #0x1 mul r0, r2 mul r0, r1 lsl r0, r0, #0x10 lsr r1, r0, #0x10 lsl r0, r1, #0x10 orr r1, r0 ldr r0, [sp, #0xc] eor r0, r1 str r0, [sp, #0xc] ldr r0, [sp, #0x10] eor r0, r1 add r1, r5, #0x0 str r0, [sp, #0x10] bl FUN_020219F4 str r0, [sp, #0x8] cmp r0, #0x0 beq _0200A824 ldr r0, [sp, #0x10] lsl r6, r0, #0x1 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_020169D8 add r5, r0, #0x0 beq _0200A824 str r5, [sp, #0x0] ldr r1, [sp, #0x4] ldr r2, [sp, #0xc] add r0, r7, #0x0 add r3, r6, #0x0 bl FUN_02006814 ldr r2, _0200A840 ; =0x00091BD3 add r3, r4, #0x1 mul r2, r3 lsl r2, r2, #0x10 ldr r0, [sp, #0x10] lsr r3, r2, #0x10 add r1, r5, #0x0 sub r2, r0, #0x1 cmp r0, #0x0 beq _0200A814 ldr r0, _0200A844 ; =0x0000493D _0200A7FE: ldrh r4, [r1, #0x0] eor r4, r3 strh r4, [r1, #0x0] add r3, r3, r0 lsl r3, r3, #0x10 add r4, r2, #0x0 add r1, r1, #0x2 lsr r3, r3, #0x10 sub r2, r2, #0x1 cmp r4, #0x0 bne _0200A7FE _0200A814: ldr r0, [sp, #0x8] ldr r2, [sp, #0x10] add r1, r5, #0x0 bl FUN_02021E8C add r0, r5, #0x0 bl FUN_02016A18 _0200A824: ldr r0, [sp, #0x8] add sp, #0x18 pop {r3-r7, pc} _0200A82A: bl ErrorHandling mov r0, #0x4 add r1, r5, #0x0 bl FUN_020219F4 add sp, #0x18 pop {r3-r7, pc} nop _0200A83C: .word 0x000002FD _0200A840: .word 0x00091BD3 _0200A844: .word 0x0000493D thumb_func_start FUN_0200A848 FUN_0200A848: ; 0x0200A848 ldrh r0, [r0, #0x0] bx lr thumb_func_start FUN_0200A84C FUN_0200A84C: ; 0x0200A84C push {r3, lr} sub sp, #0x8 add r3, r0, #0x0 mov r0, #0x4 add r2, r1, #0x0 str r0, [sp, #0x0] add r1, r3, #0x0 add r0, sp, #0x4 mov r3, #0x0 bl FUN_02006548 add r0, sp, #0x4 ldrh r0, [r0, #0x0] add sp, #0x8 pop {r3, pc} .balign 4 thumb_func_start FUN_0200A86C FUN_0200A86C: ; 0x0200A86C push {r3-r7, lr} add r5, r0, #0x0 add r6, r1, #0x0 add r0, r3, #0x0 mov r1, #0xc add r7, r2, #0x0 str r3, [sp, #0x0] bl FUN_020169D8 add r4, r0, #0x0 beq _0200A8B4 cmp r5, #0x0 bne _0200A8A0 ldr r2, [sp, #0x0] add r0, r6, #0x0 add r1, r7, #0x0 bl FUN_0200A384 str r0, [r4, #0x8] cmp r0, #0x0 bne _0200A8AA add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x0 pop {r3-r7, pc} _0200A8A0: ldr r1, [sp, #0x0] add r0, r6, #0x0 bl FUN_02006670 str r0, [r4, #0x8] _0200A8AA: strh r5, [r4, #0x0] strh r6, [r4, #0x4] ldr r0, [sp, #0x0] strh r7, [r4, #0x6] strh r0, [r4, #0x2] _0200A8B4: add r0, r4, #0x0 pop {r3-r7, pc} thumb_func_start FUN_0200A8B8 FUN_0200A8B8: ; 0x0200A8B8 push {r4, lr} add r4, r0, #0x0 beq _0200A8DE ldrh r0, [r4, #0x0] cmp r0, #0x0 beq _0200A8CA cmp r0, #0x1 beq _0200A8D2 b _0200A8D8 _0200A8CA: ldr r0, [r4, #0x8] bl FUN_0200A38C b _0200A8D8 _0200A8D2: ldr r0, [r4, #0x8] bl FUN_020066F4 _0200A8D8: add r0, r4, #0x0 bl FUN_02016A18 _0200A8DE: pop {r4, pc} thumb_func_start FUN_0200A8E0 FUN_0200A8E0: ; 0x0200A8E0 push {r3-r4, lr} sub sp, #0x4 add r4, r0, #0x0 ldrh r0, [r4, #0x0] add r3, r1, #0x0 cmp r0, #0x0 beq _0200A8F6 cmp r0, #0x1 beq _0200A900 add sp, #0x4 pop {r3-r4, pc} _0200A8F6: ldr r0, [r4, #0x8] bl FUN_0200A4D4 add sp, #0x4 pop {r3-r4, pc} _0200A900: str r2, [sp, #0x0] add r2, r3, #0x0 ldrh r1, [r4, #0x6] ldrh r3, [r4, #0x2] ldr r0, [r4, #0x8] bl FUN_0200A670 add sp, #0x4 pop {r3-r4, pc} .balign 4 thumb_func_start FUN_0200A914 FUN_0200A914: ; 0x0200A914 push {r3, lr} add r3, r0, #0x0 ldrh r0, [r3, #0x0] add r2, r1, #0x0 cmp r0, #0x0 beq _0200A926 cmp r0, #0x1 beq _0200A930 b _0200A93C _0200A926: ldrh r2, [r3, #0x2] ldr r0, [r3, #0x8] bl FUN_0200A584 pop {r3, pc} _0200A930: ldr r0, [r3, #0x8] ldrh r1, [r3, #0x6] ldrh r3, [r3, #0x2] bl FUN_0200A76C pop {r3, pc} _0200A93C: mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_0200A940 FUN_0200A940: ; 0x0200A940 push {r3, lr} add r1, r0, #0x0 ldrh r0, [r1, #0x0] cmp r0, #0x0 beq _0200A950 cmp r0, #0x1 beq _0200A958 b _0200A962 _0200A950: ldr r0, [r1, #0x8] bl FUN_0200A848 pop {r3, pc} _0200A958: ldrh r0, [r1, #0x4] ldrh r1, [r1, #0x6] bl FUN_0200A84C pop {r3, pc} _0200A962: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0200A968 FUN_0200A968: ; 0x0200A968 push {r3-r4, lr} sub sp, #0x4 add r4, r0, #0x0 ldrh r0, [r4, #0x0] add r3, r1, #0x0 cmp r0, #0x0 beq _0200A97E cmp r0, #0x1 beq _0200A988 add sp, #0x4 pop {r3-r4, pc} _0200A97E: ldr r0, [r4, #0x8] bl FUN_0200A394 add sp, #0x4 pop {r3-r4, pc} _0200A988: str r2, [sp, #0x0] add r2, r3, #0x0 ldrh r0, [r4, #0x4] ldrh r1, [r4, #0x6] ldrh r3, [r4, #0x2] bl FUN_0200A418 add sp, #0x4 pop {r3-r4, pc} .balign 4 thumb_func_start FUN_0200A99C FUN_0200A99C: ; 0x0200A99C push {r4-r6, lr} add r4, r2, #0x0 add r5, r0, #0x0 add r3, r1, #0x0 ldr r2, _0200A9C0 ; =0x0000016A mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r6, r0, #0x0 add r1, r5, #0x0 add r2, r4, #0x0 bl FUN_0200A968 add r0, r6, #0x0 bl FUN_0200A8B8 pop {r4-r6, pc} .balign 4 _0200A9C0: .word 0x0000016A thumb_func_start FUN_0200A9C4 FUN_0200A9C4: ; 0x0200A9C4 push {r3-r7, lr} sub sp, #0x8 add r7, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x4] add r5, r1, #0x0 mov r0, #0x1 ldr r1, [sp, #0x4] lsl r0, r0, #0xa add r6, r2, #0x0 str r3, [sp, #0x0] bl FUN_020219F4 add r4, r0, #0x0 beq _0200AA0E add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_0200A914 add r5, r0, #0x0 beq _0200AA08 add r0, r7, #0x0 add r1, r4, #0x0 add r2, r5, #0x0 bl FUN_0200B7B8 ldr r1, [sp, #0x0] add r0, r4, #0x0 bl FUN_02021ACC str r0, [sp, #0x4] add r0, r5, #0x0 bl FUN_02021A20 _0200AA08: add r0, r4, #0x0 bl FUN_02021A20 _0200AA0E: ldr r0, [sp, #0x4] add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_0200AA14 FUN_0200AA14: ; 0x0200AA14 push {r4-r6, lr} add r5, r1, #0x0 mov r2, #0x93 add r6, r0, #0x0 mov r0, #0x1 mov r1, #0x1a lsl r2, r2, #0x2 add r3, r5, #0x0 bl FUN_0200A86C add r4, r0, #0x0 beq _0200AA4C mov r0, #0x10 add r1, r5, #0x0 bl FUN_020219F4 add r5, r0, #0x0 beq _0200AA42 add r0, r4, #0x0 add r1, r6, #0x0 add r2, r5, #0x0 bl FUN_0200A8E0 _0200AA42: add r0, r4, #0x0 bl FUN_0200A8B8 add r0, r5, #0x0 pop {r4-r6, pc} _0200AA4C: mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_0200AA50 FUN_0200AA50: ; 0x0200AA50 push {r3-r5, lr} ldr r2, _0200AA7C ; =0x0000016A add r4, r0, #0x0 add r3, r1, #0x0 mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r5, r0, #0x0 beq _0200AA76 add r1, r4, #0x0 bl FUN_0200A914 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0200A8B8 add r0, r4, #0x0 pop {r3-r5, pc} _0200AA76: mov r0, #0x0 pop {r3-r5, pc} nop _0200AA7C: .word 0x0000016A thumb_func_start FUN_0200AA80 FUN_0200AA80: ; 0x0200AA80 ldr r3, _0200AA8C ; =FUN_0200AA90 add r2, r0, #0x0 mov r0, #0x8 mov r1, #0x20 bx r3 nop _0200AA8C: .word FUN_0200AA90 thumb_func_start FUN_0200AA90 FUN_0200AA90: ; 0x0200AA90 push {r3-r7, lr} sub sp, #0x8 add r7, r0, #0x0 str r1, [sp, #0x0] str r2, [sp, #0x4] bne _0200AAA0 bl ErrorHandling _0200AAA0: ldr r0, [sp, #0x0] cmp r0, #0x0 bne _0200AAAA bl ErrorHandling _0200AAAA: ldr r0, [sp, #0x4] mov r1, #0x10 bl FUN_020169D8 add r4, r0, #0x0 beq _0200AB10 ldr r0, [sp, #0x4] str r7, [r4, #0x0] str r0, [r4, #0x4] ldr r0, [sp, #0x0] ldr r1, [sp, #0x4] bl FUN_020219F4 str r0, [r4, #0xc] cmp r0, #0x0 beq _0200AB10 ldr r0, [sp, #0x4] lsl r1, r7, #0x3 bl FUN_020169D8 str r0, [r4, #0x8] cmp r0, #0x0 beq _0200AB10 mov r6, #0x0 cmp r7, #0x0 bls _0200AB06 add r5, r6, #0x0 _0200AAE0: add r0, r0, r5 bl FUN_0200AB6C ldr r0, [sp, #0x0] ldr r1, [sp, #0x4] bl FUN_020219F4 ldr r1, [r4, #0x8] add r1, r1, r5 str r0, [r1, #0x4] ldr r0, [r4, #0x8] add r1, r0, r5 ldr r1, [r1, #0x4] cmp r1, #0x0 beq _0200AB06 add r6, r6, #0x1 add r5, #0x8 cmp r6, r7 blo _0200AAE0 _0200AB06: cmp r6, r7 bne _0200AB10 add sp, #0x8 add r0, r4, #0x0 pop {r3-r7, pc} _0200AB10: mov r0, #0x0 add sp, #0x8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200AB18 FUN_0200AB18: ; 0x0200AB18 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] cmp r0, #0x0 bne _0200AB26 bl ErrorHandling _0200AB26: ldr r0, [r5, #0x8] cmp r0, #0x0 beq _0200AB54 ldr r0, [r5, #0x0] mov r6, #0x0 cmp r0, #0x0 bls _0200AB4E add r4, r6, #0x0 _0200AB36: ldr r0, [r5, #0x8] add r0, r0, r4 ldr r0, [r0, #0x4] cmp r0, #0x0 beq _0200AB4E bl FUN_02021A20 ldr r0, [r5, #0x0] add r6, r6, #0x1 add r4, #0x8 cmp r6, r0 blo _0200AB36 _0200AB4E: ldr r0, [r5, #0x8] bl FUN_02016A18 _0200AB54: ldr r0, [r5, #0xc] cmp r0, #0x0 beq _0200AB5E bl FUN_02021A20 _0200AB5E: mov r0, #0x0 str r0, [r5, #0x0] add r0, r5, #0x0 bl FUN_02016A18 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0200AB6C FUN_0200AB6C: ; 0x0200AB6C bx lr .balign 4 thumb_func_start FUN_0200AB70 FUN_0200AB70: ; 0x0200AB70 push {r3-r7, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] add r6, r1, #0x0 add r7, r2, #0x0 add r4, r3, #0x0 cmp r6, r0 blo _0200AB84 bl ErrorHandling _0200AB84: ldr r0, [r5, #0x0] cmp r6, r0 bhs _0200ABB2 cmp r4, #0x0 beq _0200ABA4 ldrb r0, [r4, #0x0] ldr r3, [r5, #0x8] lsl r2, r6, #0x3 strb r0, [r3, r2] ldrb r0, [r4, #0x1] add r1, r3, r2 strb r0, [r1, #0x1] ldrb r0, [r4, #0x2] strb r0, [r1, #0x2] ldrb r0, [r4, #0x3] strb r0, [r1, #0x3] _0200ABA4: ldr r1, [r5, #0x8] lsl r0, r6, #0x3 add r0, r1, r0 ldr r0, [r0, #0x4] add r1, r7, #0x0 bl FUN_02021A74 _0200ABB2: pop {r3-r7, pc} thumb_func_start FUN_0200ABB4 FUN_0200ABB4: ; 0x0200ABB4 push {r3, lr} mov r3, #0x0 bl FUN_0200AB70 pop {r3, pc} .balign 4 thumb_func_start FUN_0200ABC0 FUN_0200ABC0: ; 0x0200ABC0 push {r3-r5, lr} add r5, r0, #0x0 add r0, r2, #0x0 add r4, r1, #0x0 bl FUN_0202398C add r1, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_02021E28 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0200ABE4 FUN_0200ABE4: ; 0x0200ABE4 push {r3-r5, lr} add r5, r0, #0x0 add r0, r2, #0x0 add r4, r1, #0x0 bl FUN_02024EC0 bl FUN_02024EE8 add r1, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_02021E28 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0200AC0C FUN_0200AC0C: ; 0x0200AC0C push {r3-r7, lr} add r5, r0, #0x0 add r0, r2, #0x0 add r6, r1, #0x0 bl FUN_020238F4 add r7, r0, #0x0 ldr r2, _0200AC5C ; =0x000001F1 ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r4, r0, #0x0 add r0, r7, #0x0 bl FUN_020239CC cmp r0, #0x0 bne _0200AC3E ldr r2, [r5, #0xc] add r0, r4, #0x0 mov r1, #0x1 bl FUN_0200A8E0 b _0200AC48 _0200AC3E: ldr r2, [r5, #0xc] add r0, r4, #0x0 mov r1, #0x0 bl FUN_0200A8E0 _0200AC48: ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r6, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r4, #0x0 bl FUN_0200A8B8 pop {r3-r7, pc} .balign 4 _0200AC5C: .word 0x000001F1 thumb_func_start FUN_0200AC60 FUN_0200AC60: ; 0x0200AC60 push {r3-r7, lr} add r5, r0, #0x0 add r7, r2, #0x0 add r6, r1, #0x0 ldr r2, _0200ACA0 ; =0x0000016A ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r4, r0, #0x0 add r0, r7, #0x0 mov r1, #0x5 mov r2, #0x0 bl FUN_020672BC add r1, r0, #0x0 ldr r2, [r5, #0xc] add r0, r4, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r6, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r4, #0x0 bl FUN_0200A8B8 pop {r3-r7, pc} nop _0200ACA0: .word 0x0000016A thumb_func_start FUN_0200ACA4 FUN_0200ACA4: ; 0x0200ACA4 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r0, r2, #0x0 mov r1, #0x5 mov r2, #0x0 bl FUN_020672BC add r2, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0200ACC0 pop {r3-r5, pc} thumb_func_start FUN_0200ACC0 FUN_0200ACC0: ; 0x0200ACC0 push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 add r4, r1, #0x0 ldr r2, _0200ACF4 ; =0x0000016B ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C ldr r2, [r5, #0xc] add r1, r6, #0x0 add r7, r0, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 pop {r3-r7, pc} nop _0200ACF4: .word 0x0000016B thumb_func_start FUN_0200ACF8 FUN_0200ACF8: ; 0x0200ACF8 push {r3-r5, lr} add r5, r0, #0x0 add r0, r2, #0x0 add r4, r1, #0x0 ldr r2, [r5, #0xc] mov r1, #0x76 bl FUN_020672BC ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0200AD18 FUN_0200AD18: ; 0x0200AD18 push {r3-r5, lr} add r5, r0, #0x0 add r0, r2, #0x0 add r4, r1, #0x0 ldr r2, [r5, #0xc] mov r1, #0x90 bl FUN_020672BC ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0200AD38 FUN_0200AD38: ; 0x0200AD38 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [sp, #0x14] add r4, r1, #0x0 str r0, [sp, #0x0] add r1, r2, #0x0 add r2, r3, #0x0 ldr r0, [r5, #0xc] ldr r3, [sp, #0x10] bl FUN_02021B04 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 pop {r3-r5, pc} thumb_func_start FUN_0200AD5C FUN_0200AD5C: ; 0x0200AD5C push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 mov r2, #0x93 add r4, r1, #0x0 ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a lsl r2, r2, #0x2 bl FUN_0200A86C add r7, r0, #0x0 beq _0200AD90 ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200AD90: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200AD94 FUN_0200AD94: ; 0x0200AD94 push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 mov r2, #0x79 add r4, r1, #0x0 ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a lsl r2, r2, #0x2 bl FUN_0200A86C add r7, r0, #0x0 beq _0200ADC8 ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200ADC8: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200ADCC FUN_0200ADCC: ; 0x0200ADCC push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 mov r2, #0x8a add r4, r1, #0x0 ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a lsl r2, r2, #0x2 bl FUN_0200A86C add r7, r0, #0x0 beq _0200AE00 ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200AE00: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200AE04 FUN_0200AE04: ; 0x0200AE04 push {r3-r7, lr} add r5, r0, #0x0 ldr r3, [r5, #0x4] add r4, r1, #0x0 add r6, r2, #0x0 mov r0, #0x1 mov r1, #0x1a mov r2, #0xbe bl FUN_0200A86C ldr r2, [r5, #0xc] add r1, r6, #0x0 add r7, r0, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200AE38 FUN_0200AE38: ; 0x0200AE38 push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 mov r2, #0x56 add r4, r1, #0x0 ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a lsl r2, r2, #0x2 bl FUN_0200A86C add r7, r0, #0x0 beq _0200AE6C ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200AE6C: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200AE70 FUN_0200AE70: ; 0x0200AE70 push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 add r4, r1, #0x0 ldr r2, _0200AEA4 ; =0x0000015A ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r7, r0, #0x0 beq _0200AEA2 ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200AEA2: pop {r3-r7, pc} .balign 4 _0200AEA4: .word 0x0000015A thumb_func_start FUN_0200AEA8 FUN_0200AEA8: ; 0x0200AEA8 push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 add r4, r1, #0x0 ldr r2, _0200AEDC ; =0x0000015B ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r7, r0, #0x0 beq _0200AEDA ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200AEDA: pop {r3-r7, pc} .balign 4 _0200AEDC: .word 0x0000015B thumb_func_start FUN_0200AEE0 FUN_0200AEE0: ; 0x0200AEE0 push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 add r4, r1, #0x0 ldr r2, _0200AF14 ; =0x0000015D ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r7, r0, #0x0 beq _0200AF12 ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200AF12: pop {r3-r7, pc} .balign 4 _0200AF14: .word 0x0000015D thumb_func_start FUN_0200AF18 FUN_0200AF18: ; 0x0200AF18 push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 add r4, r1, #0x0 ldr r2, _0200AF4C ; =0x00000235 ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r7, r0, #0x0 beq _0200AF4A ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200AF4A: pop {r3-r7, pc} .balign 4 _0200AF4C: .word 0x00000235 thumb_func_start FUN_0200AF50 FUN_0200AF50: ; 0x0200AF50 push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 add r4, r1, #0x0 ldr r2, _0200AF84 ; =0x000001EF ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r7, r0, #0x0 beq _0200AF82 ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200AF82: pop {r3-r7, pc} .balign 4 _0200AF84: .word 0x000001EF thumb_func_start FUN_0200AF88 FUN_0200AF88: ; 0x0200AF88 push {r3-r7, lr} add r5, r0, #0x0 ldr r3, [r5, #0x4] add r4, r1, #0x0 add r6, r2, #0x0 mov r0, #0x1 mov r1, #0x1a mov r2, #0xcd bl FUN_0200A86C add r7, r0, #0x0 beq _0200AFBA ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200AFBA: pop {r3-r7, pc} thumb_func_start FUN_0200AFBC FUN_0200AFBC: ; 0x0200AFBC push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 mov r2, #0x89 add r4, r1, #0x0 ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a lsl r2, r2, #0x2 bl FUN_0200A86C add r7, r0, #0x0 beq _0200AFF0 ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200AFF0: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200AFF4 FUN_0200AFF4: ; 0x0200AFF4 push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 add r4, r1, #0x0 ldr r2, _0200B028 ; =0x0000017E ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r7, r0, #0x0 beq _0200B026 ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B026: pop {r3-r7, pc} .balign 4 _0200B028: .word 0x0000017E thumb_func_start FUN_0200B02C FUN_0200B02C: ; 0x0200B02C push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 add r4, r1, #0x0 ldr r2, _0200B060 ; =0x00000196 ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r7, r0, #0x0 beq _0200B05E ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B05E: pop {r3-r7, pc} .balign 4 _0200B060: .word 0x00000196 thumb_func_start FUN_0200B064 FUN_0200B064: ; 0x0200B064 push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 mov r2, #0x23 add r4, r1, #0x0 ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a lsl r2, r2, #0x4 bl FUN_0200A86C add r7, r0, #0x0 beq _0200B098 ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B098: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200B09C FUN_0200B09C: ; 0x0200B09C push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 add r4, r1, #0x0 ldr r2, _0200B0D0 ; =0x00000231 ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r7, r0, #0x0 beq _0200B0CE ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B0CE: pop {r3-r7, pc} .balign 4 _0200B0D0: .word 0x00000231 thumb_func_start FUN_0200B0D4 FUN_0200B0D4: ; 0x0200B0D4 push {r3-r7, lr} add r5, r0, #0x0 add r4, r2, #0x0 mov r2, #0x23 add r6, r1, #0x0 ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a lsl r2, r2, #0x4 bl FUN_0200A86C add r7, r0, #0x0 beq _0200B108 ldrb r1, [r4, #0x1] ldr r2, [r5, #0xc] bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r6, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B108: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200B10C FUN_0200B10C: ; 0x0200B10C push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 add r4, r1, #0x0 ldr r2, _0200B140 ; =0x0000022F ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r7, r0, #0x0 beq _0200B13E ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B13E: pop {r3-r7, pc} .balign 4 _0200B140: .word 0x0000022F thumb_func_start FUN_0200B144 FUN_0200B144: ; 0x0200B144 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] add r2, #0x14 add r4, r1, #0x0 add r1, r2, #0x0 bl FUN_02021E28 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0200B164 FUN_0200B164: ; 0x0200B164 push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 add r4, r1, #0x0 ldr r2, _0200B198 ; =0x00000239 ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r7, r0, #0x0 beq _0200B196 ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B196: pop {r3-r7, pc} .balign 4 _0200B198: .word 0x00000239 thumb_func_start FUN_0200B19C FUN_0200B19C: ; 0x0200B19C push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 add r4, r1, #0x0 ldr r2, _0200B1D0 ; =0x0000023A ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r7, r0, #0x0 beq _0200B1CE ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B1CE: pop {r3-r7, pc} .balign 4 _0200B1D0: .word 0x0000023A thumb_func_start FUN_0200B1D4 FUN_0200B1D4: ; 0x0200B1D4 push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 add r4, r1, #0x0 ldr r2, _0200B208 ; =0x0000023B ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r7, r0, #0x0 beq _0200B206 ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B206: pop {r3-r7, pc} .balign 4 _0200B208: .word 0x0000023B thumb_func_start FUN_0200B20C FUN_0200B20C: ; 0x0200B20C push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 mov r2, #0x8f add r4, r1, #0x0 ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a lsl r2, r2, #0x2 bl FUN_0200A86C add r7, r0, #0x0 beq _0200B240 ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B240: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200B244 FUN_0200B244: ; 0x0200B244 push {r3-r7, lr} add r5, r0, #0x0 ldr r3, [r5, #0x4] add r4, r1, #0x0 add r6, r2, #0x0 mov r0, #0x1 mov r1, #0x1a mov r2, #0xc2 bl FUN_0200A86C add r7, r0, #0x0 beq _0200B276 ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B276: pop {r3-r7, pc} thumb_func_start FUN_0200B278 FUN_0200B278: ; 0x0200B278 push {r3-r7, lr} add r5, r0, #0x0 ldr r3, [r5, #0x4] add r4, r1, #0x0 add r6, r2, #0x0 mov r0, #0x1 mov r1, #0x1a mov r2, #0xbf bl FUN_0200A86C add r7, r0, #0x0 beq _0200B2AA ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B2AA: pop {r3-r7, pc} thumb_func_start FUN_0200B2AC FUN_0200B2AC: ; 0x0200B2AC push {r3-r7, lr} add r5, r0, #0x0 ldr r3, [r5, #0x4] add r4, r1, #0x0 add r6, r2, #0x0 mov r0, #0x1 mov r1, #0x1a mov r2, #0xbf bl FUN_0200A86C add r7, r0, #0x0 beq _0200B2DE ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B2DE: pop {r3-r7, pc} thumb_func_start FUN_0200B2E0 FUN_0200B2E0: ; 0x0200B2E0 push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 add r4, r1, #0x0 ldr r2, _0200B314 ; =0x0000023E ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r7, r0, #0x0 beq _0200B312 ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B312: pop {r3-r7, pc} .balign 4 _0200B314: .word 0x0000023E thumb_func_start FUN_0200B318 FUN_0200B318: ; 0x0200B318 push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 add r4, r1, #0x0 ldr r2, _0200B34C ; =0x0000023D ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r7, r0, #0x0 beq _0200B34A ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B34A: pop {r3-r7, pc} .balign 4 _0200B34C: .word 0x0000023D thumb_func_start FUN_0200B350 FUN_0200B350: ; 0x0200B350 push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 add r4, r1, #0x0 ldr r2, _0200B384 ; =0x00000237 ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r7, r0, #0x0 beq _0200B382 ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B382: pop {r3-r7, pc} .balign 4 _0200B384: .word 0x00000237 thumb_func_start FUN_0200B388 FUN_0200B388: ; 0x0200B388 push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 mov r2, #0x8e add r4, r1, #0x0 ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a lsl r2, r2, #0x2 bl FUN_0200A86C add r7, r0, #0x0 beq _0200B3BC ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B3BC: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200B3C0 FUN_0200B3C0: ; 0x0200B3C0 push {r3-r7, lr} add r5, r0, #0x0 ldr r3, [r5, #0x4] add r6, r1, #0x0 add r4, r2, #0x0 mov r0, #0x1 mov r1, #0x1a mov r2, #0xc7 bl FUN_0200A86C add r7, r0, #0x0 cmp r4, #0x0 beq _0200B3E0 cmp r4, #0x1 beq _0200B3EA b _0200B3F4 _0200B3E0: ldr r2, [r5, #0xc] mov r1, #0x44 bl FUN_0200A8E0 b _0200B3FA _0200B3EA: ldr r2, [r5, #0xc] mov r1, #0x45 bl FUN_0200A8E0 b _0200B3FA _0200B3F4: ldr r0, [r5, #0xc] bl FUN_02021A4C _0200B3FA: ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r6, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200B410 FUN_0200B410: ; 0x0200B410 push {r3-r5, lr} add r5, r0, #0x0 add r0, r2, #0x0 add r4, r1, #0x0 ldr r2, [r5, #0xc] add r1, r3, #0x0 bl FUN_0206B484 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0200B430 FUN_0200B430: ; 0x0200B430 push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 add r4, r1, #0x0 ldr r2, _0200B464 ; =0x0000014B ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r7, r0, #0x0 beq _0200B462 ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B462: pop {r3-r7, pc} .balign 4 _0200B464: .word 0x0000014B thumb_func_start FUN_0200B468 FUN_0200B468: ; 0x0200B468 push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 add r4, r1, #0x0 ldr r2, _0200B49C ; =0x00000226 ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r7, r0, #0x0 beq _0200B49A ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B49A: pop {r3-r7, pc} .balign 4 _0200B49C: .word 0x00000226 thumb_func_start FUN_0200B4A0 FUN_0200B4A0: ; 0x0200B4A0 push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 mov r2, #0x99 add r4, r1, #0x0 ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a lsl r2, r2, #0x2 bl FUN_0200A86C add r7, r0, #0x0 beq _0200B4D4 ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B4D4: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200B4D8 FUN_0200B4D8: ; 0x0200B4D8 push {r3-r7, lr} add r5, r0, #0x0 add r0, r2, #0x0 add r6, r1, #0x0 add r4, r3, #0x0 bl FUN_02088D40 add r2, r0, #0x0 beq _0200B516 cmp r4, #0x0 beq _0200B516 ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r7, r0, #0x0 beq _0200B516 ldr r2, [r5, #0xc] add r1, r4, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r6, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B516: pop {r3-r7, pc} thumb_func_start FUN_0200B518 FUN_0200B518: ; 0x0200B518 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0xc] add r0, r2, #0x0 bl FUN_02013A58 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 pop {r3-r5, pc} thumb_func_start FUN_0200B534 FUN_0200B534: ; 0x0200B534 push {r3-r7, lr} add r5, r0, #0x0 ldr r3, [r5, #0x4] add r4, r1, #0x0 add r6, r2, #0x0 mov r0, #0x1 mov r1, #0x1a mov r2, #0xa bl FUN_0200A86C add r7, r0, #0x0 beq _0200B566 ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B566: pop {r3-r7, pc} thumb_func_start FUN_0200B568 FUN_0200B568: ; 0x0200B568 push {r3-r7, lr} add r5, r0, #0x0 ldr r3, [r5, #0x4] add r4, r1, #0x0 add r6, r2, #0x0 mov r0, #0x1 mov r1, #0x1a mov r2, #0xb bl FUN_0200A86C add r7, r0, #0x0 beq _0200B59A ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B59A: pop {r3-r7, pc} thumb_func_start FUN_0200B59C FUN_0200B59C: ; 0x0200B59C push {r3-r7, lr} add r4, r2, #0x0 add r5, r0, #0x0 add r0, r4, #0x0 add r7, r1, #0x0 bl FUN_02015CC0 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02015CE0 add r4, r0, #0x0 ldr r2, _0200B620 ; =0x020ECE64 lsl r3, r6, #0x1 ldrh r2, [r2, r3] ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r6, r0, #0x0 beq _0200B61E bl FUN_0200A940 cmp r4, r0 bhs _0200B5EE ldr r2, [r5, #0xc] add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r7, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r6, #0x0 bl FUN_0200A8B8 pop {r3-r7, pc} _0200B5EE: add r0, r6, #0x0 bl FUN_0200A8B8 ldr r2, _0200B624 ; =0x0000017E ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r4, r0, #0x0 beq _0200B61E ldr r2, [r5, #0xc] mov r1, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r7, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r4, #0x0 bl FUN_0200A8B8 _0200B61E: pop {r3-r7, pc} .balign 4 _0200B620: .word 0x020ECE64 _0200B624: .word 0x0000017E thumb_func_start FUN_0200B628 FUN_0200B628: ; 0x0200B628 push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 add r4, r1, #0x0 ldr r2, _0200B65C ; =0x0000019E ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r7, r0, #0x0 beq _0200B65A ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B65A: pop {r3-r7, pc} .balign 4 _0200B65C: .word 0x0000019E thumb_func_start FUN_0200B660 FUN_0200B660: ; 0x0200B660 push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 add r4, r1, #0x0 ldr r2, _0200B694 ; =0x00000152 ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r7, r0, #0x0 beq _0200B692 ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B692: pop {r3-r7, pc} .balign 4 _0200B694: .word 0x00000152 thumb_func_start FUN_0200B698 FUN_0200B698: ; 0x0200B698 push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 add r4, r1, #0x0 ldr r2, _0200B6CC ; =0x00000153 ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r7, r0, #0x0 beq _0200B6CA ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B6CA: pop {r3-r7, pc} .balign 4 _0200B6CC: .word 0x00000153 thumb_func_start FUN_0200B6D0 FUN_0200B6D0: ; 0x0200B6D0 push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 mov r2, #0x55 add r4, r1, #0x0 ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a lsl r2, r2, #0x2 bl FUN_0200A86C add r7, r0, #0x0 beq _0200B704 ldr r2, [r5, #0xc] add r1, r6, #0x0 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r7, #0x0 bl FUN_0200A8B8 _0200B704: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200B708 FUN_0200B708: ; 0x0200B708 push {r4-r7, lr} sub sp, #0x14 str r0, [sp, #0x8] add r5, r2, #0x0 add r0, r1, #0x0 str r3, [sp, #0xc] bl FUN_0202881C add r6, r0, #0x0 add r1, r5, #0x0 bl FUN_020287F8 str r0, [sp, #0x10] add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_02028804 add r7, r0, #0x0 mov r0, #0x40 mov r1, #0x4 bl FUN_020219F4 add r4, r0, #0x0 ldr r2, [sp, #0x28] add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_020287A8 add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_02021E28 mov r0, #0x1 str r0, [sp, #0x0] ldr r0, [sp, #0x8] ldr r1, [sp, #0xc] ldr r3, [sp, #0x10] add r2, r4, #0x0 str r7, [sp, #0x4] bl FUN_0200ABB4 add r0, r4, #0x0 bl FUN_02021A20 add sp, #0x14 pop {r4-r7, pc} thumb_func_start FUN_0200B764 FUN_0200B764: ; 0x0200B764 push {r3-r7, lr} add r5, r0, #0x0 add r4, r2, #0x0 mov r2, #0x5b add r7, r1, #0x0 ldr r3, [r5, #0x4] mov r0, #0x1 mov r1, #0x1a lsl r2, r2, #0x2 bl FUN_0200A86C add r6, r0, #0x0 beq _0200B7A4 cmp r4, #0x1 blo _0200B786 cmp r4, #0xc bls _0200B788 _0200B786: mov r4, #0x1 _0200B788: ldr r2, [r5, #0xc] add r0, r6, #0x0 sub r1, r4, #0x1 bl FUN_0200A8E0 ldr r2, [r5, #0xc] add r0, r5, #0x0 add r1, r7, #0x0 mov r3, #0x0 bl FUN_0200AB70 add r0, r6, #0x0 bl FUN_0200A8B8 _0200B7A4: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200B7A8 FUN_0200B7A8: ; 0x0200B7A8 ldr r2, [r0, #0x8] lsl r0, r1, #0x3 add r0, r2, r0 ldr r3, _0200B7B4 ; =FUN_02021FF8 ldr r0, [r0, #0x4] bx r3 .balign 4 _0200B7B4: .word FUN_02021FF8 thumb_func_start FUN_0200B7B8 FUN_0200B7B8: ; 0x0200B7B8 push {r3-r7, lr} add r7, r0, #0x0 add r6, r1, #0x0 add r0, r2, #0x0 bl FUN_02021F2C add r5, r0, #0x0 add r0, r6, #0x0 bl FUN_02021A4C ldrh r1, [r5, #0x0] ldr r0, _0200B844 ; =0x0000FFFF cmp r1, r0 beq _0200B840 _0200B7D4: ldr r0, _0200B848 ; =0x0000FFFE cmp r1, r0 bne _0200B82E add r0, r5, #0x0 bl FUN_0201B8F8 cmp r0, #0x0 beq _0200B810 add r0, r5, #0x0 mov r1, #0x0 bl FUN_0201B914 add r4, r0, #0x0 ldr r0, [r7, #0x0] cmp r4, r0 blo _0200B7F8 bl ErrorHandling _0200B7F8: ldr r2, [r7, #0x8] lsl r1, r4, #0x3 add r1, r2, r1 ldr r1, [r1, #0x4] add r0, r6, #0x0 bl FUN_02022048 add r0, r5, #0x0 bl FUN_0201B8B8 add r5, r0, #0x0 b _0200B838 _0200B810: add r0, r5, #0x0 add r4, r5, #0x0 bl FUN_0201B8B8 add r5, r0, #0x0 cmp r4, r5 bhs _0200B838 _0200B81E: ldrh r1, [r4, #0x0] add r0, r6, #0x0 add r4, r4, #0x2 bl FUN_02021FB0 cmp r4, r5 blo _0200B81E b _0200B838 _0200B82E: ldrh r1, [r5, #0x0] add r0, r6, #0x0 add r5, r5, #0x2 bl FUN_02021FB0 _0200B838: ldrh r1, [r5, #0x0] ldr r0, _0200B844 ; =0x0000FFFF cmp r1, r0 bne _0200B7D4 _0200B840: pop {r3-r7, pc} nop _0200B844: .word 0x0000FFFF _0200B848: .word 0x0000FFFE thumb_func_start FUN_0200B84C FUN_0200B84C: ; 0x0200B84C push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] mov r6, #0x0 cmp r0, #0x0 bls _0200B86E add r4, r6, #0x0 _0200B85A: ldr r0, [r5, #0x8] add r0, r0, r4 ldr r0, [r0, #0x4] bl FUN_02021A4C ldr r0, [r5, #0x0] add r6, r6, #0x1 add r4, #0x8 cmp r6, r0 blo _0200B85A _0200B86E: pop {r4-r6, pc} thumb_func_start FUN_0200B870 FUN_0200B870: ; 0x0200B870 push {r4-r7, lr} sub sp, #0x2c add r4, r3, #0x0 add r5, r0, #0x0 add r6, r1, #0x0 add r0, r4, #0x0 mov r1, #0x2c str r2, [sp, #0x4] bl FUN_02016998 str r0, [sp, #0x8] cmp r0, #0x0 beq _0200B98A ldr r3, [sp, #0x8] mov r0, #0xe mov r1, #0x4 mov r2, #0x1 add r3, r3, #0x4 str r4, [sp, #0x0] bl FUN_02006BB0 ldr r1, [sp, #0x8] mov r3, #0x0 str r0, [r1, #0x0] add r0, r1, #0x0 ldr r0, [r0, #0x4] ldr r4, [r0, #0x14] ldr r0, [r0, #0x10] cmp r0, #0x0 bls _0200B984 ldr r0, [sp, #0x4] ldr r1, [sp, #0x4] lsl r0, r0, #0x4 orr r1, r0 str r1, [sp, #0xc] add r1, r0, #0x0 orr r1, r5 str r1, [sp, #0x10] orr r0, r6 str r0, [sp, #0x14] ldr r1, [sp, #0x4] lsl r0, r5, #0x4 orr r1, r0 str r1, [sp, #0x18] add r1, r5, #0x0 orr r1, r0 str r1, [sp, #0x1c] orr r0, r6 lsl r2, r6, #0x4 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x20] ldr r0, [sp, #0x1c] ldr r1, [sp, #0x4] add r7, r2, #0x0 orr r7, r1 add r1, r2, #0x0 orr r1, r5 lsl r1, r1, #0x18 lsr r1, r1, #0x18 orr r2, r6 str r1, [sp, #0x28] lsl r1, r7, #0x18 lsl r0, r0, #0x18 lsr r7, r0, #0x18 ldr r0, [sp, #0x18] lsl r2, r2, #0x18 lsr r2, r2, #0x18 lsr r1, r1, #0x18 lsl r0, r0, #0x18 mov r12, r2 str r1, [sp, #0x24] lsr r6, r0, #0x18 ldr r0, [sp, #0x14] ldr r1, [sp, #0x10] ldr r2, [sp, #0xc] lsl r0, r0, #0x18 lsl r1, r1, #0x18 lsl r2, r2, #0x18 lsr r0, r0, #0x18 lsr r1, r1, #0x18 lsr r2, r2, #0x18 _0200B914: ldrb r5, [r4, r3] cmp r5, #0x12 bgt _0200B93C bge _0200B962 cmp r5, #0x10 bgt _0200B936 bge _0200B95A cmp r5, #0x2 bgt _0200B978 cmp r5, #0x0 blt _0200B978 beq _0200B94E cmp r5, #0x1 beq _0200B952 cmp r5, #0x2 beq _0200B956 b _0200B978 _0200B936: cmp r5, #0x11 beq _0200B95E b _0200B978 _0200B93C: cmp r5, #0x21 bgt _0200B948 bge _0200B96E cmp r5, #0x20 beq _0200B968 b _0200B978 _0200B948: cmp r5, #0x22 beq _0200B974 b _0200B978 _0200B94E: strb r2, [r4, r3] b _0200B978 _0200B952: strb r1, [r4, r3] b _0200B978 _0200B956: strb r0, [r4, r3] b _0200B978 _0200B95A: strb r6, [r4, r3] b _0200B978 _0200B95E: strb r7, [r4, r3] b _0200B978 _0200B962: ldr r5, [sp, #0x20] strb r5, [r4, r3] b _0200B978 _0200B968: ldr r5, [sp, #0x24] strb r5, [r4, r3] b _0200B978 _0200B96E: ldr r5, [sp, #0x28] strb r5, [r4, r3] b _0200B978 _0200B974: mov r5, r12 strb r5, [r4, r3] _0200B978: ldr r5, [sp, #0x8] add r3, r3, #0x1 ldr r5, [r5, #0x4] ldr r5, [r5, #0x10] cmp r3, r5 blo _0200B914 _0200B984: ldr r1, [sp, #0x4] ldr r0, [sp, #0x8] str r1, [r0, #0x28] _0200B98A: ldr r0, [sp, #0x8] add sp, #0x2c pop {r4-r7, pc} thumb_func_start FUN_0200B990 FUN_0200B990: ; 0x0200B990 push {r4, lr} add r4, r0, #0x0 beq _0200B9A6 ldr r0, [r4, #0x0] cmp r0, #0x0 beq _0200B9A0 bl FUN_02016A18 _0200B9A0: add r0, r4, #0x0 bl FUN_02016A18 _0200B9A6: pop {r4, pc} thumb_func_start FUN_0200B9A8 FUN_0200B9A8: ; 0x0200B9A8 push {r3-r5, lr} sub sp, #0x18 add r4, r0, #0x0 ldr r0, _0200B9E4 ; =0x020ECE6E lsl r5, r1, #0x2 ldrh r1, [r0, r5] lsl r3, r3, #0x10 mov r0, #0x8 str r1, [sp, #0x0] str r0, [sp, #0x4] lsr r3, r3, #0x10 str r3, [sp, #0x8] ldr r3, [sp, #0x28] lsl r3, r3, #0x10 lsr r3, r3, #0x10 str r3, [sp, #0xc] str r1, [sp, #0x10] str r0, [sp, #0x14] ldr r1, [r4, #0x4] add r0, r2, #0x0 ldr r2, [r1, #0x14] ldr r1, _0200B9E8 ; =0x020ECE6C ldrh r1, [r1, r5] add r1, r2, r1 mov r2, #0x0 add r3, r2, #0x0 bl FUN_02019658 add sp, #0x18 pop {r3-r5, pc} .balign 4 _0200B9E4: .word 0x020ECE6E _0200B9E8: .word 0x020ECE6C thumb_func_start FUN_0200B9EC FUN_0200B9EC: ; 0x0200B9EC push {r3-r7, lr} sub sp, #0x18 add r6, r0, #0x0 ldr r0, [sp, #0x30] add r4, r2, #0x0 str r0, [sp, #0x30] add r0, r6, #0x0 add r2, r3, #0x0 add r0, #0x8 add r3, r4, #0x0 ldr r5, [sp, #0x34] ldr r7, [sp, #0x38] bl ConvertUIntToDecimalString ldrh r1, [r6, #0x8] ldr r0, _0200BA74 ; =0x0000FFFF cmp r1, r0 beq _0200BA6E lsl r0, r7, #0x10 add r4, r6, #0x0 lsr r7, r0, #0x10 _0200BA16: ldrh r2, [r4, #0x8] cmp r2, #0xa2 blo _0200BA4A cmp r2, #0xab bhi _0200BA4A mov r0, #0x8 str r0, [sp, #0x0] str r0, [sp, #0x4] lsl r0, r5, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x8] str r7, [sp, #0xc] mov r0, #0x8 str r0, [sp, #0x10] str r0, [sp, #0x14] ldr r1, [r6, #0x4] sub r2, #0xa2 ldr r1, [r1, #0x14] lsl r2, r2, #0x5 add r1, r1, r2 mov r2, #0x0 ldr r0, [sp, #0x30] add r3, r2, #0x0 bl FUN_02019658 b _0200BA62 _0200BA4A: mov r0, #0x8 str r0, [sp, #0x0] str r0, [sp, #0x4] ldr r1, [r6, #0x28] lsl r2, r5, #0x10 lsl r1, r1, #0x18 ldr r0, [sp, #0x30] lsr r1, r1, #0x18 lsr r2, r2, #0x10 add r3, r7, #0x0 bl FUN_020196F4 _0200BA62: add r4, r4, #0x2 ldrh r1, [r4, #0x8] ldr r0, _0200BA74 ; =0x0000FFFF add r5, #0x8 cmp r1, r0 bne _0200BA16 _0200BA6E: add sp, #0x18 pop {r3-r7, pc} nop _0200BA74: .word 0x0000FFFF thumb_func_start FUN_0200BA78 FUN_0200BA78: ; 0x0200BA78 push {r3-r6, lr} sub sp, #0xc add r4, r2, #0x0 ldr r2, [sp, #0x2c] add r6, r3, #0x0 str r2, [sp, #0x0] ldr r2, [sp, #0x24] ldr r3, [sp, #0x28] add r5, r0, #0x0 bl FUN_0200B9A8 ldr r0, [sp, #0x24] ldr r3, [sp, #0x20] str r0, [sp, #0x0] ldr r0, [sp, #0x28] add r1, r4, #0x0 add r0, #0x10 str r0, [sp, #0x4] ldr r0, [sp, #0x2c] add r2, r6, #0x0 str r0, [sp, #0x8] add r0, r5, #0x0 bl FUN_0200B9EC add sp, #0xc pop {r3-r6, pc} thumb_func_start FUN_0200BAAC FUN_0200BAAC: ; 0x0200BAAC push {r3-r7, lr} add r7, r0, #0x0 add r4, r2, #0x0 ldr r2, [r7, #0x28] ldr r6, [sp, #0x18] lsl r0, r2, #0x4 orr r0, r2 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] add r0, r7, #0x0 add r2, r3, #0x0 add r0, #0x8 add r3, r4, #0x0 bl ConvertUIntToDecimalString ldrh r1, [r7, #0x8] ldr r0, _0200BB10 ; =0x0000FFFF cmp r1, r0 beq _0200BB0C add r4, r7, #0x0 mov r5, #0x0 _0200BAD8: ldrh r2, [r4, #0x8] cmp r2, #0xa2 blo _0200BAF6 cmp r2, #0xab bhi _0200BAF6 ldr r0, [r7, #0x4] sub r2, #0xa2 ldr r1, [r0, #0x14] lsl r0, r2, #0x5 add r0, r1, r0 add r1, r6, r5 mov r2, #0x20 blx MIi_CpuCopy32 b _0200BB00 _0200BAF6: ldr r1, [sp, #0x0] add r0, r6, r5 mov r2, #0x20 blx MI_CpuFill8 _0200BB00: add r4, r4, #0x2 ldrh r1, [r4, #0x8] ldr r0, _0200BB10 ; =0x0000FFFF add r5, #0x20 cmp r1, r0 bne _0200BAD8 _0200BB0C: pop {r3-r7, pc} nop _0200BB10: .word 0x0000FFFF thumb_func_start FUN_0200BB14 FUN_0200BB14: ; 0x0200BB14 push {r4, lr} mov r1, #0x4e lsl r1, r1, #0x2 add r4, r0, #0x0 bl FUN_02016998 cmp r0, #0x0 bne _0200BB28 mov r0, #0x0 pop {r4, pc} _0200BB28: str r4, [r0, #0x0] mov r1, #0x0 str r1, [r0, #0x4] mov r1, #0x1 str r1, [r0, #0x8] pop {r4, pc} thumb_func_start FUN_0200BB34 FUN_0200BB34: ; 0x0200BB34 push {r4, lr} add r4, r0, #0x0 bne _0200BB3E bl ErrorHandling _0200BB3E: ldr r0, [r4, #0x0] mov r1, #0x58 bl FUN_02016998 cmp r0, #0x0 bne _0200BB4E mov r0, #0x0 pop {r4, pc} _0200BB4E: ldr r1, [r4, #0x4] mov r2, #0x0 add r1, r1, #0x1 str r1, [r4, #0x4] add r3, r0, #0x0 add r1, r2, #0x0 _0200BB5A: add r2, r2, #0x1 str r1, [r3, #0xc] add r3, r3, #0x4 cmp r2, #0x6 blt _0200BB5A pop {r4, pc} .balign 4 thumb_func_start FUN_0200BB68 FUN_0200BB68: ; 0x0200BB68 add r0, #0x10 bx lr thumb_func_start FUN_0200BB6C FUN_0200BB6C: ; 0x0200BB6C push {r4-r7, lr} sub sp, #0x24 add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 add r7, r3, #0x0 cmp r5, #0x0 bne _0200BB80 bl ErrorHandling _0200BB80: cmp r5, #0x0 bne _0200BB8A add sp, #0x24 mov r0, #0x0 pop {r4-r7, pc} _0200BB8A: ldr r0, [r6, #0x0] str r0, [sp, #0x14] ldr r0, [r6, #0x4] str r0, [sp, #0x18] ldr r0, [r6, #0x8] str r0, [sp, #0x1c] ldr r0, [r5, #0x0] str r0, [sp, #0x20] ldr r1, [r6, #0xc] ldr r2, [r6, #0x10] add r0, sp, #0x14 bl FUN_0201D060 ldr r1, [r5, #0x0] add r0, r7, #0x0 bl FUN_0201E00C blx FUN_020B0FC0 ldr r0, [r5, #0x8] cmp r0, #0x1 bne _0200BBD6 ldr r0, [r4, #0x10] str r0, [sp, #0x0] ldr r0, [r4, #0x14] str r0, [sp, #0x4] ldr r0, [r4, #0x18] str r0, [sp, #0x8] ldr r0, [r4, #0x1c] str r0, [sp, #0xc] ldr r0, [r5, #0x0] str r0, [sp, #0x10] ldr r0, [r4, #0x0] ldr r1, [r4, #0x4] ldr r2, [r4, #0x8] ldr r3, [r4, #0xc] bl FUN_02009EAC _0200BBD6: ldr r1, [r5, #0x0] mov r0, #0x20 bl FUN_0201C328 str r0, [r5, #0xc] bl FUN_0201D168 bl FUN_0201E0BC mov r0, #0x1 add sp, #0x24 pop {r4-r7, pc} .balign 4 thumb_func_start FUN_0200BBF0 FUN_0200BBF0: ; 0x0200BBF0 push {r4, lr} add r3, r0, #0x0 add r4, r1, #0x0 cmp r3, #0x0 beq _0200BBFE cmp r4, #0x0 bne _0200BC02 _0200BBFE: mov r0, #0x0 pop {r4, pc} _0200BC02: add r0, r2, #0x0 add r1, r3, #0x0 ldr r2, [r3, #0x0] add r1, #0x10 bl FUN_02008C9C str r0, [r4, #0x0] mov r0, #0x1 pop {r4, pc} thumb_func_start FUN_0200BC14 FUN_0200BC14: ; 0x0200BC14 ldr r3, _0200BC18 ; =FUN_0201FFC8 bx r3 .balign 4 _0200BC18: .word FUN_0201FFC8 thumb_func_start FUN_0200BC1C FUN_0200BC1C: ; 0x0200BC1C push {r4, lr} add r4, r0, #0x0 bne _0200BC26 bl ErrorHandling _0200BC26: ldr r0, [r4, #0x0] bl FUN_0201FDEC pop {r4, pc} .balign 4 thumb_func_start FUN_0200BC30 FUN_0200BC30: ; 0x0200BC30 ldr r3, _0200BC34 ; =FUN_02009F80 bx r3 .balign 4 _0200BC34: .word FUN_02009F80 thumb_func_start FUN_0200BC38 FUN_0200BC38: ; 0x0200BC38 ldr r3, _0200BC3C ; =FUN_0201C348 bx r3 .balign 4 _0200BC3C: .word FUN_0201C348 thumb_func_start FUN_0200BC40 FUN_0200BC40: ; 0x0200BC40 ldr r3, _0200BC48 ; =FUN_0201FD58 ldr r0, [r0, #0x0] bx r3 nop _0200BC48: .word FUN_0201FD58 thumb_func_start FUN_0200BC4C FUN_0200BC4C: ; 0x0200BC4C push {r3, lr} ldr r0, [r0, #0x4] cmp r0, #0x0 beq _0200BC58 bl FUN_02008C80 _0200BC58: pop {r3, pc} .balign 4 thumb_func_start FUN_0200BC5C FUN_0200BC5C: ; 0x0200BC5C push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0x54] mov r4, #0x0 cmp r0, #0x0 ble _0200BC7C _0200BC68: ldr r0, [r5, #0x8] add r1, r4, #0x0 bl FUN_02009660 bl FUN_020096B4 ldr r0, [r5, #0x54] add r4, r4, #0x1 cmp r4, r0 blt _0200BC68 _0200BC7C: ldr r0, [r5, #0x8] bl FUN_02016A18 ldr r0, [r5, #0x24] bl FUN_02009C30 ldr r0, [r5, #0x28] bl FUN_02009E28 ldr r0, [r5, #0x54] mov r6, #0x0 cmp r0, #0x0 ble _0200BCAE add r4, r5, #0x0 _0200BC98: ldr r0, [r4, #0x24] bl FUN_02009448 ldr r0, [r4, #0xc] bl FUN_02008E2C ldr r0, [r5, #0x54] add r6, r6, #0x1 add r4, r4, #0x4 cmp r6, r0 blt _0200BC98 _0200BCAE: pop {r4-r6, pc} thumb_func_start FUN_0200BCB0 FUN_0200BCB0: ; 0x0200BCB0 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_0201C350 bl FUN_0201D12C bl FUN_0201E08C ldr r0, [r4, #0x8] cmp r0, #0x1 bne _0200BCCC bl FUN_02009FA0 _0200BCCC: pop {r4, pc} .balign 4 thumb_func_start FUN_0200BCD0 FUN_0200BCD0: ; 0x0200BCD0 ldr r2, [r0, #0x4] ldr r3, _0200BCDC ; =FUN_02016A18 sub r2, r2, #0x1 str r2, [r0, #0x4] add r0, r1, #0x0 bx r3 .balign 4 _0200BCDC: .word FUN_02016A18 thumb_func_start FUN_0200BCE0 FUN_0200BCE0: ; 0x0200BCE0 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0200BC40 add r0, r4, #0x0 bl FUN_0200BC4C add r0, r4, #0x0 bl FUN_0200BC5C add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0200BCD0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0200BD04 FUN_0200BD04: ; 0x0200BD04 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x4] cmp r0, #0x0 beq _0200BD12 bl ErrorHandling _0200BD12: add r0, r4, #0x0 bl FUN_0200BCB0 add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} thumb_func_start FUN_0200BD20 FUN_0200BD20: ; 0x0200BD20 push {r4-r7, lr} sub sp, #0x24 add r5, r0, #0x0 mov r0, #0x6 add r4, r1, #0x0 str r2, [sp, #0x10] str r0, [sp, #0x14] cmp r5, #0x0 beq _0200BD36 cmp r4, #0x0 bne _0200BD3C _0200BD36: add sp, #0x24 mov r0, #0x0 pop {r4-r7, pc} _0200BD3C: add r0, r2, #0x0 ldr r0, [r0, #0x10] cmp r0, #0x0 bne _0200BD48 mov r0, #0x4 str r0, [sp, #0x14] _0200BD48: ldr r0, [sp, #0x14] str r0, [r4, #0x54] bl FUN_0200965C add r2, r0, #0x0 ldr r1, [sp, #0x14] ldr r0, [r5, #0x0] mul r1, r2 bl FUN_02016998 str r0, [r4, #0x8] ldr r0, [sp, #0x14] mov r7, #0x0 cmp r0, #0x0 ble _0200BD94 ldr r6, [sp, #0x10] _0200BD68: ldr r0, [r4, #0x8] add r1, r7, #0x0 bl FUN_02009660 str r0, [sp, #0x18] ldr r0, [r5, #0x0] ldr r1, [r6, #0x0] bl FUN_020161A4 ldr r1, [sp, #0x18] ldr r2, [r5, #0x0] str r0, [sp, #0x1c] bl FUN_02009668 ldr r0, [sp, #0x1c] bl FUN_02016A18 ldr r0, [sp, #0x14] add r7, r7, #0x1 add r6, r6, #0x4 cmp r7, r0 blt _0200BD68 _0200BD94: ldr r0, [sp, #0x14] mov r6, #0x0 cmp r0, #0x0 ble _0200BDBE add r7, r4, #0x0 _0200BD9E: ldr r0, [r4, #0x8] add r1, r6, #0x0 bl FUN_02009660 bl FUN_020096CC ldr r2, [r5, #0x0] add r1, r6, #0x0 bl FUN_02008DEC str r0, [r7, #0xc] ldr r0, [sp, #0x14] add r6, r6, #0x1 add r7, r7, #0x4 cmp r6, r0 blt _0200BD9E _0200BDBE: ldr r0, [sp, #0x14] mov r7, #0x0 cmp r0, #0x0 ble _0200BDF6 add r6, r4, #0x0 _0200BDC8: ldr r0, [r4, #0x8] add r1, r7, #0x0 bl FUN_02009660 str r0, [sp, #0x20] bl FUN_020096CC ldr r1, [r5, #0x0] bl FUN_02009424 add r2, r0, #0x0 str r2, [r6, #0x24] ldr r0, [r6, #0xc] ldr r1, [sp, #0x20] ldr r3, [r5, #0x0] bl FUN_020093A8 str r0, [r6, #0x3c] ldr r0, [sp, #0x14] add r7, r7, #0x1 add r6, r6, #0x4 cmp r7, r0 blt _0200BDC8 _0200BDF6: ldr r0, [r4, #0x24] bl FUN_02009A90 ldr r0, [r4, #0x28] bl FUN_02009D34 ldr r1, [sp, #0x10] ldr r0, [r5, #0x0] ldr r1, [r1, #0x18] bl FUN_020161A4 ldr r1, [r4, #0x14] add r6, r0, #0x0 str r1, [sp, #0x0] ldr r1, [r4, #0x18] str r1, [sp, #0x4] ldr r1, [r4, #0x1c] str r1, [sp, #0x8] ldr r1, [r4, #0x20] str r1, [sp, #0xc] ldr r1, [r5, #0x0] ldr r2, [r4, #0xc] ldr r3, [r4, #0x10] bl FUN_02008BE0 str r0, [r4, #0x4] add r0, r6, #0x0 bl FUN_02016A18 mov r0, #0x1 add sp, #0x24 pop {r4-r7, pc} .balign 4 thumb_func_start FUN_0200BE38 FUN_0200BE38: ; 0x0200BE38 push {r4, lr} sub sp, #0x28 mov r3, #0x4 mov r4, #0x6 ldrsh r3, [r2, r3] ldrsh r4, [r2, r4] str r4, [sp, #0x0] str r3, [sp, #0x4] ldrh r4, [r2, #0xa] str r4, [sp, #0x8] ldr r4, [r2, #0xc] str r4, [sp, #0xc] ldr r4, [r2, #0x10] str r4, [sp, #0x10] ldr r4, [r2, #0x14] str r4, [sp, #0x14] ldr r4, [r2, #0x18] str r4, [sp, #0x18] ldr r4, [r2, #0x1c] str r4, [sp, #0x1c] ldr r4, [r2, #0x20] str r4, [sp, #0x20] ldr r4, [r2, #0x24] str r4, [sp, #0x24] ldr r2, [r2, #0x0] bl FUN_0200BE74 add sp, #0x28 pop {r4, pc} .balign 4 thumb_func_start FUN_0200BE74 FUN_0200BE74: ; 0x0200BE74 push {r4, lr} sub sp, #0x30 add r4, r0, #0x0 ldr r0, [r1, #0x0] str r0, [sp, #0x0] ldr r0, [r1, #0x4] ldr r1, [r0, #0x0] mov r0, #0x24 mul r0, r2 add r0, r1, r0 str r0, [sp, #0x4] cmp r3, #0x0 ble _0200BEA0 lsl r0, r3, #0xc blx FUN_020EB534 add r1, r0, #0x0 mov r0, #0x3f lsl r0, r0, #0x18 blx FUN_020EA980 b _0200BEAE _0200BEA0: lsl r0, r3, #0xc blx FUN_020EB534 mov r1, #0x3f lsl r1, r1, #0x18 blx FUN_020EB7B0 _0200BEAE: blx FUN_020EB4C0 str r0, [sp, #0x8] add r1, sp, #0x28 mov r0, #0x10 ldrsh r0, [r1, r0] cmp r0, #0x0 ble _0200BED0 lsl r0, r0, #0xc blx FUN_020EB534 add r1, r0, #0x0 mov r0, #0x3f lsl r0, r0, #0x18 blx FUN_020EA980 b _0200BEDE _0200BED0: lsl r0, r0, #0xc blx FUN_020EB534 mov r1, #0x3f lsl r1, r1, #0x18 blx FUN_020EB7B0 _0200BEDE: blx FUN_020EB4C0 str r0, [sp, #0xc] add r1, sp, #0x28 mov r0, #0x14 ldrsh r0, [r1, r0] cmp r0, #0x0 ble _0200BF00 lsl r0, r0, #0xc blx FUN_020EB534 add r1, r0, #0x0 mov r0, #0x3f lsl r0, r0, #0x18 blx FUN_020EA980 b _0200BF0E _0200BF00: lsl r0, r0, #0xc blx FUN_020EB534 mov r1, #0x3f lsl r1, r1, #0x18 blx FUN_020EB7B0 _0200BF0E: blx FUN_020EB4C0 str r0, [sp, #0x10] ldr r0, [sp, #0x4c] cmp r0, #0x2 bne _0200BF24 mov r0, #0x3 ldr r1, [sp, #0xc] lsl r0, r0, #0x12 add r0, r1, r0 str r0, [sp, #0xc] _0200BF24: mov r0, #0x1 lsl r0, r0, #0xc str r0, [sp, #0x14] str r0, [sp, #0x18] str r0, [sp, #0x1c] mov r1, #0x0 add r0, sp, #0x0 strh r1, [r0, #0x20] ldr r0, [sp, #0x44] str r0, [sp, #0x24] ldr r0, [sp, #0x4c] str r0, [sp, #0x28] ldr r0, [r4, #0x0] str r0, [sp, #0x2c] add r0, sp, #0x0 bl FUN_0201FE94 add r4, r0, #0x0 beq _0200BF5A add r1, sp, #0x28 ldrh r1, [r1, #0x18] bl FUN_02020130 ldr r1, [sp, #0x48] add r0, r4, #0x0 bl FUN_02020248 _0200BF5A: add r0, r4, #0x0 add sp, #0x30 pop {r4, pc} thumb_func_start FUN_0200BF60 FUN_0200BF60: ; 0x0200BF60 push {r4-r7, lr} sub sp, #0xc str r0, [sp, #0x0] mov r0, #0x6 str r0, [sp, #0x4] ldr r0, [sp, #0x0] add r5, r1, #0x0 add r6, r2, #0x0 cmp r0, #0x0 beq _0200BF78 cmp r5, #0x0 bne _0200BF7E _0200BF78: add sp, #0xc mov r0, #0x0 pop {r4-r7, pc} _0200BF7E: ldr r0, [r6, #0x10] cmp r0, #0x0 beq _0200BF8A ldr r0, [r6, #0x14] cmp r0, #0x0 bne _0200BF8E _0200BF8A: mov r0, #0x4 str r0, [sp, #0x4] _0200BF8E: ldr r0, [sp, #0x4] str r0, [r5, #0x54] mov r0, #0x0 str r0, [sp, #0x8] ldr r0, [sp, #0x4] cmp r0, #0x0 ble _0200BFBE add r7, r6, #0x0 add r4, r5, #0x0 _0200BFA0: ldr r2, [sp, #0x0] ldr r0, [r7, #0x0] ldr r1, [sp, #0x8] ldr r2, [r2, #0x0] bl FUN_02008DEC str r0, [r4, #0xc] ldr r0, [sp, #0x8] add r7, r7, #0x4 add r1, r0, #0x1 ldr r0, [sp, #0x4] add r4, r4, #0x4 str r1, [sp, #0x8] cmp r1, r0 blt _0200BFA0 _0200BFBE: ldr r0, [sp, #0x4] mov r7, #0x0 cmp r0, #0x0 ble _0200C004 add r4, r7, #0x0 _0200BFC8: ldr r0, [r6, #0x0] cmp r0, #0x0 beq _0200BFF8 ldr r1, [sp, #0x0] ldr r1, [r1, #0x0] bl FUN_02009424 str r0, [r5, #0x24] mov r0, #0x0 str r0, [r5, #0x3c] ldr r3, [r5, #0x24] add r1, r0, #0x0 ldr r0, [r3, #0x4] cmp r0, #0x0 ble _0200BFF8 add r2, r1, #0x0 _0200BFE8: ldr r0, [r3, #0x0] add r1, r1, #0x1 str r4, [r0, r2] ldr r3, [r5, #0x24] add r2, r2, #0x4 ldr r0, [r3, #0x4] cmp r1, r0 blt _0200BFE8 _0200BFF8: ldr r0, [sp, #0x4] add r7, r7, #0x1 add r6, r6, #0x4 add r5, r5, #0x4 cmp r7, r0 blt _0200BFC8 _0200C004: mov r0, #0x1 add sp, #0xc pop {r4-r7, pc} .balign 4 thumb_func_start FUN_0200C00C FUN_0200C00C: ; 0x0200C00C push {r4-r7, lr} sub sp, #0xc add r4, r1, #0x0 add r5, r0, #0x0 ldr r0, [r4, #0xc] ldr r1, [sp, #0x28] add r6, r2, #0x0 add r7, r3, #0x0 bl FUN_0200945C cmp r0, #0x0 bne _0200C02A add sp, #0xc mov r0, #0x0 pop {r4-r7, pc} _0200C02A: ldr r0, [sp, #0x28] ldr r3, [sp, #0x20] str r0, [sp, #0x0] ldr r0, [sp, #0x24] add r1, r6, #0x0 str r0, [sp, #0x4] ldr r0, [r5, #0x0] add r2, r7, #0x0 str r0, [sp, #0x8] ldr r0, [r4, #0xc] bl FUN_02008F34 add r5, r0, #0x0 beq _0200C058 bl FUN_02009B04 ldr r0, [r4, #0x24] add r1, r5, #0x0 bl FUN_0200C474 add sp, #0xc mov r0, #0x1 pop {r4-r7, pc} _0200C058: bl ErrorHandling cmp r5, #0x0 beq _0200C066 add sp, #0xc mov r0, #0x1 pop {r4-r7, pc} _0200C066: mov r0, #0x0 add sp, #0xc pop {r4-r7, pc} thumb_func_start FUN_0200C06C FUN_0200C06C: ; 0x0200C06C push {r3-r7, lr} sub sp, #0x10 add r4, r1, #0x0 add r5, r0, #0x0 ldr r0, [r4, #0x10] ldr r1, [sp, #0x34] add r6, r2, #0x0 add r7, r3, #0x0 bl FUN_0200945C cmp r0, #0x0 bne _0200C08C mov r0, #0x0 add sp, #0x10 mvn r0, r0 pop {r3-r7, pc} _0200C08C: ldr r0, [sp, #0x34] ldr r3, [sp, #0x28] str r0, [sp, #0x0] ldr r0, [sp, #0x30] add r1, r6, #0x0 str r0, [sp, #0x4] ldr r0, [sp, #0x2c] add r2, r7, #0x0 str r0, [sp, #0x8] ldr r0, [r5, #0x0] str r0, [sp, #0xc] ldr r0, [r4, #0x10] bl FUN_02008FEC add r5, r0, #0x0 beq _0200C0D0 bl FUN_02009D68 cmp r0, #0x1 beq _0200C0B8 bl ErrorHandling _0200C0B8: ldr r0, [r4, #0x28] add r1, r5, #0x0 bl FUN_0200C474 ldr r1, [sp, #0x30] add r0, r5, #0x0 bl FUN_02009E88 lsl r0, r0, #0x18 add sp, #0x10 asr r0, r0, #0x18 pop {r3-r7, pc} _0200C0D0: bl ErrorHandling mov r0, #0x0 mvn r0, r0 add sp, #0x10 pop {r3-r7, pc} thumb_func_start FUN_0200C0DC FUN_0200C0DC: ; 0x0200C0DC push {r4-r6, lr} sub sp, #0x10 add r5, r0, #0x0 ldr r0, [sp, #0x28] add r6, r1, #0x0 str r0, [sp, #0x0] ldr r0, [sp, #0x2c] add r1, r3, #0x0 str r0, [sp, #0x4] ldr r0, [sp, #0x30] ldr r3, [sp, #0x24] str r0, [sp, #0x8] ldr r0, [sp, #0x34] str r0, [sp, #0xc] add r0, r2, #0x0 ldr r2, [sp, #0x20] bl FUN_0200C06C add r4, r0, #0x0 mov r0, #0x0 mvn r0, r0 cmp r4, r0 beq _0200C11A ldr r3, [sp, #0x2c] lsl r2, r4, #0x14 add r0, r5, #0x0 add r1, r6, #0x0 lsr r2, r2, #0x10 lsl r3, r3, #0x5 bl FUN_02003108 _0200C11A: lsl r0, r4, #0x18 lsr r0, r0, #0x18 add sp, #0x10 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0200C124 FUN_0200C124: ; 0x0200C124 push {r3-r4, lr} sub sp, #0xc ldr r4, [sp, #0x18] str r4, [sp, #0x0] mov r4, #0x2 str r4, [sp, #0x4] ldr r4, [sp, #0x1c] str r4, [sp, #0x8] bl FUN_0200C404 add sp, #0xc pop {r3-r4, pc} thumb_func_start FUN_0200C13C FUN_0200C13C: ; 0x0200C13C push {r3-r4, lr} sub sp, #0xc ldr r4, [sp, #0x18] str r4, [sp, #0x0] mov r4, #0x3 str r4, [sp, #0x4] ldr r4, [sp, #0x1c] str r4, [sp, #0x8] bl FUN_0200C404 add sp, #0xc pop {r3-r4, pc} thumb_func_start FUN_0200C154 FUN_0200C154: ; 0x0200C154 push {r4-r7, lr} sub sp, #0x74 add r7, r0, #0x0 ldr r0, [r7, #0x0] add r6, r1, #0x0 mov r1, #0x10 add r5, r2, #0x0 bl FUN_02016998 add r4, r0, #0x0 bne _0200C170 add sp, #0x74 mov r0, #0x0 pop {r4-r7, pc} _0200C170: ldr r0, [r7, #0x0] mov r1, #0x8 bl FUN_02016998 str r0, [r4, #0x8] cmp r0, #0x0 bne _0200C184 add sp, #0x74 mov r0, #0x0 pop {r4-r7, pc} _0200C184: ldr r0, [r7, #0x0] mov r1, #0x24 bl FUN_02016998 ldr r1, [r4, #0x8] str r0, [r1, #0x0] ldr r0, [r4, #0x8] ldr r0, [r0, #0x0] str r0, [r4, #0x4] ldr r0, [r4, #0x8] ldr r1, [r0, #0x0] cmp r1, #0x0 bne _0200C1AC cmp r0, #0x0 beq _0200C1A6 bl FUN_02016A18 _0200C1A6: add sp, #0x74 mov r0, #0x0 pop {r4-r7, pc} _0200C1AC: mov r1, #0x0 add r2, r5, #0x0 add r3, sp, #0x2c _0200C1B2: ldr r0, [r2, #0x14] add r1, r1, #0x1 add r2, r2, #0x4 stmia r3!, {r0} cmp r1, #0x6 blt _0200C1B2 ldr r0, [r6, #0x1c] cmp r0, #0x0 beq _0200C1CA ldr r1, [r6, #0x20] cmp r1, #0x0 bne _0200C1D4 _0200C1CA: mov r0, #0x0 mvn r0, r0 str r0, [sp, #0x3c] str r0, [sp, #0x40] b _0200C206 _0200C1D4: mov r2, #0x0 ldr r1, [sp, #0x3c] mvn r2, r2 cmp r1, r2 beq _0200C1EC bl FUN_0200945C cmp r0, #0x0 bne _0200C1EC mov r0, #0x0 mvn r0, r0 str r0, [sp, #0x3c] _0200C1EC: mov r0, #0x0 ldr r1, [sp, #0x40] mvn r0, r0 cmp r1, r0 beq _0200C206 ldr r0, [r6, #0x20] bl FUN_0200945C cmp r0, #0x0 bne _0200C206 mov r0, #0x0 mvn r0, r0 str r0, [sp, #0x40] _0200C206: ldr r0, [sp, #0x38] str r0, [sp, #0x0] ldr r0, [sp, #0x3c] str r0, [sp, #0x4] ldr r0, [sp, #0x40] str r0, [sp, #0x8] ldr r0, [r5, #0x30] str r0, [sp, #0xc] ldr r0, [r5, #0x2c] str r0, [sp, #0x10] ldr r0, [r6, #0xc] str r0, [sp, #0x14] ldr r0, [r6, #0x10] str r0, [sp, #0x18] ldr r0, [r6, #0x14] str r0, [sp, #0x1c] ldr r0, [r6, #0x18] str r0, [sp, #0x20] ldr r0, [r6, #0x1c] str r0, [sp, #0x24] ldr r0, [r6, #0x20] str r0, [sp, #0x28] ldr r0, [r4, #0x4] ldr r1, [sp, #0x2c] ldr r2, [sp, #0x30] ldr r3, [sp, #0x34] bl FUN_02008AA4 ldr r0, [r6, #0x0] str r0, [sp, #0x44] ldr r0, [r4, #0x4] str r0, [sp, #0x48] mov r0, #0x0 ldrsh r0, [r5, r0] cmp r0, #0x0 ble _0200C260 lsl r0, r0, #0xc blx FUN_020EB534 add r1, r0, #0x0 mov r0, #0x3f lsl r0, r0, #0x18 blx FUN_020EA980 b _0200C26E _0200C260: lsl r0, r0, #0xc blx FUN_020EB534 mov r1, #0x3f lsl r1, r1, #0x18 blx FUN_020EB7B0 _0200C26E: blx FUN_020EB4C0 str r0, [sp, #0x4c] mov r0, #0x2 ldrsh r0, [r5, r0] cmp r0, #0x0 ble _0200C28E lsl r0, r0, #0xc blx FUN_020EB534 add r1, r0, #0x0 mov r0, #0x3f lsl r0, r0, #0x18 blx FUN_020EA980 b _0200C29C _0200C28E: lsl r0, r0, #0xc blx FUN_020EB534 mov r1, #0x3f lsl r1, r1, #0x18 blx FUN_020EB7B0 _0200C29C: blx FUN_020EB4C0 str r0, [sp, #0x50] mov r0, #0x4 ldrsh r0, [r5, r0] cmp r0, #0x0 ble _0200C2BC lsl r0, r0, #0xc blx FUN_020EB534 add r1, r0, #0x0 mov r0, #0x3f lsl r0, r0, #0x18 blx FUN_020EA980 b _0200C2CA _0200C2BC: lsl r0, r0, #0xc blx FUN_020EB534 mov r1, #0x3f lsl r1, r1, #0x18 blx FUN_020EB7B0 _0200C2CA: blx FUN_020EB4C0 str r0, [sp, #0x54] ldr r0, [r5, #0x10] cmp r0, #0x2 bne _0200C2E0 mov r0, #0x3 ldr r1, [sp, #0x50] lsl r0, r0, #0x12 add r0, r1, r0 str r0, [sp, #0x50] _0200C2E0: mov r0, #0x1 lsl r0, r0, #0xc str r0, [sp, #0x58] str r0, [sp, #0x5c] str r0, [sp, #0x60] mov r1, #0x0 add r0, sp, #0x2c strh r1, [r0, #0x38] ldr r0, [r5, #0x8] str r0, [sp, #0x68] ldr r0, [r5, #0x10] str r0, [sp, #0x6c] ldr r0, [r7, #0x0] str r0, [sp, #0x70] add r0, sp, #0x44 bl FUN_0201FE94 str r0, [r4, #0x0] ldr r0, [r5, #0x30] str r0, [r4, #0xc] ldr r0, [r4, #0x0] cmp r0, #0x0 beq _0200C328 bl FUN_020202A0 add r6, r0, #0x0 ldrh r1, [r5, #0x6] ldr r0, [r4, #0x0] bl FUN_02020130 ldr r1, [r5, #0xc] ldr r0, [r4, #0x0] add r1, r6, r1 bl FUN_02020248 b _0200C32C _0200C328: bl ErrorHandling _0200C32C: add r0, r4, #0x0 add sp, #0x74 pop {r4-r7, pc} .balign 4 thumb_func_start FUN_0200C334 FUN_0200C334: ; 0x0200C334 push {r3, lr} ldr r0, [r0, #0x10] bl FUN_020094F0 mov r1, #0x0 bl FUN_02009E54 pop {r3, pc} thumb_func_start FUN_0200C344 FUN_0200C344: ; 0x0200C344 push {r4, lr} ldr r0, [r0, #0x10] add r4, r2, #0x0 bl FUN_020094F0 add r1, r4, #0x0 bl FUN_02009E88 pop {r4, pc} .balign 4 thumb_func_start FUN_0200C358 FUN_0200C358: ; 0x0200C358 add r3, r0, #0x0 add r2, r1, #0x0 ldr r0, [r3, #0xc] ldr r1, [r3, #0x24] ldr r3, _0200C364 ; =FUN_0200C4F4 bx r3 .balign 4 _0200C364: .word FUN_0200C4F4 thumb_func_start FUN_0200C368 FUN_0200C368: ; 0x0200C368 add r3, r0, #0x0 add r2, r1, #0x0 ldr r0, [r3, #0x10] ldr r1, [r3, #0x28] ldr r3, _0200C374 ; =FUN_0200C548 bx r3 .balign 4 _0200C374: .word FUN_0200C548 thumb_func_start FUN_0200C378 FUN_0200C378: ; 0x0200C378 add r3, r0, #0x0 add r2, r1, #0x0 ldr r0, [r3, #0x14] ldr r1, [r3, #0x2c] ldr r3, _0200C384 ; =FUN_0200C4A8 bx r3 .balign 4 _0200C384: .word FUN_0200C4A8 thumb_func_start FUN_0200C388 FUN_0200C388: ; 0x0200C388 add r3, r0, #0x0 add r2, r1, #0x0 ldr r0, [r3, #0x18] ldr r1, [r3, #0x30] ldr r3, _0200C394 ; =FUN_0200C4A8 bx r3 .balign 4 _0200C394: .word FUN_0200C4A8 thumb_func_start FUN_0200C398 FUN_0200C398: ; 0x0200C398 push {r3-r7, lr} add r6, r1, #0x0 add r7, r0, #0x0 add r0, r6, #0x0 bl FUN_0200BC40 ldr r0, [r6, #0x24] bl FUN_02009C30 ldr r0, [r6, #0x28] bl FUN_02009E28 ldr r0, [r6, #0x54] mov r4, #0x0 cmp r0, #0x0 ble _0200C3D0 add r5, r6, #0x0 _0200C3BA: ldr r0, [r5, #0x24] bl FUN_02009448 ldr r0, [r5, #0xc] bl FUN_02008E2C ldr r0, [r6, #0x54] add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, r0 blt _0200C3BA _0200C3D0: add r0, r7, #0x0 add r1, r6, #0x0 bl FUN_0200BCD0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200C3DC FUN_0200C3DC: ; 0x0200C3DC push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0xc] cmp r0, #0x0 beq _0200C3EE ldr r0, [r4, #0x4] ldr r0, [r0, #0x0] bl FUN_02009CDC _0200C3EE: ldr r0, [r4, #0x0] bl FUN_0201FFC8 ldr r0, [r4, #0x8] bl FUN_02008C80 add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} .balign 4 thumb_func_start FUN_0200C404 FUN_0200C404: ; 0x0200C404 push {r4-r7, lr} sub sp, #0x14 add r6, r1, #0x0 add r7, r0, #0x0 ldr r0, [sp, #0x2c] add r5, r6, #0x0 lsl r4, r0, #0x2 add r5, #0xc ldr r0, [r5, r4] ldr r1, [sp, #0x30] str r2, [sp, #0xc] str r3, [sp, #0x10] bl FUN_0200945C cmp r0, #0x0 bne _0200C42A add sp, #0x14 mov r0, #0x0 pop {r4-r7, pc} _0200C42A: ldr r0, [sp, #0x30] ldr r1, [sp, #0xc] str r0, [sp, #0x0] ldr r0, [sp, #0x2c] ldr r2, [sp, #0x10] str r0, [sp, #0x4] ldr r0, [r7, #0x0] ldr r3, [sp, #0x28] str r0, [sp, #0x8] ldr r0, [r5, r4] bl FUN_020090AC add r5, r0, #0x0 beq _0200C460 add r0, r6, r4 ldr r0, [r0, #0x24] add r1, r5, #0x0 bl FUN_0200C474 add r4, r0, #0x0 cmp r4, #0x1 beq _0200C45A bl ErrorHandling _0200C45A: add sp, #0x14 add r0, r4, #0x0 pop {r4-r7, pc} _0200C460: bl ErrorHandling cmp r5, #0x0 beq _0200C46E add sp, #0x14 mov r0, #0x1 pop {r4-r7, pc} _0200C46E: mov r0, #0x0 add sp, #0x14 pop {r4-r7, pc} thumb_func_start FUN_0200C474 FUN_0200C474: ; 0x0200C474 push {r3-r6} ldr r6, [r0, #0x4] mov r3, #0x0 cmp r6, #0x0 ble _0200C4A0 ldr r5, [r0, #0x0] add r4, r5, #0x0 _0200C482: ldr r2, [r4, #0x0] cmp r2, #0x0 bne _0200C498 lsl r2, r3, #0x2 str r1, [r5, r2] ldr r1, [r0, #0x8] add r1, r1, #0x1 str r1, [r0, #0x8] mov r0, #0x1 pop {r3-r6} bx lr _0200C498: add r3, r3, #0x1 add r4, r4, #0x4 cmp r3, r6 blt _0200C482 _0200C4A0: mov r0, #0x0 pop {r3-r6} bx lr .balign 4 thumb_func_start FUN_0200C4A8 FUN_0200C4A8: ; 0x0200C4A8 push {r3-r7, lr} add r5, r1, #0x0 str r0, [sp, #0x0] ldr r0, [r5, #0x4] add r7, r2, #0x0 mov r6, #0x0 cmp r0, #0x0 ble _0200C4F0 add r4, r6, #0x0 _0200C4BA: ldr r0, [r5, #0x0] ldr r0, [r0, r4] cmp r0, #0x0 beq _0200C4E6 bl FUN_02009530 cmp r0, r7 bne _0200C4E6 ldr r1, [r5, #0x0] lsl r4, r6, #0x2 ldr r0, [sp, #0x0] ldr r1, [r1, r4] bl FUN_02009490 ldr r0, [r5, #0x0] mov r1, #0x0 str r1, [r0, r4] ldr r0, [r5, #0x8] sub r0, r0, #0x1 str r0, [r5, #0x8] mov r0, #0x1 pop {r3-r7, pc} _0200C4E6: ldr r0, [r5, #0x4] add r6, r6, #0x1 add r4, r4, #0x4 cmp r6, r0 blt _0200C4BA _0200C4F0: mov r0, #0x0 pop {r3-r7, pc} thumb_func_start FUN_0200C4F4 FUN_0200C4F4: ; 0x0200C4F4 push {r3-r7, lr} add r5, r1, #0x0 str r0, [sp, #0x0] ldr r0, [r5, #0x4] add r7, r2, #0x0 mov r6, #0x0 cmp r0, #0x0 ble _0200C542 add r4, r6, #0x0 _0200C506: ldr r0, [r5, #0x0] ldr r0, [r0, r4] cmp r0, #0x0 beq _0200C538 bl FUN_02009530 cmp r0, r7 bne _0200C538 add r0, r7, #0x0 bl FUN_0201D324 ldr r1, [r5, #0x0] lsl r4, r6, #0x2 ldr r0, [sp, #0x0] ldr r1, [r1, r4] bl FUN_02009490 ldr r0, [r5, #0x0] mov r1, #0x0 str r1, [r0, r4] ldr r0, [r5, #0x8] sub r0, r0, #0x1 str r0, [r5, #0x8] mov r0, #0x1 pop {r3-r7, pc} _0200C538: ldr r0, [r5, #0x4] add r6, r6, #0x1 add r4, r4, #0x4 cmp r6, r0 blt _0200C506 _0200C542: mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200C548 FUN_0200C548: ; 0x0200C548 push {r3-r7, lr} add r5, r1, #0x0 str r0, [sp, #0x0] ldr r0, [r5, #0x4] add r7, r2, #0x0 mov r6, #0x0 cmp r0, #0x0 ble _0200C596 add r4, r6, #0x0 _0200C55A: ldr r0, [r5, #0x0] ldr r0, [r0, r4] cmp r0, #0x0 beq _0200C58C bl FUN_02009530 cmp r0, r7 bne _0200C58C add r0, r7, #0x0 bl FUN_0201E1C8 ldr r1, [r5, #0x0] lsl r4, r6, #0x2 ldr r0, [sp, #0x0] ldr r1, [r1, r4] bl FUN_02009490 ldr r0, [r5, #0x0] mov r1, #0x0 str r1, [r0, r4] ldr r0, [r5, #0x8] sub r0, r0, #0x1 str r0, [r5, #0x8] mov r0, #0x1 pop {r3-r7, pc} _0200C58C: ldr r0, [r5, #0x4] add r6, r6, #0x1 add r4, r4, #0x4 cmp r6, r0 blt _0200C55A _0200C596: mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200C59C FUN_0200C59C: ; 0x0200C59C ldr r3, _0200C5A4 ; =FUN_020201E4 mov r1, #0x1 lsl r1, r1, #0xc bx r3 .balign 4 _0200C5A4: .word FUN_020201E4 thumb_func_start FUN_0200C5A8 FUN_0200C5A8: ; 0x0200C5A8 ldr r3, _0200C5B0 ; =0x0200C59D ldr r0, [r0, #0x0] bx r3 nop _0200C5B0: .word 0x0200C59D thumb_func_start FUN_0200C5B4 FUN_0200C5B4: ; 0x0200C5B4 ldr r3, _0200C5BC ; =FUN_020201E4 ldr r0, [r0, #0x0] bx r3 nop _0200C5BC: .word FUN_020201E4 thumb_func_start FUN_0200C5C0 FUN_0200C5C0: ; 0x0200C5C0 ldr r3, _0200C5C8 ; =FUN_02020130 ldr r0, [r0, #0x0] bx r3 nop _0200C5C8: .word FUN_02020130 thumb_func_start FUN_0200C5CC FUN_0200C5CC: ; 0x0200C5CC ldr r3, _0200C5D4 ; =FUN_020201DC ldr r0, [r0, #0x0] bx r3 nop _0200C5D4: .word FUN_020201DC thumb_func_start FUN_0200C5D8 FUN_0200C5D8: ; 0x0200C5D8 ldr r3, _0200C5DC ; =FUN_020200BC bx r3 .balign 4 _0200C5DC: .word FUN_020200BC thumb_func_start FUN_0200C5E0 FUN_0200C5E0: ; 0x0200C5E0 ldr r3, _0200C5E8 ; =FUN_0200C5D8 ldr r0, [r0, #0x0] bx r3 nop _0200C5E8: .word FUN_0200C5D8 thumb_func_start FUN_0200C5EC FUN_0200C5EC: ; 0x0200C5EC ldr r3, _0200C5F0 ; =FUN_020200D8 bx r3 .balign 4 _0200C5F0: .word FUN_020200D8 thumb_func_start FUN_0200C5F4 FUN_0200C5F4: ; 0x0200C5F4 ldr r3, _0200C5FC ; =FUN_0200C5EC ldr r0, [r0, #0x0] bx r3 nop _0200C5FC: .word FUN_0200C5EC thumb_func_start FUN_0200C600 FUN_0200C600: ; 0x0200C600 ldr r3, _0200C604 ; =FUN_02020388 bx r3 .balign 4 _0200C604: .word FUN_02020388 thumb_func_start FUN_0200C608 FUN_0200C608: ; 0x0200C608 ldr r3, _0200C610 ; =FUN_0200C600 ldr r0, [r0, #0x0] bx r3 nop _0200C610: .word FUN_0200C600 thumb_func_start FUN_0200C614 FUN_0200C614: ; 0x0200C614 ldr r3, _0200C618 ; =FUN_02020208 bx r3 .balign 4 _0200C618: .word FUN_02020208 thumb_func_start FUN_0200C61C FUN_0200C61C: ; 0x0200C61C ldr r3, _0200C624 ; =0x0200C615 ldr r0, [r0, #0x0] bx r3 nop _0200C624: .word 0x0200C615 thumb_func_start FUN_0200C628 FUN_0200C628: ; 0x0200C628 ldr r3, _0200C62C ; =FUN_0202022C bx r3 .balign 4 _0200C62C: .word FUN_0202022C thumb_func_start FUN_0200C630 FUN_0200C630: ; 0x0200C630 ldr r3, _0200C638 ; =FUN_0200C628 ldr r0, [r0, #0x0] bx r3 nop _0200C638: .word FUN_0200C628 thumb_func_start FUN_0200C63C FUN_0200C63C: ; 0x0200C63C ldr r3, _0200C640 ; =FUN_020200A0 bx r3 .balign 4 _0200C640: .word FUN_020200A0 thumb_func_start FUN_0200C644 FUN_0200C644: ; 0x0200C644 ldr r3, _0200C64C ; =FUN_0200C63C ldr r0, [r0, #0x0] bx r3 nop _0200C64C: .word FUN_0200C63C thumb_func_start FUN_0200C650 FUN_0200C650: ; 0x0200C650 ldr r3, _0200C654 ; =FUN_02020128 bx r3 .balign 4 _0200C654: .word FUN_02020128 thumb_func_start FUN_0200C658 FUN_0200C658: ; 0x0200C658 ldr r3, _0200C660 ; =FUN_0200C650 ldr r0, [r0, #0x0] bx r3 nop _0200C660: .word FUN_0200C650 thumb_func_start FUN_0200C664 FUN_0200C664: ; 0x0200C664 ldr r3, _0200C668 ; =FUN_02020248 bx r3 .balign 4 _0200C668: .word FUN_02020248 thumb_func_start FUN_0200C66C FUN_0200C66C: ; 0x0200C66C ldr r3, _0200C674 ; =FUN_0200C664 ldr r0, [r0, #0x0] bx r3 nop _0200C674: .word FUN_0200C664 thumb_func_start FUN_0200C678 FUN_0200C678: ; 0x0200C678 ldr r3, _0200C67C ; =FUN_020202A8 bx r3 .balign 4 _0200C67C: .word FUN_020202A8 thumb_func_start FUN_0200C680 FUN_0200C680: ; 0x0200C680 ldr r3, _0200C688 ; =FUN_0200C678 ldr r0, [r0, #0x0] bx r3 nop _0200C688: .word FUN_0200C678 thumb_func_start FUN_0200C68C FUN_0200C68C: ; 0x0200C68C ldr r3, _0200C694 ; =FUN_02020300 ldr r0, [r0, #0x0] bx r3 nop _0200C694: .word FUN_02020300 thumb_func_start FUN_0200C698 FUN_0200C698: ; 0x0200C698 ldr r3, _0200C6A0 ; =FUN_02020238 lsl r1, r1, #0x18 lsr r1, r1, #0x18 bx r3 .balign 4 _0200C6A0: .word FUN_02020238 thumb_func_start FUN_0200C6A4 FUN_0200C6A4: ; 0x0200C6A4 ldr r3, _0200C6AC ; =0x02020241 ldr r0, [r0, #0x0] bx r3 nop _0200C6AC: .word 0x02020241 thumb_func_start FUN_0200C6B0 FUN_0200C6B0: ; 0x0200C6B0 ldr r3, _0200C6B8 ; =FUN_0200C698 ldr r0, [r0, #0x0] bx r3 nop _0200C6B8: .word FUN_0200C698 thumb_func_start FUN_0200C6BC FUN_0200C6BC: ; 0x0200C6BC ldr r3, _0200C6C0 ; =FUN_02020310 bx r3 .balign 4 _0200C6C0: .word FUN_02020310 thumb_func_start FUN_0200C6C4 FUN_0200C6C4: ; 0x0200C6C4 ldr r3, _0200C6CC ; =FUN_0200C6BC ldr r0, [r0, #0x0] bx r3 nop _0200C6CC: .word FUN_0200C6BC thumb_func_start FUN_0200C6D0 FUN_0200C6D0: ; 0x0200C6D0 ldr r3, _0200C6D4 ; =FUN_0202032C bx r3 .balign 4 _0200C6D4: .word FUN_0202032C thumb_func_start FUN_0200C6D8 FUN_0200C6D8: ; 0x0200C6D8 ldr r3, _0200C6E0 ; =FUN_0200C6D0 ldr r0, [r0, #0x0] bx r3 nop _0200C6E0: .word FUN_0200C6D0 thumb_func_start FUN_0200C6E4 FUN_0200C6E4: ; 0x0200C6E4 push {r3-r4, lr} sub sp, #0xc lsl r1, r1, #0xc str r1, [sp, #0x0] lsl r1, r2, #0xc add r4, r0, #0x0 str r1, [sp, #0x4] bl FUN_02020380 cmp r0, #0x2 bne _0200C704 mov r0, #0x3 ldr r1, [sp, #0x4] lsl r0, r0, #0x12 add r0, r1, r0 str r0, [sp, #0x4] _0200C704: mov r0, #0x0 str r0, [sp, #0x8] add r0, r4, #0x0 add r1, sp, #0x0 bl FUN_02020044 add sp, #0xc pop {r3-r4, pc} thumb_func_start FUN_0200C714 FUN_0200C714: ; 0x0200C714 ldr r3, _0200C71C ; =FUN_0200C6E4 ldr r0, [r0, #0x0] bx r3 nop _0200C71C: .word FUN_0200C6E4 thumb_func_start FUN_0200C720 FUN_0200C720: ; 0x0200C720 push {r4-r5, lr} sub sp, #0xc lsl r1, r1, #0xc str r1, [sp, #0x0] lsl r1, r2, #0xc add r5, r0, #0x0 add r4, r3, #0x0 str r1, [sp, #0x4] bl FUN_02020380 cmp r0, #0x2 bne _0200C73E ldr r0, [sp, #0x4] add r0, r0, r4 str r0, [sp, #0x4] _0200C73E: mov r0, #0x0 str r0, [sp, #0x8] add r0, r5, #0x0 add r1, sp, #0x0 bl FUN_02020044 add sp, #0xc pop {r4-r5, pc} .balign 4 thumb_func_start FUN_0200C750 FUN_0200C750: ; 0x0200C750 push {r3, lr} ldr r0, [r0, #0x0] bl FUN_0200C720 pop {r3, pc} .balign 4 thumb_func_start FUN_0200C75C FUN_0200C75C: ; 0x0200C75C push {r3-r7, lr} add r7, r0, #0x0 add r6, r1, #0x0 add r5, r2, #0x0 bl FUN_0202011C add r4, r0, #0x0 ldr r1, [r4, #0x0] asr r0, r1, #0xb lsr r0, r0, #0x14 add r0, r1, r0 asr r0, r0, #0xc strh r0, [r6, #0x0] add r0, r7, #0x0 bl FUN_02020380 cmp r0, #0x2 ldr r1, [r4, #0x4] bne _0200C794 mov r0, #0x3 lsl r0, r0, #0x12 sub r1, r1, r0 asr r0, r1, #0xb lsr r0, r0, #0x14 add r0, r1, r0 asr r0, r0, #0xc strh r0, [r5, #0x0] pop {r3-r7, pc} _0200C794: asr r0, r1, #0xb lsr r0, r0, #0x14 add r0, r1, r0 asr r0, r0, #0xc strh r0, [r5, #0x0] pop {r3-r7, pc} thumb_func_start FUN_0200C7A0 FUN_0200C7A0: ; 0x0200C7A0 ldr r3, _0200C7A8 ; =FUN_0200C75C ldr r0, [r0, #0x0] bx r3 nop _0200C7A8: .word FUN_0200C75C thumb_func_start FUN_0200C7AC FUN_0200C7AC: ; 0x0200C7AC push {r3-r7, lr} str r0, [sp, #0x0] add r6, r1, #0x0 add r5, r2, #0x0 add r7, r3, #0x0 bl FUN_0202011C add r4, r0, #0x0 ldr r1, [r4, #0x0] asr r0, r1, #0xb lsr r0, r0, #0x14 add r0, r1, r0 asr r0, r0, #0xc strh r0, [r6, #0x0] ldr r0, [sp, #0x0] bl FUN_02020380 cmp r0, #0x2 bne _0200C7E2 ldr r0, [r4, #0x4] sub r1, r0, r7 asr r0, r1, #0xb lsr r0, r0, #0x14 add r0, r1, r0 asr r0, r0, #0xc strh r0, [r5, #0x0] pop {r3-r7, pc} _0200C7E2: ldr r1, [r4, #0x4] asr r0, r1, #0xb lsr r0, r0, #0x14 add r0, r1, r0 asr r0, r0, #0xc strh r0, [r5, #0x0] pop {r3-r7, pc} thumb_func_start FUN_0200C7F0 FUN_0200C7F0: ; 0x0200C7F0 push {r3, lr} ldr r0, [r0, #0x0] bl FUN_0200C7AC pop {r3, pc} .balign 4 thumb_func_start FUN_0200C7FC FUN_0200C7FC: ; 0x0200C7FC push {r3-r6, lr} sub sp, #0xc add r6, r0, #0x0 add r5, r1, #0x0 add r4, r2, #0x0 bl FUN_0202011C ldr r2, [r0, #0x0] lsl r1, r5, #0xc add r1, r2, r1 str r1, [sp, #0x0] ldr r2, [r0, #0x4] lsl r1, r4, #0xc add r1, r2, r1 str r1, [sp, #0x4] ldr r0, [r0, #0x8] add r1, sp, #0x0 str r0, [sp, #0x8] add r0, r6, #0x0 bl FUN_02020044 add sp, #0xc pop {r3-r6, pc} .balign 4 thumb_func_start FUN_0200C82C FUN_0200C82C: ; 0x0200C82C ldr r3, _0200C834 ; =FUN_0200C7FC ldr r0, [r0, #0x0] bx r3 nop _0200C834: .word FUN_0200C7FC thumb_func_start FUN_0200C838 FUN_0200C838: ; 0x0200C838 ldr r3, _0200C83C ; =FUN_020200EC bx r3 .balign 4 _0200C83C: .word FUN_020200EC thumb_func_start FUN_0200C840 FUN_0200C840: ; 0x0200C840 ldr r3, _0200C848 ; =0x0200C839 ldr r0, [r0, #0x0] bx r3 nop _0200C848: .word 0x0200C839 thumb_func_start FUN_0200C84C FUN_0200C84C: ; 0x0200C84C push {r3-r7, lr} add r5, r0, #0x0 add r6, r1, #0x0 add r7, r2, #0x0 bl FUN_02020120 add r4, r0, #0x0 ldr r0, _0200C880 ; =0x45800000 add r1, r6, #0x0 blx FUN_020EB5C4 blx FUN_020EB4C0 str r0, [r4, #0x0] ldr r0, _0200C880 ; =0x45800000 add r1, r7, #0x0 blx FUN_020EB5C4 blx FUN_020EB4C0 str r0, [r4, #0x4] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02020064 pop {r3-r7, pc} .balign 4 _0200C880: .word 0x45800000 thumb_func_start FUN_0200C884 FUN_0200C884: ; 0x0200C884 ldr r3, _0200C88C ; =FUN_0200C84C ldr r0, [r0, #0x0] bx r3 nop _0200C88C: .word FUN_0200C84C thumb_func_start FUN_0200C890 FUN_0200C890: ; 0x0200C890 ldr r3, _0200C894 ; =FUN_02020088 bx r3 .balign 4 _0200C894: .word FUN_02020088 thumb_func_start FUN_0200C898 FUN_0200C898: ; 0x0200C898 ldr r3, _0200C8A0 ; =FUN_0200C890 ldr r0, [r0, #0x0] bx r3 nop _0200C8A0: .word FUN_0200C890 thumb_func_start FUN_0200C8A4 FUN_0200C8A4: ; 0x0200C8A4 push {r3-r5, lr} add r5, r1, #0x0 add r4, r0, #0x0 bl FUN_02020124 add r0, r0, r5 lsl r0, r0, #0x10 lsr r1, r0, #0x10 add r0, r4, #0x0 bl FUN_02020088 pop {r3-r5, pc} thumb_func_start FUN_0200C8BC FUN_0200C8BC: ; 0x0200C8BC ldr r3, _0200C8C4 ; =FUN_0200C8A4 ldr r0, [r0, #0x0] bx r3 nop _0200C8C4: .word FUN_0200C8A4 thumb_func_start FUN_0200C8C8 FUN_0200C8C8: ; 0x0200C8C8 ldr r3, _0200C8CC ; =FUN_02020100 bx r3 .balign 4 _0200C8CC: .word FUN_02020100 thumb_func_start FUN_0200C8D0 FUN_0200C8D0: ; 0x0200C8D0 ldr r3, _0200C8D8 ; =FUN_0200C8C8 ldr r0, [r0, #0x0] bx r3 nop _0200C8D8: .word FUN_0200C8C8 thumb_func_start FUN_0200C8DC FUN_0200C8DC: ; 0x0200C8DC push {lr} sub sp, #0xc lsl r1, r1, #0xc str r1, [sp, #0x0] lsl r1, r2, #0xc str r1, [sp, #0x4] mov r1, #0x0 str r1, [sp, #0x8] ldr r0, [r0, #0x0] add r1, sp, #0x0 bl FUN_02020054 add sp, #0xc pop {pc} thumb_func_start FUN_0200C8F8 FUN_0200C8F8: ; 0x0200C8F8 ldr r3, _0200C900 ; =0x02020359 ldr r0, [r0, #0x0] bx r3 nop _0200C900: .word 0x02020359 thumb_func_start FUN_0200C904 FUN_0200C904: ; 0x0200C904 ldr r3, _0200C908 ; =FUN_02020398 bx r3 .balign 4 _0200C908: .word FUN_02020398 thumb_func_start FUN_0200C90C FUN_0200C90C: ; 0x0200C90C ldr r3, _0200C914 ; =FUN_0200C904 ldr r0, [r0, #0x0] bx r3 nop _0200C914: .word FUN_0200C904 thumb_func_start FUN_0200C918 FUN_0200C918: ; 0x0200C918 push {r4-r7, lr} sub sp, #0xc add r4, r1, #0x0 add r5, r0, #0x0 ldr r0, [r4, #0xc] ldr r1, [sp, #0x28] add r6, r2, #0x0 add r7, r3, #0x0 bl FUN_0200945C cmp r0, #0x0 bne _0200C936 add sp, #0xc mov r0, #0x0 pop {r4-r7, pc} _0200C936: ldr r0, [sp, #0x28] ldr r3, [sp, #0x20] str r0, [sp, #0x0] ldr r0, [sp, #0x24] add r1, r6, #0x0 str r0, [sp, #0x4] ldr r0, [r5, #0x0] add r2, r7, #0x0 str r0, [sp, #0x8] ldr r0, [r4, #0xc] bl FUN_02008F34 add r5, r0, #0x0 beq _0200C964 bl FUN_02009AC4 ldr r0, [r4, #0x24] add r1, r5, #0x0 bl FUN_0200C474 add sp, #0xc mov r0, #0x1 pop {r4-r7, pc} _0200C964: bl ErrorHandling cmp r5, #0x0 beq _0200C972 add sp, #0xc mov r0, #0x1 pop {r4-r7, pc} _0200C972: mov r0, #0x0 add sp, #0xc pop {r4-r7, pc} thumb_func_start FUN_0200C978 FUN_0200C978: ; 0x0200C978 push {r4-r7, lr} sub sp, #0xc add r4, r1, #0x0 add r5, r0, #0x0 ldr r0, [r4, #0xc] ldr r1, [sp, #0x28] add r6, r2, #0x0 add r7, r3, #0x0 bl FUN_0200945C cmp r0, #0x0 bne _0200C996 add sp, #0xc mov r0, #0x0 pop {r4-r7, pc} _0200C996: ldr r0, [sp, #0x28] ldr r3, [sp, #0x20] str r0, [sp, #0x0] ldr r0, [sp, #0x24] add r1, r6, #0x0 str r0, [sp, #0x4] ldr r0, [r5, #0x0] add r2, r7, #0x0 str r0, [sp, #0x8] ldr r0, [r4, #0xc] bl FUN_02008F34 add r5, r0, #0x0 beq _0200C9C4 bl FUN_02009B78 ldr r0, [r4, #0x24] add r1, r5, #0x0 bl FUN_0200C474 add sp, #0xc mov r0, #0x1 pop {r4-r7, pc} _0200C9C4: bl ErrorHandling cmp r5, #0x0 beq _0200C9D2 add sp, #0xc mov r0, #0x1 pop {r4-r7, pc} _0200C9D2: mov r0, #0x0 add sp, #0xc pop {r4-r7, pc} thumb_func_start FUN_0200C9D8 FUN_0200C9D8: ; 0x0200C9D8 push {r4-r7, lr} sub sp, #0xc add r4, r1, #0x0 add r5, r0, #0x0 ldr r0, [r4, #0xc] ldr r1, [sp, #0x24] add r7, r2, #0x0 str r3, [sp, #0x8] bl FUN_020094F0 add r6, r0, #0x0 ldr r0, [sp, #0x20] ldr r3, [sp, #0x8] str r0, [sp, #0x0] ldr r0, [r5, #0x0] add r1, r6, #0x0 str r0, [sp, #0x4] ldr r0, [r4, #0xc] add r2, r7, #0x0 bl FUN_020090FC add r0, r6, #0x0 bl FUN_02009BE8 add sp, #0xc pop {r4-r7, pc} thumb_func_start FUN_0200CA0C FUN_0200CA0C: ; 0x0200CA0C push {r4-r7, lr} sub sp, #0xc add r4, r1, #0x0 add r5, r0, #0x0 ldr r0, [r4, #0x10] ldr r1, [sp, #0x24] add r7, r2, #0x0 str r3, [sp, #0x8] bl FUN_020094F0 add r6, r0, #0x0 ldr r0, [sp, #0x20] ldr r3, [sp, #0x8] str r0, [sp, #0x0] ldr r0, [r5, #0x0] add r1, r6, #0x0 str r0, [sp, #0x4] ldr r0, [r4, #0x10] add r2, r7, #0x0 bl FUN_02009168 add r0, r6, #0x0 bl FUN_02009DE0 add sp, #0xc pop {r4-r7, pc} thumb_func_start FUN_0200CA40 FUN_0200CA40: ; 0x0200CA40 ldr r0, [r0, #0x0] bx lr thumb_func_start FUN_0200CA44 FUN_0200CA44: ; 0x0200CA44 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _0200CA5C ; =0x021C48B8 add r4, r1, #0x0 add r3, r2, #0x0 ldr r0, [r0, #0x18] add r1, r5, #0x0 add r2, r4, #0x0 bl FUN_0201B60C pop {r3-r5, pc} nop _0200CA5C: .word 0x021C48B8 thumb_func_start FUN_0200CA60 FUN_0200CA60: ; 0x0200CA60 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _0200CA78 ; =0x021C48B8 add r4, r1, #0x0 add r3, r2, #0x0 ldr r0, [r0, #0x1c] add r1, r5, #0x0 add r2, r4, #0x0 bl FUN_0201B60C pop {r3-r5, pc} nop _0200CA78: .word 0x021C48B8 thumb_func_start FUN_0200CA7C FUN_0200CA7C: ; 0x0200CA7C push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _0200CA94 ; =0x021C48B8 add r4, r1, #0x0 add r3, r2, #0x0 ldr r0, [r0, #0x24] add r1, r5, #0x0 add r2, r4, #0x0 bl FUN_0201B60C pop {r3-r5, pc} nop _0200CA94: .word 0x021C48B8 thumb_func_start FUN_0200CA98 FUN_0200CA98: ; 0x0200CA98 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _0200CAB0 ; =0x021C48B8 add r4, r1, #0x0 add r3, r2, #0x0 ldr r0, [r0, #0x20] add r1, r5, #0x0 add r2, r4, #0x0 bl FUN_0201B60C pop {r3-r5, pc} nop _0200CAB0: .word 0x021C48B8 thumb_func_start FUN_0200CAB4 FUN_0200CAB4: ; 0x0200CAB4 ldr r3, _0200CAB8 ; =FUN_0201B6A0 bx r3 .balign 4 _0200CAB8: .word FUN_0201B6A0 thumb_func_start FUN_0200CABC FUN_0200CABC: ; 0x0200CABC push {r3-r5, lr} sub sp, #0x10 add r5, r0, #0x0 add r4, r1, #0x0 cmp r3, #0x0 str r2, [sp, #0x0] bne _0200CAE2 mov r1, #0x0 str r1, [sp, #0x4] ldr r0, [sp, #0x20] str r1, [sp, #0x8] str r0, [sp, #0xc] mov r0, #0x26 add r2, r5, #0x0 add r3, r4, #0x0 bl FUN_0200687C add sp, #0x10 pop {r3-r5, pc} _0200CAE2: mov r0, #0x0 str r0, [sp, #0x4] str r0, [sp, #0x8] ldr r0, [sp, #0x20] mov r1, #0x1 str r0, [sp, #0xc] mov r0, #0x26 add r2, r5, #0x0 add r3, r4, #0x0 bl FUN_0200687C add sp, #0x10 pop {r3-r5, pc} thumb_func_start FUN_0200CAFC FUN_0200CAFC: ; 0x0200CAFC mov r0, #0x18 bx lr thumb_func_start FUN_0200CB00 FUN_0200CB00: ; 0x0200CB00 push {r4-r6, lr} sub sp, #0x10 add r6, r0, #0x0 add r0, sp, #0x10 ldrb r0, [r0, #0x10] add r5, r1, #0x0 add r4, r3, #0x0 cmp r0, #0x0 beq _0200CB16 mov r1, #0x1 b _0200CB18 _0200CB16: mov r1, #0x0 _0200CB18: str r2, [sp, #0x0] mov r0, #0x0 str r0, [sp, #0x4] str r0, [sp, #0x8] ldr r0, [sp, #0x24] add r2, r6, #0x0 str r0, [sp, #0xc] mov r0, #0x26 add r3, r5, #0x0 bl FUN_0200687C add r0, sp, #0x10 ldrb r0, [r0, #0x10] cmp r0, #0x2 bne _0200CB3A mov r1, #0x2d b _0200CB3C _0200CB3A: mov r1, #0x18 _0200CB3C: cmp r5, #0x4 bhs _0200CB56 mov r0, #0x20 str r0, [sp, #0x0] ldr r0, [sp, #0x24] mov r2, #0x0 str r0, [sp, #0x4] mov r0, #0x26 lsl r3, r4, #0x5 bl FUN_02006930 add sp, #0x10 pop {r4-r6, pc} _0200CB56: mov r0, #0x20 str r0, [sp, #0x0] ldr r0, [sp, #0x24] mov r2, #0x4 str r0, [sp, #0x4] mov r0, #0x26 lsl r3, r4, #0x5 bl FUN_02006930 add sp, #0x10 pop {r4-r6, pc} thumb_func_start FUN_0200CB6C FUN_0200CB6C: ; 0x0200CB6C push {r4-r7, lr} sub sp, #0x24 str r1, [sp, #0x14] str r2, [sp, #0x18] str r3, [sp, #0x1c] ldr r2, [sp, #0x1c] ldr r5, [sp, #0x40] sub r7, r2, #0x1 ldr r2, [sp, #0x18] str r0, [sp, #0x10] sub r6, r2, #0x1 lsl r2, r7, #0x18 lsr r2, r2, #0x18 str r2, [sp, #0x0] mov r2, #0x1 str r2, [sp, #0x4] str r2, [sp, #0x8] lsl r3, r6, #0x18 str r5, [sp, #0xc] add r2, sp, #0x28 ldrh r2, [r2, #0x1c] lsr r3, r3, #0x18 bl FUN_02018540 add r1, sp, #0x28 ldrh r4, [r1, #0x1c] lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] ldrb r0, [r1, #0x10] add r2, r4, #0x1 lsl r2, r2, #0x10 str r0, [sp, #0x4] mov r0, #0x1 str r0, [sp, #0x8] str r5, [sp, #0xc] ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] ldr r3, [sp, #0x18] lsr r2, r2, #0x10 bl FUN_02018540 add r0, sp, #0x28 ldrb r1, [r0, #0x10] ldr r0, [sp, #0x18] add r2, r4, #0x2 add r0, r0, r1 str r0, [sp, #0x20] lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] ldr r3, [sp, #0x20] str r5, [sp, #0xc] lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r0, [sp, #0x1c] add r2, r4, #0x3 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] add r0, sp, #0x28 ldrb r0, [r0, #0x14] lsl r2, r2, #0x10 lsl r3, r6, #0x18 str r0, [sp, #0x8] str r5, [sp, #0xc] ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r0, [sp, #0x1c] ldr r3, [sp, #0x20] str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] add r0, sp, #0x28 ldrb r0, [r0, #0x14] add r2, r4, #0x5 lsl r2, r2, #0x10 str r0, [sp, #0x8] str r5, [sp, #0xc] lsl r3, r3, #0x18 ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 add r0, sp, #0x28 ldrb r1, [r0, #0x14] ldr r0, [sp, #0x1c] add r2, r4, #0x6 add r7, r0, r1 lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] str r5, [sp, #0xc] lsl r2, r2, #0x10 lsl r3, r6, #0x18 ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] add r0, sp, #0x28 ldrb r0, [r0, #0x10] add r2, r4, #0x7 lsl r2, r2, #0x10 str r0, [sp, #0x4] mov r0, #0x1 str r0, [sp, #0x8] str r5, [sp, #0xc] ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] ldr r3, [sp, #0x18] lsr r2, r2, #0x10 bl FUN_02018540 lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] ldr r3, [sp, #0x20] str r5, [sp, #0xc] add r4, #0x8 lsl r2, r4, #0x10 lsl r3, r3, #0x18 ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 add sp, #0x24 pop {r4-r7, pc} .balign 4 thumb_func_start FUN_0200CCA4 FUN_0200CCA4: ; 0x0200CCA4 push {r3-r7, lr} sub sp, #0x20 add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 add r7, r3, #0x0 bl FUN_0201AB08 str r0, [sp, #0x10] add r0, r5, #0x0 bl FUN_0201AB14 str r0, [sp, #0x14] add r0, r5, #0x0 bl FUN_0201AB18 str r0, [sp, #0x18] add r0, r5, #0x0 bl FUN_0201AB0C str r0, [sp, #0x1c] add r0, r5, #0x0 bl FUN_0201AB10 ldr r1, [sp, #0x1c] ldr r2, [sp, #0x14] str r1, [sp, #0x0] str r0, [sp, #0x4] str r7, [sp, #0x8] str r6, [sp, #0xc] ldr r0, [r5, #0x0] ldr r1, [sp, #0x10] ldr r3, [sp, #0x18] bl FUN_0200CB6C cmp r4, #0x0 bne _0200CCF4 add r0, r5, #0x0 bl FUN_020191D0 _0200CCF4: add sp, #0x20 pop {r3-r7, pc} thumb_func_start FUN_0200CCF8 FUN_0200CCF8: ; 0x0200CCF8 push {r3-r7, lr} sub sp, #0x18 add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_0201AB08 str r0, [sp, #0x10] add r0, r5, #0x0 bl FUN_0201AB14 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_0201AB18 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_0201AB0C str r0, [sp, #0x14] add r0, r5, #0x0 bl FUN_0201AB10 sub r1, r7, #0x1 lsl r1, r1, #0x18 lsr r1, r1, #0x18 str r1, [sp, #0x0] ldr r1, [sp, #0x14] add r0, r0, #0x2 add r1, r1, #0x2 lsl r1, r1, #0x18 lsr r1, r1, #0x18 lsl r0, r0, #0x18 str r1, [sp, #0x4] lsr r0, r0, #0x18 sub r3, r6, #0x1 lsl r3, r3, #0x18 str r0, [sp, #0x8] mov r2, #0x0 str r2, [sp, #0xc] ldr r0, [r5, #0x0] ldr r1, [sp, #0x10] lsr r3, r3, #0x18 bl FUN_02018540 cmp r4, #0x0 bne _0200CD5A add r0, r5, #0x0 bl FUN_02019570 _0200CD5A: add sp, #0x18 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200CD60 FUN_0200CD60: ; 0x0200CD60 add r0, r0, #0x2 bx lr thumb_func_start FUN_0200CD64 FUN_0200CD64: ; 0x0200CD64 add r0, #0x19 bx lr thumb_func_start FUN_0200CD68 FUN_0200CD68: ; 0x0200CD68 push {r4-r7, lr} sub sp, #0x14 str r0, [sp, #0x10] add r0, sp, #0x18 ldrb r7, [r0, #0x10] add r6, r2, #0x0 add r5, r1, #0x0 add r0, r7, #0x0 add r4, r3, #0x0 bl FUN_0200CD60 add r1, r0, #0x0 str r6, [sp, #0x0] mov r0, #0x0 str r0, [sp, #0x4] str r0, [sp, #0x8] ldr r0, [sp, #0x2c] ldr r2, [sp, #0x10] str r0, [sp, #0xc] mov r0, #0x26 add r3, r5, #0x0 bl FUN_0200687C cmp r5, #0x4 bhs _0200CDB8 add r0, r7, #0x0 bl FUN_0200CD64 add r1, r0, #0x0 mov r0, #0x20 str r0, [sp, #0x0] ldr r0, [sp, #0x2c] mov r2, #0x0 str r0, [sp, #0x4] mov r0, #0x26 lsl r3, r4, #0x5 bl FUN_02006930 add sp, #0x14 pop {r4-r7, pc} _0200CDB8: add r0, r7, #0x0 bl FUN_0200CD64 add r1, r0, #0x0 mov r0, #0x20 str r0, [sp, #0x0] ldr r0, [sp, #0x2c] mov r2, #0x4 str r0, [sp, #0x4] mov r0, #0x26 lsl r3, r4, #0x5 bl FUN_02006930 add sp, #0x14 pop {r4-r7, pc} .balign 4 thumb_func_start FUN_0200CDD8 FUN_0200CDD8: ; 0x0200CDD8 push {r3-r7, lr} sub sp, #0x30 str r1, [sp, #0x10] str r2, [sp, #0x14] str r3, [sp, #0x18] ldr r2, [sp, #0x4c] add r7, r0, #0x0 str r2, [sp, #0x4c] ldr r2, [sp, #0x18] ldr r5, [sp, #0x50] sub r6, r2, #0x1 ldr r2, [sp, #0x14] sub r2, r2, #0x2 str r2, [sp, #0x28] lsl r2, r6, #0x18 lsr r2, r2, #0x18 str r2, [sp, #0x0] mov r2, #0x1 str r2, [sp, #0x4] str r2, [sp, #0x8] ldr r3, [sp, #0x28] str r5, [sp, #0xc] add r2, sp, #0x38 lsl r3, r3, #0x18 ldrh r2, [r2, #0x1c] lsr r3, r3, #0x18 bl FUN_02018540 ldr r0, [sp, #0x14] sub r0, r0, #0x1 str r0, [sp, #0x24] add r0, sp, #0x38 ldrh r4, [r0, #0x1c] lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] ldr r3, [sp, #0x24] str r5, [sp, #0xc] add r2, r4, #0x1 lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r1, [sp, #0x10] add r0, r7, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] add r0, sp, #0x38 ldrb r0, [r0, #0x10] add r2, r4, #0x2 lsl r2, r2, #0x10 str r0, [sp, #0x4] mov r0, #0x1 str r0, [sp, #0x8] str r5, [sp, #0xc] ldr r1, [sp, #0x10] ldr r3, [sp, #0x14] add r0, r7, #0x0 lsr r2, r2, #0x10 bl FUN_02018540 add r0, sp, #0x38 ldrb r1, [r0, #0x10] ldr r0, [sp, #0x14] add r2, r4, #0x3 add r0, r0, r1 str r0, [sp, #0x2c] lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] ldr r3, [sp, #0x2c] str r5, [sp, #0xc] lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r1, [sp, #0x10] add r0, r7, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r0, [sp, #0x2c] add r2, r4, #0x4 add r0, r0, #0x1 str r0, [sp, #0x20] lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] ldr r3, [sp, #0x20] str r5, [sp, #0xc] lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r1, [sp, #0x10] add r0, r7, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r0, [sp, #0x2c] add r2, r4, #0x5 add r0, r0, #0x2 str r0, [sp, #0x1c] lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] ldr r3, [sp, #0x1c] str r5, [sp, #0xc] lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r1, [sp, #0x10] add r0, r7, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r0, [sp, #0x18] ldr r3, [sp, #0x28] str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] ldr r0, [sp, #0x4c] add r2, r4, #0x6 str r0, [sp, #0x8] str r5, [sp, #0xc] lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r1, [sp, #0x10] add r0, r7, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r0, [sp, #0x18] ldr r3, [sp, #0x24] str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] ldr r0, [sp, #0x4c] add r2, r4, #0x7 str r0, [sp, #0x8] str r5, [sp, #0xc] lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r1, [sp, #0x10] add r0, r7, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r0, [sp, #0x18] add r2, r4, #0x0 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] ldr r0, [sp, #0x4c] ldr r3, [sp, #0x2c] str r0, [sp, #0x8] str r5, [sp, #0xc] add r2, #0x9 lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r1, [sp, #0x10] add r0, r7, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r0, [sp, #0x18] add r2, r4, #0x0 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] ldr r0, [sp, #0x4c] ldr r3, [sp, #0x20] str r0, [sp, #0x8] str r5, [sp, #0xc] add r2, #0xa lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r1, [sp, #0x10] add r0, r7, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r0, [sp, #0x18] add r2, r4, #0x0 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] ldr r0, [sp, #0x4c] ldr r3, [sp, #0x1c] str r0, [sp, #0x8] str r5, [sp, #0xc] add r2, #0xb lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r1, [sp, #0x10] add r0, r7, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 add r2, r4, #0x0 ldr r3, [sp, #0x28] add r2, #0xc lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r1, [sp, #0x18] ldr r0, [sp, #0x4c] lsr r2, r2, #0x10 add r6, r1, r0 lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] str r5, [sp, #0xc] ldr r1, [sp, #0x10] add r0, r7, #0x0 lsr r3, r3, #0x18 bl FUN_02018540 lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] add r2, r4, #0x0 ldr r3, [sp, #0x24] str r5, [sp, #0xc] add r2, #0xd lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r1, [sp, #0x10] add r0, r7, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] add r0, sp, #0x38 ldrb r0, [r0, #0x10] add r2, r4, #0x0 add r2, #0xe str r0, [sp, #0x4] mov r0, #0x1 str r0, [sp, #0x8] str r5, [sp, #0xc] lsl r2, r2, #0x10 ldr r1, [sp, #0x10] ldr r3, [sp, #0x14] add r0, r7, #0x0 lsr r2, r2, #0x10 bl FUN_02018540 lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] add r2, r4, #0x0 ldr r3, [sp, #0x2c] str r5, [sp, #0xc] add r2, #0xf lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r1, [sp, #0x10] add r0, r7, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] add r2, r4, #0x0 ldr r3, [sp, #0x20] str r5, [sp, #0xc] add r2, #0x10 lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r1, [sp, #0x10] add r0, r7, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] ldr r3, [sp, #0x1c] str r5, [sp, #0xc] add r4, #0x11 lsl r2, r4, #0x10 lsl r3, r3, #0x18 ldr r1, [sp, #0x10] add r0, r7, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 add sp, #0x30 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200D06C FUN_0200D06C: ; 0x0200D06C push {r4-r7, lr} sub sp, #0x1c add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 bl FUN_0201AB08 str r0, [sp, #0x10] add r0, r5, #0x0 bl FUN_0201AB14 str r0, [sp, #0x14] add r0, r5, #0x0 bl FUN_0201AB18 str r0, [sp, #0x18] add r0, r5, #0x0 bl FUN_0201AB0C add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_0201AB10 str r7, [sp, #0x0] str r0, [sp, #0x4] lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x8] lsl r0, r4, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0xc] ldr r0, [r5, #0x0] ldr r1, [sp, #0x10] ldr r2, [sp, #0x14] ldr r3, [sp, #0x18] bl FUN_0200CDD8 add sp, #0x1c pop {r4-r7, pc} .balign 4 thumb_func_start FUN_0200D0BC FUN_0200D0BC: ; 0x0200D0BC push {r4-r6, lr} add r6, r2, #0x0 add r4, r1, #0x0 add r1, r6, #0x0 add r2, r3, #0x0 add r5, r0, #0x0 bl FUN_0200D06C cmp r4, #0x0 bne _0200D0D6 add r0, r5, #0x0 bl FUN_020191D0 _0200D0D6: add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_0200D18C pop {r4-r6, pc} thumb_func_start FUN_0200D0E0 FUN_0200D0E0: ; 0x0200D0E0 push {r3-r7, lr} sub sp, #0x18 add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_0201AB08 str r0, [sp, #0x10] add r0, r5, #0x0 bl FUN_0201AB14 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_0201AB18 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_0201AB0C str r0, [sp, #0x14] add r0, r5, #0x0 bl FUN_0201AB10 sub r1, r7, #0x1 lsl r1, r1, #0x18 lsr r1, r1, #0x18 str r1, [sp, #0x0] ldr r1, [sp, #0x14] add r0, r0, #0x2 add r1, r1, #0x5 lsl r1, r1, #0x18 lsr r1, r1, #0x18 lsl r0, r0, #0x18 str r1, [sp, #0x4] lsr r0, r0, #0x18 sub r3, r6, #0x2 lsl r3, r3, #0x18 str r0, [sp, #0x8] mov r2, #0x0 str r2, [sp, #0xc] ldr r0, [r5, #0x0] ldr r1, [sp, #0x10] lsr r3, r3, #0x18 bl FUN_02018540 cmp r4, #0x0 bne _0200D142 add r0, r5, #0x0 bl FUN_02019570 _0200D142: add sp, #0x18 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200D148 FUN_0200D148: ; 0x0200D148 push {r4-r5, lr} sub sp, #0x24 add r5, r1, #0x0 str r0, [sp, #0x1c] add r1, sp, #0x14 strh r3, [r1, #0xc] add r4, r2, #0x0 add r0, sp, #0x20 ldrh r2, [r0, #0x10] add r3, r4, #0x0 strh r2, [r1, #0xe] ldr r2, [sp, #0x34] str r2, [sp, #0x14] ldrh r2, [r0, #0x18] strh r2, [r1, #0x4] ldrh r2, [r0, #0x1c] strh r2, [r1, #0x6] ldrh r1, [r0, #0x20] add r2, r5, #0x0 str r1, [sp, #0x0] ldrh r1, [r0, #0x24] str r1, [sp, #0x4] ldrh r1, [r0, #0x28] str r1, [sp, #0x8] ldrh r0, [r0, #0x2c] add r1, sp, #0x14 str r0, [sp, #0xc] mov r0, #0x0 str r0, [sp, #0x10] add r0, sp, #0x1c bl FUN_02018A60 add sp, #0x24 pop {r4-r5, pc} thumb_func_start FUN_0200D18C FUN_0200D18C: ; 0x0200D18C push {r3-r7, lr} sub sp, #0x40 str r1, [sp, #0x24] str r0, [sp, #0x20] ldr r0, [r0, #0x0] bl FUN_02016BB8 add r6, r0, #0x0 ldr r0, [sp, #0x20] bl FUN_0201AB08 mov r1, #0x6 str r0, [sp, #0x28] add r0, r6, #0x0 lsl r1, r1, #0x6 bl FUN_02016998 add r5, r0, #0x0 ldr r0, [sp, #0x28] bl FUN_020187B0 add r4, r0, #0x0 str r6, [sp, #0x0] mov r0, #0x26 mov r1, #0x16 mov r2, #0x0 add r3, sp, #0x3c bl FUN_02006BB0 str r0, [sp, #0x2c] ldr r0, [sp, #0x3c] mov r7, #0x0 ldr r0, [r0, #0x14] str r0, [sp, #0x30] ldr r0, [sp, #0x24] add r0, #0xa lsl r0, r0, #0x5 str r0, [sp, #0x34] ldr r0, [sp, #0x24] add r0, #0xb lsl r0, r0, #0x5 str r0, [sp, #0x38] _0200D1E0: ldr r1, [sp, #0x34] lsl r6, r7, #0x7 add r0, r5, r6 add r1, r4, r1 mov r2, #0x20 blx FUN_020DF438 add r0, r6, #0x0 ldr r1, [sp, #0x38] add r0, #0x20 add r0, r5, r0 add r1, r4, r1 mov r2, #0x20 blx FUN_020DF438 add r0, r6, #0x0 ldr r1, [sp, #0x34] add r0, #0x40 add r0, r5, r0 add r1, r4, r1 mov r2, #0x20 blx FUN_020DF438 ldr r1, [sp, #0x38] add r6, #0x60 add r0, r5, r6 add r1, r4, r1 mov r2, #0x20 blx FUN_020DF438 add r0, r7, #0x1 lsl r0, r0, #0x18 lsr r7, r0, #0x18 cmp r7, #0x3 blo _0200D1E0 mov r1, #0x30 str r1, [sp, #0x0] str r5, [sp, #0x4] mov r3, #0xc str r3, [sp, #0x8] str r1, [sp, #0xc] mov r0, #0x1 str r0, [sp, #0x10] mov r2, #0x0 str r2, [sp, #0x14] str r3, [sp, #0x18] str r1, [sp, #0x1c] ldr r0, [sp, #0x30] mov r1, #0x4 bl FUN_0200D148 ldr r0, [sp, #0x24] mov r3, #0x6 add r0, #0x12 str r0, [sp, #0x0] ldr r0, [sp, #0x20] ldr r1, [sp, #0x28] ldr r0, [r0, #0x0] add r2, r5, #0x0 lsl r3, r3, #0x6 bl FUN_02017E14 ldr r0, [sp, #0x24] bl FUN_02002840 ldr r0, [sp, #0x2c] bl FUN_02016A18 add r0, r5, #0x0 bl FUN_02016A18 add sp, #0x40 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200D274 FUN_0200D274: ; 0x0200D274 push {r4-r7, lr} sub sp, #0x14 str r0, [sp, #0x4] str r1, [sp, #0x8] add r0, sp, #0x18 ldrb r0, [r0, #0x10] add r7, r2, #0x0 add r5, r3, #0x0 bl FUN_0200CD60 add r1, r0, #0x0 ldr r0, [sp, #0x2c] mov r2, #0x0 str r0, [sp, #0x0] mov r0, #0x26 add r3, sp, #0x10 bl FUN_02006BB0 str r0, [sp, #0xc] mov r1, #0x9 ldr r0, [sp, #0x2c] lsl r1, r1, #0x6 bl FUN_02016998 ldr r1, [sp, #0x10] mov r2, #0x9 ldr r1, [r1, #0x14] lsl r2, r2, #0x6 add r4, r0, #0x0 blx FUN_020DF438 mov r0, #0x9 mov r3, #0x0 lsl r0, r0, #0x6 mov r1, #0xf _0200D2BA: ldrb r2, [r4, r3] lsl r6, r2, #0x14 and r2, r1 lsl r2, r2, #0x18 lsr r6, r6, #0x18 lsr r2, r2, #0x18 cmp r6, #0x0 bne _0200D2CC add r6, r5, #0x0 _0200D2CC: cmp r2, #0x0 bne _0200D2D2 add r2, r5, #0x0 _0200D2D2: lsl r6, r6, #0x4 orr r2, r6 strb r2, [r4, r3] add r3, r3, #0x1 cmp r3, r0 blo _0200D2BA str r7, [sp, #0x0] mov r3, #0x9 ldr r0, [sp, #0x4] ldr r1, [sp, #0x8] add r2, r4, #0x0 lsl r3, r3, #0x6 bl FUN_02017E14 ldr r0, [sp, #0xc] bl FUN_02016A18 add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x14 pop {r4-r7, pc} .balign 4 thumb_func_start FUN_0200D300 FUN_0200D300: ; 0x0200D300 push {r4-r7, lr} sub sp, #0x1c str r0, [sp, #0x10] add r5, r2, #0x0 mov r0, #0xf add r6, r1, #0x0 add r7, r3, #0x0 str r5, [sp, #0x0] lsl r0, r0, #0x6 str r0, [sp, #0x4] mov r1, #0x0 ldr r4, [sp, #0x38] str r1, [sp, #0x8] ldr r2, [sp, #0x10] mov r0, #0x24 add r3, r6, #0x0 str r4, [sp, #0xc] bl FUN_0200687C mov r0, #0x24 mov r1, #0x1 add r2, r4, #0x0 bl FUN_0200650C add r1, sp, #0x18 str r0, [sp, #0x14] blx FUN_020B0138 add r2, sp, #0x20 ldr r1, [sp, #0x18] ldrb r2, [r2, #0x10] lsl r3, r7, #0x15 ldr r1, [r1, #0xc] lsl r2, r2, #0x5 add r1, r1, r2 add r0, r6, #0x0 mov r2, #0x20 lsr r3, r3, #0x10 bl FUN_02017FB4 ldr r1, [sp, #0x14] add r0, r4, #0x0 bl FUN_02016A8C add r0, sp, #0x20 ldrb r3, [r0, #0x10] cmp r3, #0x1 bhi _0200D374 ldrh r0, [r0, #0x14] add r5, #0x1e lsl r2, r5, #0x10 str r0, [sp, #0x0] ldr r0, [sp, #0x10] add r1, r6, #0x0 lsr r2, r2, #0x10 str r4, [sp, #0x4] bl FUN_0200D378 _0200D374: add sp, #0x1c pop {r4-r7, pc} thumb_func_start FUN_0200D378 FUN_0200D378: ; 0x0200D378 push {r3-r5, lr} sub sp, #0x10 add r4, r1, #0x0 add r5, r0, #0x0 ldr r1, [sp, #0x20] cmp r3, #0x0 bne _0200D38C add r1, #0x21 lsl r0, r1, #0x10 b _0200D390 _0200D38C: add r0, r1, #0x2 lsl r0, r0, #0x10 _0200D390: lsr r1, r0, #0x10 mov r0, #0x3 str r2, [sp, #0x0] lsl r0, r0, #0x8 str r0, [sp, #0x4] mov r0, #0x0 str r0, [sp, #0x8] ldr r0, [sp, #0x24] add r2, r5, #0x0 str r0, [sp, #0xc] mov r0, #0x24 add r3, r4, #0x0 bl FUN_0200687C add sp, #0x10 pop {r3-r5, pc} thumb_func_start FUN_0200D3B0 FUN_0200D3B0: ; 0x0200D3B0 push {r3-r7, lr} sub sp, #0x40 str r1, [sp, #0x14] str r2, [sp, #0x18] str r3, [sp, #0x1c] ldr r2, [sp, #0x1c] ldr r6, [sp, #0x5c] sub r7, r2, #0x1 ldr r2, [sp, #0x18] ldr r5, [sp, #0x60] str r2, [sp, #0x34] sub r2, #0x9 str r2, [sp, #0x34] lsl r2, r7, #0x18 lsr r2, r2, #0x18 str r2, [sp, #0x0] mov r2, #0x1 str r2, [sp, #0x4] str r2, [sp, #0x8] ldr r3, [sp, #0x34] str r5, [sp, #0xc] add r2, sp, #0x48 lsl r3, r3, #0x18 ldrh r2, [r2, #0x1c] lsr r3, r3, #0x18 str r0, [sp, #0x10] bl FUN_02018540 ldr r0, [sp, #0x18] str r0, [sp, #0x30] sub r0, #0x8 str r0, [sp, #0x30] add r0, sp, #0x48 ldrh r4, [r0, #0x1c] lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] ldr r3, [sp, #0x30] str r5, [sp, #0xc] add r2, r4, #0x1 lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 add r0, sp, #0x48 ldrb r0, [r0, #0x10] add r2, r4, #0x2 lsl r2, r2, #0x10 str r0, [sp, #0x3c] add r0, r0, #0x7 str r0, [sp, #0x24] ldr r0, [sp, #0x18] lsr r2, r2, #0x10 sub r0, r0, #0x7 str r0, [sp, #0x20] lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] ldr r0, [sp, #0x24] ldr r3, [sp, #0x20] lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x4] mov r0, #0x1 str r0, [sp, #0x8] str r5, [sp, #0xc] lsl r3, r3, #0x18 ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] lsr r3, r3, #0x18 bl FUN_02018540 add r2, r4, #0x3 lsl r2, r2, #0x10 ldr r1, [sp, #0x18] ldr r0, [sp, #0x3c] lsr r2, r2, #0x10 add r0, r1, r0 str r0, [sp, #0x38] lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] ldr r3, [sp, #0x38] str r5, [sp, #0xc] lsl r3, r3, #0x18 ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] lsr r3, r3, #0x18 bl FUN_02018540 ldr r0, [sp, #0x38] add r2, r4, #0x4 add r0, r0, #0x1 str r0, [sp, #0x2c] lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] ldr r3, [sp, #0x2c] str r5, [sp, #0xc] lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r0, [sp, #0x38] add r0, r0, #0x2 str r0, [sp, #0x28] lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] ldr r3, [sp, #0x28] str r5, [sp, #0xc] add r2, r4, #0x5 lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r0, [sp, #0x1c] ldr r3, [sp, #0x34] str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r6, [sp, #0x8] str r5, [sp, #0xc] add r2, r4, #0x6 lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r0, [sp, #0x1c] ldr r3, [sp, #0x30] str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r6, [sp, #0x8] str r5, [sp, #0xc] add r2, r4, #0x7 lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r0, [sp, #0x1c] add r2, r4, #0x0 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r6, [sp, #0x8] str r5, [sp, #0xc] ldr r3, [sp, #0x18] add r2, #0x8 sub r3, r3, #0x1 lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r0, [sp, #0x1c] add r2, r4, #0x0 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r6, [sp, #0x8] ldr r3, [sp, #0x38] str r5, [sp, #0xc] add r2, #0x9 lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r0, [sp, #0x1c] add r2, r4, #0x0 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r6, [sp, #0x8] ldr r3, [sp, #0x2c] str r5, [sp, #0xc] add r2, #0xa lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r0, [sp, #0x1c] add r2, r4, #0x0 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r6, [sp, #0x8] ldr r3, [sp, #0x28] str r5, [sp, #0xc] add r2, #0xb lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r0, [sp, #0x1c] add r2, r4, #0x0 add r6, r0, r6 lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] ldr r3, [sp, #0x34] str r5, [sp, #0xc] add r2, #0xc lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] add r2, r4, #0x0 ldr r3, [sp, #0x30] str r5, [sp, #0xc] add r2, #0xd lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] ldr r0, [sp, #0x24] add r2, r4, #0x0 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x4] mov r0, #0x1 str r0, [sp, #0x8] ldr r3, [sp, #0x20] str r5, [sp, #0xc] add r2, #0xe lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] add r2, r4, #0x0 ldr r3, [sp, #0x38] str r5, [sp, #0xc] add r2, #0xf lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] add r2, r4, #0x0 ldr r3, [sp, #0x2c] str r5, [sp, #0xc] add r2, #0x10 lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] ldr r3, [sp, #0x28] str r5, [sp, #0xc] add r4, #0x11 lsl r2, r4, #0x10 lsl r3, r3, #0x18 ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 add sp, #0x40 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200D678 FUN_0200D678: ; 0x0200D678 push {r3-r7, lr} sub sp, #0x28 str r1, [sp, #0x10] add r7, r0, #0x0 str r2, [sp, #0x14] bl FUN_0201AB08 str r0, [sp, #0x20] add r0, r7, #0x0 bl FUN_0201AB14 sub r0, r0, #0x7 lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x18] add r0, r7, #0x0 bl FUN_0201AB18 str r0, [sp, #0x1c] mov r0, #0x0 str r0, [sp, #0x24] _0200D6A2: ldr r2, [sp, #0x24] ldr r1, [sp, #0x1c] ldr r0, [sp, #0x24] add r3, r2, #0x0 add r0, r1, r0 mov r1, #0x6 mul r3, r1 ldr r1, [sp, #0x10] lsl r0, r0, #0x18 mov r4, #0x0 add r5, r1, r3 lsr r6, r0, #0x18 _0200D6BA: str r6, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] ldr r0, [sp, #0x14] ldr r3, [sp, #0x18] str r0, [sp, #0xc] add r2, r4, r5 add r3, r3, r4 lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r0, [r7, #0x0] ldr r1, [sp, #0x20] lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 add r0, r4, #0x1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, #0x6 blo _0200D6BA ldr r0, [sp, #0x24] add r0, r0, #0x1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x24] cmp r0, #0x4 blo _0200D6A2 add sp, #0x28 pop {r3-r7, pc} thumb_func_start FUN_0200D6F8 FUN_0200D6F8: ; 0x0200D6F8 push {r3-r7, lr} sub sp, #0x28 add r5, r0, #0x0 str r1, [sp, #0x10] add r4, r2, #0x0 add r6, r3, #0x0 bl FUN_0201AB08 str r0, [sp, #0x14] add r0, sp, #0x30 ldrb r0, [r0, #0x10] cmp r0, #0x1 bhi _0200D756 add r0, r5, #0x0 bl FUN_0201AB14 str r0, [sp, #0x18] add r0, r5, #0x0 bl FUN_0201AB18 str r0, [sp, #0x1c] add r0, r5, #0x0 bl FUN_0201AB0C add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_0201AB10 str r7, [sp, #0x0] str r0, [sp, #0x4] str r6, [sp, #0x8] str r4, [sp, #0xc] ldr r0, [r5, #0x0] ldr r1, [sp, #0x14] ldr r2, [sp, #0x18] ldr r3, [sp, #0x1c] bl FUN_0200D3B0 add r1, r4, #0x0 add r1, #0x1e lsl r1, r1, #0x10 add r0, r5, #0x0 lsr r1, r1, #0x10 add r2, r6, #0x0 bl FUN_0200D678 b _0200D788 _0200D756: add r0, r5, #0x0 bl FUN_0201AB14 str r0, [sp, #0x20] add r0, r5, #0x0 bl FUN_0201AB18 str r0, [sp, #0x24] add r0, r5, #0x0 bl FUN_0201AB0C add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_0201AB10 str r7, [sp, #0x0] str r0, [sp, #0x4] str r6, [sp, #0x8] str r4, [sp, #0xc] ldr r0, [r5, #0x0] ldr r1, [sp, #0x14] ldr r2, [sp, #0x20] ldr r3, [sp, #0x24] bl FUN_0200CDD8 _0200D788: ldr r0, [sp, #0x10] cmp r0, #0x0 bne _0200D794 add r0, r5, #0x0 bl FUN_020191D0 _0200D794: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0200D18C add sp, #0x28 pop {r3-r7, pc} thumb_func_start FUN_0200D7A0 FUN_0200D7A0: ; 0x0200D7A0 push {r3-r7, lr} sub sp, #0x18 add r5, r0, #0x0 add r4, r1, #0x0 str r2, [sp, #0x10] bl FUN_0201AB08 str r0, [sp, #0x14] cmp r4, #0x1 bhi _0200D7FE add r0, r5, #0x0 bl FUN_0201AB14 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0201AB18 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_0201AB0C add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_0201AB10 sub r1, r7, #0x1 lsl r1, r1, #0x18 lsr r1, r1, #0x18 add r0, r0, #0x2 lsl r0, r0, #0x18 sub r4, #0x9 lsl r3, r4, #0x18 add r6, #0xb str r1, [sp, #0x0] lsl r1, r6, #0x18 lsr r1, r1, #0x18 str r1, [sp, #0x4] lsr r0, r0, #0x18 str r0, [sp, #0x8] mov r2, #0x0 str r2, [sp, #0xc] ldr r0, [r5, #0x0] ldr r1, [sp, #0x14] lsr r3, r3, #0x18 bl FUN_02018540 b _0200D846 _0200D7FE: add r0, r5, #0x0 bl FUN_0201AB14 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0201AB18 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_0201AB0C add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_0201AB10 sub r1, r6, #0x1 lsl r1, r1, #0x18 lsr r1, r1, #0x18 str r1, [sp, #0x0] add r1, r7, #0x4 lsl r1, r1, #0x18 add r0, r0, #0x2 lsr r1, r1, #0x18 lsl r0, r0, #0x18 str r1, [sp, #0x4] lsr r0, r0, #0x18 sub r3, r4, #0x2 lsl r3, r3, #0x18 str r0, [sp, #0x8] mov r2, #0x0 str r2, [sp, #0xc] ldr r0, [r5, #0x0] ldr r1, [sp, #0x14] lsr r3, r3, #0x18 bl FUN_02018540 _0200D846: ldr r0, [sp, #0x10] cmp r0, #0x0 bne _0200D852 add r0, r5, #0x0 bl FUN_02019570 _0200D852: add sp, #0x18 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200D858 FUN_0200D858: ; 0x0200D858 push {r4-r7, lr} sub sp, #0x34 str r0, [sp, #0x20] ldr r0, [r0, #0x0] str r1, [sp, #0x24] bl FUN_02016BB8 str r0, [sp, #0x28] ldr r0, [sp, #0x20] bl FUN_0201AB08 bl FUN_020187B0 add r5, r0, #0x0 ldr r0, [sp, #0x28] ldr r1, _0200D970 ; =0x0000048C bl FUN_02016998 ldr r1, [sp, #0x24] add r4, r0, #0x0 ldr r0, _0200D974 ; =0x00000404 add r1, #0x12 lsl r1, r1, #0x5 add r0, r4, r0 add r1, r5, r1 mov r2, #0x80 blx FUN_020DF438 ldr r0, [sp, #0x28] mov r1, #0x80 bl FUN_02016998 ldr r1, [sp, #0x24] mov r2, #0x20 add r1, #0xa lsl r1, r1, #0x5 str r1, [sp, #0x2c] add r1, r5, r1 add r6, r0, #0x0 blx FUN_020DF438 ldr r0, [sp, #0x24] mov r2, #0x20 add r0, #0xb lsl r7, r0, #0x5 add r0, r6, #0x0 add r0, #0x20 add r1, r5, r7 blx FUN_020DF438 ldr r1, [sp, #0x2c] add r0, r6, #0x0 add r0, #0x40 add r1, r5, r1 mov r2, #0x20 blx FUN_020DF438 add r0, r6, #0x0 add r0, #0x60 add r1, r5, r7 mov r2, #0x20 blx FUN_020DF438 mov r5, #0x0 add r7, r4, #0x4 _0200D8DA: lsl r0, r5, #0x7 add r0, r7, r0 add r1, r6, #0x0 mov r2, #0x80 blx FUN_020DF438 add r0, r5, #0x1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 cmp r5, #0x8 blo _0200D8DA add r0, r6, #0x0 bl FUN_02016A18 ldr r0, [sp, #0x28] mov r1, #0x17 str r0, [sp, #0x0] mov r0, #0x26 mov r2, #0x0 add r3, sp, #0x30 bl FUN_02006BB0 mov r2, #0x80 add r5, r0, #0x0 str r2, [sp, #0x0] add r0, r4, #0x4 str r0, [sp, #0x4] mov r3, #0x10 str r3, [sp, #0x8] str r2, [sp, #0xc] mov r1, #0x0 str r1, [sp, #0x10] str r1, [sp, #0x14] str r3, [sp, #0x18] str r2, [sp, #0x1c] ldr r0, [sp, #0x30] add r2, r1, #0x0 ldr r0, [r0, #0x14] bl FUN_0200D148 add r0, r5, #0x0 bl FUN_02016A18 ldr r0, [sp, #0x20] ldr r1, _0200D978 ; =0x00000484 str r0, [r4, #0x0] ldr r0, [sp, #0x24] mov r2, #0x0 strh r0, [r4, r1] add r0, r1, #0x2 strb r2, [r4, r0] add r0, r1, #0x3 ldrb r3, [r4, r0] mov r0, #0x7f bic r3, r0 add r0, r1, #0x3 strb r3, [r4, r0] add r0, r1, #0x4 ldrb r3, [r4, r0] mov r0, #0x3 bic r3, r0 add r0, r1, #0x4 strb r3, [r4, r0] ldr r0, _0200D97C ; =FUN_0200DB7C add r1, r4, #0x0 bl FUN_0200CA60 add r0, r4, #0x0 mov r1, #0x1 bl FUN_0200D980 add r0, r4, #0x0 add sp, #0x34 pop {r4-r7, pc} nop _0200D970: .word 0x0000048C _0200D974: .word 0x00000404 _0200D978: .word 0x00000484 _0200D97C: .word FUN_0200DB7C thumb_func_start FUN_0200D980 FUN_0200D980: ; 0x0200D980 push {r4-r7, lr} sub sp, #0x24 add r5, r0, #0x0 ldr r0, [r5, #0x0] add r6, r1, #0x0 bl FUN_0201AB08 add r4, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_0201AB14 str r0, [sp, #0x18] ldr r0, [r5, #0x0] bl FUN_0201AB18 str r0, [sp, #0x1c] ldr r0, [r5, #0x0] bl FUN_0201AB0C str r0, [sp, #0x20] cmp r6, #0x2 bne _0200DA8A ldr r2, _0200DB78 ; =0x00000484 add r1, r4, #0x0 ldrh r0, [r5, r2] sub r2, #0x80 add r2, r5, r2 add r0, #0x12 str r0, [sp, #0x0] ldr r0, [r5, #0x0] mov r3, #0x80 ldr r0, [r0, #0x0] bl FUN_02017E14 ldr r0, [sp, #0x1c] ldr r1, [sp, #0x18] add r7, r0, #0x2 ldr r0, [sp, #0x20] ldr r2, _0200DB78 ; =0x00000484 add r6, r1, r0 add r0, r6, #0x1 str r0, [sp, #0x14] lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] mov r0, #0x10 str r0, [sp, #0xc] ldrh r2, [r5, r2] ldr r0, [r5, #0x0] ldr r3, [sp, #0x14] add r2, #0xa lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r0, [r0, #0x0] add r1, r4, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] mov r0, #0x10 str r0, [sp, #0xc] ldr r2, _0200DB78 ; =0x00000484 ldr r0, [r5, #0x0] ldrh r2, [r5, r2] add r6, r6, #0x2 lsl r3, r6, #0x18 add r2, #0xb lsl r2, r2, #0x10 ldr r0, [r0, #0x0] add r1, r4, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r0, [sp, #0x1c] ldr r3, [sp, #0x14] add r7, r0, #0x3 lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] mov r0, #0x10 str r0, [sp, #0xc] ldr r2, _0200DB78 ; =0x00000484 ldr r0, [r5, #0x0] ldrh r2, [r5, r2] lsl r3, r3, #0x18 ldr r0, [r0, #0x0] add r2, #0xa lsl r2, r2, #0x10 add r1, r4, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] mov r0, #0x10 str r0, [sp, #0xc] ldr r2, _0200DB78 ; =0x00000484 ldr r0, [r5, #0x0] ldrh r2, [r5, r2] lsl r3, r6, #0x18 ldr r0, [r0, #0x0] add r2, #0xb lsl r2, r2, #0x10 add r1, r4, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r0, [r5, #0x0] add r1, r4, #0x0 ldr r0, [r0, #0x0] bl FUN_02017CD0 add sp, #0x24 pop {r4-r7, pc} _0200DA8A: ldr r3, _0200DB78 ; =0x00000484 add r2, r5, #0x4 ldrh r0, [r5, r3] add r3, r3, #0x3 add r1, r4, #0x0 add r0, #0x12 str r0, [sp, #0x0] ldrb r3, [r5, r3] ldr r0, [r5, #0x0] lsl r3, r3, #0x19 lsr r3, r3, #0x19 lsl r3, r3, #0x7 add r2, r2, r3 ldr r0, [r0, #0x0] mov r3, #0x80 bl FUN_02017E14 cmp r6, #0x0 beq _0200DB72 ldr r0, [sp, #0x1c] ldr r1, [sp, #0x18] add r7, r0, #0x2 ldr r0, [sp, #0x20] ldr r2, _0200DB78 ; =0x00000484 add r6, r1, r0 add r0, r6, #0x1 str r0, [sp, #0x10] lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] mov r0, #0x10 str r0, [sp, #0xc] ldrh r2, [r5, r2] ldr r0, [r5, #0x0] ldr r3, [sp, #0x10] add r2, #0x12 lsl r2, r2, #0x10 lsl r3, r3, #0x18 ldr r0, [r0, #0x0] add r1, r4, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] mov r0, #0x10 str r0, [sp, #0xc] ldr r2, _0200DB78 ; =0x00000484 ldr r0, [r5, #0x0] ldrh r2, [r5, r2] add r6, r6, #0x2 lsl r3, r6, #0x18 add r2, #0x13 lsl r2, r2, #0x10 ldr r0, [r0, #0x0] add r1, r4, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r0, [sp, #0x1c] ldr r3, [sp, #0x10] add r7, r0, #0x3 lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] mov r0, #0x10 str r0, [sp, #0xc] ldr r2, _0200DB78 ; =0x00000484 ldr r0, [r5, #0x0] ldrh r2, [r5, r2] lsl r3, r3, #0x18 ldr r0, [r0, #0x0] add r2, #0x14 lsl r2, r2, #0x10 add r1, r4, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] mov r0, #0x10 str r0, [sp, #0xc] ldr r2, _0200DB78 ; =0x00000484 ldr r0, [r5, #0x0] ldrh r2, [r5, r2] lsl r3, r6, #0x18 ldr r0, [r0, #0x0] add r2, #0x15 lsl r2, r2, #0x10 add r1, r4, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r0, [r5, #0x0] add r1, r4, #0x0 ldr r0, [r0, #0x0] bl FUN_02017CD0 _0200DB72: add sp, #0x24 pop {r4-r7, pc} nop _0200DB78: .word 0x00000484 thumb_func_start FUN_0200DB7C FUN_0200DB7C: ; 0x0200DB7C push {r3-r5, lr} add r4, r0, #0x0 ldr r0, _0200DBE4 ; =0x00000488 ldrb r2, [r1, r0] lsl r2, r2, #0x1e lsr r2, r2, #0x1e beq _0200DB9E cmp r2, #0x1 bne _0200DB96 add r0, r1, #0x0 mov r1, #0x2 bl FUN_0200D980 _0200DB96: add r0, r4, #0x0 bl FUN_0200CAB4 pop {r3-r5, pc} _0200DB9E: sub r2, r0, #0x2 ldrb r2, [r1, r2] add r3, r2, #0x1 sub r2, r0, #0x2 strb r3, [r1, r2] ldrb r2, [r1, r2] cmp r2, #0x10 bne _0200DBE0 mov r3, #0x0 sub r2, r0, #0x2 strb r3, [r1, r2] sub r2, r0, #0x1 ldrb r2, [r1, r2] mov r4, #0x7f bic r2, r4 sub r4, r0, #0x1 ldrb r4, [r1, r4] sub r0, r0, #0x1 lsl r4, r4, #0x19 lsr r4, r4, #0x19 add r5, r4, #0x1 mov r4, #0x7 and r4, r5 lsl r4, r4, #0x18 lsr r5, r4, #0x18 mov r4, #0x7f and r4, r5 orr r2, r4 strb r2, [r1, r0] add r0, r1, #0x0 add r1, r3, #0x0 bl FUN_0200D980 _0200DBE0: pop {r3-r5, pc} nop _0200DBE4: .word 0x00000488 thumb_func_start FUN_0200DBE8 FUN_0200DBE8: ; 0x0200DBE8 push {r4, lr} add r4, r0, #0x0 add r0, r1, #0x0 bl FUN_02016A18 add r0, r4, #0x0 bl FUN_0200CAB4 pop {r4, pc} .balign 4 thumb_func_start FUN_0200DBFC FUN_0200DBFC: ; 0x0200DBFC push {r4, lr} add r4, r0, #0x0 ldr r0, _0200DC1C ; =FUN_0200DBE8 add r1, r4, #0x0 mov r2, #0x0 bl FUN_0200CA98 ldr r1, _0200DC20 ; =0x00000488 mov r0, #0x3 ldrb r2, [r4, r1] bic r2, r0 mov r0, #0x1 orr r0, r2 strb r0, [r4, r1] pop {r4, pc} nop _0200DC1C: .word FUN_0200DBE8 _0200DC20: .word 0x00000488 thumb_func_start FUN_0200DC24 FUN_0200DC24: ; 0x0200DC24 push {r4, lr} add r4, r0, #0x0 ldr r0, _0200DC44 ; =FUN_0200DBE8 add r1, r4, #0x0 mov r2, #0x0 bl FUN_0200CA98 ldr r1, _0200DC48 ; =0x00000488 mov r0, #0x3 ldrb r2, [r4, r1] bic r2, r0 mov r0, #0x2 orr r0, r2 strb r0, [r4, r1] pop {r4, pc} nop _0200DC44: .word FUN_0200DBE8 _0200DC48: .word 0x00000488 thumb_func_start FUN_0200DC4C FUN_0200DC4C: ; 0x0200DC4C push {r4-r7, lr} sub sp, #0xc str r2, [sp, #0x4] ldr r5, [sp, #0x30] str r3, [sp, #0x8] add r6, r0, #0x0 add r7, r1, #0x0 str r5, [sp, #0x0] bl FUN_0200DD70 add r4, r0, #0x0 add r1, r5, #0x0 bl FUN_0200DDAC add r0, r4, #0x0 bl FUN_0200DDD8 ldr r1, [sp, #0x4] ldr r2, [sp, #0x8] add r0, r4, #0x0 bl FUN_0200DE30 add r2, sp, #0x10 ldrh r1, [r2, #0x18] ldrb r2, [r2, #0x1c] add r0, r4, #0x0 bl FUN_0200DE80 add r2, sp, #0x10 ldrb r1, [r2, #0x10] ldrh r2, [r2, #0x14] add r0, r4, #0x0 bl FUN_0200DFD8 add r0, r6, #0x0 add r1, r7, #0x0 bl FUN_02017CD0 ldr r0, _0200DCA0 ; =0x0000016F add r0, r4, r0 add sp, #0xc pop {r4-r7, pc} .balign 4 _0200DCA0: .word 0x0000016F thumb_func_start FUN_0200DCA4 FUN_0200DCA4: ; 0x0200DCA4 push {r4-r7, lr} sub sp, #0xc str r2, [sp, #0x4] ldr r5, [sp, #0x2c] str r3, [sp, #0x8] add r6, r0, #0x0 add r7, r1, #0x0 str r5, [sp, #0x0] bl FUN_0200DD70 add r4, r0, #0x0 add r1, r5, #0x0 bl FUN_0200DDAC add r0, r4, #0x0 bl FUN_0200DDD8 ldr r1, [sp, #0x4] ldr r2, [sp, #0x8] add r0, r4, #0x0 bl FUN_0200DE30 ldr r1, [sp, #0x28] add r0, r4, #0x0 bl FUN_0200DEC0 add r2, sp, #0x10 ldrb r1, [r2, #0x10] ldrh r2, [r2, #0x14] add r0, r4, #0x0 bl FUN_0200DFD8 add r0, r6, #0x0 add r1, r7, #0x0 bl FUN_02017CD0 ldr r0, _0200DCF4 ; =0x0000016F add r0, r4, r0 add sp, #0xc pop {r4-r7, pc} .balign 4 _0200DCF4: .word 0x0000016F thumb_func_start FUN_0200DCF8 FUN_0200DCF8: ; 0x0200DCF8 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _0200DD6C ; =0x0000016F add r4, r1, #0x0 ldrb r1, [r4, r0] cmp r1, #0x1 beq _0200DD10 cmp r1, #0x2 beq _0200DD2E cmp r1, #0x3 beq _0200DD40 b _0200DD54 _0200DD10: add r0, r4, #0x0 bl FUN_0200E188 mov r0, #0x59 lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_0200C3DC add r0, r4, #0x0 bl FUN_021D99F8 add r0, r5, #0x0 bl FUN_0200621C pop {r3-r5, pc} _0200DD2E: mov r1, #0x3 strb r1, [r4, r0] sub r0, #0xb ldr r0, [r4, r0] mov r1, #0x1 ldr r0, [r0, #0x0] bl FUN_02020130 b _0200DD54 _0200DD40: sub r0, #0xb ldr r0, [r4, r0] ldr r0, [r0, #0x0] bl FUN_0202022C cmp r0, #0x6 bne _0200DD54 ldr r0, _0200DD6C ; =0x0000016F mov r1, #0x0 strb r1, [r4, r0] _0200DD54: mov r0, #0x59 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x1 ldr r0, [r0, #0x0] lsl r1, r1, #0xc bl FUN_020201E4 ldr r0, [r4, #0x0] bl FUN_0201FDEC pop {r3-r5, pc} .balign 4 _0200DD6C: .word 0x0000016F thumb_func_start FUN_0200DD70 FUN_0200DD70: ; 0x0200DD70 push {r3-r7, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r7, r3, #0x0 mov r1, #0x17 add r6, r2, #0x0 ldr r0, _0200DDA4 ; =FUN_0200DCF8 ldr r3, [sp, #0x18] lsl r1, r1, #0x4 mov r2, #0x0 bl FUN_020061E8 bl FUN_0201B6C8 ldr r1, _0200DDA8 ; =0x0000016F mov r2, #0x0 strb r2, [r0, r1] sub r2, r1, #0x7 str r5, [r0, r2] sub r2, r1, #0x3 strb r4, [r0, r2] sub r2, r1, #0x2 strb r6, [r0, r2] sub r1, r1, #0x1 strb r7, [r0, r1] pop {r3-r7, pc} .balign 4 _0200DDA4: .word FUN_0200DCF8 _0200DDA8: .word 0x0000016F thumb_func_start FUN_0200DDAC FUN_0200DDAC: ; 0x0200DDAC push {r4-r6, lr} sub sp, #0x18 ldr r5, _0200DDD4 ; =0x020ECEA8 add r4, sp, #0x0 add r6, r0, #0x0 add r3, r1, #0x0 add r2, r4, #0x0 ldmia r5!, {r0-r1} stmia r4!, {r0-r1} ldmia r5!, {r0-r1} stmia r4!, {r0-r1} ldmia r5!, {r0-r1} stmia r4!, {r0-r1} add r1, r2, #0x0 add r0, r6, #0x0 mov r2, #0x1 bl FUN_021D959C add sp, #0x18 pop {r4-r6, pc} .balign 4 _0200DDD4: .word 0x020ECEA8 thumb_func_start FUN_0200DDD8 FUN_0200DDD8: ; 0x0200DDD8 push {r3-r4, lr} sub sp, #0xc mov r1, #0x1 str r1, [sp, #0x0] str r1, [sp, #0x4] ldr r1, _0200DE2C ; =0x00015CD5 mov r2, #0x31 str r1, [sp, #0x8] mov r1, #0x26 mov r3, #0x0 add r4, r0, #0x0 bl FUN_021D967C ldr r0, _0200DE2C ; =0x00015CD5 mov r1, #0x26 str r0, [sp, #0x0] add r0, r4, #0x0 mov r2, #0x2f mov r3, #0x0 bl FUN_021D96F4 ldr r0, _0200DE2C ; =0x00015CD5 mov r1, #0x26 str r0, [sp, #0x0] add r0, r4, #0x0 mov r2, #0x2e mov r3, #0x0 bl FUN_021D9708 mov r0, #0x1 str r0, [sp, #0x0] ldr r0, _0200DE2C ; =0x00015CD5 mov r1, #0x26 str r0, [sp, #0x4] add r0, r4, #0x0 mov r2, #0x30 mov r3, #0x0 bl FUN_021D971C add sp, #0xc pop {r3-r4, pc} nop _0200DE2C: .word 0x00015CD5 thumb_func_start FUN_0200DE30 FUN_0200DE30: ; 0x0200DE30 push {r4-r7, lr} sub sp, #0x34 ldr r5, _0200DE7C ; =0x020ECEC0 add r6, r2, #0x0 add r4, r0, #0x0 add r7, r1, #0x0 add r3, sp, #0x0 mov r2, #0x6 _0200DE40: ldmia r5!, {r0-r1} stmia r3!, {r0-r1} sub r2, r2, #0x1 bne _0200DE40 ldr r0, [r5, #0x0] str r0, [r3, #0x0] add r0, r7, #0x5 lsl r1, r0, #0x3 add r0, sp, #0x0 strh r1, [r0, #0x0] add r1, r6, #0x5 lsl r1, r1, #0x3 strh r1, [r0, #0x2] add r0, r4, #0x0 add r1, sp, #0x0 bl FUN_021D9820 mov r1, #0x59 lsl r1, r1, #0x2 str r0, [r4, r1] ldr r0, [r4, #0x0] bl FUN_0201FDEC mov r0, #0x10 mov r1, #0x1 bl FUN_0201E74C add sp, #0x34 pop {r4-r7, pc} nop _0200DE7C: .word 0x020ECEC0 thumb_func_start FUN_0200DE80 FUN_0200DE80: ; 0x0200DE80 push {r4-r7, lr} sub sp, #0x1c add r5, r0, #0x0 ldr r0, _0200DEBC ; =0x00000162 add r4, r1, #0x0 ldrh r0, [r5, r0] add r6, r2, #0x0 bl FUN_02006D98 add r7, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x4] str r0, [sp, #0x8] add r0, sp, #0xc add r1, r4, #0x0 add r2, r6, #0x0 mov r3, #0x2 bl FUN_02068C00 add r0, r5, #0x0 add r1, sp, #0xc bl FUN_0200DEF4 add r0, r7, #0x0 bl FUN_020072E8 add sp, #0x1c pop {r4-r7, pc} nop _0200DEBC: .word 0x00000162 thumb_func_start FUN_0200DEC0 FUN_0200DEC0: ; 0x0200DEC0 push {r4-r6, lr} sub sp, #0x10 add r5, r0, #0x0 ldr r0, _0200DEF0 ; =0x00000162 add r4, r1, #0x0 ldrh r0, [r5, r0] bl FUN_02006D98 add r6, r0, #0x0 add r0, sp, #0x0 add r1, r4, #0x0 mov r2, #0x2 bl FUN_02068B68 add r0, r5, #0x0 add r1, sp, #0x0 bl FUN_0200DEF4 add r0, r6, #0x0 bl FUN_020072E8 add sp, #0x10 pop {r4-r6, pc} nop _0200DEF0: .word 0x00000162 thumb_func_start FUN_0200DEF4 FUN_0200DEF4: ; 0x0200DEF4 push {r3-r7, lr} sub sp, #0x28 add r5, r0, #0x0 ldr r0, _0200DFC8 ; =0x00000162 add r6, r1, #0x0 mov r1, #0x19 ldrh r0, [r5, r0] lsl r1, r1, #0x8 bl FUN_02016998 add r2, sp, #0x18 ldr r3, _0200DFCC ; =0x020ECE98 add r4, r0, #0x0 add r7, r2, #0x0 ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldmia r3!, {r0-r1} stmia r2!, {r0-r1} str r4, [sp, #0x0] ldr r2, _0200DFC8 ; =0x00000162 ldrh r0, [r6, #0x0] ldrh r1, [r6, #0x2] ldrh r2, [r5, r2] add r3, r7, #0x0 bl FUN_02012400 ldr r3, _0200DFD0 ; =0x020ECE88 add r2, sp, #0x8 add r7, r2, #0x0 ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldmia r3!, {r0-r1} stmia r2!, {r0-r1} mov r0, #0x32 lsl r0, r0, #0x6 add r0, r4, r0 str r0, [sp, #0x0] ldr r2, _0200DFC8 ; =0x00000162 ldrh r0, [r6, #0x0] ldrh r1, [r6, #0x2] ldrh r2, [r5, r2] add r3, r7, #0x0 bl FUN_02012400 mov r0, #0x13 lsl r0, r0, #0x4 ldr r0, [r5, r0] ldr r1, _0200DFD4 ; =0x00015CD5 bl FUN_020094F0 bl FUN_02009C5C mov r1, #0x1 str r0, [sp, #0x4] blx FUN_020B1A14 mov r1, #0x19 add r7, r0, #0x0 add r0, r4, #0x0 lsl r1, r1, #0x8 blx DC_FlushRange mov r2, #0x19 add r0, r4, #0x0 add r1, r7, #0x0 lsl r2, r2, #0x8 blx FUN_020C92F4 add r0, r4, #0x0 bl FUN_02016A18 ldr r2, _0200DFC8 ; =0x00000162 ldrh r0, [r6, #0x0] ldrh r1, [r6, #0x4] ldrh r2, [r5, r2] bl FUN_02012470 add r4, r0, #0x0 mov r0, #0x4d lsl r0, r0, #0x2 ldr r0, [r5, r0] ldr r1, _0200DFD4 ; =0x00015CD5 bl FUN_020094F0 ldr r1, [sp, #0x4] bl FUN_02009E54 mov r1, #0x1 blx FUN_020B19C4 add r5, r0, #0x0 add r0, r4, #0x0 mov r1, #0x20 blx DC_FlushRange add r0, r4, #0x0 add r1, r5, #0x0 mov r2, #0x20 blx FUN_020C9480 add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x28 pop {r3-r7, pc} nop _0200DFC8: .word 0x00000162 _0200DFCC: .word 0x020ECE98 _0200DFD0: .word 0x020ECE88 _0200DFD4: .word 0x00015CD5 thumb_func_start FUN_0200DFD8 FUN_0200DFD8: ; 0x0200DFD8 push {r4-r6, lr} sub sp, #0x10 ldr r3, _0200E184 ; =0x0000016E add r5, r0, #0x0 ldrb r0, [r5, r3] add r4, r1, #0x0 sub r1, r3, #0x2 sub r0, r0, #0x1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] str r4, [sp, #0xc] sub r0, r3, #0x6 sub r3, r3, #0x1 ldrb r3, [r5, r3] ldrb r1, [r5, r1] ldr r0, [r5, r0] sub r3, r3, #0x1 lsl r3, r3, #0x18 lsr r3, r3, #0x18 add r6, r2, #0x0 bl FUN_02018540 ldr r3, _0200E184 ; =0x0000016E add r2, r6, #0x1 ldrb r0, [r5, r3] sub r1, r3, #0x2 lsl r2, r2, #0x10 sub r0, r0, #0x1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0xa str r0, [sp, #0x4] mov r0, #0x1 str r0, [sp, #0x8] str r4, [sp, #0xc] sub r0, r3, #0x6 sub r3, r3, #0x1 ldrb r1, [r5, r1] ldrb r3, [r5, r3] ldr r0, [r5, r0] lsr r2, r2, #0x10 bl FUN_02018540 ldr r3, _0200E184 ; =0x0000016E add r2, r6, #0x2 ldrb r0, [r5, r3] lsl r2, r2, #0x10 sub r1, r3, #0x2 sub r0, r0, #0x1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] str r4, [sp, #0xc] sub r0, r3, #0x6 sub r3, r3, #0x1 ldrb r3, [r5, r3] ldrb r1, [r5, r1] ldr r0, [r5, r0] add r3, #0xa lsl r3, r3, #0x18 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r3, _0200E184 ; =0x0000016E add r2, r6, #0x4 ldrb r0, [r5, r3] lsl r2, r2, #0x10 sub r1, r3, #0x2 str r0, [sp, #0x0] mov r0, #0xa str r0, [sp, #0x4] str r0, [sp, #0x8] str r4, [sp, #0xc] sub r0, r3, #0x6 sub r3, r3, #0x1 ldrb r1, [r5, r1] ldrb r3, [r5, r3] ldr r0, [r5, r0] lsr r2, r2, #0x10 bl FUN_02018540 ldr r3, _0200E184 ; =0x0000016E add r2, r6, #0x3 ldrb r0, [r5, r3] lsl r2, r2, #0x10 sub r1, r3, #0x2 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] mov r0, #0xa str r0, [sp, #0x8] str r4, [sp, #0xc] sub r0, r3, #0x6 sub r3, r3, #0x1 ldrb r3, [r5, r3] ldrb r1, [r5, r1] ldr r0, [r5, r0] sub r3, r3, #0x1 lsl r3, r3, #0x18 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r3, _0200E184 ; =0x0000016E add r2, r6, #0x5 ldrb r0, [r5, r3] lsl r2, r2, #0x10 sub r1, r3, #0x2 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] mov r0, #0xa str r0, [sp, #0x8] str r4, [sp, #0xc] sub r0, r3, #0x6 sub r3, r3, #0x1 ldrb r3, [r5, r3] ldrb r1, [r5, r1] ldr r0, [r5, r0] add r3, #0xa lsl r3, r3, #0x18 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r3, _0200E184 ; =0x0000016E add r2, r6, #0x6 ldrb r0, [r5, r3] lsl r2, r2, #0x10 sub r1, r3, #0x2 add r0, #0xa lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] str r4, [sp, #0xc] sub r0, r3, #0x6 sub r3, r3, #0x1 ldrb r3, [r5, r3] ldrb r1, [r5, r1] ldr r0, [r5, r0] sub r3, r3, #0x1 lsl r3, r3, #0x18 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 ldr r3, _0200E184 ; =0x0000016E add r2, r6, #0x7 ldrb r0, [r5, r3] sub r1, r3, #0x2 lsl r2, r2, #0x10 add r0, #0xa lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0xa str r0, [sp, #0x4] mov r0, #0x1 str r0, [sp, #0x8] str r4, [sp, #0xc] sub r0, r3, #0x6 sub r3, r3, #0x1 ldrb r1, [r5, r1] ldrb r3, [r5, r3] ldr r0, [r5, r0] lsr r2, r2, #0x10 bl FUN_02018540 ldr r3, _0200E184 ; =0x0000016E add r6, #0x8 ldrb r0, [r5, r3] lsl r2, r6, #0x10 sub r1, r3, #0x2 add r0, #0xa lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] str r4, [sp, #0xc] sub r0, r3, #0x6 sub r3, r3, #0x1 ldrb r3, [r5, r3] ldrb r1, [r5, r1] ldr r0, [r5, r0] add r3, #0xa lsl r3, r3, #0x18 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 mov r1, #0x5a lsl r1, r1, #0x2 ldr r0, [r5, r1] add r1, r1, #0x4 ldrb r1, [r5, r1] bl FUN_0201AC68 add sp, #0x10 pop {r4-r6, pc} nop _0200E184: .word 0x0000016E thumb_func_start FUN_0200E188 FUN_0200E188: ; 0x0200E188 push {r4, lr} sub sp, #0x10 ldr r3, _0200E1CC ; =0x0000016E add r4, r0, #0x0 ldrb r0, [r4, r3] mov r2, #0x0 sub r1, r3, #0x2 sub r0, r0, #0x1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0xc str r0, [sp, #0x4] str r0, [sp, #0x8] str r2, [sp, #0xc] sub r0, r3, #0x6 sub r3, r3, #0x1 ldrb r3, [r4, r3] ldrb r1, [r4, r1] ldr r0, [r4, r0] sub r3, r3, #0x1 lsl r3, r3, #0x18 lsr r3, r3, #0x18 bl FUN_02018540 mov r1, #0x5a lsl r1, r1, #0x2 ldr r0, [r4, r1] add r1, r1, #0x4 ldrb r1, [r4, r1] bl FUN_0201AC68 add sp, #0x10 pop {r4, pc} .balign 4 _0200E1CC: .word 0x0000016E thumb_func_start FUN_0200E1D0 FUN_0200E1D0: ; 0x0200E1D0 push {r4-r7, lr} sub sp, #0x1c add r5, r0, #0x0 ldr r0, [sp, #0x30] add r4, r1, #0x0 add r7, r2, #0x0 add r6, r3, #0x0 cmp r0, #0x0 bne _0200E1E6 bl ErrorHandling _0200E1E6: ldr r0, [sp, #0x34] cmp r0, #0x0 bne _0200E1F0 bl ErrorHandling _0200E1F0: ldr r0, _0200E2AC ; =0x021C47F4 ldrh r0, [r0, #0xc] cmp r0, #0x0 beq _0200E1FC bl ErrorHandling _0200E1FC: ldr r0, _0200E2B0 ; =0x021C46B4 bl FUN_0200E808 ldr r1, _0200E2B0 ; =0x021C46B4 add r0, r5, #0x0 bl FUN_0200E558 ldr r0, _0200E2B4 ; =0x021C4728 bl FUN_0200E5F4 ldr r0, _0200E2B0 ; =0x021C46B4 add r1, r6, #0x0 bl FUN_0200E75C add r5, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x4] str r0, [sp, #0x8] ldr r0, _0200E2B8 ; =0x021C4740 ldr r2, [sp, #0x30] str r0, [sp, #0xc] ldr r0, _0200E2B4 ; =0x021C4728 ldr r3, [sp, #0x34] str r0, [sp, #0x10] ldr r0, [sp, #0x38] add r1, r4, #0x0 str r0, [sp, #0x14] ldr r0, _0200E2BC ; =0x021C46C8 str r5, [sp, #0x18] bl FUN_0200E5C8 mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x4] mov r0, #0x1 str r0, [sp, #0x8] ldr r0, _0200E2B8 ; =0x021C4740 ldr r2, [sp, #0x30] str r0, [sp, #0xc] ldr r0, _0200E2B4 ; =0x021C4728 ldr r3, [sp, #0x34] str r0, [sp, #0x10] ldr r0, [sp, #0x38] add r1, r7, #0x0 str r0, [sp, #0x14] ldr r0, _0200E2C0 ; =0x021C46F8 str r5, [sp, #0x18] bl FUN_0200E5C8 ldr r0, _0200E2AC ; =0x021C47F4 mov r1, #0x1 strh r1, [r0, #0xc] ldr r0, _0200E2C4 ; =0x021C46B8 ldr r1, _0200E2BC ; =0x021C46C8 bl FUN_0200E528 ldr r0, _0200E2C8 ; =0x021C46BC ldr r1, _0200E2C0 ; =0x021C46F8 bl FUN_0200E528 ldr r0, _0200E2CC ; =0x021C46B4 ldr r0, [r0, #0xc] cmp r0, #0x0 beq _0200E28E ldr r0, _0200E2B0 ; =0x021C46B4 add r0, #0x14 bl FUN_0200E7A8 ldr r1, _0200E2D0 ; =0x0000014E ldr r0, _0200E2B0 ; =0x021C46B4 mov r2, #0x1 strb r2, [r0, r1] _0200E28E: ldr r0, _0200E2B0 ; =0x021C46B4 ldr r0, [r0, #0x10] cmp r0, #0x0 beq _0200E2A6 ldr r0, _0200E2B0 ; =0x021C46B4 add r0, #0x44 bl FUN_0200E7A8 ldr r1, _0200E2D4 ; =0x0000014F ldr r0, _0200E2B0 ; =0x021C46B4 mov r2, #0x1 strb r2, [r0, r1] _0200E2A6: add sp, #0x1c pop {r4-r7, pc} nop _0200E2AC: .word 0x021C47F4 _0200E2B0: .word 0x021C46B4 _0200E2B4: .word 0x021C4728 _0200E2B8: .word 0x021C4740 _0200E2BC: .word 0x021C46C8 _0200E2C0: .word 0x021C46F8 _0200E2C4: .word 0x021C46B8 _0200E2C8: .word 0x021C46BC _0200E2CC: .word 0x021C46B4 _0200E2D0: .word 0x0000014E _0200E2D4: .word 0x0000014F thumb_func_start FUN_0200E2D8 FUN_0200E2D8: ; 0x0200E2D8 push {r4, lr} ldr r0, _0200E300 ; =0x021C47F4 ldr r4, _0200E304 ; =0x021C46B4 ldrh r0, [r0, #0xc] cmp r0, #0x0 beq _0200E2FC add r1, r4, #0x0 add r2, r4, #0x0 add r0, r4, #0x0 add r1, #0x14 add r2, #0x44 bl FUN_0200E4B8 cmp r0, #0x1 bne _0200E2FC add r0, r4, #0x0 bl FUN_0200E460 _0200E2FC: pop {r4, pc} nop _0200E300: .word 0x021C47F4 _0200E304: .word 0x021C46B4 thumb_func_start FUN_0200E308 FUN_0200E308: ; 0x0200E308 ldr r0, _0200E318 ; =0x021C47F4 ldrh r0, [r0, #0xc] cmp r0, #0x0 bne _0200E314 mov r0, #0x1 bx lr _0200E314: mov r0, #0x0 bx lr .balign 4 _0200E318: .word 0x021C47F4 thumb_func_start FUN_0200E31C FUN_0200E31C: ; 0x0200E31C push {r3, lr} ldr r0, _0200E368 ; =0x021C4728 mov r1, #0x0 bl FUN_0200E6A0 ldr r0, _0200E368 ; =0x021C4728 mov r1, #0x1 bl FUN_0200E6A0 ldr r0, _0200E36C ; =0x021C46B4 ldr r1, [r0, #0x4] cmp r1, #0x0 beq _0200E33A mov r1, #0x2 str r1, [r0, #0x20] _0200E33A: ldr r0, _0200E36C ; =0x021C46B4 ldr r1, [r0, #0x8] cmp r1, #0x0 beq _0200E346 mov r1, #0x2 str r1, [r0, #0x50] _0200E346: ldr r0, _0200E370 ; =0x021C46B8 ldr r1, _0200E374 ; =0x021C46C8 bl FUN_0200E528 ldr r0, _0200E378 ; =0x021C46BC ldr r1, _0200E37C ; =0x021C46F8 bl FUN_0200E528 ldr r0, _0200E380 ; =0x021C47F4 mov r1, #0x0 strh r1, [r0, #0xc] strb r1, [r0, #0xe] strb r1, [r0, #0xf] ldr r0, _0200E384 ; =0x021C46B4 bl FUN_0200E808 pop {r3, pc} .balign 4 _0200E368: .word 0x021C4728 _0200E36C: .word 0x021C46B4 _0200E370: .word 0x021C46B8 _0200E374: .word 0x021C46C8 _0200E378: .word 0x021C46BC _0200E37C: .word 0x021C46F8 _0200E380: .word 0x021C47F4 _0200E384: .word 0x021C46B4 thumb_func_start FUN_0200E388 FUN_0200E388: ; 0x0200E388 ldr r3, _0200E390 ; =FUN_02011480 add r1, r0, #0x0 mov r0, #0x0 bx r3 .balign 4 _0200E390: .word FUN_02011480 thumb_func_start FUN_0200E394 FUN_0200E394: ; 0x0200E394 ldr r3, _0200E39C ; =FUN_0200E440 mov r1, #0x0 bx r3 nop _0200E39C: .word FUN_0200E440 thumb_func_start FUN_0200E3A0 FUN_0200E3A0: ; 0x0200E3A0 ldr r2, _0200E3B4 ; =0x00007FFF cmp r1, r2 bne _0200E3AA mov r1, #0x10 b _0200E3AE _0200E3AA: mov r1, #0xf mvn r1, r1 _0200E3AE: ldr r3, _0200E3B8 ; =FUN_0200E440 bx r3 nop _0200E3B4: .word 0x00007FFF _0200E3B8: .word FUN_0200E440 thumb_func_start FUN_0200E3BC FUN_0200E3BC: ; 0x0200E3BC push {r0-r3} push {r3-r4, lr} sub sp, #0xc add r4, r0, #0x0 add r0, sp, #0x1c bne _0200E3D2 mov r1, #0x0 mov r2, #0x2 blx FUN_020C9550 b _0200E3DA _0200E3D2: mov r1, #0x0 mov r2, #0x2 blx FUN_020C94E8 _0200E3DA: ldr r0, _0200E41C ; =0x021C4740 mov r1, #0x1 add r2, r4, #0x0 bl FUN_02011634 mov r2, #0x0 ldr r0, _0200E41C ; =0x021C4740 mov r1, #0x3f add r3, r2, #0x0 str r4, [sp, #0x0] bl FUN_02011650 mov r1, #0x0 str r1, [sp, #0x0] str r1, [sp, #0x4] ldr r0, _0200E41C ; =0x021C4740 add r2, r1, #0x0 add r3, r1, #0x0 str r4, [sp, #0x8] bl FUN_02011698 ldr r0, _0200E41C ; =0x021C4740 mov r1, #0x20 mov r2, #0x0 add r3, r4, #0x0 bl FUN_02011678 add sp, #0xc pop {r3-r4} pop {r3} add sp, #0x10 bx r3 nop _0200E41C: .word 0x021C4740 thumb_func_start FUN_0200E420 FUN_0200E420: ; 0x0200E420 push {r0-r3} push {r3, lr} add r0, sp, #0x8 mov r1, #0x0 mov r2, #0x2 blx FUN_020C9550 add r0, sp, #0x8 mov r1, #0x0 mov r2, #0x2 blx FUN_020C94E8 pop {r3} pop {r3} add sp, #0x10 bx r3 thumb_func_start FUN_0200E440 FUN_0200E440: ; 0x0200E440 push {r3, lr} cmp r0, #0x0 bne _0200E44E ldr r0, _0200E458 ; =0x0400006C blx FUN_020C5978 pop {r3, pc} _0200E44E: ldr r0, _0200E45C ; =0x0400106C blx FUN_020C5978 pop {r3, pc} nop _0200E458: .word 0x0400006C _0200E45C: .word 0x0400106C thumb_func_start FUN_0200E460 FUN_0200E460: ; 0x0200E460 push {r4, lr} mov r1, #0x53 add r4, r0, #0x0 mov r2, #0x0 lsl r1, r1, #0x2 strh r2, [r4, r1] bl FUN_0200E770 mov r1, #0x15 lsl r1, r1, #0x4 strh r0, [r4, r1] ldr r0, [r4, #0xc] cmp r0, #0x0 beq _0200E490 add r0, r4, #0x0 add r0, #0x14 bl FUN_0200E7D8 ldr r0, [r4, #0x3c] cmp r0, #0x0 bne _0200E490 ldr r0, _0200E4B4 ; =0x021C47F4 mov r1, #0x0 strb r1, [r0, #0xe] _0200E490: ldr r0, [r4, #0x10] cmp r0, #0x0 beq _0200E4AA add r0, r4, #0x0 add r0, #0x44 bl FUN_0200E7D8 ldr r0, [r4, #0x3c] cmp r0, #0x0 bne _0200E4AA ldr r0, _0200E4B4 ; =0x021C47F4 mov r1, #0x0 strb r1, [r0, #0xf] _0200E4AA: add r0, r4, #0x0 bl FUN_0200E808 pop {r4, pc} nop _0200E4B4: .word 0x021C47F4 thumb_func_start FUN_0200E4B8 FUN_0200E4B8: ; 0x0200E4B8 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] add r4, r2, #0x0 cmp r0, #0x0 beq _0200E4CE cmp r0, #0x1 beq _0200E4E0 cmp r0, #0x2 beq _0200E4FA b _0200E512 _0200E4CE: add r0, r5, #0x4 bl FUN_0200E528 add r0, r5, #0x0 add r0, #0x8 add r1, r4, #0x0 bl FUN_0200E528 b _0200E512 _0200E4E0: ldr r0, [r5, #0x4] cmp r0, #0x0 beq _0200E4EE add r0, r5, #0x4 bl FUN_0200E528 b _0200E512 _0200E4EE: add r0, r5, #0x0 add r0, #0x8 add r1, r4, #0x0 bl FUN_0200E528 b _0200E512 _0200E4FA: ldr r0, [r5, #0x8] cmp r0, #0x0 beq _0200E50C add r0, r5, #0x0 add r0, #0x8 add r1, r4, #0x0 bl FUN_0200E528 b _0200E512 _0200E50C: add r0, r5, #0x4 bl FUN_0200E528 _0200E512: ldr r0, [r5, #0x4] cmp r0, #0x0 bne _0200E522 ldr r0, [r5, #0x8] cmp r0, #0x0 bne _0200E522 mov r0, #0x1 pop {r3-r5, pc} _0200E522: mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0200E528 FUN_0200E528: ; 0x0200E528 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x0 beq _0200E540 add r0, r1, #0x0 bl FUN_0200E544 cmp r0, #0x1 bne _0200E540 mov r0, #0x0 str r0, [r4, #0x0] _0200E540: pop {r4, pc} .balign 4 thumb_func_start FUN_0200E544 FUN_0200E544: ; 0x0200E544 push {r3, lr} ldr r1, [r0, #0x0] lsl r2, r1, #0x2 ldr r1, _0200E554 ; =0x020ECEF4 ldr r1, [r1, r2] blx r1 pop {r3, pc} nop _0200E554: .word 0x020ECEF4 thumb_func_start FUN_0200E558 FUN_0200E558: ; 0x0200E558 push {r3, lr} cmp r0, #0x4 bhi _0200E5B8 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0200E56A: ; jump table (using 16-bit offset) .short _0200E574 - _0200E56A - 2; case 0 .short _0200E582 - _0200E56A - 2; case 1 .short _0200E590 - _0200E56A - 2; case 2 .short _0200E59E - _0200E56A - 2; case 3 .short _0200E5AC - _0200E56A - 2; case 4 _0200E574: mov r2, #0x1 add r0, r1, #0x0 mov r1, #0x0 add r3, r2, #0x0 bl FUN_0200E5BC pop {r3, pc} _0200E582: add r0, r1, #0x0 mov r1, #0x1 add r2, r1, #0x0 add r3, r1, #0x0 bl FUN_0200E5BC pop {r3, pc} _0200E590: mov r2, #0x1 add r0, r1, #0x0 mov r1, #0x2 add r3, r2, #0x0 bl FUN_0200E5BC pop {r3, pc} _0200E59E: add r0, r1, #0x0 mov r1, #0x1 add r2, r1, #0x0 mov r3, #0x0 bl FUN_0200E5BC pop {r3, pc} _0200E5AC: add r0, r1, #0x0 mov r1, #0x2 mov r2, #0x0 mov r3, #0x1 bl FUN_0200E5BC _0200E5B8: pop {r3, pc} .balign 4 thumb_func_start FUN_0200E5BC FUN_0200E5BC: ; 0x0200E5BC str r1, [r0, #0x0] str r2, [r0, #0x4] str r3, [r0, #0x8] str r2, [r0, #0xc] str r3, [r0, #0x10] bx lr thumb_func_start FUN_0200E5C8 FUN_0200E5C8: ; 0x0200E5C8 str r1, [r0, #0x0] str r2, [r0, #0x4] ldr r1, [sp, #0x0] str r3, [r0, #0x8] str r1, [r0, #0xc] ldr r1, [sp, #0x4] str r1, [r0, #0x14] ldr r1, [sp, #0x8] str r1, [r0, #0x10] ldr r1, [sp, #0xc] str r1, [r0, #0x18] ldr r1, [sp, #0x10] str r1, [r0, #0x1c] ldr r1, [sp, #0x14] str r1, [r0, #0x20] ldr r1, _0200E5F0 ; =0xFFFFFFF0 add r1, sp ldrh r1, [r1, #0x28] strh r1, [r0, #0x24] bx lr .balign 4 _0200E5F0: .word 0xFFFFFFF0 thumb_func_start FUN_0200E5F4 FUN_0200E5F4: ; 0x0200E5F4 mov r3, #0x0 ldr r1, _0200E60C ; =FUN_0200E758 add r2, r3, #0x0 _0200E5FA: str r2, [r0, #0x0] str r1, [r0, #0x8] str r2, [r0, #0x10] add r3, r3, #0x1 add r0, r0, #0x4 cmp r3, #0x2 blt _0200E5FA bx lr nop _0200E60C: .word FUN_0200E758 thumb_func_start FUN_0200E610 FUN_0200E610: ; 0x0200E610 push {r3-r5, lr} add r5, r0, #0x0 mov r4, #0x0 _0200E616: ldr r0, [r5, #0x0] ldr r1, [r5, #0x8] blx r1 add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, #0x2 blt _0200E616 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0200E628 FUN_0200E628: ; 0x0200E628 push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 mov r0, #0x1 str r0, [sp, #0x4] add r0, r5, #0x0 str r0, [sp, #0x8] add r0, #0x10 lsl r4, r3, #0x2 str r0, [sp, #0x8] ldr r0, [r0, r4] add r7, r2, #0x0 str r1, [sp, #0x0] cmp r0, #0x0 beq _0200E64A bl ErrorHandling _0200E64A: add r6, r5, #0x0 add r6, #0x8 ldr r0, [r6, r4] cmp r0, #0x0 bne _0200E658 bl ErrorHandling _0200E658: ldr r0, [r5, #0x10] cmp r0, #0x0 bne _0200E672 ldr r0, [r5, #0x14] cmp r0, #0x0 bne _0200E672 ldr r0, _0200E698 ; =FUN_0200E610 add r1, r5, #0x0 bl FUN_02015F34 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x4] _0200E672: ldr r0, [sp, #0x4] cmp r0, #0x1 beq _0200E67C bl ErrorHandling _0200E67C: ldr r0, [sp, #0x0] cmp r7, #0x0 str r0, [r5, r4] beq _0200E688 str r7, [r6, r4] b _0200E68C _0200E688: ldr r0, _0200E69C ; =FUN_0200E758 str r0, [r6, r4] _0200E68C: ldr r0, [sp, #0x8] mov r1, #0x1 str r1, [r0, r4] add sp, #0xc pop {r4-r7, pc} nop _0200E698: .word FUN_0200E610 _0200E69C: .word FUN_0200E758 thumb_func_start FUN_0200E6A0 FUN_0200E6A0: ; 0x0200E6A0 push {r3-r5, lr} lsl r4, r1, #0x2 add r5, r0, #0x0 mov r1, #0x0 add r0, r5, r4 str r1, [r0, #0x10] ldr r0, [r5, #0x10] cmp r0, #0x0 bne _0200E6BC ldr r0, [r5, #0x14] cmp r0, #0x0 bne _0200E6BC bl FUN_02015F1C _0200E6BC: ldr r1, _0200E6C8 ; =FUN_0200E758 add r0, r5, r4 str r1, [r0, #0x8] mov r0, #0x0 str r0, [r5, r4] pop {r3-r5, pc} .balign 4 _0200E6C8: .word FUN_0200E758 thumb_func_start FUN_0200E6CC FUN_0200E6CC: ; 0x0200E6CC push {r3-r7, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldr r0, [sp, #0x18] mov r1, #0x10 add r6, r2, #0x0 add r7, r3, #0x0 bl FUN_020169D8 add r1, r0, #0x0 str r5, [r1, #0x0] str r4, [r1, #0x4] mov r2, #0x1 str r6, [r1, #0x8] ldr r0, _0200E6F4 ; =FUN_0200E71C lsl r2, r2, #0xa str r7, [r1, #0xc] bl FUN_0200CA98 pop {r3-r7, pc} .balign 4 _0200E6F4: .word FUN_0200E71C thumb_func_start FUN_0200E6F8 FUN_0200E6F8: ; 0x0200E6F8 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r0, r2, #0x0 mov r1, #0x8 bl FUN_020169D8 add r1, r0, #0x0 mov r2, #0x1 str r5, [r1, #0x0] ldr r0, _0200E718 ; =FUN_0200E73C lsl r2, r2, #0xa str r4, [r1, #0x4] bl FUN_0200CA98 pop {r3-r5, pc} .balign 4 _0200E718: .word FUN_0200E73C thumb_func_start FUN_0200E71C FUN_0200E71C: ; 0x0200E71C push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 ldr r0, [r4, #0x0] ldr r1, [r4, #0x4] ldr r2, [r4, #0x8] ldr r3, [r4, #0xc] bl FUN_0200E628 add r0, r5, #0x0 bl FUN_0200CAB4 add r0, r4, #0x0 bl FUN_02016A18 pop {r3-r5, pc} thumb_func_start FUN_0200E73C FUN_0200E73C: ; 0x0200E73C push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 ldr r0, [r4, #0x0] ldr r1, [r4, #0x4] bl FUN_0200E6A0 add r0, r5, #0x0 bl FUN_0200CAB4 add r0, r4, #0x0 bl FUN_02016A18 pop {r3-r5, pc} thumb_func_start FUN_0200E758 FUN_0200E758: ; 0x0200E758 bx lr .balign 4 thumb_func_start FUN_0200E75C FUN_0200E75C: ; 0x0200E75C ldr r2, _0200E76C ; =0x0000FFFF cmp r1, r2 bne _0200E768 mov r1, #0x15 lsl r1, r1, #0x4 ldrh r1, [r0, r1] _0200E768: add r0, r1, #0x0 bx lr .balign 4 _0200E76C: .word 0x0000FFFF thumb_func_start FUN_0200E770 FUN_0200E770: ; 0x0200E770 ldr r1, [r0, #0xc] cmp r1, #0x1 bne _0200E77C add r2, r0, #0x0 add r2, #0x14 b _0200E780 _0200E77C: add r2, r0, #0x0 add r2, #0x44 _0200E780: ldr r1, [r2, #0x28] cmp r1, #0x1 bne _0200E78A ldrh r0, [r2, #0x24] bx lr _0200E78A: mov r1, #0x15 lsl r1, r1, #0x4 ldrh r0, [r0, r1] bx lr .balign 4 thumb_func_start FUN_0200E794 FUN_0200E794: ; 0x0200E794 push {r4, lr} add r4, r0, #0x0 ldr r0, [r1, #0x10] mov r1, #0x0 bl FUN_0200E440 add r0, r4, #0x0 bl FUN_0200CAB4 pop {r4, pc} thumb_func_start FUN_0200E7A8 FUN_0200E7A8: ; 0x0200E7A8 push {r3, lr} add r1, r0, #0x0 ldr r0, [r1, #0x28] cmp r0, #0x0 bne _0200E7CE ldrh r2, [r1, #0x24] ldr r0, _0200E7D0 ; =0x00007FFF cmp r2, r0 beq _0200E7BE cmp r2, #0x0 bne _0200E7CE _0200E7BE: ldr r0, [r1, #0x2c] cmp r0, #0x0 bne _0200E7CE mov r2, #0x1 ldr r0, _0200E7D4 ; =FUN_0200E794 lsl r2, r2, #0xa bl FUN_0200CA98 _0200E7CE: pop {r3, pc} .balign 4 _0200E7D0: .word 0x00007FFF _0200E7D4: .word FUN_0200E794 thumb_func_start FUN_0200E7D8 FUN_0200E7D8: ; 0x0200E7D8 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x28] cmp r0, #0x1 bne _0200E800 ldrh r1, [r4, #0x24] ldr r0, _0200E804 ; =0x00007FFF cmp r1, r0 beq _0200E7EE cmp r1, #0x0 bne _0200E800 _0200E7EE: ldr r0, [r4, #0x2c] cmp r0, #0x0 bne _0200E800 ldr r0, [r4, #0x10] bl FUN_0200E3A0 ldr r0, [r4, #0x10] bl FUN_0200E388 _0200E800: pop {r4, pc} nop _0200E804: .word 0x00007FFF thumb_func_start FUN_0200E808 FUN_0200E808: ; 0x0200E808 push {r4, lr} add r4, r0, #0x0 add r2, r4, #0x0 mov r1, #0x14 mov r0, #0x0 _0200E812: strb r0, [r2, #0x0] add r2, r2, #0x1 sub r1, r1, #0x1 bne _0200E812 add r0, r4, #0x0 add r0, #0x14 mov r1, #0x0 mov r2, #0x30 blx FUN_020DF4A4 add r0, r4, #0x0 add r0, #0x44 mov r1, #0x0 mov r2, #0x30 blx FUN_020DF4A4 add r2, r4, #0x0 add r2, #0x74 mov r1, #0x18 mov r0, #0x0 _0200E83A: strb r0, [r2, #0x0] add r2, r2, #0x1 sub r1, r1, #0x1 bne _0200E83A add r4, #0x8c add r0, r4, #0x0 mov r1, #0x0 mov r2, #0xc0 blx FUN_020DF4A4 pop {r4, pc} thumb_func_start FUN_0200E850 FUN_0200E850: ; 0x0200E850 push {r3, lr} ldr r1, [r0, #0xc] cmp r1, #0x0 bne _0200E866 mov r1, #0x1 str r1, [r0, #0x28] str r1, [r0, #0x2c] bl FUN_0200F20C mov r0, #0x0 pop {r3, pc} _0200E866: bl FUN_0200F2AC pop {r3, pc} thumb_func_start FUN_0200E86C FUN_0200E86C: ; 0x0200E86C push {r3, lr} ldr r1, [r0, #0xc] cmp r1, #0x0 bne _0200E884 mov r1, #0x0 str r1, [r0, #0x28] mov r2, #0x1 str r2, [r0, #0x2c] bl FUN_0200F20C mov r0, #0x0 pop {r3, pc} _0200E884: bl FUN_0200F2AC pop {r3, pc} .balign 4 thumb_func_start FUN_0200E88C FUN_0200E88C: ; 0x0200E88C push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200E8B4 ldr r1, _0200E8BC ; =0x020ECF9F ldr r0, _0200E8C0 ; =0x02105AF8 str r1, [r0, #0x30] ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200E8C4 ; =0x02105B28 add r0, r4, #0x0 bl FUN_02010F2C mov r0, #0x1 str r0, [r4, #0x28] mov r0, #0x0 str r0, [r4, #0x2c] pop {r4, pc} _0200E8B4: bl FUN_02010F70 pop {r4, pc} nop _0200E8BC: .word 0x020ECF9F _0200E8C0: .word 0x02105AF8 _0200E8C4: .word 0x02105B28 thumb_func_start FUN_0200E8C8 FUN_0200E8C8: ; 0x0200E8C8 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200E8EE ldr r1, _0200E8F4 ; =0x020ECF9C ldr r0, _0200E8F8 ; =0x02105AF8 str r1, [r0, #0x40] ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200E8FC ; =0x02105B38 add r0, r4, #0x0 bl FUN_02010F2C mov r0, #0x0 str r0, [r4, #0x28] str r0, [r4, #0x2c] pop {r4, pc} _0200E8EE: bl FUN_02010F70 pop {r4, pc} .balign 4 _0200E8F4: .word 0x020ECF9C _0200E8F8: .word 0x02105AF8 _0200E8FC: .word 0x02105B38 thumb_func_start FUN_0200E900 FUN_0200E900: ; 0x0200E900 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200E928 ldr r1, _0200E930 ; =0x020ECFA5 ldr r0, _0200E934 ; =0x02105AF8 str r1, [r0, #0x48] ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200E938 ; =0x02105B40 add r0, r4, #0x0 bl FUN_02010F2C mov r0, #0x1 str r0, [r4, #0x28] mov r0, #0x0 str r0, [r4, #0x2c] pop {r4, pc} _0200E928: bl FUN_02010F70 pop {r4, pc} nop _0200E930: .word 0x020ECFA5 _0200E934: .word 0x02105AF8 _0200E938: .word 0x02105B40 thumb_func_start FUN_0200E93C FUN_0200E93C: ; 0x0200E93C push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200E962 ldr r1, _0200E968 ; =0x020ECFA2 ldr r0, _0200E96C ; =0x02105AF8 str r1, [r0, #0x38] ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200E970 ; =0x02105B30 add r0, r4, #0x0 bl FUN_02010F2C mov r0, #0x0 str r0, [r4, #0x28] str r0, [r4, #0x2c] pop {r4, pc} _0200E962: bl FUN_02010F70 pop {r4, pc} .balign 4 _0200E968: .word 0x020ECFA2 _0200E96C: .word 0x02105AF8 _0200E970: .word 0x02105B30 thumb_func_start FUN_0200E974 FUN_0200E974: ; 0x0200E974 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200E996 ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200E99C ; =0x020ED0E8 add r0, r4, #0x0 bl FUN_0200FCC8 mov r0, #0x1 str r0, [r4, #0x28] mov r0, #0x0 str r0, [r4, #0x2c] pop {r4, pc} _0200E996: bl FUN_0200FD1C pop {r4, pc} .balign 4 _0200E99C: .word 0x020ED0E8 thumb_func_start FUN_0200E9A0 FUN_0200E9A0: ; 0x0200E9A0 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200E9C0 ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200E9C8 ; =0x020ED154 add r0, r4, #0x0 bl FUN_0200FCC8 mov r0, #0x0 str r0, [r4, #0x28] str r0, [r4, #0x2c] pop {r4, pc} _0200E9C0: bl FUN_0200FD1C pop {r4, pc} nop _0200E9C8: .word 0x020ED154 thumb_func_start FUN_0200E9CC FUN_0200E9CC: ; 0x0200E9CC push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200E9F4 ldr r1, _0200E9FC ; =0x020ECFC0 ldr r0, _0200EA00 ; =0x02105AF8 str r1, [r0, #0x20] ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200EA04 ; =0x02105B18 add r0, r4, #0x0 bl FUN_02010F2C mov r0, #0x1 str r0, [r4, #0x28] mov r0, #0x0 str r0, [r4, #0x2c] pop {r4, pc} _0200E9F4: bl FUN_02010F70 pop {r4, pc} nop _0200E9FC: .word 0x020ECFC0 _0200EA00: .word 0x02105AF8 _0200EA04: .word 0x02105B18 thumb_func_start FUN_0200EA08 FUN_0200EA08: ; 0x0200EA08 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200EA2E ldr r1, _0200EA34 ; =0x020ECFC6 ldr r0, _0200EA38 ; =0x02105AF8 str r1, [r0, #0x28] ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200EA3C ; =0x02105B20 add r0, r4, #0x0 bl FUN_02010F2C mov r0, #0x0 str r0, [r4, #0x28] str r0, [r4, #0x2c] pop {r4, pc} _0200EA2E: bl FUN_02010F70 pop {r4, pc} .balign 4 _0200EA34: .word 0x020ECFC6 _0200EA38: .word 0x02105AF8 _0200EA3C: .word 0x02105B20 thumb_func_start FUN_0200EA40 FUN_0200EA40: ; 0x0200EA40 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200EA68 ldr r1, _0200EA70 ; =0x020ECFA8 ldr r0, _0200EA74 ; =0x02105AF8 str r1, [r0, #0x10] ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200EA78 ; =0x02105B08 add r0, r4, #0x0 bl FUN_02010F2C mov r0, #0x1 str r0, [r4, #0x28] mov r0, #0x0 str r0, [r4, #0x2c] pop {r4, pc} _0200EA68: bl FUN_02010F70 pop {r4, pc} nop _0200EA70: .word 0x020ECFA8 _0200EA74: .word 0x02105AF8 _0200EA78: .word 0x02105B08 thumb_func_start FUN_0200EA7C FUN_0200EA7C: ; 0x0200EA7C push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200EAA2 ldr r1, _0200EAA8 ; =0x020ECFB4 ldr r0, _0200EAAC ; =0x02105AF8 str r1, [r0, #0x18] ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200EAB0 ; =0x02105B10 add r0, r4, #0x0 bl FUN_02010F2C mov r0, #0x0 str r0, [r4, #0x28] str r0, [r4, #0x2c] pop {r4, pc} _0200EAA2: bl FUN_02010F70 pop {r4, pc} .balign 4 _0200EAA8: .word 0x020ECFB4 _0200EAAC: .word 0x02105AF8 _0200EAB0: .word 0x02105B10 thumb_func_start FUN_0200EAB4 FUN_0200EAB4: ; 0x0200EAB4 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200EAD6 ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200EADC ; =0x020ED1C0 add r0, r4, #0x0 bl FUN_0200FCC8 mov r0, #0x1 str r0, [r4, #0x28] mov r0, #0x0 str r0, [r4, #0x2c] pop {r4, pc} _0200EAD6: bl FUN_0200FD1C pop {r4, pc} .balign 4 _0200EADC: .word 0x020ED1C0 thumb_func_start FUN_0200EAE0 FUN_0200EAE0: ; 0x0200EAE0 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200EB00 ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200EB08 ; =0x020ED1E4 add r0, r4, #0x0 bl FUN_0200FCC8 mov r0, #0x0 str r0, [r4, #0x28] str r0, [r4, #0x2c] pop {r4, pc} _0200EB00: bl FUN_0200FD1C pop {r4, pc} nop _0200EB08: .word 0x020ED1E4 thumb_func_start FUN_0200EB0C FUN_0200EB0C: ; 0x0200EB0C push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200EB30 ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200EB38 ; =0x020ED208 ldr r2, _0200EB3C ; =0x020ED22C add r0, r4, #0x0 bl FUN_0200FD6C mov r0, #0x1 str r0, [r4, #0x28] mov r0, #0x0 str r0, [r4, #0x2c] pop {r4, pc} _0200EB30: bl FUN_0200FDC4 pop {r4, pc} nop _0200EB38: .word 0x020ED208 _0200EB3C: .word 0x020ED22C thumb_func_start FUN_0200EB40 FUN_0200EB40: ; 0x0200EB40 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200EB62 ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200EB68 ; =0x020ED250 ldr r2, _0200EB6C ; =0x020ED274 add r0, r4, #0x0 bl FUN_0200FD6C mov r0, #0x0 str r0, [r4, #0x28] str r0, [r4, #0x2c] pop {r4, pc} _0200EB62: bl FUN_0200FDC4 pop {r4, pc} .balign 4 _0200EB68: .word 0x020ED250 _0200EB6C: .word 0x020ED274 thumb_func_start FUN_0200EB70 FUN_0200EB70: ; 0x0200EB70 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200EB92 ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200EB98 ; =0x020ED090 add r0, r4, #0x0 bl FUN_0200FF18 mov r0, #0x1 str r0, [r4, #0x28] mov r0, #0x0 str r0, [r4, #0x2c] pop {r4, pc} _0200EB92: bl FUN_0200FF50 pop {r4, pc} .balign 4 _0200EB98: .word 0x020ED090 thumb_func_start FUN_0200EB9C FUN_0200EB9C: ; 0x0200EB9C push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200EBBC ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200EBC4 ; =0x020ED040 add r0, r4, #0x0 bl FUN_0200FF18 mov r0, #0x0 str r0, [r4, #0x28] str r0, [r4, #0x2c] pop {r4, pc} _0200EBBC: bl FUN_0200FF50 pop {r4, pc} nop _0200EBC4: .word 0x020ED040 thumb_func_start FUN_0200EBC8 FUN_0200EBC8: ; 0x0200EBC8 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200EBEA ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200EBF0 ; =0x020ED050 add r0, r4, #0x0 bl FUN_0200FF18 mov r0, #0x1 str r0, [r4, #0x28] mov r0, #0x0 str r0, [r4, #0x2c] pop {r4, pc} _0200EBEA: bl FUN_0200FF50 pop {r4, pc} .balign 4 _0200EBF0: .word 0x020ED050 thumb_func_start FUN_0200EBF4 FUN_0200EBF4: ; 0x0200EBF4 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200EC14 ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200EC1C ; =0x020ED060 add r0, r4, #0x0 bl FUN_0200FF18 mov r0, #0x0 str r0, [r4, #0x28] str r0, [r4, #0x2c] pop {r4, pc} _0200EC14: bl FUN_0200FF50 pop {r4, pc} nop _0200EC1C: .word 0x020ED060 thumb_func_start FUN_0200EC20 FUN_0200EC20: ; 0x0200EC20 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200EC42 ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200EC48 ; =0x020ECFE0 add r0, r4, #0x0 bl FUN_020101EC mov r0, #0x1 str r0, [r4, #0x28] mov r0, #0x0 str r0, [r4, #0x2c] pop {r4, pc} _0200EC42: bl FUN_02010224 pop {r4, pc} .balign 4 _0200EC48: .word 0x020ECFE0 thumb_func_start FUN_0200EC4C FUN_0200EC4C: ; 0x0200EC4C push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200EC6C ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200EC74 ; =0x020ECFEC add r0, r4, #0x0 bl FUN_020101EC mov r0, #0x0 str r0, [r4, #0x28] str r0, [r4, #0x2c] pop {r4, pc} _0200EC6C: bl FUN_02010224 pop {r4, pc} nop _0200EC74: .word 0x020ECFEC thumb_func_start FUN_0200EC78 FUN_0200EC78: ; 0x0200EC78 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200EC9A ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200ECA0 ; =0x020ED0A0 add r0, r4, #0x0 bl FUN_0200FCC8 mov r0, #0x1 str r0, [r4, #0x28] mov r0, #0x0 str r0, [r4, #0x2c] pop {r4, pc} _0200EC9A: bl FUN_0200FD1C pop {r4, pc} .balign 4 _0200ECA0: .word 0x020ED0A0 thumb_func_start FUN_0200ECA4 FUN_0200ECA4: ; 0x0200ECA4 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200ECC4 ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200ECCC ; =0x020ED0C4 add r0, r4, #0x0 bl FUN_0200FCC8 mov r0, #0x0 str r0, [r4, #0x28] str r0, [r4, #0x2c] pop {r4, pc} _0200ECC4: bl FUN_0200FD1C pop {r4, pc} nop _0200ECCC: .word 0x020ED0C4 thumb_func_start FUN_0200ECD0 FUN_0200ECD0: ; 0x0200ECD0 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200ECF2 ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200ECF8 ; =0x020ED10C add r0, r4, #0x0 bl FUN_0200FCC8 mov r0, #0x1 str r0, [r4, #0x28] mov r0, #0x0 str r0, [r4, #0x2c] pop {r4, pc} _0200ECF2: bl FUN_0200FD1C pop {r4, pc} .balign 4 _0200ECF8: .word 0x020ED10C thumb_func_start FUN_0200ECFC FUN_0200ECFC: ; 0x0200ECFC push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200ED1C ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200ED24 ; =0x020ED178 add r0, r4, #0x0 bl FUN_0200FCC8 mov r0, #0x0 str r0, [r4, #0x28] str r0, [r4, #0x2c] pop {r4, pc} _0200ED1C: bl FUN_0200FD1C pop {r4, pc} nop _0200ED24: .word 0x020ED178 thumb_func_start FUN_0200ED28 FUN_0200ED28: ; 0x0200ED28 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200ED4A ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200ED50 ; =0x020ED004 add r0, r4, #0x0 bl FUN_020103F0 mov r0, #0x1 str r0, [r4, #0x28] mov r0, #0x0 str r0, [r4, #0x2c] pop {r4, pc} _0200ED4A: bl FUN_02010428 pop {r4, pc} .balign 4 _0200ED50: .word 0x020ED004 thumb_func_start FUN_0200ED54 FUN_0200ED54: ; 0x0200ED54 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200ED74 ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200ED7C ; =0x020ED010 add r0, r4, #0x0 bl FUN_020103F0 mov r0, #0x0 str r0, [r4, #0x28] str r0, [r4, #0x2c] pop {r4, pc} _0200ED74: bl FUN_02010428 pop {r4, pc} nop _0200ED7C: .word 0x020ED010 thumb_func_start FUN_0200ED80 FUN_0200ED80: ; 0x0200ED80 push {r4, lr} sub sp, #0x10 add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200EDC4 ldr r0, _0200EDCC ; =0x020ED298 mov r1, #0x4 str r0, [sp, #0x0] ldr r0, _0200EDD0 ; =0x020ED2D8 str r0, [sp, #0x4] add r0, sp, #0x0 strb r1, [r0, #0x8] mov r1, #0x0 strb r1, [r0, #0x9] mov r1, #0x3f strb r1, [r0, #0xa] mov r1, #0x20 strb r1, [r0, #0xb] mov r1, #0x1 strb r1, [r0, #0xc] ldrh r0, [r4, #0x24] bl FUN_0200E420 add r0, r4, #0x0 add r1, sp, #0x0 bl FUN_02010688 mov r0, #0x1 str r0, [r4, #0x28] mov r0, #0x0 add sp, #0x10 str r0, [r4, #0x2c] pop {r4, pc} _0200EDC4: bl FUN_020106C0 add sp, #0x10 pop {r4, pc} .balign 4 _0200EDCC: .word 0x020ED298 _0200EDD0: .word 0x020ED2D8 thumb_func_start FUN_0200EDD4 FUN_0200EDD4: ; 0x0200EDD4 push {r4, lr} sub sp, #0x10 add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200EE14 ldr r0, _0200EE1C ; =0x020ED318 mov r1, #0x4 str r0, [sp, #0x0] ldr r0, _0200EE20 ; =0x020ED358 mov r2, #0x0 str r0, [sp, #0x4] add r0, sp, #0x0 strb r1, [r0, #0x8] strb r2, [r0, #0x9] mov r1, #0x3f strb r1, [r0, #0xa] mov r1, #0x20 strb r1, [r0, #0xb] strb r2, [r0, #0xc] ldrh r0, [r4, #0x24] bl FUN_0200E420 add r0, r4, #0x0 add r1, sp, #0x0 bl FUN_02010688 mov r0, #0x0 str r0, [r4, #0x28] add sp, #0x10 str r0, [r4, #0x2c] pop {r4, pc} _0200EE14: bl FUN_020106C0 add sp, #0x10 pop {r4, pc} .balign 4 _0200EE1C: .word 0x020ED318 _0200EE20: .word 0x020ED358 thumb_func_start FUN_0200EE24 FUN_0200EE24: ; 0x0200EE24 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200EE4C ldr r1, _0200EE54 ; =0x020ECFD5 ldr r0, _0200EE58 ; =0x02105AF8 str r1, [r0, #0x0] ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200EE5C ; =0x02105AF8 add r0, r4, #0x0 bl FUN_02010F2C mov r0, #0x1 str r0, [r4, #0x28] mov r0, #0x0 str r0, [r4, #0x2c] pop {r4, pc} _0200EE4C: bl FUN_02010F70 pop {r4, pc} nop _0200EE54: .word 0x020ECFD5 _0200EE58: .word 0x02105AF8 _0200EE5C: .word 0x02105AF8 thumb_func_start FUN_0200EE60 FUN_0200EE60: ; 0x0200EE60 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200EE86 ldr r1, _0200EE8C ; =0x020ECFCC ldr r0, _0200EE90 ; =0x02105AF8 str r1, [r0, #0x8] ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200EE94 ; =0x02105B00 add r0, r4, #0x0 bl FUN_02010F2C mov r0, #0x0 str r0, [r4, #0x28] str r0, [r4, #0x2c] pop {r4, pc} _0200EE86: bl FUN_02010F70 pop {r4, pc} .balign 4 _0200EE8C: .word 0x020ECFCC _0200EE90: .word 0x02105AF8 _0200EE94: .word 0x02105B00 thumb_func_start FUN_0200EE98 FUN_0200EE98: ; 0x0200EE98 push {r3-r4, lr} sub sp, #0xc add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200EECA ldr r3, _0200EED4 ; =0x020ECFF8 add r2, sp, #0x0 ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldr r0, [r3, #0x0] str r0, [r2, #0x0] ldrh r0, [r4, #0x24] bl FUN_0200E420 add r0, r4, #0x0 add r1, sp, #0x0 bl FUN_02010948 mov r0, #0x1 str r0, [r4, #0x28] mov r0, #0x0 add sp, #0xc str r0, [r4, #0x2c] pop {r3-r4, pc} _0200EECA: bl FUN_02010988 add sp, #0xc pop {r3-r4, pc} nop _0200EED4: .word 0x020ECFF8 thumb_func_start FUN_0200EED8 FUN_0200EED8: ; 0x0200EED8 push {r3-r4, lr} sub sp, #0xc add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200EF08 ldr r3, _0200EF10 ; =0x020ED034 add r2, sp, #0x0 ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldr r0, [r3, #0x0] str r0, [r2, #0x0] ldrh r0, [r4, #0x24] bl FUN_0200E420 add r0, r4, #0x0 add r1, sp, #0x0 bl FUN_02010948 mov r0, #0x0 str r0, [r4, #0x28] add sp, #0xc str r0, [r4, #0x2c] pop {r3-r4, pc} _0200EF08: bl FUN_02010988 add sp, #0xc pop {r3-r4, pc} .balign 4 _0200EF10: .word 0x020ED034 thumb_func_start FUN_0200EF14 FUN_0200EF14: ; 0x0200EF14 push {r3-r4, lr} sub sp, #0xc add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200EF46 ldr r3, _0200EF50 ; =0x020ED01C add r2, sp, #0x0 ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldr r0, [r3, #0x0] str r0, [r2, #0x0] ldrh r0, [r4, #0x24] bl FUN_0200E420 add r0, r4, #0x0 add r1, sp, #0x0 bl FUN_02010C7C mov r0, #0x1 str r0, [r4, #0x28] mov r0, #0x0 add sp, #0xc str r0, [r4, #0x2c] pop {r3-r4, pc} _0200EF46: bl FUN_02010CBC add sp, #0xc pop {r3-r4, pc} nop _0200EF50: .word 0x020ED01C thumb_func_start FUN_0200EF54 FUN_0200EF54: ; 0x0200EF54 push {r3-r4, lr} sub sp, #0xc add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200EF84 ldr r3, _0200EF8C ; =0x020ED028 add r2, sp, #0x0 ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldr r0, [r3, #0x0] str r0, [r2, #0x0] ldrh r0, [r4, #0x24] bl FUN_0200E420 add r0, r4, #0x0 add r1, sp, #0x0 bl FUN_02010C7C mov r0, #0x0 str r0, [r4, #0x28] add sp, #0xc str r0, [r4, #0x2c] pop {r3-r4, pc} _0200EF84: bl FUN_02010CBC add sp, #0xc pop {r3-r4, pc} .balign 4 _0200EF8C: .word 0x020ED028 thumb_func_start FUN_0200EF90 FUN_0200EF90: ; 0x0200EF90 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200EFB2 ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200EFB8 ; =0x020ED080 add r0, r4, #0x0 bl FUN_0200FF18 mov r0, #0x1 str r0, [r4, #0x28] mov r0, #0x0 str r0, [r4, #0x2c] pop {r4, pc} _0200EFB2: bl FUN_0200FF50 pop {r4, pc} .balign 4 _0200EFB8: .word 0x020ED080 thumb_func_start FUN_0200EFBC FUN_0200EFBC: ; 0x0200EFBC push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200EFDC ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200EFE4 ; =0x020ED070 add r0, r4, #0x0 bl FUN_0200FF18 mov r0, #0x0 str r0, [r4, #0x28] str r0, [r4, #0x2c] pop {r4, pc} _0200EFDC: bl FUN_0200FF50 pop {r4, pc} nop _0200EFE4: .word 0x020ED070 thumb_func_start FUN_0200EFE8 FUN_0200EFE8: ; 0x0200EFE8 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200F00A ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200F010 ; =0x020ED130 add r0, r4, #0x0 bl FUN_0200FCC8 mov r0, #0x1 str r0, [r4, #0x28] mov r0, #0x0 str r0, [r4, #0x2c] pop {r4, pc} _0200F00A: bl FUN_0200FD1C pop {r4, pc} .balign 4 _0200F010: .word 0x020ED130 thumb_func_start FUN_0200F014 FUN_0200F014: ; 0x0200F014 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200F034 ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200F03C ; =0x020ED19C add r0, r4, #0x0 bl FUN_0200FCC8 mov r0, #0x0 str r0, [r4, #0x28] str r0, [r4, #0x2c] pop {r4, pc} _0200F034: bl FUN_0200FD1C pop {r4, pc} nop _0200F03C: .word 0x020ED19C thumb_func_start FUN_0200F040 FUN_0200F040: ; 0x0200F040 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200F068 ldr r1, _0200F070 ; =0x020ECFAE ldr r0, _0200F074 ; =0x02105AF8 str r1, [r0, #0x74] ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200F078 ; =0x02105B48 add r0, r4, #0x0 bl FUN_020111AC mov r0, #0x1 str r0, [r4, #0x28] mov r0, #0x0 str r0, [r4, #0x2c] pop {r4, pc} _0200F068: bl FUN_02011214 pop {r4, pc} nop _0200F070: .word 0x020ECFAE _0200F074: .word 0x02105AF8 _0200F078: .word 0x02105B48 thumb_func_start FUN_0200F07C FUN_0200F07C: ; 0x0200F07C push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 bne _0200F0A2 ldr r1, _0200F0A8 ; =0x020ECFBA ldr r0, _0200F0AC ; =0x02105B78 str r1, [r0, #0x24] ldrh r0, [r4, #0x24] bl FUN_0200E420 ldr r1, _0200F0B0 ; =0x02105B78 add r0, r4, #0x0 bl FUN_020111AC mov r0, #0x0 str r0, [r4, #0x28] str r0, [r4, #0x2c] pop {r4, pc} _0200F0A2: bl FUN_02011214 pop {r4, pc} .balign 4 _0200F0A8: .word 0x020ECFBA _0200F0AC: .word 0x02105B78 _0200F0B0: .word 0x02105B78 thumb_func_start FUN_0200F0B4 FUN_0200F0B4: ; 0x0200F0B4 asr r0, r0, #0x4 lsl r1, r0, #0x1 lsl r0, r1, #0x1 ldr r2, _0200F0C8 ; =0x020FFA38 add r1, r1, #0x1 lsl r1, r1, #0x1 ldr r3, _0200F0CC ; =FUN_020C50B8 ldrsh r0, [r2, r0] ldrsh r1, [r2, r1] bx r3 .balign 4 _0200F0C8: .word 0x020FFA38 _0200F0CC: .word FUN_020C50B8 thumb_func_start FUN_0200F0D0 FUN_0200F0D0: ; 0x0200F0D0 push {r4, lr} add r4, r1, #0x0 bl FUN_0200F0B4 lsl r2, r4, #0xc asr r1, r0, #0x1f asr r3, r2, #0x1f blx FUN_020EBC30 mov r2, #0x2 mov r3, #0x0 lsl r2, r2, #0xa add r2, r0, r2 adc r1, r3 lsl r0, r1, #0x14 lsr r1, r2, #0xc orr r1, r0 asr r0, r1, #0xc pop {r4, pc} .balign 4 thumb_func_start FUN_0200F0F8 FUN_0200F0F8: ; 0x0200F0F8 push {r3-r7, lr} sub sp, #0x8 add r5, r1, #0x0 add r7, r2, #0x0 add r6, r3, #0x0 bl FUN_0200F0B4 cmp r6, r7 bge _0200F142 lsl r1, r6, #0x2 str r0, [sp, #0x0] asr r0, r0, #0x1f lsl r4, r6, #0xc add r5, r5, r1 str r0, [sp, #0x4] _0200F116: ldr r0, [sp, #0x0] ldr r1, [sp, #0x4] asr r3, r4, #0x1f add r2, r4, #0x0 blx FUN_020EBC30 mov r2, #0x2 lsl r2, r2, #0xa add r0, r0, r2 ldr r2, _0200F148 ; =0x00000000 adc r1, r2 lsl r1, r1, #0x14 lsr r0, r0, #0xc orr r0, r1 asr r0, r0, #0xc stmia r5!, {r0} mov r0, #0x1 lsl r0, r0, #0xc add r6, r6, #0x1 add r4, r4, r0 cmp r6, r7 blt _0200F116 _0200F142: add sp, #0x8 pop {r3-r7, pc} nop _0200F148: .word 0x00000000 thumb_func_start FUN_0200F14C FUN_0200F14C: ; 0x0200F14C push {r4, lr} add r4, r1, #0x0 bl FUN_0200F0B4 add r1, r0, #0x0 lsr r0, r4, #0x1f add r0, r4, r0 asr r0, r0, #0x1 lsl r0, r0, #0xc blx FUN_020C50B8 pop {r4, pc} thumb_func_start FUN_0200F164 FUN_0200F164: ; 0x0200F164 ldr r3, _0200F170 ; =_s32_div_f sub r0, r1, r0 lsl r0, r0, #0x7 add r1, r2, #0x0 bx r3 nop _0200F170: .word _s32_div_f thumb_func_start FUN_0200F174 FUN_0200F174: ; 0x0200F174 add r0, r0, r1 bpl _0200F17A mov r0, #0x0 _0200F17A: cmp r0, #0xff ble _0200F180 mov r0, #0xff _0200F180: bx lr .balign 4 thumb_func_start FUN_0200F184 FUN_0200F184: ; 0x0200F184 ldr r3, [r0, #0x0] ldr r2, [r1, #0x0] add r2, r3, r2 str r2, [r0, #0x0] ldr r3, [r0, #0x4] ldr r2, [r1, #0x4] add r2, r3, r2 str r2, [r0, #0x4] ldr r3, [r0, #0x8] ldr r2, [r1, #0x8] add r2, r3, r2 str r2, [r0, #0x8] ldr r2, [r0, #0xc] ldr r1, [r1, #0xc] add r1, r2, r1 str r1, [r0, #0xc] bx lr .balign 4 thumb_func_start FUN_0200F1A8 FUN_0200F1A8: ; 0x0200F1A8 push {r3-r7, lr} add r7, r1, #0x0 ldr r1, [sp, #0x1c] add r5, r3, #0x0 str r1, [sp, #0x1c] ldr r1, [r5, #0x0] ldr r4, [sp, #0x18] lsl r1, r1, #0x7 str r1, [r0, #0x0] ldr r1, [r5, #0x4] add r6, r2, #0x0 lsl r1, r1, #0x7 str r1, [r0, #0x4] ldr r1, [r5, #0x8] add r2, r4, #0x0 lsl r1, r1, #0x7 str r1, [r0, #0x8] ldr r1, [r5, #0xc] lsl r1, r1, #0x7 str r1, [r0, #0xc] ldmia r2!, {r0-r1} stmia r7!, {r0-r1} ldmia r2!, {r0-r1} stmia r7!, {r0-r1} ldr r0, [r5, #0x0] ldr r1, [r4, #0x0] ldr r2, [sp, #0x1c] bl FUN_0200F164 str r0, [r6, #0x0] ldr r0, [r5, #0x4] ldr r1, [r4, #0x4] ldr r2, [sp, #0x1c] bl FUN_0200F164 str r0, [r6, #0x4] ldr r0, [r5, #0x8] ldr r1, [r4, #0x8] ldr r2, [sp, #0x1c] bl FUN_0200F164 str r0, [r6, #0x8] ldr r0, [r5, #0xc] ldr r1, [r4, #0xc] ldr r2, [sp, #0x1c] bl FUN_0200F164 str r0, [r6, #0xc] pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200F20C FUN_0200F20C: ; 0x0200F20C push {r3-r7, lr} add r5, r0, #0x0 ldr r0, [r5, #0x20] add r6, r1, #0x0 mov r1, #0x1c bl FUN_02016998 str r0, [r5, #0x14] mov r2, #0x1c mov r1, #0x0 _0200F220: strb r1, [r0, #0x0] add r0, r0, #0x1 sub r2, r2, #0x1 bne _0200F220 ldr r4, [r5, #0x14] cmp r6, #0x0 ldrh r1, [r5, #0x24] ldr r0, _0200F2A8 ; =0x00007FFF bne _0200F254 cmp r1, r0 bne _0200F23C mov r7, #0x10 mov r6, #0x0 b _0200F274 _0200F23C: cmp r1, #0x0 bne _0200F248 mov r7, #0xf mvn r7, r7 mov r6, #0x0 b _0200F274 _0200F248: mov r7, #0xf mvn r7, r7 mov r6, #0x0 bl ErrorHandling b _0200F274 _0200F254: cmp r1, r0 bne _0200F25E mov r7, #0x0 mov r6, #0x10 b _0200F274 _0200F25E: cmp r1, #0x0 bne _0200F26A mov r7, #0x0 add r6, r7, #0x0 sub r6, #0x10 b _0200F274 _0200F26A: mov r7, #0x0 add r6, r7, #0x0 sub r6, #0x10 bl ErrorHandling _0200F274: ldr r0, [r5, #0x10] add r1, r7, #0x0 bl FUN_0200E440 ldr r0, [r5, #0x4] add r1, r6, #0x0 str r0, [r4, #0x0] ldr r0, [r5, #0x8] str r0, [r4, #0x4] mov r0, #0x0 str r0, [r4, #0x8] lsl r0, r7, #0x7 str r0, [r4, #0xc] lsl r0, r6, #0x7 str r0, [r4, #0x10] ldr r2, [r5, #0x4] add r0, r7, #0x0 bl FUN_0200F164 str r0, [r4, #0x14] ldr r0, [r5, #0x10] str r0, [r4, #0x18] ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] pop {r3-r7, pc} .balign 4 _0200F2A8: .word 0x00007FFF thumb_func_start FUN_0200F2AC FUN_0200F2AC: ; 0x0200F2AC push {r3-r5, lr} add r5, r0, #0x0 ldr r1, [r5, #0xc] mov r4, #0x0 ldr r0, [r5, #0x14] cmp r1, #0x1 beq _0200F2C4 cmp r1, #0x2 beq _0200F2D4 cmp r1, #0x3 beq _0200F2E6 b _0200F2E8 _0200F2C4: bl FUN_0200F2EC cmp r0, #0x1 bne _0200F2E8 ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] b _0200F2E8 _0200F2D4: bl FUN_02016A18 add r0, r4, #0x0 str r0, [r5, #0x14] ldr r0, [r5, #0xc] mov r4, #0x1 add r0, r0, #0x1 str r0, [r5, #0xc] b _0200F2E8 _0200F2E6: mov r4, #0x1 _0200F2E8: add r0, r4, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0200F2EC FUN_0200F2EC: ; 0x0200F2EC push {r4, lr} add r1, r0, #0x0 ldr r0, [r1, #0x8] mov r4, #0x0 add r2, r0, #0x1 str r2, [r1, #0x8] ldr r0, [r1, #0x4] cmp r2, r0 blt _0200F32A str r4, [r1, #0x8] ldr r0, [r1, #0x0] sub r0, r0, #0x1 cmp r0, #0x0 ble _0200F314 str r0, [r1, #0x0] ldr r2, [r1, #0xc] ldr r0, [r1, #0x14] add r0, r2, r0 str r0, [r1, #0xc] b _0200F31A _0200F314: ldr r0, [r1, #0x10] mov r4, #0x1 str r0, [r1, #0xc] _0200F31A: ldr r2, [r1, #0xc] ldr r0, [r1, #0x18] asr r1, r2, #0x6 lsr r1, r1, #0x19 add r1, r2, r1 asr r1, r1, #0x7 bl FUN_0200E440 _0200F32A: add r0, r4, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_0200F330 FUN_0200F330: ; 0x0200F330 push {r4-r6, lr} add r4, r0, #0x0 bne _0200F33A bl ErrorHandling _0200F33A: ldr r0, _0200F54C ; =0x04000006 ldrh r0, [r0, #0x0] cmp r0, #0xc0 bge _0200F3E0 add r5, r0, #0x1 cmp r5, #0xbf ble _0200F34A sub r5, #0xc0 _0200F34A: ldr r0, [r4, #0x4] cmp r0, #0x1 bne _0200F3FA add r0, r4, #0x0 mov r1, #0x0 bl FUN_0200F5D8 ldr r3, [r4, #0x8] lsl r5, r5, #0x1 mov r4, #0x6 add r1, r0, r5 lsl r4, r4, #0x6 ldrsh r2, [r1, r4] lsl r4, r4, #0x2 ldrsh r1, [r0, r5] ldr r0, [r0, r4] cmp r0, #0x0 ldr r0, _0200F550 ; =0x04000004 bne _0200F3B4 cmp r3, #0x0 bne _0200F394 ldrh r4, [r0, #0x0] mov r3, #0x2 tst r3, r4 beq _0200F3E0 lsl r3, r1, #0x8 mov r1, #0xff lsl r1, r1, #0x8 and r3, r1 lsl r1, r2, #0x18 lsr r1, r1, #0x18 orr r1, r3 strh r1, [r0, #0x3c] mov r1, #0xc0 add r0, #0x40 strh r1, [r0, #0x0] pop {r4-r6, pc} _0200F394: ldrh r3, [r0, #0x0] mov r0, #0x2 tst r0, r3 beq _0200F3E0 mov r0, #0xff lsl r1, r1, #0x8 lsl r0, r0, #0x8 and r1, r0 lsl r0, r2, #0x18 lsr r0, r0, #0x18 orr r0, r1 ldr r1, _0200F554 ; =0x04001040 strh r0, [r1, #0x0] mov r0, #0xc0 strh r0, [r1, #0x4] pop {r4-r6, pc} _0200F3B4: cmp r3, #0x0 bne _0200F3D8 ldrh r4, [r0, #0x0] mov r3, #0x2 tst r3, r4 beq _0200F3E0 lsl r3, r1, #0x8 mov r1, #0xff lsl r1, r1, #0x8 and r3, r1 lsl r1, r2, #0x18 lsr r1, r1, #0x18 orr r1, r3 strh r1, [r0, #0x3e] mov r1, #0xc0 add r0, #0x42 strh r1, [r0, #0x0] pop {r4-r6, pc} _0200F3D8: ldrh r3, [r0, #0x0] mov r0, #0x2 tst r0, r3 bne _0200F3E2 _0200F3E0: b _0200F548 _0200F3E2: mov r0, #0xff lsl r1, r1, #0x8 lsl r0, r0, #0x8 and r1, r0 lsl r0, r2, #0x18 lsr r0, r0, #0x18 orr r0, r1 ldr r1, _0200F558 ; =0x04001042 strh r0, [r1, #0x0] mov r0, #0xc0 strh r0, [r1, #0x4] pop {r4-r6, pc} _0200F3FA: add r0, r4, #0x0 mov r1, #0x0 bl FUN_0200F5D8 add r3, r0, #0x0 lsl r5, r5, #0x1 mov r6, #0x6 add r1, r3, r5 lsl r6, r6, #0x6 ldrsh r2, [r1, r6] lsl r6, r6, #0x2 ldrsh r1, [r3, r5] ldr r3, [r3, r6] ldr r0, [r4, #0x8] cmp r3, #0x0 bne _0200F460 cmp r0, #0x0 ldr r0, _0200F550 ; =0x04000004 bne _0200F440 ldrh r6, [r0, #0x0] mov r3, #0x2 tst r3, r6 beq _0200F4A4 lsl r3, r1, #0x8 mov r1, #0xff lsl r1, r1, #0x8 and r3, r1 lsl r1, r2, #0x18 lsr r1, r1, #0x18 orr r1, r3 strh r1, [r0, #0x3c] mov r1, #0xc0 add r0, #0x40 strh r1, [r0, #0x0] b _0200F4A4 _0200F440: ldrh r3, [r0, #0x0] mov r0, #0x2 tst r0, r3 beq _0200F4A4 mov r0, #0xff lsl r1, r1, #0x8 lsl r0, r0, #0x8 and r1, r0 lsl r0, r2, #0x18 lsr r0, r0, #0x18 orr r0, r1 ldr r1, _0200F554 ; =0x04001040 strh r0, [r1, #0x0] mov r0, #0xc0 strh r0, [r1, #0x4] b _0200F4A4 _0200F460: cmp r0, #0x0 ldr r0, _0200F550 ; =0x04000004 bne _0200F486 ldrh r6, [r0, #0x0] mov r3, #0x2 tst r3, r6 beq _0200F4A4 lsl r3, r1, #0x8 mov r1, #0xff lsl r1, r1, #0x8 and r3, r1 lsl r1, r2, #0x18 lsr r1, r1, #0x18 orr r1, r3 strh r1, [r0, #0x3e] mov r1, #0xc0 add r0, #0x42 strh r1, [r0, #0x0] b _0200F4A4 _0200F486: ldrh r3, [r0, #0x0] mov r0, #0x2 tst r0, r3 beq _0200F4A4 mov r0, #0xff lsl r1, r1, #0x8 lsl r0, r0, #0x8 and r1, r0 lsl r0, r2, #0x18 lsr r0, r0, #0x18 orr r0, r1 ldr r1, _0200F558 ; =0x04001042 strh r0, [r1, #0x0] mov r0, #0xc0 strh r0, [r1, #0x4] _0200F4A4: add r0, r4, #0x0 mov r1, #0x1 bl FUN_0200F5D8 ldr r3, [r4, #0x8] mov r4, #0x6 add r1, r0, r5 lsl r4, r4, #0x6 ldrsh r2, [r1, r4] lsl r4, r4, #0x2 ldrsh r1, [r0, r5] ldr r0, [r0, r4] cmp r0, #0x0 ldr r0, _0200F550 ; =0x04000004 bne _0200F506 cmp r3, #0x0 bne _0200F4E6 ldrh r4, [r0, #0x0] mov r3, #0x2 tst r3, r4 beq _0200F548 lsl r3, r1, #0x8 mov r1, #0xff lsl r1, r1, #0x8 and r3, r1 lsl r1, r2, #0x18 lsr r1, r1, #0x18 orr r1, r3 strh r1, [r0, #0x3c] mov r1, #0xc0 add r0, #0x40 strh r1, [r0, #0x0] pop {r4-r6, pc} _0200F4E6: ldrh r3, [r0, #0x0] mov r0, #0x2 tst r0, r3 beq _0200F548 mov r0, #0xff lsl r1, r1, #0x8 lsl r0, r0, #0x8 and r1, r0 lsl r0, r2, #0x18 lsr r0, r0, #0x18 orr r0, r1 ldr r1, _0200F554 ; =0x04001040 strh r0, [r1, #0x0] mov r0, #0xc0 strh r0, [r1, #0x4] pop {r4-r6, pc} _0200F506: cmp r3, #0x0 bne _0200F52A ldrh r4, [r0, #0x0] mov r3, #0x2 tst r3, r4 beq _0200F548 lsl r3, r1, #0x8 mov r1, #0xff lsl r1, r1, #0x8 and r3, r1 lsl r1, r2, #0x18 lsr r1, r1, #0x18 orr r1, r3 strh r1, [r0, #0x3e] mov r1, #0xc0 add r0, #0x42 strh r1, [r0, #0x0] pop {r4-r6, pc} _0200F52A: ldrh r3, [r0, #0x0] mov r0, #0x2 tst r0, r3 beq _0200F548 mov r0, #0xff lsl r1, r1, #0x8 lsl r0, r0, #0x8 and r1, r0 lsl r0, r2, #0x18 lsr r0, r0, #0x18 orr r0, r1 ldr r1, _0200F558 ; =0x04001042 strh r0, [r1, #0x0] mov r0, #0xc0 strh r0, [r1, #0x4] _0200F548: pop {r4-r6, pc} nop _0200F54C: .word 0x04000006 _0200F550: .word 0x04000004 _0200F554: .word 0x04001040 _0200F558: .word 0x04001042 thumb_func_start FUN_0200F55C FUN_0200F55C: ; 0x0200F55C push {r4-r6, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r6, r2, #0x0 cmp r4, #0x0 beq _0200F572 cmp r4, #0x1 beq _0200F572 cmp r4, #0x2 beq _0200F58C pop {r4-r6, pc} _0200F572: ldr r1, _0200F5B8 ; =0x00000604 add r0, r3, #0x0 bl FUN_02016998 str r0, [r5, #0x0] mov r0, #0x1 str r0, [r5, #0x4] str r6, [r5, #0x8] mov r0, #0x6 ldr r1, [r5, #0x0] lsl r0, r0, #0x8 str r4, [r1, r0] pop {r4-r6, pc} _0200F58C: ldr r1, _0200F5BC ; =0x00000C08 add r0, r3, #0x0 bl FUN_02016998 str r0, [r5, #0x0] mov r0, #0x2 str r0, [r5, #0x4] mov r0, #0x6 mov r3, #0x0 lsl r0, r0, #0x8 str r6, [r5, #0x8] add r4, r3, #0x0 add r1, r0, #0x4 _0200F5A6: ldr r2, [r5, #0x0] add r2, r2, r4 str r3, [r2, r0] add r3, r3, #0x1 add r4, r4, r1 cmp r3, #0x2 blt _0200F5A6 pop {r4-r6, pc} nop _0200F5B8: .word 0x00000604 _0200F5BC: .word 0x00000C08 thumb_func_start FUN_0200F5C0 FUN_0200F5C0: ; 0x0200F5C0 ldr r3, _0200F5C4 ; =FUN_0200F5C8 bx r3 .balign 4 _0200F5C4: .word FUN_0200F5C8 thumb_func_start FUN_0200F5C8 FUN_0200F5C8: ; 0x0200F5C8 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_02016A18 mov r0, #0x0 str r0, [r4, #0x0] pop {r4, pc} thumb_func_start FUN_0200F5D8 FUN_0200F5D8: ; 0x0200F5D8 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0x4] add r4, r1, #0x0 cmp r0, r4 bgt _0200F5E8 bl ErrorHandling _0200F5E8: ldr r0, _0200F5F4 ; =0x00000604 ldr r1, [r5, #0x0] mul r0, r4 add r0, r1, r0 pop {r3-r5, pc} nop _0200F5F4: .word 0x00000604 thumb_func_start FUN_0200F5F8 FUN_0200F5F8: ; 0x0200F5F8 push {r3-r7, lr} add r5, r1, #0x0 str r0, [sp, #0x0] ldr r0, [r5, #0x4] mov r4, #0x0 cmp r0, #0x0 ble _0200F624 mov r7, #0x3 lsl r7, r7, #0x8 add r6, r7, #0x0 _0200F60C: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0200F5D8 add r1, r0, r6 add r2, r7, #0x0 blx FUN_020DF438 ldr r0, [r5, #0x4] add r4, r4, #0x1 cmp r4, r0 blt _0200F60C _0200F624: ldr r0, [sp, #0x0] bl FUN_0200CAB4 pop {r3-r7, pc} thumb_func_start FUN_0200F62C FUN_0200F62C: ; 0x0200F62C push {r4-r5, lr} sub sp, #0xc add r5, r1, #0x0 add r4, r2, #0x0 cmp r0, #0x0 bne _0200F644 add r0, r5, #0x0 mov r1, #0x0 bl FUN_02011634 add sp, #0xc pop {r4-r5, pc} _0200F644: add r0, r5, #0x0 mov r1, #0x1 bl FUN_02011634 mov r2, #0x0 add r0, r5, #0x0 mov r1, #0x3f add r3, r2, #0x0 str r4, [sp, #0x0] bl FUN_02011650 mov r1, #0x0 str r1, [sp, #0x0] str r1, [sp, #0x4] add r0, r5, #0x0 add r2, r1, #0x0 add r3, r1, #0x0 str r4, [sp, #0x8] bl FUN_02011698 add r0, r5, #0x0 mov r1, #0x20 mov r2, #0x0 add r3, r4, #0x0 bl FUN_02011678 add sp, #0xc pop {r4-r5, pc} thumb_func_start FUN_0200F67C FUN_0200F67C: ; 0x0200F67C push {r4-r7, lr} sub sp, #0xc add r7, r2, #0x0 ldr r2, [sp, #0x34] add r6, r0, #0x0 add r5, r3, #0x0 ldr r4, [sp, #0x20] cmp r2, #0x0 bne _0200F6B8 add r0, r1, #0x0 mov r1, #0x0 add r2, r5, #0x0 add r3, r4, #0x0 bl FUN_020114AC add r0, r7, #0x0 mov r1, #0x0 add r2, r4, #0x0 bl FUN_02011534 str r5, [sp, #0x0] ldr r0, [sp, #0x24] ldr r1, [sp, #0x28] ldr r2, [sp, #0x2c] ldr r3, [sp, #0x30] str r4, [sp, #0x4] bl FUN_02011574 add sp, #0xc pop {r4-r7, pc} _0200F6B8: mov r2, #0x0 str r4, [sp, #0x0] bl FUN_02011650 add r0, r6, #0x0 add r1, r7, #0x0 mov r2, #0x0 add r3, r4, #0x0 bl FUN_02011678 ldr r0, [sp, #0x30] ldr r1, [sp, #0x24] str r0, [sp, #0x0] str r5, [sp, #0x4] ldr r2, [sp, #0x28] ldr r3, [sp, #0x2c] add r0, r6, #0x0 str r4, [sp, #0x8] bl FUN_02011698 add sp, #0xc pop {r4-r7, pc} thumb_func_start FUN_0200F6E4 FUN_0200F6E4: ; 0x0200F6E4 push {r3, lr} cmp r3, #0x0 bne _0200F6F4 add r0, r1, #0x0 add r1, r2, #0x0 bl FUN_02011480 pop {r3, pc} _0200F6F4: bl FUN_02011634 pop {r3, pc} .balign 4 thumb_func_start FUN_0200F6FC FUN_0200F6FC: ; 0x0200F6FC push {r3-r7, lr} add r4, r2, #0x0 mov r2, #0xc3 add r6, r1, #0x0 mov r1, #0x0 lsl r2, r2, #0x2 add r5, r0, #0x0 add r7, r3, #0x0 blx FUN_020DF4A4 cmp r4, #0x1 bne _0200F726 mov r0, #0x6 lsl r0, r0, #0x6 str r7, [r5, r0] mov r0, #0xc2 lsl r0, r0, #0x2 strb r4, [r5, r0] add r0, r0, #0x1 strb r6, [r5, r0] pop {r3-r7, pc} _0200F726: mov r0, #0x6 lsl r0, r0, #0x6 str r7, [r5, r0] mov r0, #0xc1 ldr r1, [sp, #0x18] lsl r0, r0, #0x2 str r1, [r5, r0] add r1, r0, #0x4 strb r4, [r5, r1] add r0, r0, #0x5 strb r6, [r5, r0] pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200F740 FUN_0200F740: ; 0x0200F740 ldr r3, _0200F74C ; =FUN_0200CA98 add r1, r0, #0x0 ldr r0, _0200F750 ; =FUN_0200F780 ldr r2, _0200F754 ; =0x000003FF bx r3 nop _0200F74C: .word FUN_0200CA98 _0200F750: .word FUN_0200F780 _0200F754: .word 0x000003FF thumb_func_start FUN_0200F758 FUN_0200F758: ; 0x0200F758 push {r3, lr} ldr r3, _0200F768 ; =0x00000309 str r2, [sp, #0x0] ldrb r3, [r1, r3] ldr r2, _0200F76C ; =FUN_0200F7AC bl FUN_0200E6CC pop {r3, pc} .balign 4 _0200F768: .word 0x00000309 _0200F76C: .word FUN_0200F7AC thumb_func_start FUN_0200F770 FUN_0200F770: ; 0x0200F770 ldr r3, _0200F778 ; =0x00000309 ldrb r1, [r1, r3] ldr r3, _0200F77C ; =FUN_0200E6F8 bx r3 .balign 4 _0200F778: .word 0x00000309 _0200F77C: .word FUN_0200E6F8 thumb_func_start FUN_0200F780 FUN_0200F780: ; 0x0200F780 push {r3-r7, lr} mov r7, #0xc0 add r6, r7, #0x0 str r0, [sp, #0x0] add r5, r1, #0x0 mov r4, #0x0 add r6, #0xc4 _0200F78E: add r0, r5, #0x0 add r0, #0xc0 add r1, r5, #0x0 add r2, r7, #0x0 blx FUN_020DF438 add r4, r4, #0x1 add r5, r5, r6 cmp r4, #0x2 blt _0200F78E ldr r0, [sp, #0x0] bl FUN_0200CAB4 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200F7AC FUN_0200F7AC: ; 0x0200F7AC push {r3-r5, lr} add r4, r0, #0x0 bne _0200F7B6 bl ErrorHandling _0200F7B6: ldr r0, _0200FAC0 ; =0x04000006 ldrh r0, [r0, #0x0] cmp r0, #0xc0 bge _0200F838 add r0, r0, #0x1 cmp r0, #0xbf ble _0200F7C6 sub r0, #0xc0 _0200F7C6: mov r2, #0xc2 lsl r2, r2, #0x2 ldrb r1, [r4, r2] cmp r1, #0x1 beq _0200F7D2 b _0200F96C _0200F7D2: add r0, r4, r0 add r0, #0xc0 ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _0200F8A2 add r0, r2, #0x1 ldrb r0, [r4, r0] cmp r0, #0x0 ldr r0, _0200FAC4 ; =0x04000004 bne _0200F802 ldrh r2, [r0, #0x0] mov r1, #0x2 tst r1, r2 beq _0200F81C add r0, #0x46 ldrh r2, [r0, #0x0] mov r1, #0x3f bic r2, r1 mov r1, #0x3f orr r2, r1 mov r1, #0x20 orr r1, r2 strh r1, [r0, #0x0] b _0200F81C _0200F802: ldrh r1, [r0, #0x0] mov r0, #0x2 tst r0, r1 beq _0200F81C ldr r1, _0200FAC8 ; =0x0400104A mov r0, #0x3f ldrh r2, [r1, #0x0] bic r2, r0 mov r0, #0x3f orr r2, r0 mov r0, #0x20 orr r0, r2 strh r0, [r1, #0x0] _0200F81C: ldr r0, _0200FACC ; =0x00000309 ldrb r1, [r4, r0] mov r0, #0x6 lsl r0, r0, #0x6 ldr r0, [r4, r0] cmp r0, #0x0 bne _0200F868 cmp r1, #0x0 bne _0200F84C ldr r2, _0200FAC4 ; =0x04000004 mov r0, #0x2 ldrh r1, [r2, #0x0] tst r0, r1 bne _0200F83A _0200F838: b _0200FCB0 _0200F83A: add r2, #0x44 ldrh r1, [r2, #0x0] mov r0, #0x3f bic r1, r0 mov r0, #0x20 orr r1, r0 orr r0, r1 strh r0, [r2, #0x0] pop {r3-r5, pc} _0200F84C: ldr r0, _0200FAC4 ; =0x04000004 ldrh r1, [r0, #0x0] mov r0, #0x2 tst r0, r1 beq _0200F954 ldr r1, _0200FAD0 ; =0x04001048 mov r0, #0x3f ldrh r2, [r1, #0x0] bic r2, r0 mov r0, #0x20 orr r2, r0 orr r0, r2 strh r0, [r1, #0x0] pop {r3-r5, pc} _0200F868: cmp r1, #0x0 ldr r0, _0200FAC4 ; =0x04000004 bne _0200F888 ldrh r1, [r0, #0x0] mov r2, #0x2 tst r1, r2 beq _0200F954 add r0, #0x44 ldrh r3, [r0, #0x0] ldr r1, _0200FAD4 ; =0xFFFFC0FF and r3, r1 lsl r1, r2, #0xc orr r3, r1 orr r1, r3 strh r1, [r0, #0x0] pop {r3-r5, pc} _0200F888: ldrh r1, [r0, #0x0] mov r0, #0x2 tst r0, r1 beq _0200F954 ldr r2, _0200FAD0 ; =0x04001048 ldr r0, _0200FAD4 ; =0xFFFFC0FF ldrh r1, [r2, #0x0] and r1, r0 lsr r0, r2, #0xd orr r1, r0 orr r0, r1 strh r0, [r2, #0x0] pop {r3-r5, pc} _0200F8A2: add r0, r2, #0x1 ldrb r0, [r4, r0] cmp r0, #0x0 ldr r0, _0200FAC4 ; =0x04000004 bne _0200F8C6 ldrh r2, [r0, #0x0] mov r1, #0x2 tst r1, r2 beq _0200F8DE add r0, #0x46 ldrh r2, [r0, #0x0] mov r1, #0x3f bic r2, r1 mov r1, #0x20 orr r2, r1 orr r1, r2 strh r1, [r0, #0x0] b _0200F8DE _0200F8C6: ldrh r1, [r0, #0x0] mov r0, #0x2 tst r0, r1 beq _0200F8DE ldr r1, _0200FAC8 ; =0x0400104A mov r0, #0x3f ldrh r2, [r1, #0x0] bic r2, r0 mov r0, #0x20 orr r2, r0 orr r0, r2 strh r0, [r1, #0x0] _0200F8DE: ldr r0, _0200FACC ; =0x00000309 ldrb r1, [r4, r0] mov r0, #0x6 lsl r0, r0, #0x6 ldr r0, [r4, r0] cmp r0, #0x0 ldr r0, _0200FAC4 ; =0x04000004 bne _0200F92A cmp r1, #0x0 bne _0200F90E ldrh r2, [r0, #0x0] mov r1, #0x2 tst r1, r2 beq _0200F954 add r0, #0x44 ldrh r2, [r0, #0x0] mov r1, #0x3f bic r2, r1 mov r1, #0x3f orr r2, r1 mov r1, #0x20 orr r1, r2 strh r1, [r0, #0x0] pop {r3-r5, pc} _0200F90E: ldrh r1, [r0, #0x0] mov r0, #0x2 tst r0, r1 beq _0200F954 ldr r1, _0200FAD0 ; =0x04001048 mov r0, #0x3f ldrh r2, [r1, #0x0] bic r2, r0 mov r0, #0x3f orr r2, r0 mov r0, #0x20 orr r0, r2 strh r0, [r1, #0x0] pop {r3-r5, pc} _0200F92A: cmp r1, #0x0 bne _0200F94C ldrh r1, [r0, #0x0] mov r2, #0x2 tst r1, r2 beq _0200F954 add r0, #0x44 ldrh r3, [r0, #0x0] ldr r1, _0200FAD4 ; =0xFFFFC0FF and r3, r1 mov r1, #0x3f lsl r1, r1, #0x8 orr r3, r1 lsl r1, r2, #0xc orr r1, r3 strh r1, [r0, #0x0] pop {r3-r5, pc} _0200F94C: ldrh r1, [r0, #0x0] mov r0, #0x2 tst r0, r1 bne _0200F956 _0200F954: b _0200FCB0 _0200F956: ldr r2, _0200FAD0 ; =0x04001048 ldr r0, _0200FAD4 ; =0xFFFFC0FF ldrh r1, [r2, #0x0] and r1, r0 mov r0, #0x3f lsl r0, r0, #0x8 orr r1, r0 lsr r0, r2, #0xd orr r0, r1 strh r0, [r2, #0x0] pop {r3-r5, pc} _0200F96C: add r1, r4, r0 add r1, #0xc0 ldrb r1, [r1, #0x0] cmp r1, #0x0 bne _0200FA38 add r1, r2, #0x1 ldrb r1, [r4, r1] cmp r1, #0x0 ldr r1, _0200FAC4 ; =0x04000004 bne _0200F99C ldrh r3, [r1, #0x0] mov r2, #0x2 tst r2, r3 beq _0200F9B6 add r1, #0x46 ldrh r3, [r1, #0x0] mov r2, #0x3f bic r3, r2 mov r2, #0x3f orr r3, r2 mov r2, #0x20 orr r2, r3 strh r2, [r1, #0x0] b _0200F9B6 _0200F99C: ldrh r2, [r1, #0x0] mov r1, #0x2 tst r1, r2 beq _0200F9B6 ldr r2, _0200FAC8 ; =0x0400104A mov r1, #0x3f ldrh r3, [r2, #0x0] bic r3, r1 mov r1, #0x3f orr r3, r1 mov r1, #0x20 orr r1, r3 strh r1, [r2, #0x0] _0200F9B6: ldr r1, _0200FACC ; =0x00000309 ldrb r2, [r4, r1] mov r1, #0x6 lsl r1, r1, #0x6 ldr r1, [r4, r1] cmp r1, #0x0 ldr r1, _0200FAC4 ; =0x04000004 bne _0200F9FE cmp r2, #0x0 bne _0200F9E4 ldrh r3, [r1, #0x0] mov r2, #0x2 tst r2, r3 beq _0200FA0A add r1, #0x44 ldrh r3, [r1, #0x0] mov r2, #0x3f bic r3, r2 mov r2, #0x20 orr r3, r2 orr r2, r3 strh r2, [r1, #0x0] b _0200FB16 _0200F9E4: ldrh r2, [r1, #0x0] mov r1, #0x2 tst r1, r2 beq _0200FA0A ldr r2, _0200FAD0 ; =0x04001048 mov r1, #0x3f ldrh r3, [r2, #0x0] bic r3, r1 mov r1, #0x20 orr r3, r1 orr r1, r3 strh r1, [r2, #0x0] b _0200FB16 _0200F9FE: cmp r2, #0x0 bne _0200FA1E ldrh r2, [r1, #0x0] mov r3, #0x2 tst r2, r3 bne _0200FA0C _0200FA0A: b _0200FB16 _0200FA0C: add r1, #0x44 ldrh r5, [r1, #0x0] ldr r2, _0200FAD4 ; =0xFFFFC0FF and r5, r2 lsl r2, r3, #0xc orr r5, r2 orr r2, r5 strh r2, [r1, #0x0] b _0200FB16 _0200FA1E: ldrh r2, [r1, #0x0] mov r1, #0x2 tst r1, r2 beq _0200FB16 ldr r3, _0200FAD0 ; =0x04001048 ldr r1, _0200FAD4 ; =0xFFFFC0FF ldrh r2, [r3, #0x0] and r2, r1 lsr r1, r3, #0xd orr r2, r1 orr r1, r2 strh r1, [r3, #0x0] b _0200FB16 _0200FA38: add r1, r2, #0x1 ldrb r1, [r4, r1] cmp r1, #0x0 ldr r1, _0200FAC4 ; =0x04000004 bne _0200FA5C ldrh r3, [r1, #0x0] mov r2, #0x2 tst r2, r3 beq _0200FA74 add r1, #0x46 ldrh r3, [r1, #0x0] mov r2, #0x3f bic r3, r2 mov r2, #0x20 orr r3, r2 orr r2, r3 strh r2, [r1, #0x0] b _0200FA74 _0200FA5C: ldrh r2, [r1, #0x0] mov r1, #0x2 tst r1, r2 beq _0200FA74 ldr r2, _0200FAC8 ; =0x0400104A mov r1, #0x3f ldrh r3, [r2, #0x0] bic r3, r1 mov r1, #0x20 orr r3, r1 orr r1, r3 strh r1, [r2, #0x0] _0200FA74: ldr r1, _0200FACC ; =0x00000309 ldrb r2, [r4, r1] mov r1, #0x6 lsl r1, r1, #0x6 ldr r1, [r4, r1] cmp r1, #0x0 ldr r1, _0200FAC4 ; =0x04000004 bne _0200FAD8 cmp r2, #0x0 bne _0200FAA4 ldrh r3, [r1, #0x0] mov r2, #0x2 tst r2, r3 beq _0200FB16 add r1, #0x44 ldrh r3, [r1, #0x0] mov r2, #0x3f bic r3, r2 mov r2, #0x3f orr r3, r2 mov r2, #0x20 orr r2, r3 strh r2, [r1, #0x0] b _0200FB16 _0200FAA4: ldrh r2, [r1, #0x0] mov r1, #0x2 tst r1, r2 beq _0200FB16 ldr r2, _0200FAD0 ; =0x04001048 mov r1, #0x3f ldrh r3, [r2, #0x0] bic r3, r1 mov r1, #0x3f orr r3, r1 mov r1, #0x20 orr r1, r3 strh r1, [r2, #0x0] b _0200FB16 .balign 4 _0200FAC0: .word 0x04000006 _0200FAC4: .word 0x04000004 _0200FAC8: .word 0x0400104A _0200FACC: .word 0x00000309 _0200FAD0: .word 0x04001048 _0200FAD4: .word 0xFFFFC0FF _0200FAD8: cmp r2, #0x0 bne _0200FAFA ldrh r2, [r1, #0x0] mov r3, #0x2 tst r2, r3 beq _0200FB16 add r1, #0x44 ldrh r5, [r1, #0x0] ldr r2, _0200FCB4 ; =0xFFFFC0FF and r5, r2 mov r2, #0x3f lsl r2, r2, #0x8 orr r5, r2 lsl r2, r3, #0xc orr r2, r5 strh r2, [r1, #0x0] b _0200FB16 _0200FAFA: ldrh r2, [r1, #0x0] mov r1, #0x2 tst r1, r2 beq _0200FB16 ldr r3, _0200FCB8 ; =0x04001048 ldr r1, _0200FCB4 ; =0xFFFFC0FF ldrh r2, [r3, #0x0] and r2, r1 mov r1, #0x3f lsl r1, r1, #0x8 orr r2, r1 lsr r1, r3, #0xd orr r1, r2 strh r1, [r3, #0x0] _0200FB16: mov r1, #0x61 lsl r1, r1, #0x2 add r1, r4, r1 add r0, r1, r0 add r0, #0xc0 ldrb r0, [r0, #0x0] cmp r0, #0x0 ldr r0, _0200FCBC ; =0x00000309 bne _0200FBEC ldrb r0, [r4, r0] cmp r0, #0x0 ldr r0, _0200FCC0 ; =0x04000004 bne _0200FB4C ldrh r3, [r0, #0x0] mov r2, #0x2 tst r2, r3 beq _0200FB66 add r0, #0x46 ldrh r3, [r0, #0x0] mov r2, #0x3f bic r3, r2 mov r2, #0x3f orr r3, r2 mov r2, #0x20 orr r2, r3 strh r2, [r0, #0x0] b _0200FB66 _0200FB4C: ldrh r2, [r0, #0x0] mov r0, #0x2 tst r0, r2 beq _0200FB66 ldr r2, _0200FCC4 ; =0x0400104A mov r0, #0x3f ldrh r3, [r2, #0x0] bic r3, r0 mov r0, #0x3f orr r3, r0 mov r0, #0x20 orr r0, r3 strh r0, [r2, #0x0] _0200FB66: ldr r0, _0200FCBC ; =0x00000309 ldrb r2, [r4, r0] mov r0, #0x6 lsl r0, r0, #0x6 ldr r0, [r1, r0] cmp r0, #0x0 bne _0200FBB2 cmp r2, #0x0 bne _0200FB94 ldr r2, _0200FCC0 ; =0x04000004 mov r0, #0x2 ldrh r1, [r2, #0x0] tst r0, r1 beq _0200FB9E add r2, #0x44 ldrh r1, [r2, #0x0] mov r0, #0x3f bic r1, r0 mov r0, #0x20 orr r1, r0 orr r0, r1 strh r0, [r2, #0x0] pop {r3-r5, pc} _0200FB94: ldr r0, _0200FCC0 ; =0x04000004 ldrh r1, [r0, #0x0] mov r0, #0x2 tst r0, r1 bne _0200FBA0 _0200FB9E: b _0200FCB0 _0200FBA0: ldr r1, _0200FCB8 ; =0x04001048 mov r0, #0x3f ldrh r2, [r1, #0x0] bic r2, r0 mov r0, #0x20 orr r2, r0 orr r0, r2 strh r0, [r1, #0x0] pop {r3-r5, pc} _0200FBB2: cmp r2, #0x0 ldr r0, _0200FCC0 ; =0x04000004 bne _0200FBD2 ldrh r1, [r0, #0x0] mov r2, #0x2 tst r1, r2 beq _0200FCB0 add r0, #0x44 ldrh r3, [r0, #0x0] ldr r1, _0200FCB4 ; =0xFFFFC0FF and r3, r1 lsl r1, r2, #0xc orr r3, r1 orr r1, r3 strh r1, [r0, #0x0] pop {r3-r5, pc} _0200FBD2: ldrh r1, [r0, #0x0] mov r0, #0x2 tst r0, r1 beq _0200FCB0 ldr r2, _0200FCB8 ; =0x04001048 ldr r0, _0200FCB4 ; =0xFFFFC0FF ldrh r1, [r2, #0x0] and r1, r0 lsr r0, r2, #0xd orr r1, r0 orr r0, r1 strh r0, [r2, #0x0] pop {r3-r5, pc} _0200FBEC: ldrb r0, [r4, r0] cmp r0, #0x0 ldr r0, _0200FCC0 ; =0x04000004 bne _0200FC0E ldrh r3, [r0, #0x0] mov r2, #0x2 tst r2, r3 beq _0200FC26 add r0, #0x46 ldrh r3, [r0, #0x0] mov r2, #0x3f bic r3, r2 mov r2, #0x20 orr r3, r2 orr r2, r3 strh r2, [r0, #0x0] b _0200FC26 _0200FC0E: ldrh r2, [r0, #0x0] mov r0, #0x2 tst r0, r2 beq _0200FC26 ldr r2, _0200FCC4 ; =0x0400104A mov r0, #0x3f ldrh r3, [r2, #0x0] bic r3, r0 mov r0, #0x20 orr r3, r0 orr r0, r3 strh r0, [r2, #0x0] _0200FC26: ldr r0, _0200FCBC ; =0x00000309 ldrb r2, [r4, r0] mov r0, #0x6 lsl r0, r0, #0x6 ldr r0, [r1, r0] cmp r0, #0x0 ldr r0, _0200FCC0 ; =0x04000004 bne _0200FC72 cmp r2, #0x0 bne _0200FC56 ldrh r2, [r0, #0x0] mov r1, #0x2 tst r1, r2 beq _0200FCB0 add r0, #0x44 ldrh r2, [r0, #0x0] mov r1, #0x3f bic r2, r1 mov r1, #0x3f orr r2, r1 mov r1, #0x20 orr r1, r2 strh r1, [r0, #0x0] pop {r3-r5, pc} _0200FC56: ldrh r1, [r0, #0x0] mov r0, #0x2 tst r0, r1 beq _0200FCB0 ldr r1, _0200FCB8 ; =0x04001048 mov r0, #0x3f ldrh r2, [r1, #0x0] bic r2, r0 mov r0, #0x3f orr r2, r0 mov r0, #0x20 orr r0, r2 strh r0, [r1, #0x0] pop {r3-r5, pc} _0200FC72: cmp r2, #0x0 bne _0200FC94 ldrh r1, [r0, #0x0] mov r2, #0x2 tst r1, r2 beq _0200FCB0 add r0, #0x44 ldrh r3, [r0, #0x0] ldr r1, _0200FCB4 ; =0xFFFFC0FF and r3, r1 mov r1, #0x3f lsl r1, r1, #0x8 orr r3, r1 lsl r1, r2, #0xc orr r1, r3 strh r1, [r0, #0x0] pop {r3-r5, pc} _0200FC94: ldrh r1, [r0, #0x0] mov r0, #0x2 tst r0, r1 beq _0200FCB0 ldr r2, _0200FCB8 ; =0x04001048 ldr r0, _0200FCB4 ; =0xFFFFC0FF ldrh r1, [r2, #0x0] and r1, r0 mov r0, #0x3f lsl r0, r0, #0x8 orr r1, r0 lsr r0, r2, #0xd orr r0, r1 strh r0, [r2, #0x0] _0200FCB0: pop {r3-r5, pc} nop _0200FCB4: .word 0xFFFFC0FF _0200FCB8: .word 0x04001048 _0200FCBC: .word 0x00000309 _0200FCC0: .word 0x04000004 _0200FCC4: .word 0x0400104A thumb_func_start FUN_0200FCC8 FUN_0200FCC8: ; 0x0200FCC8 push {r4-r6, lr} sub sp, #0x8 add r5, r0, #0x0 ldr r0, [r5, #0x20] add r6, r1, #0x0 mov r1, #0x4c bl FUN_02016998 str r0, [r5, #0x14] add r4, r0, #0x0 ldr r0, [r5, #0x10] add r1, r6, #0x0 str r0, [sp, #0x0] ldr r0, [r5, #0x18] str r0, [sp, #0x4] ldr r2, [r5, #0x4] ldr r3, [r5, #0x8] add r0, r4, #0x0 bl FUN_0200FE20 add r6, #0x20 ldrb r0, [r6, #0x0] cmp r0, #0x0 ldr r0, [r5, #0x18] bne _0200FD06 ldr r2, [r4, #0x30] ldr r3, [r4, #0x44] mov r1, #0x1 bl FUN_0200F6E4 b _0200FD10 _0200FD06: ldr r2, [r4, #0x30] ldr r3, [r4, #0x44] mov r1, #0x2 bl FUN_0200F6E4 _0200FD10: ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] add sp, #0x8 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0200FD1C FUN_0200FD1C: ; 0x0200FD1C push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] mov r6, #0x0 ldr r4, [r5, #0x14] cmp r0, #0x1 beq _0200FD34 cmp r0, #0x2 beq _0200FD50 cmp r0, #0x3 beq _0200FD64 b _0200FD66 _0200FD34: add r0, r4, #0x0 bl FUN_0200FE90 cmp r0, #0x1 bne _0200FD66 ldr r0, [r4, #0x44] ldr r1, [r5, #0x18] ldr r2, [r5, #0x10] bl FUN_0200F62C ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] b _0200FD66 _0200FD50: add r0, r4, #0x0 bl FUN_02016A18 add r0, r6, #0x0 str r0, [r5, #0x14] ldr r0, [r5, #0xc] mov r6, #0x1 add r0, r0, #0x1 str r0, [r5, #0xc] b _0200FD66 _0200FD64: mov r6, #0x1 _0200FD66: add r0, r6, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0200FD6C FUN_0200FD6C: ; 0x0200FD6C push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 ldr r0, [r5, #0x20] add r6, r1, #0x0 mov r1, #0x98 add r7, r2, #0x0 bl FUN_02016998 str r0, [r5, #0x14] add r4, r0, #0x0 ldr r0, [r5, #0x10] add r1, r6, #0x0 str r0, [sp, #0x0] ldr r0, [r5, #0x18] str r0, [sp, #0x4] ldr r2, [r5, #0x4] ldr r3, [r5, #0x8] add r0, r4, #0x0 bl FUN_0200FE20 ldr r0, [r5, #0x10] add r1, r7, #0x0 str r0, [sp, #0x0] ldr r0, [r5, #0x18] str r0, [sp, #0x4] add r0, r4, #0x0 ldr r2, [r5, #0x4] ldr r3, [r5, #0x8] add r0, #0x4c bl FUN_0200FE20 ldr r0, [r5, #0x18] ldr r2, [r5, #0x10] ldr r3, [r4, #0x44] mov r1, #0x3 bl FUN_0200F6E4 ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] add sp, #0x8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200FDC4 FUN_0200FDC4: ; 0x0200FDC4 push {r3-r7, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] mov r6, #0x0 ldr r4, [r5, #0x14] cmp r0, #0x1 beq _0200FDDC cmp r0, #0x2 beq _0200FE04 cmp r0, #0x3 beq _0200FE18 b _0200FE1A _0200FDDC: add r0, r4, #0x0 bl FUN_0200FE90 add r7, r0, #0x0 add r0, r4, #0x0 add r0, #0x4c bl FUN_0200FE90 add r0, r7, r0 cmp r0, #0x2 bne _0200FE1A ldr r0, [r4, #0x44] ldr r1, [r5, #0x18] ldr r2, [r5, #0x10] bl FUN_0200F62C ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] b _0200FE1A _0200FE04: add r0, r4, #0x0 bl FUN_02016A18 add r0, r6, #0x0 str r0, [r5, #0x14] ldr r0, [r5, #0xc] mov r6, #0x1 add r0, r0, #0x1 str r0, [r5, #0xc] b _0200FE1A _0200FE18: mov r6, #0x1 _0200FE1A: add r0, r6, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200FE20 FUN_0200FE20: ; 0x0200FE20 push {r3-r7, lr} sub sp, #0x18 add r4, r1, #0x0 add r1, #0x10 add r7, r3, #0x0 add r5, r0, #0x0 add r6, r2, #0x0 str r1, [sp, #0x0] add r1, r5, #0x0 add r2, r5, #0x0 add r1, #0x20 add r2, #0x10 add r3, r4, #0x0 str r6, [sp, #0x4] bl FUN_0200F1A8 ldr r1, [sp, #0x30] add r0, r4, #0x0 add r2, r4, #0x0 str r1, [r5, #0x30] add r0, #0x20 ldrb r0, [r0, #0x0] add r2, #0x23 str r0, [r5, #0x34] str r6, [r5, #0x38] str r7, [r5, #0x3c] mov r0, #0x0 str r0, [r5, #0x40] ldr r0, [sp, #0x34] str r0, [r5, #0x48] ldrb r2, [r2, #0x0] str r2, [r5, #0x44] str r1, [sp, #0x0] ldr r1, [r4, #0x0] add r2, r4, #0x0 str r1, [sp, #0x4] ldr r1, [r4, #0x4] add r2, #0x22 str r1, [sp, #0x8] ldr r1, [r4, #0x8] str r1, [sp, #0xc] ldr r1, [r4, #0xc] str r1, [sp, #0x10] ldr r1, [r5, #0x44] str r1, [sp, #0x14] add r1, r4, #0x0 add r1, #0x21 add r4, #0x20 ldrb r1, [r1, #0x0] ldrb r2, [r2, #0x0] ldrb r3, [r4, #0x0] bl FUN_0200F67C add sp, #0x18 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0200FE90 FUN_0200FE90: ; 0x0200FE90 push {r3-r4, lr} sub sp, #0xc add r4, r0, #0x0 ldr r1, [r4, #0x40] add r2, r1, #0x1 str r2, [r4, #0x40] ldr r1, [r4, #0x3c] cmp r2, r1 blt _0200FF10 mov r1, #0x0 str r1, [r4, #0x40] ldr r1, [r4, #0x38] sub r1, r1, #0x1 cmp r1, #0x0 ble _0200FEBA str r1, [r4, #0x38] add r1, r4, #0x0 add r1, #0x10 bl FUN_0200F184 b _0200FED8 _0200FEBA: ldr r0, [r4, #0x2c] str r0, [sp, #0x0] ldr r0, [r4, #0x34] str r0, [sp, #0x4] ldr r0, [r4, #0x30] str r0, [sp, #0x8] ldr r0, [r4, #0x48] ldr r1, [r4, #0x20] ldr r2, [r4, #0x24] ldr r3, [r4, #0x28] bl FUN_02011698 add sp, #0xc mov r0, #0x1 pop {r3-r4, pc} _0200FED8: ldr r1, [r4, #0xc] asr r0, r1, #0x6 lsr r0, r0, #0x19 add r0, r1, r0 asr r0, r0, #0x7 str r0, [sp, #0x0] ldr r0, [r4, #0x34] str r0, [sp, #0x4] ldr r0, [r4, #0x30] str r0, [sp, #0x8] ldr r2, [r4, #0x0] ldr r3, [r4, #0x4] asr r1, r2, #0x6 lsr r1, r1, #0x19 add r1, r2, r1 ldr r0, [r4, #0x48] asr r2, r3, #0x6 lsr r2, r2, #0x19 add r2, r3, r2 ldr r4, [r4, #0x8] asr r1, r1, #0x7 asr r3, r4, #0x6 lsr r3, r3, #0x19 add r3, r4, r3 asr r2, r2, #0x7 asr r3, r3, #0x7 bl FUN_02011698 _0200FF10: mov r0, #0x0 add sp, #0xc pop {r3-r4, pc} .balign 4 thumb_func_start FUN_0200FF18 FUN_0200FF18: ; 0x0200FF18 push {r3-r5, lr} sub sp, #0x10 add r5, r0, #0x0 ldr r0, [r5, #0x20] add r4, r1, #0x0 mov r1, #0x38 bl FUN_02016998 str r0, [r5, #0x14] ldr r0, [r5, #0x10] add r1, r4, #0x0 str r0, [sp, #0x0] ldr r0, [r5, #0x18] str r0, [sp, #0x4] ldr r0, [r5, #0x1c] str r0, [sp, #0x8] ldr r0, [r5, #0x20] str r0, [sp, #0xc] ldr r0, [r5, #0x14] ldr r2, [r5, #0x4] ldr r3, [r5, #0x8] bl FUN_0200FFAC ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] add sp, #0x10 pop {r3-r5, pc} thumb_func_start FUN_0200FF50 FUN_0200FF50: ; 0x0200FF50 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] mov r6, #0x0 ldr r4, [r5, #0x14] cmp r0, #0x1 beq _0200FF68 cmp r0, #0x2 beq _0200FF84 cmp r0, #0x3 beq _0200FF9E b _0200FFA2 _0200FF68: add r0, r4, #0x0 bl FUN_02010084 cmp r0, #0x1 bne _0200FFA6 ldr r0, [r4, #0x2c] ldr r1, [r4, #0x30] ldr r2, [r5, #0x10] bl FUN_0200F62C ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] b _0200FFA6 _0200FF84: add r0, r4, #0x0 bl FUN_0200F5C0 ldr r0, [r5, #0x14] bl FUN_02016A18 add r0, r6, #0x0 str r0, [r5, #0x14] ldr r0, [r5, #0xc] mov r6, #0x1 add r0, r0, #0x1 str r0, [r5, #0xc] b _0200FFA6 _0200FF9E: mov r6, #0x1 b _0200FFA6 _0200FFA2: bl ErrorHandling _0200FFA6: add r0, r6, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0200FFAC FUN_0200FFAC: ; 0x0200FFAC push {r4-r7, lr} sub sp, #0x24 add r4, r1, #0x0 add r5, r0, #0x0 ldr r0, [r4, #0x0] ldr r1, [r4, #0x4] str r2, [sp, #0x18] str r3, [sp, #0x1c] ldr r6, [sp, #0x38] ldr r7, [sp, #0x3c] bl FUN_0200F164 str r0, [sp, #0x20] ldrb r1, [r4, #0xc] ldr r3, [sp, #0x44] add r0, r5, #0x0 add r2, r6, #0x0 bl FUN_0200F55C ldr r0, [r4, #0x0] lsl r0, r0, #0x7 str r0, [r5, #0xc] mov r0, #0x8 ldrsh r0, [r4, r0] str r0, [r5, #0x10] mov r0, #0xa ldrsh r0, [r4, r0] str r0, [r5, #0x14] ldr r0, [sp, #0x20] str r0, [r5, #0x18] ldr r0, [sp, #0x18] str r0, [r5, #0x1c] ldr r0, [sp, #0x1c] str r0, [r5, #0x20] mov r0, #0x0 str r0, [r5, #0x24] ldr r0, [sp, #0x40] str r7, [r5, #0x30] str r0, [r5, #0x34] ldr r0, [sp, #0x44] str r0, [r5, #0x28] ldrb r0, [r4, #0xf] str r0, [r5, #0x2c] add r0, r5, #0x0 bl FUN_02010168 ldr r0, _02010078 ; =FUN_0200F5F8 ldr r2, _0201007C ; =0x000003FF add r1, r5, #0x0 bl FUN_0200CA98 add r0, r5, #0x0 mov r1, #0x0 bl FUN_0200F5D8 mov r1, #0x3 str r6, [sp, #0x0] lsl r1, r1, #0x8 ldrsh r1, [r0, r1] str r1, [sp, #0x4] mov r1, #0x0 str r1, [sp, #0x8] mov r1, #0x12 lsl r1, r1, #0x6 ldrsh r0, [r0, r1] str r0, [sp, #0xc] mov r0, #0xc0 str r0, [sp, #0x10] ldr r0, [r5, #0x2c] str r0, [sp, #0x14] ldrb r1, [r4, #0xd] ldrb r2, [r4, #0xe] ldrb r3, [r4, #0xc] add r0, r7, #0x0 bl FUN_0200F67C ldrb r0, [r4, #0xc] cmp r0, #0x0 bne _02010058 ldr r3, [r5, #0x2c] add r0, r7, #0x0 mov r1, #0x1 add r2, r6, #0x0 bl FUN_0200F6E4 b _02010064 _02010058: ldr r3, [r5, #0x2c] add r0, r7, #0x0 mov r1, #0x2 add r2, r6, #0x0 bl FUN_0200F6E4 _02010064: ldr r0, [sp, #0x44] ldr r2, _02010080 ; =FUN_0200F330 str r0, [sp, #0x0] ldr r0, [r5, #0x34] add r1, r5, #0x0 add r3, r6, #0x0 bl FUN_0200E6CC add sp, #0x24 pop {r4-r7, pc} .balign 4 _02010078: .word FUN_0200F5F8 _0201007C: .word 0x000003FF _02010080: .word FUN_0200F330 thumb_func_start FUN_02010084 FUN_02010084: ; 0x02010084 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x24] add r2, r1, #0x1 str r2, [r4, #0x24] ldr r1, [r4, #0x20] cmp r2, r1 blt _020100C8 mov r1, #0x0 str r1, [r4, #0x24] ldr r1, [r4, #0x1c] sub r1, r1, #0x1 cmp r1, #0x0 ble _020100BA str r1, [r4, #0x1c] ldr r2, [r4, #0xc] ldr r1, [r4, #0x18] add r1, r2, r1 str r1, [r4, #0xc] bl FUN_02010168 ldr r0, _020100CC ; =FUN_0200F5F8 ldr r2, _020100D0 ; =0x000003FF add r1, r4, #0x0 bl FUN_0200CA98 b _020100C8 _020100BA: ldr r0, [r4, #0x34] ldr r1, [r4, #0x8] ldr r2, [r4, #0x28] bl FUN_0200E6F8 mov r0, #0x1 pop {r4, pc} _020100C8: mov r0, #0x0 pop {r4, pc} .balign 4 _020100CC: .word FUN_0200F5F8 _020100D0: .word 0x000003FF thumb_func_start FUN_020100D4 FUN_020100D4: ; 0x020100D4 push {r4-r7, lr} sub sp, #0xc str r1, [sp, #0x0] asr r1, r0, #0x6 lsr r1, r1, #0x19 add r1, r0, r1 asr r1, r1, #0x7 ldr r5, [sp, #0x20] ldr r4, [sp, #0x24] sub r0, r3, r2 bpl _020100EC neg r0, r0 _020100EC: cmp r0, r1 blt _020100FA mov r0, #0x0 str r0, [r5, #0x0] add sp, #0xc str r0, [r4, #0x0] pop {r4-r7, pc} _020100FA: lsl r0, r0, #0xc str r0, [sp, #0x4] asr r7, r0, #0x1f lsl r0, r1, #0xc asr r1, r0, #0x1f add r2, r0, #0x0 add r3, r1, #0x0 blx FUN_020EBC30 str r0, [sp, #0x8] ldr r0, [sp, #0x4] add r6, r1, #0x0 add r1, r7, #0x0 add r2, r0, #0x0 add r3, r7, #0x0 blx FUN_020EBC30 add r2, r0, #0x0 add r3, r1, #0x0 mov r0, #0x2 ldr r1, [sp, #0x8] mov r7, #0x0 lsl r0, r0, #0xa add r0, r1, r0 adc r6, r7 lsl r1, r6, #0x14 lsr r0, r0, #0xc orr r0, r1 mov r1, #0x2 lsl r1, r1, #0xa add r2, r2, r1 adc r3, r7 lsl r1, r3, #0x14 lsr r2, r2, #0xc orr r2, r1 sub r0, r0, r2 blx FUN_020C504C asr r2, r0, #0xc ldr r0, [sp, #0x0] sub r0, r0, r2 str r0, [r5, #0x0] bpl _02010154 add r0, r7, #0x0 str r0, [r5, #0x0] _02010154: ldr r1, [r5, #0x0] lsl r0, r2, #0x1 add r0, r1, r0 str r0, [r4, #0x0] cmp r0, #0xff ble _02010164 mov r0, #0xff str r0, [r4, #0x0] _02010164: add sp, #0xc pop {r4-r7, pc} thumb_func_start FUN_02010168 FUN_02010168: ; 0x02010168 push {r3-r7, lr} sub sp, #0x10 mov r1, #0x0 add r5, r0, #0x0 bl FUN_0200F5D8 add r7, r0, #0x0 mov r4, #0x0 add r6, r7, #0x0 _0201017A: ldr r2, [r5, #0x14] cmp r4, r2 bgt _02010194 add r0, sp, #0xc str r0, [sp, #0x0] add r0, sp, #0x8 str r0, [sp, #0x4] ldr r0, [r5, #0xc] ldr r1, [r5, #0x10] add r3, r4, #0x0 bl FUN_020100D4 b _020101CE _02010194: lsl r0, r2, #0x1 cmp r4, r0 bgt _020101BC sub r0, r0, r4 lsl r0, r0, #0x1 add r1, r7, r0 mov r0, #0x3 lsl r0, r0, #0x8 ldrsh r0, [r1, r0] str r0, [sp, #0xc] ldr r0, [r5, #0x14] lsl r0, r0, #0x1 sub r0, r0, r4 lsl r0, r0, #0x1 add r1, r7, r0 mov r0, #0x12 lsl r0, r0, #0x6 ldrsh r0, [r1, r0] str r0, [sp, #0x8] b _020101CE _020101BC: add r0, sp, #0xc str r0, [sp, #0x0] add r0, sp, #0x8 str r0, [sp, #0x4] ldr r0, [r5, #0xc] ldr r1, [r5, #0x10] add r3, r4, #0x0 bl FUN_020100D4 _020101CE: mov r0, #0x3 ldr r1, [sp, #0xc] lsl r0, r0, #0x8 strh r1, [r6, r0] mov r0, #0x12 ldr r1, [sp, #0x8] lsl r0, r0, #0x6 strh r1, [r6, r0] add r4, r4, #0x1 add r6, r6, #0x2 cmp r4, #0xc0 blt _0201017A add sp, #0x10 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020101EC FUN_020101EC: ; 0x020101EC push {r3-r5, lr} sub sp, #0x10 add r5, r0, #0x0 ldr r0, [r5, #0x20] add r4, r1, #0x0 mov r1, #0x30 bl FUN_02016998 str r0, [r5, #0x14] ldr r0, [r5, #0x10] add r1, r4, #0x0 str r0, [sp, #0x0] ldr r0, [r5, #0x18] str r0, [sp, #0x4] ldr r0, [r5, #0x1c] str r0, [sp, #0x8] ldr r0, [r5, #0x20] str r0, [sp, #0xc] ldr r0, [r5, #0x14] ldr r2, [r5, #0x4] ldr r3, [r5, #0x8] bl FUN_02010280 ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] add sp, #0x10 pop {r3-r5, pc} thumb_func_start FUN_02010224 FUN_02010224: ; 0x02010224 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] mov r6, #0x0 ldr r4, [r5, #0x14] cmp r0, #0x1 beq _0201023C cmp r0, #0x2 beq _02010258 cmp r0, #0x3 beq _02010272 b _02010276 _0201023C: add r0, r4, #0x0 bl FUN_02010348 cmp r0, #0x1 bne _0201027A ldr r0, [r4, #0x20] ldr r1, [r4, #0x24] ldr r2, [r5, #0x10] bl FUN_0200F62C ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] b _0201027A _02010258: add r0, r4, #0x0 bl FUN_0200F5C0 ldr r0, [r5, #0x14] bl FUN_02016A18 add r0, r6, #0x0 str r0, [r5, #0x14] ldr r0, [r5, #0xc] mov r6, #0x1 add r0, r0, #0x1 str r0, [r5, #0xc] b _0201027A _02010272: mov r6, #0x1 b _0201027A _02010276: bl ErrorHandling _0201027A: add r0, r6, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02010280 FUN_02010280: ; 0x02010280 push {r3-r7, lr} sub sp, #0x20 add r4, r1, #0x0 add r5, r0, #0x0 ldr r0, [r4, #0x0] ldr r1, [r4, #0x4] str r2, [sp, #0x18] str r3, [sp, #0x1c] ldr r6, [sp, #0x38] ldr r7, [sp, #0x3c] bl FUN_0200F164 str r0, [r5, #0x10] ldrb r1, [r4, #0x8] ldr r3, [sp, #0x44] add r0, r5, #0x0 add r2, r6, #0x0 bl FUN_0200F55C ldr r0, [r4, #0x0] lsl r0, r0, #0x7 str r0, [r5, #0xc] ldr r0, [sp, #0x18] str r0, [r5, #0x14] ldr r0, [sp, #0x1c] str r0, [r5, #0x18] mov r0, #0x0 str r0, [r5, #0x1c] ldr r0, [sp, #0x40] str r7, [r5, #0x24] str r0, [r5, #0x28] ldr r0, [sp, #0x44] str r0, [r5, #0x2c] ldrb r0, [r4, #0xb] str r0, [r5, #0x20] add r0, r5, #0x0 bl FUN_02010398 ldr r0, _0201033C ; =FUN_0200F5F8 ldr r2, _02010340 ; =0x000003FF add r1, r5, #0x0 bl FUN_0200CA98 add r0, r5, #0x0 mov r1, #0x0 bl FUN_0200F5D8 mov r1, #0x3 str r6, [sp, #0x0] lsl r1, r1, #0x8 ldrsh r1, [r0, r1] str r1, [sp, #0x4] mov r1, #0x0 str r1, [sp, #0x8] mov r1, #0x12 lsl r1, r1, #0x6 ldrsh r0, [r0, r1] str r0, [sp, #0xc] mov r0, #0xc0 str r0, [sp, #0x10] ldr r0, [r5, #0x20] str r0, [sp, #0x14] ldrb r1, [r4, #0x9] ldrb r2, [r4, #0xa] ldrb r3, [r4, #0x8] add r0, r7, #0x0 bl FUN_0200F67C ldrb r0, [r4, #0x8] cmp r0, #0x0 bne _0201031C ldr r3, [r5, #0x20] add r0, r7, #0x0 mov r1, #0x1 add r2, r6, #0x0 bl FUN_0200F6E4 b _02010328 _0201031C: ldr r3, [r5, #0x20] add r0, r7, #0x0 mov r1, #0x2 add r2, r6, #0x0 bl FUN_0200F6E4 _02010328: ldr r0, [sp, #0x44] ldr r2, _02010344 ; =FUN_0200F330 str r0, [sp, #0x0] ldr r0, [r5, #0x28] add r1, r5, #0x0 add r3, r6, #0x0 bl FUN_0200E6CC add sp, #0x20 pop {r3-r7, pc} .balign 4 _0201033C: .word FUN_0200F5F8 _02010340: .word 0x000003FF _02010344: .word FUN_0200F330 thumb_func_start FUN_02010348 FUN_02010348: ; 0x02010348 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x1c] add r2, r1, #0x1 str r2, [r4, #0x1c] ldr r1, [r4, #0x18] cmp r2, r1 blt _0201038C mov r1, #0x0 str r1, [r4, #0x1c] ldr r1, [r4, #0x14] sub r1, r1, #0x1 cmp r1, #0x0 ble _0201037E str r1, [r4, #0x14] ldr r2, [r4, #0xc] ldr r1, [r4, #0x10] add r1, r2, r1 str r1, [r4, #0xc] bl FUN_02010398 ldr r0, _02010390 ; =FUN_0200F5F8 ldr r2, _02010394 ; =0x000003FF add r1, r4, #0x0 bl FUN_0200CA98 b _0201038C _0201037E: ldr r0, [r4, #0x28] ldr r1, [r4, #0x8] ldr r2, [r4, #0x2c] bl FUN_0200E6F8 mov r0, #0x1 pop {r4, pc} _0201038C: mov r0, #0x0 pop {r4, pc} .balign 4 _02010390: .word FUN_0200F5F8 _02010394: .word 0x000003FF thumb_func_start FUN_02010398 FUN_02010398: ; 0x02010398 push {r3-r7, lr} sub sp, #0x1fc sub sp, #0x104 add r4, r0, #0x0 mov r1, #0x0 bl FUN_0200F5D8 ldr r1, [r4, #0xc] add r5, r0, #0x0 asr r0, r1, #0x6 lsr r0, r0, #0x19 add r0, r1, r0 asr r0, r0, #0x7 add r1, sp, #0x0 mov r2, #0xc0 mov r3, #0x0 bl FUN_0200F0F8 mov r7, #0x12 mov r6, #0x0 add r4, sp, #0x0 lsl r7, r7, #0x6 _020103C4: ldr r1, [r4, #0x0] mov r0, #0x80 neg r1, r1 bl FUN_0200F174 mov r1, #0x3 lsl r1, r1, #0x8 strh r0, [r5, r1] ldr r1, [r4, #0x0] mov r0, #0x80 bl FUN_0200F174 strh r0, [r5, r7] add r6, r6, #0x1 add r4, r4, #0x4 add r5, r5, #0x2 cmp r6, #0xc0 blt _020103C4 add sp, #0x1fc add sp, #0x104 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020103F0 FUN_020103F0: ; 0x020103F0 push {r3-r5, lr} sub sp, #0x10 add r5, r0, #0x0 ldr r0, [r5, #0x20] add r4, r1, #0x0 mov r1, #0x34 bl FUN_02016998 str r0, [r5, #0x14] ldr r0, [r5, #0x10] add r1, r4, #0x0 str r0, [sp, #0x0] ldr r0, [r5, #0x18] str r0, [sp, #0x4] ldr r0, [r5, #0x1c] str r0, [sp, #0x8] ldr r0, [r5, #0x20] str r0, [sp, #0xc] ldr r0, [r5, #0x14] ldr r2, [r5, #0x4] ldr r3, [r5, #0x8] bl FUN_0201047C ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] add sp, #0x10 pop {r3-r5, pc} thumb_func_start FUN_02010428 FUN_02010428: ; 0x02010428 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] mov r6, #0x0 ldr r4, [r5, #0x14] cmp r0, #0x1 beq _02010440 cmp r0, #0x2 beq _0201045C cmp r0, #0x3 beq _02010476 b _02010478 _02010440: add r0, r4, #0x0 bl FUN_02010550 cmp r0, #0x1 bne _02010478 ldr r0, [r4, #0x24] ldr r1, [r4, #0x28] ldr r2, [r5, #0x10] bl FUN_0200F62C ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] b _02010478 _0201045C: add r0, r4, #0x0 bl FUN_0200F5C0 ldr r0, [r5, #0x14] bl FUN_02016A18 add r0, r6, #0x0 str r0, [r5, #0x14] ldr r0, [r5, #0xc] mov r6, #0x1 add r0, r0, #0x1 str r0, [r5, #0xc] b _02010478 _02010476: mov r6, #0x1 _02010478: add r0, r6, #0x0 pop {r4-r6, pc} thumb_func_start FUN_0201047C FUN_0201047C: ; 0x0201047C push {r4-r7, lr} sub sp, #0x24 add r4, r1, #0x0 add r5, r0, #0x0 ldr r1, [r4, #0x4] ldr r0, [r4, #0x0] str r2, [sp, #0x18] sub r0, r1, r0 add r1, r2, #0x0 str r3, [sp, #0x1c] ldr r6, [sp, #0x38] ldr r7, [sp, #0x3c] blx _s32_div_f str r0, [sp, #0x20] ldrb r1, [r4, #0x8] ldr r3, [sp, #0x44] add r0, r5, #0x0 add r2, r6, #0x0 bl FUN_0200F55C mov r0, #0x2 lsl r0, r0, #0x12 str r0, [r5, #0xc] ldr r0, [r4, #0x0] str r0, [r5, #0x10] ldr r0, [sp, #0x20] str r0, [r5, #0x14] ldr r0, [sp, #0x18] str r0, [r5, #0x18] ldr r0, [sp, #0x1c] str r0, [r5, #0x1c] mov r0, #0x0 str r0, [r5, #0x20] ldr r0, [sp, #0x40] str r7, [r5, #0x28] str r0, [r5, #0x2c] ldr r0, [sp, #0x44] str r0, [r5, #0x30] ldrb r0, [r4, #0xb] str r0, [r5, #0x24] add r0, r5, #0x0 bl FUN_020105A0 ldr r0, _02010544 ; =FUN_0200F5F8 ldr r2, _02010548 ; =0x000003FF add r1, r5, #0x0 bl FUN_0200CA98 add r0, r5, #0x0 mov r1, #0x0 bl FUN_0200F5D8 mov r1, #0xf str r6, [sp, #0x0] lsl r1, r1, #0x6 ldrsh r1, [r0, r1] str r1, [sp, #0x4] mov r1, #0x0 str r1, [sp, #0x8] mov r1, #0x15 lsl r1, r1, #0x6 ldrsh r0, [r0, r1] str r0, [sp, #0xc] mov r0, #0xc0 str r0, [sp, #0x10] ldr r0, [r5, #0x24] str r0, [sp, #0x14] ldrb r1, [r4, #0x9] ldrb r2, [r4, #0xa] ldrb r3, [r4, #0x8] add r0, r7, #0x0 bl FUN_0200F67C ldrb r0, [r4, #0x8] cmp r0, #0x0 bne _02010524 ldr r3, [r5, #0x24] add r0, r7, #0x0 mov r1, #0x1 add r2, r6, #0x0 bl FUN_0200F6E4 b _02010530 _02010524: ldr r3, [r5, #0x24] add r0, r7, #0x0 mov r1, #0x2 add r2, r6, #0x0 bl FUN_0200F6E4 _02010530: ldr r0, [sp, #0x44] ldr r2, _0201054C ; =FUN_0200F330 str r0, [sp, #0x0] ldr r0, [r5, #0x2c] add r1, r5, #0x0 add r3, r6, #0x0 bl FUN_0200E6CC add sp, #0x24 pop {r4-r7, pc} .balign 4 _02010544: .word FUN_0200F5F8 _02010548: .word 0x000003FF _0201054C: .word FUN_0200F330 thumb_func_start FUN_02010550 FUN_02010550: ; 0x02010550 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x20] add r2, r1, #0x1 str r2, [r4, #0x20] ldr r1, [r4, #0x1c] cmp r2, r1 blt _02010594 mov r1, #0x0 str r1, [r4, #0x20] ldr r1, [r4, #0x18] sub r1, r1, #0x1 cmp r1, #0x0 ble _02010586 str r1, [r4, #0x18] ldr r2, [r4, #0x10] ldr r1, [r4, #0x14] add r1, r2, r1 str r1, [r4, #0x10] bl FUN_020105A0 ldr r0, _02010598 ; =FUN_0200F5F8 ldr r2, _0201059C ; =0x000003FF add r1, r4, #0x0 bl FUN_0200CA98 b _02010594 _02010586: ldr r0, [r4, #0x2c] ldr r1, [r4, #0x8] ldr r2, [r4, #0x30] bl FUN_0200E6F8 mov r0, #0x1 pop {r4, pc} _02010594: mov r0, #0x0 pop {r4, pc} .balign 4 _02010598: .word FUN_0200F5F8 _0201059C: .word 0x000003FF thumb_func_start FUN_020105A0 FUN_020105A0: ; 0x020105A0 push {r4-r7, lr} sub sp, #0x1fc sub sp, #0x110 add r4, r0, #0x0 mov r1, #0x0 bl FUN_0200F5D8 str r0, [sp, #0x0] ldr r0, [r4, #0x10] ldr r2, [r4, #0xc] asr r0, r0, #0x4 lsl r1, r0, #0x2 ldr r0, _02010680 ; =0x020FFA38 asr r3, r2, #0x1f ldrsh r0, [r0, r1] asr r1, r0, #0x1f blx FUN_020EBC30 mov r2, #0x2 mov r3, #0x0 lsl r2, r2, #0xa add r2, r0, r2 adc r1, r3 lsl r0, r1, #0x14 lsr r1, r2, #0xc orr r1, r0 asr r7, r1, #0xc lsl r0, r7, #0x1 mov r1, #0x15 blx _s32_div_f add r0, r0, #0x1 lsl r0, r0, #0x1 mov r1, #0xb4 sub r2, r1, r0 ldr r0, _02010684 ; =0x0000FFFF add r1, #0xb4 mul r0, r2 blx _s32_div_f lsr r1, r0, #0x1f add r1, r0, r1 asr r4, r1, #0x1 mov r1, #0x1 add r0, r4, #0x0 lsl r1, r1, #0x8 bl FUN_0200F14C asr r0, r0, #0xc str r0, [sp, #0x4] cmp r0, #0xc0 blt _0201060C bl ErrorHandling _0201060C: ldr r2, [sp, #0x4] add r0, r4, #0x0 add r1, sp, #0xc mov r3, #0x0 bl FUN_0200F0F8 ldr r5, [sp, #0x0] mov r4, #0x0 _0201061C: ldr r0, [sp, #0x4] add r1, r4, #0x1 sub r0, r0, r1 add r6, r7, #0x0 cmp r0, #0x0 ble _02010634 lsl r1, r0, #0x2 add r0, sp, #0xc ldr r0, [r0, r1] cmp r0, r7 ble _02010634 add r6, r0, #0x0 _02010634: mov r0, #0x80 neg r1, r6 bl FUN_0200F174 str r0, [sp, #0x8] mov r0, #0x80 add r1, r6, #0x0 bl FUN_0200F174 ldr r1, [sp, #0x8] lsl r0, r0, #0x10 lsl r1, r1, #0x10 asr r2, r1, #0x10 mov r1, #0x3 lsl r1, r1, #0x8 strh r2, [r5, r1] asr r1, r0, #0x10 mov r0, #0x12 lsl r0, r0, #0x6 strh r1, [r5, r0] mov r0, #0xbf sub r0, r0, r4 lsl r3, r0, #0x1 ldr r0, [sp, #0x0] add r4, r4, #0x1 add r0, r0, r3 mov r3, #0x3 lsl r3, r3, #0x8 strh r2, [r0, r3] mov r2, #0x12 lsl r2, r2, #0x6 add r5, r5, #0x2 strh r1, [r0, r2] cmp r4, #0x60 blt _0201061C add sp, #0x1fc add sp, #0x110 pop {r4-r7, pc} .balign 4 _02010680: .word 0x020FFA38 _02010684: .word 0x0000FFFF thumb_func_start FUN_02010688 FUN_02010688: ; 0x02010688 push {r3-r5, lr} sub sp, #0x10 add r5, r0, #0x0 ldr r0, [r5, #0x20] add r4, r1, #0x0 mov r1, #0x30 bl FUN_02016998 str r0, [r5, #0x14] ldr r0, [r5, #0x10] add r1, r4, #0x0 str r0, [sp, #0x0] ldr r0, [r5, #0x18] str r0, [sp, #0x4] ldr r0, [r5, #0x1c] str r0, [sp, #0x8] ldr r0, [r5, #0x20] str r0, [sp, #0xc] ldr r0, [r5, #0x14] ldr r2, [r5, #0x4] ldr r3, [r5, #0x8] bl FUN_02010720 ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] add sp, #0x10 pop {r3-r5, pc} thumb_func_start FUN_020106C0 FUN_020106C0: ; 0x020106C0 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] mov r6, #0x0 ldr r4, [r5, #0x14] cmp r0, #0x1 beq _020106D8 cmp r0, #0x2 beq _020106F4 cmp r0, #0x3 beq _02010714 b _02010718 _020106D8: add r0, r4, #0x0 bl FUN_02010834 cmp r0, #0x1 bne _0201071C ldr r0, [r4, #0x20] ldr r1, [r4, #0x24] ldr r2, [r5, #0x10] bl FUN_0200F62C ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] b _0201071C _020106F4: add r0, r4, #0x0 bl FUN_02010884 add r0, r4, #0x0 bl FUN_0200F5C0 ldr r0, [r5, #0x14] bl FUN_02016A18 add r0, r6, #0x0 str r0, [r5, #0x14] ldr r0, [r5, #0xc] mov r6, #0x1 add r0, r0, #0x1 str r0, [r5, #0xc] b _0201071C _02010714: mov r6, #0x1 b _0201071C _02010718: bl ErrorHandling _0201071C: add r0, r6, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02010720 FUN_02010720: ; 0x02010720 push {r4-r7, lr} sub sp, #0x24 add r5, r1, #0x0 add r7, r0, #0x0 str r2, [sp, #0x18] ldr r0, [sp, #0x38] ldrb r2, [r5, #0x8] str r0, [sp, #0x38] ldr r0, [sp, #0x44] mov r1, #0x30 mul r1, r2 str r3, [sp, #0x1c] str r0, [sp, #0x44] bl FUN_02016998 str r0, [r7, #0xc] cmp r0, #0x0 bne _02010748 bl ErrorHandling _02010748: ldrb r0, [r5, #0x8] str r0, [r7, #0x10] mov r0, #0x0 str r0, [sp, #0x20] ldrb r0, [r5, #0x8] cmp r0, #0x0 ble _02010788 ldr r6, [sp, #0x20] add r4, r6, #0x0 _0201075A: ldr r0, [r5, #0x4] ldr r2, [r7, #0xc] add r0, r0, r6 str r0, [sp, #0x0] ldr r0, [sp, #0x18] str r0, [sp, #0x4] add r0, r2, r4 ldr r3, [r5, #0x0] add r1, r0, #0x0 add r2, r2, r4 add r1, #0x20 add r2, #0x10 add r3, r3, r6 bl FUN_0200F1A8 ldr r0, [sp, #0x20] ldrb r1, [r5, #0x8] add r0, r0, #0x1 add r6, #0x10 add r4, #0x30 str r0, [sp, #0x20] cmp r0, r1 blt _0201075A _02010788: ldrb r1, [r5, #0x9] ldr r2, [sp, #0x38] ldr r3, [sp, #0x44] add r0, r7, #0x0 bl FUN_0200F55C ldr r0, [sp, #0x18] str r0, [r7, #0x14] ldr r0, [sp, #0x1c] str r0, [r7, #0x18] mov r0, #0x0 str r0, [r7, #0x1c] ldr r0, [sp, #0x3c] str r0, [r7, #0x24] ldr r0, [sp, #0x40] str r0, [r7, #0x28] ldr r0, [sp, #0x44] str r0, [r7, #0x2c] ldrb r0, [r5, #0xc] str r0, [r7, #0x20] add r0, r7, #0x0 bl FUN_02010894 ldr r0, _02010828 ; =FUN_0200F5F8 ldr r2, _0201082C ; =0x000003FF add r1, r7, #0x0 bl FUN_0200CA98 add r0, r7, #0x0 mov r1, #0x0 bl FUN_0200F5D8 ldr r1, [sp, #0x38] str r1, [sp, #0x0] mov r1, #0x3 lsl r1, r1, #0x8 ldrsh r1, [r0, r1] str r1, [sp, #0x4] mov r1, #0x0 str r1, [sp, #0x8] mov r1, #0x12 lsl r1, r1, #0x6 ldrsh r0, [r0, r1] str r0, [sp, #0xc] mov r0, #0xc0 str r0, [sp, #0x10] ldr r0, [r7, #0x20] str r0, [sp, #0x14] ldrb r1, [r5, #0xa] ldrb r2, [r5, #0xb] ldrb r3, [r5, #0x9] ldr r0, [sp, #0x3c] bl FUN_0200F67C ldrb r0, [r5, #0x9] cmp r0, #0x0 ldr r0, [r7, #0x24] bne _02010808 ldr r2, [sp, #0x38] ldr r3, [r7, #0x20] mov r1, #0x1 bl FUN_0200F6E4 b _02010812 _02010808: ldr r2, [sp, #0x38] ldr r3, [r7, #0x20] mov r1, #0x2 bl FUN_0200F6E4 _02010812: ldr r0, [sp, #0x44] ldr r2, _02010830 ; =FUN_0200F330 str r0, [sp, #0x0] ldr r0, [r7, #0x28] ldr r3, [sp, #0x38] add r1, r7, #0x0 bl FUN_0200E6CC add sp, #0x24 pop {r4-r7, pc} nop _02010828: .word FUN_0200F5F8 _0201082C: .word 0x000003FF _02010830: .word FUN_0200F330 thumb_func_start FUN_02010834 FUN_02010834: ; 0x02010834 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x1c] add r2, r1, #0x1 str r2, [r4, #0x1c] ldr r1, [r4, #0x18] cmp r2, r1 blt _02010876 mov r1, #0x0 str r1, [r4, #0x1c] ldr r1, [r4, #0x14] sub r1, r1, #0x1 cmp r1, #0x0 ble _02010868 str r1, [r4, #0x14] bl FUN_02010920 add r0, r4, #0x0 bl FUN_02010894 ldr r0, _0201087C ; =FUN_0200F5F8 ldr r2, _02010880 ; =0x000003FF add r1, r4, #0x0 bl FUN_0200CA98 b _02010876 _02010868: ldr r0, [r4, #0x28] ldr r1, [r4, #0x8] ldr r2, [r4, #0x2c] bl FUN_0200E6F8 mov r0, #0x1 pop {r4, pc} _02010876: mov r0, #0x0 pop {r4, pc} nop _0201087C: .word FUN_0200F5F8 _02010880: .word 0x000003FF thumb_func_start FUN_02010884 FUN_02010884: ; 0x02010884 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_02016A18 mov r0, #0x0 str r0, [r4, #0xc] pop {r4, pc} thumb_func_start FUN_02010894 FUN_02010894: ; 0x02010894 push {r4-r6, lr} mov r1, #0x0 add r6, r0, #0x0 bl FUN_0200F5D8 mov r2, #0x3 lsl r2, r2, #0x8 add r0, r0, r2 mov r1, #0x0 blx FUN_020DF4A4 ldr r0, [r6, #0x10] sub r4, r0, #0x1 bmi _020108C6 mov r0, #0x30 add r5, r4, #0x0 mul r5, r0 _020108B6: ldr r1, [r6, #0xc] add r0, r6, #0x0 add r1, r1, r5 bl FUN_020108C8 sub r5, #0x30 sub r4, r4, #0x1 bpl _020108B6 _020108C6: pop {r4-r6, pc} thumb_func_start FUN_020108C8 FUN_020108C8: ; 0x020108C8 push {r4-r6, lr} add r4, r1, #0x0 mov r1, #0x0 bl FUN_0200F5D8 ldr r2, [r4, #0x0] ldr r3, [r4, #0x8] asr r1, r2, #0x6 lsr r1, r1, #0x19 add r1, r2, r1 asr r2, r1, #0x7 asr r1, r3, #0x6 ldr r5, [r4, #0xc] lsr r1, r1, #0x19 add r1, r3, r1 asr r3, r5, #0x6 lsr r3, r3, #0x19 add r3, r5, r3 ldr r4, [r4, #0x4] asr r5, r3, #0x7 asr r3, r4, #0x6 lsr r3, r3, #0x19 add r3, r4, r3 asr r3, r3, #0x7 asr r1, r1, #0x7 cmp r3, r5 bge _0201091E lsl r4, r3, #0x1 lsl r1, r1, #0x10 add r4, r0, r4 lsl r0, r2, #0x10 asr r6, r1, #0x10 mov r1, #0x3 mov r2, #0x12 asr r0, r0, #0x10 lsl r1, r1, #0x8 lsl r2, r2, #0x6 _02010912: strh r0, [r4, r1] strh r6, [r4, r2] add r3, r3, #0x1 add r4, r4, #0x2 cmp r3, r5 blt _02010912 _0201091E: pop {r4-r6, pc} thumb_func_start FUN_02010920 FUN_02010920: ; 0x02010920 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0x10] mov r6, #0x0 cmp r0, #0x0 ble _02010944 add r4, r6, #0x0 _0201092E: ldr r1, [r5, #0xc] add r0, r1, r4 add r1, r1, r4 add r1, #0x10 bl FUN_0200F184 ldr r0, [r5, #0x10] add r6, r6, #0x1 add r4, #0x30 cmp r6, r0 blt _0201092E _02010944: pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02010948 FUN_02010948: ; 0x02010948 push {r3-r5, lr} sub sp, #0x10 add r5, r0, #0x0 ldr r0, [r5, #0x20] add r4, r1, #0x0 mov r1, #0x38 bl FUN_02016998 str r0, [r5, #0x14] mov r1, #0x0 mov r2, #0x38 blx FUN_020DF4A4 ldr r0, [r5, #0x10] add r1, r4, #0x0 str r0, [sp, #0x0] ldr r0, [r5, #0x18] str r0, [sp, #0x4] ldr r0, [r5, #0x1c] str r0, [sp, #0x8] ldr r0, [r5, #0x20] str r0, [sp, #0xc] ldr r0, [r5, #0x14] ldr r2, [r5, #0x4] ldr r3, [r5, #0x8] bl FUN_020109E8 ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] add sp, #0x10 pop {r3-r5, pc} thumb_func_start FUN_02010988 FUN_02010988: ; 0x02010988 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] mov r6, #0x0 ldr r4, [r5, #0x14] cmp r0, #0x1 beq _020109A0 cmp r0, #0x2 beq _020109BC cmp r0, #0x3 beq _020109DC b _020109E0 _020109A0: add r0, r4, #0x0 bl FUN_02010AE4 cmp r0, #0x1 bne _020109E4 ldr r0, [r4, #0x28] ldr r1, [r4, #0x30] ldr r2, [r5, #0x10] bl FUN_0200F62C ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] b _020109E4 _020109BC: add r0, r4, #0x0 bl FUN_02010B3C add r0, r4, #0x0 bl FUN_0200F5C0 ldr r0, [r5, #0x14] bl FUN_02016A18 add r0, r6, #0x0 str r0, [r5, #0x14] ldr r0, [r5, #0xc] mov r6, #0x1 add r0, r0, #0x1 str r0, [r5, #0xc] b _020109E4 _020109DC: mov r6, #0x1 b _020109E4 _020109E0: bl ErrorHandling _020109E4: add r0, r6, #0x0 pop {r4-r6, pc} thumb_func_start FUN_020109E8 FUN_020109E8: ; 0x020109E8 push {r3-r7, lr} sub sp, #0x28 add r4, r1, #0x0 add r5, r0, #0x0 mov r1, #0x0 str r1, [r5, #0xc] ldr r1, [r4, #0x0] str r2, [sp, #0x18] str r1, [r5, #0x10] str r3, [sp, #0x1c] ldr r2, [r4, #0x4] ldr r1, [r4, #0x0] ldr r6, [sp, #0x40] sub r1, r2, r1 str r1, [r5, #0x14] ldr r3, [sp, #0x4c] mov r1, #0x2 add r2, r6, #0x0 ldr r7, [sp, #0x44] bl FUN_0200F55C ldr r0, [sp, #0x18] mov r1, #0x0 str r0, [r5, #0x18] ldr r0, [sp, #0x1c] str r1, [r5, #0x1c] str r0, [r5, #0x20] str r1, [r5, #0x24] ldr r0, [sp, #0x48] str r7, [r5, #0x30] str r0, [r5, #0x34] ldr r0, [sp, #0x4c] str r0, [r5, #0x2c] ldrb r0, [r4, #0xa] str r0, [r5, #0x28] add r0, r5, #0x0 ldr r1, [r5, #0x1c] ldr r2, [r5, #0x18] add r0, #0xc bl FUN_02010C64 add r0, r5, #0x0 bl FUN_02010B40 ldr r0, _02010AD8 ; =FUN_0200F5F8 ldr r2, _02010ADC ; =0x000003FF add r1, r5, #0x0 bl FUN_0200CA98 add r0, r5, #0x0 mov r1, #0x0 bl FUN_0200F5D8 str r0, [sp, #0x20] add r0, r5, #0x0 mov r1, #0x1 bl FUN_0200F5D8 str r0, [sp, #0x24] mov r1, #0x3 ldr r0, [sp, #0x20] str r6, [sp, #0x0] lsl r1, r1, #0x8 ldrsh r0, [r0, r1] mov r1, #0x12 mov r3, #0x0 str r0, [sp, #0x4] ldr r0, [sp, #0x20] str r3, [sp, #0x8] lsl r1, r1, #0x6 ldrsh r0, [r0, r1] str r0, [sp, #0xc] mov r0, #0xc0 str r0, [sp, #0x10] ldr r0, [r5, #0x28] str r0, [sp, #0x14] ldrb r1, [r4, #0x8] ldrb r2, [r4, #0x9] add r0, r7, #0x0 bl FUN_0200F67C mov r1, #0x3 ldr r0, [sp, #0x24] str r6, [sp, #0x0] lsl r1, r1, #0x8 ldrsh r0, [r0, r1] mov r1, #0x12 lsl r1, r1, #0x6 str r0, [sp, #0x4] mov r0, #0x0 str r0, [sp, #0x8] ldr r0, [sp, #0x24] mov r3, #0x1 ldrsh r0, [r0, r1] str r0, [sp, #0xc] mov r0, #0xc0 str r0, [sp, #0x10] ldr r0, [r5, #0x28] str r0, [sp, #0x14] ldrb r1, [r4, #0x8] ldrb r2, [r4, #0x9] add r0, r7, #0x0 bl FUN_0200F67C ldr r3, [r5, #0x28] add r0, r7, #0x0 mov r1, #0x3 add r2, r6, #0x0 bl FUN_0200F6E4 ldr r0, [sp, #0x4c] ldr r2, _02010AE0 ; =FUN_0200F330 str r0, [sp, #0x0] ldr r0, [r5, #0x34] add r1, r5, #0x0 add r3, r6, #0x0 bl FUN_0200E6CC add sp, #0x28 pop {r3-r7, pc} .balign 4 _02010AD8: .word FUN_0200F5F8 _02010ADC: .word 0x000003FF _02010AE0: .word FUN_0200F330 thumb_func_start FUN_02010AE4 FUN_02010AE4: ; 0x02010AE4 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x24] add r1, r0, #0x1 str r1, [r4, #0x24] ldr r0, [r4, #0x20] cmp r1, r0 blt _02010B2E mov r0, #0x0 str r0, [r4, #0x24] ldr r0, [r4, #0x1c] add r1, r0, #0x1 ldr r0, [r4, #0x18] cmp r1, r0 bgt _02010B20 str r1, [r4, #0x1c] add r0, r4, #0x0 ldr r2, [r4, #0x18] add r0, #0xc bl FUN_02010C64 add r0, r4, #0x0 bl FUN_02010B40 ldr r0, _02010B34 ; =FUN_0200F5F8 ldr r2, _02010B38 ; =0x000003FF add r1, r4, #0x0 bl FUN_0200CA98 b _02010B2E _02010B20: ldr r0, [r4, #0x34] ldr r1, [r4, #0x8] ldr r2, [r4, #0x2c] bl FUN_0200E6F8 mov r0, #0x1 pop {r4, pc} _02010B2E: mov r0, #0x0 pop {r4, pc} nop _02010B34: .word FUN_0200F5F8 _02010B38: .word 0x000003FF thumb_func_start FUN_02010B3C FUN_02010B3C: ; 0x02010B3C bx lr .balign 4 thumb_func_start FUN_02010B40 FUN_02010B40: ; 0x02010B40 push {r3-r7, lr} sub sp, #0x8 str r0, [sp, #0x0] ldr r0, [r0, #0xc] ldr r1, _02010C60 ; =0x00003FFF blx _s32_div_f lsl r0, r1, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x4] ldr r0, [sp, #0x0] mov r1, #0x0 bl FUN_0200F5D8 add r7, r0, #0x0 ldr r0, [sp, #0x0] mov r1, #0x1 bl FUN_0200F5D8 add r4, r0, #0x0 mov r6, #0x0 add r5, r4, #0x0 _02010B6C: ldr r0, [sp, #0x0] ldr r1, [r0, #0xc] ldr r0, _02010C60 ; =0x00003FFF cmp r1, r0 bge _02010BB0 mov r1, #0x60 ldr r0, [sp, #0x4] sub r1, r1, r6 bl FUN_0200F0D0 cmp r0, #0x7f ble _02010B86 mov r0, #0x7f _02010B86: mov r1, #0xbf sub r1, r1, r6 lsl r1, r1, #0x1 add r3, r7, r1 mov r1, #0x80 sub r2, r1, r0 mov r1, #0x3 lsl r1, r1, #0x8 strh r2, [r3, r1] mov r1, #0x12 mov r2, #0x80 lsl r1, r1, #0x6 strh r2, [r3, r1] mov r1, #0x3 lsl r1, r1, #0x8 strh r2, [r5, r1] mov r1, #0x12 add r0, #0x80 lsl r1, r1, #0x6 strh r0, [r5, r1] b _02010BD8 _02010BB0: mov r0, #0xbf sub r0, r0, r6 lsl r0, r0, #0x1 mov r1, #0x3 add r0, r7, r0 mov r2, #0x0 lsl r1, r1, #0x8 strh r2, [r0, r1] mov r1, #0x12 mov r2, #0x80 lsl r1, r1, #0x6 strh r2, [r0, r1] mov r0, #0x3 add r1, r2, #0x0 lsl r0, r0, #0x8 strh r1, [r5, r0] mov r0, #0x12 mov r1, #0xff lsl r0, r0, #0x6 strh r1, [r5, r0] _02010BD8: add r6, r6, #0x1 add r5, r5, #0x2 cmp r6, #0x60 blt _02010B6C ldr r1, _02010C60 ; =0x00003FFF ldr r0, [sp, #0x4] mov r5, #0x60 add r4, #0xc0 sub r6, r1, r0 _02010BEA: ldr r0, [sp, #0x0] ldr r1, [r0, #0xc] ldr r0, _02010C60 ; =0x00003FFF cmp r1, r0 bge _02010C1A mov r0, #0xbf sub r0, r0, r5 lsl r0, r0, #0x1 mov r1, #0x3 add r0, r7, r0 mov r2, #0x80 lsl r1, r1, #0x8 strh r2, [r0, r1] mov r1, #0x12 lsl r1, r1, #0x6 strh r2, [r0, r1] mov r0, #0x3 add r1, r2, #0x0 lsl r0, r0, #0x8 strh r1, [r4, r0] mov r0, #0x12 lsl r0, r0, #0x6 strh r1, [r4, r0] b _02010C54 _02010C1A: add r1, r5, #0x0 add r0, r6, #0x0 sub r1, #0x60 bl FUN_0200F0D0 add r1, r0, #0x0 cmp r1, #0x7f ble _02010C2C mov r1, #0x7f _02010C2C: mov r0, #0xbf sub r0, r0, r5 lsl r0, r0, #0x1 mov r2, #0x3 add r0, r7, r0 mov r3, #0x0 lsl r2, r2, #0x8 strh r3, [r0, r2] mov r2, #0x80 sub r3, r2, r1 mov r2, #0x12 lsl r2, r2, #0x6 strh r3, [r0, r2] mov r0, #0x3 add r1, #0x80 lsl r0, r0, #0x8 strh r1, [r4, r0] mov r1, #0xff add r0, r2, #0x0 strh r1, [r4, r0] _02010C54: add r5, r5, #0x1 add r4, r4, #0x2 cmp r5, #0xc0 blt _02010BEA add sp, #0x8 pop {r3-r7, pc} .balign 4 _02010C60: .word 0x00003FFF thumb_func_start FUN_02010C64 FUN_02010C64: ; 0x02010C64 push {r4, lr} add r4, r0, #0x0 ldr r3, [r4, #0x8] add r0, r3, #0x0 mul r0, r1 add r1, r2, #0x0 blx _s32_div_f ldr r1, [r4, #0x4] add r0, r0, r1 str r0, [r4, #0x0] pop {r4, pc} thumb_func_start FUN_02010C7C FUN_02010C7C: ; 0x02010C7C push {r3-r5, lr} sub sp, #0x10 add r5, r0, #0x0 ldr r0, [r5, #0x20] add r4, r1, #0x0 mov r1, #0x38 bl FUN_02016998 str r0, [r5, #0x14] mov r1, #0x0 mov r2, #0x38 blx FUN_020DF4A4 ldr r0, [r5, #0x10] add r1, r4, #0x0 str r0, [sp, #0x0] ldr r0, [r5, #0x18] str r0, [sp, #0x4] ldr r0, [r5, #0x1c] str r0, [sp, #0x8] ldr r0, [r5, #0x20] str r0, [sp, #0xc] ldr r0, [r5, #0x14] ldr r2, [r5, #0x4] ldr r3, [r5, #0x8] bl FUN_02010D1C ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] add sp, #0x10 pop {r3-r5, pc} thumb_func_start FUN_02010CBC FUN_02010CBC: ; 0x02010CBC push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] mov r6, #0x0 ldr r4, [r5, #0x14] cmp r0, #0x1 beq _02010CD4 cmp r0, #0x2 beq _02010CF0 cmp r0, #0x3 beq _02010D10 b _02010D14 _02010CD4: add r0, r4, #0x0 bl FUN_02010DEC cmp r0, #0x1 bne _02010D18 ldr r0, [r4, #0x28] ldr r1, [r4, #0x30] ldr r2, [r5, #0x10] bl FUN_0200F62C ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] b _02010D18 _02010CF0: add r0, r4, #0x0 bl FUN_02010E44 add r0, r4, #0x0 bl FUN_0200F5C0 ldr r0, [r5, #0x14] bl FUN_02016A18 add r0, r6, #0x0 str r0, [r5, #0x14] ldr r0, [r5, #0xc] mov r6, #0x1 add r0, r0, #0x1 str r0, [r5, #0xc] b _02010D18 _02010D10: mov r6, #0x1 b _02010D18 _02010D14: bl ErrorHandling _02010D18: add r0, r6, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02010D1C FUN_02010D1C: ; 0x02010D1C push {r3-r7, lr} sub sp, #0x20 add r4, r1, #0x0 ldr r1, [r4, #0x0] add r5, r0, #0x0 str r1, [r5, #0xc] ldr r1, [r4, #0x0] str r3, [sp, #0x1c] str r1, [r5, #0x10] str r2, [sp, #0x18] ldr r2, [r4, #0x4] ldr r1, [r4, #0x0] ldr r6, [sp, #0x38] sub r1, r2, r1 str r1, [r5, #0x14] ldr r3, [sp, #0x44] mov r1, #0x2 add r2, r6, #0x0 ldr r7, [sp, #0x3c] bl FUN_0200F55C ldr r0, [sp, #0x18] mov r1, #0x0 str r0, [r5, #0x18] ldr r0, [sp, #0x1c] str r1, [r5, #0x1c] str r0, [r5, #0x20] str r1, [r5, #0x24] ldr r0, [sp, #0x40] str r7, [r5, #0x30] str r0, [r5, #0x34] ldr r0, [sp, #0x44] str r0, [r5, #0x2c] ldrb r0, [r4, #0xa] str r0, [r5, #0x28] add r0, r5, #0x0 bl FUN_02010E48 ldr r0, _02010DE0 ; =FUN_0200F5F8 ldr r2, _02010DE4 ; =0x000003FF add r1, r5, #0x0 bl FUN_0200CA98 add r0, r5, #0x0 mov r1, #0x0 bl FUN_0200F5D8 add r0, r5, #0x0 mov r1, #0x1 bl FUN_0200F5D8 str r6, [sp, #0x0] mov r3, #0x0 str r3, [sp, #0x4] str r3, [sp, #0x8] mov r0, #0xff str r0, [sp, #0xc] mov r0, #0xc0 str r0, [sp, #0x10] ldr r0, [r5, #0x28] str r0, [sp, #0x14] ldrb r1, [r4, #0x8] ldrb r2, [r4, #0x9] add r0, r7, #0x0 bl FUN_0200F67C str r6, [sp, #0x0] mov r0, #0x0 str r0, [sp, #0x4] str r0, [sp, #0x8] mov r0, #0xff str r0, [sp, #0xc] mov r0, #0xc0 str r0, [sp, #0x10] ldr r0, [r5, #0x28] mov r3, #0x1 str r0, [sp, #0x14] ldrb r1, [r4, #0x8] ldrb r2, [r4, #0x9] add r0, r7, #0x0 bl FUN_0200F67C ldr r3, [r5, #0x28] add r0, r7, #0x0 mov r1, #0x3 add r2, r6, #0x0 bl FUN_0200F6E4 ldr r0, [sp, #0x44] ldr r2, _02010DE8 ; =FUN_0200F330 str r0, [sp, #0x0] ldr r0, [r5, #0x34] add r1, r5, #0x0 add r3, r6, #0x0 bl FUN_0200E6CC add sp, #0x20 pop {r3-r7, pc} .balign 4 _02010DE0: .word FUN_0200F5F8 _02010DE4: .word 0x000003FF _02010DE8: .word FUN_0200F330 thumb_func_start FUN_02010DEC FUN_02010DEC: ; 0x02010DEC push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x24] add r1, r0, #0x1 str r1, [r4, #0x24] ldr r0, [r4, #0x20] cmp r1, r0 blt _02010E36 mov r0, #0x0 str r0, [r4, #0x24] ldr r0, [r4, #0x1c] add r1, r0, #0x1 ldr r0, [r4, #0x18] cmp r1, r0 bgt _02010E28 str r1, [r4, #0x1c] add r0, r4, #0x0 ldr r2, [r4, #0x18] add r0, #0xc bl FUN_02010F14 add r0, r4, #0x0 bl FUN_02010E48 ldr r0, _02010E3C ; =FUN_0200F5F8 ldr r2, _02010E40 ; =0x000003FF add r1, r4, #0x0 bl FUN_0200CA98 b _02010E36 _02010E28: ldr r0, [r4, #0x34] ldr r1, [r4, #0x8] ldr r2, [r4, #0x2c] bl FUN_0200E6F8 mov r0, #0x1 pop {r4, pc} _02010E36: mov r0, #0x0 pop {r4, pc} nop _02010E3C: .word FUN_0200F5F8 _02010E40: .word 0x000003FF thumb_func_start FUN_02010E44 FUN_02010E44: ; 0x02010E44 bx lr .balign 4 thumb_func_start FUN_02010E48 FUN_02010E48: ; 0x02010E48 push {r4-r7, lr} sub sp, #0x1c add r4, r0, #0x0 ldr r1, [r4, #0xc] lsl r1, r1, #0x10 lsr r1, r1, #0x10 str r1, [sp, #0x8] mov r1, #0x0 bl FUN_0200F5D8 str r0, [sp, #0x10] add r0, r4, #0x0 mov r1, #0x1 bl FUN_0200F5D8 str r0, [sp, #0xc] add r5, r0, #0x0 ldr r1, _02010F10 ; =0x00003FFF ldr r0, [sp, #0x8] ldr r6, [sp, #0x10] sub r0, r1, r0 mov r7, #0x0 str r0, [sp, #0x4] _02010E76: mov r0, #0x60 sub r0, r0, r7 str r0, [sp, #0x0] ldr r0, [sp, #0x8] ldr r1, [sp, #0x0] bl FUN_0200F0D0 add r4, r0, #0x0 ldr r0, [sp, #0x4] ldr r1, [sp, #0x0] bl FUN_0200F0D0 cmp r4, #0x7f ble _02010E94 mov r4, #0x7f _02010E94: cmp r0, #0x7f ble _02010E9A mov r0, #0x7f _02010E9A: mov r1, #0x80 sub r1, r1, r0 lsl r1, r1, #0x10 mov r2, #0x3 asr r1, r1, #0x10 lsl r2, r2, #0x8 str r1, [sp, #0x14] strh r1, [r6, r2] mov r1, #0x80 sub r1, r1, r4 lsl r1, r1, #0x10 asr r2, r1, #0x10 mov r1, #0x12 lsl r1, r1, #0x6 strh r2, [r6, r1] mov r1, #0xbf sub r1, r1, r7 mov r12, r2 lsl r1, r1, #0x1 ldr r2, [sp, #0x10] add r0, #0x80 add r3, r2, r1 str r1, [sp, #0x18] mov r2, #0x3 ldr r1, [sp, #0x14] lsl r2, r2, #0x8 strh r1, [r3, r2] mov r1, #0x12 mov r2, r12 lsl r1, r1, #0x6 strh r2, [r3, r1] add r4, #0x80 lsl r1, r4, #0x10 asr r2, r1, #0x10 mov r1, #0x3 lsl r1, r1, #0x8 lsl r0, r0, #0x10 strh r2, [r5, r1] asr r1, r0, #0x10 mov r0, #0x12 lsl r0, r0, #0x6 strh r1, [r5, r0] ldr r3, [sp, #0xc] ldr r0, [sp, #0x18] add r7, r7, #0x1 add r0, r3, r0 mov r3, #0x3 lsl r3, r3, #0x8 strh r2, [r0, r3] mov r2, #0x12 lsl r2, r2, #0x6 strh r1, [r0, r2] add r6, r6, #0x2 add r5, r5, #0x2 cmp r7, #0x60 blt _02010E76 add sp, #0x1c pop {r4-r7, pc} nop _02010F10: .word 0x00003FFF thumb_func_start FUN_02010F14 FUN_02010F14: ; 0x02010F14 push {r4, lr} add r4, r0, #0x0 ldr r3, [r4, #0x8] add r0, r3, #0x0 mul r0, r1 add r1, r2, #0x0 blx _s32_div_f ldr r1, [r4, #0x4] add r0, r0, r1 str r0, [r4, #0x0] pop {r4, pc} thumb_func_start FUN_02010F2C FUN_02010F2C: ; 0x02010F2C push {r3-r5, lr} sub sp, #0x10 add r5, r0, #0x0 add r4, r1, #0x0 mov r1, #0xcd ldr r0, [r5, #0x20] lsl r1, r1, #0x2 bl FUN_02016998 mov r2, #0xcd str r0, [r5, #0x14] mov r1, #0x0 lsl r2, r2, #0x2 blx FUN_020DF4A4 ldr r0, [r5, #0x10] add r1, r4, #0x0 str r0, [sp, #0x0] ldr r0, [r5, #0x18] str r0, [sp, #0x4] ldr r0, [r5, #0x1c] str r0, [sp, #0x8] ldr r0, [r5, #0x20] str r0, [sp, #0xc] ldr r0, [r5, #0x14] ldr r2, [r5, #0x4] ldr r3, [r5, #0x8] bl FUN_02010FD0 ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] add sp, #0x10 pop {r3-r5, pc} thumb_func_start FUN_02010F70 FUN_02010F70: ; 0x02010F70 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] mov r6, #0x0 ldr r4, [r5, #0x14] cmp r0, #0x1 beq _02010F88 cmp r0, #0x2 beq _02010FAA cmp r0, #0x3 beq _02010FC4 b _02010FC8 _02010F88: add r0, r4, #0x0 bl FUN_020110BC cmp r0, #0x1 bne _02010FCC mov r1, #0xc9 lsl r1, r1, #0x2 ldr r0, [r4, r1] add r1, #0x8 ldr r1, [r4, r1] ldr r2, [r5, #0x10] bl FUN_0200F62C ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] b _02010FCC _02010FAA: add r0, r4, #0x0 bl FUN_0201111C ldr r0, [r5, #0x14] bl FUN_02016A18 add r0, r6, #0x0 str r0, [r5, #0x14] ldr r0, [r5, #0xc] mov r6, #0x1 add r0, r0, #0x1 str r0, [r5, #0xc] b _02010FCC _02010FC4: mov r6, #0x1 b _02010FCC _02010FC8: bl ErrorHandling _02010FCC: add r0, r6, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02010FD0 FUN_02010FD0: ; 0x02010FD0 push {r3-r7, lr} sub sp, #0x20 ldr r7, [sp, #0x38] str r3, [sp, #0x1c] mov r3, #0x0 add r4, r1, #0x0 str r2, [sp, #0x18] str r3, [sp, #0x0] add r1, r7, #0x0 mov r2, #0x1 add r5, r0, #0x0 ldr r6, [sp, #0x3c] bl FUN_0200F6FC ldrb r0, [r4, #0x5] cmp r0, #0x0 bne _0201100A add r0, r5, #0x0 mov r1, #0x1 mov r2, #0xc0 blx FUN_020DF4A4 add r0, r5, #0x0 add r0, #0xc0 mov r1, #0x1 mov r2, #0xc0 blx FUN_020DF4A4 b _02011020 _0201100A: add r0, r5, #0x0 mov r1, #0x0 mov r2, #0xc0 blx FUN_020DF4A4 add r0, r5, #0x0 add r0, #0xc0 mov r1, #0x0 mov r2, #0xc0 blx FUN_020DF4A4 _02011020: mov r1, #0xc3 lsl r1, r1, #0x2 ldr r0, [r4, #0x0] add r3, r1, #0x0 str r0, [r5, r1] ldrb r2, [r4, #0x4] add r0, r1, #0x4 add r3, #0x8 str r2, [r5, r0] add r0, r1, #0x0 ldrb r2, [r4, #0x5] add r0, #0x18 str r2, [r5, r0] add r0, r1, #0x0 ldr r2, [sp, #0x44] add r0, #0x1c str r2, [r5, r0] ldr r0, [sp, #0x18] str r0, [r5, r3] add r3, r1, #0x0 add r3, #0xc mov r0, #0x0 str r0, [r5, r3] add r3, r1, #0x0 ldr r0, [sp, #0x1c] add r3, #0x10 str r0, [r5, r3] add r3, r1, #0x0 add r3, #0x14 mov r0, #0x0 str r0, [r5, r3] add r0, r1, #0x0 add r0, #0x20 str r6, [r5, r0] ldr r0, [sp, #0x40] add r1, #0x24 str r0, [r5, r1] add r1, r5, #0x0 bl FUN_0200F758 ldrb r0, [r4, #0x5] cmp r0, #0x1 str r7, [sp, #0x0] bne _02011090 mov r3, #0x0 str r3, [sp, #0x4] str r3, [sp, #0x8] str r3, [sp, #0xc] str r3, [sp, #0x10] str r0, [sp, #0x14] add r0, r6, #0x0 mov r1, #0x20 mov r2, #0x3f bl FUN_0200F67C b _020110A6 _02011090: mov r3, #0x0 str r3, [sp, #0x4] str r3, [sp, #0x8] str r3, [sp, #0xc] str r3, [sp, #0x10] str r0, [sp, #0x14] add r0, r6, #0x0 mov r1, #0x3f mov r2, #0x20 bl FUN_0200F67C _020110A6: mov r3, #0xc9 lsl r3, r3, #0x2 ldr r3, [r5, r3] add r0, r6, #0x0 mov r1, #0x1 add r2, r7, #0x0 bl FUN_0200F6E4 add sp, #0x20 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020110BC FUN_020110BC: ; 0x020110BC push {r4, lr} mov r2, #0x32 add r4, r0, #0x0 lsl r2, r2, #0x4 ldr r1, [r4, r2] add r1, r1, #0x1 str r1, [r4, r2] sub r1, r2, #0x4 ldr r3, [r4, r2] ldr r1, [r4, r1] cmp r3, r1 blt _02011116 mov r1, #0x0 str r1, [r4, r2] add r1, r2, #0x0 sub r1, #0x8 ldr r1, [r4, r1] add r3, r1, #0x1 add r1, r2, #0x0 sub r1, #0xc ldr r1, [r4, r1] cmp r3, r1 bgt _02011102 add r1, r2, #0x0 sub r1, #0x8 ldr r1, [r4, r1] sub r2, #0x8 add r1, r1, #0x1 str r1, [r4, r2] bl FUN_02011120 add r0, r4, #0x0 bl FUN_0200F740 b _02011116 _02011102: add r0, r2, #0x0 add r0, #0x10 add r2, #0x8 ldr r0, [r4, r0] ldr r2, [r4, r2] add r1, r4, #0x0 bl FUN_0200F770 mov r0, #0x1 pop {r4, pc} _02011116: mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_0201111C FUN_0201111C: ; 0x0201111C bx lr .balign 4 thumb_func_start FUN_02011120 FUN_02011120: ; 0x02011120 push {r3-r7, lr} add r5, r0, #0x0 mov r0, #0x31 lsl r0, r0, #0x4 ldr r0, [r5, r0] mov r6, #0x0 cmp r0, #0x0 ble _0201115A mov r7, #0x31 add r4, r6, #0x0 lsl r7, r7, #0x4 _02011136: mov r0, #0xc3 lsl r0, r0, #0x2 mov r2, #0xc6 mov r3, #0xc5 ldr r0, [r5, r0] lsl r2, r2, #0x2 lsl r3, r3, #0x2 ldr r2, [r5, r2] ldr r3, [r5, r3] add r0, r0, r4 add r1, r5, #0x0 bl FUN_0201115C ldr r0, [r5, r7] add r6, r6, #0x1 add r4, r4, #0x3 cmp r6, r0 blt _02011136 _0201115A: pop {r3-r7, pc} thumb_func_start FUN_0201115C FUN_0201115C: ; 0x0201115C push {r3-r7, lr} add r7, r0, #0x0 ldrb r6, [r7, #0x0] ldrb r4, [r7, #0x1] add r5, r1, #0x0 add r1, r3, #0x0 sub r0, r4, r6 mul r0, r2 blx _s32_div_f add r0, r0, r6 cmp r6, r4 bhi _0201117C add r1, r6, #0x0 ldrb r6, [r7, #0x2] b _0201118C _0201117C: ldrb r2, [r7, #0x2] add r1, r4, #0x0 add r4, r6, #0x0 cmp r2, #0x0 bne _0201118A mov r6, #0x1 b _0201118C _0201118A: mov r6, #0x0 _0201118C: cmp r1, r4 bge _020111AA mov r2, #0x0 mov r3, #0x1 _02011194: cmp r1, r0 bne _020111A2 cmp r6, #0x0 bne _020111A0 add r6, r3, #0x0 b _020111A2 _020111A0: add r6, r2, #0x0 _020111A2: strb r6, [r5, r1] add r1, r1, #0x1 cmp r1, r4 blt _02011194 _020111AA: pop {r3-r7, pc} thumb_func_start FUN_020111AC FUN_020111AC: ; 0x020111AC push {r3-r5, lr} sub sp, #0x10 add r5, r0, #0x0 add r4, r1, #0x0 mov r1, #0xe2 ldr r0, [r5, #0x20] lsl r1, r1, #0x2 bl FUN_02016998 mov r2, #0xe2 mov r1, #0x0 lsl r2, r2, #0x2 str r0, [r5, #0x14] blx FUN_020DF4A4 add r1, r4, #0x0 add r1, #0x23 ldrb r1, [r1, #0x0] ldr r0, [r5, #0x14] cmp r1, #0x0 ldr r1, [r5, #0x10] bne _020111F2 str r1, [sp, #0x0] ldr r1, [r5, #0x18] str r1, [sp, #0x4] ldr r1, [r5, #0x1c] str r1, [sp, #0x8] ldr r1, [r5, #0x20] str r1, [sp, #0xc] ldr r2, [r5, #0x4] ldr r3, [r5, #0x8] add r1, r4, #0x0 bl FUN_0201127C b _0201120A _020111F2: str r1, [sp, #0x0] ldr r1, [r5, #0x18] str r1, [sp, #0x4] ldr r1, [r5, #0x1c] str r1, [sp, #0x8] ldr r1, [r5, #0x20] str r1, [sp, #0xc] ldr r2, [r5, #0x4] ldr r3, [r5, #0x8] add r1, r4, #0x0 bl FUN_0201137C _0201120A: ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] add sp, #0x10 pop {r3-r5, pc} thumb_func_start FUN_02011214 FUN_02011214: ; 0x02011214 push {r3-r5, lr} add r5, r0, #0x0 ldr r1, [r5, #0xc] mov r4, #0x0 ldr r0, [r5, #0x14] cmp r1, #0x1 beq _0201122C cmp r1, #0x2 beq _02011258 cmp r1, #0x3 beq _0201126A b _0201126E _0201122C: ldr r1, _02011278 ; =0x00000386 ldrb r1, [r0, r1] cmp r1, #0x0 bne _0201123C add r1, r5, #0x0 bl FUN_02011308 b _02011242 _0201123C: add r1, r5, #0x0 bl FUN_020113EC _02011242: cmp r0, #0x1 bne _02011272 ldr r0, [r5, #0x28] ldr r1, [r5, #0x18] ldr r2, [r5, #0x10] bl FUN_0200F62C ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] b _02011272 _02011258: bl FUN_02016A18 add r0, r4, #0x0 str r0, [r5, #0x14] ldr r0, [r5, #0xc] mov r4, #0x1 add r0, r0, #0x1 str r0, [r5, #0xc] b _02011272 _0201126A: mov r4, #0x1 b _02011272 _0201126E: bl ErrorHandling _02011272: add r0, r4, #0x0 pop {r3-r5, pc} nop _02011278: .word 0x00000386 thumb_func_start FUN_0201127C FUN_0201127C: ; 0x0201127C push {r3-r7, lr} sub sp, #0x8 add r4, r1, #0x0 add r6, r2, #0x0 add r5, r0, #0x0 lsl r0, r6, #0xc ldr r2, [r4, #0x2c] add r7, r3, #0x0 asr r1, r0, #0x1f asr r3, r2, #0x1f blx FUN_020EBC30 add r2, r0, #0x0 mov r0, #0x2 mov r3, #0x0 lsl r0, r0, #0xa add r0, r2, r0 adc r1, r3 lsl r1, r1, #0x14 lsr r0, r0, #0xc orr r0, r1 asr r2, r0, #0xc mov r0, #0xe1 sub r1, r6, r2 lsl r0, r0, #0x2 strb r1, [r5, r0] sub r1, r0, #0x4 str r4, [r5, r1] add r1, r4, #0x0 add r1, #0x23 ldrb r1, [r1, #0x0] add r0, r0, #0x2 add r3, r7, #0x0 strb r1, [r5, r0] ldr r0, [sp, #0x20] add r1, r4, #0x0 str r0, [sp, #0x0] ldr r0, [sp, #0x24] str r0, [sp, #0x4] add r0, r5, #0x0 bl FUN_0200FE20 add r0, r4, #0x0 add r0, #0x20 ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _020112EA add r4, #0x23 ldrb r3, [r4, #0x0] ldr r0, [sp, #0x24] ldr r2, [sp, #0x20] mov r1, #0x1 bl FUN_0200F6E4 b _020112F8 _020112EA: add r4, #0x23 ldrb r3, [r4, #0x0] ldr r0, [sp, #0x24] ldr r2, [sp, #0x20] mov r1, #0x2 bl FUN_0200F6E4 _020112F8: ldr r0, _02011304 ; =0x00000385 mov r1, #0x0 strb r1, [r5, r0] add sp, #0x8 pop {r3-r7, pc} nop _02011304: .word 0x00000385 thumb_func_start FUN_02011308 FUN_02011308: ; 0x02011308 push {r4-r6, lr} sub sp, #0x10 add r4, r1, #0x0 ldr r1, _02011378 ; =0x00000385 add r5, r0, #0x0 ldrb r1, [r5, r1] mov r6, #0x0 cmp r1, #0x0 beq _02011324 cmp r1, #0x1 beq _0201135A cmp r1, #0x2 beq _02011370 b _02011372 _02011324: bl FUN_0200FE90 cmp r0, #0x1 bne _02011372 ldr r2, _02011378 ; =0x00000385 ldrb r0, [r5, r2] sub r1, r2, #0x5 add r0, r0, #0x1 strb r0, [r5, r2] ldr r0, [r4, #0x10] sub r2, r2, #0x1 str r0, [sp, #0x0] ldr r0, [r4, #0x18] str r0, [sp, #0x4] ldr r0, [r4, #0x1c] str r0, [sp, #0x8] ldr r0, [r4, #0x20] str r0, [sp, #0xc] ldr r1, [r5, r1] add r0, r5, #0x0 ldrb r2, [r5, r2] ldr r3, [r4, #0x8] add r0, #0x4c add r1, #0x24 bl FUN_02010FD0 b _02011372 _0201135A: add r0, #0x4c bl FUN_020110BC cmp r0, #0x1 bne _02011372 ldr r0, _02011378 ; =0x00000385 mov r6, #0x1 ldrb r1, [r5, r0] add r1, r1, #0x1 strb r1, [r5, r0] b _02011372 _02011370: mov r6, #0x1 _02011372: add r0, r6, #0x0 add sp, #0x10 pop {r4-r6, pc} .balign 4 _02011378: .word 0x00000385 thumb_func_start FUN_0201137C FUN_0201137C: ; 0x0201137C push {r3-r7, lr} sub sp, #0x10 add r4, r1, #0x0 add r6, r2, #0x0 add r5, r0, #0x0 lsl r0, r6, #0xc ldr r2, [r4, #0x2c] add r7, r3, #0x0 asr r1, r0, #0x1f asr r3, r2, #0x1f blx FUN_020EBC30 add r2, r0, #0x0 mov r0, #0x2 mov r3, #0x0 lsl r0, r0, #0xa add r0, r2, r0 adc r1, r3 lsl r1, r1, #0x14 lsr r0, r0, #0xc orr r0, r1 mov r1, #0xe1 asr r0, r0, #0xc lsl r1, r1, #0x2 strb r0, [r5, r1] ldrb r0, [r5, r1] sub r2, r6, r0 sub r0, r1, #0x4 str r4, [r5, r0] add r4, #0x23 add r0, r1, #0x2 ldrb r3, [r4, #0x0] sub r1, r1, #0x4 strb r3, [r5, r0] ldr r0, [sp, #0x28] add r3, r7, #0x0 str r0, [sp, #0x0] ldr r0, [sp, #0x2c] str r0, [sp, #0x4] ldr r0, [sp, #0x30] str r0, [sp, #0x8] ldr r0, [sp, #0x34] str r0, [sp, #0xc] ldr r1, [r5, r1] add r0, r5, #0x0 add r0, #0x4c add r1, #0x24 bl FUN_02010FD0 ldr r0, _020113E8 ; =0x00000385 mov r1, #0x0 strb r1, [r5, r0] add sp, #0x10 pop {r3-r7, pc} .balign 4 _020113E8: .word 0x00000385 thumb_func_start FUN_020113EC FUN_020113EC: ; 0x020113EC push {r4-r6, lr} sub sp, #0x8 add r4, r1, #0x0 ldr r1, _0201147C ; =0x00000385 add r5, r0, #0x0 ldrb r1, [r5, r1] mov r6, #0x0 cmp r1, #0x0 beq _02011408 cmp r1, #0x1 beq _02011460 cmp r1, #0x2 beq _02011474 b _02011476 _02011408: add r0, #0x4c bl FUN_020110BC cmp r0, #0x1 bne _02011476 ldr r2, _0201147C ; =0x00000385 ldrb r0, [r5, r2] sub r1, r2, #0x5 add r0, r0, #0x1 strb r0, [r5, r2] ldr r0, [r4, #0x10] sub r2, r2, #0x1 str r0, [sp, #0x0] ldr r0, [r4, #0x18] str r0, [sp, #0x4] ldrb r2, [r5, r2] ldr r1, [r5, r1] ldr r3, [r4, #0x8] add r0, r5, #0x0 bl FUN_0200FE20 mov r0, #0xe lsl r0, r0, #0x6 ldr r3, [r5, r0] add r0, r3, #0x0 add r0, #0x20 ldrb r0, [r0, #0x0] cmp r0, #0x0 ldr r0, [r4, #0x18] bne _02011452 add r3, #0x23 ldrb r3, [r3, #0x0] ldr r2, [r4, #0x10] mov r1, #0x1 bl FUN_0200F6E4 b _02011476 _02011452: add r3, #0x23 ldrb r3, [r3, #0x0] ldr r2, [r4, #0x10] mov r1, #0x2 bl FUN_0200F6E4 b _02011476 _02011460: bl FUN_0200FE90 cmp r0, #0x1 bne _02011476 ldr r0, _0201147C ; =0x00000385 mov r6, #0x1 ldrb r1, [r5, r0] add r1, r1, #0x1 strb r1, [r5, r0] b _02011476 _02011474: mov r6, #0x1 _02011476: add r0, r6, #0x0 add sp, #0x8 pop {r4-r6, pc} .balign 4 _0201147C: .word 0x00000385 thumb_func_start FUN_02011480 FUN_02011480: ; 0x02011480 cmp r1, #0x0 ldr r1, _020114A4 ; =0xFFFF1FFF bne _02011496 mov r3, #0x1 lsl r3, r3, #0x1a ldr r2, [r3, #0x0] lsl r0, r0, #0xd and r1, r2 orr r0, r1 str r0, [r3, #0x0] bx lr _02011496: ldr r3, _020114A8 ; =0x04001000 lsl r0, r0, #0xd ldr r2, [r3, #0x0] and r1, r2 orr r0, r1 str r0, [r3, #0x0] bx lr .balign 4 _020114A4: .word 0xFFFF1FFF _020114A8: .word 0x04001000 thumb_func_start FUN_020114AC FUN_020114AC: ; 0x020114AC push {r3-r4} cmp r2, #0x0 bne _020114EE cmp r3, #0x0 bne _020114D2 ldr r2, _02011528 ; =0x04000048 ldrh r3, [r2, #0x0] mov r2, #0x3f bic r3, r2 add r2, r3, #0x0 orr r2, r0 cmp r1, #0x0 beq _020114CA mov r0, #0x20 orr r2, r0 _020114CA: ldr r0, _02011528 ; =0x04000048 strh r2, [r0, #0x0] pop {r3-r4} bx lr _020114D2: ldr r2, _0201152C ; =0x04001048 ldrh r3, [r2, #0x0] mov r2, #0x3f bic r3, r2 add r2, r3, #0x0 orr r2, r0 cmp r1, #0x0 beq _020114E6 mov r0, #0x20 orr r2, r0 _020114E6: ldr r0, _0201152C ; =0x04001048 strh r2, [r0, #0x0] pop {r3-r4} bx lr _020114EE: cmp r3, #0x0 ldr r2, _02011530 ; =0xFFFFC0FF bne _0201150E ldr r4, _02011528 ; =0x04000048 lsl r0, r0, #0x8 ldrh r3, [r4, #0x0] and r2, r3 orr r2, r0 cmp r1, #0x0 beq _02011506 lsr r0, r4, #0xd orr r2, r0 _02011506: ldr r0, _02011528 ; =0x04000048 strh r2, [r0, #0x0] pop {r3-r4} bx lr _0201150E: ldr r4, _0201152C ; =0x04001048 lsl r0, r0, #0x8 ldrh r3, [r4, #0x0] and r2, r3 orr r2, r0 cmp r1, #0x0 beq _02011520 lsr r0, r4, #0xd orr r2, r0 _02011520: ldr r0, _0201152C ; =0x04001048 strh r2, [r0, #0x0] pop {r3-r4} bx lr .balign 4 _02011528: .word 0x04000048 _0201152C: .word 0x04001048 _02011530: .word 0xFFFFC0FF thumb_func_start FUN_02011534 FUN_02011534: ; 0x02011534 cmp r2, #0x0 bne _02011552 ldr r2, _0201156C ; =0x0400004A ldrh r3, [r2, #0x0] mov r2, #0x3f bic r3, r2 add r2, r3, #0x0 orr r2, r0 cmp r1, #0x0 beq _0201154C mov r0, #0x20 orr r2, r0 _0201154C: ldr r0, _0201156C ; =0x0400004A strh r2, [r0, #0x0] bx lr _02011552: ldr r2, _02011570 ; =0x0400104A ldrh r3, [r2, #0x0] mov r2, #0x3f bic r3, r2 add r2, r3, #0x0 orr r2, r0 cmp r1, #0x0 beq _02011566 mov r0, #0x20 orr r2, r0 _02011566: ldr r0, _02011570 ; =0x0400104A strh r2, [r0, #0x0] bx lr .balign 4 _0201156C: .word 0x0400004A _02011570: .word 0x0400104A thumb_func_start FUN_02011574 FUN_02011574: ; 0x02011574 push {r4-r5} add r4, r2, #0x0 add r2, r3, #0x0 ldr r3, [sp, #0x8] cmp r3, #0x0 bne _020115D2 ldr r3, [sp, #0xc] cmp r3, #0x0 bne _020115AC lsl r0, r0, #0x8 mov r3, #0xff add r5, r0, #0x0 lsl r3, r3, #0x8 lsl r0, r4, #0x18 and r5, r3 lsl r1, r1, #0x8 and r3, r1 lsl r1, r2, #0x18 lsr r1, r1, #0x18 lsr r0, r0, #0x18 add r4, r5, #0x0 orr r4, r0 ldr r0, _02011624 ; =0x04000040 orr r1, r3 strh r4, [r0, #0x0] strh r1, [r0, #0x4] pop {r4-r5} bx lr _020115AC: lsl r0, r0, #0x8 mov r3, #0xff add r5, r0, #0x0 lsl r3, r3, #0x8 lsl r0, r4, #0x18 and r5, r3 lsl r1, r1, #0x8 and r3, r1 lsl r1, r2, #0x18 lsr r1, r1, #0x18 lsr r0, r0, #0x18 add r4, r5, #0x0 orr r4, r0 ldr r0, _02011628 ; =0x04001040 orr r1, r3 strh r4, [r0, #0x0] strh r1, [r0, #0x4] pop {r4-r5} bx lr _020115D2: ldr r3, [sp, #0xc] cmp r3, #0x0 bne _020115FE lsl r0, r0, #0x8 mov r3, #0xff add r5, r0, #0x0 lsl r3, r3, #0x8 lsl r0, r4, #0x18 and r5, r3 lsl r1, r1, #0x8 and r3, r1 lsl r1, r2, #0x18 lsr r1, r1, #0x18 lsr r0, r0, #0x18 add r4, r5, #0x0 orr r4, r0 ldr r0, _0201162C ; =0x04000042 orr r1, r3 strh r4, [r0, #0x0] strh r1, [r0, #0x4] pop {r4-r5} bx lr _020115FE: lsl r0, r0, #0x8 mov r3, #0xff add r5, r0, #0x0 lsl r3, r3, #0x8 lsl r0, r4, #0x18 and r5, r3 lsl r1, r1, #0x8 and r3, r1 lsl r1, r2, #0x18 lsr r1, r1, #0x18 lsr r0, r0, #0x18 add r4, r5, #0x0 orr r4, r0 ldr r0, _02011630 ; =0x04001042 orr r1, r3 strh r4, [r0, #0x0] strh r1, [r0, #0x4] pop {r4-r5} bx lr .balign 4 _02011624: .word 0x04000040 _02011628: .word 0x04001040 _0201162C: .word 0x04000042 _02011630: .word 0x04001042 thumb_func_start FUN_02011634 FUN_02011634: ; 0x02011634 push {r4, lr} lsl r3, r2, #0x3 add r4, r0, r3 str r1, [r0, r3] str r2, [r4, #0x4] ldr r0, _0201164C ; =FUN_020116CC add r1, r4, #0x0 mov r2, #0x1 bl FUN_0200CA98 pop {r4, pc} nop _0201164C: .word FUN_020116CC thumb_func_start FUN_02011650 FUN_02011650: ; 0x02011650 push {r4-r6, lr} ldr r5, [sp, #0x10] add r0, #0x10 lsl r4, r5, #0x5 add r6, r0, r4 lsl r0, r3, #0x4 add r4, r6, r0 str r1, [r6, r0] str r2, [r4, #0x4] str r3, [r4, #0x8] ldr r0, _02011674 ; =FUN_020116E0 add r1, r4, #0x0 mov r2, #0x1 str r5, [r4, #0xc] bl FUN_0200CA98 pop {r4-r6, pc} nop _02011674: .word FUN_020116E0 thumb_func_start FUN_02011678 FUN_02011678: ; 0x02011678 push {r3-r5, lr} mov r4, #0xc add r0, #0x68 mul r4, r3 add r5, r0, r4 str r1, [r0, r4] str r2, [r5, #0x4] ldr r0, _02011694 ; =FUN_020116FC add r1, r5, #0x0 mov r2, #0x1 str r3, [r5, #0x8] bl FUN_0200CA98 pop {r3-r5, pc} .balign 4 _02011694: .word FUN_020116FC thumb_func_start FUN_02011698 FUN_02011698: ; 0x02011698 push {r3-r7, lr} ldr r5, [sp, #0x20] add r7, r1, #0x0 add r0, #0x80 lsl r1, r5, #0x5 add r6, r0, r1 add r4, r2, #0x0 ldr r0, [sp, #0x1c] add r2, r3, #0x0 lsl r3, r0, #0x4 add r1, r6, r3 strh r7, [r6, r3] strh r4, [r1, #0x2] strh r2, [r1, #0x4] ldr r2, [sp, #0x18] strh r2, [r1, #0x6] str r0, [r1, #0x8] ldr r0, _020116C8 ; =FUN_02011714 mov r2, #0x1 str r5, [r1, #0xc] bl FUN_0200CA98 pop {r3-r7, pc} nop _020116C8: .word FUN_02011714 thumb_func_start FUN_020116CC FUN_020116CC: ; 0x020116CC push {r4, lr} add r4, r0, #0x0 ldmia r1!, {r0-r1} bl FUN_02011480 add r0, r4, #0x0 bl FUN_0200CAB4 pop {r4, pc} .balign 4 thumb_func_start FUN_020116E0 FUN_020116E0: ; 0x020116E0 push {r4, lr} add r3, r1, #0x0 add r4, r0, #0x0 ldr r0, [r3, #0x0] ldr r1, [r3, #0x4] ldr r2, [r3, #0x8] ldr r3, [r3, #0xc] bl FUN_020114AC add r0, r4, #0x0 bl FUN_0200CAB4 pop {r4, pc} .balign 4 thumb_func_start FUN_020116FC FUN_020116FC: ; 0x020116FC push {r4, lr} add r2, r1, #0x0 add r4, r0, #0x0 ldr r0, [r2, #0x0] ldr r1, [r2, #0x4] ldr r2, [r2, #0x8] bl FUN_02011534 add r0, r4, #0x0 bl FUN_0200CAB4 pop {r4, pc} thumb_func_start FUN_02011714 FUN_02011714: ; 0x02011714 push {r3-r5, lr} sub sp, #0x8 add r3, r1, #0x0 add r4, r0, #0x0 ldr r0, [r3, #0x8] mov r1, #0x2 str r0, [sp, #0x0] ldr r0, [r3, #0xc] mov r2, #0x4 str r0, [sp, #0x4] mov r0, #0x0 mov r5, #0x6 ldrsh r0, [r3, r0] ldrsh r1, [r3, r1] ldrsh r2, [r3, r2] ldrsh r3, [r3, r5] bl FUN_02011574 add r0, r4, #0x0 bl FUN_0200CAB4 add sp, #0x8 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02011744 FUN_02011744: ; 0x02011744 push {r4-r7, lr} sub sp, #0xc add r7, r1, #0x0 str r0, [sp, #0x4] add r0, r7, #0x0 mov r1, #0x68 bl FUN_02016998 str r0, [sp, #0x8] cmp r0, #0x0 bne _0201175E bl ErrorHandling _0201175E: ldr r4, [sp, #0x8] ldr r5, [sp, #0x8] mov r6, #0x0 add r4, #0x30 _02011766: mov r0, #0x23 add r1, r6, #0x0 mov r2, #0x0 add r3, r4, #0x0 str r7, [sp, #0x0] bl FUN_02006C30 str r0, [r5, #0x0] cmp r0, #0x0 bne _0201177E bl ErrorHandling _0201177E: add r6, r6, #0x1 add r4, r4, #0x4 add r5, r5, #0x4 cmp r6, #0xc blt _02011766 ldr r0, [sp, #0x4] mov r1, #0x14 add r4, r0, #0x0 mul r4, r1 add r0, r7, #0x0 add r1, r4, #0x0 bl FUN_02016998 ldr r1, [sp, #0x8] cmp r0, #0x0 str r0, [r1, #0x60] bne _020117A4 bl ErrorHandling _020117A4: ldr r1, [sp, #0x4] ldr r0, [sp, #0x8] add r2, r4, #0x0 str r1, [r0, #0x64] ldr r0, [r0, #0x60] mov r1, #0x0 blx FUN_020DF4A4 ldr r0, [sp, #0x8] add sp, #0xc pop {r4-r7, pc} .balign 4 thumb_func_start FUN_020117BC FUN_020117BC: ; 0x020117BC push {r4-r6, lr} add r6, r0, #0x0 bne _020117C6 bl ErrorHandling _020117C6: mov r4, #0x0 add r5, r6, #0x0 _020117CA: ldr r0, [r5, #0x0] bl FUN_02016A18 add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, #0xc blt _020117CA ldr r0, [r6, #0x60] bl FUN_02016A18 add r0, r6, #0x0 bl FUN_02016A18 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_020117E8 FUN_020117E8: ; 0x020117E8 push {r4-r7, lr} sub sp, #0x1c add r5, r0, #0x0 bne _020117F4 bl ErrorHandling _020117F4: ldr r0, [r5, #0x0] bl FUN_02011BA0 add r4, r0, #0x0 bne _02011802 bl ErrorHandling _02011802: ldr r0, [r5, #0x10] add r3, sp, #0x8 str r0, [r4, #0x8] ldr r0, [r5, #0x18] str r0, [r4, #0xc] ldr r0, [r5, #0x1c] str r0, [r4, #0x10] str r3, [sp, #0x14] str r3, [sp, #0x18] ldr r1, [r5, #0x4] ldr r2, [r5, #0x2c] ldrb r0, [r1, #0x7] ldrb r1, [r1, #0x8] bl FUN_02011CA4 add r6, r0, #0x0 mov r1, #0x24 ldr r0, [r5, #0x2c] mul r1, r6 bl FUN_020169D8 add r7, r0, #0x0 mov r1, #0xc ldr r0, [r5, #0x2c] mul r1, r6 bl FUN_02016998 str r0, [r4, #0x0] str r6, [r4, #0x4] ldr r0, [r5, #0x28] add r1, sp, #0x8 str r0, [sp, #0x0] ldr r0, [r5, #0x2c] add r2, r7, #0x0 str r0, [sp, #0x4] ldr r0, [r5, #0x4] ldr r3, [r5, #0x14] bl FUN_02011D2C add r0, r5, #0x0 add r1, sp, #0x8 add r2, r7, #0x0 add r3, r4, #0x0 bl FUN_02011EAC add r0, r7, #0x0 bl FUN_02016A18 add r0, sp, #0x8 bl FUN_02011FDC add r0, r4, #0x0 add sp, #0x1c pop {r4-r7, pc} .balign 4 thumb_func_start FUN_02011870 FUN_02011870: ; 0x02011870 push {r4, lr} add r4, r0, #0x0 bne _0201187A bl ErrorHandling _0201187A: ldr r0, [r4, #0x0] cmp r0, #0x0 bne _02011884 bl ErrorHandling _02011884: add r0, r4, #0x0 bl FUN_02011F00 ldr r0, [r4, #0x0] bl FUN_02016A18 add r0, r4, #0x0 bl FUN_02011B90 pop {r4, pc} thumb_func_start FUN_02011898 FUN_02011898: ; 0x02011898 push {r4-r5, lr} sub sp, #0x14 add r3, sp, #0x0 add r5, r0, #0x0 str r3, [sp, #0xc] str r3, [sp, #0x10] add r4, r1, #0x0 ldrb r0, [r5, #0x7] ldrb r1, [r5, #0x8] bl FUN_02011CA4 add r0, sp, #0x0 add r1, r4, #0x0 bl FUN_02011E58 add r4, r0, #0x0 add r0, sp, #0x0 bl FUN_02011FDC add r0, r4, #0x0 add sp, #0x14 pop {r4-r5, pc} thumb_func_start FUN_020118C4 FUN_020118C4: ; 0x020118C4 push {r3-r7, lr} sub sp, #0x10 add r5, r0, #0x0 add r7, r2, #0x0 str r1, [sp, #0x0] cmp r5, #0x0 bne _020118D6 bl ErrorHandling _020118D6: ldr r0, [sp, #0x0] str r0, [r5, #0xc] str r7, [r5, #0x10] lsl r0, r0, #0xc str r0, [sp, #0x0] ldr r0, [r5, #0x8] lsl r7, r7, #0xc cmp r0, #0x0 beq _020118F8 bl FUN_0202011C ldr r2, [r0, #0x0] ldr r1, [sp, #0x0] ldr r0, [r0, #0x4] add r1, r1, r2 str r1, [sp, #0x0] add r7, r7, r0 _020118F8: mov r6, #0x0 str r6, [sp, #0xc] ldr r0, [r5, #0x4] cmp r0, #0x0 ble _02011932 add r4, r6, #0x0 _02011904: ldr r0, [r5, #0x0] add r0, r0, r4 ldr r0, [r0, #0x4] lsl r1, r0, #0xc ldr r0, [sp, #0x0] add r0, r0, r1 str r0, [sp, #0x4] ldr r0, [r5, #0x0] add r1, sp, #0x4 add r0, r0, r4 ldr r0, [r0, #0x8] lsl r0, r0, #0xc add r0, r7, r0 str r0, [sp, #0x8] ldr r0, [r5, #0x0] ldr r0, [r0, r4] bl FUN_02020044 ldr r0, [r5, #0x4] add r6, r6, #0x1 add r4, #0xc cmp r6, r0 blt _02011904 _02011932: add sp, #0x10 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02011938 FUN_02011938: ; 0x02011938 push {r3-r7, lr} sub sp, #0x10 add r5, r0, #0x0 bne _02011944 bl ErrorHandling _02011944: ldr r0, [r5, #0x8] cmp r0, #0x0 beq _0201199E ldr r1, [r5, #0xc] lsl r1, r1, #0xc str r1, [sp, #0x0] ldr r1, [r5, #0x10] lsl r7, r1, #0xc bl FUN_0202011C ldr r2, [r0, #0x0] ldr r0, [r0, #0x4] mov r6, #0x0 ldr r1, [sp, #0x0] str r6, [sp, #0xc] add r7, r7, r0 add r1, r1, r2 ldr r0, [r5, #0x4] str r1, [sp, #0x0] cmp r0, #0x0 ble _0201199E add r4, r6, #0x0 _02011970: ldr r0, [r5, #0x0] add r0, r0, r4 ldr r0, [r0, #0x4] lsl r1, r0, #0xc ldr r0, [sp, #0x0] add r0, r0, r1 str r0, [sp, #0x4] ldr r0, [r5, #0x0] add r1, sp, #0x4 add r0, r0, r4 ldr r0, [r0, #0x8] lsl r0, r0, #0xc add r0, r7, r0 str r0, [sp, #0x8] ldr r0, [r5, #0x0] ldr r0, [r0, r4] bl FUN_02020044 ldr r0, [r5, #0x4] add r6, r6, #0x1 add r4, #0xc cmp r6, r0 blt _02011970 _0201199E: add sp, #0x10 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020119A4 FUN_020119A4: ; 0x020119A4 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 cmp r5, #0x0 bne _020119B4 bl ErrorHandling _020119B4: cmp r4, #0x0 bne _020119BC bl ErrorHandling _020119BC: cmp r6, #0x0 bne _020119C4 bl ErrorHandling _020119C4: ldr r0, [r5, #0xc] str r0, [r4, #0x0] ldr r0, [r5, #0x10] str r0, [r6, #0x0] pop {r4-r6, pc} .balign 4 thumb_func_start FUN_020119D0 FUN_020119D0: ; 0x020119D0 push {r3-r7, lr} add r5, r0, #0x0 add r7, r1, #0x0 cmp r5, #0x0 bne _020119DE bl ErrorHandling _020119DE: ldr r0, [r5, #0x4] mov r6, #0x0 cmp r0, #0x0 ble _020119FC add r4, r6, #0x0 _020119E8: ldr r0, [r5, #0x0] add r1, r7, #0x0 ldr r0, [r0, r4] bl FUN_020200A0 ldr r0, [r5, #0x4] add r6, r6, #0x1 add r4, #0xc cmp r6, r0 blt _020119E8 _020119FC: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02011A00 FUN_02011A00: ; 0x02011A00 push {r3-r7, lr} add r5, r0, #0x0 add r7, r1, #0x0 cmp r5, #0x0 bne _02011A0E bl ErrorHandling _02011A0E: ldr r0, [r5, #0x4] mov r6, #0x0 cmp r0, #0x0 ble _02011A2C add r4, r6, #0x0 _02011A18: ldr r0, [r5, #0x0] add r1, r7, #0x0 ldr r0, [r0, r4] bl FUN_02020238 ldr r0, [r5, #0x4] add r6, r6, #0x1 add r4, #0xc cmp r6, r0 blt _02011A18 _02011A2C: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02011A30 FUN_02011A30: ; 0x02011A30 push {r3-r7, lr} add r5, r0, #0x0 add r7, r1, #0x0 cmp r5, #0x0 bne _02011A3E bl ErrorHandling _02011A3E: ldr r0, [r5, #0x4] mov r6, #0x0 cmp r0, #0x0 ble _02011A5C add r4, r6, #0x0 _02011A48: ldr r0, [r5, #0x0] add r1, r7, #0x0 ldr r0, [r0, r4] bl FUN_02020310 ldr r0, [r5, #0x4] add r6, r6, #0x1 add r4, #0xc cmp r6, r0 blt _02011A48 _02011A5C: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02011A60 FUN_02011A60: ; 0x02011A60 push {r3-r7, lr} add r5, r0, #0x0 add r7, r1, #0x0 cmp r5, #0x0 bne _02011A6E bl ErrorHandling _02011A6E: ldr r0, [r5, #0x4] mov r6, #0x0 cmp r0, #0x0 ble _02011A8C add r4, r6, #0x0 _02011A78: ldr r0, [r5, #0x0] add r1, r7, #0x0 ldr r0, [r0, r4] bl FUN_02020248 ldr r0, [r5, #0x4] add r6, r6, #0x1 add r4, #0xc cmp r6, r0 blt _02011A78 _02011A8C: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02011A90 FUN_02011A90: ; 0x02011A90 push {r3-r7, lr} add r5, r0, #0x0 add r7, r1, #0x0 cmp r5, #0x0 bne _02011A9E bl ErrorHandling _02011A9E: ldr r0, [r5, #0x4] mov r6, #0x0 cmp r0, #0x0 ble _02011ABC add r4, r6, #0x0 _02011AA8: ldr r0, [r5, #0x0] add r1, r7, #0x0 ldr r0, [r0, r4] bl FUN_020202A8 ldr r0, [r5, #0x4] add r6, r6, #0x1 add r4, #0xc cmp r6, r0 blt _02011AA8 _02011ABC: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02011AC0 FUN_02011AC0: ; 0x02011AC0 push {r3-r7, lr} add r5, r0, #0x0 add r7, r1, #0x0 cmp r5, #0x0 bne _02011ACE bl ErrorHandling _02011ACE: ldr r0, [r5, #0x4] mov r6, #0x0 cmp r0, #0x0 ble _02011AEC add r4, r6, #0x0 _02011AD8: ldr r0, [r5, #0x0] add r1, r7, #0x0 ldr r0, [r0, r4] bl FUN_020202DC ldr r0, [r5, #0x4] add r6, r6, #0x1 add r4, #0xc cmp r6, r0 blt _02011AD8 _02011AEC: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02011AF0 FUN_02011AF0: ; 0x02011AF0 push {r3-r7, lr} add r5, r0, #0x0 add r7, r1, #0x0 cmp r5, #0x0 bne _02011AFE bl ErrorHandling _02011AFE: ldr r0, [r5, #0x4] mov r6, #0x0 cmp r0, #0x0 ble _02011B1C add r4, r6, #0x0 _02011B08: ldr r0, [r5, #0x0] add r1, r7, #0x0 ldr r0, [r0, r4] bl FUN_02020398 ldr r0, [r5, #0x4] add r6, r6, #0x1 add r4, #0xc cmp r6, r0 blt _02011B08 _02011B1C: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02011B20 FUN_02011B20: ; 0x02011B20 push {r4-r7, lr} sub sp, #0xc add r6, r0, #0x0 ldr r0, [sp, #0x20] add r7, r1, #0x0 str r0, [sp, #0x20] ldr r0, [sp, #0x24] ldrb r1, [r6, #0x7] str r0, [sp, #0x24] add r0, r3, #0x0 add r0, r7, r0 str r2, [sp, #0x0] str r3, [sp, #0x4] cmp r1, r0 bge _02011B42 bl ErrorHandling _02011B42: ldrb r2, [r6, #0x8] ldr r1, [sp, #0x0] ldr r0, [sp, #0x20] add r0, r1, r0 cmp r2, r0 bge _02011B52 bl ErrorHandling _02011B52: ldr r0, [sp, #0x0] mov r4, #0x0 cmp r0, #0x0 ble _02011B8A lsl r0, r7, #0x5 add r5, r4, #0x0 str r0, [sp, #0x8] _02011B60: ldrb r1, [r6, #0x7] ldr r0, [sp, #0x20] add r2, r1, #0x0 add r0, r4, r0 mul r2, r0 ldr r0, [sp, #0x4] lsl r1, r5, #0x5 add r2, r2, r0 ldr r0, [sp, #0x24] lsl r2, r2, #0x5 add r0, r0, r1 ldr r1, [r6, #0xc] add r1, r1, r2 ldr r2, [sp, #0x8] blx FUN_020DF438 ldr r0, [sp, #0x0] add r4, r4, #0x1 add r5, r5, r7 cmp r4, r0 blt _02011B60 _02011B8A: add sp, #0xc pop {r4-r7, pc} .balign 4 thumb_func_start FUN_02011B90 FUN_02011B90: ; 0x02011B90 mov r2, #0x14 mov r1, #0x0 _02011B94: strb r1, [r0, #0x0] add r0, r0, #0x1 sub r2, r2, #0x1 bne _02011B94 bx lr .balign 4 thumb_func_start FUN_02011BA0 FUN_02011BA0: ; 0x02011BA0 ldr r1, [r0, #0x64] mov r2, #0x0 cmp r1, #0x0 ble _02011BC4 ldr r3, [r0, #0x60] _02011BAA: ldr r1, [r3, #0x0] cmp r1, #0x0 bne _02011BBA ldr r1, [r0, #0x60] mov r0, #0x14 mul r0, r2 add r0, r1, r0 bx lr _02011BBA: ldr r1, [r0, #0x64] add r2, r2, #0x1 add r3, #0x14 cmp r2, r1 blt _02011BAA _02011BC4: mov r0, #0x0 bx lr thumb_func_start FUN_02011BC8 FUN_02011BC8: ; 0x02011BC8 push {r3-r4} ldr r4, _02011BF0 ; =0x020ED398 mov r3, #0x0 _02011BCE: ldrb r2, [r4, #0x0] cmp r2, r0 bgt _02011BE0 ldrb r2, [r4, #0x1] cmp r2, r1 bgt _02011BE0 add r0, r3, #0x0 pop {r3-r4} bx lr _02011BE0: add r3, r3, #0x1 add r4, r4, #0x2 cmp r3, #0xc blt _02011BCE mov r0, #0xc pop {r3-r4} bx lr nop _02011BF0: .word 0x020ED398 thumb_func_start FUN_02011BF4 FUN_02011BF4: ; 0x02011BF4 push {r4-r6, lr} add r5, r0, #0x0 add r6, r1, #0x0 add r0, r2, #0x0 bl FUN_02011FAC ldr r1, [r6, #0x10] add r4, r0, #0x0 bl FUN_02011FF4 ldr r0, [r5, #0x8] ldr r1, [r5, #0xc] bl FUN_02011BC8 str r0, [r4, #0x8] ldr r0, [r5, #0x4] ldr r1, _02011C9C ; =0x020ED398 str r0, [r4, #0x0] ldr r0, [r5, #0x0] ldr r6, _02011CA0 ; =0x020ED399 str r0, [r4, #0x4] ldr r0, [r4, #0x8] ldr r2, [r5, #0x8] lsl r3, r0, #0x1 ldrb r0, [r1, r3] ldrb r3, [r6, r3] sub r2, r2, r0 ldr r0, [r5, #0xc] sub r6, r0, r3 cmp r2, #0x0 ble _02011C5C str r0, [r5, #0x1c] str r2, [r5, #0x18] ldr r0, [r5, #0x0] str r0, [r5, #0x10] ldr r2, [r4, #0x8] ldr r0, [r5, #0x4] lsl r2, r2, #0x1 ldrb r1, [r1, r2] add r0, r0, r1 str r0, [r5, #0x14] add r0, r5, #0x0 add r0, #0x20 ldrb r0, [r0, #0x0] cmp r0, #0x1 bne _02011C54 bl ErrorHandling _02011C54: add r0, r5, #0x0 mov r1, #0x1 add r0, #0x20 strb r1, [r0, #0x0] _02011C5C: cmp r6, #0x0 ble _02011C72 ldr r0, [r4, #0x8] ldr r2, [r5, #0x0] lsl r1, r0, #0x1 ldr r0, _02011CA0 ; =0x020ED399 ldrb r0, [r0, r1] add r0, r2, r0 str r0, [r5, #0x0] str r6, [r5, #0xc] b _02011C96 _02011C72: add r0, r5, #0x0 add r0, #0x20 ldrb r0, [r0, #0x0] cmp r0, #0x1 bne _02011C92 add r3, r5, #0x0 add r3, #0x10 add r2, r5, #0x0 ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldmia r3!, {r0-r1} stmia r2!, {r0-r1} mov r0, #0x0 add r5, #0x20 strb r0, [r5, #0x0] b _02011C96 _02011C92: mov r0, #0x1 pop {r4-r6, pc} _02011C96: mov r0, #0x0 pop {r4-r6, pc} nop _02011C9C: .word 0x020ED398 _02011CA0: .word 0x020ED399 thumb_func_start FUN_02011CA4 FUN_02011CA4: ; 0x02011CA4 push {r3-r7, lr} sub sp, #0x38 add r7, r0, #0x0 str r1, [sp, #0x0] add r5, r2, #0x0 add r6, r3, #0x0 cmp r7, #0x0 bne _02011CB8 bl ErrorHandling _02011CB8: ldr r0, [sp, #0x0] cmp r0, #0x0 bne _02011CC2 bl ErrorHandling _02011CC2: ldr r0, [sp, #0x0] mov r4, #0x0 str r0, [sp, #0x10] str r4, [sp, #0x4] str r4, [sp, #0x8] str r7, [sp, #0xc] add r0, sp, #0x24 strb r4, [r0, #0x0] ldr r0, [sp, #0x0] str r4, [sp, #0x2c] str r7, [sp, #0x30] cmp r0, #0x0 beq _02011D20 add r7, sp, #0x4 _02011CDE: ldr r0, [sp, #0xc] ldr r1, [sp, #0x0] bl FUN_02011BC8 lsl r1, r0, #0x1 ldr r0, _02011D28 ; =0x020ED398 add r0, r0, r1 ldrb r0, [r0, #0x1] ldr r1, [sp, #0x4] add r1, r1, r0 str r1, [sp, #0x28] ldr r1, [sp, #0x10] sub r1, r1, r0 str r1, [sp, #0x34] str r0, [sp, #0x10] _02011CFC: add r0, r7, #0x0 add r1, r6, #0x0 add r2, r5, #0x0 add r4, r4, #0x1 bl FUN_02011BF4 cmp r0, #0x0 beq _02011CFC add r3, sp, #0x28 add r2, sp, #0x4 ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldr r0, [sp, #0x10] str r0, [sp, #0x0] cmp r0, #0x0 bne _02011CDE _02011D20: add r0, r4, #0x0 add sp, #0x38 pop {r3-r7, pc} nop _02011D28: .word 0x020ED398 thumb_func_start FUN_02011D2C FUN_02011D2C: ; 0x02011D2C push {r4-r7, lr} sub sp, #0x1c str r0, [sp, #0x10] ldr r0, [sp, #0x30] str r1, [sp, #0x14] str r0, [sp, #0x30] ldr r0, [sp, #0x34] add r5, r2, #0x0 str r0, [sp, #0x34] ldr r0, [sp, #0x30] add r6, r3, #0x0 cmp r0, #0x1 bne _02011D4E mov r0, #0x1 lsl r0, r0, #0x1a ldr r1, [r0, #0x0] b _02011D52 _02011D4E: ldr r0, _02011D98 ; =0x04001000 ldr r1, [r0, #0x0] _02011D52: ldr r0, _02011D9C ; =0x00300010 add r7, r1, #0x0 and r7, r0 add r0, r7, #0x0 bl FUN_0201DED0 str r0, [sp, #0x18] ldr r0, [sp, #0x14] ldr r4, [r0, #0xc] cmp r4, r0 beq _02011D92 _02011D68: add r0, r5, #0x0 blx FUN_020B1A24 str r7, [sp, #0x0] ldr r0, [sp, #0x30] str r6, [sp, #0x4] str r0, [sp, #0x8] ldr r0, [sp, #0x34] ldr r3, [sp, #0x18] str r0, [sp, #0xc] ldr r0, [sp, #0x10] add r1, r4, #0x0 add r2, r5, #0x0 bl FUN_02011DA0 add r6, r0, #0x0 ldr r4, [r4, #0xc] ldr r0, [sp, #0x14] add r5, #0x24 cmp r4, r0 bne _02011D68 _02011D92: add sp, #0x1c pop {r4-r7, pc} nop _02011D98: .word 0x04001000 _02011D9C: .word 0x00300010 thumb_func_start FUN_02011DA0 FUN_02011DA0: ; 0x02011DA0 push {r4-r7, lr} sub sp, #0x14 add r6, r1, #0x0 str r0, [sp, #0x8] ldr r0, [r6, #0x8] add r5, r2, #0x0 lsl r1, r0, #0x1 ldr r0, _02011E44 ; =0x020ED398 ldrb r0, [r0, r1] str r0, [sp, #0x10] ldr r0, _02011E48 ; =0x020ED399 ldrb r0, [r0, r1] ldr r1, [sp, #0x10] add r4, r1, #0x0 mul r4, r0 str r0, [sp, #0xc] cmp r4, r3 bge _02011DC6 add r4, r3, #0x0 _02011DC6: lsl r4, r4, #0x5 ldr r0, [sp, #0x34] add r1, r4, #0x0 bl FUN_020169D8 add r7, r0, #0x0 ldr r0, [r6, #0x4] ldr r1, [sp, #0x10] str r0, [sp, #0x0] str r7, [sp, #0x4] ldr r0, [sp, #0x8] ldr r2, [sp, #0xc] ldr r3, [r6, #0x0] bl FUN_02011B20 add r0, r7, #0x0 add r1, r4, #0x0 blx DC_FlushRange ldr r0, [sp, #0x30] cmp r0, #0x1 bne _02011E08 ldr r6, [sp, #0x2c] add r0, r7, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 blx FUN_020C92F4 mov r0, #0x1 str r6, [r5, #0x4] lsl r0, r0, #0x1a ldr r1, [r0, #0x0] b _02011E1A _02011E08: ldr r6, [sp, #0x2c] add r0, r7, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 blx FUN_020C9294 ldr r0, _02011E4C ; =0x04001000 str r6, [r5, #0x8] ldr r1, [r0, #0x0] _02011E1A: ldr r0, _02011E50 ; =0x00300010 and r0, r1 str r0, [r5, #0x20] ldr r0, _02011E54 ; =0x0000FFFF str r0, [r5, #0xc] str r0, [r5, #0x10] mov r0, #0x3 str r0, [r5, #0x14] mov r0, #0x0 str r0, [r5, #0x18] mov r0, #0x1 str r0, [r5, #0x1c] ldr r0, [sp, #0x28] str r0, [r5, #0x20] add r0, r7, #0x0 bl FUN_02016A18 ldr r0, [sp, #0x2c] add r0, r0, r4 add sp, #0x14 pop {r4-r7, pc} .balign 4 _02011E44: .word 0x020ED398 _02011E48: .word 0x020ED399 _02011E4C: .word 0x04001000 _02011E50: .word 0x00300010 _02011E54: .word 0x0000FFFF thumb_func_start FUN_02011E58 FUN_02011E58: ; 0x02011E58 push {r3-r7, lr} add r4, r0, #0x0 cmp r1, #0x1 bne _02011E68 mov r0, #0x1 lsl r0, r0, #0x1a ldr r1, [r0, #0x0] b _02011E6C _02011E68: ldr r0, _02011EA0 ; =0x04001000 ldr r1, [r0, #0x0] _02011E6C: ldr r0, _02011EA4 ; =0x00300010 and r0, r1 bl FUN_0201DED0 ldr r2, [r4, #0xc] mov r3, #0x0 cmp r2, r4 beq _02011E9A ldr r1, _02011EA8 ; =0x020ED398 _02011E7E: ldr r5, [r2, #0x8] lsl r5, r5, #0x1 add r7, r1, r5 ldrb r6, [r1, r5] ldrb r5, [r7, #0x1] mul r5, r6 cmp r5, r0 bge _02011E90 add r5, r0, #0x0 _02011E90: ldr r2, [r2, #0xc] lsl r5, r5, #0x5 add r3, r3, r5 cmp r2, r4 bne _02011E7E _02011E9A: add r0, r3, #0x0 pop {r3-r7, pc} nop _02011EA0: .word 0x04001000 _02011EA4: .word 0x00300010 _02011EA8: .word 0x020ED398 thumb_func_start FUN_02011EAC FUN_02011EAC: ; 0x02011EAC push {r3-r7, lr} sub sp, #0x8 str r0, [sp, #0x0] add r0, r1, #0x0 ldr r4, [r0, #0xc] str r1, [sp, #0x4] add r7, r2, #0x0 add r6, r3, #0x0 cmp r4, r0 beq _02011EFC mov r5, #0x0 _02011EC2: ldr r0, [sp, #0x0] add r1, r4, #0x0 add r2, r7, #0x0 bl FUN_02011F24 ldr r1, [r6, #0x0] str r0, [r1, r5] ldr r0, [r6, #0x0] ldr r0, [r0, r5] cmp r0, #0x0 bne _02011EDC bl ErrorHandling _02011EDC: ldr r0, [r4, #0x0] add r7, #0x24 lsl r1, r0, #0x3 ldr r0, [r6, #0x0] add r0, r0, r5 str r1, [r0, #0x4] ldr r0, [r4, #0x4] lsl r1, r0, #0x3 ldr r0, [r6, #0x0] add r0, r0, r5 str r1, [r0, #0x8] ldr r4, [r4, #0xc] ldr r0, [sp, #0x4] add r5, #0xc cmp r4, r0 bne _02011EC2 _02011EFC: add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_02011F00 FUN_02011F00: ; 0x02011F00 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0x4] mov r6, #0x0 cmp r0, #0x0 ble _02011F20 add r4, r6, #0x0 _02011F0E: ldr r0, [r5, #0x0] ldr r0, [r0, r4] bl FUN_0201FFC8 ldr r0, [r5, #0x4] add r6, r6, #0x1 add r4, #0xc cmp r6, r0 blt _02011F0E _02011F20: pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02011F24 FUN_02011F24: ; 0x02011F24 push {r4-r5, lr} sub sp, #0x44 add r5, r0, #0x0 mov r0, #0x0 str r2, [sp, #0x0] str r0, [sp, #0x4] add r4, r1, #0x0 ldr r1, [r5, #0xc] str r1, [sp, #0x8] ldr r1, [r4, #0x8] ldr r2, [r5, #0x0] lsl r1, r1, #0x2 add r1, r2, r1 ldr r1, [r1, #0x30] str r1, [sp, #0xc] str r0, [sp, #0x10] str r0, [sp, #0x14] str r0, [sp, #0x18] str r0, [sp, #0x1c] ldr r2, [r5, #0x20] add r1, sp, #0x20 strb r2, [r1, #0x0] ldr r1, [r5, #0x8] str r1, [sp, #0x24] add r1, sp, #0x0 str r1, [sp, #0x28] ldr r1, [r5, #0x24] str r1, [sp, #0x38] ldr r1, [r5, #0x28] str r1, [sp, #0x3c] ldr r1, [r5, #0x2c] str r1, [sp, #0x40] str r0, [sp, #0x2c] str r0, [sp, #0x30] str r0, [sp, #0x34] ldr r0, [r5, #0x10] cmp r0, #0x0 beq _02011F80 bl FUN_0202011C add r3, r0, #0x0 ldmia r3!, {r0-r1} add r2, sp, #0x2c stmia r2!, {r0-r1} ldr r0, [r3, #0x0] str r0, [r2, #0x0] _02011F80: ldr r1, [r4, #0x0] ldr r2, [r5, #0x18] lsl r1, r1, #0x3 add r1, r2, r1 ldr r0, [sp, #0x2c] lsl r1, r1, #0xc add r0, r0, r1 str r0, [sp, #0x2c] ldr r1, [r4, #0x4] ldr r2, [r5, #0x1c] lsl r1, r1, #0x3 add r1, r2, r1 ldr r0, [sp, #0x30] lsl r1, r1, #0xc add r0, r0, r1 str r0, [sp, #0x30] add r0, sp, #0x24 bl FUN_0201FF84 add sp, #0x44 pop {r4-r5, pc} .balign 4 thumb_func_start FUN_02011FAC FUN_02011FAC: ; 0x02011FAC push {r4, lr} mov r1, #0x14 bl FUN_020169D8 add r4, r0, #0x0 bne _02011FBC bl ErrorHandling _02011FBC: mov r0, #0x0 str r0, [r4, #0xc] str r0, [r4, #0x10] add r0, r4, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02011FC8 FUN_02011FC8: ; 0x02011FC8 push {r4, lr} add r4, r0, #0x0 bne _02011FD2 bl ErrorHandling _02011FD2: add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} .balign 4 thumb_func_start FUN_02011FDC FUN_02011FDC: ; 0x02011FDC push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] cmp r0, r5 beq _02011FF2 _02011FE6: ldr r4, [r0, #0xc] bl FUN_02011FC8 add r0, r4, #0x0 cmp r4, r5 bne _02011FE6 _02011FF2: pop {r3-r5, pc} thumb_func_start FUN_02011FF4 FUN_02011FF4: ; 0x02011FF4 ldr r2, [r1, #0xc] str r2, [r0, #0xc] str r1, [r0, #0x10] ldr r2, [r1, #0xc] str r0, [r2, #0x10] str r0, [r1, #0xc] bx lr .balign 4 thumb_func_start FUN_02012004 FUN_02012004: ; 0x02012004 push {r3-r7, lr} sub sp, #0x8 str r0, [sp, #0x0] ldr r0, [sp, #0x24] ldr r6, [sp, #0x20] str r1, [sp, #0x4] add r5, r2, #0x0 add r4, r3, #0x0 str r0, [sp, #0x24] mov r7, #0x0 _02012018: ldr r1, [r4, #0x0] ldr r0, [sp, #0x4] ldr r2, [r5, #0x0] add r0, r0, r1 ldr r1, [sp, #0x0] add r1, r1, r2 add r2, r6, #0x0 blx FUN_020DF438 ldr r1, [r5, #0x0] ldr r0, [sp, #0x24] add r7, r7, #0x1 add r0, r1, r0 str r0, [r5, #0x0] ldr r0, [r4, #0x0] add r0, r0, r6 str r0, [r4, #0x0] cmp r7, #0x8 blt _02012018 add sp, #0x8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02012044 FUN_02012044: ; 0x02012044 push {r4-r6, lr} add r5, r3, #0x0 bl FUN_0200650C add r4, r0, #0x0 bne _02012054 bl ErrorHandling _02012054: add r0, r4, #0x0 add r1, r5, #0x0 blx FUN_020B0088 add r6, r0, #0x0 cmp r5, #0x0 bne _02012066 bl ErrorHandling _02012066: cmp r6, #0x0 bne _0201206E bl ErrorHandling _0201206E: add r0, r4, #0x0 bl FUN_02016A18 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02012078 FUN_02012078: ; 0x02012078 push {r4-r7, lr} sub sp, #0x2c ldr r4, [sp, #0x40] str r0, [sp, #0x8] add r6, r0, r2 ldrh r0, [r4, #0x2] str r1, [sp, #0xc] add r5, r3, #0x0 cmp r0, r6 bge _02012090 bl ErrorHandling _02012090: ldr r0, [sp, #0xc] ldrh r1, [r4, #0x0] add r0, r0, r5 str r0, [sp, #0x14] cmp r1, r0 bge _020120A0 bl ErrorHandling _020120A0: ldr r0, [r4, #0x14] str r0, [sp, #0x20] ldr r0, [sp, #0x44] str r0, [sp, #0x1c] ldrh r0, [r4, #0x2] lsl r7, r0, #0x2 ldr r0, [sp, #0xc] add r1, r0, #0x0 mul r1, r7 ldr r0, [sp, #0x8] str r1, [sp, #0x18] lsl r1, r0, #0x2 ldr r0, [sp, #0x18] str r1, [sp, #0x10] add r0, r1, r0 str r0, [sp, #0x28] mov r0, #0x0 str r0, [sp, #0x24] ldr r1, [sp, #0xc] ldr r0, [sp, #0x14] cmp r1, r0 bge _0201210A _020120CC: ldr r4, [sp, #0x8] add r0, r4, #0x0 cmp r0, r6 bge _020120F8 ldr r0, [sp, #0x18] lsl r1, r0, #0x3 ldr r0, [sp, #0x10] add r5, r0, r1 _020120DC: str r5, [sp, #0x28] mov r0, #0x4 str r0, [sp, #0x0] ldr r0, [sp, #0x20] ldr r1, [sp, #0x1c] add r2, sp, #0x28 add r3, sp, #0x24 str r7, [sp, #0x4] bl FUN_02012004 add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, r6 blt _020120DC _020120F8: ldr r0, [sp, #0x18] add r0, r0, r7 str r0, [sp, #0x18] ldr r0, [sp, #0xc] add r1, r0, #0x1 ldr r0, [sp, #0x14] str r1, [sp, #0xc] cmp r1, r0 blt _020120CC _0201210A: add sp, #0x2c pop {r4-r7, pc} .balign 4 thumb_func_start FUN_02012110 FUN_02012110: ; 0x02012110 push {r4-r5} sub sp, #0x8 ldr r2, _02012148 ; =0x020ED3B0 add r1, sp, #0x0 ldr r3, [r2, #0x0] ldr r2, [r2, #0x4] str r3, [sp, #0x0] str r2, [sp, #0x4] ldr r2, _0201214C ; =0x000001EF mov r5, #0x0 add r3, r2, #0x0 _02012126: ldr r4, [r1, #0x0] cmp r4, r3 beq _02012140 cmp r4, r0 bne _02012138 add sp, #0x8 mov r0, #0x1 pop {r4-r5} bx lr _02012138: add r5, r5, #0x1 add r1, r1, #0x4 cmp r5, r2 blt _02012126 _02012140: mov r0, #0x0 add sp, #0x8 pop {r4-r5} bx lr .balign 4 _02012148: .word 0x020ED3B0 _0201214C: .word 0x000001EF thumb_func_start FUN_02012150 FUN_02012150: ; 0x02012150 push {r3-r4, lr} sub sp, #0xc add r4, r3, #0x0 mov r3, #0x0 str r3, [sp, #0x8] add r3, sp, #0x8 bl FUN_02012044 ldr r0, [sp, #0x8] ldr r0, [r0, #0x14] bl FUN_02008A74 ldr r0, [sp, #0x34] bl FUN_02012110 ldr r1, [sp, #0x30] cmp r1, #0x2 bne _02012184 cmp r0, #0x1 bne _02012184 ldr r0, [sp, #0x8] ldr r1, [sp, #0x28] ldr r0, [r0, #0x14] ldr r2, [sp, #0x2c] bl FUN_02008904 _02012184: ldr r0, [sp, #0x8] ldr r1, [sp, #0x18] str r0, [sp, #0x0] ldr r0, [sp, #0x24] ldr r2, [sp, #0x1c] str r0, [sp, #0x4] ldr r3, [sp, #0x20] add r0, r4, #0x0 bl FUN_02012078 add sp, #0xc pop {r3-r4, pc} thumb_func_start FUN_0201219C FUN_0201219C: ; 0x0201219C push {r4-r7, lr} sub sp, #0x24 add r7, r1, #0x0 add r5, r2, #0x0 ldr r2, [sp, #0x3c] ldr r1, [sp, #0x40] add r6, r0, #0x0 mul r1, r2 add r0, r5, #0x0 lsl r1, r1, #0x5 str r3, [sp, #0x20] bl FUN_02016998 add r4, r0, #0x0 ldr r0, [sp, #0x38] ldr r3, [sp, #0x20] str r0, [sp, #0x0] ldr r0, [sp, #0x3c] add r1, r7, #0x0 str r0, [sp, #0x4] ldr r0, [sp, #0x40] add r2, r5, #0x0 str r0, [sp, #0x8] ldr r0, [sp, #0x44] str r4, [sp, #0xc] str r0, [sp, #0x10] ldr r0, [sp, #0x48] str r0, [sp, #0x14] ldr r0, [sp, #0x4c] str r0, [sp, #0x18] ldr r0, [sp, #0x50] str r0, [sp, #0x1c] add r0, r6, #0x0 bl FUN_02012150 add r0, r4, #0x0 add sp, #0x24 pop {r4-r7, pc} thumb_func_start FUN_020121E8 FUN_020121E8: ; 0x020121E8 push {r3-r7, lr} sub sp, #0x30 str r3, [sp, #0x8] ldr r3, [sp, #0x48] str r3, [sp, #0x48] mov r3, #0x0 str r3, [sp, #0x2c] bl FUN_0200650C str r0, [sp, #0x20] cmp r0, #0x0 bne _02012204 bl ErrorHandling _02012204: ldr r0, [sp, #0x20] add r1, sp, #0x2c blx FUN_020B0088 cmp r0, #0x0 bne _02012214 bl ErrorHandling _02012214: ldr r1, [sp, #0x4c] ldr r0, [sp, #0x8] add r6, r0, r1 ldr r0, [sp, #0x2c] ldrh r0, [r0, #0x2] cmp r0, r6 bge _02012226 bl ErrorHandling _02012226: ldr r1, [sp, #0x50] ldr r0, [sp, #0x48] add r0, r0, r1 str r0, [sp, #0x10] ldr r0, [sp, #0x2c] ldrh r1, [r0, #0x0] ldr r0, [sp, #0x10] cmp r1, r0 bge _0201223C bl ErrorHandling _0201223C: ldr r0, [sp, #0x2c] ldr r0, [r0, #0x14] str r0, [sp, #0x1c] bl FUN_02008A74 ldr r0, [sp, #0x54] str r0, [sp, #0x18] ldr r0, [sp, #0x2c] ldrh r0, [r0, #0x2] lsl r7, r0, #0x2 ldr r0, [sp, #0x48] add r1, r0, #0x0 mul r1, r7 ldr r0, [sp, #0x8] str r1, [sp, #0x14] lsl r1, r0, #0x2 ldr r0, [sp, #0x14] str r1, [sp, #0xc] add r0, r1, r0 str r0, [sp, #0x28] mov r0, #0x0 str r0, [sp, #0x24] ldr r1, [sp, #0x48] ldr r0, [sp, #0x10] cmp r1, r0 bge _020122AE _02012270: ldr r4, [sp, #0x8] add r0, r4, #0x0 cmp r0, r6 bge _0201229C ldr r0, [sp, #0x14] lsl r1, r0, #0x3 ldr r0, [sp, #0xc] add r5, r0, r1 _02012280: str r5, [sp, #0x28] mov r0, #0x4 str r0, [sp, #0x0] ldr r0, [sp, #0x1c] ldr r1, [sp, #0x18] add r2, sp, #0x28 add r3, sp, #0x24 str r7, [sp, #0x4] bl FUN_02012004 add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, r6 blt _02012280 _0201229C: ldr r0, [sp, #0x14] add r0, r0, r7 str r0, [sp, #0x14] ldr r0, [sp, #0x48] add r1, r0, #0x1 ldr r0, [sp, #0x10] str r1, [sp, #0x48] cmp r1, r0 blt _02012270 _020122AE: ldr r0, [sp, #0x20] bl FUN_02016A18 add sp, #0x30 pop {r3-r7, pc} thumb_func_start FUN_020122B8 FUN_020122B8: ; 0x020122B8 push {r4-r7, lr} sub sp, #0x14 add r7, r1, #0x0 add r5, r2, #0x0 ldr r2, [sp, #0x2c] ldr r1, [sp, #0x30] add r6, r0, #0x0 mul r1, r2 add r0, r5, #0x0 lsl r1, r1, #0x5 str r3, [sp, #0x10] bl FUN_02016998 add r4, r0, #0x0 ldr r0, [sp, #0x28] ldr r3, [sp, #0x10] str r0, [sp, #0x0] ldr r0, [sp, #0x2c] add r1, r7, #0x0 str r0, [sp, #0x4] ldr r0, [sp, #0x30] add r2, r5, #0x0 str r0, [sp, #0x8] add r0, r6, #0x0 str r4, [sp, #0xc] bl FUN_020121E8 add r0, r4, #0x0 add sp, #0x14 pop {r4-r7, pc} thumb_func_start FUN_020122F4 FUN_020122F4: ; 0x020122F4 push {r3-r7, lr} sub sp, #0x20 str r0, [sp, #0x0] ldr r0, [sp, #0x44] ldr r1, [sp, #0x38] str r0, [sp, #0x18] ldr r0, [sp, #0x48] str r2, [sp, #0x4] str r0, [sp, #0x14] add r0, r2, #0x0 add r7, r0, r1 ldr r1, [sp, #0x3c] add r0, r3, #0x0 add r0, r0, r1 add r1, r3, #0x0 str r3, [sp, #0x8] ldr r5, [sp, #0x40] str r0, [sp, #0x10] cmp r1, r0 bge _0201236C add r0, r3, #0x0 lsl r0, r0, #0x5 str r0, [sp, #0xc] add r0, r2, #0x0 lsl r0, r0, #0x5 str r0, [sp, #0x1c] _02012328: ldr r6, [sp, #0x4] add r0, r6, #0x0 cmp r0, r7 bge _0201235A ldr r1, [sp, #0x0] ldr r0, [sp, #0xc] add r2, r1, #0x0 mul r2, r0 ldr r0, [sp, #0x1c] add r4, r0, r2 _0201233C: ldr r1, [r5, #0x0] ldr r0, [sp, #0x14] mov r2, #0x20 add r0, r0, r1 ldr r1, [sp, #0x18] add r1, r1, r4 blx FUN_020DF438 ldr r0, [r5, #0x0] add r6, r6, #0x1 add r0, #0x20 str r0, [r5, #0x0] add r4, #0x20 cmp r6, r7 blt _0201233C _0201235A: ldr r0, [sp, #0xc] add r0, #0x20 str r0, [sp, #0xc] ldr r0, [sp, #0x8] add r1, r0, #0x1 ldr r0, [sp, #0x10] str r1, [sp, #0x8] cmp r1, r0 blt _02012328 _0201236C: add sp, #0x20 pop {r3-r7, pc} thumb_func_start FUN_02012370 FUN_02012370: ; 0x02012370 push {r3-r4, lr} sub sp, #0x14 add r4, r2, #0x0 ldr r2, [r4, #0x8] str r2, [sp, #0x0] ldr r2, [r4, #0xc] str r2, [sp, #0x4] ldr r2, [sp, #0x20] str r3, [sp, #0x8] str r2, [sp, #0xc] ldr r2, [sp, #0x24] str r2, [sp, #0x10] ldr r2, [r4, #0x0] ldr r3, [r4, #0x4] bl FUN_020122F4 add sp, #0x14 pop {r3-r4, pc} thumb_func_start FUN_02012394 FUN_02012394: ; 0x02012394 push {r4-r7, lr} sub sp, #0x7c str r0, [sp, #0xc] ldr r0, [sp, #0x9c] mov r12, r3 add r5, r2, #0x0 ldr r6, [sp, #0x94] ldr r7, [sp, #0x98] ldr r3, _020123FC ; =0x020ED3D8 str r1, [sp, #0x10] str r0, [sp, #0x9c] add r2, sp, #0x1c mov r4, #0xc _020123AE: ldmia r3!, {r0-r1} stmia r2!, {r0-r1} sub r4, r4, #0x1 bne _020123AE mov r0, #0x0 str r0, [sp, #0x18] ldr r0, [sp, #0x90] ldr r1, [sp, #0x10] str r0, [sp, #0x0] str r6, [sp, #0x4] ldr r0, [sp, #0xc] add r2, r5, #0x0 mov r3, r12 str r7, [sp, #0x8] bl FUN_020122B8 str r0, [sp, #0x14] mov r4, #0x0 add r5, sp, #0x1c _020123D4: ldr r0, [sp, #0x14] add r1, r7, #0x0 str r0, [sp, #0x0] ldr r0, [sp, #0x9c] add r2, r5, #0x0 str r0, [sp, #0x4] add r0, r6, #0x0 add r3, sp, #0x18 bl FUN_02012370 add r4, r4, #0x1 add r5, #0x10 cmp r4, #0x6 blt _020123D4 ldr r0, [sp, #0x14] bl FUN_02016A18 add sp, #0x7c pop {r4-r7, pc} nop _020123FC: .word 0x020ED3D8 thumb_func_start FUN_02012400 FUN_02012400: ; 0x02012400 push {r4, lr} sub sp, #0x10 ldr r4, [r3, #0x4] str r4, [sp, #0x0] ldr r4, [r3, #0x8] str r4, [sp, #0x4] ldr r4, [r3, #0xc] str r4, [sp, #0x8] ldr r4, [sp, #0x18] str r4, [sp, #0xc] ldr r3, [r3, #0x0] bl FUN_02012394 add sp, #0x10 pop {r4, pc} .balign 4 thumb_func_start FUN_02012420 FUN_02012420: ; 0x02012420 push {r4-r7, lr} sub sp, #0x14 ldr r4, _02012448 ; =0x020ED3B8 add r5, r3, #0x0 add r3, sp, #0x4 add r7, r0, #0x0 mov r12, r1 add r6, r3, #0x0 ldmia r4!, {r0-r1} stmia r3!, {r0-r1} ldmia r4!, {r0-r1} stmia r3!, {r0-r1} add r0, r7, #0x0 mov r1, r12 add r3, r6, #0x0 str r5, [sp, #0x0] bl FUN_02012400 add sp, #0x14 pop {r4-r7, pc} .balign 4 _02012448: .word 0x020ED3B8 thumb_func_start FUN_0201244C FUN_0201244C: ; 0x0201244C push {r3-r7, lr} add r6, r1, #0x0 mov r1, #0x32 add r7, r2, #0x0 add r5, r0, #0x0 add r0, r7, #0x0 lsl r1, r1, #0x6 bl FUN_02016998 add r4, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 add r3, r4, #0x0 bl FUN_02012420 add r0, r4, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02012470 FUN_02012470: ; 0x02012470 push {r3-r7, lr} add r7, r2, #0x0 add r5, r0, #0x0 add r6, r1, #0x0 add r0, r7, #0x0 mov r1, #0x20 bl FUN_02016998 add r4, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 bl FUN_0200650C add r1, sp, #0x0 add r5, r0, #0x0 blx FUN_020B0138 cmp r0, #0x1 beq _0201249C bl ErrorHandling _0201249C: ldr r0, [sp, #0x0] add r1, r4, #0x0 ldr r0, [r0, #0xc] mov r2, #0x20 blx MIi_CpuCopy16 add r0, r5, #0x0 bl FUN_02016A18 add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020124B4 FUN_020124B4: ; 0x020124B4 push {r4-r7, lr} sub sp, #0x8c str r0, [sp, #0x1c] ldr r0, [sp, #0xac] mov r12, r3 add r5, r2, #0x0 ldr r6, [sp, #0xa4] ldr r7, [sp, #0xa8] ldr r3, _0201252C ; =0x020ED438 str r1, [sp, #0x20] str r0, [sp, #0xac] add r2, sp, #0x2c mov r4, #0xc _020124CE: ldmia r3!, {r0-r1} stmia r2!, {r0-r1} sub r4, r4, #0x1 bne _020124CE mov r0, #0x0 str r0, [sp, #0x28] ldr r0, [sp, #0xa0] ldr r1, [sp, #0x20] str r0, [sp, #0x0] str r6, [sp, #0x4] ldr r0, [sp, #0xb0] str r7, [sp, #0x8] str r0, [sp, #0xc] ldr r0, [sp, #0xb4] add r2, r5, #0x0 str r0, [sp, #0x10] ldr r0, [sp, #0xb8] mov r3, r12 str r0, [sp, #0x14] ldr r0, [sp, #0xbc] str r0, [sp, #0x18] ldr r0, [sp, #0x1c] bl FUN_0201219C str r0, [sp, #0x24] mov r4, #0x0 add r5, sp, #0x2c _02012504: ldr r0, [sp, #0x24] add r1, r7, #0x0 str r0, [sp, #0x0] ldr r0, [sp, #0xac] add r2, r5, #0x0 str r0, [sp, #0x4] add r0, r6, #0x0 add r3, sp, #0x28 bl FUN_02012370 add r4, r4, #0x1 add r5, #0x10 cmp r4, #0x6 blt _02012504 ldr r0, [sp, #0x24] bl FUN_02016A18 add sp, #0x8c pop {r4-r7, pc} nop _0201252C: .word 0x020ED438 thumb_func_start FUN_02012530 FUN_02012530: ; 0x02012530 push {r4, lr} sub sp, #0x20 ldr r4, [r3, #0x4] str r4, [sp, #0x0] ldr r4, [r3, #0x8] str r4, [sp, #0x4] ldr r4, [r3, #0xc] str r4, [sp, #0x8] ldr r4, [sp, #0x28] str r4, [sp, #0xc] ldr r4, [sp, #0x2c] str r4, [sp, #0x10] ldr r4, [sp, #0x30] str r4, [sp, #0x14] ldr r4, [sp, #0x34] str r4, [sp, #0x18] ldr r4, [sp, #0x38] str r4, [sp, #0x1c] ldr r3, [r3, #0x0] bl FUN_020124B4 add sp, #0x20 pop {r4, pc} .balign 4 thumb_func_start FUN_02012560 FUN_02012560: ; 0x02012560 push {r4-r7, lr} sub sp, #0x24 ldr r4, _02012598 ; =0x020ED3C8 add r5, r3, #0x0 add r3, sp, #0x14 add r7, r0, #0x0 mov r12, r1 add r6, r3, #0x0 ldmia r4!, {r0-r1} stmia r3!, {r0-r1} ldmia r4!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [sp, #0x38] str r5, [sp, #0x0] str r0, [sp, #0x4] ldr r0, [sp, #0x3c] mov r1, r12 str r0, [sp, #0x8] ldr r0, [sp, #0x40] add r3, r6, #0x0 str r0, [sp, #0xc] ldr r0, [sp, #0x44] str r0, [sp, #0x10] add r0, r7, #0x0 bl FUN_02012530 add sp, #0x24 pop {r4-r7, pc} .balign 4 _02012598: .word 0x020ED3C8 thumb_func_start FUN_0201259C FUN_0201259C: ; 0x0201259C push {r3, lr} blx FUN_020D614C ldr r3, _020125CC ; =0x021C4808 mov r0, #0x0 add r2, r3, #0x0 add r1, r0, #0x0 stmia r2!, {r0-r1} stmia r2!, {r0-r1} stmia r2!, {r0-r1} stmia r2!, {r0-r1} stmia r2!, {r0-r1} stmia r2!, {r0-r1} stmia r2!, {r0-r1} stmia r2!, {r0-r1} stmia r2!, {r0-r1} ldr r1, _020125D0 ; =0x021C4808 str r0, [r1, #0x0] str r0, [r1, #0x4] str r0, [r1, #0x8] add r0, r3, #0x0 bl FUN_02012634 pop {r3, pc} .balign 4 _020125CC: .word 0x021C4808 _020125D0: .word 0x021C4808 thumb_func_start FUN_020125D4 FUN_020125D4: ; 0x020125D4 push {r3, lr} ldr r0, _020125F4 ; =0x021C4808 ldr r1, [r0, #0x4] cmp r1, #0x0 bne _020125F2 ldr r1, [r0, #0x8] add r1, r1, #0x1 str r1, [r0, #0x8] cmp r1, #0xa ble _020125F2 mov r1, #0x0 str r1, [r0, #0x8] ldr r0, _020125F8 ; =0x021C4808 bl FUN_02012634 _020125F2: pop {r3, pc} .balign 4 _020125F4: .word 0x021C4808 _020125F8: .word 0x021C4808 thumb_func_start FUN_020125FC FUN_020125FC: ; 0x020125FC push {r4, lr} add r4, r1, #0x0 str r0, [r4, #0xc] cmp r0, #0x0 beq _0201260A bl ErrorHandling _0201260A: add r3, r4, #0x0 mov r0, #0x1 add r2, r4, #0x0 add r3, #0x2c str r0, [r4, #0x0] ldmia r3!, {r0-r1} add r2, #0x10 stmia r2!, {r0-r1} ldmia r3!, {r0-r1} stmia r2!, {r0-r1} add r3, r4, #0x0 add r3, #0x3c add r2, r4, #0x0 ldmia r3!, {r0-r1} add r2, #0x20 stmia r2!, {r0-r1} ldr r0, [r3, #0x0] str r0, [r2, #0x0] mov r0, #0x0 str r0, [r4, #0x4] pop {r4, pc} thumb_func_start FUN_02012634 FUN_02012634: ; 0x02012634 push {r4, lr} add r4, r0, #0x0 mov r0, #0x1 str r0, [r4, #0x4] add r0, r4, #0x0 add r1, r4, #0x0 ldr r2, _02012658 ; =FUN_020125FC add r0, #0x2c add r1, #0x3c add r3, r4, #0x0 blx FUN_020D5F40 str r0, [r4, #0xc] cmp r0, #0x0 beq _02012656 bl ErrorHandling _02012656: pop {r4, pc} .balign 4 _02012658: .word FUN_020125FC thumb_func_start FUN_0201265C FUN_0201265C: ; 0x0201265C push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _02012684 ; =0x021C4808 add r4, r1, #0x0 ldr r0, [r0, #0x0] cmp r0, #0x1 beq _0201266E bl ErrorHandling _0201266E: ldr r2, _02012688 ; =0x021C4818 ldmia r2!, {r0-r1} stmia r5!, {r0-r1} ldmia r2!, {r0-r1} ldr r2, _0201268C ; =0x021C4828 stmia r5!, {r0-r1} ldmia r2!, {r0-r1} stmia r4!, {r0-r1} ldr r0, [r2, #0x0] str r0, [r4, #0x0] pop {r3-r5, pc} .balign 4 _02012684: .word 0x021C4808 _02012688: .word 0x021C4818 _0201268C: .word 0x021C4828 thumb_func_start FUN_02012690 FUN_02012690: ; 0x02012690 push {r4, lr} add r4, r0, #0x0 ldr r0, _020126AC ; =0x021C4808 ldr r0, [r0, #0x0] cmp r0, #0x1 beq _020126A0 bl ErrorHandling _020126A0: ldr r2, _020126B0 ; =0x021C4828 ldmia r2!, {r0-r1} stmia r4!, {r0-r1} ldr r0, [r2, #0x0] str r0, [r4, #0x0] pop {r4, pc} .balign 4 _020126AC: .word 0x021C4808 _020126B0: .word 0x021C4828 thumb_func_start FUN_020126B4 FUN_020126B4: ; 0x020126B4 push {r4, lr} add r4, r0, #0x0 ldr r0, _020126D0 ; =0x021C4808 ldr r0, [r0, #0x0] cmp r0, #0x1 beq _020126C4 bl ErrorHandling _020126C4: ldr r2, _020126D4 ; =0x021C4818 ldmia r2!, {r0-r1} stmia r4!, {r0-r1} ldmia r2!, {r0-r1} stmia r4!, {r0-r1} pop {r4, pc} .balign 4 _020126D0: .word 0x021C4808 _020126D4: .word 0x021C4818 thumb_func_start FUN_020126D8 FUN_020126D8: ; 0x020126D8 push {r3-r4} ldr r4, _020126F8 ; =0x021C4828 mov r0, #0x3c ldr r1, [r4, #0x4] ldr r3, [r4, #0x8] add r2, r1, #0x0 mul r2, r0 mov r0, #0xe1 ldr r1, [r4, #0x0] lsl r0, r0, #0x4 mul r0, r1 add r0, r2, r0 add r0, r3, r0 pop {r3-r4} bx lr nop _020126F8: .word 0x021C4828 thumb_func_start FUN_020126FC FUN_020126FC: ; 0x020126FC ldr r3, _02012704 ; =FUN_020D6578 ldr r0, _02012708 ; =0x021C4818 ldr r1, _0201270C ; =0x021C4828 bx r3 .balign 4 _02012704: .word FUN_020D6578 _02012708: .word 0x021C4818 _0201270C: .word 0x021C4828 thumb_func_start FUN_02012710 FUN_02012710: ; 0x02012710 push {r4-r6, lr} sub sp, #0x10 add r5, r0, #0x0 ldr r2, [r5, #0x4] ldr r0, _02012778 ; =0x020ED4B2 lsl r1, r2, #0x1 ldrh r0, [r0, r1] ldr r3, [r5, #0x8] add r4, r3, r0 cmp r2, #0x3 blo _02012752 ldr r6, [r5, #0x0] mov r0, #0x1e lsr r2, r6, #0x1f lsl r1, r6, #0x1e sub r1, r1, r2 ror r1, r0 add r0, r2, r1 bne _02012742 add r0, r6, #0x0 mov r1, #0x64 blx _s32_div_f cmp r1, #0x0 bne _02012750 _02012742: mov r1, #0x19 add r0, r6, #0x0 lsl r1, r1, #0x4 blx _s32_div_f cmp r1, #0x0 bne _02012752 _02012750: add r4, r4, #0x1 _02012752: add r6, r5, #0x0 add r3, sp, #0x0 add r2, r3, #0x0 ldmia r6!, {r0-r1} stmia r3!, {r0-r1} ldmia r6!, {r0-r1} stmia r3!, {r0-r1} mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] add r0, r2, #0x0 blx FUN_020D660C add r0, r5, #0x0 blx FUN_020D660C add r0, r4, #0x0 add sp, #0x10 pop {r4-r6, pc} .balign 4 _02012778: .word 0x020ED4B2 thumb_func_start FUN_0201277C FUN_0201277C: ; 0x0201277C push {r3, lr} bl FUN_02012794 cmp r0, #0x3 beq _0201278A cmp r0, #0x4 bne _0201278E _0201278A: mov r0, #0x1 pop {r3, pc} _0201278E: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_02012794 FUN_02012794: ; 0x02012794 push {lr} sub sp, #0xc add r0, sp, #0x0 bl FUN_02012690 ldr r0, [sp, #0x0] bl FUN_020127A8 add sp, #0xc pop {pc} thumb_func_start FUN_020127A8 FUN_020127A8: ; 0x020127A8 push {r4, lr} add r4, r0, #0x0 bmi _020127B2 cmp r4, #0x18 blt _020127B6 _020127B2: bl ErrorHandling _020127B6: ldr r0, _020127BC ; =0x020ED4CC ldrb r0, [r0, r4] pop {r4, pc} .balign 4 _020127BC: .word 0x020ED4CC thumb_func_start FUN_020127C0 FUN_020127C0: ; 0x020127C0 push {r4-r7, lr} sub sp, #0x24 add r6, r3, #0x0 ldr r3, _0201282C ; =0x020ED4A4 add r4, r0, #0x0 add r7, r1, #0x0 add r5, r2, #0x0 add r2, sp, #0x14 ldmia r3!, {r0-r1} str r2, [sp, #0x0] stmia r2!, {r0-r1} ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldr r3, _02012830 ; =0x020ED498 add r2, sp, #0x8 ldmia r3!, {r0-r1} str r2, [sp, #0x4] stmia r2!, {r0-r1} ldr r0, [r3, #0x0] ldr r1, [sp, #0x4] str r0, [r2, #0x0] ldr r0, [sp, #0x0] blx FUN_020D6578 add r2, r1, #0x0 add r3, r0, #0x0 mov r1, #0x0 ldr r0, _02012834 ; =0xBC19137F eor r1, r2 eor r0, r3 orr r0, r1 beq _02012804 bl ErrorHandling _02012804: sub r0, r4, r5 mov r12, r7 mov r0, r12 sbc r0, r6 bge _02012818 sub r0, r5, r4 sbc r6, r7 add sp, #0x24 add r1, r6, #0x0 pop {r4-r7, pc} _02012818: ldr r0, _02012834 ; =0xBC19137F mov r1, #0x0 sub r0, r0, r4 sbc r1, r7 add r0, r5, r0 adc r6, r1 add r1, r6, #0x0 add sp, #0x24 pop {r4-r7, pc} nop _0201282C: .word 0x020ED4A4 _02012830: .word 0x020ED498 _02012834: .word 0xBC19137F thumb_func_start FUN_02012838 FUN_02012838: ; 0x02012838 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r1, r5, #0x1 add r0, r4, #0x0 lsl r1, r1, #0x3 bl FUN_02016998 cmp r0, #0x0 beq _0201286E mov r2, #0x0 cmp r5, #0x0 bls _02012862 add r3, r0, #0x0 add r1, r2, #0x0 _02012856: str r1, [r3, #0x0] str r1, [r3, #0x4] add r2, r2, #0x1 add r3, #0x8 cmp r2, r5 blo _02012856 _02012862: mov r1, #0x0 lsl r2, r2, #0x3 mvn r1, r1 str r1, [r0, r2] add r1, r0, r2 str r4, [r1, #0x4] _0201286E: pop {r3-r5, pc} thumb_func_start FUN_02012870 FUN_02012870: ; 0x02012870 push {r4, lr} add r4, r0, #0x0 bl FUN_0201291C add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} thumb_func_start FUN_02012880 FUN_02012880: ; 0x02012880 push {r3-r7, lr} add r6, r1, #0x0 add r1, sp, #0x0 add r7, r2, #0x0 add r5, r3, #0x0 bl FUN_020128E0 add r4, r0, #0x0 beq _0201289E add r0, r6, #0x0 add r1, r7, #0x0 bl FUN_0200A914 str r0, [r4, #0x0] str r5, [r4, #0x4] _0201289E: pop {r3-r7, pc} thumb_func_start FUN_020128A0 FUN_020128A0: ; 0x020128A0 push {r3-r6, lr} sub sp, #0x4 add r6, r1, #0x0 add r1, sp, #0x0 add r5, r2, #0x0 bl FUN_020128E0 add r4, r0, #0x0 beq _020128BE ldr r1, [sp, #0x0] add r0, r6, #0x0 bl FUN_02021ACC str r0, [r4, #0x0] str r5, [r4, #0x4] _020128BE: add sp, #0x4 pop {r3-r6, pc} .balign 4 thumb_func_start FUN_020128C4 FUN_020128C4: ; 0x020128C4 push {r3-r4, lr} sub sp, #0x4 add r4, r1, #0x0 add r1, sp, #0x0 bl FUN_020128E0 cmp r0, #0x0 beq _020128DC ldr r1, [r4, #0x0] str r1, [r0, #0x0] ldr r1, [r4, #0x4] str r1, [r0, #0x4] _020128DC: add sp, #0x4 pop {r3-r4, pc} thumb_func_start FUN_020128E0 FUN_020128E0: ; 0x020128E0 push {r4, lr} ldr r3, [r0, #0x0] cmp r3, #0x0 beq _02012900 mov r2, #0x0 mvn r2, r2 _020128EC: cmp r3, r2 bne _020128F8 bl ErrorHandling mov r0, #0x0 pop {r4, pc} _020128F8: add r0, #0x8 ldr r3, [r0, #0x0] cmp r3, #0x0 bne _020128EC _02012900: mov r2, #0x0 mvn r2, r2 add r4, r0, #0x0 cmp r3, r2 beq _02012912 _0201290A: add r0, #0x8 ldr r3, [r0, #0x0] cmp r3, r2 bne _0201290A _02012912: ldr r0, [r0, #0x4] str r0, [r1, #0x0] add r0, r4, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_0201291C FUN_0201291C: ; 0x0201291C push {r4-r6, lr} add r5, r0, #0x0 mov r0, #0x0 ldr r1, [r5, #0x0] mvn r0, r0 cmp r1, r0 beq _02012942 mov r4, #0x0 add r6, r0, #0x0 _0201292E: ldr r0, [r5, #0x0] cmp r0, #0x0 beq _02012942 bl FUN_02021A20 str r4, [r5, #0x0] add r5, #0x8 ldr r0, [r5, #0x0] cmp r0, r6 bne _0201292E _02012942: pop {r4-r6, pc} thumb_func_start FUN_02012944 FUN_02012944: ; 0x02012944 push {r3-r5, lr} add r5, r1, #0x0 mov r1, #0xc add r4, r2, #0x0 bl FUN_02016998 mov r1, #0x0 strb r1, [r0, #0x0] strb r1, [r0, #0x1] strb r1, [r0, #0x2] strb r1, [r0, #0x3] strb r1, [r0, #0x4] strb r1, [r0, #0x5] strb r1, [r0, #0x6] strb r1, [r0, #0x7] strb r1, [r0, #0x8] strb r1, [r0, #0x9] strb r1, [r0, #0xa] strb r1, [r0, #0xb] mov r1, #0x1 strb r1, [r0, #0x9] str r5, [r0, #0x0] str r4, [r0, #0x4] pop {r3-r5, pc} thumb_func_start FUN_02012974 FUN_02012974: ; 0x02012974 push {r4, lr} add r4, r0, #0x0 bne _0201297E bl ErrorHandling _0201297E: add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} .balign 4 thumb_func_start FUN_02012988 FUN_02012988: ; 0x02012988 push {r4, lr} add r4, r0, #0x0 bne _02012992 bl ErrorHandling _02012992: ldrb r0, [r4, #0x8] lsl r0, r0, #0x2 ldr r0, [r4, r0] pop {r4, pc} .balign 4 thumb_func_start FUN_0201299C FUN_0201299C: ; 0x0201299C push {r4, lr} add r4, r0, #0x0 bne _020129A6 bl ErrorHandling _020129A6: ldrb r1, [r4, #0x8] mov r0, #0x1 eor r0, r1 lsl r0, r0, #0x2 ldr r0, [r4, r0] pop {r4, pc} .balign 4 thumb_func_start FUN_020129B4 FUN_020129B4: ; 0x020129B4 cmp r0, #0x0 beq _020129C6 ldrb r1, [r0, #0x9] cmp r1, #0x0 beq _020129C6 ldrb r2, [r0, #0x8] mov r1, #0x1 eor r1, r2 strb r1, [r0, #0x8] _020129C6: bx lr thumb_func_start FUN_020129C8 FUN_020129C8: ; 0x020129C8 push {r3, lr} mov r0, #0x0 blx MI_StopDma mov r0, #0x0 blx MI_WaitDma pop {r3, pc} thumb_func_start FUN_020129D8 FUN_020129D8: ; 0x020129D8 push {r4-r6, lr} add r6, r0, #0x0 add r5, r1, #0x0 add r4, r2, #0x0 cmp r3, #0x1 bne _020129F2 mov r0, #0x0 add r1, r6, #0x0 add r2, r5, #0x0 add r3, r4, #0x0 blx MI_HBlankDmaCopy32 pop {r4-r6, pc} _020129F2: mov r0, #0x0 add r1, r6, #0x0 add r2, r5, #0x0 add r3, r4, #0x0 blx MI_HBlankDmaCopy16 pop {r4-r6, pc} thumb_func_start FUN_02012A00 FUN_02012A00: ; 0x02012A00 push {r3-r5, lr} ldr r1, _02012A2C ; =0x0000079C add r5, r0, #0x0 bl FUN_02016998 ldr r2, _02012A2C ; =0x0000079C mov r1, #0x0 add r4, r0, #0x0 blx FUN_020DF4A4 mov r2, #0x3 lsl r2, r2, #0x8 add r0, r5, #0x0 add r1, r4, #0x0 add r2, r4, r2 bl FUN_02012944 mov r1, #0x6 lsl r1, r1, #0x8 str r0, [r4, r1] add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 _02012A2C: .word 0x0000079C thumb_func_start FUN_02012A30 FUN_02012A30: ; 0x02012A30 push {r3-r7, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 add r7, r3, #0x0 cmp r5, #0x0 bne _02012A42 bl ErrorHandling _02012A42: ldr r0, _02012AB0 ; =0x00000604 ldr r0, [r5, r0] cmp r0, #0x0 beq _02012A4E bl ErrorHandling _02012A4E: ldr r0, _02012AB4 ; =0x0000078C mov r2, #0x0 strb r4, [r5, r0] add r1, r0, #0x1 strb r6, [r5, r1] add r1, r0, #0x0 add r1, #0xc strh r2, [r5, r1] add r2, sp, #0x8 mov r1, #0x14 ldrsh r2, [r2, r1] add r1, r0, #0x0 add r1, #0xe strh r2, [r5, r1] add r1, r0, #0x4 ldr r2, [sp, #0x20] add r0, #0x8 str r2, [r5, r1] ldr r1, [sp, #0x24] ldr r3, [sp, #0x18] str r1, [r5, r0] ldr r0, _02012AB8 ; =0x0000060C mov r1, #0xc0 add r0, r5, r0 add r2, r7, #0x0 bl FUN_02012B88 ldr r0, _02012ABC ; =FUN_02012BE4 ldr r2, [sp, #0x28] add r1, r5, #0x0 bl FUN_0200CA44 ldr r1, _02012AB0 ; =0x00000604 mov r2, #0x3 str r0, [r5, r1] ldr r0, _02012AC0 ; =0x00000794 add r1, r5, #0x0 ldr r0, [r5, r0] lsl r2, r2, #0x8 blx MIi_CpuClear32 ldr r0, _02012AC0 ; =0x00000794 mov r2, #0x3 lsl r2, r2, #0x8 ldr r0, [r5, r0] add r1, r5, r2 blx MIi_CpuClear32 pop {r3-r7, pc} .balign 4 _02012AB0: .word 0x00000604 _02012AB4: .word 0x0000078C _02012AB8: .word 0x0000060C _02012ABC: .word FUN_02012BE4 _02012AC0: .word 0x00000794 thumb_func_start FUN_02012AC4 FUN_02012AC4: ; 0x02012AC4 push {r4, lr} add r4, r0, #0x0 bne _02012ACE bl ErrorHandling _02012ACE: ldr r0, _02012AF8 ; =0x00000604 ldr r0, [r4, r0] cmp r0, #0x0 beq _02012AF4 bl FUN_0200CAB4 ldr r0, _02012AF8 ; =0x00000604 mov r1, #0x0 str r1, [r4, r0] sub r0, r0, #0x4 ldr r0, [r4, r0] bl FUN_02012988 ldr r1, _02012AFC ; =0x00000794 mov r2, #0x3 ldr r1, [r4, r1] lsl r2, r2, #0x8 blx FUN_020DF4A4 _02012AF4: pop {r4, pc} nop _02012AF8: .word 0x00000604 _02012AFC: .word 0x00000794 thumb_func_start FUN_02012B00 FUN_02012B00: ; 0x02012B00 push {r4, lr} add r4, r0, #0x0 bl FUN_02012AC4 bl FUN_02012C90 mov r0, #0x6 lsl r0, r0, #0x8 ldr r0, [r4, r0] bl FUN_02012974 add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} .balign 4 thumb_func_start FUN_02012B20 FUN_02012B20: ; 0x02012B20 mov r1, #0x6 lsl r1, r1, #0x8 ldr r3, _02012B2C ; =FUN_02012988 ldr r0, [r0, r1] bx r3 nop _02012B2C: .word FUN_02012988 thumb_func_start FUN_02012B30 FUN_02012B30: ; 0x02012B30 push {r4, lr} add r4, r0, #0x0 beq _02012B5E ldr r0, _02012B60 ; =0x00000604 ldr r1, [r4, r0] cmp r1, #0x0 beq _02012B5E sub r0, r0, #0x4 ldr r0, [r4, r0] bl FUN_020129B4 mov r0, #0x6 lsl r0, r0, #0x8 ldr r0, [r4, r0] bl FUN_02012988 add r1, r0, #0x0 ldr r0, _02012B64 ; =0x00000794 mov r2, #0x3 ldr r0, [r4, r0] lsl r2, r2, #0x8 blx MIi_CpuClear32 _02012B5E: pop {r4, pc} .balign 4 _02012B60: .word 0x00000604 _02012B64: .word 0x00000794 thumb_func_start FUN_02012B68 FUN_02012B68: ; 0x02012B68 push {r4, lr} add r4, r0, #0x0 beq _02012B80 ldr r0, _02012B84 ; =0x00000604 ldr r0, [r4, r0] cmp r0, #0x0 beq _02012B80 bl FUN_02012C90 add r0, r4, #0x0 bl FUN_02012C98 _02012B80: pop {r4, pc} nop _02012B84: .word 0x00000604 thumb_func_start FUN_02012B88 FUN_02012B88: ; 0x02012B88 push {r4-r7, lr} sub sp, #0xc mov r4, #0x0 add r7, r1, #0x0 add r5, r0, #0x0 add r6, r4, #0x0 str r2, [sp, #0x0] cmp r7, #0x0 bls _02012BD6 asr r0, r3, #0x1f str r3, [sp, #0x4] str r0, [sp, #0x8] _02012BA0: asr r0, r4, #0x4 lsl r1, r0, #0x2 ldr r0, _02012BDC ; =0x020FFA38 ldr r2, [sp, #0x4] ldrsh r0, [r0, r1] ldr r3, [sp, #0x8] asr r1, r0, #0x1f blx FUN_020EBC30 mov r2, #0x2 lsl r2, r2, #0xa add r0, r0, r2 ldr r2, _02012BE0 ; =0x00000000 adc r1, r2 lsl r1, r1, #0x14 lsr r0, r0, #0xc orr r0, r1 asr r0, r0, #0xc strh r0, [r5, #0x0] ldr r0, [sp, #0x0] add r6, r6, #0x1 add r0, r4, r0 lsl r0, r0, #0x10 lsr r4, r0, #0x10 add r5, r5, #0x2 cmp r6, r7 blo _02012BA0 _02012BD6: add sp, #0xc pop {r4-r7, pc} nop _02012BDC: .word 0x020FFA38 _02012BE0: .word 0x00000000 thumb_func_start FUN_02012BE4 FUN_02012BE4: ; 0x02012BE4 push {r3-r7, lr} mov r0, #0x6 add r6, r1, #0x0 lsl r0, r0, #0x8 ldr r0, [r6, r0] bl FUN_02012988 add r5, r0, #0x0 ldr r0, _02012C80 ; =0x00000798 mov r1, #0x64 ldrsh r0, [r6, r0] blx _s32_div_f lsl r0, r0, #0x18 lsr r3, r0, #0x18 ldr r0, _02012C84 ; =0x0000078C ldrb r4, [r6, r0] add r0, r0, #0x1 ldrb r0, [r6, r0] cmp r4, r0 bgt _02012C4C lsl r0, r4, #0x2 add r5, r5, r0 _02012C12: ldr r2, [r5, #0x0] lsl r0, r2, #0x10 asr r7, r0, #0x10 lsl r0, r3, #0x1 add r1, r6, r0 ldr r0, _02012C88 ; =0x0000060C ldrsh r0, [r1, r0] add r0, r7, r0 lsl r0, r0, #0x10 asr r1, r0, #0x10 lsr r0, r2, #0x10 lsl r0, r0, #0x10 lsr r0, r0, #0x10 lsl r1, r1, #0x10 lsl r0, r0, #0x10 lsr r1, r1, #0x10 orr r0, r1 stmia r5!, {r0} add r0, r3, #0x1 mov r1, #0xc0 blx _s32_div_f lsl r0, r1, #0x18 lsr r3, r0, #0x18 ldr r0, _02012C8C ; =0x0000078D add r4, r4, #0x1 ldrb r0, [r6, r0] cmp r4, r0 ble _02012C12 _02012C4C: ldr r1, _02012C80 ; =0x00000798 add r0, r1, #0x2 ldrsh r2, [r6, r1] ldrsh r0, [r6, r0] add r4, r6, r1 add r0, r2, r0 strh r0, [r4, #0x0] ldrsh r0, [r6, r1] mov r1, #0x4b lsl r1, r1, #0x8 cmp r0, r1 blt _02012C70 mov r0, #0x0 ldrsh r0, [r4, r0] blx _s32_div_f strh r1, [r4, #0x0] pop {r3-r7, pc} _02012C70: cmp r0, #0x0 bge _02012C7C mov r0, #0x0 ldrsh r0, [r4, r0] add r0, r0, r1 strh r0, [r4, #0x0] _02012C7C: pop {r3-r7, pc} nop _02012C80: .word 0x00000798 _02012C84: .word 0x0000078C _02012C88: .word 0x0000060C _02012C8C: .word 0x0000078D thumb_func_start FUN_02012C90 FUN_02012C90: ; 0x02012C90 ldr r3, _02012C94 ; =FUN_020129C8 bx r3 .balign 4 _02012C94: .word FUN_020129C8 thumb_func_start FUN_02012C98 FUN_02012C98: ; 0x02012C98 push {r3-r5, lr} add r4, r0, #0x0 bne _02012CA2 bl ErrorHandling _02012CA2: mov r0, #0x6 lsl r0, r0, #0x8 ldr r0, [r4, r0] bl FUN_0201299C mov r1, #0x3 lsl r1, r1, #0x8 add r5, r0, #0x0 blx DC_FlushRange mov r1, #0x79 lsl r1, r1, #0x4 ldr r1, [r4, r1] add r0, r5, #0x0 mov r2, #0x4 mov r3, #0x1 bl FUN_020129D8 pop {r3-r5, pc} thumb_func_start FUN_02012CC8 FUN_02012CC8: ; 0x02012CC8 mov r1, #0x0 ldr r2, _02012CD8 ; =0x021C4858 add r0, r1, #0x0 _02012CCE: add r1, r1, #0x1 stmia r2!, {r0} cmp r1, #0x10 blt _02012CCE bx lr .balign 4 _02012CD8: .word 0x021C4858 thumb_func_start FUN_02012CDC FUN_02012CDC: ; 0x02012CDC push {r3-r7, lr} sub sp, #0x10 str r1, [sp, #0x8] ldr r1, _02012DD0 ; =0x021C4858 add r7, r0, #0x0 add r6, r2, #0x0 str r3, [sp, #0xc] mov r5, #0x0 _02012CEC: ldr r0, [r1, #0x0] cmp r0, #0x0 beq _02012CFA add r5, r5, #0x1 add r1, r1, #0x4 cmp r5, #0x10 blt _02012CEC _02012CFA: cmp r5, #0x10 blt _02012D04 add sp, #0x10 mov r0, #0x0 pop {r3-r7, pc} _02012D04: ldr r0, [sp, #0x2c] mov r1, #0xdc bl FUN_02016998 add r4, r0, #0x0 bne _02012D14 bl ErrorHandling _02012D14: add r0, r4, #0x0 mov r1, #0x0 mov r2, #0xdc blx FUN_020DF4A4 add r2, r4, #0x0 ldr r0, [sp, #0x8] str r7, [r4, #0x18] ldr r3, _02012DD4 ; =0x020ED4FC str r0, [r4, #0x1c] ldmia r3!, {r0-r1} add r2, #0x34 stmia r2!, {r0-r1} ldr r0, [r3, #0x0] ldr r3, _02012DD8 ; =0x020ED4E4 str r0, [r2, #0x0] add r2, r4, #0x0 ldmia r3!, {r0-r1} add r2, #0x40 stmia r2!, {r0-r1} ldr r0, [r3, #0x0] ldr r3, _02012DDC ; =0x020ED4F0 str r0, [r2, #0x0] add r2, r4, #0x0 ldmia r3!, {r0-r1} add r2, #0x4c stmia r2!, {r0-r1} ldr r0, [r3, #0x0] mov r1, #0x0 str r0, [r2, #0x0] ldr r2, [sp, #0xc] add r0, r6, #0x0 blx FUN_020DF4A4 ldr r0, [sp, #0xc] str r6, [r4, #0xc] str r6, [r4, #0x10] add r0, r6, r0 str r0, [r4, #0x14] add r0, r4, #0x0 add r0, #0xda strb r5, [r0, #0x0] ldr r0, _02012DD0 ; =0x021C4858 lsl r5, r5, #0x2 str r4, [r0, r5] ldr r0, [sp, #0x28] cmp r0, #0x1 bne _02012DA8 ldr r0, [sp, #0x2c] bl FUN_0201EB64 str r0, [r4, #0x20] mov r3, #0x0 str r3, [r4, #0x24] str r3, [r4, #0x28] mov r0, #0x2 str r3, [r4, #0x2c] lsl r0, r0, #0xc strh r0, [r4, #0x30] str r3, [sp, #0x0] ldr r0, [r4, #0x20] ldr r1, _02012DD4 ; =0x020ED4FC str r0, [sp, #0x4] ldrh r2, [r4, #0x30] ldr r0, _02012DDC ; =0x020ED4F0 bl FUN_0201ED5C add r0, r4, #0x0 mov r1, #0x0 add r0, #0xdb strb r1, [r0, #0x0] ldr r0, [r4, #0x20] bl FUN_0201EB8C _02012DA8: mov r0, #0x6 str r0, [sp, #0x0] mov r0, #0x3f str r0, [sp, #0x4] ldr r0, _02012DE0 ; =0x020ED508 mov r1, #0x14 ldr r0, [r0, r5] mov r2, #0xc8 mov r3, #0x5 blx FUN_0208B4A0 str r0, [r4, #0x0] ldr r1, _02012DD8 ; =0x020ED4E4 add r0, r4, #0x0 bl FUN_020133FC add r0, r4, #0x0 add sp, #0x10 pop {r3-r7, pc} nop _02012DD0: .word 0x021C4858 _02012DD4: .word 0x020ED4FC _02012DD8: .word 0x020ED4E4 _02012DDC: .word 0x020ED4F0 _02012DE0: .word 0x020ED508 thumb_func_start FUN_02012DE4 FUN_02012DE4: ; 0x02012DE4 push {r3-r7, lr} add r5, r0, #0x0 bl FUN_020133D0 add r0, r5, #0x0 add r0, #0xd8 ldrb r1, [r0, #0x0] mov r0, #0x1 tst r0, r1 beq _02012E02 add r0, r5, #0x0 add r0, #0x58 blx FUN_020AE8CC b _02012E22 _02012E02: mov r0, #0x2 tst r0, r1 beq _02012E22 mov r6, #0x0 add r4, r5, #0x0 add r7, r6, #0x0 _02012E0E: ldr r0, [r4, #0x58] cmp r0, #0x0 beq _02012E1A blx FUN_020AF894 str r7, [r4, #0x58] _02012E1A: add r6, r6, #0x1 add r4, r4, #0x4 cmp r6, #0x10 blt _02012E0E _02012E22: add r0, r5, #0x0 add r0, #0xd8 ldrb r1, [r0, #0x0] mov r0, #0x4 tst r0, r1 beq _02012E38 add r0, r5, #0x0 add r0, #0x98 blx FUN_020AEC7C b _02012E60 _02012E38: mov r0, #0x8 tst r0, r1 beq _02012E60 mov r6, #0x0 add r4, r5, #0x0 add r7, r6, #0x0 _02012E44: add r0, r4, #0x0 add r0, #0x98 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _02012E58 blx FUN_020AFA80 add r0, r4, #0x0 add r0, #0x98 str r7, [r0, #0x0] _02012E58: add r6, r6, #0x1 add r4, r4, #0x4 cmp r6, #0x10 blt _02012E44 _02012E60: add r0, r5, #0x0 mov r1, #0x0 add r0, #0xd8 strb r1, [r0, #0x0] str r1, [r5, #0x8] ldr r0, [r5, #0x4] cmp r0, #0x0 beq _02012E78 bl FUN_02016A18 mov r0, #0x0 str r0, [r5, #0x4] _02012E78: ldr r2, _02012EA8 ; =0x021C4858 mov r1, #0x0 _02012E7C: ldr r0, [r2, #0x0] cmp r0, r5 bne _02012E8C ldr r0, _02012EA8 ; =0x021C4858 mov r2, #0x0 lsl r1, r1, #0x2 str r2, [r0, r1] b _02012E94 _02012E8C: add r1, r1, #0x1 add r2, r2, #0x4 cmp r1, #0x10 blt _02012E7C _02012E94: ldr r0, [r5, #0x20] cmp r0, #0x0 beq _02012E9E bl FUN_0201EB70 _02012E9E: add r0, r5, #0x0 bl FUN_02016A18 pop {r3-r7, pc} nop _02012EA8: .word 0x021C4858 thumb_func_start FUN_02012EAC FUN_02012EAC: ; 0x02012EAC push {r3-r5, lr} ldr r5, _02012EC8 ; =0x021C4858 mov r4, #0x0 _02012EB2: ldr r0, [r5, #0x0] cmp r0, #0x0 beq _02012EBC bl FUN_02012DE4 _02012EBC: add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, #0x10 blt _02012EB2 pop {r3-r5, pc} nop _02012EC8: .word 0x021C4858 thumb_func_start FUN_02012ECC FUN_02012ECC: ; 0x02012ECC push {r4, lr} ldr r1, _02012EF4 ; =0x021C4850 mov r2, #0x3 ldr r1, [r1, #0x8] ldr r4, [r1, #0x10] add r0, r4, r0 add r3, r0, #0x0 and r3, r2 beq _02012EE4 mov r2, #0x4 sub r2, r2, r3 add r0, r0, r2 _02012EE4: str r0, [r1, #0x10] ldr r1, [r1, #0x14] cmp r0, r1 blo _02012EF0 bl ErrorHandling _02012EF0: add r0, r4, #0x0 pop {r4, pc} .balign 4 _02012EF4: .word 0x021C4850 thumb_func_start FUN_02012EF8 FUN_02012EF8: ; 0x02012EF8 push {r4, lr} ldr r1, _02012F20 ; =0x021C4850 mov r2, #0x3 ldr r1, [r1, #0xc] ldr r4, [r1, #0x10] add r0, r4, r0 add r3, r0, #0x0 and r3, r2 beq _02012F10 mov r2, #0x4 sub r2, r2, r3 add r0, r0, r2 _02012F10: str r0, [r1, #0x10] ldr r1, [r1, #0x14] cmp r0, r1 blo _02012F1C bl ErrorHandling _02012F1C: add r0, r4, #0x0 pop {r4, pc} .balign 4 _02012F20: .word 0x021C4850 thumb_func_start FUN_02012F24 FUN_02012F24: ; 0x02012F24 push {r4, lr} ldr r1, _02012F4C ; =0x021C4850 mov r2, #0x3 ldr r1, [r1, #0x10] ldr r4, [r1, #0x10] add r0, r4, r0 add r3, r0, #0x0 and r3, r2 beq _02012F3C mov r2, #0x4 sub r2, r2, r3 add r0, r0, r2 _02012F3C: str r0, [r1, #0x10] ldr r1, [r1, #0x14] cmp r0, r1 blo _02012F48 bl ErrorHandling _02012F48: add r0, r4, #0x0 pop {r4, pc} .balign 4 _02012F4C: .word 0x021C4850 thumb_func_start FUN_02012F50 FUN_02012F50: ; 0x02012F50 push {r4, lr} ldr r1, _02012F78 ; =0x021C4850 mov r2, #0x3 ldr r1, [r1, #0x14] ldr r4, [r1, #0x10] add r0, r4, r0 add r3, r0, #0x0 and r3, r2 beq _02012F68 mov r2, #0x4 sub r2, r2, r3 add r0, r0, r2 _02012F68: str r0, [r1, #0x10] ldr r1, [r1, #0x14] cmp r0, r1 blo _02012F74 bl ErrorHandling _02012F74: add r0, r4, #0x0 pop {r4, pc} .balign 4 _02012F78: .word 0x021C4850 thumb_func_start FUN_02012F7C FUN_02012F7C: ; 0x02012F7C push {r4, lr} ldr r1, _02012FA4 ; =0x021C4850 mov r2, #0x3 ldr r1, [r1, #0x18] ldr r4, [r1, #0x10] add r0, r4, r0 add r3, r0, #0x0 and r3, r2 beq _02012F94 mov r2, #0x4 sub r2, r2, r3 add r0, r0, r2 _02012F94: str r0, [r1, #0x10] ldr r1, [r1, #0x14] cmp r0, r1 blo _02012FA0 bl ErrorHandling _02012FA0: add r0, r4, #0x0 pop {r4, pc} .balign 4 _02012FA4: .word 0x021C4850 thumb_func_start FUN_02012FA8 FUN_02012FA8: ; 0x02012FA8 push {r4, lr} ldr r1, _02012FD0 ; =0x021C4850 mov r2, #0x3 ldr r1, [r1, #0x1c] ldr r4, [r1, #0x10] add r0, r4, r0 add r3, r0, #0x0 and r3, r2 beq _02012FC0 mov r2, #0x4 sub r2, r2, r3 add r0, r0, r2 _02012FC0: str r0, [r1, #0x10] ldr r1, [r1, #0x14] cmp r0, r1 blo _02012FCC bl ErrorHandling _02012FCC: add r0, r4, #0x0 pop {r4, pc} .balign 4 _02012FD0: .word 0x021C4850 thumb_func_start FUN_02012FD4 FUN_02012FD4: ; 0x02012FD4 push {r4, lr} ldr r1, _02012FFC ; =0x021C4850 mov r2, #0x3 ldr r1, [r1, #0x20] ldr r4, [r1, #0x10] add r0, r4, r0 add r3, r0, #0x0 and r3, r2 beq _02012FEC mov r2, #0x4 sub r2, r2, r3 add r0, r0, r2 _02012FEC: str r0, [r1, #0x10] ldr r1, [r1, #0x14] cmp r0, r1 blo _02012FF8 bl ErrorHandling _02012FF8: add r0, r4, #0x0 pop {r4, pc} .balign 4 _02012FFC: .word 0x021C4850 thumb_func_start FUN_02013000 FUN_02013000: ; 0x02013000 push {r4, lr} ldr r1, _02013028 ; =0x021C4850 mov r2, #0x3 ldr r1, [r1, #0x24] ldr r4, [r1, #0x10] add r0, r4, r0 add r3, r0, #0x0 and r3, r2 beq _02013018 mov r2, #0x4 sub r2, r2, r3 add r0, r0, r2 _02013018: str r0, [r1, #0x10] ldr r1, [r1, #0x14] cmp r0, r1 blo _02013024 bl ErrorHandling _02013024: add r0, r4, #0x0 pop {r4, pc} .balign 4 _02013028: .word 0x021C4850 thumb_func_start FUN_0201302C FUN_0201302C: ; 0x0201302C push {r4, lr} ldr r1, _02013054 ; =0x021C4850 mov r2, #0x3 ldr r1, [r1, #0x28] ldr r4, [r1, #0x10] add r0, r4, r0 add r3, r0, #0x0 and r3, r2 beq _02013044 mov r2, #0x4 sub r2, r2, r3 add r0, r0, r2 _02013044: str r0, [r1, #0x10] ldr r1, [r1, #0x14] cmp r0, r1 blo _02013050 bl ErrorHandling _02013050: add r0, r4, #0x0 pop {r4, pc} .balign 4 _02013054: .word 0x021C4850 thumb_func_start FUN_02013058 FUN_02013058: ; 0x02013058 push {r4, lr} ldr r1, _02013080 ; =0x021C4850 mov r2, #0x3 ldr r1, [r1, #0x2c] ldr r4, [r1, #0x10] add r0, r4, r0 add r3, r0, #0x0 and r3, r2 beq _02013070 mov r2, #0x4 sub r2, r2, r3 add r0, r0, r2 _02013070: str r0, [r1, #0x10] ldr r1, [r1, #0x14] cmp r0, r1 blo _0201307C bl ErrorHandling _0201307C: add r0, r4, #0x0 pop {r4, pc} .balign 4 _02013080: .word 0x021C4850 thumb_func_start FUN_02013084 FUN_02013084: ; 0x02013084 push {r4, lr} ldr r1, _020130AC ; =0x021C4850 mov r2, #0x3 ldr r1, [r1, #0x30] ldr r4, [r1, #0x10] add r0, r4, r0 add r3, r0, #0x0 and r3, r2 beq _0201309C mov r2, #0x4 sub r2, r2, r3 add r0, r0, r2 _0201309C: str r0, [r1, #0x10] ldr r1, [r1, #0x14] cmp r0, r1 blo _020130A8 bl ErrorHandling _020130A8: add r0, r4, #0x0 pop {r4, pc} .balign 4 _020130AC: .word 0x021C4850 thumb_func_start FUN_020130B0 FUN_020130B0: ; 0x020130B0 push {r4, lr} ldr r1, _020130D8 ; =0x021C4850 mov r2, #0x3 ldr r1, [r1, #0x34] ldr r4, [r1, #0x10] add r0, r4, r0 add r3, r0, #0x0 and r3, r2 beq _020130C8 mov r2, #0x4 sub r2, r2, r3 add r0, r0, r2 _020130C8: str r0, [r1, #0x10] ldr r1, [r1, #0x14] cmp r0, r1 blo _020130D4 bl ErrorHandling _020130D4: add r0, r4, #0x0 pop {r4, pc} .balign 4 _020130D8: .word 0x021C4850 thumb_func_start FUN_020130DC FUN_020130DC: ; 0x020130DC push {r4, lr} ldr r1, _02013104 ; =0x021C4850 mov r2, #0x3 ldr r1, [r1, #0x38] ldr r4, [r1, #0x10] add r0, r4, r0 add r3, r0, #0x0 and r3, r2 beq _020130F4 mov r2, #0x4 sub r2, r2, r3 add r0, r0, r2 _020130F4: str r0, [r1, #0x10] ldr r1, [r1, #0x14] cmp r0, r1 blo _02013100 bl ErrorHandling _02013100: add r0, r4, #0x0 pop {r4, pc} .balign 4 _02013104: .word 0x021C4850 thumb_func_start FUN_02013108 FUN_02013108: ; 0x02013108 push {r4, lr} ldr r1, _02013130 ; =0x021C4850 mov r2, #0x3 ldr r1, [r1, #0x3c] ldr r4, [r1, #0x10] add r0, r4, r0 add r3, r0, #0x0 and r3, r2 beq _02013120 mov r2, #0x4 sub r2, r2, r3 add r0, r0, r2 _02013120: str r0, [r1, #0x10] ldr r1, [r1, #0x14] cmp r0, r1 blo _0201312C bl ErrorHandling _0201312C: add r0, r4, #0x0 pop {r4, pc} .balign 4 _02013130: .word 0x021C4850 thumb_func_start FUN_02013134 FUN_02013134: ; 0x02013134 push {r4, lr} ldr r1, _0201315C ; =0x021C4850 mov r2, #0x3 ldr r1, [r1, #0x40] ldr r4, [r1, #0x10] add r0, r4, r0 add r3, r0, #0x0 and r3, r2 beq _0201314C mov r2, #0x4 sub r2, r2, r3 add r0, r0, r2 _0201314C: str r0, [r1, #0x10] ldr r1, [r1, #0x14] cmp r0, r1 blo _02013158 bl ErrorHandling _02013158: add r0, r4, #0x0 pop {r4, pc} .balign 4 _0201315C: .word 0x021C4850 thumb_func_start FUN_02013160 FUN_02013160: ; 0x02013160 push {r4, lr} ldr r1, _02013188 ; =0x021C4850 mov r2, #0x3 ldr r1, [r1, #0x44] ldr r4, [r1, #0x10] add r0, r4, r0 add r3, r0, #0x0 and r3, r2 beq _02013178 mov r2, #0x4 sub r2, r2, r3 add r0, r0, r2 _02013178: str r0, [r1, #0x10] ldr r1, [r1, #0x14] cmp r0, r1 blo _02013184 bl ErrorHandling _02013184: add r0, r4, #0x0 pop {r4, pc} .balign 4 _02013188: .word 0x021C4850 thumb_func_start FUN_0201318C FUN_0201318C: ; 0x0201318C ldr r3, _02013190 ; =FUN_0200650C bx r3 .balign 4 _02013190: .word FUN_0200650C thumb_func_start FUN_02013194 FUN_02013194: ; 0x02013194 push {r3-r7, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] add r6, r1, #0x0 add r4, r2, #0x0 add r7, r3, #0x0 cmp r0, #0x0 bne _020131A8 bl ErrorHandling _020131A8: ldr r0, [r5, #0x4] cmp r0, #0x0 beq _020131B2 bl ErrorHandling _020131B2: add r0, r5, #0x0 add r0, #0xd8 strb r4, [r0, #0x0] mov r0, #0x1 tst r0, r4 beq _020131C8 add r0, r5, #0x0 add r0, #0x58 blx FUN_020AE918 b _020131DE _020131C8: mov r0, #0x2 tst r0, r4 beq _020131DE mov r1, #0x0 add r2, r5, #0x0 add r0, r1, #0x0 _020131D4: add r1, r1, #0x1 str r0, [r2, #0x58] add r2, r2, #0x4 cmp r1, #0x10 blt _020131D4 _020131DE: mov r0, #0x4 tst r0, r4 beq _020131EE add r0, r5, #0x0 add r0, #0x98 blx FUN_020AEC98 b _02013208 _020131EE: mov r0, #0x8 tst r0, r4 beq _02013208 mov r2, #0x0 add r3, r5, #0x0 add r1, r2, #0x0 _020131FA: add r0, r3, #0x0 add r0, #0x98 add r2, r2, #0x1 add r3, r3, #0x4 str r1, [r0, #0x0] cmp r2, #0x10 blt _020131FA _02013208: str r6, [r5, #0x4] cmp r7, #0x1 bne _02013216 add r0, r5, #0x0 bl FUN_02013228 pop {r3-r7, pc} _02013216: ldr r0, _02013224 ; =FUN_02013268 add r1, r5, #0x0 mov r2, #0x5 bl FUN_0200CA98 pop {r3-r7, pc} nop _02013224: .word FUN_02013268 thumb_func_start FUN_02013228 FUN_02013228: ; 0x02013228 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] ldr r1, [r4, #0x4] blx FUN_0208B128 ldr r0, _02013264 ; =0x021C4850 str r4, [r0, #0x0] ldr r1, [r4, #0x18] ldr r0, [r4, #0x0] cmp r1, #0x0 bne _02013246 blx FUN_0208AF94 b _0201324A _02013246: blx FUN_0208B05C _0201324A: ldr r1, [r4, #0x1c] ldr r0, [r4, #0x0] cmp r1, #0x0 bne _02013258 blx FUN_0208AF80 b _0201325C _02013258: blx FUN_0208AFA8 _0201325C: ldr r0, _02013264 ; =0x021C4850 mov r1, #0x0 str r1, [r0, #0x0] pop {r4, pc} .balign 4 _02013264: .word 0x021C4850 thumb_func_start FUN_02013268 FUN_02013268: ; 0x02013268 push {r4, lr} add r4, r0, #0x0 add r0, r1, #0x0 bl FUN_02013228 add r0, r4, #0x0 bl FUN_0200CAB4 pop {r4, pc} .balign 4 thumb_func_start FUN_0201327C FUN_0201327C: ; 0x0201327C push {r4, lr} add r4, r0, #0x0 bne _02013286 bl ErrorHandling _02013286: ldr r0, _020132B8 ; =0x021C4850 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02013292 bl ErrorHandling _02013292: ldr r0, _020132B8 ; =0x021C4850 mov r1, #0x0 ldr r3, [r0, #0x0] add r2, r3, #0x0 _0201329A: ldr r0, [r2, #0x58] cmp r0, #0x0 bne _020132A8 lsl r0, r1, #0x2 add r0, r3, r0 str r4, [r0, #0x58] pop {r4, pc} _020132A8: add r1, r1, #0x1 add r2, r2, #0x4 cmp r1, #0x10 blt _0201329A bl ErrorHandling pop {r4, pc} nop _020132B8: .word 0x021C4850 thumb_func_start FUN_020132BC FUN_020132BC: ; 0x020132BC push {r4, lr} add r4, r0, #0x0 bne _020132C6 bl ErrorHandling _020132C6: ldr r0, _020132FC ; =0x021C4850 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _020132D2 bl ErrorHandling _020132D2: ldr r0, _020132FC ; =0x021C4850 mov r1, #0x0 ldr r3, [r0, #0x0] add r2, r3, #0x0 _020132DA: add r0, r2, #0x0 add r0, #0x98 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _020132EE lsl r0, r1, #0x2 add r0, r3, r0 add r0, #0x98 str r4, [r0, #0x0] pop {r4, pc} _020132EE: add r1, r1, #0x1 add r2, r2, #0x4 cmp r1, #0x10 blt _020132DA bl ErrorHandling pop {r4, pc} .balign 4 _020132FC: .word 0x021C4850 thumb_func_start FUN_02013300 FUN_02013300: ; 0x02013300 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x20] cmp r1, #0x0 beq _0201331C add r0, #0xdb ldrb r0, [r0, #0x0] bl FUN_0201EE2C ldr r0, [r4, #0x20] bl FUN_0201EB8C bl FUN_0201EBA4 _0201331C: blx FUN_020B849C ldr r0, [r4, #0x0] ldr r1, _02013338 ; =0x021CED64 blx FUN_0208AD80 ldr r0, [r4, #0x20] cmp r0, #0x0 beq _02013332 bl FUN_0201EB98 _02013332: blx FUN_020B849C pop {r4, pc} .balign 4 _02013338: .word 0x021CED64 thumb_func_start FUN_0201333C FUN_0201333C: ; 0x0201333C ldr r3, _02013344 ; =0x0208AE48 ldr r0, [r0, #0x0] bx r3 nop _02013344: .word 0x0208AE48 thumb_func_start FUN_02013348 FUN_02013348: ; 0x02013348 mov r0, #0x0 ldr r3, _02013360 ; =0x021C4858 add r2, r0, #0x0 _0201334E: ldr r1, [r3, #0x0] cmp r1, #0x0 beq _02013356 add r0, r0, #0x1 _02013356: add r2, r2, #0x1 add r3, r3, #0x4 cmp r2, #0x10 blt _0201334E bx lr .balign 4 _02013360: .word 0x021C4858 thumb_func_start FUN_02013364 FUN_02013364: ; 0x02013364 push {r4-r6, lr} mov r4, #0x0 ldr r5, _02013384 ; =0x021C4858 add r6, r4, #0x0 _0201336C: ldr r0, [r5, #0x0] cmp r0, #0x0 beq _02013378 bl FUN_02013300 add r4, r4, #0x1 _02013378: add r6, r6, #0x1 add r5, r5, #0x4 cmp r6, #0x10 blt _0201336C add r0, r4, #0x0 pop {r4-r6, pc} .balign 4 _02013384: .word 0x021C4858 thumb_func_start FUN_02013388 FUN_02013388: ; 0x02013388 push {r4-r6, lr} mov r4, #0x0 ldr r5, _020133A8 ; =0x021C4858 add r6, r4, #0x0 _02013390: ldr r0, [r5, #0x0] cmp r0, #0x0 beq _0201339C bl FUN_0201333C add r4, r4, #0x1 _0201339C: add r6, r6, #0x1 add r5, r5, #0x4 cmp r6, #0x10 blt _02013390 add r0, r4, #0x0 pop {r4-r6, pc} .balign 4 _020133A8: .word 0x021C4858 thumb_func_start FUN_020133AC FUN_020133AC: ; 0x020133AC push {r4, lr} add r4, r0, #0x0 ldr r0, _020133C4 ; =0x021C4850 str r3, [r0, #0x4] ldr r0, [r4, #0x0] blx FUN_0208ACEC ldr r1, _020133C4 ; =0x021C4850 mov r2, #0x0 str r2, [r1, #0x4] str r0, [r4, #0x8] pop {r4, pc} .balign 4 _020133C4: .word 0x021C4850 thumb_func_start FUN_020133C8 FUN_020133C8: ; 0x020133C8 ldr r0, [r0, #0x0] ldr r0, [r0, #0x8] bx lr .balign 4 thumb_func_start FUN_020133D0 FUN_020133D0: ; 0x020133D0 ldr r3, _020133D8 ; =0x0208AC14 ldr r0, [r0, #0x0] bx r3 nop _020133D8: .word 0x0208AC14 thumb_func_start FUN_020133DC FUN_020133DC: ; 0x020133DC ldr r3, _020133E4 ; =0x0208AC58 ldr r0, [r0, #0x0] bx r3 nop _020133E4: .word 0x0208AC58 thumb_func_start FUN_020133E8 FUN_020133E8: ; 0x020133E8 ldr r0, [r0, #0xc] bx lr thumb_func_start FUN_020133EC FUN_020133EC: ; 0x020133EC add r2, r0, #0x0 add r2, #0x40 add r3, r1, #0x0 ldmia r2!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r2, #0x0] str r0, [r3, #0x0] bx lr thumb_func_start FUN_020133FC FUN_020133FC: ; 0x020133FC push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r3, r4, #0x0 add r2, r5, #0x0 ldmia r3!, {r0-r1} add r2, #0x40 stmia r2!, {r0-r1} ldr r0, [r3, #0x0] str r0, [r2, #0x0] ldr r1, [r5, #0x20] add r0, r4, #0x0 bl FUN_0201EC58 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0201341C FUN_0201341C: ; 0x0201341C ldr r0, _02013424 ; =0x021C4850 ldr r0, [r0, #0x4] bx lr nop _02013424: .word 0x021C4850 thumb_func_start FUN_02013428 FUN_02013428: ; 0x02013428 ldr r2, _02013438 ; =0x020ED4E4 add r3, r0, #0x0 ldmia r2!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r2, #0x0] str r0, [r3, #0x0] bx lr nop _02013438: .word 0x020ED4E4 thumb_func_start FUN_0201343C FUN_0201343C: ; 0x0201343C ldr r0, [r0, #0x20] bx lr thumb_func_start FUN_02013440 FUN_02013440: ; 0x02013440 add r0, #0xdb strb r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02013448 FUN_02013448: ; 0x02013448 add r0, #0xdb ldrb r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02013450 FUN_02013450: ; 0x02013450 ldr r0, [r0, #0x20] ldr r0, [r0, #0x0] str r1, [r0, #0x10] bx lr thumb_func_start FUN_02013458 FUN_02013458: ; 0x02013458 push {r4-r7} ldr r0, [r0, #0x20] add r4, r1, #0x0 ldrh r2, [r0, #0x1c] cmp r2, #0x0 bne _0201346A mov r0, #0x0 pop {r4-r7} bx lr _0201346A: mov r1, #0x0 cmp r2, #0x0 ble _020134F4 ldr r3, [r0, #0x18] ldr r7, _020134FC ; =0x020908DC ldr r0, _02013500 ; =0x020909A4 _02013476: cmp r3, #0x0 beq _020134EC cmp r4, #0x5 bhi _020134E6 add r5, r4, r4 add r5, pc ldrh r5, [r5, #0x6] lsl r5, r5, #0x10 asr r5, r5, #0x10 add pc, r5 _0201348A: ; jump table (using 16-bit offset) .short _02013496 - _0201348A - 2; case 0 .short _020134A2 - _0201348A - 2; case 1 .short _020134AE - _0201348A - 2; case 2 .short _020134BC - _0201348A - 2; case 3 .short _020134CA - _0201348A - 2; case 4 .short _020134D8 - _0201348A - 2; case 5 _02013496: ldr r5, [r3, #0x0] cmp r5, r0 bne _020134EC ldr r0, [r3, #0x4] pop {r4-r7} bx lr _020134A2: ldr r5, [r3, #0x0] cmp r5, r7 bne _020134EC ldr r0, [r3, #0x4] pop {r4-r7} bx lr _020134AE: ldr r6, [r3, #0x0] ldr r5, _02013504 ; =0x02090858 cmp r6, r5 bne _020134EC ldr r0, [r3, #0x4] pop {r4-r7} bx lr _020134BC: ldr r6, [r3, #0x0] ldr r5, _02013508 ; =0x02090780 cmp r6, r5 bne _020134EC ldr r0, [r3, #0x4] pop {r4-r7} bx lr _020134CA: ldr r6, [r3, #0x0] ldr r5, _0201350C ; =0x02090664 cmp r6, r5 bne _020134EC ldr r0, [r3, #0x4] pop {r4-r7} bx lr _020134D8: ldr r6, [r3, #0x0] ldr r5, _02013510 ; =0x020905D0 cmp r6, r5 bne _020134EC ldr r0, [r3, #0x4] pop {r4-r7} bx lr _020134E6: mov r0, #0x0 pop {r4-r7} bx lr _020134EC: add r1, r1, #0x1 add r3, #0x8 cmp r1, r2 blt _02013476 _020134F4: mov r0, #0x0 pop {r4-r7} bx lr nop _020134FC: .word 0x020908DC _02013500: .word 0x020909A4 _02013504: .word 0x02090858 _02013508: .word 0x02090780 _0201350C: .word 0x02090664 _02013510: .word 0x020905D0 thumb_func_start FUN_02013514 FUN_02013514: ; 0x02013514 push {r4, lr} add r4, r1, #0x0 mov r1, #0x0 bl FUN_02013458 cmp r0, #0x0 beq _0201352E ldrh r1, [r4, #0x0] strh r1, [r0, #0x0] ldrh r1, [r4, #0x2] strh r1, [r0, #0x2] ldrh r1, [r4, #0x4] strh r1, [r0, #0x4] _0201352E: pop {r4, pc} thumb_func_start FUN_02013530 FUN_02013530: ; 0x02013530 push {r4, lr} add r4, r1, #0x0 mov r1, #0x2 bl FUN_02013458 add r2, r0, #0x0 beq _02013546 ldmia r4!, {r0-r1} stmia r2!, {r0-r1} ldr r0, [r4, #0x0] str r0, [r2, #0x0] _02013546: pop {r4, pc} thumb_func_start FUN_02013548 FUN_02013548: ; 0x02013548 push {r3-r4, lr} sub sp, #0xc add r4, r1, #0x0 mov r1, #0x2 bl FUN_02013458 add r2, r0, #0x0 bne _0201356E add r2, sp, #0x0 mov r0, #0x0 str r0, [r2, #0x0] str r0, [r2, #0x4] str r0, [r2, #0x8] ldmia r2!, {r0-r1} stmia r4!, {r0-r1} ldr r0, [r2, #0x0] add sp, #0xc str r0, [r4, #0x0] pop {r3-r4, pc} _0201356E: ldmia r2!, {r0-r1} stmia r4!, {r0-r1} ldr r0, [r2, #0x0] str r0, [r4, #0x0] add sp, #0xc pop {r3-r4, pc} .balign 4 thumb_func_start FUN_0201357C FUN_0201357C: ; 0x0201357C push {r4, lr} add r4, r1, #0x0 mov r1, #0x2 bl FUN_02013458 cmp r0, #0x0 beq _02013590 mov r1, #0x0 ldrsh r1, [r4, r1] strh r1, [r0, #0xc] _02013590: pop {r4, pc} .balign 4 thumb_func_start FUN_02013594 FUN_02013594: ; 0x02013594 push {r4, lr} add r4, r1, #0x0 mov r1, #0x2 bl FUN_02013458 cmp r0, #0x0 bne _020135A8 mov r0, #0x0 strh r0, [r4, #0x0] pop {r4, pc} _020135A8: mov r1, #0xc ldrsh r0, [r0, r1] strh r0, [r4, #0x0] pop {r4, pc} thumb_func_start FUN_020135B0 FUN_020135B0: ; 0x020135B0 push {r4, lr} add r4, r1, #0x0 mov r1, #0x3 bl FUN_02013458 cmp r0, #0x0 beq _020135C2 ldrh r1, [r4, #0x0] strh r1, [r0, #0x0] _020135C2: pop {r4, pc} thumb_func_start FUN_020135C4 FUN_020135C4: ; 0x020135C4 push {r4, lr} add r4, r1, #0x0 mov r1, #0x3 bl FUN_02013458 cmp r0, #0x0 bne _020135D8 mov r0, #0x0 strh r0, [r4, #0x0] pop {r4, pc} _020135D8: ldrh r0, [r0, #0x0] strh r0, [r4, #0x0] pop {r4, pc} .balign 4 thumb_func_start FUN_020135E0 FUN_020135E0: ; 0x020135E0 push {r4, lr} add r4, r1, #0x0 mov r1, #0x3 bl FUN_02013458 cmp r0, #0x0 beq _020135F2 ldrh r1, [r4, #0x0] strh r1, [r0, #0x2] _020135F2: pop {r4, pc} thumb_func_start FUN_020135F4 FUN_020135F4: ; 0x020135F4 push {r4, lr} add r4, r1, #0x0 mov r1, #0x3 bl FUN_02013458 cmp r0, #0x0 bne _02013608 mov r0, #0x0 strh r0, [r4, #0x0] pop {r4, pc} _02013608: ldrh r0, [r0, #0x2] strh r0, [r4, #0x0] pop {r4, pc} .balign 4 thumb_func_start FUN_02013610 FUN_02013610: ; 0x02013610 push {r4, lr} add r4, r1, #0x0 mov r1, #0x5 bl FUN_02013458 add r2, r0, #0x0 beq _02013626 ldmia r4!, {r0-r1} stmia r2!, {r0-r1} ldr r0, [r4, #0x0] str r0, [r2, #0x0] _02013626: pop {r4, pc} thumb_func_start FUN_02013628 FUN_02013628: ; 0x02013628 push {r3-r4, lr} sub sp, #0xc add r4, r1, #0x0 mov r1, #0x5 bl FUN_02013458 add r2, r0, #0x0 bne _0201364E add r2, sp, #0x0 mov r0, #0x0 str r0, [r2, #0x0] str r0, [r2, #0x4] str r0, [r2, #0x8] ldmia r2!, {r0-r1} stmia r4!, {r0-r1} ldr r0, [r2, #0x0] add sp, #0xc str r0, [r4, #0x0] pop {r3-r4, pc} _0201364E: ldmia r2!, {r0-r1} stmia r4!, {r0-r1} ldr r0, [r2, #0x0] str r0, [r4, #0x0] add sp, #0xc pop {r3-r4, pc} .balign 4 thumb_func_start FUN_0201365C FUN_0201365C: ; 0x0201365C push {r4, lr} add r4, r1, #0x0 mov r1, #0x5 bl FUN_02013458 cmp r0, #0x0 beq _02013670 mov r1, #0x0 ldrsh r1, [r4, r1] strh r1, [r0, #0xc] _02013670: pop {r4, pc} .balign 4 thumb_func_start FUN_02013674 FUN_02013674: ; 0x02013674 push {r4, lr} add r4, r1, #0x0 mov r1, #0x5 bl FUN_02013458 cmp r0, #0x0 bne _02013688 mov r0, #0x0 strh r0, [r4, #0x0] pop {r4, pc} _02013688: mov r1, #0xc ldrsh r0, [r0, r1] strh r0, [r4, #0x0] pop {r4, pc} thumb_func_start FUN_02013690 FUN_02013690: ; 0x02013690 push {r3-r5, lr} mov r1, #0x8 add r5, r0, #0x0 bl FUN_02016998 add r4, r0, #0x0 beq _020136B2 ldr r0, _020136B8 ; =0x0001020F add r1, r5, #0x0 str r0, [r4, #0x0] mov r0, #0x4 bl FUN_020219F4 ldr r1, _020136BC ; =0x020ED548 str r0, [r4, #0x4] bl FUN_02021E28 _020136B2: add r0, r4, #0x0 pop {r3-r5, pc} nop _020136B8: .word 0x0001020F _020136BC: .word 0x020ED548 thumb_func_start FUN_020136C0 FUN_020136C0: ; 0x020136C0 push {r4, lr} add r4, r0, #0x0 bne _020136CA bl ErrorHandling _020136CA: cmp r4, #0x0 beq _020136DE ldr r0, [r4, #0x4] cmp r0, #0x0 beq _020136D8 bl FUN_02021A20 _020136D8: add r0, r4, #0x0 bl FUN_02016A18 _020136DE: pop {r4, pc} thumb_func_start FUN_020136E0 FUN_020136E0: ; 0x020136E0 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _020136EE bl ErrorHandling _020136EE: cmp r5, #0x0 beq _020136F4 str r4, [r5, #0x0] _020136F4: pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020136F8 FUN_020136F8: ; 0x020136F8 push {r4-r6, lr} sub sp, #0x10 add r6, r0, #0x0 str r3, [sp, #0x0] mov r0, #0xff str r0, [sp, #0x4] ldr r0, [r6, #0x0] add r5, r1, #0x0 str r0, [sp, #0x8] mov r1, #0x0 add r4, r2, #0x0 str r1, [sp, #0xc] ldr r2, [r6, #0x4] add r0, r5, #0x0 add r3, r4, #0x0 bl FUN_0201BDE0 add r0, r5, #0x0 bl FUN_02019548 add sp, #0x10 pop {r4-r6, pc} thumb_func_start FUN_02013724 FUN_02013724: ; 0x02013724 ldr r1, _02013738 ; =0x0000FFFF mov r2, #0x0 strh r1, [r0, #0x0] _0201372A: add r2, r2, #0x1 strh r1, [r0, #0x4] add r0, r0, #0x2 cmp r2, #0x2 blt _0201372A bx lr nop _02013738: .word 0x0000FFFF thumb_func_start FUN_0201373C FUN_0201373C: ; 0x0201373C strh r1, [r0, #0x0] mov r2, #0x0 ldr r1, _02013750 ; =0x0000FFFF strh r2, [r0, #0x2] _02013744: add r2, r2, #0x1 strh r1, [r0, #0x4] add r0, r0, #0x2 cmp r2, #0x2 blt _02013744 bx lr .balign 4 _02013750: .word 0x0000FFFF thumb_func_start FUN_02013754 FUN_02013754: ; 0x02013754 push {r4, lr} mov r1, #0x4 add r4, r0, #0x0 bl FUN_0201373C mov r0, #0x5 strh r0, [r4, #0x2] pop {r4, pc} thumb_func_start FUN_02013764 FUN_02013764: ; 0x02013764 push {r4-r6, lr} add r6, r1, #0x0 add r5, r0, #0x0 cmp r6, #0x4 blo _02013772 bl ErrorHandling _02013772: cmp r6, #0x4 bhs _020137B8 mov r0, #0xa add r4, r6, #0x0 mul r4, r0 ldr r1, _020137BC ; =0x020ED556 add r0, r5, #0x0 ldrb r1, [r1, r4] bl FUN_0201373C ldr r0, _020137C0 ; =0x020ED557 mov r1, #0x0 ldrb r0, [r0, r4] mvn r1, r1 strh r0, [r5, #0x2] ldr r0, _020137C4 ; =0x020ED558 ldrsh r0, [r0, r4] cmp r0, r1 beq _020137A2 ldr r1, _020137C8 ; =0x020ED55A ldrh r1, [r1, r4] bl FUN_02013A9C strh r0, [r5, #0x4] _020137A2: ldr r0, _020137CC ; =0x020ED55C mov r1, #0x0 ldrsh r0, [r0, r4] mvn r1, r1 cmp r0, r1 beq _020137B8 ldr r1, _020137D0 ; =0x020ED55E ldrh r1, [r1, r4] bl FUN_02013A9C strh r0, [r5, #0x6] _020137B8: pop {r4-r6, pc} nop _020137BC: .word 0x020ED556 _020137C0: .word 0x020ED557 _020137C4: .word 0x020ED558 _020137C8: .word 0x020ED55A _020137CC: .word 0x020ED55C _020137D0: .word 0x020ED55E thumb_func_start FUN_020137D4 FUN_020137D4: ; 0x020137D4 push {r3-r7, lr} sub sp, #0x8 str r0, [sp, #0x0] add r0, r1, #0x0 str r1, [sp, #0x4] bl FUN_0200AA80 ldr r5, [sp, #0x0] ldr r7, _02013838 ; =0x0000FFFF add r6, r0, #0x0 mov r4, #0x0 _020137EA: ldrh r2, [r5, #0x4] cmp r2, r7 beq _02013800 add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_0200B518 add r4, r4, #0x1 add r5, r5, #0x2 cmp r4, #0x2 blt _020137EA _02013800: ldr r2, [sp, #0x0] mov r0, #0x1 ldrh r2, [r2, #0x0] mov r1, #0x1a lsl r3, r2, #0x1 ldr r2, _0201383C ; =0x020ED54C ldrh r2, [r2, r3] ldr r3, [sp, #0x4] bl FUN_0200A86C add r5, r0, #0x0 ldr r2, [sp, #0x0] ldr r3, [sp, #0x4] ldrh r2, [r2, #0x2] add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_0200A9C4 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0200A8B8 add r0, r6, #0x0 bl FUN_0200AB18 add r0, r4, #0x0 add sp, #0x8 pop {r3-r7, pc} .balign 4 _02013838: .word 0x0000FFFF _0201383C: .word 0x020ED54C thumb_func_start FUN_02013840 FUN_02013840: ; 0x02013840 push {r4, lr} add r4, r0, #0x0 add r3, r1, #0x0 ldrh r1, [r4, #0x0] mov r0, #0x1a lsl r2, r1, #0x1 ldr r1, _02013858 ; =0x020ED54C ldrh r1, [r1, r2] ldrh r2, [r4, #0x2] bl FUN_0200A738 pop {r4, pc} .balign 4 _02013858: .word 0x020ED54C thumb_func_start FUN_0201385C FUN_0201385C: ; 0x0201385C ldrh r1, [r0, #0x0] ldr r0, _0201386C ; =0x0000FFFF cmp r1, r0 beq _02013868 mov r0, #0x1 bx lr _02013868: mov r0, #0x0 bx lr .balign 4 _0201386C: .word 0x0000FFFF thumb_func_start FUN_02013870 FUN_02013870: ; 0x02013870 push {r4, lr} add r4, r0, #0x0 ldrh r0, [r4, #0x0] ldrh r1, [r4, #0x2] bl FUN_020138A0 mov r3, #0x0 cmp r0, #0x0 bls _02013896 ldr r1, _0201389C ; =0x0000FFFF _02013884: ldrh r2, [r4, #0x4] cmp r2, r1 bne _0201388E mov r0, #0x0 pop {r4, pc} _0201388E: add r3, r3, #0x1 add r4, r4, #0x2 cmp r3, r0 blo _02013884 _02013896: mov r0, #0x1 pop {r4, pc} nop _0201389C: .word 0x0000FFFF thumb_func_start FUN_020138A0 FUN_020138A0: ; 0x020138A0 push {r3-r7, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x5 blo _020138AE bl ErrorHandling _020138AE: add r0, r5, #0x0 bl FUN_02013974 cmp r4, r0 blo _020138BC bl ErrorHandling _020138BC: ldr r1, _02013910 ; =0x020ED54C lsl r2, r5, #0x1 ldrh r1, [r1, r2] mov r0, #0x1a add r2, r4, #0x0 mov r3, #0x0 bl FUN_0200A738 str r0, [sp, #0x0] bl FUN_02021F2C add r4, r0, #0x0 ldrh r1, [r4, #0x0] ldr r0, _02013914 ; =0x0000FFFF mov r5, #0x0 cmp r1, r0 beq _02013904 add r7, r0, #0x0 sub r6, r0, #0x1 _020138E2: cmp r1, r6 bne _020138FC add r0, r4, #0x0 bl FUN_0201B8F8 cmp r0, #0x0 beq _020138F2 add r5, r5, #0x1 _020138F2: add r0, r4, #0x0 bl FUN_0201B8B8 add r4, r0, #0x0 b _020138FE _020138FC: add r4, r4, #0x2 _020138FE: ldrh r1, [r4, #0x0] cmp r1, r7 bne _020138E2 _02013904: ldr r0, [sp, #0x0] bl FUN_02021A20 add r0, r5, #0x0 pop {r3-r7, pc} nop _02013910: .word 0x020ED54C _02013914: .word 0x0000FFFF thumb_func_start FUN_02013918 FUN_02013918: ; 0x02013918 lsl r1, r1, #0x1 add r0, r0, r1 ldrh r0, [r0, #0x4] bx lr thumb_func_start FUN_02013920 FUN_02013920: ; 0x02013920 ldrh r0, [r0, #0x0] bx lr thumb_func_start FUN_02013924 FUN_02013924: ; 0x02013924 ldrh r0, [r0, #0x2] bx lr thumb_func_start FUN_02013928 FUN_02013928: ; 0x02013928 push {r3-r4} ldrh r3, [r0, #0x0] ldrh r2, [r1, #0x0] cmp r3, r2 bne _0201393A ldrh r3, [r0, #0x2] ldrh r2, [r1, #0x2] cmp r3, r2 beq _02013940 _0201393A: mov r0, #0x0 pop {r3-r4} bx lr _02013940: mov r4, #0x0 _02013942: ldrh r3, [r0, #0x4] ldrh r2, [r1, #0x4] cmp r3, r2 beq _02013950 mov r0, #0x0 pop {r3-r4} bx lr _02013950: add r4, r4, #0x1 add r1, r1, #0x2 add r0, r0, #0x2 cmp r4, #0x2 blt _02013942 mov r0, #0x1 pop {r3-r4} bx lr thumb_func_start FUN_02013960 FUN_02013960: ; 0x02013960 ldrh r2, [r1, #0x0] strh r2, [r0, #0x0] ldrh r2, [r1, #0x2] strh r2, [r0, #0x2] ldrh r2, [r1, #0x4] strh r2, [r0, #0x4] ldrh r1, [r1, #0x6] strh r1, [r0, #0x6] bx lr .balign 4 thumb_func_start FUN_02013974 FUN_02013974: ; 0x02013974 cmp r0, #0x5 bhs _0201397C mov r0, #0x14 bx lr _0201397C: mov r0, #0x0 bx lr thumb_func_start FUN_02013980 FUN_02013980: ; 0x02013980 push {r4-r6, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r6, r2, #0x0 cmp r4, #0x5 blo _02013990 bl ErrorHandling _02013990: strh r4, [r5, #0x0] strh r6, [r5, #0x2] pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02013998 FUN_02013998: ; 0x02013998 push {r4-r6, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r6, r2, #0x0 cmp r4, #0x2 blo _020139A8 bl ErrorHandling _020139A8: lsl r0, r4, #0x1 add r0, r5, r0 strh r6, [r0, #0x4] pop {r4-r6, pc} thumb_func_start FUN_020139B0 FUN_020139B0: ; 0x020139B0 push {r4, lr} add r4, r0, #0x0 ldrh r0, [r4, #0x0] ldrh r1, [r4, #0x2] bl FUN_020138A0 cmp r0, #0x2 bhs _020139D0 lsl r1, r0, #0x1 add r2, r4, r1 ldr r1, _020139D4 ; =0x0000FFFF _020139C6: add r0, r0, #0x1 strh r1, [r2, #0x4] add r2, r2, #0x2 cmp r0, #0x2 blo _020139C6 _020139D0: pop {r4, pc} nop _020139D4: .word 0x0000FFFF thumb_func_start FUN_020139D8 FUN_020139D8: ; 0x020139D8 push {r3-r7, lr} mov r1, #0x30 add r6, r0, #0x0 bl FUN_02016998 ldr r4, _02013A0C ; =0x020ED5C0 str r0, [sp, #0x0] mov r7, #0x0 add r5, r0, #0x0 _020139EA: ldr r0, [sp, #0x0] mov r1, #0x1a str r6, [r0, #0x0] ldrh r2, [r4, #0x0] mov r0, #0x1 add r3, r6, #0x0 bl FUN_0200A86C str r0, [r5, #0x4] add r7, r7, #0x1 add r4, r4, #0x2 add r5, r5, #0x4 cmp r7, #0xb blt _020139EA ldr r0, [sp, #0x0] pop {r3-r7, pc} nop _02013A0C: .word 0x020ED5C0 thumb_func_start FUN_02013A10 FUN_02013A10: ; 0x02013A10 push {r4-r6, lr} add r6, r0, #0x0 mov r4, #0x0 add r5, r6, #0x0 _02013A18: ldr r0, [r5, #0x4] bl FUN_0200A8B8 add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, #0xb blt _02013A18 add r0, r6, #0x0 bl FUN_02016A18 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02013A30 FUN_02013A30: ; 0x02013A30 push {r3-r5, lr} sub sp, #0x8 add r5, r0, #0x0 add r4, r2, #0x0 add r0, r1, #0x0 add r1, sp, #0x4 add r2, sp, #0x0 bl FUN_02013AEC ldr r0, [sp, #0x4] ldr r1, [sp, #0x0] lsl r0, r0, #0x2 add r0, r5, r0 ldr r0, [r0, #0x4] add r2, r4, #0x0 bl FUN_0200A8E0 add sp, #0x8 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02013A58 FUN_02013A58: ; 0x02013A58 push {r3-r4, lr} sub sp, #0xc add r4, r1, #0x0 ldr r1, _02013A94 ; =0x0000FFFF cmp r0, r1 beq _02013A88 add r1, sp, #0x8 add r2, sp, #0x4 bl FUN_02013AEC ldr r0, [sp, #0x8] mov r3, #0x0 lsl r1, r0, #0x1 ldr r0, _02013A98 ; =0x020ED5C0 ldrh r0, [r0, r1] str r0, [sp, #0x8] str r4, [sp, #0x0] ldr r1, [sp, #0x8] ldr r2, [sp, #0x4] mov r0, #0x1a bl FUN_0200A648 add sp, #0xc pop {r3-r4, pc} _02013A88: add r0, r4, #0x0 bl FUN_02021A4C add sp, #0xc pop {r3-r4, pc} nop _02013A94: .word 0x0000FFFF _02013A98: .word 0x020ED5C0 thumb_func_start FUN_02013A9C FUN_02013A9C: ; 0x02013A9C push {r4-r5} ldr r4, _02013AE0 ; =0x020ED5C0 mov r2, #0x0 _02013AA2: ldrh r3, [r4, #0x0] cmp r0, r3 bne _02013AD0 mov r4, #0x0 add r3, r4, #0x0 cmp r2, #0x0 bls _02013AC6 ldr r0, _02013AE4 ; =0x020ED5D6 _02013AB2: lsl r5, r4, #0x1 ldrh r5, [r0, r5] add r4, r4, #0x1 lsl r4, r4, #0x10 add r3, r3, r5 lsl r3, r3, #0x10 lsr r4, r4, #0x10 lsr r3, r3, #0x10 cmp r4, r2 blo _02013AB2 _02013AC6: add r0, r3, r1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 pop {r4-r5} bx lr _02013AD0: add r2, r2, #0x1 add r4, r4, #0x2 cmp r2, #0xb blo _02013AA2 ldr r0, _02013AE8 ; =0x0000FFFF pop {r4-r5} bx lr nop _02013AE0: .word 0x020ED5C0 _02013AE4: .word 0x020ED5D6 _02013AE8: .word 0x0000FFFF thumb_func_start FUN_02013AEC FUN_02013AEC: ; 0x02013AEC push {r3-r6} ldr r3, _02013B20 ; =0x00000FFF ldr r6, _02013B24 ; =0x020ED5D6 and r3, r0 mov r0, #0x0 add r5, r0, #0x0 _02013AF8: ldrh r4, [r6, #0x0] add r0, r0, r4 cmp r3, r0 bhs _02013B12 str r5, [r1, #0x0] ldr r1, _02013B24 ; =0x020ED5D6 lsl r4, r5, #0x1 ldrh r1, [r1, r4] sub r0, r0, r1 sub r0, r3, r0 str r0, [r2, #0x0] pop {r3-r6} bx lr _02013B12: add r5, r5, #0x1 add r6, r6, #0x2 cmp r5, #0xb blo _02013AF8 pop {r3-r6} bx lr nop _02013B20: .word 0x00000FFF _02013B24: .word 0x020ED5D6 thumb_func_start FUN_02013B28 FUN_02013B28: ; 0x02013B28 mov r0, #0x8 bx lr thumb_func_start FUN_02013B2C FUN_02013B2C: ; 0x02013B2C push {r3, lr} mov r2, #0x0 str r2, [r0, #0x0] ldr r3, _02013B54 ; =0x020ED5B4 str r2, [r0, #0x4] _02013B36: ldrb r1, [r3, #0x0] cmp r1, #0x2 bne _02013B48 ldr r1, _02013B58 ; =0x020ED5B5 lsl r2, r2, #0x1 ldrb r1, [r1, r2] bl FUN_02013C18 pop {r3, pc} _02013B48: add r2, r2, #0x1 add r3, r3, #0x2 cmp r2, #0x6 blo _02013B36 pop {r3, pc} nop _02013B54: .word 0x020ED5B4 _02013B58: .word 0x020ED5B5 thumb_func_start FUN_02013B5C FUN_02013B5C: ; 0x02013B5C ldr r3, _02013B64 ; =FUN_02022610 mov r1, #0x22 bx r3 nop _02013B64: .word FUN_02022610 thumb_func_start FUN_02013B68 FUN_02013B68: ; 0x02013B68 ldr r0, [r0, #0x4] add r2, r0, #0x0 lsr r2, r1 mov r0, #0x1 and r0, r2 bx lr thumb_func_start FUN_02013B74 FUN_02013B74: ; 0x02013B74 push {r3-r5, lr} add r5, r0, #0x0 mov r2, #0x0 ldr r3, [r5, #0x4] add r4, r2, #0x0 mov r0, #0x1 _02013B80: add r1, r3, #0x0 lsr r1, r2 tst r1, r0 bne _02013B8A add r4, r4, #0x1 _02013B8A: add r2, r2, #0x1 cmp r2, #0x20 blo _02013B80 cmp r4, #0x0 beq _02013BC4 bl FUN_0201B9EC add r1, r4, #0x0 blx _u32_div_f ldr r4, [r5, #0x4] mov r0, #0x0 mov r2, #0x1 _02013BA4: add r3, r4, #0x0 lsr r3, r0 tst r3, r2 bne _02013BBE cmp r1, #0x0 bne _02013BBC mov r1, #0x1 ldr r2, [r5, #0x4] lsl r1, r0 orr r1, r2 str r1, [r5, #0x4] pop {r3-r5, pc} _02013BBC: sub r1, r1, #0x1 _02013BBE: add r0, r0, #0x1 cmp r0, #0x20 blo _02013BA4 _02013BC4: mov r0, #0x20 pop {r3-r5, pc} thumb_func_start FUN_02013BC8 FUN_02013BC8: ; 0x02013BC8 ldr r3, [r0, #0x4] mov r2, #0x0 mov r0, #0x1 _02013BCE: add r1, r3, #0x0 lsr r1, r2 tst r1, r0 bne _02013BDA mov r0, #0x0 bx lr _02013BDA: add r2, r2, #0x1 cmp r2, #0x20 blo _02013BCE mov r0, #0x1 bx lr thumb_func_start FUN_02013BE4 FUN_02013BE4: ; 0x02013BE4 push {r3-r4} mov r3, #0x0 ldr r4, _02013C08 ; =0x020ED5D6 add r2, r3, #0x0 _02013BEC: ldrh r1, [r4, #0x0] add r2, r2, #0x1 add r4, r4, #0x2 add r1, r3, r1 lsl r1, r1, #0x10 lsr r3, r1, #0x10 cmp r2, #0x9 blt _02013BEC add r0, r3, r0 lsl r0, r0, #0x10 lsr r0, r0, #0x10 pop {r3-r4} bx lr nop _02013C08: .word 0x020ED5D6 thumb_func_start FUN_02013C0C FUN_02013C0C: ; 0x02013C0C ldr r0, [r0, #0x0] add r2, r0, #0x0 lsr r2, r1 mov r0, #0x1 and r0, r2 bx lr thumb_func_start FUN_02013C18 FUN_02013C18: ; 0x02013C18 mov r2, #0x1 ldr r3, [r0, #0x0] lsl r2, r1 add r1, r3, #0x0 orr r1, r2 str r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02013C28 FUN_02013C28: ; 0x02013C28 push {r4-r7} mov r3, #0x0 ldr r5, _02013C64 ; =0x020ED5EC add r2, r3, #0x0 _02013C30: ldr r7, [r5, #0x4] add r4, r2, #0x0 cmp r7, #0x0 ble _02013C54 ldr r6, [r5, #0x0] _02013C3A: ldrh r1, [r6, #0x0] cmp r0, r1 bne _02013C4C ldr r0, _02013C68 ; =0x020ED5F0 lsl r1, r3, #0x3 ldr r0, [r0, r1] sub r0, r0, #0x1 pop {r4-r7} bx lr _02013C4C: add r4, r4, #0x1 add r6, r6, #0x2 cmp r4, r7 blt _02013C3A _02013C54: add r3, r3, #0x1 add r5, #0x8 cmp r3, #0xc blo _02013C30 mov r0, #0x0 pop {r4-r7} bx lr nop _02013C64: .word 0x020ED5EC _02013C68: .word 0x020ED5F0 thumb_func_start FUN_02013C6C FUN_02013C6C: ; 0x02013C6C push {r3-r7, lr} ldr r3, _02013CC8 ; =0x020ED5EC add r6, r1, #0x0 mov r7, #0x0 _02013C74: ldr r5, [r3, #0x4] mov r2, #0x0 cmp r5, #0x0 ble _02013CBC ldr r4, [r3, #0x0] _02013C7E: ldrh r1, [r4, #0x0] cmp r0, r1 bne _02013CB4 ldr r2, _02013CCC ; =0x020ED5F0 lsl r1, r7, #0x3 ldr r2, [r2, r1] mov r0, #0x0 cmp r2, #0x0 beq _02013CAC ldr r2, _02013CC8 ; =0x020ED5EC add r2, r2, r1 ldr r2, [r2, #0x4] _02013C96: cmp r6, #0x0 bne _02013CA4 ldr r2, _02013CC8 ; =0x020ED5EC lsl r0, r0, #0x1 ldr r1, [r2, r1] ldrh r0, [r1, r0] pop {r3-r7, pc} _02013CA4: sub r6, r6, #0x1 add r0, r0, #0x1 cmp r2, #0x0 bne _02013C96 _02013CAC: bl ErrorHandling ldr r0, _02013CD0 ; =0x0000FFFF pop {r3-r7, pc} _02013CB4: add r2, r2, #0x1 add r4, r4, #0x2 cmp r2, r5 blt _02013C7E _02013CBC: add r7, r7, #0x1 add r3, #0x8 cmp r7, #0xc blo _02013C74 pop {r3-r7, pc} nop _02013CC8: .word 0x020ED5EC _02013CCC: .word 0x020ED5F0 _02013CD0: .word 0x0000FFFF thumb_func_start FUN_02013CD4 FUN_02013CD4: ; 0x02013CD4 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] mov r1, #0x18 bl FUN_02016998 add r4, r0, #0x0 bne _02013CE8 bl ErrorHandling _02013CE8: ldr r0, [r5, #0x0] ldr r1, [r5, #0xc] bl FUN_02013F68 str r0, [r4, #0x0] ldr r0, [r5, #0x0] str r0, [r4, #0x4] ldr r0, [r5, #0x4] ldr r1, [r5, #0xc] bl FUN_02013F98 str r0, [r4, #0x8] ldr r0, [r5, #0x4] str r0, [r4, #0xc] ldr r0, [r5, #0x8] ldr r1, [r5, #0xc] bl FUN_02013FC8 str r0, [r4, #0x10] ldr r0, [r5, #0x8] str r0, [r4, #0x14] add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02013D18 FUN_02013D18: ; 0x02013D18 push {r4, lr} add r4, r0, #0x0 bne _02013D22 bl ErrorHandling _02013D22: ldr r0, [r4, #0x0] cmp r0, #0x0 bne _02013D2C bl ErrorHandling _02013D2C: ldr r0, [r4, #0x8] cmp r0, #0x0 bne _02013D36 bl ErrorHandling _02013D36: ldr r0, [r4, #0x10] cmp r0, #0x0 bne _02013D40 bl ErrorHandling _02013D40: ldr r0, [r4, #0x0] bl FUN_02016A18 ldr r0, [r4, #0x8] bl FUN_02016A18 ldr r0, [r4, #0x10] bl FUN_02016A18 add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} .balign 4 thumb_func_start FUN_02013D5C FUN_02013D5C: ; 0x02013D5C push {r4-r6, lr} add r5, r0, #0x0 ldr r0, _02013D90 ; =0x04000444 mov r6, #0x0 str r6, [r0, #0x0] ldr r0, [r5, #0x4] cmp r0, #0x0 ble _02013D86 add r4, r6, #0x0 _02013D6E: ldr r0, [r5, #0x0] add r0, r0, r4 ldr r1, [r0, #0x20] cmp r1, #0x0 beq _02013D7C bl FUN_020140D8 _02013D7C: ldr r0, [r5, #0x4] add r6, r6, #0x1 add r4, #0x40 cmp r6, r0 blt _02013D6E _02013D86: ldr r0, _02013D94 ; =0x04000448 mov r1, #0x1 str r1, [r0, #0x0] pop {r4-r6, pc} nop _02013D90: .word 0x04000444 _02013D94: .word 0x04000448 thumb_func_start FUN_02013D98 FUN_02013D98: ; 0x02013D98 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_02014024 add r4, r0, #0x0 bne _02013DAA bl ErrorHandling _02013DAA: ldr r0, [r5, #0x4] ldr r0, [r0, #0x8] cmp r0, #0x0 beq _02013DB6 bl ErrorHandling _02013DB6: ldr r0, [r5, #0x4] bl FUN_0201407C str r0, [r4, #0x0] cmp r0, #0x0 bne _02013DC6 bl ErrorHandling _02013DC6: ldr r0, [r5, #0x4] ldr r1, [r4, #0x0] add r2, r4, #0x4 bl FUN_020140A4 add r0, r4, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02013DD4 FUN_02013DD4: ; 0x02013DD4 push {r4, lr} ldr r1, _02013DE8 ; =0x021064BC add r4, r0, #0x0 ldr r0, [r4, #0x0] ldr r1, [r1, #0x0] blx r1 add r0, r4, #0x0 bl FUN_02013F50 pop {r4, pc} .balign 4 _02013DE8: .word 0x021064BC thumb_func_start FUN_02013DEC FUN_02013DEC: ; 0x02013DEC push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] mov r6, #0x0 cmp r0, #0x0 ble _02013E12 add r4, r6, #0x0 _02013DFA: ldr r1, [r5, #0x8] ldr r0, [r1, r4] cmp r0, #0x0 beq _02013E08 add r0, r1, r4 bl FUN_02013DD4 _02013E08: ldr r0, [r5, #0xc] add r6, r6, #0x1 add r4, #0x28 cmp r6, r0 blt _02013DFA _02013E12: pop {r4-r6, pc} thumb_func_start FUN_02013E14 FUN_02013E14: ; 0x02013E14 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_02014050 add r4, r0, #0x0 bne _02013E26 bl ErrorHandling _02013E26: ldr r0, [r5, #0x8] bl FUN_02014090 str r0, [r4, #0x0] cmp r0, #0x0 bne _02013E36 bl ErrorHandling _02013E36: ldr r0, [r5, #0x4] ldr r1, [r4, #0x0] add r2, r4, #0x4 bl FUN_020140B4 add r0, r4, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02013E44 FUN_02013E44: ; 0x02013E44 push {r4, lr} ldr r1, _02013E58 ; =0x021064C4 add r4, r0, #0x0 ldr r0, [r4, #0x0] ldr r1, [r1, #0x0] blx r1 add r0, r4, #0x0 bl FUN_02013F5C pop {r4, pc} .balign 4 _02013E58: .word 0x021064C4 thumb_func_start FUN_02013E5C FUN_02013E5C: ; 0x02013E5C push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0x14] mov r6, #0x0 cmp r0, #0x0 ble _02013E82 add r4, r6, #0x0 _02013E6A: ldr r1, [r5, #0x10] ldr r0, [r1, r4] cmp r0, #0x0 beq _02013E78 add r0, r1, r4 bl FUN_02013E44 _02013E78: ldr r0, [r5, #0x14] add r6, r6, #0x1 add r4, #0x18 cmp r6, r0 blt _02013E6A _02013E82: pop {r4-r6, pc} thumb_func_start FUN_02013E84 FUN_02013E84: ; 0x02013E84 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_02013FF8 add r4, r0, #0x0 bne _02013E96 bl ErrorHandling _02013E96: add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_02014218 mov r0, #0x1 str r0, [r4, #0x1c] str r0, [r4, #0x20] add r0, r4, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02013EA8 FUN_02013EA8: ; 0x02013EA8 ldr r3, _02013EAC ; =FUN_02013F30 bx r3 .balign 4 _02013EAC: .word FUN_02013F30 thumb_func_start FUN_02013EB0 FUN_02013EB0: ; 0x02013EB0 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _02013EBE bl ErrorHandling _02013EBE: str r4, [r5, #0x20] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02013EC4 FUN_02013EC4: ; 0x02013EC4 strh r1, [r0, #0x0] strh r2, [r0, #0x2] bx lr .balign 4 thumb_func_start FUN_02013ECC FUN_02013ECC: ; 0x02013ECC ldrh r1, [r0, #0x2] ldrh r0, [r0, #0x0] lsl r1, r1, #0x10 orr r0, r1 bx lr .balign 4 thumb_func_start FUN_02013ED8 FUN_02013ED8: ; 0x02013ED8 strh r1, [r0, #0x4] strh r2, [r0, #0x6] bx lr .balign 4 thumb_func_start FUN_02013EE0 FUN_02013EE0: ; 0x02013EE0 str r1, [r0, #0xc] str r2, [r0, #0x10] bx lr .balign 4 thumb_func_start FUN_02013EE8 FUN_02013EE8: ; 0x02013EE8 strh r1, [r0, #0x8] strh r2, [r0, #0xa] bx lr .balign 4 thumb_func_start FUN_02013EF0 FUN_02013EF0: ; 0x02013EF0 ldrh r1, [r0, #0xa] ldrh r0, [r0, #0x8] lsl r1, r1, #0x10 orr r0, r1 bx lr .balign 4 thumb_func_start FUN_02013EFC FUN_02013EFC: ; 0x02013EFC str r1, [r0, #0x14] bx lr thumb_func_start FUN_02013F00 FUN_02013F00: ; 0x02013F00 ldr r0, [r0, #0x14] bx lr thumb_func_start FUN_02013F04 FUN_02013F04: ; 0x02013F04 add r0, #0x3e strb r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02013F0C FUN_02013F0C: ; 0x02013F0C strh r1, [r0, #0x3c] bx lr thumb_func_start FUN_02013F10 FUN_02013F10: ; 0x02013F10 str r1, [r0, #0x24] bx lr thumb_func_start FUN_02013F14 FUN_02013F14: ; 0x02013F14 str r1, [r0, #0x28] bx lr thumb_func_start FUN_02013F18 FUN_02013F18: ; 0x02013F18 str r1, [r0, #0x2c] bx lr thumb_func_start FUN_02013F1C FUN_02013F1C: ; 0x02013F1C str r1, [r0, #0x30] bx lr thumb_func_start FUN_02013F20 FUN_02013F20: ; 0x02013F20 cmp r1, #0x0 bne _02013F28 str r2, [r0, #0x34] bx lr _02013F28: str r2, [r0, #0x38] bx lr thumb_func_start FUN_02013F2C FUN_02013F2C: ; 0x02013F2C str r1, [r0, #0x18] bx lr thumb_func_start FUN_02013F30 FUN_02013F30: ; 0x02013F30 push {r4, lr} add r4, r0, #0x0 mov r1, #0x0 mov r2, #0x40 blx FUN_020DF4A4 add r0, r4, #0x0 mov r1, #0x1f add r0, #0x3e strb r1, [r0, #0x0] ldr r0, _02013F4C ; =0x00007FFF strh r0, [r4, #0x3c] pop {r4, pc} nop _02013F4C: .word 0x00007FFF thumb_func_start FUN_02013F50 FUN_02013F50: ; 0x02013F50 ldr r3, _02013F58 ; =FUN_020B1A24 mov r1, #0x0 stmia r0!, {r1} bx r3 .balign 4 _02013F58: .word FUN_020B1A24 thumb_func_start FUN_02013F5C FUN_02013F5C: ; 0x02013F5C ldr r3, _02013F64 ; =FUN_020B19DC mov r1, #0x0 stmia r0!, {r1} bx r3 .balign 4 _02013F64: .word FUN_020B19DC thumb_func_start FUN_02013F68 FUN_02013F68: ; 0x02013F68 push {r3-r7, lr} add r6, r0, #0x0 add r0, r1, #0x0 lsl r1, r6, #0x6 bl FUN_02016998 add r7, r0, #0x0 bne _02013F7C bl ErrorHandling _02013F7C: mov r4, #0x0 cmp r6, #0x0 ble _02013F92 add r5, r7, #0x0 _02013F84: add r0, r5, #0x0 bl FUN_02013F30 add r4, r4, #0x1 add r5, #0x40 cmp r4, r6 blt _02013F84 _02013F92: add r0, r7, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02013F98 FUN_02013F98: ; 0x02013F98 push {r3-r7, lr} add r6, r0, #0x0 add r0, r1, #0x0 mov r1, #0x28 mul r1, r6 bl FUN_02016998 add r7, r0, #0x0 bne _02013FAE bl ErrorHandling _02013FAE: mov r4, #0x0 cmp r6, #0x0 ble _02013FC4 add r5, r7, #0x0 _02013FB6: add r0, r5, #0x0 bl FUN_02013F50 add r4, r4, #0x1 add r5, #0x28 cmp r4, r6 blt _02013FB6 _02013FC4: add r0, r7, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02013FC8 FUN_02013FC8: ; 0x02013FC8 push {r3-r7, lr} add r6, r0, #0x0 add r0, r1, #0x0 mov r1, #0x18 mul r1, r6 bl FUN_02016998 add r7, r0, #0x0 bne _02013FDE bl ErrorHandling _02013FDE: mov r4, #0x0 cmp r6, #0x0 ble _02013FF4 add r5, r7, #0x0 _02013FE6: add r0, r5, #0x0 bl FUN_02013F5C add r4, r4, #0x1 add r5, #0x18 cmp r4, r6 blt _02013FE6 _02013FF4: add r0, r7, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02013FF8 FUN_02013FF8: ; 0x02013FF8 push {r3-r4} ldr r4, [r0, #0x4] mov r1, #0x0 cmp r4, #0x0 ble _0201401C ldr r3, [r0, #0x0] add r2, r3, #0x0 _02014006: ldr r0, [r2, #0x1c] cmp r0, #0x0 bne _02014014 lsl r0, r1, #0x6 add r0, r3, r0 pop {r3-r4} bx lr _02014014: add r1, r1, #0x1 add r2, #0x40 cmp r1, r4 blt _02014006 _0201401C: mov r0, #0x0 pop {r3-r4} bx lr .balign 4 thumb_func_start FUN_02014024 FUN_02014024: ; 0x02014024 push {r3-r4} ldr r4, [r0, #0x4] mov r1, #0x0 cmp r4, #0x0 ble _0201404A ldr r3, [r0, #0x8] add r2, r3, #0x0 _02014032: ldr r0, [r2, #0x0] cmp r0, #0x0 bne _02014042 mov r0, #0x28 mul r0, r1 add r0, r3, r0 pop {r3-r4} bx lr _02014042: add r1, r1, #0x1 add r2, #0x28 cmp r1, r4 blt _02014032 _0201404A: mov r0, #0x0 pop {r3-r4} bx lr thumb_func_start FUN_02014050 FUN_02014050: ; 0x02014050 push {r3-r4} ldr r4, [r0, #0x4] mov r1, #0x0 cmp r4, #0x0 ble _02014076 ldr r3, [r0, #0x10] add r2, r3, #0x0 _0201405E: ldr r0, [r2, #0x0] cmp r0, #0x0 bne _0201406E mov r0, #0x18 mul r0, r1 add r0, r3, r0 pop {r3-r4} bx lr _0201406E: add r1, r1, #0x1 add r2, #0x18 cmp r1, r4 blt _0201405E _02014076: mov r0, #0x0 pop {r3-r4} bx lr thumb_func_start FUN_0201407C FUN_0201407C: ; 0x0201407C push {r3, lr} ldr r3, _0201408C ; =0x021064B8 mov r1, #0x0 ldr r0, [r0, #0x10] ldr r3, [r3, #0x0] add r2, r1, #0x0 blx r3 pop {r3, pc} .balign 4 _0201408C: .word 0x021064B8 thumb_func_start FUN_02014090 FUN_02014090: ; 0x02014090 push {r3, lr} ldr r3, _020140A0 ; =0x021064C0 mov r1, #0x0 ldr r3, [r3, #0x0] lsl r0, r0, #0x5 add r2, r1, #0x0 blx r3 pop {r3, pc} .balign 4 _020140A0: .word 0x021064C0 thumb_func_start FUN_020140A4 FUN_020140A4: ; 0x020140A4 push {r3, lr} lsl r1, r1, #0x10 add r3, r2, #0x0 lsr r1, r1, #0xd mov r2, #0x0 blx FUN_020B1528 pop {r3, pc} thumb_func_start FUN_020140B4 FUN_020140B4: ; 0x020140B4 push {r3-r5, lr} add r3, r2, #0x0 ldr r2, _020140D4 ; =0xFFFF0000 add r5, r0, #0x0 and r2, r1 lsr r2, r2, #0x10 lsl r1, r1, #0x10 ldr r4, [r5, #0x8] lsl r2, r2, #0x3 str r2, [r5, #0x8] lsr r1, r1, #0xd mov r2, #0x0 blx FUN_020B1240 str r4, [r5, #0x8] pop {r3-r5, pc} .balign 4 _020140D4: .word 0xFFFF0000 thumb_func_start FUN_020140D8 FUN_020140D8: ; 0x020140D8 push {r3-r7, lr} sub sp, #0x18 ldr r7, _020141F8 ; =0x04000444 mov r6, #0x0 add r5, r0, #0x0 str r6, [r7, #0x0] ldrh r1, [r5, #0x3c] ldr r0, _020141FC ; =0x7FFF8000 orr r0, r1 str r0, [r7, #0x7c] add r0, r7, #0x0 ldr r1, _02014200 ; =0x00004210 add r0, #0x80 str r1, [r0, #0x0] ldr r3, [r5, #0x24] ldr r4, [r3, #0x8] ldr r2, [r3, #0x10] ldr r1, [r3, #0x4] ldr r0, [r3, #0x0] lsl r3, r2, #0x1d lsl r2, r1, #0x17 lsl r1, r0, #0x14 ldr r0, [r5, #0x28] lsl r4, r4, #0x1a lsr r0, r0, #0x3 orr r4, r0 mov r0, #0x1 lsl r0, r0, #0x1e orr r0, r4 orr r0, r1 orr r0, r2 orr r0, r3 str r0, [r7, #0x64] ldr r0, [r5, #0x24] ldr r0, [r0, #0x8] cmp r0, #0x2 bne _02014124 mov r6, #0x1 _02014124: ldr r0, [r5, #0x30] ldr r1, [r5, #0x2c] lsl r0, r0, #0x5 add r1, r1, r0 mov r0, #0x4 sub r0, r0, r6 lsr r1, r0 ldr r2, _02014204 ; =0x040004AC add r0, r5, #0x0 str r1, [r2, #0x0] add r0, #0x3e ldrb r0, [r0, #0x0] sub r2, #0x8 lsl r1, r0, #0x10 mov r0, #0xc0 orr r0, r1 str r0, [r2, #0x0] ldr r0, [r5, #0x34] cmp r0, #0x0 beq _02014156 mov r0, #0x8 ldrsh r0, [r5, r0] mov r7, #0x0 str r0, [sp, #0x14] b _0201415E _02014156: mov r0, #0x8 ldrsh r7, [r5, r0] mov r0, #0x0 str r0, [sp, #0x14] _0201415E: ldr r0, [r5, #0x38] cmp r0, #0x0 beq _0201416C mov r0, #0xa ldrsh r6, [r5, r0] mov r4, #0x0 b _02014172 _0201416C: mov r0, #0xa ldrsh r4, [r5, r0] mov r6, #0x0 _02014172: ldr r0, [r5, #0x14] mov r1, #0x6 lsl r2, r0, #0xc mov r0, #0x2 ldrsh r0, [r5, r0] ldrsh r1, [r5, r1] mov r3, #0x4 ldrsh r3, [r5, r3] add r0, r0, r1 lsl r1, r0, #0xc mov r0, #0x0 ldrsh r0, [r5, r0] add r0, r0, r3 ldr r3, _02014208 ; =0x04000470 lsl r0, r0, #0xc str r0, [r3, #0x0] str r1, [r3, #0x0] str r2, [r3, #0x0] ldr r0, [r5, #0x18] ldr r1, _0201420C ; =0x020FFA38 asr r0, r0, #0x4 lsl r2, r0, #0x1 lsl r0, r2, #0x1 add r2, r2, #0x1 lsl r2, r2, #0x1 ldrsh r0, [r1, r0] ldrsh r1, [r1, r2] blx FUN_020C7FF0 ldr r2, [r5, #0x10] ldr r0, [r5, #0xc] ldr r1, _02014210 ; =0x0400046C mov r3, #0x8 str r0, [r1, #0x0] str r2, [r1, #0x0] lsr r0, r1, #0xe str r0, [r1, #0x0] mov r2, #0x4 mov r0, #0x6 ldrsh r2, [r5, r2] ldrsh r0, [r5, r0] neg r2, r2 neg r0, r0 lsl r2, r2, #0xc lsl r0, r0, #0xc str r2, [r1, #0x4] str r0, [r1, #0x4] mov r0, #0x0 str r0, [r1, #0x4] mov r1, #0xa ldrsh r1, [r5, r1] add r2, r0, #0x0 str r1, [sp, #0x0] ldr r1, [sp, #0x14] str r1, [sp, #0x4] str r6, [sp, #0x8] str r7, [sp, #0xc] str r4, [sp, #0x10] ldrsh r3, [r5, r3] add r1, r0, #0x0 blx FUN_020B0250 ldr r0, _02014214 ; =0x04000448 mov r1, #0x1 str r1, [r0, #0x0] add sp, #0x18 pop {r3-r7, pc} .balign 4 _020141F8: .word 0x04000444 _020141FC: .word 0x7FFF8000 _02014200: .word 0x00004210 _02014204: .word 0x040004AC _02014208: .word 0x04000470 _0201420C: .word 0x020FFA38 _02014210: .word 0x0400046C _02014214: .word 0x04000448 thumb_func_start FUN_02014218 FUN_02014218: ; 0x02014218 push {r3-r7, lr} add r5, r1, #0x0 ldr r1, [r5, #0x4] add r7, r0, #0x0 ldr r2, [r1, #0x10] mov r6, #0x8 mov r0, #0x0 cmp r2, #0x0 ble _02014236 _0201422A: ldr r2, [r5, #0x4] add r0, r0, #0x1 ldr r2, [r2, #0x10] lsl r6, r6, #0x1 cmp r0, r2 blt _0201422A _02014236: ldr r1, [r1, #0x14] mov r4, #0x8 mov r0, #0x0 cmp r1, #0x0 ble _0201424C _02014240: ldr r1, [r5, #0x4] add r0, r0, #0x1 ldr r1, [r1, #0x14] lsl r4, r4, #0x1 cmp r0, r1 blt _02014240 _0201424C: mov r1, #0xc mov r2, #0xe ldrsh r1, [r5, r1] ldrsh r2, [r5, r2] add r0, r7, #0x0 bl FUN_02013EC4 lsr r1, r6, #0x1f lsr r2, r4, #0x1f add r1, r6, r1 add r2, r4, r2 lsl r1, r1, #0xf lsl r2, r2, #0xf add r0, r7, #0x0 asr r1, r1, #0x10 asr r2, r2, #0x10 bl FUN_02013ED8 mov r0, #0x1 lsl r0, r0, #0xc str r0, [r7, #0xc] str r0, [r7, #0x10] add r0, r7, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 bl FUN_02013EE8 ldr r1, [r5, #0x18] add r0, r7, #0x0 bl FUN_02013EFC ldr r1, [r5, #0x14] add r0, r7, #0x0 lsl r1, r1, #0x18 lsr r1, r1, #0x18 bl FUN_02013F04 ldr r1, [r5, #0x4] add r0, r7, #0x0 add r1, #0x10 bl FUN_02013F10 ldr r0, [r5, #0x4] mov r1, #0x0 add r0, r0, #0x4 blx FUN_020B1A14 add r1, r0, #0x0 add r0, r7, #0x0 bl FUN_02013F14 ldr r0, [r5, #0x8] mov r1, #0x0 add r0, r0, #0x4 blx FUN_020B19C4 add r1, r0, #0x0 add r0, r7, #0x0 bl FUN_02013F18 ldrh r1, [r5, #0x1c] add r0, r7, #0x0 bl FUN_02013F1C mov r1, #0x0 add r0, r7, #0x0 add r2, r1, #0x0 bl FUN_02013F20 add r0, r7, #0x0 mov r1, #0x1 mov r2, #0x0 bl FUN_02013F20 ldrh r1, [r5, #0x10] add r0, r7, #0x0 bl FUN_02013F2C pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020142EC FUN_020142EC: ; 0x020142EC push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 add r6, r1, #0x0 add r7, r2, #0x0 ldr r0, _02014394 ; =FUN_020143DC mov r1, #0x50 mov r2, #0x0 bl FUN_020061E8 str r0, [sp, #0x4] bl FUN_0201B6C8 add r4, r0, #0x0 cmp r5, #0x0 beq _02014330 cmp r6, #0x0 bne _02014320 add r0, r5, #0x0 mov r1, #0x0 bl FUN_020031FC str r0, [sp, #0x0] ldr r0, _02014398 ; =FUN_020144E0 str r0, [r4, #0x4] b _0201434A _02014320: add r0, r5, #0x0 mov r1, #0x1 bl FUN_020031FC str r0, [sp, #0x0] ldr r0, _0201439C ; =FUN_020144FC str r0, [r4, #0x4] b _0201434A _02014330: cmp r6, #0x0 bne _02014340 bl FUN_020222E8 str r0, [sp, #0x0] ldr r0, _020143A0 ; =FUN_020144B0 str r0, [r4, #0x4] b _0201434A _02014340: bl FUN_020222F8 str r0, [sp, #0x0] ldr r0, _020143A4 ; =FUN_020144C8 str r0, [r4, #0x4] _0201434A: ldr r1, [sp, #0x0] lsl r0, r7, #0x5 str r0, [sp, #0x8] add r0, r1, r0 add r1, r4, #0x0 add r1, #0xc mov r2, #0x20 blx MIi_CpuCopy16 ldr r1, [sp, #0x0] ldr r0, [sp, #0x8] mov r2, #0x20 add r0, r1, r0 add r1, r4, #0x0 add r1, #0x2c blx MIi_CpuCopy16 ldr r0, [sp, #0x4] mov r1, #0x1 str r0, [r4, #0x0] add r0, r4, #0x0 str r5, [r4, #0x8] add r0, #0x4c strb r6, [r0, #0x0] add r0, r4, #0x0 add r0, #0x4d strb r7, [r0, #0x0] add r0, r4, #0x0 add r0, #0x4e strb r1, [r0, #0x0] add r0, r4, #0x0 mov r1, #0x0 add r0, #0x4f strb r1, [r0, #0x0] add r0, r4, #0x0 add sp, #0xc pop {r4-r7, pc} .balign 4 _02014394: .word FUN_020143DC _02014398: .word FUN_020144E0 _0201439C: .word FUN_020144FC _020143A0: .word FUN_020144B0 _020143A4: .word FUN_020144C8 thumb_func_start FUN_020143A8 FUN_020143A8: ; 0x020143A8 cmp r1, #0x0 beq _020143B6 cmp r1, #0x1 beq _020143BE cmp r1, #0x2 beq _020143C6 bx lr _020143B6: mov r1, #0x0 add r0, #0x4e strb r1, [r0, #0x0] bx lr _020143BE: mov r1, #0x2 add r0, #0x4e strb r1, [r0, #0x0] bx lr _020143C6: mov r1, #0x3 add r0, #0x4e strb r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_020143D0 FUN_020143D0: ; 0x020143D0 ldr r3, _020143D8 ; =FUN_0200621C ldr r0, [r0, #0x0] bx r3 nop _020143D8: .word FUN_0200621C thumb_func_start FUN_020143DC FUN_020143DC: ; 0x020143DC push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r0, r4, #0x0 add r0, #0x4e ldrb r0, [r0, #0x0] cmp r0, #0x3 bhi _02014452 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _020143F8: ; jump table (using 16-bit offset) .short _02014400 - _020143F8 - 2; case 0 .short _02014410 - _020143F8 - 2; case 1 .short _02014452 - _020143F8 - 2; case 2 .short _02014444 - _020143F8 - 2; case 3 _02014400: add r0, r4, #0x0 mov r1, #0x0 add r0, #0x4f strb r1, [r0, #0x0] mov r0, #0x1 add r4, #0x4e strb r0, [r4, #0x0] pop {r3-r5, pc} _02014410: add r0, r4, #0x0 bl FUN_02014454 cmp r0, #0x1 bne _02014424 add r1, r4, #0x0 ldr r2, [r4, #0x4] add r0, r4, #0x0 add r1, #0x2c blx r2 _02014424: add r0, r4, #0x0 add r0, #0x4f ldrb r0, [r0, #0x0] add r1, r0, #0x1 add r0, r4, #0x0 add r0, #0x4f strb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x4f ldrb r0, [r0, #0x0] cmp r0, #0x20 bne _02014452 mov r0, #0x0 add r4, #0x4f strb r0, [r4, #0x0] pop {r3-r5, pc} _02014444: ldr r2, [r4, #0x4] add r0, r4, #0x0 add r1, #0xc blx r2 add r0, r5, #0x0 bl FUN_0200621C _02014452: pop {r3-r5, pc} thumb_func_start FUN_02014454 FUN_02014454: ; 0x02014454 push {r4-r5} add r1, r0, #0x0 add r1, #0x4f ldrb r1, [r1, #0x0] cmp r1, #0x0 bne _02014482 mov r1, #0x1e mov r4, #0x0 mov r3, #0x1 lsl r1, r1, #0xa _02014468: add r2, r3, #0x0 lsl r2, r4 tst r2, r1 beq _02014474 ldrh r2, [r0, #0xc] strh r2, [r0, #0x2c] _02014474: add r4, r4, #0x1 add r0, r0, #0x2 cmp r4, #0x10 blo _02014468 mov r0, #0x1 pop {r4-r5} bx lr _02014482: cmp r1, #0x18 bne _020144AA mov r1, #0x1e mov r5, #0x0 add r4, r0, #0x0 mov r3, #0x1 lsl r1, r1, #0xa _02014490: add r2, r3, #0x0 lsl r2, r5 tst r2, r1 beq _0201449C ldrh r2, [r0, #0x2a] strh r2, [r4, #0x2c] _0201449C: add r5, r5, #0x1 add r4, r4, #0x2 cmp r5, #0x10 blo _02014490 mov r0, #0x1 pop {r4-r5} bx lr _020144AA: mov r0, #0x0 pop {r4-r5} bx lr thumb_func_start FUN_020144B0 FUN_020144B0: ; 0x020144B0 push {r3, lr} add r3, r0, #0x0 add r3, #0x4d ldrb r3, [r3, #0x0] mov r0, #0x0 mov r2, #0x20 lsl r3, r3, #0x15 lsr r3, r3, #0x10 bl FUN_02017FB4 pop {r3, pc} .balign 4 thumb_func_start FUN_020144C8 FUN_020144C8: ; 0x020144C8 push {r3, lr} add r3, r0, #0x0 add r3, #0x4d ldrb r3, [r3, #0x0] mov r0, #0x4 mov r2, #0x20 lsl r3, r3, #0x15 lsr r3, r3, #0x10 bl FUN_02017FB4 pop {r3, pc} .balign 4 thumb_func_start FUN_020144E0 FUN_020144E0: ; 0x020144E0 push {r3, lr} add r3, r0, #0x0 mov r0, #0x20 str r0, [sp, #0x0] ldr r0, [r3, #0x8] add r3, #0x4d ldrb r3, [r3, #0x0] mov r2, #0x0 lsl r3, r3, #0x14 lsr r3, r3, #0x10 bl FUN_02003054 pop {r3, pc} .balign 4 thumb_func_start FUN_020144FC FUN_020144FC: ; 0x020144FC push {r3, lr} add r3, r0, #0x0 mov r0, #0x20 str r0, [sp, #0x0] ldr r0, [r3, #0x8] add r3, #0x4d ldrb r3, [r3, #0x0] mov r2, #0x1 lsl r3, r3, #0x14 lsr r3, r3, #0x10 bl FUN_02003054 pop {r3, pc} .balign 4 thumb_func_start FUN_02014518 FUN_02014518: ; 0x02014518 push {r3-r7, lr} mov r1, #0x78 add r7, r0, #0x0 bl FUN_02016998 mov r1, #0x0 mov r2, #0x78 add r6, r0, #0x0 blx MI_CpuFill8 ldr r2, _02014560 ; =0x0000019E mov r0, #0x0 mov r1, #0x1a add r3, r7, #0x0 bl FUN_0200A86C str r0, [r6, #0x0] mov r4, #0x0 add r5, r6, #0x0 _0201453E: mov r0, #0x16 add r1, r7, #0x0 bl FUN_020219F4 str r0, [r5, #0x4] ldr r0, [r6, #0x0] ldr r2, [r5, #0x4] add r1, r4, #0x0 bl FUN_0200A8E0 add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, #0x1d blt _0201453E add r0, r6, #0x0 pop {r3-r7, pc} nop _02014560: .word 0x0000019E thumb_func_start FUN_02014564 FUN_02014564: ; 0x02014564 push {r4-r6, lr} add r6, r0, #0x0 add r5, r6, #0x0 mov r4, #0x1c add r5, #0x70 _0201456E: ldr r0, [r5, #0x4] bl FUN_02021A20 sub r5, r5, #0x4 sub r4, r4, #0x1 bpl _0201456E ldr r0, [r6, #0x0] bl FUN_0200A8B8 add r0, r6, #0x0 bl FUN_02016A18 pop {r4-r6, pc} thumb_func_start FUN_02014588 FUN_02014588: ; 0x02014588 lsl r1, r1, #0x2 add r0, r0, r1 ldr r0, [r0, #0x4] bx lr thumb_func_start FUN_02014590 FUN_02014590: ; 0x02014590 push {r3-r5, lr} add r5, r0, #0x0 mov r1, #0x9c bl FUN_02016998 add r1, r5, #0x0 add r4, r0, #0x0 bl FUN_020146F0 add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020145A8 FUN_020145A8: ; 0x020145A8 push {r4, lr} add r4, r0, #0x0 add r1, r4, #0x0 add r1, #0x9b ldrb r1, [r1, #0x0] lsl r1, r1, #0x1c lsr r1, r1, #0x1c cmp r1, #0x1 bne _020145BE bl FUN_020146C4 _020145BE: add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} .balign 4 thumb_func_start FUN_020145C8 FUN_020145C8: ; 0x020145C8 push {r3-r5, lr} add r4, r1, #0x0 ldr r2, [r4, #0x0] add r5, r0, #0x0 str r2, [r5, #0x7c] add r2, r5, #0x0 ldr r3, [r4, #0x4] add r2, #0x80 str r3, [r2, #0x0] add r2, r5, #0x0 ldrb r3, [r4, #0x10] add r2, #0x98 strb r3, [r2, #0x0] add r2, r5, #0x0 ldrb r3, [r4, #0x11] add r2, #0x99 strb r3, [r2, #0x0] bl FUN_02014730 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02014754 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02014784 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02014814 add r0, r5, #0x0 add r0, #0x9b ldrb r1, [r0, #0x0] mov r0, #0xf bic r1, r0 mov r0, #0x1 orr r1, r0 add r0, r5, #0x0 add r0, #0x9b strb r1, [r0, #0x0] add r0, r5, #0x0 add r0, #0x9b ldrb r1, [r0, #0x0] mov r0, #0xf0 add r5, #0x9b bic r1, r0 mov r0, #0x80 orr r0, r1 strb r0, [r5, #0x0] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02014630 FUN_02014630: ; 0x02014630 push {r4, lr} add r4, r0, #0x0 add r1, r4, #0x0 add r1, #0x9b ldrb r2, [r1, #0x0] mov r1, #0xf0 bic r2, r1 mov r1, #0x80 orr r2, r1 add r1, r4, #0x0 add r1, #0x9b strb r2, [r1, #0x0] bl FUN_0201466C cmp r0, #0x0 bne _0201466A add r1, r4, #0x0 add r1, #0x9b ldrb r1, [r1, #0x0] lsl r1, r1, #0x18 lsr r1, r1, #0x1c bne _0201466A add r4, #0x9a ldrb r0, [r4, #0x0] cmp r0, #0x0 bne _02014668 mov r0, #0x3 pop {r4, pc} _02014668: mov r0, #0x4 _0201466A: pop {r4, pc} thumb_func_start FUN_0201466C FUN_0201466C: ; 0x0201466C push {r4, lr} add r4, r0, #0x0 add r0, #0x9b ldrb r0, [r0, #0x0] lsl r0, r0, #0x1c lsr r0, r0, #0x1c cmp r0, #0x1 beq _02014680 bl ErrorHandling _02014680: add r0, r4, #0x0 add r0, #0x9a ldrb r0, [r0, #0x0] cmp r0, #0x3 bne _02014690 ldr r0, [r4, #0x0] bl FUN_02022144 _02014690: add r1, r4, #0x0 add r1, #0x9a ldrb r2, [r1, #0x0] mov r0, #0x0 cmp r2, #0x3 beq _020146AA add r1, r4, #0x0 mov r0, #0x38 add r1, #0xc mul r0, r2 add r0, r1, r0 bl FUN_02014930 _020146AA: cmp r0, #0x1 bne _020146BE add r4, #0x9a ldrb r0, [r4, #0x0] cmp r0, #0x0 bne _020146BA mov r0, #0x1 pop {r4, pc} _020146BA: mov r0, #0x2 pop {r4, pc} _020146BE: mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_020146C4 FUN_020146C4: ; 0x020146C4 push {r4-r6, lr} add r6, r0, #0x0 ldr r0, [r6, #0x0] bl FUN_0202212C add r5, r6, #0x0 mov r4, #0x0 add r5, #0xc _020146D4: add r0, r5, #0x0 bl FUN_02014970 add r4, r4, #0x1 add r5, #0x38 cmp r4, #0x2 blt _020146D4 add r0, r6, #0x0 add r6, #0x84 ldr r1, [r6, #0x0] bl FUN_020146F0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_020146F0 FUN_020146F0: ; 0x020146F0 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 mov r1, #0x0 mov r2, #0x9c blx FUN_020DF4A4 add r0, r5, #0x0 add r0, #0x9b ldrb r1, [r0, #0x0] mov r0, #0xf bic r1, r0 add r0, r5, #0x0 add r0, #0x9b strb r1, [r0, #0x0] add r0, r5, #0x0 add r0, #0x84 str r4, [r0, #0x0] add r0, r5, #0x0 mov r1, #0x3 add r0, #0x9a strb r1, [r0, #0x0] add r0, r5, #0x0 add r0, #0x9b ldrb r1, [r0, #0x0] mov r0, #0xf0 add r5, #0x9b bic r1, r0 mov r0, #0x80 orr r0, r1 strb r0, [r5, #0x0] pop {r3-r5, pc} thumb_func_start FUN_02014730 FUN_02014730: ; 0x02014730 push {r3, lr} sub sp, #0x8 add r3, r0, #0x0 ldr r0, [r1, #0x8] mov r1, #0x1 str r0, [sp, #0x0] add r0, r3, #0x0 add r0, #0x84 ldr r0, [r0, #0x0] str r0, [sp, #0x4] ldr r2, [r3, #0x7c] add r3, #0x80 ldr r3, [r3, #0x0] mov r0, #0x54 bl FUN_02014A3C add sp, #0x8 pop {r3, pc} thumb_func_start FUN_02014754 FUN_02014754: ; 0x02014754 push {r3, lr} sub sp, #0x8 add r3, r1, #0x0 add r1, r0, #0x0 add r1, #0x80 ldr r1, [r1, #0x0] cmp r1, #0x4 bhs _02014768 mov r2, #0x0 b _0201476A _02014768: mov r2, #0x4 _0201476A: mov r1, #0x40 str r1, [sp, #0x0] add r0, #0x84 ldr r0, [r0, #0x0] mov r1, #0x0 str r0, [sp, #0x4] ldr r3, [r3, #0xc] mov r0, #0x54 lsl r3, r3, #0x5 bl FUN_02014A8C add sp, #0x8 pop {r3, pc} thumb_func_start FUN_02014784 FUN_02014784: ; 0x02014784 push {r3-r7, lr} sub sp, #0x30 add r7, r0, #0x0 mov r3, #0x0 add r4, r7, #0x0 _0201478E: add r0, r4, #0x0 add r3, r3, #0x1 lsl r2, r3, #0xc add r0, #0x88 add r4, r4, #0x4 str r2, [r0, #0x0] cmp r3, #0x4 blt _0201478E ldr r0, [r7, #0x7c] mov r5, #0x0 str r0, [sp, #0x0] add r0, r7, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] add r4, r7, #0x0 str r0, [sp, #0x4] mov r0, #0x54 str r0, [sp, #0x8] ldr r0, [r1, #0x8] add r6, r5, #0x0 str r0, [sp, #0x1c] ldr r0, [r1, #0xc] add r4, #0xc str r0, [sp, #0x20] add r0, r7, #0x0 add r0, #0x88 str r0, [sp, #0x24] mov r0, #0x4 str r0, [sp, #0x28] add r0, r7, #0x0 add r0, #0x98 ldrb r1, [r0, #0x0] add r0, sp, #0x20 strb r1, [r0, #0xc] _020147D2: mov r1, #0x0 mov r2, #0x2 add r3, sp, #0x0 _020147D8: add r0, r5, r2 str r0, [r3, #0xc] add r1, r1, #0x1 add r2, r2, #0x2 add r3, r3, #0x4 cmp r1, #0x4 blt _020147D8 add r0, r7, #0x0 add r0, #0x99 ldrb r0, [r0, #0x0] add r2, r7, #0x0 add r2, #0x84 add r1, r0, r6 add r0, sp, #0x20 strb r1, [r0, #0xd] ldr r0, [sp, #0x20] add r1, sp, #0x0 add r0, r0, r5 str r0, [sp, #0x20] ldr r2, [r2, #0x0] add r0, r4, #0x0 bl FUN_020148A8 add r5, r5, #0x1 add r6, r6, #0x4 add r4, #0x38 cmp r5, #0x2 blt _020147D2 add sp, #0x30 pop {r3-r7, pc} thumb_func_start FUN_02014814 FUN_02014814: ; 0x02014814 push {r3-r4, lr} sub sp, #0x4 add r4, r0, #0x0 mov r0, #0x0 add r1, r0, #0x0 add r2, r4, #0x0 _02014820: add r3, r4, #0x0 add r3, #0x99 ldrb r3, [r3, #0x0] add r0, r0, #0x1 lsl r3, r3, #0x3 add r3, r3, r1 strb r3, [r2, #0x4] add r3, r4, #0x0 add r3, #0x99 ldrb r3, [r3, #0x0] lsl r3, r3, #0x3 add r3, r3, r1 add r3, #0x20 strb r3, [r2, #0x5] add r3, r4, #0x0 add r3, #0x98 ldrb r3, [r3, #0x0] add r1, #0x20 lsl r3, r3, #0x3 strb r3, [r2, #0x6] add r3, r4, #0x0 add r3, #0x98 ldrb r3, [r3, #0x0] lsl r3, r3, #0x3 add r3, #0x30 strb r3, [r2, #0x7] add r2, r2, #0x4 cmp r0, #0x2 blt _02014820 add r0, r4, #0x0 add r0, #0x84 ldr r0, [r0, #0x0] ldr r2, _02014874 ; =FUN_02014878 str r0, [sp, #0x0] add r0, r4, #0x4 mov r1, #0x2 add r3, r4, #0x0 bl FUN_020220C4 str r0, [r4, #0x0] add sp, #0x4 pop {r3-r4, pc} .balign 4 _02014874: .word FUN_02014878 thumb_func_start FUN_02014878 FUN_02014878: ; 0x02014878 push {r4, lr} add r3, r2, #0x0 add r3, #0x9b ldrb r3, [r3, #0x0] mov r4, #0xf0 bic r3, r4 lsl r4, r1, #0x18 lsr r4, r4, #0x18 lsl r4, r4, #0x1c lsr r4, r4, #0x18 orr r4, r3 add r3, r2, #0x0 add r3, #0x9b strb r4, [r3, #0x0] cmp r1, #0x0 bne _020148A2 add r2, #0x9a strb r0, [r2, #0x0] ldr r0, _020148A4 ; =0x000005E4 bl FUN_020054C8 _020148A2: pop {r4, pc} .balign 4 _020148A4: .word 0x000005E4 thumb_func_start FUN_020148A8 FUN_020148A8: ; 0x020148A8 push {r3-r7, lr} sub sp, #0x10 add r5, r1, #0x0 str r2, [sp, #0x8] str r0, [sp, #0x4] ldr r1, [r5, #0x24] ldr r2, [r5, #0x28] add r0, #0x28 bl FUN_020149FC ldr r1, [r5, #0x0] ldr r0, [sp, #0x4] ldr r6, [sp, #0x4] str r1, [r0, #0x0] ldr r1, [r5, #0x4] ldr r4, [sp, #0x4] str r1, [r0, #0x4] add r0, r5, #0x0 add r0, #0x2c ldrb r1, [r0, #0x0] ldr r0, [sp, #0x4] add r6, #0x18 add r0, #0x34 strb r1, [r0, #0x0] add r0, r5, #0x0 add r0, #0x2d ldrb r1, [r0, #0x0] ldr r0, [sp, #0x4] add r7, r5, #0x0 add r0, #0x35 strb r1, [r0, #0x0] mov r0, #0x0 str r0, [sp, #0xc] _020148EA: ldr r0, [sp, #0x8] mov r2, #0x1 str r0, [sp, #0x0] ldr r0, [r5, #0x8] ldr r1, [r7, #0xc] add r3, r6, #0x0 bl FUN_02006BDC str r0, [r4, #0x8] ldr r0, [r4, #0x18] ldr r1, [r5, #0x1c] bl FUN_02014BA4 ldr r0, [r4, #0x18] ldr r1, [r5, #0x20] bl FUN_02014BC4 ldr r0, [sp, #0xc] add r6, r6, #0x4 add r0, r0, #0x1 add r7, r7, #0x4 add r4, r4, #0x4 str r0, [sp, #0xc] cmp r0, #0x4 blt _020148EA ldr r0, [sp, #0x4] bl FUN_020149D0 ldr r0, [sp, #0x4] mov r1, #0x0 add r0, #0x36 str r0, [sp, #0x4] strb r1, [r0, #0x0] add sp, #0x10 pop {r3-r7, pc} thumb_func_start FUN_02014930 FUN_02014930: ; 0x02014930 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x28 bl FUN_02014A10 add r4, r0, #0x0 add r0, r5, #0x0 add r0, #0x36 ldrb r0, [r0, #0x0] cmp r0, r4 beq _02014952 add r0, r5, #0x0 bl FUN_020149D0 add r0, r5, #0x0 add r0, #0x36 strb r4, [r0, #0x0] _02014952: ldr r0, [r5, #0x2c] sub r0, r0, #0x1 cmp r4, r0 bne _0201495E mov r0, #0x1 pop {r3-r5, pc} _0201495E: add r5, #0x28 mov r1, #0x1 add r0, r5, #0x0 lsl r1, r1, #0xc bl FUN_02014A08 mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02014970 FUN_02014970: ; 0x02014970 push {r4-r6, lr} sub sp, #0x10 add r6, r0, #0x0 add r0, #0x35 ldrb r0, [r0, #0x0] ldr r1, [r6, #0x18] add r3, r6, #0x0 str r0, [sp, #0x0] ldrh r0, [r1, #0x0] mov r2, #0x0 add r3, #0x34 lsl r0, r0, #0x15 lsr r0, r0, #0x18 str r0, [sp, #0x4] ldrh r0, [r1, #0x2] lsl r0, r0, #0x15 lsr r0, r0, #0x18 str r0, [sp, #0x8] str r2, [sp, #0xc] ldr r1, [r6, #0x4] ldrb r3, [r3, #0x0] lsl r1, r1, #0x18 ldr r0, [r6, #0x0] lsr r1, r1, #0x18 bl FUN_02018540 ldr r1, [r6, #0x4] ldr r0, [r6, #0x0] lsl r1, r1, #0x18 lsr r1, r1, #0x18 bl FUN_0201AC68 mov r4, #0x0 add r5, r6, #0x0 _020149B4: ldr r0, [r5, #0x8] bl FUN_02016A18 add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, #0x4 blt _020149B4 add r0, r6, #0x0 mov r1, #0x0 mov r2, #0x38 blx FUN_020DF4A4 add sp, #0x10 pop {r4-r6, pc} thumb_func_start FUN_020149D0 FUN_020149D0: ; 0x020149D0 push {r3-r4, lr} sub sp, #0x4 add r4, r0, #0x0 add r0, #0x28 bl FUN_02014A10 add r2, r0, #0x0 add r0, r4, #0x0 add r0, #0x35 ldrb r0, [r0, #0x0] lsl r2, r2, #0x2 add r2, r4, r2 str r0, [sp, #0x0] ldr r0, [r4, #0x0] ldr r1, [r4, #0x4] add r4, #0x34 ldrb r3, [r4, #0x0] ldr r2, [r2, #0x18] bl FUN_02014B58 add sp, #0x4 pop {r3-r4, pc} thumb_func_start FUN_020149FC FUN_020149FC: ; 0x020149FC str r1, [r0, #0x0] str r2, [r0, #0x4] mov r1, #0x0 str r1, [r0, #0x8] bx lr .balign 4 thumb_func_start FUN_02014A08 FUN_02014A08: ; 0x02014A08 ldr r2, [r0, #0x8] add r1, r2, r1 str r1, [r0, #0x8] bx lr thumb_func_start FUN_02014A10 FUN_02014A10: ; 0x02014A10 push {r4-r5} ldr r5, [r0, #0x4] mov r2, #0x0 cmp r5, #0x0 bls _02014A34 ldr r3, [r0, #0x0] ldr r4, [r0, #0x8] _02014A1E: ldr r1, [r3, #0x0] cmp r1, r4 blt _02014A2A add r0, r2, #0x0 pop {r4-r5} bx lr _02014A2A: ldr r1, [r0, #0x4] add r2, r2, #0x1 add r3, r3, #0x4 cmp r2, r1 blo _02014A1E _02014A34: sub r0, r5, #0x1 pop {r4-r5} bx lr .balign 4 thumb_func_start FUN_02014A3C FUN_02014A3C: ; 0x02014A3C push {r3-r7, lr} sub sp, #0x8 add r7, r0, #0x0 str r1, [sp, #0x4] ldr r0, [sp, #0x24] mov r1, #0x14 add r5, r2, #0x0 add r6, r3, #0x0 bl FUN_02016998 add r4, r0, #0x0 add r2, r4, #0x0 mov r1, #0x14 mov r0, #0x0 _02014A58: strb r0, [r2, #0x0] add r2, r2, #0x1 sub r1, r1, #0x1 bne _02014A58 ldr r0, [sp, #0x24] ldr r1, [sp, #0x4] str r0, [sp, #0x0] add r0, r7, #0x0 mov r2, #0x1 add r3, r4, #0x4 bl FUN_02006BB0 str r0, [r4, #0x8] str r5, [r4, #0x0] ldr r0, [sp, #0x20] str r6, [r4, #0xc] str r0, [r4, #0x10] ldr r0, _02014A88 ; =FUN_02014AD4 add r1, r4, #0x0 mov r2, #0x80 bl FUN_0200CA98 add sp, #0x8 pop {r3-r7, pc} .balign 4 _02014A88: .word FUN_02014AD4 thumb_func_start FUN_02014A8C FUN_02014A8C: ; 0x02014A8C push {r3-r7, lr} add r7, r0, #0x0 str r1, [sp, #0x0] ldr r0, [sp, #0x1c] mov r1, #0x14 add r5, r2, #0x0 add r6, r3, #0x0 bl FUN_02016998 add r4, r0, #0x0 add r2, r4, #0x0 mov r1, #0x14 mov r0, #0x0 _02014AA6: strb r0, [r2, #0x0] add r2, r2, #0x1 sub r1, r1, #0x1 bne _02014AA6 ldr r1, [sp, #0x0] ldr r3, [sp, #0x1c] add r0, r7, #0x0 add r2, r4, #0x0 bl FUN_02006C08 str r0, [r4, #0x4] str r5, [r4, #0x8] ldr r0, [sp, #0x18] str r6, [r4, #0xc] str r0, [r4, #0x10] ldr r0, _02014AD0 ; =FUN_02014B10 add r1, r4, #0x0 mov r2, #0x80 bl FUN_0200CA98 pop {r3-r7, pc} .balign 4 _02014AD0: .word FUN_02014B10 thumb_func_start FUN_02014AD4 FUN_02014AD4: ; 0x02014AD4 push {r3-r5, lr} add r4, r1, #0x0 ldr r1, [r4, #0x4] add r5, r0, #0x0 ldr r0, [r1, #0x14] ldr r1, [r1, #0x10] blx DC_FlushRange ldr r3, [r4, #0x4] ldr r0, [r4, #0x10] str r0, [sp, #0x0] ldr r1, [r4, #0xc] ldr r2, [r3, #0x14] lsl r1, r1, #0x18 ldr r0, [r4, #0x0] ldr r3, [r3, #0x10] lsr r1, r1, #0x18 bl FUN_02017E14 add r0, r5, #0x0 bl FUN_0200CAB4 ldr r0, [r4, #0x8] bl FUN_02016A18 add r0, r4, #0x0 bl FUN_02016A18 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02014B10 FUN_02014B10: ; 0x02014B10 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 ldr r0, [r4, #0x0] ldr r1, [r4, #0x10] ldr r0, [r0, #0xc] blx DC_FlushRange ldr r0, [r4, #0x8] cmp r0, #0x0 bne _02014B34 ldr r0, [r4, #0x0] ldr r1, [r4, #0xc] ldr r0, [r0, #0xc] ldr r2, [r4, #0x10] blx FUN_020C9550 b _02014B44 _02014B34: cmp r0, #0x4 bne _02014B44 ldr r0, [r4, #0x0] ldr r1, [r4, #0xc] ldr r0, [r0, #0xc] ldr r2, [r4, #0x10] blx FUN_020C94E8 _02014B44: add r0, r5, #0x0 bl FUN_0200CAB4 ldr r0, [r4, #0x4] bl FUN_02016A18 add r0, r4, #0x0 bl FUN_02016A18 pop {r3-r5, pc} thumb_func_start FUN_02014B58 FUN_02014B58: ; 0x02014B58 push {r3-r6, lr} sub sp, #0x1c add r4, r1, #0x0 add r1, r2, #0x0 add r2, r3, #0x0 ldrh r6, [r1, #0x0] ldrh r3, [r1, #0x2] lsl r2, r2, #0x18 lsl r6, r6, #0x15 lsr r6, r6, #0x18 lsl r3, r3, #0x15 str r6, [sp, #0x0] lsr r3, r3, #0x18 str r3, [sp, #0x4] add r1, #0xc str r1, [sp, #0x8] mov r1, #0x0 str r1, [sp, #0xc] str r1, [sp, #0x10] str r6, [sp, #0x14] str r3, [sp, #0x18] ldr r3, [sp, #0x30] lsl r1, r4, #0x18 lsl r3, r3, #0x18 lsr r1, r1, #0x18 lsr r2, r2, #0x18 lsr r3, r3, #0x18 add r5, r0, #0x0 bl FUN_02018170 lsl r1, r4, #0x18 add r0, r5, #0x0 lsr r1, r1, #0x18 bl FUN_0201AC68 add sp, #0x1c pop {r3-r6, pc} .balign 4 thumb_func_start FUN_02014BA4 FUN_02014BA4: ; 0x02014BA4 push {r3-r4} ldr r2, [r0, #0x8] add r0, #0xc lsr r4, r2, #0x1 mov r3, #0x0 cmp r4, #0x0 ble _02014BC0 _02014BB2: ldrh r2, [r0, #0x0] add r3, r3, #0x1 add r2, r2, r1 strh r2, [r0, #0x0] add r0, r0, #0x2 cmp r3, r4 blt _02014BB2 _02014BC0: pop {r3-r4} bx lr thumb_func_start FUN_02014BC4 FUN_02014BC4: ; 0x02014BC4 push {r4-r5} ldr r2, [r0, #0x8] add r0, #0xc lsr r3, r2, #0x1 mov r2, #0x0 cmp r3, #0x0 ble _02014BEA ldr r4, _02014BF0 ; =0x00000FFF lsl r1, r1, #0xc _02014BD6: ldrh r5, [r0, #0x0] add r2, r2, #0x1 and r5, r4 strh r5, [r0, #0x0] ldrh r5, [r0, #0x0] orr r5, r1 strh r5, [r0, #0x0] add r0, r0, #0x2 cmp r2, r3 blt _02014BD6 _02014BEA: pop {r4-r5} bx lr nop _02014BF0: .word 0x00000FFF thumb_func_start FUN_02014BF4 FUN_02014BF4: ; 0x02014BF4 push {r3-r7, lr} add r7, r1, #0x0 mov r1, #0xc add r5, r0, #0x0 add r6, r2, #0x0 bl FUN_02016998 add r4, r0, #0x0 strb r6, [r4, #0x8] mov r0, #0x1d strb r7, [r4, #0x9] lsl r0, r0, #0x4 add r6, r7, #0x0 mul r6, r0 add r0, r5, #0x0 add r1, r6, #0x0 str r5, [r4, #0x4] bl FUN_02016998 mov r1, #0x0 add r2, r6, #0x0 str r0, [r4, #0x0] blx MI_CpuFill8 add r0, r4, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02014C28 FUN_02014C28: ; 0x02014C28 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_02016A18 add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} .balign 4 thumb_func_start FUN_02014C3C FUN_02014C3C: ; 0x02014C3C push {r4, lr} add r4, r0, #0x0 cmp r4, #0x19 blo _02014C48 bl ErrorHandling _02014C48: ldr r0, _02014C50 ; =0x020ED64C ldrb r0, [r0, r4] pop {r4, pc} nop _02014C50: .word 0x020ED64C thumb_func_start FUN_02014C54 FUN_02014C54: ; 0x02014C54 push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 str r3, [sp, #0x4] add r0, r2, #0x0 ldrh r6, [r0, #0x0] ldrh r0, [r0, #0x2] add r7, r1, #0x0 ldrb r1, [r5, #0x9] str r0, [sp, #0x8] ldr r0, [sp, #0x4] str r2, [sp, #0x0] cmp r0, r1 blo _02014C74 bl ErrorHandling _02014C74: ldr r0, [sp, #0x4] mov r1, #0x1d add r4, r0, #0x0 lsl r1, r1, #0x4 ldr r0, [r5, #0x0] mul r4, r1 add r0, r0, r4 ldr r0, [r0, #0x10] cmp r0, #0x0 beq _02014C8C bl ErrorHandling _02014C8C: ldr r0, [r5, #0x0] mov r2, #0x1d add r0, r0, r4 mov r1, #0x0 lsl r2, r2, #0x4 blx MI_CpuFill8 ldr r0, [r5, #0x0] mov r1, #0x1 add r0, r0, r4 str r1, [r0, #0x10] ldr r0, [r5, #0x0] cmp r6, #0x86 str r7, [r0, r4] blt _02014CAE mov r6, #0x0 str r6, [sp, #0x8] _02014CAE: ldr r0, [r5, #0x0] add r0, r0, r4 str r6, [r0, #0x14] ldrb r0, [r5, #0x8] cmp r0, #0x0 beq _02014CC0 ldr r0, [sp, #0x0] ldrb r2, [r0, #0x4] b _02014CC2 _02014CC0: mov r2, #0x0 _02014CC2: ldr r0, [r5, #0x0] add r1, r0, r4 mov r0, #0x73 lsl r0, r0, #0x2 strb r2, [r1, r0] ldr r1, [r5, #0x0] ldr r2, [r5, #0x4] add r1, r1, r4 ldr r1, [r1, #0x14] mov r0, #0x5e bl FUN_02006528 ldr r1, [r5, #0x0] mov r2, #0x0 add r1, r1, r4 str r0, [r1, #0x8] ldr r0, [r5, #0x0] mov r6, #0x1c add r1, r0, r4 ldr r0, [r1, #0x8] str r0, [r1, #0xc] ldr r0, [r5, #0x0] add r0, r0, r4 str r2, [r0, #0x1c] ldr r0, [r5, #0x0] add r0, r0, r4 str r2, [r0, #0x20] ldr r0, [r5, #0x0] add r1, r0, r4 ldr r0, _02014D74 ; =0x000001CD strb r2, [r1, r0] ldr r1, [r5, #0x0] add r3, r1, r4 add r1, r0, #0x1 strb r6, [r3, r1] ldr r1, [r5, #0x0] add r0, r0, #0x2 add r1, r1, r4 strb r2, [r1, r0] ldr r1, [r5, #0x0] ldr r0, _02014D78 ; =FUN_02014DD8 add r1, r1, r4 bl FUN_0200CA44 ldr r1, [r5, #0x0] add r1, r1, r4 str r0, [r1, #0x4] ldr r0, [r5, #0x0] add r1, r0, r4 ldr r0, [sp, #0x8] str r0, [r1, #0x54] add r0, r7, #0x0 mov r1, #0x0 bl FUN_0200782C ldr r1, [r5, #0x0] add r1, r1, r4 str r0, [r1, #0x58] add r0, r7, #0x0 mov r1, #0x1 bl FUN_0200782C ldr r1, [r5, #0x0] add r1, r1, r4 str r0, [r1, #0x5c] ldr r1, [r5, #0x0] mov r0, #0x0 add r1, r1, r4 str r0, [r1, #0x60] ldr r1, [r5, #0x0] add r1, r1, r4 str r0, [r1, #0x64] ldr r1, [r5, #0x0] add r1, r1, r4 str r0, [r1, #0x68] ldr r1, [r5, #0x0] add r1, r1, r4 str r0, [r1, #0x6c] ldr r1, [r5, #0x0] add r1, r1, r4 str r0, [r1, #0x70] ldr r1, [r5, #0x0] add r1, r1, r4 str r0, [r1, #0x74] ldr r1, [r5, #0x0] add r1, r1, r4 str r0, [r1, #0x78] add sp, #0xc pop {r4-r7, pc} .balign 4 _02014D74: .word 0x000001CD _02014D78: .word FUN_02014DD8 thumb_func_start FUN_02014D7C FUN_02014D7C: ; 0x02014D7C push {r3-r5, lr} add r5, r0, #0x0 ldrb r0, [r5, #0x9] add r4, r1, #0x0 cmp r4, r0 blo _02014D8C bl ErrorHandling _02014D8C: mov r0, #0x1d lsl r0, r0, #0x4 ldr r1, [r5, #0x0] mul r0, r4 add r0, r1, r0 ldr r0, [r0, #0x20] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02014D9C FUN_02014D9C: ; 0x02014D9C push {r3-r5, lr} add r5, r0, #0x0 mov r0, #0x1d lsl r0, r0, #0x4 add r4, r1, #0x0 mul r4, r0 ldr r0, [r5, #0x0] add r0, r0, r4 ldr r0, [r0, #0x4] cmp r0, #0x0 beq _02014DD6 bl FUN_0200CAB4 ldr r1, [r5, #0x0] mov r0, #0x0 add r1, r1, r4 str r0, [r1, #0x4] ldr r1, [r5, #0x0] mov r2, #0x1 add r1, r1, r4 str r2, [r1, #0x20] ldr r1, [r5, #0x0] add r1, r1, r4 str r0, [r1, #0x10] ldr r0, [r5, #0x0] add r0, r0, r4 ldr r0, [r0, #0x8] bl FUN_02016A18 _02014DD6: pop {r3-r5, pc} thumb_func_start FUN_02014DD8 FUN_02014DD8: ; 0x02014DD8 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 ldr r0, [r4, #0x54] cmp r0, #0x0 bne _02014DEC add r0, r4, #0x0 bl FUN_02014E10 b _02014DF0 _02014DEC: sub r0, r0, #0x1 str r0, [r4, #0x54] _02014DF0: ldr r0, [r4, #0x1c] cmp r0, #0x0 beq _02014E0E mov r0, #0x1 str r0, [r4, #0x20] mov r0, #0x0 str r0, [r4, #0x10] add r0, r5, #0x0 bl FUN_0200CAB4 mov r0, #0x0 str r0, [r4, #0x4] ldr r0, [r4, #0x8] bl FUN_02016A18 _02014E0E: pop {r3-r5, pc} thumb_func_start FUN_02014E10 FUN_02014E10: ; 0x02014E10 push {r3-r7, lr} add r5, r0, #0x0 mov r6, #0x0 str r6, [r5, #0x18] add r7, r5, #0x0 str r6, [r5, #0x44] add r4, r6, #0x0 add r7, #0x7c _02014E20: mov r0, #0x54 add r1, r4, #0x0 mul r1, r0 add r0, r7, r1 ldr r1, [r7, r1] cmp r1, #0x0 beq _02014E4E add r1, r0, #0x0 add r1, #0x2d ldrb r1, [r1, #0x0] cmp r1, #0x0 bne _02014E40 ldr r2, [r0, #0x50] add r1, r5, #0x0 blx r2 b _02014E54 _02014E40: add r1, r0, #0x0 add r1, #0x2d ldrb r1, [r1, #0x0] add r0, #0x2d sub r1, r1, #0x1 strb r1, [r0, #0x0] b _02014E54 _02014E4E: add r0, r6, #0x1 lsl r0, r0, #0x18 lsr r6, r0, #0x18 _02014E54: add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #0x4 blo _02014E20 cmp r6, #0x4 bne _02014E68 ldr r0, _02014EFC ; =0x000001CD mov r1, #0x0 strb r1, [r5, r0] _02014E68: ldr r0, _02014EFC ; =0x000001CD ldrb r1, [r5, r0] cmp r1, #0x0 beq _02014E7E add r0, r5, #0x0 bl FUN_020156E8 add r0, r5, #0x0 bl FUN_02015730 pop {r3-r7, pc} _02014E7E: add r0, r0, #0x2 ldrb r0, [r5, r0] cmp r0, #0x0 beq _02014E96 ldr r0, [r5, #0x0] bl FUN_02007F20 cmp r0, #0x0 bne _02014EF8 ldr r0, _02014F00 ; =0x000001CF mov r1, #0x0 strb r1, [r5, r0] _02014E96: add r6, r5, #0x0 add r4, r5, #0x0 ldr r7, _02014F04 ; =0x020ED6A4 add r6, #0xc add r4, #0x44 _02014EA0: ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] ldr r0, [r5, #0xc] ldr r0, [r0, #0x0] cmp r0, #0x22 blo _02014EB2 bl ErrorHandling _02014EB2: ldr r1, [r5, #0xc] add r0, r5, #0x0 ldr r1, [r1, #0x0] lsl r1, r1, #0x2 ldr r1, [r7, r1] blx r1 ldr r0, [r5, #0x1c] cmp r0, #0x0 bne _02014EF8 ldr r0, [r6, #0x0] add r0, r0, #0x4 str r0, [r6, #0x0] ldr r0, [r5, #0x18] cmp r0, #0x0 bne _02014EF8 ldr r0, _02014EFC ; =0x000001CD ldrb r0, [r5, r0] cmp r0, #0x0 beq _02014EE6 add r0, r5, #0x0 bl FUN_020156E8 add r0, r5, #0x0 bl FUN_02015730 pop {r3-r7, pc} _02014EE6: mov r0, #0x1 ldr r1, [r5, #0x44] lsl r0, r0, #0x8 cmp r1, r0 blt _02014EA0 bl ErrorHandling mov r0, #0x1 str r0, [r5, #0x1c] _02014EF8: pop {r3-r7, pc} nop _02014EFC: .word 0x000001CD _02014F00: .word 0x000001CF _02014F04: .word 0x020ED6A4 thumb_func_start FUN_02014F08 FUN_02014F08: ; 0x02014F08 push {r4, lr} lsl r1, r1, #0x2 ldr r4, [r0, r1] cmp r2, #0x1 beq _02014F16 bl ErrorHandling _02014F16: add r0, r4, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02014F1C FUN_02014F1C: ; 0x02014F1C ldr r3, _02014F24 ; =FUN_02014F08 add r2, r1, #0x0 mov r1, #0x0 bx r3 .balign 4 _02014F24: .word FUN_02014F08 thumb_func_start FUN_02014F28 FUN_02014F28: ; 0x02014F28 ldr r3, _02014F30 ; =0x02014F1D mov r1, #0x1 bx r3 nop _02014F30: .word 0x02014F1D thumb_func_start FUN_02014F34 FUN_02014F34: ; 0x02014F34 push {r3-r5, lr} add r5, r1, #0x0 mov r3, #0x0 add r0, #0x7c mov r2, #0x54 _02014F3E: add r1, r3, #0x0 mul r1, r2 add r4, r0, r1 ldr r1, [r0, r1] cmp r1, #0x0 bne _02014F68 add r0, r4, #0x0 mov r1, #0x0 mov r2, #0x54 blx MI_CpuFill8 mov r0, #0x1 str r0, [r4, #0x0] mov r0, #0xc add r1, r5, #0x0 mul r1, r0 ldr r0, _02014F7C ; =0x020ED668 ldr r0, [r0, r1] str r0, [r4, #0x50] add r0, r4, #0x0 pop {r3-r5, pc} _02014F68: add r1, r3, #0x1 lsl r1, r1, #0x18 lsr r3, r1, #0x18 cmp r3, #0x4 blo _02014F3E bl ErrorHandling mov r0, #0x0 pop {r3-r5, pc} nop _02014F7C: .word 0x020ED668 thumb_func_start FUN_02014F80 FUN_02014F80: ; 0x02014F80 push {r4, lr} add r4, r1, #0x0 ldr r1, [r0, #0xc] add r1, r1, #0x4 str r1, [r0, #0xc] add r0, r1, #0x0 bl FUN_02014F28 str r0, [r4, #0x0] pop {r4, pc} thumb_func_start FUN_02014F94 FUN_02014F94: ; 0x02014F94 push {r4, lr} add r4, r1, #0x0 ldr r1, [r0, #0xc] add r1, r1, #0x4 str r1, [r0, #0xc] add r0, r1, #0x0 bl FUN_02014F28 strb r0, [r4, #0x0] pop {r4, pc} thumb_func_start FUN_02014FA8 FUN_02014FA8: ; 0x02014FA8 push {r4, lr} add r4, r1, #0x0 ldr r1, [r0, #0xc] add r1, r1, #0x4 str r1, [r0, #0xc] add r0, r1, #0x0 bl FUN_02014F28 strb r0, [r4, #0x0] ldrb r0, [r4, #0x0] cmp r0, #0x8 blo _02014FC4 bl ErrorHandling _02014FC4: pop {r4, pc} .balign 4 thumb_func_start FUN_02014FC8 FUN_02014FC8: ; 0x02014FC8 push {r3-r5, lr} add r5, r0, #0x0 add r4, r2, #0x0 bl FUN_02014FA8 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02014FA8 pop {r3-r5, pc} thumb_func_start FUN_02014FDC FUN_02014FDC: ; 0x02014FDC push {r3-r6, lr} sub sp, #0x4 add r5, r0, #0x0 add r4, r2, #0x0 add r6, r3, #0x0 bl FUN_02014FA8 add r0, r5, #0x0 add r1, sp, #0x0 bl FUN_02014F94 add r0, sp, #0x0 ldrb r0, [r0, #0x0] cmp r0, #0x12 bne _0201501C add r1, sp, #0x0 add r0, r5, #0x0 add r1, #0x2 bl FUN_02014FA8 add r0, sp, #0x0 ldrb r0, [r0, #0x2] add r1, r6, #0x0 lsl r0, r0, #0x2 add r0, r5, r0 ldr r0, [r0, #0x24] str r0, [r4, #0x0] add r0, r5, #0x0 bl FUN_02014F80 add sp, #0x4 pop {r3-r6, pc} _0201501C: cmp r0, #0x13 bne _02015048 add r1, sp, #0x0 add r2, sp, #0x0 add r0, r5, #0x0 add r1, #0x2 add r2, #0x1 bl FUN_02014FC8 add r0, sp, #0x0 ldrb r1, [r0, #0x2] add sp, #0x4 lsl r1, r1, #0x2 add r1, r5, r1 ldr r1, [r1, #0x24] str r1, [r4, #0x0] ldrb r0, [r0, #0x1] lsl r0, r0, #0x2 add r0, r5, r0 ldr r0, [r0, #0x24] str r0, [r6, #0x0] pop {r3-r6, pc} _02015048: bl ErrorHandling add sp, #0x4 pop {r3-r6, pc} thumb_func_start FUN_02015050 FUN_02015050: ; 0x02015050 push {r3-r6, lr} sub sp, #0x4 add r5, r0, #0x0 add r4, r2, #0x0 add r6, r3, #0x0 bl FUN_02014FA8 add r1, sp, #0x0 add r0, r5, #0x0 add r1, #0x1 bl FUN_02014F94 add r0, r5, #0x0 add r1, sp, #0x0 bl FUN_02014F94 add r0, sp, #0x0 ldrb r0, [r0, #0x1] cmp r0, #0x12 bne _02015082 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02014F80 b _020150A2 _02015082: cmp r0, #0x13 bne _0201509E add r1, sp, #0x0 add r0, r5, #0x0 add r1, #0x3 bl FUN_02014FA8 add r0, sp, #0x0 ldrb r0, [r0, #0x3] lsl r0, r0, #0x2 add r0, r5, r0 ldr r0, [r0, #0x24] str r0, [r4, #0x0] b _020150A2 _0201509E: bl ErrorHandling _020150A2: add r0, sp, #0x0 ldrb r0, [r0, #0x0] cmp r0, #0x12 bne _020150B6 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02014F80 add sp, #0x4 pop {r3-r6, pc} _020150B6: cmp r0, #0x13 bne _020150D4 add r1, sp, #0x0 add r0, r5, #0x0 add r1, #0x2 bl FUN_02014FA8 add r0, sp, #0x0 ldrb r0, [r0, #0x2] add sp, #0x4 lsl r0, r0, #0x2 add r0, r5, r0 ldr r0, [r0, #0x24] str r0, [r6, #0x0] pop {r3-r6, pc} _020150D4: bl ErrorHandling add sp, #0x4 pop {r3-r6, pc} thumb_func_start FUN_020150DC FUN_020150DC: ; 0x020150DC push {r3-r7, lr} sub sp, #0x8 add r4, r2, #0x0 add r2, sp, #0x0 add r2, #0x3 add r5, r0, #0x0 add r6, r3, #0x0 bl FUN_02014FC8 add r0, sp, #0x0 ldrb r0, [r0, #0x3] add r1, sp, #0x0 lsl r0, r0, #0x2 add r0, r5, r0 ldr r7, [r0, #0x24] add r0, r5, #0x0 bl FUN_02014F94 add r0, sp, #0x0 ldrb r0, [r0, #0x0] cmp r0, #0x14 bne _02015112 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02014F80 b _02015132 _02015112: cmp r0, #0x15 bne _0201512E add r1, sp, #0x0 add r0, r5, #0x0 add r1, #0x2 bl FUN_02014FA8 add r0, sp, #0x0 ldrb r0, [r0, #0x2] lsl r0, r0, #0x2 add r0, r5, r0 ldr r0, [r0, #0x24] str r0, [r6, #0x0] b _02015132 _0201512E: bl ErrorHandling _02015132: add r0, r5, #0x0 add r1, sp, #0x0 bl FUN_02014F94 add r0, sp, #0x0 ldrb r0, [r0, #0x0] cmp r0, #0x14 bne _0201514C add r0, r5, #0x0 add r1, sp, #0x4 bl FUN_02014F80 b _0201516C _0201514C: cmp r0, #0x15 bne _02015168 add r1, sp, #0x0 add r0, r5, #0x0 add r1, #0x1 bl FUN_02014FA8 add r0, sp, #0x0 ldrb r0, [r0, #0x1] lsl r0, r0, #0x2 add r0, r5, r0 ldr r0, [r0, #0x24] str r0, [sp, #0x4] b _0201516C _02015168: bl ErrorHandling _0201516C: ldr r0, [sp, #0x4] add r0, r7, r0 lsr r2, r0, #0x1f lsl r1, r0, #0x10 sub r1, r1, r2 mov r0, #0x10 ror r1, r0 add r0, r2, r1 str r0, [r4, #0x0] add sp, #0x8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02015184 FUN_02015184: ; 0x02015184 ldr r2, [r0, #0x0] ldr r0, [r1, #0x0] sub r0, r2, r0 bpl _02015190 mov r0, #0xf bx lr _02015190: cmp r0, #0x0 ble _02015198 mov r0, #0x10 bx lr _02015198: mov r0, #0x11 bx lr thumb_func_start FUN_0201519C FUN_0201519C: ; 0x0201519C add r2, r0, #0x0 ldr r0, [r2, #0x0] ldr r2, [r2, #0x74] mov r1, #0x1 neg r3, r2 asr r2, r3, #0x2 lsr r2, r2, #0x1d add r2, r3, r2 ldr r3, _020151B4 ; =FUN_020079E0 asr r2, r2, #0x3 bx r3 nop _020151B4: .word FUN_020079E0 thumb_func_start FUN_020151B8 FUN_020151B8: ; 0x020151B8 push {r4, lr} add r4, r0, #0x0 bl FUN_020151D0 mov r0, #0x1 str r0, [r4, #0x18] str r0, [r4, #0x1c] pop {r4, pc} thumb_func_start FUN_020151C8 FUN_020151C8: ; 0x020151C8 mov r1, #0x1 str r1, [r0, #0x18] bx lr .balign 4 thumb_func_start FUN_020151D0 FUN_020151D0: ; 0x020151D0 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] ldr r2, [r4, #0x58] mov r1, #0x0 bl FUN_02007558 ldr r0, [r4, #0x0] ldr r2, [r4, #0x5c] mov r1, #0x1 bl FUN_02007558 ldr r0, [r4, #0x0] mov r1, #0x9 mov r2, #0x0 bl FUN_02007558 ldr r0, [r4, #0x0] mov r1, #0xa mov r2, #0x0 bl FUN_02007558 mov r1, #0xc add r2, r1, #0x0 ldr r0, [r4, #0x0] add r2, #0xf4 bl FUN_02007558 mov r1, #0xd add r2, r1, #0x0 ldr r0, [r4, #0x0] add r2, #0xf3 bl FUN_02007558 pop {r4, pc} .balign 4 thumb_func_start FUN_02015218 FUN_02015218: ; 0x02015218 push {r3-r4, lr} sub sp, #0x4 add r1, sp, #0x0 add r1, #0x1 add r2, sp, #0x0 add r4, r0, #0x0 bl FUN_02014FC8 add r0, sp, #0x0 ldrb r1, [r0, #0x0] ldrb r0, [r0, #0x1] lsl r1, r1, #0x2 add r1, r4, r1 lsl r0, r0, #0x2 ldr r1, [r1, #0x24] add r0, r4, r0 str r1, [r0, #0x24] add sp, #0x4 pop {r3-r4, pc} .balign 4 thumb_func_start FUN_02015240 FUN_02015240: ; 0x02015240 push {r3-r4, lr} sub sp, #0xc add r1, sp, #0x0 add r2, sp, #0x8 add r3, sp, #0x4 add r4, r0, #0x0 bl FUN_02014FDC ldr r1, [sp, #0x8] ldr r0, [sp, #0x4] add r1, r1, r0 add r0, sp, #0x0 ldrb r0, [r0, #0x0] lsl r0, r0, #0x2 add r0, r4, r0 str r1, [r0, #0x24] add sp, #0xc pop {r3-r4, pc} thumb_func_start FUN_02015264 FUN_02015264: ; 0x02015264 push {r3-r4, lr} sub sp, #0xc add r1, sp, #0x0 add r2, sp, #0x8 add r3, sp, #0x4 add r4, r0, #0x0 bl FUN_02014FDC ldr r1, [sp, #0x8] ldr r0, [sp, #0x4] add r2, r1, #0x0 mul r2, r0 add r0, sp, #0x0 ldrb r0, [r0, #0x0] lsl r0, r0, #0x2 add r0, r4, r0 str r2, [r0, #0x24] add sp, #0xc pop {r3-r4, pc} .balign 4 thumb_func_start FUN_0201528C FUN_0201528C: ; 0x0201528C push {r3-r4, lr} sub sp, #0xc add r1, sp, #0x0 add r2, sp, #0x8 add r3, sp, #0x4 add r4, r0, #0x0 bl FUN_02015050 ldr r1, [sp, #0x8] ldr r0, [sp, #0x4] sub r1, r1, r0 add r0, sp, #0x0 ldrb r0, [r0, #0x0] lsl r0, r0, #0x2 add r0, r4, r0 str r1, [r0, #0x24] add sp, #0xc pop {r3-r4, pc} thumb_func_start FUN_020152B0 FUN_020152B0: ; 0x020152B0 push {r3-r4, lr} sub sp, #0xc add r1, sp, #0x0 add r2, sp, #0x8 add r3, sp, #0x4 add r4, r0, #0x0 bl FUN_02015050 ldr r0, [sp, #0x8] ldr r1, [sp, #0x4] blx _s32_div_f add r1, sp, #0x0 ldrb r1, [r1, #0x0] lsl r1, r1, #0x2 add r1, r4, r1 str r0, [r1, #0x24] add sp, #0xc pop {r3-r4, pc} .balign 4 thumb_func_start FUN_020152D8 FUN_020152D8: ; 0x020152D8 push {r3-r4, lr} sub sp, #0xc add r1, sp, #0x0 add r2, sp, #0x8 add r3, sp, #0x4 add r4, r0, #0x0 bl FUN_02015050 ldr r0, [sp, #0x8] ldr r1, [sp, #0x4] blx _s32_div_f add r0, sp, #0x0 ldrb r0, [r0, #0x0] lsl r0, r0, #0x2 add r0, r4, r0 str r1, [r0, #0x24] add sp, #0xc pop {r3-r4, pc} .balign 4 thumb_func_start FUN_02015300 FUN_02015300: ; 0x02015300 push {r3-r5, lr} sub sp, #0x10 add r1, sp, #0x0 add r5, r0, #0x0 bl FUN_02014F94 add r0, sp, #0x0 ldrb r0, [r0, #0x0] cmp r0, #0x14 bne _02015334 add r1, sp, #0x0 add r0, r5, #0x0 add r1, #0x3 bl FUN_02014FA8 add r0, sp, #0x0 ldrb r0, [r0, #0x3] add r1, sp, #0x8 lsl r0, r0, #0x2 add r0, r5, r0 ldr r0, [r0, #0x24] str r0, [sp, #0xc] add r0, r5, #0x0 bl FUN_02014F80 b _02015362 _02015334: cmp r0, #0x15 bne _0201535E add r1, sp, #0x0 add r2, sp, #0x0 add r0, r5, #0x0 add r1, #0x3 add r2, #0x2 bl FUN_02014FC8 add r0, sp, #0x0 ldrb r1, [r0, #0x3] lsl r1, r1, #0x2 add r1, r5, r1 ldr r1, [r1, #0x24] str r1, [sp, #0xc] ldrb r0, [r0, #0x2] lsl r0, r0, #0x2 add r0, r5, r0 ldr r0, [r0, #0x24] str r0, [sp, #0x8] b _02015362 _0201535E: bl ErrorHandling _02015362: add r1, sp, #0x0 add r0, r5, #0x0 add r1, #0x1 bl FUN_02014F94 add r0, sp, #0x0 ldrb r0, [r0, #0x1] cmp r0, #0x11 bls _02015378 bl ErrorHandling _02015378: add r0, sp, #0xc add r1, sp, #0x8 bl FUN_02015184 add r4, r0, #0x0 add r0, r5, #0x0 add r1, sp, #0x0 bl FUN_02014F94 add r0, sp, #0x0 ldrb r0, [r0, #0x0] cmp r0, #0x14 bne _020153A6 add r1, sp, #0x0 add r0, r5, #0x0 add r1, #0x3 bl FUN_02014FA8 add r0, r5, #0x0 add r1, sp, #0x4 bl FUN_02014F80 b _020153CA _020153A6: cmp r0, #0x15 bne _020153C6 add r1, sp, #0x0 add r2, sp, #0x0 add r0, r5, #0x0 add r1, #0x3 add r2, #0x2 bl FUN_02014FC8 add r0, sp, #0x0 ldrb r0, [r0, #0x2] lsl r0, r0, #0x2 add r0, r5, r0 ldr r0, [r0, #0x24] str r0, [sp, #0x4] b _020153CA _020153C6: bl ErrorHandling _020153CA: add r0, sp, #0x0 ldrb r1, [r0, #0x1] cmp r1, r4 bne _020153DC ldrb r0, [r0, #0x3] ldr r1, [sp, #0x4] lsl r0, r0, #0x2 add r0, r5, r0 str r1, [r0, #0x24] _020153DC: add sp, #0x10 pop {r3-r5, pc} thumb_func_start FUN_020153E0 FUN_020153E0: ; 0x020153E0 push {r3-r4, lr} sub sp, #0x4 add r4, r0, #0x0 add r1, sp, #0x0 bl FUN_02014FA8 ldr r0, [r4, #0xc] add r0, r0, #0x4 str r0, [r4, #0xc] bl FUN_02014F28 add r1, sp, #0x0 ldrb r1, [r1, #0x0] lsl r1, r1, #0x2 add r1, r4, r1 str r0, [r1, #0x24] add sp, #0x4 pop {r3-r4, pc} thumb_func_start FUN_02015404 FUN_02015404: ; 0x02015404 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x50] cmp r0, #0x0 beq _02015412 bl ErrorHandling _02015412: ldr r0, [r4, #0xc] add r0, r0, #0x4 str r0, [r4, #0xc] str r0, [r4, #0x50] ldr r0, [r4, #0xc] bl FUN_02014F28 str r0, [r4, #0x48] mov r0, #0x0 str r0, [r4, #0x4c] pop {r4, pc} thumb_func_start FUN_02015428 FUN_02015428: ; 0x02015428 ldr r1, [r0, #0x4c] add r2, r1, #0x1 str r2, [r0, #0x4c] ldr r1, [r0, #0x48] cmp r2, r1 blt _0201543E mov r1, #0x0 str r1, [r0, #0x50] str r1, [r0, #0x4c] str r1, [r0, #0x48] bx lr _0201543E: ldr r1, [r0, #0x50] str r1, [r0, #0xc] bx lr thumb_func_start FUN_02015444 FUN_02015444: ; 0x02015444 push {r4, lr} sub sp, #0x8 add r4, r0, #0x0 add r1, sp, #0x4 bl FUN_02014F80 add r0, r4, #0x0 add r1, sp, #0x0 bl FUN_02014FA8 add r2, sp, #0x0 ldrb r2, [r2, #0x0] ldr r0, [r4, #0x0] ldr r1, [sp, #0x4] lsl r2, r2, #0x2 add r2, r4, r2 ldr r2, [r2, #0x24] bl FUN_02007558 add sp, #0x8 pop {r4, pc} .balign 4 thumb_func_start FUN_02015470 FUN_02015470: ; 0x02015470 push {r4, lr} sub sp, #0x8 add r4, r0, #0x0 add r1, sp, #0x4 bl FUN_02014F80 add r0, r4, #0x0 add r1, sp, #0x0 bl FUN_02014FA8 add r2, sp, #0x0 ldrb r2, [r2, #0x0] ldr r0, [r4, #0x0] ldr r1, [sp, #0x4] lsl r2, r2, #0x2 add r2, r4, r2 ldr r2, [r2, #0x24] bl FUN_020079E0 add sp, #0x8 pop {r4, pc} .balign 4 thumb_func_start FUN_0201549C FUN_0201549C: ; 0x0201549C push {r3-r4, lr} sub sp, #0xc add r1, sp, #0x8 add r4, r0, #0x0 bl FUN_02014F80 add r1, sp, #0x0 add r0, r4, #0x0 add r1, #0x1 bl FUN_02014F94 add r0, sp, #0x0 ldrb r0, [r0, #0x1] cmp r0, #0x14 bne _020154C4 add r0, r4, #0x0 add r1, sp, #0x4 bl FUN_02014F80 b _020154E4 _020154C4: cmp r0, #0x15 bne _020154E0 add r1, sp, #0x0 add r0, r4, #0x0 add r1, #0x2 bl FUN_02014FA8 add r0, sp, #0x0 ldrb r0, [r0, #0x2] lsl r0, r0, #0x2 add r0, r4, r0 ldr r0, [r0, #0x24] str r0, [sp, #0x4] b _020154E4 _020154E0: bl ErrorHandling _020154E4: add r0, r4, #0x0 add r1, sp, #0x0 bl FUN_02014F94 add r0, sp, #0x0 ldrb r0, [r0, #0x0] cmp r0, #0x16 bne _02015502 ldr r0, [r4, #0x0] ldr r1, [sp, #0x8] ldr r2, [sp, #0x4] bl FUN_02007558 add sp, #0xc pop {r3-r4, pc} _02015502: cmp r0, #0x17 bne _02015514 ldr r0, [r4, #0x0] ldr r1, [sp, #0x8] ldr r2, [sp, #0x4] bl FUN_020079E0 add sp, #0xc pop {r3-r4, pc} _02015514: bl ErrorHandling add sp, #0xc pop {r3-r4, pc} thumb_func_start FUN_0201551C FUN_0201551C: ; 0x0201551C push {r3-r4, lr} sub sp, #0xc add r1, sp, #0x0 add r2, sp, #0x8 add r3, sp, #0x4 add r4, r0, #0x0 bl FUN_020150DC ldr r0, [sp, #0x8] ldr r2, [sp, #0x4] asr r0, r0, #0x4 lsl r1, r0, #0x2 ldr r0, _0201554C ; =0x020FFA38 ldrsh r0, [r0, r1] mul r0, r2 asr r1, r0, #0xc add r0, sp, #0x0 ldrb r0, [r0, #0x0] lsl r0, r0, #0x2 add r0, r4, r0 str r1, [r0, #0x24] add sp, #0xc pop {r3-r4, pc} nop _0201554C: .word 0x020FFA38 thumb_func_start FUN_02015550 FUN_02015550: ; 0x02015550 push {r3-r4, lr} sub sp, #0xc add r1, sp, #0x0 add r2, sp, #0x8 add r3, sp, #0x4 add r4, r0, #0x0 bl FUN_020150DC ldr r1, [sp, #0x8] ldr r0, [sp, #0x4] asr r1, r1, #0x4 lsl r1, r1, #0x1 add r1, r1, #0x1 lsl r2, r1, #0x1 ldr r1, _02015584 ; =0x020FFA38 ldrsh r1, [r1, r2] mul r1, r0 add r0, sp, #0x0 ldrb r0, [r0, #0x0] asr r1, r1, #0xc lsl r0, r0, #0x2 add r0, r4, r0 str r1, [r0, #0x24] add sp, #0xc pop {r3-r4, pc} nop _02015584: .word 0x020FFA38 thumb_func_start FUN_02015588 FUN_02015588: ; 0x02015588 push {r3-r4, lr} sub sp, #0x4 add r1, sp, #0x0 add r4, r0, #0x0 add r1, #0x1 bl FUN_02014FA8 add r0, r4, #0x0 add r1, sp, #0x0 bl FUN_02014F94 add r0, sp, #0x0 ldrb r1, [r0, #0x0] cmp r1, #0x8 bne _020155B4 ldrb r0, [r0, #0x1] add sp, #0x4 lsl r0, r0, #0x2 add r0, r4, r0 ldr r0, [r0, #0x24] str r0, [r4, #0x60] pop {r3-r4, pc} _020155B4: cmp r1, #0x9 bne _020155C6 ldrb r0, [r0, #0x1] add sp, #0x4 lsl r0, r0, #0x2 add r0, r4, r0 ldr r0, [r0, #0x24] str r0, [r4, #0x64] pop {r3-r4, pc} _020155C6: bl ErrorHandling add sp, #0x4 pop {r3-r4, pc} .balign 4 thumb_func_start FUN_020155D0 FUN_020155D0: ; 0x020155D0 push {r3-r4, lr} sub sp, #0x4 add r1, sp, #0x0 add r4, r0, #0x0 add r1, #0x1 bl FUN_02014FA8 add r0, r4, #0x0 add r1, sp, #0x0 bl FUN_02014F94 add r0, sp, #0x0 ldrb r1, [r0, #0x0] cmp r1, #0x8 bne _02015600 ldrb r0, [r0, #0x1] ldr r1, [r4, #0x60] add sp, #0x4 lsl r0, r0, #0x2 add r0, r4, r0 ldr r0, [r0, #0x24] add r0, r1, r0 str r0, [r4, #0x60] pop {r3-r4, pc} _02015600: cmp r1, #0x9 bne _02015616 ldrb r0, [r0, #0x1] ldr r1, [r4, #0x64] add sp, #0x4 lsl r0, r0, #0x2 add r0, r4, r0 ldr r0, [r0, #0x24] add r0, r1, r0 str r0, [r4, #0x64] pop {r3-r4, pc} _02015616: bl ErrorHandling add sp, #0x4 pop {r3-r4, pc} .balign 4 thumb_func_start FUN_02015620 FUN_02015620: ; 0x02015620 push {r3-r5, lr} sub sp, #0x8 add r1, sp, #0x0 add r1, #0x3 add r5, r0, #0x0 bl FUN_02014F94 add r0, sp, #0x0 ldrb r0, [r0, #0x3] cmp r0, #0x8 bne _0201563C add r4, r5, #0x0 add r4, #0x60 b _0201567C _0201563C: cmp r0, #0x9 bne _02015646 add r4, r5, #0x0 add r4, #0x64 b _0201567C _02015646: cmp r0, #0xa bne _02015650 add r4, r5, #0x0 add r4, #0x68 b _0201567C _02015650: cmp r0, #0xb bne _0201565A add r4, r5, #0x0 add r4, #0x6c b _0201567C _0201565A: cmp r0, #0xc bne _02015664 add r4, r5, #0x0 add r4, #0x70 b _0201567C _02015664: cmp r0, #0xd bne _0201566E add r4, r5, #0x0 add r4, #0x74 b _0201567C _0201566E: cmp r0, #0xe bne _02015678 add r4, r5, #0x0 add r4, #0x78 b _0201567C _02015678: bl ErrorHandling _0201567C: add r1, sp, #0x0 add r0, r5, #0x0 add r1, #0x1 bl FUN_02014F94 add r0, sp, #0x0 ldrb r0, [r0, #0x1] cmp r0, #0x14 bne _02015698 add r0, r5, #0x0 add r1, sp, #0x4 bl FUN_02014F80 b _020156B8 _02015698: cmp r0, #0x15 bne _020156B4 add r1, sp, #0x0 add r0, r5, #0x0 add r1, #0x2 bl FUN_02014FA8 add r0, sp, #0x0 ldrb r0, [r0, #0x2] lsl r0, r0, #0x2 add r0, r5, r0 ldr r0, [r0, #0x24] str r0, [sp, #0x4] b _020156B8 _020156B4: bl ErrorHandling _020156B8: add r0, r5, #0x0 add r1, sp, #0x0 bl FUN_02014F94 add r0, sp, #0x0 ldrb r0, [r0, #0x0] cmp r0, #0x16 bne _020156D0 ldr r0, [sp, #0x4] add sp, #0x8 str r0, [r4, #0x0] pop {r3-r5, pc} _020156D0: cmp r0, #0x17 bne _020156E0 ldr r0, [sp, #0x4] ldr r1, [r4, #0x0] add sp, #0x8 add r0, r1, r0 str r0, [r4, #0x0] pop {r3-r5, pc} _020156E0: bl ErrorHandling add sp, #0x8 pop {r3-r5, pc} thumb_func_start FUN_020156E8 FUN_020156E8: ; 0x020156E8 push {r3-r5, lr} add r4, r0, #0x0 mov r0, #0x73 lsl r0, r0, #0x2 ldrb r0, [r4, r0] cmp r0, #0x0 ldr r0, [r4, #0x0] beq _0201570A ldr r3, [r4, #0x60] ldr r2, [r4, #0x68] ldr r5, [r4, #0x58] add r2, r3, r2 mov r1, #0x0 sub r2, r5, r2 bl FUN_02007558 b _0201571A _0201570A: ldr r3, [r4, #0x58] ldr r2, [r4, #0x60] ldr r5, [r4, #0x68] add r2, r3, r2 mov r1, #0x0 add r2, r5, r2 bl FUN_02007558 _0201571A: ldr r3, [r4, #0x5c] ldr r2, [r4, #0x64] ldr r5, [r4, #0x6c] add r2, r3, r2 ldr r0, [r4, #0x0] mov r1, #0x1 add r2, r5, r2 bl FUN_02007558 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02015730 FUN_02015730: ; 0x02015730 push {r4, lr} add r4, r0, #0x0 mov r1, #0xc add r2, r1, #0x0 ldr r3, [r4, #0x70] add r2, #0xf4 ldr r0, [r4, #0x0] add r2, r3, r2 bl FUN_02007558 mov r1, #0xd add r2, r1, #0x0 ldr r3, [r4, #0x74] add r2, #0xf3 ldr r0, [r4, #0x0] add r2, r3, r2 bl FUN_02007558 ldr r2, [r4, #0x78] ldr r0, [r4, #0x0] lsl r2, r2, #0x10 mov r1, #0x9 lsr r2, r2, #0x10 bl FUN_02007558 ldr r0, _02015794 ; =0x000001CE ldrb r0, [r4, r0] cmp r0, #0x1b bne _02015778 ldr r0, [r4, #0x74] cmp r0, #0x0 bge _02015792 add r0, r4, #0x0 bl FUN_0201519C pop {r4, pc} _02015778: cmp r0, #0x1d bne _0201578A ldr r0, [r4, #0x74] cmp r0, #0x0 beq _02015792 add r0, r4, #0x0 bl FUN_0201519C pop {r4, pc} _0201578A: cmp r0, #0x1c beq _02015792 bl ErrorHandling _02015792: pop {r4, pc} .balign 4 _02015794: .word 0x000001CE thumb_func_start FUN_02015798 FUN_02015798: ; 0x02015798 push {r3-r4, lr} sub sp, #0x4 add r4, r0, #0x0 add r1, sp, #0x0 bl FUN_02014FA8 ldr r0, [r4, #0xc] add r0, r0, #0x4 str r0, [r4, #0xc] bl FUN_02014F28 lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r0, #0x8 beq _020157BA cmp r0, #0xa bne _020157CA _020157BA: add r0, sp, #0x0 ldrb r0, [r0, #0x0] add sp, #0x4 lsl r0, r0, #0x2 add r0, r4, r0 ldr r0, [r0, #0x24] str r0, [r4, #0x68] pop {r3-r4, pc} _020157CA: cmp r0, #0x9 beq _020157D2 cmp r0, #0xb bne _020157E2 _020157D2: add r0, sp, #0x0 ldrb r0, [r0, #0x0] add sp, #0x4 lsl r0, r0, #0x2 add r0, r4, r0 ldr r0, [r0, #0x24] str r0, [r4, #0x6c] pop {r3-r4, pc} _020157E2: bl ErrorHandling add sp, #0x4 pop {r3-r4, pc} .balign 4 thumb_func_start FUN_020157EC FUN_020157EC: ; 0x020157EC push {r4, lr} add r4, r0, #0x0 add r1, r4, #0x0 add r1, #0x54 bl FUN_02014F80 mov r0, #0x1 str r0, [r4, #0x18] pop {r4, pc} .balign 4 thumb_func_start FUN_02015800 FUN_02015800: ; 0x02015800 push {r3-r4, lr} sub sp, #0xc add r1, sp, #0x4 add r1, #0x2 add r4, r0, #0x0 bl FUN_02014F94 add r1, sp, #0x4 add r0, r4, #0x0 add r1, #0x1 bl FUN_02014F94 add r0, r4, #0x0 add r1, sp, #0x4 bl FUN_02014F94 add r0, r4, #0x0 add r1, sp, #0x8 bl FUN_02014F80 ldr r0, [sp, #0x8] add r3, sp, #0x4 str r0, [sp, #0x0] ldrb r1, [r3, #0x2] ldrb r2, [r3, #0x1] ldrb r3, [r3, #0x0] ldr r0, [r4, #0x0] bl FUN_02007E68 add sp, #0xc pop {r3-r4, pc} .balign 4 thumb_func_start FUN_02015840 FUN_02015840: ; 0x02015840 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_02007F20 cmp r0, #0x0 beq _02015856 ldr r0, _02015858 ; =0x000001CF mov r1, #0x1 strb r1, [r4, r0] str r1, [r4, #0x18] _02015856: pop {r4, pc} .balign 4 _02015858: .word 0x000001CF thumb_func_start FUN_0201585C FUN_0201585C: ; 0x0201585C ldr r1, _02015864 ; =0x000001CD mov r2, #0x1 strb r2, [r0, r1] bx lr .balign 4 _02015864: .word 0x000001CD thumb_func_start FUN_02015868 FUN_02015868: ; 0x02015868 push {r4, lr} ldr r1, _0201589C ; =0x000001CE add r4, r0, #0x0 add r1, r4, r1 bl FUN_02014F94 ldr r0, _0201589C ; =0x000001CE mov r1, #0x1 ldrb r0, [r4, r0] add r2, r1, #0x0 cmp r0, #0x1b beq _02015886 cmp r0, #0x1d beq _02015886 mov r2, #0x0 _02015886: cmp r2, #0x0 bne _02015890 cmp r0, #0x1c beq _02015890 mov r1, #0x0 _02015890: cmp r1, #0x0 bne _02015898 bl ErrorHandling _02015898: pop {r4, pc} nop _0201589C: .word 0x000001CE thumb_func_start FUN_020158A0 FUN_020158A0: ; 0x020158A0 ldr r3, _020158A8 ; =FUN_0201598C mov r1, #0x0 bx r3 nop _020158A8: .word FUN_0201598C thumb_func_start FUN_020158AC FUN_020158AC: ; 0x020158AC ldr r3, _020158B4 ; =FUN_0201598C mov r1, #0x1 bx r3 nop _020158B4: .word FUN_0201598C thumb_func_start FUN_020158B8 FUN_020158B8: ; 0x020158B8 ldr r3, _020158C0 ; =FUN_0201598C mov r1, #0x2 bx r3 nop _020158C0: .word FUN_0201598C thumb_func_start FUN_020158C4 FUN_020158C4: ; 0x020158C4 ldr r3, _020158CC ; =FUN_0201598C mov r1, #0x3 bx r3 nop _020158CC: .word FUN_0201598C thumb_func_start FUN_020158D0 FUN_020158D0: ; 0x020158D0 ldr r3, _020158D8 ; =FUN_0201598C mov r1, #0x4 bx r3 nop _020158D8: .word FUN_0201598C thumb_func_start FUN_020158DC FUN_020158DC: ; 0x020158DC push {r3, lr} cmp r0, #0x18 bne _020158E8 ldr r0, [r2, #0x0] str r0, [r3, #0x0] pop {r3, pc} _020158E8: cmp r0, #0x19 bne _020158F6 ldr r1, [r1, #0x0] ldr r0, [r2, #0x0] add r0, r1, r0 str r0, [r3, #0x0] pop {r3, pc} _020158F6: cmp r0, #0x1a bne _02015904 ldr r1, [r3, #0x0] ldr r0, [r2, #0x0] add r0, r1, r0 str r0, [r3, #0x0] pop {r3, pc} _02015904: bl ErrorHandling pop {r3, pc} .balign 4 thumb_func_start FUN_0201590C FUN_0201590C: ; 0x0201590C push {r3, lr} sub r0, #0x23 cmp r0, #0x4 bhi _02015984 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02015920: ; jump table (using 16-bit offset) .short _0201592A - _02015920 - 2; case 0 .short _0201593C - _02015920 - 2; case 1 .short _0201594E - _02015920 - 2; case 2 .short _02015960 - _02015920 - 2; case 3 .short _02015972 - _02015920 - 2; case 4 _0201592A: add r0, r1, #0x0 add r0, #0x3c str r0, [r1, #0x24] add r0, r2, #0x0 add r0, #0x68 str r0, [r1, #0x28] ldr r0, [r2, #0x68] str r0, [r1, #0x30] pop {r3, pc} _0201593C: add r0, r1, #0x0 add r0, #0x40 str r0, [r1, #0x24] add r0, r2, #0x0 add r0, #0x6c str r0, [r1, #0x28] ldr r0, [r2, #0x6c] str r0, [r1, #0x30] pop {r3, pc} _0201594E: add r0, r1, #0x0 add r0, #0x44 str r0, [r1, #0x24] add r0, r2, #0x0 add r0, #0x70 str r0, [r1, #0x28] ldr r0, [r2, #0x70] str r0, [r1, #0x30] pop {r3, pc} _02015960: add r0, r1, #0x0 add r0, #0x48 str r0, [r1, #0x24] add r0, r2, #0x0 add r0, #0x74 str r0, [r1, #0x28] ldr r0, [r2, #0x74] str r0, [r1, #0x30] pop {r3, pc} _02015972: add r0, r1, #0x0 add r0, #0x4c str r0, [r1, #0x24] add r0, r2, #0x0 add r0, #0x78 str r0, [r1, #0x28] ldr r0, [r2, #0x78] str r0, [r1, #0x30] pop {r3, pc} _02015984: bl ErrorHandling pop {r3, pc} .balign 4 thumb_func_start FUN_0201598C FUN_0201598C: ; 0x0201598C push {r3-r7, lr} sub sp, #0x8 add r6, r1, #0x0 lsl r1, r6, #0x18 lsr r1, r1, #0x18 add r5, r0, #0x0 bl FUN_02014F34 str r0, [sp, #0x4] ldr r1, [sp, #0x4] add r0, r5, #0x0 add r1, #0x2c bl FUN_02014F94 ldr r1, [sp, #0x4] add r0, r5, #0x0 add r1, #0x2d bl FUN_02014F94 mov r0, #0xc mul r0, r6 ldr r1, _02015A28 ; =0x020ED66C str r0, [sp, #0x0] ldr r0, [r1, r0] mov r4, #0x0 cmp r0, #0x0 ble _020159E2 ldr r1, _02015A2C ; =0x020ED668 ldr r0, [sp, #0x0] add r6, r1, r0 ldr r0, [sp, #0x4] add r7, r0, #0x4 _020159CC: lsl r1, r4, #0x2 add r0, r5, #0x0 add r1, r7, r1 bl FUN_02014F80 add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 ldr r0, [r6, #0x4] cmp r4, r0 blt _020159CC _020159E2: ldr r1, _02015A30 ; =0x020ED670 ldr r0, [sp, #0x0] add r2, r5, #0x0 ldr r0, [r1, r0] lsl r1, r0, #0x2 ldr r0, [sp, #0x4] add r0, r0, r1 ldr r0, [r0, #0x4] ldr r1, [sp, #0x4] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_0201590C ldr r0, [sp, #0x4] add r0, #0x2d ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _02015A14 ldr r0, [sp, #0x4] add r1, r5, #0x0 add r2, r0, #0x0 ldr r2, [r2, #0x50] blx r2 add sp, #0x8 pop {r3-r7, pc} _02015A14: ldr r0, [sp, #0x4] add r0, #0x2d ldrb r0, [r0, #0x0] sub r1, r0, #0x1 ldr r0, [sp, #0x4] add r0, #0x2d str r0, [sp, #0x4] strb r1, [r0, #0x0] add sp, #0x8 pop {r3-r7, pc} .balign 4 _02015A28: .word 0x020ED66C _02015A2C: .word 0x020ED668 _02015A30: .word 0x020ED670 thumb_func_start FUN_02015A34 FUN_02015A34: ; 0x02015A34 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x1c] ldr r1, [r4, #0x10] add r0, r0, #0x1 ldr r2, [r4, #0x14] mul r0, r1 add r0, r2, r0 lsl r0, r0, #0x10 lsr r1, r0, #0x10 ldr r0, [r4, #0x4] sub r0, #0x1e cmp r0, #0x3 bhi _02015AC0 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02015A5C: ; jump table (using 16-bit offset) .short _02015A64 - _02015A5C - 2; case 0 .short _02015A78 - _02015A5C - 2; case 1 .short _02015A90 - _02015A5C - 2; case 2 .short _02015AA6 - _02015A5C - 2; case 3 _02015A64: asr r0, r1, #0x4 lsl r1, r0, #0x2 ldr r0, _02015AE8 ; =0x020FFA38 ldr r2, [r4, #0xc] ldrsh r0, [r0, r1] mul r0, r2 asr r1, r0, #0xc ldr r0, [r4, #0x24] str r1, [r0, #0x0] b _02015AC4 _02015A78: asr r1, r1, #0x4 lsl r1, r1, #0x1 add r1, r1, #0x1 lsl r2, r1, #0x1 ldr r1, _02015AE8 ; =0x020FFA38 ldr r0, [r4, #0xc] ldrsh r1, [r1, r2] mul r1, r0 ldr r0, [r4, #0x24] asr r1, r1, #0xc str r1, [r0, #0x0] b _02015AC4 _02015A90: asr r0, r1, #0x4 lsl r1, r0, #0x2 ldr r0, _02015AE8 ; =0x020FFA38 ldr r2, [r4, #0xc] ldrsh r0, [r0, r1] mul r0, r2 asr r0, r0, #0xc neg r1, r0 ldr r0, [r4, #0x24] str r1, [r0, #0x0] b _02015AC4 _02015AA6: asr r1, r1, #0x4 lsl r1, r1, #0x1 add r1, r1, #0x1 lsl r2, r1, #0x1 ldr r1, _02015AE8 ; =0x020FFA38 ldr r0, [r4, #0xc] ldrsh r1, [r1, r2] mul r1, r0 asr r0, r1, #0xc neg r1, r0 ldr r0, [r4, #0x24] str r1, [r0, #0x0] b _02015AC4 _02015AC0: bl ErrorHandling _02015AC4: add r0, r4, #0x0 add r0, #0x2c ldrb r0, [r0, #0x0] add r1, r4, #0x0 ldr r2, [r4, #0x24] ldr r3, [r4, #0x28] add r1, #0x30 bl FUN_020158DC ldr r0, [r4, #0x1c] add r1, r0, #0x1 str r1, [r4, #0x1c] ldr r0, [r4, #0x18] cmp r1, r0 blt _02015AE6 mov r0, #0x0 str r0, [r4, #0x0] _02015AE6: pop {r4, pc} .balign 4 _02015AE8: .word 0x020FFA38 thumb_func_start FUN_02015AEC FUN_02015AEC: ; 0x02015AEC push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x1c] ldr r1, [r4, #0x10] add r0, r0, #0x1 mul r0, r1 ldr r1, [r4, #0x18] blx _s32_div_f ldr r1, [r4, #0x14] add r0, r1, r0 lsl r0, r0, #0x10 lsr r1, r0, #0x10 ldr r0, [r4, #0x4] sub r0, #0x1e cmp r0, #0x3 bhi _02015B7E add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02015B1A: ; jump table (using 16-bit offset) .short _02015B22 - _02015B1A - 2; case 0 .short _02015B36 - _02015B1A - 2; case 1 .short _02015B4E - _02015B1A - 2; case 2 .short _02015B64 - _02015B1A - 2; case 3 _02015B22: asr r0, r1, #0x4 lsl r1, r0, #0x2 ldr r0, _02015BA8 ; =0x020FFA38 ldr r2, [r4, #0xc] ldrsh r0, [r0, r1] mul r0, r2 asr r1, r0, #0xc ldr r0, [r4, #0x24] str r1, [r0, #0x0] b _02015B82 _02015B36: asr r1, r1, #0x4 lsl r1, r1, #0x1 add r1, r1, #0x1 lsl r2, r1, #0x1 ldr r1, _02015BA8 ; =0x020FFA38 ldr r0, [r4, #0xc] ldrsh r1, [r1, r2] mul r1, r0 ldr r0, [r4, #0x24] asr r1, r1, #0xc str r1, [r0, #0x0] b _02015B82 _02015B4E: asr r0, r1, #0x4 lsl r1, r0, #0x2 ldr r0, _02015BA8 ; =0x020FFA38 ldr r2, [r4, #0xc] ldrsh r0, [r0, r1] mul r0, r2 asr r0, r0, #0xc neg r1, r0 ldr r0, [r4, #0x24] str r1, [r0, #0x0] b _02015B82 _02015B64: asr r1, r1, #0x4 lsl r1, r1, #0x1 add r1, r1, #0x1 lsl r2, r1, #0x1 ldr r1, _02015BA8 ; =0x020FFA38 ldr r0, [r4, #0xc] ldrsh r1, [r1, r2] mul r1, r0 asr r0, r1, #0xc neg r1, r0 ldr r0, [r4, #0x24] str r1, [r0, #0x0] b _02015B82 _02015B7E: bl ErrorHandling _02015B82: add r0, r4, #0x0 add r0, #0x2c ldrb r0, [r0, #0x0] add r1, r4, #0x0 ldr r2, [r4, #0x24] ldr r3, [r4, #0x28] add r1, #0x30 bl FUN_020158DC ldr r0, [r4, #0x1c] add r1, r0, #0x1 str r1, [r4, #0x1c] ldr r0, [r4, #0x18] cmp r1, r0 blt _02015BA4 mov r0, #0x0 str r0, [r4, #0x0] _02015BA4: pop {r4, pc} nop _02015BA8: .word 0x020FFA38 thumb_func_start FUN_02015BAC FUN_02015BAC: ; 0x02015BAC push {r3-r5, lr} add r4, r0, #0x0 ldr r1, [r4, #0x24] ldr r3, [r4, #0xc] ldr r2, [r4, #0x14] ldr r5, [r4, #0x8] mul r2, r3 ldr r0, [r1, #0x0] add r2, r5, r2 add r0, r0, r2 str r0, [r1, #0x0] add r0, r4, #0x0 add r0, #0x2c add r1, r4, #0x0 ldrb r0, [r0, #0x0] ldr r2, [r4, #0x24] ldr r3, [r4, #0x28] add r1, #0x30 bl FUN_020158DC ldr r0, [r4, #0x14] add r1, r0, #0x1 str r1, [r4, #0x14] ldr r0, [r4, #0x10] cmp r1, r0 blt _02015BE4 mov r0, #0x0 str r0, [r4, #0x0] _02015BE4: pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02015BE8 FUN_02015BE8: ; 0x02015BE8 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x10] add r1, r0, #0x1 ldr r0, [r4, #0x8] mul r0, r1 ldr r1, [r4, #0xc] blx _s32_div_f ldr r1, [r4, #0x24] str r0, [r1, #0x0] add r0, r4, #0x0 add r0, #0x2c add r1, r4, #0x0 ldrb r0, [r0, #0x0] ldr r2, [r4, #0x24] ldr r3, [r4, #0x28] add r1, #0x30 bl FUN_020158DC ldr r0, [r4, #0x10] add r1, r0, #0x1 str r1, [r4, #0x10] ldr r0, [r4, #0xc] cmp r1, r0 blt _02015C20 mov r0, #0x0 str r0, [r4, #0x0] _02015C20: pop {r4, pc} .balign 4 thumb_func_start FUN_02015C24 FUN_02015C24: ; 0x02015C24 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0xc] ldr r0, [r4, #0x14] ldr r2, [r4, #0x8] mul r0, r1 ldr r1, [r4, #0x24] add r2, r2, r0 ldr r0, [r1, #0x0] add r0, r0, r2 str r0, [r1, #0x0] add r0, r4, #0x0 add r0, #0x2c ldrb r0, [r0, #0x0] cmp r0, #0x18 beq _02015C48 cmp r0, #0x1a bne _02015C6E _02015C48: cmp r2, #0x0 ldr r2, [r4, #0x10] bge _02015C5E ldr r1, [r4, #0x24] ldr r0, [r1, #0x0] cmp r0, r2 bgt _02015CA4 str r2, [r1, #0x0] mov r0, #0x0 str r0, [r4, #0x0] b _02015CA4 _02015C5E: ldr r1, [r4, #0x24] ldr r0, [r1, #0x0] cmp r0, r2 blt _02015CA4 str r2, [r1, #0x0] mov r0, #0x0 str r0, [r4, #0x0] b _02015CA4 _02015C6E: cmp r0, #0x19 bne _02015CA0 ldr r1, [r4, #0x24] ldr r3, [r4, #0x30] ldr r0, [r1, #0x0] add r3, r3, r0 cmp r2, #0x0 ldr r2, [r4, #0x10] bge _02015C90 cmp r3, r2 bgt _02015CA4 sub r2, r2, r3 add r0, r0, r2 str r0, [r1, #0x0] mov r0, #0x0 str r0, [r4, #0x0] b _02015CA4 _02015C90: cmp r3, r2 blt _02015CA4 sub r2, r3, r2 sub r0, r0, r2 str r0, [r1, #0x0] mov r0, #0x0 str r0, [r4, #0x0] b _02015CA4 _02015CA0: bl ErrorHandling _02015CA4: add r0, r4, #0x0 add r0, #0x2c ldrb r0, [r0, #0x0] add r1, r4, #0x0 ldr r2, [r4, #0x24] ldr r3, [r4, #0x28] add r1, #0x30 bl FUN_020158DC ldr r0, [r4, #0x14] add r0, r0, #0x1 str r0, [r4, #0x14] pop {r4, pc} .balign 4 thumb_func_start FUN_02015CC0 FUN_02015CC0: ; 0x02015CC0 ldr r3, _02015CDC ; =0x020ED72C mov r2, #0x0 _02015CC4: ldrh r1, [r3, #0x2] cmp r0, r1 bhs _02015CCE add r0, r2, #0x0 bx lr _02015CCE: add r2, r2, #0x1 add r3, r3, #0x2 cmp r2, #0x2 blt _02015CC4 add r0, r2, #0x0 bx lr nop _02015CDC: .word 0x020ED72C thumb_func_start FUN_02015CE0 FUN_02015CE0: ; 0x02015CE0 push {r4, lr} add r4, r0, #0x0 bl FUN_02015CC0 lsl r1, r0, #0x1 ldr r0, _02015CF4 ; =0x020ED72C ldrh r0, [r0, r1] sub r0, r4, r0 pop {r4, pc} nop _02015CF4: .word 0x020ED72C thumb_func_start FUN_02015CF8 FUN_02015CF8: ; 0x02015CF8 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x3 blt _02015D06 bl ErrorHandling _02015D06: ldr r0, _02015D10 ; =0x020ED72C lsl r1, r5, #0x1 ldrh r0, [r0, r1] add r0, r4, r0 pop {r3-r5, pc} .balign 4 _02015D10: .word 0x020ED72C thumb_func_start FUN_02015D14 FUN_02015D14: ; 0x02015D14 cmp r0, #0x7 bhi _02015D34 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02015D24: ; jump table (using 16-bit offset) .short _02015D34 - _02015D24 - 2; case 0 .short _02015D34 - _02015D24 - 2; case 1 .short _02015D38 - _02015D24 - 2; case 2 .short _02015D3E - _02015D24 - 2; case 3 .short _02015D38 - _02015D24 - 2; case 4 .short _02015D42 - _02015D24 - 2; case 5 .short _02015D34 - _02015D24 - 2; case 6 .short _02015D38 - _02015D24 - 2; case 7 _02015D34: mov r0, #0xea bx lr _02015D38: mov r0, #0x6d lsl r0, r0, #0x2 bx lr _02015D3E: ldr r0, _02015D48 ; =0x000001B7 bx lr _02015D42: ldr r0, _02015D4C ; =0x000001B6 bx lr nop _02015D48: .word 0x000001B7 _02015D4C: .word 0x000001B6 thumb_func_start FUN_02015D50 FUN_02015D50: ; 0x02015D50 cmp r0, #0x7 bhi _02015D70 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02015D60: ; jump table (using 16-bit offset) .short _02015D70 - _02015D60 - 2; case 0 .short _02015D70 - _02015D60 - 2; case 1 .short _02015D74 - _02015D60 - 2; case 2 .short _02015D78 - _02015D60 - 2; case 3 .short _02015D74 - _02015D60 - 2; case 4 .short _02015D7E - _02015D60 - 2; case 5 .short _02015D70 - _02015D60 - 2; case 6 .short _02015D74 - _02015D60 - 2; case 7 _02015D70: mov r0, #0xeb bx lr _02015D74: ldr r0, _02015D84 ; =0x000001B5 bx lr _02015D78: mov r0, #0x6e lsl r0, r0, #0x2 bx lr _02015D7E: mov r0, #0x6d lsl r0, r0, #0x2 bx lr .balign 4 _02015D84: .word 0x000001B5 thumb_func_start FUN_02015D88 FUN_02015D88: ; 0x02015D88 push {r3-r7, lr} sub sp, #0x10 add r6, r3, #0x0 str r0, [sp, #0x0] str r1, [sp, #0x4] str r2, [sp, #0x8] cmp r6, #0x1 beq _02015D9C mov r2, #0x1 b _02015D9E _02015D9C: mov r2, #0x0 _02015D9E: ldr r0, [sp, #0x8] mov r4, #0x0 sub r0, r0, #0x1 str r0, [sp, #0xc] beq _02015E18 ldr r1, _02015E28 ; =0x020ED734 lsl r0, r2, #0x1 ldr r5, [sp, #0x4] add r7, r1, r0 _02015DB0: ldr r0, [sp, #0x0] ldrb r0, [r0, r4] cmp r0, #0xff beq _02015E18 cmp r0, #0xf7 blo _02015DEA ldr r0, [sp, #0x8] sub r3, r0, #0x1 cmp r3, #0xa blo _02015DC6 mov r3, #0xa _02015DC6: mov r1, #0x0 cmp r3, #0x0 ble _02015DDC mov r0, #0x6b ldr r2, [sp, #0x4] lsl r0, r0, #0x2 _02015DD2: add r1, r1, #0x1 strh r0, [r2, #0x0] add r2, r2, #0x2 cmp r1, r3 blt _02015DD2 _02015DDC: ldr r0, [sp, #0x4] ldr r2, _02015E2C ; =0x0000FFFF lsl r1, r1, #0x1 strh r2, [r0, r1] add sp, #0x10 mov r0, #0x0 pop {r3-r7, pc} _02015DEA: lsl r0, r0, #0x2 ldrh r0, [r7, r0] cmp r0, #0xea beq _02015DF8 cmp r0, #0xeb beq _02015E02 b _02015E0C _02015DF8: add r0, r6, #0x0 bl FUN_02015D14 strh r0, [r5, #0x0] b _02015E0E _02015E02: add r0, r6, #0x0 bl FUN_02015D50 strh r0, [r5, #0x0] b _02015E0E _02015E0C: strh r0, [r5, #0x0] _02015E0E: ldr r0, [sp, #0xc] add r4, r4, #0x1 add r5, r5, #0x2 cmp r4, r0 blo _02015DB0 _02015E18: ldr r2, _02015E2C ; =0x0000FFFF ldr r0, [sp, #0x4] lsl r1, r4, #0x1 strh r2, [r0, r1] mov r0, #0x1 add sp, #0x10 pop {r3-r7, pc} nop _02015E28: .word 0x020ED734 _02015E2C: .word 0x0000FFFF thumb_func_start FUN_02015E30 FUN_02015E30: ; 0x02015E30 ldr r0, _02015E38 ; =0x021C4898 mov r1, #0x0 str r1, [r0, #0x0] bx lr .balign 4 _02015E38: .word 0x021C4898 thumb_func_start FUN_02015E3C FUN_02015E3C: ; 0x02015E3C push {r3, lr} ldr r1, _02015E5C ; =0x021C4898 mov r2, #0x1 str r2, [r1, #0x0] mov r2, #0x0 str r2, [r1, #0x10] str r2, [r1, #0x14] str r2, [r1, #0x8] str r2, [r1, #0xc] str r0, [r1, #0x4] bl FUN_02020BF4 ldr r2, _02015E5C ; =0x021C4898 str r0, [r2, #0x18] str r1, [r2, #0x1c] pop {r3, pc} .balign 4 _02015E5C: .word 0x021C4898 thumb_func_start FUN_02015E60 FUN_02015E60: ; 0x02015E60 push {r3-r5, lr} ldr r0, _02015E9C ; =0x021C4898 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _02015E9A bl FUN_02020BF4 ldr r2, _02015E9C ; =0x021C4898 ldr r3, [r2, #0x18] ldr r2, [r2, #0x1c] sub r0, r0, r3 sbc r1, r2 bl FUN_02020C14 add r5, r1, #0x0 ldr r1, _02015E9C ; =0x021C4898 add r4, r0, #0x0 ldr r3, [r1, #0x8] ldr r2, [r1, #0xc] sub r0, r3, r4 sbc r2, r5 bhs _02015E9A ldr r0, [r1, #0x4] sub r1, r4, r3 bl FUN_02029E54 ldr r0, _02015E9C ; =0x021C4898 str r4, [r0, #0x8] str r5, [r0, #0xc] _02015E9A: pop {r3-r5, pc} .balign 4 _02015E9C: .word 0x021C4898 thumb_func_start FUN_02015EA0 FUN_02015EA0: ; 0x02015EA0 push {r3, lr} ldr r3, _02015EC8 ; =0x027E0000 ldr r1, _02015ECC ; =0x00003FF8 mov r0, #0x1 ldr r2, [r3, r1] orr r0, r2 str r0, [r3, r1] mov r0, #0x3 blx MI_WaitDma ldr r0, _02015ED0 ; =0x021C48B8 ldr r0, [r0, #0x1c] bl FUN_0201B5CC ldr r0, _02015ED0 ; =0x021C48B8 ldr r1, [r0, #0x30] add r1, r1, #0x1 str r1, [r0, #0x30] pop {r3, pc} nop _02015EC8: .word 0x027E0000 _02015ECC: .word 0x00003FF8 _02015ED0: .word 0x021C48B8 thumb_func_start FUN_02015ED4 FUN_02015ED4: ; 0x02015ED4 ldr r3, _02015EE8 ; =0x027E0000 ldr r1, _02015EEC ; =0x00003FF8 mov r0, #0x1 ldr r2, [r3, r1] orr r0, r2 str r0, [r3, r1] ldr r3, _02015EF0 ; =MI_WaitDma mov r0, #0x3 bx r3 nop _02015EE8: .word 0x027E0000 _02015EEC: .word 0x00003FF8 _02015EF0: .word MI_WaitDma thumb_func_start FUN_02015EF4 FUN_02015EF4: ; 0x02015EF4 push {r3, lr} mov r0, #0x1 blx OS_DisableIrqMask ldr r1, _02015F0C ; =FUN_02015ED4 mov r0, #0x1 blx OS_SetIrqFunction mov r0, #0x1 blx OS_EnableIrqMask pop {r3, pc} .balign 4 _02015F0C: .word FUN_02015ED4 thumb_func_start FUN_02015F10 FUN_02015F10: ; 0x02015F10 ldr r2, _02015F18 ; =0x021C48B8 str r0, [r2, #0x0] str r1, [r2, #0x4] bx lr .balign 4 _02015F18: .word 0x021C48B8 thumb_func_start FUN_02015F1C FUN_02015F1C: ; 0x02015F1C push {r3, lr} mov r0, #0x0 bl FUN_02015F80 ldr r0, _02015F30 ; =0x021C48B8 mov r1, #0x0 str r1, [r0, #0x8] str r1, [r0, #0xc] pop {r3, pc} nop _02015F30: .word 0x021C48B8 thumb_func_start FUN_02015F34 FUN_02015F34: ; 0x02015F34 push {r3, lr} cmp r0, #0x0 bne _02015F4C mov r0, #0x0 bl FUN_02015F80 ldr r0, _02015F68 ; =0x021C48B8 mov r1, #0x0 str r1, [r0, #0x8] str r1, [r0, #0xc] mov r0, #0x1 pop {r3, pc} _02015F4C: ldr r2, _02015F68 ; =0x021C48B8 ldr r3, [r2, #0x8] cmp r3, #0x0 bne _02015F62 str r1, [r2, #0xc] str r0, [r2, #0x8] mov r0, #0x1 bl FUN_02015F80 mov r0, #0x1 pop {r3, pc} _02015F62: mov r0, #0x0 pop {r3, pc} nop _02015F68: .word 0x021C48B8 thumb_func_start FUN_02015F6C FUN_02015F6C: ; 0x02015F6C push {r3, lr} ldr r0, _02015F7C ; =0x021C48B8 ldr r1, [r0, #0x8] cmp r1, #0x0 beq _02015F7A ldr r0, [r0, #0xc] blx r1 _02015F7A: pop {r3, pc} .balign 4 _02015F7C: .word 0x021C48B8 thumb_func_start FUN_02015F80 FUN_02015F80: ; 0x02015F80 push {r3, lr} ldr r2, _02015FC0 ; =0x04000208 ldrh r1, [r2, #0x0] mov r1, #0x0 strh r1, [r2, #0x0] cmp r0, #0x0 bne _02015F9E ldr r0, [r2, #0x8] mov r0, #0x2 blx OS_DisableIrqMask mov r0, #0x0 blx FUN_020C5AF8 b _02015FB4 _02015F9E: ldr r0, [r2, #0x8] ldr r1, _02015FC4 ; =FUN_02015F6C mov r0, #0x2 blx OS_SetIrqFunction mov r0, #0x2 blx OS_EnableIrqMask mov r0, #0x1 blx FUN_020C5AF8 _02015FB4: ldr r1, _02015FC0 ; =0x04000208 ldrh r0, [r1, #0x0] mov r0, #0x1 strh r0, [r1, #0x0] pop {r3, pc} nop _02015FC0: .word 0x04000208 _02015FC4: .word FUN_02015F6C thumb_func_start FUN_02015FC8 FUN_02015FC8: ; 0x02015FC8 push {r3, lr} sub sp, #0x30 add r0, sp, #0x10 blx OS_GetLowEntropyData add r0, sp, #0x0 add r1, sp, #0x10 mov r2, #0x20 blx FUN_020DDCE4 mov r3, #0x0 add r1, r3, #0x0 add r2, sp, #0x0 _02015FE2: ldrb r0, [r2, #0x0] add r1, r1, #0x1 add r2, r2, #0x1 add r3, r3, r0 cmp r1, #0x10 blo _02015FE2 lsl r0, r3, #0x18 lsr r3, r0, #0x18 mov r0, #0x3 tst r0, r3 beq _02016002 mov r0, #0x3 _02015FFA: add r3, r3, #0x1 add r1, r3, #0x0 tst r1, r0 bne _02015FFA _02016002: ldr r0, _02016010 ; =0x020EDB10 mov r1, #0x4 mov r2, #0x5c bl FUN_020166C8 add sp, #0x30 pop {r3, pc} .balign 4 _02016010: .word 0x020EDB10 thumb_func_start InitSystemForTheGame InitSystemForTheGame: ; 0x02016014 push {r3-r5, lr} blx OS_Init blx FUN_020C5974 ldr r2, _02016124 ; =0x04000304 ldr r0, _02016128 ; =0xFFFFFDF1 ldrh r1, [r2, #0x0] and r1, r0 ldr r0, _0201612C ; =0x0000020E orr r0, r1 strh r0, [r2, #0x0] blx FUN_020C5B28 blx OS_InitTick bl FUN_02015FC8 mov r0, #0xa0 bl FUN_0201B578 add r1, r0, #0x0 mov r0, #0x0 mov r2, #0x4 blx OS_AllocFromArenaLo add r1, r0, #0x0 mov r0, #0xa0 bl FUN_0201B580 ldr r1, _02016130 ; =0x021C48B8 str r0, [r1, #0x18] mov r0, #0x10 bl FUN_0201B578 add r1, r0, #0x0 mov r0, #0x0 mov r2, #0x4 blx OS_AllocFromArenaLo add r1, r0, #0x0 mov r0, #0x10 bl FUN_0201B580 ldr r1, _02016130 ; =0x021C48B8 str r0, [r1, #0x1c] mov r0, #0x20 bl FUN_0201B578 add r1, r0, #0x0 mov r0, #0x0 mov r2, #0x4 blx OS_AllocFromArenaLo add r1, r0, #0x0 mov r0, #0x20 bl FUN_0201B580 ldr r1, _02016130 ; =0x021C48B8 str r0, [r1, #0x20] mov r0, #0x4 bl FUN_0201B578 add r1, r0, #0x0 mov r0, #0x0 mov r2, #0x4 blx OS_AllocFromArenaLo add r1, r0, #0x0 mov r0, #0x4 bl FUN_0201B580 ldr r1, _02016130 ; =0x021C48B8 str r0, [r1, #0x24] blx FUN_020C5A80 ldr r2, _02016134 ; =0x04001000 ldr r0, _02016138 ; =0xFFFEFFFF ldr r1, [r2, #0x0] and r0, r1 str r0, [r2, #0x0] ldr r2, _02016124 ; =0x04000304 ldrh r1, [r2, #0x0] lsr r0, r2, #0xb orr r0, r1 strh r0, [r2, #0x0] ldr r1, _0201613C ; =FUN_02015EA0 mov r0, #0x1 blx OS_SetIrqFunction mov r0, #0x1 blx OS_EnableIrqMask mov r0, #0x1 lsl r0, r0, #0x12 blx OS_EnableIrqMask ldr r1, _02016140 ; =0x04000208 ldrh r0, [r1, #0x0] mov r0, #0x1 strh r0, [r1, #0x0] blx FUN_020C5AC8 mov r0, #0x1 blx FS_Init bl FUN_02022450 mov r0, #0x0 add r1, r0, #0x0 blx FS_TryLoadTable add r4, r0, #0x0 mov r0, #0x0 add r1, r4, #0x0 mov r2, #0x4 blx OS_AllocFromArenaLo add r5, r0, #0x0 bne _02016108 bl ErrorHandling _02016108: add r0, r5, #0x0 add r1, r4, #0x0 blx FS_TryLoadTable ldr r0, _02016130 ; =0x021C48B8 mov r1, #0x0 str r1, [r0, #0x0] str r1, [r0, #0x8] str r1, [r0, #0x10] str r1, [r0, #0x14] str r1, [r0, #0x2c] ldr r0, _02016144 ; =0x021C4918 strb r1, [r0, #0x5] pop {r3-r5, pc} .balign 4 _02016124: .word 0x04000304 _02016128: .word 0xFFFFFDF1 _0201612C: .word 0x0000020E _02016130: .word 0x021C48B8 _02016134: .word 0x04001000 _02016138: .word 0xFFFEFFFF _0201613C: .word FUN_02015EA0 _02016140: .word 0x04000208 _02016144: .word 0x021C4918 thumb_func_start InitGraphicMemory InitGraphicMemory: ; 0x02016148 push {r3, lr} ldr r0, _02016198 ; =0x000001FF blx FUN_020C63A8 mov r1, #0x1a mov r2, #0x29 mov r0, #0x0 lsl r1, r1, #0x16 lsl r2, r2, #0xe blx MIi_CpuClearFast blx FUN_020C5E54 mov r1, #0x7 mov r2, #0x1 mov r0, #0xc0 lsl r1, r1, #0x18 lsl r2, r2, #0xa blx MIi_CpuClearFast mov r2, #0x1 ldr r1, _0201619C ; =0x07000400 mov r0, #0xc0 lsl r2, r2, #0xa blx MIi_CpuClearFast mov r1, #0x5 mov r2, #0x1 mov r0, #0x0 lsl r1, r1, #0x18 lsl r2, r2, #0xa blx MIi_CpuClearFast mov r2, #0x1 ldr r1, _020161A0 ; =0x05000400 mov r0, #0x0 lsl r2, r2, #0xa blx MIi_CpuClearFast pop {r3, pc} .balign 4 _02016198: .word 0x000001FF _0201619C: .word 0x07000400 _020161A0: .word 0x05000400 thumb_func_start FUN_020161A4 FUN_020161A4: ; 0x020161A4 push {r4-r6, lr} sub sp, #0x48 add r6, r0, #0x0 add r4, r1, #0x0 add r0, sp, #0x0 blx FS_InitFile add r0, sp, #0x0 add r1, r4, #0x0 blx FS_OpenFile cmp r0, #0x0 beq _020161F0 ldr r1, [sp, #0x28] ldr r0, [sp, #0x24] sub r5, r1, r0 add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_02016998 add r4, r0, #0x0 beq _020161E8 add r0, sp, #0x0 add r1, r4, #0x0 add r2, r5, #0x0 blx FS_ReadFile cmp r5, r0 beq _020161E8 add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_02016A8C mov r4, #0x0 _020161E8: add r0, sp, #0x0 blx FS_CloseFile b _020161F2 _020161F0: mov r4, #0x0 _020161F2: add r0, r4, #0x0 add sp, #0x48 pop {r4-r6, pc} thumb_func_start FUN_020161F8 FUN_020161F8: ; 0x020161F8 push {r3-r5, lr} sub sp, #0x48 add r5, r0, #0x0 add r0, sp, #0x0 add r4, r1, #0x0 blx FS_InitFile add r0, sp, #0x0 add r1, r5, #0x0 blx FS_OpenFile cmp r0, #0x0 beq _0201622A ldr r1, [sp, #0x28] ldr r0, [sp, #0x24] sub r2, r1, r0 ldr r1, [r4, #0x0] cmp r1, #0x0 beq _02016224 add r0, sp, #0x0 blx FS_ReadFile _02016224: add r0, sp, #0x0 blx FS_CloseFile _0201622A: add sp, #0x48 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02016230 FUN_02016230: ; 0x02016230 push {r3-r7, lr} sub sp, #0x8 str r0, [sp, #0x0] blx FUN_020E2EAC lsl r0, r0, #0x10 lsr r3, r0, #0x10 lsr r2, r3, #0x1f lsl r1, r3, #0x1e sub r1, r1, r2 mov r0, #0x1e ror r1, r0 add r0, r2, r1 beq _02016258 lsr r0, r3, #0x2 add r0, r0, #0x1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x4] b _0201625E _02016258: lsl r0, r3, #0xe lsr r0, r0, #0x10 str r0, [sp, #0x4] _0201625E: ldr r0, [sp, #0x4] mov r7, #0x0 mov r12, r7 cmp r0, #0x0 ble _0201629A add r6, r7, #0x0 add r4, r7, #0x0 _0201626C: ldr r2, [sp, #0x0] mov r1, #0x0 add r0, r1, #0x0 add r2, r2, r6 add r3, r1, #0x0 _02016276: ldrsb r5, [r2, r4] cmp r5, #0x0 beq _0201628A lsl r5, r3 add r0, r0, #0x1 orr r1, r5 add r2, r2, #0x1 add r3, #0x8 cmp r0, #0x4 blt _02016276 _0201628A: mov r0, r12 eor r7, r1 add r1, r0, #0x1 ldr r0, [sp, #0x4] add r6, r6, #0x4 mov r12, r1 cmp r1, r0 blt _0201626C _0201629A: add r0, r7, #0x0 add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_020162A0 FUN_020162A0: ; 0x020162A0 ldr r3, _020162C4 ; =0x021C4928 mov r2, #0x0 _020162A4: ldr r1, [r3, #0x4] cmp r0, r1 bne _020162B4 ldr r1, [r3, #0x0] cmp r1, #0x0 beq _020162B4 add r0, r2, #0x0 bx lr _020162B4: add r2, r2, #0x1 add r3, #0x8 cmp r2, #0x80 blt _020162A4 mov r0, #0x0 mvn r0, r0 bx lr nop _020162C4: .word 0x021C4928 thumb_func_start FUN_020162C8 FUN_020162C8: ; 0x020162C8 push {r3-r4} ldr r3, _020162F4 ; =0x021C4928 mov r4, #0x0 _020162CE: ldr r2, [r3, #0x0] cmp r2, #0x0 bne _020162E4 ldr r2, _020162F4 ; =0x021C4928 lsl r3, r4, #0x3 str r0, [r2, r3] ldr r0, _020162F8 ; =0x021C492C str r1, [r0, r3] add r0, r4, #0x0 pop {r3-r4} bx lr _020162E4: add r4, r4, #0x1 add r3, #0x8 cmp r4, #0x80 blt _020162CE mov r0, #0x0 mvn r0, r0 pop {r3-r4} bx lr .balign 4 _020162F4: .word 0x021C4928 _020162F8: .word 0x021C492C thumb_func_start FUN_020162FC FUN_020162FC: ; 0x020162FC push {r3-r7, lr} mov r6, #0x0 ldr r5, _02016320 ; =0x021C4D20 mov r4, #0x7f sub r7, r6, #0x1 _02016306: ldr r0, [r5, #0x0] cmp r0, #0x0 beq _02016314 bl FUN_02016A18 str r6, [r5, #0x0] str r6, [r5, #0x4] _02016314: sub r4, r4, #0x1 sub r5, #0x8 cmp r4, r7 bgt _02016306 pop {r3-r7, pc} nop _02016320: .word 0x021C4D20 thumb_func_start FUN_02016324 FUN_02016324: ; 0x02016324 push {r3-r7, lr} sub sp, #0x68 add r2, r0, #0x0 mov r5, #0x0 ldrsb r0, [r2, r5] add r4, r1, #0x0 cmp r0, #0x21 add r0, sp, #0x0 bne _02016340 add r1, r2, #0x1 blx FUN_020E2EC8 mov r5, #0x1 b _02016346 _02016340: add r1, r2, #0x0 blx FUN_020E2EC8 _02016346: add r0, sp, #0x0 bl FUN_02016230 add r7, r0, #0x0 bl FUN_020162A0 cmp r0, #0x0 blt _02016362 cmp r5, #0x0 bne _02016362 lsl r1, r0, #0x3 ldr r0, _020163B8 ; =0x021C4928 ldr r4, [r0, r1] b _020163B2 _02016362: add r0, sp, #0x20 blx FS_InitFile add r0, sp, #0x20 add r1, sp, #0x0 blx FS_OpenFile cmp r0, #0x0 beq _020163B0 ldr r1, [sp, #0x48] ldr r0, [sp, #0x44] sub r6, r1, r0 add r0, r4, #0x0 add r1, r6, #0x0 bl FUN_02016998 add r4, r0, #0x0 beq _0201639C add r0, sp, #0x20 add r1, r4, #0x0 add r2, r6, #0x0 blx FS_ReadFile cmp r6, r0 beq _0201639C add r0, r4, #0x0 bl FUN_02016A18 mov r4, #0x0 _0201639C: add r0, sp, #0x20 blx FS_CloseFile cmp r5, #0x0 bne _020163B2 add r0, r4, #0x0 add r1, r7, #0x0 bl FUN_020162C8 b _020163B2 _020163B0: mov r4, #0x0 _020163B2: add r0, r4, #0x0 add sp, #0x68 pop {r3-r7, pc} .balign 4 _020163B8: .word 0x021C4928 thumb_func_start FUN_020163BC FUN_020163BC: ; 0x020163BC push {r3, lr} sub sp, #0x8 ldr r0, _0201641C ; =0x021C48B8 mov r2, #0x0 str r2, [r0, #0x34] str r2, [r0, #0x38] str r2, [r0, #0x3c] str r2, [r0, #0x40] str r2, [r0, #0x44] str r2, [r0, #0x48] str r2, [r0, #0x4c] str r2, [r0, #0x50] mov r1, #0x8 str r1, [r0, #0x54] mov r1, #0xf str r1, [r0, #0x58] ldr r0, _02016420 ; =0x021C48F8 strh r2, [r0, #0x1c] strh r2, [r0, #0x1e] strh r2, [r0, #0x20] strh r2, [r0, #0x22] ldr r0, _02016424 ; =0x021C4918 strb r2, [r0, #0x4] blx TP_Init add r0, sp, #0x0 blx TP_GetUserInfo cmp r0, #0x1 add r0, sp, #0x0 bne _02016402 blx TP_SetCalibrateParam add sp, #0x8 pop {r3, pc} _02016402: ldr r1, _02016428 ; =0x000002AE strh r1, [r0, #0x0] ldr r1, _0201642C ; =0x0000058C strh r1, [r0, #0x2] ldr r1, _02016430 ; =0x00000E25 strh r1, [r0, #0x4] ldr r1, _02016434 ; =0x00001208 strh r1, [r0, #0x6] add r0, sp, #0x0 blx TP_SetCalibrateParam add sp, #0x8 pop {r3, pc} .balign 4 _0201641C: .word 0x021C48B8 _02016420: .word 0x021C48F8 _02016424: .word 0x021C4918 _02016428: .word 0x000002AE _0201642C: .word 0x0000058C _02016430: .word 0x00000E25 _02016434: .word 0x00001208 thumb_func_start FUN_02016438 FUN_02016438: ; 0x02016438 ldr r1, _02016440 ; =0x021C4918 strb r0, [r1, #0x6] bx lr nop _02016440: .word 0x021C4918 thumb_func_start FUN_02016444 FUN_02016444: ; 0x02016444 ldr r1, _02016450 ; =0x021C4918 ldrb r2, [r1, #0x7] orr r0, r2 strb r0, [r1, #0x7] bx lr nop _02016450: .word 0x021C4918 thumb_func_start FUN_02016454 FUN_02016454: ; 0x02016454 ldr r1, _02016460 ; =0x021C4918 mvn r0, r0 ldrb r2, [r1, #0x7] and r0, r2 strb r0, [r1, #0x7] bx lr .balign 4 _02016460: .word 0x021C4918 thumb_func_start FUN_02016464 FUN_02016464: ; 0x02016464 push {r4, lr} sub sp, #0x10 ldr r2, _02016550 ; =0x027FFFA8 mov r0, #0x2 ldrh r1, [r2, #0x0] lsl r0, r0, #0xe and r0, r1 asr r0, r0, #0xf beq _0201648A ldr r0, _02016554 ; =0x021C48B8 mov r1, #0x0 str r1, [r0, #0x48] str r1, [r0, #0x44] str r1, [r0, #0x4c] ldr r0, _02016558 ; =0x021C48F8 add sp, #0x10 strh r1, [r0, #0x20] strh r1, [r0, #0x22] pop {r4, pc} _0201648A: ldr r0, _0201655C ; =0x04000130 ldrh r1, [r0, #0x0] ldrh r0, [r2, #0x0] orr r1, r0 ldr r0, _02016560 ; =0x00002FFF eor r1, r0 and r0, r1 ldr r1, _02016554 ; =0x021C48B8 lsl r0, r0, #0x10 lsr r0, r0, #0x10 ldr r2, [r1, #0x38] add r3, r0, #0x0 eor r3, r2 and r3, r0 str r3, [r1, #0x3c] str r3, [r1, #0x40] cmp r0, #0x0 beq _020164C2 cmp r2, r0 bne _020164C2 ldr r2, [r1, #0x50] sub r2, r2, #0x1 str r2, [r1, #0x50] bne _020164C8 str r0, [r1, #0x40] ldr r2, [r1, #0x54] str r2, [r1, #0x50] b _020164C8 _020164C2: ldr r1, _02016554 ; =0x021C48B8 ldr r2, [r1, #0x58] str r2, [r1, #0x50] _020164C8: ldr r1, _02016554 ; =0x021C48B8 str r0, [r1, #0x38] ldr r2, [r1, #0x3c] str r2, [r1, #0x48] str r0, [r1, #0x44] ldr r0, [r1, #0x40] str r0, [r1, #0x4c] bl FUN_02016568 ldr r0, _02016564 ; =0x021C4918 ldrb r0, [r0, #0x4] cmp r0, #0x0 bne _020164F4 add r4, sp, #0x8 _020164E4: blx TP_RequestSamplingAsync add r0, r4, #0x0 blx TP_WaitRawResult cmp r0, #0x0 bne _020164E4 b _020164FA _020164F4: add r0, sp, #0x8 blx TP_GetLatestRawPointInAuto _020164FA: add r0, sp, #0x0 add r1, sp, #0x8 blx TP_GetCalibratedPoint add r1, sp, #0x0 ldrh r3, [r1, #0x6] cmp r3, #0x0 bne _02016516 ldrh r2, [r1, #0x0] ldr r0, _02016558 ; =0x021C48F8 strh r2, [r0, #0x1c] ldrh r1, [r1, #0x2] strh r1, [r0, #0x1e] b _0201653A _02016516: ldr r0, _02016558 ; =0x021C48F8 ldrh r2, [r0, #0x22] cmp r2, #0x0 beq _02016536 cmp r3, #0x1 beq _0201652A cmp r3, #0x2 beq _02016530 cmp r3, #0x3 b _0201653A _0201652A: ldrh r1, [r1, #0x2] strh r1, [r0, #0x1e] b _0201653A _02016530: ldrh r1, [r1, #0x0] strh r1, [r0, #0x1c] b _0201653A _02016536: mov r0, #0x0 strh r0, [r1, #0x4] _0201653A: add r0, sp, #0x0 ldrh r2, [r0, #0x4] ldr r0, _02016558 ; =0x021C48F8 ldrh r1, [r0, #0x22] eor r1, r2 and r1, r2 strh r1, [r0, #0x20] strh r2, [r0, #0x22] add sp, #0x10 pop {r4, pc} nop _02016550: .word 0x027FFFA8 _02016554: .word 0x021C48B8 _02016558: .word 0x021C48F8 _0201655C: .word 0x04000130 _02016560: .word 0x00002FFF _02016564: .word 0x021C4918 thumb_func_start FUN_02016568 FUN_02016568: ; 0x02016568 ldr r0, _02016690 ; =0x021C48B8 ldr r1, [r0, #0x34] cmp r1, #0x3 bls _02016572 b _0201668C _02016572: add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0201657E: ; jump table (using 16-bit offset) .short _0201668C - _0201657E - 2; case 0 .short _02016586 - _0201657E - 2; case 1 .short _020165BC - _0201657E - 2; case 2 .short _02016642 - _0201657E - 2; case 3 _02016586: ldr r2, [r0, #0x48] mov r1, #0x8 add r3, r2, #0x0 tst r3, r1 beq _02016596 lsl r1, r1, #0x7 orr r1, r2 str r1, [r0, #0x48] _02016596: ldr r1, _02016690 ; =0x021C48B8 mov r0, #0x8 ldr r2, [r1, #0x44] add r3, r2, #0x0 tst r3, r0 beq _020165A8 lsl r0, r0, #0x7 orr r0, r2 str r0, [r1, #0x44] _020165A8: ldr r1, _02016690 ; =0x021C48B8 mov r0, #0x8 ldr r2, [r1, #0x4c] add r3, r2, #0x0 tst r3, r0 beq _0201668C lsl r0, r0, #0x7 orr r0, r2 str r0, [r1, #0x4c] bx lr _020165BC: ldr r3, [r0, #0x48] mov r0, #0x1 lsl r0, r0, #0xa add r2, r3, #0x0 mov r1, #0x0 tst r2, r0 beq _020165CE lsl r0, r0, #0x1 orr r1, r0 _020165CE: mov r0, #0x2 lsl r0, r0, #0xa add r2, r3, #0x0 tst r2, r0 beq _020165DC lsr r0, r0, #0x1 orr r1, r0 _020165DC: ldr r2, _02016690 ; =0x021C48B8 ldr r0, _02016694 ; =0x0000F3FF ldr r3, [r2, #0x48] and r0, r3 orr r0, r1 str r0, [r2, #0x48] ldr r3, [r2, #0x44] mov r1, #0x1 lsl r1, r1, #0xa add r2, r3, #0x0 mov r0, #0x0 tst r2, r1 beq _020165FA lsl r1, r1, #0x1 orr r0, r1 _020165FA: mov r1, #0x2 lsl r1, r1, #0xa add r2, r3, #0x0 tst r2, r1 beq _02016608 lsr r1, r1, #0x1 orr r0, r1 _02016608: ldr r2, _02016690 ; =0x021C48B8 ldr r1, _02016694 ; =0x0000F3FF ldr r3, [r2, #0x44] and r1, r3 orr r0, r1 str r0, [r2, #0x44] ldr r3, [r2, #0x4c] mov r1, #0x1 lsl r1, r1, #0xa add r2, r3, #0x0 mov r0, #0x0 tst r2, r1 beq _02016626 lsl r1, r1, #0x1 orr r0, r1 _02016626: mov r1, #0x2 lsl r1, r1, #0xa add r2, r3, #0x0 tst r2, r1 beq _02016634 lsr r1, r1, #0x1 orr r0, r1 _02016634: ldr r2, _02016690 ; =0x021C48B8 ldr r1, _02016694 ; =0x0000F3FF ldr r3, [r2, #0x4c] and r1, r3 orr r0, r1 str r0, [r2, #0x4c] bx lr _02016642: mov r1, #0x2 ldr r2, [r0, #0x48] lsl r1, r1, #0x8 tst r1, r2 beq _02016652 mov r1, #0x1 orr r1, r2 str r1, [r0, #0x48] _02016652: ldr r1, _02016690 ; =0x021C48B8 mov r0, #0x2 ldr r2, [r1, #0x44] lsl r0, r0, #0x8 tst r0, r2 beq _02016664 mov r0, #0x1 orr r0, r2 str r0, [r1, #0x44] _02016664: ldr r1, _02016690 ; =0x021C48B8 mov r0, #0x2 ldr r2, [r1, #0x4c] lsl r0, r0, #0x8 tst r0, r2 beq _02016676 mov r0, #0x1 orr r0, r2 str r0, [r1, #0x4c] _02016676: ldr r1, _02016690 ; =0x021C48B8 ldr r0, _02016698 ; =0x0000FCFF ldr r2, [r1, #0x48] and r2, r0 str r2, [r1, #0x48] ldr r2, [r1, #0x44] and r2, r0 str r2, [r1, #0x44] ldr r2, [r1, #0x4c] and r0, r2 str r0, [r1, #0x4c] _0201668C: bx lr nop _02016690: .word 0x021C48B8 _02016694: .word 0x0000F3FF _02016698: .word 0x0000FCFF thumb_func_start FUN_0201669C FUN_0201669C: ; 0x0201669C ldr r2, _020166A4 ; =0x021C48B8 str r0, [r2, #0x54] str r1, [r2, #0x58] bx lr .balign 4 _020166A4: .word 0x021C48B8 thumb_func_start FUN_020166A8 FUN_020166A8: ; 0x020166A8 ldr r1, _020166B4 ; =0x021C4918 ldrb r2, [r1, #0x8] orr r0, r2 strb r0, [r1, #0x8] bx lr nop _020166B4: .word 0x021C4918 thumb_func_start FUN_020166B8 FUN_020166B8: ; 0x020166B8 ldr r1, _020166C4 ; =0x021C4918 mvn r0, r0 ldrb r2, [r1, #0x8] and r0, r2 strb r0, [r1, #0x8] bx lr .balign 4 _020166C4: .word 0x021C4918 thumb_func_start FUN_020166C8 FUN_020166C8: ; 0x020166C8 push {r3-r7, lr} sub sp, #0x8 add r4, r1, #0x0 add r5, r0, #0x0 add r0, r4, #0x0 str r0, [sp, #0x4] add r0, #0x18 add r6, r2, #0x0 str r0, [sp, #0x4] cmp r6, r0 bhs _020166E0 add r6, r0, #0x0 _020166E0: cmp r3, #0x0 beq _020166FE mov r0, #0x3 tst r0, r3 beq _020166F4 mov r0, #0x3 _020166EC: add r3, r3, #0x1 add r1, r3, #0x0 tst r1, r0 bne _020166EC _020166F4: mov r0, #0x0 add r1, r3, #0x0 mov r2, #0x4 blx OS_AllocFromArenaLo _020166FE: ldr r1, [sp, #0x4] lsl r7, r6, #0x1 lsl r2, r1, #0x1 add r1, r1, r2 add r1, r1, #0x1 lsl r1, r1, #0x2 add r1, r7, r1 mov r0, #0x0 add r1, r6, r1 mov r2, #0x4 blx OS_AllocFromArenaLo ldr r1, _020167F0 ; =0x021C4D28 str r0, [r1, #0x0] ldr r1, [sp, #0x4] add r1, r1, #0x1 lsl r1, r1, #0x2 add r1, r0, r1 ldr r0, _020167F0 ; =0x021C4D28 str r1, [r0, #0x4] ldr r0, [sp, #0x4] lsl r0, r0, #0x2 add r2, r1, r0 ldr r1, _020167F0 ; =0x021C4D28 str r2, [r1, #0x8] add r1, r2, r0 ldr r0, _020167F0 ; =0x021C4D28 str r1, [r0, #0xc] add r1, r1, r7 str r1, [r0, #0x10] strh r6, [r0, #0x14] strh r4, [r0, #0x16] ldr r0, [sp, #0x4] mov r7, #0x0 lsl r0, r0, #0x10 lsr r1, r0, #0x10 ldr r0, _020167F0 ; =0x021C4D28 cmp r4, #0x0 strh r1, [r0, #0x1a] strh r1, [r0, #0x18] bls _020167A0 str r7, [sp, #0x0] _02016752: ldr r0, [r5, #0x4] cmp r0, #0x0 beq _0201675C cmp r0, #0x2 beq _02016768 _0201675C: ldr r1, [r5, #0x0] mov r0, #0x0 mov r2, #0x4 blx OS_AllocFromArenaLo b _02016772 _02016768: ldr r1, [r5, #0x0] mov r0, #0x2 mov r2, #0x4 blx OS_AllocFromArenaHi _02016772: cmp r0, #0x0 beq _0201678E ldr r1, [r5, #0x0] mov r2, #0x0 blx FUN_020ADFE8 ldr r1, _020167F0 ; =0x021C4D28 ldr r2, [r1, #0x0] ldr r1, [sp, #0x0] str r0, [r2, r1] ldr r0, _020167F0 ; =0x021C4D28 ldr r0, [r0, #0x10] strb r7, [r0, r7] b _02016792 _0201678E: bl ErrorHandling _02016792: ldr r0, [sp, #0x0] add r7, r7, #0x1 add r0, r0, #0x4 add r5, #0x8 str r0, [sp, #0x0] cmp r7, r4 blo _02016752 _020167A0: ldr r0, [sp, #0x4] add r1, r0, #0x1 cmp r4, r1 bhs _020167C0 ldr r3, _020167F0 ; =0x021C4D28 lsl r2, r4, #0x2 mov r0, #0x0 _020167AE: ldr r5, [r3, #0x0] str r0, [r5, r2] ldrh r7, [r3, #0x1a] ldr r5, [r3, #0x10] add r2, r2, #0x4 strb r7, [r5, r4] add r4, r4, #0x1 cmp r4, r1 blo _020167AE _020167C0: cmp r4, r6 bhs _020167D2 ldr r0, _020167F0 ; =0x021C4D28 _020167C6: ldrh r2, [r0, #0x1a] ldr r1, [r0, #0x10] strb r2, [r1, r4] add r4, r4, #0x1 cmp r4, r6 blo _020167C6 _020167D2: mov r4, #0x0 cmp r6, #0x0 bls _020167EA ldr r0, _020167F0 ; =0x021C4D28 add r3, r4, #0x0 add r2, r4, #0x0 _020167DE: ldr r1, [r0, #0xc] add r4, r4, #0x1 strh r2, [r1, r3] add r3, r3, #0x2 cmp r4, r6 blo _020167DE _020167EA: add sp, #0x8 pop {r3-r7, pc} nop _020167F0: .word 0x021C4D28 thumb_func_start FUN_020167F4 FUN_020167F4: ; 0x020167F4 ldr r1, _02016818 ; =0x021C4D28 ldrh r0, [r1, #0x16] ldrh r3, [r1, #0x18] cmp r0, r3 bge _02016812 ldr r2, [r1, #0x0] lsl r1, r0, #0x2 add r2, r2, r1 _02016804: ldr r1, [r2, #0x0] cmp r1, #0x0 beq _02016816 add r0, r0, #0x1 add r2, r2, #0x4 cmp r0, r3 blt _02016804 _02016812: mov r0, #0x0 mvn r0, r0 _02016816: bx lr .balign 4 _02016818: .word 0x021C4D28 thumb_func_start FUN_0201681C FUN_0201681C: ; 0x0201681C push {r3, lr} mov r3, #0x4 bl FUN_02016834 pop {r3, pc} .balign 4 thumb_func_start FUN_02016828 FUN_02016828: ; 0x02016828 push {r3, lr} mov r3, #0x3 mvn r3, r3 bl FUN_02016834 pop {r3, pc} thumb_func_start FUN_02016834 FUN_02016834: ; 0x02016834 push {r3-r7, lr} sub sp, #0x8 add r4, r0, #0x0 add r5, r1, #0x0 str r2, [sp, #0x0] add r7, r3, #0x0 blx OS_GetProcMode cmp r0, #0x12 bne _0201684C bl ErrorHandling _0201684C: ldr r1, _020168CC ; =0x021C4D28 ldr r0, [r1, #0x10] ldrh r3, [r1, #0x1a] ldrb r2, [r0, r5] cmp r3, r2 bne _020168C2 ldrb r0, [r0, r4] ldr r1, [r1, #0x0] lsl r0, r0, #0x2 ldr r6, [r1, r0] cmp r6, #0x0 beq _020168BC ldr r1, [sp, #0x0] add r0, r6, #0x0 add r2, r7, #0x0 blx FUN_020ADFA0 str r0, [sp, #0x4] cmp r0, #0x0 beq _020168B6 bl FUN_020167F4 add r7, r0, #0x0 bmi _020168B0 ldr r0, [sp, #0x4] ldr r1, [sp, #0x0] mov r2, #0x0 lsl r4, r7, #0x2 blx FUN_020ADFE8 ldr r1, _020168CC ; =0x021C4D28 ldr r2, [r1, #0x0] str r0, [r2, r4] ldr r0, [r1, #0x0] ldr r0, [r0, r4] cmp r0, #0x0 beq _020168AA ldr r0, [r1, #0x4] str r6, [r0, r4] ldr r0, [sp, #0x4] ldr r2, [r1, #0x8] add sp, #0x8 str r0, [r2, r4] ldr r0, [r1, #0x10] strb r7, [r0, r5] mov r0, #0x1 pop {r3-r7, pc} _020168AA: bl ErrorHandling b _020168C6 _020168B0: bl ErrorHandling b _020168C6 _020168B6: bl ErrorHandling b _020168C6 _020168BC: bl ErrorHandling b _020168C6 _020168C2: bl ErrorHandling _020168C6: mov r0, #0x0 add sp, #0x8 pop {r3-r7, pc} .balign 4 _020168CC: .word 0x021C4D28 thumb_func_start FUN_020168D0 FUN_020168D0: ; 0x020168D0 push {r4, lr} add r4, r0, #0x0 blx OS_GetProcMode cmp r0, #0x12 bne _020168E0 bl ErrorHandling _020168E0: ldr r0, _02016940 ; =0x021C4D28 ldr r1, [r0, #0x0] ldr r0, [r0, #0x10] ldrb r0, [r0, r4] lsl r0, r0, #0x2 ldr r0, [r1, r0] cmp r0, #0x0 beq _0201693E blx FUN_020ADFDC ldr r1, _02016940 ; =0x021C4D28 ldr r0, [r1, #0x10] ldrb r0, [r0, r4] lsl r2, r0, #0x2 ldr r0, [r1, #0x4] ldr r1, [r1, #0x8] ldr r0, [r0, r2] ldr r1, [r1, r2] cmp r0, #0x0 beq _02016912 cmp r1, #0x0 beq _02016912 blx FUN_020ADDF0 b _02016916 _02016912: bl ErrorHandling _02016916: ldr r1, _02016940 ; =0x021C4D28 mov r0, #0x0 ldr r2, [r1, #0x10] ldr r3, [r1, #0x0] ldrb r2, [r2, r4] lsl r2, r2, #0x2 str r0, [r3, r2] ldr r2, [r1, #0x10] ldr r3, [r1, #0x4] ldrb r2, [r2, r4] lsl r2, r2, #0x2 str r0, [r3, r2] ldr r2, [r1, #0x10] ldr r3, [r1, #0x8] ldrb r2, [r2, r4] lsl r2, r2, #0x2 str r0, [r3, r2] ldrh r2, [r1, #0x1a] ldr r0, [r1, #0x10] strb r2, [r0, r4] _0201693E: pop {r4, pc} .balign 4 _02016940: .word 0x021C4D28 thumb_func_start FUN_02016944 FUN_02016944: ; 0x02016944 push {r3-r7, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r7, r2, #0x0 add r6, r3, #0x0 cmp r5, #0x0 bne _02016956 bl ErrorHandling _02016956: blx OS_DisableInterrupts add r4, #0x10 str r0, [sp, #0x0] add r0, r5, #0x0 add r1, r4, #0x0 add r2, r7, #0x0 blx FUN_020ADFA0 add r4, r0, #0x0 ldr r0, [sp, #0x0] blx OS_RestoreInterrupts cmp r4, #0x0 beq _02016984 ldr r1, [r4, #0xc] mov r0, #0xff bic r1, r0 lsl r0, r6, #0x18 lsr r0, r0, #0x18 orr r0, r1 str r0, [r4, #0xc] add r4, #0x10 _02016984: add r0, r4, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02016988 FUN_02016988: ; 0x02016988 push {r3, lr} bl FUN_02031810 cmp r0, #0x0 beq _02016996 bl FUN_0208A9B8 _02016996: pop {r3, pc} thumb_func_start FUN_02016998 FUN_02016998: ; 0x02016998 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _020169D4 ; =0x021C4D28 mov r4, #0x0 ldrh r2, [r0, #0x14] cmp r5, r2 bhs _020169BA ldr r2, [r0, #0x0] ldr r0, [r0, #0x10] add r3, r5, #0x0 ldrb r0, [r0, r5] lsl r0, r0, #0x2 ldr r0, [r2, r0] mov r2, #0x4 bl FUN_02016944 add r4, r0, #0x0 _020169BA: cmp r4, #0x0 beq _020169CC ldr r0, _020169D4 ; =0x021C4D28 lsl r1, r5, #0x1 ldr r2, [r0, #0xc] ldrh r0, [r2, r1] add r0, r0, #0x1 strh r0, [r2, r1] b _020169D0 _020169CC: bl FUN_02016988 _020169D0: add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 _020169D4: .word 0x021C4D28 thumb_func_start FUN_020169D8 FUN_020169D8: ; 0x020169D8 push {r3-r5, lr} ldr r2, _02016A14 ; =0x021C4D28 add r5, r0, #0x0 ldrh r0, [r2, #0x14] mov r4, #0x0 cmp r5, r0 bhs _020169FA ldr r0, [r2, #0x0] ldr r2, [r2, #0x10] add r3, r5, #0x0 ldrb r2, [r2, r5] lsl r2, r2, #0x2 ldr r0, [r0, r2] sub r2, r4, #0x4 bl FUN_02016944 add r4, r0, #0x0 _020169FA: cmp r4, #0x0 beq _02016A0C ldr r0, _02016A14 ; =0x021C4D28 lsl r1, r5, #0x1 ldr r2, [r0, #0xc] ldrh r0, [r2, r1] add r0, r0, #0x1 strh r0, [r2, r1] b _02016A10 _02016A0C: bl FUN_02016988 _02016A10: add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 _02016A14: .word 0x021C4D28 thumb_func_start FUN_02016A18 FUN_02016A18: ; 0x02016A18 push {r3-r7, lr} add r6, r0, #0x0 sub r0, r6, #0x4 ldr r0, [r0, #0x0] lsl r0, r0, #0x18 lsr r4, r0, #0x18 ldr r0, _02016A88 ; =0x021C4D28 ldrh r1, [r0, #0x14] cmp r4, r1 bhs _02016A80 ldr r1, [r0, #0x0] ldr r0, [r0, #0x10] ldrb r0, [r0, r4] lsl r0, r0, #0x2 ldr r7, [r1, r0] cmp r7, #0x0 bne _02016A3E bl ErrorHandling _02016A3E: ldr r0, _02016A88 ; =0x021C4D28 lsl r5, r4, #0x1 ldr r0, [r0, #0xc] ldrh r0, [r0, r5] cmp r0, #0x0 bne _02016A50 add r0, r4, #0x0 bl FUN_02016B90 _02016A50: ldr r0, _02016A88 ; =0x021C4D28 ldr r0, [r0, #0xc] ldrh r0, [r0, r5] cmp r0, #0x0 bne _02016A5E bl ErrorHandling _02016A5E: ldr r0, _02016A88 ; =0x021C4D28 ldr r1, [r0, #0xc] ldrh r0, [r1, r5] sub r0, r0, #0x1 strh r0, [r1, r5] blx OS_DisableInterrupts sub r6, #0x10 add r4, r0, #0x0 add r0, r7, #0x0 add r1, r6, #0x0 blx FUN_020ADDF0 add r0, r4, #0x0 blx OS_RestoreInterrupts pop {r3-r7, pc} _02016A80: bl ErrorHandling pop {r3-r7, pc} nop _02016A88: .word 0x021C4D28 thumb_func_start FUN_02016A8C FUN_02016A8C: ; 0x02016A8C push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 blx OS_GetProcMode cmp r0, #0x12 bne _02016A9E bl ErrorHandling _02016A9E: ldr r0, _02016AF4 ; =0x021C4D28 ldrh r1, [r0, #0x14] cmp r5, r1 bhs _02016AEE ldr r1, [r0, #0x0] ldr r0, [r0, #0x10] ldrb r0, [r0, r5] lsl r0, r0, #0x2 ldr r6, [r1, r0] cmp r6, #0x0 bne _02016AB8 bl ErrorHandling _02016AB8: sub r0, r4, #0x4 ldr r0, [r0, #0x0] lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r0, r5 beq _02016AC8 bl ErrorHandling _02016AC8: sub r4, #0x10 add r0, r6, #0x0 add r1, r4, #0x0 blx FUN_020ADDF0 ldr r0, _02016AF4 ; =0x021C4D28 lsl r4, r5, #0x1 ldr r0, [r0, #0xc] ldrh r0, [r0, r4] cmp r0, #0x0 bne _02016AE2 bl ErrorHandling _02016AE2: ldr r0, _02016AF4 ; =0x021C4D28 ldr r1, [r0, #0xc] ldrh r0, [r1, r4] sub r0, r0, #0x1 strh r0, [r1, r4] pop {r4-r6, pc} _02016AEE: bl ErrorHandling pop {r4-r6, pc} .balign 4 _02016AF4: .word 0x021C4D28 thumb_func_start FUN_02016AF8 FUN_02016AF8: ; 0x02016AF8 push {r3, lr} ldr r1, _02016B1C ; =0x021C4D28 ldrh r2, [r1, #0x14] cmp r0, r2 bhs _02016B12 ldr r2, [r1, #0x0] ldr r1, [r1, #0x10] ldrb r0, [r1, r0] lsl r0, r0, #0x2 ldr r0, [r2, r0] blx FUN_020ADDC8 pop {r3, pc} _02016B12: bl ErrorHandling mov r0, #0x0 pop {r3, pc} nop _02016B1C: .word 0x021C4D28 thumb_func_start FUN_02016B20 FUN_02016B20: ; 0x02016B20 push {r4, lr} ldr r4, _02016B40 ; =0x021C4D28 ldrh r3, [r4, #0x14] cmp r1, r3 bhs _02016B3A ldr r3, [r4, #0x0] ldr r4, [r4, #0x10] ldrb r1, [r4, r1] lsl r1, r1, #0x2 ldr r1, [r3, r1] blx FUN_020AE82C pop {r4, pc} _02016B3A: bl ErrorHandling pop {r4, pc} .balign 4 _02016B40: .word 0x021C4D28 thumb_func_start FUN_02016B44 FUN_02016B44: ; 0x02016B44 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 blx OS_GetProcMode cmp r0, #0x12 bne _02016B56 bl ErrorHandling _02016B56: add r0, r5, #0x0 sub r0, #0x10 blx FUN_020ADDC0 add r4, #0x10 cmp r0, r4 blo _02016B84 sub r2, r5, #0x4 ldr r0, _02016B8C ; =0x021C4D28 ldr r2, [r2, #0x0] ldr r1, [r0, #0x0] lsl r2, r2, #0x18 ldr r0, [r0, #0x10] lsr r2, r2, #0x18 ldrb r0, [r0, r2] sub r5, #0x10 add r2, r4, #0x0 lsl r0, r0, #0x2 ldr r0, [r1, r0] add r1, r5, #0x0 blx FUN_020ADE2C pop {r3-r5, pc} _02016B84: bl ErrorHandling pop {r3-r5, pc} nop _02016B8C: .word 0x021C4D28 thumb_func_start FUN_02016B90 FUN_02016B90: ; 0x02016B90 mov r0, #0x1 bx lr thumb_func_start FUN_02016B94 FUN_02016B94: ; 0x02016B94 push {r3-r5, lr} mov r1, #0x5a lsl r1, r1, #0x2 add r5, r0, #0x0 bl FUN_02016998 mov r2, #0x5a mov r1, #0x0 lsl r2, r2, #0x2 add r4, r0, #0x0 blx FUN_020DF4A4 str r5, [r4, #0x0] mov r0, #0x0 strh r0, [r4, #0x4] strh r0, [r4, #0x6] add r0, r4, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02016BB8 FUN_02016BB8: ; 0x02016BB8 ldr r0, [r0, #0x0] bx lr thumb_func_start FUN_02016BBC FUN_02016BBC: ; 0x02016BBC push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] ldr r1, [r4, #0x4] ldr r2, [r4, #0xc] blx FUN_020C59C0 ldr r0, [r4, #0x8] blx FUN_020C59A4 mov r2, #0x1 lsl r2, r2, #0x1a ldr r1, [r2, #0x0] ldr r0, _02016BF0 ; =0xC7FFFFFF and r1, r0 str r1, [r2, #0x0] ldr r1, [r2, #0x0] asr r0, r0, #0x3 and r0, r1 str r0, [r2, #0x0] bl FUN_0201E6D8 bl FUN_0201E740 pop {r4, pc} nop _02016BF0: .word 0xC7FFFFFF thumb_func_start FUN_02016BF4 FUN_02016BF4: ; 0x02016BF4 push {r3, lr} add r2, r0, #0x0 cmp r1, #0x0 bne _02016C0C ldr r0, [r2, #0x0] ldr r1, [r2, #0x4] ldr r2, [r2, #0xc] blx FUN_020C59C0 bl FUN_0201E6D8 pop {r3, pc} _02016C0C: ldr r0, [r2, #0x8] blx FUN_020C59A4 bl FUN_0201E740 pop {r3, pc} thumb_func_start FUN_02016C18 FUN_02016C18: ; 0x02016C18 push {r3-r7, lr} sub sp, #0x18 str r1, [sp, #0x4] str r3, [sp, #0x8] add r4, r2, #0x0 str r0, [sp, #0x0] ldrb r0, [r4, #0x10] ldr r1, [sp, #0x8] bl FUN_020177DC add r5, r0, #0x0 ldr r0, [sp, #0x4] cmp r0, #0x7 bls _02016C36 b _0201705A _02016C36: add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02016C42: ; jump table (using 16-bit offset) .short _02016C52 - _02016C42 - 2; case 0 .short _02016CAA - _02016C42 - 2; case 1 .short _02016D02 - _02016C42 - 2; case 2 .short _02016DA4 - _02016C42 - 2; case 3 .short _02016E46 - _02016C42 - 2; case 4 .short _02016E9E - _02016C42 - 2; case 5 .short _02016EF6 - _02016C42 - 2; case 6 .short _02016F98 - _02016C42 - 2; case 7 _02016C52: mov r0, #0x1 add r1, r0, #0x0 bl FUN_0201E6E4 ldrb r3, [r4, #0x14] ldrb r1, [r4, #0x12] ldrb r0, [r4, #0x11] ldrb r2, [r4, #0x13] lsl r6, r3, #0xd lsl r0, r0, #0x7 lsl r3, r2, #0x2 str r0, [sp, #0xc] ldr r2, _02016FB4 ; =0x04000008 lsl r7, r1, #0x8 ldrh r1, [r2, #0x0] mov r0, #0x43 and r0, r1 lsl r1, r5, #0xe orr r1, r0 ldr r0, [sp, #0xc] orr r0, r1 orr r0, r7 orr r0, r3 orr r0, r6 strh r0, [r2, #0x0] ldrh r1, [r2, #0x0] mov r0, #0x3 bic r1, r0 ldrb r0, [r4, #0x15] orr r0, r1 strh r0, [r2, #0x0] ldr r0, [r4, #0x18] cmp r0, #0x0 beq _02016CA0 ldrh r1, [r2, #0x0] mov r0, #0x40 orr r0, r1 strh r0, [r2, #0x0] b _0201705A _02016CA0: ldrh r1, [r2, #0x0] mov r0, #0x40 bic r1, r0 strh r1, [r2, #0x0] b _0201705A _02016CAA: mov r0, #0x2 mov r1, #0x1 bl FUN_0201E6E4 ldrb r3, [r4, #0x14] ldrb r1, [r4, #0x12] ldrb r0, [r4, #0x11] ldrb r2, [r4, #0x13] lsl r6, r3, #0xd lsl r0, r0, #0x7 lsl r3, r2, #0x2 str r0, [sp, #0x10] ldr r2, _02016FB8 ; =0x0400000A lsl r7, r1, #0x8 ldrh r1, [r2, #0x0] mov r0, #0x43 and r0, r1 lsl r1, r5, #0xe orr r1, r0 ldr r0, [sp, #0x10] orr r0, r1 orr r0, r7 orr r0, r3 orr r0, r6 strh r0, [r2, #0x0] ldrh r1, [r2, #0x0] mov r0, #0x3 bic r1, r0 ldrb r0, [r4, #0x15] orr r0, r1 strh r0, [r2, #0x0] ldr r0, [r4, #0x18] cmp r0, #0x0 beq _02016CF8 ldrh r1, [r2, #0x0] mov r0, #0x40 orr r0, r1 strh r0, [r2, #0x0] b _0201705A _02016CF8: ldrh r1, [r2, #0x0] mov r0, #0x40 bic r1, r0 strh r1, [r2, #0x0] b _0201705A _02016D02: mov r0, #0x4 mov r1, #0x1 bl FUN_0201E6E4 ldr r0, [sp, #0x8] cmp r0, #0x0 beq _02016D18 cmp r0, #0x1 beq _02016D3A cmp r0, #0x2 beq _02016D5C _02016D18: ldrb r1, [r4, #0x12] ldr r7, _02016FBC ; =0x0400000C ldrb r2, [r4, #0x13] lsl r3, r1, #0x8 ldrb r0, [r4, #0x11] lsl r6, r2, #0x2 ldrh r1, [r7, #0x0] lsl r2, r0, #0x7 mov r0, #0x43 and r0, r1 lsl r1, r5, #0xe orr r0, r1 orr r0, r2 orr r0, r3 orr r0, r6 strh r0, [r7, #0x0] b _02016D7C _02016D3A: ldrb r2, [r4, #0x13] ldrb r1, [r4, #0x12] ldrb r0, [r4, #0x16] lsl r3, r2, #0x2 ldr r7, _02016FBC ; =0x0400000C lsl r2, r1, #0x8 lsl r6, r0, #0xd ldrh r1, [r7, #0x0] mov r0, #0x43 and r0, r1 lsl r1, r5, #0xe orr r0, r1 orr r0, r2 orr r0, r3 orr r0, r6 strh r0, [r7, #0x0] b _02016D7C _02016D5C: ldrb r1, [r4, #0x12] ldr r7, _02016FBC ; =0x0400000C ldrb r0, [r4, #0x16] lsl r3, r1, #0x8 ldrb r2, [r4, #0x13] lsl r6, r0, #0xd ldrh r1, [r7, #0x0] mov r0, #0x43 lsl r2, r2, #0x2 and r0, r1 lsl r1, r5, #0xe orr r0, r1 orr r0, r2 orr r0, r3 orr r0, r6 strh r0, [r7, #0x0] _02016D7C: ldr r0, _02016FBC ; =0x0400000C mov r1, #0x3 ldrh r2, [r0, #0x0] bic r2, r1 ldrb r1, [r4, #0x15] orr r1, r2 strh r1, [r0, #0x0] ldr r1, [r4, #0x18] cmp r1, #0x0 beq _02016D9A ldrh r2, [r0, #0x0] mov r1, #0x40 orr r1, r2 strh r1, [r0, #0x0] b _0201705A _02016D9A: ldrh r2, [r0, #0x0] mov r1, #0x40 bic r2, r1 strh r2, [r0, #0x0] b _0201705A _02016DA4: mov r0, #0x8 mov r1, #0x1 bl FUN_0201E6E4 ldr r0, [sp, #0x8] cmp r0, #0x0 beq _02016DBA cmp r0, #0x1 beq _02016DDC cmp r0, #0x2 beq _02016DFE _02016DBA: ldrb r1, [r4, #0x12] ldr r7, _02016FC0 ; =0x0400000E ldrb r2, [r4, #0x13] lsl r3, r1, #0x8 ldrb r0, [r4, #0x11] lsl r6, r2, #0x2 ldrh r1, [r7, #0x0] lsl r2, r0, #0x7 mov r0, #0x43 and r0, r1 lsl r1, r5, #0xe orr r0, r1 orr r0, r2 orr r0, r3 orr r0, r6 strh r0, [r7, #0x0] b _02016E1E _02016DDC: ldrb r2, [r4, #0x13] ldrb r1, [r4, #0x12] ldrb r0, [r4, #0x16] lsl r3, r2, #0x2 ldr r7, _02016FC0 ; =0x0400000E lsl r2, r1, #0x8 lsl r6, r0, #0xd ldrh r1, [r7, #0x0] mov r0, #0x43 and r0, r1 lsl r1, r5, #0xe orr r0, r1 orr r0, r2 orr r0, r3 orr r0, r6 strh r0, [r7, #0x0] b _02016E1E _02016DFE: ldrb r1, [r4, #0x12] ldr r7, _02016FC0 ; =0x0400000E ldrb r0, [r4, #0x16] lsl r3, r1, #0x8 ldrb r2, [r4, #0x13] lsl r6, r0, #0xd ldrh r1, [r7, #0x0] mov r0, #0x43 lsl r2, r2, #0x2 and r0, r1 lsl r1, r5, #0xe orr r0, r1 orr r0, r2 orr r0, r3 orr r0, r6 strh r0, [r7, #0x0] _02016E1E: ldr r0, _02016FC0 ; =0x0400000E mov r1, #0x3 ldrh r2, [r0, #0x0] bic r2, r1 ldrb r1, [r4, #0x15] orr r1, r2 strh r1, [r0, #0x0] ldr r1, [r4, #0x18] cmp r1, #0x0 beq _02016E3C ldrh r2, [r0, #0x0] mov r1, #0x40 orr r1, r2 strh r1, [r0, #0x0] b _0201705A _02016E3C: ldrh r2, [r0, #0x0] mov r1, #0x40 bic r2, r1 strh r2, [r0, #0x0] b _0201705A _02016E46: mov r0, #0x1 add r1, r0, #0x0 bl FUN_0201E74C ldrb r3, [r4, #0x14] ldrb r1, [r4, #0x12] ldrb r0, [r4, #0x11] ldrb r2, [r4, #0x13] lsl r6, r3, #0xd lsl r0, r0, #0x7 lsl r3, r2, #0x2 str r0, [sp, #0x14] ldr r2, _02016FC4 ; =0x04001008 lsl r7, r1, #0x8 ldrh r1, [r2, #0x0] mov r0, #0x43 and r0, r1 lsl r1, r5, #0xe orr r1, r0 ldr r0, [sp, #0x14] orr r0, r1 orr r0, r7 orr r0, r3 orr r0, r6 strh r0, [r2, #0x0] ldrh r1, [r2, #0x0] mov r0, #0x3 bic r1, r0 ldrb r0, [r4, #0x15] orr r0, r1 strh r0, [r2, #0x0] ldr r0, [r4, #0x18] cmp r0, #0x0 beq _02016E94 ldrh r1, [r2, #0x0] mov r0, #0x40 orr r0, r1 strh r0, [r2, #0x0] b _0201705A _02016E94: ldrh r1, [r2, #0x0] mov r0, #0x40 bic r1, r0 strh r1, [r2, #0x0] b _0201705A _02016E9E: mov r0, #0x2 mov r1, #0x1 bl FUN_0201E74C ldrb r2, [r4, #0x13] ldrb r1, [r4, #0x12] ldrb r0, [r4, #0x11] lsl r6, r2, #0x2 ldrb r3, [r4, #0x14] lsl r0, r0, #0x7 mov r12, r0 ldr r2, _02016FC8 ; =0x0400100A lsl r7, r1, #0x8 ldrh r1, [r2, #0x0] mov r0, #0x43 lsl r3, r3, #0xd and r0, r1 lsl r1, r5, #0xe orr r0, r1 mov r1, r12 orr r0, r1 orr r0, r7 orr r0, r6 orr r0, r3 strh r0, [r2, #0x0] ldrh r1, [r2, #0x0] mov r0, #0x3 bic r1, r0 ldrb r0, [r4, #0x15] orr r0, r1 strh r0, [r2, #0x0] ldr r0, [r4, #0x18] cmp r0, #0x0 beq _02016EEC ldrh r1, [r2, #0x0] mov r0, #0x40 orr r0, r1 strh r0, [r2, #0x0] b _0201705A _02016EEC: ldrh r1, [r2, #0x0] mov r0, #0x40 bic r1, r0 strh r1, [r2, #0x0] b _0201705A _02016EF6: mov r0, #0x4 mov r1, #0x1 bl FUN_0201E74C ldr r0, [sp, #0x8] cmp r0, #0x0 beq _02016F0C cmp r0, #0x1 beq _02016F2E cmp r0, #0x2 beq _02016F50 _02016F0C: ldrb r1, [r4, #0x12] ldr r7, _02016FCC ; =0x0400100C ldrb r2, [r4, #0x13] lsl r3, r1, #0x8 ldrb r0, [r4, #0x11] lsl r6, r2, #0x2 ldrh r1, [r7, #0x0] lsl r2, r0, #0x7 mov r0, #0x43 and r0, r1 lsl r1, r5, #0xe orr r0, r1 orr r0, r2 orr r0, r3 orr r0, r6 strh r0, [r7, #0x0] b _02016F70 _02016F2E: ldrb r2, [r4, #0x13] ldrb r1, [r4, #0x12] ldrb r0, [r4, #0x16] lsl r3, r2, #0x2 ldr r7, _02016FCC ; =0x0400100C lsl r2, r1, #0x8 lsl r6, r0, #0xd ldrh r1, [r7, #0x0] mov r0, #0x43 and r0, r1 lsl r1, r5, #0xe orr r0, r1 orr r0, r2 orr r0, r3 orr r0, r6 strh r0, [r7, #0x0] b _02016F70 _02016F50: ldrb r1, [r4, #0x12] ldr r7, _02016FCC ; =0x0400100C ldrb r0, [r4, #0x16] lsl r3, r1, #0x8 ldrb r2, [r4, #0x13] lsl r6, r0, #0xd ldrh r1, [r7, #0x0] mov r0, #0x43 lsl r2, r2, #0x2 and r0, r1 lsl r1, r5, #0xe orr r0, r1 orr r0, r2 orr r0, r3 orr r0, r6 strh r0, [r7, #0x0] _02016F70: ldr r0, _02016FCC ; =0x0400100C mov r1, #0x3 ldrh r2, [r0, #0x0] bic r2, r1 ldrb r1, [r4, #0x15] orr r1, r2 strh r1, [r0, #0x0] ldr r1, [r4, #0x18] cmp r1, #0x0 beq _02016F8E ldrh r2, [r0, #0x0] mov r1, #0x40 orr r1, r2 strh r1, [r0, #0x0] b _0201705A _02016F8E: ldrh r2, [r0, #0x0] mov r1, #0x40 bic r2, r1 strh r2, [r0, #0x0] b _0201705A _02016F98: mov r0, #0x8 mov r1, #0x1 bl FUN_0201E74C ldr r0, [sp, #0x8] cmp r0, #0x0 beq _02016FAE cmp r0, #0x1 beq _02016FF2 cmp r0, #0x2 beq _02017014 _02016FAE: ldrb r1, [r4, #0x12] ldr r7, _02016FD0 ; =0x0400100E b _02016FD4 .balign 4 _02016FB4: .word 0x04000008 _02016FB8: .word 0x0400000A _02016FBC: .word 0x0400000C _02016FC0: .word 0x0400000E _02016FC4: .word 0x04001008 _02016FC8: .word 0x0400100A _02016FCC: .word 0x0400100C _02016FD0: .word 0x0400100E _02016FD4: ldrb r2, [r4, #0x13] lsl r3, r1, #0x8 ldrb r0, [r4, #0x11] lsl r6, r2, #0x2 ldrh r1, [r7, #0x0] lsl r2, r0, #0x7 mov r0, #0x43 and r0, r1 lsl r1, r5, #0xe orr r0, r1 orr r0, r2 orr r0, r3 orr r0, r6 strh r0, [r7, #0x0] b _02017034 _02016FF2: ldrb r2, [r4, #0x13] ldrb r1, [r4, #0x12] ldrb r0, [r4, #0x16] lsl r3, r2, #0x2 ldr r7, _020170F0 ; =0x0400100E lsl r2, r1, #0x8 lsl r6, r0, #0xd ldrh r1, [r7, #0x0] mov r0, #0x43 and r0, r1 lsl r1, r5, #0xe orr r0, r1 orr r0, r2 orr r0, r3 orr r0, r6 strh r0, [r7, #0x0] b _02017034 _02017014: ldrb r1, [r4, #0x12] ldr r7, _020170F0 ; =0x0400100E ldrb r0, [r4, #0x16] lsl r3, r1, #0x8 ldrb r2, [r4, #0x13] lsl r6, r0, #0xd ldrh r1, [r7, #0x0] mov r0, #0x43 lsl r2, r2, #0x2 and r0, r1 lsl r1, r5, #0xe orr r0, r1 orr r0, r2 orr r0, r3 orr r0, r6 strh r0, [r7, #0x0] _02017034: ldr r0, _020170F0 ; =0x0400100E mov r1, #0x3 ldrh r2, [r0, #0x0] bic r2, r1 ldrb r1, [r4, #0x15] orr r1, r2 strh r1, [r0, #0x0] ldr r1, [r4, #0x18] cmp r1, #0x0 beq _02017052 ldrh r2, [r0, #0x0] mov r1, #0x40 orr r1, r2 strh r1, [r0, #0x0] b _0201705A _02017052: ldrh r2, [r0, #0x0] mov r1, #0x40 bic r2, r1 strh r2, [r0, #0x0] _0201705A: ldr r0, [sp, #0x4] mov r1, #0x2c add r5, r0, #0x0 ldr r0, [sp, #0x0] mul r5, r1 add r2, r0, r5 mov r3, #0x0 mov r0, #0x1 strh r3, [r2, #0x20] lsl r0, r0, #0xc str r0, [r2, #0x24] str r0, [r2, #0x28] str r3, [r2, #0x2c] str r3, [r2, #0x30] ldr r1, [r4, #0x8] cmp r1, #0x0 beq _020170A2 ldr r0, [sp, #0x0] ldr r6, [sp, #0x0] ldr r0, [r0, #0x0] add r6, #0x8 bl FUN_02016998 str r0, [r6, r5] ldr r1, [r6, r5] ldr r2, [r4, #0x8] mov r0, #0x0 blx MIi_CpuClear16 ldr r0, [sp, #0x0] ldr r2, [r4, #0x8] add r1, r0, r5 str r2, [r1, #0xc] ldr r0, [r4, #0xc] str r0, [r1, #0x10] b _020170A8 _020170A2: str r3, [r2, #0x8] str r3, [r2, #0xc] str r3, [r2, #0x10] _020170A8: ldr r0, [sp, #0x0] ldrb r1, [r4, #0x10] add r0, r0, r5 strb r1, [r0, #0x1d] ldr r1, [sp, #0x8] strb r1, [r0, #0x1c] ldrb r1, [r4, #0x11] strb r1, [r0, #0x1e] ldr r1, [sp, #0x8] cmp r1, #0x0 bne _020170CA ldrb r1, [r4, #0x11] cmp r1, #0x0 bne _020170CA mov r1, #0x20 strb r1, [r0, #0x1f] b _020170D2 _020170CA: ldr r0, [sp, #0x0] mov r1, #0x40 add r0, r0, r5 strb r1, [r0, #0x1f] _020170D2: ldr r0, [sp, #0x0] ldr r1, [sp, #0x4] ldr r3, [r4, #0x0] mov r2, #0x0 bl FUN_020179E0 ldr r0, [sp, #0x0] ldr r1, [sp, #0x4] ldr r3, [r4, #0x4] mov r2, #0x3 bl FUN_020179E0 add sp, #0x18 pop {r3-r7, pc} nop _020170F0: .word 0x0400100E thumb_func_start FUN_020170F4 FUN_020170F4: ; 0x020170F4 push {r3-r7, lr} sub sp, #0x20 add r4, r1, #0x0 add r5, r0, #0x0 add r1, r2, #0x0 add r0, r3, #0x0 cmp r1, #0x0 bne _0201710C mov r2, #0x2c mul r2, r4 add r2, r5, r2 strb r0, [r2, #0x1e] _0201710C: cmp r4, #0x7 bls _02017112 b _020177C4 _02017112: add r2, r4, r4 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _0201711E: ; jump table (using 16-bit offset) .short _0201712E - _0201711E - 2; case 0 .short _0201719A - _0201711E - 2; case 1 .short _02017206 - _0201711E - 2; case 2 .short _0201733A - _0201711E - 2; case 3 .short _0201746E - _0201711E - 2; case 4 .short _020174F4 - _0201711E - 2; case 5 .short _02017560 - _0201711E - 2; case 6 .short _02017694 - _0201711E - 2; case 7 _0201712E: ldr r2, _02017480 ; =0x04000008 cmp r1, #0x1 ldrh r3, [r2, #0x0] add r2, sp, #0x0 strh r3, [r2, #0x1e] bne _0201714A ldrh r3, [r2, #0x1e] ldr r1, _02017484 ; =0xFFFFE0FF lsl r0, r0, #0x1b and r1, r3 lsr r0, r0, #0x13 orr r0, r1 strh r0, [r2, #0x1e] b _0201715C _0201714A: cmp r1, #0x2 bne _0201715C ldrh r3, [r2, #0x1e] mov r1, #0x3c lsl r0, r0, #0x1c bic r3, r1 lsr r0, r0, #0x1a orr r0, r3 strh r0, [r2, #0x1e] _0201715C: add r0, sp, #0x0 ldrh r3, [r0, #0x1e] add sp, #0x20 lsl r0, r3, #0x12 lsr r6, r0, #0x1f lsl r0, r3, #0x1a lsr r2, r0, #0x1c lsl r0, r3, #0x13 lsr r1, r0, #0x1b mov r0, #0x2c mul r0, r4 add r0, r5, r0 lsl r3, r3, #0x10 lsr r5, r3, #0x1e lsl r3, r2, #0x2 ldrb r0, [r0, #0x1e] lsl r2, r1, #0x8 lsl r4, r6, #0xd lsl r1, r0, #0x7 ldr r0, _02017480 ; =0x04000008 mov r6, #0x43 ldrh r7, [r0, #0x0] lsl r5, r5, #0xe and r6, r7 orr r5, r6 orr r1, r5 orr r1, r2 orr r1, r3 orr r1, r4 strh r1, [r0, #0x0] pop {r3-r7, pc} _0201719A: ldr r2, _02017488 ; =0x0400000A cmp r1, #0x1 ldrh r3, [r2, #0x0] add r2, sp, #0x0 strh r3, [r2, #0x1c] bne _020171B6 ldrh r3, [r2, #0x1c] ldr r1, _02017484 ; =0xFFFFE0FF lsl r0, r0, #0x1b and r1, r3 lsr r0, r0, #0x13 orr r0, r1 strh r0, [r2, #0x1c] b _020171C8 _020171B6: cmp r1, #0x2 bne _020171C8 ldrh r3, [r2, #0x1c] mov r1, #0x3c lsl r0, r0, #0x1c bic r3, r1 lsr r0, r0, #0x1a orr r0, r3 strh r0, [r2, #0x1c] _020171C8: add r0, sp, #0x0 ldrh r3, [r0, #0x1c] add sp, #0x20 lsl r0, r3, #0x12 lsr r6, r0, #0x1f lsl r0, r3, #0x1a lsr r2, r0, #0x1c lsl r0, r3, #0x13 lsr r1, r0, #0x1b mov r0, #0x2c mul r0, r4 add r0, r5, r0 lsl r3, r3, #0x10 lsr r5, r3, #0x1e lsl r3, r2, #0x2 ldrb r0, [r0, #0x1e] lsl r2, r1, #0x8 lsl r4, r6, #0xd lsl r1, r0, #0x7 ldr r0, _02017488 ; =0x0400000A mov r6, #0x43 ldrh r7, [r0, #0x0] lsl r5, r5, #0xe and r6, r7 orr r5, r6 orr r1, r5 orr r1, r2 orr r1, r3 orr r1, r4 strh r1, [r0, #0x0] pop {r3-r7, pc} _02017206: mov r2, #0x2c mul r2, r4 add r3, r5, r2 ldrb r3, [r3, #0x1c] cmp r3, #0x0 beq _0201721A cmp r3, #0x1 beq _0201727A cmp r3, #0x2 beq _020172DA _0201721A: ldr r3, _0201748C ; =0x0400000C cmp r1, #0x1 ldrh r4, [r3, #0x0] add r3, sp, #0x0 strh r4, [r3, #0x1a] bne _02017236 ldrh r4, [r3, #0x1a] ldr r1, _02017484 ; =0xFFFFE0FF lsl r0, r0, #0x1b and r1, r4 lsr r0, r0, #0x13 orr r0, r1 strh r0, [r3, #0x1a] b _02017248 _02017236: cmp r1, #0x2 bne _02017248 ldrh r4, [r3, #0x1a] mov r1, #0x3c lsl r0, r0, #0x1c bic r4, r1 lsr r0, r0, #0x1a orr r0, r4 strh r0, [r3, #0x1a] _02017248: add r0, sp, #0x0 ldrh r3, [r0, #0x1a] add r2, r5, r2 ldr r6, _0201748C ; =0x0400000C lsl r0, r3, #0x1a ldrb r4, [r2, #0x1e] lsr r1, r0, #0x1c lsl r0, r3, #0x13 lsl r2, r3, #0x10 lsr r3, r2, #0x1e ldrh r5, [r6, #0x0] lsr r0, r0, #0x1b lsl r2, r1, #0x2 lsl r1, r0, #0x8 lsl r0, r4, #0x7 mov r4, #0x43 and r4, r5 lsl r3, r3, #0xe orr r3, r4 orr r0, r3 orr r0, r1 orr r0, r2 add sp, #0x20 strh r0, [r6, #0x0] pop {r3-r7, pc} _0201727A: ldr r2, _0201748C ; =0x0400000C cmp r1, #0x1 ldrh r3, [r2, #0x0] add r2, sp, #0x0 strh r3, [r2, #0x18] bne _02017296 ldrh r3, [r2, #0x18] ldr r1, _02017484 ; =0xFFFFE0FF lsl r0, r0, #0x1b and r1, r3 lsr r0, r0, #0x13 orr r0, r1 strh r0, [r2, #0x18] b _020172A8 _02017296: cmp r1, #0x2 bne _020172A8 ldrh r3, [r2, #0x18] mov r1, #0x3c lsl r0, r0, #0x1c bic r3, r1 lsr r0, r0, #0x1a orr r0, r3 strh r0, [r2, #0x18] _020172A8: add r0, sp, #0x0 ldrh r3, [r0, #0x18] ldr r6, _0201748C ; =0x0400000C add sp, #0x20 lsl r1, r3, #0x13 lsl r0, r3, #0x1a lsr r4, r1, #0x1b lsl r1, r3, #0x12 lsr r2, r1, #0x1f lsl r1, r3, #0x10 lsr r3, r1, #0x1e lsr r0, r0, #0x1c lsl r1, r0, #0x2 lsl r0, r4, #0x8 ldrh r5, [r6, #0x0] mov r4, #0x43 lsl r3, r3, #0xe and r4, r5 orr r3, r4 orr r0, r3 lsl r2, r2, #0xd orr r0, r1 orr r0, r2 strh r0, [r6, #0x0] pop {r3-r7, pc} _020172DA: ldr r2, _0201748C ; =0x0400000C cmp r1, #0x1 ldrh r3, [r2, #0x0] add r2, sp, #0x0 strh r3, [r2, #0x16] bne _020172F6 ldrh r3, [r2, #0x16] ldr r1, _02017484 ; =0xFFFFE0FF lsl r0, r0, #0x1b and r1, r3 lsr r0, r0, #0x13 orr r0, r1 strh r0, [r2, #0x16] b _02017308 _020172F6: cmp r1, #0x2 bne _02017308 ldrh r3, [r2, #0x16] mov r1, #0x38 lsl r0, r0, #0x1d bic r3, r1 lsr r0, r0, #0x1a orr r0, r3 strh r0, [r2, #0x16] _02017308: add r0, sp, #0x0 ldrh r3, [r0, #0x16] ldr r6, _0201748C ; =0x0400000C add sp, #0x20 lsl r1, r3, #0x13 lsr r4, r1, #0x1b lsl r1, r3, #0x12 lsr r2, r1, #0x1f lsl r0, r3, #0x1a lsl r1, r3, #0x10 lsr r3, r1, #0x1e lsl r1, r4, #0x8 lsr r0, r0, #0x1d ldrh r5, [r6, #0x0] mov r4, #0x43 lsl r3, r3, #0xe and r4, r5 lsl r0, r0, #0x2 orr r3, r4 orr r0, r3 lsl r2, r2, #0xd orr r0, r1 orr r0, r2 strh r0, [r6, #0x0] pop {r3-r7, pc} _0201733A: mov r2, #0x2c mul r2, r4 add r3, r5, r2 ldrb r3, [r3, #0x1c] cmp r3, #0x0 beq _0201734E cmp r3, #0x1 beq _020173AE cmp r3, #0x2 beq _0201740E _0201734E: ldr r3, _02017490 ; =0x0400000E cmp r1, #0x1 ldrh r4, [r3, #0x0] add r3, sp, #0x0 strh r4, [r3, #0x14] bne _0201736A ldrh r4, [r3, #0x14] ldr r1, _02017484 ; =0xFFFFE0FF lsl r0, r0, #0x1b and r1, r4 lsr r0, r0, #0x13 orr r0, r1 strh r0, [r3, #0x14] b _0201737C _0201736A: cmp r1, #0x2 bne _0201737C ldrh r4, [r3, #0x14] mov r1, #0x3c lsl r0, r0, #0x1c bic r4, r1 lsr r0, r0, #0x1a orr r0, r4 strh r0, [r3, #0x14] _0201737C: add r0, sp, #0x0 ldrh r3, [r0, #0x14] add r2, r5, r2 ldr r6, _02017490 ; =0x0400000E lsl r0, r3, #0x1a ldrb r4, [r2, #0x1e] lsr r1, r0, #0x1c lsl r0, r3, #0x13 lsl r2, r3, #0x10 lsr r3, r2, #0x1e ldrh r5, [r6, #0x0] lsr r0, r0, #0x1b lsl r2, r1, #0x2 lsl r1, r0, #0x8 lsl r0, r4, #0x7 mov r4, #0x43 and r4, r5 lsl r3, r3, #0xe orr r3, r4 orr r0, r3 orr r0, r1 orr r0, r2 add sp, #0x20 strh r0, [r6, #0x0] pop {r3-r7, pc} _020173AE: ldr r2, _02017490 ; =0x0400000E cmp r1, #0x1 ldrh r3, [r2, #0x0] add r2, sp, #0x0 strh r3, [r2, #0x12] bne _020173CA ldrh r3, [r2, #0x12] ldr r1, _02017484 ; =0xFFFFE0FF lsl r0, r0, #0x1b and r1, r3 lsr r0, r0, #0x13 orr r0, r1 strh r0, [r2, #0x12] b _020173DC _020173CA: cmp r1, #0x2 bne _020173DC ldrh r3, [r2, #0x12] mov r1, #0x3c lsl r0, r0, #0x1c bic r3, r1 lsr r0, r0, #0x1a orr r0, r3 strh r0, [r2, #0x12] _020173DC: add r0, sp, #0x0 ldrh r3, [r0, #0x12] ldr r6, _02017490 ; =0x0400000E add sp, #0x20 lsl r1, r3, #0x13 lsl r0, r3, #0x1a lsr r4, r1, #0x1b lsl r1, r3, #0x12 lsr r2, r1, #0x1f lsl r1, r3, #0x10 lsr r3, r1, #0x1e lsr r0, r0, #0x1c lsl r1, r0, #0x2 lsl r0, r4, #0x8 ldrh r5, [r6, #0x0] mov r4, #0x43 lsl r3, r3, #0xe and r4, r5 orr r3, r4 orr r0, r3 lsl r2, r2, #0xd orr r0, r1 orr r0, r2 strh r0, [r6, #0x0] pop {r3-r7, pc} _0201740E: ldr r2, _02017490 ; =0x0400000E cmp r1, #0x1 ldrh r3, [r2, #0x0] add r2, sp, #0x0 strh r3, [r2, #0x10] bne _0201742A ldrh r3, [r2, #0x10] ldr r1, _02017484 ; =0xFFFFE0FF lsl r0, r0, #0x1b and r1, r3 lsr r0, r0, #0x13 orr r0, r1 strh r0, [r2, #0x10] b _0201743C _0201742A: cmp r1, #0x2 bne _0201743C ldrh r3, [r2, #0x10] mov r1, #0x38 lsl r0, r0, #0x1d bic r3, r1 lsr r0, r0, #0x1a orr r0, r3 strh r0, [r2, #0x10] _0201743C: add r0, sp, #0x0 ldrh r3, [r0, #0x10] ldr r6, _02017490 ; =0x0400000E add sp, #0x20 lsl r1, r3, #0x13 lsr r4, r1, #0x1b lsl r1, r3, #0x12 lsr r2, r1, #0x1f lsl r0, r3, #0x1a lsl r1, r3, #0x10 lsr r3, r1, #0x1e lsl r1, r4, #0x8 lsr r0, r0, #0x1d ldrh r5, [r6, #0x0] mov r4, #0x43 lsl r3, r3, #0xe and r4, r5 lsl r0, r0, #0x2 orr r3, r4 orr r0, r3 lsl r2, r2, #0xd orr r0, r1 orr r0, r2 strh r0, [r6, #0x0] pop {r3-r7, pc} _0201746E: ldr r2, _02017494 ; =0x04001008 cmp r1, #0x1 ldrh r3, [r2, #0x0] add r2, sp, #0x0 strh r3, [r2, #0xe] bne _020174A4 ldrh r3, [r2, #0xe] ldr r1, _02017484 ; =0xFFFFE0FF b _02017498 .balign 4 _02017480: .word 0x04000008 _02017484: .word 0xFFFFE0FF _02017488: .word 0x0400000A _0201748C: .word 0x0400000C _02017490: .word 0x0400000E _02017494: .word 0x04001008 _02017498: lsl r0, r0, #0x1b and r1, r3 lsr r0, r0, #0x13 orr r0, r1 strh r0, [r2, #0xe] b _020174B6 _020174A4: cmp r1, #0x2 bne _020174B6 ldrh r3, [r2, #0xe] mov r1, #0x3c lsl r0, r0, #0x1c bic r3, r1 lsr r0, r0, #0x1a orr r0, r3 strh r0, [r2, #0xe] _020174B6: add r0, sp, #0x0 ldrh r3, [r0, #0xe] add sp, #0x20 lsl r0, r3, #0x12 lsr r6, r0, #0x1f lsl r0, r3, #0x1a lsr r2, r0, #0x1c lsl r0, r3, #0x13 lsr r1, r0, #0x1b mov r0, #0x2c mul r0, r4 add r0, r5, r0 lsl r3, r3, #0x10 lsr r5, r3, #0x1e lsl r3, r2, #0x2 ldrb r0, [r0, #0x1e] lsl r2, r1, #0x8 lsl r4, r6, #0xd lsl r1, r0, #0x7 ldr r0, _020177C8 ; =0x04001008 mov r6, #0x43 ldrh r7, [r0, #0x0] lsl r5, r5, #0xe and r6, r7 orr r5, r6 orr r1, r5 orr r1, r2 orr r1, r3 orr r1, r4 strh r1, [r0, #0x0] pop {r3-r7, pc} _020174F4: ldr r2, _020177CC ; =0x0400100A cmp r1, #0x1 ldrh r3, [r2, #0x0] add r2, sp, #0x0 strh r3, [r2, #0xc] bne _02017510 ldrh r3, [r2, #0xc] ldr r1, _020177D0 ; =0xFFFFE0FF lsl r0, r0, #0x1b and r1, r3 lsr r0, r0, #0x13 orr r0, r1 strh r0, [r2, #0xc] b _02017522 _02017510: cmp r1, #0x2 bne _02017522 ldrh r3, [r2, #0xc] mov r1, #0x3c lsl r0, r0, #0x1c bic r3, r1 lsr r0, r0, #0x1a orr r0, r3 strh r0, [r2, #0xc] _02017522: add r0, sp, #0x0 ldrh r3, [r0, #0xc] add sp, #0x20 lsl r0, r3, #0x12 lsr r6, r0, #0x1f lsl r0, r3, #0x1a lsr r2, r0, #0x1c lsl r0, r3, #0x13 lsr r1, r0, #0x1b mov r0, #0x2c mul r0, r4 add r0, r5, r0 lsl r3, r3, #0x10 lsr r5, r3, #0x1e lsl r3, r2, #0x2 ldrb r0, [r0, #0x1e] lsl r2, r1, #0x8 lsl r4, r6, #0xd lsl r1, r0, #0x7 ldr r0, _020177CC ; =0x0400100A mov r6, #0x43 ldrh r7, [r0, #0x0] lsl r5, r5, #0xe and r6, r7 orr r5, r6 orr r1, r5 orr r1, r2 orr r1, r3 orr r1, r4 strh r1, [r0, #0x0] pop {r3-r7, pc} _02017560: mov r2, #0x2c mul r2, r4 add r3, r5, r2 ldrb r3, [r3, #0x1c] cmp r3, #0x0 beq _02017574 cmp r3, #0x1 beq _020175D4 cmp r3, #0x2 beq _02017634 _02017574: ldr r3, _020177D4 ; =0x0400100C cmp r1, #0x1 ldrh r4, [r3, #0x0] add r3, sp, #0x0 strh r4, [r3, #0xa] bne _02017590 ldrh r4, [r3, #0xa] ldr r1, _020177D0 ; =0xFFFFE0FF lsl r0, r0, #0x1b and r1, r4 lsr r0, r0, #0x13 orr r0, r1 strh r0, [r3, #0xa] b _020175A2 _02017590: cmp r1, #0x2 bne _020175A2 ldrh r4, [r3, #0xa] mov r1, #0x3c lsl r0, r0, #0x1c bic r4, r1 lsr r0, r0, #0x1a orr r0, r4 strh r0, [r3, #0xa] _020175A2: add r0, sp, #0x0 ldrh r3, [r0, #0xa] add r2, r5, r2 ldr r6, _020177D4 ; =0x0400100C lsl r0, r3, #0x1a ldrb r4, [r2, #0x1e] lsr r1, r0, #0x1c lsl r0, r3, #0x13 lsl r2, r3, #0x10 lsr r3, r2, #0x1e ldrh r5, [r6, #0x0] lsr r0, r0, #0x1b lsl r2, r1, #0x2 lsl r1, r0, #0x8 lsl r0, r4, #0x7 mov r4, #0x43 and r4, r5 lsl r3, r3, #0xe orr r3, r4 orr r0, r3 orr r0, r1 orr r0, r2 add sp, #0x20 strh r0, [r6, #0x0] pop {r3-r7, pc} _020175D4: ldr r2, _020177D4 ; =0x0400100C cmp r1, #0x1 ldrh r3, [r2, #0x0] add r2, sp, #0x0 strh r3, [r2, #0x8] bne _020175F0 ldrh r3, [r2, #0x8] ldr r1, _020177D0 ; =0xFFFFE0FF lsl r0, r0, #0x1b and r1, r3 lsr r0, r0, #0x13 orr r0, r1 strh r0, [r2, #0x8] b _02017602 _020175F0: cmp r1, #0x2 bne _02017602 ldrh r3, [r2, #0x8] mov r1, #0x3c lsl r0, r0, #0x1c bic r3, r1 lsr r0, r0, #0x1a orr r0, r3 strh r0, [r2, #0x8] _02017602: add r0, sp, #0x0 ldrh r3, [r0, #0x8] ldr r6, _020177D4 ; =0x0400100C add sp, #0x20 lsl r1, r3, #0x13 lsl r0, r3, #0x1a lsr r4, r1, #0x1b lsl r1, r3, #0x12 lsr r2, r1, #0x1f lsl r1, r3, #0x10 lsr r3, r1, #0x1e lsr r0, r0, #0x1c lsl r1, r0, #0x2 lsl r0, r4, #0x8 ldrh r5, [r6, #0x0] mov r4, #0x43 lsl r3, r3, #0xe and r4, r5 orr r3, r4 orr r0, r3 lsl r2, r2, #0xd orr r0, r1 orr r0, r2 strh r0, [r6, #0x0] pop {r3-r7, pc} _02017634: ldr r2, _020177D4 ; =0x0400100C cmp r1, #0x1 ldrh r3, [r2, #0x0] add r2, sp, #0x0 strh r3, [r2, #0x6] bne _02017650 ldrh r3, [r2, #0x6] ldr r1, _020177D0 ; =0xFFFFE0FF lsl r0, r0, #0x1b and r1, r3 lsr r0, r0, #0x13 orr r0, r1 strh r0, [r2, #0x6] b _02017662 _02017650: cmp r1, #0x2 bne _02017662 ldrh r3, [r2, #0x6] mov r1, #0x38 lsl r0, r0, #0x1d bic r3, r1 lsr r0, r0, #0x1a orr r0, r3 strh r0, [r2, #0x6] _02017662: add r0, sp, #0x0 ldrh r3, [r0, #0x6] ldr r6, _020177D4 ; =0x0400100C add sp, #0x20 lsl r1, r3, #0x13 lsr r4, r1, #0x1b lsl r1, r3, #0x12 lsr r2, r1, #0x1f lsl r0, r3, #0x1a lsl r1, r3, #0x10 lsr r3, r1, #0x1e lsl r1, r4, #0x8 lsr r0, r0, #0x1d ldrh r5, [r6, #0x0] mov r4, #0x43 lsl r3, r3, #0xe and r4, r5 lsl r0, r0, #0x2 orr r3, r4 orr r0, r3 lsl r2, r2, #0xd orr r0, r1 orr r0, r2 strh r0, [r6, #0x0] pop {r3-r7, pc} _02017694: mov r2, #0x2c mul r2, r4 add r3, r5, r2 ldrb r3, [r3, #0x1c] cmp r3, #0x0 beq _020176A8 cmp r3, #0x1 beq _02017708 cmp r3, #0x2 beq _02017768 _020176A8: ldr r3, _020177D8 ; =0x0400100E cmp r1, #0x1 ldrh r4, [r3, #0x0] add r3, sp, #0x0 strh r4, [r3, #0x4] bne _020176C4 ldrh r4, [r3, #0x4] ldr r1, _020177D0 ; =0xFFFFE0FF lsl r0, r0, #0x1b and r1, r4 lsr r0, r0, #0x13 orr r0, r1 strh r0, [r3, #0x4] b _020176D6 _020176C4: cmp r1, #0x2 bne _020176D6 ldrh r4, [r3, #0x4] mov r1, #0x3c lsl r0, r0, #0x1c bic r4, r1 lsr r0, r0, #0x1a orr r0, r4 strh r0, [r3, #0x4] _020176D6: add r0, sp, #0x0 ldrh r3, [r0, #0x4] add r2, r5, r2 ldr r6, _020177D8 ; =0x0400100E lsl r0, r3, #0x1a ldrb r4, [r2, #0x1e] lsr r1, r0, #0x1c lsl r0, r3, #0x13 lsl r2, r3, #0x10 lsr r3, r2, #0x1e ldrh r5, [r6, #0x0] lsr r0, r0, #0x1b lsl r2, r1, #0x2 lsl r1, r0, #0x8 lsl r0, r4, #0x7 mov r4, #0x43 and r4, r5 lsl r3, r3, #0xe orr r3, r4 orr r0, r3 orr r0, r1 orr r0, r2 add sp, #0x20 strh r0, [r6, #0x0] pop {r3-r7, pc} _02017708: ldr r2, _020177D8 ; =0x0400100E cmp r1, #0x1 ldrh r3, [r2, #0x0] add r2, sp, #0x0 strh r3, [r2, #0x2] bne _02017724 ldrh r3, [r2, #0x2] ldr r1, _020177D0 ; =0xFFFFE0FF lsl r0, r0, #0x1b and r1, r3 lsr r0, r0, #0x13 orr r0, r1 strh r0, [r2, #0x2] b _02017736 _02017724: cmp r1, #0x2 bne _02017736 ldrh r3, [r2, #0x2] mov r1, #0x3c lsl r0, r0, #0x1c bic r3, r1 lsr r0, r0, #0x1a orr r0, r3 strh r0, [r2, #0x2] _02017736: add r0, sp, #0x0 ldrh r3, [r0, #0x2] ldr r6, _020177D8 ; =0x0400100E add sp, #0x20 lsl r1, r3, #0x13 lsl r0, r3, #0x1a lsr r4, r1, #0x1b lsl r1, r3, #0x12 lsr r2, r1, #0x1f lsl r1, r3, #0x10 lsr r3, r1, #0x1e lsr r0, r0, #0x1c lsl r1, r0, #0x2 lsl r0, r4, #0x8 ldrh r5, [r6, #0x0] mov r4, #0x43 lsl r3, r3, #0xe and r4, r5 orr r3, r4 orr r0, r3 lsl r2, r2, #0xd orr r0, r1 orr r0, r2 strh r0, [r6, #0x0] pop {r3-r7, pc} _02017768: ldr r2, _020177D8 ; =0x0400100E cmp r1, #0x1 ldrh r3, [r2, #0x0] add r2, sp, #0x0 strh r3, [r2, #0x0] bne _02017784 ldrh r3, [r2, #0x0] ldr r1, _020177D0 ; =0xFFFFE0FF lsl r0, r0, #0x1b and r1, r3 lsr r0, r0, #0x13 orr r0, r1 strh r0, [r2, #0x0] b _02017796 _02017784: cmp r1, #0x2 bne _02017796 ldrh r3, [r2, #0x0] mov r1, #0x38 lsl r0, r0, #0x1d bic r3, r1 lsr r0, r0, #0x1a orr r0, r3 strh r0, [r2, #0x0] _02017796: add r0, sp, #0x0 ldrh r3, [r0, #0x0] ldr r6, _020177D8 ; =0x0400100E lsl r1, r3, #0x13 lsr r4, r1, #0x1b lsl r1, r3, #0x12 lsr r2, r1, #0x1f lsl r0, r3, #0x1a lsl r1, r3, #0x10 lsr r3, r1, #0x1e lsl r1, r4, #0x8 lsr r0, r0, #0x1d ldrh r5, [r6, #0x0] mov r4, #0x43 lsl r3, r3, #0xe and r4, r5 lsl r0, r0, #0x2 orr r3, r4 orr r0, r3 lsl r2, r2, #0xd orr r0, r1 orr r0, r2 strh r0, [r6, #0x0] _020177C4: add sp, #0x20 pop {r3-r7, pc} .balign 4 _020177C8: .word 0x04001008 _020177CC: .word 0x0400100A _020177D0: .word 0xFFFFE0FF _020177D4: .word 0x0400100C _020177D8: .word 0x0400100E thumb_func_start FUN_020177DC FUN_020177DC: ; 0x020177DC cmp r1, #0x0 beq _020177EA cmp r1, #0x1 beq _0201780A cmp r1, #0x2 beq _0201782A b _0201784A _020177EA: cmp r0, #0x1 bne _020177F2 mov r0, #0x0 bx lr _020177F2: cmp r0, #0x2 bne _020177FA mov r0, #0x2 bx lr _020177FA: cmp r0, #0x3 bne _02017802 mov r0, #0x1 bx lr _02017802: cmp r0, #0x4 bne _0201784A mov r0, #0x3 bx lr _0201780A: cmp r0, #0x0 bne _02017812 mov r0, #0x0 bx lr _02017812: cmp r0, #0x1 bne _0201781A mov r0, #0x1 bx lr _0201781A: cmp r0, #0x4 bne _02017822 mov r0, #0x2 bx lr _02017822: cmp r0, #0x5 bne _0201784A mov r0, #0x3 bx lr _0201782A: cmp r0, #0x0 bne _02017832 mov r0, #0x0 bx lr _02017832: cmp r0, #0x1 bne _0201783A mov r0, #0x1 bx lr _0201783A: cmp r0, #0x4 bne _02017842 mov r0, #0x2 bx lr _02017842: cmp r0, #0x5 bne _0201784A mov r0, #0x3 bx lr _0201784A: mov r0, #0x0 bx lr .balign 4 thumb_func_start FUN_02017850 FUN_02017850: ; 0x02017850 cmp r0, #0x5 bhi _0201789E add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02017860: ; jump table (using 16-bit offset) .short _0201786C - _02017860 - 2; case 0 .short _02017874 - _02017860 - 2; case 1 .short _0201787C - _02017860 - 2; case 2 .short _02017886 - _02017860 - 2; case 3 .short _02017890 - _02017860 - 2; case 4 .short _02017898 - _02017860 - 2; case 5 _0201786C: mov r0, #0x10 strb r0, [r1, #0x0] strb r0, [r2, #0x0] bx lr _02017874: mov r0, #0x20 strb r0, [r1, #0x0] strb r0, [r2, #0x0] bx lr _0201787C: mov r0, #0x20 strb r0, [r1, #0x0] mov r0, #0x40 strb r0, [r2, #0x0] bx lr _02017886: mov r0, #0x40 strb r0, [r1, #0x0] mov r0, #0x20 strb r0, [r2, #0x0] bx lr _02017890: mov r0, #0x40 strb r0, [r1, #0x0] strb r0, [r2, #0x0] bx lr _02017898: mov r0, #0x80 strb r0, [r1, #0x0] strb r0, [r2, #0x0] _0201789E: bx lr thumb_func_start FUN_020178A0 FUN_020178A0: ; 0x020178A0 push {r3-r5, lr} add r4, r0, #0x0 mov r2, #0x2c add r5, r1, #0x0 mul r5, r2 add r4, #0x8 ldr r0, [r4, r5] cmp r0, #0x0 beq _020178BA bl FUN_02016A18 mov r0, #0x0 str r0, [r4, r5] _020178BA: pop {r3-r5, pc} thumb_func_start FUN_020178BC FUN_020178BC: ; 0x020178BC cmp r0, #0x7 bhi _0201795A add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _020178CC: ; jump table (using 16-bit offset) .short _020178DC - _020178CC - 2; case 0 .short _020178EC - _020178CC - 2; case 1 .short _020178FC - _020178CC - 2; case 2 .short _0201790C - _020178CC - 2; case 3 .short _0201791C - _020178CC - 2; case 4 .short _0201792C - _020178CC - 2; case 5 .short _0201793C - _020178CC - 2; case 6 .short _0201794C - _020178CC - 2; case 7 _020178DC: ldr r2, _0201795C ; =0x04000008 mov r0, #0x3 ldrh r3, [r2, #0x0] bic r3, r0 add r0, r3, #0x0 orr r0, r1 strh r0, [r2, #0x0] bx lr _020178EC: ldr r2, _02017960 ; =0x0400000A mov r0, #0x3 ldrh r3, [r2, #0x0] bic r3, r0 add r0, r3, #0x0 orr r0, r1 strh r0, [r2, #0x0] bx lr _020178FC: ldr r2, _02017964 ; =0x0400000C mov r0, #0x3 ldrh r3, [r2, #0x0] bic r3, r0 add r0, r3, #0x0 orr r0, r1 strh r0, [r2, #0x0] bx lr _0201790C: ldr r2, _02017968 ; =0x0400000E mov r0, #0x3 ldrh r3, [r2, #0x0] bic r3, r0 add r0, r3, #0x0 orr r0, r1 strh r0, [r2, #0x0] bx lr _0201791C: ldr r2, _0201796C ; =0x04001008 mov r0, #0x3 ldrh r3, [r2, #0x0] bic r3, r0 add r0, r3, #0x0 orr r0, r1 strh r0, [r2, #0x0] bx lr _0201792C: ldr r2, _02017970 ; =0x0400100A mov r0, #0x3 ldrh r3, [r2, #0x0] bic r3, r0 add r0, r3, #0x0 orr r0, r1 strh r0, [r2, #0x0] bx lr _0201793C: ldr r2, _02017974 ; =0x0400100C mov r0, #0x3 ldrh r3, [r2, #0x0] bic r3, r0 add r0, r3, #0x0 orr r0, r1 strh r0, [r2, #0x0] bx lr _0201794C: ldr r2, _02017978 ; =0x0400100E mov r0, #0x3 ldrh r3, [r2, #0x0] bic r3, r0 add r0, r3, #0x0 orr r0, r1 strh r0, [r2, #0x0] _0201795A: bx lr .balign 4 _0201795C: .word 0x04000008 _02017960: .word 0x0400000A _02017964: .word 0x0400000C _02017968: .word 0x0400000E _0201796C: .word 0x04001008 _02017970: .word 0x0400100A _02017974: .word 0x0400100C _02017978: .word 0x0400100E thumb_func_start FUN_0201797C FUN_0201797C: ; 0x0201797C push {r3, lr} cmp r0, #0x7 bhi _020179DC add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0201798E: ; jump table (using 16-bit offset) .short _0201799E - _0201798E - 2; case 0 .short _020179A6 - _0201798E - 2; case 1 .short _020179AE - _0201798E - 2; case 2 .short _020179B6 - _0201798E - 2; case 3 .short _020179BE - _0201798E - 2; case 4 .short _020179C6 - _0201798E - 2; case 5 .short _020179CE - _0201798E - 2; case 6 .short _020179D6 - _0201798E - 2; case 7 _0201799E: mov r0, #0x1 bl FUN_0201E6E4 pop {r3, pc} _020179A6: mov r0, #0x2 bl FUN_0201E6E4 pop {r3, pc} _020179AE: mov r0, #0x4 bl FUN_0201E6E4 pop {r3, pc} _020179B6: mov r0, #0x8 bl FUN_0201E6E4 pop {r3, pc} _020179BE: mov r0, #0x1 bl FUN_0201E74C pop {r3, pc} _020179C6: mov r0, #0x2 bl FUN_0201E74C pop {r3, pc} _020179CE: mov r0, #0x4 bl FUN_0201E74C pop {r3, pc} _020179D6: mov r0, #0x8 bl FUN_0201E74C _020179DC: pop {r3, pc} .balign 4 thumb_func_start FUN_020179E0 FUN_020179E0: ; 0x020179E0 push {r4-r6, lr} add r5, r1, #0x0 add r4, r0, #0x0 mov r0, #0x2c add r6, r5, #0x0 mul r6, r0 add r0, r4, #0x0 add r0, #0x8 add r1, r2, #0x0 add r2, r3, #0x0 add r0, r0, r6 bl FUN_02017B8C add r0, r4, r6 ldr r1, [r0, #0x14] ldr r0, [r0, #0x18] cmp r5, #0x7 bls _02017A06 b _02017B1C _02017A06: add r2, r5, r5 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _02017A12: ; jump table (using 16-bit offset) .short _02017A22 - _02017A12 - 2; case 0 .short _02017A38 - _02017A12 - 2; case 1 .short _02017A4E - _02017A12 - 2; case 2 .short _02017A78 - _02017A12 - 2; case 3 .short _02017AA2 - _02017A12 - 2; case 4 .short _02017AB8 - _02017A12 - 2; case 5 .short _02017ACE - _02017A12 - 2; case 6 .short _02017AF6 - _02017A12 - 2; case 7 _02017A22: ldr r2, _02017B20 ; =0x000001FF add r3, r1, #0x0 lsl r1, r0, #0x10 lsl r0, r2, #0x10 and r3, r2 and r0, r1 add r1, r3, #0x0 orr r1, r0 ldr r0, _02017B24 ; =0x04000010 str r1, [r0, #0x0] pop {r4-r6, pc} _02017A38: ldr r2, _02017B20 ; =0x000001FF add r3, r1, #0x0 lsl r1, r0, #0x10 lsl r0, r2, #0x10 and r3, r2 and r0, r1 add r1, r3, #0x0 orr r1, r0 ldr r0, _02017B28 ; =0x04000014 str r1, [r0, #0x0] pop {r4-r6, pc} _02017A4E: add r2, r4, #0x0 add r2, #0x74 ldrb r2, [r2, #0x0] cmp r2, #0x0 bne _02017A6E ldr r2, _02017B20 ; =0x000001FF add r3, r1, #0x0 lsl r1, r0, #0x10 lsl r0, r2, #0x10 and r3, r2 and r0, r1 add r1, r3, #0x0 orr r1, r0 ldr r0, _02017B2C ; =0x04000018 str r1, [r0, #0x0] pop {r4-r6, pc} _02017A6E: add r0, r4, #0x0 mov r1, #0x2 bl FUN_02017C6C pop {r4-r6, pc} _02017A78: add r2, r4, #0x0 add r2, #0xa0 ldrb r2, [r2, #0x0] cmp r2, #0x0 bne _02017A98 ldr r2, _02017B20 ; =0x000001FF add r3, r1, #0x0 lsl r1, r0, #0x10 lsl r0, r2, #0x10 and r3, r2 and r0, r1 add r1, r3, #0x0 orr r1, r0 ldr r0, _02017B30 ; =0x0400001C str r1, [r0, #0x0] pop {r4-r6, pc} _02017A98: add r0, r4, #0x0 mov r1, #0x3 bl FUN_02017C6C pop {r4-r6, pc} _02017AA2: ldr r2, _02017B20 ; =0x000001FF add r3, r1, #0x0 lsl r1, r0, #0x10 lsl r0, r2, #0x10 and r3, r2 and r0, r1 add r1, r3, #0x0 orr r1, r0 ldr r0, _02017B34 ; =0x04001010 str r1, [r0, #0x0] pop {r4-r6, pc} _02017AB8: ldr r2, _02017B20 ; =0x000001FF add r3, r1, #0x0 lsl r1, r0, #0x10 lsl r0, r2, #0x10 and r3, r2 and r0, r1 add r1, r3, #0x0 orr r1, r0 ldr r0, _02017B38 ; =0x04001014 str r1, [r0, #0x0] pop {r4-r6, pc} _02017ACE: mov r2, #0x49 lsl r2, r2, #0x2 ldrb r3, [r4, r2] cmp r3, #0x0 bne _02017AEC add r2, #0xdb and r2, r1 lsl r1, r0, #0x10 ldr r0, _02017B3C ; =0x01FF0000 and r0, r1 add r1, r2, #0x0 orr r1, r0 ldr r0, _02017B40 ; =0x04001018 str r1, [r0, #0x0] pop {r4-r6, pc} _02017AEC: add r0, r4, #0x0 mov r1, #0x6 bl FUN_02017C6C pop {r4-r6, pc} _02017AF6: mov r2, #0x15 lsl r2, r2, #0x4 ldrb r3, [r4, r2] cmp r3, #0x0 bne _02017B14 add r2, #0xaf and r2, r1 lsl r1, r0, #0x10 ldr r0, _02017B3C ; =0x01FF0000 and r0, r1 add r1, r2, #0x0 orr r1, r0 ldr r0, _02017B44 ; =0x0400101C str r1, [r0, #0x0] pop {r4-r6, pc} _02017B14: add r0, r4, #0x0 mov r1, #0x7 bl FUN_02017C6C _02017B1C: pop {r4-r6, pc} nop _02017B20: .word 0x000001FF _02017B24: .word 0x04000010 _02017B28: .word 0x04000014 _02017B2C: .word 0x04000018 _02017B30: .word 0x0400001C _02017B34: .word 0x04001010 _02017B38: .word 0x04001014 _02017B3C: .word 0x01FF0000 _02017B40: .word 0x04001018 _02017B44: .word 0x0400101C thumb_func_start FUN_02017B48 FUN_02017B48: ; 0x02017B48 mov r2, #0x2c mul r2, r1 add r0, r0, r2 ldr r0, [r0, #0x14] bx lr .balign 4 thumb_func_start FUN_02017B54 FUN_02017B54: ; 0x02017B54 mov r2, #0x2c mul r2, r1 add r0, r0, r2 ldr r0, [r0, #0x18] bx lr .balign 4 thumb_func_start FUN_02017B60 FUN_02017B60: ; 0x02017B60 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r1, r5, #0x0 mov r0, #0x2c add r1, #0x8 mul r0, r4 add r0, r1, r0 add r1, r2, #0x0 add r2, r3, #0x0 bl FUN_02017B8C ldr r0, [sp, #0x18] ldr r2, [sp, #0x10] str r0, [sp, #0x0] ldr r3, [sp, #0x14] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02017BD0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02017B8C FUN_02017B8C: ; 0x02017B8C cmp r1, #0x5 bhi _02017BCE add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02017B9C: ; jump table (using 16-bit offset) .short _02017BA8 - _02017B9C - 2; case 0 .short _02017BAC - _02017B9C - 2; case 1 .short _02017BB4 - _02017B9C - 2; case 2 .short _02017BBC - _02017B9C - 2; case 3 .short _02017BC0 - _02017B9C - 2; case 4 .short _02017BC8 - _02017B9C - 2; case 5 _02017BA8: str r2, [r0, #0xc] bx lr _02017BAC: ldr r1, [r0, #0xc] add r1, r1, r2 str r1, [r0, #0xc] bx lr _02017BB4: ldr r1, [r0, #0xc] sub r1, r1, r2 str r1, [r0, #0xc] bx lr _02017BBC: str r2, [r0, #0x10] bx lr _02017BC0: ldr r1, [r0, #0x10] add r1, r1, r2 str r1, [r0, #0x10] bx lr _02017BC8: ldr r1, [r0, #0x10] sub r1, r1, r2 str r1, [r0, #0x10] _02017BCE: bx lr thumb_func_start FUN_02017BD0 FUN_02017BD0: ; 0x02017BD0 push {r3-r5, lr} sub sp, #0x8 add r4, r1, #0x0 add r1, r2, #0x0 add r2, r3, #0x0 ldr r3, [sp, #0x18] cmp r4, #0x7 bhi _02017C58 add r5, r4, r4 add r5, pc ldrh r5, [r5, #0x6] lsl r5, r5, #0x10 asr r5, r5, #0x10 add pc, r5 _02017BEC: ; jump table (using 16-bit offset) .short _02017C58 - _02017BEC - 2; case 0 .short _02017C58 - _02017BEC - 2; case 1 .short _02017BFC - _02017BEC - 2; case 2 .short _02017C14 - _02017BEC - 2; case 3 .short _02017C58 - _02017BEC - 2; case 4 .short _02017C58 - _02017BEC - 2; case 5 .short _02017C2C - _02017BEC - 2; case 6 .short _02017C44 - _02017BEC - 2; case 7 _02017BFC: mov r5, #0x2c mul r5, r4 add r4, r0, r5 ldr r0, [r4, #0x14] str r0, [sp, #0x0] ldr r0, [r4, #0x18] str r0, [sp, #0x4] ldr r0, _02017C5C ; =0x04000020 blx FUN_020C74F8 add sp, #0x8 pop {r3-r5, pc} _02017C14: mov r5, #0x2c mul r5, r4 add r4, r0, r5 ldr r0, [r4, #0x14] str r0, [sp, #0x0] ldr r0, [r4, #0x18] str r0, [sp, #0x4] ldr r0, _02017C60 ; =0x04000030 blx FUN_020C74F8 add sp, #0x8 pop {r3-r5, pc} _02017C2C: mov r5, #0x2c mul r5, r4 add r4, r0, r5 ldr r0, [r4, #0x14] str r0, [sp, #0x0] ldr r0, [r4, #0x18] str r0, [sp, #0x4] ldr r0, _02017C64 ; =0x04001020 blx FUN_020C74F8 add sp, #0x8 pop {r3-r5, pc} _02017C44: mov r5, #0x2c mul r5, r4 add r4, r0, r5 ldr r0, [r4, #0x14] str r0, [sp, #0x0] ldr r0, [r4, #0x18] str r0, [sp, #0x4] ldr r0, _02017C68 ; =0x04001030 blx FUN_020C74F8 _02017C58: add sp, #0x8 pop {r3-r5, pc} .balign 4 _02017C5C: .word 0x04000020 _02017C60: .word 0x04000030 _02017C64: .word 0x04001020 _02017C68: .word 0x04001030 thumb_func_start FUN_02017C6C FUN_02017C6C: ; 0x02017C6C push {r4-r5, lr} sub sp, #0x14 mov r2, #0x1 lsl r2, r2, #0xc add r5, r0, #0x0 add r4, r1, #0x0 mov r1, #0x0 add r0, sp, #0x4 add r3, r2, #0x0 str r1, [sp, #0x0] bl FUN_0201BB74 mov r3, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 add r2, sp, #0x4 str r3, [sp, #0x0] bl FUN_02017BD0 add sp, #0x14 pop {r4-r5, pc} .balign 4 thumb_func_start FUN_02017C98 FUN_02017C98: ; 0x02017C98 push {r3-r5, lr} cmp r2, #0x0 bne _02017CA4 blx MI_UncompressLZ8 pop {r3-r5, pc} _02017CA4: mov r4, #0x3 add r3, r0, #0x0 tst r3, r4 bne _02017CCA add r3, r1, #0x0 tst r3, r4 bne _02017CCA lsl r3, r2, #0x10 lsr r3, r3, #0x10 lsr r4, r3, #0x1f lsl r5, r3, #0x1e sub r5, r5, r4 mov r3, #0x1e ror r5, r3 add r3, r4, r5 bne _02017CCA blx MIi_CpuCopy32 pop {r3-r5, pc} _02017CCA: blx MIi_CpuCopy16 pop {r3-r5, pc} thumb_func_start FUN_02017CD0 FUN_02017CD0: ; 0x02017CD0 push {r3, lr} mov r2, #0x2c mul r2, r1 add r3, r0, r2 ldr r2, [r3, #0x10] str r2, [sp, #0x0] ldr r2, [r3, #0x8] ldr r3, [r3, #0xc] bl FUN_02017CE8 pop {r3, pc} .balign 4 thumb_func_start FUN_02017CE8 FUN_02017CE8: ; 0x02017CE8 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 str r3, [sp, #0x0] cmp r3, #0x0 bne _02017D56 mov r0, #0x2c add r7, r4, #0x0 mul r7, r0 add r0, r5, r7 ldr r0, [r0, #0x8] str r0, [sp, #0x4] cmp r0, #0x0 beq _02017D26 ldr r1, [sp, #0x4] add r0, r6, #0x0 add r2, r3, #0x0 bl FUN_02017C98 add r3, r5, r7 ldr r2, [r3, #0x10] ldr r1, [sp, #0x4] ldr r3, [r3, #0xc] add r0, r4, #0x0 lsl r2, r2, #0x1 bl FUN_02017D68 add sp, #0x8 pop {r3-r7, pc} _02017D26: ldr r0, [r6, #0x0] lsr r7, r0, #0x8 ldr r0, [r5, #0x0] add r1, r7, #0x0 bl FUN_020169D8 add r5, r0, #0x0 ldr r2, [sp, #0x0] add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_02017C98 ldr r2, [sp, #0x20] add r0, r4, #0x0 add r1, r5, #0x0 lsl r2, r2, #0x1 add r3, r7, #0x0 bl FUN_02017D68 add r0, r5, #0x0 bl FUN_02016A18 add sp, #0x8 pop {r3-r7, pc} _02017D56: ldr r2, [sp, #0x20] add r0, r4, #0x0 add r1, r6, #0x0 lsl r2, r2, #0x1 bl FUN_02017D68 add sp, #0x8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02017D68 FUN_02017D68: ; 0x02017D68 push {r3-r7, lr} add r4, r1, #0x0 add r6, r3, #0x0 add r7, r0, #0x0 add r0, r4, #0x0 add r1, r6, #0x0 add r5, r2, #0x0 blx DC_FlushRange cmp r7, #0x7 bhi _02017DF8 add r0, r7, r7 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02017D8A: ; jump table (using 16-bit offset) .short _02017D9A - _02017D8A - 2; case 0 .short _02017DA6 - _02017D8A - 2; case 1 .short _02017DB2 - _02017D8A - 2; case 2 .short _02017DBE - _02017D8A - 2; case 3 .short _02017DCA - _02017D8A - 2; case 4 .short _02017DD6 - _02017D8A - 2; case 5 .short _02017DE2 - _02017D8A - 2; case 6 .short _02017DEE - _02017D8A - 2; case 7 _02017D9A: add r0, r4, #0x0 add r1, r5, #0x0 add r2, r6, #0x0 blx FUN_020C922C pop {r3-r7, pc} _02017DA6: add r0, r4, #0x0 add r1, r5, #0x0 add r2, r6, #0x0 blx FUN_020C915C pop {r3-r7, pc} _02017DB2: add r0, r4, #0x0 add r1, r5, #0x0 add r2, r6, #0x0 blx FUN_020C908C pop {r3-r7, pc} _02017DBE: add r0, r4, #0x0 add r1, r5, #0x0 add r2, r6, #0x0 blx FUN_020C8FBC pop {r3-r7, pc} _02017DCA: add r0, r4, #0x0 add r1, r5, #0x0 add r2, r6, #0x0 blx FUN_020C91C4 pop {r3-r7, pc} _02017DD6: add r0, r4, #0x0 add r1, r5, #0x0 add r2, r6, #0x0 blx FUN_020C90F4 pop {r3-r7, pc} _02017DE2: add r0, r4, #0x0 add r1, r5, #0x0 add r2, r6, #0x0 blx FUN_020C9024 pop {r3-r7, pc} _02017DEE: add r0, r4, #0x0 add r1, r5, #0x0 add r2, r6, #0x0 blx FUN_020C8F54 _02017DF8: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02017DFC FUN_02017DFC: ; 0x02017DFC push {r4, lr} add r4, r0, #0x0 add r0, r2, #0x0 mov r2, #0x2c mul r2, r1 add r1, r4, r2 ldr r1, [r1, #0x8] add r2, r3, #0x0 bl FUN_02017C98 pop {r4, pc} .balign 4 thumb_func_start FUN_02017E14 FUN_02017E14: ; 0x02017E14 push {r3-r4, lr} sub sp, #0x4 mov r4, #0x2c mul r4, r1 add r4, r0, r4 ldrb r4, [r4, #0x1e] cmp r4, #0x0 bne _02017E32 ldr r4, [sp, #0x10] lsl r4, r4, #0x5 str r4, [sp, #0x0] bl FUN_02017E40 add sp, #0x4 pop {r3-r4, pc} _02017E32: ldr r4, [sp, #0x10] lsl r4, r4, #0x6 str r4, [sp, #0x0] bl FUN_02017E40 add sp, #0x4 pop {r3-r4, pc} thumb_func_start FUN_02017E40 FUN_02017E40: ; 0x02017E40 push {r3-r7, lr} add r7, r1, #0x0 add r5, r2, #0x0 str r3, [sp, #0x0] cmp r3, #0x0 bne _02017E78 ldr r1, [r5, #0x0] ldr r0, [r0, #0x0] lsr r4, r1, #0x8 add r1, r4, #0x0 bl FUN_020169D8 add r6, r0, #0x0 ldr r2, [sp, #0x0] add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02017C98 ldr r2, [sp, #0x18] add r0, r7, #0x0 add r1, r6, #0x0 add r3, r4, #0x0 bl FUN_02017E84 add r0, r6, #0x0 bl FUN_02016A18 pop {r3-r7, pc} _02017E78: ldr r2, [sp, #0x18] add r0, r7, #0x0 add r1, r5, #0x0 bl FUN_02017E84 pop {r3-r7, pc} thumb_func_start FUN_02017E84 FUN_02017E84: ; 0x02017E84 push {r3-r7, lr} add r4, r1, #0x0 add r6, r3, #0x0 add r7, r0, #0x0 add r0, r4, #0x0 add r1, r6, #0x0 add r5, r2, #0x0 blx DC_FlushRange cmp r7, #0x7 bhi _02017F14 add r0, r7, r7 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02017EA6: ; jump table (using 16-bit offset) .short _02017EB6 - _02017EA6 - 2; case 0 .short _02017EC2 - _02017EA6 - 2; case 1 .short _02017ECE - _02017EA6 - 2; case 2 .short _02017EDA - _02017EA6 - 2; case 3 .short _02017EE6 - _02017EA6 - 2; case 4 .short _02017EF2 - _02017EA6 - 2; case 5 .short _02017EFE - _02017EA6 - 2; case 6 .short _02017F0A - _02017EA6 - 2; case 7 _02017EB6: add r0, r4, #0x0 add r1, r5, #0x0 add r2, r6, #0x0 blx FUN_020C8EEC pop {r3-r7, pc} _02017EC2: add r0, r4, #0x0 add r1, r5, #0x0 add r2, r6, #0x0 blx FUN_020C8E1C pop {r3-r7, pc} _02017ECE: add r0, r4, #0x0 add r1, r5, #0x0 add r2, r6, #0x0 blx FUN_020C8D4C pop {r3-r7, pc} _02017EDA: add r0, r4, #0x0 add r1, r5, #0x0 add r2, r6, #0x0 blx FUN_020C8C7C pop {r3-r7, pc} _02017EE6: add r0, r4, #0x0 add r1, r5, #0x0 add r2, r6, #0x0 blx FUN_020C8E84 pop {r3-r7, pc} _02017EF2: add r0, r4, #0x0 add r1, r5, #0x0 add r2, r6, #0x0 blx FUN_020C8DB4 pop {r3-r7, pc} _02017EFE: add r0, r4, #0x0 add r1, r5, #0x0 add r2, r6, #0x0 blx FUN_020C8CE4 pop {r3-r7, pc} _02017F0A: add r0, r4, #0x0 add r1, r5, #0x0 add r2, r6, #0x0 blx FUN_020C8C14 _02017F14: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02017F18 FUN_02017F18: ; 0x02017F18 push {r3-r7, lr} add r6, r0, #0x0 add r5, r1, #0x0 add r0, r3, #0x0 add r7, r2, #0x0 str r3, [sp, #0x0] bl FUN_020169D8 add r4, r0, #0x0 mov r1, #0x0 add r2, r5, #0x0 blx FUN_020DF4A4 add r0, r6, #0x0 add r1, r4, #0x0 add r2, r7, #0x0 add r3, r5, #0x0 bl FUN_02017E84 ldr r0, [sp, #0x0] add r1, r4, #0x0 bl FUN_02016A8C pop {r3-r7, pc} thumb_func_start FUN_02017F48 FUN_02017F48: ; 0x02017F48 push {r3-r7, lr} sub sp, #0x8 add r7, r1, #0x0 add r4, r0, #0x0 mov r1, #0x2c add r6, r7, #0x0 add r4, #0x1f mul r6, r1 ldrb r1, [r4, r6] ldr r0, [r0, #0x0] add r5, r2, #0x0 mul r1, r3 str r1, [sp, #0x0] bl FUN_020169D8 str r0, [sp, #0x4] ldrb r0, [r4, r6] cmp r0, #0x20 bne _02017F82 lsl r2, r5, #0xc lsl r1, r5, #0x8 lsl r0, r5, #0x4 orr r1, r2 orr r0, r1 add r1, r5, #0x0 orr r1, r0 lsl r0, r1, #0x10 add r5, r1, #0x0 b _02017F8C _02017F82: lsl r2, r5, #0x18 lsl r1, r5, #0x10 lsl r0, r5, #0x8 orr r1, r2 orr r0, r1 _02017F8C: orr r5, r0 ldr r1, [sp, #0x4] ldr r2, [sp, #0x0] add r0, r5, #0x0 blx MIi_CpuClearFast lsl r0, r7, #0x18 ldrb r2, [r4, r6] ldr r3, [sp, #0x20] ldr r1, [sp, #0x4] mul r2, r3 ldr r3, [sp, #0x0] lsr r0, r0, #0x18 bl FUN_02017E84 ldr r0, [sp, #0x4] bl FUN_02016A18 add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_02017FB4 FUN_02017FB4: ; 0x02017FB4 push {r3-r7, lr} add r5, r1, #0x0 add r4, r2, #0x0 add r6, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 add r7, r3, #0x0 blx DC_FlushRange cmp r6, #0x4 bhs _02017FD6 add r0, r5, #0x0 add r1, r7, #0x0 add r2, r4, #0x0 blx FUN_020C9550 pop {r3-r7, pc} _02017FD6: add r0, r5, #0x0 add r1, r7, #0x0 add r2, r4, #0x0 blx FUN_020C94E8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02017FE4 FUN_02017FE4: ; 0x02017FE4 push {r0-r3} push {r3, lr} add r1, sp, #0xc mov r2, #0x2 mov r3, #0x0 bl FUN_02017FB4 pop {r3} pop {r3} add sp, #0x10 bx r3 .balign 4 thumb_func_start FUN_02017FFC FUN_02017FFC: ; 0x02017FFC cmp r2, #0x5 bhi _02018066 add r2, r2, r2 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _0201800C: ; jump table (using 16-bit offset) .short _02018018 - _0201800C - 2; case 0 .short _02018022 - _0201800C - 2; case 1 .short _02018022 - _0201800C - 2; case 2 .short _0201802C - _0201800C - 2; case 3 .short _02018042 - _0201800C - 2; case 4 .short _02018064 - _0201800C - 2; case 5 _02018018: lsl r1, r1, #0x4 add r0, r0, r1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bx lr _02018022: lsl r1, r1, #0x5 add r0, r0, r1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bx lr _0201802C: mov r2, #0x1f add r3, r0, #0x0 and r3, r2 mov r2, #0x1f bic r0, r2 add r0, r1, r0 lsl r0, r0, #0x5 add r0, r3, r0 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bx lr _02018042: asr r2, r1, #0x5 asr r3, r0, #0x5 lsl r2, r2, #0x1 add r2, r3, r2 lsl r2, r2, #0x10 lsr r2, r2, #0x10 lsl r2, r2, #0x1a lsr r3, r2, #0x10 mov r2, #0x1f and r2, r0 lsl r0, r1, #0x1b lsr r0, r0, #0x16 add r0, r2, r0 add r0, r3, r0 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bx lr _02018064: mov r0, #0x0 _02018066: bx lr thumb_func_start FUN_02018068 FUN_02018068: ; 0x02018068 push {r3-r7} sub sp, #0x4 str r3, [sp, #0x0] add r6, r2, #0x0 ldr r5, [sp, #0x0] add r4, r6, #0x0 sub r4, #0x20 sub r5, #0x20 mov r2, #0x0 lsl r4, r4, #0x10 lsl r5, r5, #0x10 add r3, r2, #0x0 asr r4, r4, #0x10 asr r7, r5, #0x10 lsr r5, r0, #0x5 beq _0201808E add r2, r2, #0x1 lsl r2, r2, #0x18 lsr r2, r2, #0x18 _0201808E: lsr r5, r1, #0x5 beq _02018098 add r2, r2, #0x2 lsl r2, r2, #0x18 lsr r2, r2, #0x18 _02018098: cmp r2, #0x3 bhi _02018140 add r2, r2, r2 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _020180A8: ; jump table (using 16-bit offset) .short _020180B0 - _020180A8 - 2; case 0 .short _020180CE - _020180A8 - 2; case 1 .short _020180F4 - _020180A8 - 2; case 2 .short _02018120 - _020180A8 - 2; case 3 _020180B0: cmp r4, #0x0 blt _020180C0 lsl r1, r1, #0x5 add r0, r0, r1 add r0, r3, r0 lsl r0, r0, #0x10 lsr r3, r0, #0x10 b _02018140 _020180C0: add r2, r1, #0x0 mul r2, r6 add r0, r0, r2 add r0, r3, r0 lsl r0, r0, #0x10 lsr r3, r0, #0x10 b _02018140 _020180CE: cmp r7, #0x0 blt _020180D8 mov r2, #0x1 lsl r2, r2, #0xa b _020180DC _020180D8: ldr r2, [sp, #0x0] lsl r2, r2, #0x5 _020180DC: add r2, r3, r2 lsl r2, r2, #0x10 lsr r3, r2, #0x10 mov r2, #0x1f and r2, r0 add r0, r1, #0x0 mul r0, r4 add r0, r2, r0 add r0, r3, r0 lsl r0, r0, #0x10 lsr r3, r0, #0x10 b _02018140 _020180F4: lsl r2, r6, #0x5 add r2, r3, r2 lsl r2, r2, #0x10 lsr r2, r2, #0x10 cmp r4, #0x0 blt _0201810E lsl r1, r1, #0x1b lsr r1, r1, #0x16 add r0, r0, r1 add r0, r2, r0 lsl r0, r0, #0x10 lsr r3, r0, #0x10 b _02018140 _0201810E: mov r3, #0x1f and r1, r3 add r3, r1, #0x0 mul r3, r6 add r0, r0, r3 add r0, r2, r0 lsl r0, r0, #0x10 lsr r3, r0, #0x10 b _02018140 _02018120: add r2, r6, r7 lsl r2, r2, #0x5 add r2, r3, r2 add r5, r0, #0x0 mov r3, #0x1f add r0, r1, #0x0 and r0, r3 add r1, r0, #0x0 lsl r2, r2, #0x10 and r5, r3 mul r1, r4 lsr r2, r2, #0x10 add r0, r5, r1 add r0, r2, r0 lsl r0, r0, #0x10 lsr r3, r0, #0x10 _02018140: add r0, r3, #0x0 add sp, #0x4 pop {r3-r7} bx lr thumb_func_start FUN_02018148 FUN_02018148: ; 0x02018148 push {r3-r6, lr} sub sp, #0x1c add r6, sp, #0x20 ldrb r5, [r6, #0x14] str r5, [sp, #0x0] ldrb r4, [r6, #0x18] str r4, [sp, #0x4] str r2, [sp, #0x8] mov r2, #0x0 str r2, [sp, #0xc] str r2, [sp, #0x10] str r5, [sp, #0x14] str r4, [sp, #0x18] add r2, r3, #0x0 ldrb r3, [r6, #0x10] bl FUN_02018170 add sp, #0x1c pop {r3-r6, pc} .balign 4 thumb_func_start FUN_02018170 FUN_02018170: ; 0x02018170 push {r4-r5, lr} sub sp, #0x1c add r4, r2, #0x0 add r2, r3, #0x0 mov r3, #0x2c add r5, r1, #0x0 mul r5, r3 add r1, r0, r5 ldrb r1, [r1, #0x1c] add r3, sp, #0x18 cmp r1, #0x1 beq _020181BA ldrb r1, [r3, #0x14] add r0, #0x8 add r0, r0, r5 str r1, [sp, #0x0] ldr r1, [sp, #0x30] str r1, [sp, #0x4] ldrb r1, [r3, #0x1c] str r1, [sp, #0x8] add r1, sp, #0x38 ldrb r1, [r1, #0x0] str r1, [sp, #0xc] add r1, sp, #0x3c ldrb r1, [r1, #0x0] str r1, [sp, #0x10] add r1, sp, #0x40 ldrb r1, [r1, #0x0] str r1, [sp, #0x14] mov r1, #0x0 str r1, [sp, #0x18] ldrb r3, [r3, #0x10] add r1, r4, #0x0 bl FUN_02018268 add sp, #0x1c pop {r4-r5, pc} _020181BA: ldrb r1, [r3, #0x14] add r0, #0x8 add r0, r0, r5 str r1, [sp, #0x0] ldr r1, [sp, #0x30] str r1, [sp, #0x4] ldrb r1, [r3, #0x1c] str r1, [sp, #0x8] add r1, sp, #0x38 ldrb r1, [r1, #0x0] str r1, [sp, #0xc] add r1, sp, #0x3c ldrb r1, [r1, #0x0] str r1, [sp, #0x10] add r1, sp, #0x40 ldrb r1, [r1, #0x0] str r1, [sp, #0x14] mov r1, #0x0 str r1, [sp, #0x18] ldrb r3, [r3, #0x10] add r1, r4, #0x0 bl FUN_020183DC add sp, #0x1c pop {r4-r5, pc} thumb_func_start FUN_020181EC FUN_020181EC: ; 0x020181EC push {r4-r5, lr} sub sp, #0x1c add r4, r2, #0x0 add r2, r3, #0x0 mov r3, #0x2c add r5, r1, #0x0 mul r5, r3 add r1, r0, r5 ldrb r1, [r1, #0x1c] add r3, sp, #0x18 cmp r1, #0x1 beq _02018236 ldrb r1, [r3, #0x14] add r0, #0x8 add r0, r0, r5 str r1, [sp, #0x0] ldr r1, [sp, #0x30] str r1, [sp, #0x4] ldrb r1, [r3, #0x1c] str r1, [sp, #0x8] add r1, sp, #0x38 ldrb r1, [r1, #0x0] str r1, [sp, #0xc] add r1, sp, #0x3c ldrb r1, [r1, #0x0] str r1, [sp, #0x10] add r1, sp, #0x40 ldrb r1, [r1, #0x0] str r1, [sp, #0x14] mov r1, #0x1 str r1, [sp, #0x18] ldrb r3, [r3, #0x10] add r1, r4, #0x0 bl FUN_02018268 add sp, #0x1c pop {r4-r5, pc} _02018236: ldrb r1, [r3, #0x14] add r0, #0x8 add r0, r0, r5 str r1, [sp, #0x0] ldr r1, [sp, #0x30] str r1, [sp, #0x4] ldrb r1, [r3, #0x1c] str r1, [sp, #0x8] add r1, sp, #0x38 ldrb r1, [r1, #0x0] str r1, [sp, #0xc] add r1, sp, #0x3c ldrb r1, [r1, #0x0] str r1, [sp, #0x10] add r1, sp, #0x40 ldrb r1, [r1, #0x0] str r1, [sp, #0x14] mov r1, #0x1 str r1, [sp, #0x18] ldrb r3, [r3, #0x10] add r1, r4, #0x0 bl FUN_020183DC add sp, #0x1c pop {r4-r5, pc} thumb_func_start FUN_02018268 FUN_02018268: ; 0x02018268 push {r4-r7, lr} sub sp, #0x44 str r1, [sp, #0x0] str r2, [sp, #0x4] add r7, r0, #0x0 ldr r0, [sp, #0x58] add r6, r3, #0x0 str r0, [sp, #0x58] ldr r0, [sp, #0x5c] ldr r4, [sp, #0x68] str r0, [sp, #0x5c] ldr r0, [sp, #0x6c] str r0, [sp, #0x6c] ldr r0, [r7, #0x0] str r0, [sp, #0x2c] cmp r0, #0x0 bne _0201828C b _020183D6 _0201828C: ldrb r0, [r7, #0x15] add r1, sp, #0x40 add r1, #0x1 add r2, sp, #0x40 bl FUN_02017850 add r0, sp, #0x70 ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _0201833A mov r0, #0x0 str r0, [sp, #0x28] ldr r0, [sp, #0x58] cmp r0, #0x0 bls _020182CA add r1, sp, #0x48 ldrb r0, [r1, #0x1c] str r0, [sp, #0x1c] ldrb r0, [r1, #0x18] str r0, [sp, #0x18] lsl r1, r0, #0x1 ldr r0, [sp, #0x5c] add r0, r0, r1 str r0, [sp, #0x14] _020182BC: ldr r1, [sp, #0x4] ldr r0, [sp, #0x28] add r0, r1, r0 add r1, sp, #0x40 ldrb r1, [r1, #0x0] cmp r0, r1 blt _020182CC _020182CA: b _020183D6 _020182CC: ldr r2, [sp, #0x1c] ldr r1, [sp, #0x28] add r2, r2, r1 ldr r1, [sp, #0x6c] cmp r2, r1 bge _020183D6 mov r5, #0x0 cmp r6, #0x0 bls _02018326 add r1, r4, #0x0 mul r1, r2 lsl r2, r1, #0x1 ldr r1, [sp, #0x14] lsl r0, r0, #0x18 add r1, r1, r2 lsr r0, r0, #0x18 str r1, [sp, #0x10] str r0, [sp, #0x30] _020182F0: add r1, sp, #0x40 ldr r0, [sp, #0x0] ldrb r1, [r1, #0x1] add r0, r0, r5 cmp r0, r1 bge _02018326 ldr r1, [sp, #0x18] add r1, r1, r5 cmp r1, r4 bge _02018326 ldrb r2, [r7, #0x15] lsl r0, r0, #0x18 ldr r1, [sp, #0x30] lsr r0, r0, #0x18 bl FUN_02017FFC ldr r1, [sp, #0x10] lsl r2, r5, #0x1 ldrh r1, [r1, r2] lsl r2, r0, #0x1 ldr r0, [sp, #0x2c] strh r1, [r0, r2] add r0, r5, #0x1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 cmp r5, r6 blo _020182F0 _02018326: ldr r0, [sp, #0x28] add r0, r0, #0x1 lsl r0, r0, #0x18 lsr r1, r0, #0x18 str r1, [sp, #0x28] ldr r0, [sp, #0x58] cmp r1, r0 blo _020182BC add sp, #0x44 pop {r4-r7, pc} _0201833A: mov r0, #0x0 str r0, [sp, #0x8] ldr r0, [sp, #0x58] cmp r0, #0x0 bls _020183D6 add r1, sp, #0x48 ldrb r0, [r1, #0x1c] str r0, [sp, #0x24] ldrb r0, [r1, #0x18] str r0, [sp, #0x20] _0201834E: ldr r1, [sp, #0x4] ldr r0, [sp, #0x8] add r1, r1, r0 add r0, sp, #0x40 ldrb r0, [r0, #0x0] cmp r1, r0 bge _020183D6 ldr r2, [sp, #0x24] ldr r0, [sp, #0x8] add r0, r2, r0 ldr r2, [sp, #0x6c] cmp r0, r2 bge _020183D6 mov r5, #0x0 cmp r6, #0x0 bls _020183C6 lsl r1, r1, #0x18 lsl r0, r0, #0x18 lsr r1, r1, #0x18 lsr r0, r0, #0x18 str r1, [sp, #0x34] str r0, [sp, #0x3c] _0201837A: add r1, sp, #0x40 ldr r0, [sp, #0x0] ldrb r1, [r1, #0x1] add r0, r0, r5 cmp r0, r1 bge _020183C6 ldr r1, [sp, #0x20] add r1, r1, r5 str r1, [sp, #0xc] cmp r1, r4 bge _020183C6 ldrb r2, [r7, #0x15] lsl r0, r0, #0x18 ldr r1, [sp, #0x34] lsr r0, r0, #0x18 bl FUN_02017FFC str r0, [sp, #0x38] ldr r0, [sp, #0xc] ldr r1, [sp, #0x3c] lsl r0, r0, #0x18 ldr r3, [sp, #0x6c] lsr r0, r0, #0x18 add r2, r4, #0x0 bl FUN_02018068 lsl r1, r0, #0x1 ldr r0, [sp, #0x5c] ldrh r0, [r0, r1] ldr r1, [sp, #0x38] lsl r2, r1, #0x1 ldr r1, [sp, #0x2c] strh r0, [r1, r2] add r0, r5, #0x1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 cmp r5, r6 blo _0201837A _020183C6: ldr r0, [sp, #0x8] add r0, r0, #0x1 lsl r0, r0, #0x18 lsr r1, r0, #0x18 str r1, [sp, #0x8] ldr r0, [sp, #0x58] cmp r1, r0 blo _0201834E _020183D6: add sp, #0x44 pop {r4-r7, pc} .balign 4 thumb_func_start FUN_020183DC FUN_020183DC: ; 0x020183DC push {r4-r7, lr} sub sp, #0x44 str r1, [sp, #0x0] str r2, [sp, #0x4] add r7, r0, #0x0 ldr r0, [sp, #0x58] add r6, r3, #0x0 str r0, [sp, #0x58] ldr r0, [sp, #0x5c] ldr r4, [sp, #0x68] str r0, [sp, #0x5c] ldr r0, [sp, #0x6c] str r0, [sp, #0x6c] ldr r0, [r7, #0x0] str r0, [sp, #0x2c] cmp r0, #0x0 bne _02018400 b _0201853C _02018400: ldrb r0, [r7, #0x15] add r1, sp, #0x40 add r1, #0x1 add r2, sp, #0x40 bl FUN_02017850 add r0, sp, #0x70 ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _020184A4 mov r0, #0x0 str r0, [sp, #0x28] ldr r0, [sp, #0x58] cmp r0, #0x0 bhi _02018420 b _0201853C _02018420: add r1, sp, #0x48 ldrb r0, [r1, #0x1c] str r0, [sp, #0x1c] ldrb r0, [r1, #0x18] ldr r1, [sp, #0x5c] str r0, [sp, #0x18] add r0, r1, r0 str r0, [sp, #0x14] _02018430: ldr r1, [sp, #0x4] ldr r0, [sp, #0x28] add r0, r1, r0 add r1, sp, #0x40 ldrb r1, [r1, #0x0] cmp r0, r1 bge _0201853C ldr r2, [sp, #0x1c] ldr r1, [sp, #0x28] add r2, r2, r1 ldr r1, [sp, #0x6c] cmp r2, r1 bge _0201853C mov r5, #0x0 cmp r6, #0x0 bls _02018490 ldr r1, [sp, #0x14] mul r2, r4 lsl r0, r0, #0x18 add r1, r1, r2 lsr r0, r0, #0x18 str r1, [sp, #0x10] str r0, [sp, #0x30] _0201845E: add r1, sp, #0x40 ldr r0, [sp, #0x0] ldrb r1, [r1, #0x1] add r0, r0, r5 cmp r0, r1 bge _02018490 ldr r1, [sp, #0x18] add r1, r1, r5 cmp r1, r4 bge _02018490 ldrb r2, [r7, #0x15] lsl r0, r0, #0x18 ldr r1, [sp, #0x30] lsr r0, r0, #0x18 bl FUN_02017FFC ldr r1, [sp, #0x10] ldrb r2, [r1, r5] ldr r1, [sp, #0x2c] strb r2, [r1, r0] add r0, r5, #0x1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 cmp r5, r6 blo _0201845E _02018490: ldr r0, [sp, #0x28] add r0, r0, #0x1 lsl r0, r0, #0x18 lsr r1, r0, #0x18 str r1, [sp, #0x28] ldr r0, [sp, #0x58] cmp r1, r0 blo _02018430 add sp, #0x44 pop {r4-r7, pc} _020184A4: mov r0, #0x0 str r0, [sp, #0x8] ldr r0, [sp, #0x58] cmp r0, #0x0 bls _0201853C add r1, sp, #0x48 ldrb r0, [r1, #0x1c] str r0, [sp, #0x24] ldrb r0, [r1, #0x18] str r0, [sp, #0x20] _020184B8: ldr r1, [sp, #0x4] ldr r0, [sp, #0x8] add r1, r1, r0 add r0, sp, #0x40 ldrb r0, [r0, #0x0] cmp r1, r0 bge _0201853C ldr r2, [sp, #0x24] ldr r0, [sp, #0x8] add r0, r2, r0 ldr r2, [sp, #0x6c] cmp r0, r2 bge _0201853C mov r5, #0x0 cmp r6, #0x0 bls _0201852C lsl r1, r1, #0x18 lsl r0, r0, #0x18 lsr r1, r1, #0x18 lsr r0, r0, #0x18 str r1, [sp, #0x34] str r0, [sp, #0x3c] _020184E4: add r1, sp, #0x40 ldr r0, [sp, #0x0] ldrb r1, [r1, #0x1] add r0, r0, r5 cmp r0, r1 bge _0201852C ldr r1, [sp, #0x20] add r1, r1, r5 str r1, [sp, #0xc] cmp r1, r4 bge _0201852C ldrb r2, [r7, #0x15] lsl r0, r0, #0x18 ldr r1, [sp, #0x34] lsr r0, r0, #0x18 bl FUN_02017FFC str r0, [sp, #0x38] ldr r0, [sp, #0xc] ldr r1, [sp, #0x3c] lsl r0, r0, #0x18 ldr r3, [sp, #0x6c] lsr r0, r0, #0x18 add r2, r4, #0x0 bl FUN_02018068 ldr r1, [sp, #0x5c] ldrb r2, [r1, r0] ldr r1, [sp, #0x2c] ldr r0, [sp, #0x38] strb r2, [r1, r0] add r0, r5, #0x1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 cmp r5, r6 blo _020184E4 _0201852C: ldr r0, [sp, #0x8] add r0, r0, #0x1 lsl r0, r0, #0x18 lsr r1, r0, #0x18 str r1, [sp, #0x8] ldr r0, [sp, #0x58] cmp r1, r0 blo _020184B8 _0201853C: add sp, #0x44 pop {r4-r7, pc} thumb_func_start FUN_02018540 FUN_02018540: ; 0x02018540 push {r4-r5, lr} sub sp, #0xc add r4, r2, #0x0 add r2, r3, #0x0 mov r3, #0x2c add r5, r1, #0x0 mul r5, r3 add r1, r0, r5 ldrb r1, [r1, #0x1c] add r3, sp, #0x8 cmp r1, #0x1 beq _02018574 ldrb r1, [r3, #0x14] add r0, #0x8 add r0, r0, r5 str r1, [sp, #0x0] ldrb r1, [r3, #0x18] str r1, [sp, #0x4] ldrb r1, [r3, #0x1c] str r1, [sp, #0x8] ldrb r3, [r3, #0x10] add r1, r4, #0x0 bl FUN_02018590 add sp, #0xc pop {r4-r5, pc} _02018574: ldrb r1, [r3, #0x14] add r0, #0x8 add r0, r0, r5 str r1, [sp, #0x0] ldrb r1, [r3, #0x18] str r1, [sp, #0x4] lsl r1, r4, #0x18 ldrb r3, [r3, #0x10] lsr r1, r1, #0x18 bl FUN_02018640 add sp, #0xc pop {r4-r5, pc} .balign 4 thumb_func_start FUN_02018590 FUN_02018590: ; 0x02018590 push {r4-r7, lr} sub sp, #0x1c str r2, [sp, #0x4] str r3, [sp, #0x8] ldr r4, [r0, #0x0] add r7, r1, #0x0 str r0, [sp, #0x0] ldr r6, [sp, #0x38] cmp r4, #0x0 beq _0201863A ldrb r0, [r0, #0x15] add r1, sp, #0x18 add r1, #0x1 add r2, sp, #0x18 bl FUN_02017850 add r0, sp, #0x20 ldrb r2, [r0, #0x14] ldr r1, [sp, #0x8] add r1, r1, r2 ldr r2, [sp, #0x8] str r1, [sp, #0xc] cmp r2, r1 bge _0201863A ldrb r2, [r0, #0x10] ldr r0, [sp, #0x4] lsl r1, r6, #0xc add r0, r0, r2 add r1, r1, r7 str r0, [sp, #0x10] lsl r0, r1, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x14] _020185D2: add r0, sp, #0x18 ldrb r1, [r0, #0x0] ldr r0, [sp, #0x8] cmp r0, r1 bhs _0201863A ldr r5, [sp, #0x4] ldr r0, [sp, #0x10] add r1, r5, #0x0 cmp r1, r0 bge _0201862A _020185E6: add r0, sp, #0x18 ldrb r0, [r0, #0x1] cmp r5, r0 bhs _0201862A ldr r2, [sp, #0x0] ldr r1, [sp, #0x8] ldrb r2, [r2, #0x15] add r0, r5, #0x0 bl FUN_02017FFC cmp r6, #0x11 bne _02018604 lsl r0, r0, #0x1 strh r7, [r4, r0] b _0201861E _02018604: cmp r6, #0x10 bne _02018618 lsl r0, r0, #0x1 ldrh r2, [r4, r0] mov r1, #0xf lsl r1, r1, #0xc and r1, r2 add r1, r7, r1 strh r1, [r4, r0] b _0201861E _02018618: lsl r1, r0, #0x1 ldr r0, [sp, #0x14] strh r0, [r4, r1] _0201861E: add r0, r5, #0x1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 ldr r0, [sp, #0x10] cmp r5, r0 blt _020185E6 _0201862A: ldr r0, [sp, #0x8] add r0, r0, #0x1 lsl r0, r0, #0x18 lsr r1, r0, #0x18 ldr r0, [sp, #0xc] str r1, [sp, #0x8] cmp r1, r0 blt _020185D2 _0201863A: add sp, #0x1c pop {r4-r7, pc} .balign 4 thumb_func_start FUN_02018640 FUN_02018640: ; 0x02018640 push {r4-r7, lr} sub sp, #0x14 str r1, [sp, #0x0] add r7, r0, #0x0 str r2, [sp, #0x4] ldr r0, [r7, #0x0] add r5, r3, #0x0 str r0, [sp, #0xc] cmp r0, #0x0 beq _020186B0 ldrb r0, [r7, #0x15] add r1, sp, #0x10 add r1, #0x1 add r2, sp, #0x10 bl FUN_02017850 add r1, sp, #0x18 ldrb r0, [r1, #0x14] add r0, r5, r0 str r0, [sp, #0x8] cmp r5, r0 bge _020186B0 ldrb r1, [r1, #0x10] ldr r0, [sp, #0x4] add r6, r0, r1 _02018672: add r0, sp, #0x10 ldrb r0, [r0, #0x0] cmp r5, r0 bhs _020186B0 ldr r4, [sp, #0x4] add r0, r4, #0x0 cmp r0, r6 bge _020186A4 _02018682: add r0, sp, #0x10 ldrb r0, [r0, #0x1] cmp r4, r0 bhs _020186A4 ldrb r2, [r7, #0x15] add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_02017FFC ldr r2, [sp, #0x0] ldr r1, [sp, #0xc] strb r2, [r1, r0] add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, r6 blt _02018682 _020186A4: add r0, r5, #0x1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 ldr r0, [sp, #0x8] cmp r5, r0 blt _02018672 _020186B0: add sp, #0x14 pop {r4-r7, pc} thumb_func_start FUN_020186B4 FUN_020186B4: ; 0x020186B4 push {r4-r7, lr} sub sp, #0x14 add r5, r0, #0x0 mov r0, #0x2c add r7, r1, #0x0 mul r7, r0 str r2, [sp, #0x0] add r0, r5, r7 ldr r4, [r0, #0x8] add r6, r3, #0x0 cmp r4, #0x0 beq _0201873C ldrb r0, [r0, #0x1d] add r1, sp, #0x10 add r1, #0x1 add r2, sp, #0x10 bl FUN_02017850 add r0, sp, #0x18 ldrb r1, [r0, #0x14] add r1, r6, r1 str r1, [sp, #0x4] cmp r6, r1 bge _0201873C add r1, r5, r7 str r1, [sp, #0xc] ldrb r1, [r0, #0x18] lsl r1, r1, #0xc str r1, [sp, #0x8] ldrb r1, [r0, #0x10] ldr r0, [sp, #0x0] add r7, r0, r1 _020186F4: add r0, sp, #0x10 ldrb r0, [r0, #0x0] cmp r6, r0 bhs _0201873C ldr r5, [sp, #0x0] add r0, r5, #0x0 cmp r0, r7 bge _02018730 _02018704: add r0, sp, #0x10 ldrb r0, [r0, #0x1] cmp r5, r0 bhs _02018730 ldr r2, [sp, #0xc] add r0, r5, #0x0 ldrb r2, [r2, #0x1d] add r1, r6, #0x0 bl FUN_02017FFC lsl r0, r0, #0x1 ldrh r2, [r4, r0] ldr r1, _02018740 ; =0x00000FFF and r2, r1 ldr r1, [sp, #0x8] orr r1, r2 strh r1, [r4, r0] add r0, r5, #0x1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 cmp r5, r7 blt _02018704 _02018730: add r0, r6, #0x1 lsl r0, r0, #0x18 lsr r6, r0, #0x18 ldr r0, [sp, #0x4] cmp r6, r0 blt _020186F4 _0201873C: add sp, #0x14 pop {r4-r7, pc} .balign 4 _02018740: .word 0x00000FFF thumb_func_start FUN_02018744 FUN_02018744: ; 0x02018744 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 mov r0, #0x2c mul r0, r4 add r2, r5, r0 ldr r1, [r2, #0x8] cmp r1, #0x0 beq _02018766 ldr r2, [r2, #0xc] mov r0, #0x0 blx MIi_CpuClear16 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02017CD0 _02018766: pop {r3-r5, pc} thumb_func_start FUN_02018768 FUN_02018768: ; 0x02018768 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 mov r0, #0x2c mul r0, r4 add r3, r5, r0 ldr r1, [r3, #0x8] cmp r1, #0x0 beq _0201878A add r0, r2, #0x0 ldr r2, [r3, #0xc] blx MIi_CpuClear16 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02017CD0 _0201878A: pop {r3-r5, pc} thumb_func_start FUN_0201878C FUN_0201878C: ; 0x0201878C push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 mov r0, #0x2c mul r0, r4 add r3, r5, r0 ldr r1, [r3, #0x8] cmp r1, #0x0 beq _020187AE add r0, r2, #0x0 ldr r2, [r3, #0xc] blx MIi_CpuClear16 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0201AC68 _020187AE: pop {r3-r5, pc} thumb_func_start FUN_020187B0 FUN_020187B0: ; 0x020187B0 push {r3, lr} cmp r0, #0x7 bhi _02018802 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _020187C2: ; jump table (using 16-bit offset) .short _020187D2 - _020187C2 - 2; case 0 .short _020187D8 - _020187C2 - 2; case 1 .short _020187DE - _020187C2 - 2; case 2 .short _020187E4 - _020187C2 - 2; case 3 .short _020187EA - _020187C2 - 2; case 4 .short _020187F0 - _020187C2 - 2; case 5 .short _020187F6 - _020187C2 - 2; case 6 .short _020187FC - _020187C2 - 2; case 7 _020187D2: blx FUN_020C7124 pop {r3, pc} _020187D8: blx FUN_020C70D0 pop {r3, pc} _020187DE: blx FUN_020C7058 pop {r3, pc} _020187E4: blx FUN_020C6FB0 pop {r3, pc} _020187EA: blx FUN_020C7104 pop {r3, pc} _020187F0: blx FUN_020C70B0 pop {r3, pc} _020187F6: blx FUN_020C7010 pop {r3, pc} _020187FC: blx FUN_020C6F60 pop {r3, pc} _02018802: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_02018808 FUN_02018808: ; 0x02018808 push {r4-r7} lsl r3, r3, #0x1c lsr r3, r3, #0x18 mov r4, #0x0 cmp r1, #0x0 bls _02018842 mov r5, #0xf add r6, r5, #0x0 _02018818: ldrb r7, [r0, r4] and r7, r6 strb r7, [r2, #0x0] ldrb r7, [r2, #0x0] cmp r7, #0x0 beq _02018828 add r7, r7, r3 strb r7, [r2, #0x0] _02018828: ldrb r7, [r0, r4] asr r7, r7, #0x4 and r7, r5 strb r7, [r2, #0x1] ldrb r7, [r2, #0x1] cmp r7, #0x0 beq _0201883A add r7, r7, r3 strb r7, [r2, #0x1] _0201883A: add r4, r4, #0x1 add r2, r2, #0x2 cmp r4, r1 blo _02018818 _02018842: pop {r4-r7} bx lr .balign 4 thumb_func_start FUN_02018848 FUN_02018848: ; 0x02018848 push {r3-r7, lr} add r5, r1, #0x0 add r6, r0, #0x0 add r0, r3, #0x0 lsl r1, r5, #0x1 add r7, r2, #0x0 bl FUN_02016998 add r4, r0, #0x0 add r0, r6, #0x0 add r1, r5, #0x0 add r2, r4, #0x0 add r3, r7, #0x0 bl FUN_02018808 add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0201886C FUN_0201886C: ; 0x0201886C mov r2, #0x2c mul r2, r1 add r0, r0, r2 ldr r0, [r0, #0x8] bx lr .balign 4 thumb_func_start FUN_02018878 FUN_02018878: ; 0x02018878 mov r2, #0x2c mul r2, r1 add r0, r0, r2 ldrh r0, [r0, #0x20] bx lr .balign 4 thumb_func_start FUN_02018884 FUN_02018884: ; 0x02018884 sub sp, #0x20 cmp r1, #0x7 bls _0201888C b _02018A38 _0201888C: add r2, r1, r1 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _02018898: ; jump table (using 16-bit offset) .short _020188A8 - _02018898 - 2; case 0 .short _020188BC - _02018898 - 2; case 1 .short _020188D0 - _02018898 - 2; case 2 .short _02018920 - _02018898 - 2; case 3 .short _02018970 - _02018898 - 2; case 4 .short _02018984 - _02018898 - 2; case 5 .short _02018998 - _02018898 - 2; case 6 .short _020189E8 - _02018898 - 2; case 7 _020188A8: ldr r0, _02018A40 ; =0x04000008 ldrh r1, [r0, #0x0] add r0, sp, #0x0 add sp, #0x20 strh r1, [r0, #0x1e] lsl r0, r1, #0x1e lsr r0, r0, #0x1e lsl r0, r0, #0x18 lsr r0, r0, #0x18 bx lr _020188BC: ldr r0, _02018A44 ; =0x0400000A ldrh r1, [r0, #0x0] add r0, sp, #0x0 add sp, #0x20 strh r1, [r0, #0x1c] lsl r0, r1, #0x1e lsr r0, r0, #0x1e lsl r0, r0, #0x18 lsr r0, r0, #0x18 bx lr _020188D0: mov r2, #0x2c mul r2, r1 add r0, r0, r2 ldrb r0, [r0, #0x1c] cmp r0, #0x0 beq _020188E4 cmp r0, #0x1 beq _020188F8 cmp r0, #0x2 beq _0201890C _020188E4: ldr r0, _02018A48 ; =0x0400000C ldrh r1, [r0, #0x0] add r0, sp, #0x0 add sp, #0x20 strh r1, [r0, #0x1a] lsl r0, r1, #0x1e lsr r0, r0, #0x1e lsl r0, r0, #0x18 lsr r0, r0, #0x18 bx lr _020188F8: ldr r0, _02018A48 ; =0x0400000C ldrh r1, [r0, #0x0] add r0, sp, #0x0 add sp, #0x20 strh r1, [r0, #0x18] lsl r0, r1, #0x1e lsr r0, r0, #0x1e lsl r0, r0, #0x18 lsr r0, r0, #0x18 bx lr _0201890C: ldr r0, _02018A48 ; =0x0400000C ldrh r1, [r0, #0x0] add r0, sp, #0x0 add sp, #0x20 strh r1, [r0, #0x16] lsl r0, r1, #0x1e lsr r0, r0, #0x1e lsl r0, r0, #0x18 lsr r0, r0, #0x18 bx lr _02018920: mov r2, #0x2c mul r2, r1 add r0, r0, r2 ldrb r0, [r0, #0x1c] cmp r0, #0x0 beq _02018934 cmp r0, #0x1 beq _02018948 cmp r0, #0x2 beq _0201895C _02018934: ldr r0, _02018A4C ; =0x0400000E ldrh r1, [r0, #0x0] add r0, sp, #0x0 add sp, #0x20 strh r1, [r0, #0x14] lsl r0, r1, #0x1e lsr r0, r0, #0x1e lsl r0, r0, #0x18 lsr r0, r0, #0x18 bx lr _02018948: ldr r0, _02018A4C ; =0x0400000E ldrh r1, [r0, #0x0] add r0, sp, #0x0 add sp, #0x20 strh r1, [r0, #0x12] lsl r0, r1, #0x1e lsr r0, r0, #0x1e lsl r0, r0, #0x18 lsr r0, r0, #0x18 bx lr _0201895C: ldr r0, _02018A4C ; =0x0400000E ldrh r1, [r0, #0x0] add r0, sp, #0x0 add sp, #0x20 strh r1, [r0, #0x10] lsl r0, r1, #0x1e lsr r0, r0, #0x1e lsl r0, r0, #0x18 lsr r0, r0, #0x18 bx lr _02018970: ldr r0, _02018A50 ; =0x04001008 ldrh r1, [r0, #0x0] add r0, sp, #0x0 add sp, #0x20 strh r1, [r0, #0xe] lsl r0, r1, #0x1e lsr r0, r0, #0x1e lsl r0, r0, #0x18 lsr r0, r0, #0x18 bx lr _02018984: ldr r0, _02018A54 ; =0x0400100A ldrh r1, [r0, #0x0] add r0, sp, #0x0 add sp, #0x20 strh r1, [r0, #0xc] lsl r0, r1, #0x1e lsr r0, r0, #0x1e lsl r0, r0, #0x18 lsr r0, r0, #0x18 bx lr _02018998: mov r2, #0x2c mul r2, r1 add r0, r0, r2 ldrb r0, [r0, #0x1c] cmp r0, #0x0 beq _020189AC cmp r0, #0x1 beq _020189C0 cmp r0, #0x2 beq _020189D4 _020189AC: ldr r0, _02018A58 ; =0x0400100C ldrh r1, [r0, #0x0] add r0, sp, #0x0 add sp, #0x20 strh r1, [r0, #0xa] lsl r0, r1, #0x1e lsr r0, r0, #0x1e lsl r0, r0, #0x18 lsr r0, r0, #0x18 bx lr _020189C0: ldr r0, _02018A58 ; =0x0400100C ldrh r1, [r0, #0x0] add r0, sp, #0x0 add sp, #0x20 strh r1, [r0, #0x8] lsl r0, r1, #0x1e lsr r0, r0, #0x1e lsl r0, r0, #0x18 lsr r0, r0, #0x18 bx lr _020189D4: ldr r0, _02018A58 ; =0x0400100C ldrh r1, [r0, #0x0] add r0, sp, #0x0 add sp, #0x20 strh r1, [r0, #0x6] lsl r0, r1, #0x1e lsr r0, r0, #0x1e lsl r0, r0, #0x18 lsr r0, r0, #0x18 bx lr _020189E8: mov r2, #0x2c mul r2, r1 add r0, r0, r2 ldrb r0, [r0, #0x1c] cmp r0, #0x0 beq _020189FC cmp r0, #0x1 beq _02018A10 cmp r0, #0x2 beq _02018A24 _020189FC: ldr r0, _02018A5C ; =0x0400100E ldrh r1, [r0, #0x0] add r0, sp, #0x0 add sp, #0x20 strh r1, [r0, #0x4] lsl r0, r1, #0x1e lsr r0, r0, #0x1e lsl r0, r0, #0x18 lsr r0, r0, #0x18 bx lr _02018A10: ldr r0, _02018A5C ; =0x0400100E ldrh r1, [r0, #0x0] add r0, sp, #0x0 add sp, #0x20 strh r1, [r0, #0x2] lsl r0, r1, #0x1e lsr r0, r0, #0x1e lsl r0, r0, #0x18 lsr r0, r0, #0x18 bx lr _02018A24: ldr r0, _02018A5C ; =0x0400100E ldrh r1, [r0, #0x0] add r0, sp, #0x0 add sp, #0x20 strh r1, [r0, #0x0] lsl r0, r1, #0x1e lsr r0, r0, #0x1e lsl r0, r0, #0x18 lsr r0, r0, #0x18 bx lr _02018A38: mov r0, #0x0 add sp, #0x20 bx lr nop _02018A40: .word 0x04000008 _02018A44: .word 0x0400000A _02018A48: .word 0x0400000C _02018A4C: .word 0x0400000E _02018A50: .word 0x04001008 _02018A54: .word 0x0400100A _02018A58: .word 0x0400100C _02018A5C: .word 0x0400100E thumb_func_start FUN_02018A60 FUN_02018A60: ; 0x02018A60 push {r3-r7, lr} sub sp, #0x68 str r2, [sp, #0x8] str r3, [sp, #0xc] add r2, sp, #0x70 str r0, [sp, #0x0] ldrh r0, [r2, #0x10] str r1, [sp, #0x4] ldrh r2, [r2, #0x18] str r0, [sp, #0x10] add r0, r1, #0x0 ldrh r1, [r0, #0x4] ldr r0, [sp, #0x10] sub r3, r1, r0 cmp r3, r2 bge _02018A88 ldr r0, [sp, #0x8] add r0, r0, r3 str r0, [sp, #0x50] b _02018A8E _02018A88: ldr r0, [sp, #0x8] add r0, r2, r0 str r0, [sp, #0x50] _02018A8E: ldr r2, [sp, #0x4] add r3, sp, #0x70 ldrh r0, [r3, #0x14] ldrh r2, [r2, #0x6] ldrh r3, [r3, #0x1c] sub r4, r2, r0 cmp r4, r3 bge _02018AA6 ldr r2, [sp, #0xc] add r2, r2, r4 str r2, [sp, #0x4c] b _02018AAC _02018AA6: ldr r2, [sp, #0xc] add r2, r3, r2 str r2, [sp, #0x4c] _02018AAC: ldr r2, [sp, #0x0] mov r3, #0x7 ldrh r4, [r2, #0x4] add r2, r4, #0x0 and r2, r3 add r2, r4, r2 asr r2, r2, #0x3 str r2, [sp, #0x48] add r2, r1, #0x0 and r2, r3 add r1, r1, r2 asr r1, r1, #0x3 str r1, [sp, #0x44] add r1, sp, #0x70 ldrh r1, [r1, #0x20] ldr r2, _02018C98 ; =0x0000FFFF str r1, [sp, #0x38] cmp r1, r2 bne _02018BB4 ldr r2, [sp, #0xc] ldr r1, [sp, #0x4c] cmp r2, r1 bge _02018ADE cmp r2, r1 blt _02018AE0 _02018ADE: b _02018C92 _02018AE0: add r1, r2, #0x0 lsl r1, r1, #0x2 lsl r0, r0, #0x2 str r1, [sp, #0x28] str r0, [sp, #0x24] _02018AEA: ldr r3, [sp, #0x8] ldr r0, [sp, #0x50] add r1, r3, #0x0 ldr r4, [sp, #0x10] cmp r1, r0 bge _02018B96 cmp r1, r0 bge _02018B96 add r0, r3, #0x0 lsl r5, r0, #0x2 add r0, r4, #0x0 lsl r6, r0, #0x2 ldr r0, _02018C9C ; =0x00003FE0 ldr r1, [sp, #0x28] ldr r2, [sp, #0x48] and r1, r0 mul r2, r1 str r2, [sp, #0x20] ldr r2, [sp, #0x28] mov r1, #0x1c and r2, r1 str r2, [sp, #0x1c] ldr r2, [sp, #0x24] and r0, r2 ldr r2, [sp, #0x44] mul r2, r0 ldr r0, [sp, #0x24] str r2, [sp, #0x18] and r0, r1 str r0, [sp, #0x14] _02018B26: ldr r0, [sp, #0x4] asr r2, r4, #0x1 mov r1, #0x3 ldr r0, [r0, #0x0] and r1, r2 add r1, r0, r1 ldr r0, _02018C9C ; =0x00003FE0 and r0, r6 add r1, r1, r0 ldr r0, [sp, #0x18] add r6, r6, #0x4 add r0, r1, r0 str r0, [sp, #0x64] lsl r0, r4, #0x1f lsr r2, r0, #0x1d ldr r0, [sp, #0x0] asr r1, r3, #0x1 ldr r7, [r0, #0x0] mov r0, #0x3 and r0, r1 ldr r1, _02018C9C ; =0x00003FE0 add r4, r4, #0x1 and r1, r5 str r1, [sp, #0x54] add r1, r7, r0 ldr r0, [sp, #0x54] add r5, r5, #0x4 add r1, r0, r1 ldr r0, [sp, #0x20] add r1, r0, r1 ldr r0, [sp, #0x1c] ldrb r1, [r0, r1] lsl r0, r3, #0x1f lsr r0, r0, #0x1d asr r1, r0 mov r0, #0xf and r0, r1 add r7, r0, #0x0 ldr r1, [sp, #0x14] ldr r0, [sp, #0x64] lsl r7, r2 ldrb r0, [r0, r1] add r3, r3, #0x1 str r0, [sp, #0x58] mov r0, #0xf0 asr r0, r2 ldr r1, [sp, #0x58] add r2, r7, #0x0 and r0, r1 orr r2, r0 ldr r1, [sp, #0x14] ldr r0, [sp, #0x64] strb r2, [r0, r1] ldr r0, [sp, #0x50] cmp r3, r0 blt _02018B26 _02018B96: ldr r0, [sp, #0x28] add r0, r0, #0x4 str r0, [sp, #0x28] ldr r0, [sp, #0xc] add r0, r0, #0x1 str r0, [sp, #0xc] ldr r0, [sp, #0x24] ldr r1, [sp, #0xc] add r0, r0, #0x4 str r0, [sp, #0x24] ldr r0, [sp, #0x4c] cmp r1, r0 blt _02018AEA add sp, #0x68 pop {r3-r7, pc} _02018BB4: ldr r2, [sp, #0xc] ldr r1, [sp, #0x4c] cmp r2, r1 bge _02018C92 cmp r2, r1 bge _02018C92 add r1, r2, #0x0 lsl r1, r1, #0x2 lsl r0, r0, #0x2 str r1, [sp, #0x40] str r0, [sp, #0x3c] _02018BCA: ldr r3, [sp, #0x8] ldr r0, [sp, #0x50] add r1, r3, #0x0 ldr r4, [sp, #0x10] cmp r1, r0 bge _02018C78 cmp r1, r0 bge _02018C78 add r0, r3, #0x0 lsl r1, r0, #0x2 add r0, r4, #0x0 lsl r2, r0, #0x2 ldr r0, _02018C9C ; =0x00003FE0 ldr r5, [sp, #0x40] ldr r6, [sp, #0x48] and r5, r0 mul r6, r5 str r6, [sp, #0x34] ldr r6, [sp, #0x40] mov r5, #0x1c and r6, r5 str r6, [sp, #0x30] ldr r6, [sp, #0x3c] and r0, r6 ldr r6, [sp, #0x44] mul r6, r0 ldr r0, [sp, #0x3c] str r6, [sp, #0x2c] and r0, r5 str r0, [sp, #0x60] _02018C06: ldr r0, [sp, #0x4] asr r6, r4, #0x1 mov r5, #0x3 and r5, r6 ldr r0, [r0, #0x0] asr r6, r3, #0x1 add r5, r0, r5 ldr r0, _02018C9C ; =0x00003FE0 and r0, r2 add r5, r5, r0 ldr r0, [sp, #0x2c] add r5, r5, r0 ldr r0, [sp, #0x0] ldr r7, [r0, #0x0] mov r0, #0x3 and r0, r6 ldr r6, _02018C9C ; =0x00003FE0 and r6, r1 str r6, [sp, #0x5c] add r6, r7, r0 ldr r0, [sp, #0x5c] add r6, r0, r6 ldr r0, [sp, #0x34] add r6, r0, r6 ldr r0, [sp, #0x30] ldrb r6, [r0, r6] lsl r0, r3, #0x1f lsr r0, r0, #0x1d asr r6, r0 mov r0, #0xf and r0, r6 ldr r6, [sp, #0x38] cmp r0, r6 beq _02018C6A lsl r6, r4, #0x1f lsr r7, r6, #0x1d lsl r0, r7 mov lr, r0 ldr r0, [sp, #0x60] ldrb r0, [r5, r0] mov r12, r0 mov r0, #0xf0 add r6, r0, #0x0 asr r6, r7 mov r0, r12 and r0, r6 mov r6, lr orr r6, r0 ldr r0, [sp, #0x60] strb r6, [r5, r0] _02018C6A: ldr r0, [sp, #0x50] add r3, r3, #0x1 add r1, r1, #0x4 add r2, r2, #0x4 add r4, r4, #0x1 cmp r3, r0 blt _02018C06 _02018C78: ldr r0, [sp, #0x40] add r0, r0, #0x4 str r0, [sp, #0x40] ldr r0, [sp, #0xc] add r0, r0, #0x1 str r0, [sp, #0xc] ldr r0, [sp, #0x3c] ldr r1, [sp, #0xc] add r0, r0, #0x4 str r0, [sp, #0x3c] ldr r0, [sp, #0x4c] cmp r1, r0 blt _02018BCA _02018C92: add sp, #0x68 pop {r3-r7, pc} nop _02018C98: .word 0x0000FFFF _02018C9C: .word 0x00003FE0 thumb_func_start FUN_02018CA0 FUN_02018CA0: ; 0x02018CA0 push {r3-r7, lr} sub sp, #0x50 str r2, [sp, #0x8] str r3, [sp, #0xc] add r2, sp, #0x58 str r0, [sp, #0x0] ldrh r0, [r2, #0x10] str r1, [sp, #0x4] ldrh r2, [r2, #0x18] str r0, [sp, #0x10] add r0, r1, #0x0 ldrh r1, [r0, #0x4] ldr r0, [sp, #0x10] sub r3, r1, r0 cmp r3, r2 bge _02018CC6 ldr r0, [sp, #0x8] add r0, r0, r3 b _02018CCA _02018CC6: ldr r0, [sp, #0x8] add r0, r2, r0 _02018CCA: ldr r2, [sp, #0x4] add r3, sp, #0x58 mov r12, r0 ldrh r0, [r3, #0x14] ldrh r2, [r2, #0x6] ldrh r3, [r3, #0x1c] sub r4, r2, r0 cmp r4, r3 bge _02018CE2 ldr r2, [sp, #0xc] add r2, r2, r4 b _02018CE6 _02018CE2: ldr r2, [sp, #0xc] add r2, r3, r2 _02018CE6: mov lr, r2 ldr r2, [sp, #0x0] mov r3, #0x7 ldrh r4, [r2, #0x4] add r2, r4, #0x0 and r2, r3 add r2, r4, r2 asr r2, r2, #0x3 str r2, [sp, #0x4c] add r2, r1, #0x0 and r2, r3 add r1, r1, r2 asr r1, r1, #0x3 str r1, [sp, #0x48] add r1, sp, #0x58 ldrh r1, [r1, #0x20] ldr r2, _02018E80 ; =0x0000FFFF str r1, [sp, #0x3c] cmp r1, r2 bne _02018DC6 ldr r2, [sp, #0xc] mov r1, lr cmp r2, r1 bge _02018D1C mov r1, lr cmp r2, r1 blt _02018D1E _02018D1C: b _02018E7C _02018D1E: add r1, r2, #0x0 lsl r1, r1, #0x3 lsl r0, r0, #0x3 str r1, [sp, #0x28] str r0, [sp, #0x24] _02018D28: ldr r1, [sp, #0x8] mov r0, r12 add r2, r1, #0x0 ldr r7, [sp, #0x10] cmp r2, r0 bge _02018DA8 mov r0, r12 cmp r2, r0 bge _02018DA8 add r0, r1, #0x0 lsl r2, r0, #0x3 add r0, r7, #0x0 lsl r3, r0, #0x3 ldr r6, _02018E84 ; =0x00007FC0 ldr r0, [sp, #0x28] ldr r4, [sp, #0x4c] and r0, r6 mul r4, r0 str r4, [sp, #0x20] ldr r0, [sp, #0x28] mov r5, #0x38 and r0, r5 str r0, [sp, #0x1c] ldr r0, [sp, #0x24] ldr r4, [sp, #0x48] and r0, r6 mul r4, r0 ldr r0, [sp, #0x24] str r4, [sp, #0x18] and r0, r5 str r0, [sp, #0x14] _02018D66: ldr r0, [sp, #0x0] add r5, r1, #0x0 mov r4, #0x7 and r5, r4 ldr r0, [r0, #0x0] ldr r4, _02018E84 ; =0x00007FC0 add r0, r0, r5 and r4, r2 add r4, r4, r0 ldr r0, [sp, #0x20] add r5, r7, #0x0 add r4, r0, r4 ldr r0, [sp, #0x1c] add r1, r1, #0x1 ldrb r6, [r0, r4] ldr r0, [sp, #0x4] mov r4, #0x7 and r5, r4 ldr r0, [r0, #0x0] ldr r4, _02018E84 ; =0x00007FC0 add r0, r0, r5 and r4, r3 add r4, r4, r0 ldr r0, [sp, #0x18] add r2, #0x8 add r4, r0, r4 ldr r0, [sp, #0x14] add r3, #0x8 strb r6, [r0, r4] mov r0, r12 add r7, r7, #0x1 cmp r1, r0 blt _02018D66 _02018DA8: ldr r0, [sp, #0x28] add r0, #0x8 str r0, [sp, #0x28] ldr r0, [sp, #0xc] add r0, r0, #0x1 str r0, [sp, #0xc] ldr r0, [sp, #0x24] ldr r1, [sp, #0xc] add r0, #0x8 str r0, [sp, #0x24] mov r0, lr cmp r1, r0 blt _02018D28 add sp, #0x50 pop {r3-r7, pc} _02018DC6: ldr r2, [sp, #0xc] mov r1, lr cmp r2, r1 bge _02018E7C mov r1, lr cmp r2, r1 bge _02018E7C add r1, r2, #0x0 lsl r1, r1, #0x3 lsl r0, r0, #0x3 str r1, [sp, #0x44] str r0, [sp, #0x40] _02018DDE: ldr r2, [sp, #0x8] mov r0, r12 add r1, r2, #0x0 ldr r3, [sp, #0x10] cmp r1, r0 bge _02018E62 mov r0, r12 cmp r1, r0 bge _02018E62 add r0, r2, #0x0 lsl r6, r0, #0x3 add r0, r3, #0x0 lsl r1, r0, #0x3 ldr r7, _02018E84 ; =0x00007FC0 ldr r0, [sp, #0x44] ldr r4, [sp, #0x4c] and r0, r7 mul r4, r0 str r4, [sp, #0x38] ldr r0, [sp, #0x44] mov r5, #0x38 and r0, r5 str r0, [sp, #0x34] ldr r0, [sp, #0x40] ldr r4, [sp, #0x48] and r0, r7 mul r4, r0 ldr r0, [sp, #0x40] str r4, [sp, #0x30] and r0, r5 str r0, [sp, #0x2c] _02018E1C: ldr r0, [sp, #0x4] mov r4, #0x7 ldr r0, [r0, #0x0] and r4, r3 add r0, r0, r4 ldr r4, _02018E84 ; =0x00007FC0 add r5, r2, #0x0 and r4, r1 add r4, r0, r4 ldr r0, [sp, #0x30] add r7, r4, r0 ldr r0, [sp, #0x0] mov r4, #0x7 and r5, r4 ldr r0, [r0, #0x0] ldr r4, _02018E84 ; =0x00007FC0 add r0, r0, r5 and r4, r6 add r4, r4, r0 ldr r0, [sp, #0x38] add r4, r0, r4 ldr r0, [sp, #0x34] ldrb r0, [r0, r4] ldr r4, [sp, #0x3c] cmp r0, r4 beq _02018E54 ldr r4, [sp, #0x2c] strb r0, [r7, r4] _02018E54: add r2, r2, #0x1 mov r0, r12 add r6, #0x8 add r1, #0x8 add r3, r3, #0x1 cmp r2, r0 blt _02018E1C _02018E62: ldr r0, [sp, #0x44] add r0, #0x8 str r0, [sp, #0x44] ldr r0, [sp, #0xc] add r0, r0, #0x1 str r0, [sp, #0xc] ldr r0, [sp, #0x40] ldr r1, [sp, #0xc] add r0, #0x8 str r0, [sp, #0x40] mov r0, lr cmp r1, r0 blt _02018DDE _02018E7C: add sp, #0x50 pop {r3-r7, pc} .balign 4 _02018E80: .word 0x0000FFFF _02018E84: .word 0x00007FC0 thumb_func_start FUN_02018E88 FUN_02018E88: ; 0x02018E88 push {r4-r7, lr} sub sp, #0x14 str r1, [sp, #0x4] str r2, [sp, #0x8] str r0, [sp, #0x0] ldr r0, [sp, #0x2c] str r0, [sp, #0x2c] ldr r0, [sp, #0x4] add r6, r0, r3 ldr r0, [sp, #0x0] ldrh r0, [r0, #0x4] cmp r6, r0 ble _02018EA4 add r6, r0, #0x0 _02018EA4: add r1, sp, #0x18 ldrh r2, [r1, #0x10] ldr r1, [sp, #0x8] add r1, r1, r2 mov r12, r1 ldr r1, [sp, #0x0] ldrh r2, [r1, #0x6] mov r1, r12 cmp r1, r2 ble _02018EBA mov r12, r2 _02018EBA: mov r1, #0x7 and r1, r0 add r0, r0, r1 asr r0, r0, #0x3 mov lr, r0 ldr r1, [sp, #0x8] mov r0, r12 cmp r1, r0 bge _02018F44 add r0, r1, #0x0 lsl r0, r0, #0x2 str r0, [sp, #0xc] ldr r0, [sp, #0x2c] lsl r0, r0, #0x4 str r0, [sp, #0x10] _02018ED8: ldr r1, [sp, #0x4] add r0, r1, #0x0 cmp r0, r6 bge _02018F32 lsl r5, r0, #0x2 ldr r2, _02018F48 ; =0x00003FE0 ldr r0, [sp, #0xc] and r0, r2 add r7, r0, #0x0 mov r2, lr mul r7, r2 ldr r0, [sp, #0xc] mov r2, #0x1c and r2, r0 _02018EF4: ldr r0, [sp, #0x0] asr r3, r1, #0x1 ldr r4, [r0, #0x0] mov r0, #0x3 and r0, r3 ldr r3, _02018F48 ; =0x00003FE0 add r0, r4, r0 and r3, r5 add r0, r0, r3 add r0, r0, r7 mov r3, #0x1 tst r3, r1 ldrb r4, [r0, r2] beq _02018F1C mov r3, #0xf and r3, r4 strb r3, [r0, r2] ldrb r4, [r0, r2] ldr r3, [sp, #0x10] b _02018F26 _02018F1C: mov r3, #0xf0 and r3, r4 strb r3, [r0, r2] ldrb r4, [r0, r2] ldr r3, [sp, #0x2c] _02018F26: orr r3, r4 add r1, r1, #0x1 strb r3, [r0, r2] add r5, r5, #0x4 cmp r1, r6 blt _02018EF4 _02018F32: ldr r0, [sp, #0xc] add r0, r0, #0x4 str r0, [sp, #0xc] ldr r0, [sp, #0x8] add r1, r0, #0x1 mov r0, r12 str r1, [sp, #0x8] cmp r1, r0 blt _02018ED8 _02018F44: add sp, #0x14 pop {r4-r7, pc} .balign 4 _02018F48: .word 0x00003FE0 thumb_func_start FUN_02018F4C FUN_02018F4C: ; 0x02018F4C push {r4-r7, lr} sub sp, #0x14 str r1, [sp, #0x4] str r2, [sp, #0x8] str r0, [sp, #0x0] ldr r0, [sp, #0x2c] str r0, [sp, #0x2c] ldr r0, [sp, #0x4] add r5, r0, r3 ldr r0, [sp, #0x0] ldrh r0, [r0, #0x4] cmp r5, r0 ble _02018F68 add r5, r0, #0x0 _02018F68: add r1, sp, #0x18 ldrh r2, [r1, #0x10] ldr r1, [sp, #0x8] add r1, r1, r2 mov lr, r1 ldr r1, [sp, #0x0] ldrh r2, [r1, #0x6] mov r1, lr cmp r1, r2 ble _02018F7E mov lr, r2 _02018F7E: mov r1, #0x7 and r1, r0 add r0, r0, r1 asr r0, r0, #0x3 str r0, [sp, #0x10] ldr r1, [sp, #0x8] mov r0, lr cmp r1, r0 bge _02018FEA add r0, r1, #0x0 lsl r0, r0, #0x3 str r0, [sp, #0xc] ldr r0, [sp, #0x4] lsl r0, r0, #0x3 mov r12, r0 _02018F9C: ldr r2, [sp, #0x4] add r0, r2, #0x0 cmp r0, r5 bge _02018FD8 ldr r1, [sp, #0xc] ldr r0, _02018FF0 ; =0x00007FC0 mov r3, r12 and r0, r1 add r7, r0, #0x0 ldr r1, [sp, #0x10] mov r0, #0x38 mul r7, r1 ldr r1, [sp, #0xc] add r6, r1, #0x0 and r6, r0 _02018FBA: ldr r0, [sp, #0x0] ldr r4, _02018FF0 ; =0x00007FC0 ldr r1, [r0, #0x0] mov r0, #0x7 and r0, r2 and r4, r3 add r0, r1, r0 add r0, r4, r0 add r1, r7, r0 ldr r0, [sp, #0x2c] add r2, r2, #0x1 strb r0, [r6, r1] add r3, #0x8 cmp r2, r5 blt _02018FBA _02018FD8: ldr r0, [sp, #0xc] add r0, #0x8 str r0, [sp, #0xc] ldr r0, [sp, #0x8] add r1, r0, #0x1 mov r0, lr str r1, [sp, #0x8] cmp r1, r0 blt _02018F9C _02018FEA: add sp, #0x14 pop {r4-r7, pc} nop _02018FF0: .word 0x00007FC0 thumb_func_start FUN_02018FF4 FUN_02018FF4: ; 0x02018FF4 push {r4-r6, lr} add r5, r1, #0x0 lsl r1, r5, #0x4 bl FUN_02016998 add r6, r0, #0x0 mov r4, #0x0 cmp r5, #0x0 ble _02019018 _02019006: lsl r0, r4, #0x4 add r0, r6, r0 bl FUN_0201901C add r0, r4, #0x1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, r5 blt _02019006 _02019018: add r0, r6, #0x0 pop {r4-r6, pc} thumb_func_start FUN_0201901C FUN_0201901C: ; 0x0201901C mov r3, #0x0 str r3, [r0, #0x0] mov r1, #0xff strb r1, [r0, #0x4] strb r3, [r0, #0x5] strb r3, [r0, #0x6] strb r3, [r0, #0x7] strb r3, [r0, #0x8] strb r3, [r0, #0x9] ldrh r2, [r0, #0xa] ldr r1, _02019044 ; =0xFFFF8000 and r2, r1 strh r2, [r0, #0xa] str r3, [r0, #0xc] ldrh r2, [r0, #0xa] sub r1, r1, #0x1 and r1, r2 strh r1, [r0, #0xa] bx lr nop _02019044: .word 0xFFFF8000 thumb_func_start FUN_02019048 FUN_02019048: ; 0x02019048 ldr r1, [r0, #0x0] cmp r1, #0x0 beq _0201905A ldrb r1, [r0, #0x4] cmp r1, #0xff beq _0201905A ldr r0, [r0, #0xc] cmp r0, #0x0 bne _0201905E _0201905A: mov r0, #0x0 bx lr _0201905E: mov r0, #0x1 bx lr .balign 4 thumb_func_start FUN_02019064 FUN_02019064: ; 0x02019064 push {r3-r7, lr} add r6, r2, #0x0 add r5, r0, #0x0 mov r0, #0x2c add r7, r6, #0x0 mul r7, r0 add r4, r1, #0x0 str r3, [sp, #0x0] add r1, r5, r7 ldr r0, [r1, #0x8] cmp r0, #0x0 beq _020190E0 add r3, sp, #0x8 ldrb r2, [r1, #0x1f] ldrb r1, [r3, #0x14] ldrb r3, [r3, #0x18] ldr r0, [r5, #0x0] mul r3, r1 add r1, r2, #0x0 mul r1, r3 bl FUN_02016998 add r1, r0, #0x0 beq _020190E0 str r5, [r4, #0x0] strb r6, [r4, #0x4] ldr r0, [sp, #0x0] add r3, sp, #0x8 strb r0, [r4, #0x5] ldrb r0, [r3, #0x10] ldr r2, _020190E4 ; =0xFFFF8000 strb r0, [r4, #0x6] ldrb r0, [r3, #0x14] strb r0, [r4, #0x7] ldrb r0, [r3, #0x18] strb r0, [r4, #0x8] ldrb r0, [r3, #0x1c] strb r0, [r4, #0x9] ldrh r0, [r4, #0xa] ldrh r3, [r3, #0x20] and r0, r2 lsr r2, r2, #0x11 and r2, r3 orr r0, r2 strh r0, [r4, #0xa] str r1, [r4, #0xc] add r0, r5, r7 ldrb r0, [r0, #0x1e] cmp r0, #0x0 bne _020190CC mov r2, #0x0 b _020190CE _020190CC: mov r2, #0x1 _020190CE: ldrh r1, [r4, #0xa] ldr r0, _020190E8 ; =0xFFFF7FFF and r1, r0 lsl r0, r2, #0x10 lsr r0, r0, #0x10 lsl r0, r0, #0x1f lsr r0, r0, #0x10 orr r0, r1 strh r0, [r4, #0xa] _020190E0: pop {r3-r7, pc} nop _020190E4: .word 0xFFFF8000 _020190E8: .word 0xFFFF7FFF thumb_func_start FUN_020190EC FUN_020190EC: ; 0x020190EC push {r3-r7, lr} sub sp, #0x8 str r3, [sp, #0x0] add r5, r0, #0x0 ldr r0, [sp, #0x24] add r6, r2, #0x0 str r0, [sp, #0x24] ldr r0, [sp, #0x0] add r4, r1, #0x0 mul r0, r6 lsl r0, r0, #0x5 str r0, [sp, #0x4] ldr r0, [r5, #0x0] ldr r1, [sp, #0x4] bl FUN_02016998 ldr r1, [sp, #0x24] add r7, r0, #0x0 lsl r2, r1, #0x4 orr r1, r2 lsl r1, r1, #0x18 ldr r2, [sp, #0x4] lsr r1, r1, #0x18 blx FUN_020DF4A4 cmp r7, #0x0 beq _02019148 str r5, [r4, #0x0] strb r6, [r4, #0x7] ldr r0, [sp, #0x0] strb r0, [r4, #0x8] ldrh r1, [r4, #0xa] ldr r0, _0201914C ; =0xFFFF8000 add r3, r1, #0x0 add r1, sp, #0x10 ldrh r2, [r1, #0x10] lsr r1, r0, #0x11 and r3, r0 and r1, r2 orr r1, r3 strh r1, [r4, #0xa] str r7, [r4, #0xc] ldrh r1, [r4, #0xa] sub r0, r0, #0x1 and r0, r1 strh r0, [r4, #0xa] _02019148: add sp, #0x8 pop {r3-r7, pc} .balign 4 _0201914C: .word 0xFFFF8000 thumb_func_start FUN_02019150 FUN_02019150: ; 0x02019150 push {lr} sub sp, #0x14 add r3, r2, #0x0 ldrb r2, [r3, #0x2] str r2, [sp, #0x0] ldrb r2, [r3, #0x3] str r2, [sp, #0x4] ldrb r2, [r3, #0x4] str r2, [sp, #0x8] ldrb r2, [r3, #0x5] str r2, [sp, #0xc] ldrh r2, [r3, #0x6] str r2, [sp, #0x10] ldrb r2, [r3, #0x0] ldrb r3, [r3, #0x1] bl FUN_02019064 add sp, #0x14 pop {pc} .balign 4 thumb_func_start FUN_02019178 FUN_02019178: ; 0x02019178 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_02016A18 mov r2, #0x0 str r2, [r4, #0x0] mov r0, #0xff strb r0, [r4, #0x4] strb r2, [r4, #0x5] strb r2, [r4, #0x6] strb r2, [r4, #0x7] strb r2, [r4, #0x8] strb r2, [r4, #0x9] ldrh r1, [r4, #0xa] ldr r0, _020191A0 ; =0xFFFF8000 and r0, r1 strh r0, [r4, #0xa] str r2, [r4, #0xc] pop {r4, pc} .balign 4 _020191A0: .word 0xFFFF8000 thumb_func_start FUN_020191A4 FUN_020191A4: ; 0x020191A4 push {r4-r6, lr} add r6, r1, #0x0 add r5, r0, #0x0 mov r4, #0x0 cmp r6, #0x0 ble _020191C8 _020191B0: lsl r0, r4, #0x4 add r0, r5, r0 ldr r0, [r0, #0xc] cmp r0, #0x0 beq _020191BE bl FUN_02016A18 _020191BE: add r0, r4, #0x1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, r6 blt _020191B0 _020191C8: add r0, r5, #0x0 bl FUN_02016A18 pop {r4-r6, pc} thumb_func_start FUN_020191D0 FUN_020191D0: ; 0x020191D0 push {r4, lr} add r4, r0, #0x0 bne _020191DA bl ErrorHandling _020191DA: ldr r0, [r4, #0x0] cmp r0, #0x0 bne _020191E4 bl ErrorHandling _020191E4: ldrb r0, [r4, #0x4] cmp r0, #0x8 blo _020191EE bl ErrorHandling _020191EE: ldrb r1, [r4, #0x4] mov r0, #0x2c ldr r2, [r4, #0x0] mul r0, r1 add r0, r2, r0 ldrb r0, [r0, #0x1c] cmp r0, #0x3 blo _02019202 bl ErrorHandling _02019202: ldrb r2, [r4, #0x4] mov r1, #0x2c ldr r3, [r4, #0x0] mul r1, r2 add r1, r3, r1 ldrb r1, [r1, #0x1c] add r0, r4, #0x0 lsl r2, r1, #0x2 ldr r1, _0201921C ; =0x020EDB68 ldr r1, [r1, r2] blx r1 pop {r4, pc} nop _0201921C: .word 0x020EDB68 thumb_func_start FUN_02019220 FUN_02019220: ; 0x02019220 push {r4, lr} add r4, r0, #0x0 bne _0201922A bl ErrorHandling _0201922A: ldr r0, [r4, #0x0] cmp r0, #0x0 bne _02019234 bl ErrorHandling _02019234: ldrb r0, [r4, #0x4] cmp r0, #0x8 blo _0201923E bl ErrorHandling _0201923E: ldrb r1, [r4, #0x4] mov r0, #0x2c ldr r2, [r4, #0x0] mul r0, r1 add r0, r2, r0 ldrb r0, [r0, #0x1c] cmp r0, #0x3 blo _02019252 bl ErrorHandling _02019252: ldrb r2, [r4, #0x4] mov r1, #0x2c ldr r3, [r4, #0x0] mul r1, r2 add r1, r3, r1 ldrb r1, [r1, #0x1c] add r0, r4, #0x0 lsl r2, r1, #0x2 ldr r1, _0201926C ; =0x020EDB5C ldr r1, [r1, r2] blx r1 pop {r4, pc} nop _0201926C: .word 0x020EDB5C thumb_func_start FUN_02019270 FUN_02019270: ; 0x02019270 push {r3, lr} ldrb r2, [r0, #0x4] mov r1, #0x2c ldr r3, [r0, #0x0] mul r1, r2 add r1, r3, r1 ldrb r1, [r1, #0x1c] lsl r2, r1, #0x2 ldr r1, _02019288 ; =0x020EDB38 ldr r1, [r1, r2] blx r1 pop {r3, pc} .balign 4 _02019288: .word 0x020EDB38 thumb_func_start FUN_0201928C FUN_0201928C: ; 0x0201928C push {r4-r6, lr} add r5, r0, #0x0 ldrb r6, [r5, #0x7] ldrb r4, [r5, #0x8] strb r1, [r5, #0x7] strb r2, [r5, #0x8] ldrb r3, [r5, #0x4] mov r2, #0x2c ldr r1, [r5, #0x0] mul r2, r3 add r1, r1, r2 ldrb r1, [r1, #0x1c] lsl r2, r1, #0x2 ldr r1, _020192B4 ; =0x020EDB38 ldr r1, [r1, r2] blx r1 strb r6, [r5, #0x7] strb r4, [r5, #0x8] pop {r4-r6, pc} nop _020192B4: .word 0x020EDB38 thumb_func_start FUN_020192B8 FUN_020192B8: ; 0x020192B8 push {r3, lr} ldrb r2, [r0, #0x4] mov r1, #0x2c ldr r3, [r0, #0x0] mul r1, r2 add r1, r3, r1 ldrb r1, [r1, #0x1c] lsl r2, r1, #0x2 ldr r1, _020192D0 ; =0x020EDB74 ldr r1, [r1, r2] blx r1 pop {r3, pc} .balign 4 _020192D0: .word 0x020EDB74 thumb_func_start FUN_020192D4 FUN_020192D4: ; 0x020192D4 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 ldrb r1, [r5, #0x4] mov r0, #0x2c ldr r2, [r5, #0x0] mul r0, r1 add r0, r2, r0 ldr r0, [r0, #0x8] str r0, [sp, #0x4] cmp r0, #0x0 beq _02019354 ldrh r0, [r5, #0xa] ldrb r1, [r5, #0x5] lsl r0, r0, #0x11 lsr r3, r0, #0x11 ldrb r0, [r5, #0x7] add r7, r1, r0 ldrb r0, [r5, #0x6] ldrb r1, [r5, #0x8] mov r12, r0 add r0, r0, r1 mov r1, r12 mov lr, r0 cmp r1, r0 bhs _02019354 _02019308: ldrb r2, [r5, #0x5] cmp r2, r7 bhs _02019348 mov r0, r12 lsl r0, r0, #0x1b lsr r0, r0, #0x16 lsl r1, r0, #0x1 ldr r0, [sp, #0x4] add r0, r0, r1 mov r1, r12 str r0, [sp, #0x0] mov r0, #0x20 add r6, r1, #0x0 and r6, r0 _02019324: ldrb r0, [r5, #0x9] mov r4, #0x20 add r1, r3, #0x0 lsl r0, r0, #0xc and r4, r2 orr r1, r0 mov r0, #0x1f add r4, r6, r4 and r0, r2 lsl r4, r4, #0x5 add r0, r0, r4 lsl r4, r0, #0x1 ldr r0, [sp, #0x0] add r2, r2, #0x1 strh r1, [r0, r4] add r3, r3, #0x1 cmp r2, r7 blo _02019324 _02019348: mov r0, r12 add r1, r0, #0x1 mov r0, lr mov r12, r1 cmp r1, r0 blo _02019308 _02019354: add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_02019358 FUN_02019358: ; 0x02019358 push {r4-r7} ldrb r3, [r0, #0x4] mov r1, #0x2c add r2, r3, #0x0 mul r2, r1 ldr r1, [r0, #0x0] add r1, r1, r2 ldr r3, [r1, #0x8] cmp r3, #0x0 beq _020193AC ldrb r2, [r1, #0x1d] ldr r1, _020193B0 ; =0x020EDB30 ldrb r6, [r1, r2] ldrb r1, [r0, #0x6] add r2, r1, #0x0 mul r2, r6 add r2, r3, r2 ldrb r1, [r0, #0x5] mov r3, #0x0 add r4, r2, r1 ldrh r1, [r0, #0xa] lsl r1, r1, #0x11 lsr r5, r1, #0x11 ldrb r1, [r0, #0x8] cmp r1, #0x0 ble _020193AC add r1, r3, #0x0 _0201938E: ldrb r7, [r0, #0x7] add r2, r1, #0x0 cmp r7, #0x0 ble _020193A2 _02019396: strb r5, [r4, r2] ldrb r7, [r0, #0x7] add r2, r2, #0x1 add r5, r5, #0x1 cmp r2, r7 blt _02019396 _020193A2: ldrb r2, [r0, #0x8] add r3, r3, #0x1 add r4, r4, r6 cmp r3, r2 blt _0201938E _020193AC: pop {r4-r7} bx lr .balign 4 _020193B0: .word 0x020EDB30 thumb_func_start FUN_020193B4 FUN_020193B4: ; 0x020193B4 push {r4-r7, lr} sub sp, #0xc ldrb r2, [r0, #0x4] str r0, [sp, #0x0] mov r0, #0x2c add r1, r2, #0x0 mul r1, r0 ldr r0, [sp, #0x0] ldr r0, [r0, #0x0] add r1, r0, r1 ldr r0, [r1, #0x8] str r0, [sp, #0x4] cmp r0, #0x0 beq _0201943C ldrb r1, [r1, #0x1d] ldr r0, _02019440 ; =0x020EDB30 ldrb r0, [r0, r1] str r0, [sp, #0x8] ldr r0, [sp, #0x0] ldrb r1, [r0, #0x5] ldrb r0, [r0, #0x7] add r2, r1, r0 ldr r0, [sp, #0x0] ldrb r0, [r0, #0x6] mov r12, r0 ldr r0, [sp, #0x0] ldrb r1, [r0, #0x8] mov r0, r12 add r0, r0, r1 mov r1, r12 mov lr, r0 cmp r1, r0 bhs _0201943C mov r6, #0x0 mov r7, #0x20 _020193FA: ldr r0, [sp, #0x0] ldrb r1, [r0, #0x5] cmp r1, r2 bhs _02019430 mov r3, r12 mov r0, #0x1f and r3, r0 ldr r0, [sp, #0x8] mul r0, r3 lsl r3, r0, #0x1 ldr r0, [sp, #0x4] add r5, r0, r3 mov r3, r12 mov r0, #0x20 and r3, r0 _02019418: add r4, r1, #0x0 and r4, r7 mov r0, #0x1f add r4, r3, r4 and r0, r1 lsl r4, r4, #0x5 add r0, r0, r4 lsl r0, r0, #0x1 add r1, r1, #0x1 strh r6, [r5, r0] cmp r1, r2 blo _02019418 _02019430: mov r0, r12 add r1, r0, #0x1 mov r0, lr mov r12, r1 cmp r1, r0 blo _020193FA _0201943C: add sp, #0xc pop {r4-r7, pc} .balign 4 _02019440: .word 0x020EDB30 thumb_func_start FUN_02019444 FUN_02019444: ; 0x02019444 push {r4-r7} ldrb r3, [r0, #0x4] mov r1, #0x2c add r2, r3, #0x0 mul r2, r1 ldr r1, [r0, #0x0] add r1, r1, r2 ldr r3, [r1, #0x8] cmp r3, #0x0 beq _02019492 ldrb r2, [r1, #0x1d] ldr r1, _02019498 ; =0x020EDB30 mov r4, #0x0 ldrb r6, [r1, r2] ldrb r1, [r0, #0x6] add r2, r1, #0x0 mul r2, r6 ldrb r1, [r0, #0x5] add r2, r3, r2 add r5, r2, r1 ldrb r1, [r0, #0x8] cmp r1, #0x0 ble _02019492 add r1, r4, #0x0 add r2, r4, #0x0 _02019476: ldrb r7, [r0, #0x7] add r3, r2, #0x0 cmp r7, #0x0 ble _02019488 _0201947E: strb r1, [r5, r3] ldrb r7, [r0, #0x7] add r3, r3, #0x1 cmp r3, r7 blt _0201947E _02019488: ldrb r3, [r0, #0x8] add r4, r4, #0x1 add r5, r5, r6 cmp r4, r3 blt _02019476 _02019492: pop {r4-r7} bx lr nop _02019498: .word 0x020EDB30 thumb_func_start FUN_0201949C FUN_0201949C: ; 0x0201949C push {r3-r4, lr} sub sp, #0x4 add r4, r0, #0x0 bl FUN_020192D4 add r0, r4, #0x0 bl FUN_02019548 ldrb r1, [r4, #0x4] mov r0, #0x2c add r2, r1, #0x0 mul r2, r0 ldr r0, [r4, #0x0] add r3, r0, r2 ldr r2, [r3, #0x10] str r2, [sp, #0x0] ldr r2, [r3, #0x8] ldr r3, [r3, #0xc] bl FUN_02017CE8 add sp, #0x4 pop {r3-r4, pc} thumb_func_start FUN_020194C8 FUN_020194C8: ; 0x020194C8 push {r4, lr} add r4, r0, #0x0 bl FUN_020192D4 ldrb r1, [r4, #0x4] ldr r0, [r4, #0x0] bl FUN_0201AC68 add r0, r4, #0x0 bl FUN_02019548 pop {r4, pc} thumb_func_start FUN_020194E0 FUN_020194E0: ; 0x020194E0 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02019358 ldrb r1, [r4, #0x4] mov r0, #0x2c add r2, r1, #0x0 mul r2, r0 ldr r0, [r4, #0x0] add r3, r0, r2 ldr r2, [r3, #0x10] str r2, [sp, #0x0] ldr r2, [r3, #0x8] ldr r3, [r3, #0xc] bl FUN_02017CE8 ldrh r0, [r4, #0xa] lsl r0, r0, #0x11 lsr r0, r0, #0x11 str r0, [sp, #0x0] ldrb r5, [r4, #0x7] ldrb r3, [r4, #0x8] ldrb r1, [r4, #0x4] ldr r0, [r4, #0x0] mul r3, r5 ldr r2, [r4, #0xc] lsl r3, r3, #0x6 bl FUN_02017E14 pop {r3-r5, pc} thumb_func_start FUN_0201951C FUN_0201951C: ; 0x0201951C push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02019358 ldrb r1, [r4, #0x4] ldr r0, [r4, #0x0] bl FUN_0201AC68 ldrh r0, [r4, #0xa] lsl r0, r0, #0x11 lsr r0, r0, #0x11 str r0, [sp, #0x0] ldrb r5, [r4, #0x7] ldrb r3, [r4, #0x8] ldrb r1, [r4, #0x4] ldr r0, [r4, #0x0] mul r3, r5 ldr r2, [r4, #0xc] lsl r3, r3, #0x6 bl FUN_02017E14 pop {r3-r5, pc} thumb_func_start FUN_02019548 FUN_02019548: ; 0x02019548 push {r3-r5, lr} add r3, r0, #0x0 ldrh r2, [r3, #0xa] ldrb r1, [r3, #0x4] mov r4, #0x2c lsl r2, r2, #0x11 ldr r0, [r3, #0x0] lsr r2, r2, #0x11 str r2, [sp, #0x0] mul r4, r1 add r4, r0, r4 ldr r2, [r3, #0xc] ldrb r5, [r3, #0x7] ldrb r3, [r3, #0x8] ldrb r4, [r4, #0x1f] mul r3, r5 mul r3, r4 bl FUN_02017E14 pop {r3-r5, pc} thumb_func_start FUN_02019570 FUN_02019570: ; 0x02019570 push {r3, lr} ldrb r2, [r0, #0x4] mov r1, #0x2c ldr r3, [r0, #0x0] mul r1, r2 add r1, r3, r1 ldrb r1, [r1, #0x1c] lsl r2, r1, #0x2 ldr r1, _02019588 ; =0x020EDB50 ldr r1, [r1, r2] blx r1 pop {r3, pc} .balign 4 _02019588: .word 0x020EDB50 thumb_func_start FUN_0201958C FUN_0201958C: ; 0x0201958C push {r3, lr} ldrb r2, [r0, #0x4] mov r1, #0x2c ldr r3, [r0, #0x0] mul r1, r2 add r1, r3, r1 ldrb r1, [r1, #0x1c] lsl r2, r1, #0x2 ldr r1, _020195A4 ; =0x020EDB44 ldr r1, [r1, r2] blx r1 pop {r3, pc} .balign 4 _020195A4: .word 0x020EDB44 thumb_func_start FUN_020195A8 FUN_020195A8: ; 0x020195A8 push {r3-r4, lr} sub sp, #0x4 add r4, r0, #0x0 bl FUN_020193B4 ldrb r1, [r4, #0x4] mov r0, #0x2c add r2, r1, #0x0 mul r2, r0 ldr r0, [r4, #0x0] add r3, r0, r2 ldr r2, [r3, #0x10] str r2, [sp, #0x0] ldr r2, [r3, #0x8] ldr r3, [r3, #0xc] bl FUN_02017CE8 add sp, #0x4 pop {r3-r4, pc} .balign 4 thumb_func_start FUN_020195D0 FUN_020195D0: ; 0x020195D0 push {r4, lr} add r4, r0, #0x0 bl FUN_020193B4 ldrb r1, [r4, #0x4] ldr r0, [r4, #0x0] bl FUN_0201AC68 pop {r4, pc} .balign 4 thumb_func_start FUN_020195E4 FUN_020195E4: ; 0x020195E4 push {r3-r4, lr} sub sp, #0x4 add r4, r0, #0x0 bl FUN_02019444 ldrb r1, [r4, #0x4] mov r0, #0x2c add r2, r1, #0x0 mul r2, r0 ldr r0, [r4, #0x0] add r3, r0, r2 ldr r2, [r3, #0x10] str r2, [sp, #0x0] ldr r2, [r3, #0x8] ldr r3, [r3, #0xc] bl FUN_02017CE8 add sp, #0x4 pop {r3-r4, pc} .balign 4 thumb_func_start FUN_0201960C FUN_0201960C: ; 0x0201960C push {r4, lr} add r4, r0, #0x0 bl FUN_02019444 ldrb r1, [r4, #0x4] ldr r0, [r4, #0x0] bl FUN_0201AC68 pop {r4, pc} .balign 4 thumb_func_start FUN_02019620 FUN_02019620: ; 0x02019620 push {r3-r5, lr} add r4, r0, #0x0 ldrb r2, [r4, #0x4] mov r0, #0x2c ldr r3, [r4, #0x0] mul r0, r2 add r0, r3, r0 ldrb r2, [r0, #0x1f] cmp r2, #0x20 bne _0201963C lsl r0, r1, #0x4 orr r0, r1 lsl r0, r0, #0x18 lsr r1, r0, #0x18 _0201963C: lsl r3, r1, #0x18 lsl r0, r1, #0x10 orr r0, r3 lsl r5, r1, #0x8 orr r0, r5 orr r0, r1 ldr r1, [r4, #0xc] ldrb r3, [r4, #0x8] ldrb r4, [r4, #0x7] mul r2, r4 mul r2, r3 blx MIi_CpuClearFast pop {r3-r5, pc} thumb_func_start FUN_02019658 FUN_02019658: ; 0x02019658 push {r4-r5, lr} sub sp, #0x1c add r4, sp, #0x18 ldrh r5, [r4, #0x10] str r5, [sp, #0x0] ldrh r5, [r4, #0x14] str r5, [sp, #0x4] ldrh r5, [r4, #0x18] str r5, [sp, #0x8] ldrh r5, [r4, #0x1c] str r5, [sp, #0xc] ldrh r5, [r4, #0x20] str r5, [sp, #0x10] ldrh r4, [r4, #0x24] str r4, [sp, #0x14] mov r4, #0x0 str r4, [sp, #0x18] bl FUN_02019684 add sp, #0x1c pop {r4-r5, pc} .balign 4 thumb_func_start FUN_02019684 FUN_02019684: ; 0x02019684 push {r4-r5, lr} sub sp, #0x24 str r1, [sp, #0x1c] add r4, sp, #0x20 ldrh r5, [r4, #0x10] add r1, sp, #0x14 strh r5, [r1, #0xc] ldrh r5, [r4, #0x14] strh r5, [r1, #0xe] ldr r5, [r0, #0xc] str r5, [sp, #0x14] ldrb r5, [r0, #0x7] lsl r5, r5, #0x3 strh r5, [r1, #0x4] ldrb r5, [r0, #0x8] lsl r5, r5, #0x3 strh r5, [r1, #0x6] ldrb r5, [r0, #0x4] ldr r1, [r0, #0x0] mov r0, #0x2c mul r0, r5 add r0, r1, r0 ldrb r0, [r0, #0x1e] add r1, sp, #0x14 cmp r0, #0x0 ldrh r0, [r4, #0x18] bne _020196D6 str r0, [sp, #0x0] ldrh r0, [r4, #0x1c] str r0, [sp, #0x4] ldrh r0, [r4, #0x20] str r0, [sp, #0x8] ldrh r0, [r4, #0x24] str r0, [sp, #0xc] ldrh r0, [r4, #0x28] str r0, [sp, #0x10] add r0, sp, #0x1c bl FUN_02018A60 add sp, #0x24 pop {r4-r5, pc} _020196D6: str r0, [sp, #0x0] ldrh r0, [r4, #0x1c] str r0, [sp, #0x4] ldrh r0, [r4, #0x20] str r0, [sp, #0x8] ldrh r0, [r4, #0x24] str r0, [sp, #0xc] ldrh r0, [r4, #0x28] str r0, [sp, #0x10] add r0, sp, #0x1c bl FUN_02018CA0 add sp, #0x24 pop {r4-r5, pc} .balign 4 thumb_func_start FUN_020196F4 FUN_020196F4: ; 0x020196F4 push {r3-r5, lr} sub sp, #0x10 add r5, r1, #0x0 ldr r1, [r0, #0xc] add r4, r2, #0x0 str r1, [sp, #0x8] ldrb r1, [r0, #0x7] add r2, r3, #0x0 lsl r3, r1, #0x3 add r1, sp, #0x8 strh r3, [r1, #0x4] ldrb r3, [r0, #0x8] lsl r3, r3, #0x3 strh r3, [r1, #0x6] ldrb r3, [r0, #0x4] ldr r1, [r0, #0x0] mov r0, #0x2c mul r0, r3 add r0, r1, r0 ldrb r0, [r0, #0x1e] add r3, sp, #0x10 cmp r0, #0x0 bne _02019736 ldrh r0, [r3, #0x14] add r1, r4, #0x0 str r0, [sp, #0x0] str r5, [sp, #0x4] ldrh r3, [r3, #0x10] add r0, sp, #0x8 bl FUN_02018E88 add sp, #0x10 pop {r3-r5, pc} _02019736: ldrh r0, [r3, #0x14] add r1, r4, #0x0 str r0, [sp, #0x0] str r5, [sp, #0x4] ldrh r3, [r3, #0x10] add r0, sp, #0x8 bl FUN_02018F4C add sp, #0x10 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0201974C FUN_0201974C: ; 0x0201974C push {r4-r7, lr} sub sp, #0x1fc sub sp, #0x118 add r5, r0, #0x0 ldr r0, [sp, #0x330] str r1, [sp, #0x0] str r0, [sp, #0x330] add r1, sp, #0x318 ldrh r1, [r1, #0x10] ldr r0, [r5, #0xc] str r1, [sp, #0x5c] ldrb r1, [r5, #0x7] str r0, [sp, #0x278] ldrb r0, [r5, #0x8] lsl r1, r1, #0x13 lsr r4, r1, #0x10 ldr r1, [sp, #0x5c] lsl r0, r0, #0x13 sub r1, r4, r1 lsr r0, r0, #0x10 str r4, [sp, #0x58] str r1, [sp, #0x8] cmp r1, r2 blt _0201977E str r2, [sp, #0x8] _0201977E: add r1, sp, #0x318 ldrh r1, [r1, #0x14] sub r0, r0, r1 str r1, [sp, #0x48] str r0, [sp, #0x4] cmp r0, r3 blt _0201978E str r3, [sp, #0x4] _0201978E: ldr r0, [sp, #0x8] mov r4, #0x0 cmp r0, #0x8 ble _0201979E mov r0, #0x1 orr r0, r4 lsl r0, r0, #0x18 lsr r4, r0, #0x18 _0201979E: ldr r0, [sp, #0x4] cmp r0, #0x8 ble _020197AC mov r0, #0x2 orr r0, r4 lsl r0, r0, #0x18 lsr r4, r0, #0x18 _020197AC: ldrh r0, [r5, #0xa] lsl r0, r0, #0x10 lsr r0, r0, #0x1f beq _020197B8 bl FUN_0201A12C _020197B8: cmp r4, #0x3 bls _020197C0 bl FUN_0201A8BC _020197C0: add r0, r4, r4 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _020197CC: ; jump table (using 16-bit offset) .short _020197D4 - _020197CC - 2; case 0 .short _020198D6 - _020197CC - 2; case 1 .short _02019AE6 - _020197CC - 2; case 2 .short _02019D06 - _020197CC - 2; case 3 _020197D4: ldr r0, [sp, #0x330] lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x70] mov r0, #0x0 str r0, [sp, #0x274] ldr r0, [sp, #0x4] cmp r0, #0x0 bgt _020197EA bl FUN_0201A8BC _020197EA: ldr r0, [sp, #0x58] mov r1, #0x7 and r1, r0 add r0, r0, r1 asr r0, r0, #0x3 str r0, [sp, #0x6c] _020197F6: ldr r0, [sp, #0x0] ldr r1, [sp, #0x70] ldr r0, [r0, #0x0] ldr r2, [sp, #0x5c] str r0, [sp, #0x26c] ldr r0, [sp, #0x274] asr r1, r0 mov r0, #0x1 and r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x270] ldr r0, [sp, #0x8] mov r1, #0x0 cmp r0, #0x0 ble _020198AA ble _020198AA add r0, r2, #0x0 lsl r3, r0, #0x2 ldr r0, [sp, #0x48] ldr r6, [sp, #0x6c] lsl r5, r0, #0x2 ldr r0, _02019B68 ; =0x00003FE0 add r7, r5, #0x0 and r0, r5 mul r6, r0 mov r0, #0x1c and r7, r0 ldr r0, [sp, #0x48] str r6, [sp, #0x68] add r0, r0, #0x1 lsl r6, r0, #0x2 ldr r0, _02019B68 ; =0x00003FE0 ldr r5, [sp, #0x6c] and r0, r6 mul r5, r0 mov r0, #0x1c and r0, r6 add r4, r1, #0x0 str r5, [sp, #0x64] str r0, [sp, #0x60] _02019848: asr r5, r2, #0x1 mov r0, #0x3 and r5, r0 ldr r0, [sp, #0x278] add r0, r0, r5 ldr r5, _02019B68 ; =0x00003FE0 and r5, r3 add r5, r0, r5 ldr r0, [sp, #0x68] str r5, [sp, #0x27c] add r0, r5, r0 ldr r5, [sp, #0x26c] add r6, r5, #0x0 lsr r6, r4 mov r5, #0xf and r5, r6 lsl r5, r5, #0x18 lsr r5, r5, #0x18 beq _0201989C lsl r6, r2, #0x1f lsr r6, r6, #0x1d lsl r5, r6 str r5, [sp, #0x280] ldrb r5, [r0, r7] str r5, [sp, #0x284] mov r5, #0xf0 asr r5, r6 ldr r6, [sp, #0x284] and r6, r5 ldr r5, [sp, #0x280] orr r5, r6 lsl r5, r5, #0x18 lsr r5, r5, #0x18 strb r5, [r0, r7] ldr r0, [sp, #0x270] cmp r0, #0x0 beq _0201989C ldr r6, [sp, #0x27c] ldr r0, [sp, #0x64] add r6, r6, r0 ldr r0, [sp, #0x60] strb r5, [r0, r6] _0201989C: ldr r0, [sp, #0x8] add r1, r1, #0x1 add r4, r4, #0x4 add r3, r3, #0x4 add r2, r2, #0x1 cmp r1, r0 blt _02019848 _020198AA: ldr r0, [sp, #0x270] cmp r0, #0x0 beq _020198B8 ldr r0, [sp, #0x48] add r0, r0, #0x2 str r0, [sp, #0x48] b _020198BE _020198B8: ldr r0, [sp, #0x48] add r0, r0, #0x1 str r0, [sp, #0x48] _020198BE: ldr r0, [sp, #0x0] add r0, r0, #0x4 str r0, [sp, #0x0] ldr r0, [sp, #0x274] add r1, r0, #0x1 ldr r0, [sp, #0x4] str r1, [sp, #0x274] cmp r1, r0 blt _020197F6 add sp, #0x1fc add sp, #0x118 pop {r4-r7, pc} _020198D6: ldr r0, [sp, #0x0] str r0, [sp, #0x25c] ldr r0, [sp, #0x48] str r0, [sp, #0x264] ldr r0, [sp, #0x330] lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x54] lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x84] mov r0, #0x0 str r0, [sp, #0x268] ldr r0, [sp, #0x4] cmp r0, #0x0 ble _020199D2 ldr r0, [sp, #0x58] mov r1, #0x7 and r1, r0 add r0, r0, r1 asr r0, r0, #0x3 str r0, [sp, #0x80] _02019902: ldr r0, [sp, #0x25c] ldr r1, [sp, #0x84] ldr r0, [r0, #0x0] ldr r2, [sp, #0x5c] str r0, [sp, #0x258] ldr r0, [sp, #0x268] ldr r6, [sp, #0x80] asr r1, r0 mov r0, #0x1 and r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x260] add r0, r2, #0x0 lsl r3, r0, #0x2 ldr r0, [sp, #0x264] mov r1, #0x0 lsl r5, r0, #0x2 ldr r0, _02019B68 ; =0x00003FE0 add r7, r5, #0x0 and r0, r5 mul r6, r0 mov r0, #0x1c and r7, r0 ldr r0, [sp, #0x264] str r6, [sp, #0x7c] add r0, r0, #0x1 lsl r6, r0, #0x2 ldr r0, _02019B68 ; =0x00003FE0 ldr r5, [sp, #0x80] and r0, r6 mul r5, r0 mov r0, #0x1c and r0, r6 add r4, r1, #0x0 str r5, [sp, #0x78] str r0, [sp, #0x74] _0201994C: asr r5, r2, #0x1 mov r0, #0x3 and r5, r0 ldr r0, [sp, #0x278] add r0, r0, r5 ldr r5, _02019B68 ; =0x00003FE0 and r5, r3 add r5, r0, r5 ldr r0, [sp, #0x7c] str r5, [sp, #0x288] add r0, r5, r0 ldr r5, [sp, #0x258] add r6, r5, #0x0 lsr r6, r4 mov r5, #0xf and r5, r6 lsl r5, r5, #0x18 lsr r5, r5, #0x18 beq _020199A0 lsl r6, r2, #0x1f lsr r6, r6, #0x1d lsl r5, r6 str r5, [sp, #0x28c] ldrb r5, [r0, r7] str r5, [sp, #0x290] mov r5, #0xf0 asr r5, r6 ldr r6, [sp, #0x290] and r6, r5 ldr r5, [sp, #0x28c] orr r5, r6 lsl r5, r5, #0x18 lsr r5, r5, #0x18 strb r5, [r0, r7] ldr r0, [sp, #0x260] cmp r0, #0x0 beq _020199A0 ldr r6, [sp, #0x288] ldr r0, [sp, #0x78] add r6, r6, r0 ldr r0, [sp, #0x74] strb r5, [r0, r6] _020199A0: add r1, r1, #0x1 add r4, r4, #0x4 add r3, r3, #0x4 add r2, r2, #0x1 cmp r1, #0x8 blt _0201994C ldr r0, [sp, #0x260] cmp r0, #0x0 beq _020199BA ldr r0, [sp, #0x264] add r0, r0, #0x2 str r0, [sp, #0x264] b _020199C0 _020199BA: ldr r0, [sp, #0x264] add r0, r0, #0x1 str r0, [sp, #0x264] _020199C0: ldr r0, [sp, #0x25c] add r0, r0, #0x4 str r0, [sp, #0x25c] ldr r0, [sp, #0x268] add r1, r0, #0x1 ldr r0, [sp, #0x4] str r1, [sp, #0x268] cmp r1, r0 blt _02019902 _020199D2: ldr r0, [sp, #0x0] add r0, #0x20 str r0, [sp, #0x0] ldr r0, [sp, #0x54] lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x98] mov r0, #0x0 str r0, [sp, #0x254] ldr r0, [sp, #0x4] cmp r0, #0x0 bgt _020199EE bl FUN_0201A8BC _020199EE: ldr r0, [sp, #0x5c] mov r1, #0x7 add r0, #0x8 str r0, [sp, #0x5c] ldr r0, [sp, #0x58] and r1, r0 add r0, r0, r1 asr r0, r0, #0x3 str r0, [sp, #0x94] _02019A00: ldr r0, [sp, #0x0] ldr r1, [sp, #0x98] ldr r0, [r0, #0x0] ldr r2, [sp, #0x5c] str r0, [sp, #0x24c] ldr r0, [sp, #0x254] asr r1, r0 mov r0, #0x1 and r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x250] ldr r0, [sp, #0x8] mov r1, #0x0 str r0, [sp, #0x294] sub r0, #0x8 str r0, [sp, #0x294] cmp r0, #0x0 ble _02019ABA ble _02019ABA add r0, r2, #0x0 lsl r3, r0, #0x2 ldr r0, [sp, #0x48] ldr r6, [sp, #0x94] lsl r5, r0, #0x2 ldr r0, _02019B68 ; =0x00003FE0 add r7, r5, #0x0 and r0, r5 mul r6, r0 mov r0, #0x1c and r7, r0 ldr r0, [sp, #0x48] str r6, [sp, #0x90] add r0, r0, #0x1 lsl r6, r0, #0x2 ldr r0, _02019B68 ; =0x00003FE0 ldr r5, [sp, #0x94] and r0, r6 mul r5, r0 mov r0, #0x1c and r0, r6 add r4, r1, #0x0 str r5, [sp, #0x8c] str r0, [sp, #0x88] _02019A58: asr r5, r2, #0x1 mov r0, #0x3 and r5, r0 ldr r0, [sp, #0x278] add r0, r0, r5 ldr r5, _02019B68 ; =0x00003FE0 and r5, r3 add r5, r0, r5 ldr r0, [sp, #0x90] str r5, [sp, #0x298] add r0, r5, r0 ldr r5, [sp, #0x24c] add r6, r5, #0x0 lsr r6, r4 mov r5, #0xf and r5, r6 lsl r5, r5, #0x18 lsr r5, r5, #0x18 beq _02019AAC lsl r6, r2, #0x1f lsr r6, r6, #0x1d lsl r5, r6 str r5, [sp, #0x29c] ldrb r5, [r0, r7] str r5, [sp, #0x2a0] mov r5, #0xf0 asr r5, r6 ldr r6, [sp, #0x2a0] and r6, r5 ldr r5, [sp, #0x29c] orr r5, r6 lsl r5, r5, #0x18 lsr r5, r5, #0x18 strb r5, [r0, r7] ldr r0, [sp, #0x250] cmp r0, #0x0 beq _02019AAC ldr r6, [sp, #0x298] ldr r0, [sp, #0x8c] add r6, r6, r0 ldr r0, [sp, #0x88] strb r5, [r0, r6] _02019AAC: ldr r0, [sp, #0x294] add r1, r1, #0x1 add r4, r4, #0x4 add r3, r3, #0x4 add r2, r2, #0x1 cmp r1, r0 blt _02019A58 _02019ABA: ldr r0, [sp, #0x250] cmp r0, #0x0 beq _02019AC8 ldr r0, [sp, #0x48] add r0, r0, #0x2 str r0, [sp, #0x48] b _02019ACE _02019AC8: ldr r0, [sp, #0x48] add r0, r0, #0x1 str r0, [sp, #0x48] _02019ACE: ldr r0, [sp, #0x0] add r0, r0, #0x4 str r0, [sp, #0x0] ldr r0, [sp, #0x254] add r1, r0, #0x1 ldr r0, [sp, #0x4] str r1, [sp, #0x254] cmp r1, r0 blt _02019A00 add sp, #0x1fc add sp, #0x118 pop {r4-r7, pc} _02019AE6: ldr r0, [sp, #0x0] mov r1, #0x7 str r0, [sp, #0x23c] ldr r0, [sp, #0x48] str r0, [sp, #0x244] mov r0, #0x0 str r0, [sp, #0x248] ldr r0, [sp, #0x330] lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0xa8] ldr r0, [sp, #0x58] and r1, r0 add r0, r0, r1 asr r0, r0, #0x3 str r0, [sp, #0x40] _02019B06: ldr r0, [sp, #0x23c] ldr r1, [sp, #0xa8] ldr r0, [r0, #0x0] ldr r2, [sp, #0x5c] str r0, [sp, #0x238] ldr r0, [sp, #0x248] asr r1, r0 mov r0, #0x1 and r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x240] ldr r0, [sp, #0x8] mov r1, #0x0 cmp r0, #0x0 ble _02019BC2 ble _02019BC2 add r0, r2, #0x0 lsl r3, r0, #0x2 ldr r0, [sp, #0x244] ldr r6, [sp, #0x40] lsl r5, r0, #0x2 ldr r0, _02019B68 ; =0x00003FE0 add r7, r5, #0x0 and r0, r5 mul r6, r0 mov r0, #0x1c and r7, r0 ldr r0, [sp, #0x244] str r6, [sp, #0xa4] add r0, r0, #0x1 lsl r6, r0, #0x2 ldr r0, _02019B68 ; =0x00003FE0 ldr r5, [sp, #0x40] and r0, r6 mul r5, r0 mov r0, #0x1c and r0, r6 add r4, r1, #0x0 str r5, [sp, #0xa0] str r0, [sp, #0x9c] _02019B58: asr r5, r2, #0x1 mov r0, #0x3 and r5, r0 ldr r0, [sp, #0x278] add r0, r0, r5 ldr r5, _02019B68 ; =0x00003FE0 b _02019B6C nop _02019B68: .word 0x00003FE0 _02019B6C: and r5, r3 add r5, r0, r5 ldr r0, [sp, #0xa4] str r5, [sp, #0x2a4] add r0, r5, r0 ldr r5, [sp, #0x238] add r6, r5, #0x0 lsr r6, r4 mov r5, #0xf and r5, r6 lsl r5, r5, #0x18 lsr r5, r5, #0x18 beq _02019BB4 lsl r6, r2, #0x1f lsr r6, r6, #0x1d lsl r5, r6 str r5, [sp, #0x2a8] ldrb r5, [r0, r7] str r5, [sp, #0x2ac] mov r5, #0xf0 asr r5, r6 ldr r6, [sp, #0x2ac] and r6, r5 ldr r5, [sp, #0x2a8] orr r5, r6 lsl r5, r5, #0x18 lsr r5, r5, #0x18 strb r5, [r0, r7] ldr r0, [sp, #0x240] cmp r0, #0x0 beq _02019BB4 ldr r6, [sp, #0x2a4] ldr r0, [sp, #0xa0] add r6, r6, r0 ldr r0, [sp, #0x9c] strb r5, [r0, r6] _02019BB4: ldr r0, [sp, #0x8] add r1, r1, #0x1 add r4, r4, #0x4 add r3, r3, #0x4 add r2, r2, #0x1 cmp r1, r0 blt _02019B58 _02019BC2: ldr r0, [sp, #0x240] cmp r0, #0x0 beq _02019BD0 ldr r0, [sp, #0x244] add r0, r0, #0x2 str r0, [sp, #0x244] b _02019BD6 _02019BD0: ldr r0, [sp, #0x244] add r0, r0, #0x1 str r0, [sp, #0x244] _02019BD6: ldr r0, [sp, #0x23c] add r0, r0, #0x4 str r0, [sp, #0x23c] ldr r0, [sp, #0x248] add r0, r0, #0x1 str r0, [sp, #0x248] cmp r0, #0x8 blt _02019B06 ldr r0, [sp, #0x0] mov r2, #0x0 add r0, #0x40 str r0, [sp, #0x0] ldr r0, [sp, #0x48] mov r1, #0x1 add r0, #0x8 str r0, [sp, #0x48] _02019BF6: ldr r0, [sp, #0x330] asr r0, r2 tst r0, r1 beq _02019C04 ldr r0, [sp, #0x48] add r0, r0, #0x1 str r0, [sp, #0x48] _02019C04: add r2, r2, #0x1 cmp r2, #0x8 blt _02019BF6 ldr r0, [sp, #0x330] asr r0, r0, #0x8 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0xb8] mov r0, #0x0 str r0, [sp, #0x20] ldr r0, [sp, #0x4] sub r0, #0x8 cmp r0, #0x0 bgt _02019C24 bl FUN_0201A8BC _02019C24: ldr r0, [sp, #0x0] ldr r1, [sp, #0xb8] ldr r0, [r0, #0x0] ldr r2, [sp, #0x5c] str r0, [sp, #0x230] ldr r0, [sp, #0x20] asr r1, r0 mov r0, #0x1 and r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x234] ldr r0, [sp, #0x8] mov r1, #0x0 cmp r0, #0x0 ble _02019CD8 ble _02019CD8 add r0, r2, #0x0 lsl r3, r0, #0x2 ldr r0, [sp, #0x48] ldr r6, [sp, #0x40] lsl r5, r0, #0x2 ldr r0, _02019F88 ; =0x00003FE0 add r7, r5, #0x0 and r0, r5 mul r6, r0 mov r0, #0x1c and r7, r0 ldr r0, [sp, #0x48] str r6, [sp, #0xb4] add r0, r0, #0x1 lsl r6, r0, #0x2 ldr r0, _02019F88 ; =0x00003FE0 ldr r5, [sp, #0x40] and r0, r6 mul r5, r0 mov r0, #0x1c and r0, r6 add r4, r1, #0x0 str r5, [sp, #0xb0] str r0, [sp, #0xac] _02019C76: asr r5, r2, #0x1 mov r0, #0x3 and r5, r0 ldr r0, [sp, #0x278] add r0, r0, r5 ldr r5, _02019F88 ; =0x00003FE0 and r5, r3 add r5, r0, r5 ldr r0, [sp, #0xb4] str r5, [sp, #0x2b0] add r0, r5, r0 ldr r5, [sp, #0x230] add r6, r5, #0x0 lsr r6, r4 mov r5, #0xf and r5, r6 lsl r5, r5, #0x18 lsr r5, r5, #0x18 beq _02019CCA lsl r6, r2, #0x1f lsr r6, r6, #0x1d lsl r5, r6 str r5, [sp, #0x2b4] ldrb r5, [r0, r7] str r5, [sp, #0x2b8] mov r5, #0xf0 asr r5, r6 ldr r6, [sp, #0x2b8] and r6, r5 ldr r5, [sp, #0x2b4] orr r5, r6 lsl r5, r5, #0x18 lsr r5, r5, #0x18 strb r5, [r0, r7] ldr r0, [sp, #0x234] cmp r0, #0x0 beq _02019CCA ldr r6, [sp, #0x2b0] ldr r0, [sp, #0xb0] add r6, r6, r0 ldr r0, [sp, #0xac] strb r5, [r0, r6] _02019CCA: ldr r0, [sp, #0x8] add r1, r1, #0x1 add r4, r4, #0x4 add r3, r3, #0x4 add r2, r2, #0x1 cmp r1, r0 blt _02019C76 _02019CD8: ldr r0, [sp, #0x234] cmp r0, #0x0 beq _02019CE6 ldr r0, [sp, #0x48] add r0, r0, #0x2 str r0, [sp, #0x48] b _02019CEC _02019CE6: ldr r0, [sp, #0x48] add r0, r0, #0x1 str r0, [sp, #0x48] _02019CEC: ldr r0, [sp, #0x0] ldr r1, [sp, #0x4] add r0, r0, #0x4 str r0, [sp, #0x0] ldr r0, [sp, #0x20] sub r1, #0x8 add r0, r0, #0x1 str r0, [sp, #0x20] cmp r0, r1 blt _02019C24 add sp, #0x1fc add sp, #0x118 pop {r4-r7, pc} _02019D06: ldr r0, [sp, #0x0] str r0, [sp, #0x220] ldr r0, [sp, #0x48] str r0, [sp, #0x228] ldr r0, [sp, #0x330] lsl r0, r0, #0x18 lsr r1, r0, #0x18 mov r0, #0x0 str r0, [sp, #0x22c] lsl r0, r1, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x3c] ldr r0, [sp, #0x58] mov r1, #0x7 and r1, r0 add r0, r0, r1 asr r0, r0, #0x3 str r0, [sp, #0x38] _02019D2A: ldr r0, [sp, #0x220] ldr r1, [sp, #0x3c] ldr r0, [r0, #0x0] ldr r2, [sp, #0x5c] str r0, [sp, #0x21c] ldr r0, [sp, #0x22c] ldr r6, [sp, #0x38] asr r1, r0 mov r0, #0x1 and r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x224] add r0, r2, #0x0 lsl r3, r0, #0x2 ldr r0, [sp, #0x228] mov r1, #0x0 lsl r5, r0, #0x2 ldr r0, _02019F88 ; =0x00003FE0 add r7, r5, #0x0 and r0, r5 mul r6, r0 mov r0, #0x1c and r7, r0 ldr r0, [sp, #0x228] str r6, [sp, #0xc4] add r0, r0, #0x1 lsl r6, r0, #0x2 ldr r0, _02019F88 ; =0x00003FE0 ldr r5, [sp, #0x38] and r0, r6 mul r5, r0 mov r0, #0x1c and r0, r6 str r3, [sp, #0x34] add r4, r1, #0x0 str r5, [sp, #0xc0] str r0, [sp, #0xbc] _02019D76: asr r5, r2, #0x1 mov r0, #0x3 and r5, r0 ldr r0, [sp, #0x278] add r0, r0, r5 ldr r5, _02019F88 ; =0x00003FE0 and r5, r3 add r5, r0, r5 ldr r0, [sp, #0xc4] str r5, [sp, #0x2bc] add r0, r5, r0 ldr r5, [sp, #0x21c] add r6, r5, #0x0 lsr r6, r4 mov r5, #0xf and r5, r6 lsl r5, r5, #0x18 lsr r5, r5, #0x18 beq _02019DCA lsl r6, r2, #0x1f lsr r6, r6, #0x1d lsl r5, r6 str r5, [sp, #0x2c0] ldrb r5, [r0, r7] str r5, [sp, #0x2c4] mov r5, #0xf0 asr r5, r6 ldr r6, [sp, #0x2c4] and r6, r5 ldr r5, [sp, #0x2c0] orr r5, r6 lsl r5, r5, #0x18 lsr r5, r5, #0x18 strb r5, [r0, r7] ldr r0, [sp, #0x224] cmp r0, #0x0 beq _02019DCA ldr r6, [sp, #0x2bc] ldr r0, [sp, #0xc0] add r6, r6, r0 ldr r0, [sp, #0xbc] strb r5, [r0, r6] _02019DCA: add r1, r1, #0x1 add r4, r4, #0x4 add r3, r3, #0x4 add r2, r2, #0x1 cmp r1, #0x8 blt _02019D76 ldr r0, [sp, #0x224] cmp r0, #0x0 beq _02019DE4 ldr r0, [sp, #0x228] add r0, r0, #0x2 str r0, [sp, #0x228] b _02019DEA _02019DE4: ldr r0, [sp, #0x228] add r0, r0, #0x1 str r0, [sp, #0x228] _02019DEA: ldr r0, [sp, #0x220] add r0, r0, #0x4 str r0, [sp, #0x220] ldr r0, [sp, #0x22c] add r0, r0, #0x1 str r0, [sp, #0x22c] cmp r0, #0x8 blt _02019D2A ldr r0, [sp, #0x0] str r0, [sp, #0x20c] add r0, #0x20 str r0, [sp, #0x20c] ldr r0, [sp, #0x48] str r0, [sp, #0x214] mov r0, #0x0 str r0, [sp, #0x218] ldr r0, [sp, #0x5c] str r0, [sp, #0xd4] add r0, #0x8 str r0, [sp, #0xd4] _02019E12: ldr r0, [sp, #0x20c] ldr r1, [sp, #0x3c] ldr r0, [r0, #0x0] ldr r2, [sp, #0xd4] str r0, [sp, #0x208] ldr r0, [sp, #0x218] asr r1, r0 mov r0, #0x1 and r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x210] ldr r0, [sp, #0x8] mov r1, #0x0 str r0, [sp, #0x2c8] sub r0, #0x8 str r0, [sp, #0x2c8] cmp r0, #0x0 ble _02019ECC ble _02019ECC add r0, r2, #0x0 lsl r3, r0, #0x2 ldr r0, [sp, #0x214] ldr r6, [sp, #0x38] lsl r5, r0, #0x2 ldr r0, _02019F88 ; =0x00003FE0 add r7, r5, #0x0 and r0, r5 mul r6, r0 mov r0, #0x1c and r7, r0 ldr r0, [sp, #0x214] str r6, [sp, #0xd0] add r0, r0, #0x1 lsl r6, r0, #0x2 ldr r0, _02019F88 ; =0x00003FE0 ldr r5, [sp, #0x38] and r0, r6 mul r5, r0 mov r0, #0x1c and r0, r6 add r4, r1, #0x0 str r5, [sp, #0xcc] str r0, [sp, #0xc8] _02019E6A: asr r5, r2, #0x1 mov r0, #0x3 and r5, r0 ldr r0, [sp, #0x278] add r0, r0, r5 ldr r5, _02019F88 ; =0x00003FE0 and r5, r3 add r5, r0, r5 ldr r0, [sp, #0xd0] str r5, [sp, #0x2cc] add r0, r5, r0 ldr r5, [sp, #0x208] add r6, r5, #0x0 lsr r6, r4 mov r5, #0xf and r5, r6 lsl r5, r5, #0x18 lsr r5, r5, #0x18 beq _02019EBE lsl r6, r2, #0x1f lsr r6, r6, #0x1d lsl r5, r6 str r5, [sp, #0x2d0] ldrb r5, [r0, r7] str r5, [sp, #0x2d4] mov r5, #0xf0 asr r5, r6 ldr r6, [sp, #0x2d4] and r6, r5 ldr r5, [sp, #0x2d0] orr r5, r6 lsl r5, r5, #0x18 lsr r5, r5, #0x18 strb r5, [r0, r7] ldr r0, [sp, #0x210] cmp r0, #0x0 beq _02019EBE ldr r6, [sp, #0x2cc] ldr r0, [sp, #0xcc] add r6, r6, r0 ldr r0, [sp, #0xc8] strb r5, [r0, r6] _02019EBE: ldr r0, [sp, #0x2c8] add r1, r1, #0x1 add r4, r4, #0x4 add r3, r3, #0x4 add r2, r2, #0x1 cmp r1, r0 blt _02019E6A _02019ECC: ldr r0, [sp, #0x210] cmp r0, #0x0 beq _02019EDA ldr r0, [sp, #0x214] add r0, r0, #0x2 str r0, [sp, #0x214] b _02019EE0 _02019EDA: ldr r0, [sp, #0x214] add r0, r0, #0x1 str r0, [sp, #0x214] _02019EE0: ldr r0, [sp, #0x20c] add r0, r0, #0x4 str r0, [sp, #0x20c] ldr r0, [sp, #0x218] add r0, r0, #0x1 str r0, [sp, #0x218] cmp r0, #0x8 blt _02019E12 ldr r0, [sp, #0x0] mov r2, #0x0 str r0, [sp, #0x1fc] add r0, #0x40 str r0, [sp, #0x1fc] ldr r0, [sp, #0x48] mov r1, #0x1 add r0, #0x8 str r0, [sp, #0x48] str r0, [sp, #0x204] _02019F04: ldr r0, [sp, #0x330] asr r0, r2 tst r0, r1 beq _02019F12 ldr r0, [sp, #0x204] add r0, r0, #0x1 str r0, [sp, #0x204] _02019F12: add r2, r2, #0x1 cmp r2, #0x8 blt _02019F04 ldr r0, [sp, #0x330] asr r0, r0, #0x8 str r0, [sp, #0x50] lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0xe4] mov r0, #0x0 str r0, [sp, #0x1c] ldr r0, [sp, #0x4] sub r0, #0x8 cmp r0, #0x0 ble _0201A008 _02019F30: ldr r0, [sp, #0x1fc] ldr r1, [sp, #0xe4] ldr r0, [r0, #0x0] ldr r6, [sp, #0x38] str r0, [sp, #0x1f8] ldr r0, [sp, #0x1c] ldr r2, [sp, #0x5c] asr r1, r0 mov r0, #0x1 and r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x200] ldr r0, [sp, #0x204] mov r1, #0x0 lsl r5, r0, #0x2 ldr r0, _02019F88 ; =0x00003FE0 add r7, r5, #0x0 and r0, r5 mul r6, r0 mov r0, #0x1c and r7, r0 ldr r0, [sp, #0x204] str r6, [sp, #0xe0] add r0, r0, #0x1 lsl r6, r0, #0x2 ldr r0, _02019F88 ; =0x00003FE0 ldr r5, [sp, #0x38] and r0, r6 mul r5, r0 mov r0, #0x1c and r0, r6 ldr r3, [sp, #0x34] add r4, r1, #0x0 str r5, [sp, #0xdc] str r0, [sp, #0xd8] _02019F78: asr r5, r2, #0x1 mov r0, #0x3 and r5, r0 ldr r0, [sp, #0x278] add r0, r0, r5 ldr r5, _02019F88 ; =0x00003FE0 b _02019F8C nop _02019F88: .word 0x00003FE0 _02019F8C: and r5, r3 add r5, r0, r5 ldr r0, [sp, #0xe0] str r5, [sp, #0x2d8] add r0, r5, r0 ldr r5, [sp, #0x1f8] add r6, r5, #0x0 lsr r6, r4 mov r5, #0xf and r5, r6 lsl r5, r5, #0x18 lsr r5, r5, #0x18 beq _02019FD4 lsl r6, r2, #0x1f lsr r6, r6, #0x1d lsl r5, r6 str r5, [sp, #0x2dc] ldrb r5, [r0, r7] str r5, [sp, #0x2e0] mov r5, #0xf0 asr r5, r6 ldr r6, [sp, #0x2e0] and r6, r5 ldr r5, [sp, #0x2dc] orr r5, r6 lsl r5, r5, #0x18 lsr r5, r5, #0x18 strb r5, [r0, r7] ldr r0, [sp, #0x200] cmp r0, #0x0 beq _02019FD4 ldr r6, [sp, #0x2d8] ldr r0, [sp, #0xdc] add r6, r6, r0 ldr r0, [sp, #0xd8] strb r5, [r0, r6] _02019FD4: add r1, r1, #0x1 add r4, r4, #0x4 add r3, r3, #0x4 add r2, r2, #0x1 cmp r1, #0x8 blt _02019F78 ldr r0, [sp, #0x200] cmp r0, #0x0 beq _02019FEE ldr r0, [sp, #0x204] add r0, r0, #0x2 str r0, [sp, #0x204] b _02019FF4 _02019FEE: ldr r0, [sp, #0x204] add r0, r0, #0x1 str r0, [sp, #0x204] _02019FF4: ldr r0, [sp, #0x1fc] ldr r1, [sp, #0x4] add r0, r0, #0x4 str r0, [sp, #0x1fc] ldr r0, [sp, #0x1c] sub r1, #0x8 add r0, r0, #0x1 str r0, [sp, #0x1c] cmp r0, r1 blt _02019F30 _0201A008: ldr r0, [sp, #0x0] mov r2, #0x0 add r0, #0x60 str r0, [sp, #0x0] mov r1, #0x1 _0201A012: ldr r0, [sp, #0x330] asr r0, r2 tst r0, r1 beq _0201A020 ldr r0, [sp, #0x48] add r0, r0, #0x1 str r0, [sp, #0x48] _0201A020: add r2, r2, #0x1 cmp r2, #0x8 blt _0201A012 ldr r0, [sp, #0x50] lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0xf4] mov r0, #0x0 str r0, [sp, #0x18] ldr r0, [sp, #0x4] sub r0, #0x8 cmp r0, #0x0 bgt _0201A03E bl FUN_0201A8BC _0201A03E: ldr r0, [sp, #0x5c] add r0, #0x8 str r0, [sp, #0x5c] _0201A044: ldr r0, [sp, #0x0] ldr r1, [sp, #0xf4] ldr r0, [r0, #0x0] ldr r2, [sp, #0x5c] str r0, [sp, #0x1f0] ldr r0, [sp, #0x18] asr r1, r0 mov r0, #0x1 and r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x1f4] ldr r0, [sp, #0x8] mov r1, #0x0 str r0, [sp, #0x2e4] sub r0, #0x8 str r0, [sp, #0x2e4] cmp r0, #0x0 ble _0201A0FE ble _0201A0FE add r0, r2, #0x0 lsl r3, r0, #0x2 ldr r0, [sp, #0x48] ldr r6, [sp, #0x38] lsl r5, r0, #0x2 ldr r0, _0201A3A8 ; =0x00003FE0 add r7, r5, #0x0 and r0, r5 mul r6, r0 mov r0, #0x1c and r7, r0 ldr r0, [sp, #0x48] str r6, [sp, #0xf0] add r0, r0, #0x1 lsl r6, r0, #0x2 ldr r0, _0201A3A8 ; =0x00003FE0 ldr r5, [sp, #0x38] and r0, r6 mul r5, r0 mov r0, #0x1c and r0, r6 add r4, r1, #0x0 str r5, [sp, #0xec] str r0, [sp, #0xe8] _0201A09C: asr r5, r2, #0x1 mov r0, #0x3 and r5, r0 ldr r0, [sp, #0x278] add r0, r0, r5 ldr r5, _0201A3A8 ; =0x00003FE0 and r5, r3 add r5, r0, r5 ldr r0, [sp, #0xf0] str r5, [sp, #0x2e8] add r0, r5, r0 ldr r5, [sp, #0x1f0] add r6, r5, #0x0 lsr r6, r4 mov r5, #0xf and r5, r6 lsl r5, r5, #0x18 lsr r5, r5, #0x18 beq _0201A0F0 lsl r6, r2, #0x1f lsr r6, r6, #0x1d lsl r5, r6 str r5, [sp, #0x2ec] ldrb r5, [r0, r7] mov r12, r5 mov r5, #0xf0 asr r5, r6 mov r6, r12 and r6, r5 ldr r5, [sp, #0x2ec] orr r5, r6 lsl r5, r5, #0x18 lsr r5, r5, #0x18 strb r5, [r0, r7] ldr r0, [sp, #0x1f4] cmp r0, #0x0 beq _0201A0F0 ldr r6, [sp, #0x2e8] ldr r0, [sp, #0xec] add r6, r6, r0 ldr r0, [sp, #0xe8] strb r5, [r0, r6] _0201A0F0: ldr r0, [sp, #0x2e4] add r1, r1, #0x1 add r4, r4, #0x4 add r3, r3, #0x4 add r2, r2, #0x1 cmp r1, r0 blt _0201A09C _0201A0FE: ldr r0, [sp, #0x1f4] cmp r0, #0x0 beq _0201A10C ldr r0, [sp, #0x48] add r0, r0, #0x2 str r0, [sp, #0x48] b _0201A112 _0201A10C: ldr r0, [sp, #0x48] add r0, r0, #0x1 str r0, [sp, #0x48] _0201A112: ldr r0, [sp, #0x0] ldr r1, [sp, #0x4] add r0, r0, #0x4 str r0, [sp, #0x0] ldr r0, [sp, #0x18] sub r1, #0x8 add r0, r0, #0x1 str r0, [sp, #0x18] cmp r0, r1 blt _0201A044 add sp, #0x1fc add sp, #0x118 pop {r4-r7, pc} thumb_func_start FUN_0201A12C FUN_0201A12C: ; 0x0201A12C lsl r1, r2, #0x2 mul r1, r3 ldr r3, [r5, #0x0] ldrb r2, [r5, #0x9] ldr r0, [sp, #0x0] ldr r3, [r3, #0x0] lsl r1, r1, #0x3 bl FUN_02018848 str r0, [sp, #0x1ec] cmp r4, #0x3 bhi _0201A21E add r0, r4, r4 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0201A150: ; jump table (using 16-bit offset) .short _0201A158 - _0201A150 - 2; case 0 .short _0201A220 - _0201A150 - 2; case 1 .short _0201A3CA - _0201A150 - 2; case 2 .short _0201A56E - _0201A150 - 2; case 3 _0201A158: ldr r0, [sp, #0x330] ldr r7, [sp, #0x1ec] lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x10c] mov r0, #0x0 str r0, [sp, #0x1e8] ldr r0, [sp, #0x4] cmp r0, #0x0 ble _0201A21E ldr r0, [sp, #0x58] mov r1, #0x7 and r1, r0 add r0, r0, r1 asr r0, r0, #0x3 str r0, [sp, #0x108] _0201A178: ldr r1, [sp, #0x10c] ldr r0, [sp, #0x1e8] mov r4, #0x0 asr r1, r0 mov r0, #0x1 and r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x310] ldr r0, [sp, #0x8] ldr r5, [sp, #0x5c] cmp r0, #0x0 ble _0201A1FC ble _0201A1FC add r0, r5, #0x0 lsl r6, r0, #0x3 ldr r0, [sp, #0x48] ldr r2, [sp, #0x108] lsl r1, r0, #0x3 ldr r0, _0201A3AC ; =0x00007FC0 mov r3, #0x38 and r0, r1 mul r2, r0 add r0, r1, #0x0 and r0, r3 str r0, [sp, #0x100] ldr r0, [sp, #0x48] str r2, [sp, #0x104] add r0, r0, #0x1 lsl r1, r0, #0x3 ldr r0, _0201A3AC ; =0x00007FC0 ldr r2, [sp, #0x108] and r0, r1 mul r2, r0 add r0, r1, #0x0 and r0, r3 str r2, [sp, #0xfc] str r0, [sp, #0xf8] _0201A1C4: mov r0, #0x7 add r1, r5, #0x0 and r1, r0 ldr r0, [sp, #0x278] add r1, r0, r1 ldr r0, _0201A3AC ; =0x00007FC0 and r0, r6 add r3, r1, r0 ldr r0, [sp, #0x104] ldrb r1, [r7, r4] add r2, r3, r0 cmp r1, #0x0 beq _0201A1F0 ldr r0, [sp, #0x100] strb r1, [r2, r0] ldr r0, [sp, #0x310] cmp r0, #0x0 beq _0201A1F0 ldr r0, [sp, #0xfc] add r2, r3, r0 ldr r0, [sp, #0xf8] strb r1, [r0, r2] _0201A1F0: ldr r0, [sp, #0x8] add r4, r4, #0x1 add r6, #0x8 add r5, r5, #0x1 cmp r4, r0 blt _0201A1C4 _0201A1FC: ldr r0, [sp, #0x310] cmp r0, #0x0 beq _0201A20A ldr r0, [sp, #0x48] add r0, r0, #0x2 str r0, [sp, #0x48] b _0201A210 _0201A20A: ldr r0, [sp, #0x48] add r0, r0, #0x1 str r0, [sp, #0x48] _0201A210: ldr r0, [sp, #0x1e8] add r7, #0x8 add r1, r0, #0x1 ldr r0, [sp, #0x4] str r1, [sp, #0x1e8] cmp r1, r0 blt _0201A178 _0201A21E: b _0201A8B6 _0201A220: ldr r0, [sp, #0x48] ldr r7, [sp, #0x1ec] str r0, [sp, #0x1e0] ldr r0, [sp, #0x330] lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x4c] lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x124] mov r0, #0x0 str r0, [sp, #0x1e4] ldr r0, [sp, #0x4] cmp r0, #0x0 ble _0201A2E6 ldr r0, [sp, #0x58] mov r1, #0x7 and r1, r0 add r0, r0, r1 asr r0, r0, #0x3 str r0, [sp, #0x120] _0201A24A: ldr r1, [sp, #0x124] ldr r0, [sp, #0x1e4] ldr r5, [sp, #0x5c] asr r1, r0 mov r0, #0x1 and r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x30c] add r0, r5, #0x0 lsl r6, r0, #0x3 ldr r0, [sp, #0x1e0] ldr r2, [sp, #0x120] lsl r1, r0, #0x3 ldr r0, _0201A3AC ; =0x00007FC0 mov r3, #0x38 and r0, r1 mul r2, r0 add r0, r1, #0x0 and r0, r3 str r0, [sp, #0x118] ldr r0, [sp, #0x1e0] str r2, [sp, #0x11c] add r0, r0, #0x1 lsl r1, r0, #0x3 ldr r0, _0201A3AC ; =0x00007FC0 ldr r2, [sp, #0x120] and r0, r1 mul r2, r0 add r0, r1, #0x0 and r0, r3 mov r4, #0x0 str r2, [sp, #0x114] str r0, [sp, #0x110] _0201A28E: mov r0, #0x7 add r1, r5, #0x0 and r1, r0 ldr r0, [sp, #0x278] add r1, r0, r1 ldr r0, _0201A3AC ; =0x00007FC0 and r0, r6 add r3, r1, r0 ldr r0, [sp, #0x11c] ldrb r1, [r7, r4] add r2, r3, r0 cmp r1, #0x0 beq _0201A2BA ldr r0, [sp, #0x118] strb r1, [r2, r0] ldr r0, [sp, #0x30c] cmp r0, #0x0 beq _0201A2BA ldr r0, [sp, #0x114] add r2, r3, r0 ldr r0, [sp, #0x110] strb r1, [r0, r2] _0201A2BA: add r4, r4, #0x1 add r6, #0x8 add r5, r5, #0x1 cmp r4, #0x8 blt _0201A28E ldr r0, [sp, #0x30c] cmp r0, #0x0 beq _0201A2D2 ldr r0, [sp, #0x1e0] add r0, r0, #0x2 str r0, [sp, #0x1e0] b _0201A2D8 _0201A2D2: ldr r0, [sp, #0x1e0] add r0, r0, #0x1 str r0, [sp, #0x1e0] _0201A2D8: ldr r0, [sp, #0x1e4] add r7, #0x8 add r1, r0, #0x1 ldr r0, [sp, #0x4] str r1, [sp, #0x1e4] cmp r1, r0 blt _0201A24A _0201A2E6: ldr r0, [sp, #0x1ec] str r0, [sp, #0x308] add r0, #0x40 str r0, [sp, #0x308] ldr r0, [sp, #0x4c] lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x13c] mov r0, #0x0 str r0, [sp, #0x1dc] ldr r0, [sp, #0x4] cmp r0, #0x0 ble _0201A3C8 ldr r0, [sp, #0x5c] mov r1, #0x7 add r0, #0x8 str r0, [sp, #0x5c] ldr r0, [sp, #0x58] and r1, r0 add r0, r0, r1 asr r0, r0, #0x3 str r0, [sp, #0x138] _0201A312: ldr r1, [sp, #0x13c] ldr r0, [sp, #0x1dc] ldr r7, [sp, #0x8] asr r1, r0 mov r0, #0x1 and r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 sub r7, #0x8 mov r4, #0x0 str r0, [sp, #0x1d8] ldr r5, [sp, #0x5c] cmp r7, #0x0 ble _0201A398 ble _0201A398 add r0, r5, #0x0 lsl r6, r0, #0x3 ldr r0, [sp, #0x48] ldr r2, [sp, #0x138] lsl r1, r0, #0x3 ldr r0, _0201A3AC ; =0x00007FC0 mov r3, #0x38 and r0, r1 mul r2, r0 add r0, r1, #0x0 and r0, r3 str r0, [sp, #0x130] ldr r0, [sp, #0x48] str r2, [sp, #0x134] add r0, r0, #0x1 lsl r1, r0, #0x3 ldr r0, _0201A3AC ; =0x00007FC0 ldr r2, [sp, #0x138] and r0, r1 mul r2, r0 add r0, r1, #0x0 and r0, r3 str r2, [sp, #0x12c] str r0, [sp, #0x128] _0201A360: mov r0, #0x7 add r1, r5, #0x0 and r1, r0 ldr r0, [sp, #0x278] add r1, r0, r1 ldr r0, _0201A3AC ; =0x00007FC0 and r0, r6 add r3, r1, r0 ldr r0, [sp, #0x134] add r2, r3, r0 ldr r0, [sp, #0x308] ldrb r1, [r0, r4] cmp r1, #0x0 beq _0201A38E ldr r0, [sp, #0x130] strb r1, [r2, r0] ldr r0, [sp, #0x1d8] cmp r0, #0x0 beq _0201A38E ldr r0, [sp, #0x12c] add r2, r3, r0 ldr r0, [sp, #0x128] strb r1, [r0, r2] _0201A38E: add r4, r4, #0x1 add r6, #0x8 add r5, r5, #0x1 cmp r4, r7 blt _0201A360 _0201A398: ldr r0, [sp, #0x1d8] cmp r0, #0x0 beq _0201A3B0 ldr r0, [sp, #0x48] add r0, r0, #0x2 str r0, [sp, #0x48] b _0201A3B6 nop _0201A3A8: .word 0x00003FE0 _0201A3AC: .word 0x00007FC0 _0201A3B0: ldr r0, [sp, #0x48] add r0, r0, #0x1 str r0, [sp, #0x48] _0201A3B6: ldr r0, [sp, #0x308] add r0, #0x8 str r0, [sp, #0x308] ldr r0, [sp, #0x1dc] add r1, r0, #0x1 ldr r0, [sp, #0x4] str r1, [sp, #0x1dc] cmp r1, r0 blt _0201A312 _0201A3C8: b _0201A8B6 _0201A3CA: ldr r0, [sp, #0x48] mov r1, #0x7 str r0, [sp, #0x1d0] mov r0, #0x0 str r0, [sp, #0x1d4] ldr r0, [sp, #0x330] ldr r7, [sp, #0x1ec] lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x150] ldr r0, [sp, #0x58] and r1, r0 add r0, r0, r1 asr r0, r0, #0x3 str r0, [sp, #0x30] _0201A3E8: ldr r1, [sp, #0x150] ldr r0, [sp, #0x1d4] mov r4, #0x0 asr r1, r0 mov r0, #0x1 and r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x304] ldr r0, [sp, #0x8] ldr r5, [sp, #0x5c] cmp r0, #0x0 ble _0201A46C ble _0201A46C add r0, r5, #0x0 lsl r6, r0, #0x3 ldr r0, [sp, #0x1d0] ldr r2, [sp, #0x30] lsl r1, r0, #0x3 ldr r0, _0201A748 ; =0x00007FC0 mov r3, #0x38 and r0, r1 mul r2, r0 add r0, r1, #0x0 and r0, r3 str r0, [sp, #0x148] ldr r0, [sp, #0x1d0] str r2, [sp, #0x14c] add r0, r0, #0x1 lsl r1, r0, #0x3 ldr r0, _0201A748 ; =0x00007FC0 ldr r2, [sp, #0x30] and r0, r1 mul r2, r0 add r0, r1, #0x0 and r0, r3 str r2, [sp, #0x144] str r0, [sp, #0x140] _0201A434: mov r0, #0x7 add r1, r5, #0x0 and r1, r0 ldr r0, [sp, #0x278] add r1, r0, r1 ldr r0, _0201A748 ; =0x00007FC0 and r0, r6 add r3, r1, r0 ldr r0, [sp, #0x14c] ldrb r1, [r7, r4] add r2, r3, r0 cmp r1, #0x0 beq _0201A460 ldr r0, [sp, #0x148] strb r1, [r2, r0] ldr r0, [sp, #0x304] cmp r0, #0x0 beq _0201A460 ldr r0, [sp, #0x144] add r2, r3, r0 ldr r0, [sp, #0x140] strb r1, [r0, r2] _0201A460: ldr r0, [sp, #0x8] add r4, r4, #0x1 add r6, #0x8 add r5, r5, #0x1 cmp r4, r0 blt _0201A434 _0201A46C: ldr r0, [sp, #0x304] cmp r0, #0x0 beq _0201A47A ldr r0, [sp, #0x1d0] add r0, r0, #0x2 str r0, [sp, #0x1d0] b _0201A480 _0201A47A: ldr r0, [sp, #0x1d0] add r0, r0, #0x1 str r0, [sp, #0x1d0] _0201A480: ldr r0, [sp, #0x1d4] add r7, #0x8 add r0, r0, #0x1 str r0, [sp, #0x1d4] cmp r0, #0x8 blt _0201A3E8 ldr r0, [sp, #0x48] ldr r7, [sp, #0x1ec] add r0, #0x8 str r0, [sp, #0x48] add r7, #0x80 mov r0, #0x0 mov r2, #0x1 _0201A49A: ldr r1, [sp, #0x330] asr r1, r0 tst r1, r2 beq _0201A4A8 ldr r1, [sp, #0x48] add r1, r1, #0x1 str r1, [sp, #0x48] _0201A4A8: add r0, r0, #0x1 cmp r0, #0x8 blt _0201A49A ldr r0, [sp, #0x330] asr r0, r0, #0x8 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x164] mov r0, #0x0 str r0, [sp, #0x14] ldr r0, [sp, #0x4] sub r0, #0x8 cmp r0, #0x0 ble _0201A56C _0201A4C4: ldr r1, [sp, #0x164] ldr r0, [sp, #0x14] mov r4, #0x0 asr r1, r0 mov r0, #0x1 and r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x300] ldr r0, [sp, #0x8] ldr r5, [sp, #0x5c] cmp r0, #0x0 ble _0201A548 ble _0201A548 add r0, r5, #0x0 lsl r6, r0, #0x3 ldr r0, [sp, #0x48] ldr r2, [sp, #0x30] lsl r1, r0, #0x3 ldr r0, _0201A748 ; =0x00007FC0 mov r3, #0x38 and r0, r1 mul r2, r0 add r0, r1, #0x0 and r0, r3 str r0, [sp, #0x15c] ldr r0, [sp, #0x48] str r2, [sp, #0x160] add r0, r0, #0x1 lsl r1, r0, #0x3 ldr r0, _0201A748 ; =0x00007FC0 ldr r2, [sp, #0x30] and r0, r1 mul r2, r0 add r0, r1, #0x0 and r0, r3 str r2, [sp, #0x158] str r0, [sp, #0x154] _0201A510: mov r0, #0x7 add r1, r5, #0x0 and r1, r0 ldr r0, [sp, #0x278] add r1, r0, r1 ldr r0, _0201A748 ; =0x00007FC0 and r0, r6 add r3, r1, r0 ldr r0, [sp, #0x160] ldrb r1, [r7, r4] add r2, r3, r0 cmp r1, #0x0 beq _0201A53C ldr r0, [sp, #0x15c] strb r1, [r2, r0] ldr r0, [sp, #0x300] cmp r0, #0x0 beq _0201A53C ldr r0, [sp, #0x158] add r2, r3, r0 ldr r0, [sp, #0x154] strb r1, [r0, r2] _0201A53C: ldr r0, [sp, #0x8] add r4, r4, #0x1 add r6, #0x8 add r5, r5, #0x1 cmp r4, r0 blt _0201A510 _0201A548: ldr r0, [sp, #0x300] cmp r0, #0x0 beq _0201A556 ldr r0, [sp, #0x48] add r0, r0, #0x2 str r0, [sp, #0x48] b _0201A55C _0201A556: ldr r0, [sp, #0x48] add r0, r0, #0x1 str r0, [sp, #0x48] _0201A55C: ldr r0, [sp, #0x14] ldr r1, [sp, #0x4] add r0, r0, #0x1 sub r1, #0x8 add r7, #0x8 str r0, [sp, #0x14] cmp r0, r1 blt _0201A4C4 _0201A56C: b _0201A8B6 _0201A56E: ldr r0, [sp, #0x48] ldr r7, [sp, #0x1ec] str r0, [sp, #0x1c8] ldr r0, [sp, #0x330] lsl r0, r0, #0x18 lsr r1, r0, #0x18 mov r0, #0x0 str r0, [sp, #0x1cc] lsl r0, r1, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x2c] ldr r0, [sp, #0x58] mov r1, #0x7 and r1, r0 add r0, r0, r1 asr r0, r0, #0x3 str r0, [sp, #0x28] _0201A590: ldr r1, [sp, #0x2c] ldr r0, [sp, #0x1cc] ldr r5, [sp, #0x5c] asr r1, r0 mov r0, #0x1 and r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x2fc] add r0, r5, #0x0 lsl r6, r0, #0x3 ldr r0, [sp, #0x1c8] ldr r2, [sp, #0x28] lsl r1, r0, #0x3 ldr r0, _0201A748 ; =0x00007FC0 mov r3, #0x38 and r0, r1 mul r2, r0 add r0, r1, #0x0 and r0, r3 str r0, [sp, #0x170] ldr r0, [sp, #0x1c8] str r2, [sp, #0x174] add r0, r0, #0x1 lsl r1, r0, #0x3 ldr r0, _0201A748 ; =0x00007FC0 ldr r2, [sp, #0x28] and r0, r1 mul r2, r0 add r0, r1, #0x0 and r0, r3 mov r4, #0x0 str r6, [sp, #0x24] str r2, [sp, #0x16c] str r0, [sp, #0x168] _0201A5D6: mov r0, #0x7 add r1, r5, #0x0 and r1, r0 ldr r0, [sp, #0x278] add r1, r0, r1 ldr r0, _0201A748 ; =0x00007FC0 and r0, r6 add r3, r1, r0 ldr r0, [sp, #0x174] ldrb r1, [r7, r4] add r2, r3, r0 cmp r1, #0x0 beq _0201A602 ldr r0, [sp, #0x170] strb r1, [r2, r0] ldr r0, [sp, #0x2fc] cmp r0, #0x0 beq _0201A602 ldr r0, [sp, #0x16c] add r2, r3, r0 ldr r0, [sp, #0x168] strb r1, [r0, r2] _0201A602: add r4, r4, #0x1 add r6, #0x8 add r5, r5, #0x1 cmp r4, #0x8 blt _0201A5D6 ldr r0, [sp, #0x2fc] cmp r0, #0x0 beq _0201A61A ldr r0, [sp, #0x1c8] add r0, r0, #0x2 str r0, [sp, #0x1c8] b _0201A620 _0201A61A: ldr r0, [sp, #0x1c8] add r0, r0, #0x1 str r0, [sp, #0x1c8] _0201A620: ldr r0, [sp, #0x1cc] add r7, #0x8 add r0, r0, #0x1 str r0, [sp, #0x1cc] cmp r0, #0x8 blt _0201A590 ldr r0, [sp, #0x1ec] str r0, [sp, #0x2f8] add r0, #0x40 str r0, [sp, #0x2f8] ldr r0, [sp, #0x48] str r0, [sp, #0x1c0] mov r0, #0x0 str r0, [sp, #0x1c4] ldr r0, [sp, #0x5c] str r0, [sp, #0x188] add r0, #0x8 str r0, [sp, #0x188] _0201A644: ldr r1, [sp, #0x2c] ldr r0, [sp, #0x1c4] ldr r7, [sp, #0x8] asr r1, r0 mov r0, #0x1 and r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 sub r7, #0x8 mov r4, #0x0 str r0, [sp, #0x1bc] ldr r5, [sp, #0x188] cmp r7, #0x0 ble _0201A6CA ble _0201A6CA add r0, r5, #0x0 lsl r6, r0, #0x3 ldr r0, [sp, #0x1c0] ldr r2, [sp, #0x28] lsl r1, r0, #0x3 ldr r0, _0201A748 ; =0x00007FC0 mov r3, #0x38 and r0, r1 mul r2, r0 add r0, r1, #0x0 and r0, r3 str r0, [sp, #0x180] ldr r0, [sp, #0x1c0] str r2, [sp, #0x184] add r0, r0, #0x1 lsl r1, r0, #0x3 ldr r0, _0201A748 ; =0x00007FC0 ldr r2, [sp, #0x28] and r0, r1 mul r2, r0 add r0, r1, #0x0 and r0, r3 str r2, [sp, #0x17c] str r0, [sp, #0x178] _0201A692: mov r0, #0x7 add r1, r5, #0x0 and r1, r0 ldr r0, [sp, #0x278] add r1, r0, r1 ldr r0, _0201A748 ; =0x00007FC0 and r0, r6 add r3, r1, r0 ldr r0, [sp, #0x184] add r2, r3, r0 ldr r0, [sp, #0x2f8] ldrb r1, [r0, r4] cmp r1, #0x0 beq _0201A6C0 ldr r0, [sp, #0x180] strb r1, [r2, r0] ldr r0, [sp, #0x1bc] cmp r0, #0x0 beq _0201A6C0 ldr r0, [sp, #0x17c] add r2, r3, r0 ldr r0, [sp, #0x178] strb r1, [r0, r2] _0201A6C0: add r4, r4, #0x1 add r6, #0x8 add r5, r5, #0x1 cmp r4, r7 blt _0201A692 _0201A6CA: ldr r0, [sp, #0x1bc] cmp r0, #0x0 beq _0201A6D8 ldr r0, [sp, #0x1c0] add r0, r0, #0x2 str r0, [sp, #0x1c0] b _0201A6DE _0201A6D8: ldr r0, [sp, #0x1c0] add r0, r0, #0x1 str r0, [sp, #0x1c0] _0201A6DE: ldr r0, [sp, #0x2f8] add r0, #0x8 str r0, [sp, #0x2f8] ldr r0, [sp, #0x1c4] add r0, r0, #0x1 str r0, [sp, #0x1c4] cmp r0, #0x8 blt _0201A644 ldr r0, [sp, #0x48] ldr r7, [sp, #0x1ec] add r0, #0x8 add r7, #0x80 str r0, [sp, #0x48] str r0, [sp, #0x1b8] mov r0, #0x0 mov r2, #0x1 _0201A6FE: ldr r1, [sp, #0x330] asr r1, r0 tst r1, r2 beq _0201A70C ldr r1, [sp, #0x1b8] add r1, r1, #0x1 str r1, [sp, #0x1b8] _0201A70C: add r0, r0, #0x1 cmp r0, #0x8 blt _0201A6FE ldr r0, [sp, #0x330] asr r0, r0, #0x8 str r0, [sp, #0x44] lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x19c] mov r0, #0x0 str r0, [sp, #0x10] ldr r0, [sp, #0x4] sub r0, #0x8 cmp r0, #0x0 ble _0201A7CE _0201A72A: ldr r1, [sp, #0x19c] ldr r0, [sp, #0x10] ldr r2, [sp, #0x28] asr r1, r0 mov r0, #0x1 and r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x2f4] ldr r0, [sp, #0x1b8] mov r3, #0x38 lsl r1, r0, #0x3 ldr r0, _0201A748 ; =0x00007FC0 b _0201A74C nop _0201A748: .word 0x00007FC0 _0201A74C: ldr r5, [sp, #0x5c] and r0, r1 mul r2, r0 add r0, r1, #0x0 and r0, r3 str r0, [sp, #0x194] ldr r0, [sp, #0x1b8] str r2, [sp, #0x198] add r0, r0, #0x1 lsl r1, r0, #0x3 ldr r0, _0201A8C4 ; =0x00007FC0 ldr r2, [sp, #0x28] and r0, r1 mul r2, r0 add r0, r1, #0x0 and r0, r3 ldr r6, [sp, #0x24] mov r4, #0x0 str r2, [sp, #0x190] str r0, [sp, #0x18c] _0201A774: mov r0, #0x7 add r1, r5, #0x0 and r1, r0 ldr r0, [sp, #0x278] add r1, r0, r1 ldr r0, _0201A8C4 ; =0x00007FC0 and r0, r6 add r3, r1, r0 ldr r0, [sp, #0x198] ldrb r1, [r7, r4] add r2, r3, r0 cmp r1, #0x0 beq _0201A7A0 ldr r0, [sp, #0x194] strb r1, [r2, r0] ldr r0, [sp, #0x2f4] cmp r0, #0x0 beq _0201A7A0 ldr r0, [sp, #0x190] add r2, r3, r0 ldr r0, [sp, #0x18c] strb r1, [r0, r2] _0201A7A0: add r4, r4, #0x1 add r6, #0x8 add r5, r5, #0x1 cmp r4, #0x8 blt _0201A774 ldr r0, [sp, #0x2f4] cmp r0, #0x0 beq _0201A7B8 ldr r0, [sp, #0x1b8] add r0, r0, #0x2 str r0, [sp, #0x1b8] b _0201A7BE _0201A7B8: ldr r0, [sp, #0x1b8] add r0, r0, #0x1 str r0, [sp, #0x1b8] _0201A7BE: ldr r0, [sp, #0x10] ldr r1, [sp, #0x4] add r0, r0, #0x1 sub r1, #0x8 add r7, #0x8 str r0, [sp, #0x10] cmp r0, r1 blt _0201A72A _0201A7CE: ldr r0, [sp, #0x1ec] mov r2, #0x0 str r0, [sp, #0x2f0] add r0, #0xc0 str r0, [sp, #0x2f0] mov r1, #0x1 _0201A7DA: ldr r0, [sp, #0x330] asr r0, r2 tst r0, r1 beq _0201A7E8 ldr r0, [sp, #0x48] add r0, r0, #0x1 str r0, [sp, #0x48] _0201A7E8: add r2, r2, #0x1 cmp r2, #0x8 blt _0201A7DA ldr r0, [sp, #0x44] lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x1b0] mov r0, #0x0 str r0, [sp, #0xc] ldr r0, [sp, #0x4] sub r0, #0x8 cmp r0, #0x0 ble _0201A8B6 ldr r0, [sp, #0x5c] add r0, #0x8 str r0, [sp, #0x5c] _0201A808: ldr r1, [sp, #0x1b0] ldr r0, [sp, #0xc] ldr r7, [sp, #0x8] asr r1, r0 mov r0, #0x1 and r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 sub r7, #0x8 mov r4, #0x0 str r0, [sp, #0x1b4] ldr r5, [sp, #0x5c] cmp r7, #0x0 ble _0201A88E ble _0201A88E add r0, r5, #0x0 lsl r6, r0, #0x3 ldr r0, [sp, #0x48] ldr r2, [sp, #0x28] lsl r1, r0, #0x3 ldr r0, _0201A8C4 ; =0x00007FC0 mov r3, #0x38 and r0, r1 mul r2, r0 add r0, r1, #0x0 and r0, r3 str r0, [sp, #0x1a8] ldr r0, [sp, #0x48] str r2, [sp, #0x1ac] add r0, r0, #0x1 lsl r1, r0, #0x3 ldr r0, _0201A8C4 ; =0x00007FC0 ldr r2, [sp, #0x28] and r0, r1 mul r2, r0 add r0, r1, #0x0 and r0, r3 str r2, [sp, #0x1a4] str r0, [sp, #0x1a0] _0201A856: mov r0, #0x7 add r1, r5, #0x0 and r1, r0 ldr r0, [sp, #0x278] add r1, r0, r1 ldr r0, _0201A8C4 ; =0x00007FC0 and r0, r6 add r3, r1, r0 ldr r0, [sp, #0x1ac] add r2, r3, r0 ldr r0, [sp, #0x2f0] ldrb r1, [r0, r4] cmp r1, #0x0 beq _0201A884 ldr r0, [sp, #0x1a8] strb r1, [r2, r0] ldr r0, [sp, #0x1b4] cmp r0, #0x0 beq _0201A884 ldr r0, [sp, #0x1a4] add r2, r3, r0 ldr r0, [sp, #0x1a0] strb r1, [r0, r2] _0201A884: add r4, r4, #0x1 add r6, #0x8 add r5, r5, #0x1 cmp r4, r7 blt _0201A856 _0201A88E: ldr r0, [sp, #0x1b4] cmp r0, #0x0 beq _0201A89C ldr r0, [sp, #0x48] add r0, r0, #0x2 str r0, [sp, #0x48] b _0201A8A2 _0201A89C: ldr r0, [sp, #0x48] add r0, r0, #0x1 str r0, [sp, #0x48] _0201A8A2: ldr r0, [sp, #0x2f0] ldr r1, [sp, #0x4] add r0, #0x8 str r0, [sp, #0x2f0] ldr r0, [sp, #0xc] sub r1, #0x8 add r0, r0, #0x1 str r0, [sp, #0xc] cmp r0, r1 blt _0201A808 _0201A8B6: ldr r0, [sp, #0x1ec] bl FUN_02016A18 thumb_func_start FUN_0201A8BC FUN_0201A8BC: ; 0x0201A8BC add sp, #0x1fc add sp, #0x118 pop {r4-r7, pc} nop _0201A8C4: .word 0x00007FC0 thumb_func_start FUN_0201A8C8 FUN_0201A8C8: ; 0x0201A8C8 push {r4-r6, lr} ldrb r6, [r0, #0x4] mov r5, #0x2c ldr r4, [r0, #0x0] mul r5, r6 add r4, r4, r5 ldrb r4, [r4, #0x1e] cmp r4, #0x0 bne _0201A8E0 bl FUN_0201A8E8 pop {r4-r6, pc} _0201A8E0: bl FUN_0201A9D4 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0201A8E8 FUN_0201A8E8: ; 0x0201A8E8 push {r3-r7, lr} sub sp, #0x10 add r6, r3, #0x0 add r4, r0, #0x0 add r0, r1, #0x0 lsl r3, r6, #0x18 lsl r1, r6, #0x10 str r2, [sp, #0x0] orr r1, r3 lsl r5, r6, #0x8 orr r1, r5 orr r1, r6 str r1, [sp, #0x4] ldrb r1, [r4, #0x7] ldrb r3, [r4, #0x8] ldr r2, [r4, #0xc] str r1, [sp, #0x8] mul r1, r3 lsl r1, r1, #0x5 str r1, [sp, #0xc] cmp r0, #0x3 bhi _0201A9CE add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0201A920: ; jump table (using 16-bit offset) .short _0201A928 - _0201A920 - 2; case 0 .short _0201A976 - _0201A920 - 2; case 1 .short _0201A9CE - _0201A920 - 2; case 2 .short _0201A9CE - _0201A920 - 2; case 3 _0201A928: add r0, r1, #0x0 mov r7, #0x0 cmp r0, #0x0 ble _0201A9CE mov r0, #0x7 mov lr, r0 _0201A934: ldr r3, [sp, #0x0] mov r4, #0x0 add r5, r7, #0x0 _0201A93A: mov r0, #0x7 add r6, r3, #0x0 and r6, r0 add r1, r3, #0x0 mov r0, lr bic r1, r0 ldr r0, [sp, #0x8] mul r1, r0 add r0, r6, #0x0 orr r0, r1 lsl r0, r0, #0x2 add r1, r7, r0 ldr r0, [sp, #0xc] cmp r1, r0 bge _0201A95C ldr r0, [r2, r1] b _0201A95E _0201A95C: ldr r0, [sp, #0x4] _0201A95E: add r4, r4, #0x1 str r0, [r2, r5] add r3, r3, #0x1 add r5, r5, #0x4 cmp r4, #0x8 blt _0201A93A ldr r0, [sp, #0xc] add r7, #0x20 cmp r7, r0 blt _0201A934 add sp, #0x10 pop {r3-r7, pc} _0201A976: add r0, r1, #0x0 sub r0, r0, #0x4 add r2, r2, r0 add r0, r1, #0x0 mov r7, #0x0 cmp r0, #0x0 ble _0201A9CE mov r0, #0x7 mov r12, r0 _0201A988: ldr r4, [sp, #0x0] mov r5, #0x0 add r3, r7, #0x0 _0201A98E: mov r0, #0x7 add r6, r4, #0x0 and r6, r0 add r1, r4, #0x0 mov r0, r12 bic r1, r0 ldr r0, [sp, #0x8] mul r1, r0 add r0, r6, #0x0 orr r0, r1 lsl r0, r0, #0x2 add r1, r7, r0 ldr r0, [sp, #0xc] cmp r1, r0 bge _0201A9B6 sub r0, r2, r1 ldr r1, [r0, #0x0] sub r0, r2, r3 str r1, [r0, #0x0] b _0201A9BC _0201A9B6: ldr r0, [sp, #0x4] sub r1, r2, r3 str r0, [r1, #0x0] _0201A9BC: add r5, r5, #0x1 add r4, r4, #0x1 add r3, r3, #0x4 cmp r5, #0x8 blt _0201A98E ldr r0, [sp, #0xc] add r7, #0x20 cmp r7, r0 blt _0201A988 _0201A9CE: add sp, #0x10 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0201A9D4 FUN_0201A9D4: ; 0x0201A9D4 push {r3-r7, lr} sub sp, #0x20 add r6, r3, #0x0 add r4, r0, #0x0 str r2, [sp, #0x0] lsl r2, r6, #0x18 lsl r0, r6, #0x10 orr r0, r2 ldrb r2, [r4, #0x7] ldr r3, [r4, #0xc] lsl r5, r6, #0x8 orr r0, r5 ldrb r4, [r4, #0x8] str r2, [sp, #0x10] orr r0, r6 mul r2, r4 lsl r2, r2, #0x6 str r2, [sp, #0x1c] cmp r1, #0x3 bls _0201A9FE b _0201AB04 _0201A9FE: add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0201AA0A: ; jump table (using 16-bit offset) .short _0201AA12 - _0201AA0A - 2; case 0 .short _0201AA80 - _0201AA0A - 2; case 1 .short _0201AB04 - _0201AA0A - 2; case 2 .short _0201AB04 - _0201AA0A - 2; case 3 _0201AA12: mov r1, #0x0 str r1, [sp, #0xc] add r1, r2, #0x0 cmp r1, #0x0 ble _0201AB04 add r1, r1, #0x4 str r1, [sp, #0x14] mov r1, #0x7 mov lr, r1 _0201AA24: ldr r4, [sp, #0x0] ldr r5, [sp, #0xc] mov r7, #0x0 _0201AA2A: mov r1, #0x7 add r6, r4, #0x0 and r6, r1 add r2, r4, #0x0 mov r1, lr bic r2, r1 ldr r1, [sp, #0x10] mul r2, r1 add r1, r6, #0x0 orr r1, r2 lsl r2, r1, #0x3 ldr r1, [sp, #0xc] add r1, r1, r2 ldr r2, [sp, #0x1c] cmp r1, r2 bge _0201AA50 ldr r2, [r3, r1] str r2, [r3, r5] b _0201AA52 _0201AA50: str r0, [r3, r5] _0201AA52: add r2, r1, #0x4 ldr r1, [sp, #0x14] cmp r2, r1 bge _0201AA62 ldr r2, [r3, r2] add r1, r5, #0x4 str r2, [r3, r1] b _0201AA66 _0201AA62: add r1, r5, #0x4 str r0, [r3, r1] _0201AA66: add r7, r7, #0x1 add r4, r4, #0x1 add r5, #0x8 cmp r7, #0x8 blt _0201AA2A ldr r2, [sp, #0xc] ldr r1, [sp, #0x1c] add r2, #0x40 str r2, [sp, #0xc] cmp r2, r1 blt _0201AA24 add sp, #0x20 pop {r3-r7, pc} _0201AA80: add r1, r2, #0x0 sub r1, #0x8 add r3, r3, r1 mov r1, #0x0 str r1, [sp, #0x8] add r1, r2, #0x0 cmp r1, #0x0 ble _0201AB04 _0201AA90: mov r1, #0x0 str r1, [sp, #0x4] ldr r1, [sp, #0x1c] ldr r5, [sp, #0x0] sub r1, r1, #0x4 str r1, [sp, #0x18] mov r1, #0x7 ldr r4, [sp, #0x8] mov r12, r1 _0201AAA2: mov r1, #0x7 add r6, r5, #0x0 and r6, r1 add r2, r5, #0x0 mov r1, r12 bic r2, r1 ldr r1, [sp, #0x10] mul r2, r1 add r1, r6, #0x0 orr r1, r2 lsl r2, r1, #0x3 ldr r1, [sp, #0x8] add r6, r1, r2 ldr r1, [sp, #0x1c] cmp r6, r1 bge _0201AACC sub r1, r3, r6 ldr r2, [r1, #0x0] sub r1, r3, r4 str r2, [r1, #0x0] b _0201AAD0 _0201AACC: sub r1, r3, r4 str r0, [r1, #0x0] _0201AAD0: ldr r1, [sp, #0x18] sub r2, r6, #0x4 cmp r2, r1 bge _0201AAE4 sub r1, r3, r2 sub r2, r4, #0x4 ldr r1, [r1, #0x0] sub r2, r3, r2 str r1, [r2, #0x0] b _0201AAEA _0201AAE4: sub r1, r4, #0x4 sub r1, r3, r1 str r0, [r1, #0x0] _0201AAEA: ldr r1, [sp, #0x4] add r5, r5, #0x1 add r1, r1, #0x1 add r4, #0x8 str r1, [sp, #0x4] cmp r1, #0x8 blt _0201AAA2 ldr r2, [sp, #0x8] ldr r1, [sp, #0x1c] add r2, #0x40 str r2, [sp, #0x8] cmp r2, r1 blt _0201AA90 _0201AB04: add sp, #0x20 pop {r3-r7, pc} thumb_func_start FUN_0201AB08 FUN_0201AB08: ; 0x0201AB08 ldrb r0, [r0, #0x4] bx lr thumb_func_start FUN_0201AB0C FUN_0201AB0C: ; 0x0201AB0C ldrb r0, [r0, #0x7] bx lr thumb_func_start FUN_0201AB10 FUN_0201AB10: ; 0x0201AB10 ldrb r0, [r0, #0x8] bx lr thumb_func_start FUN_0201AB14 FUN_0201AB14: ; 0x0201AB14 ldrb r0, [r0, #0x5] bx lr thumb_func_start FUN_0201AB18 FUN_0201AB18: ; 0x0201AB18 ldrb r0, [r0, #0x6] bx lr thumb_func_start FUN_0201AB1C FUN_0201AB1C: ; 0x0201AB1C strb r1, [r0, #0x5] bx lr thumb_func_start FUN_0201AB20 FUN_0201AB20: ; 0x0201AB20 strb r1, [r0, #0x6] bx lr thumb_func_start FUN_0201AB24 FUN_0201AB24: ; 0x0201AB24 strb r1, [r0, #0x9] bx lr thumb_func_start FUN_0201AB28 FUN_0201AB28: ; 0x0201AB28 push {r3-r4, lr} sub sp, #0x4 add r4, r0, #0x0 add r0, r1, #0x0 add r1, r2, #0x0 bl FUN_020161A4 add r1, sp, #0x0 str r0, [r4, #0x0] blx FUN_020B0030 ldr r0, [sp, #0x0] add sp, #0x4 pop {r3-r4, pc} thumb_func_start FUN_0201AB44 FUN_0201AB44: ; 0x0201AB44 push {r3-r4, lr} sub sp, #0x4 add r4, r0, #0x0 add r0, r1, #0x0 add r1, r2, #0x0 bl FUN_020161A4 add r1, sp, #0x0 str r0, [r4, #0x0] blx FUN_020B0138 ldr r0, [sp, #0x0] add sp, #0x4 pop {r3-r4, pc} thumb_func_start FUN_0201AB60 FUN_0201AB60: ; 0x0201AB60 push {r4, lr} add r4, r0, #0x0 bl FUN_0201AC78 add r0, r4, #0x0 bl FUN_0201AB78 mov r0, #0x0 strh r0, [r4, #0x4] strh r0, [r4, #0x6] pop {r4, pc} .balign 4 thumb_func_start FUN_0201AB78 FUN_0201AB78: ; 0x0201AB78 push {r4, lr} add r4, r0, #0x0 ldrh r1, [r4, #0x6] mov r0, #0x1 tst r0, r1 beq _0201AB92 ldr r2, [r4, #0x10] ldr r1, [r4, #0x8] ldr r3, [r4, #0xc] mov r0, #0x0 lsl r2, r2, #0x1 bl FUN_02017D68 _0201AB92: ldrh r1, [r4, #0x6] mov r0, #0x2 tst r0, r1 beq _0201ABA8 ldr r2, [r4, #0x3c] ldr r1, [r4, #0x34] ldr r3, [r4, #0x38] mov r0, #0x1 lsl r2, r2, #0x1 bl FUN_02017D68 _0201ABA8: ldrh r1, [r4, #0x6] mov r0, #0x4 tst r0, r1 beq _0201ABBE ldr r2, [r4, #0x68] ldr r1, [r4, #0x60] ldr r3, [r4, #0x64] mov r0, #0x2 lsl r2, r2, #0x1 bl FUN_02017D68 _0201ABBE: ldrh r1, [r4, #0x6] mov r0, #0x8 tst r0, r1 beq _0201ABE0 add r2, r4, #0x0 add r1, r4, #0x0 add r2, #0x94 add r3, r4, #0x0 add r1, #0x8c ldr r2, [r2, #0x0] add r3, #0x90 ldr r1, [r1, #0x0] ldr r3, [r3, #0x0] mov r0, #0x3 lsl r2, r2, #0x1 bl FUN_02017D68 _0201ABE0: ldrh r1, [r4, #0x6] mov r0, #0x10 tst r0, r1 beq _0201AC02 add r2, r4, #0x0 add r1, r4, #0x0 add r2, #0xc0 add r3, r4, #0x0 add r1, #0xb8 ldr r2, [r2, #0x0] add r3, #0xbc ldr r1, [r1, #0x0] ldr r3, [r3, #0x0] mov r0, #0x4 lsl r2, r2, #0x1 bl FUN_02017D68 _0201AC02: ldrh r1, [r4, #0x6] mov r0, #0x20 tst r0, r1 beq _0201AC24 add r2, r4, #0x0 add r1, r4, #0x0 add r2, #0xec add r3, r4, #0x0 add r1, #0xe4 ldr r2, [r2, #0x0] add r3, #0xe8 ldr r1, [r1, #0x0] ldr r3, [r3, #0x0] mov r0, #0x5 lsl r2, r2, #0x1 bl FUN_02017D68 _0201AC24: ldrh r0, [r4, #0x6] mov r3, #0x40 tst r0, r3 beq _0201AC44 add r2, r3, #0x0 add r1, r3, #0x0 add r2, #0xd8 add r1, #0xd0 ldr r2, [r4, r2] add r3, #0xd4 ldr r1, [r4, r1] ldr r3, [r4, r3] mov r0, #0x6 lsl r2, r2, #0x1 bl FUN_02017D68 _0201AC44: ldrh r0, [r4, #0x6] mov r3, #0x80 tst r0, r3 beq _0201AC64 add r2, r3, #0x0 add r1, r3, #0x0 add r2, #0xc4 add r1, #0xbc ldr r2, [r4, r2] add r3, #0xc0 ldr r1, [r4, r1] ldr r3, [r4, r3] mov r0, #0x7 lsl r2, r2, #0x1 bl FUN_02017D68 _0201AC64: pop {r4, pc} .balign 4 thumb_func_start FUN_0201AC68 FUN_0201AC68: ; 0x0201AC68 ldrh r3, [r0, #0x6] mov r2, #0x1 lsl r2, r1 add r1, r3, #0x0 orr r1, r2 strh r1, [r0, #0x6] bx lr .balign 4 thumb_func_start FUN_0201AC78 FUN_0201AC78: ; 0x0201AC78 push {r4, lr} sub sp, #0x48 add r4, r0, #0x0 ldrh r1, [r4, #0x4] mov r0, #0x1 tst r0, r1 beq _0201AC9E ldr r1, [r4, #0x14] ldr r0, _0201AEB0 ; =0x000001FF add r2, r1, #0x0 ldr r1, [r4, #0x18] and r2, r0 lsl r1, r1, #0x10 lsl r0, r0, #0x10 and r0, r1 add r1, r2, #0x0 orr r1, r0 ldr r0, _0201AEB4 ; =0x04000010 str r1, [r0, #0x0] _0201AC9E: ldrh r1, [r4, #0x4] mov r0, #0x2 tst r0, r1 beq _0201ACBE ldr r1, [r4, #0x40] ldr r0, _0201AEB0 ; =0x000001FF add r2, r1, #0x0 ldr r1, [r4, #0x44] and r2, r0 lsl r1, r1, #0x10 lsl r0, r0, #0x10 and r0, r1 add r1, r2, #0x0 orr r1, r0 ldr r0, _0201AEB8 ; =0x04000014 str r1, [r0, #0x0] _0201ACBE: ldrh r1, [r4, #0x4] mov r0, #0x4 tst r0, r1 beq _0201AD1E add r0, r4, #0x0 add r0, #0x74 ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _0201ACEA ldr r1, [r4, #0x6c] ldr r0, _0201AEB0 ; =0x000001FF add r2, r1, #0x0 ldr r1, [r4, #0x70] and r2, r0 lsl r1, r1, #0x10 lsl r0, r0, #0x10 and r0, r1 add r1, r2, #0x0 orr r1, r0 ldr r0, _0201AEBC ; =0x04000018 str r1, [r0, #0x0] b _0201AD1E _0201ACEA: mov r0, #0x2 str r0, [sp, #0x0] add r1, r4, #0x0 add r1, #0x78 add r3, r4, #0x0 add r3, #0x80 ldrh r1, [r1, #0x0] ldr r2, [r4, #0x7c] ldr r3, [r3, #0x0] add r0, sp, #0x38 bl FUN_0201BB74 ldr r0, [r4, #0x6c] add r2, r4, #0x0 str r0, [sp, #0x0] ldr r0, [r4, #0x70] add r3, r4, #0x0 str r0, [sp, #0x4] add r2, #0x84 add r3, #0x88 ldr r0, _0201AEC0 ; =0x04000020 ldr r2, [r2, #0x0] ldr r3, [r3, #0x0] add r1, sp, #0x38 blx FUN_020C74F8 _0201AD1E: ldrh r1, [r4, #0x4] mov r0, #0x8 tst r0, r1 beq _0201AD8E add r0, r4, #0x0 add r0, #0xa0 ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _0201AD4E add r0, r4, #0x0 add r2, r4, #0x0 add r0, #0x98 add r2, #0x9c ldr r2, [r2, #0x0] ldr r0, [r0, #0x0] ldr r1, _0201AEB0 ; =0x000001FF lsl r2, r2, #0x10 and r0, r1 lsl r1, r1, #0x10 and r1, r2 orr r1, r0 ldr r0, _0201AEC4 ; =0x0400001C str r1, [r0, #0x0] b _0201AD8E _0201AD4E: mov r0, #0x2 add r1, r4, #0x0 str r0, [sp, #0x0] add r1, #0xa4 add r2, r4, #0x0 add r3, r4, #0x0 add r2, #0xa8 add r3, #0xac ldrh r1, [r1, #0x0] ldr r2, [r2, #0x0] ldr r3, [r3, #0x0] add r0, sp, #0x28 bl FUN_0201BB74 add r0, r4, #0x0 add r0, #0x98 ldr r0, [r0, #0x0] add r2, r4, #0x0 str r0, [sp, #0x0] add r0, r4, #0x0 add r0, #0x9c ldr r0, [r0, #0x0] add r3, r4, #0x0 str r0, [sp, #0x4] add r2, #0xb0 add r3, #0xb4 ldr r0, _0201AEC8 ; =0x04000030 ldr r2, [r2, #0x0] ldr r3, [r3, #0x0] add r1, sp, #0x28 blx FUN_020C74F8 _0201AD8E: ldrh r1, [r4, #0x4] mov r0, #0x10 tst r0, r1 beq _0201ADB2 add r0, r4, #0x0 add r2, r4, #0x0 add r0, #0xc4 add r2, #0xc8 ldr r2, [r2, #0x0] ldr r0, [r0, #0x0] ldr r1, _0201AEB0 ; =0x000001FF lsl r2, r2, #0x10 and r0, r1 lsl r1, r1, #0x10 and r1, r2 orr r1, r0 ldr r0, _0201AECC ; =0x04001010 str r1, [r0, #0x0] _0201ADB2: ldrh r1, [r4, #0x4] mov r0, #0x20 tst r0, r1 beq _0201ADD6 add r0, r4, #0x0 add r2, r4, #0x0 add r0, #0xf0 add r2, #0xf4 ldr r2, [r2, #0x0] ldr r0, [r0, #0x0] ldr r1, _0201AEB0 ; =0x000001FF lsl r2, r2, #0x10 and r0, r1 lsl r1, r1, #0x10 and r1, r2 orr r1, r0 ldr r0, _0201AED0 ; =0x04001014 str r1, [r0, #0x0] _0201ADD6: ldrh r0, [r4, #0x4] mov r3, #0x40 tst r0, r3 beq _0201AE3E add r0, r3, #0x0 add r0, #0xe4 ldrb r0, [r4, r0] cmp r0, #0x0 bne _0201AE04 ldr r1, _0201AEB0 ; =0x000001FF add r3, #0xdc add r2, r1, #0x0 sub r2, #0xdf ldr r0, [r4, r3] ldr r2, [r4, r2] and r0, r1 lsl r2, r2, #0x10 lsl r1, r1, #0x10 and r1, r2 orr r1, r0 ldr r0, _0201AED4 ; =0x04001018 str r1, [r0, #0x0] b _0201AE3E _0201AE04: mov r0, #0x2 add r1, r3, #0x0 add r2, r3, #0x0 str r0, [sp, #0x0] add r1, #0xe8 add r2, #0xec add r3, #0xf0 ldrh r1, [r4, r1] ldr r2, [r4, r2] ldr r3, [r4, r3] add r0, sp, #0x18 bl FUN_0201BB74 mov r3, #0x47 lsl r3, r3, #0x2 ldr r0, [r4, r3] add r2, r3, #0x0 str r0, [sp, #0x0] add r0, r3, #0x4 ldr r0, [r4, r0] add r2, #0x18 str r0, [sp, #0x4] add r3, #0x1c ldr r0, _0201AED8 ; =0x04001020 ldr r2, [r4, r2] ldr r3, [r4, r3] add r1, sp, #0x18 blx FUN_020C74F8 _0201AE3E: ldrh r0, [r4, #0x4] mov r3, #0x80 tst r0, r3 beq _0201AEAC add r0, r3, #0x0 add r0, #0xd0 ldrb r0, [r4, r0] cmp r0, #0x0 bne _0201AE72 add r3, #0xc8 ldr r1, [r4, r3] ldr r0, _0201AEB0 ; =0x000001FF add r2, r1, #0x0 add r1, r0, #0x0 sub r1, #0xb3 ldr r1, [r4, r1] and r2, r0 lsl r1, r1, #0x10 lsl r0, r0, #0x10 and r0, r1 add r1, r2, #0x0 orr r1, r0 ldr r0, _0201AEDC ; =0x0400101C add sp, #0x48 str r1, [r0, #0x0] pop {r4, pc} _0201AE72: mov r0, #0x2 add r1, r3, #0x0 add r2, r3, #0x0 str r0, [sp, #0x0] add r1, #0xd4 add r2, #0xd8 add r3, #0xdc ldrh r1, [r4, r1] ldr r2, [r4, r2] ldr r3, [r4, r3] add r0, sp, #0x8 bl FUN_0201BB74 mov r3, #0x52 lsl r3, r3, #0x2 ldr r0, [r4, r3] add r2, r3, #0x0 str r0, [sp, #0x0] add r0, r3, #0x4 ldr r0, [r4, r0] add r2, #0x18 str r0, [sp, #0x4] add r3, #0x1c ldr r0, _0201AEE0 ; =0x04001030 ldr r2, [r4, r2] ldr r3, [r4, r3] add r1, sp, #0x8 blx FUN_020C74F8 _0201AEAC: add sp, #0x48 pop {r4, pc} .balign 4 _0201AEB0: .word 0x000001FF _0201AEB4: .word 0x04000010 _0201AEB8: .word 0x04000014 _0201AEBC: .word 0x04000018 _0201AEC0: .word 0x04000020 _0201AEC4: .word 0x0400001C _0201AEC8: .word 0x04000030 _0201AECC: .word 0x04001010 _0201AED0: .word 0x04001014 _0201AED4: .word 0x04001018 _0201AED8: .word 0x04001020 _0201AEDC: .word 0x0400101C _0201AEE0: .word 0x04001030 thumb_func_start FUN_0201AEE4 FUN_0201AEE4: ; 0x0201AEE4 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r1, r5, #0x0 mov r0, #0x2c add r1, #0x8 mul r0, r4 add r0, r1, r0 add r1, r2, #0x0 add r2, r3, #0x0 bl FUN_02017B8C mov r0, #0x1 ldrh r1, [r5, #0x4] lsl r0, r4 orr r0, r1 strh r0, [r5, #0x4] pop {r3-r5, pc} thumb_func_start FUN_0201AF08 FUN_0201AF08: ; 0x0201AF08 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r1, r5, #0x0 mov r0, #0x2c add r1, #0x8 mul r0, r4 add r0, r1, r0 add r1, r2, #0x0 add r2, r3, #0x0 bl FUN_0201AF2C mov r0, #0x1 ldrh r1, [r5, #0x4] lsl r0, r4 orr r0, r1 strh r0, [r5, #0x4] pop {r3-r5, pc} thumb_func_start FUN_0201AF2C FUN_0201AF2C: ; 0x0201AF2C cmp r1, #0x0 beq _0201AF3A cmp r1, #0x1 beq _0201AF3E cmp r1, #0x2 beq _0201AF46 bx lr _0201AF3A: strh r2, [r0, #0x18] bx lr _0201AF3E: ldrh r1, [r0, #0x18] add r1, r1, r2 strh r1, [r0, #0x18] bx lr _0201AF46: ldrh r1, [r0, #0x18] sub r1, r1, r2 strh r1, [r0, #0x18] bx lr .balign 4 thumb_func_start FUN_0201AF50 FUN_0201AF50: ; 0x0201AF50 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r1, r5, #0x0 mov r0, #0x2c add r1, #0x8 mul r0, r4 add r0, r1, r0 add r1, r2, #0x0 add r2, r3, #0x0 bl FUN_0201AF74 mov r0, #0x1 ldrh r1, [r5, #0x4] lsl r0, r4 orr r0, r1 strh r0, [r5, #0x4] pop {r3-r5, pc} thumb_func_start FUN_0201AF74 FUN_0201AF74: ; 0x0201AF74 sub r1, #0x9 cmp r1, #0x5 bhi _0201AFB8 add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0201AF86: ; jump table (using 16-bit offset) .short _0201AF92 - _0201AF86 - 2; case 0 .short _0201AF96 - _0201AF86 - 2; case 1 .short _0201AF9E - _0201AF86 - 2; case 2 .short _0201AFA6 - _0201AF86 - 2; case 3 .short _0201AFAA - _0201AF86 - 2; case 4 .short _0201AFB2 - _0201AF86 - 2; case 5 _0201AF92: str r2, [r0, #0x24] bx lr _0201AF96: ldr r1, [r0, #0x24] add r1, r1, r2 str r1, [r0, #0x24] bx lr _0201AF9E: ldr r1, [r0, #0x24] sub r1, r1, r2 str r1, [r0, #0x24] bx lr _0201AFA6: str r2, [r0, #0x28] bx lr _0201AFAA: ldr r1, [r0, #0x28] add r1, r1, r2 str r1, [r0, #0x28] bx lr _0201AFB2: ldr r1, [r0, #0x28] sub r1, r1, r2 str r1, [r0, #0x28] _0201AFB8: bx lr .balign 4 thumb_func_start FUN_0201AFBC FUN_0201AFBC: ; 0x0201AFBC push {r4-r7, lr} sub sp, #0x1c str r1, [sp, #0x0] add r7, r0, #0x0 str r2, [sp, #0x4] ldr r0, [sp, #0x30] str r3, [sp, #0x8] str r0, [sp, #0x30] ldr r0, [sp, #0x0] add r4, r7, #0x0 mov r1, #0x2c add r5, r0, #0x0 mul r5, r1 add r4, #0x8 ldr r0, [r4, r5] cmp r0, #0x0 bne _0201AFE4 add sp, #0x1c mov r0, #0x0 pop {r4-r7, pc} _0201AFE4: ldr r0, [sp, #0x4] ldr r1, [sp, #0x8] add r2, r7, r5 lsl r0, r0, #0x15 lsl r1, r1, #0x15 ldrb r2, [r2, #0x1d] lsr r0, r0, #0x18 lsr r1, r1, #0x18 bl FUN_02017FFC add r6, r0, #0x0 ldr r0, [sp, #0x0] bl FUN_020187B0 str r0, [sp, #0x18] ldr r1, [sp, #0x4] mov r0, #0x7 and r1, r0 lsl r1, r1, #0x18 lsr r1, r1, #0x18 str r1, [sp, #0x14] ldr r1, [sp, #0x8] and r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 add r1, r7, r5 str r0, [sp, #0x10] ldrb r0, [r1, #0x1e] cmp r0, #0x0 bne _0201B096 ldr r0, [r4, r5] mov r1, #0x40 str r0, [sp, #0xc] ldr r0, [r7, #0x0] bl FUN_020169D8 add r4, r0, #0x0 lsl r0, r6, #0x1 ldr r1, [sp, #0xc] mov r12, r0 ldrh r0, [r1, r0] mov r3, #0x0 mov r6, #0xf lsl r0, r0, #0x16 lsr r1, r0, #0x11 ldr r0, [sp, #0x18] add r2, r0, r1 _0201B042: ldrb r5, [r2, r3] lsl r0, r3, #0x1 add r1, r4, r0 and r5, r6 strb r5, [r4, r0] ldrb r0, [r2, r3] asr r0, r0, #0x4 strb r0, [r1, #0x1] add r0, r3, #0x1 lsl r0, r0, #0x18 lsr r3, r0, #0x18 cmp r3, #0x20 blo _0201B042 ldr r2, [sp, #0xc] mov r1, r12 ldrh r1, [r2, r1] add r0, r7, #0x0 asr r2, r1, #0xa mov r1, #0x3 and r1, r2 lsl r1, r1, #0x18 lsr r1, r1, #0x18 add r2, r4, #0x0 bl FUN_0201B118 ldr r0, [sp, #0x10] lsl r1, r0, #0x3 ldr r0, [sp, #0x14] add r0, r0, r1 ldrb r5, [r4, r0] add r0, r4, #0x0 bl FUN_02016A18 ldr r0, [sp, #0x30] ldrh r2, [r0, #0x0] mov r0, #0x1 add r1, r0, #0x0 lsl r1, r5 tst r1, r2 beq _0201B10C add sp, #0x1c pop {r4-r7, pc} _0201B096: ldrb r0, [r1, #0x1c] cmp r0, #0x1 beq _0201B0E0 ldr r0, [r7, #0x0] ldr r4, [r4, r5] mov r1, #0x40 bl FUN_020169D8 lsl r6, r6, #0x1 ldrh r1, [r4, r6] add r5, r0, #0x0 lsl r1, r1, #0x16 lsr r2, r1, #0x10 ldr r1, [sp, #0x18] add r1, r1, r2 mov r2, #0x40 blx FUN_020DF438 ldrh r1, [r4, r6] add r0, r7, #0x0 asr r2, r1, #0xa mov r1, #0x3 and r1, r2 lsl r1, r1, #0x18 lsr r1, r1, #0x18 add r2, r5, #0x0 bl FUN_0201B118 ldr r0, [sp, #0x10] lsl r1, r0, #0x3 ldr r0, [sp, #0x14] add r0, r0, r1 ldrb r4, [r5, r0] add r0, r5, #0x0 bl FUN_02016A18 b _0201B0F4 _0201B0E0: ldr r1, [r4, r5] ldr r0, [sp, #0x10] ldrb r1, [r1, r6] lsl r0, r0, #0x3 lsl r2, r1, #0x6 ldr r1, [sp, #0x14] add r1, r1, r2 add r1, r0, r1 ldr r0, [sp, #0x18] ldrb r4, [r0, r1] _0201B0F4: ldr r0, [sp, #0x30] ldrh r2, [r0, #0x0] lsl r0, r2, #0x18 lsr r1, r0, #0x18 ldr r0, _0201B114 ; =0x0000FFFF _0201B0FE: cmp r2, r0 beq _0201B10C cmp r4, r1 bne _0201B0FE add sp, #0x1c mov r0, #0x1 pop {r4-r7, pc} _0201B10C: mov r0, #0x0 add sp, #0x1c pop {r4-r7, pc} nop _0201B114: .word 0x0000FFFF thumb_func_start FUN_0201B118 FUN_0201B118: ; 0x0201B118 push {r3-r7, lr} str r1, [sp, #0x0] ldr r1, [sp, #0x0] add r7, r2, #0x0 cmp r1, #0x0 beq _0201B1A4 ldr r0, [r0, #0x0] mov r1, #0x40 bl FUN_020169D8 add r4, r0, #0x0 ldr r0, [sp, #0x0] mov r1, #0x1 tst r0, r1 beq _0201B166 mov r0, #0x0 mov r5, #0x7 _0201B13A: lsl r3, r0, #0x3 add r2, r7, r3 mov r1, #0x0 add r3, r4, r3 _0201B142: sub r6, r5, r1 ldrb r6, [r2, r6] strb r6, [r3, r1] add r1, r1, #0x1 lsl r1, r1, #0x18 lsr r1, r1, #0x18 cmp r1, #0x8 blo _0201B142 add r0, r0, #0x1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r0, #0x8 blo _0201B13A add r0, r7, #0x0 add r1, r4, #0x0 mov r2, #0x40 blx FUN_020DF438 _0201B166: ldr r0, [sp, #0x0] mov r1, #0x2 tst r0, r1 beq _0201B19E mov r5, #0x0 mov r6, #0x7 _0201B172: lsl r0, r5, #0x3 add r3, r4, r0 sub r0, r6, r5 lsl r0, r0, #0x3 add r2, r7, r0 mov r1, #0x8 _0201B17E: ldrb r0, [r2, #0x0] add r2, r2, #0x1 strb r0, [r3, #0x0] add r3, r3, #0x1 sub r1, r1, #0x1 bne _0201B17E add r0, r5, #0x1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 cmp r5, #0x8 blo _0201B172 add r0, r7, #0x0 add r1, r4, #0x0 mov r2, #0x40 blx FUN_020DF438 _0201B19E: add r0, r4, #0x0 bl FUN_02016A18 _0201B1A4: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0201B1A8 FUN_0201B1A8: ; 0x0201B1A8 push {r3-r5, lr} add r5, r3, #0x0 add r4, r2, #0x0 bl FUN_020161A4 str r0, [r5, #0x0] blx FUN_020BC0FC cmp r0, #0x0 beq _0201B1D2 bl FUN_0201B254 cmp r0, #0x0 bne _0201B1D2 ldr r0, [r5, #0x0] ldr r1, [r0, #0x8] blx DC_FlushRange ldr r0, [r5, #0x0] blx FUN_020BB59C _0201B1D2: ldr r0, [r5, #0x0] blx FUN_020BC13C ldrh r1, [r0, #0xe] add r1, r0, r1 ldr r1, [r1, #0xc] add r0, r0, r1 str r0, [r4, #0x0] pop {r3-r5, pc} thumb_func_start FUN_0201B1E4 FUN_0201B1E4: ; 0x0201B1E4 push {r3-r5, lr} add r5, r1, #0x0 add r4, r0, #0x0 ldr r0, [r5, #0x0] blx FUN_020BC0FC cmp r0, #0x0 beq _0201B20A bl FUN_0201B254 cmp r0, #0x0 bne _0201B20A ldr r0, [r5, #0x0] ldr r1, [r0, #0x8] blx DC_FlushRange ldr r0, [r5, #0x0] blx FUN_020BB59C _0201B20A: ldr r0, [r5, #0x0] blx FUN_020BC13C ldrh r1, [r0, #0xe] add r1, r0, r1 ldr r1, [r1, #0xc] add r0, r0, r1 str r0, [r4, #0x0] pop {r3-r5, pc} thumb_func_start FUN_0201B21C FUN_0201B21C: ; 0x0201B21C push {r3-r5, lr} add r4, r3, #0x0 add r5, r2, #0x0 ldr r3, [sp, #0x10] add r2, r4, #0x0 bl FUN_0201B1A8 ldr r1, [r4, #0x0] add r0, r5, #0x0 blx FUN_020B80B4 pop {r3-r5, pc} thumb_func_start FUN_0201B234 FUN_0201B234: ; 0x0201B234 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r0, r4, #0x0 add r1, r2, #0x0 bl FUN_0201B1E4 cmp r4, #0x0 bne _0201B24A bl ErrorHandling _0201B24A: ldr r1, [r4, #0x0] add r0, r5, #0x0 blx FUN_020B80B4 pop {r3-r5, pc} thumb_func_start FUN_0201B254 FUN_0201B254: ; 0x0201B254 ldrh r2, [r0, #0x10] mov r1, #0x1 tst r2, r1 bne _0201B262 ldrh r0, [r0, #0x20] tst r0, r1 beq _0201B266 _0201B262: mov r0, #0x1 bx lr _0201B266: mov r0, #0x0 bx lr .balign 4 thumb_func_start FUN_0201B26C FUN_0201B26C: ; 0x0201B26C push {r4-r6, lr} add r5, r0, #0x0 add r0, r1, #0x0 add r4, r2, #0x0 add r6, r3, #0x0 blx FUN_020B8474 ldr r1, _0201B2A0 ; =0x021CEDD4 add r0, r4, #0x0 blx MI_Copy36B ldr r1, _0201B2A4 ; =0x021CED98 mov r0, #0xa4 ldr r2, [r1, #0x7c] bic r2, r0 add r0, r6, #0x0 str r2, [r1, #0x7c] blx FUN_020B844C blx FUN_020B849C add r0, r5, #0x0 blx FUN_020BAC98 pop {r4-r6, pc} nop _0201B2A0: .word 0x021CEDD4 _0201B2A4: .word 0x021CED98 thumb_func_start FUN_0201B2A8 FUN_0201B2A8: ; 0x0201B2A8 push {r4-r6, lr} add r5, r0, #0x0 add r0, r1, #0x0 add r4, r2, #0x0 add r6, r3, #0x0 blx FUN_020B8474 ldr r1, _0201B2E4 ; =0x021CEDD4 add r0, r4, #0x0 blx MI_Copy36B ldr r1, _0201B2E8 ; =0x021CED98 mov r0, #0xa4 ldr r2, [r1, #0x7c] bic r2, r0 str r2, [r1, #0x7c] add r0, r6, #0x0 blx FUN_020B844C blx FUN_020B849C mov r1, #0x0 ldr r0, [r5, #0x4] add r2, r1, #0x0 mov r3, #0x1 blx FUN_020BAFB8 blx FUN_020BB394 pop {r4-r6, pc} .balign 4 _0201B2E4: .word 0x021CEDD4 _0201B2E8: .word 0x021CED98 thumb_func_start FUN_0201B2EC FUN_0201B2EC: ; 0x0201B2EC push {r3, lr} sub sp, #0x8 mov r1, #0x4 str r1, [sp, #0x0] ldr r1, _0201B30C ; =FUN_0201B314 mov r2, #0x2 str r1, [sp, #0x4] mov r1, #0x0 add r3, r1, #0x0 bl FUN_02022318 ldr r1, _0201B310 ; =0x021C4D44 str r0, [r1, #0x0] add sp, #0x8 pop {r3, pc} nop _0201B30C: .word FUN_0201B314 _0201B310: .word 0x021C4D44 thumb_func_start FUN_0201B314 FUN_0201B314: ; 0x0201B314 push {r3, lr} mov r0, #0x1 add r1, r0, #0x0 bl FUN_0201E6E4 ldr r0, _0201B380 ; =0x04000008 mov r1, #0x3 ldrh r2, [r0, #0x0] bic r2, r1 mov r1, #0x1 orr r1, r2 strh r1, [r0, #0x0] add r0, #0x58 ldrh r2, [r0, #0x0] ldr r1, _0201B384 ; =0xFFFFCFFD and r2, r1 strh r2, [r0, #0x0] add r2, r1, #0x2 ldrh r3, [r0, #0x0] add r1, r1, #0x2 and r3, r2 mov r2, #0x10 orr r2, r3 strh r2, [r0, #0x0] ldrh r3, [r0, #0x0] ldr r2, _0201B388 ; =0x0000CFFB and r3, r2 strh r3, [r0, #0x0] ldrh r3, [r0, #0x0] sub r2, #0x1c and r3, r1 mov r1, #0x8 orr r1, r3 strh r1, [r0, #0x0] ldrh r1, [r0, #0x0] and r1, r2 strh r1, [r0, #0x0] mov r0, #0x0 add r1, r0, #0x0 add r2, r0, #0x0 add r3, r0, #0x0 blx FUN_020C7C28 mov r0, #0x0 ldr r2, _0201B38C ; =0x00007FFF add r1, r0, #0x0 mov r3, #0x3f str r0, [sp, #0x0] blx FUN_020C7B3C ldr r1, _0201B390 ; =0xBFFF0000 ldr r0, _0201B394 ; =0x04000580 str r1, [r0, #0x0] pop {r3, pc} .balign 4 _0201B380: .word 0x04000008 _0201B384: .word 0xFFFFCFFD _0201B388: .word 0x0000CFFB _0201B38C: .word 0x00007FFF _0201B390: .word 0xBFFF0000 _0201B394: .word 0x04000580 thumb_func_start FUN_0201B398 FUN_0201B398: ; 0x0201B398 ldr r0, _0201B3A0 ; =0x021C4D44 ldr r3, _0201B3A4 ; =FUN_020223BC ldr r0, [r0, #0x0] bx r3 .balign 4 _0201B3A0: .word 0x021C4D44 _0201B3A4: .word FUN_020223BC thumb_func_start FUN_0201B3A8 FUN_0201B3A8: ; 0x0201B3A8 push {r4, lr} add r4, r1, #0x0 blx FUN_020BC13C cmp r4, #0x0 beq _0201B3BE add r1, r4, #0x0 blx FUN_020B7790 mov r0, #0x1 pop {r4, pc} _0201B3BE: mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_0201B3C4 FUN_0201B3C4: ; 0x0201B3C4 push {r3-r7, lr} sub sp, #0x10 add r5, r0, #0x0 bne _0201B3D2 add sp, #0x10 mov r0, #0x0 pop {r3-r7, pc} _0201B3D2: mov r1, #0x0 str r1, [r5, #0x8] mov r1, #0x1 str r1, [sp, #0x8] str r1, [sp, #0x4] str r1, [sp, #0x0] cmp r5, #0x0 beq _0201B4D0 blx FUN_020B7E1C add r6, r0, #0x0 add r0, r5, #0x0 blx FUN_020B7E10 add r4, r0, #0x0 add r0, r5, #0x0 blx FUN_020B7CE4 str r0, [sp, #0xc] cmp r6, #0x0 beq _0201B412 ldr r3, _0201B4D8 ; =0x021064B8 mov r1, #0x0 ldr r3, [r3, #0x0] add r0, r6, #0x0 add r2, r1, #0x0 blx r3 add r7, r0, #0x0 bne _0201B414 mov r0, #0x0 str r0, [sp, #0x8] b _0201B414 _0201B412: mov r7, #0x0 _0201B414: cmp r4, #0x0 beq _0201B42E ldr r3, _0201B4D8 ; =0x021064B8 add r0, r4, #0x0 ldr r3, [r3, #0x0] mov r1, #0x1 mov r2, #0x0 blx r3 add r6, r0, #0x0 bne _0201B430 mov r0, #0x0 str r0, [sp, #0x4] b _0201B430 _0201B42E: mov r6, #0x0 _0201B430: ldr r0, [sp, #0xc] cmp r0, #0x0 beq _0201B450 ldr r3, _0201B4DC ; =0x021064C0 mov r1, #0x2 ldrh r2, [r5, #0x20] lsl r1, r1, #0xe ldr r3, [r3, #0x0] and r1, r2 mov r2, #0x0 blx r3 add r4, r0, #0x0 bne _0201B452 mov r0, #0x0 str r0, [sp, #0x0] b _0201B452 _0201B450: mov r4, #0x0 _0201B452: ldr r0, [sp, #0x8] cmp r0, #0x0 bne _0201B46E ldr r1, _0201B4E0 ; =0x021064BC add r0, r7, #0x0 ldr r1, [r1, #0x0] blx r1 cmp r0, #0x0 beq _0201B468 bl ErrorHandling _0201B468: add sp, #0x10 mov r0, #0x0 pop {r3-r7, pc} _0201B46E: ldr r0, [sp, #0x4] cmp r0, #0x0 bne _0201B48A ldr r1, _0201B4E0 ; =0x021064BC add r0, r6, #0x0 ldr r1, [r1, #0x0] blx r1 cmp r0, #0x0 beq _0201B484 bl ErrorHandling _0201B484: add sp, #0x10 mov r0, #0x0 pop {r3-r7, pc} _0201B48A: ldr r0, [sp, #0x0] cmp r0, #0x0 bne _0201B4A6 ldr r1, _0201B4E4 ; =0x021064C4 add r0, r4, #0x0 ldr r1, [r1, #0x0] blx r1 cmp r0, #0x0 beq _0201B4A0 bl ErrorHandling _0201B4A0: add sp, #0x10 mov r0, #0x0 pop {r3-r7, pc} _0201B4A6: add r0, r5, #0x0 add r1, r7, #0x0 add r2, r6, #0x0 blx FUN_020B7DFC add r0, r5, #0x0 add r1, r4, #0x0 blx FUN_020B7CDC ldr r1, [r5, #0x4] add r0, r5, #0x0 blx DC_FlushRange add r0, r5, #0x0 mov r1, #0x1 blx FUN_020B7D28 add r0, r5, #0x0 mov r1, #0x1 blx FUN_020B7C78 _0201B4D0: mov r0, #0x1 add sp, #0x10 pop {r3-r7, pc} nop _0201B4D8: .word 0x021064B8 _0201B4DC: .word 0x021064C0 _0201B4E0: .word 0x021064BC _0201B4E4: .word 0x021064C4 thumb_func_start FUN_0201B4E8 FUN_0201B4E8: ; 0x0201B4E8 str r0, [r1, #0x0] add r0, r0, #0x4 str r0, [r1, #0x8] str r0, [r1, #0x4] mov r0, #0x0 str r0, [r1, #0xc] str r0, [r1, #0x10] str r0, [r1, #0x14] bx lr .balign 4 thumb_func_start FUN_0201B4FC FUN_0201B4FC: ; 0x0201B4FC push {r3-r7, lr} add r5, r0, #0x0 ldrh r0, [r5, #0x0] mov r7, #0x0 cmp r0, #0x0 ble _0201B52A add r4, r7, #0x0 add r6, r7, #0x0 _0201B50C: ldr r1, [r5, #0x24] add r0, r5, #0x0 add r1, r1, r4 bl FUN_0201B4E8 ldr r0, [r5, #0x24] add r7, r7, #0x1 add r1, r0, r4 ldr r0, [r5, #0x20] add r4, #0x1c str r1, [r0, r6] ldrh r0, [r5, #0x0] add r6, r6, #0x4 cmp r7, r0 blt _0201B50C _0201B52A: mov r0, #0x0 strh r0, [r5, #0x2] pop {r3-r7, pc} thumb_func_start FUN_0201B530 FUN_0201B530: ; 0x0201B530 ldrh r3, [r0, #0x2] ldrh r1, [r0, #0x0] cmp r3, r1 bne _0201B53C mov r0, #0x0 bx lr _0201B53C: ldr r2, [r0, #0x20] lsl r1, r3, #0x2 ldr r2, [r2, r1] add r1, r3, #0x1 strh r1, [r0, #0x2] add r0, r2, #0x0 bx lr .balign 4 thumb_func_start FUN_0201B54C FUN_0201B54C: ; 0x0201B54C ldrh r2, [r0, #0x2] cmp r2, #0x0 bne _0201B556 mov r0, #0x0 bx lr _0201B556: str r0, [r1, #0x0] add r2, r0, #0x4 str r2, [r1, #0x8] str r2, [r1, #0x4] mov r2, #0x0 str r2, [r1, #0xc] str r2, [r1, #0x10] str r2, [r1, #0x14] ldrh r2, [r0, #0x2] sub r2, r2, #0x1 strh r2, [r0, #0x2] ldr r2, [r0, #0x20] ldrh r0, [r0, #0x2] lsl r0, r0, #0x2 str r1, [r2, r0] mov r0, #0x1 bx lr thumb_func_start FUN_0201B578 FUN_0201B578: ; 0x0201B578 lsl r0, r0, #0x5 add r0, #0x34 bx lr .balign 4 thumb_func_start FUN_0201B580 FUN_0201B580: ; 0x0201B580 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bne _0201B58C bl ErrorHandling _0201B58C: add r1, r4, #0x0 add r1, #0x34 lsl r0, r5, #0x2 str r1, [r4, #0x20] add r0, r1, r0 str r0, [r4, #0x24] strh r5, [r4, #0x0] mov r0, #0x0 strh r0, [r4, #0x2] str r0, [r4, #0x28] add r0, r4, #0x0 bl FUN_0201B5AC add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0201B5AC FUN_0201B5AC: ; 0x0201B5AC push {r4, lr} add r4, r0, #0x0 bl FUN_0201B4FC str r4, [r4, #0x4] add r0, r4, #0x4 str r0, [r4, #0xc] str r0, [r4, #0x8] mov r0, #0x0 str r0, [r4, #0x10] str r0, [r4, #0x14] str r0, [r4, #0x18] ldr r0, [r4, #0xc] str r0, [r4, #0x2c] pop {r4, pc} .balign 4 thumb_func_start FUN_0201B5CC FUN_0201B5CC: ; 0x0201B5CC push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0x28] cmp r0, #0x0 bne _0201B608 ldr r1, [r5, #0xc] add r4, r5, #0x4 str r1, [r5, #0x2c] cmp r1, r4 beq _0201B604 mov r6, #0x0 _0201B5E2: ldr r0, [r1, #0x8] str r0, [r5, #0x30] ldr r0, [r5, #0x2c] ldr r1, [r0, #0x18] cmp r1, #0x0 bne _0201B5FA ldr r2, [r0, #0x14] cmp r2, #0x0 beq _0201B5FC ldr r1, [r0, #0x10] blx r2 b _0201B5FC _0201B5FA: str r6, [r0, #0x18] _0201B5FC: ldr r1, [r5, #0x30] str r1, [r5, #0x2c] cmp r1, r4 bne _0201B5E2 _0201B604: mov r0, #0x0 str r0, [r1, #0x14] _0201B608: pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0201B60C FUN_0201B60C: ; 0x0201B60C push {r3-r5, lr} add r4, r0, #0x0 mov r5, #0x1 str r5, [r4, #0x28] bl FUN_0201B620 mov r1, #0x0 str r1, [r4, #0x28] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0201B620 FUN_0201B620: ; 0x0201B620 push {r3-r7, lr} add r5, r0, #0x0 add r6, r1, #0x0 add r7, r2, #0x0 add r4, r3, #0x0 bl FUN_0201B530 cmp r0, #0x0 bne _0201B636 mov r0, #0x0 pop {r3-r7, pc} _0201B636: str r4, [r0, #0xc] str r7, [r0, #0x10] str r6, [r0, #0x14] ldr r2, [r5, #0x2c] ldr r1, [r2, #0x14] cmp r1, #0x0 beq _0201B656 ldr r1, [r2, #0xc] cmp r1, r4 bhi _0201B650 mov r1, #0x1 str r1, [r0, #0x18] b _0201B65A _0201B650: mov r1, #0x0 str r1, [r0, #0x18] b _0201B65A _0201B656: mov r1, #0x0 str r1, [r0, #0x18] _0201B65A: ldr r3, [r5, #0xc] add r2, r5, #0x4 cmp r3, r2 beq _0201B686 ldr r4, [r0, #0xc] _0201B664: ldr r1, [r3, #0xc] cmp r1, r4 bls _0201B680 ldr r1, [r3, #0x4] str r1, [r0, #0x4] str r3, [r0, #0x8] ldr r1, [r3, #0x4] str r0, [r1, #0x8] str r0, [r3, #0x4] ldr r1, [r5, #0x30] cmp r3, r1 bne _0201B69E str r0, [r5, #0x30] pop {r3-r7, pc} _0201B680: ldr r3, [r3, #0x8] cmp r3, r2 bne _0201B664 _0201B686: ldr r2, [r5, #0x30] add r1, r5, #0x4 cmp r2, r1 bne _0201B690 str r0, [r5, #0x30] _0201B690: ldr r1, [r5, #0x8] str r1, [r0, #0x4] add r1, r5, #0x4 str r1, [r0, #0x8] ldr r1, [r5, #0x8] str r0, [r1, #0x8] str r0, [r5, #0x8] _0201B69E: pop {r3-r7, pc} thumb_func_start FUN_0201B6A0 FUN_0201B6A0: ; 0x0201B6A0 add r1, r0, #0x0 ldr r2, [r1, #0x0] ldr r0, [r2, #0x30] cmp r0, r1 bne _0201B6AE ldr r0, [r1, #0x8] str r0, [r2, #0x30] _0201B6AE: ldr r2, [r1, #0x8] ldr r0, [r1, #0x4] ldr r3, _0201B6C0 ; =0x0201B54D str r2, [r0, #0x8] ldr r2, [r1, #0x4] ldr r0, [r1, #0x8] str r2, [r0, #0x4] ldr r0, [r1, #0x0] bx r3 .balign 4 _0201B6C0: .word 0x0201B54D thumb_func_start FUN_0201B6C4 FUN_0201B6C4: ; 0x0201B6C4 str r1, [r0, #0x14] bx lr thumb_func_start FUN_0201B6C8 FUN_0201B6C8: ; 0x0201B6C8 ldr r0, [r0, #0x10] bx lr thumb_func_start FUN_0201B6CC FUN_0201B6CC: ; 0x0201B6CC ldr r0, [r0, #0xc] bx lr thumb_func_start FUN_0201B6D0 FUN_0201B6D0: ; 0x0201B6D0 push {r4-r7, lr} sub sp, #0x34 add r6, r1, #0x0 add r4, r0, #0x0 add r5, r2, #0x0 ldmia r6!, {r0-r1} add r2, sp, #0x1c stmia r2!, {r0-r1} ldr r0, [r6, #0x0] add r4, #0x14 str r0, [r2, #0x0] mov r0, #0x20 ldrsh r0, [r4, r0] add r7, r3, #0x0 mov r1, #0x1a str r0, [sp, #0x0] mov r0, #0x22 ldrsh r0, [r4, r0] mov r2, #0x1c mov r3, #0x1e str r0, [sp, #0x4] add r0, sp, #0x28 str r0, [sp, #0x8] mov r0, #0x18 ldrsh r0, [r4, r0] ldrsh r1, [r4, r1] ldrsh r2, [r4, r2] ldrsh r3, [r4, r3] bl FUN_0201B808 add r0, sp, #0x1c blx FUN_020B8474 ldr r1, _0201B764 ; =0x021CEDD4 add r0, r5, #0x0 blx MI_Copy36B ldr r1, _0201B768 ; =0x021CED98 mov r0, #0xa4 ldr r2, [r1, #0x7c] bic r2, r0 add r0, r7, #0x0 str r2, [r1, #0x7c] blx FUN_020B844C blx FUN_020B849C mov r1, #0x0 mov r0, #0x11 add r2, r1, #0x0 blx FUN_020BB1C0 ldr r0, [r4, #0x24] add r1, sp, #0x10 str r0, [sp, #0x10] str r0, [sp, #0x14] str r0, [sp, #0x18] mov r0, #0x1b mov r2, #0x3 blx FUN_020BB1C0 add r0, sp, #0x28 bl FUN_0201B82C add r4, r0, #0x0 mov r2, #0x1 mov r0, #0x12 add r1, sp, #0xc str r2, [sp, #0xc] blx FUN_020BB1C0 add r0, r4, #0x0 add sp, #0x34 pop {r4-r7, pc} .balign 4 _0201B764: .word 0x021CEDD4 _0201B768: .word 0x021CED98 thumb_func_start FUN_0201B76C FUN_0201B76C: ; 0x0201B76C push {r3-r5, lr} sub sp, #0x28 add r5, r0, #0x0 add r4, r1, #0x0 mov r0, #0x2 ldrsh r0, [r4, r0] str r0, [sp, #0x0] mov r0, #0x4 ldrsh r0, [r4, r0] str r0, [sp, #0x4] add r0, sp, #0x1c str r0, [sp, #0x8] mov r0, #0x0 ldrsh r3, [r4, r0] add r1, r0, #0x0 add r2, r0, #0x0 bl FUN_0201B808 add r0, r5, #0x0 blx FUN_020B8474 blx FUN_020B849C mov r1, #0x0 mov r0, #0x11 add r2, r1, #0x0 blx FUN_020BB1C0 ldr r0, [r4, #0x10] lsl r2, r0, #0xc ldr r0, [r4, #0xc] lsl r1, r0, #0xc ldr r0, [r4, #0x8] lsl r0, r0, #0xc str r0, [sp, #0x10] str r1, [sp, #0x14] str r2, [sp, #0x18] mov r0, #0x1b add r1, sp, #0x10 mov r2, #0x3 blx FUN_020BB1C0 add r0, sp, #0x1c bl FUN_0201B82C add r4, r0, #0x0 mov r2, #0x1 mov r0, #0x12 add r1, sp, #0xc str r2, [sp, #0xc] blx FUN_020BB1C0 add r0, r4, #0x0 add sp, #0x28 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0201B7DC FUN_0201B7DC: ; 0x0201B7DC push {r4-r6, lr} add r6, r3, #0x0 add r4, r2, #0x0 add r2, r6, #0x0 add r5, r1, #0x0 add r1, r6, #0x0 add r2, #0x8 bl FUN_0201B880 add r2, r6, #0x0 add r0, r5, #0x0 add r1, r6, #0x2 add r2, #0xc bl FUN_0201B880 add r1, r6, #0x4 add r6, #0x10 add r0, r4, #0x0 add r2, r6, #0x0 bl FUN_0201B880 pop {r4-r6, pc} thumb_func_start FUN_0201B808 FUN_0201B808: ; 0x0201B808 push {r3-r4} ldr r4, [sp, #0x10] strh r0, [r4, #0x0] strh r1, [r4, #0x2] ldr r1, _0201B828 ; =0xFFFFFFF8 strh r2, [r4, #0x4] strh r3, [r4, #0x6] add r1, sp mov r0, #0x10 ldrsh r0, [r1, r0] strh r0, [r4, #0x8] mov r0, #0x14 ldrsh r0, [r1, r0] strh r0, [r4, #0xa] pop {r3-r4} bx lr .balign 4 _0201B828: .word 0xFFFFFFF8 thumb_func_start FUN_0201B82C FUN_0201B82C: ; 0x0201B82C push {r3-r4, lr} sub sp, #0xc add r4, r0, #0x0 ldr r0, _0201B87C ; =0x000030C1 mov r2, #0x1 str r0, [sp, #0x4] mov r0, #0x29 add r1, sp, #0x4 str r2, [sp, #0x8] blx FUN_020BB1C0 mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x40 add r1, sp, #0x0 mov r2, #0x1 blx FUN_020BB1C0 mov r1, #0x0 mov r0, #0x41 add r2, r1, #0x0 blx FUN_020BB1C0 mov r0, #0x70 add r1, r4, #0x0 mov r2, #0x3 blx FUN_020BB1C0 blx FUN_020BB394 add r4, sp, #0x8 _0201B86A: add r0, r4, #0x0 blx FUN_020C7A14 cmp r0, #0x0 bne _0201B86A ldr r0, [sp, #0x8] add sp, #0xc pop {r3-r4, pc} nop _0201B87C: .word 0x000030C1 thumb_func_start FUN_0201B880 FUN_0201B880: ; 0x0201B880 push {r3-r4} ldr r4, _0201B8B4 ; =0x00007FFF mov r3, #0x0 cmp r0, r4 blo _0201B896 _0201B88A: add r3, r3, #0x1 lsl r3, r3, #0x18 lsr r0, r0, #0x1 lsr r3, r3, #0x18 cmp r0, r4 bhs _0201B88A _0201B896: strh r0, [r1, #0x0] mov r0, #0x1 mov r1, #0x0 str r0, [r2, #0x0] cmp r3, #0x0 ble _0201B8AE _0201B8A2: ldr r0, [r2, #0x0] add r1, r1, #0x1 lsl r0, r0, #0x1 str r0, [r2, #0x0] cmp r1, r3 blt _0201B8A2 _0201B8AE: pop {r3-r4} bx lr nop _0201B8B4: .word 0x00007FFF thumb_func_start FUN_0201B8B8 FUN_0201B8B8: ; 0x0201B8B8 push {r4, lr} add r4, r0, #0x0 ldrh r1, [r4, #0x0] ldr r0, _0201B8DC ; =0x0000FFFE cmp r1, r0 beq _0201B8C8 bl ErrorHandling _0201B8C8: ldrh r1, [r4, #0x0] ldr r0, _0201B8DC ; =0x0000FFFE cmp r1, r0 bne _0201B8D8 ldrh r0, [r4, #0x4] add r1, r4, #0x6 lsl r0, r0, #0x1 add r4, r1, r0 _0201B8D8: add r0, r4, #0x0 pop {r4, pc} .balign 4 _0201B8DC: .word 0x0000FFFE thumb_func_start FUN_0201B8E0 FUN_0201B8E0: ; 0x0201B8E0 push {r4, lr} add r4, r0, #0x0 ldrh r1, [r4, #0x0] ldr r0, _0201B8F4 ; =0x0000FFFE cmp r1, r0 beq _0201B8F0 bl ErrorHandling _0201B8F0: ldrh r0, [r4, #0x2] pop {r4, pc} .balign 4 _0201B8F4: .word 0x0000FFFE thumb_func_start FUN_0201B8F8 FUN_0201B8F8: ; 0x0201B8F8 push {r3, lr} bl FUN_0201B8E0 mov r1, #0xff lsl r1, r1, #0x8 and r1, r0 mov r0, #0x1 lsl r0, r0, #0x8 cmp r1, r0 bne _0201B910 mov r0, #0x1 pop {r3, pc} _0201B910: mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_0201B914 FUN_0201B914: ; 0x0201B914 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldrh r1, [r5, #0x0] ldr r0, _0201B938 ; =0x0000FFFE cmp r1, r0 beq _0201B926 bl ErrorHandling _0201B926: ldrh r0, [r5, #0x4] cmp r4, r0 blo _0201B930 bl ErrorHandling _0201B930: lsl r0, r4, #0x1 add r0, r5, r0 ldrh r0, [r0, #0x6] pop {r3-r5, pc} .balign 4 _0201B938: .word 0x0000FFFE thumb_func_start FUN_0201B93C FUN_0201B93C: ; 0x0201B93C mov r1, #0x5a lsl r1, r1, #0x2 cmp r0, r1 blo _0201B948 mov r0, #0x0 bx lr _0201B948: lsl r1, r0, #0x2 ldr r0, _0201B950 ; =0x020EDF50 ldr r0, [r0, r1] bx lr .balign 4 _0201B950: .word 0x020EDF50 thumb_func_start FUN_0201B954 FUN_0201B954: ; 0x0201B954 mov r1, #0x5a lsl r1, r1, #0x2 cmp r0, r1 blo _0201B960 mov r0, #0x0 bx lr _0201B960: add r0, #0x5a lsl r1, r0, #0x2 ldr r0, _0201B96C ; =0x020EDF50 ldr r0, [r0, r1] bx lr nop _0201B96C: .word 0x020EDF50 thumb_func_start FUN_0201B970 FUN_0201B970: ; 0x0201B970 push {r3, lr} mov r1, #0x5a lsl r1, r1, #0x2 blx _s32_div_f ldr r0, _0201B984 ; =0x020EDF50 lsl r1, r1, #0x2 ldr r0, [r0, r1] pop {r3, pc} nop _0201B984: .word 0x020EDF50 thumb_func_start FUN_0201B988 FUN_0201B988: ; 0x0201B988 push {r3, lr} mov r1, #0x5a lsl r1, r1, #0x2 blx _s32_div_f add r1, #0x5a ldr r0, _0201B99C ; =0x020EDF50 lsl r1, r1, #0x2 ldr r0, [r0, r1] pop {r3, pc} .balign 4 _0201B99C: .word 0x020EDF50 thumb_func_start FUN_0201B9A0 FUN_0201B9A0: ; 0x0201B9A0 push {r3, lr} mov r1, #0x5a lsl r1, r1, #0x2 blx _s32_div_f ldr r0, _0201B9B4 ; =0x020EDC7E lsl r1, r1, #0x1 ldrh r0, [r0, r1] pop {r3, pc} nop _0201B9B4: .word 0x020EDC7E thumb_func_start FUN_0201B9B8 FUN_0201B9B8: ; 0x0201B9B8 push {r3, lr} lsl r0, r0, #0x4 mov r1, #0x5a lsr r0, r0, #0x10 lsl r1, r1, #0x2 blx _s32_div_f ldr r0, _0201B9D0 ; =0x020EDF50 lsl r1, r1, #0x2 ldr r0, [r0, r1] pop {r3, pc} nop _0201B9D0: .word 0x020EDF50 thumb_func_start FUN_0201B9D4 FUN_0201B9D4: ; 0x0201B9D4 ldr r0, _0201B9DC ; =0x021C4D48 ldr r0, [r0, #0x0] bx lr nop _0201B9DC: .word 0x021C4D48 thumb_func_start FUN_0201B9E0 FUN_0201B9E0: ; 0x0201B9E0 ldr r1, _0201B9E8 ; =0x021C4D48 str r0, [r1, #0x0] bx lr nop _0201B9E8: .word 0x021C4D48 thumb_func_start FUN_0201B9EC FUN_0201B9EC: ; 0x0201B9EC ldr r1, _0201BA04 ; =0x021C4D48 ldr r0, _0201BA08 ; =0x41C64E6D ldr r2, [r1, #0x0] add r3, r2, #0x0 mul r3, r0 ldr r0, _0201BA0C ; =0x00006073 add r0, r3, r0 str r0, [r1, #0x0] lsr r0, r0, #0x10 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bx lr .balign 4 _0201BA04: .word 0x021C4D48 _0201BA08: .word 0x41C64E6D _0201BA0C: .word 0x00006073 thumb_func_start FUN_0201BA10 FUN_0201BA10: ; 0x0201BA10 ldr r1, _0201BA18 ; =0x6C078965 mul r1, r0 add r0, r1, #0x1 bx lr .balign 4 _0201BA18: .word 0x6C078965 thumb_func_start FUN_0201BA1C FUN_0201BA1C: ; 0x0201BA1C push {r4-r5} ldr r1, _0201BA50 ; =0x021C4D48 mov r4, #0x27 str r0, [r1, #0x4] ldr r1, _0201BA54 ; =0x02105BA8 mov r0, #0x1 str r0, [r1, #0x0] ldr r1, _0201BA58 ; =0x021C4D50 ldr r3, _0201BA5C ; =0x6C078965 lsl r4, r4, #0x4 _0201BA30: sub r2, r1, #0x4 ldr r5, [r2, #0x0] lsr r2, r5, #0x1e eor r2, r5 add r5, r2, #0x0 mul r5, r3 add r2, r0, r5 add r0, r0, #0x1 stmia r1!, {r2} cmp r0, r4 blt _0201BA30 ldr r1, _0201BA54 ; =0x02105BA8 str r0, [r1, #0x0] pop {r4-r5} bx lr nop _0201BA50: .word 0x021C4D48 _0201BA54: .word 0x02105BA8 _0201BA58: .word 0x021C4D50 _0201BA5C: .word 0x6C078965 thumb_func_start FUN_0201BA60 FUN_0201BA60: ; 0x0201BA60 push {r3-r7, lr} ldr r0, _0201BB44 ; =0x02105BA8 ldr r1, [r0, #0x0] mov r0, #0x27 lsl r0, r0, #0x4 cmp r1, r0 blt _0201BB18 add r0, r0, #0x1 cmp r1, r0 bne _0201BA7A ldr r0, _0201BB48 ; =0x00001571 bl FUN_0201BA1C _0201BA7A: ldr r4, _0201BB4C ; =0x021C4D4C ldr r1, _0201BB50 ; =0x02105BAC ldr r5, _0201BB54 ; =0x7FFFFFFF ldr r6, _0201BB58 ; =0x00000634 mov r0, #0x0 _0201BA84: mov r2, #0x2 ldr r3, [r4, #0x0] lsl r2, r2, #0x1e and r3, r2 ldr r2, [r4, #0x4] add r0, r0, #0x1 and r2, r5 orr r3, r2 lsr r7, r3, #0x1 lsl r3, r3, #0x1f ldr r2, [r4, r6] lsr r3, r3, #0x1d ldr r3, [r1, r3] eor r2, r7 eor r2, r3 stmia r4!, {r2} cmp r0, #0xe3 blt _0201BA84 ldr r1, _0201BB5C ; =0x0000026F cmp r0, r1 bge _0201BAE4 ldr r2, _0201BB4C ; =0x021C4D4C lsl r1, r0, #0x2 add r1, r2, r1 mov r2, #0xe3 ldr r4, _0201BB50 ; =0x02105BAC ldr r3, _0201BB5C ; =0x0000026F lsl r2, r2, #0x2 _0201BABC: mov r5, #0x2 ldr r6, [r1, #0x0] lsl r5, r5, #0x1e and r5, r6 ldr r7, [r1, #0x4] ldr r6, _0201BB54 ; =0x7FFFFFFF add r0, r0, #0x1 and r6, r7 orr r6, r5 lsr r5, r6, #0x1 sub r7, r1, r2 lsl r6, r6, #0x1f ldr r7, [r7, #0x0] lsr r6, r6, #0x1d ldr r6, [r4, r6] eor r5, r7 eor r5, r6 stmia r1!, {r5} cmp r0, r3 blt _0201BABC _0201BAE4: ldr r2, _0201BB60 ; =0x021C56C8 mov r0, #0x2 ldr r1, [r2, #0x40] lsl r0, r0, #0x1e add r3, r1, #0x0 ldr r1, _0201BB64 ; =0x021C4D48 and r3, r0 ldr r1, [r1, #0x4] sub r0, r0, #0x1 and r0, r1 add r4, r3, #0x0 orr r4, r0 ldr r0, _0201BB68 ; =0x021C5348 ldr r1, [r0, #0x34] lsr r0, r4, #0x1 add r3, r1, #0x0 eor r3, r0 lsl r0, r4, #0x1f lsr r1, r0, #0x1d ldr r0, _0201BB50 ; =0x02105BAC ldr r0, [r0, r1] mov r1, #0x0 eor r0, r3 str r0, [r2, #0x40] ldr r0, _0201BB44 ; =0x02105BA8 str r1, [r0, #0x0] _0201BB18: ldr r0, _0201BB44 ; =0x02105BA8 ldr r2, [r0, #0x0] add r1, r2, #0x1 str r1, [r0, #0x0] ldr r0, _0201BB4C ; =0x021C4D4C lsl r1, r2, #0x2 ldr r1, [r0, r1] lsr r0, r1, #0xb add r2, r1, #0x0 eor r2, r0 ldr r0, _0201BB6C ; =0x9D2C5680 lsl r1, r2, #0x7 and r0, r1 eor r2, r0 ldr r0, _0201BB70 ; =0xEFC60000 lsl r1, r2, #0xf and r0, r1 add r1, r2, #0x0 eor r1, r0 lsr r0, r1, #0x12 eor r0, r1 pop {r3-r7, pc} .balign 4 _0201BB44: .word 0x02105BA8 _0201BB48: .word 0x00001571 _0201BB4C: .word 0x021C4D4C _0201BB50: .word 0x02105BAC _0201BB54: .word 0x7FFFFFFF _0201BB58: .word 0x00000634 _0201BB5C: .word 0x0000026F _0201BB60: .word 0x021C56C8 _0201BB64: .word 0x021C4D48 _0201BB68: .word 0x021C5348 _0201BB6C: .word 0x9D2C5680 _0201BB70: .word 0xEFC60000 thumb_func_start FUN_0201BB74 FUN_0201BB74: ; 0x0201BB74 push {r4-r6, lr} add r5, r0, #0x0 add r0, sp, #0x0 ldrb r0, [r0, #0x10] add r4, r2, #0x0 add r6, r3, #0x0 cmp r0, #0x1 bne _0201BB8E ldr r0, _0201BBC8 ; =0x0000FFFF mul r0, r1 lsl r0, r0, #0x8 lsr r1, r0, #0x10 b _0201BBA2 _0201BB8E: cmp r0, #0x2 bne _0201BBA2 ldr r0, _0201BBC8 ; =0x0000FFFF mul r0, r1 mov r1, #0x5a lsl r1, r1, #0x2 blx _u32_div_f lsl r0, r0, #0x10 lsr r1, r0, #0x10 _0201BBA2: asr r0, r1, #0x4 lsl r3, r0, #0x1 lsl r1, r3, #0x1 ldr r2, _0201BBCC ; =0x020FFA38 add r3, r3, #0x1 lsl r3, r3, #0x1 ldrsh r1, [r2, r1] ldrsh r2, [r2, r3] add r0, r5, #0x0 bl FUN_020C3EA4 add r0, r5, #0x0 add r1, r5, #0x0 add r2, r4, #0x0 add r3, r6, #0x0 blx FUN_020C3EB0 pop {r4-r6, pc} nop _0201BBC8: .word 0x0000FFFF _0201BBCC: .word 0x020FFA38 thumb_func_start FUN_0201BBD0 FUN_0201BBD0: ; 0x0201BBD0 push {r3-r7, lr} sub sp, #0x38 lsl r5, r0, #0xc lsl r4, r1, #0xc mov r1, #0x0 lsl r0, r2, #0xc lsl r6, r3, #0xc str r1, [sp, #0x34] str r0, [sp, #0x0] str r0, [sp, #0x20] str r1, [sp, #0x28] str r1, [sp, #0x8] str r1, [sp, #0xc] asr r1, r5, #0x1f add r0, r5, #0x0 asr r3, r6, #0x1f add r2, r6, #0x0 str r5, [sp, #0x2c] str r4, [sp, #0x30] str r6, [sp, #0x24] blx FUN_020EBC30 str r0, [sp, #0x4] add r2, r4, #0x0 ldr r0, [sp, #0x20] add r7, r1, #0x0 asr r1, r0, #0x1f asr r3, r2, #0x1f blx FUN_020EBC30 mov r2, #0x2 ldr r3, [sp, #0x4] lsl r2, r2, #0xa add r3, r3, r2 ldr r2, _0201BC80 ; =0x00000000 str r4, [sp, #0x2c] adc r7, r2 lsl r2, r7, #0x14 lsr r3, r3, #0xc orr r3, r2 mov r2, #0x2 lsl r2, r2, #0xa add r0, r0, r2 ldr r2, _0201BC80 ; =0x00000000 str r5, [sp, #0x30] adc r1, r2 lsl r1, r1, #0x14 lsr r0, r0, #0xc orr r0, r1 sub r2, r3, r0 ldr r1, [sp, #0x8] ldr r0, [sp, #0xc] str r2, [sp, #0x10] add r0, r1, r0 add r7, r2, r0 mov r0, #0x0 str r0, [sp, #0x34] add r0, sp, #0x2c add r1, sp, #0x14 blx FUN_020C5288 mov r1, #0x0 ldr r0, [sp, #0x0] str r1, [sp, #0x34] str r0, [sp, #0x20] str r1, [sp, #0x28] add r0, sp, #0x20 add r1, sp, #0x2c add r2, sp, #0x8 str r5, [sp, #0x2c] str r4, [sp, #0x30] str r6, [sp, #0x24] blx FUN_020C5600 add r0, sp, #0x14 add r1, sp, #0x8 blx FUN_020C5588 asr r0, r0, #0xc bpl _0201BC72 neg r0, r0 _0201BC72: cmp r7, #0x0 bgt _0201BC7C mov r1, #0x0 mvn r1, r1 mul r0, r1 _0201BC7C: add sp, #0x38 pop {r3-r7, pc} .balign 4 _0201BC80: .word 0x00000000 thumb_func_start FUN_0201BC84 FUN_0201BC84: ; 0x0201BC84 push {r3-r5, lr} lsl r0, r0, #0xd add r4, r1, #0x0 ldr r2, _0201BCB4 ; =0x0000323D asr r1, r0, #0x1f mov r3, #0x0 blx FUN_020EBC30 add r5, r0, #0x0 ldr r0, _0201BCB8 ; =0x0000FFFF mov r2, #0x2 mov r3, #0x0 lsl r2, r2, #0xa mul r0, r4 add r2, r5, r2 adc r1, r3 lsl r1, r1, #0x14 lsr r2, r2, #0xc orr r2, r1 asr r1, r2, #0xc blx _s32_div_f pop {r3-r5, pc} nop _0201BCB4: .word 0x0000323D _0201BCB8: .word 0x0000FFFF thumb_func_start FUN_0201BCBC FUN_0201BCBC: ; 0x0201BCBC ldr r1, _0201BCC4 ; =0x02105BB4 str r0, [r1, #0x0] bx lr nop _0201BCC4: .word 0x02105BB4 thumb_func_start FUN_0201BCC8 FUN_0201BCC8: ; 0x0201BCC8 push {r4-r6, lr} ldr r4, _0201BCF8 ; =0x021C5714 mov r5, #0x0 _0201BCCE: ldr r3, [r4, #0x0] cmp r3, #0x0 bne _0201BCE8 ldr r6, _0201BCF8 ; =0x021C5714 lsl r4, r5, #0x2 bl FUN_0200CA7C str r0, [r6, r4] ldr r0, [r6, r4] cmp r0, #0x0 bne _0201BCF0 mov r5, #0x8 b _0201BCF0 _0201BCE8: add r5, r5, #0x1 add r4, r4, #0x4 cmp r5, #0x8 blt _0201BCCE _0201BCF0: lsl r0, r5, #0x18 lsr r0, r0, #0x18 pop {r4-r6, pc} nop _0201BCF8: .word 0x021C5714 thumb_func_start FUN_0201BCFC FUN_0201BCFC: ; 0x0201BCFC push {r4-r6, lr} add r5, r0, #0x0 cmp r5, #0x8 blo _0201BD08 bl ErrorHandling _0201BD08: ldr r6, _0201BD40 ; =0x021C5714 lsl r4, r5, #0x2 ldr r0, [r6, r4] cmp r0, #0x0 bne _0201BD16 bl ErrorHandling _0201BD16: cmp r5, #0x8 bhs _0201BD3C ldr r0, [r6, r4] cmp r0, #0x0 beq _0201BD3C bl FUN_0201B6C8 add r5, r0, #0x0 beq _0201BD32 bl FUN_0201C238 add r0, r5, #0x0 bl FUN_02016A18 _0201BD32: ldr r0, [r6, r4] bl FUN_0200CAB4 mov r0, #0x0 str r0, [r6, r4] _0201BD3C: pop {r4-r6, pc} nop _0201BD40: .word 0x021C5714 thumb_func_start FUN_0201BD44 FUN_0201BD44: ; 0x0201BD44 lsl r1, r0, #0x2 ldr r0, _0201BD58 ; =0x021C5714 ldr r0, [r0, r1] cmp r0, #0x0 beq _0201BD52 mov r0, #0x1 bx lr _0201BD52: mov r0, #0x0 bx lr nop _0201BD58: .word 0x021C5714 thumb_func_start FUN_0201BD5C FUN_0201BD5C: ; 0x0201BD5C mov r1, #0x0 ldr r2, _0201BD6C ; =0x021C5714 add r0, r1, #0x0 _0201BD62: add r1, r1, #0x1 stmia r2!, {r0} cmp r1, #0x8 blt _0201BD62 bx lr .balign 4 _0201BD6C: .word 0x021C5714 thumb_func_start FUN_0201BD70 FUN_0201BD70: ; 0x0201BD70 push {r3, lr} bl FUN_0201BD44 lsl r0, r0, #0x18 lsr r0, r0, #0x18 pop {r3, pc} thumb_func_start FUN_0201BD7C FUN_0201BD7C: ; 0x0201BD7C ldr r3, _0201BD80 ; =FUN_0201BCFC bx r3 .balign 4 _0201BD80: .word FUN_0201BCFC thumb_func_start FUN_0201BD84 FUN_0201BD84: ; 0x0201BD84 push {r3, lr} sub sp, #0x18 str r0, [sp, #0x4] lsl r0, r3, #0x18 lsr r3, r0, #0x18 ldr r0, [sp, #0x20] str r2, [sp, #0x0] add r2, sp, #0x0 strb r1, [r2, #0x9] lsl r0, r0, #0x18 strb r3, [r2, #0xa] lsr r0, r0, #0x18 strb r0, [r2, #0xb] strb r3, [r2, #0xc] strb r0, [r2, #0xd] ldr r0, _0201BDDC ; =0x02105BB4 lsl r1, r1, #0x3 ldr r0, [r0, #0x0] add r1, r0, r1 ldrb r0, [r1, #0x2] strb r0, [r2, #0xe] ldrb r0, [r1, #0x3] strb r0, [r2, #0xf] ldrb r0, [r1, #0x4] strb r0, [r2, #0x10] ldrb r0, [r1, #0x5] strb r0, [r2, #0x11] ldrb r0, [r1, #0x6] strb r0, [r2, #0x12] ldrb r0, [r1, #0x7] ldr r1, [sp, #0x24] strb r0, [r2, #0x13] mov r0, #0x0 strh r0, [r2, #0x14] strb r0, [r2, #0x16] mov r0, #0xff strb r0, [r2, #0x17] ldr r2, [sp, #0x28] add r0, sp, #0x0 bl FUN_0201BE98 add sp, #0x18 pop {r3, pc} nop _0201BDDC: .word 0x02105BB4 thumb_func_start FUN_0201BDE0 FUN_0201BDE0: ; 0x0201BDE0 push {r3, lr} sub sp, #0x18 str r0, [sp, #0x4] lsl r0, r3, #0x18 lsr r3, r0, #0x18 ldr r0, [sp, #0x20] str r2, [sp, #0x0] add r2, sp, #0x0 strb r1, [r2, #0x9] lsl r0, r0, #0x18 strb r3, [r2, #0xa] lsr r0, r0, #0x18 strb r0, [r2, #0xb] strb r3, [r2, #0xc] strb r0, [r2, #0xd] ldr r0, _0201BE38 ; =0x02105BB4 lsl r1, r1, #0x3 ldr r0, [r0, #0x0] add r1, r0, r1 ldrb r0, [r1, #0x2] strb r0, [r2, #0xe] ldrb r0, [r1, #0x3] strb r0, [r2, #0xf] ldrb r0, [r1, #0x4] ldr r1, [sp, #0x28] strb r0, [r2, #0x10] lsr r0, r1, #0x10 strb r0, [r2, #0x11] lsr r0, r1, #0x8 strb r0, [r2, #0x13] strb r1, [r2, #0x12] mov r0, #0x0 strh r0, [r2, #0x14] strb r0, [r2, #0x16] mov r0, #0xff strb r0, [r2, #0x17] ldr r1, [sp, #0x24] ldr r2, [sp, #0x2c] add r0, sp, #0x0 bl FUN_0201BE98 add sp, #0x18 pop {r3, pc} nop _0201BE38: .word 0x02105BB4 thumb_func_start FUN_0201BE3C FUN_0201BE3C: ; 0x0201BE3C push {r3, lr} sub sp, #0x18 str r0, [sp, #0x4] lsl r0, r3, #0x18 lsr r3, r0, #0x18 ldr r0, [sp, #0x20] str r2, [sp, #0x0] add r2, sp, #0x0 strb r1, [r2, #0x9] lsl r0, r0, #0x18 strb r3, [r2, #0xa] lsr r0, r0, #0x18 strb r0, [r2, #0xb] strb r3, [r2, #0xc] strb r0, [r2, #0xd] ldr r0, [sp, #0x2c] strb r0, [r2, #0xe] ldr r0, [sp, #0x30] strb r0, [r2, #0xf] ldr r0, _0201BE94 ; =0x02105BB4 ldr r3, [r0, #0x0] lsl r0, r1, #0x3 add r0, r3, r0 ldrb r0, [r0, #0x4] ldr r1, [sp, #0x28] strb r0, [r2, #0x10] lsr r0, r1, #0x10 strb r0, [r2, #0x11] lsr r0, r1, #0x8 strb r0, [r2, #0x13] strb r1, [r2, #0x12] mov r0, #0x0 strh r0, [r2, #0x14] strb r0, [r2, #0x16] mov r0, #0xff strb r0, [r2, #0x17] ldr r1, [sp, #0x24] ldr r2, [sp, #0x34] add r0, sp, #0x0 bl FUN_0201BE98 add sp, #0x18 pop {r3, pc} nop _0201BE94: .word 0x02105BB4 thumb_func_start FUN_0201BE98 FUN_0201BE98: ; 0x0201BE98 push {r3-r7, lr} add r7, r0, #0x0 ldr r0, _0201BFD0 ; =0x02105BB4 add r6, r1, #0x0 ldr r0, [r0, #0x0] add r5, r2, #0x0 cmp r0, #0x0 bne _0201BEAC mov r0, #0xff pop {r3-r7, pc} _0201BEAC: mov r0, #0x0 mov r1, #0x30 bl FUN_02016998 add r4, r0, #0x0 mov r1, #0x1 add r0, #0x23 strb r1, [r0, #0x0] add r0, r4, #0x0 mov r3, #0x0 add r0, #0x24 strb r3, [r0, #0x0] add r0, r4, #0x0 add r0, #0x25 ldrb r2, [r0, #0x0] mov r0, #0x7f bic r2, r0 lsl r0, r6, #0x18 lsr r1, r0, #0x18 mov r0, #0x7f and r0, r1 add r1, r2, #0x0 orr r1, r0 add r0, r4, #0x0 add r0, #0x25 strb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x26 strb r3, [r0, #0x0] add r0, r4, #0x0 add r0, #0x27 strb r3, [r0, #0x0] add r0, r4, #0x0 add r0, #0x29 strb r3, [r0, #0x0] add r1, r3, #0x0 _0201BEF4: add r0, r4, r3 add r3, r3, #0x1 strb r1, [r0, #0x1c] cmp r3, #0x7 blt _0201BEF4 add r3, r7, #0x0 add r2, r4, #0x0 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 r0, [r4, #0x0] bl FUN_02021F2C str r0, [r4, #0x0] ldr r0, _0201BFD4 ; =0x021C570C str r5, [r4, #0x18] mov r1, #0x0 strb r1, [r0, #0x0] add r0, r4, #0x0 bl FUN_0201C1A8 cmp r6, #0xff beq _0201BF74 cmp r6, #0x0 beq _0201BF74 add r0, r4, #0x0 add r0, #0x25 ldrb r2, [r0, #0x0] mov r1, #0x7f add r0, r2, #0x0 bic r0, r1 lsl r1, r2, #0x19 lsr r1, r1, #0x19 add r1, #0xff lsl r1, r1, #0x18 lsr r2, r1, #0x18 mov r1, #0x7f and r1, r2 orr r1, r0 add r0, r4, #0x0 add r0, #0x25 strb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x25 ldrb r1, [r0, #0x0] mov r0, #0x80 mov r2, #0x1 orr r1, r0 add r0, r4, #0x0 add r0, #0x25 strb r1, [r0, #0x0] ldr r0, _0201BFD8 ; =FUN_0201BFDC add r1, r4, #0x0 bl FUN_0201BCC8 add r1, r4, #0x0 add r1, #0x28 strb r0, [r1, #0x0] add r4, #0x28 ldrb r0, [r4, #0x0] pop {r3-r7, pc} _0201BF74: add r0, r4, #0x0 add r0, #0x25 ldrb r1, [r0, #0x0] mov r0, #0x7f mov r5, #0x0 bic r1, r0 add r0, r4, #0x0 add r0, #0x25 strb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x25 ldrb r1, [r0, #0x0] mov r0, #0x80 bic r1, r0 add r0, r4, #0x0 add r0, #0x25 strb r1, [r0, #0x0] ldrb r0, [r7, #0x11] ldrb r1, [r7, #0x12] ldrb r2, [r7, #0x13] bl FUN_0201C05C mov r7, #0x1 lsl r7, r7, #0xa _0201BFA4: add r0, r4, #0x0 bl FUN_0201C048 cmp r0, #0x1 beq _0201BFB4 add r5, r5, #0x1 cmp r5, r7 blo _0201BFA4 _0201BFB4: cmp r6, #0xff beq _0201BFBE ldr r0, [r4, #0x4] bl FUN_020191D0 _0201BFBE: add r0, r4, #0x0 bl FUN_0201C238 add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x8 pop {r3-r7, pc} nop _0201BFD0: .word 0x02105BB4 _0201BFD4: .word 0x021C570C _0201BFD8: .word FUN_0201BFDC thumb_func_start FUN_0201BFDC FUN_0201BFDC: ; 0x0201BFDC push {r4, lr} ldr r0, _0201C044 ; =0x021C570C add r4, r1, #0x0 ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _0201C042 add r0, r4, #0x0 add r0, #0x29 ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _0201C036 mov r0, #0x0 strh r0, [r4, #0x2a] ldrb r0, [r4, #0x11] ldrb r1, [r4, #0x12] ldrb r2, [r4, #0x13] bl FUN_0201C05C add r0, r4, #0x0 bl FUN_0201C048 cmp r0, #0x0 beq _0201C014 cmp r0, #0x1 beq _0201C02C cmp r0, #0x3 beq _0201C01A pop {r4, pc} _0201C014: ldr r0, [r4, #0x4] bl FUN_020191D0 _0201C01A: ldr r2, [r4, #0x18] cmp r2, #0x0 beq _0201C042 ldrh r1, [r4, #0x2a] add r0, r4, #0x0 blx r2 add r4, #0x29 strb r0, [r4, #0x0] pop {r4, pc} _0201C02C: add r4, #0x28 ldrb r0, [r4, #0x0] bl FUN_0201BCFC pop {r4, pc} _0201C036: ldrh r1, [r4, #0x2a] ldr r2, [r4, #0x18] add r0, r4, #0x0 blx r2 add r4, #0x29 strb r0, [r4, #0x0] _0201C042: pop {r4, pc} .balign 4 _0201C044: .word 0x021C570C thumb_func_start FUN_0201C048 FUN_0201C048: ; 0x0201C048 push {r4, lr} add r4, r0, #0x0 _0201C04C: ldrb r0, [r4, #0x9] add r1, r4, #0x0 bl FUN_02002DB0 cmp r0, #0x2 beq _0201C04C pop {r4, pc} .balign 4 thumb_func_start FUN_0201C05C FUN_0201C05C: ; 0x0201C05C push {r3-r7, lr} sub sp, #0x30 ldr r3, _0201C0F8 ; =0x021C570C mov r5, #0x0 str r5, [sp, #0x20] str r0, [sp, #0x24] str r2, [sp, #0x28] str r1, [sp, #0x2c] strh r1, [r3, #0x6] strh r0, [r3, #0x2] add r0, sp, #0x20 strh r2, [r3, #0x4] str r5, [sp, #0x14] str r0, [sp, #0x8] mov r12, r0 mov lr, r0 str r0, [sp, #0x18] _0201C07E: mov r0, #0x0 str r0, [sp, #0x10] ldr r0, [sp, #0x18] str r0, [sp, #0x4] ldr r0, [sp, #0x8] ldr r0, [r0, #0x0] str r0, [sp, #0x1c] _0201C08C: mov r0, #0x0 str r0, [sp, #0xc] mov r0, lr str r0, [sp, #0x0] ldr r0, [sp, #0x4] ldr r0, [r0, #0x0] lsl r7, r0, #0x4 _0201C09A: ldr r0, [sp, #0x0] mov r3, #0x0 ldr r0, [r0, #0x0] mov r4, r12 lsl r6, r0, #0x8 _0201C0A4: ldr r0, [r4, #0x0] add r1, r7, #0x0 lsl r0, r0, #0xc orr r0, r6 orr r1, r0 ldr r0, [sp, #0x1c] add r3, r3, #0x1 add r2, r0, #0x0 orr r2, r1 lsl r1, r5, #0x1 ldr r0, _0201C0FC ; =0x021C5734 add r5, r5, #0x1 add r4, r4, #0x4 strh r2, [r0, r1] cmp r3, #0x4 blt _0201C0A4 ldr r0, [sp, #0x0] add r0, r0, #0x4 str r0, [sp, #0x0] ldr r0, [sp, #0xc] add r0, r0, #0x1 str r0, [sp, #0xc] cmp r0, #0x4 blt _0201C09A ldr r0, [sp, #0x4] add r0, r0, #0x4 str r0, [sp, #0x4] ldr r0, [sp, #0x10] add r0, r0, #0x1 str r0, [sp, #0x10] cmp r0, #0x4 blt _0201C08C ldr r0, [sp, #0x8] add r0, r0, #0x4 str r0, [sp, #0x8] ldr r0, [sp, #0x14] add r0, r0, #0x1 str r0, [sp, #0x14] cmp r0, #0x4 blt _0201C07E add sp, #0x30 pop {r3-r7, pc} .balign 4 _0201C0F8: .word 0x021C570C _0201C0FC: .word 0x021C5734 thumb_func_start FUN_0201C100 FUN_0201C100: ; 0x0201C100 ldrh r2, [r0, #0x0] lsr r2, r2, #0x8 lsl r3, r2, #0x1 ldr r2, _0201C1A4 ; =0x021C5734 ldrh r3, [r2, r3] strh r3, [r1, #0x0] ldrh r3, [r0, #0x0] lsl r3, r3, #0x18 lsr r3, r3, #0x17 ldrh r3, [r2, r3] strh r3, [r1, #0x2] ldrh r3, [r0, #0x2] lsr r3, r3, #0x8 lsl r3, r3, #0x1 ldrh r3, [r2, r3] strh r3, [r1, #0x4] ldrh r3, [r0, #0x2] lsl r3, r3, #0x18 lsr r3, r3, #0x17 ldrh r3, [r2, r3] strh r3, [r1, #0x6] ldrh r3, [r0, #0x4] lsr r3, r3, #0x8 lsl r3, r3, #0x1 ldrh r3, [r2, r3] strh r3, [r1, #0x8] ldrh r3, [r0, #0x4] lsl r3, r3, #0x18 lsr r3, r3, #0x17 ldrh r3, [r2, r3] strh r3, [r1, #0xa] ldrh r3, [r0, #0x6] lsr r3, r3, #0x8 lsl r3, r3, #0x1 ldrh r3, [r2, r3] strh r3, [r1, #0xc] ldrh r3, [r0, #0x6] lsl r3, r3, #0x18 lsr r3, r3, #0x17 ldrh r3, [r2, r3] strh r3, [r1, #0xe] ldrh r3, [r0, #0x8] lsr r3, r3, #0x8 lsl r3, r3, #0x1 ldrh r3, [r2, r3] strh r3, [r1, #0x10] ldrh r3, [r0, #0x8] lsl r3, r3, #0x18 lsr r3, r3, #0x17 ldrh r3, [r2, r3] strh r3, [r1, #0x12] ldrh r3, [r0, #0xa] lsr r3, r3, #0x8 lsl r3, r3, #0x1 ldrh r3, [r2, r3] strh r3, [r1, #0x14] ldrh r3, [r0, #0xa] lsl r3, r3, #0x18 lsr r3, r3, #0x17 ldrh r3, [r2, r3] strh r3, [r1, #0x16] ldrh r3, [r0, #0xc] lsr r3, r3, #0x8 lsl r3, r3, #0x1 ldrh r3, [r2, r3] strh r3, [r1, #0x18] ldrh r3, [r0, #0xc] lsl r3, r3, #0x18 lsr r3, r3, #0x17 ldrh r3, [r2, r3] strh r3, [r1, #0x1a] ldrh r3, [r0, #0xe] lsr r3, r3, #0x8 lsl r3, r3, #0x1 ldrh r3, [r2, r3] strh r3, [r1, #0x1c] ldrh r0, [r0, #0xe] lsl r0, r0, #0x18 lsr r0, r0, #0x17 ldrh r0, [r2, r0] strh r0, [r1, #0x1e] bx lr .balign 4 _0201C1A4: .word 0x021C5734 thumb_func_start FUN_0201C1A8 FUN_0201C1A8: ; 0x0201C1A8 mov r1, #0x0 str r1, [r0, #0x2c] bx lr .balign 4 thumb_func_start FUN_0201C1B0 FUN_0201C1B0: ; 0x0201C1B0 push {r3-r5, lr} sub sp, #0x8 mov r1, #0x6 mov r0, #0x0 lsl r1, r1, #0x8 bl FUN_02016998 mov r2, #0x0 add r5, r0, #0x0 str r2, [sp, #0x0] mov r0, #0xe mov r1, #0x5 add r3, sp, #0x4 bl FUN_02006BB0 add r4, r0, #0x0 ldr r0, [sp, #0x4] mov r2, #0x6 ldr r0, [r0, #0x14] add r1, r5, #0x0 lsl r2, r2, #0x8 blx MIi_CpuCopy32 add r0, r4, #0x0 bl FUN_02016A18 add r0, r5, #0x0 add sp, #0x8 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0201C1EC FUN_0201C1EC: ; 0x0201C1EC push {r3-r7, lr} sub sp, #0x18 add r4, r0, #0x0 ldr r0, [r4, #0x2c] add r7, r3, #0x0 ldr r5, [r4, #0x4] cmp r0, #0x0 bne _0201C202 bl FUN_0201C1B0 str r0, [r4, #0x2c] _0201C202: mov r0, #0x6 lsl r0, r0, #0x6 add r6, r7, #0x0 mul r6, r0 add r0, r5, #0x0 ldr r4, [r4, #0x2c] bl FUN_0201AB0C sub r0, r0, #0x3 lsl r0, r0, #0x13 mov r1, #0x18 lsr r2, r0, #0x10 str r1, [sp, #0x0] mov r0, #0x20 str r0, [sp, #0x4] str r2, [sp, #0x8] mov r2, #0x0 str r2, [sp, #0xc] str r1, [sp, #0x10] str r0, [sp, #0x14] add r0, r5, #0x0 add r1, r4, r6 add r3, r2, #0x0 bl FUN_02019658 add sp, #0x18 pop {r3-r7, pc} thumb_func_start FUN_0201C238 FUN_0201C238: ; 0x0201C238 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x2c] cmp r0, #0x0 beq _0201C24A bl FUN_02016A18 mov r0, #0x0 str r0, [r4, #0x2c] _0201C24A: pop {r4, pc} thumb_func_start FUN_0201C24C FUN_0201C24C: ; 0x0201C24C push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _0201C298 ; =0x021C5934 add r4, r1, #0x0 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _0201C25E bl ErrorHandling _0201C25E: add r0, r4, #0x0 mov r1, #0xc bl FUN_02016998 ldr r1, _0201C298 ; =0x021C5934 cmp r0, #0x0 str r0, [r1, #0x0] bne _0201C272 bl ErrorHandling _0201C272: add r0, r4, #0x0 lsl r1, r5, #0x4 bl FUN_02016998 ldr r1, _0201C298 ; =0x021C5934 ldr r2, [r1, #0x0] str r0, [r2, #0x8] ldr r0, [r1, #0x0] mov r2, #0x0 str r5, [r0, #0x0] ldr r0, [r1, #0x0] str r2, [r0, #0x4] ldr r1, [r1, #0x0] ldr r0, [r1, #0x8] ldr r1, [r1, #0x0] blx FUN_020AEF1C pop {r3-r5, pc} nop _0201C298: .word 0x021C5934 thumb_func_start FUN_0201C29C FUN_0201C29C: ; 0x0201C29C push {r3, lr} ldr r0, _0201C2C4 ; =0x021C5934 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _0201C2AA bl ErrorHandling _0201C2AA: ldr r0, _0201C2C4 ; =0x021C5934 ldr r0, [r0, #0x0] ldr r0, [r0, #0x8] bl FUN_02016A18 ldr r0, _0201C2C4 ; =0x021C5934 ldr r0, [r0, #0x0] bl FUN_02016A18 ldr r0, _0201C2C4 ; =0x021C5934 mov r1, #0x0 str r1, [r0, #0x0] pop {r3, pc} .balign 4 _0201C2C4: .word 0x021C5934 thumb_func_start FUN_0201C2C8 FUN_0201C2C8: ; 0x0201C2C8 push {r3-r7, lr} add r5, r0, #0x0 ldr r0, _0201C308 ; =0x021C5934 add r4, r1, #0x0 ldr r0, [r0, #0x0] add r6, r2, #0x0 add r7, r3, #0x0 cmp r0, #0x0 bne _0201C2DE bl ErrorHandling _0201C2DE: ldr r1, _0201C308 ; =0x021C5934 ldr r0, [r1, #0x0] ldr r2, [r0, #0x4] add r2, r2, #0x1 str r2, [r0, #0x4] ldr r0, [r1, #0x0] ldr r1, [r0, #0x4] ldr r0, [r0, #0x0] cmp r1, r0 blo _0201C2FA bl ErrorHandling mov r0, #0x0 pop {r3-r7, pc} _0201C2FA: add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 add r3, r7, #0x0 blx FUN_020AEE40 pop {r3-r7, pc} .balign 4 _0201C308: .word 0x021C5934 thumb_func_start FUN_0201C30C FUN_0201C30C: ; 0x0201C30C push {r3, lr} ldr r0, _0201C324 ; =0x021C5934 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _0201C322 blx FUN_020AEEB8 ldr r0, _0201C324 ; =0x021C5934 mov r1, #0x0 ldr r0, [r0, #0x0] str r1, [r0, #0x4] _0201C322: pop {r3, pc} .balign 4 _0201C324: .word 0x021C5934 thumb_func_start FUN_0201C328 FUN_0201C328: ; 0x0201C328 push {r3-r5, lr} add r4, r0, #0x0 add r0, r1, #0x0 mov r1, #0x30 mul r1, r4 bl FUN_02016998 ldr r2, _0201C344 ; =FUN_0201C358 add r1, r4, #0x0 add r5, r0, #0x0 blx FUN_020B4568 add r0, r5, #0x0 pop {r3-r5, pc} .balign 4 _0201C344: .word FUN_0201C358 thumb_func_start FUN_0201C348 FUN_0201C348: ; 0x0201C348 ldr r3, _0201C34C ; =FUN_020B442C bx r3 .balign 4 _0201C34C: .word FUN_020B442C thumb_func_start FUN_0201C350 FUN_0201C350: ; 0x0201C350 ldr r3, _0201C354 ; =FUN_02016A18 bx r3 .balign 4 _0201C354: .word FUN_02016A18 thumb_func_start FUN_0201C358 FUN_0201C358: ; 0x0201C358 push {r3, lr} bl FUN_0201C2C8 pop {r3, pc} thumb_func_start FUN_0201C360 FUN_0201C360: ; 0x0201C360 push {r4-r6, lr} add r6, r1, #0x0 add r5, r0, #0x0 add r0, r6, #0x0 mov r1, #0x8 bl FUN_02016998 mov r1, #0x14 add r4, r0, #0x0 add r0, r6, #0x0 mul r1, r5 bl FUN_02016998 str r0, [r4, #0x0] mov r6, #0x0 str r5, [r4, #0x4] cmp r5, #0x0 ble _0201C398 add r5, r6, #0x0 _0201C386: ldr r0, [r4, #0x0] add r0, r0, r5 bl FUN_0201C444 ldr r0, [r4, #0x4] add r6, r6, #0x1 add r5, #0x14 cmp r6, r0 blt _0201C386 _0201C398: add r0, r4, #0x0 pop {r4-r6, pc} thumb_func_start FUN_0201C39C FUN_0201C39C: ; 0x0201C39C push {r4, lr} add r4, r0, #0x0 bl FUN_0201C414 ldr r0, [r4, #0x0] bl FUN_02016A18 add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} .balign 4 thumb_func_start FUN_0201C3B4 FUN_0201C3B4: ; 0x0201C3B4 push {r3-r7, lr} add r5, r0, #0x0 ldr r0, [r5, #0x4] mov r4, #0x0 add r7, r2, #0x0 mov r12, r1 add r6, r3, #0x0 add r2, r4, #0x0 cmp r0, #0x0 ble _0201C3E2 ldr r5, [r5, #0x0] add r3, r5, #0x0 _0201C3CC: ldr r1, [r3, #0x0] cmp r1, #0x0 bne _0201C3DA mov r0, #0x14 mul r0, r2 add r4, r5, r0 b _0201C3E2 _0201C3DA: add r2, r2, #0x1 add r3, #0x14 cmp r2, r0 blt _0201C3CC _0201C3E2: cmp r4, #0x0 bne _0201C3EA mov r0, #0x0 pop {r3-r7, pc} _0201C3EA: mov r0, r12 str r0, [r4, #0x0] str r7, [r4, #0x4] ldr r1, [sp, #0x1c] ldr r0, [sp, #0x18] str r6, [r4, #0x8] str r0, [r4, #0xc] mov r0, #0xff strb r0, [r4, #0x10] lsl r1, r1, #0x4 strb r0, [r4, #0x11] add r0, r4, #0x0 lsr r1, r1, #0x10 bl FUN_0201C454 add r0, r4, #0x0 pop {r3-r7, pc} thumb_func_start FUN_0201C40C FUN_0201C40C: ; 0x0201C40C ldr r3, _0201C410 ; =FUN_0201C444 bx r3 .balign 4 _0201C410: .word FUN_0201C444 thumb_func_start FUN_0201C414 FUN_0201C414: ; 0x0201C414 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0x4] mov r6, #0x0 cmp r0, #0x0 ble _0201C434 add r4, r6, #0x0 _0201C422: ldr r0, [r5, #0x0] add r0, r0, r4 bl FUN_0201C444 ldr r0, [r5, #0x4] add r6, r6, #0x1 add r4, #0x14 cmp r6, r0 blt _0201C422 _0201C434: pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0201C438 FUN_0201C438: ; 0x0201C438 ldr r3, _0201C440 ; =FUN_0201C454 lsl r1, r1, #0x4 lsr r1, r1, #0x10 bx r3 .balign 4 _0201C440: .word FUN_0201C454 thumb_func_start FUN_0201C444 FUN_0201C444: ; 0x0201C444 mov r1, #0x0 str r1, [r0, #0x0] str r1, [r0, #0x4] str r1, [r0, #0x8] str r1, [r0, #0xc] strb r1, [r0, #0x10] strb r1, [r0, #0x11] bx lr thumb_func_start FUN_0201C454 FUN_0201C454: ; 0x0201C454 push {r3-r4, lr} sub sp, #0x4 add r4, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_02022244 add r2, sp, #0x0 strb r0, [r2, #0x0] lsr r0, r0, #0x8 strb r0, [r2, #0x1] ldrb r0, [r2, #0x0] add r1, sp, #0x0 add r1, #0x2 strb r0, [r2, #0x2] ldrb r0, [r2, #0x1] strb r0, [r2, #0x3] ldrb r3, [r4, #0x10] ldrb r0, [r2, #0x2] cmp r3, r0 beq _0201C482 add r0, r4, #0x0 bl FUN_0201C49C _0201C482: add r0, sp, #0x0 ldrb r1, [r4, #0x11] ldrb r0, [r0, #0x3] cmp r1, r0 beq _0201C496 add r1, sp, #0x0 add r0, r4, #0x0 add r1, #0x2 bl FUN_0201C4C8 _0201C496: add sp, #0x4 pop {r3-r4, pc} .balign 4 thumb_func_start FUN_0201C49C FUN_0201C49C: ; 0x0201C49C push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_0201C4F4 ldr r3, [r5, #0x8] add r2, r0, #0x0 lsl r1, r3, #0x10 ldr r6, _0201C4C4 ; =0x7FFF0000 mov r0, #0x0 and r3, r6 lsr r3, r3, #0x10 lsr r1, r1, #0xd lsl r3, r3, #0x4 bl FUN_0201C2C8 ldrb r0, [r4, #0x0] strb r0, [r5, #0x10] pop {r4-r6, pc} nop _0201C4C4: .word 0x7FFF0000 thumb_func_start FUN_0201C4C8 FUN_0201C4C8: ; 0x0201C4C8 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_0201C500 ldr r3, [r5, #0xc] add r2, r0, #0x0 lsl r1, r3, #0x10 ldr r6, _0201C4F0 ; =0xFFFF0000 mov r0, #0x1 and r3, r6 lsr r3, r3, #0x10 lsr r1, r1, #0xd lsl r3, r3, #0x3 bl FUN_0201C2C8 ldrb r0, [r4, #0x1] strb r0, [r5, #0x11] pop {r4-r6, pc} nop _0201C4F0: .word 0xFFFF0000 thumb_func_start FUN_0201C4F4 FUN_0201C4F4: ; 0x0201C4F4 ldr r3, _0201C4FC ; =0x0201C50D ldr r0, [r0, #0x4] ldrb r1, [r1, #0x0] bx r3 .balign 4 _0201C4FC: .word 0x0201C50D thumb_func_start FUN_0201C500 FUN_0201C500: ; 0x0201C500 ldr r3, _0201C508 ; =0x0201C541 ldr r0, [r0, #0x4] ldrb r1, [r1, #0x1] bx r3 .balign 4 _0201C508: .word 0x0201C541 thumb_func_start FUN_0201C50C FUN_0201C50C: ; 0x0201C50C push {r3-r4} add r2, r0, #0x0 add r2, #0x42 ldrh r2, [r2, #0x0] add r4, r0, #0x0 add r4, #0x3c add r3, r4, r2 ldrh r2, [r4, r2] add r3, r3, #0x4 mul r1, r2 add r3, r3, r1 bne _0201C52A mov r0, #0x0 pop {r3-r4} bx lr _0201C52A: ldr r1, [r0, #0x14] add r2, r0, r1 ldr r1, [r3, #0x0] ldr r0, [r0, #0x8] lsl r1, r1, #0x10 lsr r1, r1, #0x10 add r0, r1, r0 lsl r0, r0, #0x3 add r0, r2, r0 pop {r3-r4} bx lr thumb_func_start FUN_0201C540 FUN_0201C540: ; 0x0201C540 push {r3-r4} ldrh r2, [r0, #0x34] add r4, r0, r2 ldrh r2, [r4, #0x6] add r3, r4, r2 ldrh r2, [r4, r2] add r3, r3, #0x4 mul r1, r2 add r2, r3, r1 bne _0201C55A mov r0, #0x0 pop {r3-r4} bx lr _0201C55A: ldr r1, [r0, #0x38] add r1, r0, r1 ldrh r0, [r2, #0x0] lsl r0, r0, #0x3 add r0, r1, r0 pop {r3-r4} bx lr thumb_func_start FUN_0201C568 FUN_0201C568: ; 0x0201C568 ldr r1, [r1, #0x0] ldr r0, [r0, #0x8] lsl r1, r1, #0x10 lsl r0, r0, #0x10 lsr r1, r1, #0xd lsr r0, r0, #0xd add r0, r1, r0 bx lr thumb_func_start FUN_0201C578 FUN_0201C578: ; 0x0201C578 push {r4, lr} sub sp, #0x10 add r4, r0, #0x0 add r0, sp, #0x0 bl FUN_0201C750 add r0, r4, #0x0 add r0, #0x3c add r1, sp, #0x0 blx FUN_020BC2A0 add r1, r0, #0x0 bne _0201C598 add sp, #0x10 mov r0, #0x0 pop {r4, pc} _0201C598: add r0, r4, #0x0 bl FUN_0201C568 add sp, #0x10 pop {r4, pc} .balign 4 thumb_func_start FUN_0201C5A4 FUN_0201C5A4: ; 0x0201C5A4 push {r3, lr} ldr r0, [r1, #0x0] mov r1, #0x7 lsl r1, r1, #0x1a and r1, r0 lsr r1, r1, #0x1a cmp r1, #0x4 bhi _0201C5DA add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0201C5C0: ; jump table (using 16-bit offset) .short _0201C5DA - _0201C5C0 - 2; case 0 .short _0201C5D6 - _0201C5C0 - 2; case 1 .short _0201C5CA - _0201C5C0 - 2; case 2 .short _0201C5CE - _0201C5C0 - 2; case 3 .short _0201C5D2 - _0201C5C0 - 2; case 4 _0201C5CA: mov r1, #0x4 b _0201C5DE _0201C5CE: mov r1, #0x2 b _0201C5DE _0201C5D2: mov r1, #0x1 b _0201C5DE _0201C5D6: mov r1, #0x1 b _0201C5DE _0201C5DA: mov r0, #0x0 pop {r3, pc} _0201C5DE: mov r3, #0x7 lsl r3, r3, #0x14 add r2, r0, #0x0 and r2, r3 lsl r3, r3, #0x3 and r0, r3 lsr r2, r2, #0x14 lsr r0, r0, #0x17 lsl r2, r2, #0x4 lsl r0, r0, #0x4 mul r0, r2 blx _u32_div_f pop {r3, pc} .balign 4 thumb_func_start FUN_0201C5FC FUN_0201C5FC: ; 0x0201C5FC push {r4, lr} sub sp, #0x10 add r4, r0, #0x0 add r0, sp, #0x0 bl FUN_0201C750 add r0, r4, #0x0 add r0, #0x3c add r1, sp, #0x0 blx FUN_020BC2A0 add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_0201C5A4 add sp, #0x10 pop {r4, pc} .balign 4 thumb_func_start FUN_0201C620 FUN_0201C620: ; 0x0201C620 ldrb r3, [r0, #0x0] strb r3, [r1, #0x0] ldrb r0, [r0, #0x1] strb r0, [r2, #0x0] bx lr .balign 4 thumb_func_start FUN_0201C62C FUN_0201C62C: ; 0x0201C62C ldrb r3, [r0, #0x2] strb r3, [r1, #0x0] ldrb r0, [r0, #0x3] strb r0, [r2, #0x0] bx lr .balign 4 thumb_func_start FUN_0201C638 FUN_0201C638: ; 0x0201C638 push {r4-r5} ldr r5, _0201C6B0 ; =0xFFFFFFF8 ldr r4, [sp, #0xc] add r5, sp ldrb r5, [r5, #0x18] cmp r5, #0x3 bhi _0201C678 add r5, r5, r5 add r5, pc ldrh r5, [r5, #0x6] lsl r5, r5, #0x10 asr r5, r5, #0x10 add pc, r5 _0201C652: ; jump table (using 16-bit offset) .short _0201C65A - _0201C652 - 2; case 0 .short _0201C662 - _0201C652 - 2; case 1 .short _0201C66A - _0201C652 - 2; case 2 .short _0201C672 - _0201C652 - 2; case 3 _0201C65A: lsl r4, r4, #0x3 add r4, r0, r4 ldrb r4, [r4, #0x4] b _0201C678 _0201C662: lsl r4, r4, #0x3 add r4, r0, r4 ldrb r4, [r4, #0x5] b _0201C678 _0201C66A: lsl r4, r4, #0x3 add r4, r0, r4 ldrb r4, [r4, #0x6] b _0201C678 _0201C672: lsl r4, r4, #0x3 add r4, r0, r4 ldrb r4, [r4, #0x7] _0201C678: cmp r1, #0x0 beq _0201C682 lsl r5, r4, #0x3 ldrb r5, [r0, r5] strb r5, [r1, #0x0] _0201C682: cmp r2, #0x0 beq _0201C68E lsl r1, r4, #0x3 add r1, r0, r1 ldrb r1, [r1, #0x1] strb r1, [r2, #0x0] _0201C68E: cmp r3, #0x0 beq _0201C69A lsl r1, r4, #0x3 add r1, r0, r1 ldrb r1, [r1, #0x2] strb r1, [r3, #0x0] _0201C69A: ldr r2, [sp, #0x8] cmp r2, #0x0 beq _0201C6A8 lsl r1, r4, #0x3 add r0, r0, r1 ldrb r0, [r0, #0x3] strb r0, [r2, #0x0] _0201C6A8: add r0, r4, #0x0 pop {r4-r5} bx lr nop _0201C6B0: .word 0xFFFFFFF8 thumb_func_start FUN_0201C6B4 FUN_0201C6B4: ; 0x0201C6B4 mov r2, #0x0 ldrsb r1, [r0, r2] cmp r1, #0x0 beq _0201C6C4 _0201C6BC: add r2, r2, #0x1 ldrsb r1, [r0, r2] cmp r1, #0x0 bne _0201C6BC _0201C6C4: add r0, r2, #0x0 bx lr thumb_func_start FUN_0201C6C8 FUN_0201C6C8: ; 0x0201C6C8 push {r4-r5} mov r4, #0x1 mov r3, #0x0 lsl r4, r4, #0x8 _0201C6D0: ldrsb r5, [r0, r3] strb r5, [r1, r3] ldrsb r5, [r0, r3] cmp r2, r5 beq _0201C6DE cmp r5, #0x0 bne _0201C6FE _0201C6DE: mov r4, #0x0 strb r4, [r1, r3] cmp r2, #0xd bne _0201C6F6 add r1, r3, #0x1 ldrsb r1, [r0, r1] cmp r1, #0xa bne _0201C6F6 add r1, r3, #0x2 add r0, r0, r1 pop {r4-r5} bx lr _0201C6F6: add r1, r3, #0x1 add r0, r0, r1 pop {r4-r5} bx lr _0201C6FE: add r3, r3, #0x1 cmp r3, r4 blt _0201C6D0 mov r0, #0x0 pop {r4-r5} bx lr .balign 4 thumb_func_start FUN_0201C70C FUN_0201C70C: ; 0x0201C70C push {r4-r6, lr} add r4, r0, #0x0 bl FUN_0201C6B4 mov r5, #0x1 mov r6, #0x0 sub r3, r0, #0x1 bmi _0201C74A sub r1, r6, #0x1 mov r0, #0xa _0201C720: ldrsb r2, [r4, r3] cmp r2, #0x30 blt _0201C732 cmp r2, #0x39 bgt _0201C732 sub r2, #0x30 mul r2, r5 add r6, r6, r2 b _0201C744 _0201C732: cmp r3, #0x0 bne _0201C73E cmp r2, #0x2d bne _0201C744 mul r6, r1 b _0201C744 _0201C73E: mov r0, #0x0 mvn r0, r0 pop {r4-r6, pc} _0201C744: mul r5, r0 sub r3, r3, #0x1 bpl _0201C720 _0201C74A: add r0, r6, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0201C750 FUN_0201C750: ; 0x0201C750 push {r3-r5, lr} mov r2, #0x0 add r4, r1, #0x0 add r5, r0, #0x0 add r1, r2, #0x0 _0201C75A: lsl r0, r2, #0x2 str r1, [r5, r0] add r0, r2, #0x1 lsl r0, r0, #0x18 lsr r2, r0, #0x18 cmp r2, #0x4 blo _0201C75A add r0, r4, #0x0 bl FUN_0201C6B4 lsl r0, r0, #0x18 lsr r1, r0, #0x18 ldr r2, _0201C788 ; =0x00000000 beq _0201C784 _0201C776: ldrsb r0, [r4, r2] strb r0, [r5, r2] add r0, r2, #0x1 lsl r0, r0, #0x18 lsr r2, r0, #0x18 cmp r2, r1 blo _0201C776 _0201C784: pop {r3-r5, pc} nop _0201C788: .word 0x00000000 thumb_func_start FUN_0201C78C FUN_0201C78C: ; 0x0201C78C ldr r1, _0201C79C ; =0x00000121 cmp r0, r1 bhs _0201C796 mov r0, #0x1 bx lr _0201C796: mov r0, #0x0 bx lr nop _0201C79C: .word 0x00000121 thumb_func_start FUN_0201C7A0 FUN_0201C7A0: ; 0x0201C7A0 cmp r0, r1 blt _0201C7A6 add r0, r1, #0x0 _0201C7A6: bx lr thumb_func_start FUN_0201C7A8 FUN_0201C7A8: ; 0x0201C7A8 cmp r0, r1 bgt _0201C7AE add r0, r1, #0x0 _0201C7AE: bx lr thumb_func_start FUN_0201C7B0 FUN_0201C7B0: ; 0x0201C7B0 push {r3-r7, lr} sub sp, #0x30 add r4, r1, #0x0 add r1, sp, #0x24 blx FUN_020C5288 add r0, r4, #0x0 add r1, sp, #0x18 blx FUN_020C5288 ldr r0, [sp, #0x24] ldr r4, [sp, #0x18] str r0, [sp, #0x0] asr r0, r0, #0x1f str r0, [sp, #0x4] ldr r0, [sp, #0x20] asr r6, r4, #0x1f str r0, [sp, #0x8] asr r0, r0, #0x1f str r0, [sp, #0xc] ldr r0, [sp, #0x2c] ldr r2, [sp, #0x8] asr r7, r0, #0x1f ldr r3, [sp, #0xc] add r1, r7, #0x0 str r0, [sp, #0x10] blx FUN_020EBC30 str r0, [sp, #0x14] add r5, r1, #0x0 ldr r0, [sp, #0x0] ldr r1, [sp, #0x4] add r2, r4, #0x0 add r3, r6, #0x0 blx FUN_020EBC30 mov r2, #0x2 ldr r3, [sp, #0x14] lsl r2, r2, #0xa add r3, r3, r2 ldr r2, _0201C874 ; =0x00000000 adc r5, r2 lsl r2, r5, #0x14 lsr r3, r3, #0xc orr r3, r2 mov r2, #0x2 lsl r2, r2, #0xa add r0, r0, r2 ldr r2, _0201C874 ; =0x00000000 adc r1, r2 lsl r1, r1, #0x14 lsr r0, r0, #0xc orr r0, r1 add r5, r3, r0 ldr r0, [sp, #0x10] add r1, r7, #0x0 add r2, r4, #0x0 add r3, r6, #0x0 blx FUN_020EBC30 add r6, r0, #0x0 add r4, r1, #0x0 ldr r0, [sp, #0x0] ldr r1, [sp, #0x4] ldr r2, [sp, #0x8] ldr r3, [sp, #0xc] blx FUN_020EBC30 mov r2, #0x2 mov r3, #0x0 lsl r2, r2, #0xa add r6, r6, r2 adc r4, r3 lsl r4, r4, #0x14 lsr r6, r6, #0xc orr r6, r4 add r4, r0, r2 adc r1, r3 lsl r0, r1, #0x14 lsr r1, r4, #0xc orr r1, r0 sub r0, r6, r1 cmp r5, #0x0 bne _0201C86A cmp r0, #0x0 ble _0201C862 add sp, #0x30 lsl r0, r2, #0x3 pop {r3-r7, pc} _0201C862: mov r0, #0x3 add sp, #0x30 lsl r0, r0, #0xe pop {r3-r7, pc} _0201C86A: add r1, r5, #0x0 blx FUN_020C5668 add sp, #0x30 pop {r3-r7, pc} .balign 4 _0201C874: .word 0x00000000 thumb_func_start FUN_0201C878 FUN_0201C878: ; 0x0201C878 push {r0-r3} push {r4-r7, lr} sub sp, #0x54 ldr r0, [sp, #0x7c] ldr r2, [sp, #0x80] str r0, [sp, #0x8] ldr r0, [sp, #0x94] ldr r1, [sp, #0x8c] str r0, [sp, #0xc] ldr r0, [sp, #0x88] ldr r4, [sp, #0x70] str r0, [sp, #0x10] sub r0, r2, r1 str r0, [sp, #0x14] asr r0, r0, #0x1f str r0, [sp, #0x18] ldr r0, [sp, #0x8] asr r0, r0, #0x1f str r0, [sp, #0x1c] ldr r0, [sp, #0x74] sub r3, r0, r2 sub r0, r1, r0 str r3, [sp, #0x20] asr r3, r3, #0x1f str r3, [sp, #0x24] ldr r3, [sp, #0xc] str r0, [sp, #0x2c] asr r0, r0, #0x1f str r0, [sp, #0x30] ldr r0, [sp, #0x10] asr r3, r3, #0x1f str r3, [sp, #0x28] asr r0, r0, #0x1f ldr r3, [sp, #0x68] str r0, [sp, #0x34] asr r0, r4, #0x1f str r0, [sp, #0x38] sub r2, r2, r3 ldr r0, [sp, #0x8] ldr r1, [sp, #0x1c] asr r3, r2, #0x1f blx FUN_020EBC30 add r7, r0, #0x0 add r6, r1, #0x0 ldr r3, [sp, #0x68] ldr r2, [sp, #0x74] ldr r0, [sp, #0x10] sub r2, r3, r2 ldr r1, [sp, #0x34] asr r3, r2, #0x1f blx FUN_020EBC30 add r5, r1, #0x0 str r0, [sp, #0x3c] ldr r1, [sp, #0x38] ldr r2, [sp, #0x20] ldr r3, [sp, #0x24] add r0, r4, #0x0 blx FUN_020EBC30 mov r2, #0x2 str r0, [sp, #0x4c] add r0, r1, #0x0 mov r1, #0x0 lsl r2, r2, #0xa add r3, r7, r2 adc r6, r1 lsl r2, r6, #0x14 lsr r3, r3, #0xc orr r3, r2 mov r2, #0x2 ldr r6, [sp, #0x3c] lsl r2, r2, #0xa add r2, r6, r2 adc r5, r1 mov r6, #0x2 lsl r5, r5, #0x14 lsr r2, r2, #0xc orr r2, r5 ldr r5, [sp, #0x4c] lsl r6, r6, #0xa add r5, r5, r6 adc r0, r1 lsl r0, r0, #0x14 lsr r1, r5, #0xc orr r1, r0 add r0, r2, r1 add r0, r3, r0 str r0, [sp, #0x4] ldr r3, [sp, #0x8c] ldr r2, [sp, #0x68] ldr r0, [sp, #0x10] sub r2, r3, r2 ldr r1, [sp, #0x34] asr r3, r2, #0x1f blx FUN_020EBC30 add r7, r0, #0x0 add r6, r1, #0x0 ldr r3, [sp, #0x68] ldr r2, [sp, #0x80] ldr r0, [sp, #0xc] sub r2, r3, r2 ldr r1, [sp, #0x28] asr r3, r2, #0x1f blx FUN_020EBC30 str r0, [sp, #0x40] add r5, r1, #0x0 ldr r1, [sp, #0x38] ldr r2, [sp, #0x14] ldr r3, [sp, #0x18] add r0, r4, #0x0 blx FUN_020EBC30 mov r2, #0x2 str r0, [sp, #0x50] add r0, r1, #0x0 mov r1, #0x0 lsl r2, r2, #0xa add r3, r7, r2 adc r6, r1 lsl r2, r6, #0x14 lsr r3, r3, #0xc orr r3, r2 mov r2, #0x2 ldr r6, [sp, #0x40] lsl r2, r2, #0xa add r2, r6, r2 adc r5, r1 mov r6, #0x2 lsl r5, r5, #0x14 lsr r2, r2, #0xc orr r2, r5 ldr r5, [sp, #0x50] lsl r6, r6, #0xa add r5, r5, r6 adc r0, r1 lsl r0, r0, #0x14 lsr r1, r5, #0xc orr r1, r0 add r0, r2, r1 add r0, r3, r0 str r0, [sp, #0x0] ldr r3, [sp, #0x74] ldr r2, [sp, #0x68] ldr r0, [sp, #0xc] sub r2, r3, r2 ldr r1, [sp, #0x28] asr r3, r2, #0x1f blx FUN_020EBC30 add r7, r0, #0x0 add r6, r1, #0x0 ldr r3, [sp, #0x68] ldr r2, [sp, #0x8c] ldr r0, [sp, #0x8] sub r2, r3, r2 ldr r1, [sp, #0x1c] asr r3, r2, #0x1f blx FUN_020EBC30 add r5, r1, #0x0 str r0, [sp, #0x44] ldr r1, [sp, #0x38] ldr r2, [sp, #0x2c] ldr r3, [sp, #0x30] add r0, r4, #0x0 blx FUN_020EBC30 mov r3, #0x2 mov r2, #0x0 lsl r3, r3, #0xa add r4, r7, r3 adc r6, r2 lsl r3, r6, #0x14 lsr r4, r4, #0xc orr r4, r3 mov r3, #0x2 ldr r6, [sp, #0x44] lsl r3, r3, #0xa add r3, r6, r3 adc r5, r2 lsl r5, r5, #0x14 lsr r3, r3, #0xc orr r3, r5 mov r5, #0x2 lsl r5, r5, #0xa add r5, r0, r5 adc r1, r2 lsl r0, r1, #0x14 lsr r1, r5, #0xc orr r1, r0 add r0, r3, r1 add r6, r4, r0 ldr r0, [sp, #0x10] ldr r1, [sp, #0x34] ldr r2, [sp, #0x2c] ldr r3, [sp, #0x30] blx FUN_020EBC30 add r7, r0, #0x0 add r5, r1, #0x0 ldr r0, [sp, #0xc] ldr r1, [sp, #0x28] ldr r2, [sp, #0x20] ldr r3, [sp, #0x24] blx FUN_020EBC30 str r0, [sp, #0x48] add r4, r1, #0x0 ldr r0, [sp, #0x8] ldr r1, [sp, #0x1c] ldr r2, [sp, #0x14] ldr r3, [sp, #0x18] blx FUN_020EBC30 mov r12, r0 mov r0, #0x2 add r2, r1, #0x0 mov r1, #0x0 lsl r0, r0, #0xa add r0, r7, r0 adc r5, r1 lsl r3, r5, #0x14 lsr r0, r0, #0xc orr r0, r3 mov r3, #0x2 ldr r5, [sp, #0x48] lsl r3, r3, #0xa add r3, r5, r3 adc r4, r1 lsl r4, r4, #0x14 lsr r3, r3, #0xc orr r3, r4 mov r4, #0x2 lsl r4, r4, #0xa mov r5, r12 add r4, r5, r4 adc r2, r1 lsl r2, r2, #0x14 lsr r4, r4, #0xc orr r4, r2 add r2, r3, r4 add r0, r0, r2 bpl _0201CA72 add sp, #0x54 add r0, r1, #0x0 pop {r4-r7} pop {r3} add sp, #0x10 bx r3 _0201CA72: ldr r0, [sp, #0x4] cmp r0, #0x0 bge _0201CA84 add sp, #0x54 add r0, r1, #0x0 pop {r4-r7} pop {r3} add sp, #0x10 bx r3 _0201CA84: ldr r0, [sp, #0x0] cmp r0, #0x0 bge _0201CA96 add sp, #0x54 add r0, r1, #0x0 pop {r4-r7} pop {r3} add sp, #0x10 bx r3 _0201CA96: cmp r6, #0x0 blt _0201CA9C mov r1, #0x1 _0201CA9C: add r0, r1, #0x0 add sp, #0x54 pop {r4-r7} pop {r3} add sp, #0x10 bx r3 thumb_func_start FUN_0201CAA8 FUN_0201CAA8: ; 0x0201CAA8 push {r4-r5, lr} sub sp, #0x24 add r4, r1, #0x0 ldr r1, [r4, #0x0] ldr r3, _0201CB1C ; =0x020FFA38 lsl r1, r1, #0x10 lsr r1, r1, #0x10 asr r1, r1, #0x4 lsl r2, r1, #0x1 lsl r1, r2, #0x1 add r2, r2, #0x1 lsl r2, r2, #0x1 ldrsh r1, [r3, r1] ldrsh r2, [r3, r2] add r5, r0, #0x0 bl FUN_020C3F38 ldr r0, [r4, #0x4] ldr r3, _0201CB1C ; =0x020FFA38 lsl r0, r0, #0x10 lsr r0, r0, #0x10 asr r0, r0, #0x4 lsl r2, r0, #0x1 lsl r1, r2, #0x1 add r2, r2, #0x1 lsl r2, r2, #0x1 ldrsh r1, [r3, r1] ldrsh r2, [r3, r2] add r0, sp, #0x0 bl FUN_020C3F54 add r0, r5, #0x0 add r1, sp, #0x0 add r2, r5, #0x0 blx FUN_020C400C ldr r0, [r4, #0x8] ldr r3, _0201CB1C ; =0x020FFA38 lsl r0, r0, #0x10 lsr r0, r0, #0x10 asr r0, r0, #0x4 lsl r2, r0, #0x1 lsl r1, r2, #0x1 add r2, r2, #0x1 lsl r2, r2, #0x1 ldrsh r1, [r3, r1] ldrsh r2, [r3, r2] add r0, sp, #0x0 bl FUN_020C3F70 add r0, r5, #0x0 add r1, sp, #0x0 add r2, r5, #0x0 blx FUN_020C400C add sp, #0x24 pop {r4-r5, pc} nop _0201CB1C: .word 0x020FFA38 thumb_func_start FUN_0201CB20 FUN_0201CB20: ; 0x0201CB20 push {r4-r7, lr} sub sp, #0x24 add r6, r1, #0x0 add r5, r2, #0x0 lsl r1, r6, #0x2 ldr r2, _0201CB78 ; =0x020EDF50 add r6, #0x5a add r4, r3, #0x0 lsl r3, r6, #0x2 ldr r1, [r2, r1] ldr r2, [r2, r3] add r7, r0, #0x0 bl FUN_020C3F38 lsl r1, r5, #0x2 ldr r3, _0201CB78 ; =0x020EDF50 add r5, #0x5a lsl r2, r5, #0x2 ldr r1, [r3, r1] ldr r2, [r3, r2] add r0, sp, #0x0 bl FUN_020C3F54 add r0, r7, #0x0 add r1, sp, #0x0 add r2, r7, #0x0 blx FUN_020C400C lsl r1, r4, #0x2 ldr r3, _0201CB78 ; =0x020EDF50 add r4, #0x5a lsl r2, r4, #0x2 ldr r1, [r3, r1] ldr r2, [r3, r2] add r0, sp, #0x0 bl FUN_020C3F70 add r0, r7, #0x0 add r1, sp, #0x0 add r2, r7, #0x0 blx FUN_020C400C add sp, #0x24 pop {r4-r7, pc} .balign 4 _0201CB78: .word 0x020EDF50 thumb_func_start FUN_0201CB7C FUN_0201CB7C: ; 0x0201CB7C push {r3-r7, lr} asr r0, r0, #0x4 add r7, r2, #0x0 lsl r2, r0, #0x1 add r6, r1, #0x0 lsl r0, r2, #0x1 ldr r1, _0201CBE8 ; =0x020FFA38 add r2, r2, #0x1 lsl r2, r2, #0x1 ldrsh r0, [r1, r0] ldrsh r1, [r1, r2] add r5, r3, #0x0 ldr r4, [sp, #0x18] blx FUN_020C50B8 add r2, r0, #0x0 asr r1, r6, #0x1f add r0, r6, #0x0 asr r3, r2, #0x1f blx FUN_020EBC30 mov r6, #0x2 mov r2, #0x0 lsl r6, r6, #0xa add r0, r0, r6 adc r1, r2 lsl r1, r1, #0x14 lsr r0, r0, #0xc orr r0, r1 asr r3, r0, #0x1f lsr r1, r0, #0x13 lsl r3, r3, #0xd orr r3, r1 lsl r0, r0, #0xd add r0, r0, r6 adc r3, r2 lsl r1, r3, #0x14 lsr r0, r0, #0xc orr r0, r1 asr r1, r0, #0x1f asr r3, r7, #0x1f add r2, r7, #0x0 str r0, [r4, #0x0] blx FUN_020EBC30 mov r3, #0x0 add r2, r6, #0x0 add r2, r0, r2 adc r1, r3 lsl r0, r1, #0x14 lsr r1, r2, #0xc orr r1, r0 str r1, [r5, #0x0] pop {r3-r7, pc} .balign 4 _0201CBE8: .word 0x020FFA38 thumb_func_start FUN_0201CBEC FUN_0201CBEC: ; 0x0201CBEC push {r3, lr} sub r0, r0, r2 sub r2, r1, r3 add r1, r0, #0x0 mul r1, r0 add r0, r2, #0x0 mul r0, r2 add r0, r1, r0 lsl r0, r0, #0xc blx FUN_020C504C asr r0, r0, #0xc pop {r3, pc} .balign 4 thumb_func_start FUN_0201CC08 FUN_0201CC08: ; 0x0201CC08 push {r3, lr} ldr r0, _0201CC20 ; =0x021C5978 ldrh r0, [r0, #0x1a] cmp r0, #0x0 beq _0201CC16 bl ErrorHandling _0201CC16: ldr r0, _0201CC20 ; =0x021C5978 mov r1, #0x0 strh r1, [r0, #0x18] strh r1, [r0, #0x1a] pop {r3, pc} .balign 4 _0201CC20: .word 0x021C5978 thumb_func_start FUN_0201CC24 FUN_0201CC24: ; 0x0201CC24 push {r4, lr} sub sp, #0x8 add r4, r0, #0x0 ldr r0, _0201CC74 ; =0x021C5978 ldrh r0, [r0, #0x1a] cmp r0, #0x0 beq _0201CC36 bl ErrorHandling _0201CC36: cmp r4, #0x5 bhs _0201CC3E cmp r4, #0x0 bne _0201CC44 _0201CC3E: add sp, #0x8 mov r0, #0x0 pop {r4, pc} _0201CC44: ldr r0, _0201CC74 ; =0x021C5978 ldrh r0, [r0, #0x18] cmp r0, #0x0 beq _0201CC52 add sp, #0x8 mov r0, #0x0 pop {r4, pc} _0201CC52: add r0, r4, #0x0 bl FUN_0201CE2C cmp r0, #0x1 bne _0201CC70 mov r2, #0x0 str r2, [sp, #0x0] lsl r0, r4, #0x1 str r0, [sp, #0x4] mov r0, #0x2 mov r1, #0x1 add r3, r2, #0x0 bl FUN_0201CC78 mov r0, #0x1 _0201CC70: add sp, #0x8 pop {r4, pc} .balign 4 _0201CC74: .word 0x021C5978 thumb_func_start FUN_0201CC78 FUN_0201CC78: ; 0x0201CC78 push {r4, lr} ldr r4, _0201CC9C ; =0x021C5978 strh r0, [r4, #0x18] ldr r0, _0201CCA0 ; =0x021C4918 strb r1, [r0, #0x4] ldr r0, _0201CCA4 ; =0x021C5938 ldr r1, [sp, #0xc] str r2, [r0, #0x0] str r3, [r0, #0x4] str r1, [r0, #0x8] ldr r1, [sp, #0x8] str r1, [r0, #0x54] ldr r0, _0201CCA8 ; =0x021C5944 mov r1, #0x9 bl FUN_0201CCAC pop {r4, pc} nop _0201CC9C: .word 0x021C5978 _0201CCA0: .word 0x021C4918 _0201CCA4: .word 0x021C5938 _0201CCA8: .word 0x021C5944 thumb_func_start FUN_0201CCAC FUN_0201CCAC: ; 0x0201CCAC mov r3, #0x0 cmp r1, #0x0 ble _0201CCBE add r2, r3, #0x0 _0201CCB4: add r3, r3, #0x1 strh r2, [r0, #0x4] add r0, #0x8 cmp r3, r1 blt _0201CCB4 _0201CCBE: bx lr thumb_func_start FUN_0201CCC0 FUN_0201CCC0: ; 0x0201CCC0 push {r4-r6, lr} ldr r0, _0201CD00 ; =0x021C5978 mov r5, #0x0 ldrh r0, [r0, #0x18] cmp r0, #0x0 bne _0201CCD0 mov r0, #0x1 pop {r4-r6, pc} _0201CCD0: mov r4, #0x4 add r6, r4, #0x0 _0201CCD4: blx TP_RequestAutoSamplingStopAsync add r0, r4, #0x0 blx TP_WaitBusy add r0, r6, #0x0 blx TP_CheckError cmp r0, #0x0 beq _0201CCEA add r5, r5, #0x1 _0201CCEA: cmp r0, #0x0 beq _0201CCF2 cmp r5, #0x5 bls _0201CCD4 _0201CCF2: cmp r5, #0x5 bls _0201CCFA mov r0, #0x2 pop {r4-r6, pc} _0201CCFA: mov r0, #0x1 pop {r4-r6, pc} nop _0201CD00: .word 0x021C5978 thumb_func_start FUN_0201CD04 FUN_0201CD04: ; 0x0201CD04 push {r4, lr} sub sp, #0x8 ldr r0, _0201CD34 ; =0x021C5978 ldrh r0, [r0, #0x1a] cmp r0, #0x0 beq _0201CD14 bl ErrorHandling _0201CD14: bl FUN_0201CCC0 add r4, r0, #0x0 cmp r4, #0x1 bne _0201CD2E mov r0, #0x0 str r0, [sp, #0x0] add r1, r0, #0x0 add r2, r0, #0x0 add r3, r0, #0x0 str r0, [sp, #0x4] bl FUN_0201CC78 _0201CD2E: add r0, r4, #0x0 add sp, #0x8 pop {r4, pc} .balign 4 _0201CD34: .word 0x021C5978 thumb_func_start FUN_0201CD38 FUN_0201CD38: ; 0x0201CD38 push {r3-r7, lr} add r4, r0, #0x0 ldr r0, _0201CD8C ; =0x021C5978 add r6, r1, #0x0 ldrh r0, [r0, #0x1a] add r7, r2, #0x0 mov r5, #0x3 cmp r0, #0x0 beq _0201CD4E bl ErrorHandling _0201CD4E: ldr r0, _0201CD8C ; =0x021C5978 ldrh r0, [r0, #0x18] cmp r0, #0x0 beq _0201CD88 blx TP_GetLatestIndexInAuto add r5, r0, #0x0 ldr r0, _0201CD90 ; =0x021C5944 mov r1, #0x9 bl FUN_0201CD94 cmp r4, #0x0 beq _0201CD70 add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_0201CFD0 _0201CD70: ldr r0, _0201CD8C ; =0x021C5978 ldrh r0, [r0, #0x18] cmp r0, #0x1 bne _0201CD86 add r0, r6, #0x0 add r1, r5, #0x0 add r2, r7, #0x0 bl FUN_0201CE70 add r5, r0, #0x0 b _0201CD88 _0201CD86: mov r5, #0x1 _0201CD88: add r0, r5, #0x0 pop {r3-r7, pc} .balign 4 _0201CD8C: .word 0x021C5978 _0201CD90: .word 0x021C5944 thumb_func_start FUN_0201CD94 FUN_0201CD94: ; 0x0201CD94 push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 mov r7, #0x0 str r1, [sp, #0x0] add r0, r1, #0x0 beq _0201CDCA add r4, r5, #0x0 add r6, sp, #0x4 _0201CDA6: add r0, sp, #0x4 add r1, r5, #0x0 blx TP_GetCalibratedPoint ldrh r0, [r6, #0x0] add r7, r7, #0x1 add r5, #0x8 strh r0, [r4, #0x0] ldrh r0, [r6, #0x2] strh r0, [r4, #0x2] ldrh r0, [r6, #0x4] strh r0, [r4, #0x4] ldrh r0, [r6, #0x6] strh r0, [r4, #0x6] ldr r0, [sp, #0x0] add r4, #0x8 cmp r7, r0 blo _0201CDA6 _0201CDCA: add sp, #0xc pop {r4-r7, pc} .balign 4 thumb_func_start FUN_0201CDD0 FUN_0201CDD0: ; 0x0201CDD0 push {r3, lr} ldr r0, _0201CDFC ; =0x021C5978 ldrh r1, [r0, #0x1a] cmp r1, #0x0 beq _0201CDF8 ldrh r0, [r0, #0x18] cmp r0, #0x0 beq _0201CDF8 ldr r0, _0201CE00 ; =0x021C5938 ldr r0, [r0, #0x8] lsr r0, r0, #0x1 bl FUN_0201CE2C cmp r0, #0x1 beq _0201CDF2 bl ErrorHandling _0201CDF2: ldr r0, _0201CDFC ; =0x021C5978 mov r1, #0x0 strh r1, [r0, #0x1a] _0201CDF8: pop {r3, pc} nop _0201CDFC: .word 0x021C5978 _0201CE00: .word 0x021C5938 thumb_func_start FUN_0201CE04 FUN_0201CE04: ; 0x0201CE04 push {r3, lr} ldr r0, _0201CE28 ; =0x021C5978 ldrh r1, [r0, #0x1a] cmp r1, #0x1 beq _0201CE26 ldrh r0, [r0, #0x18] cmp r0, #0x0 beq _0201CE26 bl FUN_0201CCC0 cmp r0, #0x1 beq _0201CE20 bl ErrorHandling _0201CE20: ldr r0, _0201CE28 ; =0x021C5978 mov r1, #0x1 strh r1, [r0, #0x1a] _0201CE26: pop {r3, pc} .balign 4 _0201CE28: .word 0x021C5978 thumb_func_start FUN_0201CE2C FUN_0201CE2C: ; 0x0201CE2C push {r3-r7, lr} mov r5, #0x0 lsl r0, r0, #0x10 ldr r7, _0201CE6C ; =0x021C5944 add r6, r5, #0x0 lsr r4, r0, #0x10 _0201CE38: add r0, r6, #0x0 add r1, r4, #0x0 add r2, r7, #0x0 mov r3, #0x9 blx TP_RequestAutoSamplingStartAsync mov r0, #0x2 blx TP_WaitBusy mov r0, #0x2 blx TP_CheckError cmp r0, #0x0 beq _0201CE56 add r5, r5, #0x1 _0201CE56: cmp r0, #0x0 beq _0201CE5E cmp r5, #0x5 ble _0201CE38 _0201CE5E: cmp r5, #0x5 ble _0201CE66 mov r0, #0x2 pop {r3-r7, pc} _0201CE66: mov r0, #0x1 pop {r3-r7, pc} nop _0201CE6C: .word 0x021C5944 thumb_func_start FUN_0201CE70 FUN_0201CE70: ; 0x0201CE70 push {r3, lr} cmp r0, #0x5 bhi _0201CE9A add r3, r0, r0 add r3, pc ldrh r3, [r3, #0x6] lsl r3, r3, #0x10 asr r3, r3, #0x10 add pc, r3 _0201CE82: ; jump table (using 16-bit offset) .short _0201CE9A - _0201CE82 - 2; case 0 .short _0201CE8E - _0201CE82 - 2; case 1 .short _0201CE9A - _0201CE82 - 2; case 2 .short _0201CE8E - _0201CE82 - 2; case 3 .short _0201CE94 - _0201CE82 - 2; case 4 .short _0201CE94 - _0201CE82 - 2; case 5 _0201CE8E: bl FUN_0201CEA0 pop {r3, pc} _0201CE94: bl FUN_0201CF58 pop {r3, pc} _0201CE9A: mov r0, #0x1 pop {r3, pc} .balign 4 thumb_func_start FUN_0201CEA0 FUN_0201CEA0: ; 0x0201CEA0 push {r3-r7, lr} sub sp, #0x8 ldr r5, _0201CF50 ; =0x021C5938 str r1, [sp, #0x4] ldr r1, [r5, #0x8] str r0, [sp, #0x0] add r7, r2, #0x0 mov r4, #0x0 cmp r1, #0x0 bls _0201CF46 _0201CEB4: ldr r0, [sp, #0x4] sub r0, r0, r1 add r0, r4, r0 add r0, r0, #0x1 lsl r0, r0, #0x10 asr r0, r0, #0x10 bpl _0201CEC8 add r0, #0x9 lsl r0, r0, #0x10 asr r0, r0, #0x10 _0201CEC8: lsl r1, r0, #0x3 ldr r0, _0201CF54 ; =0x021C5938 add r1, r0, r1 ldrh r0, [r1, #0x10] cmp r0, #0x1 bne _0201CF3E ldrh r0, [r1, #0x12] cmp r0, #0x0 bne _0201CF3E ldr r2, [r5, #0x54] ldr r0, [r5, #0x0] lsl r2, r2, #0x3 add r2, r0, r2 add r0, r2, #0x0 sub r0, #0x8 ldrh r3, [r1, #0xc] ldrh r0, [r0, #0x0] cmp r0, r3 blt _0201CEF2 sub r3, r0, r3 b _0201CEF4 _0201CEF2: sub r3, r3, r0 _0201CEF4: sub r6, r2, #0x6 ldrh r0, [r1, #0xe] ldrh r6, [r6, #0x0] cmp r6, r0 blt _0201CF02 sub r0, r6, r0 b _0201CF04 _0201CF02: sub r0, r0, r6 _0201CF04: cmp r3, r7 bhs _0201CF0C cmp r0, r7 blo _0201CF3E _0201CF0C: ldrh r0, [r1, #0xc] strh r0, [r2, #0x0] ldrh r0, [r1, #0xe] strh r0, [r2, #0x2] ldrh r0, [r1, #0x10] strh r0, [r2, #0x4] ldrh r0, [r1, #0x12] strh r0, [r2, #0x6] ldr r0, [r5, #0x54] add r0, r0, #0x1 str r0, [r5, #0x54] ldr r1, [r5, #0x4] cmp r0, r1 blo _0201CF3E ldr r2, [sp, #0x0] cmp r2, #0x1 bne _0201CF36 blx _u32_div_f str r1, [r5, #0x54] b _0201CF3E _0201CF36: mov r0, #0x0 add sp, #0x8 mvn r0, r0 pop {r3-r7, pc} _0201CF3E: ldr r1, [r5, #0x8] add r4, r4, #0x1 cmp r4, r1 blo _0201CEB4 _0201CF46: ldr r0, _0201CF50 ; =0x021C5938 ldr r0, [r0, #0x54] add sp, #0x8 pop {r3-r7, pc} nop _0201CF50: .word 0x021C5938 _0201CF54: .word 0x021C5938 thumb_func_start FUN_0201CF58 FUN_0201CF58: ; 0x0201CF58 push {r3-r7, lr} ldr r5, _0201CFC8 ; =0x021C5938 str r1, [sp, #0x0] ldr r1, [r5, #0x8] add r7, r0, #0x0 mov r4, #0x0 cmp r1, #0x0 bls _0201CFC0 _0201CF68: ldr r0, [sp, #0x0] sub r0, r0, r1 add r0, r4, r0 add r0, r0, #0x1 lsl r0, r0, #0x10 asr r1, r0, #0x10 bpl _0201CF7C add r1, #0x9 lsl r0, r1, #0x10 asr r1, r0, #0x10 _0201CF7C: ldr r0, [r5, #0x54] lsl r1, r1, #0x3 lsl r3, r0, #0x3 ldr r0, _0201CFCC ; =0x021C5938 ldr r6, [r5, #0x0] add r2, r0, r1 ldrh r0, [r2, #0xc] add r1, r6, r3 strh r0, [r6, r3] ldrh r0, [r2, #0xe] strh r0, [r1, #0x2] ldrh r0, [r2, #0x10] strh r0, [r1, #0x4] ldrh r0, [r2, #0x12] strh r0, [r1, #0x6] ldr r0, [r5, #0x54] add r0, r0, #0x1 str r0, [r5, #0x54] ldr r1, [r5, #0x4] cmp r0, r1 blo _0201CFB8 cmp r7, #0x4 bne _0201CFB2 blx _u32_div_f str r1, [r5, #0x54] b _0201CFB8 _0201CFB2: mov r0, #0x0 mvn r0, r0 pop {r3-r7, pc} _0201CFB8: ldr r1, [r5, #0x8] add r4, r4, #0x1 cmp r4, r1 blo _0201CF68 _0201CFC0: ldr r0, _0201CFC8 ; =0x021C5938 ldr r0, [r0, #0x54] pop {r3-r7, pc} nop _0201CFC8: .word 0x021C5938 _0201CFCC: .word 0x021C5938 thumb_func_start FUN_0201CFD0 FUN_0201CFD0: ; 0x0201CFD0 push {r4-r7} mov r2, #0x0 strh r2, [r0, #0x0] add r3, r0, #0x0 add r6, r2, #0x0 _0201CFDA: strh r6, [r3, #0x8] strh r6, [r3, #0x6] strh r6, [r3, #0x2] strh r6, [r3, #0x4] add r2, r2, #0x1 add r3, #0x8 cmp r2, #0x8 blt _0201CFDA ldr r2, _0201D038 ; =0x021C5938 ldr r3, [r2, #0x8] cmp r3, #0x0 bls _0201D034 ldr r4, _0201D03C ; =0x021C5938 _0201CFF4: sub r3, r1, r3 add r3, r6, r3 add r3, r3, #0x1 lsl r3, r3, #0x10 asr r3, r3, #0x10 bpl _0201D006 add r3, #0x9 lsl r3, r3, #0x10 asr r3, r3, #0x10 _0201D006: lsl r3, r3, #0x3 add r5, r4, r3 ldrh r3, [r5, #0x12] cmp r3, #0x0 bne _0201D02C ldrh r3, [r0, #0x0] ldrh r7, [r5, #0xc] lsl r3, r3, #0x3 add r3, r0, r3 strh r7, [r3, #0x2] ldrh r7, [r5, #0xe] strh r7, [r3, #0x4] ldrh r7, [r5, #0x10] strh r7, [r3, #0x6] ldrh r5, [r5, #0x12] strh r5, [r3, #0x8] ldrh r3, [r0, #0x0] add r3, r3, #0x1 strh r3, [r0, #0x0] _0201D02C: ldr r3, [r2, #0x8] add r6, r6, #0x1 cmp r6, r3 blo _0201CFF4 _0201D034: pop {r4-r7} bx lr .balign 4 _0201D038: .word 0x021C5938 _0201D03C: .word 0x021C5938 thumb_func_start FUN_0201D040 FUN_0201D040: ; 0x0201D040 ldr r1, _0201D054 ; =0x04001000 ldr r2, [r1, #0x0] ldr r1, _0201D058 ; =0x00300010 lsl r3, r1, #0x16 ldr r3, [r3, #0x0] and r2, r1 and r1, r3 ldr r3, _0201D05C ; =FUN_0201D060 bx r3 nop _0201D054: .word 0x04001000 _0201D058: .word 0x00300010 _0201D05C: .word FUN_0201D060 thumb_func_start FUN_0201D060 FUN_0201D060: ; 0x0201D060 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 ldr r0, _0201D120 ; =0x021C5994 str r1, [sp, #0x0] ldr r0, [r0, #0x0] str r2, [sp, #0x4] cmp r0, #0x0 bne _0201D11A ldr r0, [r5, #0xc] mov r1, #0x3c bl FUN_02016998 add r1, r0, #0x0 ldr r0, _0201D120 ; =0x021C5994 mov r2, #0x3c str r1, [r0, #0x0] mov r0, #0x0 blx MIi_CpuClear32 ldr r1, _0201D120 ; =0x021C5994 ldr r2, [r5, #0x0] ldr r0, [r1, #0x0] str r2, [r0, #0x4] ldr r1, [r1, #0x0] ldr r0, [r5, #0xc] ldr r2, [r1, #0x4] mov r1, #0x54 mul r1, r2 bl FUN_02016998 ldr r7, _0201D120 ; =0x021C5994 mov r6, #0x0 ldr r1, [r7, #0x0] str r0, [r1, #0x0] ldr r0, [r5, #0x0] cmp r0, #0x0 ble _0201D0C2 add r4, r6, #0x0 _0201D0AE: ldr r0, [r7, #0x0] ldr r0, [r0, #0x0] add r0, r0, r4 bl FUN_0201D690 ldr r0, [r5, #0x0] add r6, r6, #0x1 add r4, #0x54 cmp r6, r0 blt _0201D0AE _0201D0C2: ldr r0, [sp, #0x0] bl FUN_0201DED0 ldr r1, _0201D120 ; =0x021C5994 ldr r1, [r1, #0x0] str r0, [r1, #0x2c] ldr r0, [sp, #0x4] bl FUN_0201DED0 ldr r2, _0201D120 ; =0x021C5994 mov r3, #0x1 ldr r1, [r2, #0x0] lsl r3, r3, #0x1a str r0, [r1, #0x30] ldr r0, [r3, #0x0] ldr r1, _0201D124 ; =0xFFCFFFEF add r4, r0, #0x0 ldr r0, [sp, #0x0] and r4, r1 orr r0, r4 str r0, [r3, #0x0] ldr r3, _0201D128 ; =0x04001000 ldr r0, [r3, #0x0] and r1, r0 ldr r0, [sp, #0x4] orr r0, r1 str r0, [r3, #0x0] ldr r1, [r2, #0x0] ldr r0, [r5, #0x4] ldr r1, [r1, #0x2c] bl FUN_0201DF2C ldr r1, _0201D120 ; =0x021C5994 add r4, r0, #0x0 ldr r1, [r1, #0x0] ldr r0, [r5, #0x8] ldr r1, [r1, #0x30] bl FUN_0201DF2C add r1, r0, #0x0 ldr r2, [r5, #0xc] add r0, r4, #0x0 bl FUN_0201DC58 _0201D11A: add sp, #0x8 pop {r3-r7, pc} nop _0201D120: .word 0x021C5994 _0201D124: .word 0xFFCFFFEF _0201D128: .word 0x04001000 thumb_func_start FUN_0201D12C FUN_0201D12C: ; 0x0201D12C push {r3, lr} ldr r0, _0201D164 ; =0x021C5994 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _0201D162 ldr r0, [r0, #0x34] bl FUN_0201DCC0 ldr r0, _0201D164 ; =0x021C5994 ldr r0, [r0, #0x0] ldr r0, [r0, #0x38] bl FUN_0201DCC0 bl FUN_0201D374 ldr r0, _0201D164 ; =0x021C5994 ldr r0, [r0, #0x0] ldr r0, [r0, #0x0] bl FUN_02016A18 ldr r0, _0201D164 ; =0x021C5994 ldr r0, [r0, #0x0] bl FUN_02016A18 ldr r0, _0201D164 ; =0x021C5994 mov r1, #0x0 str r1, [r0, #0x0] _0201D162: pop {r3, pc} .balign 4 _0201D164: .word 0x021C5994 thumb_func_start FUN_0201D168 FUN_0201D168: ; 0x0201D168 push {r3, lr} ldr r0, _0201D190 ; =0x021C5994 mov r2, #0x0 ldr r1, [r0, #0x0] str r2, [r1, #0xc] ldr r1, [r0, #0x0] str r2, [r1, #0x10] ldr r0, [r0, #0x0] ldr r0, [r0, #0x34] bl FUN_0201DD00 ldr r0, _0201D190 ; =0x021C5994 ldr r0, [r0, #0x0] ldr r0, [r0, #0x38] bl FUN_0201DD00 bl FUN_0201DAE8 pop {r3, pc} nop _0201D190: .word 0x021C5994 thumb_func_start FUN_0201D194 FUN_0201D194: ; 0x0201D194 push {r3-r4, lr} sub sp, #0xc add r4, r0, #0x0 add r3, r1, #0x0 cmp r2, #0x1 add r0, sp, #0x4 bne _0201D1CA str r0, [sp, #0x0] ldr r0, _0201D1F4 ; =0x021C5994 add r2, r3, #0x0 ldr r0, [r0, #0x0] add r1, r4, #0x0 ldr r0, [r0, #0x1c] add r3, sp, #0x8 bl FUN_0201DFF0 ldr r3, [sp, #0x4] cmp r3, #0x0 ble _0201D1F0 mov r2, #0x0 str r2, [sp, #0x0] ldr r1, [sp, #0x8] mov r0, #0x1 bl FUN_0201D948 add sp, #0xc pop {r3-r4, pc} _0201D1CA: str r0, [sp, #0x0] ldr r0, _0201D1F4 ; =0x021C5994 add r2, r3, #0x0 ldr r0, [r0, #0x0] add r1, r4, #0x0 ldr r0, [r0, #0x20] add r3, sp, #0x8 bl FUN_0201DFF0 ldr r0, [sp, #0x4] cmp r0, #0x0 ble _0201D1F0 str r0, [sp, #0x0] mov r1, #0x0 ldr r2, [sp, #0x8] mov r0, #0x2 add r3, r1, #0x0 bl FUN_0201D948 _0201D1F0: add sp, #0xc pop {r3-r4, pc} .balign 4 _0201D1F4: .word 0x021C5994 thumb_func_start FUN_0201D1F8 FUN_0201D1F8: ; 0x0201D1F8 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0x8] bl FUN_0201D2AC cmp r0, #0x1 bne _0201D20A bl ErrorHandling _0201D20A: bl FUN_0201DAAC add r4, r0, #0x0 bne _0201D21A bl ErrorHandling mov r0, #0x0 pop {r3-r5, pc} _0201D21A: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0201D6B4 cmp r0, #0x0 bne _0201D22A mov r0, #0x0 pop {r3-r5, pc} _0201D22A: add r0, r4, #0x0 bl FUN_0201D724 cmp r0, #0x0 bne _0201D23E ldr r0, [r4, #0xc] bl FUN_0201D324 mov r0, #0x0 pop {r3-r5, pc} _0201D23E: ldr r0, _0201D24C ; =0x021C5994 ldr r1, [r0, #0x0] ldr r0, [r1, #0x8] add r0, r0, #0x1 str r0, [r1, #0x8] mov r0, #0x1 pop {r3-r5, pc} .balign 4 _0201D24C: .word 0x021C5994 thumb_func_start FUN_0201D250 FUN_0201D250: ; 0x0201D250 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0x8] bl FUN_0201D2AC cmp r0, #0x1 bne _0201D262 bl ErrorHandling _0201D262: bl FUN_0201DAAC add r4, r0, #0x0 bne _0201D272 bl ErrorHandling mov r0, #0x0 pop {r3-r5, pc} _0201D272: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0201D6B4 cmp r0, #0x0 bne _0201D282 mov r0, #0x0 pop {r3-r5, pc} _0201D282: mov r0, #0x1 str r0, [r4, #0x40] add r0, r4, #0x0 bl FUN_0201D724 cmp r0, #0x0 bne _0201D29A ldr r0, [r4, #0xc] bl FUN_0201D324 mov r0, #0x0 pop {r3-r5, pc} _0201D29A: ldr r0, _0201D2A8 ; =0x021C5994 ldr r1, [r0, #0x0] ldr r0, [r1, #0x8] add r0, r0, #0x1 str r0, [r1, #0x8] mov r0, #0x1 pop {r3-r5, pc} .balign 4 _0201D2A8: .word 0x021C5994 thumb_func_start FUN_0201D2AC FUN_0201D2AC: ; 0x0201D2AC push {r3-r4} ldr r1, _0201D2D8 ; =0x021C5994 mov r2, #0x0 ldr r4, [r1, #0x0] ldr r1, [r4, #0x4] cmp r1, #0x0 ble _0201D2D2 ldr r3, [r4, #0x0] _0201D2BC: ldr r1, [r3, #0xc] cmp r0, r1 bne _0201D2C8 mov r0, #0x1 pop {r3-r4} bx lr _0201D2C8: ldr r1, [r4, #0x4] add r2, r2, #0x1 add r3, #0x54 cmp r2, r1 blt _0201D2BC _0201D2D2: mov r0, #0x0 pop {r3-r4} bx lr .balign 4 _0201D2D8: .word 0x021C5994 thumb_func_start FUN_0201D2DC FUN_0201D2DC: ; 0x0201D2DC push {r3-r5, lr} add r4, r0, #0x0 add r5, r1, #0x0 bne _0201D2E8 bl ErrorHandling _0201D2E8: add r0, r4, #0x0 bl FUN_0201D7F8 add r4, r0, #0x0 bne _0201D2F6 bl ErrorHandling _0201D2F6: str r5, [r4, #0x0] ldr r1, [r4, #0x4] mov r0, #0x1 tst r0, r1 beq _0201D30C ldr r1, [r4, #0x34] ldr r2, [r5, #0x14] ldr r3, [r5, #0x10] mov r0, #0x13 bl FUN_0201C2C8 _0201D30C: ldr r1, [r4, #0x4] mov r0, #0x2 tst r0, r1 beq _0201D320 ldr r1, [r4, #0x38] ldr r2, [r5, #0x14] ldr r3, [r5, #0x10] mov r0, #0x23 bl FUN_0201C2C8 _0201D320: pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0201D324 FUN_0201D324: ; 0x0201D324 push {r3-r7, lr} add r6, r0, #0x0 mov r5, #0x1 mov r7, #0x0 _0201D32C: add r0, r6, #0x0 bl FUN_0201D7F8 add r4, r0, #0x0 bne _0201D33A bl ErrorHandling _0201D33A: add r0, r4, #0x0 add r0, #0x3c ldrb r0, [r0, #0x0] cmp r0, #0x4 bne _0201D34E add r0, r4, #0x0 add r0, #0x10 bl FUN_0201D4F0 b _0201D350 _0201D34E: add r5, r7, #0x0 _0201D350: cmp r5, #0x0 bne _0201D32C add r0, r4, #0x0 add r0, #0x3c ldrb r0, [r0, #0x0] cmp r0, #0x0 beq _0201D36E add r0, r4, #0x0 bl FUN_0201D7E0 ldr r0, _0201D370 ; =0x021C5994 ldr r1, [r0, #0x0] ldr r0, [r1, #0x8] sub r0, r0, #0x1 str r0, [r1, #0x8] _0201D36E: pop {r3-r7, pc} .balign 4 _0201D370: .word 0x021C5994 thumb_func_start FUN_0201D374 FUN_0201D374: ; 0x0201D374 push {r4-r6, lr} ldr r6, _0201D3AC ; =0x021C5994 mov r4, #0x0 ldr r1, [r6, #0x0] ldr r0, [r1, #0x4] cmp r0, #0x0 ble _0201D3AA add r5, r4, #0x0 _0201D384: ldr r1, [r1, #0x0] add r0, r1, r5 add r0, #0x3c ldrb r0, [r0, #0x0] cmp r0, #0x0 beq _0201D39E add r0, r1, r5 bl FUN_0201D7E0 ldr r1, [r6, #0x0] ldr r0, [r1, #0x8] sub r0, r0, #0x1 str r0, [r1, #0x8] _0201D39E: ldr r1, [r6, #0x0] add r4, r4, #0x1 ldr r0, [r1, #0x4] add r5, #0x54 cmp r4, r0 blt _0201D384 _0201D3AA: pop {r4-r6, pc} .balign 4 _0201D3AC: .word 0x021C5994 thumb_func_start FUN_0201D3B0 FUN_0201D3B0: ; 0x0201D3B0 push {r4, lr} bl FUN_0201D7F8 add r4, r0, #0x0 bne _0201D3BE bl ErrorHandling _0201D3BE: add r0, r4, #0x0 add r0, #0x3c ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _0201D3CC mov r0, #0x0 pop {r4, pc} _0201D3CC: add r4, #0x10 add r0, r4, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_0201D3D4 FUN_0201D3D4: ; 0x0201D3D4 push {r3-r5, lr} sub sp, #0x18 add r5, r1, #0x0 bl FUN_0201D7F8 add r4, r0, #0x0 bne _0201D3E6 bl ErrorHandling _0201D3E6: add r0, r4, #0x0 add r0, #0x3c ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _0201D3F6 add sp, #0x18 mov r0, #0x0 pop {r3-r5, pc} _0201D3F6: add r0, sp, #0xc str r0, [sp, #0x0] add r0, sp, #0x8 str r0, [sp, #0x4] ldr r0, [r4, #0x4] add r1, sp, #0x14 add r2, sp, #0x10 add r3, r5, #0x0 bl FUN_0201D86C add r0, r4, #0x0 add r0, #0x3c ldrb r0, [r0, #0x0] cmp r0, #0x3 bne _0201D41A add sp, #0x18 mov r0, #0x0 pop {r3-r5, pc} _0201D41A: add r0, r4, #0x0 mov r1, #0x3 add r0, #0x3c strb r1, [r0, #0x0] ldr r1, [sp, #0x14] ldr r2, [sp, #0x10] add r0, r4, #0x0 bl FUN_0201D918 mov r0, #0x1 str r0, [r4, #0x48] ldr r0, [sp, #0xc] str r0, [r4, #0x4c] ldr r0, [sp, #0x8] str r0, [r4, #0x50] add r0, r4, #0x0 bl FUN_0201DA38 ldr r0, [sp, #0x8] str r0, [sp, #0x0] ldr r0, [r4, #0x4] ldr r1, [sp, #0x14] ldr r2, [sp, #0x10] ldr r3, [sp, #0xc] bl FUN_0201D948 add r4, #0x10 add r0, r4, #0x0 add sp, #0x18 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0201D458 FUN_0201D458: ; 0x0201D458 push {r3-r5, lr} sub sp, #0x18 bl FUN_0201D6D8 add r4, r0, #0x0 bne _0201D468 bl ErrorHandling _0201D468: bl FUN_0201DAAC add r5, r0, #0x0 bne _0201D474 bl ErrorHandling _0201D474: add r0, r4, #0x0 add r0, #0x3c ldrb r0, [r0, #0x0] cmp r0, #0x3 beq _0201D484 add sp, #0x18 mov r0, #0x0 pop {r3-r5, pc} _0201D484: add r3, r5, #0x0 mov r2, #0xa _0201D488: ldmia r4!, {r0-r1} stmia r3!, {r0-r1} sub r2, r2, #0x1 bne _0201D488 ldr r0, [r4, #0x0] mov r1, #0x4 str r0, [r3, #0x0] add r0, r5, #0x0 add r0, #0x3c strb r1, [r0, #0x0] ldr r0, [r5, #0x4] mov r1, #0x1 tst r1, r0 beq _0201D4A8 ldr r3, [r5, #0x4c] b _0201D4AA _0201D4A8: ldr r3, [r5, #0x50] _0201D4AA: add r1, sp, #0xc str r1, [sp, #0x0] add r1, sp, #0x8 str r1, [sp, #0x4] add r1, sp, #0x14 add r2, sp, #0x10 bl FUN_0201D86C ldr r1, [sp, #0x14] ldr r2, [sp, #0x10] add r0, r5, #0x0 bl FUN_0201D918 mov r0, #0x1 str r0, [r5, #0x48] ldr r0, [sp, #0xc] str r0, [r5, #0x4c] ldr r0, [sp, #0x8] str r0, [r5, #0x50] add r0, r5, #0x0 bl FUN_0201DA38 ldr r0, [sp, #0x8] str r0, [sp, #0x0] ldr r0, [r5, #0x4] ldr r1, [sp, #0x14] ldr r2, [sp, #0x10] ldr r3, [sp, #0xc] bl FUN_0201D948 add r5, #0x10 add r0, r5, #0x0 add sp, #0x18 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0201D4F0 FUN_0201D4F0: ; 0x0201D4F0 push {r4-r6, lr} ldr r2, _0201D564 ; =0x021C5994 mov r1, #0x0 ldr r5, [r2, #0x0] ldr r4, [r5, #0x4] cmp r4, #0x0 ble _0201D52E ldr r2, [r5, #0x0] add r3, r1, #0x0 _0201D502: add r6, r2, #0x0 add r6, #0x3c ldrb r6, [r6, #0x0] cmp r6, #0x3 beq _0201D518 ldr r6, [r5, #0x0] add r6, r6, r3 add r6, #0x3c ldrb r6, [r6, #0x0] cmp r6, #0x4 bne _0201D522 _0201D518: ldr r6, [r5, #0x0] add r6, r6, r3 add r6, #0x10 cmp r6, r0 beq _0201D52E _0201D522: ldr r6, [r5, #0x4] add r1, r1, #0x1 add r2, #0x54 add r3, #0x54 cmp r1, r6 blt _0201D502 _0201D52E: cmp r1, r4 bge _0201D562 mov r0, #0x54 add r4, r1, #0x0 mul r4, r0 ldr r0, [r5, #0x0] add r0, r0, r4 bl FUN_0201DE4C ldr r0, _0201D564 ; =0x021C5994 ldr r1, [r0, #0x0] ldr r2, [r1, #0x0] add r2, #0x3c ldrb r1, [r2, r4] cmp r1, #0x3 bne _0201D554 mov r0, #0x2 strb r0, [r2, r4] pop {r4-r6, pc} _0201D554: mov r1, #0x0 strb r1, [r2, r4] ldr r0, [r0, #0x0] ldr r0, [r0, #0x0] add r0, r0, r4 bl FUN_0201D690 _0201D562: pop {r4-r6, pc} .balign 4 _0201D564: .word 0x021C5994 thumb_func_start FUN_0201D568 FUN_0201D568: ; 0x0201D568 push {r3-r7, lr} sub sp, #0x18 add r6, r0, #0x0 add r5, r2, #0x0 add r4, r3, #0x0 cmp r1, #0x0 bne _0201D5A0 add r1, r5, #0x0 add r2, sp, #0x14 add r3, sp, #0x10 bl FUN_0201DF44 add r7, r0, #0x0 beq _0201D5E0 add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_0201DF94 str r5, [r4, #0x8] str r6, [r4, #0x0] cmp r5, #0x1 bne _0201D59A ldr r0, [sp, #0x14] str r0, [r4, #0x4] b _0201D5E0 _0201D59A: ldr r0, [sp, #0x10] str r0, [r4, #0x4] b _0201D5E0 _0201D5A0: add r0, sp, #0xc str r0, [sp, #0x0] add r0, sp, #0x8 str r0, [sp, #0x4] add r0, r5, #0x0 add r1, sp, #0x14 add r2, sp, #0x10 add r3, r6, #0x0 bl FUN_0201D86C add r7, r0, #0x0 beq _0201D5E0 ldr r0, [sp, #0x8] str r0, [sp, #0x0] ldr r1, [sp, #0x14] ldr r2, [sp, #0x10] ldr r3, [sp, #0xc] add r0, r5, #0x0 bl FUN_0201D948 str r5, [r4, #0x8] cmp r5, #0x1 bne _0201D5D8 ldr r0, [sp, #0xc] str r0, [r4, #0x0] ldr r0, [sp, #0x14] str r0, [r4, #0x4] b _0201D5E0 _0201D5D8: ldr r0, [sp, #0x8] str r0, [r4, #0x0] ldr r0, [sp, #0x10] str r0, [r4, #0x4] _0201D5E0: add r0, r7, #0x0 add sp, #0x18 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0201D5E8 FUN_0201D5E8: ; 0x0201D5E8 push {r3-r5, lr} add r4, r0, #0x0 ldr r1, [r4, #0x8] mov r0, #0x1 tst r0, r1 beq _0201D61E ldr r1, _0201D654 ; =0x021C5994 ldr r0, [r4, #0x0] ldr r1, [r1, #0x0] ldr r1, [r1, #0x2c] bl FUN_0201DF2C add r5, r0, #0x0 ldr r0, _0201D654 ; =0x021C5994 ldr r1, [r4, #0x4] ldr r2, [r0, #0x0] ldr r0, [r2, #0x1c] sub r0, r1, r0 ldr r1, [r2, #0x2c] bl FUN_0201DF2C ldr r2, _0201D654 ; =0x021C5994 add r1, r5, #0x0 ldr r2, [r2, #0x0] ldr r2, [r2, #0x34] bl FUN_0201DDFC _0201D61E: ldr r1, [r4, #0x8] mov r0, #0x2 tst r0, r1 beq _0201D650 ldr r1, _0201D654 ; =0x021C5994 ldr r0, [r4, #0x0] ldr r1, [r1, #0x0] ldr r1, [r1, #0x30] bl FUN_0201DF2C add r5, r0, #0x0 ldr r0, _0201D654 ; =0x021C5994 ldr r1, [r4, #0x4] ldr r2, [r0, #0x0] ldr r0, [r2, #0x20] sub r0, r1, r0 ldr r1, [r2, #0x30] bl FUN_0201DF2C ldr r2, _0201D654 ; =0x021C5994 add r1, r5, #0x0 ldr r2, [r2, #0x0] ldr r2, [r2, #0x38] bl FUN_0201DDFC _0201D650: pop {r3-r5, pc} nop _0201D654: .word 0x021C5994 thumb_func_start FUN_0201D658 FUN_0201D658: ; 0x0201D658 push {r3, lr} ldr r0, _0201D670 ; =0x021C5994 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _0201D666 bl ErrorHandling _0201D666: ldr r1, _0201D670 ; =0x021C5994 mov r2, #0x0 ldr r0, [r1, #0x0] str r2, [r1, #0x0] pop {r3, pc} .balign 4 _0201D670: .word 0x021C5994 thumb_func_start FUN_0201D674 FUN_0201D674: ; 0x0201D674 push {r4, lr} add r4, r0, #0x0 ldr r0, _0201D68C ; =0x021C5994 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _0201D684 bl ErrorHandling _0201D684: ldr r0, _0201D68C ; =0x021C5994 str r4, [r0, #0x0] pop {r4, pc} nop _0201D68C: .word 0x021C5994 thumb_func_start FUN_0201D690 FUN_0201D690: ; 0x0201D690 mov r2, #0x0 str r2, [r0, #0x0] str r2, [r0, #0x4] strb r2, [r0, #0x8] sub r1, r2, #0x1 str r1, [r0, #0xc] str r2, [r0, #0x34] add r1, r0, #0x0 str r2, [r0, #0x38] add r1, #0x3c strb r2, [r1, #0x0] str r2, [r0, #0x40] ldr r3, _0201D6B0 ; =FUN_020B1A24 add r0, #0x10 bx r3 nop _0201D6B0: .word FUN_020B1A24 thumb_func_start FUN_0201D6B4 FUN_0201D6B4: ; 0x0201D6B4 ldr r2, [r0, #0x0] str r2, [r1, #0x0] ldr r2, [r0, #0x8] str r2, [r1, #0xc] ldr r2, [r0, #0x4] str r2, [r1, #0x4] ldr r2, [r1, #0x0] ldr r2, [r2, #0xc] lsr r2, r2, #0x8 strb r2, [r1, #0x8] ldr r0, [r0, #0xc] str r0, [r1, #0x44] mov r0, #0x0 str r0, [r1, #0x48] str r0, [r1, #0x4c] str r0, [r1, #0x50] mov r0, #0x1 bx lr thumb_func_start FUN_0201D6D8 FUN_0201D6D8: ; 0x0201D6D8 push {r3-r6} ldr r2, _0201D720 ; =0x021C5994 mov r1, #0x0 ldr r5, [r2, #0x0] ldr r4, [r5, #0x4] cmp r4, #0x0 ble _0201D70A ldr r2, [r5, #0x0] add r3, r1, #0x0 _0201D6EA: add r6, r2, #0x0 add r6, #0x3c ldrb r6, [r6, #0x0] cmp r6, #0x0 beq _0201D6FE ldr r6, [r5, #0x0] add r6, r6, r3 add r6, #0x10 cmp r6, r0 beq _0201D70A _0201D6FE: ldr r6, [r5, #0x4] add r1, r1, #0x1 add r2, #0x54 add r3, #0x54 cmp r1, r6 blt _0201D6EA _0201D70A: cmp r1, r4 blt _0201D714 mov r0, #0x0 pop {r3-r6} bx lr _0201D714: mov r0, #0x54 ldr r2, [r5, #0x0] mul r0, r1 add r0, r2, r0 pop {r3-r6} bx lr .balign 4 _0201D720: .word 0x021C5994 thumb_func_start FUN_0201D724 FUN_0201D724: ; 0x0201D724 push {r3, lr} ldrb r1, [r0, #0x8] mov r2, #0x1 cmp r1, #0x0 beq _0201D736 mov r1, #0x2 add r0, #0x3c strb r1, [r0, #0x0] b _0201D750 _0201D736: add r1, r0, #0x0 add r1, #0x3c strb r2, [r1, #0x0] ldr r1, [r0, #0x44] cmp r1, #0x0 bne _0201D74A bl FUN_0201D754 add r2, r0, #0x0 b _0201D750 _0201D74A: bl FUN_0201D788 add r2, r0, #0x0 _0201D750: add r0, r2, #0x0 pop {r3, pc} thumb_func_start FUN_0201D754 FUN_0201D754: ; 0x0201D754 push {r3-r5, lr} sub sp, #0x8 add r5, r0, #0x0 ldr r0, [r5, #0x0] ldr r1, [r5, #0x4] ldr r0, [r0, #0x10] add r2, sp, #0x4 add r3, sp, #0x0 bl FUN_0201DF44 add r4, r0, #0x0 beq _0201D780 ldr r1, [sp, #0x4] ldr r2, [sp, #0x0] add r0, r5, #0x0 bl FUN_0201D858 ldr r0, [r5, #0x0] ldr r1, [r5, #0x4] ldr r0, [r0, #0x10] bl FUN_0201DF94 _0201D780: add r0, r4, #0x0 add sp, #0x8 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0201D788 FUN_0201D788: ; 0x0201D788 push {r4, lr} sub sp, #0x18 add r4, r0, #0x0 add r0, sp, #0xc str r0, [sp, #0x0] add r0, sp, #0x8 str r0, [sp, #0x4] ldr r3, [r4, #0x0] ldr r0, [r4, #0x4] ldr r3, [r3, #0x10] add r1, sp, #0x14 add r2, sp, #0x10 bl FUN_0201D86C cmp r0, #0x0 bne _0201D7AE add sp, #0x18 mov r0, #0x0 pop {r4, pc} _0201D7AE: ldr r1, [sp, #0x14] ldr r2, [sp, #0x10] add r0, r4, #0x0 bl FUN_0201D918 mov r0, #0x1 str r0, [r4, #0x48] ldr r0, [sp, #0xc] str r0, [r4, #0x4c] ldr r0, [sp, #0x8] str r0, [r4, #0x50] add r0, r4, #0x0 bl FUN_0201D9B0 ldr r0, [sp, #0x8] str r0, [sp, #0x0] ldr r0, [r4, #0x4] ldr r1, [sp, #0x14] ldr r2, [sp, #0x10] ldr r3, [sp, #0xc] bl FUN_0201D948 mov r0, #0x1 add sp, #0x18 pop {r4, pc} thumb_func_start FUN_0201D7E0 FUN_0201D7E0: ; 0x0201D7E0 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x48] cmp r1, #0x0 beq _0201D7EE bl FUN_0201DE4C _0201D7EE: add r0, r4, #0x0 bl FUN_0201D690 pop {r4, pc} .balign 4 thumb_func_start FUN_0201D7F8 FUN_0201D7F8: ; 0x0201D7F8 push {r4-r5} ldr r2, _0201D82C ; =0x021C5994 mov r1, #0x0 ldr r5, [r2, #0x0] ldr r2, [r5, #0x4] cmp r2, #0x0 ble _0201D824 ldr r2, [r5, #0x0] add r4, r2, #0x0 _0201D80A: ldr r3, [r4, #0xc] cmp r0, r3 bne _0201D81A mov r0, #0x54 mul r0, r1 add r0, r2, r0 pop {r4-r5} bx lr _0201D81A: ldr r3, [r5, #0x4] add r1, r1, #0x1 add r4, #0x54 cmp r1, r3 blt _0201D80A _0201D824: mov r0, #0x0 pop {r4-r5} bx lr nop _0201D82C: .word 0x021C5994 thumb_func_start FUN_0201D830 FUN_0201D830: ; 0x0201D830 cmp r1, #0x1 bne _0201D83C mov r1, #0x1 lsl r1, r1, #0x1a ldr r2, [r1, #0x0] b _0201D840 _0201D83C: ldr r1, _0201D850 ; =0x04001000 ldr r2, [r1, #0x0] _0201D840: ldr r1, _0201D854 ; =0x00300010 and r2, r1 ldr r1, [r0, #0x0] str r2, [r1, #0x8] ldr r0, [r0, #0x0] ldr r0, [r0, #0x8] bx lr nop _0201D850: .word 0x04001000 _0201D854: .word 0x00300010 thumb_func_start FUN_0201D858 FUN_0201D858: ; 0x0201D858 push {r3, lr} str r1, [r0, #0x34] str r2, [r0, #0x38] ldrb r1, [r0, #0x8] cmp r1, #0x0 bne _0201D868 bl FUN_0201D9B0 _0201D868: pop {r3, pc} .balign 4 thumb_func_start FUN_0201D86C FUN_0201D86C: ; 0x0201D86C push {r3-r7, lr} add r5, r0, #0x0 ldr r0, [sp, #0x1c] add r6, r2, #0x0 str r0, [sp, #0x1c] mov r2, #0x1 add r0, r5, #0x0 add r4, r1, #0x0 str r3, [sp, #0x0] ldr r7, [sp, #0x18] tst r0, r2 beq _0201D8C4 ldr r1, _0201D914 ; =0x021C5994 add r0, r3, #0x0 ldr r1, [r1, #0x0] ldr r1, [r1, #0x2c] bl FUN_0201DF10 ldr r1, _0201D914 ; =0x021C5994 str r0, [r7, #0x0] ldr r1, [r1, #0x0] ldr r1, [r1, #0x2c] bl FUN_0201DF2C ldr r1, _0201D914 ; =0x021C5994 ldr r1, [r1, #0x0] ldr r1, [r1, #0x34] bl FUN_0201DD74 mov r1, #0x0 mvn r1, r1 str r0, [r4, #0x0] cmp r0, r1 bne _0201D8B8 bl ErrorHandling mov r0, #0x0 pop {r3-r7, pc} _0201D8B8: ldr r1, _0201D914 ; =0x021C5994 ldr r1, [r1, #0x0] ldr r1, [r1, #0x2c] bl FUN_0201DF3C str r0, [r4, #0x0] _0201D8C4: mov r0, #0x2 tst r0, r5 beq _0201D90E ldr r1, _0201D914 ; =0x021C5994 ldr r0, [sp, #0x0] ldr r1, [r1, #0x0] mov r2, #0x1 ldr r1, [r1, #0x30] bl FUN_0201DF10 ldr r1, [sp, #0x1c] str r0, [r1, #0x0] ldr r1, _0201D914 ; =0x021C5994 ldr r1, [r1, #0x0] ldr r1, [r1, #0x30] bl FUN_0201DF2C ldr r1, _0201D914 ; =0x021C5994 ldr r1, [r1, #0x0] ldr r1, [r1, #0x38] bl FUN_0201DD74 mov r1, #0x0 mvn r1, r1 str r0, [r6, #0x0] cmp r0, r1 bne _0201D902 bl ErrorHandling mov r0, #0x0 pop {r3-r7, pc} _0201D902: ldr r1, _0201D914 ; =0x021C5994 ldr r1, [r1, #0x0] ldr r1, [r1, #0x30] bl FUN_0201DF3C str r0, [r6, #0x0] _0201D90E: mov r0, #0x1 pop {r3-r7, pc} nop _0201D914: .word 0x021C5994 thumb_func_start FUN_0201D918 FUN_0201D918: ; 0x0201D918 push {r3-r4} ldr r4, [r0, #0x4] mov r3, #0x1 tst r3, r4 beq _0201D92C ldr r3, _0201D944 ; =0x021C5994 ldr r3, [r3, #0x0] ldr r3, [r3, #0x1c] add r1, r1, r3 str r1, [r0, #0x34] _0201D92C: ldr r3, [r0, #0x4] mov r1, #0x2 tst r1, r3 beq _0201D93E ldr r1, _0201D944 ; =0x021C5994 ldr r1, [r1, #0x0] ldr r1, [r1, #0x20] add r1, r2, r1 str r1, [r0, #0x38] _0201D93E: pop {r3-r4} bx lr nop _0201D944: .word 0x021C5994 thumb_func_start FUN_0201D948 FUN_0201D948: ; 0x0201D948 push {r3-r7, lr} add r5, r0, #0x0 mov r0, #0x1 add r4, r1, #0x0 add r6, r2, #0x0 tst r0, r5 beq _0201D97C ldr r1, _0201D9AC ; =0x021C5994 add r0, r3, #0x0 ldr r1, [r1, #0x0] ldr r1, [r1, #0x2c] bl FUN_0201DF2C ldr r1, _0201D9AC ; =0x021C5994 add r7, r0, #0x0 ldr r1, [r1, #0x0] add r0, r4, #0x0 ldr r1, [r1, #0x2c] bl FUN_0201DF2C ldr r2, _0201D9AC ; =0x021C5994 add r1, r7, #0x0 ldr r2, [r2, #0x0] ldr r2, [r2, #0x34] bl FUN_0201DD18 _0201D97C: mov r0, #0x2 tst r0, r5 beq _0201D9A8 ldr r1, _0201D9AC ; =0x021C5994 ldr r0, [sp, #0x18] ldr r1, [r1, #0x0] ldr r1, [r1, #0x30] bl FUN_0201DF2C ldr r1, _0201D9AC ; =0x021C5994 add r4, r0, #0x0 ldr r1, [r1, #0x0] add r0, r6, #0x0 ldr r1, [r1, #0x30] bl FUN_0201DF2C ldr r2, _0201D9AC ; =0x021C5994 add r1, r4, #0x0 ldr r2, [r2, #0x0] ldr r2, [r2, #0x38] bl FUN_0201DD18 _0201D9A8: pop {r3-r7, pc} nop _0201D9AC: .word 0x021C5994 thumb_func_start FUN_0201D9B0 FUN_0201D9B0: ; 0x0201D9B0 push {r4, lr} add r4, r0, #0x0 add r0, #0x10 blx FUN_020B1A24 ldr r1, [r4, #0x4] cmp r1, #0x3 beq _0201D9C8 add r0, r4, #0x0 bl FUN_0201D9DC pop {r4, pc} _0201D9C8: add r0, r4, #0x0 mov r1, #0x1 bl FUN_0201D9DC add r0, r4, #0x0 mov r1, #0x2 bl FUN_0201D9DC pop {r4, pc} .balign 4 thumb_func_start FUN_0201D9DC FUN_0201D9DC: ; 0x0201D9DC push {r3-r5, lr} add r5, r0, #0x0 ldr r2, [r5, #0x40] add r4, r1, #0x0 cmp r2, #0x0 beq _0201D9EE bl FUN_0201D830 b _0201D9F0 _0201D9EE: add r0, r4, #0x0 _0201D9F0: cmp r4, #0x1 bne _0201D9FE mov r2, #0x1 lsl r2, r2, #0x1a ldr r1, [r5, #0x34] ldr r2, [r2, #0x0] b _0201DA04 _0201D9FE: ldr r2, _0201DA34 ; =0x04001000 ldr r1, [r5, #0x38] ldr r2, [r2, #0x0] _0201DA04: cmp r0, #0x0 ldr r0, [r5, #0x0] bne _0201DA16 add r5, #0x10 add r2, r4, #0x0 add r3, r5, #0x0 blx FUN_020B1528 b _0201DA20 _0201DA16: add r5, #0x10 add r2, r4, #0x0 add r3, r5, #0x0 blx FUN_020B1768 _0201DA20: cmp r4, #0x1 bne _0201DA2C mov r0, #0x1 lsl r0, r0, #0x1a ldr r0, [r0, #0x0] pop {r3-r5, pc} _0201DA2C: ldr r0, _0201DA34 ; =0x04001000 ldr r0, [r0, #0x0] pop {r3-r5, pc} nop _0201DA34: .word 0x04001000 thumb_func_start FUN_0201DA38 FUN_0201DA38: ; 0x0201DA38 push {r4, lr} add r4, r0, #0x0 add r0, #0x10 blx FUN_020B1A24 ldr r1, [r4, #0x4] cmp r1, #0x3 beq _0201DA50 add r0, r4, #0x0 bl FUN_0201DA64 pop {r4, pc} _0201DA50: add r0, r4, #0x0 mov r1, #0x1 bl FUN_0201DA64 add r0, r4, #0x0 mov r1, #0x2 bl FUN_0201DA64 pop {r4, pc} .balign 4 thumb_func_start FUN_0201DA64 FUN_0201DA64: ; 0x0201DA64 push {r3-r5, lr} add r5, r0, #0x0 ldr r2, [r5, #0x40] add r4, r1, #0x0 cmp r2, #0x0 beq _0201DA74 bl FUN_0201D830 _0201DA74: cmp r4, #0x1 bne _0201DA82 mov r0, #0x1 lsl r0, r0, #0x1a ldr r1, [r5, #0x34] ldr r0, [r0, #0x0] b _0201DA88 _0201DA82: ldr r0, _0201DAA8 ; =0x04001000 ldr r1, [r5, #0x38] ldr r0, [r0, #0x0] _0201DA88: ldr r0, [r5, #0x0] add r5, #0x10 add r2, r4, #0x0 add r3, r5, #0x0 blx FUN_020B1340 cmp r4, #0x1 bne _0201DAA0 mov r0, #0x1 lsl r0, r0, #0x1a ldr r0, [r0, #0x0] pop {r3-r5, pc} _0201DAA0: ldr r0, _0201DAA8 ; =0x04001000 ldr r0, [r0, #0x0] pop {r3-r5, pc} nop _0201DAA8: .word 0x04001000 thumb_func_start FUN_0201DAAC FUN_0201DAAC: ; 0x0201DAAC push {r3-r4} ldr r1, _0201DAE4 ; =0x021C5994 mov r0, #0x0 ldr r4, [r1, #0x0] ldr r1, [r4, #0x4] cmp r1, #0x0 ble _0201DADC ldr r1, [r4, #0x0] add r3, r1, #0x0 _0201DABE: add r2, r3, #0x0 add r2, #0x3c ldrb r2, [r2, #0x0] cmp r2, #0x0 bne _0201DAD2 mov r2, #0x54 mul r2, r0 add r0, r1, r2 pop {r3-r4} bx lr _0201DAD2: ldr r2, [r4, #0x4] add r0, r0, #0x1 add r3, #0x54 cmp r0, r2 blt _0201DABE _0201DADC: mov r0, #0x0 pop {r3-r4} bx lr nop _0201DAE4: .word 0x021C5994 thumb_func_start FUN_0201DAE8 FUN_0201DAE8: ; 0x0201DAE8 push {r3, lr} blx FUN_020C5DBC cmp r0, #0x30 bgt _0201DB18 bge _0201DB60 cmp r0, #0x10 bgt _0201DB12 bge _0201DB54 cmp r0, #0x3 bhi _0201DB90 add r1, r0, r0 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0201DB0A: ; jump table (using 16-bit offset) .short _0201DB32 - _0201DB0A - 2; case 0 .short _0201DB78 - _0201DB0A - 2; case 1 .short _0201DB78 - _0201DB0A - 2; case 2 .short _0201DB84 - _0201DB0A - 2; case 3 _0201DB12: cmp r0, #0x20 beq _0201DB3C b _0201DB90 _0201DB18: cmp r0, #0x50 bgt _0201DB24 bge _0201DB60 cmp r0, #0x40 beq _0201DB3C b _0201DB90 _0201DB24: cmp r0, #0x60 bgt _0201DB2C beq _0201DB48 b _0201DB90 _0201DB2C: cmp r0, #0x70 beq _0201DB6C b _0201DB90 _0201DB32: ldr r0, _0201DC38 ; =0x021C5994 mov r1, #0x0 ldr r0, [r0, #0x0] str r1, [r0, #0x14] b _0201DB98 _0201DB3C: ldr r0, _0201DC38 ; =0x021C5994 mov r1, #0x1 ldr r0, [r0, #0x0] lsl r1, r1, #0xe str r1, [r0, #0x14] b _0201DB98 _0201DB48: ldr r0, _0201DC38 ; =0x021C5994 mov r1, #0x2 ldr r0, [r0, #0x0] lsl r1, r1, #0xe str r1, [r0, #0x14] b _0201DB98 _0201DB54: ldr r0, _0201DC38 ; =0x021C5994 mov r1, #0x1 ldr r0, [r0, #0x0] lsl r1, r1, #0x10 str r1, [r0, #0x14] b _0201DB98 _0201DB60: ldr r0, _0201DC38 ; =0x021C5994 mov r1, #0x5 ldr r0, [r0, #0x0] lsl r1, r1, #0xe str r1, [r0, #0x14] b _0201DB98 _0201DB6C: ldr r0, _0201DC38 ; =0x021C5994 mov r1, #0x6 ldr r0, [r0, #0x0] lsl r1, r1, #0xe str r1, [r0, #0x14] b _0201DB98 _0201DB78: ldr r0, _0201DC38 ; =0x021C5994 mov r1, #0x2 ldr r0, [r0, #0x0] lsl r1, r1, #0x10 str r1, [r0, #0x14] b _0201DB98 _0201DB84: ldr r0, _0201DC38 ; =0x021C5994 mov r1, #0x1 ldr r0, [r0, #0x0] lsl r1, r1, #0x12 str r1, [r0, #0x14] b _0201DB98 _0201DB90: ldr r0, _0201DC38 ; =0x021C5994 mov r1, #0x0 ldr r0, [r0, #0x0] str r1, [r0, #0x14] _0201DB98: blx FUN_020C5D4C cmp r0, #0x0 beq _0201DBAE cmp r0, #0x8 beq _0201DBC2 mov r1, #0x1 lsl r1, r1, #0x8 cmp r0, r1 beq _0201DBB8 b _0201DBCE _0201DBAE: ldr r0, _0201DC38 ; =0x021C5994 mov r1, #0x0 ldr r0, [r0, #0x0] str r1, [r0, #0x18] b _0201DBD6 _0201DBB8: ldr r0, _0201DC38 ; =0x021C5994 lsl r1, r1, #0x6 ldr r0, [r0, #0x0] str r1, [r0, #0x18] b _0201DBD6 _0201DBC2: ldr r0, _0201DC38 ; =0x021C5994 mov r1, #0x2 ldr r0, [r0, #0x0] lsl r1, r1, #0x10 str r1, [r0, #0x18] b _0201DBD6 _0201DBCE: ldr r0, _0201DC38 ; =0x021C5994 mov r1, #0x0 ldr r0, [r0, #0x0] str r1, [r0, #0x18] _0201DBD6: ldr r0, _0201DC38 ; =0x021C5994 ldr r1, [r0, #0x0] ldr r0, [r1, #0x24] ldr r1, [r1, #0x2c] bl FUN_0201DF3C ldr r1, _0201DC38 ; =0x021C5994 ldr r3, [r1, #0x0] ldr r2, [r3, #0x14] sub r0, r2, r0 str r0, [r3, #0x1c] ldr r1, [r1, #0x0] ldr r0, [r1, #0x28] ldr r1, [r1, #0x30] bl FUN_0201DF3C ldr r1, _0201DC38 ; =0x021C5994 ldr r3, [r1, #0x0] ldr r2, [r3, #0x18] sub r0, r2, r0 str r0, [r3, #0x20] ldr r1, [r1, #0x0] mov r2, #0x0 ldr r0, [r1, #0x1c] cmp r0, #0x0 blt _0201DC12 ldr r0, [r1, #0x20] cmp r0, #0x0 blt _0201DC12 mov r2, #0x1 _0201DC12: cmp r2, #0x0 bne _0201DC1A bl ErrorHandling _0201DC1A: ldr r0, _0201DC38 ; =0x021C5994 mov r2, #0x0 ldr r1, [r0, #0x0] ldr r0, [r1, #0x1c] cmp r0, #0x0 blt _0201DC2E ldr r0, [r1, #0x20] cmp r0, #0x0 blt _0201DC2E mov r2, #0x1 _0201DC2E: cmp r2, #0x0 bne _0201DC36 bl ErrorHandling _0201DC36: pop {r3, pc} .balign 4 _0201DC38: .word 0x021C5994 thumb_func_start FUN_0201DC3C FUN_0201DC3C: ; 0x0201DC3C push {r3, lr} ldr r0, _0201DC54 ; =0x021C5994 ldr r0, [r0, #0x0] ldr r0, [r0, #0x34] bl FUN_0201DD00 ldr r0, _0201DC54 ; =0x021C5994 ldr r0, [r0, #0x0] ldr r0, [r0, #0x38] bl FUN_0201DD00 pop {r3, pc} .balign 4 _0201DC54: .word 0x021C5994 thumb_func_start FUN_0201DC58 FUN_0201DC58: ; 0x0201DC58 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, _0201DCBC ; =0x021C5994 add r4, r1, #0x0 ldr r1, [r0, #0x0] add r6, r2, #0x0 str r5, [r1, #0x24] ldr r1, [r0, #0x0] str r4, [r1, #0x28] ldr r0, [r0, #0x0] ldr r0, [r0, #0x34] cmp r0, #0x0 beq _0201DC76 bl FUN_02016A18 _0201DC76: ldr r0, _0201DCBC ; =0x021C5994 ldr r0, [r0, #0x0] ldr r0, [r0, #0x38] cmp r0, #0x0 beq _0201DC84 bl FUN_02016A18 _0201DC84: ldr r0, _0201DCBC ; =0x021C5994 ldr r0, [r0, #0x0] ldr r0, [r0, #0x24] cmp r0, #0x0 beq _0201DC9C add r0, r6, #0x0 lsr r1, r5, #0x3 bl FUN_02016998 ldr r1, _0201DCBC ; =0x021C5994 ldr r1, [r1, #0x0] str r0, [r1, #0x34] _0201DC9C: ldr r0, _0201DCBC ; =0x021C5994 ldr r0, [r0, #0x0] ldr r0, [r0, #0x28] cmp r0, #0x0 beq _0201DCB4 add r0, r6, #0x0 lsr r1, r4, #0x3 bl FUN_02016998 ldr r1, _0201DCBC ; =0x021C5994 ldr r1, [r1, #0x0] str r0, [r1, #0x38] _0201DCB4: bl FUN_0201DC3C pop {r4-r6, pc} nop _0201DCBC: .word 0x021C5994 thumb_func_start FUN_0201DCC0 FUN_0201DCC0: ; 0x0201DCC0 push {r3, lr} cmp r0, #0x0 beq _0201DCE2 ldr r1, _0201DCE4 ; =0x021C5994 ldr r2, [r1, #0x0] ldr r1, [r2, #0x34] cmp r0, r1 bne _0201DCDA mov r1, #0x0 str r1, [r2, #0x24] bl FUN_02016A18 pop {r3, pc} _0201DCDA: mov r1, #0x0 str r1, [r2, #0x28] bl FUN_02016A18 _0201DCE2: pop {r3, pc} .balign 4 _0201DCE4: .word 0x021C5994 thumb_func_start FUN_0201DCE8 FUN_0201DCE8: ; 0x0201DCE8 ldr r1, _0201DCFC ; =0x021C5994 ldr r2, [r1, #0x0] ldr r1, [r2, #0x34] cmp r0, r1 bne _0201DCF6 ldr r0, [r2, #0x24] bx lr _0201DCF6: ldr r0, [r2, #0x28] bx lr nop _0201DCFC: .word 0x021C5994 thumb_func_start FUN_0201DD00 FUN_0201DD00: ; 0x0201DD00 push {r4, lr} add r4, r0, #0x0 beq _0201DD16 bl FUN_0201DCE8 add r2, r0, #0x0 add r0, r4, #0x0 mov r1, #0x0 lsr r2, r2, #0x3 blx FUN_020DF4A4 _0201DD16: pop {r4, pc} thumb_func_start FUN_0201DD18 FUN_0201DD18: ; 0x0201DD18 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 add r6, r1, #0x0 add r4, r2, #0x0 beq _0201DD6E add r0, r4, #0x0 bl FUN_0201DCE8 add r6, r5, r6 add r7, r0, #0x0 cmp r5, r6 bhs _0201DD6E _0201DD32: cmp r5, r7 bhs _0201DD6E add r0, r5, #0x0 add r1, sp, #0x4 add r2, sp, #0x0 bl FUN_0201DFE4 add r0, sp, #0x0 ldrb r1, [r0, #0x0] mov r0, #0x1 lsl r0, r1 ldr r1, [sp, #0x4] ldrb r1, [r4, r1] tst r0, r1 beq _0201DD54 bl ErrorHandling _0201DD54: add r2, sp, #0x0 ldrb r3, [r2, #0x0] ldr r1, [sp, #0x4] mov r2, #0x1 lsl r2, r3 lsl r2, r2, #0x18 ldrb r0, [r4, r1] lsr r2, r2, #0x18 add r5, r5, #0x1 orr r0, r2 strb r0, [r4, r1] cmp r5, r6 blo _0201DD32 _0201DD6E: add sp, #0x8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0201DD74 FUN_0201DD74: ; 0x0201DD74 push {r3-r7, lr} sub sp, #0x10 add r7, r0, #0x0 str r1, [sp, #0x0] cmp r1, #0x0 beq _0201DDF2 add r0, r1, #0x0 bl FUN_0201DCE8 mov r6, #0x0 str r0, [sp, #0x4] cmp r0, #0x0 bls _0201DDF2 _0201DD8E: add r0, r6, #0x0 add r1, sp, #0xc add r2, sp, #0x8 bl FUN_0201DFE4 add r0, sp, #0x8 ldrb r1, [r0, #0x0] mov r0, #0x1 mov r4, #0x0 lsl r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 b _0201DDD0 _0201DDA8: add r5, r6, r4 add r0, r5, #0x0 add r1, sp, #0xc add r2, sp, #0x8 bl FUN_0201DFE4 add r0, sp, #0x8 ldrb r1, [r0, #0x0] mov r0, #0x1 lsl r0, r1 lsl r0, r0, #0x18 ldr r1, [sp, #0x4] lsr r0, r0, #0x18 cmp r5, r1 blo _0201DDCE mov r0, #0x0 add sp, #0x10 mvn r0, r0 pop {r3-r7, pc} _0201DDCE: add r4, r4, #0x1 _0201DDD0: ldr r2, [sp, #0xc] ldr r1, [sp, #0x0] ldrb r1, [r1, r2] tst r0, r1 bne _0201DDDE cmp r4, r7 bls _0201DDA8 _0201DDDE: cmp r4, r7 bls _0201DDE8 add sp, #0x10 add r0, r6, #0x0 pop {r3-r7, pc} _0201DDE8: add r0, r6, r4 add r6, r0, #0x1 ldr r0, [sp, #0x4] cmp r6, r0 blo _0201DD8E _0201DDF2: mov r0, #0x0 mvn r0, r0 add sp, #0x10 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0201DDFC FUN_0201DDFC: ; 0x0201DDFC push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 add r4, r2, #0x0 beq _0201DE46 add r6, r5, r1 cmp r5, r6 bhs _0201DE46 add r7, sp, #0x0 _0201DE0E: add r0, r5, #0x0 add r1, sp, #0x4 add r2, sp, #0x0 bl FUN_0201DFE4 ldrb r1, [r7, #0x0] mov r0, #0x1 lsl r0, r1 ldr r1, [sp, #0x4] ldrb r1, [r4, r1] tst r0, r1 bne _0201DE2A bl ErrorHandling _0201DE2A: ldrb r0, [r7, #0x0] mov r1, #0x1 ldr r3, [sp, #0x4] lsl r1, r0 mov r0, #0xff eor r0, r1 lsl r0, r0, #0x18 ldrb r2, [r4, r3] lsr r0, r0, #0x18 add r5, r5, #0x1 and r0, r2 strb r0, [r4, r3] cmp r5, r6 blo _0201DE0E _0201DE46: add sp, #0x8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0201DE4C FUN_0201DE4C: ; 0x0201DE4C push {r3-r5, lr} add r4, r0, #0x0 ldr r0, [r4, #0x4] mov r1, #0x1 tst r0, r1 beq _0201DE8A add r0, r4, #0x0 add r0, #0x10 blx FUN_020B1A14 ldr r1, _0201DECC ; =0x021C5994 ldr r2, [r1, #0x0] ldr r1, [r2, #0x1c] sub r0, r0, r1 ldr r1, [r2, #0x2c] bl FUN_0201DF2C ldr r1, _0201DECC ; =0x021C5994 add r5, r0, #0x0 ldr r1, [r1, #0x0] ldr r0, [r4, #0x4c] ldr r1, [r1, #0x2c] bl FUN_0201DF2C ldr r2, _0201DECC ; =0x021C5994 add r1, r0, #0x0 ldr r2, [r2, #0x0] add r0, r5, #0x0 ldr r2, [r2, #0x34] bl FUN_0201DDFC _0201DE8A: ldr r0, [r4, #0x4] mov r1, #0x2 tst r0, r1 beq _0201DEC4 add r0, r4, #0x0 add r0, #0x10 blx FUN_020B1A14 ldr r1, _0201DECC ; =0x021C5994 ldr r2, [r1, #0x0] ldr r1, [r2, #0x20] sub r0, r0, r1 ldr r1, [r2, #0x30] bl FUN_0201DF2C ldr r1, _0201DECC ; =0x021C5994 add r5, r0, #0x0 ldr r1, [r1, #0x0] ldr r0, [r4, #0x50] ldr r1, [r1, #0x30] bl FUN_0201DF2C ldr r2, _0201DECC ; =0x021C5994 add r1, r0, #0x0 ldr r2, [r2, #0x0] add r0, r5, #0x0 ldr r2, [r2, #0x38] bl FUN_0201DDFC _0201DEC4: mov r0, #0x0 str r0, [r4, #0x48] pop {r3-r5, pc} nop _0201DECC: .word 0x021C5994 thumb_func_start FUN_0201DED0 FUN_0201DED0: ; 0x0201DED0 ldr r1, _0201DF04 ; =0x00100010 cmp r0, r1 bgt _0201DEDE bge _0201DEF4 cmp r0, #0x10 beq _0201DEF0 b _0201DF00 _0201DEDE: ldr r1, _0201DF08 ; =0x00200010 cmp r0, r1 bgt _0201DEE8 beq _0201DEF8 b _0201DF00 _0201DEE8: ldr r1, _0201DF0C ; =0x00300010 cmp r0, r1 beq _0201DEFC b _0201DF00 _0201DEF0: mov r0, #0x1 bx lr _0201DEF4: mov r0, #0x2 bx lr _0201DEF8: mov r0, #0x4 bx lr _0201DEFC: mov r0, #0x8 bx lr _0201DF00: mov r0, #0x1 bx lr .balign 4 _0201DF04: .word 0x00100010 _0201DF08: .word 0x00200010 _0201DF0C: .word 0x00300010 thumb_func_start FUN_0201DF10 FUN_0201DF10: ; 0x0201DF10 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 blx _s32_div_f cmp r1, #0x0 beq _0201DF28 sub r5, r5, r1 cmp r6, #0x1 bne _0201DF28 add r5, r5, r4 _0201DF28: add r0, r5, #0x0 pop {r4-r6, pc} thumb_func_start FUN_0201DF2C FUN_0201DF2C: ; 0x0201DF2C asr r2, r0, #0x4 lsr r2, r2, #0x1b add r2, r0, r2 ldr r3, _0201DF38 ; =_s32_div_f asr r0, r2, #0x5 bx r3 .balign 4 _0201DF38: .word _s32_div_f thumb_func_start FUN_0201DF3C FUN_0201DF3C: ; 0x0201DF3C mul r1, r0 lsl r0, r1, #0x5 bx lr .balign 4 thumb_func_start FUN_0201DF44 FUN_0201DF44: ; 0x0201DF44 push {r3-r7, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r1, r2, #0x0 mov r0, #0x1 add r2, r4, #0x0 add r7, r3, #0x0 tst r2, r0 beq _0201DF6E ldr r2, _0201DF90 ; =0x021C5994 ldr r2, [r2, #0x0] ldr r6, [r2, #0xc] ldr r2, [r2, #0x1c] add r3, r6, r5 cmp r3, r2 bls _0201DF6C bl ErrorHandling mov r0, #0x0 b _0201DF6E _0201DF6C: str r6, [r1, #0x0] _0201DF6E: mov r1, #0x2 tst r1, r4 beq _0201DF8C ldr r1, _0201DF90 ; =0x021C5994 ldr r1, [r1, #0x0] ldr r3, [r1, #0x10] ldr r1, [r1, #0x20] add r2, r3, r5 cmp r2, r1 bls _0201DF8A bl ErrorHandling mov r0, #0x0 pop {r3-r7, pc} _0201DF8A: str r3, [r7, #0x0] _0201DF8C: pop {r3-r7, pc} nop _0201DF90: .word 0x021C5994 thumb_func_start FUN_0201DF94 FUN_0201DF94: ; 0x0201DF94 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 mov r2, #0x1 add r0, r4, #0x0 tst r0, r2 beq _0201DFBC ldr r0, _0201DFE0 ; =0x021C5994 ldr r3, [r0, #0x0] ldr r1, [r3, #0xc] add r1, r1, r5 str r1, [r3, #0xc] ldr r1, [r0, #0x0] ldr r0, [r1, #0xc] ldr r1, [r1, #0x2c] bl FUN_0201DF10 ldr r1, _0201DFE0 ; =0x021C5994 ldr r1, [r1, #0x0] str r0, [r1, #0xc] _0201DFBC: mov r0, #0x2 tst r0, r4 beq _0201DFDE ldr r0, _0201DFE0 ; =0x021C5994 ldr r2, [r0, #0x0] ldr r1, [r2, #0x10] add r1, r1, r5 str r1, [r2, #0x10] ldr r1, [r0, #0x0] mov r2, #0x1 ldr r0, [r1, #0x10] ldr r1, [r1, #0x30] bl FUN_0201DF10 ldr r1, _0201DFE0 ; =0x021C5994 ldr r1, [r1, #0x0] str r0, [r1, #0x10] _0201DFDE: pop {r3-r5, pc} .balign 4 _0201DFE0: .word 0x021C5994 thumb_func_start FUN_0201DFE4 FUN_0201DFE4: ; 0x0201DFE4 asr r3, r0, #0x3 str r3, [r1, #0x0] mov r1, #0x7 and r0, r1 strb r0, [r2, #0x0] bx lr thumb_func_start FUN_0201DFF0 FUN_0201DFF0: ; 0x0201DFF0 push {r3-r4} sub r0, r1, r0 ldr r4, [sp, #0x8] str r0, [r3, #0x0] bpl _0201E006 add r0, r2, r0 str r0, [r4, #0x0] mov r0, #0x0 str r0, [r3, #0x0] pop {r3-r4} bx lr _0201E006: str r2, [r4, #0x0] pop {r3-r4} bx lr thumb_func_start FUN_0201E00C FUN_0201E00C: ; 0x0201E00C push {r3-r7, lr} add r6, r0, #0x0 ldr r0, _0201E064 ; =0x021C5998 add r4, r1, #0x0 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _0201E060 add r0, r4, #0x0 mov r1, #0x28 bl FUN_02016998 add r1, r0, #0x0 ldr r0, _0201E064 ; =0x021C5998 mov r2, #0x28 str r1, [r0, #0x0] mov r0, #0x0 blx MIi_CpuClear32 ldr r0, _0201E064 ; =0x021C5998 mov r1, #0x30 ldr r0, [r0, #0x0] mul r1, r6 str r6, [r0, #0x4] add r0, r4, #0x0 bl FUN_02016998 ldr r7, _0201E064 ; =0x021C5998 mov r4, #0x0 ldr r1, [r7, #0x0] cmp r6, #0x0 str r0, [r1, #0x0] ble _0201E060 add r5, r4, #0x0 _0201E04E: ldr r0, [r7, #0x0] ldr r0, [r0, #0x0] add r0, r0, r5 bl FUN_0201E2F8 add r4, r4, #0x1 add r5, #0x30 cmp r4, r6 blt _0201E04E _0201E060: pop {r3-r7, pc} nop _0201E064: .word 0x021C5998 thumb_func_start FUN_0201E068 FUN_0201E068: ; 0x0201E068 cmp r1, #0x1 bne _0201E078 ldr r1, _0201E088 ; =0x021C5998 ldr r2, [r1, #0x0] ldrh r1, [r2, #0x24] orr r0, r1 strh r0, [r2, #0x24] bx lr _0201E078: cmp r1, #0x2 bne _0201E086 ldr r1, _0201E088 ; =0x021C5998 ldr r2, [r1, #0x0] ldrh r1, [r2, #0x26] orr r0, r1 strh r0, [r2, #0x26] _0201E086: bx lr .balign 4 _0201E088: .word 0x021C5998 thumb_func_start FUN_0201E08C FUN_0201E08C: ; 0x0201E08C push {r3, lr} ldr r0, _0201E0B4 ; =0x021C5998 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _0201E0B2 bl FUN_0201E1F0 ldr r0, _0201E0B4 ; =0x021C5998 ldr r0, [r0, #0x0] ldr r0, [r0, #0x0] bl FUN_02016A18 ldr r0, _0201E0B4 ; =0x021C5998 ldr r0, [r0, #0x0] bl FUN_02016A18 ldr r0, _0201E0B4 ; =0x021C5998 mov r1, #0x0 str r1, [r0, #0x0] _0201E0B2: pop {r3, pc} .balign 4 _0201E0B4: .word 0x021C5998 thumb_func_start FUN_0201E0B8 FUN_0201E0B8: ; 0x0201E0B8 bx lr .balign 4 thumb_func_start FUN_0201E0BC FUN_0201E0BC: ; 0x0201E0BC push {r3, lr} ldr r0, _0201E0E0 ; =0x021C5998 mov r2, #0x0 ldr r1, [r0, #0x0] str r2, [r1, #0xc] ldr r1, [r0, #0x0] str r2, [r1, #0x10] ldr r1, [r0, #0x0] str r2, [r1, #0x14] ldr r0, [r0, #0x0] str r2, [r0, #0x18] bl FUN_0201E464 ldr r0, _0201E0E0 ; =0x021C5998 ldr r0, [r0, #0x0] bl FUN_0201E574 pop {r3, pc} .balign 4 _0201E0E0: .word 0x021C5998 thumb_func_start FUN_0201E0E4 FUN_0201E0E4: ; 0x0201E0E4 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_0201E428 add r4, r0, #0x0 bne _0201E0F8 bl ErrorHandling mov r0, #0x0 pop {r3-r5, pc} _0201E0F8: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0201E2C4 cmp r0, #0x0 bne _0201E108 mov r0, #0x0 pop {r3-r5, pc} _0201E108: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0201E314 cmp r0, #0x0 bne _0201E11E ldr r0, [r5, #0xc] bl FUN_0201E1C8 mov r0, #0x0 pop {r3-r5, pc} _0201E11E: add r0, r4, #0x0 bl FUN_0201E57C mov r0, #0x1 pop {r3-r5, pc} thumb_func_start FUN_0201E128 FUN_0201E128: ; 0x0201E128 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_0201E428 add r4, r0, #0x0 bne _0201E13C bl ErrorHandling mov r0, #0x0 pop {r3-r5, pc} _0201E13C: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0201E2C4 cmp r0, #0x0 bne _0201E14C mov r0, #0x0 pop {r3-r5, pc} _0201E14C: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0201E36C cmp r0, #0x0 bne _0201E162 ldr r0, [r5, #0xc] bl FUN_0201E1C8 mov r0, #0x0 pop {r3-r5, pc} _0201E162: mov r0, #0x1 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0201E168 FUN_0201E168: ; 0x0201E168 push {r3-r5, lr} add r4, r0, #0x0 add r5, r1, #0x0 bne _0201E174 bl ErrorHandling _0201E174: add r0, r4, #0x0 bl FUN_0201E3F0 add r4, r0, #0x0 bne _0201E182 bl ErrorHandling _0201E182: str r5, [r4, #0x0] ldr r1, [r4, #0x4] mov r0, #0x1 tst r0, r1 beq _0201E19A ldr r3, [r4, #0x8] ldr r1, [r4, #0x24] ldr r2, [r5, #0xc] mov r0, #0xe lsl r3, r3, #0x5 bl FUN_0201C2C8 _0201E19A: ldr r1, [r4, #0x4] mov r0, #0x2 tst r0, r1 beq _0201E1B0 ldr r3, [r4, #0x8] ldr r1, [r4, #0x28] ldr r2, [r5, #0xc] mov r0, #0x1e lsl r3, r3, #0x5 bl FUN_0201C2C8 _0201E1B0: pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0201E1B4 FUN_0201E1B4: ; 0x0201E1B4 push {r3, lr} bl FUN_0201E3F0 cmp r0, #0x0 beq _0201E1C2 mov r0, #0x1 pop {r3, pc} _0201E1C2: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0201E1C8 FUN_0201E1C8: ; 0x0201E1C8 push {r4, lr} bl FUN_0201E3F0 add r4, r0, #0x0 bne _0201E1D6 bl ErrorHandling _0201E1D6: add r0, r4, #0x0 add r0, #0x2c ldrb r0, [r0, #0x0] cmp r0, #0x1 bne _0201E1EC add r0, r4, #0x0 bl FUN_0201E5B8 add r0, r4, #0x0 bl FUN_0201E2BC _0201E1EC: pop {r4, pc} .balign 4 thumb_func_start FUN_0201E1F0 FUN_0201E1F0: ; 0x0201E1F0 push {r4-r6, lr} ldr r6, _0201E22C ; =0x021C5998 mov r4, #0x0 ldr r1, [r6, #0x0] ldr r0, [r1, #0x4] cmp r0, #0x0 ble _0201E228 add r5, r4, #0x0 _0201E200: ldr r1, [r1, #0x0] add r0, r1, r5 add r0, #0x2c ldrb r0, [r0, #0x0] cmp r0, #0x1 bne _0201E21C add r0, r1, r5 bl FUN_0201E5B8 ldr r0, [r6, #0x0] ldr r0, [r0, #0x0] add r0, r0, r5 bl FUN_0201E2BC _0201E21C: ldr r1, [r6, #0x0] add r4, r4, #0x1 ldr r0, [r1, #0x4] add r5, #0x30 cmp r4, r0 blt _0201E200 _0201E228: pop {r4-r6, pc} nop _0201E22C: .word 0x021C5998 thumb_func_start FUN_0201E230 FUN_0201E230: ; 0x0201E230 push {r3, lr} bl FUN_0201E3F0 cmp r0, #0x0 bne _0201E244 bne _0201E240 bl ErrorHandling _0201E240: mov r0, #0x0 pop {r3, pc} _0201E244: add r1, r0, #0x0 add r1, #0x2c ldrb r1, [r1, #0x0] cmp r1, #0x1 bne _0201E252 add r0, #0x10 pop {r3, pc} _0201E252: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0201E258 FUN_0201E258: ; 0x0201E258 push {r4, lr} add r4, r1, #0x0 bl FUN_0201E3F0 cmp r0, #0x0 bne _0201E26E bne _0201E26A bl ErrorHandling _0201E26A: mov r0, #0x0 pop {r4, pc} _0201E26E: add r1, r0, #0x0 add r1, #0x2c ldrb r1, [r1, #0x0] cmp r1, #0x1 beq _0201E27C mov r0, #0x0 pop {r4, pc} _0201E27C: ldr r1, [r0, #0x0] ldr r1, [r1, #0x4] cmp r1, #0x0 beq _0201E288 mov r1, #0x1 str r1, [r4, #0x18] _0201E288: add r0, #0x10 pop {r4, pc} thumb_func_start FUN_0201E28C FUN_0201E28C: ; 0x0201E28C push {r4, lr} ldr r2, [r0, #0x4] cmp r2, #0x0 beq _0201E29A mov r4, #0x2 lsl r4, r4, #0x8 b _0201E2A6 _0201E29A: ldr r2, [r0, #0x0] cmp r2, #0x4 bne _0201E2A4 mov r4, #0x0 b _0201E2A6 _0201E2A4: mov r4, #0x20 _0201E2A6: cmp r4, #0x0 beq _0201E2B6 blx FUN_020B19C4 add r1, r4, #0x0 blx _u32_div_f pop {r4, pc} _0201E2B6: mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_0201E2BC FUN_0201E2BC: ; 0x0201E2BC ldr r3, _0201E2C0 ; =FUN_0201E2F8 bx r3 .balign 4 _0201E2C0: .word FUN_0201E2F8 thumb_func_start FUN_0201E2C4 FUN_0201E2C4: ; 0x0201E2C4 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] add r4, r1, #0x0 str r0, [r4, #0x0] ldr r0, [r5, #0xc] bl FUN_0201E1B4 cmp r0, #0x1 bne _0201E2E0 bl ErrorHandling mov r0, #0x0 pop {r3-r5, pc} _0201E2E0: ldr r0, [r5, #0xc] add r1, r4, #0x0 str r0, [r4, #0xc] ldr r0, [r5, #0x4] add r1, #0x2c str r0, [r4, #0x4] mov r0, #0x1 strb r0, [r1, #0x0] ldr r1, [r5, #0x8] str r1, [r4, #0x8] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0201E2F8 FUN_0201E2F8: ; 0x0201E2F8 push {r4, lr} mov r1, #0x0 mov r2, #0x30 add r4, r0, #0x0 blx FUN_020DF4A4 mov r0, #0x0 mvn r0, r0 str r0, [r4, #0xc] add r4, #0x10 add r0, r4, #0x0 blx FUN_020B19DC pop {r4, pc} thumb_func_start FUN_0201E314 FUN_0201E314: ; 0x0201E314 push {r3-r6, lr} sub sp, #0x4 add r6, r1, #0x0 ldr r0, [r6, #0x0] ldr r0, [r0, #0x4] cmp r0, #0x0 beq _0201E334 ldr r0, _0201E368 ; =0x021C5998 ldr r0, [r0, #0x0] add r4, r0, #0x0 add r5, r0, #0x0 ldr r3, [r0, #0x1c] add r4, #0x14 add r5, #0x18 ldr r0, [r0, #0x20] b _0201E344 _0201E334: ldr r0, _0201E368 ; =0x021C5998 mov r3, #0x2 ldr r5, [r0, #0x0] lsl r3, r3, #0x8 add r4, r5, #0x0 add r4, #0xc add r5, #0x10 add r0, r3, #0x0 _0201E344: str r0, [sp, #0x0] ldr r1, [r4, #0x0] ldr r2, [r5, #0x0] add r0, r6, #0x0 bl FUN_0201E5F4 add r0, r6, #0x0 bl FUN_0201E4AC add r0, r6, #0x0 add r1, r4, #0x0 add r2, r5, #0x0 bl FUN_0201E640 mov r0, #0x1 add sp, #0x4 pop {r3-r6, pc} nop _0201E368: .word 0x021C5998 thumb_func_start FUN_0201E36C FUN_0201E36C: ; 0x0201E36C push {r4-r6, lr} add r5, r1, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0x4] cmp r0, #0x0 beq _0201E37C bl ErrorHandling _0201E37C: ldr r1, [r5, #0x4] mov r0, #0x1 tst r0, r1 beq _0201E39E ldr r0, _0201E3EC ; =0x021C5998 ldr r1, [r5, #0x8] ldr r0, [r0, #0x0] ldrh r0, [r0, #0x24] bl FUN_0201E534 add r6, r0, #0x0 mov r0, #0x0 mvn r0, r0 cmp r6, r0 bne _0201E39E mov r0, #0x0 pop {r4-r6, pc} _0201E39E: ldr r1, [r5, #0x4] mov r0, #0x2 tst r0, r1 beq _0201E3C0 ldr r0, _0201E3EC ; =0x021C5998 ldr r1, [r5, #0x8] ldr r0, [r0, #0x0] ldrh r0, [r0, #0x26] bl FUN_0201E534 add r4, r0, #0x0 mov r0, #0x0 mvn r0, r0 cmp r4, r0 bne _0201E3C0 mov r0, #0x0 pop {r4-r6, pc} _0201E3C0: ldr r1, [r5, #0x4] mov r0, #0x1 tst r0, r1 beq _0201E3CA str r6, [r5, #0x24] _0201E3CA: ldr r1, [r5, #0x4] mov r0, #0x2 tst r0, r1 beq _0201E3D4 str r4, [r5, #0x28] _0201E3D4: ldr r0, [r5, #0x8] lsl r1, r0, #0x5 ldr r0, [r5, #0x0] str r1, [r0, #0x8] add r0, r5, #0x0 bl FUN_0201E4BC add r0, r5, #0x0 bl FUN_0201E57C mov r0, #0x1 pop {r4-r6, pc} .balign 4 _0201E3EC: .word 0x021C5998 thumb_func_start FUN_0201E3F0 FUN_0201E3F0: ; 0x0201E3F0 push {r4-r5} ldr r2, _0201E424 ; =0x021C5998 mov r1, #0x0 ldr r5, [r2, #0x0] ldr r2, [r5, #0x4] cmp r2, #0x0 ble _0201E41C ldr r2, [r5, #0x0] add r4, r2, #0x0 _0201E402: ldr r3, [r4, #0xc] cmp r0, r3 bne _0201E412 mov r0, #0x30 mul r0, r1 add r0, r2, r0 pop {r4-r5} bx lr _0201E412: ldr r3, [r5, #0x4] add r1, r1, #0x1 add r4, #0x30 cmp r1, r3 blt _0201E402 _0201E41C: mov r0, #0x0 pop {r4-r5} bx lr nop _0201E424: .word 0x021C5998 thumb_func_start FUN_0201E428 FUN_0201E428: ; 0x0201E428 push {r3-r4} ldr r1, _0201E460 ; =0x021C5998 mov r0, #0x0 ldr r4, [r1, #0x0] ldr r1, [r4, #0x4] cmp r1, #0x0 ble _0201E458 ldr r1, [r4, #0x0] add r3, r1, #0x0 _0201E43A: add r2, r3, #0x0 add r2, #0x2c ldrb r2, [r2, #0x0] cmp r2, #0x0 bne _0201E44E mov r2, #0x30 mul r2, r0 add r0, r1, r2 pop {r3-r4} bx lr _0201E44E: ldr r2, [r4, #0x4] add r0, r0, #0x1 add r3, #0x30 cmp r0, r2 blt _0201E43A _0201E458: mov r0, #0x0 pop {r3-r4} bx lr nop _0201E460: .word 0x021C5998 thumb_func_start FUN_0201E464 FUN_0201E464: ; 0x0201E464 push {r3, lr} blx FUN_020C5D9C cmp r0, #0x20 beq _0201E472 cmp r0, #0x40 bne _0201E47E _0201E472: ldr r0, _0201E4A8 ; =0x021C5998 mov r1, #0x2 ldr r0, [r0, #0x0] lsl r1, r1, #0xc str r1, [r0, #0x1c] b _0201E486 _0201E47E: ldr r0, _0201E4A8 ; =0x021C5998 mov r1, #0x0 ldr r0, [r0, #0x0] str r1, [r0, #0x1c] _0201E486: blx FUN_020C5D2C mov r1, #0x1 lsl r1, r1, #0x8 cmp r0, r1 bne _0201E49C ldr r0, _0201E4A8 ; =0x021C5998 lsl r1, r1, #0x5 ldr r0, [r0, #0x0] str r1, [r0, #0x20] pop {r3, pc} _0201E49C: ldr r0, _0201E4A8 ; =0x021C5998 mov r1, #0x0 ldr r0, [r0, #0x0] str r1, [r0, #0x20] pop {r3, pc} nop _0201E4A8: .word 0x021C5998 thumb_func_start FUN_0201E4AC FUN_0201E4AC: ; 0x0201E4AC ldr r1, [r0, #0x8] ldr r3, _0201E4B8 ; =FUN_0201E4BC lsl r2, r1, #0x5 ldr r1, [r0, #0x0] str r2, [r1, #0x8] bx r3 .balign 4 _0201E4B8: .word FUN_0201E4BC thumb_func_start FUN_0201E4BC FUN_0201E4BC: ; 0x0201E4BC push {r4, lr} add r4, r0, #0x0 add r0, #0x10 blx FUN_020B19DC ldr r0, [r4, #0x4] mov r2, #0x1 tst r0, r2 beq _0201E4DA add r3, r4, #0x0 ldr r0, [r4, #0x0] ldr r1, [r4, #0x24] add r3, #0x10 blx FUN_020B1240 _0201E4DA: ldr r0, [r4, #0x4] mov r2, #0x2 tst r0, r2 beq _0201E4EE ldr r0, [r4, #0x0] ldr r1, [r4, #0x28] add r4, #0x10 add r3, r4, #0x0 blx FUN_020B1240 _0201E4EE: pop {r4, pc} thumb_func_start FUN_0201E4F0 FUN_0201E4F0: ; 0x0201E4F0 push {r4-r7} mov r3, #0x0 cmp r1, #0x0 ble _0201E50E mov r5, #0x1 _0201E4FA: ldrh r7, [r0, #0x0] add r4, r2, r3 add r6, r5, #0x0 lsl r6, r4 add r4, r7, #0x0 orr r4, r6 add r3, r3, #0x1 strh r4, [r0, #0x0] cmp r3, r1 blt _0201E4FA _0201E50E: pop {r4-r7} bx lr .balign 4 thumb_func_start FUN_0201E514 FUN_0201E514: ; 0x0201E514 push {r4-r7} mov r4, #0x0 cmp r1, #0x0 ble _0201E530 mov r6, #0x1 _0201E51E: add r5, r2, r4 add r7, r6, #0x0 ldrh r3, [r0, #0x0] lsl r7, r5 bic r3, r7 add r4, r4, #0x1 strh r3, [r0, #0x0] cmp r4, r1 blt _0201E51E _0201E530: pop {r4-r7} bx lr thumb_func_start FUN_0201E534 FUN_0201E534: ; 0x0201E534 push {r4-r7} mov r3, #0x0 mov r6, #0x1 add r2, r3, #0x0 _0201E53C: add r4, r2, #0x0 b _0201E546 _0201E540: cmp r5, #0x10 bge _0201E554 add r4, r4, #0x1 _0201E546: add r5, r3, r4 add r7, r6, #0x0 lsl r7, r5 tst r7, r0 bne _0201E554 cmp r4, r1 blt _0201E540 _0201E554: cmp r4, r1 bge _0201E560 add r3, r3, r4 add r3, r3, #0x1 cmp r3, #0x10 blt _0201E53C _0201E560: cmp r3, #0x10 blt _0201E56C mov r0, #0x0 mvn r0, r0 pop {r4-r7} bx lr _0201E56C: lsl r0, r3, #0x5 pop {r4-r7} bx lr .balign 4 thumb_func_start FUN_0201E574 FUN_0201E574: ; 0x0201E574 mov r1, #0x0 strh r1, [r0, #0x24] strh r1, [r0, #0x26] bx lr thumb_func_start FUN_0201E57C FUN_0201E57C: ; 0x0201E57C push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x4] mov r0, #0x1 tst r0, r1 beq _0201E598 ldr r0, _0201E5B4 ; =0x021C5998 ldr r2, [r4, #0x24] ldr r0, [r0, #0x0] ldr r1, [r4, #0x8] add r0, #0x24 lsr r2, r2, #0x5 bl FUN_0201E4F0 _0201E598: ldr r1, [r4, #0x4] mov r0, #0x2 tst r0, r1 beq _0201E5B0 ldr r0, _0201E5B4 ; =0x021C5998 ldr r2, [r4, #0x28] ldr r0, [r0, #0x0] ldr r1, [r4, #0x8] add r0, #0x26 lsr r2, r2, #0x5 bl FUN_0201E4F0 _0201E5B0: pop {r4, pc} nop _0201E5B4: .word 0x021C5998 thumb_func_start FUN_0201E5B8 FUN_0201E5B8: ; 0x0201E5B8 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x4] mov r0, #0x1 tst r0, r1 beq _0201E5D4 ldr r0, _0201E5F0 ; =0x021C5998 ldr r2, [r4, #0x24] ldr r0, [r0, #0x0] ldr r1, [r4, #0x8] add r0, #0x24 lsr r2, r2, #0x5 bl FUN_0201E514 _0201E5D4: ldr r1, [r4, #0x4] mov r0, #0x2 tst r0, r1 beq _0201E5EC ldr r0, _0201E5F0 ; =0x021C5998 ldr r2, [r4, #0x28] ldr r0, [r0, #0x0] ldr r1, [r4, #0x8] add r0, #0x26 lsr r2, r2, #0x5 bl FUN_0201E514 _0201E5EC: pop {r4, pc} nop _0201E5F0: .word 0x021C5998 thumb_func_start FUN_0201E5F4 FUN_0201E5F4: ; 0x0201E5F4 push {r3-r5, lr} add r5, r0, #0x0 add r4, r2, #0x0 ldr r2, [r5, #0x4] mov r0, #0x1 tst r2, r0 beq _0201E61A ldr r2, [r5, #0x8] lsl r2, r2, #0x5 add r2, r1, r2 cmp r2, r3 bls _0201E618 bl ErrorHandling bl FUN_0201E0B8 mov r0, #0x0 b _0201E61A _0201E618: str r1, [r5, #0x24] _0201E61A: ldr r2, [r5, #0x4] mov r1, #0x2 tst r1, r2 beq _0201E63C ldr r1, [r5, #0x8] lsl r1, r1, #0x5 add r2, r4, r1 ldr r1, [sp, #0x10] cmp r2, r1 bls _0201E63A bl ErrorHandling bl FUN_0201E0B8 mov r0, #0x0 pop {r3-r5, pc} _0201E63A: str r4, [r5, #0x28] _0201E63C: pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0201E640 FUN_0201E640: ; 0x0201E640 push {r3-r4} ldr r4, [r0, #0x4] mov r3, #0x1 tst r3, r4 beq _0201E654 ldr r3, [r0, #0x8] ldr r4, [r1, #0x0] lsl r3, r3, #0x5 add r3, r4, r3 str r3, [r1, #0x0] _0201E654: ldr r3, [r0, #0x4] mov r1, #0x2 tst r1, r3 beq _0201E666 ldr r0, [r0, #0x8] ldr r1, [r2, #0x0] lsl r0, r0, #0x5 add r0, r1, r0 str r0, [r2, #0x0] _0201E666: pop {r3-r4} bx lr .balign 4 thumb_func_start FUN_0201E66C FUN_0201E66C: ; 0x0201E66C push {r4, lr} add r4, r0, #0x0 blx FUN_020C611C blx FUN_020C60E4 blx FUN_020C6070 blx FUN_020C6034 blx FUN_020C6108 blx FUN_020C60C0 blx FUN_020C605C blx FUN_020C600C blx FUN_020C60AC blx FUN_020C6098 ldr r0, [r4, #0x0] blx FUN_020C6BF0 ldr r0, [r4, #0x4] blx FUN_020C6970 ldr r0, [r4, #0x8] blx FUN_020C62FC ldr r0, [r4, #0xc] blx FUN_020C61F4 ldr r0, [r4, #0x10] blx FUN_020C6A84 ldr r0, [r4, #0x14] blx FUN_020C68B8 ldr r0, [r4, #0x18] blx FUN_020C6280 ldr r0, [r4, #0x1c] blx FUN_020C6168 ldr r0, [r4, #0x20] blx FUN_020C66B4 ldr r0, [r4, #0x24] blx FUN_020C65C0 pop {r4, pc} .balign 4 thumb_func_start FUN_0201E6D8 FUN_0201E6D8: ; 0x0201E6D8 ldr r0, _0201E6E0 ; =0x021C599C mov r1, #0x0 str r1, [r0, #0x4] bx lr .balign 4 _0201E6E0: .word 0x021C599C thumb_func_start FUN_0201E6E4 FUN_0201E6E4: ; 0x0201E6E4 cmp r1, #0x1 bne _0201E6F2 ldr r1, _0201E718 ; =0x021C599C ldr r1, [r1, #0x4] tst r1, r0 beq _0201E6FA bx lr _0201E6F2: ldr r1, _0201E718 ; =0x021C599C ldr r1, [r1, #0x4] tst r1, r0 beq _0201E714 _0201E6FA: ldr r1, _0201E718 ; =0x021C599C ldr r2, [r1, #0x4] add r3, r2, #0x0 eor r3, r0 mov r2, #0x1 lsl r2, r2, #0x1a str r3, [r1, #0x4] ldr r1, [r2, #0x0] ldr r0, _0201E71C ; =0xFFFFE0FF and r1, r0 lsl r0, r3, #0x8 orr r0, r1 str r0, [r2, #0x0] _0201E714: bx lr nop _0201E718: .word 0x021C599C _0201E71C: .word 0xFFFFE0FF thumb_func_start FUN_0201E720 FUN_0201E720: ; 0x0201E720 ldr r1, _0201E738 ; =0x021C599C mov r3, #0x1 str r0, [r1, #0x4] lsl r3, r3, #0x1a ldr r2, [r3, #0x0] ldr r1, _0201E73C ; =0xFFFFE0FF lsl r0, r0, #0x8 and r1, r2 orr r0, r1 str r0, [r3, #0x0] bx lr nop _0201E738: .word 0x021C599C _0201E73C: .word 0xFFFFE0FF thumb_func_start FUN_0201E740 FUN_0201E740: ; 0x0201E740 ldr r0, _0201E748 ; =0x021C599C mov r1, #0x0 str r1, [r0, #0x0] bx lr .balign 4 _0201E748: .word 0x021C599C thumb_func_start FUN_0201E74C FUN_0201E74C: ; 0x0201E74C cmp r1, #0x1 bne _0201E75A ldr r1, _0201E77C ; =0x021C599C ldr r1, [r1, #0x0] tst r1, r0 beq _0201E762 bx lr _0201E75A: ldr r1, _0201E77C ; =0x021C599C ldr r1, [r1, #0x0] tst r1, r0 beq _0201E77A _0201E762: ldr r1, _0201E77C ; =0x021C599C ldr r2, [r1, #0x0] add r3, r2, #0x0 eor r3, r0 ldr r2, _0201E780 ; =0x04001000 str r3, [r1, #0x0] ldr r1, [r2, #0x0] ldr r0, _0201E784 ; =0xFFFFE0FF and r1, r0 lsl r0, r3, #0x8 orr r0, r1 str r0, [r2, #0x0] _0201E77A: bx lr .balign 4 _0201E77C: .word 0x021C599C _0201E780: .word 0x04001000 _0201E784: .word 0xFFFFE0FF thumb_func_start FUN_0201E788 FUN_0201E788: ; 0x0201E788 push {r3, lr} blx FUN_020C5A34 ldr r2, _0201E79C ; =0x04001000 mov r0, #0x1 ldr r1, [r2, #0x0] lsl r0, r0, #0x10 orr r0, r1 str r0, [r2, #0x0] pop {r3, pc} .balign 4 _0201E79C: .word 0x04001000 thumb_func_start FUN_0201E7A0 FUN_0201E7A0: ; 0x0201E7A0 ldr r0, _0201E7C0 ; =0x021C4918 ldr r2, _0201E7C4 ; =0x04000304 ldrb r0, [r0, #0x5] cmp r0, #0x0 bne _0201E7B4 ldrh r1, [r2, #0x0] lsr r0, r2, #0xb orr r0, r1 strh r0, [r2, #0x0] bx lr _0201E7B4: ldrh r1, [r2, #0x0] ldr r0, _0201E7C8 ; =0xFFFF7FFF and r0, r1 strh r0, [r2, #0x0] bx lr nop _0201E7C0: .word 0x021C4918 _0201E7C4: .word 0x04000304 _0201E7C8: .word 0xFFFF7FFF thumb_func_start FUN_0201E7CC FUN_0201E7CC: ; 0x0201E7CC ldr r0, _0201E7D4 ; =0x021C599C ldr r0, [r0, #0x4] bx lr nop _0201E7D4: .word 0x021C599C thumb_func_start FUN_0201E7D8 FUN_0201E7D8: ; 0x0201E7D8 push {r3-r5, lr} add r5, r0, #0x0 ldrh r0, [r5, #0x3e] ldr r2, [r5, #0x38] ldrh r4, [r5, #0x3c] asr r0, r0, #0x4 lsl r1, r0, #0x2 ldr r0, _0201E8B4 ; =0x020FFA38 asr r3, r2, #0x1f ldrsh r0, [r0, r1] asr r1, r0, #0x1f blx FUN_020EBC30 mov r2, #0x2 mov r3, #0x0 lsl r2, r2, #0xa add r0, r0, r2 adc r1, r3 asr r2, r4, #0x4 lsl r2, r2, #0x1 add r2, r2, #0x1 lsl r3, r2, #0x1 ldr r2, _0201E8B4 ; =0x020FFA38 lsl r1, r1, #0x14 ldrsh r2, [r2, r3] lsr r0, r0, #0xc orr r0, r1 asr r1, r0, #0x1f asr r3, r2, #0x1f blx FUN_020EBC30 mov r2, #0x2 mov r3, #0x0 lsl r2, r2, #0xa add r2, r0, r2 adc r1, r3 lsl r0, r1, #0x14 lsr r1, r2, #0xc orr r1, r0 str r1, [r5, #0x14] ldrh r0, [r5, #0x3e] ldr r2, [r5, #0x38] asr r0, r0, #0x4 lsl r0, r0, #0x1 add r0, r0, #0x1 lsl r1, r0, #0x1 ldr r0, _0201E8B4 ; =0x020FFA38 asr r3, r2, #0x1f ldrsh r0, [r0, r1] asr r1, r0, #0x1f blx FUN_020EBC30 mov r2, #0x2 lsl r2, r2, #0xa mov r3, #0x0 add r0, r0, r2 adc r1, r3 ldrh r2, [r5, #0x3c] lsl r1, r1, #0x14 lsr r0, r0, #0xc asr r2, r2, #0x4 lsl r2, r2, #0x1 add r2, r2, #0x1 lsl r3, r2, #0x1 ldr r2, _0201E8B4 ; =0x020FFA38 orr r0, r1 ldrsh r2, [r2, r3] asr r1, r0, #0x1f asr r3, r2, #0x1f blx FUN_020EBC30 mov r2, #0x2 mov r3, #0x0 lsl r2, r2, #0xa add r2, r0, r2 adc r1, r3 lsl r0, r1, #0x14 lsr r1, r2, #0xc orr r1, r0 neg r0, r4 lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r1, [r5, #0x1c] asr r0, r0, #0x4 lsl r1, r0, #0x2 ldr r0, _0201E8B4 ; =0x020FFA38 ldr r2, [r5, #0x38] ldrsh r0, [r0, r1] asr r3, r2, #0x1f asr r1, r0, #0x1f blx FUN_020EBC30 mov r2, #0x2 mov r3, #0x0 lsl r2, r2, #0xa add r2, r0, r2 adc r1, r3 lsl r0, r1, #0x14 lsr r1, r2, #0xc orr r1, r0 add r0, r5, #0x0 str r1, [r5, #0x18] add r0, #0x14 add r5, #0x20 add r1, r5, #0x0 add r2, r0, #0x0 blx FUN_020C5634 pop {r3-r5, pc} nop _0201E8B4: .word 0x020FFA38 thumb_func_start FUN_0201E8B8 FUN_0201E8B8: ; 0x0201E8B8 push {r3-r5, lr} add r5, r0, #0x0 ldrh r0, [r5, #0x3e] ldr r2, [r5, #0x38] ldrh r4, [r5, #0x3c] asr r0, r0, #0x4 lsl r1, r0, #0x2 ldr r0, _0201E998 ; =0x020FFA38 asr r3, r2, #0x1f ldrsh r0, [r0, r1] asr r1, r0, #0x1f blx FUN_020EBC30 mov r2, #0x2 mov r3, #0x0 lsl r2, r2, #0xa add r0, r0, r2 adc r1, r3 asr r2, r4, #0x4 lsl r2, r2, #0x1 add r2, r2, #0x1 lsl r3, r2, #0x1 ldr r2, _0201E998 ; =0x020FFA38 lsl r1, r1, #0x14 ldrsh r2, [r2, r3] lsr r0, r0, #0xc orr r0, r1 asr r1, r0, #0x1f asr r3, r2, #0x1f blx FUN_020EBC30 mov r2, #0x2 mov r3, #0x0 lsl r2, r2, #0xa add r2, r0, r2 adc r1, r3 lsl r0, r1, #0x14 lsr r1, r2, #0xc orr r1, r0 neg r0, r1 str r0, [r5, #0x20] ldrh r0, [r5, #0x3e] ldr r2, [r5, #0x38] asr r0, r0, #0x4 lsl r0, r0, #0x1 add r0, r0, #0x1 lsl r1, r0, #0x1 ldr r0, _0201E998 ; =0x020FFA38 asr r3, r2, #0x1f ldrsh r0, [r0, r1] asr r1, r0, #0x1f blx FUN_020EBC30 mov r2, #0x2 lsl r2, r2, #0xa mov r3, #0x0 add r0, r0, r2 adc r1, r3 ldrh r2, [r5, #0x3c] lsl r1, r1, #0x14 lsr r0, r0, #0xc asr r2, r2, #0x4 lsl r2, r2, #0x1 add r2, r2, #0x1 lsl r3, r2, #0x1 ldr r2, _0201E998 ; =0x020FFA38 orr r0, r1 ldrsh r2, [r2, r3] asr r1, r0, #0x1f asr r3, r2, #0x1f blx FUN_020EBC30 mov r2, #0x2 mov r3, #0x0 lsl r2, r2, #0xa add r2, r0, r2 adc r1, r3 lsl r0, r1, #0x14 lsr r1, r2, #0xc orr r1, r0 neg r0, r1 str r0, [r5, #0x28] neg r0, r4 lsl r0, r0, #0x10 lsr r0, r0, #0x10 asr r0, r0, #0x4 lsl r1, r0, #0x2 ldr r0, _0201E998 ; =0x020FFA38 ldr r2, [r5, #0x38] ldrsh r0, [r0, r1] asr r3, r2, #0x1f asr r1, r0, #0x1f blx FUN_020EBC30 mov r2, #0x2 mov r3, #0x0 lsl r2, r2, #0xa add r2, r0, r2 adc r1, r3 lsl r0, r1, #0x14 lsr r1, r2, #0xc orr r1, r0 neg r0, r1 str r0, [r5, #0x24] add r0, r5, #0x0 add r0, #0x20 add r5, #0x14 add r1, r5, #0x0 add r2, r0, #0x0 blx FUN_020C5634 pop {r3-r5, pc} .balign 4 _0201E998: .word 0x020FFA38 thumb_func_start FUN_0201E99C FUN_0201E99C: ; 0x0201E99C add r2, r1, #0x0 add r2, #0x46 strh r0, [r2, #0x0] asr r0, r0, #0x4 lsl r3, r0, #0x1 ldr r2, _0201E9E0 ; =0x020FFA38 lsl r0, r3, #0x1 ldrsh r0, [r2, r0] str r0, [r1, #0x0] add r0, r3, #0x1 lsl r0, r0, #0x1 ldrsh r0, [r2, r0] mov r2, #0x0 str r0, [r1, #0x4] ldr r0, _0201E9E4 ; =0x00001555 str r0, [r1, #0x8] mov r0, #0x96 lsl r0, r0, #0xc str r0, [r1, #0xc] mov r0, #0xe1 lsl r0, r0, #0xe str r0, [r1, #0x10] mov r0, #0x1 str r2, [r1, #0x2c] lsl r0, r0, #0xc str r0, [r1, #0x30] str r2, [r1, #0x34] str r2, [r1, #0x54] str r2, [r1, #0x58] str r2, [r1, #0x5c] str r2, [r1, #0x60] str r2, [r1, #0x64] bx lr nop _0201E9E0: .word 0x020FFA38 _0201E9E4: .word 0x00001555 thumb_func_start FUN_0201E9E8 FUN_0201E9E8: ; 0x0201E9E8 ldr r2, [r0, #0x58] cmp r2, #0x0 bne _0201E9F2 mov r2, #0x0 str r2, [r1, #0x0] _0201E9F2: ldr r2, [r0, #0x5c] cmp r2, #0x0 bne _0201E9FC mov r2, #0x0 str r2, [r1, #0x4] _0201E9FC: ldr r0, [r0, #0x60] cmp r0, #0x0 bne _0201EA06 mov r0, #0x0 str r0, [r1, #0x8] _0201EA06: bx lr thumb_func_start FUN_0201EA08 FUN_0201EA08: ; 0x0201EA08 push {r3-r7, lr} add r5, r0, #0x0 ldr r7, [r5, #0x64] add r4, r1, #0x0 add r6, r2, #0x0 cmp r7, #0x0 bne _0201EA20 ldmia r4!, {r0-r1} stmia r6!, {r0-r1} ldr r0, [r4, #0x0] str r0, [r6, #0x0] pop {r3-r7, pc} _0201EA20: add r0, r7, #0x0 str r0, [sp, #0x0] add r0, #0x8 str r0, [sp, #0x0] ldr r0, [r7, #0x10] cmp r0, #0x0 bne _0201EA48 add r3, r4, #0x0 ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldr r0, [r3, #0x0] str r0, [r2, #0x0] ldr r0, [r5, #0x64] ldr r2, [r7, #0x4] ldr r1, [r0, #0xc] cmp r2, r1 bne _0201EA5C mov r1, #0x1 str r1, [r0, #0x10] b _0201EA5C _0201EA48: ldr r2, [r7, #0x4] mov r1, #0xc mul r1, r2 ldr r0, [r7, #0x20] add r2, r6, #0x0 add r3, r0, r1 ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldr r0, [r3, #0x0] str r0, [r2, #0x0] _0201EA5C: ldr r1, [r5, #0x64] ldr r0, [r7, #0x4] ldr r1, [r1, #0x0] add r0, r0, #0x1 blx _s32_div_f str r1, [r7, #0x4] ldr r1, [sp, #0x0] ldr r0, [r5, #0x64] ldr r2, [r1, #0x0] mov r1, #0xc ldr r0, [r0, #0x20] mul r1, r2 add r3, r4, #0x0 add r2, r0, r1 ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldr r0, [r3, #0x0] str r0, [r2, #0x0] ldr r0, [sp, #0x0] ldr r1, [r5, #0x64] ldr r0, [r0, #0x0] ldr r1, [r1, #0x0] add r0, r0, #0x1 blx _s32_div_f ldr r0, [sp, #0x0] str r1, [r0, #0x0] ldr r0, [r5, #0x64] ldr r0, [r0, #0x14] cmp r0, #0x0 bne _0201EAA0 ldr r0, [r4, #0x0] str r0, [r6, #0x0] _0201EAA0: ldr r0, [r5, #0x64] ldr r0, [r0, #0x18] cmp r0, #0x0 bne _0201EAAC ldr r0, [r4, #0x4] str r0, [r6, #0x4] _0201EAAC: ldr r0, [r5, #0x64] ldr r0, [r0, #0x1c] cmp r0, #0x0 bne _0201EAB8 ldr r0, [r4, #0x8] str r0, [r6, #0x8] _0201EAB8: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0201EABC FUN_0201EABC: ; 0x0201EABC push {r3-r7, lr} add r5, r0, #0x0 ldr r0, [sp, #0x18] add r7, r1, #0x0 str r0, [sp, #0x18] ldr r0, [r0, #0x54] add r6, r2, #0x0 str r3, [sp, #0x0] cmp r0, #0x0 beq _0201EB46 add r0, r7, #0x1 cmp r0, r5 ble _0201EADA bl ErrorHandling _0201EADA: ldr r0, [sp, #0x0] mov r1, #0x24 bl FUN_02016998 add r4, r0, #0x0 mov r1, #0xc ldr r0, [sp, #0x0] mul r1, r5 bl FUN_02016998 mov r1, #0x0 str r0, [r4, #0x20] cmp r5, #0x0 ble _0201EB12 add r2, r1, #0x0 add r0, r1, #0x0 _0201EAFA: ldr r3, [r4, #0x20] add r1, r1, #0x1 str r0, [r3, r2] ldr r3, [r4, #0x20] add r3, r3, r2 str r0, [r3, #0x4] ldr r3, [r4, #0x20] add r3, r3, r2 str r0, [r3, #0x8] add r2, #0xc cmp r1, r5 blt _0201EAFA _0201EB12: str r5, [r4, #0x0] mov r0, #0x0 str r0, [r4, #0x4] str r7, [r4, #0x8] str r7, [r4, #0xc] str r0, [r4, #0x10] str r0, [r4, #0x14] str r0, [r4, #0x18] str r0, [r4, #0x1c] mov r0, #0x1 add r1, r6, #0x0 tst r1, r0 beq _0201EB2E str r0, [r4, #0x14] _0201EB2E: mov r0, #0x2 tst r0, r6 beq _0201EB38 mov r0, #0x1 str r0, [r4, #0x18] _0201EB38: mov r0, #0x4 tst r0, r6 beq _0201EB42 mov r0, #0x1 str r0, [r4, #0x1c] _0201EB42: ldr r0, [sp, #0x18] str r4, [r0, #0x64] _0201EB46: pop {r3-r7, pc} thumb_func_start FUN_0201EB48 FUN_0201EB48: ; 0x0201EB48 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x64] cmp r0, #0x0 beq _0201EB62 ldr r0, [r0, #0x20] bl FUN_02016A18 ldr r0, [r4, #0x64] bl FUN_02016A18 mov r0, #0x0 str r0, [r4, #0x64] _0201EB62: pop {r4, pc} thumb_func_start FUN_0201EB64 FUN_0201EB64: ; 0x0201EB64 ldr r3, _0201EB6C ; =FUN_02016998 mov r1, #0x68 bx r3 nop _0201EB6C: .word FUN_02016998 thumb_func_start FUN_0201EB70 FUN_0201EB70: ; 0x0201EB70 ldr r3, _0201EB74 ; =FUN_02016A18 bx r3 .balign 4 _0201EB74: .word FUN_02016A18 thumb_func_start FUN_0201EB78 FUN_0201EB78: ; 0x0201EB78 push {r3-r4} add r4, r0, #0x0 add r3, r1, #0x0 mov r2, #0xd _0201EB80: ldmia r4!, {r0-r1} stmia r3!, {r0-r1} sub r2, r2, #0x1 bne _0201EB80 pop {r3-r4} bx lr thumb_func_start FUN_0201EB8C FUN_0201EB8C: ; 0x0201EB8C ldr r1, _0201EB94 ; =0x021C59A4 str r0, [r1, #0x0] bx lr nop _0201EB94: .word 0x021C59A4 thumb_func_start FUN_0201EB98 FUN_0201EB98: ; 0x0201EB98 ldr r0, _0201EBA0 ; =0x021C59A4 mov r1, #0x0 str r1, [r0, #0x0] bx lr .balign 4 _0201EBA0: .word 0x021C59A4 thumb_func_start FUN_0201EBA4 FUN_0201EBA4: ; 0x0201EBA4 push {r3-r6, lr} sub sp, #0x1c ldr r0, _0201EC40 ; =0x021C59A4 ldr r1, [r0, #0x0] cmp r1, #0x0 beq _0201EC3A ldr r0, [r1, #0x54] cmp r0, #0x0 beq _0201EBEE add r1, #0x48 add r2, sp, #0x10 blx FUN_020C5600 ldr r0, _0201EC40 ; =0x021C59A4 add r1, sp, #0x10 ldr r0, [r0, #0x0] bl FUN_0201E9E8 ldr r0, _0201EC40 ; =0x021C59A4 add r1, sp, #0x10 ldr r0, [r0, #0x0] add r2, sp, #0x4 bl FUN_0201EA08 ldr r1, _0201EC40 ; =0x021C59A4 add r0, sp, #0x4 ldr r1, [r1, #0x0] bl FUN_0201EF70 ldr r0, _0201EC40 ; =0x021C59A4 ldr r3, [r0, #0x0] ldr r2, [r3, #0x54] add r3, #0x48 ldmia r2!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r2, #0x0] str r0, [r3, #0x0] _0201EBEE: ldr r0, _0201EC40 ; =0x021C59A4 ldr r5, _0201EC44 ; =0x021CEF58 ldr r4, [r0, #0x0] add r3, r4, #0x0 add r2, r4, #0x0 add r4, #0x14 add r6, r4, #0x0 ldmia r6!, {r0-r1} stmia r5!, {r0-r1} ldr r0, [r6, #0x0] add r2, #0x2c str r0, [r5, #0x0] add r6, r2, #0x0 ldr r5, _0201EC48 ; =0x021CEF64 ldmia r6!, {r0-r1} stmia r5!, {r0-r1} ldr r0, [r6, #0x0] add r3, #0x20 str r0, [r5, #0x0] add r6, r3, #0x0 ldr r5, _0201EC4C ; =0x021CEF70 ldmia r6!, {r0-r1} stmia r5!, {r0-r1} ldr r0, [r6, #0x0] add r1, r2, #0x0 str r0, [r5, #0x0] ldr r0, _0201EC50 ; =0x021CED64 add r2, r3, #0x0 str r0, [sp, #0x0] add r0, r4, #0x0 mov r3, #0x0 blx FUN_020C80A4 ldr r1, _0201EC54 ; =0x021CED98 mov r0, #0xe8 ldr r2, [r1, #0x7c] bic r2, r0 str r2, [r1, #0x7c] _0201EC3A: add sp, #0x1c pop {r3-r6, pc} nop _0201EC40: .word 0x021C59A4 _0201EC44: .word 0x021CEF58 _0201EC48: .word 0x021CEF64 _0201EC4C: .word 0x021CEF70 _0201EC50: .word 0x021CED64 _0201EC54: .word 0x021CED98 thumb_func_start FUN_0201EC58 FUN_0201EC58: ; 0x0201EC58 add r3, r0, #0x0 add r2, r1, #0x0 ldmia r3!, {r0-r1} add r2, #0x2c stmia r2!, {r0-r1} ldr r0, [r3, #0x0] str r0, [r2, #0x0] bx lr thumb_func_start FUN_0201EC68 FUN_0201EC68: ; 0x0201EC68 push {r3-r4} add r3, r1, #0x0 add r4, r0, #0x0 str r4, [r3, #0x54] add r2, r3, #0x0 ldmia r4!, {r0-r1} add r2, #0x48 stmia r2!, {r0-r1} ldr r0, [r4, #0x0] str r0, [r2, #0x0] mov r0, #0x1 str r0, [r3, #0x58] str r0, [r3, #0x5c] str r0, [r3, #0x60] pop {r3-r4} bx lr thumb_func_start FUN_0201EC88 FUN_0201EC88: ; 0x0201EC88 mov r1, #0x0 str r1, [r0, #0x54] str r1, [r0, #0x58] str r1, [r0, #0x5c] str r1, [r0, #0x60] bx lr thumb_func_start FUN_0201EC94 FUN_0201EC94: ; 0x0201EC94 str r0, [r2, #0xc] add r0, r2, #0x0 str r1, [r2, #0x10] add r0, #0x44 ldr r3, _0201ECA4 ; =FUN_0201EE2C ldrb r0, [r0, #0x0] add r1, r2, #0x0 bx r3 .balign 4 _0201ECA4: .word FUN_0201EE2C thumb_func_start FUN_0201ECA8 FUN_0201ECA8: ; 0x0201ECA8 push {r3-r7, lr} ldr r4, [sp, #0x20] add r5, r0, #0x0 add r7, r1, #0x0 add r0, r3, #0x0 add r1, r4, #0x0 add r6, r2, #0x0 bl FUN_0201E99C add r3, r5, #0x0 add r2, r4, #0x0 ldmia r3!, {r0-r1} add r2, #0x20 stmia r2!, {r0-r1} ldr r0, [r3, #0x0] str r0, [r2, #0x0] str r7, [r4, #0x38] ldrh r0, [r6, #0x0] strh r0, [r4, #0x3c] ldrh r0, [r6, #0x2] strh r0, [r4, #0x3e] add r0, r4, #0x0 ldrh r1, [r6, #0x4] add r0, #0x40 strh r1, [r0, #0x0] add r0, r4, #0x0 ldrh r1, [r6, #0x6] add r0, #0x42 strh r1, [r0, #0x0] add r0, r4, #0x0 bl FUN_0201E7D8 add r0, sp, #0x8 ldrb r0, [r0, #0x10] add r1, r4, #0x0 bl FUN_0201EE2C ldr r0, [sp, #0x1c] cmp r0, #0x0 beq _0201ED0E str r5, [r4, #0x54] add r2, r4, #0x0 ldmia r5!, {r0-r1} add r2, #0x48 stmia r2!, {r0-r1} ldr r0, [r5, #0x0] str r0, [r2, #0x0] mov r0, #0x1 str r0, [r4, #0x58] str r0, [r4, #0x5c] str r0, [r4, #0x60] _0201ED0E: pop {r3-r7, pc} thumb_func_start FUN_0201ED10 FUN_0201ED10: ; 0x0201ED10 push {r3-r7, lr} ldr r4, [sp, #0x1c] add r6, r0, #0x0 add r7, r1, #0x0 add r0, r3, #0x0 add r1, r4, #0x0 add r5, r2, #0x0 bl FUN_0201E99C add r2, r4, #0x0 ldmia r6!, {r0-r1} add r2, #0x14 stmia r2!, {r0-r1} ldr r0, [r6, #0x0] str r0, [r2, #0x0] str r7, [r4, #0x38] ldrh r0, [r5, #0x0] strh r0, [r4, #0x3c] ldrh r0, [r5, #0x2] strh r0, [r4, #0x3e] add r0, r4, #0x0 ldrh r1, [r5, #0x4] add r0, #0x40 strh r1, [r0, #0x0] add r0, r4, #0x0 ldrh r1, [r5, #0x6] add r0, #0x42 strh r1, [r0, #0x0] add r0, r4, #0x0 bl FUN_0201E8B8 add r0, sp, #0x8 ldrb r0, [r0, #0x10] add r1, r4, #0x0 bl FUN_0201EE2C pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0201ED5C FUN_0201ED5C: ; 0x0201ED5C push {r4-r7, lr} sub sp, #0x3c ldr r4, [sp, #0x54] add r5, r0, #0x0 add r6, r1, #0x0 add r0, r2, #0x0 add r1, r4, #0x0 add r7, r3, #0x0 bl FUN_0201E99C add r3, r5, #0x0 add r2, r4, #0x0 ldmia r3!, {r0-r1} add r2, #0x20 stmia r2!, {r0-r1} ldr r0, [r3, #0x0] add r3, r6, #0x0 str r0, [r2, #0x0] add r2, r4, #0x0 ldmia r3!, {r0-r1} add r2, #0x14 stmia r2!, {r0-r1} ldr r0, [r3, #0x0] add r1, r5, #0x0 str r0, [r2, #0x0] add r0, r6, #0x0 add r2, sp, #0x30 blx FUN_020C5600 add r0, sp, #0x30 blx FUN_020C53C8 str r0, [r4, #0x38] mov r6, #0x0 add r0, sp, #0x24 str r6, [r0, #0x0] str r6, [r0, #0x4] str r6, [r0, #0x8] add r0, sp, #0x18 str r6, [r0, #0x0] str r6, [r0, #0x4] str r6, [r0, #0x8] add r0, sp, #0xc str r6, [r0, #0x0] str r6, [r0, #0x4] str r6, [r0, #0x8] mov r0, #0x1 lsl r0, r0, #0xc add r3, sp, #0x30 str r0, [sp, #0x8] ldmia r3!, {r0-r1} add r2, sp, #0xc stmia r2!, {r0-r1} ldr r0, [r3, #0x0] str r6, [sp, #0x0] str r0, [r2, #0x0] str r6, [sp, #0x4] str r6, [sp, #0x10] add r0, sp, #0x0 add r1, sp, #0xc bl FUN_0201C7B0 strh r0, [r4, #0x3e] add r1, r6, #0x0 mov r0, #0x1 lsl r0, r0, #0xc str r0, [sp, #0x0] ldr r0, [sp, #0x38] str r1, [sp, #0x4] str r0, [sp, #0xc] ldr r0, [sp, #0x34] str r1, [sp, #0x8] str r0, [sp, #0x14] str r1, [sp, #0x10] add r0, sp, #0x0 add r1, sp, #0xc bl FUN_0201C7B0 strh r0, [r4, #0x3c] add r0, r4, #0x0 add r1, r6, #0x0 add r0, #0x40 strh r1, [r0, #0x0] add r0, r7, #0x0 add r1, r4, #0x0 bl FUN_0201EE2C ldr r0, [sp, #0x50] cmp r0, #0x0 beq _0201EE26 str r5, [r4, #0x54] add r2, r4, #0x0 ldmia r5!, {r0-r1} add r2, #0x48 stmia r2!, {r0-r1} ldr r0, [r5, #0x0] str r0, [r2, #0x0] mov r0, #0x1 str r0, [r4, #0x58] str r0, [r4, #0x5c] str r0, [r4, #0x60] _0201EE26: add sp, #0x3c pop {r4-r7, pc} .balign 4 thumb_func_start FUN_0201EE2C FUN_0201EE2C: ; 0x0201EE2C push {r3-r6, lr} sub sp, #0x14 add r5, r1, #0x0 cmp r0, #0x0 bne _0201EE6C ldr r0, [r5, #0x10] str r0, [sp, #0x0] mov r0, #0x1 lsl r0, r0, #0xc str r0, [sp, #0x4] mov r0, #0x0 str r0, [sp, #0x8] ldr r0, _0201EEE4 ; =0x021CED20 str r0, [sp, #0xc] ldr r0, [r5, #0x0] ldr r1, [r5, #0x4] ldr r2, [r5, #0x8] ldr r3, [r5, #0xc] blx FUN_020C8538 ldr r1, _0201EEE8 ; =0x021CED98 mov r0, #0x50 ldr r2, [r1, #0x7c] add r5, #0x44 bic r2, r0 str r2, [r1, #0x7c] mov r1, #0x0 ldr r0, _0201EEEC ; =0x02105BB8 strb r1, [r5, #0x0] str r1, [r0, #0x0] add sp, #0x14 pop {r3-r6, pc} _0201EE6C: ldr r4, [r5, #0x38] ldr r0, [r5, #0x0] ldr r1, [r5, #0x4] blx FUN_020C50B8 asr r1, r0, #0x1f asr r3, r4, #0x1f add r2, r4, #0x0 blx FUN_020EBC30 mov r2, #0x2 mov r3, #0x0 lsl r2, r2, #0xa add r2, r0, r2 adc r1, r3 lsr r4, r2, #0xc lsl r0, r1, #0x14 orr r4, r0 ldr r2, [r5, #0x8] asr r1, r4, #0x1f add r0, r4, #0x0 asr r3, r2, #0x1f blx FUN_020EBC30 mov r6, #0x2 mov r2, #0x0 lsl r6, r6, #0xa add r3, r0, r6 adc r1, r2 lsl r0, r1, #0x14 lsr r3, r3, #0xc orr r3, r0 ldr r0, [r5, #0xc] neg r1, r4 str r0, [sp, #0x0] ldr r0, [r5, #0x10] str r0, [sp, #0x4] lsl r0, r6, #0x1 str r0, [sp, #0x8] str r2, [sp, #0xc] ldr r0, _0201EEE4 ; =0x021CED20 neg r2, r3 str r0, [sp, #0x10] add r0, r4, #0x0 blx FUN_020C823C ldr r1, _0201EEE8 ; =0x021CED98 mov r0, #0x50 ldr r2, [r1, #0x7c] add r5, #0x44 bic r2, r0 str r2, [r1, #0x7c] mov r0, #0x1 strb r0, [r5, #0x0] ldr r0, _0201EEEC ; =0x02105BB8 mov r1, #0x0 str r1, [r0, #0x0] add sp, #0x14 pop {r3-r6, pc} nop _0201EEE4: .word 0x021CED20 _0201EEE8: .word 0x021CED98 _0201EEEC: .word 0x02105BB8 thumb_func_start FUN_0201EEF0 FUN_0201EEF0: ; 0x0201EEF0 add r2, r1, #0x0 add r2, #0x46 strh r0, [r2, #0x0] add r0, r1, #0x0 add r0, #0x46 ldrh r0, [r0, #0x0] ldr r3, _0201EF24 ; =FUN_0201EE2C asr r0, r0, #0x4 lsl r2, r0, #0x2 ldr r0, _0201EF28 ; =0x020FFA38 ldrsh r2, [r0, r2] str r2, [r1, #0x0] add r2, r1, #0x0 add r2, #0x46 ldrh r2, [r2, #0x0] asr r2, r2, #0x4 lsl r2, r2, #0x1 add r2, r2, #0x1 lsl r2, r2, #0x1 ldrsh r0, [r0, r2] str r0, [r1, #0x4] add r0, r1, #0x0 add r0, #0x44 ldrb r0, [r0, #0x0] bx r3 nop _0201EF24: .word FUN_0201EE2C _0201EF28: .word 0x020FFA38 thumb_func_start FUN_0201EF2C FUN_0201EF2C: ; 0x0201EF2C add r2, r1, #0x0 add r2, #0x46 ldrh r2, [r2, #0x0] ldr r3, _0201EF68 ; =FUN_0201EE2C add r2, r2, r0 add r0, r1, #0x0 add r0, #0x46 strh r2, [r0, #0x0] add r0, r1, #0x0 add r0, #0x46 ldrh r0, [r0, #0x0] asr r0, r0, #0x4 lsl r2, r0, #0x2 ldr r0, _0201EF6C ; =0x020FFA38 ldrsh r2, [r0, r2] str r2, [r1, #0x0] add r2, r1, #0x0 add r2, #0x46 ldrh r2, [r2, #0x0] asr r2, r2, #0x4 lsl r2, r2, #0x1 add r2, r2, #0x1 lsl r2, r2, #0x1 ldrsh r0, [r0, r2] str r0, [r1, #0x4] add r0, r1, #0x0 add r0, #0x44 ldrb r0, [r0, #0x0] bx r3 nop _0201EF68: .word FUN_0201EE2C _0201EF6C: .word 0x020FFA38 thumb_func_start FUN_0201EF70 FUN_0201EF70: ; 0x0201EF70 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r0, r4, #0x0 add r0, #0x14 add r1, r5, #0x0 add r2, r0, #0x0 blx FUN_020C5634 add r4, #0x20 add r0, r4, #0x0 add r1, r5, #0x0 add r2, r4, #0x0 blx FUN_020C5634 pop {r3-r5, pc} thumb_func_start FUN_0201EF90 FUN_0201EF90: ; 0x0201EF90 ldrh r2, [r0, #0x0] strh r2, [r1, #0x3c] ldrh r2, [r0, #0x2] strh r2, [r1, #0x3e] add r2, r1, #0x0 ldrh r3, [r0, #0x4] add r2, #0x40 strh r3, [r2, #0x0] ldrh r2, [r0, #0x6] add r0, r1, #0x0 add r0, #0x42 strh r2, [r0, #0x0] ldr r3, _0201EFB0 ; =FUN_0201E7D8 add r0, r1, #0x0 bx r3 nop _0201EFB0: .word FUN_0201E7D8 thumb_func_start FUN_0201EFB4 FUN_0201EFB4: ; 0x0201EFB4 ldrh r3, [r1, #0x3c] ldrh r2, [r0, #0x0] add r2, r3, r2 strh r2, [r1, #0x3c] ldrh r3, [r1, #0x3e] ldrh r2, [r0, #0x2] add r2, r3, r2 strh r2, [r1, #0x3e] add r2, r1, #0x0 add r2, #0x40 ldrh r2, [r2, #0x0] ldrh r0, [r0, #0x4] ldr r3, _0201EFDC ; =FUN_0201E8B8 add r2, r2, r0 add r0, r1, #0x0 add r0, #0x40 strh r2, [r0, #0x0] add r0, r1, #0x0 bx r3 nop _0201EFDC: .word FUN_0201E8B8 thumb_func_start FUN_0201EFE0 FUN_0201EFE0: ; 0x0201EFE0 ldr r3, _0201EFE8 ; =FUN_0201E7D8 str r0, [r1, #0x38] add r0, r1, #0x0 bx r3 .balign 4 _0201EFE8: .word FUN_0201E7D8 thumb_func_start FUN_0201EFEC FUN_0201EFEC: ; 0x0201EFEC push {r4, lr} add r3, r1, #0x0 add r4, r0, #0x0 add r2, r3, #0x0 ldmia r4!, {r0-r1} add r2, #0x20 stmia r2!, {r0-r1} ldr r0, [r4, #0x0] str r0, [r2, #0x0] add r0, r3, #0x0 bl FUN_0201E7D8 pop {r4, pc} .balign 4 thumb_func_start FUN_0201F008 FUN_0201F008: ; 0x0201F008 add r0, #0x46 ldrh r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_0201F010 FUN_0201F010: ; 0x0201F010 ldr r0, [r0, #0x38] bx lr thumb_func_start FUN_0201F014 FUN_0201F014: ; 0x0201F014 ldrh r2, [r1, #0x3c] strh r2, [r0, #0x0] ldrh r2, [r1, #0x3e] strh r2, [r0, #0x2] add r2, r1, #0x0 add r2, #0x40 ldrh r2, [r2, #0x0] add r1, #0x42 strh r2, [r0, #0x4] ldrh r1, [r1, #0x0] strh r1, [r0, #0x6] bx lr thumb_func_start FUN_0201F02C FUN_0201F02C: ; 0x0201F02C add r2, r1, #0x0 add r2, #0x20 add r3, r0, #0x0 ldmia r2!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r2, #0x0] str r0, [r3, #0x0] bx lr thumb_func_start FUN_0201F03C FUN_0201F03C: ; 0x0201F03C add r2, r1, #0x0 add r2, #0x14 add r3, r0, #0x0 ldmia r2!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r2, #0x0] str r0, [r3, #0x0] bx lr thumb_func_start FUN_0201F04C FUN_0201F04C: ; 0x0201F04C add r3, r0, #0x0 add r2, r1, #0x0 ldmia r3!, {r0-r1} add r2, #0x20 stmia r2!, {r0-r1} ldr r0, [r3, #0x0] str r0, [r2, #0x0] bx lr thumb_func_start FUN_0201F05C FUN_0201F05C: ; 0x0201F05C add r3, r0, #0x0 add r2, r1, #0x0 ldmia r3!, {r0-r1} add r2, #0x14 stmia r2!, {r0-r1} ldr r0, [r3, #0x0] str r0, [r2, #0x0] bx lr thumb_func_start FUN_0201F06C FUN_0201F06C: ; 0x0201F06C mov r2, #0x0 strb r2, [r0, #0x0] strb r2, [r0, #0x1] str r2, [r0, #0x4] add r1, r0, #0x0 str r2, [r0, #0x8] add r1, #0xc4 str r2, [r1, #0x0] add r1, r0, #0x0 add r1, #0xc8 str r2, [r1, #0x0] add r1, r0, #0x0 add r1, #0xcc str r2, [r1, #0x0] add r1, r0, #0x0 add r1, #0xd0 str r2, [r1, #0x0] strb r2, [r0, #0x3] bx lr .balign 4 thumb_func_start FUN_0201F094 FUN_0201F094: ; 0x0201F094 mov r3, #0x0 str r3, [r0, #0x1c] str r3, [r0, #0x20] str r3, [r0, #0x78] add r1, r0, #0x0 str r3, [r0, #0x7c] add r1, #0x80 str r3, [r1, #0x0] add r1, r0, #0x0 add r1, #0x84 add r2, r0, #0x0 str r3, [r1, #0x0] add r2, #0x94 mov r1, #0x10 _0201F0B0: strb r3, [r2, #0x0] add r2, r2, #0x1 sub r1, r1, #0x1 bne _0201F0B0 add r2, r0, #0x0 mov r1, #0x0 add r2, #0x88 str r1, [r2, #0x0] add r2, r0, #0x0 add r2, #0x8c str r1, [r2, #0x0] add r2, r0, #0x0 add r2, #0x90 str r1, [r2, #0x0] add r2, r0, #0x0 add r2, #0xa4 str r1, [r2, #0x0] str r1, [r0, #0x0] str r1, [r0, #0x4] mov r2, #0x1 str r1, [r0, #0x8] lsl r2, r2, #0xc str r2, [r0, #0xc] str r2, [r0, #0x10] str r2, [r0, #0x14] add r2, r0, #0x0 add r2, #0xaa strh r1, [r2, #0x0] add r2, r0, #0x0 add r2, #0xa8 strb r1, [r2, #0x0] add r2, r0, #0x0 add r2, #0xb0 str r1, [r2, #0x0] add r2, r0, #0x0 add r2, #0xb4 str r1, [r2, #0x0] strb r1, [r0, #0x18] bx lr .balign 4 thumb_func_start FUN_0201F100 FUN_0201F100: ; 0x0201F100 push {r3-r7, lr} add r6, r0, #0x0 ldr r0, _0201F13C ; =0x021C59A8 add r4, r1, #0x0 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _0201F112 bl ErrorHandling _0201F112: mov r1, #0xd4 add r0, r4, #0x0 mul r1, r6 bl FUN_02016998 ldr r7, _0201F13C ; =0x021C59A8 mov r4, #0x0 str r0, [r7, #0x0] str r6, [r7, #0x4] cmp r6, #0x0 ble _0201F13A add r5, r4, #0x0 _0201F12A: ldr r0, [r7, #0x0] add r0, r0, r5 bl FUN_0201F06C add r4, r4, #0x1 add r5, #0xd4 cmp r4, r6 blt _0201F12A _0201F13A: pop {r3-r7, pc} .balign 4 _0201F13C: .word 0x021C59A8 thumb_func_start FUN_0201F140 FUN_0201F140: ; 0x0201F140 push {r4-r6, lr} ldr r6, _0201F174 ; =0x021C59A8 mov r4, #0x0 ldr r0, [r6, #0x4] cmp r0, #0x0 ble _0201F160 add r5, r4, #0x0 _0201F14E: ldr r0, [r6, #0x0] add r0, r0, r5 bl FUN_0201F23C ldr r0, [r6, #0x4] add r4, r4, #0x1 add r5, #0xd4 cmp r4, r0 blt _0201F14E _0201F160: ldr r0, _0201F174 ; =0x021C59A8 ldr r0, [r0, #0x0] bl FUN_02016A18 ldr r0, _0201F174 ; =0x021C59A8 mov r1, #0x0 str r1, [r0, #0x0] str r1, [r0, #0x4] pop {r4-r6, pc} nop _0201F174: .word 0x021C59A8 thumb_func_start FUN_0201F178 FUN_0201F178: ; 0x0201F178 push {r3-r7, lr} ldr r6, _0201F1B0 ; =0x021C59A8 mov r4, #0x0 ldr r0, [r6, #0x4] cmp r0, #0x0 ble _0201F1AC add r5, r4, #0x0 mov r7, #0x2 _0201F188: ldr r0, [r6, #0x0] add r0, r0, r5 ldrb r1, [r0, #0x1] cmp r1, #0x1 bne _0201F196 bl FUN_0201F318 _0201F196: ldr r0, [r6, #0x0] add r1, r0, r5 ldrb r0, [r1, #0x3] cmp r0, #0x1 bne _0201F1A2 strb r7, [r1, #0x3] _0201F1A2: ldr r0, [r6, #0x4] add r4, r4, #0x1 add r5, #0xd4 cmp r4, r0 blt _0201F188 _0201F1AC: pop {r3-r7, pc} nop _0201F1B0: .word 0x021C59A8 thumb_func_start FUN_0201F1B4 FUN_0201F1B4: ; 0x0201F1B4 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_0201F2E4 add r4, r0, #0x0 bne _0201F1C8 bl ErrorHandling mov r0, #0x0 pop {r3-r5, pc} _0201F1C8: mov r0, #0x1 strb r0, [r4, #0x0] strb r0, [r4, #0x1] ldr r2, [r5, #0x0] mov r1, #0xb8 ldr r0, [r5, #0x4] mul r1, r2 bl FUN_02016998 str r0, [r4, #0x4] ldr r0, [r5, #0x0] str r0, [r4, #0x8] add r0, r4, #0x0 add r0, #0xc bl FUN_0201F094 add r1, r4, #0x0 add r0, r4, #0x0 add r1, #0xc add r0, #0xbc str r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0xc0 str r1, [r0, #0x0] ldr r1, [r5, #0x0] ldr r0, [r5, #0x4] lsl r1, r1, #0x2 bl FUN_02016998 add r1, r4, #0x0 add r1, #0xc4 str r0, [r1, #0x0] add r0, r4, #0x0 bl FUN_0201FABC ldr r0, [r5, #0x4] mov r1, #0x10 bl FUN_02016998 add r1, r4, #0x0 add r1, #0xcc str r0, [r1, #0x0] add r0, r4, #0x0 add r0, #0xcc ldr r0, [r0, #0x0] ldr r1, [r5, #0x4] mov r2, #0x4 bl FUN_02016B20 ldr r0, [r5, #0x0] ldr r1, [r5, #0x4] bl FUN_0201C360 add r1, r4, #0x0 add r1, #0xd0 str r0, [r1, #0x0] add r0, r4, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0201F23C FUN_0201F23C: ; 0x0201F23C push {r4, lr} add r4, r0, #0x0 bne _0201F24A bl ErrorHandling mov r0, #0x0 pop {r4, pc} _0201F24A: ldrb r1, [r4, #0x0] cmp r1, #0x0 beq _0201F27E bl FUN_0201F284 ldr r0, [r4, #0x4] bl FUN_02016A18 add r0, r4, #0x0 add r0, #0xc4 ldr r0, [r0, #0x0] bl FUN_02016A18 add r0, r4, #0x0 add r0, #0xcc ldr r0, [r0, #0x0] bl FUN_02016A18 add r0, r4, #0x0 add r0, #0xd0 ldr r0, [r0, #0x0] bl FUN_0201C39C add r0, r4, #0x0 bl FUN_0201F06C _0201F27E: mov r0, #0x1 pop {r4, pc} .balign 4 thumb_func_start FUN_0201F284 FUN_0201F284: ; 0x0201F284 push {r3-r5, lr} cmp r0, #0x0 bne _0201F294 bne _0201F290 bl ErrorHandling _0201F290: mov r0, #0x0 pop {r3-r5, pc} _0201F294: ldrb r1, [r0, #0x0] cmp r1, #0x0 beq _0201F2BA add r1, r0, #0x0 add r1, #0xbc add r4, r0, #0x0 ldr r1, [r1, #0x0] add r4, #0xc cmp r1, r4 beq _0201F2BA _0201F2A8: add r0, r1, #0x0 add r0, #0xb0 ldr r5, [r0, #0x0] add r0, r1, #0x0 bl FUN_0201F744 add r1, r5, #0x0 cmp r5, r4 bne _0201F2A8 _0201F2BA: mov r0, #0x1 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0201F2C0 FUN_0201F2C0: ; 0x0201F2C0 push {r4, lr} add r4, r0, #0x0 bne _0201F2CA bl ErrorHandling _0201F2CA: ldrb r0, [r4, #0x3] cmp r0, #0x0 bne _0201F2D4 mov r0, #0x0 pop {r4, pc} _0201F2D4: mov r0, #0x1 pop {r4, pc} thumb_func_start FUN_0201F2D8 FUN_0201F2D8: ; 0x0201F2D8 ldrb r1, [r0, #0x3] cmp r1, #0x2 bne _0201F2E2 mov r1, #0x0 strb r1, [r0, #0x3] _0201F2E2: bx lr thumb_func_start FUN_0201F2E4 FUN_0201F2E4: ; 0x0201F2E4 push {r3-r4} ldr r0, _0201F314 ; =0x021C59A8 mov r1, #0x0 ldr r3, [r0, #0x4] cmp r3, #0x0 ble _0201F30C ldr r4, [r0, #0x0] add r2, r4, #0x0 _0201F2F4: ldrb r0, [r2, #0x0] cmp r0, #0x0 bne _0201F304 mov r0, #0xd4 mul r0, r1 add r0, r4, r0 pop {r3-r4} bx lr _0201F304: add r1, r1, #0x1 add r2, #0xd4 cmp r1, r3 blt _0201F2F4 _0201F30C: mov r0, #0x0 pop {r3-r4} bx lr nop _0201F314: .word 0x021C59A8 thumb_func_start FUN_0201F318 FUN_0201F318: ; 0x0201F318 push {r3-r6, lr} sub sp, #0x24 add r5, r0, #0x0 bne _0201F324 bl ErrorHandling _0201F324: add r0, sp, #0x0 blx FUN_020C3F14 add r0, r5, #0x0 add r0, #0xbc ldr r4, [r0, #0x0] add r5, #0xc cmp r4, r5 beq _0201F37E add r6, sp, #0x0 _0201F338: ldrb r0, [r4, #0x18] cmp r0, #0x1 bne _0201F376 add r0, r4, #0x0 bl FUN_0201FC54 add r0, r4, #0x0 add r0, #0xa8 ldrb r0, [r0, #0x0] cmp r0, #0x3 bne _0201F356 add r0, r4, #0x0 bl FUN_0201F90C b _0201F360 _0201F356: cmp r0, #0x2 bne _0201F360 add r0, r4, #0x0 bl FUN_0201F8F0 _0201F360: add r0, r4, #0x0 add r3, r4, #0x0 add r0, #0x24 add r1, r4, #0x0 add r2, r6, #0x0 add r3, #0xc bl FUN_0201B26C add r0, r4, #0x0 bl FUN_0201FC70 _0201F376: add r4, #0xb0 ldr r4, [r4, #0x0] cmp r4, r5 bne _0201F338 _0201F37E: add sp, #0x24 pop {r3-r6, pc} .balign 4 thumb_func_start FUN_0201F384 FUN_0201F384: ; 0x0201F384 push {r4-r6, lr} add r5, r0, #0x0 ldr r6, [r5, #0x1c] add r4, r1, #0x0 add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_0201F5B8 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0201F5D4 add r0, r6, #0x0 add r1, r5, #0x0 add r2, r4, #0x0 bl FUN_0201F648 add r0, r5, #0x0 add r0, #0xa8 ldrb r0, [r0, #0x0] cmp r0, #0x1 bne _0201F3BA add r6, #0xc add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_0201FB58 _0201F3BA: add r0, r5, #0x0 mov r1, #0x2 add r0, #0xa8 strb r1, [r0, #0x0] ldr r0, [r4, #0x8] mov r1, #0x0 str r0, [r5, #0x20] add r0, r5, #0x0 add r0, #0xaa strh r1, [r0, #0x0] add r5, #0xac str r1, [r5, #0x0] pop {r4-r6, pc} thumb_func_start FUN_0201F3D4 FUN_0201F3D4: ; 0x0201F3D4 push {r4-r6, lr} add r5, r0, #0x0 ldr r6, [r5, #0x1c] add r4, r1, #0x0 add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_0201F5B8 add r0, r5, #0x0 add r0, #0xa8 ldrb r0, [r0, #0x0] cmp r0, #0x2 bne _0201F3FE add r0, r5, #0x0 add r1, r5, #0x0 add r2, r5, #0x0 add r0, #0x88 add r1, #0x8c add r2, #0x90 bl FUN_0201F524 _0201F3FE: add r0, r5, #0x0 ldr r1, [r4, #0x1c] add r0, #0x88 str r1, [r0, #0x0] add r0, r5, #0x0 ldr r1, [r4, #0x20] add r0, #0x8c str r1, [r0, #0x0] add r0, r5, #0x0 ldr r1, [r4, #0x24] add r0, #0x90 str r1, [r0, #0x0] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0201F69C add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0201F6C8 add r0, r5, #0x0 add r0, #0xa8 ldrb r0, [r0, #0x0] cmp r0, #0x1 bne _0201F43A add r6, #0xc add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_0201FB58 _0201F43A: add r0, r5, #0x0 mov r1, #0x3 add r0, #0xa8 strb r1, [r0, #0x0] ldr r0, [r4, #0x8] mov r1, #0x0 str r0, [r5, #0x20] add r0, r5, #0x0 add r0, #0xaa strh r1, [r0, #0x0] add r5, #0xac str r1, [r5, #0x0] pop {r4-r6, pc} thumb_func_start FUN_0201F454 FUN_0201F454: ; 0x0201F454 push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 add r7, r3, #0x0 blx FUN_020B7E1C str r0, [sp, #0x8] add r0, r5, #0x0 blx FUN_020B7E10 str r0, [sp, #0x4] add r0, r5, #0x0 blx FUN_020B7CE4 str r0, [sp, #0x0] ldr r0, [sp, #0x8] cmp r0, #0x0 beq _0201F492 ldr r3, _0201F4E4 ; =0x021064B8 mov r1, #0x0 ldr r3, [r3, #0x0] add r2, r1, #0x0 blx r3 str r0, [r4, #0x0] cmp r0, #0x0 bne _0201F496 bl ErrorHandling b _0201F496 _0201F492: mov r0, #0x0 str r0, [r4, #0x0] _0201F496: ldr r0, [sp, #0x4] cmp r0, #0x0 beq _0201F4B2 ldr r3, _0201F4E4 ; =0x021064B8 mov r1, #0x1 ldr r3, [r3, #0x0] mov r2, #0x0 blx r3 str r0, [r6, #0x0] cmp r0, #0x0 bne _0201F4B6 bl ErrorHandling b _0201F4B6 _0201F4B2: mov r0, #0x0 str r0, [r6, #0x0] _0201F4B6: ldr r0, [sp, #0x0] cmp r0, #0x0 beq _0201F4DA ldr r3, _0201F4E8 ; =0x021064C0 mov r1, #0x2 ldrh r2, [r5, #0x20] lsl r1, r1, #0xe ldr r3, [r3, #0x0] and r1, r2 mov r2, #0x0 blx r3 str r0, [r7, #0x0] cmp r0, #0x0 bne _0201F4DE bl ErrorHandling add sp, #0xc pop {r4-r7, pc} _0201F4DA: mov r0, #0x0 str r0, [r7, #0x0] _0201F4DE: add sp, #0xc pop {r4-r7, pc} nop _0201F4E4: .word 0x021064B8 _0201F4E8: .word 0x021064C0 thumb_func_start FUN_0201F4EC FUN_0201F4EC: ; 0x0201F4EC push {r3-r5, lr} add r5, r0, #0x0 add r4, r3, #0x0 blx FUN_020B7CF0 add r0, r5, #0x0 blx FUN_020B7C58 str r0, [r4, #0x0] pop {r3-r5, pc} thumb_func_start FUN_0201F500 FUN_0201F500: ; 0x0201F500 push {r3-r5, lr} add r4, r1, #0x0 ldr r1, [r2, #0x0] ldr r2, [r3, #0x0] add r5, r0, #0x0 blx FUN_020B7DFC ldr r1, [sp, #0x10] add r0, r5, #0x0 ldr r1, [r1, #0x0] blx FUN_020B7CDC add r0, r4, #0x0 add r1, r5, #0x0 blx FUN_020B7790 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0201F524 FUN_0201F524: ; 0x0201F524 push {r3-r5, lr} ldr r0, [r0, #0x0] add r5, r1, #0x0 add r4, r2, #0x0 cmp r0, #0x0 beq _0201F536 ldr r1, _0201F550 ; =0x021064BC ldr r1, [r1, #0x0] blx r1 _0201F536: ldr r0, [r5, #0x0] cmp r0, #0x0 beq _0201F542 ldr r1, _0201F550 ; =0x021064BC ldr r1, [r1, #0x0] blx r1 _0201F542: ldr r0, [r4, #0x0] cmp r0, #0x0 beq _0201F54E ldr r1, _0201F554 ; =0x021064C4 ldr r1, [r1, #0x0] blx r1 _0201F54E: pop {r3-r5, pc} .balign 4 _0201F550: .word 0x021064BC _0201F554: .word 0x021064C4 thumb_func_start FUN_0201F558 FUN_0201F558: ; 0x0201F558 push {r3-r7, lr} sub sp, #0x8 add r4, r0, #0x0 add r5, r1, #0x0 cmp r4, #0x0 beq _0201F568 cmp r5, #0x0 bne _0201F56E _0201F568: add sp, #0x8 mov r0, #0x0 pop {r3-r7, pc} _0201F56E: blx FUN_020B7E1C str r0, [sp, #0x0] add r0, r4, #0x0 blx FUN_020B7E10 str r0, [sp, #0x4] add r0, r4, #0x0 blx FUN_020B7CE4 add r4, r0, #0x0 add r0, r5, #0x0 blx FUN_020B7E1C add r6, r0, #0x0 add r0, r5, #0x0 blx FUN_020B7E10 add r7, r0, #0x0 add r0, r5, #0x0 blx FUN_020B7CE4 ldr r1, [sp, #0x0] cmp r1, r6 bne _0201F5AA ldr r1, [sp, #0x4] cmp r1, r7 bne _0201F5AA cmp r4, r0 beq _0201F5B0 _0201F5AA: add sp, #0x8 mov r0, #0x0 pop {r3-r7, pc} _0201F5B0: mov r0, #0x1 add sp, #0x8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0201F5B8 FUN_0201F5B8: ; 0x0201F5B8 push {r4, lr} add r4, r1, #0x0 add r0, r4, #0x0 add r0, #0xa4 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _0201F5D0 bl FUN_0201C40C mov r0, #0x0 add r4, #0xa4 str r0, [r4, #0x0] _0201F5D0: pop {r4, pc} .balign 4 thumb_func_start FUN_0201F5D4 FUN_0201F5D4: ; 0x0201F5D4 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r4, [r0, #0x0] add r0, r1, #0x0 add r1, r5, #0x0 add r2, r5, #0x0 add r1, #0x7c add r2, #0x80 bl FUN_0201FB9C str r0, [r5, #0x78] add r0, r5, #0x0 ldr r1, [r5, #0x7c] add r0, #0x24 blx FUN_020B80B4 add r0, r5, #0x0 add r0, #0xa8 ldrb r0, [r0, #0x0] cmp r0, #0x3 beq _0201F60E add r1, r5, #0x0 add r1, #0x80 ldr r1, [r1, #0x0] add r0, r4, #0x0 bl FUN_0201F558 b _0201F610 _0201F60E: mov r0, #0x0 _0201F610: cmp r0, #0x0 bne _0201F644 add r0, r5, #0x0 add r0, #0xa8 ldrb r0, [r0, #0x0] cmp r0, #0x2 bne _0201F62E add r0, r5, #0x0 add r1, r5, #0x0 add r2, r5, #0x0 add r0, #0x88 add r1, #0x8c add r2, #0x90 bl FUN_0201F524 _0201F62E: add r0, r5, #0x0 add r0, #0x80 add r1, r5, #0x0 add r2, r5, #0x0 add r5, #0x90 ldr r0, [r0, #0x0] add r1, #0x88 add r2, #0x8c add r3, r5, #0x0 bl FUN_0201F454 _0201F644: pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0201F648 FUN_0201F648: ; 0x0201F648 push {r4-r6, lr} sub sp, #0x8 add r4, r2, #0x0 add r6, r0, #0x0 add r5, r1, #0x0 add r0, r4, #0x0 bl FUN_0201FBCC add r1, r5, #0x0 add r1, #0x84 add r3, r5, #0x0 add r3, #0x94 str r0, [r1, #0x0] add r4, #0xc add r2, r3, #0x0 ldmia r4!, {r0-r1} stmia r3!, {r0-r1} ldmia r4!, {r0-r1} stmia r3!, {r0-r1} add r0, r5, #0x0 add r0, #0x90 ldr r0, [r0, #0x0] add r1, r2, #0x0 str r0, [sp, #0x0] add r0, r5, #0x0 add r0, #0xac ldr r0, [r0, #0x0] add r2, r5, #0x0 add r3, r5, #0x0 str r0, [sp, #0x4] add r6, #0xd0 add r2, #0x84 add r3, #0x88 ldr r0, [r6, #0x0] ldr r2, [r2, #0x0] ldr r3, [r3, #0x0] bl FUN_0201C3B4 add r5, #0xa4 str r0, [r5, #0x0] add sp, #0x8 pop {r4-r6, pc} thumb_func_start FUN_0201F69C FUN_0201F69C: ; 0x0201F69C push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r1, r5, #0x0 add r2, r5, #0x0 add r0, r4, #0x0 add r1, #0x7c add r2, #0x80 bl FUN_0201FB9C str r0, [r5, #0x78] add r0, r5, #0x0 ldr r1, [r5, #0x7c] add r0, #0x24 blx FUN_020B80B4 add r0, r4, #0x0 bl FUN_0201FBCC add r5, #0x84 str r0, [r5, #0x0] pop {r3-r5, pc} thumb_func_start FUN_0201F6C8 FUN_0201F6C8: ; 0x0201F6C8 push {r3-r4} add r4, r0, #0x0 add r2, r4, #0x0 add r3, r1, #0x0 add r3, #0xc add r2, #0x94 ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldmia r3!, {r0-r1} stmia r2!, {r0-r1} mov r0, #0x0 add r4, #0xa4 str r0, [r4, #0x0] pop {r3-r4} bx lr .balign 4 thumb_func_start FUN_0201F6E8 FUN_0201F6E8: ; 0x0201F6E8 push {r4-r6, lr} add r5, r0, #0x0 ldr r6, [r5, #0x0] cmp r6, #0x0 bne _0201F6F6 mov r0, #0x0 pop {r4-r6, pc} _0201F6F6: add r0, r6, #0x0 bl FUN_0201FAF4 add r4, r0, #0x0 bne _0201F704 mov r0, #0x0 pop {r4-r6, pc} _0201F704: add r3, r5, #0x0 str r6, [r4, #0x1c] add r3, #0x8 ldmia r3!, {r0-r1} add r2, r4, #0x0 stmia r2!, {r0-r1} ldr r0, [r3, #0x0] add r3, r5, #0x0 str r0, [r2, #0x0] add r3, #0x14 add r2, r4, #0x0 ldmia r3!, {r0-r1} add r2, #0xc stmia r2!, {r0-r1} ldr r0, [r3, #0x0] mov r1, #0x0 str r0, [r2, #0x0] add r0, r4, #0x0 add r0, #0xaa strh r1, [r0, #0x0] mov r1, #0x1 add r0, r4, #0x0 strb r1, [r4, #0x18] add r0, #0xa8 strb r1, [r0, #0x0] ldr r1, [r5, #0x4] add r0, r4, #0x0 bl FUN_0201FBD8 add r0, r4, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0201F744 FUN_0201F744: ; 0x0201F744 push {r3-r5, lr} add r5, r0, #0x0 bne _0201F74E bl ErrorHandling _0201F74E: add r0, r5, #0x0 add r0, #0xa8 ldrb r0, [r0, #0x0] cmp r0, #0x1 bne _0201F75C bl ErrorHandling _0201F75C: add r0, r5, #0x0 add r0, #0xa8 ldrb r0, [r0, #0x0] ldr r4, [r5, #0x1c] cmp r0, #0x0 bne _0201F76C mov r0, #0x0 pop {r3-r5, pc} _0201F76C: add r0, r5, #0x0 bl FUN_0201FB7C add r0, r5, #0x0 add r0, #0xa8 ldrb r0, [r0, #0x0] cmp r0, #0x2 bne _0201F78C add r0, r5, #0x0 add r1, r5, #0x0 add r2, r5, #0x0 add r0, #0x88 add r1, #0x8c add r2, #0x90 bl FUN_0201F524 _0201F78C: add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_0201F5B8 add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_0201FB20 mov r0, #0x1 strb r0, [r4, #0x3] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0201F7A4 FUN_0201F7A4: ; 0x0201F7A4 push {r3-r4} add r4, r0, #0x0 str r1, [r4, #0x0] str r2, [r4, #0x4] str r3, [r4, #0x8] ldr r3, [sp, #0x8] add r2, r4, #0x0 add r2, #0xc ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldmia r3!, {r0-r1} stmia r2!, {r0-r1} mov r0, #0x0 str r0, [r4, #0x1c] str r0, [r4, #0x20] str r0, [r4, #0x24] pop {r3-r4} bx lr thumb_func_start FUN_0201F7C8 FUN_0201F7C8: ; 0x0201F7C8 push {r3-r5, lr} add r4, r0, #0x0 add r5, r1, #0x0 cmp r4, #0x0 bne _0201F7D6 bl ErrorHandling _0201F7D6: ldmia r5!, {r0-r1} stmia r4!, {r0-r1} ldr r0, [r5, #0x0] str r0, [r4, #0x0] pop {r3-r5, pc} thumb_func_start FUN_0201F7E0 FUN_0201F7E0: ; 0x0201F7E0 push {r4, lr} add r4, r0, #0x0 bne _0201F7EA bl ErrorHandling _0201F7EA: add r0, r4, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_0201F7F0 FUN_0201F7F0: ; 0x0201F7F0 push {r3-r5, lr} add r4, r0, #0x0 add r5, r1, #0x0 cmp r4, #0x0 bne _0201F7FE bl ErrorHandling _0201F7FE: ldmia r5!, {r0-r1} add r4, #0xc stmia r4!, {r0-r1} ldr r0, [r5, #0x0] str r0, [r4, #0x0] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0201F80C FUN_0201F80C: ; 0x0201F80C push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _0201F81A bl ErrorHandling _0201F81A: strb r4, [r5, #0x18] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0201F820 FUN_0201F820: ; 0x0201F820 push {r4, lr} add r4, r0, #0x0 bne _0201F82A bl ErrorHandling _0201F82A: ldrb r0, [r4, #0x18] pop {r4, pc} .balign 4 thumb_func_start FUN_0201F830 FUN_0201F830: ; 0x0201F830 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _0201F83E bl ErrorHandling _0201F83E: add r5, #0xaa strh r4, [r5, #0x0] pop {r3-r5, pc} thumb_func_start FUN_0201F844 FUN_0201F844: ; 0x0201F844 push {r4, lr} add r4, r0, #0x0 bne _0201F84E bl ErrorHandling _0201F84E: add r4, #0xaa ldrh r0, [r4, #0x0] pop {r4, pc} thumb_func_start FUN_0201F854 FUN_0201F854: ; 0x0201F854 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _0201F862 bl ErrorHandling _0201F862: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0201FBFC pop {r3-r5, pc} thumb_func_start FUN_0201F86C FUN_0201F86C: ; 0x0201F86C push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _0201F87A bl ErrorHandling _0201F87A: add r5, #0xac str r4, [r5, #0x0] pop {r3-r5, pc} thumb_func_start FUN_0201F880 FUN_0201F880: ; 0x0201F880 push {r4, lr} add r4, r0, #0x0 bne _0201F88A bl ErrorHandling _0201F88A: add r4, #0xac ldr r0, [r4, #0x0] pop {r4, pc} thumb_func_start FUN_0201F890 FUN_0201F890: ; 0x0201F890 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _0201F89E bl ErrorHandling _0201F89E: add r1, r5, #0x0 add r1, #0xaa ldrh r1, [r1, #0x0] add r0, r5, #0x0 bl FUN_0201FBEC add r1, r5, #0x0 add r1, #0xac str r0, [r1, #0x0] add r0, r5, #0x0 add r0, #0xac ldr r0, [r0, #0x0] add r5, #0xac add r0, r0, r4 str r0, [r5, #0x0] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0201F8C0 FUN_0201F8C0: ; 0x0201F8C0 push {r4, lr} add r4, r0, #0x0 bne _0201F8CA bl ErrorHandling _0201F8CA: add r1, r4, #0x0 add r1, #0xaa ldrh r1, [r1, #0x0] add r0, r4, #0x0 bl FUN_0201FBEC add r4, #0xac ldr r1, [r4, #0x0] sub r0, r1, r0 pop {r4, pc} .balign 4 thumb_func_start FUN_0201F8E0 FUN_0201F8E0: ; 0x0201F8E0 push {r4, lr} add r4, r0, #0x0 bne _0201F8EA bl ErrorHandling _0201F8EA: ldr r0, [r4, #0x7c] pop {r4, pc} .balign 4 thumb_func_start FUN_0201F8F0 FUN_0201F8F0: ; 0x0201F8F0 push {r3, lr} add r1, r0, #0x0 add r0, #0xa8 ldrb r0, [r0, #0x0] cmp r0, #0x2 bne _0201F90A add r0, r1, #0x0 add r0, #0xa4 add r1, #0xac ldr r0, [r0, #0x0] ldr r1, [r1, #0x0] bl FUN_0201C438 _0201F90A: pop {r3, pc} thumb_func_start FUN_0201F90C FUN_0201F90C: ; 0x0201F90C push {r3-r4, lr} sub sp, #0x4 add r4, r0, #0x0 add r1, r4, #0x0 add r1, #0xac ldr r1, [r1, #0x0] add r0, #0x94 lsl r1, r1, #0x4 lsr r1, r1, #0x10 bl FUN_02022244 add r2, sp, #0x0 strb r0, [r2, #0x0] lsr r0, r0, #0x8 strb r0, [r2, #0x1] ldrb r0, [r2, #0x0] add r1, r4, #0x0 add r1, #0x84 strb r0, [r2, #0x2] ldrb r0, [r2, #0x1] strb r0, [r2, #0x3] ldrb r2, [r2, #0x2] ldr r0, [r4, #0x7c] ldr r1, [r1, #0x0] bl FUN_0201F954 add r2, sp, #0x0 ldr r0, [r4, #0x7c] add r4, #0x84 ldrb r2, [r2, #0x3] ldr r1, [r4, #0x0] bl FUN_0201FA04 add sp, #0x4 pop {r3-r4, pc} .balign 4 thumb_func_start FUN_0201F954 FUN_0201F954: ; 0x0201F954 push {r3-r7, lr} ldr r3, [r0, #0x8] mov r5, #0x0 add r6, r0, r3 ldrh r0, [r0, r3] add r3, r1, #0x0 add r1, #0x42 ldrh r1, [r1, #0x0] add r3, #0x3c add r4, r6, r0 add r0, r3, r1 ldrh r1, [r3, r1] mul r2, r1 add r0, r0, r2 ldr r0, [r0, #0x4] lsl r0, r0, #0x10 lsr r7, r0, #0x10 ldrb r0, [r4, #0x1] cmp r0, #0x0 ble _0201F9A2 _0201F97C: ldrh r0, [r4, #0x6] add r1, r4, r0 ldrh r0, [r4, r0] add r2, r1, #0x4 add r1, r0, #0x0 mul r1, r5 add r1, r2, r1 ldrb r2, [r1, #0x3] mov r0, #0x1 tst r0, r2 beq _0201F99A add r0, r6, #0x0 add r2, r7, #0x0 bl FUN_0201F9A4 _0201F99A: ldrb r0, [r4, #0x1] add r5, r5, #0x1 cmp r5, r0 blt _0201F97C _0201F9A2: pop {r3-r7, pc} thumb_func_start FUN_0201F9A4 FUN_0201F9A4: ; 0x0201F9A4 push {r4-r7, lr} sub sp, #0xc add r6, r0, #0x0 add r0, r1, #0x0 ldrh r0, [r0, #0x0] str r1, [sp, #0x0] add r7, r2, #0x0 add r0, r6, r0 str r0, [sp, #0x4] add r0, r1, #0x0 ldrb r0, [r0, #0x2] mov r4, #0x0 cmp r0, #0x0 ble _0201F9FC add r0, r6, #0x4 str r0, [sp, #0x8] _0201F9C4: ldrh r2, [r6, #0xa] ldr r0, [sp, #0x8] ldr r1, [sp, #0x8] add r0, r0, r2 ldrh r2, [r1, r2] ldr r1, [sp, #0x4] ldrb r1, [r1, r4] mul r1, r2 add r0, r0, r1 ldr r0, [r0, #0x4] add r5, r6, r0 ldr r0, [r5, #0x14] lsl r0, r0, #0x10 lsr r0, r0, #0x10 add r1, r0, r7 ldr r0, _0201FA00 ; =0x0000FFFF cmp r1, r0 bls _0201F9EC bl ErrorHandling _0201F9EC: ldr r0, [r5, #0x14] add r4, r4, #0x1 add r0, r0, r7 str r0, [r5, #0x14] ldr r0, [sp, #0x0] ldrb r0, [r0, #0x2] cmp r4, r0 blt _0201F9C4 _0201F9FC: add sp, #0xc pop {r4-r7, pc} .balign 4 _0201FA00: .word 0x0000FFFF thumb_func_start FUN_0201FA04 FUN_0201FA04: ; 0x0201FA04 push {r3-r7, lr} ldr r3, [r0, #0x8] add r7, r0, r3 ldrh r0, [r7, #0x2] add r4, r7, r0 ldrh r0, [r1, #0x34] add r5, r1, r0 ldrh r0, [r5, #0x6] add r1, r5, r0 ldrh r0, [r5, r0] add r3, r1, #0x4 add r1, r0, #0x0 mul r1, r2 add r0, r3, r1 ldrh r6, [r3, r1] ldrh r1, [r0, #0x2] mov r0, #0x1 tst r0, r1 bne _0201FA2C lsr r6, r6, #0x1 _0201FA2C: ldrb r0, [r4, #0x1] mov r5, #0x0 cmp r0, #0x0 bls _0201FA5A _0201FA34: ldrh r0, [r4, #0x6] add r1, r4, r0 ldrh r0, [r4, r0] add r2, r1, #0x4 add r1, r0, #0x0 mul r1, r5 add r1, r2, r1 ldrb r2, [r1, #0x3] mov r0, #0x1 tst r0, r2 beq _0201FA52 add r0, r7, #0x0 add r2, r6, #0x0 bl FUN_0201FA5C _0201FA52: ldrb r0, [r4, #0x1] add r5, r5, #0x1 cmp r5, r0 blo _0201FA34 _0201FA5A: pop {r3-r7, pc} thumb_func_start FUN_0201FA5C FUN_0201FA5C: ; 0x0201FA5C push {r4-r7, lr} sub sp, #0xc add r6, r0, #0x0 add r0, r1, #0x0 ldrh r0, [r0, #0x0] str r1, [sp, #0x0] add r7, r2, #0x0 add r0, r6, r0 str r0, [sp, #0x4] add r0, r1, #0x0 ldrb r0, [r0, #0x2] mov r4, #0x0 cmp r0, #0x0 bls _0201FAB4 add r0, r6, #0x4 str r0, [sp, #0x8] _0201FA7C: ldrh r2, [r6, #0xa] ldr r0, [sp, #0x8] ldr r1, [sp, #0x8] add r0, r0, r2 ldrh r2, [r1, r2] ldr r1, [sp, #0x4] ldrb r1, [r1, r4] mul r1, r2 add r0, r0, r1 ldr r0, [r0, #0x4] add r5, r6, r0 ldrh r1, [r5, #0x1c] ldr r0, _0201FAB8 ; =0x00001FFF and r0, r1 add r1, r0, r7 ldr r0, _0201FAB8 ; =0x00001FFF cmp r1, r0 bls _0201FAA4 bl ErrorHandling _0201FAA4: ldrh r0, [r5, #0x1c] add r4, r4, #0x1 add r0, r0, r7 strh r0, [r5, #0x1c] ldr r0, [sp, #0x0] ldrb r0, [r0, #0x2] cmp r4, r0 blo _0201FA7C _0201FAB4: add sp, #0xc pop {r4-r7, pc} .balign 4 _0201FAB8: .word 0x00001FFF thumb_func_start FUN_0201FABC FUN_0201FABC: ; 0x0201FABC push {r3-r7, lr} add r5, r0, #0x0 ldr r0, [r5, #0x8] mov r7, #0x0 cmp r0, #0x0 ble _0201FAEC add r4, r7, #0x0 add r6, r7, #0x0 _0201FACC: ldr r0, [r5, #0x4] add r0, r0, r4 bl FUN_0201F094 ldr r0, [r5, #0x4] add r7, r7, #0x1 add r1, r0, r4 add r0, r5, #0x0 add r0, #0xc4 ldr r0, [r0, #0x0] add r4, #0xb8 str r1, [r0, r6] ldr r0, [r5, #0x8] add r6, r6, #0x4 cmp r7, r0 blt _0201FACC _0201FAEC: mov r0, #0x0 add r5, #0xc8 str r0, [r5, #0x0] pop {r3-r7, pc} thumb_func_start FUN_0201FAF4 FUN_0201FAF4: ; 0x0201FAF4 add r1, r0, #0x0 add r1, #0xc8 ldr r3, [r1, #0x0] ldr r1, [r0, #0x8] cmp r3, r1 blt _0201FB04 mov r0, #0x0 bx lr _0201FB04: add r1, r0, #0x0 add r1, #0xc4 ldr r2, [r1, #0x0] lsl r1, r3, #0x2 ldr r2, [r2, r1] add r1, r0, #0x0 add r1, #0xc8 ldr r1, [r1, #0x0] add r0, #0xc8 add r1, r1, #0x1 str r1, [r0, #0x0] add r0, r2, #0x0 bx lr .balign 4 thumb_func_start FUN_0201FB20 FUN_0201FB20: ; 0x0201FB20 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0xc8 ldr r0, [r0, #0x0] add r4, r1, #0x0 cmp r0, #0x0 bgt _0201FB32 mov r0, #0x0 pop {r3-r5, pc} _0201FB32: add r0, r4, #0x0 bl FUN_0201F094 add r0, r5, #0x0 add r0, #0xc8 ldr r0, [r0, #0x0] sub r1, r0, #0x1 add r0, r5, #0x0 add r0, #0xc8 str r1, [r0, #0x0] add r0, r5, #0x0 add r0, #0xc4 add r5, #0xc8 ldr r1, [r0, #0x0] ldr r0, [r5, #0x0] lsl r0, r0, #0x2 str r4, [r1, r0] mov r0, #0x1 pop {r3-r5, pc} thumb_func_start FUN_0201FB58 FUN_0201FB58: ; 0x0201FB58 add r2, r0, #0x0 add r2, #0xb4 ldr r3, [r2, #0x0] add r2, r1, #0x0 add r2, #0xb4 str r3, [r2, #0x0] add r2, r0, #0x0 add r2, #0xb4 ldr r2, [r2, #0x0] add r2, #0xb0 str r1, [r2, #0x0] add r2, r1, #0x0 add r2, #0xb0 str r0, [r2, #0x0] add r0, #0xb4 str r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_0201FB7C FUN_0201FB7C: ; 0x0201FB7C add r1, r0, #0x0 add r1, #0xb0 ldr r2, [r1, #0x0] add r1, r0, #0x0 add r1, #0xb4 ldr r1, [r1, #0x0] add r1, #0xb0 str r2, [r1, #0x0] add r1, r0, #0x0 add r0, #0xb0 add r1, #0xb4 ldr r0, [r0, #0x0] ldr r1, [r1, #0x0] add r0, #0xb4 str r1, [r0, #0x0] bx lr thumb_func_start FUN_0201FB9C FUN_0201FB9C: ; 0x0201FB9C push {r3-r7, lr} add r6, r1, #0x0 mov r1, #0x0 add r5, r2, #0x0 bl FUN_0201FC90 add r7, r0, #0x0 blx FUN_020BC13C add r4, r0, #0x0 ldrh r0, [r4, #0xe] add r0, r4, r0 ldr r0, [r0, #0xc] add r0, r4, r0 str r0, [r6, #0x0] cmp r5, #0x0 beq _0201FBC6 add r0, r7, #0x0 blx FUN_020BC0FC str r0, [r5, #0x0] _0201FBC6: add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0201FBCC FUN_0201FBCC: ; 0x0201FBCC ldr r3, _0201FBD4 ; =FUN_0201FC90 mov r1, #0x1 bx r3 nop _0201FBD4: .word FUN_0201FC90 thumb_func_start FUN_0201FBD8 FUN_0201FBD8: ; 0x0201FBD8 push {r3, lr} ldr r2, [r1, #0x1c] cmp r2, #0x0 bne _0201FBE6 bl FUN_0201F384 pop {r3, pc} _0201FBE6: bl FUN_0201F3D4 pop {r3, pc} thumb_func_start FUN_0201FBEC FUN_0201FBEC: ; 0x0201FBEC push {r3, lr} ldr r0, [r0, #0x20] bl FUN_0201FCA8 ldr r0, [r0, #0x0] lsl r0, r0, #0xc pop {r3, pc} .balign 4 thumb_func_start FUN_0201FBFC FUN_0201FBFC: ; 0x0201FBFC push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r1, r5, #0x0 add r1, #0xaa ldrh r1, [r1, #0x0] ldr r0, [r5, #0x20] bl FUN_0201FCA8 add r5, #0xac add r1, r5, #0x0 add r2, r4, #0x0 bl FUN_0201FC1C pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0201FC1C FUN_0201FC1C: ; 0x0201FC1C push {r3-r6} ldr r4, [r0, #0x0] ldr r6, [r1, #0x0] lsl r4, r4, #0xc mov r3, #0x0 cmp r4, r6 bgt _0201FC32 ldr r5, [r0, #0x4] lsl r5, r5, #0xc cmp r5, r6 bge _0201FC36 _0201FC32: str r4, [r1, #0x0] b _0201FC4E _0201FC36: add r2, r6, r2 cmp r5, r2 bge _0201FC4C ldr r0, [r0, #0x8] cmp r0, #0x0 bne _0201FC46 str r4, [r1, #0x0] b _0201FC4E _0201FC46: mov r3, #0x1 str r5, [r1, #0x0] b _0201FC4E _0201FC4C: str r2, [r1, #0x0] _0201FC4E: add r0, r3, #0x0 pop {r3-r6} bx lr thumb_func_start FUN_0201FC54 FUN_0201FC54: ; 0x0201FC54 push {r3, lr} add r3, r0, #0x0 add r0, #0x90 str r0, [sp, #0x0] add r0, r3, #0x0 add r0, #0x80 add r2, r3, #0x0 ldr r1, [r3, #0x78] ldr r0, [r0, #0x0] add r2, #0x88 add r3, #0x8c bl FUN_0201F500 pop {r3, pc} thumb_func_start FUN_0201FC70 FUN_0201FC70: ; 0x0201FC70 push {r3-r4, lr} sub sp, #0xc add r4, r0, #0x0 ldr r0, [r4, #0x78] blx FUN_020B772C add r4, #0x80 ldr r0, [r4, #0x0] add r1, sp, #0x4 add r2, sp, #0x8 add r3, sp, #0x0 bl FUN_0201F4EC add sp, #0xc pop {r3-r4, pc} .balign 4 thumb_func_start FUN_0201FC90 FUN_0201FC90: ; 0x0201FC90 cmp r1, #0x0 beq _0201FC9A cmp r1, #0x1 beq _0201FC9E b _0201FCA2 _0201FC9A: ldr r0, [r0, #0x0] bx lr _0201FC9E: ldr r0, [r0, #0x4] bx lr _0201FCA2: mov r0, #0x0 bx lr .balign 4 thumb_func_start FUN_0201FCA8 FUN_0201FCA8: ; 0x0201FCA8 mov r2, #0xc mul r2, r1 add r0, r0, r2 bx lr thumb_func_start FUN_0201FCB0 FUN_0201FCB0: ; 0x0201FCB0 push {r3-r5, lr} add r5, r0, #0x0 bne _0201FCBA bl ErrorHandling _0201FCBA: ldr r0, [r5, #0x4] cmp r0, #0x0 bne _0201FCC4 bl ErrorHandling _0201FCC4: mov r1, #0x49 ldr r0, [r5, #0x8] lsl r1, r1, #0x2 bl FUN_02016998 add r4, r0, #0x0 bne _0201FCD6 bl ErrorHandling _0201FCD6: add r0, r4, #0x0 bl FUN_0201FE44 ldr r2, [r5, #0x0] ldr r0, [r5, #0x8] lsl r1, r2, #0x6 add r1, r2, r1 lsl r1, r1, #0x2 bl FUN_02016998 str r0, [r4, #0x0] cmp r0, #0x0 bne _0201FCF4 bl ErrorHandling _0201FCF4: ldr r0, [r5, #0x0] str r0, [r4, #0x4] ldr r1, [r5, #0x0] ldr r0, [r5, #0x8] lsl r1, r1, #0x2 bl FUN_02016998 str r0, [r4, #0x8] cmp r0, #0x0 bne _0201FD0C bl ErrorHandling _0201FD0C: add r0, r4, #0x0 bl FUN_0202083C add r0, r4, #0x0 add r0, #0x10 bl FUN_0201FE6C add r2, r4, #0x0 mov r1, #0x43 lsl r1, r1, #0x2 add r2, #0x10 str r2, [r4, r1] add r0, r1, #0x4 str r2, [r4, r0] ldr r0, [r5, #0x4] add r1, #0x8 str r0, [r4, r1] ldr r0, [r5, #0x8] ldr r1, _0201FD54 ; =0x02105BBC bl FUN_020161A4 mov r1, #0x46 lsl r1, r1, #0x2 str r0, [r4, r1] ldr r0, [r4, r1] add r1, r1, #0x4 add r1, r4, r1 blx FUN_020AFD94 mov r0, #0x12 mov r1, #0x1 lsl r0, r0, #0x4 str r1, [r4, r0] add r0, r4, #0x0 pop {r3-r5, pc} nop _0201FD54: .word 0x02105BBC thumb_func_start FUN_0201FD58 FUN_0201FD58: ; 0x0201FD58 push {r4, lr} add r4, r0, #0x0 bne _0201FD62 mov r0, #0x0 pop {r4, pc} _0201FD62: ldr r1, [r4, #0x0] cmp r1, #0x0 bne _0201FD6C mov r0, #0x1 pop {r4, pc} _0201FD6C: bl FUN_0201FDB4 mov r0, #0x46 lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02016A18 ldr r0, [r4, #0x8] bl FUN_02016A18 ldr r0, [r4, #0x0] bl FUN_02016A18 add r0, r4, #0x0 bl FUN_0201FE44 add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x1 pop {r4, pc} .balign 4 thumb_func_start FUN_0201FD98 FUN_0201FD98: ; 0x0201FD98 cmp r0, #0x0 bne _0201FDA0 mov r0, #0x0 bx lr _0201FDA0: ldr r2, [r0, #0x0] cmp r2, #0x0 bne _0201FDAA mov r0, #0x0 bx lr _0201FDAA: mov r2, #0x12 lsl r2, r2, #0x4 str r1, [r0, r2] mov r0, #0x1 bx lr thumb_func_start FUN_0201FDB4 FUN_0201FDB4: ; 0x0201FDB4 push {r4-r6, lr} cmp r0, #0x0 bne _0201FDBE mov r0, #0x0 pop {r4-r6, pc} _0201FDBE: ldr r1, [r0, #0x0] cmp r1, #0x0 bne _0201FDC8 mov r0, #0x1 pop {r4-r6, pc} _0201FDC8: mov r1, #0x11 lsl r1, r1, #0x4 add r4, r0, #0x0 ldr r1, [r0, r1] add r4, #0x10 cmp r1, r4 beq _0201FDE8 mov r6, #0x1 lsl r6, r6, #0x8 _0201FDDA: ldr r5, [r1, r6] add r0, r1, #0x0 bl FUN_0201FFC8 add r1, r5, #0x0 cmp r5, r4 bne _0201FDDA _0201FDE8: mov r0, #0x1 pop {r4-r6, pc} thumb_func_start FUN_0201FDEC FUN_0201FDEC: ; 0x0201FDEC push {r3-r7, lr} add r5, r0, #0x0 bne _0201FDF6 bl ErrorHandling _0201FDF6: mov r0, #0x12 lsl r0, r0, #0x4 ldr r1, [r5, r0] cmp r1, #0x0 beq _0201FE38 sub r0, #0x10 add r6, r5, #0x0 ldr r4, [r5, r0] add r6, #0x10 cmp r4, r6 beq _0201FE38 ldr r7, _0201FE3C ; =0x020EE658 _0201FE0E: add r2, r4, #0x0 add r2, #0x34 ldrb r2, [r2, #0x0] add r0, r5, #0x0 add r1, r4, #0x0 lsl r2, r2, #0x2 ldr r2, [r7, r2] blx r2 add r1, r4, #0x0 add r1, #0x35 ldrb r1, [r1, #0x0] add r0, r4, #0x0 lsl r2, r1, #0x2 ldr r1, _0201FE40 ; =0x020EE660 ldr r1, [r1, r2] blx r1 mov r0, #0x1 lsl r0, r0, #0x8 ldr r4, [r4, r0] cmp r4, r6 bne _0201FE0E _0201FE38: pop {r3-r7, pc} nop _0201FE3C: .word 0x020EE658 _0201FE40: .word 0x020EE660 thumb_func_start FUN_0201FE44 FUN_0201FE44: ; 0x0201FE44 push {r4, lr} add r4, r0, #0x0 mov r1, #0x0 str r1, [r4, #0x0] str r1, [r4, #0x4] str r1, [r4, #0x8] mov r0, #0x45 str r1, [r4, #0xc] lsl r0, r0, #0x2 str r1, [r4, r0] add r0, r4, #0x0 add r0, #0x10 bl FUN_0201FE6C mov r0, #0x12 mov r1, #0x0 lsl r0, r0, #0x4 str r1, [r4, r0] pop {r4, pc} .balign 4 thumb_func_start FUN_0201FE6C FUN_0201FE6C: ; 0x0201FE6C push {r4, lr} mov r2, #0x41 add r4, r0, #0x0 mov r1, #0x0 lsl r2, r2, #0x2 str r1, [r4, #0x3c] blx FUN_020DF4A4 add r0, r4, #0x0 add r0, #0xb4 blx FUN_020B1A24 add r0, r4, #0x0 add r0, #0xd8 blx FUN_020B19DC mov r0, #0x0 str r0, [r4, #0x30] pop {r4, pc} .balign 4 thumb_func_start FUN_0201FE94 FUN_0201FE94: ; 0x0201FE94 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_02020874 add r4, r0, #0x0 bne _0201FEA6 mov r0, #0x0 pop {r4-r6, pc} _0201FEA6: ldr r0, [r5, #0x0] add r6, r5, #0x0 str r0, [r4, #0x3c] add r0, r4, #0x0 mov r2, #0x0 add r0, #0xf0 add r6, #0x8 strh r2, [r0, #0x0] ldmia r6!, {r0-r1} add r3, r4, #0x0 stmia r3!, {r0-r1} ldr r0, [r6, #0x0] add r6, r5, #0x0 str r0, [r3, #0x0] add r6, #0x14 add r3, r4, #0x0 ldmia r6!, {r0-r1} add r3, #0x18 stmia r3!, {r0-r1} ldr r0, [r6, #0x0] str r0, [r3, #0x0] ldrh r0, [r5, #0x20] strh r0, [r4, #0x24] add r0, r4, #0x0 ldr r1, [r5, #0x28] add r0, #0xf8 str r1, [r0, #0x0] add r0, r4, #0x0 ldr r1, [r5, #0x24] add r0, #0xf4 strh r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x26 strb r2, [r0, #0x0] add r0, r4, #0x0 add r0, #0x27 strb r2, [r0, #0x0] str r2, [r4, #0x2c] add r0, r4, #0x0 str r2, [r4, #0x30] mov r1, #0x11 add r0, #0x28 strb r1, [r0, #0x0] mov r0, #0x45 ldr r1, [r5, #0x0] lsl r0, r0, #0x2 ldr r0, [r1, r0] add r1, r4, #0x0 add r1, #0x26 ldrb r1, [r1, #0x0] blx FUN_020B502C add r0, r4, #0x0 add r0, #0x27 ldrb r2, [r0, #0x0] mov r0, #0x45 ldr r1, [r5, #0x0] lsl r0, r0, #0x2 ldr r0, [r1, r0] mov r1, #0x1 mov r3, #0x2 and r1, r2 and r2, r3 blx FUN_020B4F38 add r0, r4, #0x0 mov r2, #0x1 add r0, #0x34 strb r2, [r0, #0x0] add r0, r4, #0x0 mov r1, #0x0 add r0, #0x35 strb r1, [r0, #0x0] lsl r0, r2, #0xd str r0, [r4, #0x38] ldr r0, [r5, #0x0] ldr r1, [r5, #0x4] ldr r3, [r5, #0x2c] add r2, r4, #0x0 bl FUN_02020434 cmp r0, #0x0 bne _0201FF56 add r0, r4, #0x0 bl FUN_0201FFC8 mov r0, #0x0 pop {r4-r6, pc} _0201FF56: add r1, r4, #0x0 add r1, #0xf8 add r0, r4, #0x0 ldr r1, [r1, #0x0] add r0, #0xd8 bl FUN_020205E8 add r1, r4, #0x0 add r1, #0x2a strb r0, [r1, #0x0] add r0, r4, #0x0 add r0, #0x2a ldrb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x29 strb r1, [r0, #0x0] ldr r0, [r5, #0x0] add r1, r4, #0x0 bl FUN_02020788 add r0, r4, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0201FF84 FUN_0201FF84: ; 0x0201FF84 push {r4, lr} sub sp, #0x30 add r2, r0, #0x0 ldr r0, [r2, #0x0] add r4, r2, #0x0 str r0, [sp, #0x0] ldr r0, [r2, #0x4] add r4, #0x8 str r0, [sp, #0x4] ldmia r4!, {r0-r1} add r3, sp, #0x8 stmia r3!, {r0-r1} ldr r0, [r4, #0x0] mov r1, #0x0 str r0, [r3, #0x0] mov r0, #0x1 lsl r0, r0, #0xc str r0, [sp, #0x14] str r0, [sp, #0x18] str r0, [sp, #0x1c] add r0, sp, #0x0 strh r1, [r0, #0x20] ldr r0, [r2, #0x14] str r0, [sp, #0x24] ldr r0, [r2, #0x18] str r0, [sp, #0x28] ldr r0, [r2, #0x1c] str r0, [sp, #0x2c] add r0, sp, #0x0 bl FUN_0201FE94 add sp, #0x30 pop {r4, pc} .balign 4 thumb_func_start FUN_0201FFC8 FUN_0201FFC8: ; 0x0201FFC8 push {r3-r5, lr} add r5, r0, #0x0 add r1, r5, #0x0 add r1, #0xec ldr r1, [r1, #0x0] cmp r1, #0x0 beq _02020040 add r1, r5, #0x0 add r1, #0xfc ldr r1, [r1, #0x0] cmp r1, #0x0 beq _0201FFE4 bl FUN_02020820 _0201FFE4: add r0, r5, #0x0 add r0, #0xec ldr r0, [r0, #0x0] cmp r0, #0x3 bne _0202000E add r1, r5, #0x0 add r1, #0xf8 add r0, r5, #0x0 add r4, r5, #0x0 ldr r1, [r1, #0x0] add r0, #0xb4 add r4, #0x40 blx FUN_020B1A14 mov r1, #0x0 mvn r1, r1 cmp r0, r1 beq _0202000E ldr r0, [r4, #0x5c] blx FUN_020B4358 _0202000E: add r0, r5, #0x0 add r0, #0xec ldr r0, [r0, #0x0] cmp r0, #0x2 bne _02020030 add r4, r5, #0x0 add r4, #0x40 ldr r0, [r4, #0x70] cmp r0, #0x0 beq _02020026 bl FUN_02016A18 _02020026: ldr r0, [r4, #0x74] cmp r0, #0x0 beq _02020030 bl FUN_02016A18 _02020030: add r0, r5, #0x0 mov r1, #0x0 add r0, #0xec str r1, [r0, #0x0] ldr r0, [r5, #0x3c] add r1, r5, #0x0 bl FUN_02020890 _02020040: pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02020044 FUN_02020044: ; 0x02020044 add r2, r1, #0x0 add r3, r0, #0x0 ldmia r2!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r2, #0x0] str r0, [r3, #0x0] bx lr .balign 4 thumb_func_start FUN_02020054 FUN_02020054: ; 0x02020054 add r3, r1, #0x0 add r2, r0, #0x0 ldmia r3!, {r0-r1} add r2, #0xc stmia r2!, {r0-r1} ldr r0, [r3, #0x0] str r0, [r2, #0x0] bx lr thumb_func_start FUN_02020064 FUN_02020064: ; 0x02020064 add r3, r1, #0x0 add r2, r0, #0x0 ldmia r3!, {r0-r1} add r2, #0x18 stmia r2!, {r0-r1} ldr r0, [r3, #0x0] str r0, [r2, #0x0] bx lr thumb_func_start FUN_02020074 FUN_02020074: ; 0x02020074 push {r3-r5, lr} add r5, r0, #0x0 add r4, r2, #0x0 bl FUN_02020064 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_020200EC pop {r3-r5, pc} thumb_func_start FUN_02020088 FUN_02020088: ; 0x02020088 strh r1, [r0, #0x24] bx lr thumb_func_start FUN_0202008C FUN_0202008C: ; 0x0202008C push {r3-r5, lr} add r5, r0, #0x0 add r4, r2, #0x0 bl FUN_02020088 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_020200EC pop {r3-r5, pc} thumb_func_start FUN_020200A0 FUN_020200A0: ; 0x020200A0 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _020200AE bl ErrorHandling _020200AE: cmp r4, #0x2 blt _020200B6 bl ErrorHandling _020200B6: add r5, #0x34 strb r4, [r5, #0x0] pop {r3-r5, pc} thumb_func_start FUN_020200BC FUN_020200BC: ; 0x020200BC push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _020200CA bl ErrorHandling _020200CA: cmp r4, #0x2 blt _020200D2 bl ErrorHandling _020200D2: add r5, #0x35 strb r4, [r5, #0x0] pop {r3-r5, pc} thumb_func_start FUN_020200D8 FUN_020200D8: ; 0x020200D8 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _020200E6 bl ErrorHandling _020200E6: str r4, [r5, #0x38] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020200EC FUN_020200EC: ; 0x020200EC push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _020200FA bl ErrorHandling _020200FA: add r5, #0x26 strb r4, [r5, #0x0] pop {r3-r5, pc} thumb_func_start FUN_02020100 FUN_02020100: ; 0x02020100 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _0202010E bl ErrorHandling _0202010E: add r0, r5, #0x0 add r0, #0x27 strb r4, [r0, #0x0] mov r0, #0x0 add r5, #0x26 strb r0, [r5, #0x0] pop {r3-r5, pc} thumb_func_start FUN_0202011C FUN_0202011C: ; 0x0202011C bx lr .balign 4 thumb_func_start FUN_02020120 FUN_02020120: ; 0x02020120 add r0, #0x18 bx lr thumb_func_start FUN_02020124 FUN_02020124: ; 0x02020124 ldrh r0, [r0, #0x24] bx lr thumb_func_start FUN_02020128 FUN_02020128: ; 0x02020128 add r0, #0x34 ldrb r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02020130 FUN_02020130: ; 0x02020130 push {r4, lr} lsl r2, r1, #0x10 lsr r3, r2, #0x10 add r2, r0, #0x0 add r2, #0xf0 strh r3, [r2, #0x0] add r2, r0, #0x0 add r2, #0xec ldr r2, [r2, #0x0] cmp r2, #0x1 beq _0202014A cmp r2, #0x3 bne _02020168 _0202014A: add r4, r0, #0x0 add r4, #0x40 lsl r1, r1, #0x10 ldr r0, [r4, #0x4] lsr r1, r1, #0x10 blx FUN_020AFC04 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x8 blx FUN_020B1EE4 mov r0, #0x1 str r0, [r4, #0x10] pop {r4, pc} _02020168: add r4, r0, #0x0 add r4, #0x40 ldr r0, [r4, #0x6c] add r1, r3, #0x0 blx FUN_020AFC04 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x8 blx FUN_020B242C mov r0, #0x1 str r0, [r4, #0x10] pop {r4, pc} thumb_func_start FUN_02020184 FUN_02020184: ; 0x02020184 push {r3, lr} add r2, r0, #0x0 add r2, #0xf0 ldrh r2, [r2, #0x0] cmp r2, r1 beq _02020194 bl FUN_02020130 _02020194: pop {r3, pc} .balign 4 thumb_func_start FUN_02020198 FUN_02020198: ; 0x02020198 push {r3-r5, lr} add r4, r0, #0x0 add r0, #0xec ldr r0, [r0, #0x0] cmp r0, #0x1 beq _020201A8 cmp r0, #0x3 bne _020201C2 _020201A8: add r5, r4, #0x0 add r5, #0x40 add r0, r5, #0x0 add r0, #0x8 blx FUN_020B0448 mov r0, #0x1 str r0, [r5, #0x10] add r0, r4, #0x0 mov r1, #0x0 bl FUN_02020208 pop {r3-r5, pc} _020201C2: add r5, r4, #0x0 add r5, #0x40 add r0, r5, #0x0 add r0, #0x8 blx FUN_020B0448 mov r0, #0x1 str r0, [r5, #0x10] add r0, r4, #0x0 mov r1, #0x0 bl FUN_02020208 pop {r3-r5, pc} thumb_func_start FUN_020201DC FUN_020201DC: ; 0x020201DC add r0, #0xf0 ldrh r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_020201E4 FUN_020201E4: ; 0x020201E4 push {r3, lr} add r2, r0, #0x0 add r2, #0xec ldr r2, [r2, #0x0] cmp r2, #0x1 beq _020201F4 cmp r2, #0x3 bne _020201FE _020201F4: add r0, #0x40 add r0, #0x8 blx FUN_020B1EC4 pop {r3, pc} _020201FE: add r0, #0x40 add r0, #0x8 blx FUN_020B224C pop {r3, pc} thumb_func_start FUN_02020208 FUN_02020208: ; 0x02020208 push {r3, lr} add r2, r0, #0x0 add r2, #0xec ldr r2, [r2, #0x0] cmp r2, #0x1 beq _02020218 cmp r2, #0x3 bne _02020222 _02020218: add r0, #0x40 add r0, #0x8 blx FUN_020B1EA4 pop {r3, pc} _02020222: add r0, #0x40 add r0, #0x8 blx FUN_020B2194 pop {r3, pc} thumb_func_start FUN_0202022C FUN_0202022C: ; 0x0202022C ldr r3, _02020234 ; =0x020B04FC add r0, #0x40 add r0, #0x8 bx r3 .balign 4 _02020234: .word 0x020B04FC thumb_func_start FUN_02020238 FUN_02020238: ; 0x02020238 add r0, #0xf2 strb r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02020240 FUN_02020240: ; 0x02020240 add r0, #0xf2 ldrb r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02020248 FUN_02020248: ; 0x02020248 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _02020256 bl ErrorHandling _02020256: add r0, r5, #0x0 add r0, #0x29 strb r4, [r0, #0x0] add r0, r5, #0x0 add r0, #0x28 ldrb r1, [r0, #0x0] mov r0, #0x2 orr r1, r0 add r0, r5, #0x0 add r0, #0x28 strb r1, [r0, #0x0] add r0, r5, #0x0 add r0, #0x28 ldrb r1, [r0, #0x0] mov r0, #0x10 add r5, #0x28 bic r1, r0 strb r1, [r5, #0x0] pop {r3-r5, pc} thumb_func_start FUN_0202027C FUN_0202027C: ; 0x0202027C push {r4, lr} add r4, r0, #0x0 bl FUN_02020248 add r1, r4, #0x0 add r1, #0xf8 add r0, r4, #0x0 ldr r1, [r1, #0x0] add r0, #0xd8 bl FUN_020205E8 add r1, r4, #0x0 add r1, #0x29 ldrb r1, [r1, #0x0] add r4, #0x29 add r0, r1, r0 strb r0, [r4, #0x0] pop {r4, pc} thumb_func_start FUN_020202A0 FUN_020202A0: ; 0x020202A0 add r0, #0x29 ldrb r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_020202A8 FUN_020202A8: ; 0x020202A8 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _020202B6 bl ErrorHandling _020202B6: add r0, r5, #0x0 add r0, #0x2a strb r4, [r0, #0x0] add r0, r5, #0x0 add r0, #0x28 ldrb r1, [r0, #0x0] mov r0, #0x10 orr r1, r0 add r0, r5, #0x0 add r0, #0x28 strb r1, [r0, #0x0] add r0, r5, #0x0 add r0, #0x28 ldrb r1, [r0, #0x0] mov r0, #0x2 add r5, #0x28 bic r1, r0 strb r1, [r5, #0x0] pop {r3-r5, pc} thumb_func_start FUN_020202DC FUN_020202DC: ; 0x020202DC push {r4, lr} add r4, r0, #0x0 bl FUN_020202A8 add r1, r4, #0x0 add r1, #0xf8 add r0, r4, #0x0 ldr r1, [r1, #0x0] add r0, #0xd8 bl FUN_020205E8 add r1, r4, #0x0 add r1, #0x2a ldrb r1, [r1, #0x0] add r4, #0x2a add r0, r1, r0 strb r0, [r4, #0x0] pop {r4, pc} thumb_func_start FUN_02020300 FUN_02020300: ; 0x02020300 push {r4, lr} add r4, r0, #0x0 bne _0202030A bl ErrorHandling _0202030A: add r4, #0x2a ldrb r0, [r4, #0x0] pop {r4, pc} thumb_func_start FUN_02020310 FUN_02020310: ; 0x02020310 push {r3-r5, lr} add r5, r0, #0x0 add r2, r5, #0x0 ldr r4, [r5, #0x3c] add r2, #0xf4 strh r1, [r2, #0x0] bl FUN_02020820 add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_02020788 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0202032C FUN_0202032C: ; 0x0202032C add r0, #0xf4 ldrh r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02020334 FUN_02020334: ; 0x02020334 push {r3-r4} add r3, r0, #0x0 add r4, r1, #0x0 add r3, #0xb4 mov r2, #0x4 _0202033E: ldmia r4!, {r0-r1} stmia r3!, {r0-r1} sub r2, r2, #0x1 bne _0202033E ldr r0, [r4, #0x0] str r0, [r3, #0x0] pop {r3-r4} bx lr .balign 4 thumb_func_start FUN_02020350 FUN_02020350: ; 0x02020350 add r0, #0xb4 bx lr thumb_func_start FUN_02020354 FUN_02020354: ; 0x02020354 add r0, #0xd8 bx lr thumb_func_start FUN_02020358 FUN_02020358: ; 0x02020358 str r1, [r0, #0x2c] cmp r1, #0x1 bne _0202036E add r1, r0, #0x0 add r1, #0x28 ldrb r2, [r1, #0x0] mov r1, #0x4 add r0, #0x28 orr r1, r2 strb r1, [r0, #0x0] bx lr _0202036E: add r1, r0, #0x0 add r1, #0x28 ldrb r2, [r1, #0x0] mov r1, #0x4 eor r1, r2 add r0, #0x28 strb r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02020380 FUN_02020380: ; 0x02020380 add r0, #0xf8 ldr r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02020388 FUN_02020388: ; 0x02020388 push {r4, lr} add r4, r0, #0x0 bne _02020392 bl ErrorHandling _02020392: ldr r0, [r4, #0x50] pop {r4, pc} .balign 4 thumb_func_start FUN_02020398 FUN_02020398: ; 0x02020398 push {r3-r5, lr} add r4, r0, #0x0 add r5, r1, #0x0 cmp r4, #0x0 bne _020203A6 bl ErrorHandling _020203A6: str r5, [r4, #0x30] cmp r5, #0x0 bne _020203BC add r0, r4, #0x0 add r0, #0x28 ldrb r1, [r0, #0x0] mov r0, #0x8 add r4, #0x28 eor r0, r1 strb r0, [r4, #0x0] pop {r3-r5, pc} _020203BC: add r0, r4, #0x0 add r0, #0x28 ldrb r1, [r0, #0x0] mov r0, #0x8 orr r0, r1 add r4, #0x28 strb r0, [r4, #0x0] pop {r3-r5, pc} thumb_func_start FUN_020203CC FUN_020203CC: ; 0x020203CC push {r4, lr} mov r1, #0x1 lsl r1, r1, #0xa bl FUN_02016998 add r4, r0, #0x0 mov r0, #0xb mov r2, #0x1 lsl r0, r0, #0x6 add r1, r4, #0x0 lsl r2, r2, #0xa blx MIi_CpuClear16 mov r1, #0x1 add r0, r4, #0x0 lsl r1, r1, #0xa blx DC_FlushRange mov r2, #0x1 add r0, r4, #0x0 mov r1, #0x0 lsl r2, r2, #0xa blx FUN_020C93BC add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} thumb_func_start FUN_02020404 FUN_02020404: ; 0x02020404 push {r4, lr} mov r1, #0x1 lsl r1, r1, #0xa bl FUN_02016998 add r4, r0, #0x0 mov r0, #0xb mov r2, #0x1 lsl r0, r0, #0x6 add r1, r4, #0x0 lsl r2, r2, #0xa blx MIi_CpuClear16 mov r2, #0x1 add r0, r4, #0x0 mov r1, #0x0 lsl r2, r2, #0xa blx FUN_020C9354 add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} .balign 4 thumb_func_start FUN_02020434 FUN_02020434: ; 0x02020434 push {r3-r7, lr} add r5, r1, #0x0 str r0, [sp, #0x0] add r4, r2, #0x0 add r0, r5, #0x0 add r7, r3, #0x0 bl FUN_020204DC add r1, r4, #0x0 add r1, #0xec str r0, [r1, #0x0] add r3, r4, #0x0 ldr r6, [r5, #0x0] add r3, #0xb4 mov r2, #0x4 _02020452: ldmia r6!, {r0-r1} stmia r3!, {r0-r1} sub r2, r2, #0x1 bne _02020452 ldr r0, [r6, #0x0] add r2, r4, #0x0 str r0, [r3, #0x0] ldr r3, [r5, #0x8] add r2, #0xd8 ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldr r0, [r3, #0x0] add r1, r4, #0x0 str r0, [r2, #0x0] ldr r0, [r5, #0xc] bl FUN_020204F4 ldr r0, [r5, #0x10] cmp r0, #0x0 beq _02020486 add r1, r4, #0x0 bl FUN_020204F8 b _02020494 _02020486: mov r1, #0x47 ldr r0, [sp, #0x0] lsl r1, r1, #0x2 ldr r0, [r0, r1] add r1, r4, #0x0 bl FUN_020204F8 _02020494: add r0, r4, #0x0 add r0, #0xec ldr r0, [r0, #0x0] cmp r0, #0x2 bne _020204B8 ldr r0, [r5, #0x14] add r1, r4, #0x0 bl FUN_020204FC ldr r0, [r5, #0x18] add r1, r4, #0x0 bl FUN_02020504 add r0, r4, #0x0 add r1, r7, #0x0 bl FUN_02020588 b _020204D0 _020204B8: cmp r0, #0x3 bne _020204C8 add r0, r5, #0x0 add r1, r4, #0x0 add r2, r7, #0x0 bl FUN_0202052C b _020204D0 _020204C8: add r0, r4, #0x0 add r1, r7, #0x0 bl FUN_0202050C _020204D0: add r5, #0x20 ldrb r0, [r5, #0x0] add r4, #0xf2 strb r0, [r4, #0x0] mov r0, #0x1 pop {r3-r7, pc} thumb_func_start FUN_020204DC FUN_020204DC: ; 0x020204DC ldr r1, [r0, #0x14] cmp r1, #0x0 beq _020204E6 mov r0, #0x2 bx lr _020204E6: ldr r0, [r0, #0x1c] cmp r0, #0x1 bne _020204F0 mov r0, #0x3 bx lr _020204F0: mov r0, #0x1 bx lr thumb_func_start FUN_020204F4 FUN_020204F4: ; 0x020204F4 str r0, [r1, #0x40] bx lr thumb_func_start FUN_020204F8 FUN_020204F8: ; 0x020204F8 str r0, [r1, #0x44] bx lr thumb_func_start FUN_020204FC FUN_020204FC: ; 0x020204FC add r1, #0xa8 str r0, [r1, #0x0] bx lr .balign 4 thumb_func_start FUN_02020504 FUN_02020504: ; 0x02020504 add r1, #0xac str r0, [r1, #0x0] bx lr .balign 4 thumb_func_start FUN_0202050C FUN_0202050C: ; 0x0202050C push {r3-r5, lr} add r5, r0, #0x0 add r4, r5, #0x0 add r4, #0x40 ldr r0, [r4, #0x4] mov r1, #0x0 blx FUN_020AFC04 add r4, #0x8 add r1, r0, #0x0 ldr r2, [r5, #0x40] add r0, r4, #0x0 blx FUN_020B1F80 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0202052C FUN_0202052C: ; 0x0202052C push {r4-r7, lr} sub sp, #0x1c add r6, r1, #0x0 add r4, r6, #0x0 add r4, #0x40 add r5, r0, #0x0 blx FUN_020B43A4 str r0, [r4, #0x5c] ldr r0, [r4, #0x4] mov r1, #0x0 ldr r5, [r5, #0x4] blx FUN_020AFC04 str r0, [sp, #0x18] add r0, r6, #0x0 add r0, #0xb4 mov r1, #0x1 blx FUN_020B1A14 add r7, r0, #0x0 add r0, r6, #0x0 add r0, #0xb4 mov r1, #0x2 blx FUN_020B1A14 mov r1, #0x0 mvn r1, r1 str r1, [sp, #0x0] str r7, [sp, #0x4] str r0, [sp, #0x8] ldr r0, [r5, #0x14] ldr r1, [sp, #0x18] str r0, [sp, #0xc] mov r0, #0x0 str r0, [sp, #0x10] ldr r0, [r5, #0x10] str r0, [sp, #0x14] add r0, r4, #0x0 ldr r2, [r6, #0x40] ldr r3, [r4, #0x5c] add r0, #0x8 blx FUN_020B1EFC add sp, #0x1c pop {r4-r7, pc} thumb_func_start FUN_02020588 FUN_02020588: ; 0x02020588 push {r3-r7, lr} sub sp, #0x10 add r5, r0, #0x0 add r4, r5, #0x0 add r4, #0x40 ldr r0, [r4, #0x6c] add r7, r1, #0x0 mov r1, #0x0 blx FUN_020AFC04 str r0, [sp, #0xc] ldr r0, [r4, #0x68] blx FUN_020B23D8 add r6, r0, #0x0 mov r1, #0x28 add r0, r7, #0x0 mul r1, r6 bl FUN_02016998 mov r1, #0x54 str r0, [r4, #0x70] add r0, r7, #0x0 mul r1, r6 bl FUN_02016998 str r0, [r4, #0x74] ldr r0, [r4, #0x4] add r3, r6, #0x0 str r0, [sp, #0x0] ldr r0, [r5, #0x40] str r0, [sp, #0x4] ldr r0, [r4, #0x68] str r0, [sp, #0x8] add r0, r4, #0x0 ldr r1, [r4, #0x70] ldr r2, [r4, #0x74] add r0, #0x8 blx FUN_020B20C8 add r4, #0x8 ldr r1, [sp, #0xc] add r0, r4, #0x0 blx FUN_020B242C add sp, #0x10 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020205E8 FUN_020205E8: ; 0x020205E8 push {r4, lr} ldr r2, [r0, #0x4] cmp r2, #0x0 beq _020205F6 mov r4, #0x2 lsl r4, r4, #0x8 b _02020602 _020205F6: ldr r2, [r0, #0x0] cmp r2, #0x4 bne _02020600 mov r4, #0x0 b _02020602 _02020600: mov r4, #0x20 _02020602: cmp r4, #0x0 beq _02020612 blx FUN_020B19C4 add r1, r4, #0x0 blx _u32_div_f pop {r4, pc} _02020612: mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02020618 FUN_02020618: ; 0x02020618 push {r3-r6, lr} sub sp, #0xc add r4, r1, #0x0 add r3, r4, #0x0 add r5, r0, #0x0 ldmia r3!, {r0-r1} add r2, sp, #0x0 stmia r2!, {r0-r1} ldr r0, [r3, #0x0] add r1, r4, #0x0 str r0, [r2, #0x0] mov r0, #0x45 lsl r0, r0, #0x2 add r2, r4, #0x0 ldr r0, [r5, r0] add r1, #0xb4 add r2, #0xd8 blx FUN_020B2780 mov r0, #0x45 lsl r0, r0, #0x2 ldr r0, [r5, r0] blx FUN_020B326C blx FUN_020B2B58 add r1, r4, #0x0 mov r0, #0x45 add r1, #0x26 lsl r0, r0, #0x2 ldrb r1, [r1, #0x0] ldr r0, [r5, r0] blx FUN_020B502C add r0, r4, #0x0 add r0, #0x26 ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _02020680 add r0, r4, #0x0 add r0, #0x27 ldrb r2, [r0, #0x0] mov r0, #0x45 lsl r0, r0, #0x2 mov r1, #0x1 ldr r0, [r5, r0] mov r3, #0x2 and r1, r2 and r2, r3 blx FUN_020B4F38 b _0202068E _02020680: mov r0, #0x45 lsl r0, r0, #0x2 mov r1, #0x0 ldr r0, [r5, r0] add r2, r1, #0x0 blx FUN_020B4F38 _0202068E: ldr r0, [sp, #0x0] ldr r1, [sp, #0x4] ldr r2, [sp, #0x8] blx FUN_020B2A08 add r0, r4, #0x0 add r0, #0x26 ldrb r0, [r0, #0x0] cmp r0, #0x0 beq _020206DC ldr r0, [r4, #0xc] ldr r1, [r4, #0x10] ldr r2, [r4, #0x14] blx FUN_020B2A08 ldr r0, [r4, #0x18] ldr r1, [r4, #0x1c] ldr r2, [r4, #0x20] blx FUN_020B28B4 ldrh r0, [r4, #0x24] ldr r2, _02020770 ; =0x020FFA38 asr r0, r0, #0x4 lsl r1, r0, #0x1 lsl r0, r1, #0x1 add r1, r1, #0x1 lsl r1, r1, #0x1 ldrsh r0, [r2, r0] ldrsh r1, [r2, r1] blx FUN_020B2794 ldr r0, [r4, #0xc] ldr r1, [r4, #0x10] ldr r2, [r4, #0x14] neg r0, r0 neg r1, r1 neg r2, r2 blx FUN_020B2A08 _020206DC: add r0, r4, #0x0 add r0, #0x28 ldrb r3, [r0, #0x0] mov r0, #0x45 lsl r0, r0, #0x2 ldr r2, [r5, r0] add r1, r2, #0x0 add r1, #0x84 ldr r1, [r1, #0x0] add r2, #0x84 orr r1, r3 str r1, [r2, #0x0] add r1, r4, #0x0 add r1, #0x28 ldrb r1, [r1, #0x0] mvn r6, r1 ldr r1, [r5, r0] add r2, r1, #0x0 add r2, #0x84 ldr r3, [r2, #0x0] mvn r2, r6 and r2, r3 add r1, #0x84 str r2, [r1, #0x0] add r1, r4, #0x0 add r1, #0x29 ldrb r2, [r1, #0x0] ldr r1, [r5, r0] add r1, #0x8a strh r2, [r1, #0x0] add r1, r4, #0x0 add r1, #0x2a ldrb r2, [r1, #0x0] ldr r1, [r5, r0] add r1, #0x94 strh r2, [r1, #0x0] ldr r1, [r5, r0] ldr r2, [r4, #0x2c] add r1, #0x90 str r2, [r1, #0x0] ldr r1, [r5, r0] ldr r2, [r4, #0x30] add r1, #0x8c str r2, [r1, #0x0] add r1, r4, #0x0 add r1, #0xf2 ldr r0, [r5, r0] ldrb r1, [r1, #0x0] add r0, #0x88 strh r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0xec ldr r0, [r0, #0x0] cmp r0, #0x1 beq _0202074E cmp r0, #0x3 bne _0202075A _0202074E: add r4, #0x40 add r4, #0x8 add r0, r4, #0x0 blx FUN_020B317C b _02020764 _0202075A: add r4, #0x40 add r4, #0x8 add r0, r4, #0x0 blx FUN_020B2D9C _02020764: blx FUN_020B2B08 blx FUN_020B31F0 add sp, #0xc pop {r3-r6, pc} .balign 4 _02020770: .word 0x020FFA38 thumb_func_start FUN_02020774 FUN_02020774: ; 0x02020774 bx lr .balign 4 thumb_func_start FUN_02020778 FUN_02020778: ; 0x02020778 ldr r3, _02020780 ; =FUN_020201E4 ldr r1, [r0, #0x38] bx r3 nop _02020780: .word FUN_020201E4 thumb_func_start FUN_02020784 FUN_02020784: ; 0x02020784 bx lr .balign 4 thumb_func_start FUN_02020788 FUN_02020788: ; 0x02020788 push {r4-r7} mov r2, #0x11 lsl r2, r2, #0x4 add r4, r0, #0x0 ldr r5, [r0, r2] add r4, #0x10 cmp r5, r4 bne _020207AC str r1, [r0, r2] sub r3, r2, #0x4 str r1, [r0, r3] add r0, r1, #0x0 add r0, #0xfc str r4, [r0, #0x0] sub r2, #0x10 str r4, [r1, r2] pop {r4-r7} bx lr _020207AC: add r3, r1, #0x0 add r3, #0xf4 ldrh r6, [r3, #0x0] sub r3, r2, #0x4 ldr r3, [r0, r3] add r7, r3, #0x0 add r7, #0xf4 ldrh r7, [r7, #0x0] cmp r7, r6 bhi _020207DE add r5, r1, #0x0 add r5, #0xfc str r3, [r5, #0x0] sub r3, r2, #0x4 ldr r5, [r0, r3] add r3, r2, #0x0 sub r3, #0x10 str r1, [r5, r3] add r3, r2, #0x0 sub r3, #0x10 str r4, [r1, r3] sub r2, r2, #0x4 str r1, [r0, r2] pop {r4-r7} bx lr _020207DE: cmp r5, r4 beq _0202081A add r0, r2, #0x0 sub r0, #0x10 _020207E6: add r2, r5, #0x0 add r2, #0xf4 ldrh r2, [r2, #0x0] cmp r2, r6 bls _02020814 add r0, r5, #0x0 add r0, #0xfc mov r2, #0x1 ldr r0, [r0, #0x0] lsl r2, r2, #0x8 str r1, [r0, r2] add r0, r5, #0x0 add r0, #0xfc ldr r3, [r0, #0x0] add r0, r1, #0x0 add r0, #0xfc str r3, [r0, #0x0] add r0, r5, #0x0 add r0, #0xfc str r1, [r0, #0x0] str r5, [r1, r2] pop {r4-r7} bx lr _02020814: ldr r5, [r5, r0] cmp r5, r4 bne _020207E6 _0202081A: pop {r4-r7} bx lr .balign 4 thumb_func_start FUN_02020820 FUN_02020820: ; 0x02020820 mov r2, #0x1 add r1, r0, #0x0 lsl r2, r2, #0x8 add r1, #0xfc ldr r3, [r0, r2] ldr r1, [r1, #0x0] str r3, [r1, r2] add r1, r0, #0x0 add r1, #0xfc ldr r0, [r0, r2] ldr r1, [r1, #0x0] add r0, #0xfc str r1, [r0, #0x0] bx lr thumb_func_start FUN_0202083C FUN_0202083C: ; 0x0202083C push {r3-r7, lr} add r5, r0, #0x0 ldr r0, [r5, #0x4] mov r7, #0x0 cmp r0, #0x0 ble _0202086C add r4, r7, #0x0 add r6, r7, #0x0 _0202084C: ldr r0, [r5, #0x0] add r0, r0, r4 bl FUN_0201FE6C ldr r0, [r5, #0x0] add r7, r7, #0x1 add r1, r0, r4 ldr r0, [r5, #0x8] str r1, [r0, r6] mov r0, #0x41 lsl r0, r0, #0x2 add r4, r4, r0 ldr r0, [r5, #0x4] add r6, r6, #0x4 cmp r7, r0 blt _0202084C _0202086C: mov r0, #0x0 str r0, [r5, #0xc] pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02020874 FUN_02020874: ; 0x02020874 ldr r3, [r0, #0xc] ldr r1, [r0, #0x4] cmp r3, r1 blt _02020880 mov r0, #0x0 bx lr _02020880: ldr r2, [r0, #0x8] lsl r1, r3, #0x2 ldr r2, [r2, r1] add r1, r3, #0x1 str r1, [r0, #0xc] add r0, r2, #0x0 bx lr .balign 4 thumb_func_start FUN_02020890 FUN_02020890: ; 0x02020890 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] add r4, r1, #0x0 cmp r0, #0x0 bgt _020208A0 mov r0, #0x0 pop {r3-r5, pc} _020208A0: add r0, r4, #0x0 bl FUN_0201FE6C ldr r0, [r5, #0xc] sub r0, r0, #0x1 str r0, [r5, #0xc] ldr r1, [r5, #0x8] lsl r0, r0, #0x2 str r4, [r1, r0] mov r0, #0x1 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020208B8 FUN_020208B8: ; 0x020208B8 push {r4-r7} ldrb r3, [r0, #0x0] mov r4, #0x0 cmp r3, #0xff beq _020208FA _020208C2: ldrb r7, [r0, #0x2] ldrb r3, [r0, #0x3] ldrb r5, [r0, #0x0] sub r6, r1, r7 sub r3, r3, r7 cmp r6, r3 bhs _020208D4 mov r6, #0x1 b _020208D6 _020208D4: mov r6, #0x0 _020208D6: ldrb r7, [r0, #0x1] sub r3, r2, r5 sub r5, r7, r5 cmp r3, r5 bhs _020208E4 mov r3, #0x1 b _020208E6 _020208E4: mov r3, #0x0 _020208E6: tst r3, r6 beq _020208F0 add r0, r4, #0x0 pop {r4-r7} bx lr _020208F0: add r0, r0, #0x4 ldrb r3, [r0, #0x0] add r4, r4, #0x1 cmp r3, #0xff bne _020208C2 _020208FA: mov r0, #0x0 mvn r0, r0 pop {r4-r7} bx lr .balign 4 thumb_func_start FUN_02020904 FUN_02020904: ; 0x02020904 push {r3-r4} ldrb r3, [r0, #0x1] sub r4, r3, r1 ldrb r1, [r0, #0x2] sub r3, r1, r2 ldrb r2, [r0, #0x3] add r1, r4, #0x0 add r0, r3, #0x0 mul r1, r4 mul r0, r3 add r1, r1, r0 add r0, r2, #0x0 mul r0, r2 cmp r1, r0 bhs _02020928 mov r0, #0x1 pop {r3-r4} bx lr _02020928: mov r0, #0x0 pop {r3-r4} bx lr .balign 4 thumb_func_start FUN_02020930 FUN_02020930: ; 0x02020930 push {r4-r5} ldrb r5, [r0, #0x2] ldrb r3, [r0, #0x0] sub r4, r1, r5 ldrb r1, [r0, #0x3] sub r1, r1, r5 cmp r4, r1 bhs _02020944 mov r4, #0x1 b _02020946 _02020944: mov r4, #0x0 _02020946: ldrb r0, [r0, #0x1] sub r1, r2, r3 sub r0, r0, r3 cmp r1, r0 bhs _02020954 mov r0, #0x1 b _02020956 _02020954: mov r0, #0x0 _02020956: tst r0, r4 beq _02020960 mov r0, #0x1 pop {r4-r5} bx lr _02020960: mov r0, #0x0 pop {r4-r5} bx lr .balign 4 thumb_func_start FUN_02020968 FUN_02020968: ; 0x02020968 push {r3, lr} ldr r2, _02020984 ; =0x021C48F8 ldrh r1, [r2, #0x22] cmp r1, #0x0 beq _0202097C ldrh r1, [r2, #0x1c] ldrh r2, [r2, #0x1e] bl FUN_020208B8 pop {r3, pc} _0202097C: mov r0, #0x0 mvn r0, r0 pop {r3, pc} nop _02020984: .word 0x021C48F8 thumb_func_start FUN_02020988 FUN_02020988: ; 0x02020988 push {r3, lr} ldr r2, _020209A4 ; =0x021C48F8 ldrh r1, [r2, #0x20] cmp r1, #0x0 beq _0202099C ldrh r1, [r2, #0x1c] ldrh r2, [r2, #0x1e] bl FUN_020208B8 pop {r3, pc} _0202099C: mov r0, #0x0 mvn r0, r0 pop {r3, pc} nop _020209A4: .word 0x021C48F8 thumb_func_start FUN_020209A8 FUN_020209A8: ; 0x020209A8 push {r3-r7, lr} ldr r7, _020209F0 ; =0x021C48F8 add r5, r0, #0x0 ldrh r0, [r7, #0x22] cmp r0, #0x0 beq _020209EA mov r6, #0x0 add r4, r5, #0x0 _020209B8: ldrb r0, [r5, #0x0] cmp r0, #0xfe bne _020209D0 ldrh r1, [r7, #0x1c] ldrh r2, [r7, #0x1e] add r0, r4, #0x0 bl FUN_02020904 cmp r0, #0x0 beq _020209E2 add r0, r6, #0x0 pop {r3-r7, pc} _020209D0: ldrh r1, [r7, #0x1c] ldrh r2, [r7, #0x1e] add r0, r4, #0x0 bl FUN_02020930 cmp r0, #0x0 beq _020209E2 add r0, r6, #0x0 pop {r3-r7, pc} _020209E2: add r5, r5, #0x4 add r4, r4, #0x4 add r6, r6, #0x1 b _020209B8 _020209EA: mov r0, #0x0 mvn r0, r0 pop {r3-r7, pc} .balign 4 _020209F0: .word 0x021C48F8 thumb_func_start FUN_020209F4 FUN_020209F4: ; 0x020209F4 push {r3-r7, lr} ldr r7, _02020A3C ; =0x021C48F8 add r5, r0, #0x0 ldrh r0, [r7, #0x20] cmp r0, #0x0 beq _02020A36 mov r6, #0x0 add r4, r5, #0x0 _02020A04: ldrb r0, [r5, #0x0] cmp r0, #0xfe bne _02020A1C ldrh r1, [r7, #0x1c] ldrh r2, [r7, #0x1e] add r0, r4, #0x0 bl FUN_02020904 cmp r0, #0x0 beq _02020A2E add r0, r6, #0x0 pop {r3-r7, pc} _02020A1C: ldrh r1, [r7, #0x1c] ldrh r2, [r7, #0x1e] add r0, r4, #0x0 bl FUN_02020930 cmp r0, #0x0 beq _02020A2E add r0, r6, #0x0 pop {r3-r7, pc} _02020A2E: add r5, r5, #0x4 add r4, r4, #0x4 add r6, r6, #0x1 b _02020A04 _02020A36: mov r0, #0x0 mvn r0, r0 pop {r3-r7, pc} .balign 4 _02020A3C: .word 0x021C48F8 thumb_func_start FUN_02020A40 FUN_02020A40: ; 0x02020A40 push {r3, lr} ldr r2, _02020A68 ; =0x021C48F8 ldrh r1, [r2, #0x22] cmp r1, #0x0 beq _02020A62 ldrb r1, [r0, #0x0] cmp r1, #0xfe ldrh r1, [r2, #0x1c] bne _02020A5A ldrh r2, [r2, #0x1e] bl FUN_02020904 pop {r3, pc} _02020A5A: ldrh r2, [r2, #0x1e] bl FUN_02020930 pop {r3, pc} _02020A62: mov r0, #0x0 pop {r3, pc} nop _02020A68: .word 0x021C48F8 thumb_func_start FUN_02020A6C FUN_02020A6C: ; 0x02020A6C push {r3, lr} ldr r2, _02020A94 ; =0x021C48F8 ldrh r1, [r2, #0x20] cmp r1, #0x0 beq _02020A8E ldrb r1, [r0, #0x0] cmp r1, #0xfe ldrh r1, [r2, #0x1c] bne _02020A86 ldrh r2, [r2, #0x1e] bl FUN_02020904 pop {r3, pc} _02020A86: ldrh r2, [r2, #0x1e] bl FUN_02020930 pop {r3, pc} _02020A8E: mov r0, #0x0 pop {r3, pc} nop _02020A94: .word 0x021C48F8 thumb_func_start FUN_02020A98 FUN_02020A98: ; 0x02020A98 ldr r0, _02020AA0 ; =0x021C48F8 ldrh r0, [r0, #0x22] bx lr nop _02020AA0: .word 0x021C48F8 thumb_func_start FUN_02020AA4 FUN_02020AA4: ; 0x02020AA4 ldr r0, _02020AAC ; =0x021C48F8 ldrh r0, [r0, #0x20] bx lr nop _02020AAC: .word 0x021C48F8 thumb_func_start FUN_02020AB0 FUN_02020AB0: ; 0x02020AB0 ldr r2, _02020AC8 ; =0x021C48F8 ldrh r3, [r2, #0x22] cmp r3, #0x0 beq _02020AC4 ldrh r3, [r2, #0x1c] str r3, [r0, #0x0] ldrh r0, [r2, #0x1e] str r0, [r1, #0x0] mov r0, #0x1 bx lr _02020AC4: mov r0, #0x0 bx lr .balign 4 _02020AC8: .word 0x021C48F8 thumb_func_start FUN_02020ACC FUN_02020ACC: ; 0x02020ACC ldr r2, _02020AE4 ; =0x021C48F8 ldrh r3, [r2, #0x20] cmp r3, #0x0 beq _02020AE0 ldrh r3, [r2, #0x1c] str r3, [r0, #0x0] ldrh r0, [r2, #0x1e] str r0, [r1, #0x0] mov r0, #0x1 bx lr _02020AE0: mov r0, #0x0 bx lr .balign 4 _02020AE4: .word 0x021C48F8 thumb_func_start FUN_02020AE8 FUN_02020AE8: ; 0x02020AE8 push {r3, lr} ldrb r3, [r0, #0x0] cmp r3, #0xfe bne _02020AF6 bl FUN_02020904 pop {r3, pc} _02020AF6: bl FUN_02020930 pop {r3, pc} thumb_func_start FUN_02020AFC FUN_02020AFC: ; 0x02020AFC push {r3, lr} ldr r0, _02020B24 ; =0x021C59B0 mov r2, #0x0 str r2, [r0, #0x4] str r2, [r0, #0x8] ldr r1, _02020B28 ; =0x0400010E str r2, [r0, #0x0] strh r2, [r1, #0x0] sub r0, r1, #0x2 strh r2, [r0, #0x0] mov r0, #0xc1 strh r0, [r1, #0x0] ldr r1, _02020B2C ; =FUN_02020B30 mov r0, #0x40 blx OS_SetIrqFunction mov r0, #0x40 blx OS_EnableIrqMask pop {r3, pc} .balign 4 _02020B24: .word 0x021C59B0 _02020B28: .word 0x0400010E _02020B2C: .word FUN_02020B30 thumb_func_start FUN_02020B30 FUN_02020B30: ; 0x02020B30 ldr r0, _02020B68 ; =0x021C59B0 mov r3, #0x0 ldr r1, [r0, #0x4] ldr r2, [r0, #0x8] add r1, r1, #0x1 adc r2, r3 str r1, [r0, #0x4] str r2, [r0, #0x8] ldr r1, [r0, #0x0] cmp r1, #0x0 beq _02020B54 ldr r2, _02020B6C ; =0x0400010E strh r3, [r2, #0x0] sub r1, r2, #0x2 strh r3, [r1, #0x0] mov r1, #0xc1 strh r1, [r2, #0x0] str r3, [r0, #0x0] _02020B54: ldr r3, _02020B70 ; =0x027E0000 ldr r1, _02020B74 ; =0x00003FF8 mov r0, #0x40 ldr r2, [r3, r1] orr r2, r0 str r2, [r3, r1] ldr r3, _02020B78 ; =OS_SetIrqFunction ldr r1, _02020B7C ; =FUN_02020B30 bx r3 nop _02020B68: .word 0x021C59B0 _02020B6C: .word 0x0400010E _02020B70: .word 0x027E0000 _02020B74: .word 0x00003FF8 _02020B78: .word OS_SetIrqFunction _02020B7C: .word FUN_02020B30 thumb_func_start FUN_02020B80 FUN_02020B80: ; 0x02020B80 push {r4-r5, lr} sub sp, #0xc blx OS_DisableInterrupts ldr r1, _02020BE4 ; =0x0400010C add r3, sp, #0x0 ldrh r1, [r1, #0x0] ldr r2, _02020BE8 ; =0x0000FFFF strh r1, [r3, #0x0] ldr r1, _02020BEC ; =0x021C59B0 ldr r5, [r1, #0x4] ldr r4, [r1, #0x8] mov r1, #0x0 mvn r1, r1 and r1, r5 str r1, [sp, #0x4] and r2, r4 ldr r1, _02020BF0 ; =0x04000214 str r2, [sp, #0x8] ldr r2, [r1, #0x0] mov r1, #0x40 tst r2, r1 beq _02020BC4 ldrh r2, [r3, #0x0] lsl r1, r1, #0x9 tst r1, r2 bne _02020BC4 ldr r2, [sp, #0x4] mov r1, #0x0 ldr r3, [sp, #0x8] add r2, r2, #0x1 adc r3, r1 str r2, [sp, #0x4] str r3, [sp, #0x8] _02020BC4: blx OS_RestoreInterrupts ldr r2, [sp, #0x4] ldr r1, [sp, #0x8] lsr r0, r2, #0x10 lsl r1, r1, #0x10 orr r1, r0 add r0, sp, #0x0 lsl r3, r2, #0x10 ldrh r2, [r0, #0x0] asr r0, r2, #0x1f orr r1, r0 add r0, r3, #0x0 orr r0, r2 add sp, #0xc pop {r4-r5, pc} .balign 4 _02020BE4: .word 0x0400010C _02020BE8: .word 0x0000FFFF _02020BEC: .word 0x021C59B0 _02020BF0: .word 0x04000214 thumb_func_start FUN_02020BF4 FUN_02020BF4: ; 0x02020BF4 ldr r3, _02020BF8 ; =FUN_02020B80 bx r3 .balign 4 _02020BF8: .word FUN_02020B80 thumb_func_start FUN_02020BFC FUN_02020BFC: ; 0x02020BFC push {r3, lr} lsr r2, r0, #0x1a lsl r1, r1, #0x6 orr r1, r2 ldr r2, _02020C10 ; =0x000082EA lsl r0, r0, #0x6 mov r3, #0x0 blx _ll_udiv pop {r3, pc} .balign 4 _02020C10: .word 0x000082EA thumb_func_start FUN_02020C14 FUN_02020C14: ; 0x02020C14 push {r3, lr} lsr r2, r0, #0x1a lsl r1, r1, #0x6 orr r1, r2 ldr r2, _02020C28 ; =0x01FF6210 lsl r0, r0, #0x6 mov r3, #0x0 blx _ll_udiv pop {r3, pc} .balign 4 _02020C28: .word 0x01FF6210 thumb_func_start ErrorHandling ErrorHandling: ; 0x02020C2C push {r3, lr} bl FUN_02031810 cmp r0, #0x0 beq _02020C42 blx OS_GetProcMode cmp r0, #0x12 beq _02020C42 bl FUN_0208A9B8 _02020C42: pop {r3, pc} thumb_func_start FUN_02020C44 FUN_02020C44: ; 0x02020C44 push {r3-r7, lr} add r4, r1, #0x0 add r7, r0, #0x0 add r0, r4, #0x0 mov r1, #0xc bl FUN_02016998 add r6, r0, #0x0 bne _02020C5A bl ErrorHandling _02020C5A: add r0, r4, #0x0 lsl r1, r7, #0x3 bl FUN_02016998 str r0, [r6, #0x0] cmp r0, #0x0 bne _02020C6C bl ErrorHandling _02020C6C: mov r4, #0x0 cmp r7, #0x0 ble _02020C84 add r5, r4, #0x0 _02020C74: ldr r0, [r6, #0x0] add r0, r0, r5 bl FUN_02020E78 add r4, r4, #0x1 add r5, #0x8 cmp r4, r7 blt _02020C74 _02020C84: str r7, [r6, #0x4] mov r0, #0x0 str r0, [r6, #0x8] add r0, r6, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02020C90 FUN_02020C90: ; 0x02020C90 push {r4, lr} add r4, r0, #0x0 bne _02020C9A bl ErrorHandling _02020C9A: add r0, r4, #0x0 bl FUN_02020D9C ldr r0, [r4, #0x0] bl FUN_02016A18 add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} .balign 4 thumb_func_start FUN_02020CB0 FUN_02020CB0: ; 0x02020CB0 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _02020CBE bl ErrorHandling _02020CBE: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02020DD8 cmp r0, #0x0 bne _02020CCE mov r0, #0x1 pop {r3-r5, pc} _02020CCE: mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02020CD4 FUN_02020CD4: ; 0x02020CD4 push {r3-r7, lr} add r5, r0, #0x0 add r7, r1, #0x0 add r6, r2, #0x0 cmp r5, #0x0 bne _02020CE4 bl ErrorHandling _02020CE4: add r0, r5, #0x0 bl FUN_02020E48 add r4, r0, #0x0 bne _02020CF2 bl ErrorHandling _02020CF2: add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02020CB0 cmp r0, #0x1 beq _02020D02 bl ErrorHandling _02020D02: str r7, [r4, #0x4] str r6, [r4, #0x0] ldr r0, [r5, #0x8] add r0, r0, #0x1 str r0, [r5, #0x8] add r0, r4, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02020D10 FUN_02020D10: ; 0x02020D10 push {r3-r7, lr} add r5, r0, #0x0 add r6, r1, #0x0 add r7, r2, #0x0 str r3, [sp, #0x0] cmp r5, #0x0 bne _02020D22 bl ErrorHandling _02020D22: cmp r6, #0x0 bne _02020D2A bl ErrorHandling _02020D2A: add r0, r5, #0x0 bl FUN_02020E48 add r4, r0, #0x0 bne _02020D38 bl ErrorHandling _02020D38: add r0, r5, #0x0 add r1, r7, #0x0 bl FUN_02020CB0 cmp r0, #0x1 beq _02020D48 bl ErrorHandling _02020D48: ldr r0, [sp, #0x0] add r1, r6, #0x0 bl FUN_020161A4 str r0, [r4, #0x4] cmp r0, #0x0 bne _02020D5A bl ErrorHandling _02020D5A: str r7, [r4, #0x0] ldr r0, [r5, #0x8] add r0, r0, #0x1 str r0, [r5, #0x8] add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02020D68 FUN_02020D68: ; 0x02020D68 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _02020D76 bl ErrorHandling _02020D76: cmp r4, #0x0 bne _02020D7E bl ErrorHandling _02020D7E: ldr r0, [r4, #0x4] cmp r0, #0x0 beq _02020D8C bl FUN_02016A18 mov r0, #0x0 str r0, [r4, #0x4] _02020D8C: mov r0, #0x0 mvn r0, r0 str r0, [r4, #0x0] ldr r0, [r5, #0x8] sub r0, r0, #0x1 str r0, [r5, #0x8] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02020D9C FUN_02020D9C: ; 0x02020D9C push {r3-r7, lr} add r5, r0, #0x0 bne _02020DA6 bl ErrorHandling _02020DA6: ldr r0, [r5, #0x0] cmp r0, #0x0 bne _02020DB0 bl ErrorHandling _02020DB0: ldr r0, [r5, #0x4] mov r6, #0x0 cmp r0, #0x0 ble _02020DD6 add r4, r6, #0x0 sub r7, r6, #0x1 _02020DBC: ldr r1, [r5, #0x0] ldr r0, [r1, r4] cmp r0, r7 beq _02020DCC add r0, r5, #0x0 add r1, r1, r4 bl FUN_02020D68 _02020DCC: ldr r0, [r5, #0x4] add r6, r6, #0x1 add r4, #0x8 cmp r6, r0 blt _02020DBC _02020DD6: pop {r3-r7, pc} thumb_func_start FUN_02020DD8 FUN_02020DD8: ; 0x02020DD8 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _02020DE6 bl ErrorHandling _02020DE6: ldr r6, [r5, #0x4] mov r1, #0x0 cmp r6, #0x0 ble _02020E06 ldr r3, [r5, #0x0] add r2, r3, #0x0 _02020DF2: ldr r0, [r2, #0x0] cmp r4, r0 bne _02020DFE lsl r0, r1, #0x3 add r0, r3, r0 pop {r4-r6, pc} _02020DFE: add r1, r1, #0x1 add r2, #0x8 cmp r1, r6 blt _02020DF2 _02020E06: mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02020E0C FUN_02020E0C: ; 0x02020E0C push {r4, lr} add r4, r0, #0x0 bne _02020E16 bl ErrorHandling _02020E16: ldr r0, [r4, #0x4] pop {r4, pc} .balign 4 thumb_func_start FUN_02020E1C FUN_02020E1C: ; 0x02020E1C push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _02020E2A bl ErrorHandling _02020E2A: ldr r0, [r5, #0x4] cmp r0, #0x0 beq _02020E34 bl FUN_02016A18 _02020E34: str r4, [r5, #0x4] pop {r3-r5, pc} thumb_func_start FUN_02020E38 FUN_02020E38: ; 0x02020E38 push {r4, lr} add r4, r0, #0x0 bne _02020E42 bl ErrorHandling _02020E42: ldr r0, [r4, #0x0] pop {r4, pc} .balign 4 thumb_func_start FUN_02020E48 FUN_02020E48: ; 0x02020E48 push {r3-r5, lr} add r4, r0, #0x0 bne _02020E52 bl ErrorHandling _02020E52: ldr r5, [r4, #0x4] mov r2, #0x0 cmp r5, #0x0 ble _02020E74 ldr r4, [r4, #0x0] sub r0, r2, #0x1 add r3, r4, #0x0 _02020E60: ldr r1, [r3, #0x0] cmp r1, r0 bne _02020E6C lsl r0, r2, #0x3 add r0, r4, r0 pop {r3-r5, pc} _02020E6C: add r2, r2, #0x1 add r3, #0x8 cmp r2, r5 blt _02020E60 _02020E74: mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02020E78 FUN_02020E78: ; 0x02020E78 push {r4, lr} add r4, r0, #0x0 bne _02020E82 bl ErrorHandling _02020E82: mov r0, #0x0 mvn r0, r0 str r0, [r4, #0x0] mov r0, #0x0 str r0, [r4, #0x4] pop {r4, pc} .balign 4 thumb_func_start FUN_02020E90 FUN_02020E90: ; 0x02020E90 push {r3-r7, lr} add r4, r1, #0x0 add r6, r0, #0x0 add r0, r4, #0x0 mov r1, #0x8 bl FUN_02016998 add r7, r0, #0x0 add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_02020C44 mov r1, #0x18 str r0, [r7, #0x0] add r0, r4, #0x0 mul r1, r6 bl FUN_02016998 mov r4, #0x0 str r0, [r7, #0x4] cmp r6, #0x0 ble _02020ECE add r5, r4, #0x0 _02020EBE: ldr r0, [r7, #0x4] add r0, r0, r5 bl FUN_0202120C add r4, r4, #0x1 add r5, #0x18 cmp r4, r6 blt _02020EBE _02020ECE: add r0, r7, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02020ED4 FUN_02020ED4: ; 0x02020ED4 push {r4, lr} add r4, r0, #0x0 bne _02020EDE bl ErrorHandling _02020EDE: add r0, r4, #0x0 bl FUN_02021010 ldr r0, [r4, #0x0] bl FUN_02020C90 ldr r0, [r4, #0x4] bl FUN_02016A18 add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} thumb_func_start FUN_02020EF8 FUN_02020EF8: ; 0x02020EF8 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _02020F06 bl ErrorHandling _02020F06: ldr r0, [r5, #0x0] add r1, r4, #0x0 bl FUN_02020CB0 pop {r3-r5, pc} thumb_func_start FUN_02020F10 FUN_02020F10: ; 0x02020F10 push {r3-r7, lr} add r5, r0, #0x0 add r6, r1, #0x0 add r7, r3, #0x0 str r2, [sp, #0x0] cmp r5, #0x0 bne _02020F22 bl ErrorHandling _02020F22: add r0, r5, #0x0 bl FUN_020211DC add r4, r0, #0x0 strh r7, [r4, #0x16] ldrh r0, [r4, #0x16] cmp r0, #0x1 bne _02020F40 ldr r1, [sp, #0x18] add r0, r6, #0x0 bl FUN_02021310 add r1, r0, #0x0 str r6, [r4, #0x10] b _02020F46 _02020F40: mov r0, #0x0 add r1, r6, #0x0 str r0, [r4, #0x10] _02020F46: ldr r0, [r5, #0x0] ldr r2, [sp, #0x0] bl FUN_02020CD4 str r0, [r4, #0x0] add r0, r4, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02020F54 FUN_02020F54: ; 0x02020F54 push {r3-r4, lr} sub sp, #0x4 ldr r4, [sp, #0x10] str r4, [sp, #0x0] bl FUN_02020F10 add r4, r0, #0x0 bl FUN_02021174 add r0, r4, #0x0 add sp, #0x4 pop {r3-r4, pc} thumb_func_start FUN_02020F6C FUN_02020F6C: ; 0x02020F6C push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _02020F7A bl ErrorHandling _02020F7A: cmp r4, #0x0 bne _02020F82 bl ErrorHandling _02020F82: ldrh r0, [r4, #0x16] cmp r0, #0x1 bne _02020F98 ldrh r0, [r4, #0x14] cmp r0, #0x0 bne _02020F98 ldr r0, [r4, #0x10] bl FUN_02016A18 mov r0, #0x0 strh r0, [r4, #0x16] _02020F98: ldr r1, [r4, #0x0] cmp r1, #0x0 beq _02020FA4 ldr r0, [r5, #0x0] bl FUN_02020D68 _02020FA4: ldr r0, [r4, #0x4] cmp r0, #0x0 beq _02020FB8 ldr r1, _02020FE8 ; =0x021064BC ldr r1, [r1, #0x0] blx r1 cmp r0, #0x0 beq _02020FB8 bl ErrorHandling _02020FB8: ldr r0, [r4, #0x8] cmp r0, #0x0 beq _02020FCC ldr r1, _02020FE8 ; =0x021064BC ldr r1, [r1, #0x0] blx r1 cmp r0, #0x0 beq _02020FCC bl ErrorHandling _02020FCC: ldr r0, [r4, #0xc] cmp r0, #0x0 beq _02020FE0 ldr r1, _02020FEC ; =0x021064C4 ldr r1, [r1, #0x0] blx r1 cmp r0, #0x0 beq _02020FE0 bl ErrorHandling _02020FE0: add r0, r4, #0x0 bl FUN_0202120C pop {r3-r5, pc} .balign 4 _02020FE8: .word 0x021064BC _02020FEC: .word 0x021064C4 thumb_func_start FUN_02020FF0 FUN_02020FF0: ; 0x02020FF0 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _02020FFE bl ErrorHandling _02020FFE: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02021050 add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_02020F6C pop {r3-r5, pc} thumb_func_start FUN_02021010 FUN_02021010: ; 0x02021010 push {r4-r6, lr} add r5, r0, #0x0 bne _0202101A bl ErrorHandling _0202101A: ldr r0, [r5, #0x4] cmp r0, #0x0 bne _02021024 bl ErrorHandling _02021024: ldr r0, [r5, #0x0] mov r6, #0x0 ldr r0, [r0, #0x4] cmp r0, #0x0 ble _0202104C add r4, r6, #0x0 _02021030: ldr r1, [r5, #0x4] ldr r0, [r1, r4] cmp r0, #0x0 beq _02021040 add r0, r5, #0x0 add r1, r1, r4 bl FUN_02020F6C _02021040: ldr r0, [r5, #0x0] add r6, r6, #0x1 ldr r0, [r0, #0x4] add r4, #0x18 cmp r6, r0 blt _02021030 _0202104C: pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02021050 FUN_02021050: ; 0x02021050 push {r3-r7, lr} add r6, r0, #0x0 add r7, r1, #0x0 cmp r6, #0x0 bne _0202105E bl ErrorHandling _0202105E: ldr r0, [r6, #0x0] mov r4, #0x0 ldr r0, [r0, #0x4] cmp r0, #0x0 ble _02021092 add r5, r4, #0x0 _0202106A: ldr r1, [r6, #0x4] ldr r0, [r1, r5] cmp r0, #0x0 beq _02021086 add r0, r1, r5 bl FUN_02021098 cmp r0, r7 bne _02021086 mov r0, #0x18 ldr r1, [r6, #0x4] mul r0, r4 add r0, r1, r0 pop {r3-r7, pc} _02021086: ldr r0, [r6, #0x0] add r4, r4, #0x1 ldr r0, [r0, #0x4] add r5, #0x18 cmp r4, r0 blt _0202106A _02021092: mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02021098 FUN_02021098: ; 0x02021098 push {r4, lr} add r4, r0, #0x0 bne _020210A2 bl ErrorHandling _020210A2: ldr r0, [r4, #0x0] bl FUN_02020E38 pop {r4, pc} .balign 4 thumb_func_start FUN_020210AC FUN_020210AC: ; 0x020210AC push {r4, lr} add r4, r0, #0x0 bne _020210B6 bl ErrorHandling _020210B6: add r0, r4, #0x0 bl FUN_02021220 pop {r4, pc} .balign 4 thumb_func_start FUN_020210C0 FUN_020210C0: ; 0x020210C0 push {r4, lr} add r4, r0, #0x0 bne _020210CA bl ErrorHandling _020210CA: ldrh r0, [r4, #0x14] cmp r0, #0x0 beq _020210D4 bl ErrorHandling _020210D4: ldr r0, [r4, #0xc] cmp r0, #0x0 bne _020210E0 bl ErrorHandling pop {r4, pc} _020210E0: add r0, r4, #0x0 bl FUN_02021230 add r1, r4, #0x0 bl FUN_020212B8 pop {r4, pc} .balign 4 thumb_func_start FUN_020210F0 FUN_020210F0: ; 0x020210F0 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _020210FE bl ErrorHandling _020210FE: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02021050 bl FUN_020210C0 pop {r3-r5, pc} thumb_func_start FUN_0202110C FUN_0202110C: ; 0x0202110C push {r4, lr} add r4, r0, #0x0 bne _02021116 bl ErrorHandling _02021116: ldrh r0, [r4, #0x16] cmp r0, #0x0 bne _02021122 bl ErrorHandling pop {r4, pc} _02021122: ldrh r0, [r4, #0x14] cmp r0, #0x0 beq _0202112E bl ErrorHandling pop {r4, pc} _0202112E: add r0, r4, #0x0 bl FUN_02021230 bl FUN_020212F8 add r0, r4, #0x0 bl FUN_02021220 ldr r1, [r4, #0x4] ldr r2, [r4, #0x8] ldr r3, [r4, #0xc] bl FUN_020212E4 ldr r0, [r4, #0x10] bl FUN_02016A18 mov r0, #0x0 str r0, [r4, #0x10] mov r0, #0x1 strh r0, [r4, #0x14] pop {r4, pc} thumb_func_start FUN_02021158 FUN_02021158: ; 0x02021158 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _02021166 bl ErrorHandling _02021166: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02021050 bl FUN_0202110C pop {r3-r5, pc} thumb_func_start FUN_02021174 FUN_02021174: ; 0x02021174 push {r4, lr} add r4, r0, #0x0 bne _0202117E bl ErrorHandling _0202117E: ldrh r0, [r4, #0x14] cmp r0, #0x0 beq _02021188 bl ErrorHandling _02021188: ldr r0, [r4, #0xc] cmp r0, #0x0 beq _02021194 bl ErrorHandling pop {r4, pc} _02021194: add r0, r4, #0x0 bl FUN_02021230 add r2, r4, #0x0 add r1, r4, #0x4 add r4, #0xc add r2, #0x8 add r3, r4, #0x0 bl FUN_02021248 pop {r4, pc} .balign 4 thumb_func_start FUN_020211AC FUN_020211AC: ; 0x020211AC push {r4, lr} add r4, r0, #0x0 bne _020211B6 bl ErrorHandling _020211B6: ldr r0, [r4, #0x4] pop {r4, pc} .balign 4 thumb_func_start FUN_020211BC FUN_020211BC: ; 0x020211BC push {r4, lr} add r4, r0, #0x0 bne _020211C6 bl ErrorHandling _020211C6: ldr r0, [r4, #0x8] pop {r4, pc} .balign 4 thumb_func_start FUN_020211CC FUN_020211CC: ; 0x020211CC push {r4, lr} add r4, r0, #0x0 bne _020211D6 bl ErrorHandling _020211D6: ldr r0, [r4, #0xc] pop {r4, pc} .balign 4 thumb_func_start FUN_020211DC FUN_020211DC: ; 0x020211DC push {r3-r4} ldr r1, [r0, #0x0] mov r2, #0x0 ldr r4, [r1, #0x4] cmp r4, #0x0 ble _02021204 ldr r3, [r0, #0x4] _020211EA: ldr r1, [r3, #0x0] cmp r1, #0x0 bne _020211FC ldr r1, [r0, #0x4] mov r0, #0x18 mul r0, r2 add r0, r1, r0 pop {r3-r4} bx lr _020211FC: add r2, r2, #0x1 add r3, #0x18 cmp r2, r4 blt _020211EA _02021204: mov r0, #0x0 pop {r3-r4} bx lr .balign 4 thumb_func_start FUN_0202120C FUN_0202120C: ; 0x0202120C mov r1, #0x0 str r1, [r0, #0x0] str r1, [r0, #0x4] str r1, [r0, #0x8] str r1, [r0, #0xc] strh r1, [r0, #0x14] str r1, [r0, #0x10] strh r1, [r0, #0x14] bx lr .balign 4 thumb_func_start FUN_02021220 FUN_02021220: ; 0x02021220 push {r3, lr} ldr r0, [r0, #0x0] bl FUN_02020E0C blx FUN_020BC0FC pop {r3, pc} .balign 4 thumb_func_start FUN_02021230 FUN_02021230: ; 0x02021230 push {r3, lr} ldrh r1, [r0, #0x16] cmp r1, #0x0 bne _02021240 ldr r0, [r0, #0x0] bl FUN_02020E0C b _02021242 _02021240: ldr r0, [r0, #0x10] _02021242: blx FUN_020BC0FC pop {r3, pc} thumb_func_start FUN_02021248 FUN_02021248: ; 0x02021248 push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 str r1, [sp, #0x0] str r2, [sp, #0x4] str r3, [sp, #0x8] blx FUN_020B7E1C add r7, r0, #0x0 add r0, r5, #0x0 blx FUN_020B7E10 add r6, r0, #0x0 add r0, r5, #0x0 blx FUN_020B7CE4 add r4, r0, #0x0 cmp r7, #0x0 beq _0202127E ldr r3, _020212B0 ; =0x021064B8 mov r1, #0x0 ldr r3, [r3, #0x0] add r0, r7, #0x0 add r2, r1, #0x0 blx r3 ldr r1, [sp, #0x0] str r0, [r1, #0x0] _0202127E: cmp r6, #0x0 beq _02021292 ldr r3, _020212B0 ; =0x021064B8 add r0, r6, #0x0 ldr r3, [r3, #0x0] mov r1, #0x1 mov r2, #0x0 blx r3 ldr r1, [sp, #0x4] str r0, [r1, #0x0] _02021292: cmp r4, #0x0 beq _020212AC ldr r3, _020212B4 ; =0x021064C0 mov r1, #0x2 ldrh r2, [r5, #0x20] lsl r1, r1, #0xe ldr r3, [r3, #0x0] and r1, r2 add r0, r4, #0x0 mov r2, #0x0 blx r3 ldr r1, [sp, #0x8] str r0, [r1, #0x0] _020212AC: add sp, #0xc pop {r4-r7, pc} .balign 4 _020212B0: .word 0x021064B8 _020212B4: .word 0x021064C0 thumb_func_start FUN_020212B8 FUN_020212B8: ; 0x020212B8 push {r4, lr} add r3, r1, #0x0 ldr r1, [r3, #0x4] ldr r2, [r3, #0x8] ldr r3, [r3, #0xc] add r4, r0, #0x0 bl FUN_020212E4 ldr r1, [r4, #0x4] add r0, r4, #0x0 blx DC_FlushRange add r0, r4, #0x0 mov r1, #0x1 blx FUN_020B7D28 add r0, r4, #0x0 mov r1, #0x1 blx FUN_020B7C78 pop {r4, pc} .balign 4 thumb_func_start FUN_020212E4 FUN_020212E4: ; 0x020212E4 push {r3-r5, lr} add r5, r0, #0x0 add r4, r3, #0x0 blx FUN_020B7DFC add r0, r5, #0x0 add r1, r4, #0x0 blx FUN_020B7CDC pop {r3-r5, pc} thumb_func_start FUN_020212F8 FUN_020212F8: ; 0x020212F8 push {r4, lr} sub sp, #0x8 add r4, r0, #0x0 add r1, sp, #0x4 add r2, sp, #0x0 blx FUN_020B7CF0 add r0, r4, #0x0 blx FUN_020B7C58 add sp, #0x8 pop {r4, pc} thumb_func_start FUN_02021310 FUN_02021310: ; 0x02021310 push {r4-r6, lr} add r6, r0, #0x0 add r4, r1, #0x0 bl FUN_02021334 add r5, r0, #0x0 add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_02016998 add r1, r6, #0x0 add r2, r5, #0x0 add r4, r0, #0x0 blx FUN_020DF438 add r0, r4, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02021334 FUN_02021334: ; 0x02021334 push {r3-r5, lr} add r5, r0, #0x0 blx FUN_020BC0FC add r4, r0, #0x0 bne _02021344 bl ErrorHandling _02021344: ldr r0, [r4, #0x14] add r0, r4, r0 sub r0, r0, r5 pop {r3-r5, pc} thumb_func_start FUN_0202134C FUN_0202134C: ; 0x0202134C push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 blx FUN_020B33A0 add r5, #0x80 str r4, [r5, #0x0] pop {r3-r5, pc} thumb_func_start FUN_0202135C FUN_0202135C: ; 0x0202135C push {r3-r7, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 add r7, r3, #0x0 blx FUN_020B3334 add r2, r5, #0x0 ldmia r4!, {r0-r1} stmia r2!, {r0-r1} ldmia r4!, {r0-r1} stmia r2!, {r0-r1} str r6, [r5, #0x28] ldr r0, [sp, #0x18] str r7, [r5, #0x2c] str r0, [r5, #0x34] ldr r0, [sp, #0x1c] str r0, [r5, #0x14] ldr r0, [sp, #0x20] cmp r0, #0x0 beq _0202138C add r1, r5, #0x0 blx FUN_020B3390 _0202138C: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02021390 FUN_02021390: ; 0x02021390 add r3, r0, #0x0 add r2, r1, #0x0 ldmia r2!, {r0-r1} stmia r3!, {r0-r1} ldmia r2!, {r0-r1} stmia r3!, {r0-r1} bx lr .balign 4 thumb_func_start FUN_020213A0 FUN_020213A0: ; 0x020213A0 push {r3-r7, lr} sub sp, #0x60 add r5, r1, #0x0 add r6, r2, #0x0 ldr r4, [r5, #0x10] ldr r3, [r6, #0x0] add r2, r0, #0x0 sub r3, r4, r3 ldrh r1, [r0, #0x2] mov r0, #0x3f str r3, [sp, #0x18] and r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 lsl r0, r0, #0x1a ldr r4, [r5, #0x14] ldr r3, [r6, #0x4] add r2, #0x8 sub r3, r4, r3 str r3, [sp, #0x14] asr r3, r1, #0xb mov r1, #0x1 and r1, r3 lsr r0, r0, #0x18 cmp r1, #0x1 bne _020213F4 mov r0, #0x6 ldrsh r0, [r2, r0] lsl r4, r0, #0xc mov r0, #0x2 ldrsh r0, [r2, r0] lsl r0, r0, #0xc str r0, [sp, #0x10] mov r0, #0x4 ldrsh r0, [r2, r0] lsl r0, r0, #0xc str r0, [sp, #0xc] mov r0, #0x0 ldrsh r0, [r2, r0] lsl r0, r0, #0xc str r0, [sp, #0x8] b _02021400 _020213F4: neg r1, r0 lsl r0, r0, #0xc lsl r4, r1, #0xc str r0, [sp, #0x10] str r4, [sp, #0xc] str r0, [sp, #0x8] _02021400: ldr r0, [r5, #0xc] str r0, [sp, #0x1c] asr r0, r0, #0x1f str r0, [sp, #0x20] asr r0, r4, #0x1f str r0, [sp, #0x24] ldr r0, [r5, #0x4] ldr r1, [sp, #0x24] str r0, [sp, #0x28] asr r0, r0, #0x1f str r0, [sp, #0x2c] ldr r2, [sp, #0x28] ldr r3, [sp, #0x2c] add r0, r4, #0x0 blx FUN_020EBC30 add r7, r1, #0x0 str r0, [sp, #0x30] ldr r1, [sp, #0x24] ldr r2, [sp, #0x1c] ldr r3, [sp, #0x20] add r0, r4, #0x0 blx FUN_020EBC30 add r2, r0, #0x0 add r3, r1, #0x0 mov r0, #0x2 ldr r1, [sp, #0x30] mov r4, #0x0 lsl r0, r0, #0xa add r0, r1, r0 adc r7, r4 lsl r1, r7, #0x14 lsr r0, r0, #0xc orr r0, r1 mov r1, #0x2 lsl r1, r1, #0xa add r2, r2, r1 adc r3, r4 lsl r1, r3, #0x14 lsr r2, r2, #0xc orr r2, r1 add r1, r0, r2 ldr r0, [sp, #0x14] ldr r2, [sp, #0x28] add r0, r0, r1 str r0, [sp, #0x5c] ldr r0, [sp, #0x10] ldr r3, [sp, #0x2c] asr r0, r0, #0x1f str r0, [sp, #0x34] ldr r0, [sp, #0x10] ldr r1, [sp, #0x34] blx FUN_020EBC30 str r0, [sp, #0x38] add r4, r1, #0x0 ldr r0, [sp, #0x10] ldr r1, [sp, #0x34] ldr r2, [sp, #0x1c] ldr r3, [sp, #0x20] blx FUN_020EBC30 mov r2, #0x2 ldr r3, [sp, #0x38] lsl r2, r2, #0xa add r2, r3, r2 ldr r3, _0202158C ; =0x00000000 adc r4, r3 lsl r3, r4, #0x14 lsr r2, r2, #0xc orr r2, r3 mov r3, #0x2 lsl r3, r3, #0xa add r3, r0, r3 ldr r0, _0202158C ; =0x00000000 adc r1, r0 lsl r0, r1, #0x14 lsr r1, r3, #0xc orr r1, r0 ldr r0, [sp, #0x14] add r1, r2, r1 add r4, r0, r1 ldr r0, [r5, #0x8] str r0, [sp, #0x3c] asr r0, r0, #0x1f str r0, [sp, #0x40] ldr r0, [sp, #0xc] asr r0, r0, #0x1f str r0, [sp, #0x44] ldr r0, [r5, #0x0] ldr r1, [sp, #0x44] str r0, [sp, #0x48] asr r0, r0, #0x1f str r0, [sp, #0x4c] ldr r0, [sp, #0xc] ldr r2, [sp, #0x48] ldr r3, [sp, #0x4c] blx FUN_020EBC30 str r0, [sp, #0x50] add r5, r1, #0x0 ldr r0, [sp, #0xc] ldr r1, [sp, #0x44] ldr r2, [sp, #0x3c] ldr r3, [sp, #0x40] blx FUN_020EBC30 mov r2, #0x2 ldr r3, [sp, #0x50] lsl r2, r2, #0xa add r2, r3, r2 ldr r3, _0202158C ; =0x00000000 adc r5, r3 lsl r3, r5, #0x14 lsr r2, r2, #0xc orr r2, r3 mov r3, #0x2 lsl r3, r3, #0xa add r3, r0, r3 ldr r0, _0202158C ; =0x00000000 adc r1, r0 lsl r0, r1, #0x14 lsr r1, r3, #0xc orr r1, r0 ldr r0, [sp, #0x18] add r1, r2, r1 add r5, r0, r1 ldr r0, [sp, #0x8] asr r0, r0, #0x1f str r0, [sp, #0x54] ldr r0, [sp, #0x8] ldr r1, [sp, #0x54] ldr r2, [sp, #0x48] ldr r3, [sp, #0x4c] blx FUN_020EBC30 str r0, [sp, #0x58] str r1, [sp, #0x4] ldr r0, [sp, #0x8] ldr r1, [sp, #0x54] ldr r2, [sp, #0x3c] ldr r3, [sp, #0x40] blx FUN_020EBC30 mov r12, r0 add r2, r1, #0x0 mov r0, #0x2 ldr r1, [sp, #0x58] lsl r0, r0, #0xa add r3, r1, r0 ldr r1, [sp, #0x4] ldr r0, _0202158C ; =0x00000000 adc r1, r0 str r1, [sp, #0x4] lsl r0, r1, #0x14 lsr r1, r3, #0xc orr r1, r0 mov r0, #0x2 lsl r0, r0, #0xa mov r3, r12 add r0, r3, r0 ldr r3, _0202158C ; =0x00000000 adc r2, r3 lsl r2, r2, #0x14 lsr r0, r0, #0xc orr r0, r2 add r1, r1, r0 ldr r0, [sp, #0x18] add r0, r0, r1 ldr r1, [sp, #0x5c] cmp r4, r1 bge _02021560 add r1, r4, #0x0 ldr r4, [sp, #0x5c] str r1, [sp, #0x5c] _02021560: cmp r0, r5 bge _0202156A add r1, r0, #0x0 add r0, r5, #0x0 add r5, r1, #0x0 _0202156A: cmp r4, #0x0 ble _02021586 ldr r2, [r6, #0xc] ldr r1, [sp, #0x5c] cmp r1, r2 bge _02021586 cmp r0, #0x0 ble _02021586 ldr r0, [r6, #0x8] cmp r5, r0 bge _02021586 add sp, #0x60 mov r0, #0x1 pop {r3-r7, pc} _02021586: mov r0, #0x0 add sp, #0x60 pop {r3-r7, pc} .balign 4 _0202158C: .word 0x00000000 thumb_func_start FUN_02021590 FUN_02021590: ; 0x02021590 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 add r6, r1, #0x0 ldr r0, [sp, #0x20] mov r1, #0x78 add r7, r2, #0x0 str r3, [sp, #0x4] bl FUN_02016998 add r4, r0, #0x0 beq _020215C0 ldr r1, [sp, #0x20] ldr r3, [sp, #0x4] str r1, [sp, #0x0] add r1, r5, #0x0 add r2, r6, #0x0 bl FUN_02021600 ldr r2, [sp, #0x20] add r0, r4, #0x0 add r1, r7, #0x0 bl FUN_020216D4 _020215C0: add r0, r4, #0x0 add sp, #0x8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020215C8 FUN_020215C8: ; 0x020215C8 push {r4, lr} add r4, r0, #0x0 bl FUN_02021728 add r0, r4, #0x0 bl FUN_020216B8 add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} .balign 4 thumb_func_start FUN_020215E0 FUN_020215E0: ; 0x020215E0 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x0] add r6, r2, #0x0 cmp r1, r4 beq _020215FC bl FUN_02021728 add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_020216D4 _020215FC: pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02021600 FUN_02021600: ; 0x02021600 push {r3-r6, lr} sub sp, #0x4 add r5, r0, #0x0 add r0, r1, #0x0 ldr r1, [sp, #0x18] add r4, r2, #0x0 add r6, r3, #0x0 bl FUN_02006670 str r0, [r5, #0x54] cmp r0, #0x0 beq _020216A6 add r1, r5, #0x0 add r1, #0x5c str r1, [sp, #0x0] add r1, r4, #0x0 mov r2, #0x0 mov r3, #0x10 bl FUN_02006814 str r6, [r5, #0x6c] cmp r6, #0x0 beq _02021638 mov r0, #0x0 str r0, [r5, #0x74] ldr r0, _020216AC ; =FUN_0202192C str r0, [r5, #0x70] b _02021660 _02021638: ldr r0, [r5, #0x60] cmp r0, #0x0 bne _02021642 bl ErrorHandling _02021642: ldr r0, [sp, #0x18] ldr r1, [r5, #0x64] bl FUN_02016998 str r0, [r5, #0x74] ldr r0, _020216B0 ; =FUN_02021924 add r1, r4, #0x0 str r0, [r5, #0x70] ldr r0, [r5, #0x74] str r0, [sp, #0x0] ldr r0, [r5, #0x54] ldr r2, [r5, #0x60] ldr r3, [r5, #0x64] bl FUN_02006814 _02021660: add r0, r5, #0x0 add r0, #0x6a ldrb r0, [r0, #0x0] cmp r0, #0x2 bhi _02021674 add r0, r5, #0x0 add r0, #0x6b ldrb r0, [r0, #0x0] cmp r0, #0x2 bls _02021678 _02021674: bl ErrorHandling _02021678: add r0, r5, #0x0 add r0, #0x6a ldrb r0, [r0, #0x0] ldr r2, _020216B4 ; =0x020EE668 sub r0, r0, #0x1 lsl r3, r0, #0x1 add r0, r5, #0x0 add r0, #0x6b ldrb r0, [r0, #0x0] sub r1, r0, #0x1 add r0, r2, r3 ldrb r0, [r1, r0] str r0, [r5, #0x8] add r0, r5, #0x0 add r0, #0x6b ldrb r1, [r0, #0x0] add r0, r5, #0x0 add r0, #0x6a ldrb r0, [r0, #0x0] lsl r0, r0, #0x4 mul r0, r1 str r0, [r5, #0xc] str r4, [r5, #0x58] _020216A6: add sp, #0x4 pop {r3-r6, pc} nop _020216AC: .word FUN_0202192C _020216B0: .word FUN_02021924 _020216B4: .word 0x020EE668 thumb_func_start FUN_020216B8 FUN_020216B8: ; 0x020216B8 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x74] cmp r0, #0x0 beq _020216C6 bl FUN_02016A18 _020216C6: ldr r0, [r4, #0x54] cmp r0, #0x0 beq _020216D0 bl FUN_020066F4 _020216D0: pop {r4, pc} .balign 4 thumb_func_start FUN_020216D4 FUN_020216D4: ; 0x020216D4 push {r3, lr} add r3, r1, #0x0 add r1, r2, #0x0 str r3, [r0, #0x0] ldr r2, _020216E8 ; =0x020EE66C lsl r3, r3, #0x2 ldr r2, [r2, r3] blx r2 pop {r3, pc} nop _020216E8: .word 0x020EE66C thumb_func_start FUN_020216EC FUN_020216EC: ; 0x020216EC push {r3-r5, lr} add r5, r0, #0x0 ldr r2, [r5, #0xc] ldr r0, [r5, #0x64] add r4, r2, #0x0 mul r4, r0 add r0, r1, #0x0 add r1, r4, #0x0 bl FUN_02016998 str r0, [r5, #0x10] ldr r0, _02021718 ; =FUN_02021774 add r3, r4, #0x0 str r0, [r5, #0x4] ldr r0, [r5, #0x10] str r0, [sp, #0x0] ldr r0, [r5, #0x54] ldr r1, [r5, #0x58] ldr r2, [r5, #0x5c] bl FUN_02006814 pop {r3-r5, pc} .balign 4 _02021718: .word FUN_02021774 thumb_func_start FUN_0202171C FUN_0202171C: ; 0x0202171C ldr r1, _02021724 ; =FUN_0202181C str r1, [r0, #0x4] bx lr nop _02021724: .word FUN_0202181C thumb_func_start FUN_02021728 FUN_02021728: ; 0x02021728 push {r3, lr} ldr r1, [r0, #0x0] lsl r2, r1, #0x2 ldr r1, _02021738 ; =0x020EE674 ldr r1, [r1, r2] blx r1 pop {r3, pc} nop _02021738: .word 0x020EE674 thumb_func_start FUN_0202173C FUN_0202173C: ; 0x0202173C push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x10] bl FUN_02016A18 mov r0, #0x0 str r0, [r4, #0x10] pop {r4, pc} thumb_func_start FUN_0202174C FUN_0202174C: ; 0x0202174C bx lr .balign 4 thumb_func_start FUN_02021750 FUN_02021750: ; 0x02021750 push {r3, lr} ldr r3, [r0, #0x64] cmp r1, r3 bhi _02021764 sub r1, r1, #0x1 lsl r1, r1, #0x10 ldr r3, [r0, #0x4] lsr r1, r1, #0x10 blx r3 pop {r3, pc} _02021764: add r0, r2, #0x0 mov r1, #0x0 add r0, #0x80 strb r1, [r0, #0x0] add r2, #0x81 strb r1, [r2, #0x0] pop {r3, pc} .balign 4 thumb_func_start FUN_02021774 FUN_02021774: ; 0x02021774 push {r3-r7, lr} str r1, [sp, #0x0] add r7, r0, #0x0 ldr r0, [sp, #0x0] ldr r1, [r7, #0xc] add r5, r0, #0x0 ldr r0, [r7, #0x8] add r6, r2, #0x0 mul r5, r1 ldr r4, [r7, #0x10] cmp r0, #0x3 bhi _02021802 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02021798: ; jump table (using 16-bit offset) .short _020217A0 - _02021798 - 2; case 0 .short _020217AA - _02021798 - 2; case 1 .short _020217C0 - _02021798 - 2; case 2 .short _020217D6 - _02021798 - 2; case 3 _020217A0: add r0, r4, r5 add r1, r6, #0x0 bl FUN_0201C100 b _02021802 _020217AA: add r0, r4, r5 add r1, r6, #0x0 bl FUN_0201C100 add r0, r4, r5 add r1, r6, #0x0 add r0, #0x10 add r1, #0x40 bl FUN_0201C100 b _02021802 _020217C0: add r0, r4, r5 add r1, r6, #0x0 bl FUN_0201C100 add r0, r4, r5 add r1, r6, #0x0 add r0, #0x10 add r1, #0x20 bl FUN_0201C100 b _02021802 _020217D6: add r0, r4, r5 add r1, r6, #0x0 bl FUN_0201C100 add r0, r4, r5 add r1, r6, #0x0 add r0, #0x10 add r1, #0x20 bl FUN_0201C100 add r0, r4, r5 add r1, r6, #0x0 add r0, #0x20 add r1, #0x40 bl FUN_0201C100 add r0, r4, r5 add r1, r6, #0x0 add r0, #0x30 add r1, #0x60 bl FUN_0201C100 _02021802: ldr r1, [sp, #0x0] ldr r2, [r7, #0x70] add r0, r7, #0x0 blx r2 add r1, r6, #0x0 add r1, #0x80 add r7, #0x69 strb r0, [r1, #0x0] ldrb r0, [r7, #0x0] add r6, #0x81 strb r0, [r6, #0x0] pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0202181C FUN_0202181C: ; 0x0202181C push {r3-r7, lr} add r4, r0, #0x0 ldr r6, [r4, #0xc] add r0, #0x14 str r0, [sp, #0x0] add r7, r1, #0x0 add r5, r2, #0x0 add r2, r7, #0x0 ldr r3, [r4, #0x5c] mul r2, r6 add r2, r3, r2 ldr r0, [r4, #0x54] ldr r1, [r4, #0x58] add r3, r6, #0x0 bl FUN_02006814 ldr r0, [r4, #0x8] cmp r0, #0x3 bhi _020218C0 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0202184E: ; jump table (using 16-bit offset) .short _02021856 - _0202184E - 2; case 0 .short _02021862 - _0202184E - 2; case 1 .short _0202187A - _0202184E - 2; case 2 .short _02021892 - _0202184E - 2; case 3 _02021856: add r0, r4, #0x0 add r0, #0x14 add r1, r5, #0x0 bl FUN_0201C100 b _020218C0 _02021862: add r0, r4, #0x0 add r0, #0x14 add r1, r5, #0x0 bl FUN_0201C100 add r0, r4, #0x0 add r1, r5, #0x0 add r0, #0x24 add r1, #0x40 bl FUN_0201C100 b _020218C0 _0202187A: add r0, r4, #0x0 add r0, #0x14 add r1, r5, #0x0 bl FUN_0201C100 add r0, r4, #0x0 add r1, r5, #0x0 add r0, #0x24 add r1, #0x20 bl FUN_0201C100 b _020218C0 _02021892: add r0, r4, #0x0 add r0, #0x14 add r1, r5, #0x0 bl FUN_0201C100 add r0, r4, #0x0 add r1, r5, #0x0 add r0, #0x24 add r1, #0x20 bl FUN_0201C100 add r0, r4, #0x0 add r1, r5, #0x0 add r0, #0x34 add r1, #0x40 bl FUN_0201C100 add r0, r4, #0x0 add r1, r5, #0x0 add r0, #0x44 add r1, #0x60 bl FUN_0201C100 _020218C0: ldr r2, [r4, #0x70] add r0, r4, #0x0 add r1, r7, #0x0 blx r2 add r1, r5, #0x0 add r1, #0x80 add r4, #0x69 strb r0, [r1, #0x0] ldrb r0, [r4, #0x0] add r5, #0x81 strb r0, [r5, #0x0] pop {r3-r7, pc} thumb_func_start FUN_020218D8 FUN_020218D8: ; 0x020218D8 push {r3-r7, lr} add r4, r1, #0x0 ldrh r1, [r4, #0x0] add r5, r0, #0x0 ldr r0, _0202191C ; =0x0000FFFF add r7, r2, #0x0 mov r6, #0x0 cmp r1, r0 beq _02021916 _020218EA: ldr r0, _02021920 ; =0x0000FFFE cmp r1, r0 bne _02021900 add r0, r4, #0x0 bl FUN_0201B8B8 add r4, r0, #0x0 ldrh r1, [r4, #0x0] ldr r0, _0202191C ; =0x0000FFFF cmp r1, r0 beq _02021916 _02021900: ldr r2, [r5, #0x70] add r0, r5, #0x0 sub r1, r1, #0x1 blx r2 add r4, r4, #0x2 add r0, r7, r0 add r6, r6, r0 ldrh r1, [r4, #0x0] ldr r0, _0202191C ; =0x0000FFFF cmp r1, r0 bne _020218EA _02021916: sub r0, r6, r7 pop {r3-r7, pc} nop _0202191C: .word 0x0000FFFF _02021920: .word 0x0000FFFE thumb_func_start FUN_02021924 FUN_02021924: ; 0x02021924 ldr r0, [r0, #0x74] ldrb r0, [r0, r1] bx lr .balign 4 thumb_func_start FUN_0202192C FUN_0202192C: ; 0x0202192C add r0, #0x68 ldrb r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02021934 FUN_02021934: ; 0x02021934 push {r3-r7, lr} add r5, r1, #0x0 ldrh r1, [r5, #0x0] add r7, r0, #0x0 mov r4, #0x0 ldr r0, _02021994 ; =0x0000FFFF add r6, r2, #0x0 str r4, [sp, #0x0] cmp r1, r0 beq _02021986 _02021948: ldr r0, _02021998 ; =0x0000FFFE cmp r1, r0 bne _02021958 add r0, r5, #0x0 bl FUN_0201B8B8 add r5, r0, #0x0 b _0202197E _02021958: mov r0, #0xe lsl r0, r0, #0xc cmp r1, r0 bne _02021970 ldr r0, [sp, #0x0] sub r1, r4, r6 cmp r0, r1 bhs _0202196A str r1, [sp, #0x0] _0202196A: mov r4, #0x0 add r5, r5, #0x2 b _0202197E _02021970: ldr r2, [r7, #0x70] add r0, r7, #0x0 sub r1, r1, #0x1 blx r2 add r0, r6, r0 add r4, r4, r0 add r5, r5, #0x2 _0202197E: ldrh r1, [r5, #0x0] ldr r0, _02021994 ; =0x0000FFFF cmp r1, r0 bne _02021948 _02021986: ldr r0, [sp, #0x0] sub r1, r4, r6 cmp r0, r1 bhs _02021990 str r1, [sp, #0x0] _02021990: ldr r0, [sp, #0x0] pop {r3-r7, pc} .balign 4 _02021994: .word 0x0000FFFF _02021998: .word 0x0000FFFE thumb_func_start FUN_0202199C FUN_0202199C: ; 0x0202199C push {r3-r7, lr} add r5, r1, #0x0 ldrh r1, [r5, #0x0] add r6, r0, #0x0 ldr r0, _020219EC ; =0x0000FFFF mov r4, #0x0 cmp r1, r0 beq _020219E8 sub r7, r0, #0x1 _020219AE: cmp r1, r7 bne _020219D4 add r0, r5, #0x0 bl FUN_0201B8E0 ldr r1, _020219F0 ; =0x00000203 cmp r0, r1 bne _020219CA add r0, r5, #0x0 mov r1, #0x0 bl FUN_0201B914 add r4, r0, #0x0 sub r4, #0xc _020219CA: add r0, r5, #0x0 bl FUN_0201B8B8 add r5, r0, #0x0 b _020219E0 _020219D4: ldr r2, [r6, #0x70] add r0, r6, #0x0 sub r1, r1, #0x1 blx r2 add r4, r4, r0 add r5, r5, #0x2 _020219E0: ldrh r1, [r5, #0x0] ldr r0, _020219EC ; =0x0000FFFF cmp r1, r0 bne _020219AE _020219E8: add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 _020219EC: .word 0x0000FFFF _020219F0: .word 0x00000203 thumb_func_start FUN_020219F4 FUN_020219F4: ; 0x020219F4 push {r4, lr} add r4, r0, #0x0 add r0, r1, #0x0 lsl r1, r4, #0x1 add r1, #0xa bl FUN_02016998 cmp r0, #0x0 beq _02021A14 ldr r1, _02021A18 ; =0xB6F8D2EC str r1, [r0, #0x4] strh r4, [r0, #0x0] mov r1, #0x0 strh r1, [r0, #0x2] ldr r1, _02021A1C ; =0x0000FFFF strh r1, [r0, #0x8] _02021A14: pop {r4, pc} nop _02021A18: .word 0xB6F8D2EC _02021A1C: .word 0x0000FFFF thumb_func_start FUN_02021A20 FUN_02021A20: ; 0x02021A20 push {r4, lr} add r4, r0, #0x0 bne _02021A2A bl ErrorHandling _02021A2A: ldr r1, [r4, #0x4] ldr r0, _02021A44 ; =0xB6F8D2EC cmp r1, r0 beq _02021A36 bl ErrorHandling _02021A36: ldr r0, _02021A48 ; =0xB6F8D2ED str r0, [r4, #0x4] add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} nop _02021A44: .word 0xB6F8D2EC _02021A48: .word 0xB6F8D2ED thumb_func_start FUN_02021A4C FUN_02021A4C: ; 0x02021A4C push {r4, lr} add r4, r0, #0x0 bne _02021A56 bl ErrorHandling _02021A56: ldr r1, [r4, #0x4] ldr r0, _02021A6C ; =0xB6F8D2EC cmp r1, r0 beq _02021A62 bl ErrorHandling _02021A62: mov r0, #0x0 strh r0, [r4, #0x2] ldr r0, _02021A70 ; =0x0000FFFF strh r0, [r4, #0x8] pop {r4, pc} .balign 4 _02021A6C: .word 0xB6F8D2EC _02021A70: .word 0x0000FFFF thumb_func_start FUN_02021A74 FUN_02021A74: ; 0x02021A74 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _02021A82 bl ErrorHandling _02021A82: ldr r1, [r5, #0x4] ldr r0, _02021AC8 ; =0xB6F8D2EC cmp r1, r0 beq _02021A8E bl ErrorHandling _02021A8E: cmp r4, #0x0 bne _02021A96 bl ErrorHandling _02021A96: ldr r1, [r4, #0x4] ldr r0, _02021AC8 ; =0xB6F8D2EC cmp r1, r0 beq _02021AA2 bl ErrorHandling _02021AA2: ldrh r2, [r4, #0x2] ldrh r0, [r5, #0x0] cmp r0, r2 bls _02021AC0 add r0, r5, #0x0 add r1, r4, #0x0 add r2, r2, #0x1 add r0, #0x8 add r1, #0x8 lsl r2, r2, #0x1 blx FUN_020DF438 ldrh r0, [r4, #0x2] strh r0, [r5, #0x2] pop {r3-r5, pc} _02021AC0: bl ErrorHandling pop {r3-r5, pc} nop _02021AC8: .word 0xB6F8D2EC thumb_func_start FUN_02021ACC FUN_02021ACC: ; 0x02021ACC push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _02021ADA bl ErrorHandling _02021ADA: ldr r1, [r5, #0x4] ldr r0, _02021B00 ; =0xB6F8D2EC cmp r1, r0 beq _02021AE6 bl ErrorHandling _02021AE6: ldrh r0, [r5, #0x2] add r1, r4, #0x0 add r0, r0, #0x1 bl FUN_020219F4 add r4, r0, #0x0 beq _02021AFA add r1, r5, #0x0 bl FUN_02021A74 _02021AFA: add r0, r4, #0x0 pop {r3-r5, pc} nop _02021B00: .word 0xB6F8D2EC thumb_func_start FUN_02021B04 FUN_02021B04: ; 0x02021B04 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 ldr r0, [sp, #0x20] add r6, r1, #0x0 add r7, r3, #0x0 str r2, [sp, #0x0] str r0, [sp, #0x20] cmp r5, #0x0 bne _02021B1C bl ErrorHandling _02021B1C: ldr r1, [r5, #0x4] ldr r0, _02021C1C ; =0xB6F8D2EC cmp r1, r0 beq _02021B28 bl ErrorHandling _02021B28: cmp r6, #0x0 bge _02021B30 mov r4, #0x1 b _02021B32 _02021B30: mov r4, #0x0 _02021B32: ldr r0, [sp, #0x0] ldrh r1, [r5, #0x0] add r0, r0, r4 cmp r1, r0 bls _02021C14 ldr r0, [sp, #0x20] cmp r0, #0x0 bne _02021B48 ldr r0, _02021C20 ; =0x020EE67C str r0, [sp, #0x4] b _02021B4C _02021B48: ldr r0, _02021C24 ; =0x020EE690 str r0, [sp, #0x4] _02021B4C: add r0, r5, #0x0 bl FUN_02021A4C cmp r4, #0x0 beq _02021B74 mov r0, #0x0 mvn r0, r0 mul r6, r0 ldr r0, [sp, #0x20] cmp r0, #0x0 bne _02021B66 mov r0, #0xf1 b _02021B68 _02021B66: ldr r0, _02021C28 ; =0x000001BE _02021B68: ldrh r2, [r5, #0x2] add r1, r2, #0x1 strh r1, [r5, #0x2] lsl r1, r2, #0x1 add r1, r5, r1 strh r0, [r1, #0x8] _02021B74: ldr r0, [sp, #0x0] lsl r1, r0, #0x2 ldr r0, _02021C2C ; =0x020EE6A0 ldr r4, [r0, r1] cmp r4, #0x0 beq _02021C06 _02021B80: add r0, r6, #0x0 add r1, r4, #0x0 blx _u32_div_f lsl r0, r0, #0x10 lsr r1, r0, #0x10 add r0, r4, #0x0 mul r0, r1 sub r6, r6, r0 cmp r7, #0x2 bne _02021BB4 cmp r1, #0xa bhs _02021BA2 ldr r0, [sp, #0x4] lsl r1, r1, #0x1 ldrh r1, [r0, r1] b _02021BA4 _02021BA2: mov r1, #0xe2 _02021BA4: ldrh r0, [r5, #0x2] add r2, r0, #0x0 add r2, r2, #0x1 lsl r0, r0, #0x1 strh r2, [r5, #0x2] add r0, r5, r0 strh r1, [r0, #0x8] b _02021BFA _02021BB4: cmp r1, #0x0 bne _02021BBC cmp r4, #0x1 bne _02021BDC _02021BBC: mov r7, #0x2 cmp r1, #0xa bhs _02021BCA ldr r0, [sp, #0x4] lsl r1, r1, #0x1 ldrh r1, [r0, r1] b _02021BCC _02021BCA: mov r1, #0xe2 _02021BCC: ldrh r0, [r5, #0x2] add r2, r0, #0x0 add r2, r2, #0x1 lsl r0, r0, #0x1 strh r2, [r5, #0x2] add r0, r5, r0 strh r1, [r0, #0x8] b _02021BFA _02021BDC: cmp r7, #0x1 bne _02021BFA ldr r0, [sp, #0x20] cmp r0, #0x0 bne _02021BEA mov r1, #0x1 b _02021BEC _02021BEA: ldr r1, _02021C30 ; =0x000001E2 _02021BEC: ldrh r0, [r5, #0x2] add r2, r0, #0x0 add r2, r2, #0x1 lsl r0, r0, #0x1 strh r2, [r5, #0x2] add r0, r5, r0 strh r1, [r0, #0x8] _02021BFA: add r0, r4, #0x0 mov r1, #0xa blx _u32_div_f add r4, r0, #0x0 bne _02021B80 _02021C06: ldrh r0, [r5, #0x2] ldr r1, _02021C34 ; =0x0000FFFF add sp, #0x8 lsl r0, r0, #0x1 add r0, r5, r0 strh r1, [r0, #0x8] pop {r3-r7, pc} _02021C14: bl ErrorHandling add sp, #0x8 pop {r3-r7, pc} .balign 4 _02021C1C: .word 0xB6F8D2EC _02021C20: .word 0x020EE67C _02021C24: .word 0x020EE690 _02021C28: .word 0x000001BE _02021C2C: .word 0x020EE6A0 _02021C30: .word 0x000001E2 _02021C34: .word 0x0000FFFF thumb_func_start FUN_02021C38 FUN_02021C38: ; 0x02021C38 push {r3-r7, lr} sub sp, #0x10 str r1, [sp, #0x0] mov r1, #0x0 str r1, [sp, #0x8] str r1, [sp, #0xc] add r5, r1, #0x0 ldrh r1, [r0, #0x2] mov r7, #0x1 cmp r1, #0x12 bls _02021C56 ldr r0, [sp, #0x8] add sp, #0x10 add r1, r0, #0x0 pop {r3-r7, pc} _02021C56: sub r1, r1, #0x1 str r1, [sp, #0x4] bmi _02021CCC lsl r1, r1, #0x1 add r4, r0, r1 _02021C60: ldrh r6, [r4, #0x8] mov r3, #0xa mov r0, #0x0 add r1, r6, #0x0 sub r1, #0xa2 asr r2, r1, #0x1f sub r3, r1, r3 mov r12, r2 mov r3, r12 sbc r3, r0 blo _02021C98 ldr r0, _02021CDC ; =0x00000121 mov r3, #0xa sub r1, r6, r0 asr r2, r1, #0x1f mov r0, #0x0 sub r3, r1, r3 mov r12, r2 mov r3, r12 sbc r3, r0 blo _02021C98 ldr r0, [sp, #0x0] mov r1, #0x0 str r1, [r0, #0x0] ldr r0, [sp, #0x8] ldr r1, [sp, #0xc] add sp, #0x10 pop {r3-r7, pc} _02021C98: add r0, r1, #0x0 add r1, r2, #0x0 add r2, r7, #0x0 add r3, r5, #0x0 blx FUN_020EBC30 add r2, r1, #0x0 ldr r1, [sp, #0x8] add r0, r1, r0 str r0, [sp, #0x8] ldr r0, [sp, #0xc] adc r0, r2 str r0, [sp, #0xc] add r0, r7, #0x0 add r1, r5, #0x0 mov r2, #0xa mov r3, #0x0 blx FUN_020EBC30 add r7, r0, #0x0 ldr r0, [sp, #0x4] add r5, r1, #0x0 sub r4, r4, #0x2 sub r0, r0, #0x1 str r0, [sp, #0x4] bpl _02021C60 _02021CCC: ldr r0, [sp, #0x0] mov r1, #0x1 str r1, [r0, #0x0] ldr r0, [sp, #0x8] ldr r1, [sp, #0xc] add sp, #0x10 pop {r3-r7, pc} nop _02021CDC: .word 0x00000121 thumb_func_start FUN_02021CE0 FUN_02021CE0: ; 0x02021CE0 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _02021CEE bl ErrorHandling _02021CEE: ldr r1, [r5, #0x4] ldr r0, _02021D34 ; =0xB6F8D2EC cmp r1, r0 beq _02021CFA bl ErrorHandling _02021CFA: cmp r4, #0x0 bne _02021D02 bl ErrorHandling _02021D02: ldr r1, [r4, #0x4] ldr r0, _02021D34 ; =0xB6F8D2EC cmp r1, r0 beq _02021D0E bl ErrorHandling _02021D0E: ldrh r1, [r5, #0x8] ldrh r0, [r4, #0x8] cmp r1, r0 bne _02021D2E ldr r0, _02021D38 ; =0x0000FFFF _02021D18: ldrh r1, [r5, #0x8] cmp r1, r0 bne _02021D22 mov r0, #0x0 pop {r3-r5, pc} _02021D22: add r5, r5, #0x2 add r4, r4, #0x2 ldrh r2, [r5, #0x8] ldrh r1, [r4, #0x8] cmp r2, r1 beq _02021D18 _02021D2E: mov r0, #0x1 pop {r3-r5, pc} nop _02021D34: .word 0xB6F8D2EC _02021D38: .word 0x0000FFFF thumb_func_start FUN_02021D3C FUN_02021D3C: ; 0x02021D3C push {r4, lr} add r4, r0, #0x0 bne _02021D46 bl ErrorHandling _02021D46: ldr r1, [r4, #0x4] ldr r0, _02021D58 ; =0xB6F8D2EC cmp r1, r0 beq _02021D52 bl ErrorHandling _02021D52: ldrh r0, [r4, #0x2] pop {r4, pc} nop _02021D58: .word 0xB6F8D2EC thumb_func_start FUN_02021D5C FUN_02021D5C: ; 0x02021D5C push {r3-r5, lr} add r4, r0, #0x0 bne _02021D66 bl ErrorHandling _02021D66: ldr r1, [r4, #0x4] ldr r0, _02021D98 ; =0xB6F8D2EC cmp r1, r0 beq _02021D72 bl ErrorHandling _02021D72: ldrh r1, [r4, #0x2] mov r3, #0x0 mov r0, #0x1 cmp r1, #0x0 ble _02021D94 mov r1, #0xe add r5, r4, #0x0 lsl r1, r1, #0xc _02021D82: ldrh r2, [r5, #0x8] cmp r2, r1 bne _02021D8A add r0, r0, #0x1 _02021D8A: ldrh r2, [r4, #0x2] add r3, r3, #0x1 add r5, r5, #0x2 cmp r3, r2 blt _02021D82 _02021D94: pop {r3-r5, pc} nop _02021D98: .word 0xB6F8D2EC thumb_func_start FUN_02021D9C FUN_02021D9C: ; 0x02021D9C push {r3-r7, lr} add r5, r1, #0x0 add r7, r0, #0x0 add r6, r2, #0x0 cmp r5, #0x0 bne _02021DAC bl ErrorHandling _02021DAC: ldr r1, [r5, #0x4] ldr r0, _02021E24 ; =0xB6F8D2EC cmp r1, r0 beq _02021DB8 bl ErrorHandling _02021DB8: cmp r7, #0x0 bne _02021DC0 bl ErrorHandling _02021DC0: ldr r1, [r7, #0x4] ldr r0, _02021E24 ; =0xB6F8D2EC cmp r1, r0 beq _02021DCC bl ErrorHandling _02021DCC: mov r4, #0x0 cmp r6, #0x0 beq _02021DF6 ldrh r0, [r5, #0x2] cmp r0, #0x0 ble _02021DF6 mov r1, #0xe add r0, r5, #0x0 lsl r1, r1, #0xc _02021DDE: ldrh r2, [r0, #0x8] cmp r2, r1 bne _02021DEC sub r6, r6, #0x1 bne _02021DEC add r4, r4, #0x1 b _02021DF6 _02021DEC: ldrh r2, [r5, #0x2] add r4, r4, #0x1 add r0, r0, #0x2 cmp r4, r2 blt _02021DDE _02021DF6: add r0, r7, #0x0 bl FUN_02021A4C ldrh r0, [r5, #0x2] cmp r4, r0 bge _02021E20 lsl r0, r4, #0x1 add r6, r5, r0 _02021E06: ldrh r1, [r6, #0x8] mov r0, #0xe lsl r0, r0, #0xc cmp r1, r0 beq _02021E20 add r0, r7, #0x0 bl FUN_02021FB0 ldrh r0, [r5, #0x2] add r4, r4, #0x1 add r6, r6, #0x2 cmp r4, r0 blt _02021E06 _02021E20: pop {r3-r7, pc} nop _02021E24: .word 0xB6F8D2EC thumb_func_start FUN_02021E28 FUN_02021E28: ; 0x02021E28 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _02021E36 bl ErrorHandling _02021E36: ldr r1, [r5, #0x4] ldr r0, _02021E84 ; =0xB6F8D2EC cmp r1, r0 beq _02021E42 bl ErrorHandling _02021E42: mov r0, #0x0 strh r0, [r5, #0x2] ldrh r1, [r4, #0x0] ldr r0, _02021E88 ; =0x0000FFFF cmp r1, r0 beq _02021E76 add r1, r0, #0x0 _02021E50: ldrh r2, [r5, #0x0] ldrh r0, [r5, #0x2] sub r2, r2, #0x1 cmp r0, r2 blt _02021E60 bl ErrorHandling b _02021E76 _02021E60: add r2, r0, #0x0 add r2, r2, #0x1 strh r2, [r5, #0x2] ldrh r2, [r4, #0x0] lsl r0, r0, #0x1 add r0, r5, r0 add r4, r4, #0x2 strh r2, [r0, #0x8] ldrh r0, [r4, #0x0] cmp r0, r1 bne _02021E50 _02021E76: ldrh r0, [r5, #0x2] ldr r1, _02021E88 ; =0x0000FFFF lsl r0, r0, #0x1 add r0, r5, r0 strh r1, [r0, #0x8] pop {r3-r5, pc} nop _02021E84: .word 0xB6F8D2EC _02021E88: .word 0x0000FFFF thumb_func_start FUN_02021E8C FUN_02021E8C: ; 0x02021E8C push {r3-r7, lr} add r5, r0, #0x0 add r7, r1, #0x0 add r4, r2, #0x0 cmp r5, #0x0 bne _02021E9C bl ErrorHandling _02021E9C: ldr r1, [r5, #0x4] ldr r0, _02021EE8 ; =0xB6F8D2EC cmp r1, r0 beq _02021EA8 bl ErrorHandling _02021EA8: ldrh r0, [r5, #0x0] cmp r4, r0 bhi _02021EE2 lsl r6, r4, #0x1 add r0, r5, #0x0 add r0, #0x8 add r1, r7, #0x0 add r2, r6, #0x0 blx FUN_020DF438 mov r2, #0x0 cmp r4, #0x0 bls _02021ED4 ldr r0, _02021EEC ; =0x0000FFFF add r3, r5, #0x0 _02021EC6: ldrh r1, [r3, #0x8] cmp r1, r0 beq _02021ED4 add r2, r2, #0x1 add r3, r3, #0x2 cmp r2, r4 blo _02021EC6 _02021ED4: strh r2, [r5, #0x2] cmp r2, r4 bne _02021EE6 ldr r1, _02021EEC ; =0x0000FFFF add r0, r5, r6 strh r1, [r0, #0x6] pop {r3-r7, pc} _02021EE2: bl ErrorHandling _02021EE6: pop {r3-r7, pc} .balign 4 _02021EE8: .word 0xB6F8D2EC _02021EEC: .word 0x0000FFFF thumb_func_start FUN_02021EF0 FUN_02021EF0: ; 0x02021EF0 push {r4-r6, lr} add r5, r0, #0x0 add r6, r1, #0x0 add r4, r2, #0x0 cmp r5, #0x0 bne _02021F00 bl ErrorHandling _02021F00: ldr r1, [r5, #0x4] ldr r0, _02021F28 ; =0xB6F8D2EC cmp r1, r0 beq _02021F0C bl ErrorHandling _02021F0C: ldrh r0, [r5, #0x2] add r2, r0, #0x1 cmp r2, r4 bhi _02021F22 add r5, #0x8 add r0, r6, #0x0 add r1, r5, #0x0 lsl r2, r2, #0x1 blx FUN_020DF438 pop {r4-r6, pc} _02021F22: bl ErrorHandling pop {r4-r6, pc} .balign 4 _02021F28: .word 0xB6F8D2EC thumb_func_start FUN_02021F2C FUN_02021F2C: ; 0x02021F2C push {r4, lr} add r4, r0, #0x0 bne _02021F36 bl ErrorHandling _02021F36: ldr r1, [r4, #0x4] ldr r0, _02021F48 ; =0xB6F8D2EC cmp r1, r0 beq _02021F42 bl ErrorHandling _02021F42: add r4, #0x8 add r0, r4, #0x0 pop {r4, pc} .balign 4 _02021F48: .word 0xB6F8D2EC thumb_func_start FUN_02021F4C FUN_02021F4C: ; 0x02021F4C push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _02021F5A bl ErrorHandling _02021F5A: ldr r1, [r5, #0x4] ldr r0, _02021FAC ; =0xB6F8D2EC cmp r1, r0 beq _02021F66 bl ErrorHandling _02021F66: cmp r4, #0x0 bne _02021F6E bl ErrorHandling _02021F6E: ldr r1, [r4, #0x4] ldr r0, _02021FAC ; =0xB6F8D2EC cmp r1, r0 beq _02021F7A bl ErrorHandling _02021F7A: ldrh r2, [r4, #0x2] ldrh r0, [r5, #0x2] add r1, r0, r2 add r3, r1, #0x1 ldrh r1, [r5, #0x0] cmp r3, r1 bgt _02021FA6 add r1, r5, #0x0 add r1, #0x8 lsl r0, r0, #0x1 add r0, r1, r0 add r1, r4, #0x0 add r2, r2, #0x1 add r1, #0x8 lsl r2, r2, #0x1 blx FUN_020DF438 ldrh r1, [r5, #0x2] ldrh r0, [r4, #0x2] add r0, r1, r0 strh r0, [r5, #0x2] pop {r3-r5, pc} _02021FA6: bl ErrorHandling pop {r3-r5, pc} .balign 4 _02021FAC: .word 0xB6F8D2EC thumb_func_start FUN_02021FB0 FUN_02021FB0: ; 0x02021FB0 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _02021FBE bl ErrorHandling _02021FBE: ldr r1, [r5, #0x4] ldr r0, _02021FF0 ; =0xB6F8D2EC cmp r1, r0 beq _02021FCA bl ErrorHandling _02021FCA: ldrh r2, [r5, #0x2] ldrh r0, [r5, #0x0] add r1, r2, #0x1 cmp r1, r0 bge _02021FE8 lsl r0, r2, #0x1 strh r1, [r5, #0x2] add r0, r5, r0 strh r4, [r0, #0x8] ldrh r0, [r5, #0x2] ldr r1, _02021FF4 ; =0x0000FFFF lsl r0, r0, #0x1 add r0, r5, r0 strh r1, [r0, #0x8] pop {r3-r5, pc} _02021FE8: bl ErrorHandling pop {r3-r5, pc} nop _02021FF0: .word 0xB6F8D2EC _02021FF4: .word 0x0000FFFF thumb_func_start FUN_02021FF8 FUN_02021FF8: ; 0x02021FF8 push {r4, lr} add r4, r0, #0x0 bne _02022002 bl ErrorHandling _02022002: ldr r1, [r4, #0x4] ldr r0, _02022028 ; =0xB6F8D2EC cmp r1, r0 beq _0202200E bl ErrorHandling _0202200E: ldrh r0, [r4, #0x2] cmp r0, #0x0 beq _02022026 ldrh r1, [r4, #0x8] ldr r0, _0202202C ; =0x00000145 cmp r1, r0 blo _02022026 add r0, #0x19 cmp r1, r0 bhi _02022026 sub r1, #0x1a strh r1, [r4, #0x8] _02022026: pop {r4, pc} .balign 4 _02022028: .word 0xB6F8D2EC _0202202C: .word 0x00000145 thumb_func_start FUN_02022030 FUN_02022030: ; 0x02022030 ldrh r1, [r0, #0x2] cmp r1, #0x0 beq _02022044 ldrh r1, [r0, #0x8] mov r0, #0xf1 lsl r0, r0, #0x8 cmp r1, r0 bne _02022044 mov r0, #0x1 bx lr _02022044: mov r0, #0x0 bx lr thumb_func_start FUN_02022048 FUN_02022048: ; 0x02022048 push {r3-r7, lr} add r4, r1, #0x0 str r0, [sp, #0x0] add r0, r4, #0x0 bl FUN_02022030 cmp r0, #0x0 beq _020220B2 ldr r0, [sp, #0x0] ldr r1, [sp, #0x0] ldrh r0, [r0, #0x2] add r1, #0x8 ldr r7, _020220BC ; =0x000001FF lsl r0, r0, #0x1 add r3, r1, r0 mov r0, #0x0 add r4, #0xa add r1, r0, #0x0 _0202206C: ldrh r2, [r4, #0x0] asr r2, r0 and r2, r7 lsl r2, r2, #0x10 add r0, #0x9 lsr r2, r2, #0x10 cmp r0, #0xf blt _02022094 add r4, r4, #0x2 sub r0, #0xf beq _02022094 ldrh r6, [r4, #0x0] mov r5, #0x9 sub r5, r5, r0 lsl r6, r5 ldr r5, _020220BC ; =0x000001FF and r5, r6 orr r2, r5 lsl r2, r2, #0x10 lsr r2, r2, #0x10 _02022094: ldr r5, _020220BC ; =0x000001FF cmp r2, r5 beq _020220A2 strh r2, [r3, #0x0] add r3, r3, #0x2 add r1, r1, #0x1 b _0202206C _020220A2: ldr r0, _020220C0 ; =0x0000FFFF strh r0, [r3, #0x0] ldr r0, [sp, #0x0] ldrh r0, [r0, #0x2] add r1, r0, r1 ldr r0, [sp, #0x0] strh r1, [r0, #0x2] pop {r3-r7, pc} _020220B2: ldr r0, [sp, #0x0] add r1, r4, #0x0 bl FUN_02021F4C pop {r3-r7, pc} .balign 4 _020220BC: .word 0x000001FF _020220C0: .word 0x0000FFFF thumb_func_start FUN_020220C4 FUN_020220C4: ; 0x020220C4 push {r3-r7, lr} add r7, r1, #0x0 add r5, r0, #0x0 add r6, r2, #0x0 str r3, [sp, #0x0] cmp r7, #0x0 bne _020220D6 bl ErrorHandling _020220D6: ldr r0, [sp, #0x18] mov r1, #0x14 bl FUN_02016998 add r4, r0, #0x0 beq _0202211C str r5, [r4, #0x0] str r7, [r4, #0x4] ldr r0, [sp, #0x0] str r6, [r4, #0x8] str r0, [r4, #0xc] ldr r0, [sp, #0x18] lsl r1, r7, #0x2 bl FUN_02016998 str r0, [r4, #0x10] cmp r0, #0x0 beq _02022114 mov r6, #0x0 cmp r7, #0x0 bls _0202211C add r5, r6, #0x0 _02022102: ldr r0, [r4, #0x10] add r0, r0, r5 bl FUN_02022120 add r6, r6, #0x1 add r5, r5, #0x4 cmp r6, r7 blo _02022102 b _0202211C _02022114: add r0, r4, #0x0 bl FUN_02016A18 mov r4, #0x0 _0202211C: add r0, r4, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02022120 FUN_02022120: ; 0x02022120 mov r1, #0x0 strb r1, [r0, #0x0] strb r1, [r0, #0x1] strh r1, [r0, #0x2] bx lr .balign 4 thumb_func_start FUN_0202212C FUN_0202212C: ; 0x0202212C push {r4, lr} add r4, r0, #0x0 bne _02022136 bl ErrorHandling _02022136: ldr r0, [r4, #0x10] bl FUN_02016A18 add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} thumb_func_start FUN_02022144 FUN_02022144: ; 0x02022144 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 bl FUN_02020A98 str r0, [sp, #0x0] cmp r0, #0x0 beq _02022190 bl FUN_02020AA4 str r0, [sp, #0x4] ldr r0, [r5, #0x4] mov r6, #0x0 cmp r0, #0x0 bls _020221AE add r4, r6, #0x0 _02022164: ldr r0, [r5, #0x10] add r0, r0, r4 ldrb r0, [r0, #0x1] cmp r0, #0x0 ldr r0, [r5, #0x0] beq _02022178 add r0, r0, r4 bl FUN_02020A40 b _0202217E _02022178: add r0, r0, r4 bl FUN_02020A6C _0202217E: ldr r1, [r5, #0x10] add r6, r6, #0x1 add r1, r1, r4 strb r0, [r1, #0x1] ldr r0, [r5, #0x4] add r4, r4, #0x4 cmp r6, r0 blo _02022164 b _020221AE _02022190: ldr r0, [r5, #0x4] mov r3, #0x0 str r3, [sp, #0x4] cmp r0, #0x0 bls _020221AE add r2, r3, #0x0 add r1, r3, #0x0 _0202219E: ldr r0, [r5, #0x10] add r3, r3, #0x1 add r0, r0, r2 strb r1, [r0, #0x1] ldr r0, [r5, #0x4] add r2, r2, #0x4 cmp r3, r0 blo _0202219E _020221AE: mov r4, #0x0 cmp r0, #0x0 bls _020221E4 add r7, r4, #0x0 _020221B6: ldr r3, [r5, #0x10] ldr r1, [sp, #0x0] add r0, r3, r7 ldrb r3, [r3, r7] ldr r2, [sp, #0x4] lsl r6, r3, #0x2 ldr r3, _020221E8 ; =0x020EE6CC ldr r3, [r3, r6] blx r3 add r1, r0, #0x0 mov r0, #0x0 mvn r0, r0 cmp r1, r0 beq _020221DA ldr r2, [r5, #0xc] ldr r3, [r5, #0x8] add r0, r4, #0x0 blx r3 _020221DA: ldr r0, [r5, #0x4] add r4, r4, #0x1 add r7, r7, #0x4 cmp r4, r0 blo _020221B6 _020221E4: add sp, #0x8 pop {r3-r7, pc} .balign 4 _020221E8: .word 0x020EE6CC thumb_func_start FUN_020221EC FUN_020221EC: ; 0x020221EC push {r3, lr} ldrb r1, [r0, #0x1] cmp r1, #0x0 beq _02022202 cmp r2, #0x0 beq _02022202 mov r1, #0x1 bl FUN_0202223C mov r0, #0x0 pop {r3, pc} _02022202: mov r0, #0x0 mvn r0, r0 pop {r3, pc} thumb_func_start FUN_02022208 FUN_02022208: ; 0x02022208 push {r3, lr} ldrb r2, [r0, #0x1] cmp r2, #0x0 beq _02022220 ldrh r2, [r0, #0x2] ldr r1, _02022238 ; =0x0000FFFF cmp r2, r1 bhs _0202221C add r1, r2, #0x1 strh r1, [r0, #0x2] _0202221C: mov r0, #0x2 pop {r3, pc} _02022220: cmp r1, #0x0 beq _0202222E mov r1, #0x0 bl FUN_0202223C mov r0, #0x3 pop {r3, pc} _0202222E: mov r1, #0x0 bl FUN_0202223C mov r0, #0x1 pop {r3, pc} .balign 4 _02022238: .word 0x0000FFFF thumb_func_start FUN_0202223C FUN_0202223C: ; 0x0202223C strb r1, [r0, #0x0] mov r1, #0x0 strh r1, [r0, #0x2] bx lr thumb_func_start FUN_02022244 FUN_02022244: ; 0x02022244 push {r3-r4} ldr r3, [r0, #0xc] mov r2, #0x0 sub r3, r3, #0x1 beq _02022262 ldr r4, [r0, #0x0] _02022250: ldrh r3, [r4, #0x2] cmp r3, r1 bhi _02022262 ldr r3, [r0, #0xc] add r2, r2, #0x1 sub r3, r3, #0x1 add r4, r4, #0x2 cmp r2, r3 blo _02022250 _02022262: ldr r1, [r0, #0x4] ldrb r3, [r1, r2] add r1, sp, #0x0 strb r3, [r1, #0x0] ldr r0, [r0, #0x8] ldrb r2, [r0, r2] strb r2, [r1, #0x1] ldrb r0, [r1, #0x0] lsl r1, r2, #0x8 orr r0, r1 pop {r3-r4} bx lr .balign 4 thumb_func_start FUN_0202227C FUN_0202227C: ; 0x0202227C ldr r2, [r0, #0x0] str r2, [r1, #0xc] add r2, r0, #0x4 str r2, [r1, #0x0] ldr r0, [r1, #0xc] lsl r0, r0, #0x1 add r2, r2, r0 str r2, [r1, #0x4] ldr r0, [r1, #0xc] add r0, r2, r0 str r0, [r1, #0x8] bx lr thumb_func_start FUN_02022294 FUN_02022294: ; 0x02022294 ldr r0, _020222A4 ; =0x021C59BC mov r1, #0x0 str r1, [r0, #0x0] str r1, [r0, #0x4] str r1, [r0, #0x8] ldr r0, _020222A8 ; =0x021C59BC str r1, [r0, #0x0] bx lr .balign 4 _020222A4: .word 0x021C59BC _020222A8: .word 0x021C59BC thumb_func_start FUN_020222AC FUN_020222AC: ; 0x020222AC ldr r3, _020222B0 ; =FUN_020C7E0C bx r3 .balign 4 _020222B0: .word FUN_020C7E0C thumb_func_start FUN_020222B4 FUN_020222B4: ; 0x020222B4 ldr r2, _020222C0 ; =0x021C59BC str r0, [r2, #0x4] str r1, [r2, #0x8] mov r0, #0x1 str r0, [r2, #0x0] bx lr .balign 4 _020222C0: .word 0x021C59BC thumb_func_start FUN_020222C4 FUN_020222C4: ; 0x020222C4 ldr r0, _020222E0 ; =0x021C59BC ldr r1, [r0, #0x0] cmp r1, #0x0 beq _020222DC ldr r1, [r0, #0x8] ldr r2, [r0, #0x4] lsl r1, r1, #0x1 orr r2, r1 ldr r1, _020222E4 ; =0x04000540 str r2, [r1, #0x0] mov r1, #0x0 str r1, [r0, #0x0] _020222DC: bx lr nop _020222E0: .word 0x021C59BC _020222E4: .word 0x04000540 thumb_func_start FUN_020222E8 FUN_020222E8: ; 0x020222E8 mov r0, #0x5 lsl r0, r0, #0x18 bx lr .balign 4 thumb_func_start FUN_020222F0 FUN_020222F0: ; 0x020222F0 mov r0, #0x2 lsl r0, r0, #0x8 bx lr .balign 4 thumb_func_start FUN_020222F8 FUN_020222F8: ; 0x020222F8 ldr r0, _020222FC ; =0x05000400 bx lr .balign 4 _020222FC: .word 0x05000400 thumb_func_start FUN_02022300 FUN_02022300: ; 0x02022300 mov r0, #0x2 lsl r0, r0, #0x8 bx lr .balign 4 thumb_func_start FUN_02022308 FUN_02022308: ; 0x02022308 ldr r0, _0202230C ; =0x05000200 bx lr .balign 4 _0202230C: .word 0x05000200 thumb_func_start FUN_02022310 FUN_02022310: ; 0x02022310 ldr r0, _02022314 ; =0x05000600 bx lr .balign 4 _02022314: .word 0x05000600 thumb_func_start FUN_02022318 FUN_02022318: ; 0x02022318 push {r3-r7, lr} sub sp, #0x8 add r7, r1, #0x0 mov r1, #0xc add r6, r0, #0x0 add r5, r2, #0x0 str r3, [sp, #0x4] bl FUN_02016998 add r4, r0, #0x0 str r6, [r4, #0x0] blx FUN_020BB7F4 blx FUN_020C7D28 mov r1, #0x2 ldr r0, _020223B8 ; =0x04000540 cmp r7, #0x0 str r1, [r0, #0x0] bne _02022364 lsl r0, r5, #0x7 blx FUN_020AFA28 add r6, r0, #0x0 ldr r0, [r4, #0x0] add r1, r6, #0x0 bl FUN_02016998 str r0, [r4, #0x8] mov r0, #0x1 str r0, [sp, #0x0] ldr r2, [r4, #0x8] lsl r0, r5, #0x11 mov r1, #0x0 add r3, r6, #0x0 blx FUN_020AF9C4 b _0202236E _02022364: lsl r0, r5, #0x10 lsr r0, r0, #0x10 mov r1, #0x1 blx FUN_020AEB70 _0202236E: ldr r0, [sp, #0x4] cmp r0, #0x0 bne _02022398 ldr r0, [sp, #0x20] lsl r0, r0, #0x8 blx FUN_020AFBFC add r5, r0, #0x0 ldr r0, [r4, #0x0] add r1, r5, #0x0 bl FUN_02016998 str r0, [r4, #0x4] ldr r0, [sp, #0x20] ldr r1, [r4, #0x4] lsl r0, r0, #0xd add r2, r5, #0x0 mov r3, #0x1 blx FUN_020AFBA8 b _020223A4 _02022398: ldr r0, [sp, #0x20] mov r1, #0x1 lsl r0, r0, #0x1d lsr r0, r0, #0x10 blx FUN_020AEB70 _020223A4: ldr r0, [sp, #0x24] cmp r0, #0x0 beq _020223AE blx r0 b _020223B2 _020223AE: bl FUN_020223D4 _020223B2: add r0, r4, #0x0 add sp, #0x8 pop {r3-r7, pc} .balign 4 _020223B8: .word 0x04000540 thumb_func_start FUN_020223BC FUN_020223BC: ; 0x020223BC push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x4] bl FUN_02016A18 ldr r0, [r4, #0x8] bl FUN_02016A18 add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} thumb_func_start FUN_020223D4 FUN_020223D4: ; 0x020223D4 push {r3, lr} mov r0, #0x1 add r1, r0, #0x0 bl FUN_0201E6E4 ldr r0, _02022438 ; =0x04000008 mov r1, #0x3 ldrh r2, [r0, #0x0] bic r2, r1 strh r2, [r0, #0x0] add r0, #0x58 ldrh r2, [r0, #0x0] ldr r1, _0202243C ; =0xFFFFCFFD and r1, r2 strh r1, [r0, #0x0] ldrh r1, [r0, #0x0] ldr r2, _02022440 ; =0x0000CFEF and r1, r2 strh r1, [r0, #0x0] add r1, r2, #0x0 ldrh r3, [r0, #0x0] add r1, #0xc and r1, r3 strh r1, [r0, #0x0] add r1, r2, #0x0 ldrh r3, [r0, #0x0] add r1, #0x8 sub r2, #0x10 and r1, r3 strh r1, [r0, #0x0] ldrh r1, [r0, #0x0] and r1, r2 strh r1, [r0, #0x0] mov r0, #0x0 add r1, r0, #0x0 add r2, r0, #0x0 add r3, r0, #0x0 blx FUN_020C7C28 mov r0, #0x0 ldr r2, _02022444 ; =0x00007FFF add r1, r0, #0x0 mov r3, #0x3f str r0, [sp, #0x0] blx FUN_020C7B3C ldr r1, _02022448 ; =0xBFFF0000 ldr r0, _0202244C ; =0x04000580 str r1, [r0, #0x0] pop {r3, pc} .balign 4 _02022438: .word 0x04000008 _0202243C: .word 0xFFFFCFFD _02022440: .word 0x0000CFEF _02022444: .word 0x00007FFF _02022448: .word 0xBFFF0000 _0202244C: .word 0x04000580 thumb_func_start FUN_02022450 FUN_02022450: ; 0x02022450 push {r3, lr} blx FS_IsAvailable cmp r0, #0x0 bne _02022460 blx OS_Terminate pop {r3, pc} _02022460: ldr r0, _020224BC ; =0x027FF00C ldr r0, [r0, #0x0] cmp r0, #0x0 bne _0202248A blx CARD_Init mov r2, #0x16 ldr r0, _020224C0 ; =0x027FFE00 ldr r1, _020224C4 ; =0x027FF000 lsl r2, r2, #0x4 blx MI_CpuCopy8 mov r2, #0x16 ldr r0, _020224C0 ; =0x027FFE00 ldr r1, _020224C8 ; =0x027FFA80 lsl r2, r2, #0x4 blx MI_CpuCopy8 ldr r1, _020224CC ; =0x4A414441 ldr r0, _020224BC ; =0x027FF00C str r1, [r0, #0x0] _0202248A: ldr r0, _020224D0 ; =0x020EE6D4 mov r1, #0x3 blx FS_FindArchive ldr r1, _020224C4 ; =0x027FF000 ldr r2, [r1, #0x48] str r2, [r0, #0x2c] ldr r2, [r1, #0x4c] str r2, [r0, #0x30] ldr r2, [r1, #0x40] str r2, [r0, #0x34] ldr r2, [r1, #0x44] str r2, [r0, #0x38] ldr r2, [r1, #0xc] ldr r0, _020224CC ; =0x4A414441 cmp r2, r0 bne _020224B4 ldrh r1, [r1, #0x10] ldr r0, _020224D4 ; =0x00003130 cmp r1, r0 beq _020224B8 _020224B4: blx OS_Terminate _020224B8: pop {r3, pc} nop _020224BC: .word 0x027FF00C _020224C0: .word 0x027FFE00 _020224C4: .word 0x027FF000 _020224C8: .word 0x027FFA80 _020224CC: .word 0x4A414441 _020224D0: .word 0x020EE6D4 _020224D4: .word 0x00003130 thumb_func_start FUN_020224D8 FUN_020224D8: ; 0x020224D8 push {r4, lr} sub sp, #0x48 add r4, r0, #0x0 add r0, sp, #0x0 blx FS_InitFile add r0, sp, #0x0 add r1, r4, #0x0 blx FS_OpenFile cmp r0, #0x0 beq _020224FC ldr r1, [sp, #0x24] ldr r0, _02022500 ; =0x027FFC2C str r1, [r0, #0x0] mov r0, #0x0 blx OS_ResetSystem _020224FC: add sp, #0x48 pop {r4, pc} .balign 4 _02022500: .word 0x027FFC2C thumb_func_start FUN_02022504 FUN_02022504: ; 0x02022504 ldr r3, _0202250C ; =FUN_02022610 mov r1, #0x1b bx r3 nop _0202250C: .word FUN_02022610 thumb_func_start FUN_02022510 FUN_02022510: ; 0x02022510 ldr r3, _02022518 ; =FUN_02022610 mov r1, #0x23 bx r3 nop _02022518: .word FUN_02022610 thumb_func_start FUN_0202251C FUN_0202251C: ; 0x0202251C ldr r3, _02022524 ; =FUN_02022610 mov r1, #0x1f bx r3 nop _02022524: .word FUN_02022610 thumb_func_start FUN_02022528 FUN_02022528: ; 0x02022528 ldr r3, _02022530 ; =FUN_02022610 mov r1, #0x20 bx r3 nop _02022530: .word FUN_02022610 thumb_func_start FUN_02022534 FUN_02022534: ; 0x02022534 push {r3, lr} add r3, r2, #0x0 mov r2, #0x0 bl FUN_02023408 pop {r3, pc} thumb_func_start FUN_02022540 FUN_02022540: ; 0x02022540 ldr r3, _02022548 ; =FUN_020232BC add r2, r1, #0x0 mov r1, #0x0 bx r3 .balign 4 _02022548: .word FUN_020232BC thumb_func_start FUN_0202254C FUN_0202254C: ; 0x0202254C push {r4, lr} ldr r1, _020225E0 ; =0x000204A8 mov r0, #0x1 bl FUN_02016998 add r4, r0, #0x0 ldr r2, _020225E0 ; =0x000204A8 mov r0, #0x0 add r1, r4, #0x0 blx MIi_CpuClearFast ldr r0, _020225E4 ; =0x021C59C8 str r4, [r0, #0x0] bl FUN_02023570 str r0, [r4, #0x0] mov r0, #0x0 str r0, [r4, #0x4] mov r0, #0x1 str r0, [r4, #0x8] str r0, [r4, #0xc] add r0, r4, #0x0 ldr r1, _020225E8 ; =0x00001021 add r0, #0x14 blx FUN_020DDF60 ldr r0, _020225EC ; =0x00020224 add r0, r4, r0 bl FUN_020230E4 ldr r0, _020225F0 ; =0x00020464 ldr r1, _020225EC ; =0x00020224 add r0, r4, r0 add r1, r4, r1 bl FUN_02023160 ldr r1, _020225F4 ; =0x00020218 mov r0, #0x0 add r1, r4, r1 mov r2, #0x8 blx MIi_CpuClearFast add r0, r4, #0x0 bl FUN_02022AD8 str r0, [r4, #0x10] cmp r0, #0x3 bhi _020225DA add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _020225B8: ; jump table (using 16-bit offset) .short _020225D4 - _020225B8 - 2; case 0 .short _020225C0 - _020225B8 - 2; case 1 .short _020225C4 - _020225B8 - 2; case 2 .short _020225D4 - _020225B8 - 2; case 3 _020225C0: mov r0, #0x0 str r0, [r4, #0xc] _020225C4: add r0, r4, #0x0 bl FUN_02022D08 mov r0, #0x1 str r0, [r4, #0x4] mov r0, #0x0 str r0, [r4, #0x8] b _020225DA _020225D4: add r0, r4, #0x0 bl FUN_020227DC _020225DA: add r0, r4, #0x0 pop {r4, pc} nop _020225E0: .word 0x000204A8 _020225E4: .word 0x021C59C8 _020225E8: .word 0x00001021 _020225EC: .word 0x00020224 _020225F0: .word 0x00020464 _020225F4: .word 0x00020218 thumb_func_start FUN_020225F8 FUN_020225F8: ; 0x020225F8 push {r3, lr} ldr r0, _0202260C ; =0x021C59C8 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02022606 bl ErrorHandling _02022606: ldr r0, _0202260C ; =0x021C59C8 ldr r0, [r0, #0x0] pop {r3, pc} .balign 4 _0202260C: .word 0x021C59C8 thumb_func_start FUN_02022610 FUN_02022610: ; 0x02022610 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x24 blt _0202261E bl ErrorHandling _0202261E: mov r0, #0x85 lsl r0, r0, #0x2 add r2, r5, r0 lsl r0, r4, #0x4 add r1, r5, r0 ldr r0, _02022630 ; =0x0002022C ldr r0, [r1, r0] add r0, r2, r0 pop {r3-r5, pc} .balign 4 _02022630: .word 0x0002022C thumb_func_start FUN_02022634 FUN_02022634: ; 0x02022634 ldr r3, _02022638 ; =FUN_02022610 bx r3 .balign 4 _02022638: .word FUN_02022610 thumb_func_start FUN_0202263C FUN_0202263C: ; 0x0202263C push {r3-r7, lr} mov r1, #0x1 str r0, [sp, #0x0] mov r0, #0x3 lsl r1, r1, #0xc bl FUN_020169D8 add r6, r0, #0x0 mov r0, #0x1 bl FUN_02016444 ldr r1, _020226F4 ; =0x00020220 ldr r0, [sp, #0x0] ldrb r0, [r0, r1] cmp r0, #0x0 bne _02022660 mov r2, #0x1 b _02022662 _02022660: mov r2, #0x0 _02022662: ldr r0, [sp, #0x0] mov r1, #0x0 bl FUN_02023074 ldr r1, _020226F8 ; =0x00020221 ldr r0, [sp, #0x0] ldrb r0, [r0, r1] cmp r0, #0x0 bne _02022678 mov r2, #0x1 b _0202267A _02022678: mov r2, #0x0 _0202267A: ldr r0, [sp, #0x0] mov r1, #0x1 bl FUN_02023074 ldr r0, [sp, #0x0] ldr r3, _020226F4 ; =0x00020220 add r2, r0, #0x0 ldrb r2, [r2, r3] mov r1, #0x0 bl FUN_02023074 ldr r0, [sp, #0x0] ldr r3, _020226F8 ; =0x00020221 add r2, r0, #0x0 ldrb r2, [r2, r3] mov r1, #0x1 bl FUN_02023074 mov r0, #0x0 mov r2, #0x1 mvn r0, r0 add r1, r6, #0x0 lsl r2, r2, #0xc blx MIi_CpuClearFast mov r4, #0x0 mov r7, #0x1 add r5, r4, #0x0 lsl r7, r7, #0xc _020226B4: add r0, r5, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 bl FUN_020235D0 add r0, r4, #0x0 add r0, #0x40 lsl r0, r0, #0xc add r1, r6, #0x0 add r2, r7, #0x0 bl FUN_020235D0 mov r0, #0x1 lsl r0, r0, #0xc add r4, r4, #0x1 add r5, r5, r0 cmp r4, #0x40 blt _020226B4 add r0, r6, #0x0 bl FUN_02016A18 ldr r0, [sp, #0x0] bl FUN_020227DC ldr r0, [sp, #0x0] mov r1, #0x0 str r1, [r0, #0x4] mov r0, #0x1 bl FUN_02016454 mov r0, #0x1 pop {r3-r7, pc} .balign 4 _020226F4: .word 0x00020220 _020226F8: .word 0x00020221 thumb_func_start FUN_020226FC FUN_020226FC: ; 0x020226FC push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] cmp r1, #0x0 bne _0202270A mov r0, #0x0 pop {r4, pc} _0202270A: bl FUN_02022D08 cmp r0, #0x0 beq _0202271C mov r0, #0x1 str r0, [r4, #0x4] mov r1, #0x0 str r1, [r4, #0x8] pop {r4, pc} _0202271C: mov r0, #0x0 pop {r4, pc} thumb_func_start FUN_02022720 FUN_02022720: ; 0x02022720 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x0 bne _0202272E mov r0, #0x3 pop {r4, pc} _0202272E: ldr r0, [r4, #0x8] cmp r0, #0x0 beq _02022784 mov r0, #0x1 bl FUN_02016444 ldr r0, _02022798 ; =0x00020220 ldrb r0, [r4, r0] cmp r0, #0x0 bne _02022746 mov r2, #0x1 b _02022748 _02022746: mov r2, #0x0 _02022748: add r0, r4, #0x0 mov r1, #0x0 bl FUN_02023074 ldr r0, _0202279C ; =0x00020221 ldrb r0, [r4, r0] cmp r0, #0x0 bne _0202275C mov r2, #0x1 b _0202275E _0202275C: mov r2, #0x0 _0202275E: add r0, r4, #0x0 mov r1, #0x1 bl FUN_02023074 ldr r2, _02022798 ; =0x00020220 add r0, r4, #0x0 ldrb r2, [r4, r2] mov r1, #0x0 bl FUN_02023074 ldr r2, _0202279C ; =0x00020221 add r0, r4, #0x0 ldrb r2, [r4, r2] mov r1, #0x1 bl FUN_02023074 mov r0, #0x1 bl FUN_02016454 _02022784: add r0, r4, #0x0 bl FUN_02023044 cmp r0, #0x2 bne _02022796 mov r1, #0x1 str r1, [r4, #0x4] mov r1, #0x0 str r1, [r4, #0x8] _02022796: pop {r4, pc} .balign 4 _02022798: .word 0x00020220 _0202279C: .word 0x00020221 thumb_func_start FUN_020227A0 FUN_020227A0: ; 0x020227A0 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x2 blt _020227AE bl ErrorHandling _020227AE: ldr r0, [r5, #0x8] cmp r0, #0x0 beq _020227B8 bl ErrorHandling _020227B8: ldr r0, [r5, #0x4] cmp r0, #0x1 beq _020227C2 bl ErrorHandling _020227C2: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02022840 _020227CA: add r0, r5, #0x0 bl FUN_02022854 cmp r0, #0x0 beq _020227CA cmp r0, #0x1 beq _020227CA pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020227DC FUN_020227DC: ; 0x020227DC add r2, r0, #0x0 mov r0, #0x1 str r0, [r2, #0x8] str r0, [r2, #0xc] mov r0, #0x85 ldr r1, _020227F4 ; =0x00020224 lsl r0, r0, #0x2 ldr r3, _020227F8 ; =FUN_020231F4 add r0, r2, r0 add r1, r2, r1 bx r3 nop _020227F4: .word 0x00020224 _020227F8: .word FUN_020231F4 thumb_func_start FUN_020227FC FUN_020227FC: ; 0x020227FC ldr r0, [r0, #0x0] bx lr thumb_func_start FUN_02022800 FUN_02022800: ; 0x02022800 ldr r0, [r0, #0x10] bx lr thumb_func_start FUN_02022804 FUN_02022804: ; 0x02022804 ldr r0, [r0, #0x4] bx lr thumb_func_start FUN_02022808 FUN_02022808: ; 0x02022808 ldr r0, [r0, #0x8] bx lr thumb_func_start FUN_0202280C FUN_0202280C: ; 0x0202280C push {r4, lr} add r4, r0, #0x0 bl FUN_02022808 cmp r0, #0x0 beq _02022826 add r0, r4, #0x0 bl FUN_02022804 cmp r0, #0x0 beq _02022826 mov r0, #0x1 pop {r4, pc} _02022826: mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_0202282C FUN_0202282C: ; 0x0202282C ldr r0, [r0, #0xc] bx lr thumb_func_start FUN_02022830 FUN_02022830: ; 0x02022830 ldr r0, _0202283C ; =0x021C59C8 mov r1, #0x1 ldr r0, [r0, #0x0] str r1, [r0, #0xc] bx lr nop _0202283C: .word 0x021C59C8 thumb_func_start FUN_02022840 FUN_02022840: ; 0x02022840 add r2, r1, #0x0 ldr r1, _0202284C ; =0x0002047C ldr r3, _02022850 ; =FUN_02022DFC add r1, r0, r1 bx r3 nop _0202284C: .word 0x0002047C _02022850: .word FUN_02022DFC thumb_func_start FUN_02022854 FUN_02022854: ; 0x02022854 push {r3-r5, lr} ldr r1, _02022878 ; =0x0002047C add r5, r0, #0x0 add r1, r5, r1 bl FUN_02022E78 add r4, r0, #0x0 beq _02022874 cmp r4, #0x1 beq _02022874 ldr r1, _02022878 ; =0x0002047C add r0, r5, #0x0 add r1, r5, r1 add r2, r4, #0x0 bl FUN_02022F80 _02022874: add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 _02022878: .word 0x0002047C thumb_func_start FUN_0202287C FUN_0202287C: ; 0x0202287C ldr r1, _02022884 ; =0x0002047C ldr r3, _02022888 ; =FUN_02022FF0 add r1, r0, r1 bx r3 .balign 4 _02022884: .word 0x0002047C _02022888: .word FUN_02022FF0 thumb_func_start FUN_0202288C FUN_0202288C: ; 0x0202288C mov r1, #0x0 str r1, [r0, #0x0] str r1, [r0, #0x4] str r1, [r0, #0x8] bx lr .balign 4 thumb_func_start FUN_02022898 FUN_02022898: ; 0x02022898 ldr r3, _020228A0 ; =FUN_020DDD60 add r0, #0x14 sub r2, #0x14 bx r3 .balign 4 _020228A0: .word FUN_020DDD60 thumb_func_start FUN_020228A4 FUN_020228A4: ; 0x020228A4 cmp r0, #0x0 bne _020228AC mov r2, #0x0 b _020228B0 _020228AC: mov r2, #0x1 lsl r2, r2, #0x12 _020228B0: ldr r0, [r1, #0x4] add r0, r2, r0 bx lr .balign 4 thumb_func_start FUN_020228B8 FUN_020228B8: ; 0x020228B8 push {r3-r5, lr} ldr r3, _020228DC ; =0x00020464 add r3, r0, r3 mov r0, #0xc mul r0, r2 add r5, r3, r0 ldr r0, [r5, #0x4] add r4, r1, r0 ldr r0, [r5, #0x8] cmp r0, #0x0 bne _020228D2 bl ErrorHandling _020228D2: ldr r0, [r5, #0x8] add r0, r4, r0 sub r0, #0x14 pop {r3-r5, pc} nop _020228DC: .word 0x00020464 thumb_func_start FUN_020228E0 FUN_020228E0: ; 0x020228E0 push {r3-r7, lr} ldr r4, _02022934 ; =0x00020464 add r3, r0, #0x0 add r3, r3, r4 add r5, r2, #0x0 mov r4, #0xc mul r4, r5 str r0, [sp, #0x0] add r7, r1, #0x0 add r6, r3, r4 bl FUN_020228B8 add r4, r0, #0x0 ldr r2, [r6, #0x8] ldr r0, [r4, #0x8] ldr r1, [r6, #0x4] cmp r0, r2 beq _02022908 mov r0, #0x0 pop {r3-r7, pc} _02022908: ldr r3, [r4, #0xc] ldr r0, _02022938 ; =0x20060623 cmp r3, r0 beq _02022914 mov r0, #0x0 pop {r3-r7, pc} _02022914: ldrb r0, [r4, #0x10] cmp r0, r5 beq _0202291E mov r0, #0x0 pop {r3-r7, pc} _0202291E: ldr r0, [sp, #0x0] add r1, r7, r1 bl FUN_02022898 ldrh r1, [r4, #0x12] cmp r1, r0 bne _02022930 mov r0, #0x1 pop {r3-r7, pc} _02022930: mov r0, #0x0 pop {r3-r7, pc} .balign 4 _02022934: .word 0x00020464 _02022938: .word 0x20060623 thumb_func_start FUN_0202293C FUN_0202293C: ; 0x0202293C push {r3-r7, lr} add r7, r2, #0x0 add r6, r1, #0x0 add r5, r0, #0x0 str r3, [sp, #0x0] add r0, r6, #0x0 add r1, r7, #0x0 add r2, r3, #0x0 bl FUN_020228B8 add r4, r0, #0x0 ldr r2, [sp, #0x0] add r0, r6, #0x0 add r1, r7, #0x0 bl FUN_020228E0 str r0, [r5, #0x0] ldr r0, [r4, #0x0] str r0, [r5, #0x4] ldr r0, [r4, #0x4] str r0, [r5, #0x8] pop {r3-r7, pc} thumb_func_start FUN_02022968 FUN_02022968: ; 0x02022968 push {r3-r7, lr} ldr r3, _020229AC ; =0x00020464 add r5, r0, #0x0 add r7, r2, #0x0 mov r4, #0xc add r3, r5, r3 mul r4, r7 str r1, [sp, #0x0] add r6, r3, r4 bl FUN_020228B8 ldr r2, _020229B0 ; =0x00020214 add r4, r0, #0x0 ldr r0, [r5, r2] ldr r1, [r6, #0x4] add r2, r2, #0x4 str r0, [r4, #0x0] lsl r0, r7, #0x2 add r0, r5, r0 ldr r0, [r0, r2] ldr r2, [sp, #0x0] str r0, [r4, #0x4] ldr r0, [r6, #0x8] add r1, r2, r1 str r0, [r4, #0x8] ldr r0, _020229B4 ; =0x20060623 str r0, [r4, #0xc] strb r7, [r4, #0x10] ldr r2, [r6, #0x8] add r0, r5, #0x0 bl FUN_02022898 strh r0, [r4, #0x12] pop {r3-r7, pc} .balign 4 _020229AC: .word 0x00020464 _020229B0: .word 0x00020214 _020229B4: .word 0x20060623 thumb_func_start FUN_020229B8 FUN_020229B8: ; 0x020229B8 mov r2, #0x0 mvn r2, r2 cmp r0, r2 bne _020229C8 cmp r1, #0x0 bne _020229C8 add r0, r2, #0x0 bx lr _020229C8: cmp r0, #0x0 bne _020229D8 mov r2, #0x0 mvn r2, r2 cmp r1, r2 bne _020229D8 mov r0, #0x1 bx lr _020229D8: cmp r0, r1 bls _020229E0 mov r0, #0x1 bx lr _020229E0: cmp r0, r1 bhs _020229E8 mov r0, #0x1 b _020229EA _020229E8: mov r0, #0x0 _020229EA: neg r0, r0 bx lr .balign 4 thumb_func_start FUN_020229F0 FUN_020229F0: ; 0x020229F0 push {r3-r7, lr} add r7, r0, #0x0 add r6, r1, #0x0 ldr r0, [r7, #0x4] ldr r1, [r6, #0x4] add r5, r2, #0x0 add r4, r3, #0x0 bl FUN_020229B8 str r0, [sp, #0x0] ldr r0, [r7, #0x8] ldr r1, [r6, #0x8] bl FUN_020229B8 ldr r2, [r7, #0x0] cmp r2, #0x0 beq _02022A6A ldr r1, [r6, #0x0] cmp r1, #0x0 beq _02022A6A ldr r1, [sp, #0x0] cmp r1, #0x0 ble _02022A30 cmp r0, #0x0 bgt _02022A26 bl ErrorHandling _02022A26: mov r0, #0x0 str r0, [r5, #0x0] mov r0, #0x1 str r0, [r4, #0x0] b _02022A66 _02022A30: bge _02022A44 cmp r0, #0x0 blt _02022A3A bl ErrorHandling _02022A3A: mov r0, #0x1 str r0, [r5, #0x0] mov r0, #0x0 str r0, [r4, #0x0] b _02022A66 _02022A44: cmp r0, #0x0 ble _02022A52 mov r0, #0x0 str r0, [r5, #0x0] mov r0, #0x1 str r0, [r4, #0x0] b _02022A66 _02022A52: bge _02022A5E mov r0, #0x1 str r0, [r5, #0x0] mov r0, #0x0 str r0, [r4, #0x0] b _02022A66 _02022A5E: mov r0, #0x0 str r0, [r5, #0x0] mov r0, #0x1 str r0, [r4, #0x0] _02022A66: mov r0, #0x2 pop {r3-r7, pc} _02022A6A: cmp r2, #0x0 beq _02022A80 ldr r0, [r6, #0x0] cmp r0, #0x0 bne _02022A80 mov r0, #0x0 str r0, [r5, #0x0] mov r0, #0x2 str r0, [r4, #0x0] mov r0, #0x1 pop {r3-r7, pc} _02022A80: cmp r2, #0x0 bne _02022A94 ldr r0, [r6, #0x0] cmp r0, #0x0 beq _02022A94 mov r0, #0x1 str r0, [r5, #0x0] mov r1, #0x2 str r1, [r4, #0x0] pop {r3-r7, pc} _02022A94: mov r0, #0x2 str r0, [r5, #0x0] str r0, [r4, #0x0] mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02022AA0 FUN_02022AA0: ; 0x02022AA0 push {r3-r6} mov r4, #0xc add r5, r3, #0x0 mul r5, r4 add r6, r1, r5 ldr r5, [r6, #0x4] ldr r1, _02022AD4 ; =0x00020214 str r5, [r0, r1] ldr r6, [r6, #0x8] add r5, r1, #0x4 str r6, [r0, r5] ldr r5, [sp, #0x10] mul r4, r5 add r2, r2, r4 ldr r4, [r2, #0x8] add r2, r1, #0x0 add r2, #0x8 str r4, [r0, r2] add r2, r1, #0x0 add r2, #0xc strb r3, [r0, r2] add r1, #0xd strb r5, [r0, r1] pop {r3-r6} bx lr nop _02022AD4: .word 0x00020214 thumb_func_start FUN_02022AD8 FUN_02022AD8: ; 0x02022AD8 push {r3-r6, lr} sub sp, #0x44 mov r1, #0x2 add r5, r0, #0x0 mov r0, #0x3 lsl r1, r1, #0x10 bl FUN_020169D8 mov r1, #0x2 add r6, r0, #0x0 mov r0, #0x3 lsl r1, r1, #0x10 bl FUN_020169D8 mov r2, #0x2 add r4, r0, #0x0 mov r0, #0x0 add r1, r6, #0x0 lsl r2, r2, #0x10 bl FUN_020235EC cmp r0, #0x0 add r0, sp, #0x2c beq _02022B20 add r1, r5, #0x0 add r2, r6, #0x0 mov r3, #0x0 bl FUN_0202293C add r0, sp, #0x14 add r1, r5, #0x0 add r2, r6, #0x0 mov r3, #0x1 bl FUN_0202293C b _02022B2A _02022B20: bl FUN_0202288C add r0, sp, #0x14 bl FUN_0202288C _02022B2A: mov r0, #0x1 lsl r0, r0, #0x12 add r1, r4, #0x0 lsr r2, r0, #0x1 bl FUN_020235EC cmp r0, #0x0 add r0, sp, #0x38 beq _02022B54 add r1, r5, #0x0 add r2, r4, #0x0 mov r3, #0x0 bl FUN_0202293C add r0, sp, #0x20 add r1, r5, #0x0 add r2, r4, #0x0 mov r3, #0x1 bl FUN_0202293C b _02022B5E _02022B54: bl FUN_0202288C add r0, sp, #0x20 bl FUN_0202288C _02022B5E: add r0, r6, #0x0 bl FUN_02016A18 add r0, r4, #0x0 bl FUN_02016A18 add r0, sp, #0x2c add r1, sp, #0x38 add r2, sp, #0x10 add r3, sp, #0x8 bl FUN_020229F0 add r4, r0, #0x0 add r0, sp, #0x14 add r1, sp, #0x20 add r2, sp, #0xc add r3, sp, #0x4 bl FUN_020229F0 cmp r4, #0x0 bne _02022B92 cmp r0, #0x0 bne _02022B92 add sp, #0x44 mov r0, #0x0 pop {r3-r6, pc} _02022B92: cmp r4, #0x0 beq _02022B9A cmp r0, #0x0 bne _02022BA0 _02022B9A: add sp, #0x44 mov r0, #0x3 pop {r3-r6, pc} _02022BA0: cmp r4, #0x2 bne _02022BE4 cmp r0, #0x2 bne _02022BE4 ldr r3, [sp, #0x10] ldr r1, [sp, #0xc] mov r2, #0xc add r4, r3, #0x0 mul r4, r2 add r0, sp, #0x30 ldr r0, [r0, r4] add r4, r1, #0x0 mul r4, r2 add r2, sp, #0x18 ldr r2, [r2, r4] cmp r0, r2 str r1, [sp, #0x0] add r1, sp, #0x2c bne _02022BD4 add r0, r5, #0x0 add r2, sp, #0x14 bl FUN_02022AA0 add sp, #0x44 mov r0, #0x1 pop {r3-r6, pc} _02022BD4: ldr r3, [sp, #0x8] add r0, r5, #0x0 add r2, sp, #0x14 bl FUN_02022AA0 add sp, #0x44 mov r0, #0x2 pop {r3-r6, pc} _02022BE4: cmp r4, #0x1 bne _02022C3A cmp r0, #0x2 bne _02022C3A ldr r3, [sp, #0x10] ldr r0, [sp, #0xc] mov r4, #0xc add r2, r3, #0x0 add r6, r0, #0x0 mul r2, r4 add r1, sp, #0x30 ldr r2, [r1, r2] mul r6, r4 add r1, sp, #0x18 ldr r6, [r1, r6] cmp r2, r6 bne _02022C18 str r0, [sp, #0x0] add r0, r5, #0x0 add r1, sp, #0x2c add r2, sp, #0x14 bl FUN_02022AA0 add sp, #0x44 mov r0, #0x2 pop {r3-r6, pc} _02022C18: ldr r0, [sp, #0x4] mul r4, r0 ldr r1, [r1, r4] cmp r2, r1 bne _02022C34 str r0, [sp, #0x0] add r0, r5, #0x0 add r1, sp, #0x2c add r2, sp, #0x14 bl FUN_02022AA0 add sp, #0x44 mov r0, #0x2 pop {r3-r6, pc} _02022C34: add sp, #0x44 mov r0, #0x3 pop {r3-r6, pc} _02022C3A: cmp r4, #0x2 bne _02022C7E cmp r0, #0x1 bne _02022C7E ldr r3, [sp, #0x10] ldr r1, [sp, #0xc] mov r2, #0xc add r4, r3, #0x0 mul r4, r2 add r0, sp, #0x30 ldr r0, [r0, r4] add r4, r1, #0x0 mul r4, r2 add r2, sp, #0x18 ldr r2, [r2, r4] cmp r0, r2 str r1, [sp, #0x0] add r1, sp, #0x2c bne _02022C6E add r0, r5, #0x0 add r2, sp, #0x14 bl FUN_02022AA0 add sp, #0x44 mov r0, #0x1 pop {r3-r6, pc} _02022C6E: ldr r3, [sp, #0x8] add r0, r5, #0x0 add r2, sp, #0x14 bl FUN_02022AA0 add sp, #0x44 mov r0, #0x2 pop {r3-r6, pc} _02022C7E: cmp r4, #0x1 bne _02022CBC cmp r0, #0x1 bne _02022CBC ldr r0, [sp, #0xc] ldr r2, [sp, #0x10] cmp r2, r0 bne _02022CBC add r3, r2, #0x0 mov r1, #0xc mul r3, r1 add r2, sp, #0x30 mul r1, r0 add r0, sp, #0x18 ldr r2, [r2, r3] ldr r0, [r0, r1] cmp r2, r0 beq _02022CA6 bl ErrorHandling _02022CA6: ldr r0, [sp, #0xc] add r1, sp, #0x2c str r0, [sp, #0x0] ldr r3, [sp, #0x10] add r0, r5, #0x0 add r2, sp, #0x14 bl FUN_02022AA0 add sp, #0x44 mov r0, #0x1 pop {r3-r6, pc} _02022CBC: ldr r1, [sp, #0x10] mov r0, #0xc add r2, r1, #0x0 mul r2, r0 add r1, sp, #0x30 ldr r3, [r1, r2] ldr r1, [sp, #0xc] add r2, r1, #0x0 mul r2, r0 add r0, sp, #0x18 ldr r0, [r0, r2] cmp r3, r0 beq _02022CDA bl ErrorHandling _02022CDA: ldr r0, [sp, #0xc] add r1, sp, #0x2c str r0, [sp, #0x0] ldr r3, [sp, #0x10] add r0, r5, #0x0 add r2, sp, #0x14 bl FUN_02022AA0 mov r0, #0x2 add sp, #0x44 pop {r3-r6, pc} thumb_func_start FUN_02022CF0 FUN_02022CF0: ; 0x02022CF0 push {r3-r5, lr} add r5, r1, #0x0 add r4, r2, #0x0 bl FUN_020228A4 ldr r1, [r5, #0x4] ldr r2, [r5, #0x8] add r1, r4, r1 bl FUN_020235EC pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02022D08 FUN_02022D08: ; 0x02022D08 push {r3-r7, lr} add r5, r0, #0x0 ldr r0, _02022D4C ; =0x00020464 mov r7, #0x85 mov r4, #0x0 add r6, r5, r0 lsl r7, r7, #0x2 _02022D16: ldr r0, _02022D50 ; =0x00020220 add r1, r5, r4 ldrb r0, [r1, r0] add r1, r6, #0x0 add r2, r5, r7 bl FUN_02022CF0 cmp r0, #0x0 bne _02022D2C mov r0, #0x0 pop {r3-r7, pc} _02022D2C: add r0, r5, #0x0 add r1, r5, r7 add r2, r4, #0x0 bl FUN_020228E0 cmp r0, #0x0 bne _02022D3E mov r0, #0x0 pop {r3-r7, pc} _02022D3E: add r4, r4, #0x1 add r6, #0xc cmp r4, #0x2 blt _02022D16 mov r0, #0x1 pop {r3-r7, pc} nop _02022D4C: .word 0x00020464 _02022D50: .word 0x00020220 thumb_func_start FUN_02022D54 FUN_02022D54: ; 0x02022D54 push {r4-r6, lr} add r3, r1, #0x0 ldr r1, _02022D90 ; =0x00020464 add r5, r0, #0x0 add r6, r2, #0x0 add r2, r5, r1 mov r1, #0xc mul r1, r3 add r4, r2, r1 mov r1, #0x85 lsl r1, r1, #0x2 add r1, r5, r1 add r2, r3, #0x0 bl FUN_02022968 add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_020228A4 mov r1, #0x85 lsl r1, r1, #0x2 add r2, r5, r1 ldr r1, [r4, #0x4] add r1, r2, r1 ldr r2, [r4, #0x8] sub r2, #0x14 bl FUN_02023668 pop {r4-r6, pc} nop _02022D90: .word 0x00020464 thumb_func_start FUN_02022D94 FUN_02022D94: ; 0x02022D94 push {r4-r6, lr} add r6, r0, #0x0 ldr r0, _02022DC4 ; =0x00020464 add r3, r6, r0 mov r0, #0xc mul r0, r1 add r4, r3, r0 add r0, r2, #0x0 add r1, r4, #0x0 ldr r5, [r4, #0x8] bl FUN_020228A4 mov r1, #0x2 lsl r1, r1, #0x8 add r2, r6, r1 ldr r1, [r4, #0x4] add r0, r5, r0 add r1, r2, r1 sub r0, #0x14 add r1, r1, r5 mov r2, #0x14 bl FUN_02023668 pop {r4-r6, pc} .balign 4 _02022DC4: .word 0x00020464 thumb_func_start FUN_02022DC8 FUN_02022DC8: ; 0x02022DC8 push {r4-r6, lr} add r6, r0, #0x0 ldr r0, _02022DF8 ; =0x00020464 add r3, r6, r0 mov r0, #0xc mul r0, r1 add r4, r3, r0 add r0, r2, #0x0 add r1, r4, #0x0 ldr r5, [r4, #0x8] bl FUN_020228A4 mov r1, #0x82 lsl r1, r1, #0x2 add r2, r6, r1 ldr r1, [r4, #0x4] add r0, r5, r0 add r1, r2, r1 sub r0, #0xc add r1, r1, r5 mov r2, #0x8 bl FUN_02023668 pop {r4-r6, pc} .balign 4 _02022DF8: .word 0x00020464 thumb_func_start FUN_02022DFC FUN_02022DFC: ; 0x02022DFC push {r3-r7, lr} ldr r7, _02022E70 ; =0x00020218 add r4, r1, #0x0 mov r12, r2 mov r1, #0x0 add r2, r0, #0x0 add r3, r4, #0x0 add r6, r7, #0x0 _02022E0C: ldr r5, _02022E70 ; =0x00020218 add r1, r1, #0x1 ldr r5, [r2, r5] str r5, [r3, #0x1c] ldr r5, [r2, r7] add r3, r3, #0x4 add r5, r5, #0x1 str r5, [r2, r6] add r2, r2, #0x4 cmp r1, #0x2 blt _02022E0C mov r1, #0x0 str r1, [r4, #0x14] mov r2, r12 str r1, [r4, #0x0] cmp r2, #0x2 bne _02022E58 ldr r2, [r0, #0xc] cmp r2, #0x0 beq _02022E4E mov r2, #0x1 str r2, [r4, #0x0] ldr r2, _02022E74 ; =0x00020214 ldr r3, [r0, r2] str r3, [r4, #0x18] ldr r3, [r0, r2] add r3, r3, #0x1 str r3, [r0, r2] str r1, [r4, #0x4] str r1, [r4, #0x8] mov r0, #0x2 str r0, [r4, #0xc] b _02022E66 _02022E4E: str r1, [r4, #0x4] str r1, [r4, #0x8] mov r0, #0x1 str r0, [r4, #0xc] b _02022E66 _02022E58: mov r0, r12 str r0, [r4, #0x4] mov r0, r12 str r0, [r4, #0x8] mov r0, r12 add r0, r0, #0x1 str r0, [r4, #0xc] _02022E66: mov r0, #0x1 bl FUN_02016444 pop {r3-r7, pc} nop _02022E70: .word 0x00020218 _02022E74: .word 0x00020214 thumb_func_start FUN_02022E78 FUN_02022E78: ; 0x02022E78 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 ldr r0, [r4, #0x14] cmp r0, #0x5 bhi _02022F78 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02022E90: ; jump table (using 16-bit offset) .short _02022E9C - _02022E90 - 2; case 0 .short _02022EC0 - _02022E90 - 2; case 1 .short _02022EDC - _02022E90 - 2; case 2 .short _02022F00 - _02022E90 - 2; case 3 .short _02022F2A - _02022E90 - 2; case 4 .short _02022F4E - _02022E90 - 2; case 5 _02022E9C: ldr r1, [r4, #0x8] ldr r0, _02022F7C ; =0x00020220 add r2, r5, r1 ldrb r0, [r2, r0] cmp r0, #0x0 bne _02022EAC mov r2, #0x1 b _02022EAE _02022EAC: mov r2, #0x0 _02022EAE: lsl r2, r2, #0x18 add r0, r5, #0x0 lsr r2, r2, #0x18 bl FUN_02022D54 str r0, [r4, #0x10] ldr r0, [r4, #0x14] add r0, r0, #0x1 str r0, [r4, #0x14] _02022EC0: ldr r0, [r4, #0x10] add r1, sp, #0x0 bl FUN_020236E4 cmp r0, #0x0 beq _02022F78 ldr r0, [sp, #0x0] cmp r0, #0x0 bne _02022ED6 mov r0, #0x3 pop {r3-r5, pc} _02022ED6: ldr r0, [r4, #0x14] add r0, r0, #0x1 str r0, [r4, #0x14] _02022EDC: ldr r1, [r4, #0x8] ldr r0, _02022F7C ; =0x00020220 add r2, r5, r1 ldrb r0, [r2, r0] cmp r0, #0x0 bne _02022EEC mov r2, #0x1 b _02022EEE _02022EEC: mov r2, #0x0 _02022EEE: lsl r2, r2, #0x18 add r0, r5, #0x0 lsr r2, r2, #0x18 bl FUN_02022DC8 str r0, [r4, #0x10] ldr r0, [r4, #0x14] add r0, r0, #0x1 str r0, [r4, #0x14] _02022F00: ldr r0, [r4, #0x10] add r1, sp, #0x0 bl FUN_020236E4 cmp r0, #0x0 beq _02022F78 ldr r0, [sp, #0x0] cmp r0, #0x0 bne _02022F16 mov r0, #0x3 pop {r3-r5, pc} _02022F16: ldr r0, [r4, #0x14] add r0, r0, #0x1 str r0, [r4, #0x14] ldr r0, [r4, #0x8] add r1, r0, #0x1 ldr r0, [r4, #0xc] cmp r1, r0 bne _02022F2A mov r0, #0x1 pop {r3-r5, pc} _02022F2A: ldr r1, [r4, #0x8] ldr r0, _02022F7C ; =0x00020220 add r2, r5, r1 ldrb r0, [r2, r0] cmp r0, #0x0 bne _02022F3A mov r2, #0x1 b _02022F3C _02022F3A: mov r2, #0x0 _02022F3C: lsl r2, r2, #0x18 add r0, r5, #0x0 lsr r2, r2, #0x18 bl FUN_02022D94 str r0, [r4, #0x10] ldr r0, [r4, #0x14] add r0, r0, #0x1 str r0, [r4, #0x14] _02022F4E: ldr r0, [r4, #0x10] add r1, sp, #0x0 bl FUN_020236E4 cmp r0, #0x0 beq _02022F78 ldr r0, [sp, #0x0] cmp r0, #0x0 bne _02022F64 mov r0, #0x3 pop {r3-r5, pc} _02022F64: ldr r0, [r4, #0x8] add r1, r0, #0x1 str r1, [r4, #0x8] ldr r0, [r4, #0xc] cmp r1, r0 bne _02022F74 mov r0, #0x2 pop {r3-r5, pc} _02022F74: mov r0, #0x0 str r0, [r4, #0x14] _02022F78: mov r0, #0x0 pop {r3-r5, pc} .balign 4 _02022F7C: .word 0x00020220 thumb_func_start FUN_02022F80 FUN_02022F80: ; 0x02022F80 push {r3-r7, lr} add r3, r0, #0x0 add r0, r1, #0x0 cmp r2, #0x3 bne _02022FAA ldr r1, [r0, #0x0] cmp r1, #0x0 beq _02022F96 ldr r2, [r0, #0x18] ldr r1, _02022FE4 ; =0x00020214 str r2, [r3, r1] _02022F96: ldr r1, _02022FE8 ; =0x00020218 mov r4, #0x0 _02022F9A: ldr r2, [r0, #0x1c] add r4, r4, #0x1 str r2, [r3, r1] add r0, r0, #0x4 add r3, r3, #0x4 cmp r4, #0x2 blt _02022F9A b _02022FDA _02022FAA: ldr r6, [r0, #0x4] ldr r1, [r0, #0xc] cmp r6, r1 bge _02022FD0 ldr r1, _02022FEC ; =0x00020220 mov r7, #0x1 add r2, r1, #0x0 _02022FB8: add r5, r3, r6 ldrb r4, [r5, r2] cmp r4, #0x0 bne _02022FC4 add r4, r7, #0x0 b _02022FC6 _02022FC4: mov r4, #0x0 _02022FC6: strb r4, [r5, r1] ldr r4, [r0, #0xc] add r6, r6, #0x1 cmp r6, r4 blt _02022FB8 _02022FD0: mov r0, #0x1 str r0, [r3, #0x4] mov r0, #0x0 str r0, [r3, #0x8] str r0, [r3, #0xc] _02022FDA: mov r0, #0x1 bl FUN_02016454 pop {r3-r7, pc} nop _02022FE4: .word 0x00020214 _02022FE8: .word 0x00020218 _02022FEC: .word 0x00020220 thumb_func_start FUN_02022FF0 FUN_02022FF0: ; 0x02022FF0 push {r3-r5, lr} add r4, r1, #0x0 ldr r1, [r4, #0x0] cmp r1, #0x0 beq _02023000 ldr r2, [r4, #0x18] ldr r1, _0202303C ; =0x00020214 str r2, [r0, r1] _02023000: ldr r1, _02023040 ; =0x00020218 mov r3, #0x0 add r5, r4, #0x0 _02023006: ldr r2, [r5, #0x1c] add r3, r3, #0x1 str r2, [r0, r1] add r5, r5, #0x4 add r0, r0, #0x4 cmp r3, #0x2 blt _02023006 blx FUN_020D6DAC cmp r0, #0x0 bne _02023034 blx FUN_020D6D7C ldr r0, [r4, #0x10] lsl r0, r0, #0x10 lsr r0, r0, #0x10 blx FUN_020D66A0 ldr r0, [r4, #0x10] lsl r0, r0, #0x10 lsr r0, r0, #0x10 blx OS_ReleaseLockID _02023034: mov r0, #0x1 bl FUN_02016454 pop {r3-r5, pc} .balign 4 _0202303C: .word 0x00020214 _02023040: .word 0x00020218 thumb_func_start FUN_02023044 FUN_02023044: ; 0x02023044 push {r3-r6, lr} sub sp, #0x24 add r1, sp, #0x0 mov r2, #0x2 add r5, r0, #0x0 bl FUN_02022DFC add r6, sp, #0x0 _02023054: add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02022E78 add r4, r0, #0x0 beq _02023054 cmp r4, #0x1 beq _02023054 add r0, r5, #0x0 add r1, sp, #0x0 add r2, r4, #0x0 bl FUN_02022F80 add r0, r4, #0x0 add sp, #0x24 pop {r3-r6, pc} thumb_func_start FUN_02023074 FUN_02023074: ; 0x02023074 push {r4-r5, lr} sub sp, #0x14 add r4, r2, #0x0 ldr r2, _020230A8 ; =0x00020464 add r2, r0, r2 mov r0, #0xc mul r0, r1 add r5, r2, r0 add r0, sp, #0x0 mov r1, #0xff mov r2, #0x14 blx MI_CpuFill8 add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_020228A4 ldr r1, [r5, #0x8] mov r2, #0x14 add r0, r1, r0 sub r0, #0x14 add r1, sp, #0x0 bl FUN_020235D0 add sp, #0x14 pop {r4-r5, pc} .balign 4 _020230A8: .word 0x00020464 thumb_func_start FUN_020230AC FUN_020230AC: ; 0x020230AC push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _020230DC ; =0x020EE6DC ldr r4, _020230E0 ; =0x020EE700 ldr r0, [r0, #0x0] cmp r5, r0 blt _020230BE bl ErrorHandling _020230BE: lsl r0, r5, #0x4 add r0, r4, r0 ldr r0, [r0, #0x8] blx r0 lsr r3, r0, #0x1f lsl r2, r0, #0x1e sub r2, r2, r3 mov r1, #0x1e ror r2, r1 add r2, r3, r2 mov r1, #0x4 sub r1, r1, r2 add r0, r0, r1 pop {r3-r5, pc} nop _020230DC: .word 0x020EE6DC _020230E0: .word 0x020EE700 thumb_func_start FUN_020230E4 FUN_020230E4: ; 0x020230E4 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 ldr r0, _02023158 ; =0x020EE6DC ldr r4, _0202315C ; =0x020EE700 ldr r0, [r0, #0x0] mov r7, #0x0 str r0, [sp, #0x0] cmp r0, #0x24 beq _020230FC bl ErrorHandling _020230FC: ldr r0, [sp, #0x0] mov r6, #0x0 cmp r0, #0x0 ble _02023148 sub r0, r0, #0x1 str r0, [sp, #0x4] _02023108: ldr r0, [r4, #0x0] cmp r6, r0 beq _02023112 bl ErrorHandling _02023112: ldr r0, [r4, #0x0] str r0, [r5, #0x0] add r0, r6, #0x0 bl FUN_020230AC str r0, [r5, #0x4] str r7, [r5, #0x8] mov r0, #0x0 strh r0, [r5, #0xc] ldr r0, [r4, #0x4] strh r0, [r5, #0xe] ldr r0, [r5, #0x4] add r7, r7, r0 ldr r0, [sp, #0x4] cmp r6, r0 beq _0202313A ldr r1, [r4, #0x4] ldr r0, [r4, #0x14] cmp r1, r0 beq _0202313C _0202313A: add r7, #0x14 _0202313C: ldr r0, [sp, #0x0] add r6, r6, #0x1 add r4, #0x10 add r5, #0x10 cmp r6, r0 blt _02023108 _02023148: mov r0, #0x2 lsl r0, r0, #0x10 cmp r7, r0 ble _02023154 bl ErrorHandling _02023154: add sp, #0x8 pop {r3-r7, pc} .balign 4 _02023158: .word 0x020EE6DC _0202315C: .word 0x020EE700 thumb_func_start FUN_02023160 FUN_02023160: ; 0x02023160 push {r3-r7, lr} sub sp, #0x8 str r0, [sp, #0x0] mov r0, #0x0 str r0, [sp, #0x4] mov r12, r0 add r3, r0, #0x0 add r6, r0, #0x0 ldr r0, _020231EC ; =0x020EE6DC ldr r4, [sp, #0x0] ldr r7, [r0, #0x0] add r5, r1, #0x0 _02023178: add r2, r4, #0x0 strb r6, [r4, #0x0] mov r0, #0x0 str r0, [r4, #0x8] add r2, #0x8 b _02023190 _02023184: ldr r0, [r5, #0x4] ldr r1, [r2, #0x0] add r5, #0x10 add r0, r1, r0 str r0, [r2, #0x0] add r3, r3, #0x1 _02023190: ldrh r0, [r5, #0xe] cmp r6, r0 bne _0202319A cmp r3, r7 blt _02023184 _0202319A: ldr r0, [r4, #0x8] add r6, r6, #0x1 add r0, #0x14 str r0, [r4, #0x8] ldr r0, [sp, #0x4] strb r0, [r4, #0x1] mov r0, r12 str r0, [r4, #0x4] ldr r1, [r4, #0x8] ldr r0, _020231F0 ; =0x00000FFF add r0, r1, r0 lsr r0, r0, #0xc strb r0, [r4, #0x2] ldrb r1, [r4, #0x2] ldr r0, [sp, #0x4] add r0, r0, r1 str r0, [sp, #0x4] ldr r0, [r4, #0x8] mov r1, r12 add r0, r1, r0 add r4, #0xc mov r12, r0 cmp r6, #0x2 blt _02023178 ldr r0, [sp, #0x0] ldrb r1, [r0, #0xd] ldrb r0, [r0, #0xe] add r1, r1, r0 ldr r0, [sp, #0x4] cmp r0, r1 beq _020231DC bl ErrorHandling _020231DC: ldr r0, [sp, #0x4] cmp r0, #0x20 ble _020231E6 bl ErrorHandling _020231E6: add sp, #0x8 pop {r3-r7, pc} nop _020231EC: .word 0x020EE6DC _020231F0: .word 0x00000FFF thumb_func_start FUN_020231F4 FUN_020231F4: ; 0x020231F4 push {r3-r7, lr} sub sp, #0x8 add r6, r0, #0x0 mov r2, #0x2 add r5, r1, #0x0 mov r0, #0x0 add r1, r6, #0x0 lsl r2, r2, #0x10 ldr r4, _02023240 ; =0x020EE700 blx MIi_CpuClearFast ldr r0, _02023244 ; =0x020EE6DC mov r7, #0x0 ldr r0, [r0, #0x0] str r0, [sp, #0x0] cmp r0, #0x0 ble _0202323A _02023216: ldr r0, [r5, #0x8] ldr r2, [r5, #0x4] str r0, [sp, #0x4] ldr r1, [sp, #0x4] mov r0, #0x0 add r1, r6, r1 blx MIi_CpuClearFast ldr r0, [sp, #0x4] ldr r1, [r4, #0xc] add r0, r6, r0 blx r1 ldr r0, [sp, #0x0] add r7, r7, #0x1 add r5, #0x10 add r4, #0x10 cmp r7, r0 blt _02023216 _0202323A: add sp, #0x8 pop {r3-r7, pc} nop _02023240: .word 0x020EE700 _02023244: .word 0x020EE6DC thumb_func_start FUN_02023248 FUN_02023248: ; 0x02023248 push {r3-r5, lr} ldr r5, _0202326C ; =0x20060623 add r4, r1, r3 str r5, [r1, r3] ldr r5, _02023270 ; =0x000204A4 ldr r5, [r0, r5] add r0, #0x14 add r5, r5, #0x1 str r5, [r4, #0x4] str r3, [r4, #0x8] add r3, #0xe strh r2, [r4, #0xc] add r2, r3, #0x0 blx FUN_020DDD60 strh r0, [r4, #0xe] pop {r3-r5, pc} nop _0202326C: .word 0x20060623 _02023270: .word 0x000204A4 thumb_func_start FUN_02023274 FUN_02023274: ; 0x02023274 push {r4-r6, lr} ldr r6, [r1, r3] ldr r5, _020232B0 ; =0x20060623 add r4, r1, r3 cmp r6, r5 beq _02023284 mov r0, #0x0 pop {r4-r6, pc} _02023284: ldr r5, [r4, #0x8] cmp r5, r3 beq _0202328E mov r0, #0x0 pop {r4-r6, pc} _0202328E: ldrh r5, [r4, #0xc] cmp r5, r2 beq _02023298 mov r0, #0x0 pop {r4-r6, pc} _02023298: add r3, #0xe add r0, #0x14 add r2, r3, #0x0 blx FUN_020DDD60 ldrh r1, [r4, #0xe] cmp r1, r0 bne _020232AC mov r0, #0x1 pop {r4-r6, pc} _020232AC: mov r0, #0x0 pop {r4-r6, pc} .balign 4 _020232B0: .word 0x20060623 thumb_func_start FUN_020232B4 FUN_020232B4: ; 0x020232B4 add r0, r0, r1 ldr r0, [r0, #0x4] bx lr .balign 4 thumb_func_start FUN_020232BC FUN_020232BC: ; 0x020232BC push {r3-r7, lr} sub sp, #0x8 add r7, r0, #0x0 mov r0, #0x1 add r5, r1, #0x0 add r6, r2, #0x0 bl FUN_02016444 ldr r0, _020233FC ; =0x020EE6D8 ldr r0, [r0, #0x0] cmp r5, r0 blt _020232D8 bl ErrorHandling _020232D8: ldr r1, _02023400 ; =0x020EE6E0 lsl r0, r5, #0x4 add r4, r1, r0 ldr r0, [r1, r0] cmp r0, r5 beq _020232E8 bl ErrorHandling _020232E8: ldr r0, [r4, #0x8] blx r0 str r0, [sp, #0x4] add r0, #0x10 str r0, [sp, #0x4] ldr r0, _02023404 ; =0x000204A0 ldr r0, [r7, r0] cmp r0, #0x1 ldr r0, [r4, #0x8] bne _0202336E blx r0 add r3, r0, #0x0 add r0, r7, #0x0 add r1, r6, #0x0 add r2, r5, #0x0 bl FUN_02023248 ldr r0, [r4, #0x4] ldr r2, [sp, #0x4] lsl r0, r0, #0xc add r1, r6, #0x0 bl FUN_020235D0 str r0, [sp, #0x0] ldr r0, [r4, #0x8] blx r0 add r3, r0, #0x0 add r0, r7, #0x0 add r1, r6, #0x0 add r2, r5, #0x0 bl FUN_02023274 cmp r0, #0x1 beq _02023330 bl ErrorHandling _02023330: ldr r0, [r4, #0x8] blx r0 add r3, r0, #0x0 add r0, r7, #0x0 add r1, r6, #0x0 add r2, r5, #0x0 bl FUN_02023248 ldr r0, [r4, #0x4] ldr r2, [sp, #0x4] add r0, #0x40 lsl r0, r0, #0xc add r1, r6, #0x0 bl FUN_020235D0 ldr r1, [sp, #0x0] orr r0, r1 str r0, [sp, #0x0] ldr r0, [r4, #0x8] blx r0 add r3, r0, #0x0 add r0, r7, #0x0 add r1, r6, #0x0 add r2, r5, #0x0 bl FUN_02023274 cmp r0, #0x1 beq _020233DE bl ErrorHandling b _020233DE _0202336E: blx r0 add r3, r0, #0x0 add r0, r7, #0x0 add r1, r6, #0x0 add r2, r5, #0x0 bl FUN_02023248 ldr r0, [r4, #0x4] ldr r2, [sp, #0x4] add r0, #0x40 lsl r0, r0, #0xc add r1, r6, #0x0 bl FUN_020235D0 str r0, [sp, #0x0] ldr r0, [r4, #0x8] blx r0 add r3, r0, #0x0 add r0, r7, #0x0 add r1, r6, #0x0 add r2, r5, #0x0 bl FUN_02023274 cmp r0, #0x1 beq _020233A4 bl ErrorHandling _020233A4: ldr r0, [r4, #0x8] blx r0 add r3, r0, #0x0 add r0, r7, #0x0 add r1, r6, #0x0 add r2, r5, #0x0 bl FUN_02023248 ldr r0, [r4, #0x4] ldr r2, [sp, #0x4] lsl r0, r0, #0xc add r1, r6, #0x0 bl FUN_020235D0 ldr r1, [sp, #0x0] orr r0, r1 str r0, [sp, #0x0] ldr r0, [r4, #0x8] blx r0 add r3, r0, #0x0 add r0, r7, #0x0 add r1, r6, #0x0 add r2, r5, #0x0 bl FUN_02023274 cmp r0, #0x1 beq _020233DE bl ErrorHandling _020233DE: ldr r0, [sp, #0x0] cmp r0, #0x1 bne _020233F0 mov r0, #0x1 bl FUN_02016454 add sp, #0x8 mov r0, #0x2 pop {r3-r7, pc} _020233F0: mov r0, #0x1 bl FUN_02016454 mov r0, #0x3 add sp, #0x8 pop {r3-r7, pc} .balign 4 _020233FC: .word 0x020EE6D8 _02023400: .word 0x020EE6E0 _02023404: .word 0x000204A0 thumb_func_start FUN_02023408 FUN_02023408: ; 0x02023408 push {r4-r7, lr} sub sp, #0x14 add r5, r0, #0x0 ldr r0, _02023564 ; =0x020EE6D8 add r7, r2, #0x0 ldr r0, [r0, #0x0] add r6, r1, #0x0 str r3, [sp, #0x0] cmp r7, r0 blt _02023420 bl ErrorHandling _02023420: ldr r1, _02023568 ; =0x020EE6E0 lsl r0, r7, #0x4 add r4, r1, r0 ldr r0, [r1, r0] cmp r0, r7 beq _02023430 bl ErrorHandling _02023430: ldr r0, [r4, #0x8] blx r0 str r0, [sp, #0x10] add r0, #0x10 str r0, [sp, #0x10] ldr r1, [sp, #0x10] add r0, r6, #0x0 bl FUN_02016998 add r6, r0, #0x0 ldr r0, [r4, #0x4] ldr r2, [sp, #0x10] lsl r0, r0, #0xc add r1, r6, #0x0 bl FUN_020235EC ldr r0, [r4, #0x8] blx r0 add r3, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 bl FUN_02023274 str r0, [sp, #0xc] ldr r0, [r4, #0x8] blx r0 add r1, r0, #0x0 add r0, r6, #0x0 bl FUN_020232B4 str r0, [sp, #0x8] ldr r0, [r4, #0x4] ldr r2, [sp, #0x10] add r0, #0x40 lsl r0, r0, #0xc add r1, r6, #0x0 bl FUN_020235EC ldr r0, [r4, #0x8] blx r0 add r3, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 bl FUN_02023274 add r7, r0, #0x0 ldr r0, [r4, #0x8] blx r0 add r1, r0, #0x0 add r0, r6, #0x0 bl FUN_020232B4 str r0, [sp, #0x4] ldr r0, [sp, #0x0] mov r1, #0x1 str r1, [r0, #0x0] ldr r0, [sp, #0xc] cmp r0, #0x1 bne _020234CC cmp r7, #0x0 bne _020234CC ldr r0, _0202356C ; =0x000204A0 mov r1, #0x0 str r1, [r5, r0] add r1, r0, #0x4 ldr r0, [sp, #0x8] ldr r2, [sp, #0x10] str r0, [r5, r1] ldr r0, [r4, #0x4] add r1, r6, #0x0 lsl r0, r0, #0xc bl FUN_020235EC add sp, #0x14 add r0, r6, #0x0 pop {r4-r7, pc} _020234CC: ldr r0, [sp, #0xc] cmp r0, #0x0 bne _020234F6 cmp r7, #0x1 bne _020234F6 ldr r0, _0202356C ; =0x000204A0 mov r1, #0x1 str r1, [r5, r0] add r1, r0, #0x4 ldr r0, [sp, #0x4] ldr r2, [sp, #0x10] str r0, [r5, r1] ldr r0, [r4, #0x4] add r1, r6, #0x0 add r0, #0x40 lsl r0, r0, #0xc bl FUN_020235EC add sp, #0x14 add r0, r6, #0x0 pop {r4-r7, pc} _020234F6: ldr r0, [sp, #0xc] cmp r0, #0x1 bne _0202354C cmp r7, #0x1 bne _0202354C ldr r0, [sp, #0x8] ldr r1, [sp, #0x4] bl FUN_020229B8 mov r1, #0x0 mvn r1, r1 cmp r0, r1 ldr r0, _0202356C ; =0x000204A0 beq _0202352E mov r1, #0x0 str r1, [r5, r0] add r1, r0, #0x4 ldr r0, [sp, #0x8] ldr r2, [sp, #0x10] str r0, [r5, r1] ldr r0, [r4, #0x4] add r1, r6, #0x0 lsl r0, r0, #0xc bl FUN_020235EC add sp, #0x14 add r0, r6, #0x0 pop {r4-r7, pc} _0202352E: mov r1, #0x1 str r1, [r5, r0] add r1, r0, #0x4 ldr r0, [sp, #0x4] ldr r2, [sp, #0x10] str r0, [r5, r1] ldr r0, [r4, #0x4] add r1, r6, #0x0 add r0, #0x40 lsl r0, r0, #0xc bl FUN_020235EC add sp, #0x14 add r0, r6, #0x0 pop {r4-r7, pc} _0202354C: ldr r0, [sp, #0x0] mov r1, #0x2 str r1, [r0, #0x0] ldr r0, _0202356C ; =0x000204A0 mov r1, #0x0 str r1, [r5, r0] add r0, r0, #0x4 str r1, [r5, r0] add r0, r6, #0x0 add sp, #0x14 pop {r4-r7, pc} nop _02023564: .word 0x020EE6D8 _02023568: .word 0x020EE6E0 _0202356C: .word 0x000204A0 thumb_func_start FUN_02023570 FUN_02023570: ; 0x02023570 push {r3-r5, lr} blx OS_GetLockID add r4, r0, #0x0 mov r0, #0x2 mvn r0, r0 cmp r4, r0 bne _02023584 bl ErrorHandling _02023584: lsl r0, r4, #0x10 lsr r0, r0, #0x10 blx FUN_020D66B0 ldr r0, _020235C8 ; =0x00001302 blx FUN_020D6DC4 cmp r0, #0x0 beq _0202359A ldr r5, _020235C8 ; =0x00001302 b _020235AA _0202359A: ldr r0, _020235CC ; =0x00001202 blx FUN_020D6DC4 cmp r0, #0x0 beq _020235A8 ldr r5, _020235CC ; =0x00001202 b _020235AA _020235A8: mov r5, #0x0 _020235AA: lsl r0, r4, #0x10 lsr r0, r0, #0x10 blx FUN_020D66A0 lsl r0, r4, #0x10 lsr r0, r0, #0x10 blx OS_ReleaseLockID cmp r5, #0x0 beq _020235C2 mov r0, #0x1 pop {r3-r5, pc} _020235C2: mov r0, #0x0 pop {r3-r5, pc} nop _020235C8: .word 0x00001302 _020235CC: .word 0x00001202 thumb_func_start FUN_020235D0 FUN_020235D0: ; 0x020235D0 push {r3-r5, lr} bl FUN_02023668 add r5, r0, #0x0 add r4, sp, #0x0 _020235DA: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_020236E4 cmp r0, #0x0 beq _020235DA ldr r0, [sp, #0x0] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020235EC FUN_020235EC: ; 0x020235EC push {r4-r7, lr} sub sp, #0x14 add r5, r0, #0x0 add r6, r1, #0x0 add r7, r2, #0x0 blx OS_GetLockID add r4, r0, #0x0 mov r0, #0x2 mvn r0, r0 cmp r4, r0 bne _02023608 bl ErrorHandling _02023608: lsl r0, r4, #0x10 lsr r0, r0, #0x10 blx FUN_020D66B0 mov r3, #0x0 str r3, [sp, #0x0] mov r1, #0x1 str r1, [sp, #0x4] mov r0, #0x6 str r0, [sp, #0x8] str r1, [sp, #0xc] add r0, r5, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 str r3, [sp, #0x10] blx FUN_020D6F20 blx FUN_020D6DB8 add r5, r0, #0x0 lsl r0, r4, #0x10 lsr r0, r0, #0x10 blx FUN_020D66A0 lsl r0, r4, #0x10 lsr r0, r0, #0x10 blx OS_ReleaseLockID cmp r5, #0x0 bne _02023652 ldr r0, _02023658 ; =0x021C59C8 ldr r0, [r0, #0x0] bl FUN_02016A18 mov r0, #0x1 bl FUN_02089D90 _02023652: add r0, r5, #0x0 add sp, #0x14 pop {r4-r7, pc} .balign 4 _02023658: .word 0x021C59C8 thumb_func_start FUN_0202365C FUN_0202365C: ; 0x0202365C ldr r0, _02023664 ; =0x021C59C8 mov r1, #0x1 str r1, [r0, #0x4] bx lr .balign 4 _02023664: .word 0x021C59C8 thumb_func_start FUN_02023668 FUN_02023668: ; 0x02023668 push {r3-r7, lr} sub sp, #0x18 add r5, r0, #0x0 add r6, r1, #0x0 add r7, r2, #0x0 blx OS_GetLockID add r4, r0, #0x0 mov r0, #0x2 mvn r0, r0 cmp r4, r0 bne _02023684 bl ErrorHandling _02023684: lsl r0, r4, #0x10 lsr r0, r0, #0x10 blx FUN_020D66B0 mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x4] mov r1, #0x6 str r1, [sp, #0x8] mov r1, #0x1 str r1, [sp, #0xc] add r1, sp, #0x14 mov r2, #0x4 add r3, r0, #0x0 str r0, [sp, #0x10] blx FUN_020D6F20 cmp r0, #0x0 bne _020236B2 add r0, r4, #0x0 mov r1, #0x1 bl FUN_02023740 _020236B2: ldr r0, _020236DC ; =0x021C59C8 mov r1, #0x0 str r1, [r0, #0x4] str r1, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] mov r0, #0x7 str r0, [sp, #0x8] mov r0, #0xa str r0, [sp, #0xc] mov r0, #0x2 str r0, [sp, #0x10] ldr r3, _020236E0 ; =FUN_0202365C add r0, r6, #0x0 add r1, r5, #0x0 add r2, r7, #0x0 blx FUN_020D6F20 add r0, r4, #0x0 add sp, #0x18 pop {r3-r7, pc} .balign 4 _020236DC: .word 0x021C59C8 _020236E0: .word FUN_0202365C thumb_func_start FUN_020236E4 FUN_020236E4: ; 0x020236E4 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _0202373C ; =0x021C59C8 add r4, r1, #0x0 ldr r0, [r0, #0x4] cmp r0, #0x1 bne _02023738 lsl r0, r5, #0x10 lsr r0, r0, #0x10 blx FUN_020D66A0 lsl r0, r5, #0x10 lsr r0, r0, #0x10 blx OS_ReleaseLockID blx FUN_020D6700 cmp r0, #0x0 beq _02023714 cmp r0, #0x4 beq _0202371E cmp r0, #0x6 beq _02023728 b _0202371A _02023714: mov r0, #0x1 str r0, [r4, #0x0] b _02023734 _0202371A: bl ErrorHandling _0202371E: mov r1, #0x0 add r0, r5, #0x0 str r1, [r4, #0x0] bl FUN_02023740 _02023728: mov r0, #0x0 str r0, [r4, #0x0] add r0, r5, #0x0 mov r1, #0x1 bl FUN_02023740 _02023734: mov r0, #0x1 pop {r3-r5, pc} _02023738: mov r0, #0x0 pop {r3-r5, pc} .balign 4 _0202373C: .word 0x021C59C8 thumb_func_start FUN_02023740 FUN_02023740: ; 0x02023740 push {r3-r5, lr} add r5, r0, #0x0 lsl r0, r5, #0x10 lsr r0, r0, #0x10 add r4, r1, #0x0 blx FUN_020D66A0 lsl r0, r5, #0x10 lsr r0, r0, #0x10 blx OS_ReleaseLockID ldr r0, _02023768 ; =0x021C59C8 ldr r0, [r0, #0x0] bl FUN_02016A18 mov r0, #0x1 add r1, r4, #0x0 bl FUN_0208A0B8 pop {r3-r5, pc} .balign 4 _02023768: .word 0x021C59C8 thumb_func_start FUN_0202376C FUN_0202376C: ; 0x0202376C mov r0, #0x5c bx lr thumb_func_start FUN_02023770 FUN_02023770: ; 0x02023770 push {r4, lr} add r4, r0, #0x0 mov r0, #0x0 add r1, r4, #0x0 mov r2, #0x5c blx MIi_CpuClearFast add r4, #0x10 add r0, r4, #0x0 bl FUN_02023840 pop {r4, pc} thumb_func_start FUN_02023788 FUN_02023788: ; 0x02023788 ldr r3, _02023790 ; =FUN_02022610 mov r1, #0x0 bx r3 nop _02023790: .word FUN_02022610 thumb_func_start FUN_02023794 FUN_02023794: ; 0x02023794 push {r3, lr} bl FUN_02023788 add r0, #0x10 pop {r3, pc} .balign 4 thumb_func_start FUN_020237A0 FUN_020237A0: ; 0x020237A0 push {r4, lr} sub sp, #0x50 add r4, r0, #0x0 blx OS_GetOwnerRtcOffset str r0, [r4, #0x0] add r0, r4, #0x0 add r0, #0x8 str r1, [r4, #0x4] blx OS_GetMacAddress add r0, sp, #0x0 blx OS_GetOwnerInfo add r0, sp, #0x0 ldrb r1, [r0, #0x2] strb r1, [r4, #0xe] ldrb r0, [r0, #0x3] strb r0, [r4, #0xf] add sp, #0x50 pop {r4, pc} .balign 4 thumb_func_start FUN_020237CC FUN_020237CC: ; 0x020237CC push {r4, lr} sub sp, #0x8 add r4, r0, #0x0 add r0, sp, #0x0 blx OS_GetMacAddress mov r2, #0x0 add r3, sp, #0x0 _020237DC: add r0, r4, r2 ldrb r1, [r3, #0x0] ldrb r0, [r0, #0x8] cmp r1, r0 beq _020237EC add sp, #0x8 mov r0, #0x0 pop {r4, pc} _020237EC: add r2, r2, #0x1 add r3, r3, #0x1 cmp r2, #0x6 blt _020237DC mov r0, #0x1 add sp, #0x8 pop {r4, pc} .balign 4 thumb_func_start FUN_020237FC FUN_020237FC: ; 0x020237FC push {r4, lr} add r4, r0, #0x0 blx OS_GetOwnerRtcOffset ldr r3, [r4, #0x0] ldr r2, [r4, #0x4] eor r0, r3 eor r1, r2 orr r0, r1 bne _02023814 mov r0, #0x1 pop {r4, pc} _02023814: mov r0, #0x0 pop {r4, pc} thumb_func_start FUN_02023818 FUN_02023818: ; 0x02023818 ldrb r0, [r0, #0xe] bx lr thumb_func_start FUN_0202381C FUN_0202381C: ; 0x0202381C ldrb r0, [r0, #0xf] bx lr thumb_func_start FUN_02023820 FUN_02023820: ; 0x02023820 add r0, #0x48 ldrb r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02023828 FUN_02023828: ; 0x02023828 add r0, #0x48 strb r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02023830 FUN_02023830: ; 0x02023830 ldr r0, [r0, #0x4c] bx lr thumb_func_start FUN_02023834 FUN_02023834: ; 0x02023834 ldr r2, [r0, #0x4c] cmp r2, #0x0 bne _0202383C str r1, [r0, #0x4c] _0202383C: bx lr .balign 4 thumb_func_start FUN_02023840 FUN_02023840: ; 0x02023840 push {r4, lr} add r4, r0, #0x0 mov r0, #0x1 add r1, r4, #0x0 str r0, [r4, #0x0] add r0, r4, #0x4 add r1, #0x14 bl FUN_0201265C add r0, r4, #0x4 blx FUN_020D660C add r1, r4, #0x0 str r0, [r4, #0x20] add r0, r4, #0x4 add r1, #0x14 blx FUN_020D6578 str r0, [r4, #0x24] str r1, [r4, #0x28] mov r0, #0x0 str r0, [r4, #0x2c] str r0, [r4, #0x30] str r0, [r4, #0x34] pop {r4, pc} .balign 4 thumb_func_start FUN_02023874 FUN_02023874: ; 0x02023874 ldr r0, [r0, #0x34] cmp r0, #0x0 beq _0202387E mov r0, #0x1 bx lr _0202387E: mov r0, #0x0 bx lr .balign 4 thumb_func_start FUN_02023884 FUN_02023884: ; 0x02023884 mov r2, #0x5a ldr r3, [r0, #0x34] lsl r2, r2, #0x4 cmp r3, r2 bls _02023890 str r2, [r0, #0x34] _02023890: ldr r2, [r0, #0x34] cmp r2, r1 bhs _0202389C mov r1, #0x0 str r1, [r0, #0x34] bx lr _0202389C: sub r1, r2, r1 str r1, [r0, #0x34] bx lr .balign 4 thumb_func_start FUN_020238A4 FUN_020238A4: ; 0x020238A4 push {r4, lr} add r4, r0, #0x0 mov r0, #0x5a lsl r0, r0, #0x4 add r1, r4, #0x0 str r0, [r4, #0x34] add r0, r4, #0x4 add r1, #0x14 bl FUN_0201265C add r0, r4, #0x4 blx FUN_020D660C str r0, [r4, #0x20] pop {r4, pc} .balign 4 thumb_func_start FUN_020238C4 FUN_020238C4: ; 0x020238C4 mov r0, #0x2c bx lr thumb_func_start FUN_020238C8 FUN_020238C8: ; 0x020238C8 push {r4, lr} add r4, r0, #0x0 mov r0, #0x0 add r1, r4, #0x0 mov r2, #0x2c blx MIi_CpuClearFast add r0, r4, #0x0 bl FUN_02024F50 add r0, r4, #0x4 bl FUN_02023948 add r0, r4, #0x0 add r0, #0x24 bl FUN_02028910 add r4, #0x26 add r0, r4, #0x0 bl FUN_02029E48 pop {r4, pc} thumb_func_start FUN_020238F4 FUN_020238F4: ; 0x020238F4 push {r3, lr} mov r1, #0x1 bl FUN_02022610 add r0, r0, #0x4 pop {r3, pc} thumb_func_start LoadPlayerDataAddress LoadPlayerDataAddress: ; 0x02023900 ldr r3, _02023908 ; =FUN_02022610 mov r1, #0x1 bx r3 nop _02023908: .word FUN_02022610 thumb_func_start FUN_0202390C FUN_0202390C: ; 0x0202390C push {r3, lr} mov r1, #0x1 bl FUN_02022610 add r0, #0x24 pop {r3, pc} thumb_func_start FUN_02023918 FUN_02023918: ; 0x02023918 push {r3, lr} mov r1, #0x1 bl FUN_02022610 add r0, #0x26 pop {r3, pc} thumb_func_start FUN_02023924 FUN_02023924: ; 0x02023924 mov r0, #0x20 bx lr thumb_func_start FUN_02023928 FUN_02023928: ; 0x02023928 push {r4, lr} mov r1, #0x20 bl FUN_02016998 add r4, r0, #0x0 bl FUN_02023948 add r0, r4, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_0202393C FUN_0202393C: ; 0x0202393C ldr r3, _02023944 ; =MI_CpuCopy8 mov r2, #0x20 bx r3 nop _02023944: .word MI_CpuCopy8 thumb_func_start FUN_02023948 FUN_02023948: ; 0x02023948 push {r4, lr} mov r1, #0x0 mov r2, #0x20 add r4, r0, #0x0 blx FUN_020DF4A4 mov r0, #0x2 strb r0, [r4, #0x19] pop {r4, pc} .balign 4 thumb_func_start FUN_0202395C FUN_0202395C: ; 0x0202395C push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r0, r4, #0x0 bl StringLength cmp r0, #0x8 blt _02023970 bl ErrorHandling _02023970: add r0, r5, #0x0 add r1, r4, #0x0 bl StringCopy pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0202397C FUN_0202397C: ; 0x0202397C ldr r3, _02023988 ; =FUN_02021EF0 add r2, r0, #0x0 add r0, r1, #0x0 add r1, r2, #0x0 mov r2, #0x8 bx r3 .balign 4 _02023988: .word FUN_02021EF0 thumb_func_start FUN_0202398C FUN_0202398C: ; 0x0202398C bx lr .balign 4 thumb_func_start FUN_02023990 FUN_02023990: ; 0x02023990 ldr r3, _0202399C ; =FUN_02021E28 add r2, r0, #0x0 add r0, r1, #0x0 add r1, r2, #0x0 bx r3 nop _0202399C: .word FUN_02021E28 thumb_func_start FUN_020239A0 FUN_020239A0: ; 0x020239A0 push {r3-r5, lr} add r5, r0, #0x0 mov r0, #0x8 bl FUN_020219F4 add r4, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02023990 add r0, r4, #0x0 pop {r3-r5, pc} thumb_func_start FUN_020239B8 FUN_020239B8: ; 0x020239B8 str r1, [r0, #0x10] bx lr thumb_func_start FUN_020239BC FUN_020239BC: ; 0x020239BC ldr r0, [r0, #0x10] bx lr thumb_func_start FUN_020239C0 FUN_020239C0: ; 0x020239C0 ldr r0, [r0, #0x10] lsl r0, r0, #0x10 lsr r0, r0, #0x10 bx lr thumb_func_start FUN_020239C8 FUN_020239C8: ; 0x020239C8 strb r1, [r0, #0x18] bx lr thumb_func_start FUN_020239CC FUN_020239CC: ; 0x020239CC ldrb r0, [r0, #0x18] bx lr thumb_func_start FUN_020239D0 FUN_020239D0: ; 0x020239D0 ldrb r3, [r0, #0x1a] mov r0, #0x1 add r2, r0, #0x0 lsl r2, r1 add r1, r3, #0x0 tst r1, r2 bne _020239E0 mov r0, #0x0 _020239E0: bx lr .balign 4 thumb_func_start FUN_020239E4 FUN_020239E4: ; 0x020239E4 ldrb r3, [r0, #0x1a] mov r2, #0x1 lsl r2, r1 add r1, r3, #0x0 orr r1, r2 strb r1, [r0, #0x1a] bx lr .balign 4 thumb_func_start FUN_020239F4 FUN_020239F4: ; 0x020239F4 ldrb r3, [r0, #0x1a] mov r2, #0x0 cmp r3, #0x0 beq _02023A0A mov r0, #0x1 _020239FE: add r1, r3, #0x0 tst r1, r0 beq _02023A06 add r2, r2, #0x1 _02023A06: lsr r3, r3, #0x1 bne _020239FE _02023A0A: add r0, r2, #0x0 bx lr .balign 4 thumb_func_start FUN_02023A10 FUN_02023A10: ; 0x02023A10 ldr r0, [r0, #0x14] bx lr thumb_func_start FUN_02023A14 FUN_02023A14: ; 0x02023A14 ldr r2, _02023A24 ; =0x000F423F cmp r1, r2 bls _02023A1C add r1, r2, #0x0 _02023A1C: str r1, [r0, #0x14] add r0, r1, #0x0 bx lr nop _02023A24: .word 0x000F423F thumb_func_start FUN_02023A28 FUN_02023A28: ; 0x02023A28 ldrb r0, [r0, #0x1b] bx lr thumb_func_start FUN_02023A2C FUN_02023A2C: ; 0x02023A2C strb r1, [r0, #0x1b] bx lr thumb_func_start FUN_02023A30 FUN_02023A30: ; 0x02023A30 ldr r2, _02023A50 ; =0x000F423F cmp r1, r2 bls _02023A3A str r2, [r0, #0x14] b _02023A40 _02023A3A: ldr r2, [r0, #0x14] add r1, r2, r1 str r1, [r0, #0x14] _02023A40: ldr r2, [r0, #0x14] ldr r1, _02023A50 ; =0x000F423F cmp r2, r1 bls _02023A4A str r1, [r0, #0x14] _02023A4A: ldr r0, [r0, #0x14] bx lr nop _02023A50: .word 0x000F423F thumb_func_start FUN_02023A54 FUN_02023A54: ; 0x02023A54 ldr r2, [r0, #0x14] cmp r2, r1 bhs _02023A5E mov r1, #0x0 b _02023A60 _02023A5E: sub r1, r2, r1 _02023A60: str r1, [r0, #0x14] ldr r0, [r0, #0x14] bx lr .balign 4 thumb_func_start FUN_02023A68 FUN_02023A68: ; 0x02023A68 ldrb r0, [r0, #0x1c] bx lr thumb_func_start FUN_02023A6C FUN_02023A6C: ; 0x02023A6C strb r1, [r0, #0x1c] bx lr thumb_func_start FUN_02023A70 FUN_02023A70: ; 0x02023A70 ldrb r0, [r0, #0x19] bx lr thumb_func_start FUN_02023A74 FUN_02023A74: ; 0x02023A74 strb r1, [r0, #0x19] bx lr thumb_func_start FUN_02023A78 FUN_02023A78: ; 0x02023A78 ldrb r2, [r0, #0x1d] mov r1, #0x1 bic r2, r1 mov r1, #0x1 orr r1, r2 strb r1, [r0, #0x1d] bx lr .balign 4 thumb_func_start FUN_02023A88 FUN_02023A88: ; 0x02023A88 ldrb r0, [r0, #0x1d] lsl r0, r0, #0x1f lsr r0, r0, #0x1f bx lr thumb_func_start FUN_02023A90 FUN_02023A90: ; 0x02023A90 ldrb r2, [r0, #0x1d] mov r1, #0x2 orr r1, r2 strb r1, [r0, #0x1d] bx lr .balign 4 thumb_func_start FUN_02023A9C FUN_02023A9C: ; 0x02023A9C ldrb r0, [r0, #0x1d] lsl r0, r0, #0x1e lsr r0, r0, #0x1f bx lr thumb_func_start FUN_02023AA4 FUN_02023AA4: ; 0x02023AA4 push {r3-r5, lr} mov r2, #0x7 add r5, r0, #0x0 add r4, r1, #0x0 bl StringNotEqualN cmp r0, #0x0 bne _02023AC0 ldr r1, [r5, #0x10] ldr r0, [r4, #0x10] cmp r1, r0 bne _02023AC0 mov r0, #0x1 pop {r3-r5, pc} _02023AC0: mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02023AC4 FUN_02023AC4: ; 0x02023AC4 mov r0, #0x20 bx lr thumb_func_start FUN_02023AC8 FUN_02023AC8: ; 0x02023AC8 mov r0, #0x20 bx lr thumb_func_start FUN_02023ACC FUN_02023ACC: ; 0x02023ACC ldr r3, _02023AD4 ; =MI_CpuCopy8 mov r2, #0x20 bx r3 nop _02023AD4: .word MI_CpuCopy8 thumb_func_start FUN_02023AD8 FUN_02023AD8: ; 0x02023AD8 ldr r3, _02023AE0 ; =FUN_020DF4A4 mov r1, #0x0 mov r2, #0x20 bx r3 .balign 4 _02023AE0: .word FUN_020DF4A4 thumb_func_start FUN_02023AE4 FUN_02023AE4: ; 0x02023AE4 ldr r3, _02023AF0 ; =FUN_02021E8C add r2, r0, #0x0 add r0, r1, #0x0 add r1, r2, #0x0 mov r2, #0xc bx r3 .balign 4 _02023AF0: .word FUN_02021E8C thumb_func_start FUN_02023AF4 FUN_02023AF4: ; 0x02023AF4 push {r3-r5, lr} add r5, r0, #0x0 mov r0, #0x18 bl FUN_020219F4 add r1, r5, #0x0 add r4, r0, #0x0 bl FUN_02021E28 add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02023B0C FUN_02023B0C: ; 0x02023B0C mov r2, #0x0 cmp r1, #0xc bhi _02023B9E add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02023B1E: ; jump table (using 16-bit offset) .short _02023B9E - _02023B1E - 2; case 0 .short _02023B38 - _02023B1E - 2; case 1 .short _02023B3C - _02023B1E - 2; case 2 .short _02023B40 - _02023B1E - 2; case 3 .short _02023B44 - _02023B1E - 2; case 4 .short _02023B4C - _02023B1E - 2; case 5 .short _02023B52 - _02023B1E - 2; case 6 .short _02023B66 - _02023B1E - 2; case 7 .short _02023B6C - _02023B1E - 2; case 8 .short _02023B80 - _02023B1E - 2; case 9 .short _02023B88 - _02023B1E - 2; case 10 .short _02023B90 - _02023B1E - 2; case 11 .short _02023B98 - _02023B1E - 2; case 12 _02023B38: ldrb r2, [r0, #0x1a] b _02023B9E _02023B3C: ldrb r2, [r0, #0x1b] b _02023B9E _02023B40: ldrh r2, [r0, #0x18] b _02023B9E _02023B44: ldrb r0, [r0, #0x1e] lsl r0, r0, #0x1f lsr r2, r0, #0x1f b _02023B9E _02023B4C: mov r1, #0x1c ldrsb r2, [r0, r1] b _02023B9E _02023B52: mov r1, #0x1c ldrsb r0, [r0, r1] cmp r0, #0x0 ble _02023B5E mov r2, #0x1 b _02023B9E _02023B5E: bge _02023B9E add r2, r1, #0x0 sub r2, #0x1d b _02023B9E _02023B66: mov r1, #0x1d ldrsb r2, [r0, r1] b _02023B9E _02023B6C: mov r1, #0x1d ldrsb r0, [r0, r1] cmp r0, #0x0 ble _02023B78 mov r2, #0x1 b _02023B9E _02023B78: bge _02023B9E add r2, r1, #0x0 sub r2, #0x1e b _02023B9E _02023B80: ldrb r0, [r0, #0x1e] lsl r0, r0, #0x1c lsr r2, r0, #0x1f b _02023B9E _02023B88: ldrb r0, [r0, #0x1e] lsl r0, r0, #0x1d lsr r2, r0, #0x1f b _02023B9E _02023B90: ldrb r0, [r0, #0x1e] lsl r0, r0, #0x1e lsr r2, r0, #0x1f b _02023B9E _02023B98: ldrb r0, [r0, #0x1e] lsl r0, r0, #0x1b lsr r2, r0, #0x1f _02023B9E: add r0, r2, #0x0 bx lr .balign 4 thumb_func_start FUN_02023BA4 FUN_02023BA4: ; 0x02023BA4 push {r3-r5, lr} add r5, r1, #0x0 add r4, r0, #0x0 cmp r5, #0x1 blt _02023BB2 bl ErrorHandling _02023BB2: add r0, r4, #0x0 mov r1, #0xd bl FUN_02022610 add r4, r0, #0x0 lsl r5, r5, #0x5 add r0, r4, r5 mov r1, #0x1 bl FUN_02023B0C cmp r0, #0x0 beq _02023BCE add r0, r4, r5 pop {r3-r5, pc} _02023BCE: mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02023BD4 FUN_02023BD4: ; 0x02023BD4 push {r4, lr} add r4, r1, #0x0 mov r1, #0xd bl FUN_02022610 add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_02023ACC pop {r4, pc} thumb_func_start FUN_02023BE8 FUN_02023BE8: ; 0x02023BE8 push {r3, lr} cmp r1, #0x5 bhs _02023BF6 ldr r2, _02023C00 ; =0x02105BD4 lsl r0, r1, #0x5 add r0, r2, r0 pop {r3, pc} _02023BF6: mov r1, #0xd bl FUN_02022610 pop {r3, pc} nop _02023C00: .word 0x02105BD4 thumb_func_start FUN_02023C04 FUN_02023C04: ; 0x02023C04 push {r4-r6, lr} add r5, r1, #0x0 add r4, r2, #0x0 cmp r5, #0x5 bhs _02023C2C ldr r2, _02023C3C ; =0x0000013A mov r0, #0x0 mov r1, #0x1a bl FUN_0200A86C add r5, #0x38 add r6, r0, #0x0 add r1, r5, #0x0 add r2, r4, #0x0 bl FUN_0200A8E0 add r0, r6, #0x0 bl FUN_0200A8B8 pop {r4-r6, pc} _02023C2C: mov r1, #0x0 bl FUN_02023BA4 add r1, r4, #0x0 bl FUN_02023AE4 pop {r4-r6, pc} nop _02023C3C: .word 0x0000013A thumb_func_start FUN_02023C40 FUN_02023C40: ; 0x02023C40 mov r0, #0x1e lsl r0, r0, #0x4 bx lr .balign 4 thumb_func_start FUN_02023C48 FUN_02023C48: ; 0x02023C48 push {r4, lr} mov r2, #0x1e add r4, r0, #0x0 mov r1, #0x0 lsl r2, r2, #0x4 blx FUN_020DF4A4 add r0, r4, #0x0 bl FUN_020669A0 add r0, r4, #0x0 add r0, #0xec bl FUN_020669A0 mov r0, #0x76 mov r1, #0x0 lsl r0, r0, #0x2 str r1, [r4, r0] add r0, r0, #0x4 strb r1, [r4, r0] pop {r4, pc} .balign 4 thumb_func_start FUN_02023C74 FUN_02023C74: ; 0x02023C74 mov r2, #0xec mul r2, r1 add r0, r0, r2 bx lr thumb_func_start FUN_02023C7C FUN_02023C7C: ; 0x02023C7C bx lr .balign 4 thumb_func_start FUN_02023C80 FUN_02023C80: ; 0x02023C80 add r0, #0x88 bx lr thumb_func_start FUN_02023C84 FUN_02023C84: ; 0x02023C84 add r0, #0xe8 ldr r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02023C8C FUN_02023C8C: ; 0x02023C8C bx lr .balign 4 thumb_func_start FUN_02023C90 FUN_02023C90: ; 0x02023C90 mov r1, #0x76 lsl r1, r1, #0x2 ldr r0, [r0, r1] bx lr thumb_func_start FUN_02023C98 FUN_02023C98: ; 0x02023C98 mov r1, #0x77 lsl r1, r1, #0x2 ldrb r0, [r0, r1] bx lr thumb_func_start FUN_02023CA0 FUN_02023CA0: ; 0x02023CA0 add r0, #0xe8 str r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02023CA8 FUN_02023CA8: ; 0x02023CA8 add r2, r0, #0x0 add r2, #0xe8 ldr r2, [r2, #0x0] add r0, #0xe8 add r1, r2, r1 str r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02023CB8 FUN_02023CB8: ; 0x02023CB8 mov r2, #0x76 lsl r2, r2, #0x2 str r1, [r0, r2] bx lr thumb_func_start FUN_02023CC0 FUN_02023CC0: ; 0x02023CC0 mov r2, #0x77 lsl r2, r2, #0x2 strb r1, [r0, r2] bx lr thumb_func_start FUN_02023CC8 FUN_02023CC8: ; 0x02023CC8 push {r3-r5, lr} add r5, r0, #0x0 mov r1, #0xc mov r2, #0x0 bl FUN_020672BC add r5, #0xec add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0xc mov r2, #0x0 bl FUN_020672BC cmp r4, r0 beq _02023CEA mov r0, #0x1 pop {r3-r5, pc} _02023CEA: mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02023CF0 FUN_02023CF0: ; 0x02023CF0 push {r3-r4} add r4, r0, #0x0 add r3, r1, #0x0 mov r2, #0x1d _02023CF8: ldmia r3!, {r0-r1} stmia r4!, {r0-r1} sub r2, r2, #0x1 bne _02023CF8 ldr r0, [r3, #0x0] str r0, [r4, #0x0] pop {r3-r4} bx lr thumb_func_start FUN_02023D08 FUN_02023D08: ; 0x02023D08 push {r3-r4} mov r1, #0x0 add r2, r0, #0x0 add r4, r1, #0x0 _02023D10: add r1, r1, #0x1 strh r4, [r2, #0x38] add r2, r2, #0x2 cmp r1, #0x8 blt _02023D10 add r3, r0, #0x0 mov r2, #0x0 _02023D1E: add r1, r3, #0x0 add r1, #0x48 add r4, r4, #0x1 add r3, r3, #0x2 strh r2, [r1, #0x0] cmp r4, #0xb blt _02023D1E ldr r1, _02023D38 ; =0x0000FFFF strh r1, [r0, #0x38] add r0, #0x48 strh r1, [r0, #0x0] pop {r3-r4} bx lr .balign 4 _02023D38: .word 0x0000FFFF thumb_func_start FUN_02023D3C FUN_02023D3C: ; 0x02023D3C push {r4, lr} add r4, r0, #0x0 bl FUN_020669A0 add r0, r4, #0x0 mov r1, #0x0 add r0, #0xe8 add r4, #0x88 str r1, [r0, #0x0] add r0, r4, #0x0 bl FUN_02023D08 pop {r4, pc} .balign 4 thumb_func_start FUN_02023D58 FUN_02023D58: ; 0x02023D58 ldr r3, _02023D60 ; =FUN_02022610 mov r1, #0x8 bx r3 nop _02023D60: .word FUN_02022610 thumb_func_start FUN_02023D64 FUN_02023D64: ; 0x02023D64 mov r0, #0x4f lsl r0, r0, #0x2 bx lr .balign 4 thumb_func_start FUN_02023D6C FUN_02023D6C: ; 0x02023D6C push {r4, lr} mov r1, #0x4f lsl r1, r1, #0x2 bl FUN_02016998 add r4, r0, #0x0 bl FUN_02024378 add r0, r4, #0x0 pop {r4, pc} thumb_func_start FUN_02023D80 FUN_02023D80: ; 0x02023D80 ldr r3, _02023D88 ; =MI_CpuCopy8 mov r2, #0x4f lsl r2, r2, #0x2 bx r3 .balign 4 _02023D88: .word MI_CpuCopy8 thumb_func_start FUN_02023D8C FUN_02023D8C: ; 0x02023D8C push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _02023DE8 ; =0x000001A6 add r4, r1, #0x0 cmp r4, r0 beq _02023DA2 add r0, r0, #0x1 cmp r4, r0 beq _02023DA2 bl ErrorHandling _02023DA2: lsl r1, r4, #0x10 add r0, r5, #0x0 lsr r1, r1, #0x10 bl FUN_020245F0 cmp r0, #0x0 bne _02023DB4 mov r0, #0x0 pop {r3-r5, pc} _02023DB4: ldr r0, _02023DE8 ; =0x000001A6 cmp r4, r0 bne _02023DBE sub r0, #0x9e b _02023DC0 _02023DBE: sub r0, #0x9d _02023DC0: add r0, r5, r0 ldrb r1, [r0, #0x0] mov r2, #0x1 add r0, r1, #0x0 tst r0, r2 bne _02023DCE mov r2, #0x0 _02023DCE: mov r0, #0x2 tst r0, r1 beq _02023DD8 mov r0, #0x1 b _02023DDA _02023DD8: mov r0, #0x0 _02023DDA: cmp r2, r0 bne _02023DE2 mov r0, #0x1 pop {r3-r5, pc} _02023DE2: mov r0, #0x2 pop {r3-r5, pc} nop _02023DE8: .word 0x000001A6 thumb_func_start FUN_02023DEC FUN_02023DEC: ; 0x02023DEC push {r3-r7, lr} add r7, r0, #0x0 ldr r0, _02023E6C ; =0x000001A6 add r6, r1, #0x0 add r5, r2, #0x0 cmp r6, r0 beq _02023E04 add r0, r0, #0x1 cmp r6, r0 beq _02023E04 bl ErrorHandling _02023E04: lsl r1, r6, #0x10 add r0, r7, #0x0 lsr r1, r1, #0x10 bl FUN_020245F0 cmp r0, #0x0 bne _02023E16 mov r0, #0x0 pop {r3-r7, pc} _02023E16: ldr r0, _02023E6C ; =0x000001A6 cmp r6, r0 bne _02023E20 sub r0, #0x9e b _02023E22 _02023E20: sub r0, #0x9d _02023E22: add r4, r7, r0 add r0, r7, #0x0 add r1, r6, #0x0 bl FUN_02023D8C mov r6, #0x0 cmp r0, #0x0 bls _02023E66 mov r1, #0x1 _02023E34: add r2, r6, #0x1 lsl r2, r2, #0x10 lsr r2, r2, #0x10 sub r2, r2, #0x1 lsl r2, r2, #0x10 lsr r3, r2, #0x10 add r7, r3, #0x0 mov r2, #0x7 asr r3, r3, #0x3 and r7, r2 add r2, r1, #0x0 ldrb r3, [r4, r3] lsl r2, r7 tst r2, r3 beq _02023E56 add r2, r1, #0x0 b _02023E58 _02023E56: mov r2, #0x0 _02023E58: cmp r2, r5 bne _02023E60 mov r0, #0x1 pop {r3-r7, pc} _02023E60: add r6, r6, #0x1 cmp r6, r0 blo _02023E34 _02023E66: mov r0, #0x0 pop {r3-r7, pc} nop _02023E6C: .word 0x000001A6 thumb_func_start FUN_02023E70 FUN_02023E70: ; 0x02023E70 push {r3-r7, lr} add r6, r0, #0x0 ldr r0, _02023F28 ; =0x000001A6 add r5, r1, #0x0 add r7, r2, #0x0 cmp r5, r0 beq _02023E88 add r0, r0, #0x1 cmp r5, r0 beq _02023E88 bl ErrorHandling _02023E88: lsl r2, r7, #0x18 add r0, r6, #0x0 add r1, r5, #0x0 lsr r2, r2, #0x18 bl FUN_02023DEC cmp r0, #0x0 bne _02023F26 ldr r0, _02023F28 ; =0x000001A6 cmp r5, r0 bne _02023EA2 sub r0, #0x9e b _02023EA4 _02023EA2: sub r0, #0x9d _02023EA4: add r4, r6, r0 add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_02023D8C add r5, r0, #0x0 cmp r5, #0x2 bge _02023F26 add r0, r5, #0x1 lsl r0, r0, #0x10 lsr r6, r0, #0x10 lsl r0, r7, #0x18 lsr r0, r0, #0x18 cmp r0, #0x2 blo _02023EC6 bl ErrorHandling _02023EC6: sub r0, r6, #0x1 lsl r0, r0, #0x10 lsr r1, r0, #0x10 add r2, r1, #0x0 mov r0, #0x7 and r2, r0 asr r1, r1, #0x3 mov r3, #0x1 lsl r3, r2 ldrb r0, [r4, r1] mvn r3, r3 and r0, r3 strb r0, [r4, r1] lsl r0, r7, #0x18 lsr r6, r0, #0x18 add r0, r6, #0x0 ldrb r3, [r4, r1] lsl r0, r2 orr r0, r3 strb r0, [r4, r1] cmp r5, #0x0 bne _02023F26 add r0, r5, #0x2 lsl r0, r0, #0x10 lsr r5, r0, #0x10 cmp r6, #0x2 blo _02023F00 bl ErrorHandling _02023F00: sub r0, r5, #0x1 lsl r0, r0, #0x10 lsr r2, r0, #0x10 mov r0, #0x7 add r1, r2, #0x0 and r1, r0 asr r0, r2, #0x3 mov r2, #0x1 lsl r2, r1 ldrb r3, [r4, r0] mvn r2, r2 and r2, r3 strb r2, [r4, r0] add r2, r6, #0x0 ldrb r3, [r4, r0] lsl r2, r1 add r1, r3, #0x0 orr r1, r2 strb r1, [r4, r0] _02023F26: pop {r3-r7, pc} .balign 4 _02023F28: .word 0x000001A6 thumb_func_start FUN_02023F2C FUN_02023F2C: ; 0x02023F2C push {r3-r5, lr} add r5, r0, #0x0 mov r0, #0x67 add r4, r1, #0x0 lsl r0, r0, #0x2 cmp r4, r0 beq _02023F44 add r0, r0, #0x1 cmp r4, r0 beq _02023F44 bl ErrorHandling _02023F44: lsl r1, r4, #0x10 add r0, r5, #0x0 lsr r1, r1, #0x10 bl FUN_020245F0 cmp r0, #0x0 bne _02023F56 mov r0, #0x0 pop {r3-r5, pc} _02023F56: mov r0, #0x67 lsl r0, r0, #0x2 cmp r4, r0 bne _02023F62 sub r0, #0x92 b _02023F64 _02023F62: sub r0, #0x91 _02023F64: add r1, r5, r0 mov r0, #0x0 mov r3, #0x3 _02023F6A: lsl r2, r0, #0x10 lsr r5, r2, #0x10 asr r2, r5, #0x2 ldrb r4, [r1, r2] lsl r2, r5, #0x1e lsr r2, r2, #0x1d asr r4, r2 add r2, r4, #0x0 and r2, r3 cmp r2, #0x3 beq _02023F86 add r0, r0, #0x1 cmp r0, #0x3 blt _02023F6A _02023F86: pop {r3-r5, pc} thumb_func_start FUN_02023F88 FUN_02023F88: ; 0x02023F88 push {r4-r6, lr} add r6, r0, #0x0 mov r0, #0x67 add r5, r1, #0x0 lsl r0, r0, #0x2 add r4, r2, #0x0 cmp r5, r0 beq _02023FA2 add r0, r0, #0x1 cmp r5, r0 beq _02023FA2 bl ErrorHandling _02023FA2: lsl r1, r5, #0x10 add r0, r6, #0x0 lsr r1, r1, #0x10 bl FUN_020245F0 cmp r0, #0x0 bne _02023FB4 mov r0, #0x0 pop {r4-r6, pc} _02023FB4: mov r0, #0x67 lsl r0, r0, #0x2 cmp r5, r0 bne _02023FC0 sub r0, #0x92 b _02023FC2 _02023FC0: sub r0, #0x91 _02023FC2: add r1, r6, r0 mov r0, #0x0 mov r3, #0x3 _02023FC8: lsl r2, r0, #0x10 lsr r6, r2, #0x10 asr r2, r6, #0x2 ldrb r5, [r1, r2] lsl r2, r6, #0x1e lsr r2, r2, #0x1d asr r5, r2 add r2, r5, #0x0 and r2, r3 cmp r2, r4 bne _02023FE2 mov r0, #0x1 pop {r4-r6, pc} _02023FE2: add r0, r0, #0x1 cmp r0, #0x3 blt _02023FC8 mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02023FEC FUN_02023FEC: ; 0x02023FEC push {r3-r7, lr} add r6, r0, #0x0 mov r0, #0x67 add r5, r1, #0x0 lsl r0, r0, #0x2 add r7, r2, #0x0 cmp r5, r0 beq _02024006 add r0, r0, #0x1 cmp r5, r0 beq _02024006 bl ErrorHandling _02024006: lsl r2, r7, #0x18 add r0, r6, #0x0 add r1, r5, #0x0 lsr r2, r2, #0x18 bl FUN_02023F88 cmp r0, #0x0 bne _02024064 mov r0, #0x67 lsl r0, r0, #0x2 cmp r5, r0 bne _02024022 sub r0, #0x92 b _02024024 _02024022: sub r0, #0x91 _02024024: add r4, r6, r0 add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_02023F2C add r5, r0, #0x0 cmp r5, #0x3 bge _02024064 lsl r0, r7, #0x18 lsr r0, r0, #0x18 cmp r0, #0x4 blo _02024040 bl ErrorHandling _02024040: lsl r0, r5, #0x10 lsr r2, r0, #0x10 lsl r0, r2, #0x1e lsr r1, r0, #0x1d asr r0, r2, #0x2 mov r2, #0x3 lsl r2, r1 ldrb r3, [r4, r0] mvn r2, r2 and r2, r3 strb r2, [r4, r0] lsl r2, r7, #0x18 lsr r2, r2, #0x18 ldrb r3, [r4, r0] lsl r2, r1 add r1, r3, #0x0 orr r1, r2 strb r1, [r4, r0] _02024064: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02024068 FUN_02024068: ; 0x02024068 push {r4-r6, lr} add r6, r2, #0x0 add r5, r0, #0x0 add r4, r1, #0x0 cmp r6, #0x4 blo _02024078 bl ErrorHandling _02024078: cmp r4, #0xf bls _02024080 bl ErrorHandling _02024080: cmp r6, #0x2 bhs _0202409E lsl r0, r6, #0x2 add r0, #0x18 mov r1, #0xf lsl r1, r0 ldr r2, [r5, #0x40] mvn r1, r1 and r2, r1 add r1, r4, #0x0 lsl r1, r0 add r0, r2, #0x0 orr r0, r1 str r0, [r5, #0x40] pop {r4-r6, pc} _0202409E: sub r0, r6, #0x2 lsl r0, r0, #0x18 add r1, r5, #0x0 lsr r0, r0, #0x16 add r1, #0x80 ldr r2, [r1, #0x0] add r0, #0x18 mov r1, #0xf lsl r1, r0 mvn r1, r1 and r2, r1 add r1, r5, #0x0 add r1, #0x80 str r2, [r1, #0x0] add r1, r5, #0x0 add r1, #0x80 ldr r2, [r1, #0x0] add r1, r4, #0x0 lsl r1, r0 add r0, r2, #0x0 orr r0, r1 add r5, #0x80 str r0, [r5, #0x0] pop {r4-r6, pc} .balign 4 thumb_func_start FUN_020240D0 FUN_020240D0: ; 0x020240D0 push {r3-r6} mov r3, #0xf mov r1, #0x0 add r4, r3, #0x0 _020240D8: lsl r2, r1, #0x18 lsr r6, r2, #0x18 cmp r6, #0x2 bhs _020240EE lsl r2, r6, #0x2 ldr r5, [r0, #0x40] add r2, #0x18 lsr r5, r2 add r2, r5, #0x0 and r2, r4 b _02024102 _020240EE: add r2, r0, #0x0 add r2, #0x80 ldr r5, [r2, #0x0] sub r2, r6, #0x2 lsl r2, r2, #0x18 lsr r2, r2, #0x16 add r2, #0x18 lsr r5, r2 add r2, r5, #0x0 and r2, r3 _02024102: cmp r2, #0xf beq _0202410C add r1, r1, #0x1 cmp r1, #0x4 blt _020240D8 _0202410C: add r0, r1, #0x0 pop {r3-r6} bx lr .balign 4 thumb_func_start FUN_02024114 FUN_02024114: ; 0x02024114 push {r4-r7} mov r2, #0xf mov r6, #0x0 add r3, r2, #0x0 _0202411C: lsl r4, r6, #0x18 lsr r5, r4, #0x18 cmp r5, #0x2 bhs _02024134 ldr r7, [r0, #0x40] lsl r4, r5, #0x2 add r4, #0x18 add r5, r7, #0x0 lsr r5, r4 add r4, r5, #0x0 and r4, r3 b _02024146 _02024134: add r4, r0, #0x0 sub r5, r5, #0x2 add r4, #0x80 lsl r5, r5, #0x18 lsr r5, r5, #0x16 ldr r4, [r4, #0x0] add r5, #0x18 lsr r4, r5 and r4, r2 _02024146: cmp r1, r4 bne _02024150 mov r0, #0x1 pop {r4-r7} bx lr _02024150: add r6, r6, #0x1 cmp r6, #0x4 blt _0202411C mov r0, #0x0 pop {r4-r7} bx lr thumb_func_start FUN_0202415C FUN_0202415C: ; 0x0202415C push {r4-r6, lr} add r5, r0, #0x0 add r6, r1, #0x0 add r0, r2, #0x0 mov r1, #0x70 mov r2, #0x0 bl FUN_020671BC lsl r0, r0, #0x18 lsr r4, r0, #0x18 ldr r0, _02024198 ; =0x00000182 cmp r6, r0 bne _02024196 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02024114 cmp r0, #0x0 bne _02024196 add r0, r5, #0x0 bl FUN_020240D0 add r2, r0, #0x0 lsl r2, r2, #0x18 add r0, r5, #0x0 add r1, r4, #0x0 lsr r2, r2, #0x18 bl FUN_02024068 _02024196: pop {r4-r6, pc} .balign 4 _02024198: .word 0x00000182 thumb_func_start FUN_0202419C FUN_0202419C: ; 0x0202419C push {r4-r6, lr} add r5, r0, #0x0 mov r4, #0x0 mov r6, #0xf _020241A4: lsl r2, r4, #0x18 add r0, r5, #0x0 add r1, r6, #0x0 lsr r2, r2, #0x18 bl FUN_02024068 add r4, r4, #0x1 cmp r4, #0x4 blt _020241A4 pop {r4-r6, pc} thumb_func_start FUN_020241B8 FUN_020241B8: ; 0x020241B8 push {r4-r6, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0xc9 bne _02024210 add r0, r2, #0x0 bl FUN_020690CC lsl r1, r0, #0x18 lsr r3, r1, #0x18 mov r1, #0x43 mov r4, #0x0 add r6, r5, #0x0 lsl r1, r1, #0x2 _020241D4: ldrb r2, [r6, r1] cmp r3, r2 bne _020241DE mov r1, #0x1 b _020241E8 _020241DE: add r4, r4, #0x1 add r6, r6, #0x1 cmp r4, #0x1c blt _020241D4 mov r1, #0x0 _020241E8: cmp r1, #0x0 bne _02024290 mov r1, #0x43 mov r3, #0x0 add r4, r5, #0x0 lsl r1, r1, #0x2 _020241F4: ldrb r2, [r4, r1] cmp r2, #0xff beq _02024202 add r3, r3, #0x1 add r4, r4, #0x1 cmp r3, #0x1c blt _020241F4 _02024202: cmp r3, #0x1c bge _02024290 mov r1, #0x43 add r2, r5, r3 lsl r1, r1, #0x2 strb r0, [r2, r1] pop {r4-r6, pc} _02024210: mov r6, #0x67 lsl r6, r6, #0x2 cmp r4, r6 bne _0202422E add r0, r2, #0x0 mov r1, #0x70 mov r2, #0x0 bl FUN_020671BC add r2, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02023FEC pop {r4-r6, pc} _0202422E: add r3, r6, #0x1 cmp r4, r3 bne _0202424A add r0, r2, #0x0 mov r1, #0x70 mov r2, #0x0 bl FUN_020671BC add r2, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02023FEC pop {r4-r6, pc} _0202424A: add r3, r6, #0x0 add r3, #0xa cmp r4, r3 bne _02024268 add r0, r2, #0x0 mov r1, #0x70 mov r2, #0x0 bl FUN_020671BC add r2, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02023E70 pop {r4-r6, pc} _02024268: add r3, r6, #0x0 add r3, #0xb cmp r4, r3 bne _02024286 add r0, r2, #0x0 mov r1, #0x70 mov r2, #0x0 bl FUN_020671BC add r2, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02023E70 pop {r4-r6, pc} _02024286: sub r6, #0x1a cmp r4, r6 bne _02024290 bl FUN_0202415C _02024290: pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02024294 FUN_02024294: ; 0x02024294 push {r4-r6, lr} add r5, r0, #0x0 add r6, r2, #0x0 add r0, r1, #0x0 bl FUN_02087A50 add r4, r0, #0x0 add r0, r6, #0x0 bl FUN_02087A1C cmp r4, #0xe beq _020242C0 cmp r0, #0x6 beq _020242C0 ldr r1, _020242C4 ; =0x00000129 add r3, r5, r1 ldrb r2, [r3, r4] mov r1, #0x1 lsl r1, r0 add r0, r2, #0x0 orr r0, r1 strb r0, [r3, r4] _020242C0: pop {r4-r6, pc} nop _020242C4: .word 0x00000129 thumb_func_start FUN_020242C8 FUN_020242C8: ; 0x020242C8 push {r4-r6, lr} add r6, r1, #0x0 add r5, r0, #0x0 add r0, r6, #0x0 mov r1, #0x12 add r4, r2, #0x0 bl FUN_02068678 cmp r0, #0xff bne _020242EA cmp r4, #0x0 bne _020242E4 mov r0, #0x2 pop {r4-r6, pc} _020242E4: mov r0, #0x0 mvn r0, r0 pop {r4-r6, pc} _020242EA: sub r0, r6, #0x1 lsl r0, r0, #0x10 lsr r2, r0, #0x10 mov r1, #0x1 mov r0, #0x7 add r3, r2, #0x0 and r3, r0 add r0, r1, #0x0 lsl r0, r3 asr r3, r2, #0x3 add r3, r5, r3 add r3, #0x84 ldrb r3, [r3, #0x0] tst r0, r3 bne _0202430A mov r1, #0x0 _0202430A: lsl r0, r1, #0x18 lsr r1, r0, #0x18 cmp r4, #0x1 bne _0202433A add r4, r2, #0x0 asr r2, r2, #0x3 add r2, r5, r2 mov r0, #0x7 add r2, #0xc4 mov r3, #0x1 and r4, r0 add r0, r3, #0x0 ldrb r2, [r2, #0x0] lsl r0, r4 tst r0, r2 bne _0202432C mov r3, #0x0 _0202432C: lsl r0, r3, #0x18 lsr r0, r0, #0x18 cmp r0, r1 bne _0202433C mov r0, #0x0 mvn r0, r0 pop {r4-r6, pc} _0202433A: add r0, r1, #0x0 _0202433C: pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02024340 FUN_02024340: ; 0x02024340 push {r4-r5} mov r3, #0x0 ldr r5, _02024360 ; =0x020EE942 mov r4, #0x1 add r1, r3, #0x0 _0202434A: ldrh r2, [r5, #0x0] cmp r0, r2 bne _02024352 add r4, r1, #0x0 _02024352: add r3, r3, #0x1 add r5, r5, #0x2 cmp r3, #0xb blt _0202434A add r0, r4, #0x0 pop {r4-r5} bx lr .balign 4 _02024360: .word 0x020EE942 thumb_func_start FUN_02024364 FUN_02024364: ; 0x02024364 ldr r1, _02024374 ; =0x000001EA mov r2, #0x1 cmp r0, r1 bne _0202436E mov r2, #0x0 _0202436E: add r0, r2, #0x0 bx lr nop _02024374: .word 0x000001EA thumb_func_start FUN_02024378 FUN_02024378: ; 0x02024378 push {r4, lr} mov r2, #0x4f mov r1, #0x0 lsl r2, r2, #0x2 add r4, r0, #0x0 blx FUN_020DF4A4 ldr r0, _020243C0 ; =0xBEEFCAFE mov r1, #0x0 str r0, [r4, #0x0] ldr r0, _020243C4 ; =0x00000139 mov r2, #0x1c strb r1, [r4, r0] sub r0, #0x2d add r0, r4, r0 mov r1, #0xff blx FUN_020DF4A4 mov r1, #0xff add r0, r1, #0x0 add r0, #0x9 strb r1, [r4, r0] add r0, r1, #0x0 add r0, #0xa strb r1, [r4, r0] add r0, r1, #0x0 add r0, #0xb strb r1, [r4, r0] add r0, r1, #0x0 add r0, #0xc strb r1, [r4, r0] add r0, r4, #0x0 bl FUN_0202419C pop {r4, pc} nop _020243C0: .word 0xBEEFCAFE _020243C4: .word 0x00000139 thumb_func_start FUN_020243C8 FUN_020243C8: ; 0x020243C8 push {r3-r7, lr} add r6, r0, #0x0 ldr r1, [r6, #0x0] ldr r0, _020243FC ; =0xBEEFCAFE cmp r1, r0 beq _020243D8 bl ErrorHandling _020243D8: ldr r7, _02024400 ; =0x000001ED mov r5, #0x0 mov r4, #0x1 _020243DE: lsl r1, r4, #0x10 add r0, r6, #0x0 lsr r1, r1, #0x10 bl FUN_02024594 cmp r0, #0x1 bne _020243EE add r5, r5, #0x1 _020243EE: add r4, r4, #0x1 cmp r4, r7 ble _020243DE lsl r0, r5, #0x10 lsr r0, r0, #0x10 pop {r3-r7, pc} nop _020243FC: .word 0xBEEFCAFE _02024400: .word 0x000001ED thumb_func_start FUN_02024404 FUN_02024404: ; 0x02024404 push {r3-r7, lr} add r6, r0, #0x0 ldr r1, [r6, #0x0] ldr r0, _02024438 ; =0xBEEFCAFE cmp r1, r0 beq _02024414 bl ErrorHandling _02024414: ldr r7, _0202443C ; =0x000001ED mov r5, #0x0 mov r4, #0x1 _0202441A: lsl r1, r4, #0x10 add r0, r6, #0x0 lsr r1, r1, #0x10 bl FUN_020245F0 cmp r0, #0x1 bne _0202442A add r5, r5, #0x1 _0202442A: add r4, r4, #0x1 cmp r4, r7 ble _0202441A lsl r0, r5, #0x10 lsr r0, r0, #0x10 pop {r3-r7, pc} nop _02024438: .word 0xBEEFCAFE _0202443C: .word 0x000001ED thumb_func_start FUN_02024440 FUN_02024440: ; 0x02024440 push {r4, lr} add r4, r0, #0x0 bl FUN_02024CA4 cmp r0, #0x0 beq _02024454 add r0, r4, #0x0 bl FUN_02024404 pop {r4, pc} _02024454: add r0, r4, #0x0 bl FUN_020244A4 pop {r4, pc} thumb_func_start FUN_0202445C FUN_0202445C: ; 0x0202445C push {r3-r7, lr} add r6, r0, #0x0 ldr r1, [r6, #0x0] ldr r0, _0202449C ; =0xBEEFCAFE cmp r1, r0 beq _0202446C bl ErrorHandling _0202446C: ldr r7, _020244A0 ; =0x000001ED mov r5, #0x0 mov r4, #0x1 _02024472: lsl r1, r4, #0x10 add r0, r6, #0x0 lsr r1, r1, #0x10 bl FUN_02024594 cmp r0, #0x1 bne _0202448E lsl r0, r4, #0x10 lsr r0, r0, #0x10 bl FUN_02069B40 cmp r0, #0x0 beq _0202448E add r5, r5, #0x1 _0202448E: add r4, r4, #0x1 cmp r4, r7 ble _02024472 lsl r0, r5, #0x10 lsr r0, r0, #0x10 pop {r3-r7, pc} nop _0202449C: .word 0xBEEFCAFE _020244A0: .word 0x000001ED thumb_func_start FUN_020244A4 FUN_020244A4: ; 0x020244A4 push {r3-r7, lr} add r6, r0, #0x0 ldr r1, [r6, #0x0] ldr r0, _020244E4 ; =0xBEEFCAFE cmp r1, r0 beq _020244B4 bl ErrorHandling _020244B4: ldr r7, _020244E8 ; =0x000001ED mov r5, #0x0 mov r4, #0x1 _020244BA: lsl r1, r4, #0x10 add r0, r6, #0x0 lsr r1, r1, #0x10 bl FUN_020245F0 cmp r0, #0x1 bne _020244D6 lsl r0, r4, #0x10 lsr r0, r0, #0x10 bl FUN_02069B40 cmp r0, #0x0 beq _020244D6 add r5, r5, #0x1 _020244D6: add r4, r4, #0x1 cmp r4, r7 ble _020244BA lsl r0, r5, #0x10 lsr r0, r0, #0x10 pop {r3-r7, pc} nop _020244E4: .word 0xBEEFCAFE _020244E8: .word 0x000001ED thumb_func_start FUN_020244EC FUN_020244EC: ; 0x020244EC push {r3, lr} bl FUN_02024518 ldr r1, _02024500 ; =0x000001E2 cmp r0, r1 blo _020244FC mov r0, #0x1 pop {r3, pc} _020244FC: mov r0, #0x0 pop {r3, pc} .balign 4 _02024500: .word 0x000001E2 thumb_func_start FUN_02024504 FUN_02024504: ; 0x02024504 push {r3, lr} bl FUN_02024550 cmp r0, #0x96 blo _02024512 mov r0, #0x1 pop {r3, pc} _02024512: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_02024518 FUN_02024518: ; 0x02024518 push {r3-r7, lr} ldr r7, _0202454C ; =0x000001ED add r6, r0, #0x0 mov r5, #0x0 mov r4, #0x1 _02024522: lsl r1, r4, #0x10 add r0, r6, #0x0 lsr r1, r1, #0x10 bl FUN_02024594 cmp r0, #0x1 bne _02024542 lsl r0, r4, #0x10 lsr r0, r0, #0x10 bl FUN_02024340 cmp r0, #0x1 bne _02024542 add r0, r5, #0x1 lsl r0, r0, #0x10 lsr r5, r0, #0x10 _02024542: add r4, r4, #0x1 cmp r4, r7 ble _02024522 add r0, r5, #0x0 pop {r3-r7, pc} .balign 4 _0202454C: .word 0x000001ED thumb_func_start FUN_02024550 FUN_02024550: ; 0x02024550 push {r3-r7, lr} ldr r7, _02024590 ; =0x000001ED add r6, r0, #0x0 mov r5, #0x0 mov r4, #0x1 _0202455A: lsl r1, r4, #0x10 add r0, r6, #0x0 lsr r1, r1, #0x10 bl FUN_020245F0 cmp r0, #0x1 bne _02024586 lsl r0, r4, #0x10 lsr r0, r0, #0x10 bl FUN_02069B40 cmp r0, #0x0 beq _02024586 lsl r0, r4, #0x10 lsr r0, r0, #0x10 bl FUN_02024364 cmp r0, #0x1 bne _02024586 add r0, r5, #0x1 lsl r0, r0, #0x10 lsr r5, r0, #0x10 _02024586: add r4, r4, #0x1 cmp r4, r7 ble _0202455A add r0, r5, #0x0 pop {r3-r7, pc} .balign 4 _02024590: .word 0x000001ED thumb_func_start FUN_02024594 FUN_02024594: ; 0x02024594 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x0] ldr r0, _020245E8 ; =0xBEEFCAFE cmp r1, r0 beq _020245A6 bl ErrorHandling _020245A6: cmp r4, #0x0 beq _020245B0 ldr r0, _020245EC ; =0x000001ED cmp r4, r0 bls _020245B8 _020245B0: bl ErrorHandling mov r0, #0x1 b _020245BA _020245B8: mov r0, #0x0 _020245BA: cmp r0, #0x0 beq _020245C2 mov r0, #0x0 pop {r3-r5, pc} _020245C2: sub r0, r4, #0x1 lsl r0, r0, #0x10 lsr r2, r0, #0x10 mov r0, #0x1 mov r1, #0x7 and r1, r2 add r3, r0, #0x0 lsl r3, r1 asr r1, r2, #0x3 add r2, r5, r1 ldrb r1, [r2, #0x4] tst r1, r3 beq _020245E4 add r2, #0x44 ldrb r1, [r2, #0x0] tst r1, r3 bne _020245E6 _020245E4: mov r0, #0x0 _020245E6: pop {r3-r5, pc} .balign 4 _020245E8: .word 0xBEEFCAFE _020245EC: .word 0x000001ED thumb_func_start FUN_020245F0 FUN_020245F0: ; 0x020245F0 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x0] ldr r0, _02024640 ; =0xBEEFCAFE cmp r1, r0 beq _02024602 bl ErrorHandling _02024602: cmp r4, #0x0 beq _0202460C ldr r0, _02024644 ; =0x000001ED cmp r4, r0 bls _02024614 _0202460C: bl ErrorHandling mov r0, #0x1 b _02024616 _02024614: mov r0, #0x0 _02024616: cmp r0, #0x0 beq _0202461E mov r0, #0x0 pop {r3-r5, pc} _0202461E: sub r0, r4, #0x1 lsl r0, r0, #0x10 lsr r3, r0, #0x10 mov r0, #0x1 mov r1, #0x7 and r1, r3 add r2, r0, #0x0 lsl r2, r1 asr r1, r3, #0x3 add r1, r5, r1 add r1, #0x44 ldrb r1, [r1, #0x0] tst r1, r2 bne _0202463C mov r0, #0x0 _0202463C: pop {r3-r5, pc} nop _02024640: .word 0xBEEFCAFE _02024644: .word 0x000001ED thumb_func_start FUN_02024648 FUN_02024648: ; 0x02024648 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x0] ldr r0, _02024670 ; =0xBEEFCAFE cmp r1, r0 beq _0202465A bl ErrorHandling _0202465A: cmp r4, #0x0 bne _02024666 mov r0, #0x41 lsl r0, r0, #0x2 ldr r6, [r5, r0] b _0202466A _02024666: bl ErrorHandling _0202466A: add r0, r6, #0x0 pop {r4-r6, pc} nop _02024670: .word 0xBEEFCAFE thumb_func_start FUN_02024674 FUN_02024674: ; 0x02024674 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x0] ldr r0, _020246D4 ; =0xBEEFCAFE add r6, r2, #0x0 cmp r1, r0 beq _02024688 bl ErrorHandling _02024688: cmp r4, #0x0 beq _02024692 ldr r0, _020246D8 ; =0x000001ED cmp r4, r0 bls _0202469A _02024692: bl ErrorHandling mov r0, #0x1 b _0202469C _0202469A: mov r0, #0x0 _0202469C: cmp r0, #0x0 beq _020246A6 mov r0, #0x0 mvn r0, r0 pop {r4-r6, pc} _020246A6: sub r0, r4, #0x1 lsl r0, r0, #0x10 lsr r2, r0, #0x10 add r3, r2, #0x0 asr r2, r2, #0x3 add r2, r5, r2 mov r0, #0x7 add r2, #0x44 mov r1, #0x1 and r3, r0 ldrb r2, [r2, #0x0] lsl r1, r3 tst r1, r2 beq _020246CE add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_020242C8 pop {r4-r6, pc} _020246CE: sub r0, #0x8 pop {r4-r6, pc} nop _020246D4: .word 0xBEEFCAFE _020246D8: .word 0x000001ED thumb_func_start FUN_020246DC FUN_020246DC: ; 0x020246DC push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x0] ldr r0, _02024718 ; =0xBEEFCAFE cmp r1, r0 beq _020246EE bl ErrorHandling _020246EE: mov r0, #0x43 mov r2, #0x0 lsl r0, r0, #0x2 _020246F4: add r1, r5, r2 ldrb r1, [r1, r0] cmp r1, #0xff beq _02024702 add r2, r2, #0x1 cmp r2, #0x1c blt _020246F4 _02024702: cmp r2, r4 bgt _0202470C mov r0, #0x0 mvn r0, r0 pop {r3-r5, pc} _0202470C: mov r0, #0x43 add r1, r5, r4 lsl r0, r0, #0x2 ldrb r0, [r1, r0] pop {r3-r5, pc} nop _02024718: .word 0xBEEFCAFE thumb_func_start FUN_0202471C FUN_0202471C: ; 0x0202471C push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _02024744 ; =0xBEEFCAFE cmp r1, r0 beq _0202472C bl ErrorHandling _0202472C: mov r1, #0x43 mov r0, #0x0 lsl r1, r1, #0x2 _02024732: add r2, r4, r0 ldrb r2, [r2, r1] cmp r2, #0xff beq _02024740 add r0, r0, #0x1 cmp r0, #0x1c blt _02024732 _02024740: pop {r4, pc} nop _02024744: .word 0xBEEFCAFE thumb_func_start FUN_02024748 FUN_02024748: ; 0x02024748 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x0] ldr r0, _0202479C ; =0xBEEFCAFE cmp r1, r0 beq _0202475A bl ErrorHandling _0202475A: ldr r1, _020247A0 ; =0x000001A6 add r0, r5, #0x0 bl FUN_02023D8C cmp r0, r4 bgt _0202476C mov r0, #0x0 mvn r0, r0 pop {r3-r5, pc} _0202476C: cmp r4, #0x2 blt _02024774 bl ErrorHandling _02024774: add r0, r4, #0x1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 sub r0, r0, #0x1 lsl r0, r0, #0x10 lsr r2, r0, #0x10 mov r0, #0x1 mov r1, #0x7 and r1, r2 add r3, r0, #0x0 lsl r3, r1 asr r1, r2, #0x3 add r2, r5, r1 mov r1, #0x42 lsl r1, r1, #0x2 ldrb r1, [r2, r1] tst r1, r3 bne _0202479A mov r0, #0x0 _0202479A: pop {r3-r5, pc} .balign 4 _0202479C: .word 0xBEEFCAFE _020247A0: .word 0x000001A6 thumb_func_start FUN_020247A4 FUN_020247A4: ; 0x020247A4 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _020247C0 ; =0xBEEFCAFE cmp r1, r0 beq _020247B4 bl ErrorHandling _020247B4: ldr r1, _020247C4 ; =0x000001A6 add r0, r4, #0x0 bl FUN_02023D8C pop {r4, pc} nop _020247C0: .word 0xBEEFCAFE _020247C4: .word 0x000001A6 thumb_func_start FUN_020247C8 FUN_020247C8: ; 0x020247C8 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x0] ldr r0, _0202481C ; =0xBEEFCAFE cmp r1, r0 beq _020247DA bl ErrorHandling _020247DA: ldr r1, _02024820 ; =0x000001A7 add r0, r5, #0x0 bl FUN_02023D8C cmp r0, r4 bgt _020247EC mov r0, #0x0 mvn r0, r0 pop {r3-r5, pc} _020247EC: cmp r4, #0x2 blt _020247F4 bl ErrorHandling _020247F4: add r0, r4, #0x1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 sub r0, r0, #0x1 lsl r0, r0, #0x10 lsr r2, r0, #0x10 mov r0, #0x1 mov r1, #0x7 and r1, r2 add r3, r0, #0x0 lsl r3, r1 asr r1, r2, #0x3 add r2, r5, r1 ldr r1, _02024824 ; =0x00000109 ldrb r1, [r2, r1] tst r1, r3 bne _02024818 mov r0, #0x0 _02024818: pop {r3-r5, pc} nop _0202481C: .word 0xBEEFCAFE _02024820: .word 0x000001A7 _02024824: .word 0x00000109 thumb_func_start FUN_02024828 FUN_02024828: ; 0x02024828 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _02024844 ; =0xBEEFCAFE cmp r1, r0 beq _02024838 bl ErrorHandling _02024838: ldr r1, _02024848 ; =0x000001A7 add r0, r4, #0x0 bl FUN_02023D8C pop {r4, pc} nop _02024844: .word 0xBEEFCAFE _02024848: .word 0x000001A7 thumb_func_start FUN_0202484C FUN_0202484C: ; 0x0202484C push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x0] ldr r0, _02024894 ; =0xBEEFCAFE cmp r1, r0 beq _0202485E bl ErrorHandling _0202485E: mov r1, #0x67 add r0, r5, #0x0 lsl r1, r1, #0x2 bl FUN_02023F2C cmp r0, r4 bgt _02024872 mov r0, #0x0 mvn r0, r0 pop {r3-r5, pc} _02024872: cmp r4, #0x3 blt _0202487A bl ErrorHandling _0202487A: lsl r0, r4, #0x10 lsr r2, r0, #0x10 asr r0, r2, #0x2 add r1, r5, r0 ldr r0, _02024898 ; =0x0000010A ldrb r1, [r1, r0] lsl r0, r2, #0x1e lsr r0, r0, #0x1d asr r1, r0 mov r0, #0x3 and r0, r1 pop {r3-r5, pc} nop _02024894: .word 0xBEEFCAFE _02024898: .word 0x0000010A thumb_func_start FUN_0202489C FUN_0202489C: ; 0x0202489C push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _020248B8 ; =0xBEEFCAFE cmp r1, r0 beq _020248AC bl ErrorHandling _020248AC: mov r1, #0x67 add r0, r4, #0x0 lsl r1, r1, #0x2 bl FUN_02023F2C pop {r4, pc} .balign 4 _020248B8: .word 0xBEEFCAFE thumb_func_start FUN_020248BC FUN_020248BC: ; 0x020248BC push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x0] ldr r0, _02024900 ; =0xBEEFCAFE cmp r1, r0 beq _020248CE bl ErrorHandling _020248CE: ldr r1, _02024904 ; =0x0000019D add r0, r5, #0x0 bl FUN_02023F2C cmp r0, r4 bgt _020248E0 mov r0, #0x0 mvn r0, r0 pop {r3-r5, pc} _020248E0: cmp r4, #0x3 blt _020248E8 bl ErrorHandling _020248E8: lsl r0, r4, #0x10 lsr r2, r0, #0x10 asr r0, r2, #0x2 add r1, r5, r0 ldr r0, _02024908 ; =0x0000010B ldrb r1, [r1, r0] lsl r0, r2, #0x1e lsr r0, r0, #0x1d asr r1, r0 mov r0, #0x3 and r0, r1 pop {r3-r5, pc} .balign 4 _02024900: .word 0xBEEFCAFE _02024904: .word 0x0000019D _02024908: .word 0x0000010B thumb_func_start FUN_0202490C FUN_0202490C: ; 0x0202490C push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _02024928 ; =0xBEEFCAFE cmp r1, r0 beq _0202491C bl ErrorHandling _0202491C: ldr r1, _0202492C ; =0x0000019D add r0, r4, #0x0 bl FUN_02023F2C pop {r4, pc} nop _02024928: .word 0xBEEFCAFE _0202492C: .word 0x0000019D thumb_func_start FUN_02024930 FUN_02024930: ; 0x02024930 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x0] ldr r0, _0202496C ; =0xBEEFCAFE cmp r1, r0 beq _02024942 bl ErrorHandling _02024942: lsl r0, r4, #0x18 lsr r0, r0, #0x18 cmp r0, #0x2 bhs _02024958 lsl r0, r0, #0x2 ldr r1, [r5, #0x40] add r0, #0x18 lsr r1, r0 mov r0, #0xf and r0, r1 pop {r3-r5, pc} _02024958: add r5, #0x80 sub r0, r0, #0x2 lsl r0, r0, #0x18 ldr r1, [r5, #0x0] lsr r0, r0, #0x16 add r0, #0x18 lsr r1, r0 mov r0, #0xf and r0, r1 pop {r3-r5, pc} .balign 4 _0202496C: .word 0xBEEFCAFE thumb_func_start FUN_02024970 FUN_02024970: ; 0x02024970 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _02024988 ; =0xBEEFCAFE cmp r1, r0 beq _02024980 bl ErrorHandling _02024980: add r0, r4, #0x0 bl FUN_020240D0 pop {r4, pc} .balign 4 _02024988: .word 0xBEEFCAFE thumb_func_start FUN_0202498C FUN_0202498C: ; 0x0202498C push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 str r1, [sp, #0x0] add r0, r1, #0x0 mov r1, #0x5 mov r2, #0x0 bl FUN_020671BC lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x4] mov r1, #0x0 ldr r0, [sp, #0x0] add r2, r1, #0x0 bl FUN_020671BC add r7, r0, #0x0 ldr r0, [sp, #0x0] bl FUN_020689E0 add r6, r0, #0x0 ldr r1, [r5, #0x0] ldr r0, _02024AE4 ; =0xBEEFCAFE cmp r1, r0 beq _020249C4 bl ErrorHandling _020249C4: ldr r0, [sp, #0x4] cmp r0, #0x0 beq _020249D0 ldr r1, _02024AE8 ; =0x000001ED cmp r0, r1 bls _020249D8 _020249D0: bl ErrorHandling mov r0, #0x1 b _020249DA _020249D8: mov r0, #0x0 _020249DA: cmp r0, #0x0 bne _02024ADE ldr r0, [sp, #0x4] mov r2, #0x1 sub r0, r0, #0x1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 mov r0, #0x7 and r0, r4 add r1, r2, #0x0 lsl r1, r0 asr r0, r4, #0x3 add r3, r5, r0 add r3, #0x44 ldrb r3, [r3, #0x0] tst r3, r1 bne _02024A70 ldr r1, _02024AEC ; =0x00000147 ldr r0, [sp, #0x4] cmp r0, r1 bne _02024A08 sub r1, #0x43 str r7, [r5, r1] _02024A08: lsl r0, r6, #0x18 lsr r6, r0, #0x18 cmp r6, #0x2 bls _02024A14 bl ErrorHandling _02024A14: cmp r6, #0x2 bne _02024A1A mov r6, #0x0 _02024A1A: cmp r6, #0x2 blo _02024A22 bl ErrorHandling _02024A22: add r2, r5, #0x0 mov r0, #0x7 add r3, r4, #0x0 and r3, r0 mov r0, #0x1 lsl r0, r3 add r2, #0xc4 asr r1, r4, #0x3 ldrb r7, [r2, r1] mvn r0, r0 and r0, r7 strb r0, [r2, r1] add r0, r6, #0x0 ldrb r7, [r2, r1] lsl r0, r3 orr r0, r7 strb r0, [r2, r1] cmp r6, #0x2 blo _02024A4C bl ErrorHandling _02024A4C: add r1, r5, #0x0 mov r0, #0x7 add r2, r4, #0x0 and r2, r0 mov r3, #0x1 lsl r3, r2 add r1, #0x84 asr r0, r4, #0x3 ldrb r7, [r1, r0] mvn r3, r3 lsl r6, r2 and r3, r7 strb r3, [r1, r0] ldrb r3, [r1, r0] add r2, r3, #0x0 orr r2, r6 strb r2, [r1, r0] b _02024AC0 _02024A70: add r0, r5, r0 add r0, #0x84 ldrb r0, [r0, #0x0] tst r0, r1 bne _02024A7C mov r2, #0x0 _02024A7C: lsl r0, r2, #0x18 lsr r0, r0, #0x18 cmp r0, r6 beq _02024AC0 lsl r0, r6, #0x18 lsr r6, r0, #0x18 cmp r6, #0x2 bls _02024A90 bl ErrorHandling _02024A90: cmp r6, #0x2 bne _02024A96 mov r6, #0x0 _02024A96: cmp r6, #0x2 blo _02024A9E bl ErrorHandling _02024A9E: add r1, r5, #0x0 mov r0, #0x7 add r2, r4, #0x0 and r2, r0 mov r3, #0x1 lsl r3, r2 add r1, #0xc4 asr r0, r4, #0x3 ldrb r7, [r1, r0] mvn r3, r3 lsl r6, r2 and r3, r7 strb r3, [r1, r0] ldrb r3, [r1, r0] add r2, r3, #0x0 orr r2, r6 strb r2, [r1, r0] _02024AC0: ldr r1, [sp, #0x4] ldr r2, [sp, #0x0] add r0, r5, #0x0 bl FUN_020241B8 mov r1, #0x7 add r5, #0x44 asr r0, r4, #0x3 ldrb r3, [r5, r0] mov r2, #0x1 and r1, r4 lsl r2, r1 add r1, r3, #0x0 orr r1, r2 strb r1, [r5, r0] _02024ADE: add sp, #0x8 pop {r3-r7, pc} nop _02024AE4: .word 0xBEEFCAFE _02024AE8: .word 0x000001ED _02024AEC: .word 0x00000147 thumb_func_start FUN_02024AF0 FUN_02024AF0: ; 0x02024AF0 push {r4-r7, lr} sub sp, #0x14 add r4, r0, #0x0 str r1, [sp, #0x0] add r0, r1, #0x0 mov r1, #0x5 mov r2, #0x0 bl FUN_020671BC lsl r0, r0, #0x10 lsr r6, r0, #0x10 ldr r0, [sp, #0x0] mov r1, #0xc mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0x8] mov r1, #0x0 ldr r0, [sp, #0x0] add r2, r1, #0x0 bl FUN_020671BC str r0, [sp, #0x4] ldr r0, [sp, #0x0] bl FUN_020689E0 add r7, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _02024C78 ; =0xBEEFCAFE cmp r1, r0 beq _02024B32 bl ErrorHandling _02024B32: cmp r6, #0x0 beq _02024B3C ldr r0, _02024C7C ; =0x000001ED cmp r6, r0 bls _02024B44 _02024B3C: bl ErrorHandling mov r0, #0x1 b _02024B46 _02024B44: mov r0, #0x0 _02024B46: cmp r0, #0x0 beq _02024B4C b _02024C72 _02024B4C: sub r0, r6, #0x1 lsl r0, r0, #0x10 lsr r5, r0, #0x10 mov r0, #0x1 mov r1, #0x7 and r1, r5 add r2, r0, #0x0 asr r3, r5, #0x3 lsl r2, r1 add r1, r4, r3 add r1, #0x44 ldrb r1, [r1, #0x0] tst r1, r2 bne _02024BEA ldr r1, _02024C80 ; =0x00000147 cmp r6, r1 bne _02024B74 ldr r0, [sp, #0x4] sub r1, #0x43 str r0, [r4, r1] _02024B74: lsl r0, r7, #0x18 lsr r7, r0, #0x18 cmp r7, #0x2 bls _02024B80 bl ErrorHandling _02024B80: cmp r7, #0x2 bne _02024B86 mov r7, #0x0 _02024B86: cmp r7, #0x2 blo _02024B8E bl ErrorHandling _02024B8E: mov r0, #0x7 and r0, r5 str r0, [sp, #0x10] add r0, r4, #0x0 add r0, #0xc4 asr r3, r5, #0x3 ldrb r1, [r0, r3] mov r2, #0x1 str r1, [sp, #0xc] ldr r1, [sp, #0x10] lsl r2, r1 ldr r1, [sp, #0xc] mvn r2, r2 and r1, r2 strb r1, [r0, r3] ldrb r1, [r0, r3] add r2, r7, #0x0 mov r12, r1 ldr r1, [sp, #0x10] lsl r2, r1 mov r1, r12 orr r1, r2 strb r1, [r0, r3] cmp r7, #0x2 blo _02024BC4 bl ErrorHandling _02024BC4: add r1, r4, #0x0 mov r0, #0x7 add r2, r5, #0x0 and r2, r0 mov r3, #0x1 lsl r3, r2 add r1, #0x84 asr r0, r5, #0x3 ldrb r5, [r1, r0] mvn r3, r3 and r3, r5 strb r3, [r1, r0] add r5, r7, #0x0 ldrb r3, [r1, r0] lsl r5, r2 add r2, r3, #0x0 orr r2, r5 strb r2, [r1, r0] b _02024C3C _02024BEA: add r1, r4, r3 add r1, #0x84 ldrb r1, [r1, #0x0] tst r1, r2 bne _02024BF6 mov r0, #0x0 _02024BF6: lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r0, r7 beq _02024C3C lsl r0, r7, #0x18 lsr r7, r0, #0x18 cmp r7, #0x2 bls _02024C0A bl ErrorHandling _02024C0A: cmp r7, #0x2 bne _02024C10 mov r7, #0x0 _02024C10: cmp r7, #0x2 blo _02024C18 bl ErrorHandling _02024C18: add r1, r4, #0x0 mov r0, #0x7 add r2, r5, #0x0 and r2, r0 mov r3, #0x1 lsl r3, r2 add r1, #0xc4 asr r0, r5, #0x3 ldrb r5, [r1, r0] mvn r3, r3 and r3, r5 strb r3, [r1, r0] add r5, r7, #0x0 ldrb r3, [r1, r0] lsl r5, r2 add r2, r3, #0x0 orr r2, r5 strb r2, [r1, r0] _02024C3C: ldr r2, [sp, #0x0] add r0, r4, #0x0 add r1, r6, #0x0 bl FUN_020241B8 ldr r2, [sp, #0x8] add r0, r4, #0x0 add r1, r6, #0x0 bl FUN_02024294 sub r0, r6, #0x1 lsl r0, r0, #0x10 lsr r6, r0, #0x10 add r1, r4, #0x4 asr r0, r6, #0x3 mov r2, #0x7 ldrb r5, [r1, r0] mov r3, #0x1 and r2, r6 lsl r3, r2 add r2, r5, #0x0 orr r2, r3 add r4, #0x44 strb r2, [r1, r0] ldrb r1, [r4, r0] orr r1, r3 strb r1, [r4, r0] _02024C72: add sp, #0x14 pop {r4-r7, pc} nop _02024C78: .word 0xBEEFCAFE _02024C7C: .word 0x000001ED _02024C80: .word 0x00000147 thumb_func_start FUN_02024C84 FUN_02024C84: ; 0x02024C84 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _02024C9C ; =0xBEEFCAFE cmp r1, r0 beq _02024C94 bl ErrorHandling _02024C94: ldr r0, _02024CA0 ; =0x00000139 mov r1, #0x1 strb r1, [r4, r0] pop {r4, pc} .balign 4 _02024C9C: .word 0xBEEFCAFE _02024CA0: .word 0x00000139 thumb_func_start FUN_02024CA4 FUN_02024CA4: ; 0x02024CA4 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _02024CBC ; =0xBEEFCAFE cmp r1, r0 beq _02024CB4 bl ErrorHandling _02024CB4: ldr r0, _02024CC0 ; =0x00000139 ldrb r0, [r4, r0] pop {r4, pc} nop _02024CBC: .word 0xBEEFCAFE _02024CC0: .word 0x00000139 thumb_func_start FUN_02024CC4 FUN_02024CC4: ; 0x02024CC4 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _02024CDC ; =0xBEEFCAFE cmp r1, r0 beq _02024CD4 bl ErrorHandling _02024CD4: mov r0, #0x4a lsl r0, r0, #0x2 ldrb r0, [r4, r0] pop {r4, pc} .balign 4 _02024CDC: .word 0xBEEFCAFE thumb_func_start FUN_02024CE0 FUN_02024CE0: ; 0x02024CE0 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _02024CFC ; =0xBEEFCAFE cmp r1, r0 beq _02024CF0 bl ErrorHandling _02024CF0: mov r0, #0x4a mov r1, #0x1 lsl r0, r0, #0x2 strb r1, [r4, r0] pop {r4, pc} nop _02024CFC: .word 0xBEEFCAFE thumb_func_start FUN_02024D00 FUN_02024D00: ; 0x02024D00 push {r4-r6, lr} add r6, r2, #0x0 add r4, r0, #0x0 add r5, r1, #0x0 cmp r6, #0x8 blo _02024D10 bl ErrorHandling _02024D10: ldr r1, [r4, #0x0] ldr r0, _02024D44 ; =0xBEEFCAFE cmp r1, r0 beq _02024D1C bl ErrorHandling _02024D1C: add r0, r5, #0x0 bl FUN_02087A50 add r5, r0, #0x0 cmp r5, #0xe bne _02024D2C mov r0, #0x0 pop {r4-r6, pc} _02024D2C: add r0, r6, #0x0 bl FUN_02087A1C mov r1, #0x1 add r2, r1, #0x0 lsl r2, r0 ldr r0, _02024D48 ; =0x00000129 add r1, r4, r5 ldrb r0, [r1, r0] and r0, r2 pop {r4-r6, pc} nop _02024D44: .word 0xBEEFCAFE _02024D48: .word 0x00000129 thumb_func_start FUN_02024D4C FUN_02024D4C: ; 0x02024D4C ldr r1, _02024D54 ; =0x00000137 mov r2, #0x1 strb r2, [r0, r1] bx lr .balign 4 _02024D54: .word 0x00000137 thumb_func_start FUN_02024D58 FUN_02024D58: ; 0x02024D58 ldr r1, _02024D60 ; =0x00000137 ldrb r0, [r0, r1] bx lr nop _02024D60: .word 0x00000137 thumb_func_start FUN_02024D64 FUN_02024D64: ; 0x02024D64 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _02024D7C ; =0xBEEFCAFE cmp r1, r0 beq _02024D74 bl ErrorHandling _02024D74: mov r0, #0x4e lsl r0, r0, #0x2 ldrb r0, [r4, r0] pop {r4, pc} .balign 4 _02024D7C: .word 0xBEEFCAFE thumb_func_start FUN_02024D80 FUN_02024D80: ; 0x02024D80 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _02024D9C ; =0xBEEFCAFE cmp r1, r0 beq _02024D90 bl ErrorHandling _02024D90: mov r0, #0x4e mov r1, #0x1 lsl r0, r0, #0x2 strb r1, [r4, r0] pop {r4, pc} nop _02024D9C: .word 0xBEEFCAFE thumb_func_start FUN_02024DA0 FUN_02024DA0: ; 0x02024DA0 ldr r3, _02024DA8 ; =FUN_02022610 mov r1, #0x7 bx r3 nop _02024DA8: .word FUN_02022610 thumb_func_start FUN_02024DAC FUN_02024DAC: ; 0x02024DAC push {r3-r5, lr} add r4, r2, #0x0 ldr r2, _02024E60 ; =0x0000019D add r5, r0, #0x0 cmp r1, r2 bgt _02024DD6 sub r3, r2, #0x1 cmp r1, r3 blt _02024DC6 beq _02024E24 cmp r1, r2 beq _02024E36 b _02024E5A _02024DC6: cmp r1, #0xc9 bgt _02024DCE beq _02024DEE b _02024E5A _02024DCE: sub r2, #0x1b cmp r1, r2 beq _02024E48 b _02024E5A _02024DD6: add r3, r2, #0x0 add r3, #0x9 cmp r1, r3 bgt _02024DE6 add r2, #0x9 cmp r1, r2 beq _02024E00 b _02024E5A _02024DE6: add r2, #0xa cmp r1, r2 beq _02024E12 b _02024E5A _02024DEE: bl FUN_0202471C cmp r4, r0 bhs _02024E5A add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_020246DC pop {r3-r5, pc} _02024E00: bl FUN_020247A4 cmp r4, r0 bhs _02024E5A add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02024748 pop {r3-r5, pc} _02024E12: bl FUN_02024828 cmp r4, r0 bhs _02024E5A add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_020247C8 pop {r3-r5, pc} _02024E24: bl FUN_0202489C cmp r4, r0 bhs _02024E5A add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0202484C pop {r3-r5, pc} _02024E36: bl FUN_0202490C cmp r4, r0 bhs _02024E5A add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_020248BC pop {r3-r5, pc} _02024E48: bl FUN_02024970 cmp r4, r0 bhs _02024E5A add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02024930 pop {r3-r5, pc} _02024E5A: mov r0, #0x0 pop {r3-r5, pc} nop _02024E60: .word 0x0000019D thumb_func_start FUN_02024E64 FUN_02024E64: ; 0x02024E64 ldr r0, _02024E68 ; =0x0000074C bx lr .balign 4 _02024E68: .word 0x0000074C thumb_func_start FUN_02024E6C FUN_02024E6C: ; 0x02024E6C push {r4, lr} add r4, r0, #0x0 ldr r2, _02024EA4 ; =0x0000074C mov r0, #0x0 add r1, r4, #0x0 blx MIi_CpuClearFast add r0, r4, #0x0 bl FUN_020250A4 mov r0, #0x7 lsl r0, r0, #0x8 add r0, r4, r0 bl FUN_02025484 ldr r1, _02024EA8 ; =0x00000724 ldr r0, _02024EAC ; =0x0000FFFF add r1, r4, r1 mov r2, #0x8 blx MIi_CpuClear16 ldr r1, _02024EB0 ; =0x00000734 ldr r0, _02024EAC ; =0x0000FFFF add r1, r4, r1 mov r2, #0xb blx MIi_CpuClear16 pop {r4, pc} .balign 4 _02024EA4: .word 0x0000074C _02024EA8: .word 0x00000724 _02024EAC: .word 0x0000FFFF _02024EB0: .word 0x00000734 thumb_func_start FUN_02024EB4 FUN_02024EB4: ; 0x02024EB4 ldr r3, _02024EBC ; =FUN_02022610 mov r1, #0xa bx r3 nop _02024EBC: .word FUN_02022610 thumb_func_start FUN_02024EC0 FUN_02024EC0: ; 0x02024EC0 ldr r3, _02024EC8 ; =0x02022635 mov r1, #0xa bx r3 nop _02024EC8: .word 0x02022635 thumb_func_start FUN_02024ECC FUN_02024ECC: ; 0x02024ECC ldr r3, _02024ED4 ; =FUN_02022610 mov r1, #0xa bx r3 nop _02024ED4: .word FUN_02022610 thumb_func_start FUN_02024ED8 FUN_02024ED8: ; 0x02024ED8 push {r3, lr} mov r1, #0xa bl FUN_02022610 mov r1, #0x7 lsl r1, r1, #0x8 add r0, r0, r1 pop {r3, pc} thumb_func_start FUN_02024EE8 FUN_02024EE8: ; 0x02024EE8 ldr r1, _02024EF0 ; =0x00000724 add r0, r0, r1 bx lr nop _02024EF0: .word 0x00000724 thumb_func_start FUN_02024EF4 FUN_02024EF4: ; 0x02024EF4 add r2, r0, #0x0 add r0, r1, #0x0 ldr r1, _02024F04 ; =0x00000724 ldr r3, _02024F08 ; =FUN_02021EF0 add r1, r2, r1 mov r2, #0x8 bx r3 nop _02024F04: .word 0x00000724 _02024F08: .word FUN_02021EF0 thumb_func_start FUN_02024F0C FUN_02024F0C: ; 0x02024F0C ldr r1, _02024F14 ; =0x00000734 add r0, r0, r1 bx lr nop _02024F14: .word 0x00000734 thumb_func_start FUN_02024F18 FUN_02024F18: ; 0x02024F18 add r2, r0, #0x0 add r0, r1, #0x0 ldr r1, _02024F28 ; =0x00000734 ldr r3, _02024F2C ; =FUN_02021EF0 add r1, r2, r1 mov r2, #0xb bx r3 nop _02024F28: .word 0x00000734 _02024F2C: .word FUN_02021EF0 thumb_func_start FUN_02024F30 FUN_02024F30: ; 0x02024F30 push {r4, lr} mov r1, #0x2 bl FUN_02016998 add r4, r0, #0x0 bl FUN_02024F50 add r0, r4, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02024F44 FUN_02024F44: ; 0x02024F44 ldr r3, _02024F4C ; =MI_CpuCopy8 mov r2, #0x2 bx r3 nop _02024F4C: .word MI_CpuCopy8 thumb_func_start FUN_02024F50 FUN_02024F50: ; 0x02024F50 push {r4, lr} add r4, r0, #0x0 mov r1, #0x0 mov r2, #0x2 blx MI_CpuFill8 ldrh r1, [r4, #0x0] mov r0, #0xf bic r1, r0 mov r0, #0x1 orr r0, r1 strh r0, [r4, #0x0] ldrh r1, [r4, #0x0] mov r0, #0x30 bic r1, r0 strh r1, [r4, #0x0] ldrh r1, [r4, #0x0] mov r0, #0x40 bic r1, r0 strh r1, [r4, #0x0] ldrh r1, [r4, #0x0] mov r0, #0x80 bic r1, r0 strh r1, [r4, #0x0] ldrh r1, [r4, #0x0] ldr r0, _02024F94 ; =0xFFFFFCFF and r0, r1 strh r0, [r4, #0x0] ldrh r1, [r4, #0x0] ldr r0, _02024F98 ; =0xFFFF83FF and r0, r1 strh r0, [r4, #0x0] pop {r4, pc} nop _02024F94: .word 0xFFFFFCFF _02024F98: .word 0xFFFF83FF thumb_func_start FUN_02024F9C FUN_02024F9C: ; 0x02024F9C push {r3, lr} cmp r0, #0x0 beq _02024FAC bl LoadPlayerDataAddress bl FUN_02025064 add r1, r0, #0x0 _02024FAC: cmp r1, #0x0 beq _02024FCA cmp r1, #0x1 beq _02024FBA cmp r1, #0x2 beq _02024FC2 b _02024FCA _02024FBA: ldr r0, _02024FD4 ; =0x021C48B8 mov r1, #0x1 str r1, [r0, #0x34] pop {r3, pc} _02024FC2: ldr r0, _02024FD4 ; =0x021C48B8 mov r1, #0x3 str r1, [r0, #0x34] pop {r3, pc} _02024FCA: ldr r0, _02024FD4 ; =0x021C48B8 mov r1, #0x0 str r1, [r0, #0x34] pop {r3, pc} nop _02024FD4: .word 0x021C48B8 thumb_func_start FUN_02024FD8 FUN_02024FD8: ; 0x02024FD8 ldrh r0, [r0, #0x0] lsl r0, r0, #0x1c lsr r0, r0, #0x1c bx lr thumb_func_start FUN_02024FE0 FUN_02024FE0: ; 0x02024FE0 ldrh r3, [r0, #0x0] mov r2, #0xf lsl r1, r1, #0x10 bic r3, r2 lsr r2, r1, #0x10 mov r1, #0xf and r1, r2 orr r1, r3 strh r1, [r0, #0x0] bx lr thumb_func_start FUN_02024FF4 FUN_02024FF4: ; 0x02024FF4 push {r3, lr} bl FUN_02024FD8 cmp r0, #0x0 bne _02025002 mov r0, #0x8 pop {r3, pc} _02025002: cmp r0, #0x1 bne _0202500A mov r0, #0x4 pop {r3, pc} _0202500A: mov r0, #0x1 pop {r3, pc} .balign 4 thumb_func_start FUN_02025010 FUN_02025010: ; 0x02025010 ldrh r0, [r0, #0x0] lsl r0, r0, #0x1a lsr r0, r0, #0x1e bx lr thumb_func_start FUN_02025018 FUN_02025018: ; 0x02025018 lsl r1, r1, #0x10 lsr r1, r1, #0x10 lsl r1, r1, #0x1e ldrh r3, [r0, #0x0] mov r2, #0x30 lsr r1, r1, #0x1a bic r3, r2 orr r1, r3 strh r1, [r0, #0x0] bx lr thumb_func_start FUN_0202502C FUN_0202502C: ; 0x0202502C ldrh r0, [r0, #0x0] lsl r0, r0, #0x18 lsr r0, r0, #0x1f bx lr thumb_func_start FUN_02025034 FUN_02025034: ; 0x02025034 lsl r1, r1, #0x10 lsr r1, r1, #0x10 lsl r1, r1, #0x1f ldrh r3, [r0, #0x0] mov r2, #0x80 lsr r1, r1, #0x18 bic r3, r2 orr r1, r3 strh r1, [r0, #0x0] bx lr thumb_func_start FUN_02025048 FUN_02025048: ; 0x02025048 ldrh r0, [r0, #0x0] lsl r0, r0, #0x19 lsr r0, r0, #0x1f bx lr thumb_func_start FUN_02025050 FUN_02025050: ; 0x02025050 lsl r1, r1, #0x10 lsr r1, r1, #0x10 lsl r1, r1, #0x1f ldrh r3, [r0, #0x0] mov r2, #0x40 lsr r1, r1, #0x19 bic r3, r2 orr r1, r3 strh r1, [r0, #0x0] bx lr thumb_func_start FUN_02025064 FUN_02025064: ; 0x02025064 ldrh r0, [r0, #0x0] lsl r0, r0, #0x16 lsr r0, r0, #0x1e bx lr thumb_func_start FUN_0202506C FUN_0202506C: ; 0x0202506C lsl r1, r1, #0x10 lsr r1, r1, #0x10 lsl r1, r1, #0x1e ldrh r3, [r0, #0x0] ldr r2, _02025080 ; =0xFFFFFCFF lsr r1, r1, #0x16 and r2, r3 orr r1, r2 strh r1, [r0, #0x0] bx lr .balign 4 _02025080: .word 0xFFFFFCFF thumb_func_start FUN_02025084 FUN_02025084: ; 0x02025084 ldrh r0, [r0, #0x0] lsl r0, r0, #0x11 lsr r0, r0, #0x1b bx lr thumb_func_start FUN_0202508C FUN_0202508C: ; 0x0202508C lsl r1, r1, #0x10 lsr r1, r1, #0x10 lsl r1, r1, #0x1b ldrh r3, [r0, #0x0] ldr r2, _020250A0 ; =0xFFFF83FF lsr r1, r1, #0x11 and r2, r3 orr r1, r2 strh r1, [r0, #0x0] bx lr .balign 4 _020250A0: .word 0xFFFF83FF thumb_func_start FUN_020250A4 FUN_020250A4: ; 0x020250A4 push {r4, lr} mov r2, #0x7 mov r1, #0x0 lsl r2, r2, #0x8 add r4, r0, #0x0 blx MI_CpuFill8 mov r1, #0x0 add r0, r1, #0x0 _020250B6: strb r0, [r4, #0x1] strb r0, [r4, #0x0] add r1, r1, #0x1 add r4, #0xe cmp r1, #0x80 blt _020250B6 pop {r4, pc} thumb_func_start FUN_020250C4 FUN_020250C4: ; 0x020250C4 push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 add r0, r1, #0x0 str r2, [sp, #0x0] str r3, [sp, #0x4] bl FUN_02025128 mov r4, #0x0 str r0, [sp, #0x8] add r6, r4, #0x0 b _02025112 _020250DC: add r0, r5, #0x0 bl FUN_02025184 ldr r0, [sp, #0x0] lsl r1, r6, #0x1 add r7, r0, r1 ldrh r0, [r0, r1] sub r0, #0x94 strb r0, [r5, #0x0] mov r0, #0x5 strb r0, [r5, #0x1] ldrb r1, [r5, #0x0] ldrb r2, [r5, #0xc] ldr r0, [sp, #0x8] bl FUN_020251B0 lsl r0, r0, #0x2 strh r0, [r5, #0x2] ldrh r0, [r7, #0x2] add r6, r6, #0x2 add r4, r4, #0x1 strh r0, [r5, #0x8] mov r0, #0x64 strb r0, [r5, #0xa] mov r0, #0x3 strb r0, [r5, #0xb] add r5, #0xe _02025112: cmp r4, #0x80 blt _020250DC ldr r0, [sp, #0x4] cmp r4, r0 blt _020250DC ldr r0, [sp, #0x8] bl FUN_02016A18 add sp, #0xc pop {r4-r7, pc} .balign 4 thumb_func_start FUN_02025128 FUN_02025128: ; 0x02025128 push {r3-r7, lr} sub sp, #0x8 add r7, r0, #0x0 bl FUN_02085258 str r0, [sp, #0x0] add r0, r7, #0x0 mov r1, #0xc0 bl FUN_02016998 str r0, [sp, #0x4] mov r6, #0x0 add r5, r0, #0x0 _02025142: ldr r0, [sp, #0x0] add r1, r6, #0x0 add r2, r7, #0x0 bl FUN_02085264 add r4, r0, #0x0 mov r1, #0x3 bl FUN_02085290 strb r0, [r5, #0x0] add r0, r4, #0x0 mov r1, #0x4 bl FUN_02085290 strb r0, [r5, #0x1] add r0, r4, #0x0 mov r1, #0x2 bl FUN_02085290 strb r0, [r5, #0x2] add r0, r4, #0x0 bl FUN_02016A18 add r6, r6, #0x1 add r5, r5, #0x3 cmp r6, #0x40 blt _02025142 ldr r0, [sp, #0x0] bl FUN_0208526C ldr r0, [sp, #0x4] add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_02025184 FUN_02025184: ; 0x02025184 mov r1, #0x0 strb r1, [r0, #0x0] strb r1, [r0, #0x1] strh r1, [r0, #0x2] strh r1, [r0, #0x4] strb r1, [r0, #0x6] strh r1, [r0, #0x8] strb r1, [r0, #0xa] strb r1, [r0, #0xb] strb r1, [r0, #0xc] strb r1, [r0, #0xd] bx lr thumb_func_start FUN_0202519C FUN_0202519C: ; 0x0202519C ldrb r2, [r0, #0xb] ldrb r0, [r0, #0x0] sub r3, r0, #0x1 lsl r0, r3, #0x1 add r0, r3, r0 add r0, r1, r0 ldrb r0, [r0, #0x2] mul r0, r2 bx lr .balign 4 thumb_func_start FUN_020251B0 FUN_020251B0: ; 0x020251B0 sub r3, r1, #0x1 lsl r1, r3, #0x1 add r1, r3, r1 ldrb r1, [r0, r1] mov r0, #0x3c mul r0, r1 cmp r2, #0x1 bne _020251CE lsl r1, r0, #0x1 add r1, r0, r1 asr r0, r1, #0x1 lsr r0, r0, #0x1e add r0, r1, r0 asr r0, r0, #0x2 bx lr _020251CE: cmp r2, #0x2 bne _020251DA lsr r1, r0, #0x1f add r1, r0, r1 asr r1, r1, #0x1 add r0, r0, r1 _020251DA: bx lr thumb_func_start FUN_020251DC FUN_020251DC: ; 0x020251DC sub r3, r1, #0x1 lsl r1, r3, #0x1 add r1, r3, r1 add r0, r0, r1 ldrb r0, [r0, #0x1] cmp r2, #0x2 bne _020251F2 lsr r1, r0, #0x1f add r1, r0, r1 asr r0, r1, #0x1 bx lr _020251F2: cmp r2, #0x1 bne _020251FE lsr r1, r0, #0x1f add r1, r0, r1 asr r1, r1, #0x1 add r0, r0, r1 _020251FE: bx lr thumb_func_start FUN_02025200 FUN_02025200: ; 0x02025200 ldrb r0, [r0, #0xc] cmp r0, #0x3 bne _0202520A mov r0, #0x6 bx lr _0202520A: mov r0, #0x4 bx lr .balign 4 thumb_func_start FUN_02025210 FUN_02025210: ; 0x02025210 ldrb r0, [r0, #0xc] cmp r0, #0x4 bne _0202521A mov r0, #0xf bx lr _0202521A: mov r0, #0xa bx lr .balign 4 thumb_func_start FUN_02025220 FUN_02025220: ; 0x02025220 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02025200 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02025210 add r1, r4, #0x3 mul r0, r1 add r0, r0, #0x1 pop {r3-r5, pc} thumb_func_start FUN_02025238 FUN_02025238: ; 0x02025238 mov r2, #0xe mul r2, r1 add r0, r0, r2 ldrb r0, [r0, #0x1] bx lr .balign 4 thumb_func_start FUN_02025244 FUN_02025244: ; 0x02025244 mov r2, #0xe mul r2, r1 ldrb r0, [r0, r2] bx lr thumb_func_start FUN_0202524C FUN_0202524C: ; 0x0202524C mov r2, #0xe mul r2, r1 add r0, r0, r2 ldrb r0, [r0, #0xa] cmp r0, #0x0 bne _0202525C mov r0, #0x0 bx lr _0202525C: cmp r0, #0x32 bgt _02025264 mov r0, #0x1 bx lr _02025264: mov r0, #0x2 bx lr thumb_func_start FUN_02025268 FUN_02025268: ; 0x02025268 mov r2, #0xe mul r2, r1 add r0, r0, r2 ldrb r0, [r0, #0xb] bx lr .balign 4 thumb_func_start FUN_02025274 FUN_02025274: ; 0x02025274 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 mov r0, #0xe mul r4, r0 strb r3, [r5, r4] mov r0, #0x1 add r6, r5, r4 strb r0, [r6, #0x1] add r0, r2, #0x0 ldrb r2, [r6, #0xc] add r1, r3, #0x0 bl FUN_020251B0 add r1, r6, #0x0 strh r0, [r1, #0x2] mov r0, #0x0 strh r0, [r1, #0x4] strb r0, [r1, #0x6] strh r0, [r1, #0x8] mov r0, #0x64 strb r0, [r1, #0xa] mov r0, #0x5 strb r0, [r1, #0xb] mov r0, #0x1 strb r0, [r1, #0xd] pop {r4-r6, pc} .balign 4 thumb_func_start FUN_020252AC FUN_020252AC: ; 0x020252AC mov r2, #0xe mul r2, r1 mov r3, #0x64 add r0, r0, r2 strb r3, [r0, #0xa] bx lr thumb_func_start FUN_020252B8 FUN_020252B8: ; 0x020252B8 mov r2, #0xe mul r2, r1 add r0, r0, r2 ldrb r0, [r0, #0xd] bx lr .balign 4 thumb_func_start FUN_020252C4 FUN_020252C4: ; 0x020252C4 mov r3, #0xe mul r3, r1 add r0, r0, r3 strb r2, [r0, #0xd] bx lr .balign 4 thumb_func_start FUN_020252D0 FUN_020252D0: ; 0x020252D0 mov r2, #0xe mul r2, r1 add r0, r0, r2 ldrb r0, [r0, #0xc] bx lr .balign 4 thumb_func_start FUN_020252DC FUN_020252DC: ; 0x020252DC mov r3, #0xe mul r3, r1 add r0, r0, r3 strb r2, [r0, #0xc] bx lr .balign 4 thumb_func_start FUN_020252E8 FUN_020252E8: ; 0x020252E8 mov r2, #0xe mul r2, r1 add r0, r0, r2 ldrh r0, [r0, #0x8] bx lr .balign 4 thumb_func_start FUN_020252F4 FUN_020252F4: ; 0x020252F4 push {r4, lr} mov r2, #0xe mul r2, r1 add r0, r0, r2 ldrh r4, [r0, #0x8] bl FUN_02025184 add r0, r4, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02025308 FUN_02025308: ; 0x02025308 push {r4, lr} add r4, r0, #0x0 ldrb r2, [r4, #0x1] cmp r2, #0x5 bhi _02025370 add r3, r2, r2 add r3, pc ldrh r3, [r3, #0x6] lsl r3, r3, #0x10 asr r3, r3, #0x10 add pc, r3 _0202531E: ; jump table (using 16-bit offset) .short _0202532A - _0202531E - 2; case 0 .short _02025330 - _0202531E - 2; case 1 .short _02025330 - _0202531E - 2; case 2 .short _02025330 - _0202531E - 2; case 3 .short _02025336 - _0202531E - 2; case 4 .short _0202534E - _0202531E - 2; case 5 _0202532A: bl ErrorHandling pop {r4, pc} _02025330: add r0, r2, #0x1 strb r0, [r4, #0x1] pop {r4, pc} _02025336: bl FUN_0202519C strh r0, [r4, #0x8] ldrh r0, [r4, #0x8] cmp r0, #0x2 bhs _02025346 mov r0, #0x2 strh r0, [r4, #0x8] _02025346: ldrb r0, [r4, #0x1] add r0, r0, #0x1 strb r0, [r4, #0x1] pop {r4, pc} _0202534E: mov r1, #0x0 strh r1, [r4, #0x8] mov r1, #0x2 strb r1, [r4, #0x1] mov r1, #0x5 strb r1, [r4, #0xb] ldrb r1, [r4, #0x6] add r1, r1, #0x1 strb r1, [r4, #0x6] bl FUN_02025210 ldrb r1, [r4, #0x6] cmp r1, r0 bne _02025370 add r0, r4, #0x0 bl FUN_02025184 _02025370: pop {r4, pc} .balign 4 thumb_func_start FUN_02025374 FUN_02025374: ; 0x02025374 push {r3-r7, lr} add r5, r0, #0x0 ldrb r0, [r5, #0x1] add r7, r2, #0x0 cmp r0, #0x5 beq _020253DE add r0, r1, #0x0 ldrb r1, [r5, #0x0] ldrb r2, [r5, #0xc] bl FUN_020251DC add r6, r0, #0x0 ldrh r0, [r5, #0x4] mov r1, #0x3c str r0, [sp, #0x0] add r0, r7, r0 blx _s32_div_f add r4, r0, #0x0 ldr r0, [sp, #0x0] mov r1, #0x3c add r0, r7, r0 blx _s32_div_f strh r1, [r5, #0x4] cmp r4, #0x0 beq _020253DE ldrb r1, [r5, #0xa] add r0, r6, #0x0 mul r0, r4 cmp r1, r0 blt _020253BA sub r0, r1, r0 strb r0, [r5, #0xa] pop {r3-r7, pc} _020253BA: cmp r1, #0x0 beq _020253CE sub r0, r6, #0x1 add r0, r1, r0 add r1, r6, #0x0 blx _s32_div_f sub r4, r4, r0 mov r0, #0x0 strb r0, [r5, #0xa] _020253CE: ldrb r0, [r5, #0xb] cmp r0, r4 ble _020253DA sub r0, r0, r4 strb r0, [r5, #0xb] pop {r3-r7, pc} _020253DA: mov r0, #0x0 strb r0, [r5, #0xb] _020253DE: pop {r3-r7, pc} thumb_func_start FUN_020253E0 FUN_020253E0: ; 0x020253E0 push {r3-r7, lr} add r5, r0, #0x0 mov r0, #0x0 add r6, r1, #0x0 add r7, r2, #0x0 str r0, [sp, #0x0] _020253EC: ldrb r1, [r5, #0x0] cmp r1, #0x0 beq _02025474 ldrb r0, [r5, #0x1] cmp r0, #0x0 beq _02025474 ldrb r0, [r5, #0xd] cmp r0, #0x0 beq _02025474 ldrb r2, [r5, #0xc] add r0, r6, #0x0 bl FUN_020251B0 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02025220 mul r0, r4 cmp r7, r0 blt _0202541C add r0, r5, #0x0 bl FUN_02025184 b _02025474 _0202541C: add r4, r7, #0x0 b _0202546A _02025420: ldrh r2, [r5, #0x2] cmp r2, r4 ble _02025438 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 bl FUN_02025374 ldrh r0, [r5, #0x2] sub r0, r0, r4 strh r0, [r5, #0x2] b _02025474 _02025438: add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02025374 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02025308 ldrh r0, [r5, #0x2] ldrb r1, [r5, #0x0] ldrb r2, [r5, #0xc] sub r4, r4, r0 add r0, r6, #0x0 bl FUN_020251B0 strh r0, [r5, #0x2] ldrb r0, [r5, #0x1] cmp r0, #0x5 bne _0202546A add r0, r5, #0x0 bl FUN_02025200 ldrh r1, [r5, #0x2] mul r0, r1 strh r0, [r5, #0x2] _0202546A: ldrb r0, [r5, #0x1] cmp r0, #0x0 beq _02025474 cmp r4, #0x0 bne _02025420 _02025474: ldr r0, [sp, #0x0] add r5, #0xe add r0, r0, #0x1 str r0, [sp, #0x0] cmp r0, #0x80 blt _020253EC pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02025484 FUN_02025484: ; 0x02025484 ldr r3, _0202548C ; =MI_CpuFill8 mov r1, #0x0 mov r2, #0x24 bx r3 .balign 4 _0202548C: .word MI_CpuFill8 thumb_func_start FUN_02025490 FUN_02025490: ; 0x02025490 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_02025484 str r4, [r5, #0x0] add r0, r5, #0x4 pop {r3-r5, pc} thumb_func_start FUN_020254A0 FUN_020254A0: ; 0x020254A0 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, r1 beq _020254AE bl ErrorHandling _020254AE: add r0, r4, #0x4 pop {r4, pc} .balign 4 thumb_func_start FUN_020254B4 FUN_020254B4: ; 0x020254B4 ldr r0, [r0, #0x0] bx lr thumb_func_start FUN_020254B8 FUN_020254B8: ; 0x020254B8 mov r0, #0x22 lsl r0, r0, #0x6 bx lr .balign 4 thumb_func_start FUN_020254C0 FUN_020254C0: ; 0x020254C0 ldr r3, _020254C8 ; =FUN_02022610 mov r1, #0x9 bx r3 nop _020254C8: .word FUN_02022610 thumb_func_start FUN_020254CC FUN_020254CC: ; 0x020254CC push {r3-r7, lr} mov r4, #0x0 ldr r6, _020254EC ; =0x0000FFFF add r5, r0, #0x0 add r7, r4, #0x0 _020254D6: add r0, r5, #0x0 add r1, r7, #0x0 mov r2, #0x88 blx FUN_020DF4A4 strh r6, [r5, #0x0] add r4, r4, #0x1 add r5, #0x88 cmp r4, #0x10 blt _020254D6 pop {r3-r7, pc} .balign 4 _020254EC: .word 0x0000FFFF thumb_func_start FUN_020254F0 FUN_020254F0: ; 0x020254F0 mov r2, #0x88 mul r2, r1 add r0, r0, r2 bx lr thumb_func_start FUN_020254F8 FUN_020254F8: ; 0x020254F8 add r0, r0, r1 add r0, #0x68 ldrb r0, [r0, #0x0] bx lr thumb_func_start FUN_02025500 FUN_02025500: ; 0x02025500 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl StringNotEqual cmp r0, #0x0 bne _0202551A ldr r1, [r5, #0x10] ldr r0, [r4, #0x10] cmp r1, r0 bne _0202551A mov r0, #0x1 pop {r3-r5, pc} _0202551A: mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02025520 FUN_02025520: ; 0x02025520 push {r4-r7, lr} sub sp, #0x2c str r1, [sp, #0x4] mov r1, #0x22 str r0, [sp, #0x0] add r0, r3, #0x0 lsl r1, r1, #0x6 str r2, [sp, #0x8] bl FUN_02016998 str r0, [sp, #0x10] bl FUN_020254CC mov r0, #0x0 str r0, [sp, #0x14] ldr r0, [sp, #0x8] cmp r0, #0x0 ble _02025578 ldr r7, [sp, #0x4] add r6, sp, #0x18 _02025548: mov r0, #0x0 mvn r0, r0 ldr r5, [sp, #0x0] str r0, [r6, #0x0] mov r4, #0x0 _02025552: add r0, r5, #0x0 add r1, r7, #0x0 bl FUN_02025500 cmp r0, #0x0 beq _02025560 str r4, [r6, #0x0] _02025560: add r4, r4, #0x1 add r5, #0x88 cmp r4, #0x10 blt _02025552 ldr r0, [sp, #0x14] add r6, r6, #0x4 add r1, r0, #0x1 ldr r0, [sp, #0x8] add r7, #0x88 str r1, [sp, #0x14] cmp r1, r0 blt _02025548 _02025578: ldr r0, [sp, #0x8] mov r4, #0x0 str r4, [sp, #0xc] cmp r0, #0x0 ble _020255BE ldr r5, [sp, #0x10] add r6, sp, #0x18 _02025586: ldr r3, [sp, #0x4] add r7, r5, #0x0 mov r2, #0x11 _0202558C: ldmia r3!, {r0-r1} stmia r7!, {r0-r1} sub r2, r2, #0x1 bne _0202558C ldr r1, [r6, #0x0] cmp r1, #0x0 blt _020255A6 add r2, r1, #0x0 mov r0, #0x88 mul r2, r0 ldr r1, _02025610 ; =0x0000FFFF ldr r0, [sp, #0x0] strh r1, [r0, r2] _020255A6: ldr r0, [sp, #0x4] add r5, #0x88 add r0, #0x88 str r0, [sp, #0x4] ldr r0, [sp, #0xc] add r4, r4, #0x1 add r1, r0, #0x1 ldr r0, [sp, #0x8] add r6, r6, #0x4 str r1, [sp, #0xc] cmp r1, r0 blt _02025586 _020255BE: mov r0, #0x0 mov r12, r0 mov r0, #0x88 add r1, r4, #0x0 mul r1, r0 ldr r0, [sp, #0x10] ldr r3, [sp, #0x0] add r5, r0, r1 _020255CE: ldrh r1, [r3, #0x0] ldr r0, _02025610 ; =0x0000FFFF cmp r1, r0 beq _020255EC add r6, r3, #0x0 add r7, r5, #0x0 mov r2, #0x11 _020255DC: ldmia r6!, {r0-r1} stmia r7!, {r0-r1} sub r2, r2, #0x1 bne _020255DC add r4, r4, #0x1 add r5, #0x88 cmp r4, #0x10 bge _020255F8 _020255EC: mov r0, r12 add r0, r0, #0x1 add r3, #0x88 mov r12, r0 cmp r0, #0x10 blt _020255CE _020255F8: mov r2, #0x22 ldr r0, [sp, #0x0] ldr r1, [sp, #0x10] lsl r2, r2, #0x6 blx FUN_020DF438 ldr r0, [sp, #0x10] bl FUN_02016A18 add sp, #0x2c pop {r4-r7, pc} nop _02025610: .word 0x0000FFFF thumb_func_start FUN_02025614 FUN_02025614: ; 0x02025614 push {r3-r6} mov r3, #0x0 add r4, r0, #0x0 _0202561A: ldr r2, [r4, #0x10] cmp r1, r2 bne _02025626 mov r0, #0x1 pop {r3-r6} bx lr _02025626: add r3, r3, #0x1 add r4, #0x88 cmp r3, #0x10 blt _0202561A mov r6, #0x0 add r3, r6, #0x0 _02025632: add r4, r3, #0x0 add r5, r0, #0x0 _02025636: ldr r2, [r5, #0x18] cmp r1, r2 bne _02025642 add r0, r6, #0x2 pop {r3-r6} bx lr _02025642: add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, #0x10 blt _02025636 add r6, r6, #0x1 add r0, #0x88 cmp r6, #0x10 blt _02025632 mov r0, #0x0 pop {r3-r6} bx lr thumb_func_start FUN_02025658 FUN_02025658: ; 0x02025658 push {r3-r5, lr} add r4, r0, #0x0 mov r0, #0x0 str r0, [r4, #0x0] strb r0, [r4, #0x4] ldr r0, _020256A0 ; =0x020ECAC4 mov r1, #0x8 ldrb r0, [r0, #0x0] strb r0, [r4, #0x5] ldr r0, _020256A4 ; =0x020ECAC0 ldrb r0, [r0, #0x0] strb r0, [r4, #0x6] mov r0, #0xff strb r0, [r4, #0x7] add r0, r4, #0x0 add r0, #0x8 bl StringFillEOS ldr r0, _020256A8 ; =0x0000FFFF mov r1, #0x0 add r2, r4, #0x0 _02025682: add r1, r1, #0x1 strh r0, [r2, #0x18] add r2, r2, #0x2 cmp r1, #0x3 blt _02025682 mov r5, #0x0 add r4, #0x20 _02025690: add r0, r4, #0x0 bl FUN_02013724 add r5, r5, #0x1 add r4, #0x8 cmp r5, #0x3 blt _02025690 pop {r3-r5, pc} .balign 4 _020256A0: .word 0x020ECAC4 _020256A4: .word 0x020ECAC0 _020256A8: .word 0x0000FFFF thumb_func_start FUN_020256AC FUN_020256AC: ; 0x020256AC ldrb r0, [r0, #0x7] cmp r0, #0xb bhi _020256B6 mov r0, #0x1 bx lr _020256B6: mov r0, #0x0 bx lr .balign 4 thumb_func_start FUN_020256BC FUN_020256BC: ; 0x020256BC push {r4, lr} mov r1, #0x38 bl FUN_020169D8 add r4, r0, #0x0 bl FUN_02025658 add r0, r4, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_020256D0 FUN_020256D0: ; 0x020256D0 ldr r3, _020256D8 ; =MI_CpuCopy8 mov r2, #0x38 bx r3 nop _020256D8: .word MI_CpuCopy8 thumb_func_start FUN_020256DC FUN_020256DC: ; 0x020256DC push {r4-r7, lr} sub sp, #0x14 add r7, r3, #0x0 add r5, r0, #0x0 add r6, r1, #0x0 add r4, r2, #0x0 bl FUN_02025658 add r0, r7, #0x0 strb r6, [r5, #0x7] bl FUN_0206BB1C str r0, [sp, #0x0] add r0, r7, #0x0 bl FUN_020238F4 add r6, r0, #0x0 bl FUN_0202398C add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x8 bl StringCopy add r0, r6, #0x0 bl FUN_020239CC strb r0, [r5, #0x4] add r0, r6, #0x0 bl FUN_020239BC str r0, [r5, #0x0] ldr r0, [sp, #0x0] mov r6, #0x0 bl FUN_0206B9AC cmp r4, r0 bge _020257AE add r5, #0x18 _0202572A: ldr r0, [sp, #0x0] add r1, r4, #0x0 bl FUN_0206B9B0 mov r1, #0x5 mov r2, #0x0 add r7, r0, #0x0 bl FUN_020671BC lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x4] add r0, r7, #0x0 mov r1, #0x4c mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0x8] add r0, r7, #0x0 mov r1, #0x70 mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0xc] add r0, r7, #0x0 bl FUN_0206B6C8 str r0, [sp, #0x10] ldr r0, [sp, #0x4] ldr r1, [sp, #0xc] ldr r2, [sp, #0x8] bl FUN_0206B7BC lsl r3, r6, #0x1 ldrh r1, [r5, r3] add r7, r0, #0x0 ldr r0, _020257B4 ; =0xFFFFF000 add r2, r1, #0x0 and r2, r0 ldr r0, [sp, #0x10] lsl r0, r0, #0x10 lsr r1, r0, #0x10 ldr r0, _020257B8 ; =0x00000FFF and r0, r1 orr r0, r2 strh r0, [r5, r3] add r0, r6, #0x1 lsl r0, r0, #0x18 lsr r6, r0, #0x18 ldrh r1, [r5, r3] ldr r0, _020257BC ; =0xFFFF0FFF and r0, r1 lsl r1, r7, #0x1c lsr r1, r1, #0x10 orr r0, r1 strh r0, [r5, r3] cmp r6, #0x3 bhs _020257AE add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 ldr r0, [sp, #0x0] bl FUN_0206B9AC cmp r4, r0 blt _0202572A _020257AE: add sp, #0x14 pop {r4-r7, pc} nop _020257B4: .word 0xFFFFF000 _020257B8: .word 0x00000FFF _020257BC: .word 0xFFFF0FFF thumb_func_start FUN_020257C0 FUN_020257C0: ; 0x020257C0 ldr r0, [r0, #0x0] bx lr thumb_func_start FUN_020257C4 FUN_020257C4: ; 0x020257C4 add r0, #0x8 bx lr thumb_func_start FUN_020257C8 FUN_020257C8: ; 0x020257C8 ldrb r0, [r0, #0x4] bx lr thumb_func_start FUN_020257CC FUN_020257CC: ; 0x020257CC ldrb r0, [r0, #0x7] bx lr thumb_func_start FUN_020257D0 FUN_020257D0: ; 0x020257D0 cmp r1, #0xc bhs _020257D6 strb r1, [r0, #0x7] _020257D6: bx lr thumb_func_start FUN_020257D8 FUN_020257D8: ; 0x020257D8 ldrb r0, [r0, #0x5] bx lr thumb_func_start FUN_020257DC FUN_020257DC: ; 0x020257DC ldrb r0, [r0, #0x6] bx lr thumb_func_start FUN_020257E0 FUN_020257E0: ; 0x020257E0 cmp r1, #0x3 bhs _02025810 cmp r2, #0x0 beq _020257F0 cmp r2, #0x1 beq _020257FC cmp r2, #0x2 b _02025808 _020257F0: lsl r1, r1, #0x1 add r0, r0, r1 ldrh r0, [r0, #0x18] lsl r0, r0, #0x14 lsr r0, r0, #0x14 bx lr _020257FC: lsl r1, r1, #0x1 add r0, r0, r1 ldrh r0, [r0, #0x18] lsl r0, r0, #0x10 lsr r0, r0, #0x1c bx lr _02025808: lsl r1, r1, #0x1 add r0, r0, r1 ldrh r0, [r0, #0x18] bx lr _02025810: mov r0, #0x0 bx lr thumb_func_start FUN_02025814 FUN_02025814: ; 0x02025814 cmp r1, #0x3 bhs _02025820 add r0, #0x20 lsl r1, r1, #0x3 add r0, r0, r1 bx lr _02025820: add r0, #0x20 bx lr thumb_func_start FUN_02025824 FUN_02025824: ; 0x02025824 push {r3, lr} cmp r2, #0x3 bhs _02025834 add r0, #0x20 lsl r2, r2, #0x3 add r0, r0, r2 bl FUN_02013960 _02025834: pop {r3, pc} .balign 4 thumb_func_start FUN_02025838 FUN_02025838: ; 0x02025838 ldr r3, _02025840 ; =FUN_02022610 mov r1, #0xf bx r3 nop _02025840: .word FUN_02022610 thumb_func_start FUN_02025844 FUN_02025844: ; 0x02025844 mov r0, #0x46 lsl r0, r0, #0x4 bx lr .balign 4 thumb_func_start FUN_0202584C FUN_0202584C: ; 0x0202584C push {r3-r5, lr} add r5, r0, #0x0 mov r4, #0x0 _02025852: add r0, r5, #0x0 bl FUN_02025658 add r4, r4, #0x1 add r5, #0x38 cmp r4, #0x14 blt _02025852 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02025864 FUN_02025864: ; 0x02025864 push {r3, lr} cmp r1, #0x0 bne _02025872 mov r1, #0x14 bl FUN_020258F0 pop {r3, pc} _02025872: mov r0, #0x0 mvn r0, r0 pop {r3, pc} thumb_func_start FUN_02025878 FUN_02025878: ; 0x02025878 push {r3, lr} bl FUN_02025940 cmp r0, #0x0 beq _02025886 bl FUN_02025658 _02025886: pop {r3, pc} thumb_func_start FUN_02025888 FUN_02025888: ; 0x02025888 push {r4, lr} add r4, r3, #0x0 bl FUN_02025940 add r1, r0, #0x0 beq _0202589A add r0, r4, #0x0 bl FUN_020256D0 _0202589A: pop {r4, pc} thumb_func_start FUN_0202589C FUN_0202589C: ; 0x0202589C push {r3, lr} cmp r1, #0x0 bne _020258AA mov r1, #0x14 bl FUN_02025918 pop {r3, pc} _020258AA: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_020258B0 FUN_020258B0: ; 0x020258B0 push {r3-r5, lr} add r5, r3, #0x0 bl FUN_02025940 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_020256BC add r5, r0, #0x0 cmp r4, #0x0 beq _020258CE add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_020256D0 _020258CE: add r0, r5, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020258D4 FUN_020258D4: ; 0x020258D4 push {r4, lr} add r4, r3, #0x0 bl FUN_02025940 cmp r0, #0x0 bne _020258E8 add r0, r4, #0x0 bl FUN_02025658 pop {r4, pc} _020258E8: add r1, r4, #0x0 bl FUN_020256D0 pop {r4, pc} thumb_func_start FUN_020258F0 FUN_020258F0: ; 0x020258F0 push {r4-r6, lr} add r6, r1, #0x0 add r5, r0, #0x0 mov r4, #0x0 cmp r6, #0x0 ble _02025912 _020258FC: add r0, r5, #0x0 bl FUN_020256AC cmp r0, #0x0 bne _0202590A add r0, r4, #0x0 pop {r4-r6, pc} _0202590A: add r4, r4, #0x1 add r5, #0x38 cmp r4, r6 blt _020258FC _02025912: mov r0, #0x0 mvn r0, r0 pop {r4-r6, pc} thumb_func_start FUN_02025918 FUN_02025918: ; 0x02025918 push {r3-r7, lr} mov r4, #0x0 add r7, r1, #0x0 add r5, r0, #0x0 add r6, r4, #0x0 cmp r7, #0x0 ble _0202593A _02025926: add r0, r5, #0x0 bl FUN_020256AC cmp r0, #0x0 beq _02025932 add r4, r4, #0x1 _02025932: add r6, r6, #0x1 add r5, #0x38 cmp r6, r7 blt _02025926 _0202593A: add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02025940 FUN_02025940: ; 0x02025940 mov r3, #0x0 cmp r1, #0x0 bne _02025950 cmp r2, #0x14 bge _02025950 mov r1, #0x38 mul r1, r2 add r3, r0, r1 _02025950: add r0, r3, #0x0 bx lr thumb_func_start FUN_02025954 FUN_02025954: ; 0x02025954 ldr r0, _02025958 ; =0x000009B4 bx lr .balign 4 _02025958: .word 0x000009B4 thumb_func_start FUN_0202595C FUN_0202595C: ; 0x0202595C mov r0, #0x94 bx lr thumb_func_start FUN_02025960 FUN_02025960: ; 0x02025960 mov r0, #0x3c bx lr thumb_func_start FUN_02025964 FUN_02025964: ; 0x02025964 push {r4, lr} mov r1, #0x3c bl FUN_02016998 mov r1, #0x0 mov r2, #0x3c add r4, r0, #0x0 blx MI_CpuFill8 add r0, r4, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_0202597C FUN_0202597C: ; 0x0202597C push {r4-r7, lr} sub sp, #0x1c add r4, r0, #0x0 add r0, sp, #0xc add r1, sp, #0x0 bl FUN_0201265C ldr r0, _020259D8 ; =0x021C48B8 ldr r6, [sp, #0xc] ldr r1, [sp, #0x8] ldr r0, [r0, #0x2c] lsl r6, r6, #0x5 add r5, r1, r0 ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] add r0, r0, r6 lsl r0, r0, #0x5 add r0, r1, r0 mov r7, #0x0 ldr r2, [sp, #0x0] lsl r0, r0, #0x5 add r0, r2, r0 ldr r3, [sp, #0x4] lsl r0, r0, #0x5 add r0, r3, r0 lsl r0, r0, #0x5 add r5, r5, r0 ldr r2, _020259DC ; =0x000009B4 add r0, r4, #0x0 add r1, r7, #0x0 blx MI_CpuFill8 add r0, r4, #0x0 add r0, #0x94 mov r1, #0x9b str r5, [r0, #0x0] lsl r1, r1, #0x4 ldrb r2, [r4, r1] mov r0, #0xf bic r2, r0 mov r0, #0x1 orr r0, r2 strb r0, [r4, r1] add sp, #0x1c pop {r4-r7, pc} nop _020259D8: .word 0x021C48B8 _020259DC: .word 0x000009B4 thumb_func_start FUN_020259E0 FUN_020259E0: ; 0x020259E0 mov r1, #0x9 mov r3, #0x0 lsl r1, r1, #0x8 _020259E6: add r2, r0, r3 ldrb r2, [r2, r1] cmp r2, #0x0 bne _020259F2 add r0, r3, #0x0 bx lr _020259F2: add r3, r3, #0x1 cmp r3, #0x28 blt _020259E6 mov r0, #0x0 mvn r0, r0 bx lr .balign 4 thumb_func_start FUN_02025A00 FUN_02025A00: ; 0x02025A00 mov r1, #0x95 mov r3, #0x0 lsl r1, r1, #0x4 _02025A06: add r2, r0, r3 ldrb r2, [r2, r1] cmp r2, #0x0 bne _02025A12 add r0, r3, #0x0 bx lr _02025A12: add r3, r3, #0x1 cmp r3, #0x28 blt _02025A06 mov r0, #0x0 mvn r0, r0 bx lr .balign 4 thumb_func_start FUN_02025A20 FUN_02025A20: ; 0x02025A20 ldr r1, _02025A3C ; =0x00000928 mov r3, #0x0 _02025A24: add r2, r0, r3 ldrb r2, [r2, r1] cmp r2, #0x0 bne _02025A30 add r0, r3, #0x0 bx lr _02025A30: add r3, r3, #0x1 cmp r3, #0x28 blt _02025A24 mov r0, #0x0 mvn r0, r0 bx lr .balign 4 _02025A3C: .word 0x00000928 thumb_func_start FUN_02025A40 FUN_02025A40: ; 0x02025A40 ldr r1, _02025A5C ; =0x000008D8 mov r3, #0x0 _02025A44: add r2, r0, r3 ldrb r2, [r2, r1] cmp r2, #0x0 bne _02025A50 add r0, r3, #0x0 bx lr _02025A50: add r3, r3, #0x1 cmp r3, #0x28 blt _02025A44 mov r0, #0x0 mvn r0, r0 bx lr .balign 4 _02025A5C: .word 0x000008D8 thumb_func_start FUN_02025A60 FUN_02025A60: ; 0x02025A60 push {r4-r7, lr} sub sp, #0x14 str r1, [sp, #0x0] bl FUN_02026CC4 ldr r1, _02025B50 ; =0x020EE958 add r6, r0, #0x0 ldrb r2, [r1, #0x0] add r0, sp, #0x8 strb r2, [r0, #0x6] ldrb r2, [r1, #0x1] strb r2, [r0, #0x7] ldrb r2, [r1, #0x2] strb r2, [r0, #0x8] ldrb r2, [r1, #0x3] strb r2, [r0, #0x9] ldrb r2, [r1, #0x4] strb r2, [r0, #0xa] ldrb r2, [r1, #0x5] strb r2, [r0, #0xb] ldrb r2, [r1, #0x6] strb r2, [r0, #0x0] ldrb r2, [r1, #0x7] strb r2, [r0, #0x1] ldrb r2, [r1, #0x8] strb r2, [r0, #0x2] ldrb r2, [r1, #0x9] strb r2, [r0, #0x3] ldrb r2, [r1, #0xa] strb r2, [r0, #0x4] ldrb r1, [r1, #0xb] strb r1, [r0, #0x5] ldr r0, [sp, #0x0] cmp r0, #0x0 ble _02025B4C str r0, [sp, #0x4] cmp r0, #0x63 ble _02025AB0 mov r0, #0x63 str r0, [sp, #0x4] _02025AB0: add r0, r6, #0x0 add r0, #0x94 ldr r3, [r0, #0x0] mov r0, #0x0 mov r12, r0 ldr r0, [sp, #0x4] cmp r0, #0x0 ble _02025B28 add r7, sp, #0xc add r7, #0x2 _02025AC4: mov r2, #0x0 _02025AC6: ldr r0, _02025B54 ; =0x0000055C add r4, r6, r2 ldrb r5, [r4, r0] cmp r5, #0x0 beq _02025B16 ldr r0, _02025B58 ; =0x5D588B65 ldrb r1, [r7, r5] mul r0, r3 ldr r3, _02025B5C ; =0x00269EC3 add r3, r0, r3 cmp r1, #0x0 bne _02025AE2 lsr r0, r3, #0x10 b _02025AE8 _02025AE2: lsr r0, r3, #0x10 mul r1, r0 lsr r0, r1, #0x10 _02025AE8: lsl r0, r0, #0x10 lsr r1, r0, #0x10 add r0, sp, #0x8 ldrb r0, [r0, r5] add r0, r0, r1 mov r1, #0x17 lsl r1, r1, #0x6 ldrb r1, [r4, r1] add r1, r0, r1 cmp r1, #0x63 bge _02025B0E mov r1, #0x17 lsl r1, r1, #0x6 ldrb r1, [r4, r1] add r1, r1, r0 mov r0, #0x17 lsl r0, r0, #0x6 strb r1, [r4, r0] b _02025B16 _02025B0E: mov r0, #0x17 mov r1, #0x63 lsl r0, r0, #0x6 strb r1, [r4, r0] _02025B16: add r2, r2, #0x1 cmp r2, #0x64 blt _02025AC6 mov r0, r12 add r1, r0, #0x1 ldr r0, [sp, #0x4] mov r12, r1 cmp r1, r0 blt _02025AC4 _02025B28: add r0, r6, #0x0 add r0, #0x94 ldr r1, [r0, #0x0] ldr r0, [sp, #0x0] add r0, r1, r0 bl FUN_0201BA10 add r1, r6, #0x0 add r1, #0x94 str r0, [r1, #0x0] mov r1, #0x9b lsl r1, r1, #0x4 ldrb r2, [r6, r1] mov r0, #0xf bic r2, r0 mov r0, #0x1 orr r0, r2 strb r0, [r6, r1] _02025B4C: add sp, #0x14 pop {r4-r7, pc} .balign 4 _02025B50: .word 0x020EE958 _02025B54: .word 0x0000055C _02025B58: .word 0x5D588B65 _02025B5C: .word 0x00269EC3 thumb_func_start FUN_02025B60 FUN_02025B60: ; 0x02025B60 push {r3-r5, lr} add r4, r1, #0x0 add r5, r2, #0x0 bl FUN_02026CC4 cmp r4, #0x0 blt _02025B90 cmp r5, #0x0 bne _02025B90 add r1, r0, #0x0 add r1, #0x98 ldr r1, [r1, #0x0] cmp r1, r4 bge _02025B84 mov r1, #0x0 add r0, #0x98 str r1, [r0, #0x0] pop {r3-r5, pc} _02025B84: add r1, r0, #0x0 add r1, #0x98 ldr r1, [r1, #0x0] add r0, #0x98 sub r1, r1, r4 str r1, [r0, #0x0] _02025B90: pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02025B94 FUN_02025B94: ; 0x02025B94 push {r3, lr} bl FUN_02026CC4 add r1, r0, #0x0 add r1, #0x98 ldr r1, [r1, #0x0] cmp r1, #0x0 bne _02025BB6 add r1, r0, #0x0 add r1, #0x9c ldrb r1, [r1, #0x0] cmp r1, #0x2 bne _02025BB6 add r1, r0, #0x0 mov r2, #0x0 add r1, #0x9c strb r2, [r1, #0x0] _02025BB6: add r1, r0, #0x0 add r1, #0x98 ldr r1, [r1, #0x0] cmp r1, #0x0 bne _02025BD4 add r1, r0, #0x0 add r1, #0x9c ldrb r1, [r1, #0x0] cmp r1, #0x1 bne _02025BD4 mov r2, #0x5a add r1, r0, #0x0 lsl r2, r2, #0x4 add r1, #0x98 str r2, [r1, #0x0] _02025BD4: add r1, r0, #0x0 add r1, #0x9c ldrb r1, [r1, #0x0] cmp r1, #0x1 bne _02025BE4 mov r1, #0x2 add r0, #0x9c strb r1, [r0, #0x0] _02025BE4: pop {r3, pc} .balign 4 thumb_func_start FUN_02025BE8 FUN_02025BE8: ; 0x02025BE8 push {r3, lr} bl FUN_02026CC4 add r1, r0, #0x0 add r1, #0x9c ldrb r1, [r1, #0x0] cmp r1, #0x0 bne _02025BFE mov r1, #0x1 add r0, #0x9c strb r1, [r0, #0x0] _02025BFE: pop {r3, pc} thumb_func_start FUN_02025C00 FUN_02025C00: ; 0x02025C00 push {r3, lr} bl FUN_02026CC4 add r1, r0, #0x0 add r1, #0x9c ldrb r1, [r1, #0x0] cmp r1, #0x1 bne _02025C16 mov r1, #0x0 add r0, #0x9c strb r1, [r0, #0x0] _02025C16: pop {r3, pc} thumb_func_start FUN_02025C18 FUN_02025C18: ; 0x02025C18 push {r3, lr} bl FUN_02026CC4 add r0, #0x9c ldrb r0, [r0, #0x0] cmp r0, #0x2 beq _02025C2A mov r0, #0x1 pop {r3, pc} _02025C2A: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_02025C30 FUN_02025C30: ; 0x02025C30 mov r1, #0x1 add r0, #0x9d strb r1, [r0, #0x0] bx lr thumb_func_start FUN_02025C38 FUN_02025C38: ; 0x02025C38 add r0, #0x9d ldrb r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02025C40 FUN_02025C40: ; 0x02025C40 push {r3-r7, lr} add r7, r0, #0x0 ldr r0, _02025CD0 ; =0x0000010E add r6, r1, #0x0 ldrb r0, [r7, r0] mov r4, #0x0 add r5, r7, #0x0 str r0, [sp, #0x0] _02025C50: add r0, r6, #0x0 bl FUN_020239BC add r1, r5, #0x0 add r1, #0xa0 ldr r1, [r1, #0x0] cmp r1, r0 beq _02025CCC add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, #0x5 blt _02025C50 ldr r0, [sp, #0x0] cmp r0, #0x5 blt _02025C72 bl ErrorHandling _02025C72: add r0, r6, #0x0 bl FUN_0202398C ldr r1, [sp, #0x0] add r2, r7, #0x0 add r2, #0xb4 lsl r1, r1, #0x4 add r1, r2, r1 mov r2, #0x10 blx MI_CpuCopy8 add r0, r6, #0x0 bl FUN_020239BC ldr r1, [sp, #0x0] lsl r1, r1, #0x2 add r1, r7, r1 add r1, #0xa0 str r0, [r1, #0x0] add r0, r6, #0x0 bl FUN_02023A70 ldr r1, [sp, #0x0] add r2, r7, r1 mov r1, #0x41 lsl r1, r1, #0x2 strb r0, [r2, r1] add r0, r6, #0x0 bl FUN_02023A68 ldr r1, [sp, #0x0] add r2, r7, r1 ldr r1, _02025CD4 ; =0x00000109 strb r0, [r2, r1] add r0, r1, #0x5 ldrb r0, [r7, r0] add r2, r0, #0x1 add r0, r1, #0x5 strb r2, [r7, r0] ldrb r0, [r7, r0] cmp r0, #0x5 blo _02025CCC mov r2, #0x0 add r0, r1, #0x5 strb r2, [r7, r0] _02025CCC: pop {r3-r7, pc} nop _02025CD0: .word 0x0000010E _02025CD4: .word 0x00000109 thumb_func_start FUN_02025CD8 FUN_02025CD8: ; 0x02025CD8 push {r3-r7, lr} add r5, r0, #0x0 ldr r0, _02025D38 ; =0x0000010E ldrb r0, [r5, r0] sub r0, r0, r2 sub r4, r0, #0x1 bpl _02025CE8 add r4, r4, #0x5 _02025CE8: add r7, r5, #0x0 lsl r0, r4, #0x4 add r7, #0xb4 str r0, [sp, #0x0] ldrh r0, [r7, r0] cmp r0, #0x0 beq _02025D32 add r0, r1, #0x0 bl FUN_02023928 ldr r1, [sp, #0x0] add r6, r0, #0x0 add r1, r7, r1 bl FUN_0202395C ldr r1, _02025D3C ; =0x00000109 add r2, r5, r4 ldrb r1, [r2, r1] add r0, r6, #0x0 bl FUN_02023A6C mov r1, #0x41 add r2, r5, r4 lsl r1, r1, #0x2 ldrb r1, [r2, r1] add r0, r6, #0x0 bl FUN_02023A74 lsl r1, r4, #0x2 add r1, r5, r1 add r1, #0xa0 ldr r1, [r1, #0x0] add r0, r6, #0x0 bl FUN_020239B8 add r0, r6, #0x0 pop {r3-r7, pc} _02025D32: mov r0, #0x0 pop {r3-r7, pc} nop _02025D38: .word 0x0000010E _02025D3C: .word 0x00000109 thumb_func_start FUN_02025D40 FUN_02025D40: ; 0x02025D40 add r0, #0x94 ldr r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02025D48 FUN_02025D48: ; 0x02025D48 push {r4, lr} add r4, r0, #0x0 cmp r4, #0xb bge _02025D54 bl ErrorHandling _02025D54: cmp r4, #0x3c blt _02025D5C bl ErrorHandling _02025D5C: sub r4, #0xb ldr r0, _02025D68 ; =0x02105C74 lsl r1, r4, #0x1 ldrh r0, [r0, r1] pop {r4, pc} nop _02025D68: .word 0x02105C74 thumb_func_start FUN_02025D6C FUN_02025D6C: ; 0x02025D6C push {r4-r5} mov r2, #0x81 mov r5, #0x0 lsl r2, r2, #0x4 _02025D74: add r4, r0, r5 ldrb r3, [r4, r2] cmp r3, #0x0 bne _02025D88 mov r0, #0x81 lsl r0, r0, #0x4 strb r1, [r4, r0] mov r0, #0x1 pop {r4-r5} bx lr _02025D88: add r5, r5, #0x1 cmp r5, #0xc8 blt _02025D74 mov r0, #0x0 pop {r4-r5} bx lr thumb_func_start FUN_02025D94 FUN_02025D94: ; 0x02025D94 mov r1, #0x81 mov r3, #0x0 lsl r1, r1, #0x4 _02025D9A: add r2, r0, r3 ldrb r2, [r2, r1] cmp r2, #0x0 bne _02025DA6 mov r0, #0x1 bx lr _02025DA6: add r3, r3, #0x1 cmp r3, #0xc8 blt _02025D9A mov r0, #0x0 bx lr thumb_func_start FUN_02025DB0 FUN_02025DB0: ; 0x02025DB0 mov r1, #0x81 mov r3, #0x0 lsl r1, r1, #0x4 _02025DB6: add r2, r0, r3 ldrb r2, [r2, r1] cmp r2, #0x0 beq _02025DC4 add r3, r3, #0x1 cmp r3, #0xc8 blt _02025DB6 _02025DC4: add r0, r3, #0x0 bx lr thumb_func_start FUN_02025DC8 FUN_02025DC8: ; 0x02025DC8 add r1, r0, r1 mov r0, #0x81 lsl r0, r0, #0x4 ldrb r0, [r1, r0] bx lr .balign 4 thumb_func_start FUN_02025DD4 FUN_02025DD4: ; 0x02025DD4 push {r3-r7, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_02025F0C cmp r0, #0x0 beq _02025DE6 bl ErrorHandling _02025DE6: mov r0, #0x81 add r1, r5, r4 lsl r0, r0, #0x4 add r6, r4, #0x0 ldrb r7, [r1, r0] cmp r4, #0xc7 bge _02025E06 mov r1, #0x81 add r0, r0, #0x1 lsl r1, r1, #0x4 _02025DFA: add r3, r5, r6 ldrb r2, [r3, r0] add r6, r6, #0x1 cmp r6, #0xc7 strb r2, [r3, r1] blt _02025DFA _02025E06: ldr r0, _02025E1C ; =0x000008D7 mov r2, #0x0 strb r2, [r5, r0] add r0, r5, #0x0 add r1, r4, #0x0 sub r2, r2, #0x1 bl FUN_02025F58 add r0, r7, #0x0 pop {r3-r7, pc} nop _02025E1C: .word 0x000008D7 thumb_func_start FUN_02025E20 FUN_02025E20: ; 0x02025E20 push {r4-r7, lr} sub sp, #0xd4 mov r4, #0x0 add r5, r0, #0x0 sub r0, r4, #0x1 str r0, [sp, #0x4] mov r0, #0x81 lsl r0, r0, #0x4 str r1, [sp, #0x8] str r2, [sp, #0x0] add r0, r5, r0 add r1, sp, #0xc mov r2, #0xc8 blx MI_CpuCopy8 ldr r2, [sp, #0x8] add r1, sp, #0xc add r0, r4, #0x0 add r7, r1, r2 _02025E46: ldr r2, [sp, #0x8] cmp r0, r2 beq _02025E58 ldrb r6, [r1, #0x0] mov r2, #0x81 add r3, r5, r4 lsl r2, r2, #0x4 strb r6, [r3, r2] add r4, r4, #0x1 _02025E58: ldr r2, [sp, #0x0] cmp r0, r2 bne _02025E6A ldrb r6, [r7, #0x0] mov r2, #0x81 add r3, r5, r4 lsl r2, r2, #0x4 strb r6, [r3, r2] add r4, r4, #0x1 _02025E6A: add r0, r0, #0x1 add r1, r1, #0x1 cmp r0, #0xc8 blt _02025E46 ldr r0, [sp, #0x8] mov r3, #0x0 add r2, r0, #0x1 mov r0, #0x9a lsl r0, r0, #0x4 _02025E7C: add r1, r5, r3 ldrb r1, [r1, r0] cmp r2, r1 bne _02025E88 str r3, [sp, #0x4] b _02025E8E _02025E88: add r3, r3, #0x1 cmp r3, #0xf blt _02025E7C _02025E8E: ldr r1, [sp, #0x0] add r0, r5, #0x0 mov r2, #0x1 bl FUN_02025F58 mov r2, #0x0 ldr r1, [sp, #0x8] add r0, r5, #0x0 mvn r2, r2 bl FUN_02025F58 mov r1, #0x0 ldr r0, [sp, #0x4] mvn r1, r1 cmp r0, r1 beq _02025ED6 ldr r1, [sp, #0x0] ldr r0, [sp, #0x8] cmp r0, r1 bge _02025EC8 add r0, r1, #0x0 add r2, r0, #0x1 ldr r0, [sp, #0x4] add sp, #0xd4 add r1, r5, r0 mov r0, #0x9a lsl r0, r0, #0x4 strb r2, [r1, r0] pop {r4-r7, pc} _02025EC8: add r0, r1, #0x0 add r2, r0, #0x2 ldr r0, [sp, #0x4] add r1, r5, r0 mov r0, #0x9a lsl r0, r0, #0x4 strb r2, [r1, r0] _02025ED6: add sp, #0xd4 pop {r4-r7, pc} .balign 4 thumb_func_start FUN_02025EDC FUN_02025EDC: ; 0x02025EDC push {r4-r6, lr} add r6, r2, #0x0 add r5, r0, #0x0 add r4, r1, #0x0 cmp r6, #0x1 bge _02025EEC bl ErrorHandling _02025EEC: cmp r6, #0xf ble _02025EF4 bl ErrorHandling _02025EF4: sub r0, r6, #0x1 add r1, r5, r0 mov r0, #0x9a add r2, r4, #0x1 lsl r0, r0, #0x4 strb r2, [r1, r0] mov r0, #0x81 add r1, r5, r4 lsl r0, r0, #0x4 ldrb r0, [r1, r0] pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02025F0C FUN_02025F0C: ; 0x02025F0C push {r3-r4} add r3, r1, #0x1 mov r1, #0x9a mov r4, #0x0 lsl r1, r1, #0x4 _02025F16: add r2, r0, r4 ldrb r2, [r2, r1] cmp r3, r2 bne _02025F24 mov r0, #0x1 pop {r3-r4} bx lr _02025F24: add r4, r4, #0x1 cmp r4, #0xf blt _02025F16 mov r0, #0x0 pop {r3-r4} bx lr thumb_func_start FUN_02025F30 FUN_02025F30: ; 0x02025F30 sub r1, r1, #0x1 cmp r1, #0xf bge _02025F40 add r1, r0, r1 mov r0, #0x9a mov r2, #0x0 lsl r0, r0, #0x4 strb r2, [r1, r0] _02025F40: bx lr .balign 4 thumb_func_start FUN_02025F44 FUN_02025F44: ; 0x02025F44 mov r1, #0x9a lsl r1, r1, #0x4 add r0, r0, r1 ldr r3, _02025F54 ; =MI_CpuFill8 mov r1, #0x0 mov r2, #0xf bx r3 nop _02025F54: .word MI_CpuFill8 thumb_func_start FUN_02025F58 FUN_02025F58: ; 0x02025F58 push {r4-r7} mov r6, #0x9a lsl r6, r6, #0x4 mov r4, #0x0 add r1, r1, #0x1 add r7, r6, #0x0 _02025F64: add r3, r0, r4 ldrb r5, [r3, r7] cmp r5, r1 ble _02025F76 mov r5, #0x9a lsl r5, r5, #0x4 ldrb r5, [r3, r5] add r5, r5, r2 strb r5, [r3, r6] _02025F76: add r4, r4, #0x1 cmp r4, #0xf blt _02025F64 pop {r4-r7} bx lr thumb_func_start FUN_02025F80 FUN_02025F80: ; 0x02025F80 mov r1, #0x9 mov r3, #0x0 lsl r1, r1, #0x8 _02025F86: add r2, r0, r3 ldrb r2, [r2, r1] cmp r2, #0x0 beq _02025F94 add r3, r3, #0x1 cmp r3, #0x28 blt _02025F86 _02025F94: add r0, r3, #0x0 bx lr thumb_func_start FUN_02025F98 FUN_02025F98: ; 0x02025F98 add r1, r0, r1 mov r0, #0x9 lsl r0, r0, #0x8 ldrb r0, [r1, r0] bx lr .balign 4 thumb_func_start FUN_02025FA4 FUN_02025FA4: ; 0x02025FA4 push {r3-r6} mov r2, #0x9 add r3, r0, r1 lsl r2, r2, #0x8 ldrb r2, [r3, r2] cmp r1, #0x27 bge _02025FC2 ldr r3, _02025FD0 ; =0x00000901 sub r4, r3, #0x1 _02025FB6: add r6, r0, r1 ldrb r5, [r6, r3] add r1, r1, #0x1 cmp r1, #0x27 strb r5, [r6, r4] blt _02025FB6 _02025FC2: ldr r1, _02025FD4 ; =0x00000927 mov r3, #0x0 strb r3, [r0, r1] add r0, r2, #0x0 pop {r3-r6} bx lr nop _02025FD0: .word 0x00000901 _02025FD4: .word 0x00000927 thumb_func_start FUN_02025FD8 FUN_02025FD8: ; 0x02025FD8 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_020259E0 mov r1, #0x0 mvn r1, r1 cmp r0, r1 beq _02025FF6 add r1, r5, r0 mov r0, #0x9 lsl r0, r0, #0x8 strb r4, [r1, r0] mov r0, #0x1 pop {r3-r5, pc} _02025FF6: mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02025FFC FUN_02025FFC: ; 0x02025FFC push {r3-r7, lr} sub sp, #0x30 add r5, r0, #0x0 mov r0, #0x9 lsl r0, r0, #0x8 str r1, [sp, #0x4] str r2, [sp, #0x0] add r0, r5, r0 add r1, sp, #0x8 mov r2, #0x28 mov r4, #0x0 blx MI_CpuCopy8 ldr r2, [sp, #0x4] add r1, sp, #0x8 add r0, r4, #0x0 add r7, r1, r2 _0202601E: ldr r2, [sp, #0x4] cmp r0, r2 beq _02026030 ldrb r6, [r1, #0x0] mov r2, #0x9 add r3, r5, r4 lsl r2, r2, #0x8 strb r6, [r3, r2] add r4, r4, #0x1 _02026030: ldr r2, [sp, #0x0] cmp r0, r2 bne _02026042 ldrb r6, [r7, #0x0] mov r2, #0x9 add r3, r5, r4 lsl r2, r2, #0x8 strb r6, [r3, r2] add r4, r4, #0x1 _02026042: add r0, r0, #0x1 add r1, r1, #0x1 cmp r0, #0x28 blt _0202601E add sp, #0x30 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02026050 FUN_02026050: ; 0x02026050 mov r1, #0x95 mov r3, #0x0 lsl r1, r1, #0x4 _02026056: add r2, r0, r3 ldrb r2, [r2, r1] cmp r2, #0x0 beq _02026064 add r3, r3, #0x1 cmp r3, #0x28 blt _02026056 _02026064: add r0, r3, #0x0 bx lr thumb_func_start FUN_02026068 FUN_02026068: ; 0x02026068 add r1, r0, r1 mov r0, #0x95 lsl r0, r0, #0x4 ldrb r0, [r1, r0] bx lr .balign 4 thumb_func_start FUN_02026074 FUN_02026074: ; 0x02026074 add r1, r0, r1 ldr r0, _0202607C ; =0x00000978 ldrb r0, [r1, r0] bx lr .balign 4 _0202607C: .word 0x00000978 thumb_func_start FUN_02026080 FUN_02026080: ; 0x02026080 push {r4-r7} add r2, r0, #0x0 mov r0, #0x95 add r3, r2, r1 lsl r0, r0, #0x4 ldrb r0, [r3, r0] cmp r1, #0x27 mov r12, r0 bge _020260AE ldr r7, _020260BC ; =0x00000951 add r4, r7, #0x0 add r5, r7, #0x0 sub r3, r7, #0x1 add r4, #0x28 add r5, #0x27 _0202609E: add r0, r2, r1 ldrb r6, [r0, r7] add r1, r1, #0x1 cmp r1, #0x27 strb r6, [r0, r3] ldrb r6, [r0, r4] strb r6, [r0, r5] blt _0202609E _020260AE: ldr r0, _020260C0 ; =0x00000977 mov r1, #0x0 strb r1, [r2, r0] mov r0, r12 pop {r4-r7} bx lr nop _020260BC: .word 0x00000951 _020260C0: .word 0x00000977 thumb_func_start FUN_020260C4 FUN_020260C4: ; 0x020260C4 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 bl FUN_02025A00 mov r1, #0x0 mvn r1, r1 cmp r0, r1 beq _020260E8 add r1, r5, r0 mov r0, #0x95 lsl r0, r0, #0x4 strb r4, [r1, r0] add r0, #0x28 strb r6, [r1, r0] mov r0, #0x1 pop {r4-r6, pc} _020260E8: mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_020260EC FUN_020260EC: ; 0x020260EC push {r4-r7, lr} sub sp, #0x5c add r7, r0, #0x0 mov r0, #0x95 lsl r0, r0, #0x4 str r1, [sp, #0x0] str r2, [sp, #0x4] add r0, r7, r0 add r1, sp, #0x34 mov r2, #0x28 mov r4, #0x0 blx MI_CpuCopy8 ldr r0, _02026168 ; =0x00000978 add r1, sp, #0xc add r0, r7, r0 mov r2, #0x28 blx MI_CpuCopy8 ldr r3, [sp, #0x0] add r1, sp, #0x34 add r3, r1, r3 mov r12, r3 ldr r3, [sp, #0x0] add r2, sp, #0xc add r3, r2, r3 add r0, r4, #0x0 str r3, [sp, #0x8] _02026124: ldr r3, [sp, #0x0] cmp r0, r3 beq _0202613C ldrb r5, [r1, #0x0] mov r3, #0x95 add r6, r7, r4 lsl r3, r3, #0x4 strb r5, [r6, r3] ldrb r5, [r2, #0x0] add r3, #0x28 add r4, r4, #0x1 strb r5, [r6, r3] _0202613C: ldr r3, [sp, #0x4] cmp r0, r3 bne _02026158 mov r3, r12 ldrb r5, [r3, #0x0] mov r3, #0x95 add r6, r7, r4 lsl r3, r3, #0x4 strb r5, [r6, r3] ldr r3, [sp, #0x8] add r4, r4, #0x1 ldrb r5, [r3, #0x0] ldr r3, _02026168 ; =0x00000978 strb r5, [r6, r3] _02026158: add r0, r0, #0x1 add r1, r1, #0x1 add r2, r2, #0x1 cmp r0, #0x28 blt _02026124 add sp, #0x5c pop {r4-r7, pc} nop _02026168: .word 0x00000978 thumb_func_start FUN_0202616C FUN_0202616C: ; 0x0202616C ldr r1, _02026184 ; =0x00000928 mov r3, #0x0 _02026170: add r2, r0, r3 ldrb r2, [r2, r1] cmp r2, #0x0 beq _0202617E add r3, r3, #0x1 cmp r3, #0x28 blt _02026170 _0202617E: add r0, r3, #0x0 bx lr nop _02026184: .word 0x00000928 thumb_func_start FUN_02026188 FUN_02026188: ; 0x02026188 add r1, r0, r1 ldr r0, _02026190 ; =0x00000928 ldrb r0, [r1, r0] bx lr .balign 4 _02026190: .word 0x00000928 thumb_func_start FUN_02026194 FUN_02026194: ; 0x02026194 push {r3-r6} ldr r2, _020261BC ; =0x00000928 add r3, r0, r1 ldrb r2, [r3, r2] cmp r1, #0x27 bge _020261B0 ldr r3, _020261C0 ; =0x00000929 sub r4, r3, #0x1 _020261A4: add r6, r0, r1 ldrb r5, [r6, r3] add r1, r1, #0x1 cmp r1, #0x27 strb r5, [r6, r4] blt _020261A4 _020261B0: ldr r1, _020261C4 ; =0x0000094F mov r3, #0x0 strb r3, [r0, r1] add r0, r2, #0x0 pop {r3-r6} bx lr .balign 4 _020261BC: .word 0x00000928 _020261C0: .word 0x00000929 _020261C4: .word 0x0000094F thumb_func_start FUN_020261C8 FUN_020261C8: ; 0x020261C8 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_02025A20 mov r1, #0x0 mvn r1, r1 cmp r0, r1 beq _020261E4 add r1, r5, r0 ldr r0, _020261E8 ; =0x00000928 strb r4, [r1, r0] mov r0, #0x1 pop {r3-r5, pc} _020261E4: mov r0, #0x0 pop {r3-r5, pc} .balign 4 _020261E8: .word 0x00000928 thumb_func_start FUN_020261EC FUN_020261EC: ; 0x020261EC push {r3-r7, lr} sub sp, #0x30 add r5, r0, #0x0 ldr r0, _02026238 ; =0x00000928 str r1, [sp, #0x4] str r2, [sp, #0x0] add r0, r5, r0 add r1, sp, #0x8 mov r2, #0x28 mov r4, #0x0 blx MI_CpuCopy8 ldr r2, [sp, #0x4] add r1, sp, #0x8 add r0, r4, #0x0 add r7, r1, r2 _0202620C: ldr r2, [sp, #0x4] cmp r0, r2 beq _0202621C ldrb r6, [r1, #0x0] ldr r2, _02026238 ; =0x00000928 add r3, r5, r4 strb r6, [r3, r2] add r4, r4, #0x1 _0202621C: ldr r2, [sp, #0x0] cmp r0, r2 bne _0202622C ldrb r6, [r7, #0x0] ldr r2, _02026238 ; =0x00000928 add r3, r5, r4 strb r6, [r3, r2] add r4, r4, #0x1 _0202622C: add r0, r0, #0x1 add r1, r1, #0x1 cmp r0, #0x28 blt _0202620C add sp, #0x30 pop {r3-r7, pc} .balign 4 _02026238: .word 0x00000928 thumb_func_start FUN_0202623C FUN_0202623C: ; 0x0202623C ldr r1, _02026254 ; =0x000008D8 mov r3, #0x0 _02026240: add r2, r0, r3 ldrb r2, [r2, r1] cmp r2, #0x0 beq _0202624E add r3, r3, #0x1 cmp r3, #0x28 blt _02026240 _0202624E: add r0, r3, #0x0 bx lr nop _02026254: .word 0x000008D8 thumb_func_start FUN_02026258 FUN_02026258: ; 0x02026258 add r1, r0, r1 ldr r0, _02026260 ; =0x000008D8 ldrb r0, [r1, r0] bx lr .balign 4 _02026260: .word 0x000008D8 thumb_func_start FUN_02026264 FUN_02026264: ; 0x02026264 push {r3-r6} ldr r2, _0202628C ; =0x000008D8 add r3, r0, r1 ldrb r2, [r3, r2] cmp r1, #0x27 bge _02026280 ldr r3, _02026290 ; =0x000008D9 sub r4, r3, #0x1 _02026274: add r6, r0, r1 ldrb r5, [r6, r3] add r1, r1, #0x1 cmp r1, #0x27 strb r5, [r6, r4] blt _02026274 _02026280: ldr r1, _02026294 ; =0x000008FF mov r3, #0x0 strb r3, [r0, r1] add r0, r2, #0x0 pop {r3-r6} bx lr .balign 4 _0202628C: .word 0x000008D8 _02026290: .word 0x000008D9 _02026294: .word 0x000008FF thumb_func_start FUN_02026298 FUN_02026298: ; 0x02026298 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_02025A40 mov r1, #0x0 mvn r1, r1 cmp r0, r1 beq _020262B4 add r1, r5, r0 ldr r0, _020262B8 ; =0x000008D8 strb r4, [r1, r0] mov r0, #0x1 pop {r3-r5, pc} _020262B4: mov r0, #0x0 pop {r3-r5, pc} .balign 4 _020262B8: .word 0x000008D8 thumb_func_start FUN_020262BC FUN_020262BC: ; 0x020262BC push {r3-r7, lr} sub sp, #0x30 add r5, r0, #0x0 ldr r0, _02026308 ; =0x000008D8 str r1, [sp, #0x4] str r2, [sp, #0x0] add r0, r5, r0 add r1, sp, #0x8 mov r2, #0x28 mov r4, #0x0 blx MI_CpuCopy8 ldr r2, [sp, #0x4] add r1, sp, #0x8 add r0, r4, #0x0 add r7, r1, r2 _020262DC: ldr r2, [sp, #0x4] cmp r0, r2 beq _020262EC ldrb r6, [r1, #0x0] ldr r2, _02026308 ; =0x000008D8 add r3, r5, r4 strb r6, [r3, r2] add r4, r4, #0x1 _020262EC: ldr r2, [sp, #0x0] cmp r0, r2 bne _020262FC ldrb r6, [r7, #0x0] ldr r2, _02026308 ; =0x000008D8 add r3, r5, r4 strb r6, [r3, r2] add r4, r4, #0x1 _020262FC: add r0, r0, #0x1 add r1, r1, #0x1 cmp r0, #0x28 blt _020262DC add sp, #0x30 pop {r3-r7, pc} .balign 4 _02026308: .word 0x000008D8 thumb_func_start FUN_0202630C FUN_0202630C: ; 0x0202630C push {r3-r7, lr} add r4, r2, #0x0 add r5, r0, #0x0 add r7, r1, #0x0 add r6, r3, #0x0 cmp r4, #0x40 blt _0202631E bl ErrorHandling _0202631E: ldr r0, _02026350 ; =0x0000010F add r1, r5, r4 strb r7, [r1, r0] lsl r1, r4, #0x1 add r1, r4, r1 add r2, r0, #0x0 add r1, r5, r1 add r2, #0x40 strb r6, [r1, r2] mov r2, #0xf lsl r2, r2, #0x8 add r3, r6, #0x0 and r3, r2 asr r4, r3, #0x8 ldr r3, [sp, #0x18] and r2, r3 asr r2, r2, #0x4 add r4, r4, r2 add r2, r0, #0x0 add r2, #0x41 strb r4, [r1, r2] add r0, #0x42 strb r3, [r1, r0] pop {r3-r7, pc} nop _02026350: .word 0x0000010F thumb_func_start FUN_02026354 FUN_02026354: ; 0x02026354 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x40 blt _02026362 bl ErrorHandling _02026362: ldr r0, _0202636C ; =0x0000010F add r1, r5, r4 ldrb r0, [r1, r0] pop {r3-r5, pc} nop _0202636C: .word 0x0000010F thumb_func_start FUN_02026370 FUN_02026370: ; 0x02026370 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x40 blt _0202637E bl ErrorHandling _0202637E: lsl r0, r4, #0x1 add r0, r4, r0 add r1, r5, r0 ldr r0, _02026398 ; =0x0000014F ldrb r2, [r1, r0] add r0, r0, #0x1 ldrb r0, [r1, r0] lsl r1, r0, #0x8 mov r0, #0xf lsl r0, r0, #0x8 and r0, r1 add r0, r2, r0 pop {r3-r5, pc} .balign 4 _02026398: .word 0x0000014F thumb_func_start FUN_0202639C FUN_0202639C: ; 0x0202639C push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x40 blt _020263AA bl ErrorHandling _020263AA: lsl r0, r4, #0x1 add r0, r4, r0 add r1, r5, r0 ldr r0, _020263C4 ; =0x00000151 ldrb r2, [r1, r0] sub r0, r0, #0x1 ldrb r0, [r1, r0] lsl r1, r0, #0x4 mov r0, #0xf lsl r0, r0, #0x8 and r0, r1 add r0, r2, r0 pop {r3-r5, pc} .balign 4 _020263C4: .word 0x00000151 thumb_func_start FUN_020263C8 FUN_020263C8: ; 0x020263C8 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x40 blt _020263D6 bl ErrorHandling _020263D6: ldr r0, _020263F0 ; =0x0000010F mov r1, #0x0 add r2, r5, r4 strb r1, [r2, r0] add r0, #0x40 add r2, r5, r0 lsl r0, r4, #0x1 add r0, r4, r0 add r0, r2, r0 mov r2, #0x3 blx MI_CpuFill8 pop {r3-r5, pc} .balign 4 _020263F0: .word 0x0000010F thumb_func_start FUN_020263F4 FUN_020263F4: ; 0x020263F4 push {r3-r7, lr} add r4, r2, #0x0 add r5, r0, #0x0 add r7, r1, #0x0 add r6, r3, #0x0 cmp r4, #0x10 blt _02026406 bl ErrorHandling _02026406: lsl r2, r4, #0x1 ldr r1, _02026440 ; =0x0000050C add r0, r5, r4 add r2, r4, r2 add r4, r5, r2 add r2, r1, #0x0 mov r5, #0xf strb r7, [r0, r1] add r2, #0x10 strb r6, [r4, r2] lsl r5, r5, #0x8 add r2, r6, #0x0 and r2, r5 asr r3, r2, #0x8 ldr r2, [sp, #0x18] and r5, r2 asr r5, r5, #0x4 add r5, r3, r5 add r3, r1, #0x0 add r3, #0x11 strb r5, [r4, r3] add r3, r1, #0x0 add r3, #0x12 strb r2, [r4, r3] ldr r2, [sp, #0x1c] add r1, #0x40 strb r2, [r0, r1] pop {r3-r7, pc} nop _02026440: .word 0x0000050C thumb_func_start FUN_02026444 FUN_02026444: ; 0x02026444 add r1, r0, r1 ldr r0, _0202644C ; =0x0000050C ldrb r0, [r1, r0] bx lr .balign 4 _0202644C: .word 0x0000050C thumb_func_start FUN_02026450 FUN_02026450: ; 0x02026450 lsl r2, r1, #0x1 add r1, r1, r2 add r1, r0, r1 ldr r0, _0202646C ; =0x0000051C ldrb r2, [r1, r0] add r0, r0, #0x1 ldrb r0, [r1, r0] lsl r1, r0, #0x8 mov r0, #0xf lsl r0, r0, #0x8 and r0, r1 add r0, r2, r0 bx lr nop _0202646C: .word 0x0000051C thumb_func_start FUN_02026470 FUN_02026470: ; 0x02026470 lsl r2, r1, #0x1 add r1, r1, r2 add r1, r0, r1 ldr r0, _0202648C ; =0x0000051E ldrb r2, [r1, r0] sub r0, r0, #0x1 ldrb r0, [r1, r0] lsl r1, r0, #0x4 mov r0, #0xf lsl r0, r0, #0x8 and r0, r1 add r0, r2, r0 bx lr nop _0202648C: .word 0x0000051E thumb_func_start FUN_02026490 FUN_02026490: ; 0x02026490 add r1, r0, r1 ldr r0, _02026498 ; =0x0000054C ldrb r0, [r1, r0] bx lr .balign 4 _02026498: .word 0x0000054C thumb_func_start FUN_0202649C FUN_0202649C: ; 0x0202649C push {r3-r7, lr} add r4, r2, #0x0 add r5, r0, #0x0 add r6, r1, #0x0 add r7, r3, #0x0 cmp r4, #0x64 blt _020264AE bl ErrorHandling _020264AE: ldr r1, _020264E8 ; =0x0000055C add r0, r5, r4 strb r6, [r0, r1] lsl r1, r4, #0x1 add r1, r4, r1 add r4, r5, r1 mov r5, #0xf lsl r5, r5, #0x8 add r2, r7, #0x0 and r2, r5 asr r3, r2, #0x8 ldr r2, [sp, #0x18] ldr r1, _020264EC ; =0x00000688 and r5, r2 asr r5, r5, #0x4 add r5, r3, r5 strb r7, [r4, r1] add r3, r1, #0x1 strb r5, [r4, r3] add r3, r1, #0x2 strb r2, [r4, r3] add r2, r1, #0x0 ldr r3, [sp, #0x1c] sub r2, #0x64 strb r3, [r0, r2] ldr r2, [sp, #0x20] sub r1, #0xc8 strb r2, [r0, r1] pop {r3-r7, pc} .balign 4 _020264E8: .word 0x0000055C _020264EC: .word 0x00000688 thumb_func_start FUN_020264F0 FUN_020264F0: ; 0x020264F0 add r1, r0, r1 ldr r0, _020264F8 ; =0x0000055C ldrb r0, [r1, r0] bx lr .balign 4 _020264F8: .word 0x0000055C thumb_func_start FUN_020264FC FUN_020264FC: ; 0x020264FC lsl r2, r1, #0x1 add r1, r1, r2 add r1, r0, r1 ldr r0, _02026518 ; =0x00000688 ldrb r2, [r1, r0] add r0, r0, #0x1 ldrb r0, [r1, r0] lsl r1, r0, #0x8 mov r0, #0xf lsl r0, r0, #0x8 and r0, r1 add r0, r2, r0 bx lr nop _02026518: .word 0x00000688 thumb_func_start FUN_0202651C FUN_0202651C: ; 0x0202651C lsl r2, r1, #0x1 add r1, r1, r2 add r1, r0, r1 ldr r0, _02026538 ; =0x0000068A ldrb r2, [r1, r0] sub r0, r0, #0x1 ldrb r0, [r1, r0] lsl r1, r0, #0x4 mov r0, #0xf lsl r0, r0, #0x8 and r0, r1 add r0, r2, r0 bx lr nop _02026538: .word 0x0000068A thumb_func_start FUN_0202653C FUN_0202653C: ; 0x0202653C add r1, r0, r1 ldr r0, _02026544 ; =0x00000624 ldrb r0, [r1, r0] bx lr .balign 4 _02026544: .word 0x00000624 thumb_func_start FUN_02026548 FUN_02026548: ; 0x02026548 add r1, r0, r1 mov r0, #0x17 lsl r0, r0, #0x6 ldrb r0, [r1, r0] bx lr .balign 4 thumb_func_start FUN_02026554 FUN_02026554: ; 0x02026554 push {r4-r7} ldr r3, _020265B0 ; =0x00000211 add r7, r0, #0x0 mov r12, r1 mov r0, #0x0 add r1, r7, #0x0 sub r4, r3, #0x1 sub r5, r3, #0x2 _02026564: ldrb r6, [r1, r5] cmp r6, #0x0 bne _020265A0 ldrb r6, [r1, r4] cmp r6, #0x0 bne _020265A0 ldrb r6, [r1, r3] cmp r6, #0x0 bne _020265A0 lsl r1, r0, #0x1 add r1, r0, r1 mov r5, #0xf ldr r4, _020265B4 ; =0x0000020F add r1, r7, r1 mov r3, r12 strb r3, [r1, r4] lsl r5, r5, #0x8 mov r3, r12 and r3, r5 asr r6, r3, #0x8 add r3, r2, #0x0 and r3, r5 asr r3, r3, #0x4 add r5, r6, r3 add r3, r4, #0x1 strb r5, [r1, r3] add r3, r4, #0x2 strb r2, [r1, r3] pop {r4-r7} bx lr _020265A0: add r0, r0, #0x1 add r1, r1, #0x3 cmp r0, #0xff blt _02026564 mov r0, #0x0 pop {r4-r7} bx lr nop _020265B0: .word 0x00000211 _020265B4: .word 0x0000020F thumb_func_start FUN_020265B8 FUN_020265B8: ; 0x020265B8 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0xff blt _020265C6 bl ErrorHandling _020265C6: ldr r0, _020265DC ; =0x0000020F mov r2, #0x3 add r1, r5, r0 lsl r0, r4, #0x1 add r0, r4, r0 add r0, r1, r0 mov r1, #0x0 blx MI_CpuFill8 pop {r3-r5, pc} nop _020265DC: .word 0x0000020F thumb_func_start FUN_020265E0 FUN_020265E0: ; 0x020265E0 lsl r2, r1, #0x1 add r1, r1, r2 add r1, r0, r1 ldr r0, _020265FC ; =0x0000020F ldrb r2, [r1, r0] add r0, r0, #0x1 ldrb r0, [r1, r0] lsl r1, r0, #0x8 mov r0, #0xf lsl r0, r0, #0x8 and r0, r1 add r0, r2, r0 bx lr nop _020265FC: .word 0x0000020F thumb_func_start FUN_02026600 FUN_02026600: ; 0x02026600 lsl r2, r1, #0x1 add r1, r1, r2 add r1, r0, r1 ldr r0, _0202661C ; =0x00000211 ldrb r2, [r1, r0] sub r0, r0, #0x1 ldrb r0, [r1, r0] lsl r1, r0, #0x4 mov r0, #0xf lsl r0, r0, #0x8 and r0, r1 add r0, r2, r0 bx lr nop _0202661C: .word 0x00000211 thumb_func_start FUN_02026620 FUN_02026620: ; 0x02026620 mov r1, #0x9b lsl r1, r1, #0x4 ldrb r0, [r0, r1] lsl r0, r0, #0x18 lsr r0, r0, #0x1c bne _02026630 mov r0, #0x1 bx lr _02026630: mov r0, #0x0 bx lr thumb_func_start FUN_02026634 FUN_02026634: ; 0x02026634 mov r2, #0x9b lsl r2, r2, #0x4 ldrb r3, [r0, r2] mov r1, #0xf0 bic r3, r1 mov r1, #0x10 orr r1, r3 strb r1, [r0, r2] bx lr .balign 4 thumb_func_start FUN_02026648 FUN_02026648: ; 0x02026648 mov r1, #0x9b lsl r1, r1, #0x4 ldrb r0, [r0, r1] lsl r0, r0, #0x1c lsr r0, r0, #0x1c bx lr thumb_func_start FUN_02026654 FUN_02026654: ; 0x02026654 mov r2, #0x9b lsl r2, r2, #0x4 ldrb r3, [r0, r2] mov r1, #0xf bic r3, r1 strb r3, [r0, r2] bx lr .balign 4 thumb_func_start FUN_02026664 FUN_02026664: ; 0x02026664 push {r3-r4} cmp r1, #0x2c blt _0202667E cmp r1, #0x3b bgt _0202667E ldr r2, _02026684 ; =0x0000080C mov r3, #0x1 sub r1, #0x2c ldr r4, [r0, r2] lsl r3, r1 add r1, r4, #0x0 orr r1, r3 str r1, [r0, r2] _0202667E: pop {r3-r4} bx lr nop _02026684: .word 0x0000080C thumb_func_start FUN_02026688 FUN_02026688: ; 0x02026688 cmp r1, #0x2c blt _02026690 cmp r1, #0x3b ble _02026694 _02026690: mov r0, #0x1 bx lr _02026694: ldr r2, _020266AC ; =0x0000080C sub r1, #0x2c ldr r3, [r0, r2] mov r0, #0x1 add r2, r0, #0x0 lsl r2, r1 add r1, r3, #0x0 tst r1, r2 beq _020266A8 mov r0, #0x0 _020266A8: bx lr nop _020266AC: .word 0x0000080C thumb_func_start FUN_020266B0 FUN_020266B0: ; 0x020266B0 ldr r1, _020266C4 ; =0x000009AF ldrb r2, [r0, r1] cmp r2, #0x63 blo _020266BE mov r2, #0x0 strb r2, [r0, r1] bx lr _020266BE: add r2, r2, #0x1 strb r2, [r0, r1] bx lr .balign 4 _020266C4: .word 0x000009AF thumb_func_start FUN_020266C8 FUN_020266C8: ; 0x020266C8 ldr r1, _020266D0 ; =0x000009AF ldrb r0, [r0, r1] bx lr nop _020266D0: .word 0x000009AF thumb_func_start FUN_020266D4 FUN_020266D4: ; 0x020266D4 ldr r3, _020266DC ; =MI_CpuFill8 mov r1, #0x0 mov r2, #0x94 bx r3 .balign 4 _020266DC: .word MI_CpuFill8 thumb_func_start FUN_020266E0 FUN_020266E0: ; 0x020266E0 push {r4, lr} add r4, r0, #0x0 mov r1, #0x0 mov r2, #0x2d blx MI_CpuFill8 add r0, r4, #0x0 add r0, #0x2d mov r1, #0x0 mov r2, #0x20 blx MI_CpuFill8 add r0, r4, #0x0 mov r1, #0x0 add r0, #0x8c strh r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x8e strh r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x90 strb r1, [r0, #0x0] add r4, #0x91 strb r1, [r4, #0x0] pop {r4, pc} .balign 4 thumb_func_start FUN_02026714 FUN_02026714: ; 0x02026714 mov r1, #0x0 add r0, #0x91 strb r1, [r0, #0x0] bx lr thumb_func_start FUN_0202671C FUN_0202671C: ; 0x0202671C push {r3-r7, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r7, r2, #0x0 add r6, r3, #0x0 cmp r4, #0x20 blt _0202672E bl ErrorHandling _0202672E: cmp r6, #0x20 blt _02026736 bl ErrorHandling _02026736: ldr r0, [sp, #0x18] cmp r0, #0x20 blt _02026740 bl ErrorHandling _02026740: cmp r5, #0x0 bne _02026748 bl ErrorHandling _02026748: cmp r4, #0x0 beq _02026774 cmp r4, #0x10 bge _02026762 sub r1, r4, #0x1 lsl r0, r1, #0x1 add r0, r1, r0 strb r6, [r5, r0] ldr r1, [sp, #0x18] add r0, r5, r0 strb r1, [r0, #0x1] strb r7, [r0, #0x2] pop {r3-r7, pc} _02026762: sub r4, #0x10 lsl r2, r4, #0x1 add r0, r5, r2 add r0, #0x2d strb r6, [r0, #0x0] add r0, r5, r2 ldr r1, [sp, #0x18] add r0, #0x2e strb r1, [r0, #0x0] _02026774: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02026778 FUN_02026778: ; 0x02026778 push {r3-r7, lr} add r5, r0, #0x0 add r6, r1, #0x0 add r7, r2, #0x0 add r4, r3, #0x0 bl FUN_020267C4 add r2, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 add r3, r7, #0x0 str r4, [sp, #0x0] bl FUN_0202671C pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02026798 FUN_02026798: ; 0x02026798 add r0, #0x88 ldr r0, [r0, #0x0] lsl r0, r0, #0xc lsr r0, r0, #0xc cmp r0, #0x32 blt _020267A8 mov r0, #0x5 bx lr _020267A8: cmp r0, #0xa blt _020267B0 mov r0, #0x4 bx lr _020267B0: cmp r0, #0x3 blt _020267B8 mov r0, #0x3 bx lr _020267B8: cmp r0, #0x1 blt _020267C0 mov r0, #0x2 bx lr _020267C0: mov r0, #0x1 bx lr thumb_func_start FUN_020267C4 FUN_020267C4: ; 0x020267C4 push {r3-r5, lr} add r5, r1, #0x0 add r4, r0, #0x0 cmp r5, #0x20 blt _020267D2 bl ErrorHandling _020267D2: cmp r5, #0x0 bne _020267DE add r0, r4, #0x0 bl FUN_02026798 pop {r3-r5, pc} _020267DE: cmp r5, #0x10 bge _020267EE sub r1, r5, #0x1 lsl r0, r1, #0x1 add r0, r1, r0 add r0, r4, r0 ldrb r0, [r0, #0x2] pop {r3-r5, pc} _020267EE: sub r5, #0x10 lsl r1, r5, #0x1 add r0, r4, r1 add r0, #0x2d ldrb r0, [r0, #0x0] cmp r0, #0x0 beq _0202680A add r0, r4, r1 add r0, #0x2e ldrb r0, [r0, #0x0] cmp r0, #0x0 beq _0202680A mov r0, #0x6 pop {r3-r5, pc} _0202680A: mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02026810 FUN_02026810: ; 0x02026810 push {r3-r5, lr} add r5, r1, #0x0 add r4, r0, #0x0 cmp r5, #0x20 blt _0202681E bl ErrorHandling _0202681E: cmp r5, #0x0 bne _02026826 mov r0, #0xf pop {r3-r5, pc} _02026826: cmp r5, #0x10 bge _02026834 sub r1, r5, #0x1 lsl r0, r1, #0x1 add r0, r1, r0 ldrb r0, [r4, r0] pop {r3-r5, pc} _02026834: sub r5, #0x10 lsl r0, r5, #0x1 add r0, r4, r0 add r0, #0x2d ldrb r0, [r0, #0x0] pop {r3-r5, pc} thumb_func_start FUN_02026840 FUN_02026840: ; 0x02026840 push {r3-r5, lr} add r5, r1, #0x0 add r4, r0, #0x0 cmp r5, #0x20 blt _0202684E bl ErrorHandling _0202684E: cmp r5, #0x0 bne _02026856 mov r0, #0xc pop {r3-r5, pc} _02026856: cmp r5, #0x10 bge _02026866 sub r1, r5, #0x1 lsl r0, r1, #0x1 add r0, r1, r0 add r0, r4, r0 ldrb r0, [r0, #0x1] pop {r3-r5, pc} _02026866: sub r5, #0x10 lsl r0, r5, #0x1 add r0, r4, r0 add r0, #0x2e ldrb r0, [r0, #0x0] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02026874 FUN_02026874: ; 0x02026874 add r0, #0x88 ldr r0, [r0, #0x0] lsl r0, r0, #0xc lsr r0, r0, #0xc cmp r0, #0x32 blo _02026884 mov r0, #0x0 bx lr _02026884: cmp r0, #0xa blo _0202688C mov r0, #0x6 bx lr _0202688C: cmp r0, #0x3 blo _02026894 mov r0, #0xb bx lr _02026894: cmp r0, #0x1 blo _0202689C mov r0, #0xf bx lr _0202689C: mov r0, #0x10 bx lr thumb_func_start FUN_020268A0 FUN_020268A0: ; 0x020268A0 add r0, #0x88 ldr r0, [r0, #0x0] lsl r0, r0, #0xc lsr r0, r0, #0xc cmp r0, #0x32 blo _020268B0 mov r0, #0xf bx lr _020268B0: cmp r0, #0xa blo _020268B8 mov r0, #0xf bx lr _020268B8: cmp r0, #0x3 blo _020268C0 mov r0, #0xf bx lr _020268C0: cmp r0, #0x1 blo _020268C8 mov r0, #0xc bx lr _020268C8: mov r0, #0xa bx lr thumb_func_start FUN_020268CC FUN_020268CC: ; 0x020268CC ldr r0, [r0, #0x0] lsl r0, r0, #0xc lsr r0, r0, #0xc bx lr thumb_func_start FUN_020268D4 FUN_020268D4: ; 0x020268D4 push {r3, lr} bl FUN_020269A0 cmp r0, #0x4 bne _020268E2 mov r0, #0x1 pop {r3, pc} _020268E2: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_020268E8 FUN_020268E8: ; 0x020268E8 ldr r3, [r0, #0x0] ldr r2, _020268F8 ; =0xFFF00000 and r3, r2 ldr r2, _020268FC ; =0x000FFFFF and r1, r2 orr r1, r3 str r1, [r0, #0x0] bx lr .balign 4 _020268F8: .word 0xFFF00000 _020268FC: .word 0x000FFFFF thumb_func_start FUN_02026900 FUN_02026900: ; 0x02026900 ldr r0, [r0, #0x4] lsl r0, r0, #0xc lsr r0, r0, #0xc bx lr thumb_func_start FUN_02026908 FUN_02026908: ; 0x02026908 push {r3-r4} ldr r2, [r0, #0x4] lsl r1, r2, #0xc lsr r4, r1, #0xc ldr r1, _0202692C ; =0x000F423F cmp r4, r1 bhs _02026926 ldr r1, _02026930 ; =0xFFF00000 add r3, r2, #0x0 and r3, r1 ldr r1, _02026934 ; =0x000FFFFF add r2, r4, #0x1 and r1, r2 orr r1, r3 str r1, [r0, #0x4] _02026926: pop {r3-r4} bx lr nop _0202692C: .word 0x000F423F _02026930: .word 0xFFF00000 _02026934: .word 0x000FFFFF thumb_func_start FUN_02026938 FUN_02026938: ; 0x02026938 ldr r0, [r0, #0x8] lsl r0, r0, #0xc lsr r0, r0, #0xc bx lr thumb_func_start FUN_02026940 FUN_02026940: ; 0x02026940 push {r3-r4} ldr r2, [r0, #0x8] lsl r1, r2, #0xc lsr r4, r1, #0xc ldr r1, _02026964 ; =0x000F423F cmp r4, r1 bhs _0202695E ldr r1, _02026968 ; =0xFFF00000 add r3, r2, #0x0 and r3, r1 ldr r1, _0202696C ; =0x000FFFFF add r2, r4, #0x1 and r1, r2 orr r1, r3 str r1, [r0, #0x8] _0202695E: pop {r3-r4} bx lr nop _02026964: .word 0x000F423F _02026968: .word 0xFFF00000 _0202696C: .word 0x000FFFFF thumb_func_start FUN_02026970 FUN_02026970: ; 0x02026970 push {r3-r4} ldr r2, [r0, #0xc] lsl r1, r2, #0xc lsr r4, r1, #0xc ldr r1, _02026994 ; =0x000F423F cmp r4, r1 bhs _0202698E ldr r1, _02026998 ; =0xFFF00000 add r3, r2, #0x0 and r3, r1 ldr r1, _0202699C ; =0x000FFFFF add r2, r4, #0x1 and r1, r2 orr r1, r3 str r1, [r0, #0xc] _0202698E: pop {r3-r4} bx lr nop _02026994: .word 0x000F423F _02026998: .word 0xFFF00000 _0202699C: .word 0x000FFFFF thumb_func_start FUN_020269A0 FUN_020269A0: ; 0x020269A0 ldr r0, [r0, #0x38] lsl r0, r0, #0xc lsr r0, r0, #0xc cmp r0, #0x32 blt _020269AE mov r0, #0x4 bx lr _020269AE: cmp r0, #0xa blt _020269B6 mov r0, #0x3 bx lr _020269B6: cmp r0, #0x3 blt _020269BE mov r0, #0x2 bx lr _020269BE: cmp r0, #0x1 blt _020269C6 mov r0, #0x1 bx lr _020269C6: mov r0, #0x0 bx lr .balign 4 thumb_func_start FUN_020269CC FUN_020269CC: ; 0x020269CC ldr r0, [r0, #0x38] lsl r0, r0, #0xc lsr r0, r0, #0xc bx lr thumb_func_start FUN_020269D4 FUN_020269D4: ; 0x020269D4 push {r3-r4} ldr r2, [r0, #0x38] lsl r1, r2, #0xc lsr r4, r1, #0xc ldr r1, _020269F8 ; =0x000F423F cmp r4, r1 bhs _020269F2 ldr r1, _020269FC ; =0xFFF00000 add r3, r2, #0x0 and r3, r1 ldr r1, _02026A00 ; =0x000FFFFF add r2, r4, #0x1 and r1, r2 orr r1, r3 str r1, [r0, #0x38] _020269F2: pop {r3-r4} bx lr nop _020269F8: .word 0x000F423F _020269FC: .word 0xFFF00000 _02026A00: .word 0x000FFFFF thumb_func_start FUN_02026A04 FUN_02026A04: ; 0x02026A04 ldr r0, [r0, #0x10] lsl r0, r0, #0xc lsr r0, r0, #0xc bx lr thumb_func_start FUN_02026A0C FUN_02026A0C: ; 0x02026A0C push {r4-r5} cmp r1, #0x0 ble _02026A2C ldr r4, [r0, #0x10] lsl r2, r4, #0xc lsr r5, r2, #0xc ldr r2, _02026A44 ; =0x000F423F sub r3, r2, r1 cmp r5, r3 bls _02026A2C ldr r1, _02026A48 ; =0xFFF00000 and r1, r4 orr r1, r2 str r1, [r0, #0x10] pop {r4-r5} bx lr _02026A2C: ldr r3, [r0, #0x10] ldr r2, _02026A48 ; =0xFFF00000 and r2, r3 lsl r3, r3, #0xc lsr r3, r3, #0xc add r3, r3, r1 ldr r1, _02026A4C ; =0x000FFFFF and r1, r3 orr r1, r2 str r1, [r0, #0x10] pop {r4-r5} bx lr .balign 4 _02026A44: .word 0x000F423F _02026A48: .word 0xFFF00000 _02026A4C: .word 0x000FFFFF thumb_func_start FUN_02026A50 FUN_02026A50: ; 0x02026A50 ldr r0, [r0, #0x14] lsl r0, r0, #0xc lsr r0, r0, #0xc bx lr thumb_func_start FUN_02026A58 FUN_02026A58: ; 0x02026A58 push {r4-r5} cmp r1, #0x0 ble _02026A78 ldr r4, [r0, #0x14] lsl r2, r4, #0xc lsr r5, r2, #0xc ldr r2, _02026A90 ; =0x000F423F sub r3, r2, r1 cmp r5, r3 bls _02026A78 ldr r1, _02026A94 ; =0xFFF00000 and r1, r4 orr r1, r2 str r1, [r0, #0x14] pop {r4-r5} bx lr _02026A78: ldr r3, [r0, #0x14] ldr r2, _02026A94 ; =0xFFF00000 and r2, r3 lsl r3, r3, #0xc lsr r3, r3, #0xc add r3, r3, r1 ldr r1, _02026A98 ; =0x000FFFFF and r1, r3 orr r1, r2 str r1, [r0, #0x14] pop {r4-r5} bx lr .balign 4 _02026A90: .word 0x000F423F _02026A94: .word 0xFFF00000 _02026A98: .word 0x000FFFFF thumb_func_start FUN_02026A9C FUN_02026A9C: ; 0x02026A9C push {r4-r5} cmp r1, #0x0 ble _02026ABC ldr r4, [r0, #0x18] lsl r2, r4, #0xc lsr r5, r2, #0xc ldr r2, _02026AD4 ; =0x000F423F sub r3, r2, r1 cmp r5, r3 bls _02026ABC ldr r1, _02026AD8 ; =0xFFF00000 and r1, r4 orr r1, r2 str r1, [r0, #0x18] pop {r4-r5} bx lr _02026ABC: ldr r3, [r0, #0x18] ldr r2, _02026AD8 ; =0xFFF00000 and r2, r3 lsl r3, r3, #0xc lsr r3, r3, #0xc add r3, r3, r1 ldr r1, _02026ADC ; =0x000FFFFF and r1, r3 orr r1, r2 str r1, [r0, #0x18] pop {r4-r5} bx lr .balign 4 _02026AD4: .word 0x000F423F _02026AD8: .word 0xFFF00000 _02026ADC: .word 0x000FFFFF thumb_func_start FUN_02026AE0 FUN_02026AE0: ; 0x02026AE0 ldr r0, [r0, #0x1c] lsl r0, r0, #0xc lsr r0, r0, #0xc bx lr thumb_func_start FUN_02026AE8 FUN_02026AE8: ; 0x02026AE8 push {r3-r4} ldr r2, [r0, #0x1c] lsl r1, r2, #0xc lsr r4, r1, #0xc ldr r1, _02026B0C ; =0x000F423F cmp r4, r1 bhs _02026B06 ldr r1, _02026B10 ; =0xFFF00000 add r3, r2, #0x0 and r3, r1 ldr r1, _02026B14 ; =0x000FFFFF add r2, r4, #0x1 and r1, r2 orr r1, r3 str r1, [r0, #0x1c] _02026B06: pop {r3-r4} bx lr nop _02026B0C: .word 0x000F423F _02026B10: .word 0xFFF00000 _02026B14: .word 0x000FFFFF thumb_func_start FUN_02026B18 FUN_02026B18: ; 0x02026B18 ldr r0, [r0, #0x20] lsl r0, r0, #0xc lsr r0, r0, #0xc bx lr thumb_func_start FUN_02026B20 FUN_02026B20: ; 0x02026B20 push {r3-r4} ldr r2, [r0, #0x20] lsl r1, r2, #0xc lsr r4, r1, #0xc ldr r1, _02026B44 ; =0x000F423F cmp r4, r1 bhs _02026B3E ldr r1, _02026B48 ; =0xFFF00000 add r3, r2, #0x0 and r3, r1 ldr r1, _02026B4C ; =0x000FFFFF add r2, r4, #0x1 and r1, r2 orr r1, r3 str r1, [r0, #0x20] _02026B3E: pop {r3-r4} bx lr nop _02026B44: .word 0x000F423F _02026B48: .word 0xFFF00000 _02026B4C: .word 0x000FFFFF thumb_func_start FUN_02026B50 FUN_02026B50: ; 0x02026B50 ldr r0, [r0, #0x24] lsl r0, r0, #0xc lsr r0, r0, #0xc bx lr thumb_func_start FUN_02026B58 FUN_02026B58: ; 0x02026B58 push {r3-r4} ldr r2, [r0, #0x24] lsl r1, r2, #0xc lsr r4, r1, #0xc ldr r1, _02026B7C ; =0x000F423F cmp r4, r1 bhs _02026B76 ldr r1, _02026B80 ; =0xFFF00000 add r3, r2, #0x0 and r3, r1 ldr r1, _02026B84 ; =0x000FFFFF add r2, r4, #0x1 and r1, r2 orr r1, r3 str r1, [r0, #0x24] _02026B76: pop {r3-r4} bx lr nop _02026B7C: .word 0x000F423F _02026B80: .word 0xFFF00000 _02026B84: .word 0x000FFFFF thumb_func_start FUN_02026B88 FUN_02026B88: ; 0x02026B88 ldr r0, [r0, #0x28] lsl r0, r0, #0xc lsr r0, r0, #0xc bx lr thumb_func_start FUN_02026B90 FUN_02026B90: ; 0x02026B90 push {r3-r4} ldr r2, [r0, #0x28] lsl r1, r2, #0xc lsr r4, r1, #0xc ldr r1, _02026BB4 ; =0x000F423F cmp r4, r1 bhs _02026BAE ldr r1, _02026BB8 ; =0xFFF00000 add r3, r2, #0x0 and r3, r1 ldr r1, _02026BBC ; =0x000FFFFF add r2, r4, #0x1 and r1, r2 orr r1, r3 str r1, [r0, #0x28] _02026BAE: pop {r3-r4} bx lr nop _02026BB4: .word 0x000F423F _02026BB8: .word 0xFFF00000 _02026BBC: .word 0x000FFFFF thumb_func_start FUN_02026BC0 FUN_02026BC0: ; 0x02026BC0 ldr r0, [r0, #0x2c] lsl r0, r0, #0xc lsr r0, r0, #0xc bx lr thumb_func_start FUN_02026BC8 FUN_02026BC8: ; 0x02026BC8 push {r3-r4} ldr r2, [r0, #0x2c] lsl r1, r2, #0xc lsr r4, r1, #0xc ldr r1, _02026BEC ; =0x000F423F cmp r4, r1 bhs _02026BE6 ldr r1, _02026BF0 ; =0xFFF00000 add r3, r2, #0x0 and r3, r1 ldr r1, _02026BF4 ; =0x000FFFFF add r2, r4, #0x1 and r1, r2 orr r1, r3 str r1, [r0, #0x2c] _02026BE6: pop {r3-r4} bx lr nop _02026BEC: .word 0x000F423F _02026BF0: .word 0xFFF00000 _02026BF4: .word 0x000FFFFF thumb_func_start FUN_02026BF8 FUN_02026BF8: ; 0x02026BF8 ldr r0, [r0, #0x30] lsl r0, r0, #0xc lsr r0, r0, #0xc bx lr thumb_func_start FUN_02026C00 FUN_02026C00: ; 0x02026C00 push {r3-r4} ldr r2, [r0, #0x30] lsl r1, r2, #0xc lsr r4, r1, #0xc ldr r1, _02026C24 ; =0x000F423F cmp r4, r1 bhs _02026C1E ldr r1, _02026C28 ; =0xFFF00000 add r3, r2, #0x0 and r3, r1 ldr r1, _02026C2C ; =0x000FFFFF add r2, r4, #0x1 and r1, r2 orr r1, r3 str r1, [r0, #0x30] _02026C1E: pop {r3-r4} bx lr nop _02026C24: .word 0x000F423F _02026C28: .word 0xFFF00000 _02026C2C: .word 0x000FFFFF thumb_func_start FUN_02026C30 FUN_02026C30: ; 0x02026C30 ldr r0, [r0, #0x34] lsl r0, r0, #0xc lsr r0, r0, #0xc bx lr thumb_func_start FUN_02026C38 FUN_02026C38: ; 0x02026C38 push {r3-r4} ldr r2, [r0, #0x34] lsl r1, r2, #0xc lsr r4, r1, #0xc ldr r1, _02026C5C ; =0x000F423F cmp r4, r1 bhs _02026C56 ldr r1, _02026C60 ; =0xFFF00000 add r3, r2, #0x0 and r3, r1 ldr r1, _02026C64 ; =0x000FFFFF add r2, r4, #0x1 and r1, r2 orr r1, r3 str r1, [r0, #0x34] _02026C56: pop {r3-r4} bx lr nop _02026C5C: .word 0x000F423F _02026C60: .word 0xFFF00000 _02026C64: .word 0x000FFFFF thumb_func_start FUN_02026C68 FUN_02026C68: ; 0x02026C68 push {r3-r4} add r4, r0, #0x0 add r4, #0x8c strh r1, [r4, #0x0] add r1, r0, #0x0 add r1, #0x8e strh r2, [r1, #0x0] add r1, r0, #0x0 add r1, #0x90 strb r3, [r1, #0x0] mov r1, #0x1 add r0, #0x91 strb r1, [r0, #0x0] pop {r3-r4} bx lr .balign 4 thumb_func_start FUN_02026C88 FUN_02026C88: ; 0x02026C88 add r0, #0x8c ldrh r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02026C90 FUN_02026C90: ; 0x02026C90 add r0, #0x8e ldrh r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02026C98 FUN_02026C98: ; 0x02026C98 add r0, #0x90 ldrb r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02026CA0 FUN_02026CA0: ; 0x02026CA0 add r0, #0x91 ldrb r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02026CA8 FUN_02026CA8: ; 0x02026CA8 ldr r3, _02026CB0 ; =FUN_02022610 mov r1, #0xc bx r3 nop _02026CB0: .word FUN_02022610 thumb_func_start FUN_02026CB4 FUN_02026CB4: ; 0x02026CB4 push {r3, lr} mov r1, #0xc bl FUN_02022610 add r0, #0x50 pop {r3, pc} thumb_func_start FUN_02026CC0 FUN_02026CC0: ; 0x02026CC0 add r0, #0x50 bx lr thumb_func_start FUN_02026CC4 FUN_02026CC4: ; 0x02026CC4 ldr r3, _02026CCC ; =FUN_02022610 mov r1, #0xc bx r3 nop _02026CCC: .word FUN_02022610 thumb_func_start FUN_02026CD0 FUN_02026CD0: ; 0x02026CD0 push {r3-r7, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r6, r2, #0x0 add r0, r4, #0x0 mov r1, #0x5 mov r2, #0x0 add r7, r3, #0x0 bl FUN_020671BC add r2, r5, #0x0 strh r0, [r5, #0x8] add r0, r4, #0x0 mov r1, #0x74 add r2, #0xa bl FUN_020671BC mov r1, #0x0 add r0, r4, #0x0 add r2, r1, #0x0 bl FUN_020671BC str r0, [r5, #0x0] add r0, r4, #0x0 mov r1, #0x7 mov r2, #0x0 bl FUN_020671BC str r0, [r5, #0x4] add r0, r4, #0x0 mov r1, #0x70 mov r2, #0x0 bl FUN_020671BC add r1, r5, #0x0 add r1, #0x33 strb r0, [r1, #0x0] add r0, r5, #0x0 add r0, #0x31 strb r6, [r0, #0x0] add r0, r5, #0x0 add r0, #0x32 strb r7, [r0, #0x0] add r1, sp, #0x8 mov r0, #0x10 ldrsb r0, [r1, r0] add r5, #0x30 strb r0, [r5, #0x0] pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02026D34 FUN_02026D34: ; 0x02026D34 push {r3-r6, lr} sub sp, #0xc add r4, r2, #0x0 add r5, r0, #0x0 add r6, r1, #0x0 add r0, r4, #0x0 add r1, sp, #0x4 add r2, sp, #0x8 bl FUN_021DB858 add r0, r4, #0x0 bl FUN_021DB7E8 add r4, r0, #0x0 mov r0, #0x1 ldr r1, [sp, #0x4] lsl r0, r0, #0x8 cmp r1, r0 blt _02026D5E bl ErrorHandling _02026D5E: mov r0, #0x1 ldr r1, [sp, #0x8] lsl r0, r0, #0x8 cmp r1, r0 blt _02026D6C bl ErrorHandling _02026D6C: mov r0, #0x7f mvn r0, r0 cmp r4, r0 bgt _02026D78 bl ErrorHandling _02026D78: lsl r0, r4, #0x18 asr r0, r0, #0x18 str r0, [sp, #0x0] ldr r2, [sp, #0x4] ldr r3, [sp, #0x8] lsl r2, r2, #0x18 lsl r3, r3, #0x18 add r0, r5, #0x0 add r1, r6, #0x0 lsr r2, r2, #0x18 lsr r3, r3, #0x18 bl FUN_02026CD0 add sp, #0xc pop {r3-r6, pc} .balign 4 thumb_func_start FUN_02026D98 FUN_02026D98: ; 0x02026D98 push {r3-r5, lr} add r5, r0, #0x0 add r0, r1, #0x0 add r1, r5, #0x0 add r4, r2, #0x0 add r1, #0x20 mov r2, #0x8 bl FUN_02021EF0 add r5, #0x34 strb r4, [r5, #0x0] pop {r3-r5, pc} thumb_func_start FUN_02026DB0 FUN_02026DB0: ; 0x02026DB0 strb r1, [r0, #0x0] ldr r1, _02026DC0 ; =0xFFFFFFF0 strb r2, [r0, #0x1] strb r3, [r0, #0x2] add r1, sp ldrb r1, [r1, #0x10] strb r1, [r0, #0x3] bx lr .balign 4 _02026DC0: .word 0xFFFFFFF0 thumb_func_start FUN_02026DC4 FUN_02026DC4: ; 0x02026DC4 push {r4-r6, lr} add r4, r2, #0x0 add r5, r0, #0x0 add r6, r1, #0x0 cmp r4, #0x3d blo _02026DD4 bl ErrorHandling _02026DD4: lsr r2, r4, #0x1f lsl r1, r4, #0x1d sub r1, r1, r2 mov r0, #0x1d ror r1, r0 add r0, r2, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 lsl r0, r0, #0x1a lsr r1, r0, #0x18 lsr r0, r4, #0x3 lsl r0, r0, #0x18 mov r2, #0xf lsr r0, r0, #0x16 lsl r2, r1 ldr r3, [r5, r0] mvn r2, r2 and r2, r3 str r2, [r5, r0] add r2, r6, #0x0 ldr r3, [r5, r0] lsl r2, r1 add r1, r3, #0x0 orr r1, r2 str r1, [r5, r0] pop {r4-r6, pc} thumb_func_start FUN_02026E08 FUN_02026E08: ; 0x02026E08 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x3d blo _02026E16 bl ErrorHandling _02026E16: lsr r3, r4, #0x1f lsl r2, r4, #0x1d lsr r0, r4, #0x3 lsl r0, r0, #0x18 lsr r0, r0, #0x16 sub r2, r2, r3 mov r1, #0x1d ror r2, r1 add r1, r3, r2 lsl r1, r1, #0x18 ldr r0, [r5, r0] lsr r1, r1, #0x18 lsl r1, r1, #0x1a add r2, r0, #0x0 lsr r1, r1, #0x18 lsr r2, r1 mov r0, #0xf and r0, r2 lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r0, #0x9 bls _02026E44 mov r0, #0x9 _02026E44: pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02026E48 FUN_02026E48: ; 0x02026E48 push {r4-r6, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r6, r2, #0x0 cmp r4, #0x2 blo _02026E58 bl ErrorHandling _02026E58: lsr r2, r6, #0x1f lsl r1, r6, #0x1b sub r1, r1, r2 mov r0, #0x1b ror r1, r0 add r0, r2, r1 lsl r0, r0, #0x18 lsr r1, r0, #0x18 lsr r0, r6, #0x5 lsl r0, r0, #0x18 mov r2, #0x1 lsr r0, r0, #0x16 lsl r2, r1 ldr r3, [r5, r0] mvn r2, r2 and r2, r3 str r2, [r5, r0] add r2, r4, #0x0 ldr r3, [r5, r0] lsl r2, r1 add r1, r3, #0x0 orr r1, r2 str r1, [r5, r0] pop {r4-r6, pc} thumb_func_start FUN_02026E88 FUN_02026E88: ; 0x02026E88 lsr r2, r1, #0x5 lsl r2, r2, #0x18 lsr r2, r2, #0x16 ldr r3, [r0, r2] lsr r2, r1, #0x1f lsl r1, r1, #0x1b sub r1, r1, r2 mov r0, #0x1b ror r1, r0 add r0, r2, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 add r1, r3, #0x0 lsr r1, r0 mov r0, #0x1 and r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 bx lr .balign 4 thumb_func_start FUN_02026EB0 FUN_02026EB0: ; 0x02026EB0 push {r4-r6, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r6, r2, #0x0 cmp r4, #0x12 bls _02026EC0 bl ErrorHandling _02026EC0: lsr r2, r6, #0x1f lsl r1, r6, #0x1e sub r1, r1, r2 mov r0, #0x1e ror r1, r0 add r0, r2, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 lsl r0, r0, #0x1b lsr r1, r0, #0x18 lsr r0, r6, #0x2 lsl r0, r0, #0x18 mov r2, #0xff lsr r0, r0, #0x16 lsl r2, r1 ldr r3, [r5, r0] mvn r2, r2 and r2, r3 str r2, [r5, r0] add r2, r4, #0x0 ldr r3, [r5, r0] lsl r2, r1 add r1, r3, #0x0 orr r1, r2 str r1, [r5, r0] pop {r4-r6, pc} thumb_func_start FUN_02026EF4 FUN_02026EF4: ; 0x02026EF4 lsr r2, r1, #0x2 lsl r2, r2, #0x18 lsr r2, r2, #0x16 ldr r0, [r0, r2] lsr r3, r1, #0x1f lsl r2, r1, #0x1e sub r2, r2, r3 mov r1, #0x1e ror r2, r1 add r1, r3, r2 lsl r1, r1, #0x18 lsr r1, r1, #0x18 lsl r1, r1, #0x1b lsr r1, r1, #0x18 lsr r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 bx lr thumb_func_start FUN_02026F18 FUN_02026F18: ; 0x02026F18 push {r4-r6, lr} mov r5, #0x0 add r6, r0, #0x0 add r4, r5, #0x0 _02026F20: lsl r1, r4, #0x18 add r0, r6, #0x0 lsr r1, r1, #0x18 bl FUN_02026EF4 cmp r0, #0x12 beq _02026F30 add r5, r5, #0x1 _02026F30: add r4, r4, #0x1 cmp r4, #0x12 blt _02026F20 lsl r0, r5, #0x18 lsr r0, r0, #0x18 pop {r4-r6, pc} thumb_func_start FUN_02026F3C FUN_02026F3C: ; 0x02026F3C push {r3-r5, lr} add r5, r1, #0x0 mov r1, #0x2 add r4, r2, #0x0 bl FUN_02068E14 mov r1, #0x80 strb r1, [r5, #0x0] mov r1, #0x28 sub r1, r1, r0 mov r0, #0x8d sub r0, r0, r1 strb r0, [r4, #0x0] ldrb r0, [r4, #0x0] add r0, #0x28 strb r0, [r4, #0x0] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02026F60 FUN_02026F60: ; 0x02026F60 push {r3-r7, lr} add r7, r0, #0x0 ldr r6, _02026FC8 ; =0x00001234 mov r4, #0x0 add r5, r7, #0x0 _02026F6A: add r0, r5, #0x0 mov r1, #0x0 mov r2, #0x74 blx FUN_020DF4A4 str r6, [r5, #0x0] add r4, r4, #0x1 add r5, #0x74 cmp r4, #0xb blt _02026F6A ldr r0, _02026FCC ; =0x000004FC mov r6, #0x0 add r4, r7, r0 add r5, r7, #0x0 _02026F86: add r0, r4, #0x0 mov r1, #0x0 mov r2, #0x98 blx FUN_020DF4A4 ldr r1, _02026FC8 ; =0x00001234 ldr r0, _02026FCC ; =0x000004FC add r6, r6, #0x1 str r1, [r5, r0] add r4, #0x98 add r5, #0x98 cmp r6, #0x5 blt _02026F86 ldr r0, _02026FD0 ; =0x000007F4 mov r1, #0x0 add r0, r7, r0 mov r2, #0x40 blx FUN_020DF4A4 ldr r5, _02026FD4 ; =0x0000081C mov r4, #0x0 mov r6, #0x12 _02026FB2: lsl r2, r4, #0x18 add r0, r7, r5 add r1, r6, #0x0 lsr r2, r2, #0x18 bl FUN_02026EB0 add r4, r4, #0x1 cmp r4, #0x12 blt _02026FB2 pop {r3-r7, pc} nop _02026FC8: .word 0x00001234 _02026FCC: .word 0x000004FC _02026FD0: .word 0x000007F4 _02026FD4: .word 0x0000081C thumb_func_start FUN_02026FD8 FUN_02026FD8: ; 0x02026FD8 ldr r0, _02026FDC ; =0x00000834 bx lr .balign 4 _02026FDC: .word 0x00000834 thumb_func_start FUN_02026FE0 FUN_02026FE0: ; 0x02026FE0 mov r0, #0x74 bx lr thumb_func_start FUN_02026FE4 FUN_02026FE4: ; 0x02026FE4 mov r0, #0x98 bx lr thumb_func_start FUN_02026FE8 FUN_02026FE8: ; 0x02026FE8 push {r4, lr} mov r1, #0x98 bl FUN_02016998 mov r1, #0x0 mov r2, #0x98 add r4, r0, #0x0 blx FUN_020DF4A4 ldr r0, _02027004 ; =0x00001234 str r0, [r4, #0x0] add r0, r4, #0x0 pop {r4, pc} nop _02027004: .word 0x00001234 thumb_func_start FUN_02027008 FUN_02027008: ; 0x02027008 push {r4-r6, lr} add r6, r1, #0x0 add r5, r0, #0x0 cmp r6, #0xb blt _02027016 bl ErrorHandling _02027016: mov r0, #0x74 add r4, r6, #0x0 mul r4, r0 ldr r1, [r5, r4] ldr r0, _0202703C ; =0x00001234 cmp r1, r0 beq _0202702A ldr r0, _02027040 ; =0x00002345 cmp r1, r0 bne _0202702E _0202702A: mov r0, #0x1 b _02027030 _0202702E: mov r0, #0x0 _02027030: cmp r0, #0x0 bne _02027038 bl ErrorHandling _02027038: add r0, r5, r4 pop {r4-r6, pc} .balign 4 _0202703C: .word 0x00001234 _02027040: .word 0x00002345 thumb_func_start FUN_02027044 FUN_02027044: ; 0x02027044 push {r4-r6, lr} add r6, r1, #0x0 add r5, r0, #0x0 cmp r6, #0x5 blt _02027052 bl ErrorHandling _02027052: mov r0, #0x98 add r4, r6, #0x0 mul r4, r0 ldr r0, _02027080 ; =0x000004FC add r1, r5, r4 ldr r1, [r1, r0] ldr r0, _02027084 ; =0x00001234 cmp r1, r0 beq _0202706A ldr r0, _02027088 ; =0x00002345 cmp r1, r0 bne _0202706E _0202706A: mov r0, #0x1 b _02027070 _0202706E: mov r0, #0x0 _02027070: cmp r0, #0x0 bne _02027078 bl ErrorHandling _02027078: ldr r0, _02027080 ; =0x000004FC add r0, r5, r0 add r0, r0, r4 pop {r4-r6, pc} .balign 4 _02027080: .word 0x000004FC _02027084: .word 0x00001234 _02027088: .word 0x00002345 thumb_func_start FUN_0202708C FUN_0202708C: ; 0x0202708C ldr r1, _02027094 ; =0x000007F4 add r0, r0, r1 bx lr nop _02027094: .word 0x000007F4 thumb_func_start FUN_02027098 FUN_02027098: ; 0x02027098 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0xb blt _020270A6 bl ErrorHandling _020270A6: mov r0, #0x74 mul r0, r4 add r0, r5, r0 bl FUN_0202729C pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020270B4 FUN_020270B4: ; 0x020270B4 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x5 blt _020270C2 bl ErrorHandling _020270C2: ldr r0, _020270D4 ; =0x000004FC add r1, r5, r0 mov r0, #0x98 mul r0, r4 add r0, r1, r0 bl FUN_020276D8 pop {r3-r5, pc} nop _020270D4: .word 0x000004FC thumb_func_start FUN_020270D8 FUN_020270D8: ; 0x020270D8 push {r4-r6, lr} add r6, r1, #0x0 add r5, r2, #0x0 mov r4, #0x1 bl FUN_02027114 cmp r6, #0x3d bhs _020270F2 add r0, r0, r5 cmp r0, #0x9 bls _020270FA mov r4, #0x0 b _020270FA _020270F2: add r0, r0, r5 cmp r0, #0x1 bls _020270FA mov r4, #0x0 _020270FA: add r0, r4, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02027100 FUN_02027100: ; 0x02027100 push {r3, lr} bl FUN_0202714C cmp r0, #0x12 beq _0202710E mov r0, #0x1 pop {r3, pc} _0202710E: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_02027114 FUN_02027114: ; 0x02027114 push {r3-r5, lr} add r5, r1, #0x0 add r4, r0, #0x0 cmp r5, #0x64 blo _02027122 bl ErrorHandling _02027122: cmp r5, #0x3d bhs _02027132 lsl r1, r5, #0x18 add r0, r4, #0x0 lsr r1, r1, #0x18 bl FUN_02026E08 pop {r3-r5, pc} _02027132: bhs _02027138 bl ErrorHandling _02027138: sub r5, #0x3d lsl r0, r5, #0x18 lsr r1, r0, #0x18 add r4, #0x20 lsl r1, r1, #0x18 add r0, r4, #0x0 lsr r1, r1, #0x18 bl FUN_02026E88 pop {r3-r5, pc} thumb_func_start FUN_0202714C FUN_0202714C: ; 0x0202714C push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x12 blo _0202715A bl ErrorHandling _0202715A: add r5, #0x28 lsl r1, r4, #0x18 add r0, r5, #0x0 lsr r1, r1, #0x18 bl FUN_02026EF4 pop {r3-r5, pc} thumb_func_start FUN_02027168 FUN_02027168: ; 0x02027168 push {r4-r6, lr} mov r5, #0x0 add r6, r0, #0x0 add r4, r5, #0x0 _02027170: add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_02027114 add r4, r4, #0x1 add r5, r5, r0 cmp r4, #0x64 blt _02027170 add r0, r5, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02027184 FUN_02027184: ; 0x02027184 push {r4-r6, lr} mov r5, #0x0 add r6, r0, #0x0 add r4, r5, #0x0 _0202718C: add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_0202714C cmp r0, #0x12 beq _0202719A add r5, r5, #0x1 _0202719A: add r4, r4, #0x1 cmp r4, #0x12 blt _0202718C add r0, r5, #0x0 pop {r4-r6, pc} thumb_func_start FUN_020271A4 FUN_020271A4: ; 0x020271A4 push {r4-r6, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r6, r2, #0x0 cmp r4, #0x64 blo _020271B4 bl ErrorHandling _020271B4: cmp r4, #0x3d bhs _020271DA lsl r1, r4, #0x18 add r0, r5, #0x0 lsr r1, r1, #0x18 bl FUN_02026E08 add r0, r0, r6 lsl r0, r0, #0x18 lsr r1, r0, #0x18 cmp r1, #0x9 bls _020271CE mov r1, #0x9 _020271CE: lsl r2, r4, #0x18 add r0, r5, #0x0 lsr r2, r2, #0x18 bl FUN_02026DC4 pop {r4-r6, pc} _020271DA: add r0, r5, #0x0 lsl r1, r4, #0x18 add r0, #0x20 lsr r1, r1, #0x18 bl FUN_02026E88 add r0, r0, r6 lsl r0, r0, #0x18 lsr r6, r0, #0x18 cmp r6, #0x1 bls _020271F2 mov r6, #0x1 _020271F2: cmp r4, #0x3d bhs _020271FA bl ErrorHandling _020271FA: sub r4, #0x3d lsl r0, r4, #0x18 lsr r2, r0, #0x18 add r5, #0x20 lsl r2, r2, #0x18 add r0, r5, #0x0 add r1, r6, #0x0 lsr r2, r2, #0x18 bl FUN_02026E48 pop {r4-r6, pc} thumb_func_start FUN_02027210 FUN_02027210: ; 0x02027210 push {r4-r6, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r6, r2, #0x0 cmp r4, #0x64 blo _02027220 bl ErrorHandling _02027220: cmp r4, #0x3d bhs _02027248 lsl r1, r4, #0x18 add r0, r5, #0x0 lsr r1, r1, #0x18 bl FUN_02026E08 cmp r0, r6 bls _0202723A sub r0, r0, r6 lsl r0, r0, #0x18 lsr r1, r0, #0x18 b _0202723C _0202723A: mov r1, #0x0 _0202723C: lsl r2, r4, #0x18 add r0, r5, #0x0 lsr r2, r2, #0x18 bl FUN_02026DC4 pop {r4-r6, pc} _02027248: bhs _0202724E bl ErrorHandling _0202724E: sub r4, #0x3d lsl r0, r4, #0x18 lsr r2, r0, #0x18 add r5, #0x20 lsl r2, r2, #0x18 add r0, r5, #0x0 mov r1, #0x0 lsr r2, r2, #0x18 bl FUN_02026E48 pop {r4-r6, pc} thumb_func_start FUN_02027264 FUN_02027264: ; 0x02027264 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x12 blo _02027272 bl ErrorHandling _02027272: add r0, r5, #0x0 lsl r1, r4, #0x18 add r0, #0x28 lsr r1, r1, #0x18 bl FUN_02026EF4 cmp r0, #0x12 bne _02027298 add r0, r5, #0x0 add r0, #0x28 bl FUN_02026F18 lsl r2, r4, #0x18 add r5, #0x28 add r1, r0, #0x0 add r0, r5, #0x0 lsr r2, r2, #0x18 bl FUN_02026EB0 _02027298: pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0202729C FUN_0202729C: ; 0x0202729C push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _020272CC ; =0x00001234 cmp r1, r0 beq _020272AE ldr r0, _020272D0 ; =0x00002345 cmp r1, r0 bne _020272B2 _020272AE: mov r0, #0x1 b _020272B4 _020272B2: mov r0, #0x0 _020272B4: cmp r0, #0x0 bne _020272BC bl ErrorHandling _020272BC: ldr r1, [r4, #0x0] ldr r0, _020272D0 ; =0x00002345 cmp r1, r0 bne _020272C8 mov r0, #0x1 pop {r4, pc} _020272C8: mov r0, #0x0 pop {r4, pc} .balign 4 _020272CC: .word 0x00001234 _020272D0: .word 0x00002345 thumb_func_start FUN_020272D4 FUN_020272D4: ; 0x020272D4 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _02027304 ; =0x00001234 cmp r1, r0 beq _020272E6 ldr r0, _02027308 ; =0x00002345 cmp r1, r0 bne _020272EA _020272E6: mov r0, #0x1 b _020272EC _020272EA: mov r0, #0x0 _020272EC: cmp r0, #0x0 bne _020272F4 bl ErrorHandling _020272F4: ldr r0, _02027308 ; =0x00002345 str r0, [r4, #0x0] ldr r0, _0202730C ; =0x020ECAC4 add r4, #0x71 ldrb r0, [r0, #0x0] strb r0, [r4, #0x0] pop {r4, pc} nop _02027304: .word 0x00001234 _02027308: .word 0x00002345 _0202730C: .word 0x020ECAC4 thumb_func_start FUN_02027310 FUN_02027310: ; 0x02027310 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _02027340 ; =0x00001234 cmp r1, r0 beq _02027322 ldr r0, _02027344 ; =0x00002345 cmp r1, r0 bne _02027326 _02027322: mov r0, #0x1 b _02027328 _02027326: mov r0, #0x0 _02027328: cmp r0, #0x0 bne _02027330 bl ErrorHandling _02027330: add r0, r4, #0x0 mov r1, #0x0 mov r2, #0x74 blx FUN_020DF4A4 ldr r0, _02027340 ; =0x00001234 str r0, [r4, #0x0] pop {r4, pc} .balign 4 _02027340: .word 0x00001234 _02027344: .word 0x00002345 thumb_func_start FUN_02027348 FUN_02027348: ; 0x02027348 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x0] ldr r0, _02027378 ; =0x00001234 add r6, r2, #0x0 cmp r1, r0 beq _0202735E ldr r0, _0202737C ; =0x00002345 cmp r1, r0 bne _02027362 _0202735E: mov r0, #0x1 b _02027364 _02027362: mov r0, #0x0 _02027364: cmp r0, #0x0 bne _0202736C bl ErrorHandling _0202736C: add r0, r5, #0x4 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_02026D34 pop {r4-r6, pc} .balign 4 _02027378: .word 0x00001234 _0202737C: .word 0x00002345 thumb_func_start FUN_02027380 FUN_02027380: ; 0x02027380 push {r4-r7, lr} sub sp, #0x14 add r4, r1, #0x0 add r5, r0, #0x0 ldr r0, [r4, #0x4] add r6, r2, #0x0 bl FUN_02013ECC add r1, sp, #0xc strh r0, [r1, #0x0] lsr r0, r0, #0x10 strh r0, [r1, #0x2] ldrh r0, [r1, #0x0] strh r0, [r1, #0x4] ldrh r0, [r1, #0x2] strh r0, [r1, #0x6] ldr r0, [r4, #0x4] bl FUN_02013F00 str r0, [sp, #0x8] cmp r6, #0xa blt _020273B0 bl ErrorHandling _020273B0: add r1, sp, #0xc mov r0, #0x4 ldrsh r1, [r1, r0] add r0, #0xfc cmp r1, r0 blt _020273C0 bl ErrorHandling _020273C0: add r1, sp, #0xc mov r0, #0x6 ldrsh r7, [r1, r0] add r0, #0xfa cmp r7, r0 blt _020273D0 bl ErrorHandling _020273D0: mov r1, #0x7f ldr r0, [sp, #0x8] mvn r1, r1 cmp r0, r1 bgt _020273DE bl ErrorHandling _020273DE: mov r0, #0x1 lsl r0, r6 ldr r1, [r5, #0x3c] str r0, [sp, #0x4] tst r0, r1 beq _020273EE bl ErrorHandling _020273EE: ldr r1, [r5, #0x0] ldr r0, _02027440 ; =0x00001234 cmp r1, r0 beq _020273FC ldr r0, _02027444 ; =0x00002345 cmp r1, r0 bne _02027400 _020273FC: mov r0, #0x1 b _02027402 _02027400: mov r0, #0x0 _02027402: cmp r0, #0x0 bne _0202740A bl ErrorHandling _0202740A: ldr r0, [sp, #0x8] add r1, r5, #0x0 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] add r3, sp, #0xc mov r2, #0x4 ldrsh r2, [r3, r2] lsl r3, r7, #0x18 add r1, #0x48 lsl r0, r6, #0x2 add r0, r1, r0 ldr r1, [r4, #0x0] lsl r2, r2, #0x18 lsl r1, r1, #0x18 lsr r1, r1, #0x18 lsr r2, r2, #0x18 lsr r3, r3, #0x18 bl FUN_02026DB0 ldr r1, [r5, #0x3c] ldr r0, [sp, #0x4] orr r0, r1 str r0, [r5, #0x3c] add sp, #0x14 pop {r4-r7, pc} nop _02027440: .word 0x00001234 _02027444: .word 0x00002345 thumb_func_start FUN_02027448 FUN_02027448: ; 0x02027448 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x0] ldr r0, _02027470 ; =0x00001234 cmp r1, r0 beq _0202745C ldr r0, _02027474 ; =0x00002345 cmp r1, r0 bne _02027460 _0202745C: mov r0, #0x1 b _02027462 _02027460: mov r0, #0x0 _02027462: cmp r0, #0x0 bne _0202746A bl ErrorHandling _0202746A: add r5, #0x70 strb r4, [r5, #0x0] pop {r3-r5, pc} .balign 4 _02027470: .word 0x00001234 _02027474: .word 0x00002345 thumb_func_start FUN_02027478 FUN_02027478: ; 0x02027478 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x0] ldr r0, _020274B0 ; =0x00001234 cmp r1, r0 beq _0202748C ldr r0, _020274B4 ; =0x00002345 cmp r1, r0 bne _02027490 _0202748C: mov r0, #0x1 b _02027492 _02027490: mov r0, #0x0 _02027492: cmp r0, #0x0 bne _0202749A bl ErrorHandling _0202749A: add r0, r5, #0x0 add r0, #0x40 bl FUN_02013724 add r5, #0x40 add r0, r5, #0x0 mov r1, #0x0 add r2, r4, #0x0 bl FUN_02013998 pop {r3-r5, pc} .balign 4 _020274B0: .word 0x00001234 _020274B4: .word 0x00002345 thumb_func_start FUN_020274B8 FUN_020274B8: ; 0x020274B8 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x0] ldr r0, _020274E8 ; =0x00001234 cmp r1, r0 beq _020274CC ldr r0, _020274EC ; =0x00002345 cmp r1, r0 bne _020274D0 _020274CC: mov r0, #0x1 b _020274D2 _020274D0: mov r0, #0x0 _020274D2: cmp r0, #0x0 bne _020274DA bl ErrorHandling _020274DA: add r0, r5, #0x0 add r1, r4, #0x0 mov r2, #0x74 blx FUN_020DF438 pop {r3-r5, pc} nop _020274E8: .word 0x00001234 _020274EC: .word 0x00002345 thumb_func_start FUN_020274F0 FUN_020274F0: ; 0x020274F0 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x0] ldr r0, _02027520 ; =0x00001234 add r6, r2, #0x0 cmp r1, r0 beq _02027506 ldr r0, _02027524 ; =0x00002345 cmp r1, r0 bne _0202750A _02027506: mov r0, #0x1 b _0202750C _0202750A: mov r0, #0x0 _0202750C: cmp r0, #0x0 bne _02027514 bl ErrorHandling _02027514: add r0, r5, #0x4 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_02026D98 pop {r4-r6, pc} .balign 4 _02027520: .word 0x00001234 _02027524: .word 0x00002345 thumb_func_start FUN_02027528 FUN_02027528: ; 0x02027528 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0xa blt _02027536 bl ErrorHandling _02027536: ldr r1, [r5, #0x0] ldr r0, _0202755C ; =0x00001234 cmp r1, r0 beq _02027544 ldr r0, _02027560 ; =0x00002345 cmp r1, r0 bne _02027548 _02027544: mov r0, #0x1 b _0202754A _02027548: mov r0, #0x0 _0202754A: cmp r0, #0x0 bne _02027552 bl ErrorHandling _02027552: mov r0, #0x1 ldr r1, [r5, #0x3c] lsl r0, r4 and r0, r1 pop {r3-r5, pc} .balign 4 _0202755C: .word 0x00001234 _02027560: .word 0x00002345 thumb_func_start FUN_02027564 FUN_02027564: ; 0x02027564 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _02027588 ; =0x00001234 cmp r1, r0 beq _02027576 ldr r0, _0202758C ; =0x00002345 cmp r1, r0 bne _0202757A _02027576: mov r0, #0x1 b _0202757C _0202757A: mov r0, #0x0 _0202757C: cmp r0, #0x0 bne _02027584 bl ErrorHandling _02027584: add r0, r4, #0x4 pop {r4, pc} .balign 4 _02027588: .word 0x00001234 _0202758C: .word 0x00002345 thumb_func_start FUN_02027590 FUN_02027590: ; 0x02027590 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0xa blt _0202759E bl ErrorHandling _0202759E: mov r0, #0x1 ldr r1, [r5, #0x3c] lsl r0, r4 tst r0, r1 bne _020275AC bl ErrorHandling _020275AC: ldr r1, [r5, #0x0] ldr r0, _020275D0 ; =0x00001234 cmp r1, r0 beq _020275BA ldr r0, _020275D4 ; =0x00002345 cmp r1, r0 bne _020275BE _020275BA: mov r0, #0x1 b _020275C0 _020275BE: mov r0, #0x0 _020275C0: cmp r0, #0x0 bne _020275C8 bl ErrorHandling _020275C8: add r5, #0x48 lsl r0, r4, #0x2 add r0, r5, r0 pop {r3-r5, pc} .balign 4 _020275D0: .word 0x00001234 _020275D4: .word 0x00002345 thumb_func_start FUN_020275D8 FUN_020275D8: ; 0x020275D8 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _02027600 ; =0x00001234 cmp r1, r0 beq _020275EA ldr r0, _02027604 ; =0x00002345 cmp r1, r0 bne _020275EE _020275EA: mov r0, #0x1 b _020275F0 _020275EE: mov r0, #0x0 _020275F0: cmp r0, #0x0 bne _020275F8 bl ErrorHandling _020275F8: add r0, r4, #0x4 bl FUN_02027C84 pop {r4, pc} .balign 4 _02027600: .word 0x00001234 _02027604: .word 0x00002345 thumb_func_start FUN_02027608 FUN_02027608: ; 0x02027608 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x0] ldr r0, _02027634 ; =0x00001234 cmp r1, r0 beq _0202761C ldr r0, _02027638 ; =0x00002345 cmp r1, r0 bne _02027620 _0202761C: mov r0, #0x1 b _02027622 _02027620: mov r0, #0x0 _02027622: cmp r0, #0x0 bne _0202762A bl ErrorHandling _0202762A: add r0, r5, #0x4 add r1, r4, #0x0 bl FUN_02027C88 pop {r3-r5, pc} .balign 4 _02027634: .word 0x00001234 _02027638: .word 0x00002345 thumb_func_start FUN_0202763C FUN_0202763C: ; 0x0202763C push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _02027664 ; =0x00001234 cmp r1, r0 beq _0202764E ldr r0, _02027668 ; =0x00002345 cmp r1, r0 bne _02027652 _0202764E: mov r0, #0x1 b _02027654 _02027652: mov r0, #0x0 _02027654: cmp r0, #0x0 bne _0202765C bl ErrorHandling _0202765C: add r0, r4, #0x4 bl FUN_02027C98 pop {r4, pc} .balign 4 _02027664: .word 0x00001234 _02027668: .word 0x00002345 thumb_func_start FUN_0202766C FUN_0202766C: ; 0x0202766C push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _02027694 ; =0x00001234 cmp r1, r0 beq _0202767E ldr r0, _02027698 ; =0x00002345 cmp r1, r0 bne _02027682 _0202767E: mov r0, #0x1 b _02027684 _02027682: mov r0, #0x0 _02027684: cmp r0, #0x0 bne _0202768C bl ErrorHandling _0202768C: add r4, #0x70 ldrb r0, [r4, #0x0] pop {r4, pc} nop _02027694: .word 0x00001234 _02027698: .word 0x00002345 thumb_func_start FUN_0202769C FUN_0202769C: ; 0x0202769C ldr r3, _020276A4 ; =FUN_02013918 add r0, #0x40 mov r1, #0x0 bx r3 .balign 4 _020276A4: .word FUN_02013918 thumb_func_start FUN_020276A8 FUN_020276A8: ; 0x020276A8 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _020276D0 ; =0x00001234 cmp r1, r0 beq _020276BA ldr r0, _020276D4 ; =0x00002345 cmp r1, r0 bne _020276BE _020276BA: mov r0, #0x1 b _020276C0 _020276BE: mov r0, #0x0 _020276C0: cmp r0, #0x0 bne _020276C8 bl ErrorHandling _020276C8: add r4, #0x71 ldrb r0, [r4, #0x0] pop {r4, pc} nop _020276D0: .word 0x00001234 _020276D4: .word 0x00002345 thumb_func_start FUN_020276D8 FUN_020276D8: ; 0x020276D8 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _02027708 ; =0x00001234 cmp r1, r0 beq _020276EA ldr r0, _0202770C ; =0x00002345 cmp r1, r0 bne _020276EE _020276EA: mov r0, #0x1 b _020276F0 _020276EE: mov r0, #0x0 _020276F0: cmp r0, #0x0 bne _020276F8 bl ErrorHandling _020276F8: ldr r1, [r4, #0x0] ldr r0, _0202770C ; =0x00002345 cmp r1, r0 bne _02027704 mov r0, #0x1 pop {r4, pc} _02027704: mov r0, #0x0 pop {r4, pc} .balign 4 _02027708: .word 0x00001234 _0202770C: .word 0x00002345 thumb_func_start FUN_02027710 FUN_02027710: ; 0x02027710 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _02027738 ; =0x00001234 cmp r1, r0 beq _02027722 ldr r0, _0202773C ; =0x00002345 cmp r1, r0 bne _02027726 _02027722: mov r0, #0x1 b _02027728 _02027726: mov r0, #0x0 _02027728: cmp r0, #0x0 bne _02027730 bl ErrorHandling _02027730: ldr r0, _0202773C ; =0x00002345 str r0, [r4, #0x0] pop {r4, pc} nop _02027738: .word 0x00001234 _0202773C: .word 0x00002345 thumb_func_start FUN_02027740 FUN_02027740: ; 0x02027740 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _02027770 ; =0x00001234 cmp r1, r0 beq _02027752 ldr r0, _02027774 ; =0x00002345 cmp r1, r0 bne _02027756 _02027752: mov r0, #0x1 b _02027758 _02027756: mov r0, #0x0 _02027758: cmp r0, #0x0 bne _02027760 bl ErrorHandling _02027760: add r0, r4, #0x0 mov r1, #0x0 mov r2, #0x98 blx FUN_020DF4A4 ldr r0, _02027770 ; =0x00001234 str r0, [r4, #0x0] pop {r4, pc} .balign 4 _02027770: .word 0x00001234 _02027774: .word 0x00002345 thumb_func_start FUN_02027778 FUN_02027778: ; 0x02027778 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x0] ldr r0, _020277AC ; =0x00001234 add r6, r2, #0x0 cmp r1, r0 beq _0202778E ldr r0, _020277B0 ; =0x00002345 cmp r1, r0 bne _02027792 _0202778E: mov r0, #0x1 b _02027794 _02027792: mov r0, #0x0 _02027794: cmp r0, #0x0 bne _0202779C bl ErrorHandling _0202779C: add r5, #0x8 add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_02026D34 pop {r4-r6, pc} nop _020277AC: .word 0x00001234 _020277B0: .word 0x00002345 thumb_func_start FUN_020277B4 FUN_020277B4: ; 0x020277B4 push {r4-r7, lr} sub sp, #0x14 add r4, r1, #0x0 add r5, r0, #0x0 ldr r0, [r4, #0x4] add r6, r2, #0x0 bl FUN_02013ECC add r1, sp, #0xc strh r0, [r1, #0x0] lsr r0, r0, #0x10 strh r0, [r1, #0x2] ldrh r0, [r1, #0x0] strh r0, [r1, #0x4] ldrh r0, [r1, #0x2] strh r0, [r1, #0x6] ldr r0, [r4, #0x4] bl FUN_02013F00 str r0, [sp, #0x8] cmp r6, #0x14 blt _020277E4 bl ErrorHandling _020277E4: add r1, sp, #0xc mov r0, #0x4 ldrsh r1, [r1, r0] add r0, #0xfc cmp r1, r0 blt _020277F4 bl ErrorHandling _020277F4: add r1, sp, #0xc mov r0, #0x6 ldrsh r7, [r1, r0] add r0, #0xfa cmp r7, r0 blt _02027804 bl ErrorHandling _02027804: mov r1, #0x7f ldr r0, [sp, #0x8] mvn r1, r1 cmp r0, r1 bgt _02027812 bl ErrorHandling _02027812: mov r0, #0x1 lsl r0, r6 ldr r1, [r5, #0x40] str r0, [sp, #0x4] tst r0, r1 beq _02027822 bl ErrorHandling _02027822: ldr r1, [r5, #0x0] ldr r0, _02027874 ; =0x00001234 cmp r1, r0 beq _02027830 ldr r0, _02027878 ; =0x00002345 cmp r1, r0 bne _02027834 _02027830: mov r0, #0x1 b _02027836 _02027834: mov r0, #0x0 _02027836: cmp r0, #0x0 bne _0202783E bl ErrorHandling _0202783E: ldr r0, [sp, #0x8] add r1, r5, #0x0 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] add r3, sp, #0xc mov r2, #0x4 ldrsh r2, [r3, r2] lsl r3, r7, #0x18 add r1, #0x44 lsl r0, r6, #0x2 add r0, r1, r0 ldr r1, [r4, #0x0] lsl r2, r2, #0x18 lsl r1, r1, #0x18 lsr r1, r1, #0x18 lsr r2, r2, #0x18 lsr r3, r3, #0x18 bl FUN_02026DB0 ldr r1, [r5, #0x40] ldr r0, [sp, #0x4] orr r0, r1 str r0, [r5, #0x40] add sp, #0x14 pop {r4-r7, pc} nop _02027874: .word 0x00001234 _02027878: .word 0x00002345 thumb_func_start FUN_0202787C FUN_0202787C: ; 0x0202787C push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x0] ldr r0, _020278A4 ; =0x00001234 cmp r1, r0 beq _02027890 ldr r0, _020278A8 ; =0x00002345 cmp r1, r0 bne _02027894 _02027890: mov r0, #0x1 b _02027896 _02027894: mov r0, #0x0 _02027896: cmp r0, #0x0 bne _0202789E bl ErrorHandling _0202789E: add r5, #0x94 strb r4, [r5, #0x0] pop {r3-r5, pc} .balign 4 _020278A4: .word 0x00001234 _020278A8: .word 0x00002345 thumb_func_start FUN_020278AC FUN_020278AC: ; 0x020278AC push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x0] ldr r0, _020278D4 ; =0x00001234 cmp r1, r0 beq _020278C0 ldr r0, _020278D8 ; =0x00002345 cmp r1, r0 bne _020278C4 _020278C0: mov r0, #0x1 b _020278C6 _020278C4: mov r0, #0x0 _020278C6: cmp r0, #0x0 bne _020278CE bl ErrorHandling _020278CE: str r4, [r5, #0x4] pop {r3-r5, pc} nop _020278D4: .word 0x00001234 _020278D8: .word 0x00002345 thumb_func_start FUN_020278DC FUN_020278DC: ; 0x020278DC push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x0] ldr r0, _0202790C ; =0x00001234 cmp r1, r0 beq _020278F0 ldr r0, _02027910 ; =0x00002345 cmp r1, r0 bne _020278F4 _020278F0: mov r0, #0x1 b _020278F6 _020278F4: mov r0, #0x0 _020278F6: cmp r0, #0x0 bne _020278FE bl ErrorHandling _020278FE: add r0, r5, #0x0 add r1, r4, #0x0 mov r2, #0x98 blx FUN_020DF438 pop {r3-r5, pc} nop _0202790C: .word 0x00001234 _02027910: .word 0x00002345 thumb_func_start FUN_02027914 FUN_02027914: ; 0x02027914 push {r4-r6, lr} sub sp, #0x8 add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x0] ldr r0, _0202795C ; =0x00001234 add r6, r2, #0x0 cmp r1, r0 beq _0202792C ldr r0, _02027960 ; =0x00002345 cmp r1, r0 bne _02027930 _0202792C: mov r0, #0x1 b _02027932 _02027930: mov r0, #0x0 _02027932: cmp r0, #0x0 bne _0202793A bl ErrorHandling _0202793A: add r1, sp, #0x4 add r0, r4, #0x0 add r1, #0x1 add r2, sp, #0x4 bl FUN_02026F3C add r5, #0x8 str r6, [sp, #0x0] add r3, sp, #0x4 ldrb r2, [r3, #0x1] ldrb r3, [r3, #0x0] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02026CD0 add sp, #0x8 pop {r4-r6, pc} .balign 4 _0202795C: .word 0x00001234 _02027960: .word 0x00002345 thumb_func_start FUN_02027964 FUN_02027964: ; 0x02027964 push {r4-r7, lr} sub sp, #0xc str r3, [sp, #0x4] add r6, r1, #0x0 add r5, r0, #0x0 add r7, r2, #0x0 ldr r4, [sp, #0x24] cmp r6, #0x14 blo _0202797A bl ErrorHandling _0202797A: cmp r7, #0x64 blo _02027982 bl ErrorHandling _02027982: mov r1, #0x1 ldr r0, [sp, #0x4] lsl r1, r1, #0x8 cmp r0, r1 blt _02027990 bl ErrorHandling _02027990: add r0, sp, #0x10 ldrb r1, [r0, #0x10] mov r0, #0x1 lsl r0, r0, #0x8 cmp r1, r0 blt _020279A0 bl ErrorHandling _020279A0: mov r0, #0x7f mvn r0, r0 cmp r4, r0 bgt _020279AC bl ErrorHandling _020279AC: mov r0, #0x1 lsl r0, r6 ldr r1, [r5, #0x40] str r0, [sp, #0x8] tst r0, r1 beq _020279BC bl ErrorHandling _020279BC: ldr r1, [r5, #0x0] ldr r0, _02027A0C ; =0x00001234 cmp r1, r0 beq _020279CA ldr r0, _02027A10 ; =0x00002345 cmp r1, r0 bne _020279CE _020279CA: mov r0, #0x1 b _020279D0 _020279CE: mov r0, #0x0 _020279D0: cmp r0, #0x0 bne _020279D8 bl ErrorHandling _020279D8: mov r0, #0x38 ldrsb r0, [r5, r0] cmp r0, r4 blt _020279E6 add r0, r0, #0x1 lsl r0, r0, #0x18 asr r4, r0, #0x18 _020279E6: lsl r0, r4, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] add r3, sp, #0x10 add r1, r5, #0x0 ldrb r3, [r3, #0x10] add r1, #0x44 lsl r0, r6, #0x2 add r0, r1, r0 ldr r2, [sp, #0x4] add r1, r7, #0x0 bl FUN_02026DB0 ldr r1, [r5, #0x40] ldr r0, [sp, #0x8] orr r0, r1 str r0, [r5, #0x40] add sp, #0xc pop {r4-r7, pc} .balign 4 _02027A0C: .word 0x00001234 _02027A10: .word 0x00002345 thumb_func_start FUN_02027A14 FUN_02027A14: ; 0x02027A14 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x14 blt _02027A22 bl ErrorHandling _02027A22: ldr r1, [r5, #0x0] ldr r0, _02027A50 ; =0x00001234 cmp r1, r0 beq _02027A30 ldr r0, _02027A54 ; =0x00002345 cmp r1, r0 bne _02027A34 _02027A30: mov r0, #0x1 b _02027A36 _02027A34: mov r0, #0x0 _02027A36: cmp r0, #0x0 bne _02027A3E bl ErrorHandling _02027A3E: mov r0, #0x1 add r1, r0, #0x0 ldr r2, [r5, #0x40] lsl r1, r4 tst r1, r2 bne _02027A4C mov r0, #0x0 _02027A4C: pop {r3-r5, pc} nop _02027A50: .word 0x00001234 _02027A54: .word 0x00002345 thumb_func_start FUN_02027A58 FUN_02027A58: ; 0x02027A58 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x0] ldr r0, _02027A8C ; =0x00001234 add r6, r2, #0x0 cmp r1, r0 beq _02027A6E ldr r0, _02027A90 ; =0x00002345 cmp r1, r0 bne _02027A72 _02027A6E: mov r0, #0x1 b _02027A74 _02027A72: mov r0, #0x0 _02027A74: cmp r0, #0x0 bne _02027A7C bl ErrorHandling _02027A7C: add r5, #0x8 add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_02026D98 pop {r4-r6, pc} nop _02027A8C: .word 0x00001234 _02027A90: .word 0x00002345 thumb_func_start FUN_02027A94 FUN_02027A94: ; 0x02027A94 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _02027ABC ; =0x00001234 cmp r1, r0 beq _02027AA6 ldr r0, _02027AC0 ; =0x00002345 cmp r1, r0 bne _02027AAA _02027AA6: mov r0, #0x1 b _02027AAC _02027AAA: mov r0, #0x0 _02027AAC: cmp r0, #0x0 bne _02027AB4 bl ErrorHandling _02027AB4: add r4, #0x8 add r0, r4, #0x0 pop {r4, pc} nop _02027ABC: .word 0x00001234 _02027AC0: .word 0x00002345 thumb_func_start FUN_02027AC4 FUN_02027AC4: ; 0x02027AC4 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x14 blt _02027AD2 bl ErrorHandling _02027AD2: mov r0, #0x1 ldr r1, [r5, #0x40] lsl r0, r4 tst r0, r1 bne _02027AE0 bl ErrorHandling _02027AE0: ldr r1, [r5, #0x0] ldr r0, _02027B04 ; =0x00001234 cmp r1, r0 beq _02027AEE ldr r0, _02027B08 ; =0x00002345 cmp r1, r0 bne _02027AF2 _02027AEE: mov r0, #0x1 b _02027AF4 _02027AF2: mov r0, #0x0 _02027AF4: cmp r0, #0x0 bne _02027AFC bl ErrorHandling _02027AFC: add r5, #0x44 lsl r0, r4, #0x2 add r0, r5, r0 pop {r3-r5, pc} .balign 4 _02027B04: .word 0x00001234 _02027B08: .word 0x00002345 thumb_func_start FUN_02027B0C FUN_02027B0C: ; 0x02027B0C push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x0] ldr r0, _02027B3C ; =0x00001234 cmp r1, r0 beq _02027B20 ldr r0, _02027B40 ; =0x00002345 cmp r1, r0 bne _02027B24 _02027B20: mov r0, #0x1 b _02027B26 _02027B24: mov r0, #0x0 _02027B26: cmp r0, #0x0 bne _02027B2E bl ErrorHandling _02027B2E: add r5, #0x8 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02027C88 pop {r3-r5, pc} nop _02027B3C: .word 0x00001234 _02027B40: .word 0x00002345 thumb_func_start FUN_02027B44 FUN_02027B44: ; 0x02027B44 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _02027B70 ; =0x00001234 cmp r1, r0 beq _02027B56 ldr r0, _02027B74 ; =0x00002345 cmp r1, r0 bne _02027B5A _02027B56: mov r0, #0x1 b _02027B5C _02027B5A: mov r0, #0x0 _02027B5C: cmp r0, #0x0 bne _02027B64 bl ErrorHandling _02027B64: add r4, #0x8 add r0, r4, #0x0 bl FUN_02027C98 pop {r4, pc} nop _02027B70: .word 0x00001234 _02027B74: .word 0x00002345 thumb_func_start FUN_02027B78 FUN_02027B78: ; 0x02027B78 push {r3-r5, lr} sub sp, #0x10 add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x0] ldr r0, _02027BD4 ; =0x00001234 cmp r1, r0 beq _02027B8E ldr r0, _02027BD8 ; =0x00002345 cmp r1, r0 bne _02027B92 _02027B8E: mov r0, #0x1 b _02027B94 _02027B92: mov r0, #0x0 _02027B94: cmp r0, #0x0 bne _02027B9C bl ErrorHandling _02027B9C: mov r1, #0x1 str r1, [sp, #0x0] ldr r0, [r5, #0x8] mov r2, #0x0 str r0, [sp, #0x4] str r1, [sp, #0x8] ldr r0, [r5, #0xc] add r3, r2, #0x0 str r0, [sp, #0xc] ldrh r1, [r5, #0x10] add r0, r4, #0x0 bl FUN_02066ACC add r2, r5, #0x0 add r0, r4, #0x0 mov r1, #0x74 add r2, #0x12 bl FUN_02067830 add r5, #0x3b add r0, r4, #0x0 mov r1, #0x70 add r2, r5, #0x0 bl FUN_02067830 add sp, #0x10 pop {r3-r5, pc} nop _02027BD4: .word 0x00001234 _02027BD8: .word 0x00002345 thumb_func_start FUN_02027BDC FUN_02027BDC: ; 0x02027BDC push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x14 blt _02027BEA bl ErrorHandling _02027BEA: mov r0, #0x1 ldr r1, [r5, #0x40] lsl r0, r4 tst r0, r1 bne _02027BF8 bl ErrorHandling _02027BF8: ldr r1, [r5, #0x0] ldr r0, _02027C20 ; =0x00001234 cmp r1, r0 beq _02027C06 ldr r0, _02027C24 ; =0x00002345 cmp r1, r0 bne _02027C0A _02027C06: mov r0, #0x1 b _02027C0C _02027C0A: mov r0, #0x0 _02027C0C: cmp r0, #0x0 bne _02027C14 bl ErrorHandling _02027C14: add r5, #0x44 lsl r0, r4, #0x2 add r0, r5, r0 bl FUN_02027CF8 pop {r3-r5, pc} .balign 4 _02027C20: .word 0x00001234 _02027C24: .word 0x00002345 thumb_func_start FUN_02027C28 FUN_02027C28: ; 0x02027C28 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _02027C50 ; =0x00001234 cmp r1, r0 beq _02027C3A ldr r0, _02027C54 ; =0x00002345 cmp r1, r0 bne _02027C3E _02027C3A: mov r0, #0x1 b _02027C40 _02027C3E: mov r0, #0x0 _02027C40: cmp r0, #0x0 bne _02027C48 bl ErrorHandling _02027C48: add r4, #0x94 ldrb r0, [r4, #0x0] pop {r4, pc} nop _02027C50: .word 0x00001234 _02027C54: .word 0x00002345 thumb_func_start FUN_02027C58 FUN_02027C58: ; 0x02027C58 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _02027C7C ; =0x00001234 cmp r1, r0 beq _02027C6A ldr r0, _02027C80 ; =0x00002345 cmp r1, r0 bne _02027C6E _02027C6A: mov r0, #0x1 b _02027C70 _02027C6E: mov r0, #0x0 _02027C70: cmp r0, #0x0 bne _02027C78 bl ErrorHandling _02027C78: ldr r0, [r4, #0x4] pop {r4, pc} .balign 4 _02027C7C: .word 0x00001234 _02027C80: .word 0x00002345 thumb_func_start FUN_02027C84 FUN_02027C84: ; 0x02027C84 ldrh r0, [r0, #0x8] bx lr thumb_func_start FUN_02027C88 FUN_02027C88: ; 0x02027C88 add r2, r0, #0x0 ldr r3, _02027C94 ; =FUN_02021E28 add r2, #0x20 add r0, r1, #0x0 add r1, r2, #0x0 bx r3 .balign 4 _02027C94: .word FUN_02021E28 thumb_func_start FUN_02027C98 FUN_02027C98: ; 0x02027C98 add r0, #0x34 ldrb r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02027CA0 FUN_02027CA0: ; 0x02027CA0 mov r1, #0x30 ldrsb r0, [r0, r1] bx lr .balign 4 thumb_func_start FUN_02027CA8 FUN_02027CA8: ; 0x02027CA8 add r0, #0x31 ldrb r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02027CB0 FUN_02027CB0: ; 0x02027CB0 add r0, #0x32 ldrb r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02027CB8 FUN_02027CB8: ; 0x02027CB8 push {r3-r5, lr} sub sp, #0x10 add r4, r1, #0x0 mov r1, #0x1 add r5, r0, #0x0 str r1, [sp, #0x0] ldr r0, [r5, #0x0] mov r2, #0x0 str r0, [sp, #0x4] str r1, [sp, #0x8] ldr r0, [r5, #0x4] add r3, r2, #0x0 str r0, [sp, #0xc] ldrh r1, [r5, #0x8] add r0, r4, #0x0 bl FUN_02066ACC add r2, r5, #0x0 add r0, r4, #0x0 mov r1, #0x74 add r2, #0xa bl FUN_02067830 add r5, #0x33 add r0, r4, #0x0 mov r1, #0x70 add r2, r5, #0x0 bl FUN_02067830 add sp, #0x10 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02027CF8 FUN_02027CF8: ; 0x02027CF8 ldrb r0, [r0, #0x0] bx lr thumb_func_start FUN_02027CFC FUN_02027CFC: ; 0x02027CFC ldrb r0, [r0, #0x1] bx lr thumb_func_start FUN_02027D00 FUN_02027D00: ; 0x02027D00 ldrb r0, [r0, #0x2] bx lr thumb_func_start FUN_02027D04 FUN_02027D04: ; 0x02027D04 mov r1, #0x3 ldrsb r0, [r0, r1] bx lr .balign 4 thumb_func_start FUN_02027D0C FUN_02027D0C: ; 0x02027D0C push {r4-r7, lr} sub sp, #0x1fc sub sp, #0x1fc sub sp, #0xc add r7, r0, #0x0 mov r0, #0x1 add r4, r1, #0x0 str r0, [sp, #0x0] add r0, r4, #0x0 bl FUN_0202729C cmp r0, #0x1 bne _02027D6A ldr r1, _02027D78 ; =0xEDB88320 add r0, sp, #0x4 blx FUN_020DDE44 add r0, sp, #0x4 add r1, r4, #0x0 mov r2, #0x74 blx FUN_020DDD28 add r6, r0, #0x0 mov r5, #0x0 _02027D3C: add r0, r7, #0x0 add r1, r5, #0x0 bl FUN_02027008 add r4, r0, #0x0 ldr r1, _02027D78 ; =0xEDB88320 add r0, sp, #0x4 blx FUN_020DDE44 add r0, sp, #0x4 add r1, r4, #0x0 mov r2, #0x74 blx FUN_020DDD28 cmp r0, r6 bne _02027D62 mov r0, #0x0 str r0, [sp, #0x0] b _02027D6E _02027D62: add r5, r5, #0x1 cmp r5, #0xb blt _02027D3C b _02027D6E _02027D6A: mov r0, #0x0 str r0, [sp, #0x0] _02027D6E: ldr r0, [sp, #0x0] add sp, #0x1fc add sp, #0x1fc add sp, #0xc pop {r4-r7, pc} .balign 4 _02027D78: .word 0xEDB88320 thumb_func_start FUN_02027D7C FUN_02027D7C: ; 0x02027D7C push {r4-r7, lr} sub sp, #0xc str r0, [sp, #0x0] mov r7, #0x0 ldr r0, [sp, #0x0] str r1, [sp, #0x4] add r5, r2, #0x0 add r6, r7, #0x0 str r3, [sp, #0x8] cmp r0, #0x0 ble _02027DB6 add r4, r3, #0x0 _02027D94: ldr r0, [sp, #0x4] cmp r6, r0 beq _02027DAC ldr r1, [r4, #0x0] cmp r1, #0x0 beq _02027DAC add r0, r5, #0x0 bl FUN_02027D0C cmp r0, #0x1 bne _02027DAC add r7, r7, #0x1 _02027DAC: ldr r0, [sp, #0x0] add r6, r6, #0x1 add r4, r4, #0x4 cmp r6, r0 blt _02027D94 _02027DB6: mov r4, #0xa _02027DB8: add r1, r4, r7 cmp r1, #0xb bge _02027DD6 add r0, r5, #0x0 bl FUN_02027008 add r6, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02027008 add r1, r0, #0x0 add r0, r6, #0x0 bl FUN_020274B8 _02027DD6: sub r4, r4, #0x1 cmp r4, #0x1 bge _02027DB8 ldr r0, [sp, #0x0] mov r6, #0x1 mov r4, #0x0 cmp r0, #0x0 ble _02027E1E _02027DE6: ldr r0, [sp, #0x4] cmp r4, r0 beq _02027E10 ldr r0, [sp, #0x8] ldr r7, [r0, #0x0] cmp r7, #0x0 beq _02027E10 add r0, r5, #0x0 add r1, r7, #0x0 bl FUN_02027D0C cmp r0, #0x1 bne _02027E10 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02027008 add r1, r7, #0x0 add r6, r6, #0x1 bl FUN_020274B8 _02027E10: ldr r0, [sp, #0x8] add r4, r4, #0x1 add r0, r0, #0x4 str r0, [sp, #0x8] ldr r0, [sp, #0x0] cmp r4, r0 blt _02027DE6 _02027E1E: add sp, #0xc pop {r4-r7, pc} .balign 4 thumb_func_start FUN_02027E24 FUN_02027E24: ; 0x02027E24 ldr r3, _02027E2C ; =FUN_02022610 mov r1, #0xe bx r3 nop _02027E2C: .word FUN_02022610 thumb_func_start FUN_02027E30 FUN_02027E30: ; 0x02027E30 mov r0, #0x8 bx lr thumb_func_start FUN_02027E34 FUN_02027E34: ; 0x02027E34 ldrb r0, [r0, #0x0] cmp r0, #0x1e beq _02027E3E mov r0, #0x1 bx lr _02027E3E: mov r0, #0x0 bx lr .balign 4 thumb_func_start FUN_02027E44 FUN_02027E44: ; 0x02027E44 mov r1, #0x1e strb r1, [r0, #0x0] mov r1, #0x0 strb r1, [r0, #0x1] strb r1, [r0, #0x2] strb r1, [r0, #0x3] strb r1, [r0, #0x4] strb r1, [r0, #0x5] strb r1, [r0, #0x6] strb r1, [r0, #0x7] bx lr .balign 4 thumb_func_start FUN_02027E5C FUN_02027E5C: ; 0x02027E5C push {r4, lr} mov r1, #0x8 bl FUN_020169D8 add r4, r0, #0x0 bl FUN_02027E44 add r0, r4, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02027E70 FUN_02027E70: ; 0x02027E70 ldrb r2, [r0, #0x0] strb r2, [r1, #0x0] ldrb r2, [r0, #0x1] strb r2, [r1, #0x1] ldrb r2, [r0, #0x2] strb r2, [r1, #0x2] ldrb r2, [r0, #0x3] strb r2, [r1, #0x3] ldrb r2, [r0, #0x4] strb r2, [r1, #0x4] ldrb r2, [r0, #0x5] strb r2, [r1, #0x5] ldrb r2, [r0, #0x6] strb r2, [r1, #0x6] ldrb r0, [r0, #0x7] strb r0, [r1, #0x7] bx lr .balign 4 thumb_func_start FUN_02027E94 FUN_02027E94: ; 0x02027E94 cmp r1, #0x6 bhi _02027ECA add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02027EA4: ; jump table (using 16-bit offset) .short _02027EB2 - _02027EA4 - 2; case 0 .short _02027EB6 - _02027EA4 - 2; case 1 .short _02027EBA - _02027EA4 - 2; case 2 .short _02027EBE - _02027EA4 - 2; case 3 .short _02027EC2 - _02027EA4 - 2; case 4 .short _02027EC6 - _02027EA4 - 2; case 5 .short _02027ECA - _02027EA4 - 2; case 6 _02027EB2: ldrb r0, [r0, #0x0] bx lr _02027EB6: ldrb r0, [r0, #0x1] bx lr _02027EBA: ldrb r0, [r0, #0x2] bx lr _02027EBE: ldrb r0, [r0, #0x3] bx lr _02027EC2: ldrb r0, [r0, #0x4] bx lr _02027EC6: ldrb r0, [r0, #0x5] bx lr _02027ECA: ldrb r0, [r0, #0x6] bx lr .balign 4 thumb_func_start FUN_02027ED0 FUN_02027ED0: ; 0x02027ED0 push {r3-r7, lr} add r5, r0, #0x0 str r1, [sp, #0x0] mov r4, #0x0 mov r6, #0x2 mov r7, #0x5 _02027EDC: bl FUN_0201B9EC add r1, r7, #0x0 blx _s32_div_f lsl r0, r1, #0x18 lsr r0, r0, #0x18 add r1, r5, r0 ldrb r0, [r1, #0x1] cmp r0, #0x0 bne _02027EF6 strb r6, [r1, #0x1] add r4, r4, #0x1 _02027EF6: cmp r4, #0x3 blt _02027EDC mov r0, #0x1b strb r0, [r5, #0x0] ldr r0, [sp, #0x0] strb r0, [r5, #0x6] pop {r3-r7, pc} thumb_func_start FUN_02027F04 FUN_02027F04: ; 0x02027F04 push {r3-r7, lr} sub sp, #0x8 mov r12, r2 mov r2, #0x0 add r6, r2, #0x0 mov r5, #0x1b cmp r3, #0x0 beq _02027F20 mov r1, r12 bl FUN_02027ED0 add sp, #0x8 add r0, r5, #0x0 pop {r3-r7, pc} _02027F20: add r4, r2, #0x0 add r7, sp, #0x0 _02027F24: ldrb r3, [r1, r4] cmp r3, #0x0 beq _02027F34 cmp r3, #0x32 blo _02027F30 mov r6, #0x1 _02027F30: strb r4, [r7, r2] add r2, r2, #0x1 _02027F34: add r4, r4, #0x1 cmp r4, #0x5 blt _02027F24 cmp r2, #0x5 bhi _02027F9C add r2, r2, r2 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _02027F4A: ; jump table (using 16-bit offset) .short _02027F56 - _02027F4A - 2; case 0 .short _02027F62 - _02027F4A - 2; case 1 .short _02027F70 - _02027F4A - 2; case 2 .short _02027F96 - _02027F4A - 2; case 3 .short _02027F9A - _02027F4A - 2; case 4 .short _02027F9A - _02027F4A - 2; case 5 _02027F56: mov r1, r12 bl FUN_02027ED0 add sp, #0x8 mov r0, #0x1b pop {r3-r7, pc} _02027F62: add r2, sp, #0x0 ldrb r3, [r2, #0x0] mov r2, #0x6 mul r2, r3 lsl r2, r2, #0x18 lsr r5, r2, #0x18 b _02027F9C _02027F70: add r2, sp, #0x0 ldrb r3, [r2, #0x1] ldrb r2, [r2, #0x0] ldrb r4, [r1, r3] ldrb r5, [r1, r2] cmp r5, r4 blo _02027F8A lsl r4, r2, #0x2 add r2, r2, r4 add r2, r3, r2 lsl r2, r2, #0x18 lsr r5, r2, #0x18 b _02027F9C _02027F8A: lsl r4, r3, #0x2 add r3, r3, r4 add r2, r2, r3 lsl r2, r2, #0x18 lsr r5, r2, #0x18 b _02027F9C _02027F96: mov r5, #0x19 b _02027F9C _02027F9A: mov r5, #0x1a _02027F9C: cmp r6, #0x0 beq _02027FA2 mov r5, #0x1c _02027FA2: mov r4, #0x0 _02027FA4: ldrb r3, [r1, r4] add r2, r0, r4 add r4, r4, #0x1 strb r3, [r2, #0x1] cmp r4, #0x5 blt _02027FA4 strb r5, [r0, #0x0] mov r1, r12 strb r1, [r0, #0x6] add r0, r5, #0x0 add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_02027FBC FUN_02027FBC: ; 0x02027FBC ldrb r2, [r0, #0x0] strb r2, [r1, #0x0] ldrb r2, [r0, #0x1] strb r2, [r1, #0x1] ldrb r2, [r0, #0x2] strb r2, [r1, #0x2] ldrb r2, [r0, #0x3] strb r2, [r1, #0x3] ldrb r2, [r0, #0x4] strb r2, [r1, #0x4] ldrb r2, [r0, #0x5] strb r2, [r1, #0x5] ldrb r0, [r0, #0x6] strb r0, [r1, #0x6] bx lr .balign 4 thumb_func_start FUN_02027FDC FUN_02027FDC: ; 0x02027FDC push {r4, lr} add r4, r0, #0x0 ldrb r0, [r4, #0x0] mov r1, #0x5 blx _s32_div_f lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r0, #0x5 bhi _0202801C add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02027FFC: ; jump table (using 16-bit offset) .short _02028008 - _02027FFC - 2; case 0 .short _0202800C - _02027FFC - 2; case 1 .short _02028010 - _02027FFC - 2; case 2 .short _02028014 - _02027FFC - 2; case 3 .short _02028018 - _02027FFC - 2; case 4 .short _0202801C - _02027FFC - 2; case 5 _02028008: ldrb r0, [r4, #0x1] b _0202803E _0202800C: ldrb r0, [r4, #0x2] b _0202803E _02028010: ldrb r0, [r4, #0x3] b _0202803E _02028014: ldrb r0, [r4, #0x4] b _0202803E _02028018: ldrb r0, [r4, #0x5] b _0202803E _0202801C: ldrb r0, [r4, #0x1] ldrb r1, [r4, #0x2] cmp r0, r1 bhs _02028026 add r0, r1, #0x0 _02028026: ldrb r1, [r4, #0x3] cmp r0, r1 bhs _0202802E add r0, r1, #0x0 _0202802E: ldrb r1, [r4, #0x4] cmp r0, r1 bhs _02028036 add r0, r1, #0x0 _02028036: ldrb r1, [r4, #0x5] cmp r0, r1 bhs _0202803E add r0, r1, #0x0 _0202803E: cmp r0, #0x63 bls _02028044 mov r0, #0x63 _02028044: pop {r4, pc} .balign 4 thumb_func_start FUN_02028048 FUN_02028048: ; 0x02028048 ldr r3, _02028050 ; =FUN_02022610 mov r1, #0x10 bx r3 nop _02028050: .word FUN_02022610 thumb_func_start FUN_02028054 FUN_02028054: ; 0x02028054 mov r0, #0x32 lsl r0, r0, #0x4 bx lr .balign 4 thumb_func_start FUN_0202805C FUN_0202805C: ; 0x0202805C push {r3-r5, lr} add r5, r0, #0x0 mov r4, #0x0 _02028062: add r0, r5, #0x0 bl FUN_02027E44 add r4, r4, #0x1 add r5, #0x8 cmp r4, #0x64 blt _02028062 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02028074 FUN_02028074: ; 0x02028074 mov r2, #0x0 _02028076: lsl r1, r2, #0x3 ldrb r1, [r0, r1] cmp r1, #0x1e bne _02028082 add r0, r2, #0x0 bx lr _02028082: add r1, r2, #0x1 lsl r1, r1, #0x10 lsr r2, r1, #0x10 cmp r2, #0x64 blo _02028076 ldr r0, _02028090 ; =0x0000FFFF bx lr .balign 4 _02028090: .word 0x0000FFFF thumb_func_start FUN_02028094 FUN_02028094: ; 0x02028094 push {r4-r6, lr} add r5, r0, #0x0 add r6, r1, #0x0 bl FUN_02028074 ldr r1, _020280B4 ; =0x0000FFFF add r4, r0, #0x0 cmp r4, r1 beq _020280B2 lsl r1, r4, #0x3 add r0, r6, #0x0 add r1, r5, r1 bl FUN_02027E70 add r0, r4, #0x0 _020280B2: pop {r4-r6, pc} .balign 4 _020280B4: .word 0x0000FFFF thumb_func_start FUN_020280B8 FUN_020280B8: ; 0x020280B8 push {r3, lr} cmp r1, #0x64 blo _020280C2 mov r0, #0x0 pop {r3, pc} _020280C2: lsl r1, r1, #0x3 add r0, r0, r1 bl FUN_02027E44 mov r0, #0x1 pop {r3, pc} .balign 4 thumb_func_start FUN_020280D0 FUN_020280D0: ; 0x020280D0 cmp r1, #0x64 bhs _020280EA _020280D4: lsl r2, r1, #0x3 ldrb r2, [r0, r2] cmp r2, #0x1e beq _020280E0 add r0, r1, #0x0 bx lr _020280E0: add r1, r1, #0x1 lsl r1, r1, #0x10 lsr r1, r1, #0x10 cmp r1, #0x64 blo _020280D4 _020280EA: ldr r0, _020280F0 ; =0x0000FFFF bx lr nop _020280F0: .word 0x0000FFFF thumb_func_start FUN_020280F4 FUN_020280F4: ; 0x020280F4 push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 mov r0, #0x0 mov r7, #0x64 str r0, [sp, #0x4] _02028100: ldr r0, [sp, #0x4] lsl r0, r0, #0x3 ldrb r0, [r5, r0] cmp r0, #0x1e bne _0202815C ldr r6, [sp, #0x4] add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_020280D0 add r4, r0, #0x0 ldr r0, _02028170 ; =0x0000FFFF cmp r4, r0 beq _0202816A ldr r0, [sp, #0x4] sub r0, r4, r0 lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x0] cmp r4, r7 bhs _02028154 cmp r4, r7 bhs _02028154 _0202812E: lsl r0, r4, #0x3 lsl r1, r6, #0x3 str r0, [sp, #0x8] add r0, r5, r0 add r1, r5, r1 bl FUN_02027E70 ldr r0, [sp, #0x8] add r0, r5, r0 bl FUN_02027E44 add r0, r6, #0x1 lsl r0, r0, #0x10 lsr r6, r0, #0x10 add r0, r4, #0x1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, r7 blo _0202812E _02028154: ldr r0, [sp, #0x0] sub r0, r7, r0 lsl r0, r0, #0x10 lsr r7, r0, #0x10 _0202815C: ldr r0, [sp, #0x4] add r0, r0, #0x1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x4] cmp r0, r7 blo _02028100 _0202816A: add sp, #0xc pop {r4-r7, pc} nop _02028170: .word 0x0000FFFF thumb_func_start FUN_02028174 FUN_02028174: ; 0x02028174 push {r3, lr} cmp r1, #0x64 blo _02028182 add r0, r2, #0x0 bl FUN_02027E44 pop {r3, pc} _02028182: lsl r1, r1, #0x3 add r0, r0, r1 add r1, r2, #0x0 bl FUN_02027E70 pop {r3, pc} .balign 4 thumb_func_start FUN_02028190 FUN_02028190: ; 0x02028190 push {r4-r6, lr} add r5, r0, #0x0 add r0, r2, #0x0 add r4, r1, #0x0 bl FUN_02027E5C add r6, r0, #0x0 cmp r4, #0x64 blo _020281AA bl FUN_02027E44 mov r0, #0x0 pop {r4-r6, pc} _020281AA: lsl r0, r4, #0x3 add r0, r5, r0 add r1, r6, #0x0 bl FUN_02027E70 add r0, r6, #0x0 pop {r4-r6, pc} thumb_func_start FUN_020281B8 FUN_020281B8: ; 0x020281B8 push {r4-r6, lr} mov r4, #0x0 add r6, r0, #0x0 add r5, r4, #0x0 _020281C0: lsl r0, r5, #0x3 add r0, r6, r0 bl FUN_02027E34 cmp r0, #0x0 beq _020281D2 add r0, r4, #0x1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 _020281D2: add r0, r5, #0x1 lsl r0, r0, #0x10 lsr r5, r0, #0x10 cmp r5, #0x64 blo _020281C0 add r0, r4, #0x0 pop {r4-r6, pc} thumb_func_start FUN_020281E0 FUN_020281E0: ; 0x020281E0 mov r0, #0x1f lsl r0, r0, #0x6 bx lr .balign 4 thumb_func_start FUN_020281E8 FUN_020281E8: ; 0x020281E8 push {r3-r7, lr} add r7, r0, #0x0 mov r2, #0x1f mov r0, #0x0 add r1, r7, #0x0 lsl r2, r2, #0x6 blx MIi_CpuClearFast mov r0, #0x1d lsl r0, r0, #0x4 add r1, r0, #0x0 add r2, r0, #0x0 ldr r4, _02028224 ; =0x0000FFFF mov r5, #0x0 add r6, r7, #0x0 mov r3, #0x2 sub r1, #0x10 add r2, #0x1e _0202820C: strh r4, [r6, r0] strh r4, [r6, r1] strb r3, [r6, r2] add r5, r5, #0x1 add r6, #0x30 cmp r5, #0x20 blt _0202820C add r0, r7, #0x0 bl FUN_0203380C pop {r3-r7, pc} nop _02028224: .word 0x0000FFFF thumb_func_start FUN_02028228 FUN_02028228: ; 0x02028228 bx lr .balign 4 thumb_func_start FUN_0202822C FUN_0202822C: ; 0x0202822C push {r3-r7, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r7, r2, #0x0 cmp r4, #0x20 blt _0202823C bl ErrorHandling _0202823C: cmp r7, #0x8 bhi _020282D0 add r0, r7, r7 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0202824C: ; jump table (using 16-bit offset) .short _0202825E - _0202824C - 2; case 0 .short _0202826C - _0202824C - 2; case 1 .short _0202827A - _0202824C - 2; case 2 .short _02028286 - _0202824C - 2; case 3 .short _02028294 - _0202824C - 2; case 4 .short _020282A0 - _0202824C - 2; case 5 .short _020282AE - _0202824C - 2; case 6 .short _020282C6 - _0202824C - 2; case 7 .short _020282BA - _0202824C - 2; case 8 _0202825E: mov r0, #0x30 mul r0, r4 add r1, r5, r0 mov r0, #0x1e lsl r0, r0, #0x4 ldr r6, [r1, r0] b _020282D0 _0202826C: mov r0, #0x30 mul r0, r4 add r1, r5, r0 mov r0, #0x79 lsl r0, r0, #0x2 ldrh r6, [r1, r0] b _020282D0 _0202827A: mov r0, #0x30 mul r0, r4 add r1, r5, r0 ldr r0, _020282D4 ; =0x000001E6 ldrh r6, [r1, r0] b _020282D0 _02028286: mov r0, #0x30 mul r0, r4 add r1, r5, r0 mov r0, #0x7a lsl r0, r0, #0x2 ldrh r6, [r1, r0] b _020282D0 _02028294: mov r0, #0x30 mul r0, r4 add r1, r5, r0 ldr r0, _020282D8 ; =0x000001EA ldrh r6, [r1, r0] b _020282D0 _020282A0: mov r0, #0x30 mul r0, r4 add r1, r5, r0 mov r0, #0x7b lsl r0, r0, #0x2 ldrb r6, [r1, r0] b _020282D0 _020282AE: mov r0, #0x30 mul r0, r4 add r1, r5, r0 ldr r0, _020282DC ; =0x000001ED ldrb r6, [r1, r0] b _020282D0 _020282BA: mov r0, #0x30 mul r0, r4 add r1, r5, r0 ldr r0, _020282E0 ; =0x000001EE ldrb r6, [r1, r0] b _020282D0 _020282C6: mov r0, #0x30 mul r0, r4 add r1, r5, r0 ldr r0, _020282E4 ; =0x000001EF ldrb r6, [r1, r0] _020282D0: add r0, r6, #0x0 pop {r3-r7, pc} .balign 4 _020282D4: .word 0x000001E6 _020282D8: .word 0x000001EA _020282DC: .word 0x000001ED _020282E0: .word 0x000001EE _020282E4: .word 0x000001EF thumb_func_start FUN_020282E8 FUN_020282E8: ; 0x020282E8 push {r3-r7, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r7, r2, #0x0 add r6, r3, #0x0 cmp r4, #0x20 blt _020282FA bl ErrorHandling _020282FA: cmp r7, #0x8 bhi _02028378 add r0, r7, r7 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0202830A: ; jump table (using 16-bit offset) .short _0202831C - _0202830A - 2; case 0 .short _0202832A - _0202830A - 2; case 1 .short _02028330 - _0202830A - 2; case 2 .short _02028336 - _0202830A - 2; case 3 .short _0202833C - _0202830A - 2; case 4 .short _02028348 - _0202830A - 2; case 5 .short _02028356 - _0202830A - 2; case 6 .short _0202836E - _0202830A - 2; case 7 .short _02028362 - _0202830A - 2; case 8 _0202831C: mov r0, #0x30 mul r0, r4 add r1, r5, r0 mov r0, #0x1e lsl r0, r0, #0x4 str r6, [r1, r0] pop {r3-r7, pc} _0202832A: bl ErrorHandling pop {r3-r7, pc} _02028330: bl ErrorHandling pop {r3-r7, pc} _02028336: bl ErrorHandling pop {r3-r7, pc} _0202833C: mov r0, #0x30 mul r0, r4 add r1, r5, r0 ldr r0, _0202837C ; =0x000001EA strh r6, [r1, r0] pop {r3-r7, pc} _02028348: mov r0, #0x30 mul r0, r4 add r1, r5, r0 mov r0, #0x7b lsl r0, r0, #0x2 strb r6, [r1, r0] pop {r3-r7, pc} _02028356: mov r0, #0x30 mul r0, r4 add r1, r5, r0 ldr r0, _02028380 ; =0x000001ED strb r6, [r1, r0] pop {r3-r7, pc} _02028362: mov r0, #0x30 mul r0, r4 add r1, r5, r0 ldr r0, _02028384 ; =0x000001EE strb r6, [r1, r0] pop {r3-r7, pc} _0202836E: mov r0, #0x30 mul r0, r4 add r1, r5, r0 ldr r0, _02028388 ; =0x000001EF strb r6, [r1, r0] _02028378: pop {r3-r7, pc} nop _0202837C: .word 0x000001EA _02028380: .word 0x000001ED _02028384: .word 0x000001EE _02028388: .word 0x000001EF thumb_func_start FUN_0202838C FUN_0202838C: ; 0x0202838C push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x20 blt _0202839A bl ErrorHandling _0202839A: mov r0, #0xc add r5, #0x40 mul r0, r4 add r0, r5, r0 pop {r3-r5, pc} thumb_func_start FUN_020283A4 FUN_020283A4: ; 0x020283A4 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x20 blt _020283B2 bl ErrorHandling _020283B2: mov r0, #0x1d lsl r0, r0, #0x4 add r1, r5, r0 mov r0, #0x30 mul r0, r4 add r0, r1, r0 pop {r3-r5, pc} thumb_func_start FUN_020283C0 FUN_020283C0: ; 0x020283C0 push {r4-r6, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r6, r2, #0x0 cmp r4, #0x20 blt _020283D0 bl ErrorHandling _020283D0: mov r1, #0x1d lsl r1, r1, #0x4 add r2, r5, r1 mov r1, #0x30 mul r1, r4 add r1, r2, r1 add r0, r6, #0x0 mov r2, #0x10 bl FUN_02021EF0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_020283E8 FUN_020283E8: ; 0x020283E8 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x20 blt _020283F6 bl ErrorHandling _020283F6: mov r0, #0x7 lsl r0, r0, #0x6 add r1, r5, r0 mov r0, #0x30 mul r0, r4 add r0, r1, r0 pop {r3-r5, pc} thumb_func_start FUN_02028404 FUN_02028404: ; 0x02028404 push {r4-r6, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r6, r2, #0x0 cmp r4, #0x20 blt _02028414 bl ErrorHandling _02028414: mov r1, #0x7 lsl r1, r1, #0x6 add r2, r5, r1 mov r1, #0x30 mul r1, r4 add r1, r2, r1 add r0, r6, #0x0 mov r2, #0x10 bl FUN_02021EF0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0202842C FUN_0202842C: ; 0x0202842C push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x20 blt _0202843A bl ErrorHandling _0202843A: mov r0, #0xc add r5, #0x40 mul r0, r4 add r0, r5, r0 blx FUN_0209700C pop {r3-r5, pc} thumb_func_start FUN_02028448 FUN_02028448: ; 0x02028448 push {r4-r6, lr} mov r5, #0x0 add r6, r0, #0x0 add r4, r5, #0x0 _02028450: add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_0202842C cmp r0, #0x0 beq _0202845E add r5, r5, #0x1 _0202845E: add r4, r4, #0x1 cmp r4, #0x20 blt _02028450 add r0, r5, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02028468 FUN_02028468: ; 0x02028468 push {r4-r7, lr} sub sp, #0xc add r5, r1, #0x0 str r0, [sp, #0x0] cmp r5, #0x20 blt _02028478 bl ErrorHandling _02028478: cmp r5, #0x1f bge _020284D2 mov r1, #0x7 ldr r0, [sp, #0x0] lsl r1, r1, #0x6 add r0, r0, r1 str r0, [sp, #0x4] mov r0, #0x30 add r1, r5, #0x0 mul r1, r0 ldr r0, [sp, #0x4] add r6, r0, r1 ldr r0, [sp, #0x0] add r1, r5, #0x0 str r0, [sp, #0x8] add r0, #0x40 str r0, [sp, #0x8] mov r0, #0xc mul r1, r0 ldr r0, [sp, #0x8] add r4, r0, r1 _020284A2: add r7, r5, #0x1 mov r0, #0x30 add r1, r7, #0x0 mul r1, r0 ldr r0, [sp, #0x4] mov r2, #0x30 add r0, r0, r1 add r1, r6, #0x0 blx MI_CpuCopy8 mov r0, #0xc add r1, r7, #0x0 mul r1, r0 ldr r0, [sp, #0x8] mov r2, #0xc add r0, r0, r1 add r1, r4, #0x0 blx MI_CpuCopy8 add r5, r5, #0x1 add r6, #0x30 add r4, #0xc cmp r5, #0x1f blt _020284A2 _020284D2: mov r2, #0x7 ldr r1, [sp, #0x0] lsl r2, r2, #0x6 add r2, r1, r2 mov r1, #0x5d lsl r1, r1, #0x4 add r1, r2, r1 mov r0, #0x0 mov r2, #0x30 blx MIi_CpuClearFast ldr r2, [sp, #0x0] mov r1, #0x5d add r2, #0x40 lsl r1, r1, #0x2 add r1, r2, r1 mov r0, #0x0 mov r2, #0xc blx MIi_CpuClearFast mov r2, #0x7a lsl r2, r2, #0x4 add r1, r2, #0x0 ldr r3, _02028514 ; =0x0000FFFF ldr r0, [sp, #0x0] sub r1, #0x10 strh r3, [r0, r2] strh r3, [r0, r1] mov r1, #0x2 add r2, #0x1e strb r1, [r0, r2] add sp, #0xc pop {r4-r7, pc} .balign 4 _02028514: .word 0x0000FFFF thumb_func_start FUN_02028518 FUN_02028518: ; 0x02028518 push {r4-r7, lr} sub sp, #0xc str r2, [sp, #0x4] add r7, r0, #0x0 ldr r0, [sp, #0x4] mov r2, #0x30 add r5, r0, #0x0 mov r0, #0x7 lsl r0, r0, #0x6 add r3, r1, #0x0 mul r5, r2 add r4, r7, r0 mul r3, r2 str r1, [sp, #0x0] add r0, r4, r5 add r1, r4, r3 blx MI_CpuCopy8 ldr r0, [sp, #0x4] add r6, r7, #0x0 mov r3, #0xc add r1, r0, #0x0 mul r1, r3 add r6, #0x40 str r1, [sp, #0x8] add r0, r6, r1 ldr r1, [sp, #0x0] add r2, r1, #0x0 mul r2, r3 add r1, r6, r2 add r2, r3, #0x0 blx MI_CpuCopy8 mov r0, #0x0 add r1, r4, r5 mov r2, #0x30 blx MIi_CpuClearFast ldr r1, [sp, #0x8] mov r0, #0x0 add r1, r6, r1 mov r2, #0xc blx MIi_CpuClearFast mov r0, #0x1d ldr r1, _02028588 ; =0x0000FFFF add r2, r7, r5 lsl r0, r0, #0x4 strh r1, [r2, r0] strh r1, [r4, r5] mov r1, #0x2 add r0, #0x1e strb r1, [r2, r0] add sp, #0xc pop {r4-r7, pc} nop _02028588: .word 0x0000FFFF thumb_func_start FUN_0202858C FUN_0202858C: ; 0x0202858C push {r3-r7, lr} mov r5, #0x0 mvn r5, r5 add r6, r0, #0x0 mov r4, #0x0 add r7, r5, #0x0 _02028598: add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_0202842C cmp r0, #0x0 beq _020285BC mov r0, #0x0 mvn r0, r0 cmp r5, r0 beq _020285C6 add r0, r6, #0x0 add r1, r5, #0x0 add r2, r4, #0x0 bl FUN_02028518 add r4, r7, #0x0 add r5, r7, #0x0 b _020285C6 _020285BC: mov r0, #0x0 mvn r0, r0 cmp r5, r0 bne _020285C6 add r5, r4, #0x0 _020285C6: add r4, r4, #0x1 cmp r4, #0x20 blt _02028598 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020285D0 FUN_020285D0: ; 0x020285D0 push {r3-r5, lr} sub sp, #0x10 add r5, r0, #0x0 add r4, r1, #0x0 add r0, sp, #0x0 bl FUN_020126B4 mov r0, #0x30 add r2, r4, #0x0 mul r2, r0 mov r0, #0x7d ldr r1, [sp, #0x0] lsl r0, r0, #0x4 add r1, r1, r0 ldr r0, _02028604 ; =0x000001EA add r3, r5, r2 strh r1, [r3, r0] add r1, r0, #0x2 ldr r2, [sp, #0x4] add r0, r0, #0x3 strb r2, [r3, r1] ldr r1, [sp, #0x8] strb r1, [r3, r0] add sp, #0x10 pop {r3-r5, pc} nop _02028604: .word 0x000001EA thumb_func_start FUN_02028608 FUN_02028608: ; 0x02028608 push {r4-r6, lr} mov r5, #0x79 add r4, r0, #0x0 mov r0, #0x30 lsl r5, r5, #0x2 mul r0, r1 add r5, r4, r5 ldrh r6, [r5, r0] add r2, r6, r2 strh r2, [r5, r0] ldrh r6, [r5, r0] ldr r2, _0202865C ; =0x0000270F cmp r6, r2 bls _02028626 strh r2, [r5, r0] _02028626: ldr r2, _02028660 ; =0x000001E6 add r2, r4, r2 ldrh r5, [r2, r0] add r3, r5, r3 strh r3, [r2, r0] ldrh r5, [r2, r0] ldr r3, _0202865C ; =0x0000270F cmp r5, r3 bls _0202863A strh r3, [r2, r0] _0202863A: mov r2, #0x7a lsl r2, r2, #0x2 add r2, r4, r2 ldrh r5, [r2, r0] ldr r3, [sp, #0x10] add r3, r5, r3 strh r3, [r2, r0] ldrh r5, [r2, r0] ldr r3, _0202865C ; =0x0000270F cmp r5, r3 bls _02028652 strh r3, [r2, r0] _02028652: add r0, r4, #0x0 bl FUN_020285D0 pop {r4-r6, pc} nop _0202865C: .word 0x0000270F _02028660: .word 0x000001E6 thumb_func_start FUN_02028664 FUN_02028664: ; 0x02028664 push {r4-r6, lr} add r5, r0, #0x0 mov r3, #0x79 mov r0, #0x30 add r4, r1, #0x0 mul r4, r0 lsl r3, r3, #0x2 mul r0, r2 add r2, r5, r3 add r6, r5, r4 ldrh r1, [r2, r0] ldrh r3, [r6, r3] add r1, r1, r3 strh r1, [r2, r0] ldrh r3, [r2, r0] ldr r1, _020286E0 ; =0x0000270F cmp r3, r1 bls _0202868A strh r1, [r2, r0] _0202868A: ldr r3, _020286E4 ; =0x000001E6 add r6, r5, r4 add r2, r5, r3 ldrh r1, [r2, r0] ldrh r3, [r6, r3] add r1, r1, r3 strh r1, [r2, r0] ldrh r3, [r2, r0] ldr r1, _020286E0 ; =0x0000270F cmp r3, r1 bls _020286A2 strh r1, [r2, r0] _020286A2: mov r3, #0x7a lsl r3, r3, #0x2 add r2, r5, r3 add r6, r5, r4 ldrh r1, [r2, r0] ldrh r3, [r6, r3] add r1, r1, r3 strh r1, [r2, r0] ldrh r3, [r2, r0] ldr r1, _020286E0 ; =0x0000270F cmp r3, r1 bls _020286BC strh r1, [r2, r0] _020286BC: mov r0, #0x7 lsl r0, r0, #0x6 add r6, r5, r0 mov r0, #0x0 add r1, r6, r4 mov r2, #0x30 blx MIi_CpuClearFast mov r0, #0x1d ldr r1, _020286E8 ; =0x0000FFFF add r2, r5, r4 lsl r0, r0, #0x4 strh r1, [r2, r0] strh r1, [r6, r4] mov r1, #0x2 add r0, #0x1e strb r1, [r2, r0] pop {r4-r6, pc} .balign 4 _020286E0: .word 0x0000270F _020286E4: .word 0x000001E6 _020286E8: .word 0x0000FFFF thumb_func_start FUN_020286EC FUN_020286EC: ; 0x020286EC ldr r3, _020286F4 ; =FUN_02022610 mov r1, #0x1d bx r3 nop _020286F4: .word FUN_02022610 thumb_func_start FUN_020286F8 FUN_020286F8: ; 0x020286F8 mov r0, #0x42 lsl r0, r0, #0x2 bx lr .balign 4 thumb_func_start FUN_02028700 FUN_02028700: ; 0x02028700 push {r4-r5} add r5, r2, #0x0 mov r3, #0x2c add r2, r1, #0x0 mul r2, r3 mul r5, r3 add r4, r0, r2 add r3, r0, r5 mov r2, #0x5 _02028712: ldmia r4!, {r0-r1} stmia r3!, {r0-r1} sub r2, r2, #0x1 bne _02028712 ldr r0, [r4, #0x0] str r0, [r3, #0x0] pop {r4-r5} bx lr .balign 4 thumb_func_start FUN_02028724 FUN_02028724: ; 0x02028724 push {r4, lr} add r4, r0, #0x0 mov r2, #0x42 mov r0, #0x0 add r1, r4, #0x0 lsl r2, r2, #0x2 blx MIi_CpuClearFast ldr r0, _0202874C ; =0x0000FFFF mov r1, #0x0 add r2, r4, #0x0 _0202873A: strh r0, [r2, #0x0] strh r0, [r2, #0x10] add r1, r1, #0x1 add r2, #0x2c cmp r1, #0x6 blt _0202873A ldr r0, _02028750 ; =0x021C59D0 str r4, [r0, #0x0] pop {r4, pc} .balign 4 _0202874C: .word 0x0000FFFF _02028750: .word 0x021C59D0 thumb_func_start FUN_02028754 FUN_02028754: ; 0x02028754 push {r3-r7, lr} add r5, r0, #0x0 add r6, r1, #0x0 mov r7, #0x0 _0202875C: mov r4, #0x0 cmp r6, #0x0 bls _02028770 _02028762: ldr r0, [r5, #0x28] bl FUN_0201BA10 add r4, r4, #0x1 str r0, [r5, #0x28] cmp r4, r6 blo _02028762 _02028770: add r7, r7, #0x1 add r5, #0x2c cmp r7, #0x6 blo _0202875C pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0202877C FUN_0202877C: ; 0x0202877C mov r2, #0x2c mul r2, r1 add r0, r0, r2 ldr r0, [r0, #0x24] bx lr .balign 4 thumb_func_start FUN_02028788 FUN_02028788: ; 0x02028788 push {r3-r5, lr} add r5, r0, #0x0 mov r0, #0x2c add r4, r1, #0x0 mul r4, r0 add r0, r5, r4 str r2, [r0, #0x24] add r0, r2, #0x0 bl FUN_0201BA10 add r1, r5, r4 str r0, [r1, #0x28] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020287A4 FUN_020287A4: ; 0x020287A4 ldr r0, [r0, #0x54] bx lr thumb_func_start FUN_020287A8 FUN_020287A8: ; 0x020287A8 cmp r2, #0x0 bne _020287B4 mov r2, #0x2c mul r2, r1 add r0, r0, r2 bx lr _020287B4: mov r2, #0x2c mul r2, r1 add r0, r0, r2 add r0, #0x10 bx lr .balign 4 thumb_func_start FUN_020287C0 FUN_020287C0: ; 0x020287C0 push {r4, lr} add r4, r0, #0x0 cmp r2, #0x0 bne _020287D8 mov r2, #0x2c mul r2, r1 add r1, r4, r2 add r0, r3, #0x0 mov r2, #0x8 bl FUN_02021EF0 pop {r4, pc} _020287D8: mov r2, #0x2c mul r2, r1 add r1, r4, r2 add r0, r3, #0x0 add r1, #0x10 mov r2, #0x8 bl FUN_02021EF0 pop {r4, pc} .balign 4 thumb_func_start FUN_020287EC FUN_020287EC: ; 0x020287EC mov r3, #0x2c mul r3, r1 add r0, r0, r3 add r0, #0x20 strb r2, [r0, #0x0] bx lr thumb_func_start FUN_020287F8 FUN_020287F8: ; 0x020287F8 mov r2, #0x2c mul r2, r1 add r0, r0, r2 add r0, #0x20 ldrb r0, [r0, #0x0] bx lr thumb_func_start FUN_02028804 FUN_02028804: ; 0x02028804 mov r2, #0x2c mul r2, r1 add r0, r0, r2 add r0, #0x21 ldrb r0, [r0, #0x0] bx lr thumb_func_start FUN_02028810 FUN_02028810: ; 0x02028810 mov r3, #0x2c mul r3, r1 add r0, r0, r3 add r0, #0x21 strb r2, [r0, #0x0] bx lr thumb_func_start FUN_0202881C FUN_0202881C: ; 0x0202881C ldr r3, _02028824 ; =FUN_02022610 mov r1, #0x11 bx r3 nop _02028824: .word FUN_02022610 thumb_func_start FUN_02028828 FUN_02028828: ; 0x02028828 push {r3, lr} mov r2, #0x2c mul r2, r1 add r0, r0, r2 bl FUN_0202888C cmp r0, #0x0 bne _0202883C mov r0, #0x1 pop {r3, pc} _0202883C: mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_02028840 FUN_02028840: ; 0x02028840 mov r2, #0x2c add r3, r0, #0x0 mul r2, r1 add r1, r3, r2 ldr r3, _02028850 ; =FUN_020288AC add r0, #0x2c bx r3 nop _02028850: .word FUN_020288AC thumb_func_start FUN_02028854 FUN_02028854: ; 0x02028854 push {r3-r7, lr} add r6, r1, #0x0 ldrh r1, [r6, #0x0] add r5, r0, #0x0 ldr r0, _02028888 ; =0x0000FFFF cmp r1, r0 bne _02028866 mov r0, #0x0 pop {r3-r7, pc} _02028866: mov r4, #0x0 mov r7, #0x8 _0202886A: add r0, r6, #0x0 add r1, r5, #0x0 add r2, r7, #0x0 bl StringNotEqualN cmp r0, #0x0 bne _0202887C mov r0, #0x1 pop {r3-r7, pc} _0202887C: add r4, r4, #0x1 add r5, #0x2c cmp r4, #0x6 blt _0202886A mov r0, #0x0 pop {r3-r7, pc} .balign 4 _02028888: .word 0x0000FFFF thumb_func_start FUN_0202888C FUN_0202888C: ; 0x0202888C ldrh r2, [r0, #0x0] ldr r1, _020288A8 ; =0x0000FFFF cmp r2, r1 bne _02028898 mov r0, #0x1 bx lr _02028898: ldrh r0, [r0, #0x10] cmp r0, r1 bne _020288A2 mov r0, #0x1 bx lr _020288A2: mov r0, #0x0 bx lr nop _020288A8: .word 0x0000FFFF thumb_func_start FUN_020288AC FUN_020288AC: ; 0x020288AC push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r0, #0x10 add r1, #0x10 mov r2, #0x8 bl StringNotEqualN cmp r0, #0x0 beq _020288C4 mov r0, #0x0 pop {r3-r5, pc} _020288C4: add r0, r5, #0x0 add r1, r4, #0x0 mov r2, #0x8 bl StringNotEqualN cmp r0, #0x0 beq _020288D6 mov r0, #0x0 pop {r3-r5, pc} _020288D6: add r0, r5, #0x0 add r0, #0x20 ldrb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x20 ldrb r0, [r0, #0x0] cmp r1, r0 beq _020288EA mov r0, #0x0 pop {r3-r5, pc} _020288EA: add r0, r5, #0x0 add r0, #0x21 ldrb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x21 ldrb r0, [r0, #0x0] cmp r1, r0 beq _020288FE mov r0, #0x0 pop {r3-r5, pc} _020288FE: ldr r1, [r5, #0x24] ldr r0, [r4, #0x24] cmp r1, r0 bne _0202890A mov r0, #0x1 pop {r3-r5, pc} _0202890A: mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02028910 FUN_02028910: ; 0x02028910 mov r1, #0x0 strh r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02028918 FUN_02028918: ; 0x02028918 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _0202892C ; =0x0000C350 add r4, r1, #0x0 cmp r4, r0 bls _02028928 bl ErrorHandling _02028928: strh r4, [r5, #0x0] pop {r3-r5, pc} .balign 4 _0202892C: .word 0x0000C350 thumb_func_start FUN_02028930 FUN_02028930: ; 0x02028930 ldrh r0, [r0, #0x0] bx lr thumb_func_start FUN_02028934 FUN_02028934: ; 0x02028934 ldrh r3, [r0, #0x0] ldr r2, _02028950 ; =0x0000C350 cmp r3, r2 blo _02028940 mov r0, #0x0 bx lr _02028940: add r1, r3, r1 strh r1, [r0, #0x0] ldrh r1, [r0, #0x0] cmp r1, r2 bls _0202894C strh r2, [r0, #0x0] _0202894C: mov r0, #0x1 bx lr .balign 4 _02028950: .word 0x0000C350 thumb_func_start FUN_02028954 FUN_02028954: ; 0x02028954 ldrh r0, [r0, #0x0] add r1, r1, r0 ldr r0, _02028968 ; =0x0000C350 cmp r1, r0 bhi _02028962 mov r0, #0x1 bx lr _02028962: mov r0, #0x0 bx lr nop _02028968: .word 0x0000C350 thumb_func_start FUN_0202896C FUN_0202896C: ; 0x0202896C ldrh r2, [r0, #0x0] cmp r2, r1 bhs _02028976 mov r0, #0x0 bx lr _02028976: sub r1, r2, r1 strh r1, [r0, #0x0] mov r0, #0x1 bx lr .balign 4 thumb_func_start FUN_02028980 FUN_02028980: ; 0x02028980 mov r0, #0x46 lsl r0, r0, #0x4 bx lr .balign 4 thumb_func_start FUN_02028988 FUN_02028988: ; 0x02028988 ldr r3, _02028990 ; =FUN_020DF4A4 mov r1, #0x0 mov r2, #0x70 bx r3 .balign 4 _02028990: .word FUN_020DF4A4 thumb_func_start FUN_02028994 FUN_02028994: ; 0x02028994 ldr r3, _020289A0 ; =FUN_020DF4A4 mov r2, #0x46 mov r1, #0x0 lsl r2, r2, #0x4 bx r3 nop _020289A0: .word FUN_020DF4A4 thumb_func_start FUN_020289A4 FUN_020289A4: ; 0x020289A4 ldr r3, _020289AC ; =FUN_02022610 mov r1, #0x12 bx r3 nop _020289AC: .word FUN_02022610 thumb_func_start FUN_020289B0 FUN_020289B0: ; 0x020289B0 push {r3-r7, lr} sub sp, #0x10 add r7, r0, #0x0 cmp r1, #0x1 beq _020289C0 add sp, #0x10 mov r0, #0x0 pop {r3-r7, pc} _020289C0: add r0, sp, #0x0 bl FUN_020126B4 ldr r0, [r7, #0x0] lsl r1, r0, #0x15 lsr r3, r1, #0x1c beq _02028A18 lsl r1, r0, #0x19 lsr r2, r1, #0x19 ldr r1, [sp, #0x0] cmp r2, r1 bne _020289F2 ldr r1, [sp, #0x4] cmp r3, r1 bne _020289F2 lsl r1, r0, #0xd lsr r2, r1, #0x1b ldr r1, [sp, #0x8] cmp r2, r1 bne _020289F2 lsl r0, r0, #0x12 lsr r1, r0, #0x1d ldr r0, [sp, #0xc] cmp r1, r0 beq _02028A18 _020289F2: mov r0, #0x3f lsl r0, r0, #0x4 mov r5, #0x9 add r6, r7, r0 _020289FA: add r4, r6, #0x0 sub r4, #0x70 add r3, r6, #0x0 mov r2, #0xe _02028A02: ldmia r4!, {r0-r1} stmia r3!, {r0-r1} sub r2, r2, #0x1 bne _02028A02 sub r5, r5, #0x1 sub r6, #0x70 cmp r5, #0x1 bge _020289FA add r0, r7, #0x0 bl FUN_02028988 _02028A18: add r0, r7, #0x0 add sp, #0x10 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02028A20 FUN_02028A20: ; 0x02028A20 push {r4, lr} sub sp, #0x20 add r4, r0, #0x0 cmp r1, #0x1 beq _02028A30 add sp, #0x20 mov r0, #0x0 pop {r4, pc} _02028A30: add r0, sp, #0x0 bl FUN_020126B4 ldr r0, [r4, #0x0] lsl r0, r0, #0x19 lsr r0, r0, #0x19 str r0, [sp, #0x10] ldr r0, [r4, #0x0] lsl r0, r0, #0x15 lsr r0, r0, #0x1c str r0, [sp, #0x14] ldr r0, [r4, #0x0] lsl r0, r0, #0xd lsr r0, r0, #0x1b str r0, [sp, #0x18] ldr r0, [r4, #0x0] lsl r0, r0, #0x12 lsr r0, r0, #0x1d str r0, [sp, #0x1c] add r0, sp, #0x0 bl FUN_02012710 add r4, r0, #0x0 add r0, sp, #0x10 bl FUN_02012710 ldr r2, [sp, #0x4] sub r0, r4, r0 cmp r2, #0xc bne _02028A7E ldr r1, [sp, #0x8] cmp r1, #0x1f bne _02028A7E ldr r1, [sp, #0x14] cmp r1, #0x1 bne _02028A7E ldr r1, [sp, #0x18] cmp r1, #0x1 beq _02028A94 _02028A7E: cmp r2, #0x1 bne _02028AAC ldr r1, [sp, #0x8] cmp r1, #0x1 bne _02028AAC ldr r1, [sp, #0x14] cmp r1, #0xc bne _02028AAC ldr r1, [sp, #0x18] cmp r1, #0x1f bne _02028AAC _02028A94: ldr r1, [sp, #0x0] ldr r0, [sp, #0x10] sub r1, r1, r0 cmp r1, #0x2 bge _02028AA6 mov r0, #0x1 mvn r0, r0 cmp r1, r0 bgt _02028ACC _02028AA6: add sp, #0x20 mov r0, #0x1 pop {r4, pc} _02028AAC: mov r1, #0x1 mvn r1, r1 cmp r0, r1 ble _02028AB8 cmp r0, #0x2 blt _02028ABE _02028AB8: add sp, #0x20 mov r0, #0x1 pop {r4, pc} _02028ABE: ldr r1, [sp, #0x0] ldr r0, [sp, #0x10] cmp r1, r0 beq _02028ACC add sp, #0x20 mov r0, #0x1 pop {r4, pc} _02028ACC: mov r0, #0x0 add sp, #0x20 pop {r4, pc} .balign 4 thumb_func_start FUN_02028AD4 FUN_02028AD4: ; 0x02028AD4 push {r4, lr} add r4, r1, #0x0 cmp r0, #0x0 beq _02028B12 cmp r2, #0x4 bhi _02028B12 add r2, r2, r2 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _02028AEC: ; jump table (using 16-bit offset) .short _02028AF6 - _02028AEC - 2; case 0 .short _02028AFC - _02028AEC - 2; case 1 .short _02028B02 - _02028AEC - 2; case 2 .short _02028B08 - _02028AEC - 2; case 3 .short _02028B0E - _02028AEC - 2; case 4 _02028AF6: bl FUN_02028B1C b _02028B12 _02028AFC: bl FUN_02028B5C b _02028B12 _02028B02: bl FUN_02028BF0 b _02028B12 _02028B08: bl FUN_02028BFC b _02028B12 _02028B0E: bl FUN_02028C08 _02028B12: add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} .balign 4 thumb_func_start FUN_02028B1C FUN_02028B1C: ; 0x02028B1C push {r4-r5} ldr r3, [r0, #0x0] lsl r2, r3, #0x19 lsr r5, r2, #0x19 ldr r2, [r1, #0x0] lsl r4, r2, #0x19 lsr r4, r4, #0x19 cmp r5, r4 bne _02028B52 lsl r4, r3, #0x15 lsr r5, r4, #0x1c lsl r4, r2, #0x15 lsr r4, r4, #0x1c cmp r5, r4 bne _02028B52 lsl r4, r3, #0xd lsr r5, r4, #0x1b lsl r4, r2, #0xd lsr r4, r4, #0x1b cmp r5, r4 bne _02028B52 lsl r3, r3, #0x12 lsl r2, r2, #0x12 lsr r3, r3, #0x1d lsr r2, r2, #0x1d cmp r3, r2 beq _02028B56 _02028B52: ldr r1, [r1, #0x0] str r1, [r0, #0x0] _02028B56: pop {r4-r5} bx lr .balign 4 thumb_func_start FUN_02028B5C FUN_02028B5C: ; 0x02028B5C push {r3, lr} ldrb r2, [r1, #0x0] cmp r2, #0x23 bhi _02028BEE add r2, r2, r2 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _02028B70: ; jump table (using 16-bit offset) .short _02028BEE - _02028B70 - 2; case 0 .short _02028BB8 - _02028B70 - 2; case 1 .short _02028BB8 - _02028B70 - 2; case 2 .short _02028BB8 - _02028B70 - 2; case 3 .short _02028BB8 - _02028B70 - 2; case 4 .short _02028BB8 - _02028B70 - 2; case 5 .short _02028BB8 - _02028B70 - 2; case 6 .short _02028BB8 - _02028B70 - 2; case 7 .short _02028BB8 - _02028B70 - 2; case 8 .short _02028BC0 - _02028B70 - 2; case 9 .short _02028BC0 - _02028B70 - 2; case 10 .short _02028BC8 - _02028B70 - 2; case 11 .short _02028BD0 - _02028B70 - 2; case 12 .short _02028BD8 - _02028B70 - 2; case 13 .short _02028BD8 - _02028B70 - 2; case 14 .short _02028BD8 - _02028B70 - 2; case 15 .short _02028BB8 - _02028B70 - 2; case 16 .short _02028BB8 - _02028B70 - 2; case 17 .short _02028BE0 - _02028B70 - 2; case 18 .short _02028BE8 - _02028B70 - 2; case 19 .short _02028BE8 - _02028B70 - 2; case 20 .short _02028BE8 - _02028B70 - 2; case 21 .short _02028BE8 - _02028B70 - 2; case 22 .short _02028BE8 - _02028B70 - 2; case 23 .short _02028BE8 - _02028B70 - 2; case 24 .short _02028BE8 - _02028B70 - 2; case 25 .short _02028BE8 - _02028B70 - 2; case 26 .short _02028BE8 - _02028B70 - 2; case 27 .short _02028BE8 - _02028B70 - 2; case 28 .short _02028BE8 - _02028B70 - 2; case 29 .short _02028BE8 - _02028B70 - 2; case 30 .short _02028BEE - _02028B70 - 2; case 31 .short _02028BE8 - _02028B70 - 2; case 32 .short _02028BE8 - _02028B70 - 2; case 33 .short _02028BB8 - _02028B70 - 2; case 34 .short _02028BB8 - _02028B70 - 2; case 35 _02028BB8: add r0, r0, #0x4 bl FUN_02028CE8 pop {r3, pc} _02028BC0: add r0, r0, #0x4 bl FUN_02028D98 pop {r3, pc} _02028BC8: add r0, r0, #0x4 bl FUN_02028D44 pop {r3, pc} _02028BD0: add r0, r0, #0x4 bl FUN_02028D24 pop {r3, pc} _02028BD8: add r0, r0, #0x4 bl FUN_02028DFC pop {r3, pc} _02028BE0: add r0, r0, #0x4 bl FUN_02028E44 pop {r3, pc} _02028BE8: add r0, r0, #0x4 bl FUN_02028E8C _02028BEE: pop {r3, pc} thumb_func_start FUN_02028BF0 FUN_02028BF0: ; 0x02028BF0 ldrh r2, [r1, #0x0] strh r2, [r0, #0x14] ldrh r1, [r1, #0x2] strh r1, [r0, #0x16] bx lr .balign 4 thumb_func_start FUN_02028BFC FUN_02028BFC: ; 0x02028BFC ldrh r2, [r1, #0x0] strh r2, [r0, #0x18] ldrh r1, [r1, #0x2] strh r1, [r0, #0x1a] bx lr .balign 4 thumb_func_start FUN_02028C08 FUN_02028C08: ; 0x02028C08 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 bl FUN_02028CA8 ldrb r1, [r4, #0x0] cmp r1, #0x10 bhi _02028C6E add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02028C24: ; jump table (using 16-bit offset) .short _02028C6E - _02028C24 - 2; case 0 .short _02028C46 - _02028C24 - 2; case 1 .short _02028C46 - _02028C24 - 2; case 2 .short _02028C46 - _02028C24 - 2; case 3 .short _02028C46 - _02028C24 - 2; case 4 .short _02028C46 - _02028C24 - 2; case 5 .short _02028C4E - _02028C24 - 2; case 6 .short _02028C56 - _02028C24 - 2; case 7 .short _02028C5E - _02028C24 - 2; case 8 .short _02028C56 - _02028C24 - 2; case 9 .short _02028C5E - _02028C24 - 2; case 10 .short _02028C46 - _02028C24 - 2; case 11 .short _02028C5E - _02028C24 - 2; case 12 .short _02028C68 - _02028C24 - 2; case 13 .short _02028C5E - _02028C24 - 2; case 14 .short _02028C56 - _02028C24 - 2; case 15 .short _02028C5E - _02028C24 - 2; case 16 _02028C46: add r1, r4, #0x0 bl FUN_02028ED4 pop {r3-r5, pc} _02028C4E: add r1, r4, #0x0 bl FUN_02028F10 pop {r3-r5, pc} _02028C56: add r1, r4, #0x0 bl FUN_02028F2C pop {r3-r5, pc} _02028C5E: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02028F60 pop {r3-r5, pc} _02028C68: add r1, r4, #0x0 bl FUN_02028F94 _02028C6E: pop {r3-r5, pc} thumb_func_start FUN_02028C70 FUN_02028C70: ; 0x02028C70 push {r3-r4} mov r3, #0x0 add r4, r0, #0x0 mov r1, #0x3f _02028C78: ldr r2, [r4, #0x0] tst r2, r1 bne _02028C86 lsl r1, r3, #0x2 add r0, r0, r1 pop {r3-r4} bx lr _02028C86: add r3, r3, #0x1 add r4, r4, #0x4 cmp r3, #0x4 blo _02028C78 mov r3, #0x0 add r2, r0, #0x0 _02028C92: ldr r1, [r2, #0x4] add r3, r3, #0x1 stmia r2!, {r1} cmp r3, #0x3 blo _02028C92 lsl r2, r3, #0x2 mov r1, #0x0 str r1, [r0, r2] add r0, r0, r2 pop {r3-r4} bx lr thumb_func_start FUN_02028CA8 FUN_02028CA8: ; 0x02028CA8 push {r4, lr} add r4, r0, #0x0 mov r1, #0x0 add r2, r4, #0x0 _02028CB0: ldrb r0, [r2, #0x1c] cmp r0, #0x0 bne _02028CC0 mov r0, #0x2a add r4, #0x1c mul r0, r1 add r0, r4, r0 pop {r4, pc} _02028CC0: add r1, r1, #0x1 add r2, #0x2a cmp r1, #0x2 blo _02028CB0 add r0, r4, #0x0 add r1, r4, #0x0 add r0, #0x1c add r1, #0x46 mov r2, #0x2a blx FUN_020DF438 add r4, #0x46 add r0, r4, #0x0 mov r1, #0x0 mov r2, #0x2a blx FUN_020DF4A4 add r0, r4, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02028CE8 FUN_02028CE8: ; 0x02028CE8 push {r4, lr} add r4, r1, #0x0 mov r2, #0x0 add r3, r0, #0x0 _02028CF0: ldr r1, [r3, #0x0] cmp r1, #0x0 beq _02028CFE add r2, r2, #0x1 add r3, r3, #0x4 cmp r2, #0x4 blo _02028CF0 _02028CFE: cmp r2, #0x0 beq _02028D14 lsl r2, r2, #0x2 add r2, r0, r2 sub r2, r2, #0x4 ldr r3, [r2, #0x0] mov r2, #0x3f ldrb r1, [r4, #0x0] and r2, r3 cmp r1, r2 beq _02028D20 _02028D14: bl FUN_02028C70 ldrb r2, [r4, #0x0] mov r1, #0x3f and r1, r2 str r1, [r0, #0x0] _02028D20: pop {r4, pc} .balign 4 thumb_func_start FUN_02028D24 FUN_02028D24: ; 0x02028D24 push {r4, lr} add r4, r1, #0x0 bl FUN_02028C70 ldrb r2, [r4, #0x0] mov r1, #0x3f and r1, r2 ldrh r2, [r4, #0x2] lsl r3, r2, #0x10 ldrh r2, [r4, #0x4] lsl r2, r2, #0x16 lsr r2, r2, #0x10 orr r2, r3 orr r1, r2 str r1, [r0, #0x0] pop {r4, pc} thumb_func_start FUN_02028D44 FUN_02028D44: ; 0x02028D44 push {r3-r5, lr} add r4, r1, #0x0 mov r2, #0x0 mov r3, #0x3f _02028D4C: lsl r1, r2, #0x2 ldr r5, [r0, r1] and r5, r3 cmp r5, #0xb bne _02028D72 mov r3, #0x0 str r3, [r0, r1] cmp r2, #0x3 bhs _02028D7C _02028D5E: lsl r3, r2, #0x2 add r1, r0, r3 ldr r1, [r1, #0x4] str r1, [r0, r3] add r1, r2, #0x1 lsl r1, r1, #0x10 lsr r2, r1, #0x10 cmp r2, #0x3 blo _02028D5E b _02028D7C _02028D72: add r1, r2, #0x1 lsl r1, r1, #0x10 lsr r2, r1, #0x10 cmp r2, #0x4 blo _02028D4C _02028D7C: bl FUN_02028C70 ldrb r2, [r4, #0x0] mov r1, #0x3f and r1, r2 ldrh r2, [r4, #0x2] lsl r3, r2, #0x10 ldrh r2, [r4, #0x4] lsl r2, r2, #0x16 lsr r2, r2, #0x10 orr r2, r3 orr r1, r2 str r1, [r0, #0x0] pop {r3-r5, pc} thumb_func_start FUN_02028D98 FUN_02028D98: ; 0x02028D98 push {r4-r6, lr} add r4, r1, #0x0 mov r6, #0x0 mov r1, #0x3f _02028DA0: lsl r5, r6, #0x2 ldr r3, [r0, r5] add r2, r3, #0x0 and r2, r1 cmp r2, #0x9 bne _02028DD4 lsr r3, r3, #0x10 lsl r3, r3, #0x10 ldrh r2, [r4, #0x2] lsr r3, r3, #0x10 cmp r2, r3 bne _02028DD4 mov r1, #0x0 str r1, [r0, r5] cmp r6, #0x3 bhs _02028DDE _02028DC0: lsl r2, r6, #0x2 add r1, r0, r2 ldr r1, [r1, #0x4] str r1, [r0, r2] add r1, r6, #0x1 lsl r1, r1, #0x10 lsr r6, r1, #0x10 cmp r6, #0x3 blo _02028DC0 b _02028DDE _02028DD4: add r2, r6, #0x1 lsl r2, r2, #0x10 lsr r6, r2, #0x10 cmp r6, #0x4 blo _02028DA0 _02028DDE: bl FUN_02028C70 ldrb r2, [r4, #0x0] mov r1, #0x3f and r1, r2 ldrh r2, [r4, #0x2] lsl r3, r2, #0x10 ldrh r2, [r4, #0x4] lsl r2, r2, #0x16 lsr r2, r2, #0x10 orr r2, r3 orr r1, r2 str r1, [r0, #0x0] pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02028DFC FUN_02028DFC: ; 0x02028DFC push {r4, lr} add r4, r1, #0x0 mov r2, #0x0 add r3, r0, #0x0 _02028E04: ldr r1, [r3, #0x0] cmp r1, #0x0 beq _02028E12 add r2, r2, #0x1 add r3, r3, #0x4 cmp r2, #0x4 blo _02028E04 _02028E12: cmp r2, #0x0 beq _02028E30 lsl r1, r2, #0x2 add r1, r0, r1 sub r1, r1, #0x4 ldr r3, [r1, #0x0] mov r1, #0x3f ldrb r2, [r4, #0x0] and r1, r3 cmp r2, r1 bne _02028E30 ldrh r2, [r4, #0x2] lsr r1, r3, #0x10 cmp r2, r1 beq _02028E42 _02028E30: bl FUN_02028C70 ldrh r1, [r4, #0x2] ldrb r2, [r4, #0x0] lsl r3, r1, #0x10 mov r1, #0x3f and r1, r2 orr r1, r3 str r1, [r0, #0x0] _02028E42: pop {r4, pc} thumb_func_start FUN_02028E44 FUN_02028E44: ; 0x02028E44 push {r4, lr} add r4, r1, #0x0 mov r2, #0x0 add r3, r0, #0x0 _02028E4C: ldr r1, [r3, #0x0] cmp r1, #0x0 beq _02028E5A add r2, r2, #0x1 add r3, r3, #0x4 cmp r2, #0x4 blo _02028E4C _02028E5A: cmp r2, #0x0 beq _02028E78 lsl r1, r2, #0x2 add r1, r0, r1 sub r1, r1, #0x4 ldr r3, [r1, #0x0] mov r1, #0x3f ldrb r2, [r4, #0x0] and r1, r3 cmp r2, r1 bne _02028E78 ldrh r2, [r4, #0x6] lsr r1, r3, #0x10 cmp r2, r1 beq _02028E8A _02028E78: bl FUN_02028C70 ldrh r1, [r4, #0x6] ldrb r2, [r4, #0x0] lsl r3, r1, #0x10 mov r1, #0x3f and r1, r2 orr r1, r3 str r1, [r0, #0x0] _02028E8A: pop {r4, pc} thumb_func_start FUN_02028E8C FUN_02028E8C: ; 0x02028E8C push {r4, lr} add r4, r1, #0x0 mov r2, #0x0 add r3, r0, #0x0 _02028E94: ldr r1, [r3, #0x0] cmp r1, #0x0 beq _02028EA2 add r2, r2, #0x1 add r3, r3, #0x4 cmp r2, #0x4 blo _02028E94 _02028EA2: cmp r2, #0x0 beq _02028EC0 lsl r1, r2, #0x2 add r1, r0, r1 sub r1, r1, #0x4 ldr r3, [r1, #0x0] mov r1, #0x3f ldrb r2, [r4, #0x0] and r1, r3 cmp r2, r1 bne _02028EC0 ldrh r2, [r4, #0x2] lsr r1, r3, #0x10 cmp r2, r1 beq _02028ED2 _02028EC0: bl FUN_02028C70 ldrh r1, [r4, #0x2] ldrb r2, [r4, #0x0] lsl r3, r1, #0x10 mov r1, #0x3f and r1, r2 orr r1, r3 str r1, [r0, #0x0] _02028ED2: pop {r4, pc} thumb_func_start FUN_02028ED4 FUN_02028ED4: ; 0x02028ED4 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 ldrb r0, [r4, #0x0] strb r0, [r5, #0x0] ldrb r3, [r4, #0x1] lsl r1, r3, #0x1c lsr r2, r1, #0x1a lsl r1, r3, #0x1b lsr r1, r1, #0x1f lsl r0, r3, #0x1a lsl r1, r1, #0x1 orr r1, r2 lsr r0, r0, #0x1f orr r0, r1 strb r0, [r5, #0x1] add r0, r4, #0x2 add r1, r5, #0x2 mov r2, #0x8 bl FUN_020292D4 add r4, #0x12 add r5, #0x12 add r0, r4, #0x0 add r1, r5, #0x0 mov r2, #0x8 bl FUN_020292D4 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02028F10 FUN_02028F10: ; 0x02028F10 add r2, r0, #0x0 ldrb r0, [r1, #0x0] ldr r3, _02028F28 ; =FUN_020292D4 strb r0, [r2, #0x0] ldrb r0, [r1, #0x1] lsl r0, r0, #0x1b lsr r0, r0, #0x1f strb r0, [r2, #0x1] add r0, r1, #0x2 add r1, r2, #0x2 mov r2, #0x8 bx r3 .balign 4 _02028F28: .word FUN_020292D4 thumb_func_start FUN_02028F2C FUN_02028F2C: ; 0x02028F2C push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 ldrb r0, [r4, #0x0] mov r2, #0x8 strb r0, [r5, #0x0] ldrb r0, [r4, #0x1] lsl r1, r0, #0x1b lsr r1, r1, #0x1f lsl r0, r0, #0x18 lsl r1, r1, #0x2 lsr r0, r0, #0x1e orr r0, r1 strb r0, [r5, #0x1] add r0, r4, #0x2 add r1, r5, #0x2 bl FUN_020292D4 add r4, #0x22 add r5, #0x12 add r0, r4, #0x0 add r1, r5, #0x0 mov r2, #0xc bl FUN_020292D4 pop {r3-r5, pc} thumb_func_start FUN_02028F60 FUN_02028F60: ; 0x02028F60 push {r4, lr} add r4, r1, #0x0 mov r3, #0x0 add r2, r0, #0x0 _02028F68: ldrb r1, [r2, #0x1c] cmp r1, #0x0 beq _02028F76 add r3, r3, #0x1 add r2, #0x2a cmp r3, #0x2 blo _02028F68 _02028F76: cmp r3, #0x0 beq _02028F8A mov r1, #0x2a mul r1, r3 add r1, r0, r1 sub r1, #0xe ldrb r2, [r4, #0x0] ldrb r1, [r1, #0x0] cmp r2, r1 beq _02028F92 _02028F8A: bl FUN_02028CA8 ldrb r1, [r4, #0x0] strb r1, [r0, #0x0] _02028F92: pop {r4, pc} thumb_func_start FUN_02028F94 FUN_02028F94: ; 0x02028F94 ldrb r2, [r1, #0x0] strb r2, [r0, #0x0] ldrb r1, [r1, #0x1] lsl r1, r1, #0x1c lsr r1, r1, #0x1c strb r1, [r0, #0x1] bx lr .balign 4 thumb_func_start FUN_02028FA4 FUN_02028FA4: ; 0x02028FA4 push {r3-r5, lr} sub sp, #0x10 add r5, r0, #0x0 add r0, r1, #0x0 mov r1, #0x4 bl FUN_02016998 add r4, r0, #0x0 add r0, sp, #0x0 bl FUN_020126B4 ldr r2, [r4, #0x0] mov r0, #0x7f bic r2, r0 ldr r1, [sp, #0x0] mov r0, #0x7f and r0, r1 add r1, r2, #0x0 orr r1, r0 str r1, [r4, #0x0] add r2, r1, #0x0 ldr r1, [sp, #0x4] ldr r0, _02029008 ; =0xFFFFF87F lsl r1, r1, #0x1c and r2, r0 lsr r1, r1, #0x15 orr r2, r1 ldr r1, _0202900C ; =0xFFF83FFF str r2, [r4, #0x0] and r2, r1 ldr r1, [sp, #0x8] lsr r0, r0, #0xd lsl r1, r1, #0x1b lsr r1, r1, #0xd orr r2, r1 ldr r1, _02029010 ; =0xFFFFC7FF str r2, [r4, #0x0] and r2, r1 ldr r1, [sp, #0xc] lsl r1, r1, #0x1d lsr r1, r1, #0x12 orr r1, r2 and r1, r0 lsl r0, r5, #0x13 orr r0, r1 str r0, [r4, #0x0] add r0, r4, #0x0 add sp, #0x10 pop {r3-r5, pc} nop _02029008: .word 0xFFFFF87F _0202900C: .word 0xFFF83FFF _02029010: .word 0xFFFFC7FF thumb_func_start FUN_02029014 FUN_02029014: ; 0x02029014 push {r3, lr} mov r1, #0x8 bl FUN_02016998 mov r1, #0x0 strb r1, [r0, #0x0] strb r1, [r0, #0x1] strb r1, [r0, #0x2] strb r1, [r0, #0x3] strb r1, [r0, #0x4] strb r1, [r0, #0x5] strb r1, [r0, #0x6] strb r1, [r0, #0x7] pop {r3, pc} thumb_func_start FUN_02029030 FUN_02029030: ; 0x02029030 push {r3, lr} bl FUN_02029014 mov r1, #0x1 strb r1, [r0, #0x0] pop {r3, pc} thumb_func_start FUN_0202903C FUN_0202903C: ; 0x0202903C push {r3, lr} bl FUN_02029014 mov r1, #0x2 strb r1, [r0, #0x0] pop {r3, pc} thumb_func_start FUN_02029048 FUN_02029048: ; 0x02029048 push {r3, lr} bl FUN_02029014 mov r1, #0x3 strb r1, [r0, #0x0] pop {r3, pc} thumb_func_start FUN_02029054 FUN_02029054: ; 0x02029054 push {r3, lr} bl FUN_02029014 mov r1, #0x4 strb r1, [r0, #0x0] pop {r3, pc} thumb_func_start FUN_02029060 FUN_02029060: ; 0x02029060 push {r3, lr} bl FUN_02029014 mov r1, #0x5 strb r1, [r0, #0x0] pop {r3, pc} thumb_func_start FUN_0202906C FUN_0202906C: ; 0x0202906C push {r3, lr} bl FUN_02029014 mov r1, #0x6 strb r1, [r0, #0x0] pop {r3, pc} thumb_func_start FUN_02029078 FUN_02029078: ; 0x02029078 push {r3, lr} bl FUN_02029014 mov r1, #0x7 strb r1, [r0, #0x0] pop {r3, pc} thumb_func_start FUN_02029084 FUN_02029084: ; 0x02029084 push {r3, lr} bl FUN_02029014 mov r1, #0x8 strb r1, [r0, #0x0] pop {r3, pc} thumb_func_start FUN_02029090 FUN_02029090: ; 0x02029090 push {r4, lr} add r4, r0, #0x0 add r0, r1, #0x0 bl FUN_02029014 mov r1, #0x9 strb r1, [r0, #0x0] strh r4, [r0, #0x2] pop {r4, pc} .balign 4 thumb_func_start FUN_020290A4 FUN_020290A4: ; 0x020290A4 push {r3-r5, lr} add r5, r0, #0x0 add r0, r2, #0x0 add r4, r1, #0x0 bl FUN_02029014 mov r1, #0xa strb r1, [r0, #0x0] strh r5, [r0, #0x2] strh r4, [r0, #0x4] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020290BC FUN_020290BC: ; 0x020290BC push {r4, lr} add r4, r0, #0x0 add r0, r1, #0x0 bl FUN_02029014 mov r1, #0xb strb r1, [r0, #0x0] strh r4, [r0, #0x4] pop {r4, pc} .balign 4 thumb_func_start FUN_020290D0 FUN_020290D0: ; 0x020290D0 push {r4, lr} add r4, r0, #0x0 add r0, r1, #0x0 bl FUN_02029014 mov r1, #0xc strb r1, [r0, #0x0] strh r4, [r0, #0x4] pop {r4, pc} .balign 4 thumb_func_start FUN_020290E4 FUN_020290E4: ; 0x020290E4 push {r4, lr} add r4, r0, #0x0 add r0, r1, #0x0 bl FUN_02029014 mov r1, #0xd strb r1, [r0, #0x0] strh r4, [r0, #0x2] pop {r4, pc} .balign 4 thumb_func_start FUN_020290F8 FUN_020290F8: ; 0x020290F8 push {r4, lr} add r4, r0, #0x0 add r0, r1, #0x0 bl FUN_02029014 mov r1, #0xe strb r1, [r0, #0x0] strh r4, [r0, #0x2] pop {r4, pc} .balign 4 thumb_func_start FUN_0202910C FUN_0202910C: ; 0x0202910C push {r4, lr} add r4, r0, #0x0 add r0, r1, #0x0 bl FUN_02029014 mov r1, #0xf strb r1, [r0, #0x0] strh r4, [r0, #0x2] pop {r4, pc} .balign 4 thumb_func_start FUN_02029120 FUN_02029120: ; 0x02029120 push {r3, lr} bl FUN_02029014 mov r1, #0x10 strb r1, [r0, #0x0] pop {r3, pc} thumb_func_start FUN_0202912C FUN_0202912C: ; 0x0202912C push {r3, lr} bl FUN_02029014 mov r1, #0x11 strb r1, [r0, #0x0] pop {r3, pc} thumb_func_start FUN_02029138 FUN_02029138: ; 0x02029138 push {r4, lr} add r4, r0, #0x0 add r0, r1, #0x0 bl FUN_02029014 mov r1, #0x12 strb r1, [r0, #0x0] strh r4, [r0, #0x6] pop {r4, pc} .balign 4 thumb_func_start FUN_0202914C FUN_0202914C: ; 0x0202914C push {r3-r5, lr} add r5, r0, #0x0 add r0, r2, #0x0 add r4, r1, #0x0 bl FUN_02029014 add r5, #0x13 strb r5, [r0, #0x0] strh r4, [r0, #0x2] pop {r3-r5, pc} thumb_func_start FUN_02029160 FUN_02029160: ; 0x02029160 push {r3, lr} bl FUN_02029014 mov r1, #0x22 strb r1, [r0, #0x0] pop {r3, pc} thumb_func_start FUN_0202916C FUN_0202916C: ; 0x0202916C push {r3, lr} bl FUN_02029014 mov r1, #0x23 strb r1, [r0, #0x0] pop {r3, pc} thumb_func_start FUN_02029178 FUN_02029178: ; 0x02029178 push {r3, lr} mov r1, #0x4 bl FUN_02016998 mov r1, #0x0 strb r1, [r0, #0x0] strb r1, [r0, #0x1] strb r1, [r0, #0x2] strb r1, [r0, #0x3] pop {r3, pc} thumb_func_start FUN_0202918C FUN_0202918C: ; 0x0202918C push {r3-r7, lr} str r0, [sp, #0x0] ldr r0, [sp, #0x18] add r5, r1, #0x0 add r6, r2, #0x0 add r7, r3, #0x0 bl FUN_02029178 add r4, r0, #0x0 mov r0, #0x1 strb r0, [r4, #0x0] strh r5, [r4, #0x2] ldrb r1, [r4, #0x1] mov r0, #0xc0 bic r1, r0 lsl r0, r6, #0x1e lsr r0, r0, #0x18 orr r0, r1 strb r0, [r4, #0x1] ldrb r1, [r4, #0x1] mov r0, #0x3c bic r1, r0 lsl r0, r7, #0x1c lsr r0, r0, #0x1a orr r0, r1 strb r0, [r4, #0x1] ldr r0, [sp, #0x0] bl FUN_02029EC0 mov r1, #0xa blx _s32_div_f lsl r0, r0, #0x18 lsr r0, r0, #0x18 beq _020291DA cmp r0, #0x2 beq _020291DA cmp r0, #0x4 bne _020291E4 _020291DA: ldrb r1, [r4, #0x1] mov r0, #0x3 bic r1, r0 strb r1, [r4, #0x1] b _02029206 _020291E4: cmp r0, #0x1 beq _020291EC cmp r0, #0x3 bne _020291FA _020291EC: ldrb r1, [r4, #0x1] mov r0, #0x3 bic r1, r0 mov r0, #0x1 orr r0, r1 strb r0, [r4, #0x1] b _02029206 _020291FA: ldrb r1, [r4, #0x1] mov r0, #0x3 bic r1, r0 mov r0, #0x2 orr r0, r1 strb r0, [r4, #0x1] _02029206: add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0202920C FUN_0202920C: ; 0x0202920C push {r3-r7, lr} str r0, [sp, #0x0] ldr r0, [sp, #0x18] add r5, r1, #0x0 add r6, r2, #0x0 add r7, r3, #0x0 bl FUN_02029178 add r4, r0, #0x0 mov r0, #0x2 strb r0, [r4, #0x0] strh r5, [r4, #0x2] ldrb r1, [r4, #0x1] mov r0, #0xc0 bic r1, r0 lsl r0, r6, #0x1e lsr r0, r0, #0x18 orr r0, r1 strb r0, [r4, #0x1] ldrb r1, [r4, #0x1] mov r0, #0x3c bic r1, r0 lsl r0, r7, #0x1c lsr r0, r0, #0x1a orr r0, r1 strb r0, [r4, #0x1] ldr r0, [sp, #0x0] bl FUN_02029EC0 mov r1, #0xa blx _s32_div_f lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r0, #0x1 beq _0202925C cmp r0, #0x3 beq _0202925C cmp r0, #0x5 bne _02029266 _0202925C: ldrb r1, [r4, #0x1] mov r0, #0x3 bic r1, r0 strb r1, [r4, #0x1] b _02029288 _02029266: cmp r0, #0x2 beq _0202926E cmp r0, #0x4 bne _0202927C _0202926E: ldrb r1, [r4, #0x1] mov r0, #0x3 bic r1, r0 mov r0, #0x1 orr r0, r1 strb r0, [r4, #0x1] b _02029288 _0202927C: ldrb r1, [r4, #0x1] mov r0, #0x3 bic r1, r0 mov r0, #0x2 orr r0, r1 strb r0, [r4, #0x1] _02029288: add r0, r4, #0x0 pop {r3-r7, pc} thumb_func_start FUN_0202928C FUN_0202928C: ; 0x0202928C push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r0, r2, #0x0 mov r1, #0x4 bl FUN_02016998 ldrh r2, [r0, #0x0] mov r1, #0x1 bic r2, r1 mov r1, #0x1 orr r1, r2 strh r1, [r0, #0x0] strh r5, [r0, #0x2] ldrh r2, [r0, #0x0] ldr r1, _020292B8 ; =0xFFFF0001 and r2, r1 lsl r1, r4, #0x11 lsr r1, r1, #0x10 orr r1, r2 strh r1, [r0, #0x0] pop {r3-r5, pc} .balign 4 _020292B8: .word 0xFFFF0001 thumb_func_start FUN_020292BC FUN_020292BC: ; 0x020292BC push {r4, lr} mov r1, #0x3a bl FUN_02016998 mov r1, #0x0 mov r2, #0x3a add r4, r0, #0x0 blx FUN_020DF4A4 add r0, r4, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_020292D4 FUN_020292D4: ; 0x020292D4 push {r4-r5} mov r4, #0x0 cmp r2, #0x0 bls _020292EA ldr r3, _02029308 ; =0x0000FFFF add r5, r1, #0x0 _020292E0: add r4, r4, #0x1 strh r3, [r5, #0x0] add r5, r5, #0x2 cmp r4, r2 blo _020292E0 _020292EA: mov r5, #0x0 cmp r2, #0x0 bls _02029304 ldr r3, _02029308 ; =0x0000FFFF _020292F2: ldrh r4, [r0, #0x0] cmp r4, r3 beq _02029304 add r5, r5, #0x1 strh r4, [r1, #0x0] add r0, r0, #0x2 add r1, r1, #0x2 cmp r5, r2 blo _020292F2 _02029304: pop {r4-r5} bx lr .balign 4 _02029308: .word 0x0000FFFF thumb_func_start FUN_0202930C FUN_0202930C: ; 0x0202930C push {r3-r7, lr} add r7, r0, #0x0 add r0, r3, #0x0 add r5, r1, #0x0 add r6, r2, #0x0 bl FUN_020292BC add r4, r0, #0x0 mov r0, #0x1 strb r0, [r4, #0x0] ldrb r0, [r4, #0x1] mov r1, #0xf mov r2, #0x8 bic r0, r1 mov r1, #0xf and r1, r6 orr r0, r1 strb r0, [r4, #0x1] ldrb r1, [r4, #0x1] mov r0, #0x10 bic r1, r0 lsl r0, r5, #0x1f lsr r0, r0, #0x1b orr r0, r1 strb r0, [r4, #0x1] add r0, r7, #0x0 add r1, r4, #0x2 bl FUN_020292D4 add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0202934C FUN_0202934C: ; 0x0202934C push {r3-r7, lr} add r7, r0, #0x0 add r0, r3, #0x0 add r5, r1, #0x0 add r6, r2, #0x0 bl FUN_020292BC add r4, r0, #0x0 mov r0, #0x2 strb r0, [r4, #0x0] ldrb r0, [r4, #0x1] mov r1, #0xf mov r2, #0x8 bic r0, r1 mov r1, #0xf and r1, r6 orr r0, r1 strb r0, [r4, #0x1] ldrb r1, [r4, #0x1] mov r0, #0x10 bic r1, r0 lsl r0, r5, #0x1f lsr r0, r0, #0x1b orr r0, r1 strb r0, [r4, #0x1] add r0, r7, #0x0 add r1, r4, #0x2 bl FUN_020292D4 add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0202938C FUN_0202938C: ; 0x0202938C push {r3-r7, lr} add r7, r0, #0x0 ldr r0, [sp, #0x1c] str r1, [sp, #0x0] add r5, r2, #0x0 add r6, r3, #0x0 bl FUN_020292BC add r4, r0, #0x0 mov r0, #0x3 strb r0, [r4, #0x0] ldrb r0, [r4, #0x1] mov r1, #0xf bic r0, r1 add r1, sp, #0x8 ldrb r2, [r1, #0x10] mov r1, #0xf and r1, r2 orr r0, r1 strb r0, [r4, #0x1] ldrb r0, [r4, #0x1] mov r1, #0x10 mov r2, #0x8 bic r0, r1 lsl r1, r5, #0x1f lsr r1, r1, #0x1b orr r0, r1 strb r0, [r4, #0x1] ldrb r1, [r4, #0x1] mov r0, #0x20 bic r1, r0 lsl r0, r6, #0x1f lsr r0, r0, #0x1a orr r0, r1 strb r0, [r4, #0x1] add r0, r7, #0x0 add r1, r4, #0x2 bl FUN_020292D4 add r1, r4, #0x0 ldr r0, [sp, #0x0] add r1, #0x12 mov r2, #0x8 bl FUN_020292D4 add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020293EC FUN_020293EC: ; 0x020293EC push {r3-r7, lr} add r7, r0, #0x0 add r0, r3, #0x0 add r5, r1, #0x0 add r6, r2, #0x0 bl FUN_020292BC add r4, r0, #0x0 mov r0, #0x4 strb r0, [r4, #0x0] ldrb r0, [r4, #0x1] mov r1, #0xf mov r2, #0x8 bic r0, r1 mov r1, #0xf and r1, r6 orr r0, r1 strb r0, [r4, #0x1] ldrb r1, [r4, #0x1] mov r0, #0x10 bic r1, r0 lsl r0, r5, #0x1f lsr r0, r0, #0x1b orr r0, r1 strb r0, [r4, #0x1] add r0, r7, #0x0 add r1, r4, #0x2 bl FUN_020292D4 add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0202942C FUN_0202942C: ; 0x0202942C push {r4-r6, lr} add r6, r0, #0x0 add r0, r2, #0x0 add r5, r1, #0x0 bl FUN_020292BC add r4, r0, #0x0 mov r0, #0x6 strb r0, [r4, #0x0] ldrb r1, [r4, #0x1] mov r0, #0x10 mov r2, #0x8 bic r1, r0 lsl r0, r5, #0x1f lsr r0, r0, #0x1b orr r0, r1 strb r0, [r4, #0x1] add r0, r6, #0x0 add r1, r4, #0x2 bl FUN_020292D4 add r0, r4, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0202945C FUN_0202945C: ; 0x0202945C push {r3-r7, lr} add r7, r0, #0x0 ldr r0, [sp, #0x18] add r5, r1, #0x0 str r2, [sp, #0x0] add r6, r3, #0x0 bl FUN_020292BC add r4, r0, #0x0 mov r0, #0x7 strb r0, [r4, #0x0] ldrb r0, [r4, #0x1] mov r1, #0x10 mov r2, #0x8 bic r0, r1 lsl r1, r5, #0x1f lsr r1, r1, #0x1b orr r0, r1 strb r0, [r4, #0x1] ldrb r1, [r4, #0x1] mov r0, #0xc0 bic r1, r0 lsl r0, r6, #0x1e lsr r0, r0, #0x18 orr r0, r1 strb r0, [r4, #0x1] add r0, r7, #0x0 add r1, r4, #0x2 bl FUN_020292D4 add r1, r4, #0x0 ldr r0, [sp, #0x0] add r1, #0x22 mov r2, #0xc bl FUN_020292D4 add r0, r4, #0x0 pop {r3-r7, pc} thumb_func_start FUN_020294A8 FUN_020294A8: ; 0x020294A8 push {r3, lr} bl FUN_020292BC mov r1, #0x8 strb r1, [r0, #0x0] pop {r3, pc} thumb_func_start FUN_020294B4 FUN_020294B4: ; 0x020294B4 push {r3-r7, lr} add r7, r0, #0x0 add r0, r3, #0x0 add r5, r1, #0x0 add r6, r2, #0x0 bl FUN_020292BC add r4, r0, #0x0 mov r0, #0xb strb r0, [r4, #0x0] ldrb r0, [r4, #0x1] mov r1, #0xf mov r2, #0x8 bic r0, r1 mov r1, #0xf and r1, r6 orr r0, r1 strb r0, [r4, #0x1] ldrb r1, [r4, #0x1] mov r0, #0x10 bic r1, r0 lsl r0, r5, #0x1f lsr r0, r0, #0x1b orr r0, r1 strb r0, [r4, #0x1] add r0, r7, #0x0 add r1, r4, #0x2 bl FUN_020292D4 add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020294F4 FUN_020294F4: ; 0x020294F4 push {r3, lr} bl FUN_020292BC mov r1, #0xc strb r1, [r0, #0x0] pop {r3, pc} thumb_func_start FUN_02029500 FUN_02029500: ; 0x02029500 push {r4, lr} add r4, r0, #0x0 add r0, r1, #0x0 bl FUN_020292BC mov r1, #0xd strb r1, [r0, #0x0] ldrb r2, [r0, #0x1] mov r1, #0xf bic r2, r1 mov r1, #0xf and r1, r4 orr r1, r2 strb r1, [r0, #0x1] pop {r4, pc} .balign 4 thumb_func_start FUN_02029520 FUN_02029520: ; 0x02029520 push {r3, lr} bl FUN_020292BC mov r1, #0xe strb r1, [r0, #0x0] pop {r3, pc} thumb_func_start FUN_0202952C FUN_0202952C: ; 0x0202952C push {r3-r7, lr} add r7, r0, #0x0 ldr r0, [sp, #0x18] add r5, r1, #0x0 str r2, [sp, #0x0] add r6, r3, #0x0 bl FUN_020292BC add r4, r0, #0x0 mov r0, #0xf strb r0, [r4, #0x0] ldrb r0, [r4, #0x1] mov r1, #0x10 mov r2, #0x8 bic r0, r1 lsl r1, r5, #0x1f lsr r1, r1, #0x1b orr r0, r1 strb r0, [r4, #0x1] ldrb r1, [r4, #0x1] mov r0, #0xc0 bic r1, r0 lsl r0, r6, #0x1e lsr r0, r0, #0x18 orr r0, r1 strb r0, [r4, #0x1] add r0, r7, #0x0 add r1, r4, #0x2 bl FUN_020292D4 add r1, r4, #0x0 ldr r0, [sp, #0x0] add r1, #0x22 mov r2, #0xc bl FUN_020292D4 add r0, r4, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02029578 FUN_02029578: ; 0x02029578 push {r3, lr} bl FUN_020292BC mov r1, #0x10 strb r1, [r0, #0x0] pop {r3, pc} thumb_func_start FUN_02029584 FUN_02029584: ; 0x02029584 push {r3, lr} cmp r2, #0x4 bhi _020295DA add r2, r2, r2 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _02029596: ; jump table (using 16-bit offset) .short _020295A0 - _02029596 - 2; case 0 .short _020295AC - _02029596 - 2; case 1 .short _020295B8 - _02029596 - 2; case 2 .short _020295C4 - _02029596 - 2; case 3 .short _020295D0 - _02029596 - 2; case 4 _020295A0: mov r2, #0x70 mul r2, r3 add r0, r0, r2 bl FUN_020295DC pop {r3, pc} _020295AC: mov r2, #0x70 mul r2, r3 add r0, r0, r2 bl FUN_020295E4 pop {r3, pc} _020295B8: mov r2, #0x70 mul r2, r3 add r0, r0, r2 bl FUN_02029690 pop {r3, pc} _020295C4: mov r2, #0x70 mul r2, r3 add r0, r0, r2 bl FUN_0202969C pop {r3, pc} _020295D0: mov r2, #0x70 mul r2, r3 add r0, r0, r2 bl FUN_020296A8 _020295DA: pop {r3, pc} thumb_func_start FUN_020295DC FUN_020295DC: ; 0x020295DC ldr r0, [r0, #0x0] str r0, [r1, #0x0] bx lr .balign 4 thumb_func_start FUN_020295E4 FUN_020295E4: ; 0x020295E4 push {r3-r7, lr} mov r6, #0x0 add r5, r0, #0x0 add r4, r1, #0x0 add r7, r6, #0x0 _020295EE: strb r7, [r4, #0x0] strb r7, [r4, #0x1] strb r7, [r4, #0x2] strb r7, [r4, #0x3] strb r7, [r4, #0x4] strb r7, [r4, #0x5] strb r7, [r4, #0x6] strb r7, [r4, #0x7] ldr r0, [r5, #0x4] mov r1, #0x3f and r1, r0 cmp r1, #0x23 bhi _02029682 add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02029614: ; jump table (using 16-bit offset) .short _02029682 - _02029614 - 2; case 0 .short _0202965C - _02029614 - 2; case 1 .short _0202965C - _02029614 - 2; case 2 .short _0202965C - _02029614 - 2; case 3 .short _0202965C - _02029614 - 2; case 4 .short _0202965C - _02029614 - 2; case 5 .short _0202965C - _02029614 - 2; case 6 .short _0202965C - _02029614 - 2; case 7 .short _0202965C - _02029614 - 2; case 8 .short _02029664 - _02029614 - 2; case 9 .short _02029664 - _02029614 - 2; case 10 .short _02029664 - _02029614 - 2; case 11 .short _02029664 - _02029614 - 2; case 12 .short _0202966C - _02029614 - 2; case 13 .short _0202966C - _02029614 - 2; case 14 .short _0202966C - _02029614 - 2; case 15 .short _0202965C - _02029614 - 2; case 16 .short _0202965C - _02029614 - 2; case 17 .short _02029674 - _02029614 - 2; case 18 .short _0202967C - _02029614 - 2; case 19 .short _0202967C - _02029614 - 2; case 20 .short _0202967C - _02029614 - 2; case 21 .short _0202967C - _02029614 - 2; case 22 .short _0202967C - _02029614 - 2; case 23 .short _0202967C - _02029614 - 2; case 24 .short _0202967C - _02029614 - 2; case 25 .short _0202967C - _02029614 - 2; case 26 .short _0202967C - _02029614 - 2; case 27 .short _0202967C - _02029614 - 2; case 28 .short _0202967C - _02029614 - 2; case 29 .short _0202967C - _02029614 - 2; case 30 .short _02029682 - _02029614 - 2; case 31 .short _0202967C - _02029614 - 2; case 32 .short _0202967C - _02029614 - 2; case 33 .short _0202965C - _02029614 - 2; case 34 .short _0202965C - _02029614 - 2; case 35 _0202965C: add r1, r4, #0x0 bl FUN_02029730 b _02029682 _02029664: add r1, r4, #0x0 bl FUN_02029738 b _02029682 _0202966C: add r1, r4, #0x0 bl FUN_02029750 b _02029682 _02029674: add r1, r4, #0x0 bl FUN_0202975C b _02029682 _0202967C: add r1, r4, #0x0 bl FUN_02029768 _02029682: add r6, r6, #0x1 add r4, #0x8 add r5, r5, #0x4 cmp r6, #0x4 blo _020295EE pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02029690 FUN_02029690: ; 0x02029690 ldrh r2, [r0, #0x14] strh r2, [r1, #0x0] ldrh r0, [r0, #0x16] strh r0, [r1, #0x2] bx lr .balign 4 thumb_func_start FUN_0202969C FUN_0202969C: ; 0x0202969C ldrh r2, [r0, #0x18] strh r2, [r1, #0x0] ldrh r0, [r0, #0x1a] strh r0, [r1, #0x2] bx lr .balign 4 thumb_func_start FUN_020296A8 FUN_020296A8: ; 0x020296A8 push {r3-r7, lr} add r6, r0, #0x0 add r5, r6, #0x0 add r4, r1, #0x0 mov r7, #0x0 add r5, #0x1c _020296B4: add r0, r4, #0x0 mov r1, #0x0 mov r2, #0x3a blx FUN_020DF4A4 ldrb r0, [r6, #0x1c] cmp r0, #0x10 bhi _02029722 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _020296D0: ; jump table (using 16-bit offset) .short _02029722 - _020296D0 - 2; case 0 .short _020296F2 - _020296D0 - 2; case 1 .short _020296F2 - _020296D0 - 2; case 2 .short _020296F2 - _020296D0 - 2; case 3 .short _020296F2 - _020296D0 - 2; case 4 .short _020296F2 - _020296D0 - 2; case 5 .short _020296FC - _020296D0 - 2; case 6 .short _02029706 - _020296D0 - 2; case 7 .short _02029710 - _020296D0 - 2; case 8 .short _02029706 - _020296D0 - 2; case 9 .short _02029710 - _020296D0 - 2; case 10 .short _020296F2 - _020296D0 - 2; case 11 .short _02029710 - _020296D0 - 2; case 12 .short _0202971A - _020296D0 - 2; case 13 .short _02029710 - _020296D0 - 2; case 14 .short _02029706 - _020296D0 - 2; case 15 .short _02029710 - _020296D0 - 2; case 16 _020296F2: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02029774 b _02029722 _020296FC: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_020297E4 b _02029722 _02029706: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02029808 b _02029722 _02029710: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02029860 b _02029722 _0202971A: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02029868 _02029722: add r7, r7, #0x1 add r4, #0x3a add r6, #0x2a add r5, #0x2a cmp r7, #0x2 blo _020296B4 pop {r3-r7, pc} thumb_func_start FUN_02029730 FUN_02029730: ; 0x02029730 mov r2, #0x3f and r0, r2 strb r0, [r1, #0x0] bx lr thumb_func_start FUN_02029738 FUN_02029738: ; 0x02029738 mov r2, #0x3f and r2, r0 strb r2, [r1, #0x0] lsr r3, r0, #0x6 ldr r2, _0202974C ; =0x000003FF lsr r0, r0, #0x10 and r2, r3 strh r2, [r1, #0x4] strh r0, [r1, #0x2] bx lr .balign 4 _0202974C: .word 0x000003FF thumb_func_start FUN_02029750 FUN_02029750: ; 0x02029750 mov r2, #0x3f and r2, r0 strb r2, [r1, #0x0] lsr r0, r0, #0x10 strh r0, [r1, #0x2] bx lr thumb_func_start FUN_0202975C FUN_0202975C: ; 0x0202975C mov r2, #0x3f and r2, r0 strb r2, [r1, #0x0] lsr r0, r0, #0x10 strh r0, [r1, #0x6] bx lr thumb_func_start FUN_02029768 FUN_02029768: ; 0x02029768 mov r2, #0x3f and r2, r0 strb r2, [r1, #0x0] lsr r0, r0, #0x10 strh r0, [r1, #0x2] bx lr thumb_func_start FUN_02029774 FUN_02029774: ; 0x02029774 push {r3-r5, lr} add r5, r0, #0x0 ldrb r0, [r5, #0x0] add r4, r1, #0x0 mov r1, #0xf strb r0, [r4, #0x0] ldrb r0, [r4, #0x1] bic r0, r1 ldrb r1, [r5, #0x1] asr r2, r1, #0x2 mov r1, #0x1f and r1, r2 lsl r1, r1, #0x18 lsr r2, r1, #0x18 mov r1, #0xf and r1, r2 orr r0, r1 strb r0, [r4, #0x1] ldrb r0, [r4, #0x1] mov r1, #0x10 mov r2, #0x1 bic r0, r1 ldrb r1, [r5, #0x1] asr r1, r1, #0x1 and r1, r2 lsl r1, r1, #0x18 lsr r1, r1, #0x18 lsl r1, r1, #0x1f lsr r1, r1, #0x1b orr r0, r1 strb r0, [r4, #0x1] ldrb r0, [r4, #0x1] mov r1, #0x20 bic r0, r1 ldrb r1, [r5, #0x1] and r1, r2 lsl r1, r1, #0x18 lsr r1, r1, #0x18 lsl r1, r1, #0x1f lsr r1, r1, #0x1a orr r0, r1 strb r0, [r4, #0x1] add r0, r5, #0x2 add r1, r4, #0x2 mov r2, #0x8 bl FUN_020292D4 add r5, #0x12 add r4, #0x12 add r0, r5, #0x0 add r1, r4, #0x0 mov r2, #0x8 bl FUN_020292D4 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020297E4 FUN_020297E4: ; 0x020297E4 ldrb r2, [r0, #0x0] strb r2, [r1, #0x0] ldrb r3, [r1, #0x1] mov r2, #0x10 bic r3, r2 ldrb r2, [r0, #0x1] add r0, r0, #0x2 lsl r2, r2, #0x1f lsr r2, r2, #0x1b orr r2, r3 strb r2, [r1, #0x1] ldr r3, _02029804 ; =FUN_020292D4 add r1, r1, #0x2 mov r2, #0x8 bx r3 nop _02029804: .word FUN_020292D4 thumb_func_start FUN_02029808 FUN_02029808: ; 0x02029808 push {r3-r5, lr} add r5, r0, #0x0 ldrb r0, [r5, #0x0] add r4, r1, #0x0 mov r1, #0x10 strb r0, [r4, #0x0] ldrb r0, [r4, #0x1] bic r0, r1 ldrb r1, [r5, #0x1] asr r2, r1, #0x2 mov r1, #0x1 and r1, r2 lsl r1, r1, #0x18 lsr r1, r1, #0x18 lsl r1, r1, #0x1f lsr r1, r1, #0x1b orr r0, r1 strb r0, [r4, #0x1] ldrb r0, [r4, #0x1] mov r1, #0xc0 ldrb r2, [r5, #0x1] bic r0, r1 mov r1, #0x3 and r1, r2 lsl r1, r1, #0x18 lsr r1, r1, #0x18 lsl r1, r1, #0x1e lsr r1, r1, #0x18 orr r0, r1 strb r0, [r4, #0x1] add r0, r5, #0x2 add r1, r4, #0x2 mov r2, #0x8 bl FUN_020292D4 add r5, #0x12 add r4, #0x22 add r0, r5, #0x0 add r1, r4, #0x0 mov r2, #0xc bl FUN_020292D4 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02029860 FUN_02029860: ; 0x02029860 ldrb r0, [r0, #0x0] strb r0, [r1, #0x0] bx lr .balign 4 thumb_func_start FUN_02029868 FUN_02029868: ; 0x02029868 ldrb r2, [r0, #0x0] strb r2, [r1, #0x0] ldrb r3, [r1, #0x1] mov r2, #0xf bic r3, r2 ldrb r2, [r0, #0x1] mov r0, #0xf and r0, r2 orr r0, r3 strb r0, [r1, #0x1] bx lr .balign 4 thumb_func_start FUN_02029880 FUN_02029880: ; 0x02029880 push {r4-r7, lr} sub sp, #0xc add r7, r0, #0x0 mov r0, #0x0 add r4, r3, #0x0 str r0, [sp, #0x4] add r0, r4, #0x0 str r1, [sp, #0x0] add r5, r2, #0x0 ldr r6, [sp, #0x20] bl FUN_02034930 cmp r0, #0x1 bne _020298BA add r0, r5, #0x0 bl FUN_02034964 cmp r0, #0x1 bne _02029942 add r0, r4, #0x0 bl FUN_02034824 lsl r0, r0, #0x10 lsr r0, r0, #0x10 add r1, r6, #0x0 bl FUN_020290F8 str r0, [sp, #0x4] b _02029942 _020298BA: add r0, r4, #0x0 bl FUN_02034944 cmp r0, #0x1 bne _0202991A add r0, r5, #0x0 bl FUN_02034964 cmp r0, #0x1 bne _02029942 ldr r0, _02029958 ; =0x0000019E cmp r4, r0 bne _020298DE add r0, r6, #0x0 bl FUN_02029030 str r0, [sp, #0x4] b _02029942 _020298DE: add r0, #0x8 cmp r4, r0 bne _020298EE add r0, r6, #0x0 bl FUN_0202903C str r0, [sp, #0x4] b _02029942 _020298EE: add r0, r4, #0x0 bl FUN_02034824 add r7, r0, #0x0 lsl r0, r7, #0x10 lsr r0, r0, #0x10 ldr r5, _0202995C ; =0x020EE9A4 mov r4, #0x0 str r0, [sp, #0x8] _02029900: ldr r0, [r5, #0x0] cmp r7, r0 bne _02029910 ldr r0, [sp, #0x8] add r1, r6, #0x0 bl FUN_0202910C str r0, [sp, #0x4] _02029910: add r4, r4, #0x1 add r5, #0x8 cmp r4, #0x1b blo _02029900 b _02029942 _0202991A: add r0, r4, #0x0 bl FUN_02034964 cmp r0, #0x1 bne _02029942 add r0, r5, #0x0 bl FUN_02034944 cmp r0, #0x1 bne _02029942 add r0, r7, #0x0 add r1, r5, #0x0 bl FUN_02029988 cmp r0, #0xff beq _02029942 add r1, r6, #0x0 bl FUN_02029090 str r0, [sp, #0x4] _02029942: ldr r0, [sp, #0x4] cmp r0, #0x0 beq _02029952 ldr r0, [sp, #0x0] ldr r1, [sp, #0x4] mov r2, #0x1 bl FUN_02028AD4 _02029952: add sp, #0xc pop {r4-r7, pc} nop _02029958: .word 0x0000019E _0202995C: .word 0x020EE9A4 thumb_func_start FUN_02029960 FUN_02029960: ; 0x02029960 ldr r3, _02029980 ; =0x020EE9A4 mov r2, #0x0 _02029964: ldr r1, [r3, #0x0] cmp r0, r1 bne _02029972 ldr r0, _02029984 ; =0x020EE9A8 lsl r1, r2, #0x3 ldr r0, [r0, r1] bx lr _02029972: add r2, r2, #0x1 add r3, #0x8 cmp r2, #0x1b blo _02029964 mov r0, #0x0 bx lr nop _02029980: .word 0x020EE9A4 _02029984: .word 0x020EE9A8 thumb_func_start FUN_02029988 FUN_02029988: ; 0x02029988 push {r3-r5, lr} ldr r2, _020299B8 ; =0x020EE964 mov r4, #0x0 _0202998E: lsl r3, r4, #0x3 add r5, r2, r3 ldrh r5, [r5, #0x4] cmp r1, r5 bne _020299A8 ldr r1, _020299BC ; =0x020EE96A ldrh r1, [r1, r3] bl FUN_020239D0 cmp r0, #0x0 bne _020299B2 add r0, r4, #0x0 pop {r3-r5, pc} _020299A8: add r3, r4, #0x1 lsl r3, r3, #0x18 lsr r4, r3, #0x18 cmp r4, #0x8 blo _0202998E _020299B2: mov r0, #0xff pop {r3-r5, pc} nop _020299B8: .word 0x020EE964 _020299BC: .word 0x020EE96A thumb_func_start FUN_020299C0 FUN_020299C0: ; 0x020299C0 push {r4, lr} add r4, r0, #0x0 lsl r0, r1, #0x10 lsr r0, r0, #0x10 add r1, r2, #0x0 bl FUN_020290E4 add r1, r0, #0x0 add r0, r4, #0x0 mov r2, #0x1 bl FUN_02028AD4 pop {r4, pc} .balign 4 thumb_func_start FUN_020299DC FUN_020299DC: ; 0x020299DC push {r3-r7, lr} add r4, r2, #0x0 add r5, r0, #0x0 add r0, r4, #0x0 add r7, r1, #0x0 add r6, r3, #0x0 bl FUN_02029A48 cmp r0, #0x8 bhs _02029A04 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_020290A4 add r1, r0, #0x0 add r0, r5, #0x0 mov r2, #0x1 bl FUN_02028AD4 pop {r3-r7, pc} _02029A04: bne _02029A1A add r0, r4, #0x0 add r1, r6, #0x0 bl FUN_020290BC add r1, r0, #0x0 add r0, r5, #0x0 mov r2, #0x1 bl FUN_02028AD4 pop {r3-r7, pc} _02029A1A: cmp r0, #0x9 bne _02029A32 add r0, r4, #0x0 add r1, r6, #0x0 bl FUN_020290D0 add r1, r0, #0x0 add r0, r5, #0x0 mov r2, #0x1 bl FUN_02028AD4 pop {r3-r7, pc} _02029A32: add r0, r7, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_0202928C add r1, r0, #0x0 add r0, r5, #0x0 mov r2, #0x3 bl FUN_02028AD4 pop {r3-r7, pc} thumb_func_start FUN_02029A48 FUN_02029A48: ; 0x02029A48 ldr r2, _02029A7C ; =0x020EE964 mov r3, #0x0 _02029A4C: lsl r1, r3, #0x3 ldr r1, [r2, r1] cmp r0, r1 bne _02029A58 add r0, r3, #0x0 bx lr _02029A58: add r1, r3, #0x1 lsl r1, r1, #0x18 lsr r3, r1, #0x18 cmp r3, #0x8 blo _02029A4C ldr r1, _02029A80 ; =0x00000105 sub r2, r0, r1 cmp r2, #0x3 bhi _02029A6E mov r0, #0x8 bx lr _02029A6E: add r1, r1, #0x6 cmp r0, r1 bne _02029A78 mov r0, #0x9 bx lr _02029A78: mov r0, #0xa bx lr .balign 4 _02029A7C: .word 0x020EE964 _02029A80: .word 0x00000105 thumb_func_start FUN_02029A84 FUN_02029A84: ; 0x02029A84 mov r0, #0x62 lsl r0, r0, #0x4 bx lr .balign 4 thumb_func_start FUN_02029A8C FUN_02029A8C: ; 0x02029A8C push {r4-r6, lr} mov r2, #0x62 add r4, r0, #0x0 mov r1, #0x0 lsl r2, r2, #0x4 blx FUN_020DF4A4 add r0, r4, #0x0 bl FUN_02029ACC add r5, r0, #0x0 mov r4, #0x0 mov r6, #0x8c _02029AA6: lsl r0, r4, #0x18 lsr r0, r0, #0x18 add r1, r6, #0x0 add r2, r5, #0x0 bl FUN_02029AD8 add r4, r4, #0x1 cmp r4, #0x8 blt _02029AA6 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02029ABC FUN_02029ABC: ; 0x02029ABC ldr r3, _02029AC4 ; =FUN_02022610 mov r1, #0x13 bx r3 nop _02029AC4: .word FUN_02022610 thumb_func_start FUN_02029AC8 FUN_02029AC8: ; 0x02029AC8 add r0, #0x20 bx lr thumb_func_start FUN_02029ACC FUN_02029ACC: ; 0x02029ACC bx lr .balign 4 thumb_func_start FUN_02029AD0 FUN_02029AD0: ; 0x02029AD0 lsl r0, r0, #0x2 ldr r0, [r1, r0] bx lr .balign 4 thumb_func_start FUN_02029AD8 FUN_02029AD8: ; 0x02029AD8 lsl r0, r0, #0x2 str r1, [r2, r0] bx lr .balign 4 thumb_func_start FUN_02029AE0 FUN_02029AE0: ; 0x02029AE0 ldr r0, _02029AE4 ; =0x00000FF8 bx lr .balign 4 _02029AE4: .word 0x00000FF8 thumb_func_start FUN_02029AE8 FUN_02029AE8: ; 0x02029AE8 ldr r3, _02029AF4 ; =MIi_CpuClear32 add r1, r0, #0x0 mov r0, #0x0 ldr r2, _02029AF8 ; =0x00000FF8 bx r3 nop _02029AF4: .word MIi_CpuClear32 _02029AF8: .word 0x00000FF8 thumb_func_start FUN_02029AFC FUN_02029AFC: ; 0x02029AFC ldr r3, _02029B04 ; =FUN_02022610 mov r1, #0x1e bx r3 nop _02029B04: .word FUN_02022610 thumb_func_start FUN_02029B08 FUN_02029B08: ; 0x02029B08 push {r4-r6, lr} add r6, r0, #0x0 mov r0, #0x1 add r5, r1, #0x0 lsl r0, r0, #0x8 add r4, r2, #0x0 cmp r5, r0 blt _02029B1C bl ErrorHandling _02029B1C: cmp r4, #0x40 blt _02029B24 bl ErrorHandling _02029B24: strb r5, [r6, #0x5] add r0, r6, #0x0 add r1, r5, #0x0 add r2, r4, #0x0 mov r3, #0x3 strb r4, [r6, #0x6] bl FUN_02029B90 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02029B38 FUN_02029B38: ; 0x02029B38 ldrb r0, [r0, #0x5] bx lr thumb_func_start FUN_02029B3C FUN_02029B3C: ; 0x02029B3C ldrb r0, [r0, #0x6] bx lr thumb_func_start FUN_02029B40 FUN_02029B40: ; 0x02029B40 push {r4-r6, lr} add r6, r0, #0x0 mov r0, #0x1 add r5, r1, #0x0 lsl r0, r0, #0x8 add r4, r2, #0x0 cmp r5, r0 blt _02029B54 bl ErrorHandling _02029B54: cmp r4, #0x40 blt _02029B5C bl ErrorHandling _02029B5C: cmp r5, #0x0 bne _02029B64 mov r0, #0x0 pop {r4-r6, pc} _02029B64: asr r0, r4, #0x1 lsr r0, r0, #0x1e add r0, r4, r0 asr r1, r0, #0x2 sub r0, r5, #0x1 lsl r0, r0, #0x4 add r0, r1, r0 add r0, r6, r0 ldrb r3, [r0, #0x7] lsr r2, r4, #0x1f lsl r1, r4, #0x1e sub r1, r1, r2 mov r0, #0x1e ror r1, r0 add r0, r2, r1 lsl r0, r0, #0x1 add r1, r3, #0x0 asr r1, r0 mov r0, #0x3 and r0, r1 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02029B90 FUN_02029B90: ; 0x02029B90 push {r3-r7, lr} add r7, r0, #0x0 add r5, r1, #0x0 add r4, r2, #0x0 str r3, [sp, #0x0] cmp r3, #0x4 blt _02029BA2 bl ErrorHandling _02029BA2: mov r0, #0x1 lsl r0, r0, #0x8 cmp r5, r0 blt _02029BAE bl ErrorHandling _02029BAE: cmp r4, #0x40 blt _02029BB6 bl ErrorHandling _02029BB6: cmp r5, #0x0 beq _02029BFE asr r0, r4, #0x1 lsr r0, r0, #0x1e add r0, r4, r0 asr r2, r0, #0x2 sub r0, r5, #0x1 lsl r0, r0, #0x4 add r0, r2, r0 lsr r2, r4, #0x1f lsl r4, r4, #0x1e sub r4, r4, r2 mov r3, #0x1e ror r4, r3 add r2, r2, r4 lsl r6, r2, #0x1 mov r2, #0x3 add r3, r2, #0x0 add r1, r7, #0x7 ldrb r4, [r1, r0] lsl r3, r6 mov r2, #0xff eor r2, r3 and r2, r4 ldr r3, [sp, #0x0] strb r2, [r1, r0] ldrb r2, [r1, r0] lsl r3, r6 orr r2, r3 strb r2, [r1, r0] cmp r5, #0x67 beq _02029BFE add r0, r7, #0x0 mov r1, #0x1 bl FUN_02029C04 _02029BFE: pop {r3-r7, pc} thumb_func_start FUN_02029C00 FUN_02029C00: ; 0x02029C00 ldrb r0, [r0, #0x4] bx lr thumb_func_start FUN_02029C04 FUN_02029C04: ; 0x02029C04 strb r1, [r0, #0x4] bx lr thumb_func_start FUN_02029C08 FUN_02029C08: ; 0x02029C08 push {r3-r7, lr} mov lr, r0 mov r0, #0x3 mov r7, #0x0 mov r4, #0x2 mov r6, #0xff add r3, r0, #0x0 _02029C16: mov r1, lr add r1, r1, r7 ldrb r2, [r1, #0x7] mov r12, r1 mov r1, #0x0 _02029C20: add r5, r2, #0x0 asr r5, r1 and r5, r3 cmp r5, #0x1 bne _02029C40 add r5, r0, #0x0 lsl r5, r1 eor r5, r6 and r2, r5 lsl r2, r2, #0x18 lsr r5, r2, #0x18 add r2, r4, #0x0 lsl r2, r1 orr r2, r5 lsl r2, r2, #0x18 lsr r2, r2, #0x18 _02029C40: add r1, r1, #0x2 cmp r1, #0x8 blt _02029C20 mov r1, r12 strb r2, [r1, #0x7] mov r1, #0xff add r7, r7, #0x1 lsl r1, r1, #0x4 cmp r7, r1 blt _02029C16 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02029C58 FUN_02029C58: ; 0x02029C58 mov r0, #0x17 lsl r0, r0, #0x4 bx lr .balign 4 thumb_func_start FUN_02029C60 FUN_02029C60: ; 0x02029C60 push {r4, lr} add r4, r0, #0x0 bl FUN_02029C58 add r2, r0, #0x0 add r0, r4, #0x0 mov r1, #0x0 blx MI_CpuFill8 pop {r4, pc} thumb_func_start FUN_02029C74 FUN_02029C74: ; 0x02029C74 ldr r3, _02029C7C ; =MI_CpuCopy8 mov r2, #0x18 bx r3 nop _02029C7C: .word MI_CpuCopy8 thumb_func_start FUN_02029C80 FUN_02029C80: ; 0x02029C80 ldr r3, _02029C88 ; =FUN_02022610 mov r1, #0x15 bx r3 nop _02029C88: .word FUN_02022610 thumb_func_start FUN_02029C8C FUN_02029C8C: ; 0x02029C8C push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0xc blt _02029C9A bl ErrorHandling _02029C9A: mov r0, #0x18 mul r0, r4 add r0, r5, r0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02029CA4 FUN_02029CA4: ; 0x02029CA4 push {r4-r6, lr} add r6, r2, #0x0 add r5, r0, #0x0 add r4, r1, #0x0 cmp r6, #0xc blt _02029CB4 bl ErrorHandling _02029CB4: add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02029C8C add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_02029C74 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02029CC8 FUN_02029CC8: ; 0x02029CC8 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x8 blt _02029CD6 bl ErrorHandling _02029CD6: lsl r0, r4, #0x1 add r0, r4, r0 add r0, r5, r0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02029CE0 FUN_02029CE0: ; 0x02029CE0 ldrb r0, [r0, #0x0] bx lr thumb_func_start FUN_02029CE4 FUN_02029CE4: ; 0x02029CE4 ldrb r0, [r0, #0x1] bx lr thumb_func_start FUN_02029CE8 FUN_02029CE8: ; 0x02029CE8 ldrb r0, [r0, #0x2] bx lr thumb_func_start FUN_02029CEC FUN_02029CEC: ; 0x02029CEC mov r1, #0x12 lsl r1, r1, #0x4 add r0, r0, r1 bx lr thumb_func_start FUN_02029CF4 FUN_02029CF4: ; 0x02029CF4 ldrb r0, [r0, r1] bx lr thumb_func_start FUN_02029CF8 FUN_02029CF8: ; 0x02029CF8 mov r3, #0x0 add r2, r1, #0x1 _02029CFC: ldrb r1, [r0, #0x0] cmp r2, r1 bne _02029D06 mov r0, #0x1 bx lr _02029D06: add r3, r3, #0x1 add r0, r0, #0x3 cmp r3, #0x8 blt _02029CFC mov r0, #0x0 bx lr .balign 4 thumb_func_start FUN_02029D14 FUN_02029D14: ; 0x02029D14 push {r4-r7} mov r6, #0x0 add r4, r6, #0x0 add r2, r1, #0x1 add r3, r6, #0x0 _02029D1E: add r5, r3, #0x0 add r7, r0, #0x0 _02029D22: ldrb r1, [r7, #0x0] cmp r2, r1 bne _02029D2A add r6, r6, #0x1 _02029D2A: add r5, r5, #0x1 add r7, r7, #0x3 cmp r5, #0x8 blt _02029D22 add r4, r4, #0x1 add r0, #0x18 cmp r4, #0xc blt _02029D1E add r0, r6, #0x0 pop {r4-r7} bx lr thumb_func_start FUN_02029D40 FUN_02029D40: ; 0x02029D40 strb r2, [r0, r1] bx lr thumb_func_start FUN_02029D44 FUN_02029D44: ; 0x02029D44 push {r4-r6, lr} add r5, r1, #0x0 sub r1, r5, #0x1 add r6, r0, #0x0 add r4, r2, #0x0 bl FUN_02029D14 mov r1, #0x12 lsl r1, r1, #0x4 add r2, r6, r1 sub r1, r5, #0x1 ldrb r3, [r2, r1] add r0, r0, r3 cmp r4, #0x0 bge _02029D6E add r0, r4, r3 bmi _02029D6A strb r0, [r2, r1] b _02029D7E _02029D6A: mov r0, #0x0 pop {r4-r6, pc} _02029D6E: add r0, r0, r4 cmp r0, #0x63 bgt _02029D7A add r0, r3, r4 strb r0, [r2, r1] b _02029D7E _02029D7A: mov r0, #0x0 pop {r4-r6, pc} _02029D7E: mov r0, #0x1 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02029D84 FUN_02029D84: ; 0x02029D84 push {r4-r6, lr} add r5, r1, #0x0 sub r1, r5, #0x1 add r6, r0, #0x0 add r4, r2, #0x0 bl FUN_02029D14 cmp r4, #0x0 bge _02029DAC mov r0, #0x12 lsl r0, r0, #0x4 add r2, r6, r0 sub r1, r5, #0x1 ldrb r0, [r2, r1] add r0, r4, r0 bmi _02029DA8 strb r0, [r2, r1] b _02029DD0 _02029DA8: mov r0, #0x0 pop {r4-r6, pc} _02029DAC: add r0, r0, r4 cmp r0, #0x63 bgt _02029DCC mov r0, #0x12 lsl r0, r0, #0x4 add r2, r6, r0 sub r1, r5, #0x1 ldrb r0, [r2, r1] add r0, r0, r4 strb r0, [r2, r1] ldrb r0, [r2, r1] cmp r0, #0x63 blo _02029DD0 mov r0, #0x63 strb r0, [r2, r1] b _02029DD0 _02029DCC: mov r0, #0x0 pop {r4-r6, pc} _02029DD0: mov r0, #0x1 pop {r4-r6, pc} thumb_func_start FUN_02029DD4 FUN_02029DD4: ; 0x02029DD4 push {r4-r6, lr} add r5, r1, #0x0 sub r1, r5, #0x1 add r6, r0, #0x0 add r4, r2, #0x0 bl FUN_02029D14 sub r1, r5, #0x1 add r2, r6, r1 mov r1, #0x12 lsl r1, r1, #0x4 ldrb r1, [r2, r1] add r0, r0, r1 cmp r4, #0x0 bge _02029DFE add r0, r4, r1 bmi _02029DFA mov r0, #0x1 pop {r4-r6, pc} _02029DFA: mov r0, #0x0 pop {r4-r6, pc} _02029DFE: add r0, r0, r4 cmp r0, #0x63 bgt _02029E08 mov r0, #0x1 pop {r4-r6, pc} _02029E08: mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02029E0C FUN_02029E0C: ; 0x02029E0C push {r4-r6, lr} add r6, r0, #0x0 mov r5, #0x0 mov r4, #0x1 _02029E14: add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_02029E2C cmp r0, #0x0 beq _02029E22 add r5, r5, #0x1 _02029E22: add r4, r4, #0x1 cmp r4, #0x51 blt _02029E14 add r0, r5, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02029E2C FUN_02029E2C: ; 0x02029E2C push {r3-r5, lr} add r5, r1, #0x0 sub r1, r5, #0x1 add r4, r0, #0x0 bl FUN_02029D14 sub r1, r5, #0x1 add r2, r4, r1 mov r1, #0x12 lsl r1, r1, #0x4 ldrb r1, [r2, r1] add r0, r0, r1 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02029E48 FUN_02029E48: ; 0x02029E48 mov r1, #0x0 strh r1, [r0, #0x0] strb r1, [r0, #0x2] strb r1, [r0, #0x3] bx lr .balign 4 thumb_func_start FUN_02029E54 FUN_02029E54: ; 0x02029E54 push {r3-r7, lr} add r5, r0, #0x0 ldrh r6, [r5, #0x0] ldr r0, _02029EB8 ; =0x000003E7 cmp r6, r0 bne _02029E6C ldrb r0, [r5, #0x2] cmp r0, #0x3b bne _02029E6C ldrb r0, [r5, #0x3] cmp r0, #0x3b beq _02029EB4 _02029E6C: ldrb r0, [r5, #0x3] ldrb r4, [r5, #0x2] add r7, r0, r1 cmp r7, #0x3b bls _02029EAE add r0, r7, #0x0 mov r1, #0x3c blx _u32_div_f add r4, r4, r0 add r0, r7, #0x0 mov r1, #0x3c blx _u32_div_f add r7, r1, #0x0 cmp r4, #0x3b bls _02029EAE add r0, r4, #0x0 mov r1, #0x3c blx _u32_div_f add r6, r6, r0 add r0, r4, #0x0 mov r1, #0x3c blx _u32_div_f ldr r0, _02029EB8 ; =0x000003E7 add r4, r1, #0x0 cmp r6, r0 blo _02029EAE mov r4, #0x3b add r6, r0, #0x0 add r7, r4, #0x0 _02029EAE: strh r6, [r5, #0x0] strb r4, [r5, #0x2] strb r7, [r5, #0x3] _02029EB4: pop {r3-r7, pc} nop _02029EB8: .word 0x000003E7 thumb_func_start FUN_02029EBC FUN_02029EBC: ; 0x02029EBC ldrh r0, [r0, #0x0] bx lr thumb_func_start FUN_02029EC0 FUN_02029EC0: ; 0x02029EC0 ldrb r0, [r0, #0x2] bx lr thumb_func_start FUN_02029EC4 FUN_02029EC4: ; 0x02029EC4 mov r0, #0xfb lsl r0, r0, #0x2 bx lr .balign 4 thumb_func_start FUN_02029ECC FUN_02029ECC: ; 0x02029ECC push {r4, lr} add r4, r0, #0x0 mov r2, #0xfb mov r0, #0x0 add r1, r4, #0x0 lsl r2, r2, #0x2 blx MIi_CpuClear32 mov r0, #0x0 str r0, [r4, #0x0] pop {r4, pc} .balign 4 thumb_func_start FUN_02029EE4 FUN_02029EE4: ; 0x02029EE4 push {r4, lr} mov r1, #0xfb lsl r1, r1, #0x2 bl FUN_02016998 add r4, r0, #0x0 bl FUN_02029ECC add r0, r4, #0x0 pop {r4, pc} thumb_func_start FUN_02029EF8 FUN_02029EF8: ; 0x02029EF8 ldr r3, _02029F00 ; =FUN_02022610 mov r1, #0x16 bx r3 nop _02029F00: .word FUN_02022610 thumb_func_start FUN_02029F04 FUN_02029F04: ; 0x02029F04 ldr r0, [r0, #0x0] bx lr thumb_func_start FUN_02029F08 FUN_02029F08: ; 0x02029F08 mov r1, #0x0 str r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02029F10 FUN_02029F10: ; 0x02029F10 add r0, r0, #0x4 bx lr thumb_func_start FUN_02029F14 FUN_02029F14: ; 0x02029F14 push {r4-r7} mov r5, #0x0 mov r2, #0xfa add r4, r5, #0x0 mov r6, #0xf lsl r2, r2, #0x2 _02029F20: ldrsb r7, [r1, r4] add r3, r0, r5 and r7, r6 lsl r7, r7, #0x18 lsr r7, r7, #0x18 sub r7, #0x8 lsl r7, r7, #0x18 asr r7, r7, #0x14 strb r7, [r0, r5] ldrsb r7, [r1, r4] add r4, r4, #0x1 add r5, r5, #0x2 lsl r7, r7, #0x14 lsr r7, r7, #0x18 sub r7, #0x8 lsl r7, r7, #0x18 asr r7, r7, #0x14 strb r7, [r3, #0x1] cmp r4, r2 blt _02029F20 pop {r4-r7} bx lr thumb_func_start FUN_02029F4C FUN_02029F4C: ; 0x02029F4C push {r4-r7} add r3, r0, #0x0 add r2, r1, #0x0 mov r0, #0x1 mov r1, #0x0 str r0, [r3, #0x0] add r0, r1, #0x0 _02029F5A: ldrsb r4, [r2, r0] add r6, r3, r1 add r7, r2, r0 asr r5, r4, #0x3 lsr r5, r5, #0x1c add r5, r4, r5 lsl r4, r5, #0x14 asr r4, r4, #0x18 add r4, #0x8 strb r4, [r6, #0x4] mov r4, #0x4 ldrsb r5, [r6, r4] mov r4, #0x1 ldrsb r4, [r7, r4] add r0, r0, #0x2 add r1, r1, #0x1 asr r7, r4, #0x3 lsr r7, r7, #0x1c add r7, r4, r7 lsl r4, r7, #0x14 asr r4, r4, #0x18 add r4, #0x8 lsl r4, r4, #0x18 lsr r4, r4, #0x14 orr r4, r5 strb r4, [r6, #0x4] mov r4, #0x7d lsl r4, r4, #0x4 cmp r0, r4 blt _02029F5A pop {r4-r7} bx lr .balign 4 thumb_func_start FUN_02029F9C FUN_02029F9C: ; 0x02029F9C add r2, r0, #0x0 add r0, r1, #0x0 add r1, r2, #0x0 mov r2, #0xfb ldr r3, _02029FAC ; =MIi_CpuCopyFast lsl r2, r2, #0x2 bx r3 nop _02029FAC: .word MIi_CpuCopyFast thumb_func_start FUN_02029FB0 FUN_02029FB0: ; 0x02029FB0 mov r0, #0x53 lsl r0, r0, #0x2 bx lr .balign 4 thumb_func_start FUN_02029FB8 FUN_02029FB8: ; 0x02029FB8 ldr r3, _02029FC4 ; =MIi_CpuClear32 mov r2, #0x53 add r1, r0, #0x0 mov r0, #0x0 lsl r2, r2, #0x2 bx r3 .balign 4 _02029FC4: .word MIi_CpuClear32 thumb_func_start FUN_02029FC8 FUN_02029FC8: ; 0x02029FC8 ldr r3, _02029FD0 ; =FUN_02022610 mov r1, #0x14 bx r3 nop _02029FD0: .word FUN_02022610 thumb_func_start FUN_02029FD4 FUN_02029FD4: ; 0x02029FD4 push {r3, lr} cmp r1, #0x2c bge _02029FE0 lsl r1, r1, #0x2 ldr r0, [r0, r1] pop {r3, pc} _02029FE0: cmp r1, #0x79 bge _02029FF0 sub r1, #0x2c lsl r1, r1, #0x1 add r0, r0, r1 add r0, #0xb0 ldrh r0, [r0, #0x0] pop {r3, pc} _02029FF0: bl ErrorHandling mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_02029FF8 FUN_02029FF8: ; 0x02029FF8 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x2c bge _0202A008 lsl r0, r4, #0x2 str r2, [r5, r0] b _0202A01E _0202A008: cmp r4, #0x79 bge _0202A01A add r0, r4, #0x0 sub r0, #0x2c lsl r0, r0, #0x1 add r0, r5, r0 add r0, #0xb0 strh r2, [r0, #0x0] b _0202A01E _0202A01A: bl ErrorHandling _0202A01E: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02029FD4 pop {r3-r5, pc} thumb_func_start FUN_0202A028 FUN_0202A028: ; 0x0202A028 push {r3, lr} cmp r0, #0x2c bge _0202A03E ldr r1, _0202A05C ; =0x02105CD8 ldrb r0, [r1, r0] cmp r0, #0x0 beq _0202A03A ldr r0, _0202A060 ; =0x3B9AC9FF pop {r3, pc} _0202A03A: ldr r0, _0202A064 ; =0x000F423F pop {r3, pc} _0202A03E: cmp r0, #0x79 bge _0202A052 ldr r1, _0202A05C ; =0x02105CD8 ldrb r0, [r1, r0] cmp r0, #0x0 beq _0202A04E ldr r0, _0202A068 ; =0x0000FFFF pop {r3, pc} _0202A04E: ldr r0, _0202A06C ; =0x0000270F pop {r3, pc} _0202A052: bl ErrorHandling mov r0, #0x0 pop {r3, pc} nop _0202A05C: .word 0x02105CD8 _0202A060: .word 0x3B9AC9FF _0202A064: .word 0x000F423F _0202A068: .word 0x0000FFFF _0202A06C: .word 0x0000270F thumb_func_start FUN_0202A070 FUN_0202A070: ; 0x0202A070 lsl r1, r0, #0x1 ldr r0, _0202A078 ; =0x020EEA7C ldrh r0, [r0, r1] bx lr .balign 4 _0202A078: .word 0x020EEA7C thumb_func_start FUN_0202A07C FUN_0202A07C: ; 0x0202A07C push {r4-r6, lr} add r5, r1, #0x0 add r6, r0, #0x0 add r0, r5, #0x0 add r4, r2, #0x0 bl FUN_0202A028 add r2, r0, #0x0 cmp r4, r2 bhs _0202A09C add r0, r6, #0x0 add r1, r5, #0x0 add r2, r4, #0x0 bl FUN_02029FF8 pop {r4-r6, pc} _0202A09C: add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_02029FF8 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0202A0A8 FUN_0202A0A8: ; 0x0202A0A8 push {r3-r7, lr} add r6, r1, #0x0 add r7, r0, #0x0 add r0, r6, #0x0 add r5, r2, #0x0 bl FUN_0202A028 add r4, r0, #0x0 add r0, r7, #0x0 add r1, r6, #0x0 bl FUN_02029FD4 cmp r5, r4 bls _0202A0C6 add r5, r4, #0x0 _0202A0C6: cmp r0, r5 bhs _0202A0D6 add r0, r7, #0x0 add r1, r6, #0x0 add r2, r5, #0x0 bl FUN_02029FF8 pop {r3-r7, pc} _0202A0D6: cmp r0, r4 bls _0202A0E4 add r0, r7, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 bl FUN_02029FF8 _0202A0E4: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0202A0E8 FUN_0202A0E8: ; 0x0202A0E8 push {r4-r6, lr} add r6, r1, #0x0 add r5, r0, #0x0 add r0, r6, #0x0 bl FUN_0202A028 add r4, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02029FD4 add r2, r0, #0x1 cmp r2, r4 bhs _0202A10E add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02029FF8 pop {r4-r6, pc} _0202A10E: add r0, r5, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 bl FUN_02029FF8 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0202A11C FUN_0202A11C: ; 0x0202A11C push {r3-r7, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r0, r4, #0x0 add r7, r2, #0x0 bl FUN_0202A028 add r6, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02029FD4 add r2, r0, r7 cmp r2, r6 bhs _0202A144 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02029FF8 pop {r3-r7, pc} _0202A144: add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_02029FF8 pop {r3-r7, pc} thumb_func_start FUN_0202A150 FUN_0202A150: ; 0x0202A150 push {r4-r6, lr} add r6, r1, #0x0 add r5, r0, #0x0 add r0, r6, #0x0 bl FUN_0202A028 add r4, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02029FD4 cmp r0, r4 bhi _0202A16C add r4, r0, #0x0 _0202A16C: add r0, r4, #0x0 pop {r4-r6, pc} thumb_func_start FUN_0202A170 FUN_0202A170: ; 0x0202A170 push {r4-r6, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x26 blt _0202A17E bl ErrorHandling _0202A17E: add r0, r5, #0x0 mov r1, #0x0 bl FUN_0202A150 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_0202A070 ldr r2, _0202A1B4 ; =0x05F5E0FF add r0, r6, r0 cmp r0, r2 bls _0202A1A0 add r0, r5, #0x0 mov r1, #0x0 bl FUN_0202A07C pop {r4-r6, pc} _0202A1A0: add r0, r4, #0x0 bl FUN_0202A070 add r2, r0, #0x0 add r0, r5, #0x0 mov r1, #0x0 bl FUN_0202A11C pop {r4-r6, pc} nop _0202A1B4: .word 0x05F5E0FF thumb_func_start FUN_0202A1B8 FUN_0202A1B8: ; 0x0202A1B8 ldr r3, _0202A1C0 ; =FUN_0202A150 mov r1, #0x0 bx r3 nop _0202A1C0: .word FUN_0202A150 thumb_func_start FUN_0202A1C4 FUN_0202A1C4: ; 0x0202A1C4 push {r4, lr} add r4, r0, #0x0 add r0, r1, #0x0 add r1, r2, #0x0 bl FUN_02024594 cmp r0, #0x0 bne _0202A1DC add r0, r4, #0x0 mov r1, #0x16 bl FUN_0202A170 _0202A1DC: pop {r4, pc} .balign 4 thumb_func_start FUN_0202A1E0 FUN_0202A1E0: ; 0x0202A1E0 mov r0, #0xe4 bx lr thumb_func_start FUN_0202A1E4 FUN_0202A1E4: ; 0x0202A1E4 ldr r3, _0202A1EC ; =MI_CpuFill8 mov r1, #0x0 mov r2, #0x3c bx r3 .balign 4 _0202A1EC: .word MI_CpuFill8 thumb_func_start FUN_0202A1F0 FUN_0202A1F0: ; 0x0202A1F0 push {r4, lr} mov r2, #0x5a mov r1, #0x0 lsl r2, r2, #0x2 add r4, r0, #0x0 blx MI_CpuFill8 mov r0, #0x1 strb r0, [r4, #0x3] pop {r4, pc} thumb_func_start FUN_0202A204 FUN_0202A204: ; 0x0202A204 push {r4, lr} add r4, r0, #0x0 mov r1, #0x0 bl FUN_02013764 add r0, r4, #0x0 add r0, #0x8 mov r1, #0x1 bl FUN_02013764 add r0, r4, #0x0 add r0, #0x10 mov r1, #0x2 bl FUN_02013764 add r4, #0x18 add r0, r4, #0x0 mov r1, #0x3 bl FUN_02013764 pop {r4, pc} .balign 4 thumb_func_start FUN_0202A230 FUN_0202A230: ; 0x0202A230 ldr r3, _0202A238 ; =MI_CpuFill8 mov r1, #0x0 ldr r2, _0202A23C ; =0x00000B3C bx r3 .balign 4 _0202A238: .word MI_CpuFill8 _0202A23C: .word 0x00000B3C thumb_func_start FUN_0202A240 FUN_0202A240: ; 0x0202A240 push {r3, lr} cmp r1, #0xa bhi _0202A2BE add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0202A252: ; jump table (using 16-bit offset) .short _0202A268 - _0202A252 - 2; case 0 .short _0202A270 - _0202A252 - 2; case 1 .short _0202A274 - _0202A252 - 2; case 2 .short _0202A278 - _0202A252 - 2; case 3 .short _0202A27C - _0202A252 - 2; case 4 .short _0202A280 - _0202A252 - 2; case 5 .short _0202A28E - _0202A252 - 2; case 6 .short _0202A29C - _0202A252 - 2; case 7 .short _0202A2A4 - _0202A252 - 2; case 8 .short _0202A2B2 - _0202A252 - 2; case 9 .short _0202A2BA - _0202A252 - 2; case 10 _0202A268: ldrb r0, [r0, #0x0] lsl r0, r0, #0x1b lsr r0, r0, #0x1d pop {r3, pc} _0202A270: ldrb r0, [r0, #0x2] pop {r3, pc} _0202A274: ldrb r0, [r0, #0x3] pop {r3, pc} _0202A278: ldrh r0, [r0, #0x4] pop {r3, pc} _0202A27C: ldrh r0, [r0, #0x6] pop {r3, pc} _0202A280: add r1, r2, #0x0 add r0, #0x8 mov r2, #0x4 blx MI_CpuCopy8 mov r0, #0x0 pop {r3, pc} _0202A28E: add r1, r2, #0x0 add r0, #0x2c mov r2, #0x10 blx MI_CpuCopy8 mov r0, #0x0 pop {r3, pc} _0202A29C: ldrb r0, [r0, #0x0] lsl r0, r0, #0x1f lsr r0, r0, #0x1f pop {r3, pc} _0202A2A4: add r1, r2, #0x0 add r0, #0xc mov r2, #0x1c blx MI_CpuCopy8 mov r0, #0x0 pop {r3, pc} _0202A2B2: ldrb r0, [r0, #0x0] lsl r0, r0, #0x18 lsr r0, r0, #0x1d pop {r3, pc} _0202A2BA: ldr r0, [r0, #0x28] pop {r3, pc} _0202A2BE: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0202A2C4 FUN_0202A2C4: ; 0x0202A2C4 push {r4, lr} add r3, r0, #0x0 cmp r1, #0xa bhi _0202A36A add r0, r1, r1 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0202A2D8: ; jump table (using 16-bit offset) .short _0202A2EE - _0202A2D8 - 2; case 0 .short _0202A300 - _0202A2D8 - 2; case 1 .short _0202A306 - _0202A2D8 - 2; case 2 .short _0202A30C - _0202A2D8 - 2; case 3 .short _0202A312 - _0202A2D8 - 2; case 4 .short _0202A318 - _0202A2D8 - 2; case 5 .short _0202A326 - _0202A2D8 - 2; case 6 .short _0202A334 - _0202A2D8 - 2; case 7 .short _0202A346 - _0202A2D8 - 2; case 8 .short _0202A35A - _0202A2D8 - 2; case 9 .short _0202A354 - _0202A2D8 - 2; case 10 _0202A2EE: ldrb r1, [r3, #0x0] mov r0, #0x1c bic r1, r0 ldrb r0, [r2, #0x0] lsl r0, r0, #0x1d lsr r0, r0, #0x1b orr r0, r1 strb r0, [r3, #0x0] pop {r4, pc} _0202A300: ldrb r0, [r2, #0x0] strb r0, [r3, #0x2] pop {r4, pc} _0202A306: ldrb r0, [r2, #0x0] strb r0, [r3, #0x3] pop {r4, pc} _0202A30C: ldrh r0, [r2, #0x0] strh r0, [r3, #0x4] pop {r4, pc} _0202A312: ldrh r0, [r2, #0x0] strh r0, [r3, #0x6] pop {r4, pc} _0202A318: add r3, #0x8 add r0, r2, #0x0 add r1, r3, #0x0 mov r2, #0x4 blx MI_CpuCopy8 pop {r4, pc} _0202A326: add r3, #0x2c add r0, r2, #0x0 add r1, r3, #0x0 mov r2, #0x10 blx MI_CpuCopy8 pop {r4, pc} _0202A334: ldrb r4, [r3, #0x0] ldrb r1, [r2, #0x0] mov r0, #0x1 bic r4, r0 mov r0, #0x1 and r0, r1 orr r0, r4 strb r0, [r3, #0x0] pop {r4, pc} _0202A346: add r3, #0xc add r0, r2, #0x0 add r1, r3, #0x0 mov r2, #0x1c blx MI_CpuCopy8 pop {r4, pc} _0202A354: ldr r0, [r2, #0x0] str r0, [r3, #0x28] pop {r4, pc} _0202A35A: ldrb r1, [r3, #0x0] mov r0, #0xe0 bic r1, r0 ldrb r0, [r2, #0x0] lsl r0, r0, #0x1d lsr r0, r0, #0x18 orr r0, r1 strb r0, [r3, #0x0] _0202A36A: pop {r4, pc} thumb_func_start FUN_0202A36C FUN_0202A36C: ; 0x0202A36C push {r3-r4} ldrb r4, [r0, #0x3] add r1, r4, r1 cmp r1, #0xff bge _0202A378 strb r1, [r0, #0x3] _0202A378: ldrh r1, [r0, #0x4] add r2, r1, r2 ldr r1, _0202A394 ; =0x0000FFFF cmp r2, r1 bge _0202A384 strh r2, [r0, #0x4] _0202A384: ldrh r1, [r0, #0x6] add r2, r1, r3 ldr r1, _0202A394 ; =0x0000FFFF cmp r2, r1 bge _0202A390 strh r2, [r0, #0x6] _0202A390: pop {r3-r4} bx lr .balign 4 _0202A394: .word 0x0000FFFF thumb_func_start FUN_0202A398 FUN_0202A398: ; 0x0202A398 ldrb r0, [r0, #0x0] lsl r0, r0, #0x1e lsr r0, r0, #0x1f bx lr thumb_func_start FUN_0202A3A0 FUN_0202A3A0: ; 0x0202A3A0 lsl r1, r1, #0x18 lsr r1, r1, #0x18 lsl r1, r1, #0x1f ldrb r3, [r0, #0x0] mov r2, #0x2 lsr r1, r1, #0x1e bic r3, r2 orr r1, r3 strb r1, [r0, #0x0] bx lr thumb_func_start FUN_0202A3B4 FUN_0202A3B4: ; 0x0202A3B4 cmp r2, #0x6 bhi _0202A402 add r2, r2, r2 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _0202A3C4: ; jump table (using 16-bit offset) .short _0202A402 - _0202A3C4 - 2; case 0 .short _0202A3D2 - _0202A3C4 - 2; case 1 .short _0202A402 - _0202A3C4 - 2; case 2 .short _0202A402 - _0202A3C4 - 2; case 3 .short _0202A402 - _0202A3C4 - 2; case 4 .short _0202A3E0 - _0202A3C4 - 2; case 5 .short _0202A3F2 - _0202A3C4 - 2; case 6 _0202A3D2: ldr r2, _0202A408 ; =0x0000270F cmp r1, r2 bls _0202A3DC strh r2, [r0, #0x0] b _0202A402 _0202A3DC: strh r1, [r0, #0x0] b _0202A402 _0202A3E0: ldrh r2, [r0, #0x0] add r2, r2, r1 ldr r1, _0202A408 ; =0x0000270F cmp r2, r1 ble _0202A3EE strh r1, [r0, #0x0] b _0202A402 _0202A3EE: strh r2, [r0, #0x0] b _0202A402 _0202A3F2: ldrh r2, [r0, #0x0] cmp r2, r1 bhs _0202A3FE mov r1, #0x0 strh r1, [r0, #0x0] b _0202A402 _0202A3FE: sub r1, r2, r1 strh r1, [r0, #0x0] _0202A402: ldrh r0, [r0, #0x0] bx lr nop _0202A408: .word 0x0000270F thumb_func_start FUN_0202A40C FUN_0202A40C: ; 0x0202A40C cmp r1, #0x2 beq _0202A416 cmp r1, #0x3 beq _0202A424 b _0202A440 _0202A416: mov r1, #0x0 strb r1, [r0, #0x2] ldrh r2, [r0, #0x8] mov r1, #0x10 bic r2, r1 strh r2, [r0, #0x8] b _0202A440 _0202A424: ldrh r1, [r0, #0x8] lsl r1, r1, #0x1b lsr r1, r1, #0x1f beq _0202A434 ldrb r1, [r0, #0x2] add r1, r1, #0x1 strb r1, [r0, #0x2] b _0202A440 _0202A434: mov r1, #0x1 strb r1, [r0, #0x2] ldrh r2, [r0, #0x8] mov r1, #0x10 orr r1, r2 strh r1, [r0, #0x8] _0202A440: ldrb r0, [r0, #0x2] bx lr thumb_func_start FUN_0202A444 FUN_0202A444: ; 0x0202A444 cmp r1, #0x2 beq _0202A452 cmp r1, #0x3 beq _0202A458 cmp r1, #0x4 beq _0202A464 b _0202A46E _0202A452: mov r1, #0x1 strb r1, [r0, #0x3] b _0202A46E _0202A458: ldrb r1, [r0, #0x3] cmp r1, #0xa bhs _0202A46E add r1, r1, #0x1 strb r1, [r0, #0x3] b _0202A46E _0202A464: ldrb r1, [r0, #0x3] cmp r1, #0x1 bls _0202A46E sub r1, r1, #0x1 strb r1, [r0, #0x3] _0202A46E: ldrb r0, [r0, #0x3] bx lr .balign 4 thumb_func_start FUN_0202A474 FUN_0202A474: ; 0x0202A474 push {r3, lr} add r3, r0, #0x0 cmp r1, #0x0 bne _0202A48A add r3, #0xc0 add r0, r2, #0x0 add r1, r3, #0x0 mov r2, #0xa8 blx MI_CpuCopy8 pop {r3, pc} _0202A48A: add r3, #0x18 add r0, r2, #0x0 add r1, r3, #0x0 mov r2, #0xa8 blx MI_CpuCopy8 pop {r3, pc} thumb_func_start FUN_0202A498 FUN_0202A498: ; 0x0202A498 push {r3, lr} cmp r1, #0x0 bne _0202A4AA add r1, r2, #0x0 add r0, #0xc0 mov r2, #0xa8 blx MI_CpuCopy8 pop {r3, pc} _0202A4AA: add r1, r2, #0x0 add r0, #0x18 mov r2, #0xa8 blx MI_CpuCopy8 pop {r3, pc} .balign 4 thumb_func_start FUN_0202A4B8 FUN_0202A4B8: ; 0x0202A4B8 push {r4-r6, lr} add r6, r0, #0x0 ldrb r0, [r1, #0x2] mov r2, #0xfa lsl r2, r2, #0x2 sub r0, r0, #0x1 add r3, r0, #0x0 mul r3, r2 lsl r0, r3, #0x10 lsr r4, r0, #0x10 ldrh r3, [r1, #0x4] mov r0, #0xa ldrb r5, [r1, #0x3] mul r0, r3 mov r3, #0x14 mul r3, r5 lsl r0, r0, #0x10 lsl r3, r3, #0x10 lsr r0, r0, #0x10 lsr r3, r3, #0x10 add r3, r0, r3 add r0, r2, #0x0 sub r0, #0x32 cmp r3, r0 ble _0202A4EE mov r5, #0x0 b _0202A4F6 _0202A4EE: sub r2, #0x32 sub r0, r2, r3 lsl r0, r0, #0x10 lsr r5, r0, #0x10 _0202A4F6: ldrh r1, [r1, #0x6] ldr r0, _0202A51C ; =0x000003CA cmp r1, r0 bls _0202A502 mov r1, #0x0 b _0202A510 _0202A502: add r0, #0x1e sub r0, r0, r1 mov r1, #0x1e blx _s32_div_f lsl r0, r0, #0x10 lsr r1, r0, #0x10 _0202A510: add r0, r4, r5 add r0, r1, r0 lsl r0, r0, #0x10 lsr r0, r0, #0x10 strh r0, [r6, #0x16] pop {r4-r6, pc} .balign 4 _0202A51C: .word 0x000003CA thumb_func_start FUN_0202A520 FUN_0202A520: ; 0x0202A520 ldrh r0, [r0, #0x16] bx lr thumb_func_start FUN_0202A524 FUN_0202A524: ; 0x0202A524 push {r3, lr} ldrh r0, [r0, #0x16] mov r1, #0xfa lsl r1, r1, #0x2 blx _s32_div_f lsl r0, r0, #0x18 lsr r0, r0, #0x18 pop {r3, pc} .balign 4 thumb_func_start FUN_0202A538 FUN_0202A538: ; 0x0202A538 push {r4-r5} cmp r1, #0x5 bne _0202A544 mov r0, #0x0 pop {r4-r5} bx lr _0202A544: cmp r2, #0x2 beq _0202A54E cmp r2, #0x3 beq _0202A558 b _0202A56A _0202A54E: lsl r2, r1, #0x1 mov r3, #0x0 add r2, r0, r2 strh r3, [r2, #0xc] b _0202A56A _0202A558: add r5, r0, #0x0 add r5, #0xc lsl r4, r1, #0x1 ldrh r3, [r5, r4] ldr r2, _0202A574 ; =0x0000FFFE cmp r3, r2 bhs _0202A56A add r2, r3, #0x1 strh r2, [r5, r4] _0202A56A: lsl r1, r1, #0x1 add r0, r0, r1 ldrh r0, [r0, #0xc] pop {r4-r5} bx lr .balign 4 _0202A574: .word 0x0000FFFE thumb_func_start FUN_0202A578 FUN_0202A578: ; 0x0202A578 push {r3-r4} mov r3, #0x1 mov r4, #0x0 cmp r1, #0x0 bls _0202A590 _0202A582: add r4, r4, #0x1 lsl r4, r4, #0x10 lsl r3, r3, #0x11 lsr r4, r4, #0x10 lsr r3, r3, #0x10 cmp r4, r1 blo _0202A582 _0202A590: cmp r2, #0x0 beq _0202A5B4 cmp r2, #0x1 beq _0202A5AC cmp r2, #0x2 bne _0202A5C2 ldr r1, _0202A5C8 ; =0x0000FFFF eor r1, r3 lsl r1, r1, #0x10 lsr r2, r1, #0x10 ldrh r1, [r0, #0x8] and r1, r2 strh r1, [r0, #0x8] b _0202A5C2 _0202A5AC: ldrh r1, [r0, #0x8] orr r1, r3 strh r1, [r0, #0x8] b _0202A5C2 _0202A5B4: ldrh r0, [r0, #0x8] add r2, r0, #0x0 asr r2, r1 mov r0, #0x1 and r0, r2 pop {r3-r4} bx lr _0202A5C2: mov r0, #0x0 pop {r3-r4} bx lr .balign 4 _0202A5C8: .word 0x0000FFFF thumb_func_start FUN_0202A5CC FUN_0202A5CC: ; 0x0202A5CC str r1, [r0, #0x4] bx lr thumb_func_start FUN_0202A5D0 FUN_0202A5D0: ; 0x0202A5D0 ldr r0, [r0, #0x4] bx lr thumb_func_start FUN_0202A5D4 FUN_0202A5D4: ; 0x0202A5D4 push {r3-r5, lr} add r5, r1, #0x0 mov r1, #0x17 add r4, r2, #0x0 bl FUN_02022610 mov r1, #0x69 lsl r1, r1, #0x2 add r1, r0, r1 lsl r0, r5, #0x3 add r0, r1, r0 add r1, r4, #0x0 bl FUN_02013960 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0202A5F4 FUN_0202A5F4: ; 0x0202A5F4 push {r4, lr} add r4, r1, #0x0 mov r1, #0x17 bl FUN_02022610 mov r1, #0x69 lsl r1, r1, #0x2 add r1, r0, r1 lsl r0, r4, #0x3 add r0, r1, r0 pop {r4, pc} .balign 4 thumb_func_start FUN_0202A60C FUN_0202A60C: ; 0x0202A60C push {r3-r6} add r4, r3, #0x0 mov r3, #0x1 cmp r2, #0x0 beq _0202A66C cmp r2, #0xc8 bhi _0202A66C cmp r1, #0x0 beq _0202A66C cmp r1, #0xa bhi _0202A66C sub r5, r2, #0x1 sub r2, r1, #0x1 mov r1, #0xc8 mul r1, r2 add r1, r5, r1 lsl r1, r1, #0x10 lsr r1, r1, #0x10 lsr r6, r1, #0x1f lsl r5, r1, #0x1d sub r5, r5, r6 mov r2, #0x1d ror r5, r2 add r2, r6, r5 lsl r2, r2, #0x18 lsr r2, r2, #0x18 lsl r3, r2 lsl r2, r3, #0x18 lsl r1, r1, #0x15 lsr r5, r2, #0x18 add r3, r0, #0x4 lsr r2, r1, #0x18 ldrb r1, [r3, r2] orr r1, r5 strb r1, [r3, r2] ldr r3, [r4, #0x0] ldr r1, [r4, #0x8] lsl r5, r3, #0x18 ldr r3, [r4, #0x4] lsl r1, r1, #0x18 lsl r3, r3, #0x18 lsr r3, r3, #0x8 ldr r2, [r4, #0xc] lsr r1, r1, #0x10 orr r3, r5 orr r1, r3 orr r1, r2 str r1, [r0, #0x0] _0202A66C: pop {r3-r6} bx lr thumb_func_start FUN_0202A670 FUN_0202A670: ; 0x0202A670 push {r4, lr} add r4, r0, #0x0 add r0, r4, #0x4 mov r1, #0x0 mov r2, #0xfa blx MI_CpuFill8 add r0, r4, #0x0 mov r1, #0x0 mov r2, #0x4 blx MI_CpuFill8 pop {r4, pc} .balign 4 thumb_func_start FUN_0202A68C FUN_0202A68C: ; 0x0202A68C ldr r3, [r0, #0x0] ldr r2, [r1, #0x0] cmp r3, r2 bls _0202A698 mov r0, #0x1 bx lr _0202A698: ldr r3, [r0, #0x4] ldr r2, [r1, #0x4] cmp r3, r2 bls _0202A6A4 mov r0, #0x1 bx lr _0202A6A4: ldr r2, [r0, #0x8] ldr r0, [r1, #0x8] cmp r2, r0 bls _0202A6B0 mov r0, #0x1 bx lr _0202A6B0: mov r0, #0x0 bx lr thumb_func_start FUN_0202A6B4 FUN_0202A6B4: ; 0x0202A6B4 push {r3-r7, lr} sub sp, #0x10 add r6, r2, #0x0 add r5, r0, #0x0 add r4, r1, #0x0 mov r7, #0x1 cmp r6, #0xc8 bhi _0202A6C8 cmp r4, #0xa bls _0202A6CE _0202A6C8: add sp, #0x10 mov r0, #0x0 pop {r3-r7, pc} _0202A6CE: ldr r0, [r5, #0x0] lsr r1, r0, #0x18 lsl r1, r1, #0x18 lsr r1, r1, #0x18 str r1, [sp, #0x0] lsr r1, r0, #0x10 lsl r1, r1, #0x18 lsr r1, r1, #0x18 str r1, [sp, #0x4] lsr r1, r0, #0x8 lsl r1, r1, #0x18 lsl r0, r0, #0x18 lsr r1, r1, #0x18 lsr r0, r0, #0x18 str r1, [sp, #0x8] str r0, [sp, #0xc] add r0, r3, #0x0 add r1, sp, #0x0 bl FUN_0202A68C cmp r0, #0x0 beq _0202A706 add r0, r5, #0x0 bl FUN_0202A670 add sp, #0x10 mov r0, #0x0 pop {r3-r7, pc} _0202A706: sub r1, r4, #0x1 mov r0, #0xc8 mul r0, r1 sub r2, r6, #0x1 add r0, r2, r0 lsl r0, r0, #0x10 lsr r0, r0, #0x10 lsr r3, r0, #0x1f lsl r2, r0, #0x1d lsl r0, r0, #0x15 lsr r0, r0, #0x18 add r0, r5, r0 sub r2, r2, r3 mov r1, #0x1d ror r2, r1 add r1, r3, r2 lsl r1, r1, #0x18 lsr r1, r1, #0x18 add r2, r7, #0x0 lsl r2, r1 lsl r1, r2, #0x18 ldrb r0, [r0, #0x4] lsr r1, r1, #0x18 tst r0, r1 beq _0202A73E add sp, #0x10 add r0, r7, #0x0 pop {r3-r7, pc} _0202A73E: mov r0, #0x0 add sp, #0x10 pop {r3-r7, pc} thumb_func_start FUN_0202A744 FUN_0202A744: ; 0x0202A744 add r0, #0xfe ldrb r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_0202A74C FUN_0202A74C: ; 0x0202A74C add r0, #0xff ldrb r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_0202A754 FUN_0202A754: ; 0x0202A754 push {r4-r6, lr} add r5, r0, #0x0 add r0, r1, #0x0 mov r1, #0x41 add r4, r2, #0x0 lsl r1, r1, #0x2 ldr r2, _0202A77C ; =0x0000063C add r1, r5, r1 add r6, r3, #0x0 blx MI_CpuCopy8 ldr r0, _0202A780 ; =0x00000101 strb r4, [r5, r0] sub r0, r0, #0x1 strb r6, [r5, r0] mov r0, #0x1 add r5, #0xfe strb r0, [r5, #0x0] pop {r4-r6, pc} nop _0202A77C: .word 0x0000063C _0202A780: .word 0x00000101 thumb_func_start FUN_0202A784 FUN_0202A784: ; 0x0202A784 ldr r2, _0202A794 ; =0x00000101 ldrb r3, [r0, r2] sub r2, r2, #0x1 strb r3, [r1, #0x0] ldrb r0, [r0, r2] strb r0, [r1, #0x1] bx lr nop _0202A794: .word 0x00000101 thumb_func_start FUN_0202A798 FUN_0202A798: ; 0x0202A798 push {r3-r7, lr} add r6, r1, #0x0 mov r1, #0x41 lsl r1, r1, #0x2 add r5, r0, r1 mov r0, #0xe4 add r4, r2, #0x0 mul r4, r0 ldr r0, _0202A834 ; =0x00002710 add r7, r6, #0x0 str r0, [r6, #0x0] add r0, r5, r4 add r0, #0xc9 ldrb r0, [r0, #0x0] add r7, #0x30 strh r0, [r6, #0x4] add r0, r5, r4 add r0, #0xc8 ldrb r0, [r0, #0x0] lsl r0, r0, #0x1f lsr r0, r0, #0x1f beq _0202A7EE mov r0, #0x0 mov r1, #0x1a mov r2, #0x11 mov r3, #0xb bl FUN_0200A86C add r1, r5, r4 add r1, #0xc8 ldrb r1, [r1, #0x0] add r2, r6, #0x0 str r0, [sp, #0x0] lsl r1, r1, #0x1e lsr r1, r1, #0x1f add r1, #0x16 add r2, #0x8 bl FUN_0200A968 ldr r0, [sp, #0x0] bl FUN_0200A8B8 b _0202A7FC _0202A7EE: add r0, r5, r4 add r1, r6, #0x0 add r0, #0xa8 add r1, #0x8 mov r2, #0x10 blx MI_CpuCopy8 _0202A7FC: add r0, r5, r4 add r1, r6, #0x0 add r0, #0xca add r1, #0x18 mov r2, #0x8 blx MI_CpuCopy8 add r0, r5, r4 add r1, r6, #0x0 add r0, #0xd2 add r1, #0x20 mov r2, #0x8 blx MI_CpuCopy8 add r0, r5, r4 add r6, #0x28 add r0, #0xda add r1, r6, #0x0 mov r2, #0x8 blx MI_CpuCopy8 add r0, r5, r4 add r1, r7, #0x0 mov r2, #0xa8 blx MI_CpuCopy8 pop {r3-r7, pc} nop _0202A834: .word 0x00002710 thumb_func_start FUN_0202A838 FUN_0202A838: ; 0x0202A838 push {r4-r6, lr} add r5, r0, #0x0 add r0, r1, #0x0 mov r1, #0x1d add r4, r2, #0x0 lsl r1, r1, #0x6 mov r2, #0xff add r1, r5, r1 lsl r2, r2, #0x2 add r6, r3, #0x0 blx MI_CpuCopy8 ldr r0, _0202A860 ; =0x00000103 strb r4, [r5, r0] sub r0, r0, #0x1 strb r6, [r5, r0] mov r0, #0x1 add r5, #0xff strb r0, [r5, #0x0] pop {r4-r6, pc} .balign 4 _0202A860: .word 0x00000103 thumb_func_start FUN_0202A864 FUN_0202A864: ; 0x0202A864 ldr r2, _0202A874 ; =0x00000103 ldrb r3, [r0, r2] sub r2, r2, #0x1 strb r3, [r1, #0x0] ldrb r0, [r0, r2] strb r0, [r1, #0x1] bx lr nop _0202A874: .word 0x00000103 thumb_func_start FUN_0202A878 FUN_0202A878: ; 0x0202A878 push {r3-r5, lr} add r5, r0, #0x0 add r0, r1, #0x0 mov r1, #0xff lsl r1, r1, #0x2 bl FUN_02016998 add r4, r0, #0x0 mov r0, #0x1d lsl r0, r0, #0x6 mov r2, #0xff add r0, r5, r0 add r1, r4, #0x0 lsl r2, r2, #0x2 blx MI_CpuCopy8 add r0, r4, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0202A89C FUN_0202A89C: ; 0x0202A89C mov r0, #0xd lsl r0, r0, #0x8 bx lr .balign 4 thumb_func_start FUN_0202A8A4 FUN_0202A8A4: ; 0x0202A8A4 push {r4, lr} add r4, r0, #0x0 bl FUN_0202A1E4 add r0, r4, #0x0 add r0, #0x3c bl FUN_0202A1F0 mov r0, #0x69 lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_0202A204 mov r0, #0x71 lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_0202A230 pop {r4, pc} .balign 4 thumb_func_start FUN_0202A8CC FUN_0202A8CC: ; 0x0202A8CC ldr r3, _0202A8D4 ; =FUN_02022610 mov r1, #0x17 bx r3 nop _0202A8D4: .word FUN_02022610 thumb_func_start FUN_0202A8D8 FUN_0202A8D8: ; 0x0202A8D8 push {r3, lr} mov r1, #0x17 bl FUN_02022610 add r0, #0x3c pop {r3, pc} thumb_func_start FUN_0202A8E4 FUN_0202A8E4: ; 0x0202A8E4 push {r3, lr} mov r1, #0x17 bl FUN_02022610 mov r1, #0x71 lsl r1, r1, #0x2 add r0, r0, r1 pop {r3, pc} thumb_func_start FUN_0202A8F4 FUN_0202A8F4: ; 0x0202A8F4 mov r0, #0xe bx lr thumb_func_start FUN_0202A8F8 FUN_0202A8F8: ; 0x0202A8F8 mov r1, #0x0 strb r1, [r0, #0x0] strb r1, [r0, #0x1] strb r1, [r0, #0x2] strb r1, [r0, #0x3] strb r1, [r0, #0x4] strb r1, [r0, #0x5] strb r1, [r0, #0x6] strb r1, [r0, #0x7] strb r1, [r0, #0x8] strb r1, [r0, #0x9] strb r1, [r0, #0xa] strb r1, [r0, #0xb] strb r1, [r0, #0xc] strb r1, [r0, #0xd] bx lr thumb_func_start FUN_0202A918 FUN_0202A918: ; 0x0202A918 ldr r3, _0202A920 ; =FUN_02022610 mov r1, #0x18 bx r3 nop _0202A920: .word FUN_02022610 thumb_func_start FUN_0202A924 FUN_0202A924: ; 0x0202A924 mov r0, #0x45 lsl r0, r0, #0x2 bx lr .balign 4 thumb_func_start FUN_0202A92C FUN_0202A92C: ; 0x0202A92C push {r4, lr} mov r2, #0x45 add r4, r0, #0x0 mov r1, #0x0 lsl r2, r2, #0x2 blx FUN_020DF4A4 bl FUN_0201BA60 str r0, [r4, #0x0] bl FUN_0201BA60 str r0, [r4, #0x4] mov r1, #0x0 add r3, r4, #0x0 ldr r0, _0202A980 ; =0x0000FFFF str r1, [r4, #0x8] strh r0, [r4, #0xc] strh r0, [r4, #0xe] mov r0, #0x15 add r3, #0x10 strb r0, [r4, #0x10] add r2, r1, #0x0 _0202A95A: str r2, [r3, #0x4] strb r2, [r3, #0x8] strb r2, [r3, #0x9] strb r2, [r3, #0xa] strb r2, [r3, #0xb] add r1, r1, #0x1 add r3, #0x8 cmp r1, #0x15 blt _0202A95A ldr r0, _0202A984 ; =0x0000010F strb r2, [r4, r0] add r1, r0, #0x1 strb r2, [r4, r1] add r1, r0, #0x2 strb r2, [r4, r1] add r0, r0, #0x3 strb r2, [r4, r0] pop {r4, pc} nop _0202A980: .word 0x0000FFFF _0202A984: .word 0x0000010F thumb_func_start FUN_0202A988 FUN_0202A988: ; 0x0202A988 str r1, [r0, #0x0] str r1, [r0, #0x4] bx lr .balign 4 thumb_func_start FUN_0202A990 FUN_0202A990: ; 0x0202A990 push {r3, lr} cmp r1, #0x1 beq _0202A99C cmp r1, #0x2 beq _0202A9A0 b _0202A9A4 _0202A99C: ldr r0, [r0, #0x0] pop {r3, pc} _0202A9A0: ldr r0, [r0, #0x4] pop {r3, pc} _0202A9A4: bl ErrorHandling mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_0202A9AC FUN_0202A9AC: ; 0x0202A9AC add r0, #0xbc bx lr thumb_func_start FUN_0202A9B0 FUN_0202A9B0: ; 0x0202A9B0 ldr r3, _0202A9B8 ; =FUN_02022610 mov r1, #0x19 bx r3 nop _0202A9B8: .word FUN_02022610 thumb_func_start FUN_0202A9BC FUN_0202A9BC: ; 0x0202A9BC add r0, #0x10 bx lr thumb_func_start FUN_0202A9C0 FUN_0202A9C0: ; 0x0202A9C0 ldrb r0, [r0, #0x0] bx lr thumb_func_start FUN_0202A9C4 FUN_0202A9C4: ; 0x0202A9C4 strb r0, [r1, #0x0] bx lr thumb_func_start FUN_0202A9C8 FUN_0202A9C8: ; 0x0202A9C8 add r1, r1, #0x4 lsl r0, r0, #0x3 add r0, r1, r0 bx lr thumb_func_start FUN_0202A9D0 FUN_0202A9D0: ; 0x0202A9D0 push {r3-r7, lr} add r5, r1, #0x0 bl FUN_0202A9B0 add r6, r0, #0x0 mov r4, #0x0 add r6, #0x10 add r7, r4, #0x0 _0202A9E0: lsl r0, r4, #0x18 lsr r0, r0, #0x18 add r1, r6, #0x0 bl FUN_0202A9C8 ldr r1, [r0, #0x0] cmp r1, #0x0 beq _0202A9F8 sub r1, r1, r5 str r1, [r0, #0x0] bpl _0202A9F8 str r7, [r0, #0x0] _0202A9F8: add r4, r4, #0x1 cmp r4, #0x15 blt _0202A9E0 pop {r3-r7, pc} thumb_func_start FUN_0202AA00 FUN_0202AA00: ; 0x0202AA00 push {r3, lr} bl FUN_0202A9B0 ldr r1, _0202AA10 ; =0x0000010F mov r2, #0x1 strb r2, [r0, r1] pop {r3, pc} nop _0202AA10: .word 0x0000010F thumb_func_start FUN_0202AA14 FUN_0202AA14: ; 0x0202AA14 ldr r1, _0202AA1C ; =0x0000010F ldrb r0, [r0, r1] bx lr nop _0202AA1C: .word 0x0000010F thumb_func_start FUN_0202AA20 FUN_0202AA20: ; 0x0202AA20 add r2, r0, #0x0 add r2, #0xc8 ldr r3, [r2, #0x0] cmp r3, r1 beq _0202AA34 add r2, r0, #0x0 add r2, #0xcc str r3, [r2, #0x0] add r0, #0xc8 str r1, [r0, #0x0] _0202AA34: bx lr .balign 4 thumb_func_start FUN_0202AA38 FUN_0202AA38: ; 0x0202AA38 add r0, #0xcc ldr r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_0202AA40 FUN_0202AA40: ; 0x0202AA40 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x3 blo _0202AA4E bl ErrorHandling _0202AA4E: mov r0, #0x43 add r1, r5, r4 lsl r0, r0, #0x2 ldrb r0, [r1, r0] pop {r3-r5, pc} thumb_func_start FUN_0202AA58 FUN_0202AA58: ; 0x0202AA58 push {r4-r6, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r6, r2, #0x0 cmp r4, #0x3 blo _0202AA68 bl ErrorHandling _0202AA68: mov r0, #0x43 add r1, r5, r4 lsl r0, r0, #0x2 strb r6, [r1, r0] pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0202AA74 FUN_0202AA74: ; 0x0202AA74 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x3 blo _0202AA82 bl ErrorHandling _0202AA82: mov r0, #0x14 mul r0, r4 add r0, r5, r0 add r0, #0xe2 ldrb r0, [r0, #0x0] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0202AA90 FUN_0202AA90: ; 0x0202AA90 ldr r2, [r0, #0x0] mov r1, #0x14 mov r0, #0x0 _0202AA96: strb r0, [r2, #0x0] add r2, r2, #0x1 sub r1, r1, #0x1 bne _0202AA96 bx lr thumb_func_start FUN_0202AAA0 FUN_0202AAA0: ; 0x0202AAA0 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x3 blo _0202AAAE bl ErrorHandling _0202AAAE: mov r0, #0x14 add r5, #0xd0 mul r0, r4 add r0, r5, r0 pop {r3-r5, pc} thumb_func_start FUN_0202AAB8 FUN_0202AAB8: ; 0x0202AAB8 cmp r1, #0x8 bhi _0202AAF8 add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0202AAC8: ; jump table (using 16-bit offset) .short _0202AAF8 - _0202AAC8 - 2; case 0 .short _0202AADA - _0202AAC8 - 2; case 1 .short _0202AADE - _0202AAC8 - 2; case 2 .short _0202AAE2 - _0202AAC8 - 2; case 3 .short _0202AAE6 - _0202AAC8 - 2; case 4 .short _0202AAEA - _0202AAC8 - 2; case 5 .short _0202AAEE - _0202AAC8 - 2; case 6 .short _0202AAF2 - _0202AAC8 - 2; case 7 .short _0202AAF6 - _0202AAC8 - 2; case 8 _0202AADA: ldr r0, [r0, #0x0] bx lr _0202AADE: ldr r0, [r0, #0x4] bx lr _0202AAE2: ldr r0, [r0, #0x8] bx lr _0202AAE6: ldrh r0, [r0, #0xc] bx lr _0202AAEA: ldrh r0, [r0, #0xe] bx lr _0202AAEE: ldrb r0, [r0, #0x10] bx lr _0202AAF2: ldrb r0, [r0, #0x11] bx lr _0202AAF6: ldrb r0, [r0, #0x12] _0202AAF8: bx lr .balign 4 thumb_func_start FUN_0202AAFC FUN_0202AAFC: ; 0x0202AAFC cmp r1, #0x8 bhi _0202AB3C add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0202AB0C: ; jump table (using 16-bit offset) .short _0202AB3C - _0202AB0C - 2; case 0 .short _0202AB1E - _0202AB0C - 2; case 1 .short _0202AB22 - _0202AB0C - 2; case 2 .short _0202AB26 - _0202AB0C - 2; case 3 .short _0202AB2A - _0202AB0C - 2; case 4 .short _0202AB2E - _0202AB0C - 2; case 5 .short _0202AB32 - _0202AB0C - 2; case 6 .short _0202AB36 - _0202AB0C - 2; case 7 .short _0202AB3A - _0202AB0C - 2; case 8 _0202AB1E: str r2, [r0, #0x0] bx lr _0202AB22: str r2, [r0, #0x4] bx lr _0202AB26: str r2, [r0, #0x8] bx lr _0202AB2A: strh r2, [r0, #0xc] bx lr _0202AB2E: strh r2, [r0, #0xe] bx lr _0202AB32: strb r2, [r0, #0x10] bx lr _0202AB36: strb r2, [r0, #0x11] bx lr _0202AB3A: strb r2, [r0, #0x12] _0202AB3C: bx lr .balign 4 thumb_func_start FUN_0202AB40 FUN_0202AB40: ; 0x0202AB40 ldr r1, _0202AB48 ; =0x00000111 add r0, r0, r1 bx lr nop _0202AB48: .word 0x00000111 thumb_func_start FUN_0202AB4C FUN_0202AB4C: ; 0x0202AB4C mov r1, #0x11 lsl r1, r1, #0x4 add r0, r0, r1 bx lr thumb_func_start FUN_0202AB54 FUN_0202AB54: ; 0x0202AB54 mov r1, #0x11 lsl r1, r1, #0x4 ldrb r0, [r0, r1] cmp r0, #0x0 bne _0202AB62 mov r0, #0x1 bx lr _0202AB62: mov r0, #0x0 bx lr .balign 4 thumb_func_start FUN_0202AB68 FUN_0202AB68: ; 0x0202AB68 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x2 bls _0202AB76 bl ErrorHandling _0202AB76: ldr r0, _0202AB7C ; =0x00000112 strb r4, [r5, r0] pop {r3-r5, pc} .balign 4 _0202AB7C: .word 0x00000112 thumb_func_start FUN_0202AB80 FUN_0202AB80: ; 0x0202AB80 ldr r1, _0202AB88 ; =0x00000112 ldrb r0, [r0, r1] bx lr nop _0202AB88: .word 0x00000112 thumb_func_start FUN_0202AB8C FUN_0202AB8C: ; 0x0202AB8C push {r3-r5, lr} add r5, r1, #0x0 add r4, r2, #0x0 bl FUN_0202A9B0 ldrh r1, [r0, #0xc] strh r1, [r5, #0x0] ldrh r0, [r0, #0xe] strh r0, [r4, #0x0] pop {r3-r5, pc} thumb_func_start FUN_0202ABA0 FUN_0202ABA0: ; 0x0202ABA0 push {r3-r5, lr} add r5, r1, #0x0 bl FUN_0202A9B0 add r4, r0, #0x0 cmp r5, #0x10 blo _0202ABB2 bl ErrorHandling _0202ABB2: ldrh r0, [r4, #0xc] strh r0, [r4, #0xe] strh r5, [r4, #0xc] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0202ABBC FUN_0202ABBC: ; 0x0202ABBC ldr r3, _0202ABC4 ; =FUN_02022610 mov r1, #0x1a bx r3 nop _0202ABC4: .word FUN_02022610 thumb_func_start FUN_0202ABC8 FUN_0202ABC8: ; 0x0202ABC8 mov r0, #0xf4 bx lr thumb_func_start FUN_0202ABCC FUN_0202ABCC: ; 0x0202ABCC ldr r3, _0202ABD8 ; =MIi_CpuClearFast add r1, r0, #0x0 mov r0, #0x0 mov r2, #0xf4 bx r3 nop _0202ABD8: .word MIi_CpuClearFast thumb_func_start FUN_0202ABDC FUN_0202ABDC: ; 0x0202ABDC add r0, #0xec ldrh r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_0202ABE4 FUN_0202ABE4: ; 0x0202ABE4 add r0, #0xec strh r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_0202ABEC FUN_0202ABEC: ; 0x0202ABEC ldr r3, _0202ABF4 ; =MIi_CpuCopyFast mov r2, #0xec bx r3 nop _0202ABF4: .word MIi_CpuCopyFast thumb_func_start FUN_0202ABF8 FUN_0202ABF8: ; 0x0202ABF8 ldr r3, _0202AC04 ; =MIi_CpuCopyFast add r2, r0, #0x0 add r0, r1, #0x0 add r1, r2, #0x0 mov r2, #0xec bx r3 .balign 4 _0202AC04: .word MIi_CpuCopyFast thumb_func_start FUN_0202AC08 FUN_0202AC08: ; 0x0202AC08 add r0, #0xf0 ldr r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_0202AC10 FUN_0202AC10: ; 0x0202AC10 add r0, #0xf0 str r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_0202AC18 FUN_0202AC18: ; 0x0202AC18 add r0, #0xee ldrh r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_0202AC20 FUN_0202AC20: ; 0x0202AC20 ldr r0, _0202AC24 ; =0x00001354 bx lr .balign 4 _0202AC24: .word 0x00001354 thumb_func_start FUN_0202AC28 FUN_0202AC28: ; 0x0202AC28 bx lr .balign 4 thumb_func_start FUN_0202AC2C FUN_0202AC2C: ; 0x0202AC2C push {r4-r6, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x8 blt _0202AC3A bl ErrorHandling _0202AC3A: mov r0, #0x1 lsl r0, r0, #0x8 add r6, r5, r0 lsl r3, r4, #0x2 ldr r2, [r6, r3] ldr r1, _0202AC60 ; =0xEDB88320 cmp r2, r1 bne _0202AC58 add r0, #0x2c add r1, r5, r0 lsl r0, r4, #0x6 add r0, r4, r0 lsl r0, r0, #0x2 add r0, r1, r0 pop {r4-r6, pc} _0202AC58: mov r0, #0x0 str r0, [r6, r3] pop {r4-r6, pc} nop _0202AC60: .word 0xEDB88320 thumb_func_start FUN_0202AC64 FUN_0202AC64: ; 0x0202AC64 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x3 blt _0202AC72 bl ErrorHandling _0202AC72: lsl r0, r4, #0x2 add r1, r5, r0 mov r0, #0x12 lsl r0, r0, #0x4 ldr r0, [r1, r0] cmp r0, #0x0 beq _0202AC8E ldr r0, _0202AC94 ; =0x0000094C add r1, r5, r0 mov r0, #0xd6 lsl r0, r0, #0x2 mul r0, r4 add r0, r1, r0 pop {r3-r5, pc} _0202AC8E: mov r0, #0x0 pop {r3-r5, pc} nop _0202AC94: .word 0x0000094C thumb_func_start FUN_0202AC98 FUN_0202AC98: ; 0x0202AC98 push {r3-r7, lr} add r5, r0, #0x0 str r1, [sp, #0x0] add r7, r2, #0x0 bl FUN_0202ADF0 cmp r0, #0x0 bne _0202ACAC mov r0, #0x0 pop {r3-r7, pc} _0202ACAC: mov r0, #0x1 mov r4, #0x0 add r2, r5, #0x0 lsl r0, r0, #0x8 _0202ACB4: ldr r1, [r2, r0] cmp r1, #0x0 bne _0202ACF6 lsl r0, r4, #0x6 mov r2, #0x4b add r0, r4, r0 lsl r2, r2, #0x2 lsl r6, r0, #0x2 add r1, r5, r2 ldr r0, [sp, #0x0] add r1, r1, r6 sub r2, #0x28 blx MI_CpuCopy8 lsl r0, r4, #0x2 add r1, r5, r0 mov r0, #0x1 ldr r2, _0202AD04 ; =0xEDB88320 lsl r0, r0, #0x8 str r2, [r1, r0] add r0, #0x2e add r1, r5, r0 ldrh r0, [r1, r6] mov r2, #0x3 bic r0, r2 lsl r2, r7, #0x10 lsr r3, r2, #0x10 mov r2, #0x3 and r2, r3 orr r0, r2 strh r0, [r1, r6] mov r0, #0x1 pop {r3-r7, pc} _0202ACF6: add r4, r4, #0x1 add r2, r2, #0x4 cmp r4, #0x8 blt _0202ACB4 mov r0, #0x0 pop {r3-r7, pc} nop _0202AD04: .word 0xEDB88320 thumb_func_start FUN_0202AD08 FUN_0202AD08: ; 0x0202AD08 push {r4-r6, lr} add r5, r0, #0x0 add r6, r1, #0x0 bl FUN_0202AE0C cmp r0, #0x0 bne _0202AD1A mov r0, #0x0 pop {r4-r6, pc} _0202AD1A: ldr r0, _0202AD88 ; =0x00000152 ldrb r0, [r6, r0] lsl r0, r0, #0x1c lsr r0, r0, #0x1f cmp r0, #0x1 bne _0202AD34 add r0, r5, #0x0 bl FUN_0202ADF0 cmp r0, #0x0 bne _0202AD34 mov r0, #0x0 pop {r4-r6, pc} _0202AD34: mov r0, #0x12 mov r4, #0x0 add r2, r5, #0x0 lsl r0, r0, #0x4 _0202AD3C: ldr r1, [r2, r0] cmp r1, #0x0 bne _0202AD7C ldr r1, _0202AD8C ; =0x0000094C mov r2, #0xd6 add r3, r5, r1 lsl r2, r2, #0x2 add r1, r4, #0x0 mul r1, r2 add r0, r6, #0x0 add r1, r3, r1 blx MI_CpuCopy8 lsl r0, r4, #0x2 add r1, r5, r0 mov r0, #0x12 ldr r2, _0202AD90 ; =0xEDB88320 lsl r0, r0, #0x4 str r2, [r1, r0] add r0, #0x32 ldrb r0, [r6, r0] lsl r0, r0, #0x1c lsr r0, r0, #0x1f cmp r0, #0x1 bne _0202AD78 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r4, #0x1 bl FUN_0202AC98 _0202AD78: mov r0, #0x1 pop {r4-r6, pc} _0202AD7C: add r4, r4, #0x1 add r2, r2, #0x4 cmp r4, #0x3 blt _0202AD3C mov r0, #0x0 pop {r4-r6, pc} .balign 4 _0202AD88: .word 0x00000152 _0202AD8C: .word 0x0000094C _0202AD90: .word 0xEDB88320 thumb_func_start FUN_0202AD94 FUN_0202AD94: ; 0x0202AD94 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 sub r0, r4, #0x1 cmp r0, #0x8 blt _0202ADA4 bl ErrorHandling _0202ADA4: sub r4, r4, #0x1 lsl r0, r4, #0x2 add r1, r5, r0 mov r0, #0x1 mov r2, #0x0 lsl r0, r0, #0x8 str r2, [r1, r0] add r0, #0x2e add r3, r5, r0 lsl r0, r4, #0x6 add r0, r4, r0 lsl r2, r0, #0x2 ldrh r1, [r3, r2] mov r0, #0x3 bic r1, r0 strh r1, [r3, r2] mov r0, #0x1 pop {r3-r5, pc} thumb_func_start FUN_0202ADC8 FUN_0202ADC8: ; 0x0202ADC8 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x3 blt _0202ADD6 bl ErrorHandling _0202ADD6: lsl r0, r4, #0x2 add r1, r5, r0 mov r0, #0x12 mov r2, #0x0 lsl r0, r0, #0x4 str r2, [r1, r0] add r0, r5, #0x0 add r1, r4, #0x1 bl FUN_0202AEC4 mov r0, #0x1 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0202ADF0 FUN_0202ADF0: ; 0x0202ADF0 mov r1, #0x1 mov r3, #0x0 lsl r1, r1, #0x8 _0202ADF6: ldr r2, [r0, r1] cmp r2, #0x0 bne _0202AE00 mov r0, #0x1 bx lr _0202AE00: add r3, r3, #0x1 add r0, r0, #0x4 cmp r3, #0x8 blt _0202ADF6 mov r0, #0x0 bx lr thumb_func_start FUN_0202AE0C FUN_0202AE0C: ; 0x0202AE0C mov r1, #0x12 mov r3, #0x0 lsl r1, r1, #0x4 _0202AE12: ldr r2, [r0, r1] cmp r2, #0x0 bne _0202AE1C mov r0, #0x1 bx lr _0202AE1C: add r3, r3, #0x1 add r0, r0, #0x4 cmp r3, #0x3 blt _0202AE12 mov r0, #0x0 bx lr thumb_func_start FUN_0202AE28 FUN_0202AE28: ; 0x0202AE28 push {r3-r5, lr} add r5, r1, #0x0 add r4, r0, #0x0 cmp r5, #0x8 blt _0202AE36 bl ErrorHandling _0202AE36: lsl r0, r5, #0x2 add r1, r4, r0 mov r0, #0x1 lsl r0, r0, #0x8 ldr r0, [r1, r0] cmp r0, #0x0 bne _0202AE48 mov r0, #0x0 pop {r3-r5, pc} _0202AE48: mov r0, #0x1 pop {r3-r5, pc} thumb_func_start FUN_0202AE4C FUN_0202AE4C: ; 0x0202AE4C push {r3-r5, lr} add r5, r1, #0x0 add r4, r0, #0x0 cmp r5, #0x3 blt _0202AE5A bl ErrorHandling _0202AE5A: lsl r0, r5, #0x2 add r1, r4, r0 mov r0, #0x12 lsl r0, r0, #0x4 ldr r0, [r1, r0] cmp r0, #0x0 bne _0202AE6C mov r0, #0x0 pop {r3-r5, pc} _0202AE6C: mov r0, #0x1 pop {r3-r5, pc} thumb_func_start FUN_0202AE70 FUN_0202AE70: ; 0x0202AE70 push {r3-r5, lr} add r5, r0, #0x0 mov r4, #0x0 _0202AE76: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0202AE4C cmp r0, #0x1 bne _0202AE86 mov r0, #0x1 pop {r3-r5, pc} _0202AE86: add r4, r4, #0x1 cmp r4, #0x3 blt _0202AE76 mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0202AE90 FUN_0202AE90: ; 0x0202AE90 push {r3-r4} cmp r1, #0x0 beq _0202AEB8 ldr r2, _0202AEC0 ; =0x0000012E mov r3, #0x0 add r4, r0, r2 add r0, r2, #0x0 sub r0, #0x2a _0202AEA0: ldrh r2, [r4, #0x0] lsl r2, r2, #0x1e lsr r2, r2, #0x1e cmp r1, r2 bne _0202AEB0 mov r0, #0x1 pop {r3-r4} bx lr _0202AEB0: add r3, r3, #0x1 add r4, r4, r0 cmp r3, #0x8 blt _0202AEA0 _0202AEB8: mov r0, #0x0 pop {r3-r4} bx lr nop _0202AEC0: .word 0x0000012E thumb_func_start FUN_0202AEC4 FUN_0202AEC4: ; 0x0202AEC4 push {r3-r5, lr} cmp r1, #0x0 beq _0202AEEE ldr r3, _0202AEF0 ; =0x0000012E mov r4, #0x41 mov r2, #0x0 add r3, r0, r3 lsl r4, r4, #0x2 _0202AED4: ldrh r5, [r3, #0x0] lsl r5, r5, #0x1e lsr r5, r5, #0x1e cmp r1, r5 bne _0202AEE6 add r1, r2, #0x1 bl FUN_0202AD94 pop {r3-r5, pc} _0202AEE6: add r2, r2, #0x1 add r3, r3, r4 cmp r2, #0x8 blt _0202AED4 _0202AEEE: pop {r3-r5, pc} .balign 4 _0202AEF0: .word 0x0000012E thumb_func_start FUN_0202AEF4 FUN_0202AEF4: ; 0x0202AEF4 push {r3-r5, lr} add r5, r0, #0x0 mov r0, #0x2 add r4, r1, #0x0 lsl r0, r0, #0xa cmp r4, r0 blt _0202AF06 bl ErrorHandling _0202AF06: mov r0, #0x1 mov r1, #0x7 add r2, r4, #0x0 and r2, r1 add r1, r0, #0x0 lsl r1, r2 asr r2, r4, #0x2 lsr r2, r2, #0x1d add r2, r4, r2 asr r2, r2, #0x3 ldrb r2, [r5, r2] tst r1, r2 bne _0202AF22 mov r0, #0x0 _0202AF22: pop {r3-r5, pc} thumb_func_start FUN_0202AF24 FUN_0202AF24: ; 0x0202AF24 push {r3-r5, lr} add r5, r0, #0x0 mov r0, #0x2 add r4, r1, #0x0 lsl r0, r0, #0xa cmp r4, r0 blt _0202AF36 bl ErrorHandling _0202AF36: asr r0, r4, #0x2 lsr r0, r0, #0x1d add r0, r4, r0 asr r0, r0, #0x3 mov r1, #0x7 ldrb r3, [r5, r0] mov r2, #0x1 and r1, r4 lsl r2, r1 add r1, r3, #0x0 orr r1, r2 strb r1, [r5, r0] pop {r3-r5, pc} thumb_func_start FUN_0202AF50 FUN_0202AF50: ; 0x0202AF50 ldr r3, _0202AF58 ; =FUN_0202AEF4 ldr r1, _0202AF5C ; =0x000007FF bx r3 nop _0202AF58: .word FUN_0202AEF4 _0202AF5C: .word 0x000007FF thumb_func_start FUN_0202AF60 FUN_0202AF60: ; 0x0202AF60 ldr r3, _0202AF68 ; =FUN_0202AF24 ldr r1, _0202AF6C ; =0x000007FF bx r3 nop _0202AF68: .word FUN_0202AF24 _0202AF6C: .word 0x000007FF thumb_func_start FUN_0202AF70 FUN_0202AF70: ; 0x0202AF70 push {r3, lr} ldr r1, _0202AF84 ; =0x021C59D4 ldr r1, [r1, #0x0] cmp r1, #0x0 bne _0202AF82 bl FUN_0202251C ldr r1, _0202AF84 ; =0x021C59D4 str r0, [r1, #0x0] _0202AF82: pop {r3, pc} .balign 4 _0202AF84: .word 0x021C59D4 thumb_func_start FUN_0202AF88 FUN_0202AF88: ; 0x0202AF88 ldr r0, _0202AF98 ; =0x021C59D4 ldr r1, [r0, #0x0] cmp r1, #0x0 beq _0202AF94 mov r1, #0x0 str r1, [r0, #0x0] _0202AF94: bx lr nop _0202AF98: .word 0x021C59D4 thumb_func_start FUN_0202AF9C FUN_0202AF9C: ; 0x0202AF9C push {r3-r5, lr} ldr r4, _0202AFBC ; =0x021C59D4 mov r5, #0x0 _0202AFA2: ldr r0, [r4, #0x0] add r1, r5, #0x0 bl FUN_0202AE28 cmp r0, #0x1 bne _0202AFB2 add r0, r5, #0x1 pop {r3-r5, pc} _0202AFB2: add r5, r5, #0x1 cmp r5, #0x8 blt _0202AFA2 mov r0, #0x0 pop {r3-r5, pc} .balign 4 _0202AFBC: .word 0x021C59D4 thumb_func_start FUN_0202AFC0 FUN_0202AFC0: ; 0x0202AFC0 push {r4, lr} add r4, r0, #0x0 bne _0202AFCA mov r0, #0x0 pop {r4, pc} _0202AFCA: sub r0, r4, #0x1 cmp r0, #0x8 blt _0202AFD4 bl ErrorHandling _0202AFD4: ldr r0, _0202AFF8 ; =0x021C59D4 sub r1, r4, #0x1 ldr r0, [r0, #0x0] bl FUN_0202AE28 cmp r0, #0x1 bne _0202AFF4 ldr r0, _0202AFF8 ; =0x021C59D4 sub r1, r4, #0x1 ldr r0, [r0, #0x0] bl FUN_0202AC2C cmp r0, #0x0 beq _0202AFF4 ldrh r0, [r0, #0x0] pop {r4, pc} _0202AFF4: mov r0, #0x0 pop {r4, pc} .balign 4 _0202AFF8: .word 0x021C59D4 thumb_func_start FUN_0202AFFC FUN_0202AFFC: ; 0x0202AFFC cmp r0, #0x0 beq _0202B016 ldr r1, _0202B01C ; =0x021C59D4 ldr r2, [r1, #0x0] mov r1, #0x13 lsl r1, r1, #0x4 add r2, r2, r1 sub r1, r0, #0x1 lsl r0, r1, #0x6 add r0, r1, r0 lsl r0, r0, #0x2 add r0, r2, r0 bx lr _0202B016: mov r0, #0x0 bx lr nop _0202B01C: .word 0x021C59D4 thumb_func_start FUN_0202B020 FUN_0202B020: ; 0x0202B020 add r1, r0, #0x0 ldr r0, _0202B02C ; =0x021C59D4 ldr r3, _0202B030 ; =FUN_0202AD94 ldr r0, [r0, #0x0] bx r3 nop _0202B02C: .word 0x021C59D4 _0202B030: .word FUN_0202AD94 thumb_func_start FUN_0202B034 FUN_0202B034: ; 0x0202B034 ldr r0, _0202B038 ; =0x00002AB0 bx lr .balign 4 _0202B038: .word 0x00002AB0 thumb_func_start FUN_0202B03C FUN_0202B03C: ; 0x0202B03C ldr r3, _0202B048 ; =MIi_CpuClear32 add r1, r0, #0x0 mov r0, #0x0 ldr r2, _0202B04C ; =0x00002AB0 bx r3 nop _0202B048: .word MIi_CpuClear32 _0202B04C: .word 0x00002AB0 thumb_func_start FUN_0202B050 FUN_0202B050: ; 0x0202B050 push {r3-r7, lr} sub sp, #0x18 str r0, [sp, #0x0] str r1, [sp, #0x4] str r2, [sp, #0x8] cmp r0, #0x0 bne _0202B062 bl ErrorHandling _0202B062: ldr r1, _0202B1E0 ; =0x00002AA8 ldr r0, [sp, #0x0] ldr r0, [r0, r1] cmp r0, #0x1e blo _0202B070 bl ErrorHandling _0202B070: ldr r1, _0202B1E4 ; =0x00002AAC ldr r0, [sp, #0x0] ldr r2, [r0, r1] ldr r0, _0202B1E8 ; =0x0000270F cmp r2, r0 blo _0202B07E b _0202B1DC _0202B07E: ldr r0, [sp, #0x0] sub r1, r1, #0x4 ldr r1, [r0, r1] mov r0, #0x5b lsl r0, r0, #0x2 add r2, r1, #0x0 mul r2, r0 ldr r0, [sp, #0x0] add r0, r0, r2 str r0, [sp, #0x14] ldr r0, [sp, #0x4] bl FUN_0206B9AC str r0, [sp, #0x10] mov r0, #0xb mov r1, #0x0 bl FUN_020219F4 mov r2, #0x5a add r6, r0, #0x0 ldr r1, [sp, #0x14] mov r0, #0x0 lsl r2, r2, #0x2 blx MIi_CpuClear16 ldr r0, [sp, #0x10] mov r7, #0x0 cmp r0, #0x0 ble _0202B18E ldr r5, [sp, #0x14] _0202B0BA: ldr r0, [sp, #0x4] add r1, r7, #0x0 bl FUN_0206B9B0 add r4, r0, #0x0 bl FUN_020669D4 str r0, [sp, #0xc] add r0, r4, #0x0 mov r1, #0x4c mov r2, #0x0 bl FUN_020671BC cmp r0, #0x0 bne _0202B17E add r0, r4, #0x0 mov r1, #0x5 mov r2, #0x0 bl FUN_020671BC strh r0, [r5, #0x0] add r0, r4, #0x0 mov r1, #0xa0 mov r2, #0x0 bl FUN_020671BC strb r0, [r5, #0x2] add r0, r4, #0x0 mov r1, #0x70 mov r2, #0x0 bl FUN_020671BC mov r1, #0x0 strb r0, [r5, #0x3] add r0, r4, #0x0 add r2, r1, #0x0 bl FUN_020671BC str r0, [r5, #0x4] add r0, r4, #0x0 mov r1, #0x7 mov r2, #0x0 bl FUN_020671BC str r0, [r5, #0x8] add r0, r4, #0x0 mov r1, #0x36 mov r2, #0x0 bl FUN_020671BC strh r0, [r5, #0x32] add r0, r4, #0x0 mov r1, #0x37 mov r2, #0x0 bl FUN_020671BC strh r0, [r5, #0x34] add r0, r4, #0x0 mov r1, #0x38 mov r2, #0x0 bl FUN_020671BC strh r0, [r5, #0x36] add r0, r4, #0x0 mov r1, #0x39 mov r2, #0x0 bl FUN_020671BC strh r0, [r5, #0x38] cmp r6, #0x0 beq _0202B176 add r0, r4, #0x0 mov r1, #0x76 add r2, r6, #0x0 bl FUN_020671BC add r1, r5, #0x0 add r0, r6, #0x0 add r1, #0xc mov r2, #0xb bl FUN_02021EF0 add r0, r4, #0x0 mov r1, #0x90 add r2, r6, #0x0 bl FUN_020671BC add r1, r5, #0x0 add r0, r6, #0x0 add r1, #0x22 mov r2, #0x8 bl FUN_02021EF0 b _0202B17C _0202B176: ldr r0, _0202B1EC ; =0x0000FFFF strh r0, [r5, #0xc] strh r0, [r5, #0x22] _0202B17C: add r5, #0x3c _0202B17E: ldr r1, [sp, #0xc] add r0, r4, #0x0 bl FUN_02066A20 ldr r0, [sp, #0x10] add r7, r7, #0x1 cmp r7, r0 blt _0202B0BA _0202B18E: ldr r0, [sp, #0x8] mov r1, #0x5a ldr r2, [r0, #0x0] ldr r0, [sp, #0x14] lsl r1, r1, #0x2 strh r2, [r0, r1] ldr r0, [sp, #0x8] add r2, r1, #0x2 ldr r3, [r0, #0x4] ldr r0, [sp, #0x14] add r1, r1, #0x3 strb r3, [r0, r2] ldr r0, [sp, #0x8] ldr r2, [r0, #0x8] ldr r0, [sp, #0x14] strb r2, [r0, r1] ldr r1, _0202B1E0 ; =0x00002AA8 ldr r0, [sp, #0x0] ldr r0, [r0, r1] add r2, r0, #0x1 ldr r0, [sp, #0x0] str r2, [r0, r1] ldr r0, [r0, r1] cmp r0, #0x1e blo _0202B1C6 ldr r0, [sp, #0x0] mov r2, #0x0 str r2, [r0, r1] _0202B1C6: ldr r1, _0202B1E4 ; =0x00002AAC ldr r0, [sp, #0x0] ldr r0, [r0, r1] add r2, r0, #0x1 ldr r0, [sp, #0x0] cmp r6, #0x0 str r2, [r0, r1] beq _0202B1DC add r0, r6, #0x0 bl FUN_02021A20 _0202B1DC: add sp, #0x18 pop {r3-r7, pc} .balign 4 _0202B1E0: .word 0x00002AA8 _0202B1E4: .word 0x00002AAC _0202B1E8: .word 0x0000270F _0202B1EC: .word 0x0000FFFF thumb_func_start FUN_0202B1F0 FUN_0202B1F0: ; 0x0202B1F0 push {r4, lr} add r4, r0, #0x0 bne _0202B1FA bl ErrorHandling _0202B1FA: ldr r0, _0202B214 ; =0x00002AA8 ldr r0, [r4, r0] cmp r0, #0x1e blo _0202B206 bl ErrorHandling _0202B206: ldr r0, _0202B218 ; =0x00002AAC ldr r0, [r4, r0] cmp r0, #0x1e blo _0202B210 mov r0, #0x1e _0202B210: pop {r4, pc} nop _0202B214: .word 0x00002AA8 _0202B218: .word 0x00002AAC thumb_func_start FUN_0202B21C FUN_0202B21C: ; 0x0202B21C push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _0202B22A bl ErrorHandling _0202B22A: ldr r0, _0202B248 ; =0x00002AA8 ldr r0, [r5, r0] cmp r0, #0x1e blo _0202B236 bl ErrorHandling _0202B236: cmp r4, #0x1e blt _0202B23E bl ErrorHandling _0202B23E: ldr r0, _0202B24C ; =0x00002AAC ldr r0, [r5, r0] sub r0, r0, r4 pop {r3-r5, pc} nop _0202B248: .word 0x00002AA8 _0202B24C: .word 0x00002AAC thumb_func_start FUN_0202B250 FUN_0202B250: ; 0x0202B250 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _0202B25E bl ErrorHandling _0202B25E: ldr r0, _0202B298 ; =0x00002AA8 ldr r0, [r5, r0] cmp r0, #0x1e blo _0202B26A bl ErrorHandling _0202B26A: cmp r4, #0x1e blt _0202B272 bl ErrorHandling _0202B272: ldr r0, _0202B298 ; =0x00002AA8 ldr r0, [r5, r0] sub r0, r0, #0x1 sub r2, r0, r4 bpl _0202B27E add r2, #0x1e _0202B27E: mov r1, #0x5b lsl r1, r1, #0x2 mul r1, r2 mov r0, #0x0 add r2, r5, r1 _0202B288: ldrh r1, [r2, #0x0] cmp r1, #0x0 beq _0202B296 add r0, r0, #0x1 add r2, #0x3c cmp r0, #0x6 blo _0202B288 _0202B296: pop {r3-r5, pc} .balign 4 _0202B298: .word 0x00002AA8 thumb_func_start FUN_0202B29C FUN_0202B29C: ; 0x0202B29C push {r3-r7, lr} add r5, r0, #0x0 add r6, r1, #0x0 add r7, r2, #0x0 add r4, r3, #0x0 cmp r5, #0x0 bne _0202B2AE bl ErrorHandling _0202B2AE: ldr r0, _0202B318 ; =0x00002AA8 ldr r0, [r5, r0] cmp r0, #0x1e blo _0202B2BA bl ErrorHandling _0202B2BA: cmp r6, #0x1e blt _0202B2C2 bl ErrorHandling _0202B2C2: ldr r0, _0202B318 ; =0x00002AA8 ldr r0, [r5, r0] sub r0, r0, #0x1 sub r1, r0, r6 bpl _0202B2CE add r1, #0x1e _0202B2CE: mov r0, #0x5b lsl r0, r0, #0x2 mul r0, r1 add r1, r5, r0 mov r0, #0x3c mul r0, r7 add r5, r1, r0 ldrh r0, [r1, r0] add r1, r5, #0x0 add r1, #0xc strh r0, [r4, #0x10] ldrb r0, [r5, #0x2] strb r0, [r4, #0x12] ldr r0, [r5, #0x4] str r0, [r4, #0x8] ldr r0, [r5, #0x8] str r0, [r4, #0xc] ldrb r0, [r5, #0x3] strb r0, [r4, #0x13] ldr r0, [r4, #0x0] bl FUN_02021E28 add r1, r5, #0x0 ldr r0, [r4, #0x4] add r1, #0x22 bl FUN_02021E28 mov r1, #0x0 _0202B306: ldrh r0, [r5, #0x32] add r1, r1, #0x1 add r5, r5, #0x2 strh r0, [r4, #0x14] add r4, r4, #0x2 cmp r1, #0x4 blt _0202B306 pop {r3-r7, pc} nop _0202B318: .word 0x00002AA8 thumb_func_start FUN_0202B31C FUN_0202B31C: ; 0x0202B31C push {r4-r6, lr} add r5, r0, #0x0 add r6, r1, #0x0 add r4, r2, #0x0 cmp r5, #0x0 bne _0202B32C bl ErrorHandling _0202B32C: ldr r0, _0202B370 ; =0x00002AA8 ldr r0, [r5, r0] cmp r0, #0x1e blo _0202B338 bl ErrorHandling _0202B338: cmp r6, #0x1e blt _0202B340 bl ErrorHandling _0202B340: ldr r0, _0202B370 ; =0x00002AA8 ldr r0, [r5, r0] sub r0, r0, #0x1 sub r2, r0, r6 bpl _0202B34C add r2, #0x1e _0202B34C: mov r0, #0x5b lsl r0, r0, #0x2 add r1, r2, #0x0 mul r1, r0 add r2, r5, r1 sub r1, r0, #0x4 ldrh r1, [r2, r1] str r1, [r4, #0x0] sub r1, r0, #0x2 ldrb r1, [r2, r1] sub r0, r0, #0x1 str r1, [r4, #0x4] ldrb r0, [r2, r0] str r0, [r4, #0x8] mov r0, #0x0 str r0, [r4, #0xc] pop {r4-r6, pc} nop _0202B370: .word 0x00002AA8 thumb_func_start FUN_0202B374 FUN_0202B374: ; 0x0202B374 ldr r0, _0202B378 ; =0x00000B88 bx lr .balign 4 _0202B378: .word 0x00000B88 thumb_func_start FUN_0202B37C FUN_0202B37C: ; 0x0202B37C ldr r3, _0202B388 ; =MIi_CpuClearFast add r1, r0, #0x0 mov r0, #0x0 ldr r2, _0202B38C ; =0x00000B88 bx r3 nop _0202B388: .word MIi_CpuClearFast _0202B38C: .word 0x00000B88 thumb_func_start FUN_0202B390 FUN_0202B390: ; 0x0202B390 push {r4, lr} add r4, r0, #0x0 add r1, r4, #0x0 mov r0, #0x0 add r1, #0xc mov r2, #0xc0 blx MIi_CpuClearFast add r1, r4, #0x0 mov r0, #0x0 add r1, #0xcc mov r2, #0xc0 blx MIi_CpuClearFast mov r1, #0x63 lsl r1, r1, #0x2 mov r0, #0x0 add r1, r4, r1 mov r2, #0xc0 blx MIi_CpuClearFast add r0, r4, #0x0 bl FUN_0202B3F8 pop {r4, pc} .balign 4 thumb_func_start FUN_0202B3C4 FUN_0202B3C4: ; 0x0202B3C4 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x4] cmp r0, r1 ble _0202B3D4 sub r0, r0, r1 str r0, [r4, #0x4] pop {r4, pc} _0202B3D4: add r0, r2, #0x0 mov r1, #0xf blx _s32_div_f mov r0, #0xf sub r1, r0, r1 str r1, [r4, #0x4] bne _0202B3E6 str r0, [r4, #0x4] _0202B3E6: mov r1, #0x0 strb r1, [r4, #0x8] add r0, r1, #0x0 _0202B3EC: strb r0, [r4, r1] add r1, r1, #0x1 cmp r1, #0x4 blt _0202B3EC pop {r4, pc} .balign 4 thumb_func_start FUN_0202B3F8 FUN_0202B3F8: ; 0x0202B3F8 push {r4, lr} add r4, r0, #0x0 mov r1, #0x0 bl FUN_0202B40C add r0, r4, #0x0 bl FUN_0202B430 pop {r4, pc} .balign 4 thumb_func_start FUN_0202B40C FUN_0202B40C: ; 0x0202B40C strb r1, [r0, #0x8] bx lr thumb_func_start FUN_0202B410 FUN_0202B410: ; 0x0202B410 ldrb r0, [r0, #0x8] bx lr thumb_func_start FUN_0202B414 FUN_0202B414: ; 0x0202B414 push {r3, lr} mov r3, #0x0 _0202B418: ldrb r2, [r0, r3] cmp r2, #0x0 bne _0202B422 strb r1, [r0, r3] pop {r3, pc} _0202B422: add r3, r3, #0x1 cmp r3, #0x4 blt _0202B418 bl ErrorHandling pop {r3, pc} .balign 4 thumb_func_start FUN_0202B430 FUN_0202B430: ; 0x0202B430 mov r2, #0x0 add r1, r2, #0x0 _0202B434: strb r1, [r0, r2] add r2, r2, #0x1 cmp r2, #0x4 blt _0202B434 bx lr .balign 4 thumb_func_start FUN_0202B440 FUN_0202B440: ; 0x0202B440 mov r3, #0x0 _0202B442: ldrb r2, [r0, r3] cmp r1, r2 bne _0202B44C mov r0, #0x1 bx lr _0202B44C: add r3, r3, #0x1 cmp r3, #0x4 blt _0202B442 mov r0, #0x0 bx lr .balign 4 thumb_func_start FUN_0202B458 FUN_0202B458: ; 0x0202B458 mov r2, #0x0 add r3, r2, #0x0 _0202B45C: ldrb r1, [r0, r2] cmp r1, #0x0 beq _0202B464 add r3, r3, #0x1 _0202B464: add r2, r2, #0x1 cmp r2, #0x4 blt _0202B45C add r0, r3, #0x0 bx lr .balign 4 thumb_func_start FUN_0202B470 FUN_0202B470: ; 0x0202B470 push {r4-r6, lr} sub sp, #0x10 add r5, r0, #0x0 add r0, sp, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 bl FUN_020126B4 ldr r0, [sp, #0x8] ldr r3, [sp, #0x4] lsl r0, r0, #0x18 lsr r1, r0, #0x10 ldr r0, [sp, #0x0] lsl r3, r3, #0x18 lsl r0, r0, #0x18 lsr r3, r3, #0x8 orr r0, r3 ldr r2, [sp, #0xc] orr r0, r1 orr r0, r2 str r0, [r5, #0x4] strb r4, [r5, #0x0] mov r0, #0x0 strb r0, [r5, #0x1] add r5, #0x8 add r0, r6, #0x0 add r1, r5, #0x0 mov r2, #0x28 blx MIi_CpuCopyFast add sp, #0x10 pop {r4-r6, pc} thumb_func_start FUN_0202B4B0 FUN_0202B4B0: ; 0x0202B4B0 push {r3-r5, lr} add r5, r2, #0x0 add r4, r3, #0x0 bl FUN_0202B548 mov r2, #0x0 add r3, r0, #0x0 _0202B4BE: ldrb r1, [r3, #0x0] cmp r5, r1 bne _0202B4E0 mov r1, #0x30 mul r1, r2 add r0, r0, r1 ldrb r1, [r0, #0x1] cmp r1, #0x3 blo _0202B4DC add r1, r5, #0x0 add r2, r4, #0x0 bl FUN_0202B470 mov r0, #0x1 pop {r3-r5, pc} _0202B4DC: mov r0, #0x0 pop {r3-r5, pc} _0202B4E0: add r2, r2, #0x1 add r3, #0x30 cmp r2, #0x4 blt _0202B4BE mov r1, #0x0 add r3, r0, #0x0 _0202B4EC: ldrb r2, [r3, #0x0] cmp r2, #0x0 bne _0202B504 mov r2, #0x30 mul r2, r1 add r0, r0, r2 add r1, r5, #0x0 add r2, r4, #0x0 bl FUN_0202B470 mov r0, #0x1 pop {r3-r5, pc} _0202B504: add r1, r1, #0x1 add r3, #0x30 cmp r1, #0x4 blt _0202B4EC mov r1, #0x0 add r3, r0, #0x0 _0202B510: ldrb r2, [r3, #0x1] cmp r2, #0x3 blo _0202B528 mov r2, #0x30 mul r2, r1 add r0, r0, r2 add r1, r5, #0x0 add r2, r4, #0x0 bl FUN_0202B470 mov r0, #0x1 pop {r3-r5, pc} _0202B528: add r1, r1, #0x1 add r3, #0x30 cmp r1, #0x4 blt _0202B510 mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0202B534 FUN_0202B534: ; 0x0202B534 add r0, #0x8 bx lr thumb_func_start FUN_0202B538 FUN_0202B538: ; 0x0202B538 ldrb r0, [r0, #0x6] bx lr thumb_func_start FUN_0202B53C FUN_0202B53C: ; 0x0202B53C ldrb r0, [r0, #0x5] bx lr thumb_func_start FUN_0202B540 FUN_0202B540: ; 0x0202B540 add r0, #0x18 bx lr thumb_func_start FUN_0202B544 FUN_0202B544: ; 0x0202B544 bx lr .balign 4 thumb_func_start FUN_0202B548 FUN_0202B548: ; 0x0202B548 push {r4, lr} mov r4, #0x0 cmp r1, #0x4 bhi _0202B57E add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0202B55C: ; jump table (using 16-bit offset) .short _0202B57E - _0202B55C - 2; case 0 .short _0202B566 - _0202B55C - 2; case 1 .short _0202B56E - _0202B55C - 2; case 2 .short _0202B574 - _0202B55C - 2; case 3 .short _0202B57A - _0202B55C - 2; case 4 _0202B566: mov r1, #0x63 lsl r1, r1, #0x2 add r4, r0, r1 b _0202B57E _0202B56E: add r4, r0, #0x0 add r4, #0xc b _0202B57E _0202B574: add r4, r0, #0x0 add r4, #0xcc b _0202B57E _0202B57A: bl ErrorHandling _0202B57E: add r0, r4, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_0202B584 FUN_0202B584: ; 0x0202B584 push {r4, lr} mov r4, #0x0 cmp r1, #0x4 bhi _0202B5BA add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0202B598: ; jump table (using 16-bit offset) .short _0202B5BA - _0202B598 - 2; case 0 .short _0202B5B0 - _0202B598 - 2; case 1 .short _0202B5A2 - _0202B598 - 2; case 2 .short _0202B5AA - _0202B598 - 2; case 3 .short _0202B5B6 - _0202B598 - 2; case 4 _0202B5A2: mov r1, #0x93 lsl r1, r1, #0x2 add r4, r0, r1 b _0202B5BA _0202B5AA: ldr r1, _0202B5C0 ; =0x000006CC add r4, r0, r1 b _0202B5BA _0202B5B0: ldr r1, _0202B5C4 ; =0x0000090C add r4, r0, r1 b _0202B5BA _0202B5B6: bl ErrorHandling _0202B5BA: add r0, r4, #0x0 pop {r4, pc} nop _0202B5C0: .word 0x000006CC _0202B5C4: .word 0x0000090C thumb_func_start FUN_0202B5C8 FUN_0202B5C8: ; 0x0202B5C8 ldrb r0, [r0, #0x0] bx lr thumb_func_start FUN_0202B5CC FUN_0202B5CC: ; 0x0202B5CC ldrb r1, [r0, #0x1] cmp r1, #0x3 bhs _0202B5D6 add r1, r1, #0x1 strb r1, [r0, #0x1] _0202B5D6: bx lr thumb_func_start FUN_0202B5D8 FUN_0202B5D8: ; 0x0202B5D8 add r0, #0x8 bx lr thumb_func_start FUN_0202B5DC FUN_0202B5DC: ; 0x0202B5DC push {r4-r7} mov r5, #0x0 add r4, r5, #0x0 ldr r6, [sp, #0x10] cmp r1, #0x0 ble _0202B616 _0202B5E8: ldrb r7, [r0, #0x0] cmp r2, r7 bne _0202B60E ldrb r7, [r0, #0x1] cmp r3, #0x0 beq _0202B600 cmp r7, #0x0 beq _0202B600 add r7, r4, #0x1 strb r7, [r6, r5] add r5, r5, #0x1 b _0202B60E _0202B600: cmp r3, #0x0 bne _0202B60E cmp r7, #0x0 bne _0202B60E add r7, r4, #0x1 strb r7, [r6, r5] add r5, r5, #0x1 _0202B60E: add r4, r4, #0x1 add r0, #0x30 cmp r4, r1 blt _0202B5E8 _0202B616: add r0, r5, #0x0 pop {r4-r7} bx lr thumb_func_start FUN_0202B61C FUN_0202B61C: ; 0x0202B61C push {r4-r7, lr} sub sp, #0xc add r6, r0, #0x0 mov r5, #0x0 add r0, r1, #0x0 add r4, r5, #0x0 str r1, [sp, #0x0] str r2, [sp, #0x4] str r3, [sp, #0x8] ldr r7, [sp, #0x20] cmp r0, #0x0 ble _0202B672 _0202B634: ldrb r2, [r6, #0x18] ldr r1, [sp, #0x4] ldrb r0, [r6, #0x19] cmp r1, r2 bne _0202B668 ldr r1, [sp, #0x8] cmp r1, #0x0 beq _0202B654 cmp r0, #0x0 beq _0202B654 add r0, r4, #0x1 bl FUN_0202B830 strb r0, [r7, r5] add r5, r5, #0x1 b _0202B668 _0202B654: ldr r1, [sp, #0x8] cmp r1, #0x0 bne _0202B668 cmp r0, #0x0 bne _0202B668 add r0, r4, #0x1 bl FUN_0202B830 strb r0, [r7, r5] add r5, r5, #0x1 _0202B668: ldr r0, [sp, #0x0] add r4, r4, #0x1 add r6, #0x48 cmp r4, r0 blt _0202B634 _0202B672: add r0, r5, #0x0 add sp, #0xc pop {r4-r7, pc} thumb_func_start FUN_0202B678 FUN_0202B678: ; 0x0202B678 push {r3-r5, lr} ldr r5, [sp, #0x10] ldr r4, [sp, #0x14] cmp r1, #0x4 bhi _0202B702 add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0202B68E: ; jump table (using 16-bit offset) .short _0202B702 - _0202B68E - 2; case 0 .short _0202B6DA - _0202B68E - 2; case 1 .short _0202B698 - _0202B68E - 2; case 2 .short _0202B6BA - _0202B68E - 2; case 3 .short _0202B6FE - _0202B68E - 2; case 4 _0202B698: cmp r3, #0x0 str r4, [sp, #0x0] beq _0202B6AA add r0, #0xc mov r1, #0x4 add r3, r5, #0x0 bl FUN_0202B5DC pop {r3-r5, pc} _0202B6AA: mov r1, #0x93 lsl r1, r1, #0x2 add r0, r0, r1 mov r1, #0x10 add r3, r5, #0x0 bl FUN_0202B61C pop {r3-r5, pc} _0202B6BA: cmp r3, #0x0 str r4, [sp, #0x0] beq _0202B6CC add r0, #0xcc mov r1, #0x4 add r3, r5, #0x0 bl FUN_0202B5DC pop {r3-r5, pc} _0202B6CC: ldr r1, _0202B708 ; =0x000006CC add r3, r5, #0x0 add r0, r0, r1 mov r1, #0x8 bl FUN_0202B61C pop {r3-r5, pc} _0202B6DA: cmp r3, #0x0 str r4, [sp, #0x0] beq _0202B6F0 mov r1, #0x63 lsl r1, r1, #0x2 add r0, r0, r1 mov r1, #0x4 add r3, r5, #0x0 bl FUN_0202B5DC pop {r3-r5, pc} _0202B6F0: ldr r1, _0202B70C ; =0x0000090C add r3, r5, #0x0 add r0, r0, r1 mov r1, #0x8 bl FUN_0202B61C pop {r3-r5, pc} _0202B6FE: mov r0, #0x0 pop {r3-r5, pc} _0202B702: mov r0, #0x0 pop {r3-r5, pc} nop _0202B708: .word 0x000006CC _0202B70C: .word 0x0000090C thumb_func_start FUN_0202B710 FUN_0202B710: ; 0x0202B710 push {r4-r7, lr} sub sp, #0xc add r4, r0, #0x0 add r6, r1, #0x0 add r5, r2, #0x0 add r0, sp, #0x8 mov r1, #0x0 mov r2, #0x4 blx MI_CpuFill8 mov r0, #0x0 str r0, [sp, #0x0] add r0, sp, #0x8 str r0, [sp, #0x4] add r0, r4, #0x0 add r1, r6, #0x0 add r2, r5, #0x0 mov r3, #0x1 bl FUN_0202B678 cmp r0, #0x0 beq _0202B742 add sp, #0xc mov r0, #0x0 pop {r4-r7, pc} _0202B742: mov r3, #0x1 str r3, [sp, #0x0] add r0, sp, #0x8 str r0, [sp, #0x4] add r0, r4, #0x0 add r1, r6, #0x0 add r2, r5, #0x0 bl FUN_0202B678 cmp r0, #0x0 beq _0202B79E add r0, sp, #0x8 ldrb r0, [r0, #0x0] mov r7, #0x0 cmp r0, #0x0 beq _0202B798 add r5, sp, #0x8 _0202B764: ldrb r2, [r5, #0x0] add r0, r4, #0x0 add r1, r6, #0x0 bl FUN_0202B7C8 ldrb r0, [r0, #0x1] cmp r0, #0x3 blo _0202B77A add sp, #0xc mov r0, #0x1 pop {r4-r7, pc} _0202B77A: add r7, r7, #0x1 add r5, r5, #0x1 cmp r7, #0x4 bge _0202B786 mov r1, #0x1 b _0202B788 _0202B786: mov r1, #0x0 _0202B788: ldrb r0, [r5, #0x0] cmp r0, #0x0 beq _0202B792 mov r0, #0x1 b _0202B794 _0202B792: mov r0, #0x0 _0202B794: tst r0, r1 bne _0202B764 _0202B798: add sp, #0xc mov r0, #0x0 pop {r4-r7, pc} _0202B79E: mov r5, #0x1 _0202B7A0: add r0, r4, #0x0 add r1, r6, #0x0 add r2, r5, #0x0 bl FUN_0202B7C8 ldrb r1, [r0, #0x0] cmp r1, #0x0 beq _0202B7B6 ldrb r0, [r0, #0x1] cmp r0, #0x3 blo _0202B7BC _0202B7B6: add sp, #0xc mov r0, #0x1 pop {r4-r7, pc} _0202B7BC: add r5, r5, #0x1 cmp r5, #0x4 ble _0202B7A0 mov r0, #0x0 add sp, #0xc pop {r4-r7, pc} thumb_func_start FUN_0202B7C8 FUN_0202B7C8: ; 0x0202B7C8 push {r4-r6, lr} add r4, r2, #0x0 add r5, r0, #0x0 add r0, r4, #0x0 add r6, r1, #0x0 bl FUN_0202B820 cmp r0, #0x1 beq _0202B7DE bl ErrorHandling _0202B7DE: add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_0202B548 mov r1, #0x80 bic r4, r1 sub r2, r4, #0x1 mov r1, #0x30 mul r1, r2 add r0, r0, r1 pop {r4-r6, pc} thumb_func_start FUN_0202B7F4 FUN_0202B7F4: ; 0x0202B7F4 push {r4-r6, lr} add r4, r2, #0x0 add r5, r0, #0x0 add r0, r4, #0x0 add r6, r1, #0x0 bl FUN_0202B820 cmp r0, #0x0 beq _0202B80A bl ErrorHandling _0202B80A: add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_0202B584 mov r1, #0x80 bic r4, r1 sub r2, r4, #0x1 mov r1, #0x48 mul r1, r2 add r0, r0, r1 pop {r4-r6, pc} thumb_func_start FUN_0202B820 FUN_0202B820: ; 0x0202B820 mov r1, #0x80 tst r0, r1 bne _0202B82A mov r0, #0x1 bx lr _0202B82A: mov r0, #0x0 bx lr .balign 4 thumb_func_start FUN_0202B830 FUN_0202B830: ; 0x0202B830 mov r1, #0x80 orr r0, r1 bx lr .balign 4 thumb_func_start FUN_0202B838 FUN_0202B838: ; 0x0202B838 ldr r1, _0202B840 ; =0x00000B4C add r0, r0, r1 bx lr nop _0202B840: .word 0x00000B4C thumb_func_start FUN_0202B844 FUN_0202B844: ; 0x0202B844 ldr r1, _0202B84C ; =0x00000B56 add r0, r0, r1 bx lr nop _0202B84C: .word 0x00000B56 thumb_func_start FUN_0202B850 FUN_0202B850: ; 0x0202B850 ldr r1, _0202B858 ; =0x00000B7A add r0, r0, r1 bx lr nop _0202B858: .word 0x00000B7A thumb_func_start FUN_0202B85C FUN_0202B85C: ; 0x0202B85C ldr r1, _0202B864 ; =0x00000B7C add r0, r0, r1 bx lr nop _0202B864: .word 0x00000B7C thumb_func_start FUN_0202B868 FUN_0202B868: ; 0x0202B868 mov r1, #0x2e lsl r1, r1, #0x6 add r0, r0, r1 bx lr thumb_func_start FUN_0202B870 FUN_0202B870: ; 0x0202B870 lsl r1, r0, #0x1 ldr r0, _0202B878 ; =0x020EEAC8 ldrb r0, [r0, r1] bx lr .balign 4 _0202B878: .word 0x020EEAC8 thumb_func_start FUN_0202B87C FUN_0202B87C: ; 0x0202B87C lsl r1, r0, #0x1 ldr r0, _0202B884 ; =0x020EEAC9 ldrb r0, [r0, r1] bx lr .balign 4 _0202B884: .word 0x020EEAC9 thumb_func_start FUN_0202B888 FUN_0202B888: ; 0x0202B888 mov r1, #0x0 str r1, [r0, #0x0] str r1, [r0, #0x4] ldr r3, _0202B898 ; =StringFillEOS add r0, #0x8 mov r1, #0x8 bx r3 nop _0202B898: .word StringFillEOS thumb_func_start FUN_0202B89C FUN_0202B89C: ; 0x0202B89C push {r3, lr} add r0, #0x8 bl StringLength cmp r0, #0x0 beq _0202B8AC mov r0, #0x1 pop {r3, pc} _0202B8AC: mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_0202B8B0 FUN_0202B8B0: ; 0x0202B8B0 mov r0, #0xea lsl r0, r0, #0x4 bx lr .balign 4 thumb_func_start FUN_0202B8B8 FUN_0202B8B8: ; 0x0202B8B8 push {r3-r7, lr} mov r2, #0xea mov r1, #0x0 lsl r2, r2, #0x4 add r6, r0, #0x0 blx MI_CpuFill8 mov r7, #0x0 _0202B8C8: mov r4, #0x0 add r5, r6, #0x0 _0202B8CC: add r0, r5, #0x0 bl FUN_0202B888 add r4, r4, #0x1 add r5, #0x18 cmp r4, #0x6 blt _0202B8CC add r7, r7, #0x1 add r6, #0x90 cmp r7, #0x1a blt _0202B8C8 pop {r3-r7, pc} thumb_func_start FUN_0202B8E4 FUN_0202B8E4: ; 0x0202B8E4 ldr r3, _0202B8EC ; =FUN_02022610 mov r1, #0x1c bx r3 nop _0202B8EC: .word FUN_02022610 thumb_func_start FUN_0202B8F0 FUN_0202B8F0: ; 0x0202B8F0 push {r4-r6, lr} cmp r2, #0x6 blo _0202B8FE blo _0202B930 bl ErrorHandling pop {r4-r6, pc} _0202B8FE: mov r3, #0x90 mul r3, r1 add r3, r0, r3 cmp r2, #0x5 bge _0202B928 mov r0, #0x18 mul r0, r2 add r6, r3, r0 _0202B90E: add r5, r6, #0x0 add r5, #0x18 add r4, r6, #0x0 ldmia r5!, {r0-r1} stmia r4!, {r0-r1} ldmia r5!, {r0-r1} stmia r4!, {r0-r1} ldmia r5!, {r0-r1} add r2, r2, #0x1 add r6, #0x18 stmia r4!, {r0-r1} cmp r2, #0x5 blt _0202B90E _0202B928: add r3, #0x78 add r0, r3, #0x0 bl FUN_0202B888 _0202B930: pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0202B934 FUN_0202B934: ; 0x0202B934 mov r0, #0x4e lsl r0, r0, #0x2 bx lr .balign 4 thumb_func_start FUN_0202B93C FUN_0202B93C: ; 0x0202B93C push {r3-r7, lr} sub sp, #0x8 add r5, r1, #0x0 bl FUN_02029FC8 add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x34 bl FUN_020169D8 str r0, [sp, #0x4] add r5, r0, #0x0 ldr r0, _0202B9E8 ; =0x020EEAD0 mov r6, #0x0 str r0, [sp, #0x0] _0202B95A: cmp r6, #0x5 beq _0202B968 cmp r6, #0xa beq _0202B988 cmp r6, #0xb beq _0202B9A0 b _0202B9C8 _0202B968: add r0, r4, #0x0 mov r1, #0xf bl FUN_0202A150 add r7, r0, #0x0 beq _0202B984 add r0, r4, #0x0 mov r1, #0x1d bl FUN_0202A150 add r1, r7, #0x0 blx _u32_div_f add r7, r0, #0x0 _0202B984: str r7, [r5, #0x0] b _0202B9D4 _0202B988: add r0, r4, #0x0 mov r1, #0x41 bl FUN_0202A150 add r7, r0, #0x0 add r0, r4, #0x0 mov r1, #0x42 bl FUN_0202A150 add r0, r7, r0 str r0, [r5, #0x0] b _0202B9D4 _0202B9A0: add r0, r4, #0x0 mov r1, #0x3f bl FUN_0202A150 add r7, r0, #0x0 add r0, r4, #0x0 mov r1, #0x40 bl FUN_0202A150 add r1, r7, r0 beq _0202B9C4 ldr r0, [sp, #0x4] ldr r2, [r0, #0x28] mov r0, #0x64 mul r0, r2 blx _u32_div_f add r1, r0, #0x0 _0202B9C4: str r1, [r5, #0x0] b _0202B9D4 _0202B9C8: ldr r1, [sp, #0x0] add r0, r4, #0x0 ldr r1, [r1, #0x0] bl FUN_0202A150 str r0, [r5, #0x0] _0202B9D4: ldr r0, [sp, #0x0] add r6, r6, #0x1 add r0, r0, #0x4 add r5, r5, #0x4 str r0, [sp, #0x0] cmp r6, #0xd blt _0202B95A ldr r0, [sp, #0x4] add sp, #0x8 pop {r3-r7, pc} .balign 4 _0202B9E8: .word 0x020EEAD0 thumb_func_start FUN_0202B9EC FUN_0202B9EC: ; 0x0202B9EC push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_020238F4 mov r1, #0x4e add r6, r0, #0x0 add r0, r4, #0x0 lsl r1, r1, #0x2 bl FUN_020169D8 mov r2, #0x4e mov r1, #0x0 lsl r2, r2, #0x2 str r0, [sp, #0x4] blx MI_CpuFill8 add r0, r5, #0x0 bl FUN_0202881C mov r1, #0x1 bl FUN_0202877C str r0, [sp, #0x8] add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_020239A0 add r7, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0202B93C ldr r4, [sp, #0x4] str r0, [sp, #0x0] mov r6, #0x0 add r5, r0, #0x0 _0202BA38: ldr r0, [sp, #0x8] add r1, r4, #0x0 str r0, [r4, #0x0] add r0, r7, #0x0 add r1, #0x8 mov r2, #0x8 bl FUN_02021EF0 ldr r0, [r5, #0x0] add r6, r6, #0x1 str r0, [r4, #0x4] add r4, #0x18 add r5, r5, #0x4 cmp r6, #0xd blt _0202BA38 ldr r0, [sp, #0x0] bl FUN_02016A18 add r0, r7, #0x0 bl FUN_02021A20 ldr r0, [sp, #0x4] add sp, #0xc pop {r4-r7, pc} thumb_func_start FUN_0202BA68 FUN_0202BA68: ; 0x0202BA68 push {r3-r5, lr} add r5, r0, #0x0 mov r4, #0x0 _0202BA6E: add r0, r5, #0x0 bl FUN_0202B888 add r4, r4, #0x1 add r5, #0x18 cmp r4, #0x6 blt _0202BA6E pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0202BA80 FUN_0202BA80: ; 0x0202BA80 push {r3, lr} ldr r3, [r0, #0x0] ldr r2, [r1, #0x0] cmp r3, r2 beq _0202BA8E mov r0, #0x0 pop {r3, pc} _0202BA8E: add r0, #0x8 add r1, #0x8 bl StringNotEqual cmp r0, #0x0 bne _0202BA9E mov r0, #0x1 pop {r3, pc} _0202BA9E: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0202BAA4 FUN_0202BAA4: ; 0x0202BAA4 push {r3-r7, lr} add r6, r0, #0x0 ldr r0, [r6, #0x4] add r7, r1, #0x0 mov r4, #0x0 cmp r0, #0x0 ble _0202BACE add r5, r6, #0x0 _0202BAB4: ldr r0, [r5, #0xc] add r1, r7, #0x0 bl FUN_0202BA80 cmp r0, #0x0 beq _0202BAC4 mov r0, #0x1 pop {r3-r7, pc} _0202BAC4: ldr r0, [r6, #0x4] add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, r0 blt _0202BAB4 _0202BACE: mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0202BAD4 FUN_0202BAD4: ; 0x0202BAD4 push {r4-r7, lr} sub sp, #0xc add r6, r1, #0x0 add r5, r0, #0x0 str r2, [sp, #0x0] add r0, r6, #0x0 mov r1, #0x0 mov r2, #0xe0 add r4, r3, #0x0 blx MI_CpuFill8 add r0, sp, #0x10 ldrb r0, [r0, #0x10] cmp r0, #0x0 bne _0202BB64 mov r2, #0x90 add r0, r4, #0x0 mul r0, r2 add r1, r6, #0x0 add r0, r5, r0 add r1, #0x50 str r0, [sp, #0x8] blx MI_CpuCopy8 add r1, sp, #0x10 ldrb r3, [r1, #0x18] mov r0, #0x0 cmp r3, #0x0 ble _0202BB2E mov r2, #0x18 ldr r1, [sp, #0x24] mul r2, r4 _0202BB14: ldr r5, [r6, #0x4] add r0, r0, #0x1 add r4, r5, #0x0 add r4, r4, #0x1 str r4, [r6, #0x4] ldr r4, [r1, #0x0] lsl r5, r5, #0x2 add r4, r4, r2 add r5, r6, r5 str r4, [r5, #0xc] add r1, r1, #0x4 cmp r0, r3 blt _0202BB14 _0202BB2E: add r4, r6, #0x0 add r4, #0x50 mov r7, #0x0 add r5, r4, #0x0 _0202BB36: add r0, r4, #0x0 bl FUN_0202B89C cmp r0, #0x0 beq _0202BB58 add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_0202BAA4 cmp r0, #0x0 bne _0202BB58 ldr r1, [r6, #0x0] add r0, r1, #0x1 str r0, [r6, #0x0] lsl r0, r1, #0x2 add r0, r6, r0 str r4, [r0, #0x38] _0202BB58: add r7, r7, #0x1 add r4, #0x18 add r5, #0x18 cmp r7, #0x6 blt _0202BB36 b _0202BBF8 _0202BB64: add r0, r4, #0x0 add r0, #0xd mov r2, #0x90 add r1, r0, #0x0 mul r1, r2 add r0, r5, r1 add r1, r6, #0x0 add r1, #0x50 str r0, [sp, #0x8] blx MI_CpuCopy8 add r0, sp, #0x10 ldrb r2, [r0, #0x18] mov r3, #0x0 cmp r2, #0x0 ble _0202BBB2 mov r1, #0x18 ldr r0, [sp, #0x24] mul r1, r4 _0202BB8A: ldr r4, [r0, #0x0] ldr r5, [r1, r4] cmp r5, #0x0 beq _0202BBAA ldr r4, [sp, #0x0] cmp r4, r5 bne _0202BBAA ldr r5, [r6, #0x4] add r4, r5, #0x0 add r4, r4, #0x1 str r4, [r6, #0x4] ldr r4, [r0, #0x0] lsl r5, r5, #0x2 add r4, r4, r1 add r5, r6, r5 str r4, [r5, #0xc] _0202BBAA: add r3, r3, #0x1 add r0, r0, #0x4 cmp r3, r2 blt _0202BB8A _0202BBB2: add r4, r6, #0x0 mov r0, #0x0 add r4, #0x50 str r0, [sp, #0x4] add r5, r6, #0x0 add r7, r4, #0x0 _0202BBBE: add r0, r4, #0x0 bl FUN_0202B89C cmp r0, #0x0 beq _0202BBE8 ldr r1, [r5, #0x50] ldr r0, [sp, #0x0] cmp r0, r1 bne _0202BBE8 add r0, r6, #0x0 add r1, r7, #0x0 bl FUN_0202BAA4 cmp r0, #0x0 bne _0202BBE8 ldr r1, [r6, #0x0] add r0, r1, #0x1 str r0, [r6, #0x0] lsl r0, r1, #0x2 add r0, r6, r0 str r4, [r0, #0x38] _0202BBE8: ldr r0, [sp, #0x4] add r4, #0x18 add r0, r0, #0x1 add r5, #0x18 add r7, #0x18 str r0, [sp, #0x4] cmp r0, #0x6 blt _0202BBBE _0202BBF8: ldr r1, [r6, #0x4] ldr r0, [r6, #0x0] mov r2, #0x0 add r0, r1, r0 str r0, [r6, #0x8] ldr r0, [r6, #0x0] cmp r0, #0x0 ble _0202BC20 add r1, r6, #0x0 _0202BC0A: ldr r3, [r6, #0x4] ldr r0, [r1, #0x38] add r3, r2, r3 lsl r3, r3, #0x2 add r3, r6, r3 str r0, [r3, #0xc] ldr r0, [r6, #0x0] add r2, r2, #0x1 add r1, r1, #0x4 cmp r2, r0 blt _0202BC0A _0202BC20: mov r0, #0x0 mov r12, r0 ldr r0, [r6, #0x8] sub r5, r0, #0x1 cmp r5, #0x0 ble _0202BC64 add r3, r6, #0x0 _0202BC2E: mov r0, r12 cmp r5, r0 ble _0202BC52 lsl r0, r5, #0x2 add r4, r6, r0 _0202BC38: ldr r2, [r4, #0xc] ldr r7, [r3, #0xc] ldr r0, [r2, #0x4] ldr r1, [r7, #0x4] cmp r1, r0 bhs _0202BC48 str r2, [r3, #0xc] str r7, [r4, #0xc] _0202BC48: sub r5, r5, #0x1 mov r0, r12 sub r4, r4, #0x4 cmp r5, r0 bgt _0202BC38 _0202BC52: mov r0, r12 add r0, r0, #0x1 mov r12, r0 ldr r0, [r6, #0x8] add r3, r3, #0x4 sub r5, r0, #0x1 mov r0, r12 cmp r0, r5 blt _0202BC2E _0202BC64: ldr r0, [sp, #0x8] bl FUN_0202BA68 mov r3, #0x0 add r2, r6, #0x0 b _0202BC8A _0202BC70: ldr r5, [r2, #0xc] ldr r4, [sp, #0x8] ldmia r5!, {r0-r1} stmia r4!, {r0-r1} ldmia r5!, {r0-r1} stmia r4!, {r0-r1} ldmia r5!, {r0-r1} stmia r4!, {r0-r1} ldr r0, [sp, #0x8] add r2, r2, #0x4 add r0, #0x18 str r0, [sp, #0x8] add r3, r3, #0x1 _0202BC8A: cmp r3, #0x6 bge _0202BC94 ldr r0, [r6, #0x8] cmp r3, r0 blt _0202BC70 _0202BC94: add sp, #0xc pop {r4-r7, pc} thumb_func_start FUN_0202BC98 FUN_0202BC98: ; 0x0202BC98 push {r4-r7, lr} sub sp, #0x14 add r7, r0, #0x0 add r5, r1, #0x0 ldr r0, [sp, #0x2c] mov r1, #0xe0 str r2, [sp, #0x10] add r4, r3, #0x0 bl FUN_020169D8 add r6, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] str r4, [sp, #0x4] add r0, sp, #0x18 ldrb r0, [r0, #0x10] add r1, r6, #0x0 add r2, r5, #0x0 str r0, [sp, #0x8] ldr r0, [sp, #0x2c] str r0, [sp, #0xc] ldr r3, [sp, #0x10] add r0, r7, #0x0 bl FUN_0202BAD4 cmp r5, #0x0 beq _0202BCEA mov r0, #0x1 str r0, [sp, #0x0] str r4, [sp, #0x4] add r0, sp, #0x18 ldrb r0, [r0, #0x10] add r1, r6, #0x0 add r2, r5, #0x0 str r0, [sp, #0x8] ldr r0, [sp, #0x2c] str r0, [sp, #0xc] ldr r3, [sp, #0x10] add r0, r7, #0x0 bl FUN_0202BAD4 _0202BCEA: add r0, r6, #0x0 bl FUN_02016A18 add sp, #0x14 pop {r4-r7, pc} thumb_func_start FUN_0202BCF4 FUN_0202BCF4: ; 0x0202BCF4 push {r4-r7, lr} sub sp, #0x24 add r6, r1, #0x0 ldr r1, [sp, #0x38] add r4, r0, #0x0 add r5, r2, #0x0 add r7, r3, #0x0 str r1, [sp, #0x38] bl FUN_0202B8E4 str r0, [sp, #0x8] add r0, r4, #0x0 bl FUN_0202881C mov r1, #0x1 bl FUN_0202877C mov r4, #0x0 add r3, r4, #0x0 str r0, [sp, #0xc] cmp r5, #0x0 bls _0202BD44 _0202BD20: cmp r3, r6 beq _0202BD3A lsl r0, r3, #0x2 ldr r2, [r7, r0] cmp r2, #0x0 beq _0202BD3A add r1, r4, #0x1 add r0, r4, #0x0 lsl r1, r1, #0x18 lsr r4, r1, #0x18 lsl r1, r0, #0x2 add r0, sp, #0x10 str r2, [r0, r1] _0202BD3A: add r0, r3, #0x1 lsl r0, r0, #0x18 lsr r3, r0, #0x18 cmp r3, r5 blo _0202BD20 _0202BD44: cmp r4, #0x0 beq _0202BD68 mov r5, #0x0 add r6, sp, #0x10 _0202BD4C: ldr r0, [sp, #0x38] str r4, [sp, #0x0] str r0, [sp, #0x4] ldr r0, [sp, #0x8] ldr r1, [sp, #0xc] add r2, r5, #0x0 add r3, r6, #0x0 bl FUN_0202BC98 add r0, r5, #0x1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 cmp r5, #0xd blo _0202BD4C _0202BD68: add sp, #0x24 pop {r4-r7, pc} thumb_func_start FUN_0202BD6C FUN_0202BD6C: ; 0x0202BD6C push {r3-r7, lr} sub sp, #0x10 str r2, [sp, #0x0] add r4, r0, #0x0 add r5, r1, #0x0 bl FUN_020238F4 str r0, [sp, #0x4] ldr r0, [sp, #0x0] mov r1, #0x4c bl FUN_02016998 mov r1, #0x0 mov r2, #0x4c add r7, r0, #0x0 blx MI_CpuFill8 add r0, r4, #0x0 bl FUN_0202881C mov r1, #0x1 bl FUN_0202877C str r0, [sp, #0xc] ldr r1, [sp, #0x0] add r0, r4, #0x0 bl FUN_0202B93C str r0, [sp, #0x8] add r0, r5, #0x0 bl FUN_0202B870 str r0, [r7, #0x0] add r0, r5, #0x0 bl FUN_0202B87C ldr r1, [r7, #0x0] mov r6, #0x0 cmp r1, #0x0 ble _0202BDE2 lsl r1, r0, #0x2 ldr r0, [sp, #0x8] add r4, r7, #0x0 add r5, r0, r1 _0202BDC4: ldr r0, [sp, #0xc] ldr r1, [sp, #0x0] str r0, [r4, #0x4] ldr r0, [r5, #0x0] str r0, [r4, #0x8] ldr r0, [sp, #0x4] bl FUN_020239A0 str r0, [r4, #0xc] ldr r0, [r7, #0x0] add r6, r6, #0x1 add r4, #0xc add r5, r5, #0x4 cmp r6, r0 blt _0202BDC4 _0202BDE2: ldr r0, [sp, #0x8] bl FUN_02016A18 add r0, r7, #0x0 add sp, #0x10 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0202BDF0 FUN_0202BDF0: ; 0x0202BDF0 push {r3-r7, lr} add r7, r2, #0x0 add r5, r0, #0x0 str r1, [sp, #0x0] add r0, r7, #0x0 mov r1, #0x4c bl FUN_02016998 mov r1, #0x0 mov r2, #0x4c add r4, r0, #0x0 blx MI_CpuFill8 ldr r0, [sp, #0x0] mov r1, #0x90 mul r1, r0 mov r6, #0x0 add r5, r5, r1 _0202BE14: add r0, r5, #0x0 bl FUN_0202B89C cmp r0, #0x0 beq _0202BE60 ldr r2, [r4, #0x0] mov r1, #0xc mul r1, r2 ldr r0, [r5, #0x0] add r1, r4, r1 str r0, [r1, #0x4] ldr r2, [r4, #0x0] mov r1, #0xc mul r1, r2 ldr r0, [r5, #0x4] add r1, r4, r1 str r0, [r1, #0x8] mov r0, #0x8 add r1, r7, #0x0 bl FUN_020219F4 ldr r2, [r4, #0x0] mov r1, #0xc mul r1, r2 add r1, r4, r1 str r0, [r1, #0xc] ldr r1, [r4, #0x0] mov r0, #0xc mul r0, r1 add r0, r4, r0 add r1, r5, #0x0 ldr r0, [r0, #0xc] add r1, #0x8 bl FUN_02021E28 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] _0202BE60: add r6, r6, #0x1 add r5, #0x18 cmp r6, #0x6 blt _0202BE14 add r0, r4, #0x0 pop {r3-r7, pc} thumb_func_start FUN_0202BE6C FUN_0202BE6C: ; 0x0202BE6C push {r4-r6, lr} add r6, r0, #0x0 mov r4, #0x0 add r5, r6, #0x0 _0202BE74: ldr r0, [r5, #0xc] cmp r0, #0x0 beq _0202BE7E bl FUN_02021A20 _0202BE7E: add r4, r4, #0x1 add r5, #0xc cmp r4, #0x6 blt _0202BE74 add r0, r6, #0x0 mov r1, #0x0 mov r2, #0x4c blx MI_CpuFill8 add r0, r6, #0x0 bl FUN_02016A18 pop {r4-r6, pc} thumb_func_start FUN_0202BE98 FUN_0202BE98: ; 0x0202BE98 ldr r0, _0202BE9C ; =0x00000688 bx lr .balign 4 _0202BE9C: .word 0x00000688 thumb_func_start FUN_0202BEA0 FUN_0202BEA0: ; 0x0202BEA0 push {r3-r7, lr} add r5, r0, #0x0 ldr r2, _0202BED8 ; =0x00000688 mov r0, #0x0 add r1, r5, #0x0 blx MIi_CpuClearFast mov r4, #0x0 mov r6, #0xab add r7, r4, #0x0 _0202BEB4: add r0, r5, #0x0 bl FUN_02066978 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 bl FUN_020671BC cmp r0, #0x0 beq _0202BECC bl ErrorHandling _0202BECC: add r4, r4, #0x1 add r5, #0xec cmp r4, #0x6 blt _0202BEB4 pop {r3-r7, pc} nop _0202BED8: .word 0x00000688 thumb_func_start FUN_0202BEDC FUN_0202BEDC: ; 0x0202BEDC push {r3-r7, lr} add r5, r0, #0x0 ldr r2, _0202BF14 ; =0x00000588 mov r0, #0x0 add r1, r5, #0x0 blx MIi_CpuClearFast mov r4, #0x0 mov r6, #0xab add r7, r4, #0x0 _0202BEF0: add r0, r5, #0x0 bl FUN_02066978 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 bl FUN_020671BC cmp r0, #0x0 beq _0202BF08 bl ErrorHandling _0202BF08: add r4, r4, #0x1 add r5, #0xec cmp r4, #0x6 blt _0202BEF0 pop {r3-r7, pc} nop _0202BF14: .word 0x00000588 thumb_func_start FUN_0202BF18 FUN_0202BF18: ; 0x0202BF18 push {r4-r7} add r2, r0, #0x0 ldr r3, _0202BF70 ; =0x00000588 mov r0, #0x0 add r5, r2, #0x0 _0202BF22: ldr r4, [r5, r3] cmp r1, r4 beq _0202BF6C add r0, r0, #0x1 add r5, r5, #0x4 cmp r0, #0x14 blt _0202BF22 ldr r1, _0202BF70 ; =0x00000588 mov r0, #0x0 add r4, r2, #0x0 _0202BF36: ldr r3, [r4, r1] cmp r3, #0x0 beq _0202BF6C add r0, r0, #0x1 add r4, r4, #0x4 cmp r0, #0x14 blt _0202BF36 mov r3, #0x0 ldr r4, _0202BF74 ; =0x7FFFFFFF add r5, r3, #0x0 _0202BF4A: ldr r0, _0202BF78 ; =0x000005D8 ldr r1, [r2, r0] add r0, r0, #0x4 ldr r0, [r2, r0] sub r6, r1, r4 mov r12, r0 mov r6, r12 sbc r6, r3 bge _0202BF62 add r4, r1, #0x0 add r3, r0, #0x0 add r7, r5, #0x0 _0202BF62: add r5, r5, #0x1 add r2, #0x8 cmp r5, #0x14 blt _0202BF4A add r0, r7, #0x0 _0202BF6C: pop {r4-r7} bx lr .balign 4 _0202BF70: .word 0x00000588 _0202BF74: .word 0x7FFFFFFF _0202BF78: .word 0x000005D8 thumb_func_start FUN_0202BF7C FUN_0202BF7C: ; 0x0202BF7C add r3, r0, #0x0 add r0, r1, #0x0 mov r1, #0xec mul r1, r2 add r1, r3, r1 ldr r3, _0202BF8C ; =FUN_02069A64 bx r3 nop _0202BF8C: .word FUN_02069A64 thumb_func_start FUN_0202BF90 FUN_0202BF90: ; 0x0202BF90 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_0202BF18 add r6, r0, #0x0 lsl r0, r6, #0x2 add r1, r5, r0 ldr r0, _0202BFCC ; =0x00000588 str r4, [r1, r0] bl FUN_020126FC lsl r2, r6, #0x3 add r3, r5, r2 ldr r2, _0202BFD0 ; =0x000005D8 str r0, [r3, r2] add r0, r2, #0x4 str r1, [r3, r0] blx OS_GetOwnerRtcOffset ldr r2, _0202BFD4 ; =0x00000678 str r0, [r5, r2] add r0, r2, #0x4 add r2, #0x8 str r1, [r5, r0] add r0, r5, r2 blx OS_GetMacAddress pop {r4-r6, pc} nop _0202BFCC: .word 0x00000588 _0202BFD0: .word 0x000005D8 _0202BFD4: .word 0x00000678 thumb_func_start FUN_0202BFD8 FUN_0202BFD8: ; 0x0202BFD8 push {r4-r6, lr} add r5, r1, #0x0 add r6, r0, #0x0 add r4, r2, #0x0 cmp r5, #0x6 blt _0202BFE8 bl ErrorHandling _0202BFE8: mov r0, #0xec mul r0, r5 add r3, r6, r0 mov r2, #0x1d _0202BFF0: ldmia r3!, {r0-r1} stmia r4!, {r0-r1} sub r2, r2, #0x1 bne _0202BFF0 ldr r0, [r3, #0x0] str r0, [r4, #0x0] pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0202C000 FUN_0202C000: ; 0x0202C000 push {r3-r7, lr} mov r4, #0x0 add r5, r0, #0x0 add r6, r4, #0x0 mov r7, #0xab _0202C00A: add r0, r5, #0x0 add r1, r7, #0x0 mov r2, #0x0 bl FUN_020671BC cmp r0, #0x0 beq _0202C01A add r4, r4, #0x1 _0202C01A: add r6, r6, #0x1 add r5, #0xec cmp r6, #0x6 blt _0202C00A add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0202C028 FUN_0202C028: ; 0x0202C028 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_020126FC ldr r1, _0202C058 ; =0x00000588 mov r3, #0x0 add r6, r5, #0x0 _0202C038: ldr r2, [r6, r1] cmp r4, r2 bne _0202C04A lsl r1, r3, #0x3 add r2, r5, r1 ldr r1, _0202C05C ; =0x000005D8 ldr r1, [r2, r1] sub r0, r0, r1 pop {r4-r6, pc} _0202C04A: add r3, r3, #0x1 add r6, r6, #0x4 cmp r3, #0x14 blt _0202C038 mov r0, #0x0 pop {r4-r6, pc} nop _0202C058: .word 0x00000588 _0202C05C: .word 0x000005D8 thumb_func_start FUN_0202C060 FUN_0202C060: ; 0x0202C060 push {r3-r5, lr} sub sp, #0x8 add r4, r0, #0x0 add r0, sp, #0x0 blx OS_GetMacAddress mov r0, #0x1a mov r3, #0x0 add r5, sp, #0x0 lsl r0, r0, #0x6 _0202C074: add r1, r4, r3 ldrb r2, [r5, #0x0] ldrb r1, [r1, r0] cmp r2, r1 beq _0202C084 add sp, #0x8 mov r0, #0x0 pop {r3-r5, pc} _0202C084: add r3, r3, #0x1 add r5, r5, #0x1 cmp r3, #0x6 blt _0202C074 mov r0, #0x1 add sp, #0x8 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0202C094 FUN_0202C094: ; 0x0202C094 push {r4, lr} add r4, r0, #0x0 blx OS_GetOwnerRtcOffset ldr r2, _0202C0B4 ; =0x00000678 ldr r3, [r4, r2] add r2, r2, #0x4 ldr r2, [r4, r2] eor r0, r3 eor r1, r2 orr r0, r1 bne _0202C0B0 mov r0, #0x1 pop {r4, pc} _0202C0B0: mov r0, #0x0 pop {r4, pc} .balign 4 _0202C0B4: .word 0x00000678 thumb_func_start FUN_0202C0B8 FUN_0202C0B8: ; 0x0202C0B8 push {r3-r4} mov r4, #0x0 mov r1, #0x1a add r3, r4, #0x0 lsl r1, r1, #0x6 _0202C0C2: add r2, r0, r3 ldrb r2, [r2, r1] add r3, r3, #0x1 orr r4, r2 cmp r3, #0x6 blt _0202C0C2 cmp r4, #0x0 bne _0202C0D8 mov r0, #0x1 pop {r3-r4} bx lr _0202C0D8: mov r0, #0x0 pop {r3-r4} bx lr .balign 4 thumb_func_start FUN_0202C0E0 FUN_0202C0E0: ; 0x0202C0E0 mov r0, #0x28 bx lr thumb_func_start FUN_0202C0E4 FUN_0202C0E4: ; 0x0202C0E4 push {r4-r5} mov r4, #0x0 add r1, r4, #0x0 add r2, r4, #0x0 _0202C0EC: add r3, r2, #0x0 add r5, r0, #0x0 _0202C0F0: add r3, r3, #0x1 strh r1, [r5, #0x0] add r5, r5, #0x2 cmp r3, #0x4 blt _0202C0F0 add r4, r4, #0x1 add r0, #0x8 cmp r4, #0x5 blt _0202C0EC pop {r4-r5} bx lr .balign 4 thumb_func_start FUN_0202C108 FUN_0202C108: ; 0x0202C108 push {r3-r5, lr} add r5, r1, #0x0 mov r1, #0x21 add r4, r2, #0x0 bl FUN_02022610 lsl r1, r5, #0x3 add r3, r0, r1 lsl r2, r4, #0x1 ldrh r1, [r3, r2] ldr r0, _0202C128 ; =0x0000270F cmp r1, r0 bhs _0202C126 add r0, r1, #0x1 strh r0, [r3, r2] _0202C126: pop {r3-r5, pc} .balign 4 _0202C128: .word 0x0000270F thumb_func_start FUN_0202C12C FUN_0202C12C: ; 0x0202C12C push {r3-r5, lr} add r5, r1, #0x0 mov r1, #0x21 add r4, r2, #0x0 bl FUN_02022610 lsl r2, r5, #0x3 lsl r1, r4, #0x1 add r0, r0, r2 ldrh r0, [r1, r0] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0202C144 FUN_0202C144: ; 0x0202C144 push {r3-r7, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r0, r4, #0x0 mov r1, #0x4c mov r2, #0x0 bl FUN_020671BC cmp r0, #0x0 bne _0202C194 add r0, r5, #0x0 bl FUN_02024DA0 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02029FC8 add r7, r0, #0x0 add r0, r4, #0x0 mov r1, #0x5 mov r2, #0x0 bl FUN_020671BC add r2, r0, #0x0 lsl r2, r2, #0x10 add r0, r7, #0x0 add r1, r6, #0x0 lsr r2, r2, #0x10 bl FUN_0202A1C4 add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_02024AF0 add r0, r5, #0x0 bl FUN_0204C1A8 add r1, r4, #0x0 bl FUN_0204C104 _0202C194: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0202C198 FUN_0202C198: ; 0x0202C198 ldr r1, _0202C1A4 ; =0x021C59D8 ldr r2, [r1, #0x4] ldr r1, _0202C1A8 ; =0x00001310 str r0, [r2, r1] bx lr nop _0202C1A4: .word 0x021C59D8 _0202C1A8: .word 0x00001310 thumb_func_start FUN_0202C1AC FUN_0202C1AC: ; 0x0202C1AC ldr r1, _0202C1C0 ; =0x021C59D8 ldr r3, [r1, #0x4] ldr r1, _0202C1C4 ; =0x00001310 ldr r2, [r3, r1] sub r2, #0x9 cmp r2, #0x1 bls _0202C1BE add r1, #0x20 str r0, [r3, r1] _0202C1BE: bx lr .balign 4 _0202C1C0: .word 0x021C59D8 _0202C1C4: .word 0x00001310 thumb_func_start FUN_0202C1C8 FUN_0202C1C8: ; 0x0202C1C8 push {r3, lr} mov r0, #0x3 bl FUN_0202C198 ldr r1, _0202C1F0 ; =0x021C59D8 ldr r0, _0202C1F4 ; =FUN_0202C1F8 ldr r1, [r1, #0x4] blx FUN_020D9624 cmp r0, #0x2 beq _0202C1EC bl FUN_0202C1AC mov r0, #0x9 bl FUN_0202C198 mov r0, #0x0 pop {r3, pc} _0202C1EC: mov r0, #0x1 pop {r3, pc} .balign 4 _0202C1F0: .word 0x021C59D8 _0202C1F4: .word FUN_0202C1F8 thumb_func_start FUN_0202C1F8 FUN_0202C1F8: ; 0x0202C1F8 push {r3, lr} ldrh r0, [r0, #0x2] cmp r0, #0x0 beq _0202C20C bl FUN_0202C1AC mov r0, #0x9 bl FUN_0202C198 pop {r3, pc} _0202C20C: bl FUN_0202C21C cmp r0, #0x0 bne _0202C21A mov r0, #0x9 bl FUN_0202C198 _0202C21A: pop {r3, pc} thumb_func_start FUN_0202C21C FUN_0202C21C: ; 0x0202C21C push {r4, lr} ldr r0, _0202C278 ; =0x021C59D8 ldr r1, [r0, #0x4] ldr r0, _0202C27C ; =0x00001310 ldr r0, [r1, r0] sub r0, r0, #0x4 cmp r0, #0x2 bhi _0202C230 mov r0, #0x1 pop {r4, pc} _0202C230: blx FUN_020D7E9C add r4, r0, #0x0 mov r0, #0x66 lsl r0, r0, #0x2 add r0, r4, r0 mov r1, #0x4 blx DC_InvalidateRange mov r0, #0x66 mov r1, #0x0 lsl r0, r0, #0x2 str r1, [r4, r0] add r0, r4, r0 mov r1, #0x4 blx DC_FlushRange ldr r0, _0202C280 ; =FUN_0202C288 blx FUN_020D9554 cmp r0, #0x2 beq _0202C264 bl FUN_0202C1AC mov r0, #0x0 pop {r4, pc} _0202C264: ldr r2, _0202C278 ; =0x021C59D8 ldr r1, _0202C284 ; =0x0000132C ldr r0, [r2, #0x4] mov r3, #0x0 strh r3, [r0, r1] ldr r2, [r2, #0x4] mov r0, #0x1 add r1, r1, #0x2 strh r0, [r2, r1] pop {r4, pc} .balign 4 _0202C278: .word 0x021C59D8 _0202C27C: .word 0x00001310 _0202C280: .word FUN_0202C288 _0202C284: .word 0x0000132C thumb_func_start FUN_0202C288 FUN_0202C288: ; 0x0202C288 push {r4-r6, lr} add r5, r0, #0x0 ldrh r0, [r5, #0x10] mov r1, #0x1 lsl r1, r0 lsl r0, r1, #0x10 lsr r4, r0, #0x10 ldrh r0, [r5, #0x2] cmp r0, #0x0 beq _0202C2A8 bl FUN_0202C1AC mov r0, #0x9 bl FUN_0202C198 pop {r4-r6, pc} _0202C2A8: ldrh r0, [r5, #0x8] cmp r0, #0x7 bgt _0202C2C0 bge _0202C2DA cmp r0, #0x2 bgt _0202C378 cmp r0, #0x0 blt _0202C378 beq _0202C36A cmp r0, #0x2 beq _0202C2CC pop {r4-r6, pc} _0202C2C0: cmp r0, #0x9 bgt _0202C2C8 beq _0202C34C pop {r4-r6, pc} _0202C2C8: cmp r0, #0x1a pop {r4-r6, pc} _0202C2CC: ldr r0, _0202C37C ; =0x021C59D8 ldr r2, [r0, #0x4] ldr r0, _0202C380 ; =0x00001345 ldrb r1, [r2, r0] add r1, r1, #0x1 strb r1, [r2, r0] pop {r4-r6, pc} _0202C2DA: ldr r0, _0202C37C ; =0x021C59D8 ldr r2, [r0, #0x4] ldr r0, _0202C384 ; =0x00001343 ldrb r1, [r2, r0] cmp r1, #0x1 beq _0202C318 sub r0, r0, #0x1 ldrb r0, [r2, r0] cmp r0, #0x1 beq _0202C318 bl FUN_0202CBA0 ldr r1, _0202C37C ; =0x021C59D8 ldr r2, [r1, #0x4] ldr r1, _0202C388 ; =0x00001334 ldrb r1, [r2, r1] cmp r0, r1 bge _0202C318 bl FUN_02033534 ldrb r1, [r5, #0x14] cmp r1, r0 bne _0202C318 add r1, r5, #0x0 ldr r0, _0202C38C ; =0x02105D54 add r1, #0x15 mov r2, #0x3 blx FUN_020DF510 cmp r0, #0x0 beq _0202C330 _0202C318: ldrh r1, [r5, #0x10] mov r0, #0x0 blx FUN_020D9060 cmp r0, #0x2 beq _0202C378 bl FUN_0202C1AC mov r0, #0x9 bl FUN_0202C198 pop {r4-r6, pc} _0202C330: ldr r1, _0202C37C ; =0x021C59D8 ldr r0, _0202C390 ; =0x0000132E ldr r3, [r1, #0x4] ldrh r2, [r3, r0] orr r2, r4 strh r2, [r3, r0] ldr r1, [r1, #0x4] sub r0, r0, #0x6 ldr r1, [r1, r0] cmp r1, #0x0 beq _0202C378 ldrh r0, [r5, #0x10] blx r1 pop {r4-r6, pc} _0202C34C: ldr r2, _0202C37C ; =0x021C59D8 ldr r1, _0202C390 ; =0x0000132E ldr r0, [r2, #0x4] mvn r3, r4 ldrh r6, [r0, r1] and r3, r6 strh r3, [r0, r1] ldr r0, [r2, #0x4] sub r1, #0xa ldr r1, [r0, r1] cmp r1, #0x0 beq _0202C378 ldrh r0, [r5, #0x10] blx r1 pop {r4-r6, pc} _0202C36A: bl FUN_0202C394 cmp r0, #0x0 bne _0202C378 mov r0, #0x9 bl FUN_0202C198 _0202C378: pop {r4-r6, pc} nop _0202C37C: .word 0x021C59D8 _0202C380: .word 0x00001345 _0202C384: .word 0x00001343 _0202C388: .word 0x00001334 _0202C38C: .word 0x02105D54 _0202C390: .word 0x0000132E thumb_func_start FUN_0202C394 FUN_0202C394: ; 0x0202C394 push {r4, lr} sub sp, #0x8 ldr r0, _0202C3F0 ; =0x021C59D8 ldr r1, [r0, #0x4] ldr r0, _0202C3F4 ; =0x00001310 ldr r0, [r1, r0] sub r0, r0, #0x4 cmp r0, #0x2 bhi _0202C3AC add sp, #0x8 mov r0, #0x1 pop {r4, pc} _0202C3AC: mov r0, #0x4 bl FUN_0202C198 ldr r0, _0202C3F0 ; =0x021C59D8 ldr r2, _0202C3F8 ; =0x00001304 ldr r4, [r0, #0x4] ldr r3, _0202C3FC ; =0x00001020 ldr r0, [r4, r2] add r2, r2, #0x4 lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] ldr r2, [r4, r2] add r1, r4, r3 lsl r2, r2, #0x10 sub r3, #0xe0 ldr r0, _0202C400 ; =FUN_0202C404 lsr r2, r2, #0x10 add r3, r4, r3 blx FUN_020D9B48 cmp r0, #0x2 beq _0202C3E8 bl FUN_0202C1AC add sp, #0x8 mov r0, #0x0 pop {r4, pc} _0202C3E8: mov r0, #0x1 add sp, #0x8 pop {r4, pc} nop _0202C3F0: .word 0x021C59D8 _0202C3F4: .word 0x00001310 _0202C3F8: .word 0x00001304 _0202C3FC: .word 0x00001020 _0202C400: .word FUN_0202C404 thumb_func_start FUN_0202C404 FUN_0202C404: ; 0x0202C404 push {r3, lr} ldrh r1, [r0, #0x2] cmp r1, #0x0 beq _0202C41A add r0, r1, #0x0 bl FUN_0202C1AC mov r0, #0x9 bl FUN_0202C198 pop {r3, pc} _0202C41A: ldrh r0, [r0, #0x4] sub r0, #0xa cmp r0, #0x3 bhi _0202C454 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0202C42E: ; jump table (using 16-bit offset) .short _0202C436 - _0202C42E - 2; case 0 .short _0202C454 - _0202C42E - 2; case 1 .short _0202C454 - _0202C42E - 2; case 2 .short _0202C454 - _0202C42E - 2; case 3 _0202C436: ldr r0, _0202C458 ; =0x021C59D8 ldr r2, [r0, #0x4] ldr r0, _0202C45C ; =0x00001314 ldr r1, [r2, r0] cmp r1, #0x2 bne _0202C44E sub r0, r0, #0x4 ldr r0, [r2, r0] cmp r0, #0x4 beq _0202C44E cmp r0, #0x6 beq _0202C454 _0202C44E: mov r0, #0x4 bl FUN_0202C198 _0202C454: pop {r3, pc} nop _0202C458: .word 0x021C59D8 _0202C45C: .word 0x00001314 thumb_func_start FUN_0202C460 FUN_0202C460: ; 0x0202C460 push {r3, lr} mov r0, #0x3 bl FUN_0202C198 ldr r0, _0202C480 ; =FUN_0202C484 blx FUN_020D9960 cmp r0, #0x2 beq _0202C47A bl FUN_0202C1AC mov r0, #0x0 pop {r3, pc} _0202C47A: mov r0, #0x1 pop {r3, pc} nop _0202C480: .word FUN_0202C484 thumb_func_start FUN_0202C484 FUN_0202C484: ; 0x0202C484 push {r3, lr} ldrh r0, [r0, #0x2] cmp r0, #0x0 beq _0202C496 bl FUN_0202C1AC bl FUN_0202D0D8 pop {r3, pc} _0202C496: bl FUN_0202C4A4 cmp r0, #0x0 bne _0202C4A2 bl FUN_0202D0D8 _0202C4A2: pop {r3, pc} thumb_func_start FUN_0202C4A4 FUN_0202C4A4: ; 0x0202C4A4 push {r3, lr} ldr r0, _0202C4BC ; =FUN_0202C4C0 blx FUN_020D950C cmp r0, #0x2 beq _0202C4B8 bl FUN_0202C1AC mov r0, #0x0 pop {r3, pc} _0202C4B8: mov r0, #0x1 pop {r3, pc} .balign 4 _0202C4BC: .word FUN_0202C4C0 thumb_func_start FUN_0202C4C0 FUN_0202C4C0: ; 0x0202C4C0 push {r3, lr} ldrh r0, [r0, #0x2] cmp r0, #0x0 beq _0202C4CE bl FUN_0202C1AC pop {r3, pc} _0202C4CE: mov r0, #0x1 bl FUN_0202C198 pop {r3, pc} .balign 4 thumb_func_start FUN_0202C4D8 FUN_0202C4D8: ; 0x0202C4D8 push {r3-r7, lr} add r6, r2, #0x0 ldr r2, _0202C564 ; =0x021C59D8 add r5, r0, #0x0 add r4, r1, #0x0 mov r3, #0x2 ldr r0, [r2, #0x4] ldr r1, _0202C568 ; =0x00001308 lsl r3, r3, #0x8 str r3, [r0, r1] ldr r2, [r2, #0x4] mov r0, #0x40 sub r1, r1, #0x4 str r0, [r2, r1] mov r0, #0x2 bl FUN_0202C198 ldr r1, _0202C564 ; =0x021C59D8 ldr r0, _0202C56C ; =0x00001256 ldr r3, [r1, #0x4] mov r2, #0x1 strh r2, [r3, r0] add r7, r0, #0x0 ldrh r3, [r4, #0x4] ldr r2, [r1, #0x4] add r7, #0x96 strh r3, [r2, r7] add r7, r0, #0x0 ldrh r3, [r4, #0x2] ldr r2, [r1, #0x4] add r7, #0x94 strh r3, [r2, r7] add r2, r0, #0x0 ldrh r4, [r4, #0x0] ldr r3, [r1, #0x4] add r2, #0x92 strh r4, [r3, r2] add r2, r0, #0x0 ldr r3, [r1, #0x4] add r2, #0xbe str r5, [r3, r2] add r3, r0, #0x0 ldr r4, [r1, #0x4] mov r2, #0x0 add r3, #0xaa str r2, [r4, r3] add r3, r0, #0x0 ldr r4, [r1, #0x4] add r3, #0xb6 strh r6, [r4, r3] add r3, r0, #0x0 ldr r4, [r1, #0x4] add r3, #0x8e strh r2, [r4, r3] ldr r2, [r1, #0x4] add r0, #0xb8 mov r1, #0x1 strh r1, [r2, r0] bl FUN_0202C5D8 cmp r0, #0x0 bne _0202C55E mov r0, #0x9 bl FUN_0202C198 mov r0, #0x0 pop {r3-r7, pc} _0202C55E: mov r0, #0x1 pop {r3-r7, pc} nop _0202C564: .word 0x021C59D8 _0202C568: .word 0x00001308 _0202C56C: .word 0x00001256 thumb_func_start FUN_0202C570 FUN_0202C570: ; 0x0202C570 push {r4-r6, lr} add r5, r0, #0x0 mov r0, #0x2 add r4, r1, #0x0 add r6, r2, #0x0 bl FUN_0202C198 ldr r1, _0202C5D4 ; =0x021C59D8 mov r0, #0x13 ldr r2, [r1, #0x4] lsl r0, r0, #0x8 str r5, [r2, r0] add r2, r0, #0x0 ldr r3, [r1, #0x4] add r2, #0xc strh r6, [r3, r2] add r3, r0, #0x0 ldr r5, [r1, #0x4] mov r2, #0x0 sub r3, #0x1c strh r2, [r5, r3] add r3, r0, #0x0 ldr r5, [r1, #0x4] add r3, #0xe strh r2, [r5, r3] add r2, r0, #0x0 ldrh r5, [r4, #0x4] ldr r3, [r1, #0x4] sub r2, #0x14 strh r5, [r3, r2] add r2, r0, #0x0 ldrh r5, [r4, #0x2] ldr r3, [r1, #0x4] sub r2, #0x16 strh r5, [r3, r2] ldrh r2, [r4, #0x0] ldr r1, [r1, #0x4] sub r0, #0x18 strh r2, [r1, r0] bl FUN_0202C5D8 cmp r0, #0x0 bne _0202C5D0 mov r0, #0x9 bl FUN_0202C198 mov r0, #0x0 pop {r4-r6, pc} _0202C5D0: mov r0, #0x1 pop {r4-r6, pc} .balign 4 _0202C5D4: .word 0x021C59D8 thumb_func_start FUN_0202C5D8 FUN_0202C5D8: ; 0x0202C5D8 push {r3-r7, lr} blx FUN_020D8C3C add r5, r0, #0x0 mov r0, #0x2 lsl r0, r0, #0xe cmp r5, r0 bne _0202C5F8 mov r0, #0x3 bl FUN_0202C1AC mov r0, #0x1 bl FUN_020336A0 mov r0, #0x0 pop {r3-r7, pc} _0202C5F8: cmp r5, #0x0 bne _0202C60C mov r0, #0x16 bl FUN_0202C1AC mov r0, #0x1 bl FUN_020336A0 mov r0, #0x0 pop {r3-r7, pc} _0202C60C: ldr r1, _0202C684 ; =0x021C59D8 ldr r0, _0202C688 ; =0x0000130C ldr r3, [r1, #0x4] ldrh r2, [r3, r0] cmp r2, #0x0 bne _0202C64C add r7, r0, #0x0 mov r3, #0x1 add r2, r3, #0x0 sub r7, #0x28 sub r0, #0x28 _0202C622: ldr r4, [r1, #0x4] ldr r6, _0202C68C ; =0x000012E4 ldrh r6, [r4, r6] add r6, r6, #0x1 strh r6, [r4, r7] ldr r4, [r1, #0x4] ldrh r6, [r4, r0] cmp r6, #0x10 bls _0202C638 ldr r6, _0202C68C ; =0x000012E4 strh r3, [r4, r6] _0202C638: ldr r6, [r1, #0x4] ldr r4, _0202C68C ; =0x000012E4 ldrh r4, [r6, r4] add r6, r2, #0x0 sub r4, r4, #0x1 lsl r6, r4 add r4, r5, #0x0 tst r4, r6 bne _0202C650 b _0202C622 _0202C64C: sub r0, #0x28 strh r2, [r3, r0] _0202C650: blx FUN_020D8A4C ldr r2, _0202C684 ; =0x021C59D8 ldr r1, _0202C690 ; =0x000012E6 ldr r3, [r2, #0x4] strh r0, [r3, r1] add r0, r1, #0x0 ldr r3, [r2, #0x4] sub r0, #0xc6 add r4, r3, r0 sub r0, r1, #0x6 str r4, [r3, r0] ldr r2, [r2, #0x4] sub r1, r1, #0x6 ldr r0, _0202C694 ; =FUN_0202C698 add r1, r2, r1 blx FUN_020D940C cmp r0, #0x2 beq _0202C680 bl FUN_0202C1AC mov r0, #0x0 pop {r3-r7, pc} _0202C680: mov r0, #0x1 pop {r3-r7, pc} .balign 4 _0202C684: .word 0x021C59D8 _0202C688: .word 0x0000130C _0202C68C: .word 0x000012E4 _0202C690: .word 0x000012E6 _0202C694: .word FUN_0202C698 thumb_func_start FUN_0202C698 FUN_0202C698: ; 0x0202C698 push {r4, lr} add r4, r0, #0x0 ldrh r0, [r4, #0x2] cmp r0, #0x0 beq _0202C6AE bl FUN_0202C1AC mov r0, #0x9 bl FUN_0202C198 pop {r4, pc} _0202C6AE: ldr r0, _0202C760 ; =0x021C59D8 ldr r2, [r0, #0x4] ldr r0, _0202C764 ; =0x00001310 ldr r1, [r2, r0] cmp r1, #0x2 beq _0202C6D0 mov r1, #0x0 sub r0, r0, #0x2 strh r1, [r2, r0] bl FUN_0202C794 cmp r0, #0x0 bne _0202C75C mov r0, #0x9 bl FUN_0202C198 pop {r4, pc} _0202C6D0: ldrh r1, [r4, #0x8] cmp r1, #0x3 beq _0202C75C cmp r1, #0x4 beq _0202C74E cmp r1, #0x5 bne _0202C74E sub r0, #0xf0 add r0, r2, r0 mov r1, #0xc0 blx DC_InvalidateRange ldr r0, _0202C760 ; =0x021C59D8 ldr r1, [r0, #0x4] ldr r0, _0202C768 ; =0x00001320 ldr r2, [r1, r0] cmp r2, #0x0 beq _0202C704 ldrh r0, [r4, #0x36] cmp r0, #0x8 blo _0202C704 add r1, r4, #0x0 add r1, #0x48 ldrb r1, [r1, #0x4] ldr r0, [r4, #0x3c] blx r2 _0202C704: ldrh r0, [r4, #0x36] cmp r0, #0x8 blo _0202C74E ldr r0, _0202C760 ; =0x021C59D8 ldr r2, [r4, #0x3c] ldr r0, [r0, #0x4] ldr r1, [r0, #0x8] cmp r2, r1 bne _0202C74E add r4, #0x43 ldrb r2, [r4, #0x0] mov r1, #0x3 and r1, r2 cmp r1, #0x1 bne _0202C74E mov r1, #0x13 lsl r1, r1, #0x8 ldr r2, [r0, r1] cmp r2, #0x0 beq _0202C732 sub r1, #0xe0 add r0, r0, r1 blx r2 _0202C732: ldr r0, _0202C760 ; =0x021C59D8 ldr r1, [r0, #0x4] ldr r0, _0202C76C ; =0x0000130E ldrh r0, [r1, r0] cmp r0, #0x0 beq _0202C74E bl FUN_0202C794 cmp r0, #0x0 bne _0202C75C mov r0, #0x9 bl FUN_0202C198 pop {r4, pc} _0202C74E: bl FUN_0202C5D8 cmp r0, #0x0 bne _0202C75C mov r0, #0x9 bl FUN_0202C198 _0202C75C: pop {r4, pc} nop _0202C760: .word 0x021C59D8 _0202C764: .word 0x00001310 _0202C768: .word 0x00001320 _0202C76C: .word 0x0000130E thumb_func_start FUN_0202C770 FUN_0202C770: ; 0x0202C770 push {r3, lr} ldr r0, _0202C78C ; =0x021C59D8 ldr r1, [r0, #0x4] ldr r0, _0202C790 ; =0x00001310 ldr r0, [r1, r0] cmp r0, #0x2 beq _0202C782 mov r0, #0x0 pop {r3, pc} _0202C782: mov r0, #0x3 bl FUN_0202C198 mov r0, #0x1 pop {r3, pc} .balign 4 _0202C78C: .word 0x021C59D8 _0202C790: .word 0x00001310 thumb_func_start FUN_0202C794 FUN_0202C794: ; 0x0202C794 push {r3, lr} ldr r0, _0202C7AC ; =FUN_0202C7B0 blx FUN_020D9244 cmp r0, #0x2 beq _0202C7A8 bl FUN_0202C1AC mov r0, #0x0 pop {r3, pc} _0202C7A8: mov r0, #0x1 pop {r3, pc} .balign 4 _0202C7AC: .word FUN_0202C7B0 thumb_func_start FUN_0202C7B0 FUN_0202C7B0: ; 0x0202C7B0 push {r3, lr} ldrh r0, [r0, #0x2] cmp r0, #0x0 beq _0202C7BE bl FUN_0202C1AC pop {r3, pc} _0202C7BE: mov r0, #0x1 bl FUN_0202C198 ldr r0, _0202C7E0 ; =0x021C59D8 ldr r1, [r0, #0x4] ldr r0, _0202C7E4 ; =0x0000130E ldrh r0, [r1, r0] cmp r0, #0x0 beq _0202C7DE bl FUN_0202C7E8 cmp r0, #0x0 bne _0202C7DE mov r0, #0x9 bl FUN_0202C198 _0202C7DE: pop {r3, pc} .balign 4 _0202C7E0: .word 0x021C59D8 _0202C7E4: .word 0x0000130E thumb_func_start FUN_0202C7E8 FUN_0202C7E8: ; 0x0202C7E8 push {lr} sub sp, #0x24 ldr r0, _0202C844 ; =0x021C59D8 ldr r1, [r0, #0x4] ldr r0, _0202C848 ; =0x00001310 ldr r0, [r1, r0] sub r0, r0, #0x4 cmp r0, #0x2 bhi _0202C800 add sp, #0x24 mov r0, #0x1 pop {pc} _0202C800: mov r0, #0x3 bl FUN_0202C198 add r1, sp, #0x4 ldr r0, _0202C84C ; =0x02105D54 add r1, #0x1 mov r2, #0x3 blx MI_CpuCopy8 bl FUN_02033534 add r1, sp, #0x4 strb r0, [r1, #0x0] mov r0, #0x0 str r0, [sp, #0x0] ldr r1, _0202C844 ; =0x021C59D8 ldr r0, _0202C850 ; =FUN_0202C858 ldr r2, [r1, #0x4] ldr r1, _0202C854 ; =0x00001220 mov r3, #0x1 add r1, r2, r1 add r2, sp, #0x4 blx FUN_020D9168 cmp r0, #0x2 beq _0202C83E bl FUN_0202C1AC add sp, #0x24 mov r0, #0x0 pop {pc} _0202C83E: mov r0, #0x1 add sp, #0x24 pop {pc} .balign 4 _0202C844: .word 0x021C59D8 _0202C848: .word 0x00001310 _0202C84C: .word 0x02105D54 _0202C850: .word FUN_0202C858 _0202C854: .word 0x00001220 thumb_func_start FUN_0202C858 FUN_0202C858: ; 0x0202C858 push {r4, lr} add r4, r0, #0x0 ldrh r0, [r4, #0x2] cmp r0, #0x0 beq _0202C894 bl FUN_0202C1AC ldrh r0, [r4, #0x2] cmp r0, #0xc bne _0202C874 mov r0, #0x9 bl FUN_0202C198 pop {r4, pc} _0202C874: cmp r0, #0xb bne _0202C880 mov r0, #0x9 bl FUN_0202C198 pop {r4, pc} _0202C880: cmp r0, #0x1 bne _0202C88C mov r0, #0x8 bl FUN_0202C198 pop {r4, pc} _0202C88C: mov r0, #0x9 bl FUN_0202C198 pop {r4, pc} _0202C894: ldrh r0, [r4, #0x8] cmp r0, #0x8 beq _0202C8FA cmp r0, #0x7 bne _0202C8DA ldr r0, _0202C8FC ; =0x021C59D8 ldr r1, [r0, #0x4] ldr r0, _0202C900 ; =0x00001335 ldrb r0, [r1, r0] cmp r0, #0x0 beq _0202C8B8 mov r0, #0x14 bl FUN_0202C1AC mov r0, #0x9 bl FUN_0202C198 pop {r4, pc} _0202C8B8: mov r0, #0x4 bl FUN_0202C198 bl FUN_0202C908 cmp r0, #0x0 bne _0202C8CE mov r0, #0x3 bl FUN_0202C198 pop {r4, pc} _0202C8CE: ldr r0, _0202C8FC ; =0x021C59D8 ldrh r2, [r4, #0xa] ldr r1, [r0, #0x4] ldr r0, _0202C904 ; =0x0000132C strh r2, [r1, r0] pop {r4, pc} _0202C8DA: cmp r0, #0x6 beq _0202C8FA cmp r0, #0x9 bne _0202C8F0 mov r0, #0x14 bl FUN_0202C1AC mov r0, #0x9 bl FUN_0202C198 pop {r4, pc} _0202C8F0: cmp r0, #0x1a beq _0202C8FA mov r0, #0x9 bl FUN_0202C198 _0202C8FA: pop {r4, pc} .balign 4 _0202C8FC: .word 0x021C59D8 _0202C900: .word 0x00001335 _0202C904: .word 0x0000132C thumb_func_start FUN_0202C908 FUN_0202C908: ; 0x0202C908 push {r4, lr} sub sp, #0x8 ldr r0, _0202C948 ; =0x021C59D8 ldr r2, _0202C94C ; =0x00001304 ldr r4, [r0, #0x4] ldr r3, _0202C950 ; =0x00001020 ldr r0, [r4, r2] add r1, r4, r3 lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] add r2, r2, #0x4 ldr r2, [r4, r2] sub r3, #0xe0 lsl r2, r2, #0x10 ldr r0, _0202C954 ; =FUN_0202C958 lsr r2, r2, #0x10 add r3, r4, r3 blx FUN_020D9B48 cmp r0, #0x2 beq _0202C942 bl FUN_0202C1AC add sp, #0x8 mov r0, #0x0 pop {r4, pc} _0202C942: mov r0, #0x1 add sp, #0x8 pop {r4, pc} .balign 4 _0202C948: .word 0x021C59D8 _0202C94C: .word 0x00001304 _0202C950: .word 0x00001020 _0202C954: .word FUN_0202C958 thumb_func_start FUN_0202C958 FUN_0202C958: ; 0x0202C958 push {r3, lr} ldrh r1, [r0, #0x2] cmp r1, #0x0 beq _0202C97A cmp r1, #0xf beq _0202C9B0 cmp r1, #0x9 beq _0202C9B0 cmp r1, #0xd beq _0202C9B0 add r0, r1, #0x0 bl FUN_0202C1AC mov r0, #0x9 bl FUN_0202C198 pop {r3, pc} _0202C97A: ldrh r0, [r0, #0x4] sub r0, #0xa cmp r0, #0x3 bhi _0202C9B0 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0202C98E: ; jump table (using 16-bit offset) .short _0202C996 - _0202C98E - 2; case 0 .short _0202C9B0 - _0202C98E - 2; case 1 .short _0202C9B0 - _0202C98E - 2; case 2 .short _0202C9B0 - _0202C98E - 2; case 3 _0202C996: ldr r0, _0202C9B4 ; =0x021C59D8 ldr r2, [r0, #0x4] ldr r0, _0202C9B8 ; =0x00001314 ldr r1, [r2, r0] cmp r1, #0x3 bne _0202C9AA sub r0, r0, #0x4 ldr r0, [r2, r0] cmp r0, #0x6 beq _0202C9B0 _0202C9AA: mov r0, #0x4 bl FUN_0202C198 _0202C9B0: pop {r3, pc} nop _0202C9B4: .word 0x021C59D8 _0202C9B8: .word 0x00001314 thumb_func_start FUN_0202C9BC FUN_0202C9BC: ; 0x0202C9BC push {r3, lr} mov r0, #0x3 bl FUN_0202C198 ldr r0, _0202C9DC ; =FUN_0202C9E0 blx FUN_020D9960 cmp r0, #0x2 beq _0202C9D6 bl FUN_0202C1AC mov r0, #0x0 pop {r3, pc} _0202C9D6: mov r0, #0x1 pop {r3, pc} nop _0202C9DC: .word FUN_0202C9E0 thumb_func_start FUN_0202C9E0 FUN_0202C9E0: ; 0x0202C9E0 push {r3, lr} ldrh r0, [r0, #0x2] cmp r0, #0x0 beq _0202C9F2 bl FUN_0202C1AC bl FUN_0202D100 pop {r3, pc} _0202C9F2: bl FUN_0202CA04 cmp r0, #0x0 bne _0202CA00 mov r0, #0x9 bl FUN_0202C198 _0202CA00: pop {r3, pc} .balign 4 thumb_func_start FUN_0202CA04 FUN_0202CA04: ; 0x0202CA04 push {r3, lr} mov r0, #0x3 bl FUN_0202C198 ldr r0, _0202CA28 ; =FUN_0202CA2C mov r1, #0x0 blx FUN_020D9060 cmp r0, #0x2 beq _0202CA24 bl FUN_0202C1AC bl FUN_0202D0D8 mov r0, #0x0 pop {r3, pc} _0202CA24: mov r0, #0x1 pop {r3, pc} .balign 4 _0202CA28: .word FUN_0202CA2C thumb_func_start FUN_0202CA2C FUN_0202CA2C: ; 0x0202CA2C push {r3, lr} ldrh r0, [r0, #0x2] cmp r0, #0x0 beq _0202CA3A bl FUN_0202C1AC pop {r3, pc} _0202CA3A: mov r0, #0x1 bl FUN_0202C198 pop {r3, pc} .balign 4 thumb_func_start FUN_0202CA44 FUN_0202CA44: ; 0x0202CA44 push {r3, lr} mov r0, #0x3 bl FUN_0202C198 ldr r0, _0202CA64 ; =FUN_0202CA68 blx FUN_020D9774 cmp r0, #0x2 beq _0202CA5E bl FUN_0202C1AC mov r0, #0x0 pop {r3, pc} _0202CA5E: mov r0, #0x1 pop {r3, pc} nop _0202CA64: .word FUN_0202CA68 thumb_func_start FUN_0202CA68 FUN_0202CA68: ; 0x0202CA68 push {r4, lr} add r4, r0, #0x0 ldrh r0, [r4, #0x2] cmp r0, #0x0 beq _0202CA80 mov r0, #0x9 bl FUN_0202C198 ldrh r0, [r4, #0x2] bl FUN_0202C1AC pop {r4, pc} _0202CA80: mov r0, #0x1 bl FUN_0202C198 pop {r4, pc} thumb_func_start FUN_0202CA88 FUN_0202CA88: ; 0x0202CA88 push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 ldr r0, _0202CAD0 ; =0x021C59D8 add r6, r1, #0x0 add r4, r2, #0x0 ldr r1, [r0, #0x4] mov r0, #0x3d lsl r0, r0, #0x6 ldr r2, _0202CAD4 ; =0x00001304 add r0, r1, r0 ldr r1, [r1, r2] add r7, r3, #0x0 blx DC_FlushRange ldr r0, _0202CAD8 ; =0x0000FFFF add r1, r7, #0x0 str r0, [sp, #0x0] lsl r0, r4, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x4] mov r0, #0x2 str r0, [sp, #0x8] ldr r0, _0202CADC ; =FUN_0202CAE0 add r2, r5, #0x0 add r3, r6, #0x0 blx FUN_020D99EC cmp r0, #0x2 bne _0202CACA add sp, #0xc mov r0, #0x1 pop {r4-r7, pc} _0202CACA: mov r0, #0x0 add sp, #0xc pop {r4-r7, pc} .balign 4 _0202CAD0: .word 0x021C59D8 _0202CAD4: .word 0x00001304 _0202CAD8: .word 0x0000FFFF _0202CADC: .word FUN_0202CAE0 thumb_func_start FUN_0202CAE0 FUN_0202CAE0: ; 0x0202CAE0 push {r3, lr} ldrh r1, [r0, #0x2] cmp r1, #0x0 beq _0202CAF4 cmp r1, #0xf beq _0202CAF4 add r0, r1, #0x0 bl FUN_0202C1AC pop {r3, pc} _0202CAF4: ldr r2, [r0, #0x20] cmp r2, #0x0 beq _0202CB06 cmp r1, #0x0 bne _0202CB02 mov r0, #0x1 b _0202CB04 _0202CB02: mov r0, #0x0 _0202CB04: blx r2 _0202CB06: pop {r3, pc} thumb_func_start FUN_0202CB08 FUN_0202CB08: ; 0x0202CB08 push {r3, lr} add r2, r0, #0x0 ldrh r0, [r2, #0x2] cmp r0, #0x0 beq _0202CB18 bl FUN_0202C1AC pop {r3, pc} _0202CB18: ldr r0, _0202CB48 ; =0x021C59D8 ldr r1, [r0, #0x4] ldr r0, _0202CB4C ; =0x00001318 ldr r3, [r1, r0] cmp r3, #0x0 beq _0202CB44 ldrh r0, [r2, #0x4] cmp r0, #0x19 beq _0202CB44 cmp r0, #0x15 bne _0202CB38 ldrh r0, [r2, #0x12] ldr r1, [r2, #0xc] ldrh r2, [r2, #0x10] blx r3 pop {r3, pc} _0202CB38: cmp r0, #0x9 bne _0202CB44 ldrh r0, [r2, #0x12] mov r1, #0x0 add r2, r1, #0x0 blx r3 _0202CB44: pop {r3, pc} nop _0202CB48: .word 0x021C59D8 _0202CB4C: .word 0x00001318 thumb_func_start FUN_0202CB50 FUN_0202CB50: ; 0x0202CB50 push {r3, lr} ldrh r0, [r0, #0x2] cmp r0, #0x0 beq _0202CB60 mov r0, #0xa bl FUN_0202C198 pop {r3, pc} _0202CB60: mov r0, #0x0 add r1, r0, #0x0 blx FUN_02090CC8 mov r0, #0x0 bl FUN_0202C198 pop {r3, pc} thumb_func_start FUN_0202CB70 FUN_0202CB70: ; 0x0202CB70 ldr r1, _0202CB78 ; =0x021C59D8 ldr r1, [r1, #0x4] str r0, [r1, #0x8] bx lr .balign 4 _0202CB78: .word 0x021C59D8 thumb_func_start FUN_0202CB7C FUN_0202CB7C: ; 0x0202CB7C ldr r2, _0202CB88 ; =0x021C59D8 ldr r3, [r2, #0x4] str r0, [r3, #0x0] ldr r0, [r2, #0x4] strh r1, [r0, #0x4] bx lr .balign 4 _0202CB88: .word 0x021C59D8 thumb_func_start FUN_0202CB8C FUN_0202CB8C: ; 0x0202CB8C ldr r0, _0202CB98 ; =0x021C59D8 ldr r1, [r0, #0x4] ldr r0, _0202CB9C ; =0x0000132E ldrh r0, [r1, r0] bx lr nop _0202CB98: .word 0x021C59D8 _0202CB9C: .word 0x0000132E thumb_func_start FUN_0202CBA0 FUN_0202CBA0: ; 0x0202CBA0 push {r3-r4} ldr r0, _0202CBCC ; =0x021C59D8 mov r2, #0x0 ldr r1, [r0, #0x4] ldr r0, _0202CBD0 ; =0x0000132E add r3, r2, #0x0 ldrh r4, [r1, r0] mov r1, #0x1 _0202CBB0: add r0, r4, #0x0 tst r0, r1 beq _0202CBB8 add r2, r2, #0x1 _0202CBB8: lsl r0, r4, #0xf add r3, r3, #0x1 lsr r4, r0, #0x10 cmp r3, #0x10 blt _0202CBB0 lsl r0, r2, #0x10 lsr r0, r0, #0x10 pop {r3-r4} bx lr nop _0202CBCC: .word 0x021C59D8 _0202CBD0: .word 0x0000132E thumb_func_start FUN_0202CBD4 FUN_0202CBD4: ; 0x0202CBD4 ldr r0, _0202CBE0 ; =0x021C59D8 ldr r1, [r0, #0x4] ldr r0, _0202CBE4 ; =0x00001310 ldr r0, [r1, r0] bx lr nop _0202CBE0: .word 0x021C59D8 _0202CBE4: .word 0x00001310 thumb_func_start FUN_0202CBE8 FUN_0202CBE8: ; 0x0202CBE8 ldr r0, _0202CBF4 ; =0x021C59D8 ldr r1, [r0, #0x4] ldr r0, _0202CBF8 ; =0x00001330 ldr r0, [r1, r0] bx lr nop _0202CBF4: .word 0x021C59D8 _0202CBF8: .word 0x00001330 thumb_func_start FUN_0202CBFC FUN_0202CBFC: ; 0x0202CBFC push {r3-r5, lr} sub sp, #0x8 add r0, sp, #0x0 blx OS_GetMacAddress ldr r0, _0202CC84 ; =0x027FFC3C ldr r3, [r0, #0x0] add r0, sp, #0x0 ldrh r2, [r0, #0x4] ldrh r1, [r0, #0x2] ldrh r0, [r0, #0x0] add r0, r0, r3 add r0, r1, r0 add r1, r2, r0 ldr r3, _0202CC88 ; =0x021C59D8 ldr r2, _0202CC8C ; =0x00001338 ldr r0, [r3, #0x4] str r1, [r0, r2] ldr r0, [r3, #0x4] ldr r1, _0202CC90 ; =0x00010DCD ldr r4, [r0, r2] add r5, r4, #0x0 mul r5, r1 ldr r1, _0202CC94 ; =0x00003039 mov r4, #0x0 add r1, r5, r1 str r1, [r0, r2] ldr r1, [r3, #0x4] add r0, r2, #0x4 strh r4, [r1, r0] ldr r1, [r3, #0x4] mov r4, #0x65 add r0, r2, #0x6 strh r4, [r1, r0] mov r0, #0x3 bl FUN_0202C198 mov r0, #0x1 bl FUN_0202CC98 cmp r0, #0x18 bne _0202CC68 mov r0, #0x18 bl FUN_0202C1AC mov r0, #0x9 bl FUN_0202C198 mov r0, #0x1 bl FUN_020336A0 add sp, #0x8 mov r0, #0x0 pop {r3-r5, pc} _0202CC68: cmp r0, #0x2 beq _0202CC7C bl FUN_0202C1AC mov r0, #0x9 bl FUN_0202C198 add sp, #0x8 mov r0, #0x0 pop {r3-r5, pc} _0202CC7C: mov r0, #0x1 add sp, #0x8 pop {r3-r5, pc} nop _0202CC84: .word 0x027FFC3C _0202CC88: .word 0x021C59D8 _0202CC8C: .word 0x00001338 _0202CC90: .word 0x00010DCD _0202CC94: .word 0x00003039 thumb_func_start FUN_0202CC98 FUN_0202CC98: ; 0x0202CC98 push {r4, lr} add r4, r0, #0x0 blx FUN_020D8C3C mov r1, #0x2 lsl r1, r1, #0xe cmp r0, r1 bne _0202CCBE mov r0, #0x3 bl FUN_0202C1AC mov r0, #0x9 bl FUN_0202C198 mov r0, #0x1 bl FUN_020336A0 mov r0, #0x3 pop {r4, pc} _0202CCBE: cmp r0, #0x0 bne _0202CCD8 mov r0, #0x16 bl FUN_0202C1AC mov r0, #0x9 bl FUN_0202C198 mov r0, #0x1 bl FUN_020336A0 mov r0, #0x18 pop {r4, pc} _0202CCD8: mov r2, #0x1 sub r1, r4, #0x1 lsl r2, r1 add r1, r2, #0x0 tst r1, r0 bne _0202CD00 mov r2, #0x1 _0202CCE6: add r1, r4, #0x1 lsl r1, r1, #0x10 lsr r4, r1, #0x10 cmp r4, #0x10 bls _0202CCF4 mov r0, #0x18 pop {r4, pc} _0202CCF4: sub r1, r4, #0x1 add r3, r2, #0x0 lsl r3, r1 add r1, r3, #0x0 tst r1, r0 beq _0202CCE6 _0202CD00: ldr r0, _0202CD10 ; =FUN_0202CD14 add r1, r4, #0x0 bl FUN_0202CD90 lsl r0, r0, #0x10 lsr r0, r0, #0x10 pop {r4, pc} nop _0202CD10: .word FUN_0202CD14 thumb_func_start FUN_0202CD14 FUN_0202CD14: ; 0x0202CD14 push {r3-r5, lr} ldrh r1, [r0, #0x2] cmp r1, #0x0 beq _0202CD30 add r0, r1, #0x0 bl FUN_0202C1AC mov r0, #0x9 bl FUN_0202C198 mov r0, #0x1 bl FUN_020336A0 pop {r3-r5, pc} _0202CD30: ldr r2, _0202CD88 ; =0x021C59D8 ldrh r1, [r0, #0x8] ldrh r5, [r0, #0xa] ldr r0, [r2, #0x4] ldr r3, _0202CD8C ; =0x0000133E ldrh r4, [r0, r3] cmp r4, r5 bls _0202CD50 strh r5, [r0, r3] mov r4, #0x1 sub r0, r1, #0x1 lsl r4, r0 ldr r2, [r2, #0x4] add r0, r3, #0x2 strh r4, [r2, r0] b _0202CD64 _0202CD50: cmp r4, r5 bne _0202CD64 add r2, r3, #0x2 ldrh r5, [r0, r2] mov r4, #0x1 sub r2, r1, #0x1 lsl r4, r2 orr r4, r5 add r2, r3, #0x2 strh r4, [r0, r2] _0202CD64: add r0, r1, #0x1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_0202CC98 cmp r0, #0x18 bne _0202CD7A mov r0, #0x7 bl FUN_0202C198 pop {r3-r5, pc} _0202CD7A: cmp r0, #0x2 beq _0202CD84 mov r0, #0x9 bl FUN_0202C198 _0202CD84: pop {r3-r5, pc} nop _0202CD88: .word 0x021C59D8 _0202CD8C: .word 0x0000133E thumb_func_start FUN_0202CD90 FUN_0202CD90: ; 0x0202CD90 push {r3, lr} add r3, r1, #0x0 mov r1, #0x1e str r1, [sp, #0x0] mov r1, #0x3 mov r2, #0x11 blx FUN_020DADD4 pop {r3, pc} .balign 4 thumb_func_start FUN_0202CDA4 FUN_0202CDA4: ; 0x0202CDA4 push {r3, lr} mov r0, #0x1 bl FUN_0202C198 ldr r0, _0202CDC8 ; =0x021C59D8 ldr r1, [r0, #0x4] mov r0, #0x4d lsl r0, r0, #0x6 ldrh r0, [r1, r0] bl FUN_0202CDD0 ldr r2, _0202CDC8 ; =0x021C59D8 ldr r1, _0202CDCC ; =0x0000133C ldr r3, [r2, #0x4] strh r0, [r3, r1] ldr r0, [r2, #0x4] ldrh r0, [r0, r1] pop {r3, pc} .balign 4 _0202CDC8: .word 0x021C59D8 _0202CDCC: .word 0x0000133C thumb_func_start FUN_0202CDD0 FUN_0202CDD0: ; 0x0202CDD0 push {r4-r7} add r4, r0, #0x0 mov r0, #0x0 add r3, r0, #0x0 add r2, r0, #0x0 mov r1, #0x1 _0202CDDC: add r5, r1, #0x0 lsl r5, r2 tst r5, r4 beq _0202CDF0 add r0, r2, #0x1 add r3, r3, #0x1 lsl r0, r0, #0x10 lsl r3, r3, #0x10 asr r0, r0, #0x10 lsr r3, r3, #0x10 _0202CDF0: add r2, r2, #0x1 lsl r2, r2, #0x10 asr r2, r2, #0x10 cmp r2, #0x10 blt _0202CDDC cmp r3, #0x1 bls _0202CE4E ldr r5, _0202CE54 ; =0x021C59D8 ldr r2, _0202CE58 ; =0x00001338 ldr r0, [r5, #0x4] ldr r1, _0202CE5C ; =0x00010DCD ldr r6, [r0, r2] add r7, r6, #0x0 mul r7, r1 ldr r1, _0202CE60 ; =0x00003039 add r1, r7, r1 str r1, [r0, r2] ldr r0, [r5, #0x4] mov r1, #0x1 ldr r0, [r0, r2] lsl r0, r0, #0x18 lsr r0, r0, #0x18 mul r0, r3 lsl r0, r0, #0x8 lsr r2, r0, #0x10 mov r3, #0x0 _0202CE24: add r0, r4, #0x0 tst r0, r1 beq _0202CE3E cmp r2, #0x0 bne _0202CE38 add r0, r3, #0x1 lsl r0, r0, #0x10 asr r0, r0, #0x10 pop {r4-r7} bx lr _0202CE38: sub r0, r2, #0x1 lsl r0, r0, #0x10 lsr r2, r0, #0x10 _0202CE3E: lsl r0, r4, #0xf lsr r4, r0, #0x10 add r0, r3, #0x1 lsl r0, r0, #0x10 asr r3, r0, #0x10 cmp r3, #0x10 blt _0202CE24 mov r0, #0x0 _0202CE4E: pop {r4-r7} bx lr nop _0202CE54: .word 0x021C59D8 _0202CE58: .word 0x00001338 _0202CE5C: .word 0x00010DCD _0202CE60: .word 0x00003039 thumb_func_start FUN_0202CE64 FUN_0202CE64: ; 0x0202CE64 push {r3-r5, lr} lsl r1, r0, #0x1b lsr r2, r1, #0x1b beq _0202CE72 mov r1, #0x20 sub r1, r1, r2 add r0, r0, r1 _0202CE72: ldr r2, _0202CEE4 ; =0x021C59D8 ldr r1, _0202CEE8 ; =0x00001308 str r0, [r2, #0x4] mov r3, #0x0 str r3, [r0, r1] ldr r4, [r2, #0x4] sub r0, r1, #0x4 str r3, [r4, r0] add r0, r1, #0x0 ldr r4, [r2, #0x4] add r0, #0x10 str r3, [r4, r0] add r0, r1, #0x0 ldr r4, [r2, #0x4] add r0, #0x24 strh r3, [r4, r0] add r0, r1, #0x0 ldr r4, [r2, #0x4] mov r5, #0x1 add r0, #0x26 strh r5, [r4, r0] add r0, r1, #0x0 ldr r4, [r2, #0x4] add r0, #0x28 str r3, [r4, r0] add r0, r1, #0x0 ldr r4, [r2, #0x4] add r0, #0x8 str r3, [r4, r0] ldr r0, [r2, #0x4] mov r5, #0x8 str r3, [r0, #0x0] ldr r0, [r2, #0x4] strh r3, [r0, #0x4] add r0, r1, #0x0 ldr r4, [r2, #0x4] add r0, #0x14 str r3, [r4, r0] add r0, r1, #0x0 ldr r4, [r2, #0x4] add r0, #0x2c strb r5, [r4, r0] add r0, r1, #0x0 ldr r4, [r2, #0x4] add r0, #0x2d strb r3, [r4, r0] ldr r0, [r2, #0x4] add r1, #0x3a strb r3, [r0, r1] bl FUN_0202CF0C cmp r0, #0x0 bne _0202CEE0 mov r0, #0x0 pop {r3-r5, pc} _0202CEE0: mov r0, #0x1 pop {r3-r5, pc} .balign 4 _0202CEE4: .word 0x021C59D8 _0202CEE8: .word 0x00001308 thumb_func_start FUN_0202CEEC FUN_0202CEEC: ; 0x0202CEEC mov r0, #0x4e lsl r0, r0, #0x6 bx lr .balign 4 thumb_func_start FUN_0202CEF4 FUN_0202CEF4: ; 0x0202CEF4 push {r3, lr} ldrh r0, [r0, #0x2] cmp r0, #0x8 bne _0202CF08 mov r0, #0x9 bl FUN_0202C198 mov r0, #0x19 bl FUN_0202C1AC _0202CF08: pop {r3, pc} .balign 4 thumb_func_start FUN_0202CF0C FUN_0202CF0C: ; 0x0202CF0C push {r3, lr} mov r0, #0x3 bl FUN_0202C198 ldr r0, _0202CF38 ; =0x021C59D8 ldr r1, _0202CF3C ; =FUN_0202CF40 ldr r0, [r0, #0x4] mov r2, #0x2 add r0, #0x40 blx FUN_020D97B4 cmp r0, #0x2 beq _0202CF34 bl FUN_0202C1AC mov r0, #0xa bl FUN_0202C198 mov r0, #0x0 pop {r3, pc} _0202CF34: mov r0, #0x1 pop {r3, pc} .balign 4 _0202CF38: .word 0x021C59D8 _0202CF3C: .word FUN_0202CF40 thumb_func_start FUN_0202CF40 FUN_0202CF40: ; 0x0202CF40 push {r3, lr} ldrh r0, [r0, #0x2] cmp r0, #0x0 beq _0202CF5A bl FUN_0202C1AC mov r0, #0xa bl FUN_0202C198 mov r0, #0x1 bl FUN_020336A0 pop {r3, pc} _0202CF5A: ldr r0, _0202CF80 ; =FUN_0202CEF4 blx FUN_020D9014 cmp r0, #0x0 beq _0202CF76 bl FUN_0202C1AC mov r0, #0xa bl FUN_0202C198 mov r0, #0x1 bl FUN_020336A0 pop {r3, pc} _0202CF76: mov r0, #0x1 bl FUN_0202C198 pop {r3, pc} nop _0202CF80: .word FUN_0202CEF4 thumb_func_start FUN_0202CF84 FUN_0202CF84: ; 0x0202CF84 push {r3-r7, lr} add r6, r1, #0x0 ldr r1, _0202D02C ; =0x021C59D8 add r5, r0, #0x0 add r7, r2, #0x0 mov r0, #0x7 ldr r2, [r1, #0x4] ldr r1, _0202D030 ; =0x00001308 lsl r0, r0, #0x6 str r0, [r2, r1] ldr r0, _0202D02C ; =0x021C59D8 add r4, r3, #0x0 ldr r2, [r0, #0x4] sub r0, r1, #0x4 mov r3, #0xe0 str r3, [r2, r0] ldr r0, _0202D02C ; =0x021C59D8 add r1, #0xc ldr r0, [r0, #0x4] str r5, [r0, r1] mov r0, #0x3 bl FUN_0202C198 ldr r1, _0202D02C ; =0x021C59D8 cmp r5, #0x0 ldr r0, [r1, #0x4] strh r6, [r0, #0xc] ldr r0, [r1, #0x4] strh r7, [r0, #0x32] add r0, sp, #0x8 ldrh r2, [r0, #0x10] ldr r0, [r1, #0x4] strh r2, [r0, #0x18] beq _0202CFCE cmp r5, #0x4 beq _0202CFE8 b _0202CFF4 _0202CFCE: ldr r0, [r1, #0x4] mov r2, #0xc0 strh r2, [r0, #0x34] cmp r4, #0x5 blo _0202CFE0 ldr r0, [r1, #0x4] mov r2, #0xc strh r2, [r0, #0x36] b _0202CFF4 _0202CFE0: ldr r0, [r1, #0x4] mov r2, #0x26 strh r2, [r0, #0x36] b _0202CFF4 _0202CFE8: ldr r0, [r1, #0x4] mov r2, #0x64 strh r2, [r0, #0x34] ldr r0, [r1, #0x4] mov r2, #0xc strh r2, [r0, #0x36] _0202CFF4: ldr r1, _0202D02C ; =0x021C59D8 ldr r0, [r1, #0x4] strh r4, [r0, #0x10] ldr r2, [r1, #0x4] mov r0, #0x0 strh r0, [r2, #0x16] ldr r2, [r1, #0x4] cmp r5, #0x2 strh r0, [r2, #0x12] ldr r2, [sp, #0x1c] ldr r1, [r1, #0x4] strh r2, [r1, #0xe] bne _0202D010 mov r0, #0x1 _0202D010: ldr r1, _0202D02C ; =0x021C59D8 cmp r5, #0x0 ldr r1, [r1, #0x4] strh r0, [r1, #0x14] beq _0202D022 cmp r5, #0x2 beq _0202D022 cmp r5, #0x4 bne _0202D028 _0202D022: bl FUN_0202C1C8 pop {r3-r7, pc} _0202D028: mov r0, #0x0 pop {r3-r7, pc} .balign 4 _0202D02C: .word 0x021C59D8 _0202D030: .word 0x00001308 thumb_func_start FUN_0202D034 FUN_0202D034: ; 0x0202D034 push {r4-r6, lr} ldr r2, _0202D094 ; =0x021C59D8 add r5, r0, #0x0 add r4, r1, #0x0 mov r3, #0x2 ldr r0, [r2, #0x4] ldr r1, _0202D098 ; =0x00001308 lsl r3, r3, #0x8 str r3, [r0, r1] sub r0, r1, #0x4 ldr r3, [r2, #0x4] mov r6, #0x40 str r6, [r3, r0] ldr r0, [r2, #0x4] add r1, #0xc str r5, [r0, r1] mov r0, #0x3 bl FUN_0202C198 cmp r5, #0x1 beq _0202D066 cmp r5, #0x3 beq _0202D066 cmp r5, #0x5 bne _0202D08E _0202D066: ldr r1, _0202D094 ; =0x021C59D8 add r0, r4, #0x0 ldr r2, [r1, #0x4] ldr r1, _0202D09C ; =0x00001220 add r1, r2, r1 mov r2, #0xc0 blx MI_CpuCopy8 ldr r0, _0202D094 ; =0x021C59D8 ldr r1, [r0, #0x4] ldr r0, _0202D09C ; =0x00001220 add r0, r1, r0 mov r1, #0xc0 blx DC_FlushRange blx DC_WaitWriteBufferEmpty bl FUN_0202C7E8 pop {r4-r6, pc} _0202D08E: mov r0, #0x0 pop {r4-r6, pc} nop _0202D094: .word 0x021C59D8 _0202D098: .word 0x00001308 _0202D09C: .word 0x00001220 thumb_func_start FUN_0202D0A0 FUN_0202D0A0: ; 0x0202D0A0 push {r3, lr} ldr r2, _0202D0C4 ; =0x021C59D8 ldr r3, [r2, #0x4] ldr r2, _0202D0C8 ; =0x00001318 str r0, [r3, r2] lsl r0, r1, #0x10 ldr r1, _0202D0CC ; =FUN_0202CB08 lsr r0, r0, #0x10 mov r2, #0x0 blx FUN_020D8F34 cmp r0, #0x0 beq _0202D0C2 mov r0, #0x9 bl FUN_0202C198 _0202D0C0: b _0202D0C0 _0202D0C2: pop {r3, pc} .balign 4 _0202D0C4: .word 0x021C59D8 _0202D0C8: .word 0x00001318 _0202D0CC: .word FUN_0202CB08 thumb_func_start FUN_0202D0D0 FUN_0202D0D0: ; 0x0202D0D0 push {r3, lr} bl FUN_0202CA88 pop {r3, pc} thumb_func_start FUN_0202D0D8 FUN_0202D0D8: ; 0x0202D0D8 push {r3, lr} ldr r0, _0202D0F8 ; =0x021C59D8 ldr r1, [r0, #0x4] ldr r0, _0202D0FC ; =0x00001310 ldr r0, [r1, r0] cmp r0, #0x2 bne _0202D0E8 _0202D0E6: b _0202D0E6 _0202D0E8: bl FUN_0202CA44 cmp r0, #0x0 bne _0202D0F6 mov r0, #0xa bl FUN_0202C198 _0202D0F6: pop {r3, pc} .balign 4 _0202D0F8: .word 0x021C59D8 _0202D0FC: .word 0x00001310 thumb_func_start FUN_0202D100 FUN_0202D100: ; 0x0202D100 push {r3, lr} ldr r0, _0202D16C ; =0x021C59D8 ldr r1, [r0, #0x4] ldr r0, _0202D170 ; =0x00001310 ldr r0, [r1, r0] cmp r0, #0x1 beq _0202D16A cmp r0, #0x6 beq _0202D126 cmp r0, #0x5 beq _0202D126 cmp r0, #0x4 beq _0202D126 mov r0, #0x3 bl FUN_0202C198 bl FUN_0202D0D8 pop {r3, pc} _0202D126: mov r0, #0x3 bl FUN_0202C198 ldr r0, _0202D16C ; =0x021C59D8 ldr r1, [r0, #0x4] ldr r0, _0202D174 ; =0x00001314 ldr r0, [r1, r0] cmp r0, #0x5 bhi _0202D16A add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0202D144: ; jump table (using 16-bit offset) .short _0202D15E - _0202D144 - 2; case 0 .short _0202D150 - _0202D144 - 2; case 1 .short _0202D16A - _0202D144 - 2; case 2 .short _0202D16A - _0202D144 - 2; case 3 .short _0202D15E - _0202D144 - 2; case 4 .short _0202D150 - _0202D144 - 2; case 5 _0202D150: bl FUN_0202C9BC cmp r0, #0x0 bne _0202D16A bl FUN_0202D0D8 pop {r3, pc} _0202D15E: bl FUN_0202C460 cmp r0, #0x0 bne _0202D16A bl FUN_0202D0D8 _0202D16A: pop {r3, pc} .balign 4 _0202D16C: .word 0x021C59D8 _0202D170: .word 0x00001310 _0202D174: .word 0x00001314 thumb_func_start FUN_0202D178 FUN_0202D178: ; 0x0202D178 push {r3, lr} mov r0, #0x3 bl FUN_0202C198 ldr r0, _0202D198 ; =FUN_0202CB50 blx FUN_020D972C cmp r0, #0x2 beq _0202D194 mov r0, #0x9 bl FUN_0202C198 mov r0, #0x0 pop {r3, pc} _0202D194: mov r0, #0x1 pop {r3, pc} .balign 4 _0202D198: .word FUN_0202CB50 thumb_func_start FUN_0202D19C FUN_0202D19C: ; 0x0202D19C ldr r0, _0202D1A8 ; =0x021C59D8 ldr r1, [r0, #0x4] ldr r0, _0202D1AC ; =0x0000132C ldrh r0, [r1, r0] bx lr nop _0202D1A8: .word 0x021C59D8 _0202D1AC: .word 0x0000132C thumb_func_start FUN_0202D1B0 FUN_0202D1B0: ; 0x0202D1B0 ldr r1, _0202D1C0 ; =0x021C59D8 ldr r2, [r1, #0x4] cmp r2, #0x0 beq _0202D1BC ldr r1, _0202D1C4 ; =0x00001334 strb r0, [r2, r1] _0202D1BC: bx lr nop _0202D1C0: .word 0x021C59D8 _0202D1C4: .word 0x00001334 thumb_func_start FUN_0202D1C8 FUN_0202D1C8: ; 0x0202D1C8 ldr r0, _0202D1DC ; =0x021C59D8 ldr r1, [r0, #0x4] ldr r0, _0202D1E0 ; =0x00001310 ldr r0, [r1, r0] cmp r0, #0x1 bne _0202D1D8 mov r0, #0x1 bx lr _0202D1D8: mov r0, #0x0 bx lr .balign 4 _0202D1DC: .word 0x021C59D8 _0202D1E0: .word 0x00001310 thumb_func_start FUN_0202D1E4 FUN_0202D1E4: ; 0x0202D1E4 ldr r0, _0202D1F8 ; =0x021C59D8 ldr r1, [r0, #0x4] ldr r0, _0202D1FC ; =0x00001310 ldr r0, [r1, r0] cmp r0, #0x3 bne _0202D1F4 mov r0, #0x1 bx lr _0202D1F4: mov r0, #0x0 bx lr .balign 4 _0202D1F8: .word 0x021C59D8 _0202D1FC: .word 0x00001310 thumb_func_start FUN_0202D200 FUN_0202D200: ; 0x0202D200 ldr r0, _0202D214 ; =0x021C59D8 ldr r1, [r0, #0x4] ldr r0, _0202D218 ; =0x00001310 ldr r0, [r1, r0] cmp r0, #0x9 bne _0202D210 mov r0, #0x1 bx lr _0202D210: mov r0, #0x0 bx lr .balign 4 _0202D214: .word 0x021C59D8 _0202D218: .word 0x00001310 thumb_func_start FUN_0202D21C FUN_0202D21C: ; 0x0202D21C ldr r0, _0202D238 ; =0x021C59D8 ldr r1, [r0, #0x4] cmp r1, #0x0 beq _0202D234 ldr r0, _0202D23C ; =0x00001310 ldr r0, [r1, r0] cmp r0, #0x2 bne _0202D230 mov r0, #0x1 bx lr _0202D230: mov r0, #0x0 bx lr _0202D234: mov r0, #0x0 bx lr .balign 4 _0202D238: .word 0x021C59D8 _0202D23C: .word 0x00001310 thumb_func_start FUN_0202D240 FUN_0202D240: ; 0x0202D240 push {r4-r6, lr} sub sp, #0x8 add r6, r0, #0x0 ldr r0, _0202D274 ; =0x021C59D8 add r5, r1, #0x0 ldr r1, [r0, #0x4] ldr r0, _0202D278 ; =0x00001310 add r4, r2, #0x0 ldr r0, [r1, r0] cmp r0, #0x4 bne _0202D26E lsl r0, r3, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x0] mov r0, #0x1 lsl r2, r5, #0x10 str r0, [sp, #0x4] mov r0, #0x0 add r1, r6, #0x0 lsr r2, r2, #0x10 add r3, r4, #0x0 blx FUN_020DAF30 _0202D26E: add sp, #0x8 pop {r4-r6, pc} nop _0202D274: .word 0x021C59D8 _0202D278: .word 0x00001310 thumb_func_start FUN_0202D27C FUN_0202D27C: ; 0x0202D27C ldrh r0, [r0, #0x2] cmp r0, #0x0 bne _0202D28C ldr r0, _0202D290 ; =0x021C59D8 mov r2, #0x1 ldr r1, [r0, #0x4] ldr r0, _0202D294 ; =0x00001344 strb r2, [r1, r0] _0202D28C: bx lr nop _0202D290: .word 0x021C59D8 _0202D294: .word 0x00001344 thumb_func_start FUN_0202D298 FUN_0202D298: ; 0x0202D298 push {r4, lr} ldr r2, _0202D2C4 ; =0x021C59D8 add r1, r0, #0x0 ldr r3, [r2, #0x4] ldr r0, _0202D2C8 ; =0x00001344 mov r4, #0x0 strb r4, [r3, r0] ldr r2, [r2, #0x4] sub r0, #0x34 ldr r0, [r2, r0] cmp r0, #0x4 bne _0202D2BE ldr r0, _0202D2CC ; =FUN_0202D27C blx FUN_020DAD74 cmp r0, #0x2 bne _0202D2BE mov r0, #0x1 pop {r4, pc} _0202D2BE: mov r0, #0x0 pop {r4, pc} nop _0202D2C4: .word 0x021C59D8 _0202D2C8: .word 0x00001344 _0202D2CC: .word FUN_0202D27C thumb_func_start FUN_0202D2D0 FUN_0202D2D0: ; 0x0202D2D0 ldr r0, _0202D2EC ; =0x021C59D8 ldr r1, [r0, #0x4] cmp r1, #0x0 beq _0202D2E8 ldr r0, _0202D2F0 ; =0x00001345 ldrb r0, [r1, r0] cmp r0, #0x6 blo _0202D2E4 mov r0, #0x1 bx lr _0202D2E4: mov r0, #0x0 bx lr _0202D2E8: mov r0, #0x0 bx lr .balign 4 _0202D2EC: .word 0x021C59D8 _0202D2F0: .word 0x00001345 thumb_func_start FUN_0202D2F4 FUN_0202D2F4: ; 0x0202D2F4 ldr r0, _0202D300 ; =0x021C59D8 mov r2, #0x0 ldr r1, [r0, #0x4] ldr r0, _0202D304 ; =0x00001345 strb r2, [r1, r0] bx lr .balign 4 _0202D300: .word 0x021C59D8 _0202D304: .word 0x00001345 thumb_func_start FUN_0202D308 FUN_0202D308: ; 0x0202D308 ldr r1, _0202D314 ; =0x021C59D8 ldr r2, [r1, #0x4] ldr r1, _0202D318 ; =0x00001320 str r0, [r2, r1] bx lr nop _0202D314: .word 0x021C59D8 _0202D318: .word 0x00001320 thumb_func_start FUN_0202D31C FUN_0202D31C: ; 0x0202D31C ldr r1, _0202D328 ; =0x021C59D8 ldr r2, [r1, #0x4] ldr r1, _0202D32C ; =0x00001324 str r0, [r2, r1] bx lr nop _0202D328: .word 0x021C59D8 _0202D32C: .word 0x00001324 thumb_func_start FUN_0202D330 FUN_0202D330: ; 0x0202D330 ldr r1, _0202D33C ; =0x021C59D8 ldr r2, [r1, #0x4] ldr r1, _0202D340 ; =0x00001328 str r0, [r2, r1] bx lr nop _0202D33C: .word 0x021C59D8 _0202D340: .word 0x00001328 thumb_func_start FUN_0202D344 FUN_0202D344: ; 0x0202D344 ldr r1, _0202D350 ; =0x021C59D8 ldr r2, [r1, #0x4] ldr r1, _0202D354 ; =0x00001342 strb r0, [r2, r1] bx lr nop _0202D350: .word 0x021C59D8 _0202D354: .word 0x00001342 thumb_func_start FUN_0202D358 FUN_0202D358: ; 0x0202D358 ldr r0, _0202D364 ; =0x021C59D8 ldr r1, [r0, #0x4] ldr r0, _0202D368 ; =0x00001342 ldrb r0, [r1, r0] bx lr nop _0202D364: .word 0x021C59D8 _0202D368: .word 0x00001342 thumb_func_start FUN_0202D36C FUN_0202D36C: ; 0x0202D36C ldr r1, _0202D378 ; =0x021C59D8 ldr r2, [r1, #0x4] ldr r1, _0202D37C ; =0x00001343 strb r0, [r2, r1] bx lr nop _0202D378: .word 0x021C59D8 _0202D37C: .word 0x00001343 thumb_func_start FUN_0202D380 FUN_0202D380: ; 0x0202D380 ldr r1, _0202D38C ; =0x021C59D8 ldr r2, [r1, #0x4] ldr r1, _0202D390 ; =0x00001335 strb r0, [r2, r1] bx lr nop _0202D38C: .word 0x021C59D8 _0202D390: .word 0x00001335 thumb_func_start FUN_0202D394 FUN_0202D394: ; 0x0202D394 str r1, [r0, #0x0] strh r2, [r0, #0xa] mov r1, #0x0 strh r1, [r0, #0x4] strh r1, [r0, #0x6] strh r1, [r0, #0x8] bx lr .balign 4 thumb_func_start FUN_0202D3A4 FUN_0202D3A4: ; 0x0202D3A4 push {r3-r7, lr} str r2, [sp, #0x0] add r5, r0, #0x0 add r7, r1, #0x0 bl FUN_0202D498 ldr r1, [sp, #0x0] cmp r0, r1 bgt _0202D3BC bl FUN_02031454 pop {r3-r7, pc} _0202D3BC: mov r0, #0x8 ldrsh r4, [r5, r0] ldrsh r1, [r5, r0] ldr r0, [sp, #0x0] mov r6, #0x0 add r0, r1, r0 cmp r4, r0 bge _0202D3F2 _0202D3CC: cmp r7, #0x0 bne _0202D3D4 bl ErrorHandling _0202D3D4: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0202D4A8 ldrb r2, [r7, r6] ldr r1, [r5, #0x0] add r4, r4, #0x1 strb r2, [r1, r0] mov r0, #0x8 ldrsh r1, [r5, r0] ldr r0, [sp, #0x0] add r6, r6, #0x1 add r0, r1, r0 cmp r4, r0 blt _0202D3CC _0202D3F2: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0202D4A8 strh r0, [r5, #0x8] pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0202D400 FUN_0202D400: ; 0x0202D400 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_0202D42C mov r1, #0x4 add r4, r0, #0x0 ldrsh r1, [r5, r1] add r0, r5, #0x0 add r1, r1, r4 bl FUN_0202D4A8 strh r0, [r5, #0x4] add r0, r4, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0202D41C FUN_0202D41C: ; 0x0202D41C push {r3, lr} add r1, sp, #0x0 mov r2, #0x1 bl FUN_0202D400 add r0, sp, #0x0 ldrb r0, [r0, #0x0] pop {r3, pc} thumb_func_start FUN_0202D42C FUN_0202D42C: ; 0x0202D42C push {r3-r7, lr} add r5, r0, #0x0 mov r0, #0x4 ldrsh r4, [r5, r0] add r7, r2, #0x0 str r1, [sp, #0x0] add r0, r4, r7 mov r6, #0x0 cmp r4, r0 bge _0202D472 _0202D440: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0202D4A8 mov r1, #0x6 ldrsh r1, [r5, r1] cmp r1, r0 bne _0202D454 add r0, r6, #0x0 pop {r3-r7, pc} _0202D454: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0202D4A8 ldr r1, [r5, #0x0] add r4, r4, #0x1 ldrb r1, [r1, r0] ldr r0, [sp, #0x0] strb r1, [r0, r6] mov r0, #0x4 ldrsh r0, [r5, r0] add r6, r6, #0x1 add r0, r0, r7 cmp r4, r0 blt _0202D440 _0202D472: add r0, r6, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0202D478 FUN_0202D478: ; 0x0202D478 mov r1, #0x4 mov r3, #0x6 ldrsh r1, [r0, r1] ldrsh r2, [r0, r3] cmp r1, r2 ble _0202D490 mov r2, #0xa ldrsh r2, [r0, r2] ldrsh r0, [r0, r3] add r0, r2, r0 sub r0, r0, r1 bx lr _0202D490: ldrsh r0, [r0, r3] sub r0, r0, r1 bx lr .balign 4 thumb_func_start FUN_0202D498 FUN_0202D498: ; 0x0202D498 push {r4, lr} add r4, r0, #0x0 bl FUN_0202D478 mov r1, #0xa ldrsh r1, [r4, r1] sub r0, r1, r0 pop {r4, pc} thumb_func_start FUN_0202D4A8 FUN_0202D4A8: ; 0x0202D4A8 push {r3, lr} add r2, r0, #0x0 add r0, r1, #0x0 mov r1, #0xa ldrsh r1, [r2, r1] blx _s32_div_f add r0, r1, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0202D4BC FUN_0202D4BC: ; 0x0202D4BC mov r1, #0x8 ldrsh r1, [r0, r1] strh r1, [r0, #0x6] bx lr thumb_func_start FUN_0202D4C4 FUN_0202D4C4: ; 0x0202D4C4 ldr r3, [r0, #0x1c] mov r2, #0x0 ldr r1, [r0, #0x18] cmp r3, #0x0 ble _0202D4E0 _0202D4CE: ldrb r0, [r1, #0xe] cmp r0, #0x0 bne _0202D4D8 add r0, r1, #0x0 bx lr _0202D4D8: add r2, r2, #0x1 add r1, #0x10 cmp r2, r3 blt _0202D4CE _0202D4E0: mov r0, #0x0 bx lr thumb_func_start FUN_0202D4E4 FUN_0202D4E4: ; 0x0202D4E4 ldr r3, [r0, #0x1c] mov r2, #0x0 ldr r1, [r0, #0x18] cmp r3, #0x0 ble _0202D500 _0202D4EE: ldrb r0, [r1, #0xe] cmp r0, #0x0 beq _0202D4F8 mov r0, #0x0 bx lr _0202D4F8: add r2, r2, #0x1 add r1, #0x10 cmp r2, r3 blt _0202D4EE _0202D500: mov r0, #0x1 bx lr thumb_func_start FUN_0202D504 FUN_0202D504: ; 0x0202D504 ldr r1, [r0, #0x0] cmp r1, #0x0 beq _0202D522 ldr r1, [r1, #0x8] cmp r1, #0x0 beq _0202D518 str r1, [r0, #0x0] mov r0, #0x0 str r0, [r1, #0x4] b _0202D51E _0202D518: mov r1, #0x0 str r1, [r0, #0x0] str r1, [r0, #0x4] _0202D51E: mov r0, #0x1 bx lr _0202D522: mov r0, #0x0 bx lr .balign 4 thumb_func_start FUN_0202D528 FUN_0202D528: ; 0x0202D528 ldr r2, [r0, #0x0] strb r1, [r2, #0x0] ldr r1, [r0, #0x0] add r1, r1, #0x1 str r1, [r0, #0x0] ldr r1, [r0, #0x4] sub r1, r1, #0x1 str r1, [r0, #0x4] bne _0202D53E mov r0, #0x1 bx lr _0202D53E: mov r0, #0x0 bx lr .balign 4 thumb_func_start FUN_0202D544 FUN_0202D544: ; 0x0202D544 push {r4-r6, lr} add r5, r0, #0x0 ldrb r0, [r5, #0xe] add r4, r1, #0x0 bl FUN_0202D9A0 add r6, r0, #0x0 ldr r0, _0202D5B8 ; =0x0000FFFF cmp r6, r0 ldr r0, [r4, #0x4] bne _0202D56A cmp r0, #0x3 bge _0202D57A ldrb r1, [r5, #0xf] mov r0, #0x1 bic r1, r0 strb r1, [r5, #0xf] mov r0, #0x1 pop {r4-r6, pc} _0202D56A: cmp r0, #0x1 bge _0202D57A ldrb r1, [r5, #0xf] mov r0, #0x1 bic r1, r0 strb r1, [r5, #0xf] mov r0, #0x1 pop {r4-r6, pc} _0202D57A: ldrb r1, [r5, #0xe] add r0, r4, #0x0 bl FUN_0202D528 ldr r0, _0202D5B8 ; =0x0000FFFF cmp r6, r0 bne _0202D5A4 ldrh r1, [r5, #0xc] add r0, r4, #0x0 asr r1, r1, #0x8 lsl r1, r1, #0x18 lsr r1, r1, #0x18 bl FUN_0202D528 ldrh r1, [r5, #0xc] add r0, r4, #0x0 lsl r1, r1, #0x18 lsr r1, r1, #0x18 bl FUN_0202D528 b _0202D5A6 _0202D5A4: strh r6, [r5, #0xc] _0202D5A6: ldrb r1, [r5, #0xf] mov r0, #0x1 bic r1, r0 mov r0, #0x1 orr r0, r1 strb r0, [r5, #0xf] mov r0, #0x0 pop {r4-r6, pc} nop _0202D5B8: .word 0x0000FFFF thumb_func_start FUN_0202D5BC FUN_0202D5BC: ; 0x0202D5BC push {r3-r7, lr} add r5, r0, #0x0 ldrb r0, [r5, #0xe] add r4, r1, #0x0 add r6, r2, #0x0 add r7, r3, #0x0 bl FUN_0202D9A0 ldr r1, _0202D680 ; =0x0000FFFF cmp r0, r1 bne _0202D5D6 mov r2, #0x3 b _0202D5D8 _0202D5D6: mov r2, #0x1 _0202D5D8: ldrh r0, [r5, #0xc] ldr r1, [r4, #0x4] add r0, r0, r2 cmp r1, r0 bge _0202D5EA cmp r7, #0x0 bne _0202D5EA mov r0, #0x0 pop {r3-r7, pc} _0202D5EA: ldrb r0, [r5, #0xf] lsl r0, r0, #0x1f lsr r0, r0, #0x1f cmp r0, #0x1 beq _0202D604 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0202D544 cmp r0, #0x0 beq _0202D604 mov r0, #0x0 pop {r3-r7, pc} _0202D604: ldrh r3, [r5, #0xc] ldr r2, [r4, #0x4] cmp r2, r3 ldrb r0, [r5, #0xf] bge _0202D64E lsl r0, r0, #0x1e lsr r0, r0, #0x1f beq _0202D61E ldr r1, [r4, #0x0] add r0, r6, #0x0 bl FUN_0202D400 b _0202D634 _0202D61E: mov r3, #0x0 cmp r2, #0x0 ble _0202D634 _0202D624: ldr r0, [r5, #0x0] ldrb r1, [r0, r3] ldr r0, [r4, #0x0] strb r1, [r0, r3] ldr r0, [r4, #0x4] add r3, r3, #0x1 cmp r3, r0 blt _0202D624 _0202D634: ldr r1, [r5, #0x0] ldr r0, [r4, #0x4] add r0, r1, r0 str r0, [r5, #0x0] ldrh r1, [r5, #0xc] ldr r0, [r4, #0x4] sub r0, r1, r0 strh r0, [r5, #0xc] mov r0, #0x0 mvn r0, r0 str r0, [r4, #0x4] mov r0, #0x1 pop {r3-r7, pc} _0202D64E: lsl r0, r0, #0x1e lsr r0, r0, #0x1f beq _0202D660 ldr r1, [r4, #0x0] add r0, r6, #0x0 add r2, r3, #0x0 bl FUN_0202D400 b _0202D66A _0202D660: ldr r0, [r5, #0x0] ldr r1, [r4, #0x0] add r2, r3, #0x0 blx MI_CpuCopy8 _0202D66A: ldrh r0, [r5, #0xc] ldr r1, [r4, #0x0] add r0, r1, r0 str r0, [r4, #0x0] ldrh r0, [r5, #0xc] ldr r1, [r4, #0x4] sub r0, r1, r0 str r0, [r4, #0x4] mov r0, #0x1 pop {r3-r7, pc} nop _0202D680: .word 0x0000FFFF thumb_func_start FUN_0202D684 FUN_0202D684: ; 0x0202D684 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 str r1, [sp, #0x0] str r2, [sp, #0x4] add r7, r3, #0x0 bl FUN_0202D4C4 add r4, r0, #0x0 bne _0202D69E add sp, #0x8 mov r0, #0x0 pop {r3-r7, pc} _0202D69E: ldr r0, _0202D710 ; =0x0000FFFE cmp r7, r0 blt _0202D6A8 bl ErrorHandling _0202D6A8: ldr r0, [sp, #0x0] bl FUN_0202D9A0 add r6, r0, #0x0 ldr r0, _0202D714 ; =0x0000FFFF cmp r6, r0 bne _0202D6B8 add r6, r7, #0x0 _0202D6B8: ldr r0, [sp, #0x24] cmp r0, #0x0 beq _0202D6EA ldr r0, [r5, #0x14] bl FUN_0202D498 add r1, r6, #0x3 cmp r1, r0 blt _0202D6D0 add sp, #0x8 mov r0, #0x0 pop {r3-r7, pc} _0202D6D0: ldr r0, [r5, #0x14] ldr r1, [sp, #0x4] ldr r3, _0202D718 ; =0x00000109 add r2, r6, #0x0 bl FUN_0202D3A4 ldr r0, [r5, #0x14] bl FUN_0202D4BC ldrb r1, [r4, #0xf] mov r0, #0x2 orr r0, r1 strb r0, [r4, #0xf] _0202D6EA: ldr r0, [sp, #0x0] strh r6, [r4, #0xc] strb r0, [r4, #0xe] ldr r0, [sp, #0x4] str r0, [r4, #0x0] ldr r0, [r5, #0x4] cmp r0, #0x0 bne _0202D700 str r4, [r5, #0x4] str r4, [r5, #0x0] b _0202D708 _0202D700: str r4, [r0, #0x8] ldr r0, [r5, #0x4] str r0, [r4, #0x4] str r4, [r5, #0x4] _0202D708: mov r0, #0x1 add sp, #0x8 pop {r3-r7, pc} nop _0202D710: .word 0x0000FFFE _0202D714: .word 0x0000FFFF _0202D718: .word 0x00000109 thumb_func_start FUN_0202D71C FUN_0202D71C: ; 0x0202D71C ldr r1, [r0, #0x10] cmp r1, #0x0 beq _0202D726 add r0, r1, #0x0 bx lr _0202D726: ldr r1, [r0, #0x0] cmp r1, #0x0 beq _0202D730 add r0, r1, #0x0 bx lr _0202D730: ldr r0, [r0, #0x8] cmp r0, #0x0 bne _0202D738 mov r0, #0x0 _0202D738: bx lr .balign 4 thumb_func_start FUN_0202D73C FUN_0202D73C: ; 0x0202D73C push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x10] cmp r1, #0x0 beq _0202D74C mov r0, #0x0 str r0, [r4, #0x10] pop {r4, pc} _0202D74C: bl FUN_0202D504 cmp r0, #0x0 bne _0202D75C add r4, #0x8 add r0, r4, #0x0 bl FUN_0202D504 _0202D75C: pop {r4, pc} .balign 4 thumb_func_start FUN_0202D760 FUN_0202D760: ; 0x0202D760 push {r3-r7, lr} add r4, r1, #0x0 add r5, r0, #0x0 ldr r0, [r4, #0x4] mov r7, #0x1 str r2, [sp, #0x0] cmp r0, #0x0 ble _0202D7B6 _0202D770: add r0, r5, #0x0 bl FUN_0202D71C add r6, r0, #0x0 beq _0202D7B6 add r0, r5, #0x0 bl FUN_0202D73C ldr r2, [r5, #0x14] add r0, r6, #0x0 add r1, r4, #0x0 add r3, r7, #0x0 bl FUN_0202D5BC cmp r0, #0x0 bne _0202D794 str r6, [r5, #0x10] b _0202D7B6 _0202D794: mov r0, #0x0 ldr r1, [r4, #0x4] mvn r0, r0 cmp r1, r0 bne _0202D7A4 str r6, [r5, #0x10] mov r0, #0x0 pop {r3-r7, pc} _0202D7A4: add r0, r6, #0x0 mov r1, #0x0 mov r2, #0x10 blx MI_CpuFill8 ldr r0, [r4, #0x4] ldr r7, [sp, #0x0] cmp r0, #0x0 bgt _0202D770 _0202D7B6: ldr r0, [r4, #0x4] mov r2, #0x0 cmp r0, #0x0 ble _0202D7D2 mov r1, #0xee _0202D7C0: ldr r0, [r4, #0x0] add r2, r2, #0x1 strb r1, [r0, #0x0] ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] ldr r0, [r4, #0x4] cmp r2, r0 blt _0202D7C0 _0202D7D2: mov r0, #0x1 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0202D7D8 FUN_0202D7D8: ; 0x0202D7D8 push {r3-r7, lr} add r4, r1, #0x0 add r6, r2, #0x0 mov r1, #0x0 mov r2, #0x20 add r5, r0, #0x0 blx MI_CpuFill8 lsl r7, r4, #0x4 mov r0, #0xf add r1, r7, #0x0 bl FUN_02016998 mov r1, #0x0 add r2, r7, #0x0 str r0, [r5, #0x18] blx MI_CpuFill8 str r4, [r5, #0x1c] str r6, [r5, #0x14] pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0202D804 FUN_0202D804: ; 0x0202D804 push {r4, lr} add r4, r0, #0x0 ldr r2, [r4, #0x1c] ldr r0, [r4, #0x18] mov r1, #0x0 lsl r2, r2, #0x4 blx MI_CpuFill8 mov r0, #0x0 str r0, [r4, #0x0] str r0, [r4, #0x4] str r0, [r4, #0x8] str r0, [r4, #0xc] str r0, [r4, #0x10] pop {r4, pc} .balign 4 thumb_func_start FUN_0202D824 FUN_0202D824: ; 0x0202D824 ldr r3, _0202D82C ; =FUN_02016A18 ldr r0, [r0, #0x18] bx r3 nop _0202D82C: .word FUN_02016A18 thumb_func_start FUN_0202D830 FUN_0202D830: ; 0x0202D830 push {r3-r4} ldr r4, [r0, #0x1c] mov r2, #0x0 ldr r3, [r0, #0x18] cmp r4, #0x0 ble _0202D850 _0202D83C: ldrb r0, [r3, #0xe] cmp r0, r1 bne _0202D848 mov r0, #0x1 pop {r3-r4} bx lr _0202D848: add r2, r2, #0x1 add r3, #0x10 cmp r2, r4 blt _0202D83C _0202D850: mov r0, #0x0 pop {r3-r4} bx lr .balign 4 thumb_func_start FUN_0202D858 FUN_0202D858: ; 0x0202D858 push {r3-r4, lr} sub sp, #0x1c ldr r3, _0202D880 ; =0x020EEB04 add r4, r0, #0x0 add r2, sp, #0x0 mov r1, #0x1a _0202D864: ldrb r0, [r3, #0x0] add r3, r3, #0x1 strb r0, [r2, #0x0] add r2, r2, #0x1 sub r1, r1, #0x1 bne _0202D864 cmp r4, #0x1a blo _0202D878 bl ErrorHandling _0202D878: add r0, sp, #0x0 ldrb r0, [r0, r4] add sp, #0x1c pop {r3-r4, pc} .balign 4 _0202D880: .word 0x020EEB04 thumb_func_start FUN_0202D884 FUN_0202D884: ; 0x0202D884 push {r3-r4, lr} sub sp, #0x1c ldr r3, _0202D8AC ; =0x020EEB1E add r4, r0, #0x0 add r2, sp, #0x0 mov r1, #0x1a _0202D890: ldrb r0, [r3, #0x0] add r3, r3, #0x1 strb r0, [r2, #0x0] add r2, r2, #0x1 sub r1, r1, #0x1 bne _0202D890 cmp r4, #0x1a blo _0202D8A4 bl ErrorHandling _0202D8A4: add r0, sp, #0x0 ldrb r0, [r0, r4] add sp, #0x1c pop {r3-r4, pc} .balign 4 _0202D8AC: .word 0x020EEB1E thumb_func_start FUN_0202D8B0 FUN_0202D8B0: ; 0x0202D8B0 cmp r0, #0xd bgt _0202D8C4 cmp r0, #0x7 blt _0202D8CC beq _0202D8C8 cmp r0, #0x9 beq _0202D8C8 cmp r0, #0xd beq _0202D8C8 b _0202D8CC _0202D8C4: cmp r0, #0x12 bne _0202D8CC _0202D8C8: mov r0, #0x1 bx lr _0202D8CC: mov r0, #0x0 bx lr thumb_func_start FUN_0202D8D0 FUN_0202D8D0: ; 0x0202D8D0 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, _0202D914 ; =0x021C59E0 add r4, r1, #0x0 ldr r0, [r0, #0x0] add r6, r2, #0x0 cmp r0, #0x0 bne _0202D8EC mov r0, #0xf mov r1, #0x18 bl FUN_02016998 ldr r1, _0202D914 ; =0x021C59E0 str r0, [r1, #0x0] _0202D8EC: ldr r0, _0202D914 ; =0x021C59E0 mov r3, #0x0 ldr r1, [r0, #0x0] add r2, r3, #0x0 str r5, [r1, #0x0] ldr r1, [r0, #0x0] str r4, [r1, #0x4] ldr r1, [r0, #0x0] str r6, [r1, #0x8] _0202D8FE: ldr r1, [r0, #0x0] add r1, r1, r3 add r3, r3, #0x1 strb r2, [r1, #0xc] cmp r3, #0x8 blt _0202D8FE ldr r0, _0202D914 ; =0x021C59E0 ldr r0, [r0, #0x0] strb r2, [r0, #0x14] pop {r4-r6, pc} nop _0202D914: .word 0x021C59E0 thumb_func_start FUN_0202D918 FUN_0202D918: ; 0x0202D918 push {r3, lr} ldr r0, _0202D930 ; =0x021C59E0 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _0202D92C bl FUN_02016A18 ldr r0, _0202D930 ; =0x021C59E0 mov r1, #0x0 str r1, [r0, #0x0] _0202D92C: pop {r3, pc} nop _0202D930: .word 0x021C59E0 thumb_func_start FUN_0202D934 FUN_0202D934: ; 0x0202D934 push {r3-r7, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r6, r2, #0x0 add r7, r3, #0x0 cmp r4, #0x16 bge _0202D94C mov r0, #0xc mul r1, r0 ldr r0, _0202D998 ; =0x020EEB38 ldr r4, [r0, r1] b _0202D974 _0202D94C: ldr r0, _0202D99C ; =0x021C59E0 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _0202D958 bl ErrorHandling _0202D958: ldr r0, _0202D99C ; =0x021C59E0 ldr r1, [r0, #0x0] ldr r0, [r1, #0x4] add r0, #0x16 cmp r4, r0 ble _0202D96A bl FUN_02031454 pop {r3-r7, pc} _0202D96A: ldr r1, [r1, #0x0] sub r4, #0x16 mov r0, #0xc mul r0, r4 ldr r4, [r1, r0] _0202D974: cmp r4, #0x0 beq _0202D996 ldr r0, _0202D99C ; =0x021C59E0 ldr r3, [r0, #0x0] cmp r3, #0x0 beq _0202D98C ldr r3, [r3, #0x8] add r0, r5, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 blx r4 pop {r3-r7, pc} _0202D98C: add r0, r5, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 mov r3, #0x0 blx r4 _0202D996: pop {r3-r7, pc} .balign 4 _0202D998: .word 0x020EEB38 _0202D99C: .word 0x021C59E0 thumb_func_start FUN_0202D9A0 FUN_0202D9A0: ; 0x0202D9A0 push {r3-r5, lr} add r5, r0, #0x0 mov r4, #0x0 cmp r5, #0x16 bge _0202D9B6 mov r0, #0xc add r1, r5, #0x0 mul r1, r0 ldr r0, _0202D9FC ; =0x020EEB3C ldr r0, [r0, r1] b _0202D9EE _0202D9B6: ldr r0, _0202DA00 ; =0x021C59E0 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _0202D9C2 bl ErrorHandling _0202D9C2: ldr r0, _0202DA00 ; =0x021C59E0 ldr r1, [r0, #0x0] cmp r1, #0x0 bne _0202D9D2 bl FUN_02031454 mov r0, #0x0 pop {r3-r5, pc} _0202D9D2: ldr r0, [r1, #0x4] add r0, #0x16 cmp r5, r0 ble _0202D9E2 bl FUN_02031454 mov r0, #0x0 pop {r3-r5, pc} _0202D9E2: ldr r1, [r1, #0x0] sub r5, #0x16 mov r0, #0xc mul r0, r5 add r0, r1, r0 ldr r0, [r0, #0x4] _0202D9EE: cmp r0, #0x0 beq _0202D9F6 blx r0 add r4, r0, #0x0 _0202D9F6: add r0, r4, #0x0 pop {r3-r5, pc} nop _0202D9FC: .word 0x020EEB3C _0202DA00: .word 0x021C59E0 thumb_func_start FUN_0202DA04 FUN_0202DA04: ; 0x0202DA04 cmp r0, #0x16 bge _0202DA1C mov r1, #0xc mul r1, r0 ldr r0, _0202DA38 ; =0x020EEB40 ldr r0, [r0, r1] cmp r0, #0x0 beq _0202DA18 mov r0, #0x1 bx lr _0202DA18: mov r0, #0x0 bx lr _0202DA1C: ldr r1, _0202DA3C ; =0x021C59E0 sub r0, #0x16 ldr r1, [r1, #0x0] ldr r2, [r1, #0x0] mov r1, #0xc mul r1, r0 add r0, r2, r1 ldr r0, [r0, #0x8] cmp r0, #0x0 beq _0202DA34 mov r0, #0x1 bx lr _0202DA34: mov r0, #0x0 bx lr .balign 4 _0202DA38: .word 0x020EEB40 _0202DA3C: .word 0x021C59E0 thumb_func_start FUN_0202DA40 FUN_0202DA40: ; 0x0202DA40 push {r3-r5, lr} add r3, r0, #0x0 cmp r3, #0x16 bge _0202DA58 mov r4, #0xc mul r4, r3 ldr r3, _0202DA70 ; =0x020EEB40 add r0, r1, #0x0 ldr r3, [r3, r4] mov r1, #0x0 blx r3 pop {r3-r5, pc} _0202DA58: ldr r0, _0202DA74 ; =0x021C59E0 sub r3, #0x16 ldr r4, [r0, #0x0] add r0, r1, #0x0 ldr r1, [r4, #0x8] ldr r5, [r4, #0x0] mov r4, #0xc mul r4, r3 add r3, r5, r4 ldr r3, [r3, #0x8] blx r3 pop {r3-r5, pc} .balign 4 _0202DA70: .word 0x020EEB40 _0202DA74: .word 0x021C59E0 thumb_func_start FUN_0202DA78 FUN_0202DA78: ; 0x0202DA78 ldr r0, _0202DA7C ; =0x0000FFFF bx lr .balign 4 _0202DA7C: .word 0x0000FFFF thumb_func_start FUN_0202DA80 FUN_0202DA80: ; 0x0202DA80 mov r0, #0x0 bx lr thumb_func_start FUN_0202DA84 FUN_0202DA84: ; 0x0202DA84 mov r0, #0x1 bx lr thumb_func_start FUN_0202DA88 FUN_0202DA88: ; 0x0202DA88 mov r0, #0x2 bx lr thumb_func_start FUN_0202DA8C FUN_0202DA8C: ; 0x0202DA8C push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02031190 cmp r0, #0x0 bne _0202DACA ldr r4, _0202DACC ; =0x021C59E0 mov r1, #0x1 ldr r0, [r4, #0x0] add r0, r0, r5 strb r1, [r0, #0xc] mov r5, #0x0 _0202DAA4: lsl r0, r5, #0x10 lsr r0, r0, #0x10 bl FUN_02030E7C cmp r0, #0x0 beq _0202DABA ldr r0, [r4, #0x0] add r0, r0, r5 ldrb r0, [r0, #0xc] cmp r0, #0x0 beq _0202DACA _0202DABA: add r5, r5, #0x1 cmp r5, #0x8 blt _0202DAA4 mov r1, #0x0 mov r0, #0xe add r2, r1, #0x0 bl FUN_02030BC4 _0202DACA: pop {r3-r5, pc} .balign 4 _0202DACC: .word 0x021C59E0 thumb_func_start FUN_0202DAD0 FUN_0202DAD0: ; 0x0202DAD0 ldr r0, _0202DAF0 ; =0x021C59E0 mov r3, #0x0 ldr r1, [r0, #0x0] str r3, [r1, #0x0] ldr r1, [r0, #0x0] str r3, [r1, #0x4] ldr r1, [r0, #0x0] str r3, [r1, #0x8] ldr r0, [r0, #0x0] mov r1, #0x1 strb r1, [r0, #0x14] ldr r3, _0202DAF4 ; =FUN_020311D0 mov r0, #0xf add r1, r2, #0x0 bx r3 nop _0202DAF0: .word 0x021C59E0 _0202DAF4: .word FUN_020311D0 thumb_func_start FUN_0202DAF8 FUN_0202DAF8: ; 0x0202DAF8 push {r4, lr} add r4, r0, #0x0 bl FUN_02031190 cmp r0, #0x0 bne _0202DB0E ldr r0, _0202DB10 ; =0x021C59E0 mov r1, #0x0 ldr r0, [r0, #0x0] add r0, r0, r4 strb r1, [r0, #0xc] _0202DB0E: pop {r4, pc} .balign 4 _0202DB10: .word 0x021C59E0 thumb_func_start FUN_0202DB14 FUN_0202DB14: ; 0x0202DB14 push {r4-r7, lr} sub sp, #0xc str r0, [sp, #0x0] str r1, [sp, #0x4] bl FUN_020238F4 str r0, [sp, #0x8] ldr r0, _0202DBA0 ; =0x021C59E4 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _0202DB9A mov r1, #0xe9 mov r0, #0xf lsl r1, r1, #0x2 bl FUN_02016998 ldr r1, _0202DBA0 ; =0x021C59E4 mov r2, #0xe9 str r0, [r1, #0x0] mov r1, #0x0 lsl r2, r2, #0x2 blx MI_CpuFill8 mov r6, #0x0 ldr r7, _0202DBA0 ; =0x021C59E4 add r4, r6, #0x0 add r5, r6, #0x0 _0202DB4A: ldr r1, [r7, #0x0] add r0, r1, #0x0 add r0, #0x28 add r2, r0, r4 mov r0, #0xd2 add r1, r1, r5 lsl r0, r0, #0x2 str r2, [r1, r0] add r0, r6, #0x0 bl FUN_0202DE78 add r6, r6, #0x1 add r4, #0x68 add r5, r5, #0x4 cmp r6, #0x8 blt _0202DB4A ldr r2, _0202DBA0 ; =0x021C59E4 mov r1, #0x3a ldr r3, [r2, #0x0] mov r0, #0x0 lsl r1, r1, #0x4 strb r0, [r3, r1] ldr r4, [r2, #0x0] add r3, r1, #0x1 strb r0, [r4, r3] add r3, r1, #0x2 ldr r4, [r2, #0x0] sub r1, #0x58 strb r0, [r4, r3] ldr r3, [r2, #0x0] ldr r0, [sp, #0x0] str r0, [r3, #0x4] ldr r3, [r2, #0x0] ldr r0, [sp, #0x4] str r0, [r3, #0x0] ldr r2, [r2, #0x0] ldr r0, [sp, #0x8] ldr r1, [r2, r1] bl FUN_0202393C _0202DB9A: add sp, #0xc pop {r4-r7, pc} nop _0202DBA0: .word 0x021C59E4 thumb_func_start FUN_0202DBA4 FUN_0202DBA4: ; 0x0202DBA4 push {r3-r5, lr} ldr r1, _0202DBDC ; =0x021C59E4 ldr r0, [r1, #0x0] cmp r0, #0x0 beq _0202DBD8 mov r4, #0x0 mov r0, #0xd2 add r5, r4, #0x0 add r3, r4, #0x0 lsl r0, r0, #0x2 _0202DBB8: ldr r2, [r1, #0x0] add r4, r4, #0x1 add r2, r2, r5 add r5, r5, #0x4 str r3, [r2, r0] cmp r4, #0x8 blt _0202DBB8 ldr r0, _0202DBDC ; =0x021C59E4 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _0202DBD2 bl FUN_02016A18 _0202DBD2: ldr r0, _0202DBDC ; =0x021C59E4 mov r1, #0x0 str r1, [r0, #0x0] _0202DBD8: pop {r3-r5, pc} nop _0202DBDC: .word 0x021C59E4 thumb_func_start FUN_0202DBE0 FUN_0202DBE0: ; 0x0202DBE0 push {r3-r7, lr} bl FUN_02031190 add r4, r0, #0x0 ldr r0, _0202DCD8 ; =0x021C59E4 ldr r0, [r0, #0x0] ldr r0, [r0, #0x4] bl FUN_0202881C add r7, r0, #0x0 ldr r0, _0202DCD8 ; =0x021C59E4 ldr r0, [r0, #0x0] ldr r0, [r0, #0x4] bl FUN_020286EC str r0, [sp, #0x0] ldr r0, _0202DCD8 ; =0x021C59E4 ldr r0, [r0, #0x0] ldr r0, [r0, #0x4] bl FUN_02029AFC add r6, r0, #0x0 ldr r0, _0202DCD8 ; =0x021C59E4 ldr r0, [r0, #0x0] ldr r0, [r0, #0x4] bl FUN_020238F4 ldr r1, _0202DCD8 ; =0x021C59E4 ldr r2, [r1, #0x0] lsl r1, r4, #0x2 add r2, r2, r1 mov r1, #0xd2 lsl r1, r1, #0x2 ldr r1, [r2, r1] bl FUN_0202393C mov r0, #0x68 add r5, r4, #0x0 mul r5, r0 ldr r0, _0202DCD8 ; =0x021C59E4 ldr r0, [r0, #0x0] add r0, #0x64 add r0, r0, r5 blx OS_GetMacAddress add r0, r7, #0x0 mov r1, #0x1 mov r2, #0x0 bl FUN_020287A8 ldr r1, _0202DCD8 ; =0x021C59E4 mov r2, #0x10 ldr r1, [r1, #0x0] add r1, #0x54 add r1, r1, r5 blx MI_CpuCopy8 add r0, r6, #0x0 bl FUN_02029B38 ldr r1, _0202DCD8 ; =0x021C59E4 ldr r1, [r1, #0x0] add r1, r1, r5 add r1, #0x6b strb r0, [r1, #0x0] add r0, r6, #0x0 bl FUN_02029B3C ldr r2, _0202DCD8 ; =0x021C59E4 ldr r1, [r2, #0x0] add r1, r1, r5 add r1, #0x6c strb r0, [r1, #0x0] ldr r0, [r2, #0x0] ldr r0, [r0, #0x4] bl FUN_02025C18 ldr r2, _0202DCD8 ; =0x021C59E4 ldr r1, [r2, #0x0] add r1, r1, r5 add r1, #0x6d strb r0, [r1, #0x0] ldr r2, [r2, #0x0] mov r0, #0x1 add r2, #0x6d ldrb r1, [r2, r5] sub r0, r0, r1 strb r0, [r2, r5] ldr r0, [sp, #0x0] bl FUN_02028228 ldr r1, _0202DCD8 ; =0x021C59E4 ldr r1, [r1, #0x0] add r1, #0x48 add r1, r1, r5 blx FUN_02096CCC ldr r0, _0202DCD8 ; =0x021C59E4 mov r1, #0x0 ldr r0, [r0, #0x0] mov r2, #0x20 add r0, #0x8 add r0, r0, r5 blx MI_CpuFill8 ldr r0, _0202DCD8 ; =0x021C59E4 ldr r1, [r0, #0x0] ldr r0, [r1, #0x0] cmp r0, #0x0 beq _0202DCC4 add r1, #0x8 add r1, r1, r5 bl FUN_02023ACC _0202DCC4: ldr r1, _0202DCD8 ; =0x021C59E4 mov r0, #0x3 ldr r1, [r1, #0x0] mov r2, #0x68 add r1, #0x8 add r1, r1, r5 bl FUN_02030ADC pop {r3-r7, pc} nop _0202DCD8: .word 0x021C59E4 thumb_func_start FUN_0202DCDC FUN_0202DCDC: ; 0x0202DCDC mov r0, #0x68 bx lr thumb_func_start FUN_0202DCE0 FUN_0202DCE0: ; 0x0202DCE0 ldr r0, _0202DCF4 ; =0x021C59E4 ldr r2, [r0, #0x0] cmp r2, #0x0 beq _0202DCF0 mov r0, #0x3a mov r1, #0x1 lsl r0, r0, #0x4 strb r1, [r2, r0] _0202DCF0: bx lr nop _0202DCF4: .word 0x021C59E4 thumb_func_start FUN_0202DCF8 FUN_0202DCF8: ; 0x0202DCF8 ldr r0, _0202DD04 ; =0x021C59E4 ldr r1, [r0, #0x0] mov r0, #0x3a lsl r0, r0, #0x4 ldrb r0, [r1, r0] bx lr .balign 4 _0202DD04: .word 0x021C59E4 thumb_func_start FUN_0202DD08 FUN_0202DD08: ; 0x0202DD08 push {r3-r5, lr} ldr r1, _0202DD78 ; =0x021C59E4 add r4, r2, #0x0 ldr r1, [r1, #0x0] cmp r1, #0x0 beq _0202DD74 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_02030E7C cmp r0, #0x0 beq _0202DD74 ldr r1, _0202DD78 ; =0x021C59E4 mov r2, #0x68 ldr r5, [r1, #0x0] add r1, r4, #0x0 add r1, #0x62 ldrb r1, [r1, #0x0] add r5, #0x8 add r0, r4, #0x0 add r3, r1, #0x0 mul r3, r2 add r1, r5, r3 blx MI_CpuCopy8 add r4, #0x62 ldr r2, _0202DD78 ; =0x021C59E4 ldrb r3, [r4, #0x0] ldr r0, [r2, #0x0] ldr r1, _0202DD7C ; =0x000003A2 strb r3, [r0, r1] add r0, r1, #0x0 ldr r3, [r2, #0x0] sub r0, #0xa add r4, r3, r0 ldrb r3, [r3, r1] ldrb r0, [r4, r3] cmp r0, #0x2 bhs _0202DD74 mov r0, #0x1 strb r0, [r4, r3] ldr r0, [r2, #0x0] ldrb r4, [r0, r1] bl FUN_02031190 cmp r4, r0 bne _0202DD74 ldr r0, _0202DD78 ; =0x021C59E4 mov r2, #0x3 ldr r0, [r0, #0x0] add r1, r0, r4 mov r0, #0xe6 lsl r0, r0, #0x2 strb r2, [r1, r0] _0202DD74: pop {r3-r5, pc} nop _0202DD78: .word 0x021C59E4 _0202DD7C: .word 0x000003A2 thumb_func_start FUN_0202DD80 FUN_0202DD80: ; 0x0202DD80 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _0202DDE0 ; =0x021C59E4 ldr r1, [r0, #0x0] cmp r1, #0x0 beq _0202DDDC mov r3, #0x68 add r4, r5, #0x0 add r0, r2, #0x0 mul r4, r3 add r1, #0x8 add r1, r1, r4 add r2, r3, #0x0 blx MI_CpuCopy8 ldr r0, _0202DDE0 ; =0x021C59E4 add r1, r5, #0x0 ldr r0, [r0, #0x0] add r0, #0x64 add r0, r0, r4 bl FUN_0202EFAC ldr r0, _0202DDE0 ; =0x021C59E4 mov r2, #0x1 ldr r0, [r0, #0x0] add r1, r0, r5 mov r0, #0xe6 lsl r0, r0, #0x2 strb r2, [r1, r0] bl FUN_02031190 cmp r5, r0 bne _0202DDD2 ldr r0, _0202DDE0 ; =0x021C59E4 mov r2, #0x3 ldr r0, [r0, #0x0] add r1, r0, r5 mov r0, #0xe6 lsl r0, r0, #0x2 strb r2, [r1, r0] pop {r3-r5, pc} _0202DDD2: ldr r0, _0202DDE0 ; =0x021C59E4 mov r2, #0x1 ldr r1, [r0, #0x0] ldr r0, _0202DDE4 ; =0x000003A1 strb r2, [r1, r0] _0202DDDC: pop {r3-r5, pc} nop _0202DDE0: .word 0x021C59E4 _0202DDE4: .word 0x000003A1 thumb_func_start FUN_0202DDE8 FUN_0202DDE8: ; 0x0202DDE8 push {r3-r7, lr} ldr r0, _0202DE70 ; =0x021C59E4 ldr r1, [r0, #0x0] ldr r0, _0202DE74 ; =0x000003A1 ldrb r0, [r1, r0] cmp r0, #0x0 bne _0202DDFA mov r0, #0x0 pop {r3-r7, pc} _0202DDFA: mov r0, #0x5 bl FUN_02031354 cmp r0, #0x0 bne _0202DE6C mov r4, #0x0 add r5, r4, #0x0 add r7, r4, #0x0 _0202DE0A: ldr r0, _0202DE70 ; =0x021C59E4 ldr r2, [r0, #0x0] mov r0, #0xe6 add r1, r2, r4 lsl r0, r0, #0x2 ldrb r0, [r1, r0] cmp r0, #0x0 beq _0202DE4A add r0, r2, r5 add r0, #0x6a strb r4, [r0, #0x0] ldr r0, _0202DE70 ; =0x021C59E4 ldr r6, [r0, #0x0] bl FUN_02023924 add r2, r0, #0x0 mov r0, #0xd2 add r1, r6, r7 lsl r0, r0, #0x2 ldr r0, [r1, r0] add r6, #0x28 add r1, r6, r5 blx MI_CpuCopy8 ldr r1, _0202DE70 ; =0x021C59E4 mov r0, #0x4 ldr r1, [r1, #0x0] mov r2, #0x68 add r1, #0x8 add r1, r1, r5 bl FUN_02031000 _0202DE4A: add r4, r4, #0x1 add r5, #0x68 add r7, r7, #0x4 cmp r4, #0x8 blt _0202DE0A mov r1, #0x0 mov r0, #0x5 add r2, r1, #0x0 bl FUN_02031000 ldr r0, _0202DE70 ; =0x021C59E4 mov r2, #0x0 ldr r1, [r0, #0x0] ldr r0, _0202DE74 ; =0x000003A1 strb r2, [r1, r0] mov r0, #0x1 pop {r3-r7, pc} _0202DE6C: mov r0, #0x0 pop {r3-r7, pc} .balign 4 _0202DE70: .word 0x021C59E4 _0202DE74: .word 0x000003A1 thumb_func_start FUN_0202DE78 FUN_0202DE78: ; 0x0202DE78 push {r4, lr} add r4, r0, #0x0 ldr r0, _0202DEA0 ; =0x021C59E4 ldr r1, [r0, #0x0] lsl r0, r4, #0x2 add r1, r1, r0 mov r0, #0xd2 lsl r0, r0, #0x2 ldr r0, [r1, r0] bl FUN_02023948 ldr r0, _0202DEA0 ; =0x021C59E4 mov r2, #0x0 ldr r0, [r0, #0x0] add r1, r0, r4 mov r0, #0xe6 lsl r0, r0, #0x2 strb r2, [r1, r0] pop {r4, pc} nop _0202DEA0: .word 0x021C59E4 thumb_func_start FUN_0202DEA4 FUN_0202DEA4: ; 0x0202DEA4 ldr r1, _0202DEBC ; =0x021C59E4 ldr r1, [r1, #0x0] add r1, r1, r0 mov r0, #0xe6 lsl r0, r0, #0x2 ldrb r0, [r1, r0] cmp r0, #0x1 bne _0202DEB8 mov r0, #0x1 bx lr _0202DEB8: mov r0, #0x0 bx lr .balign 4 _0202DEBC: .word 0x021C59E4 thumb_func_start FUN_0202DEC0 FUN_0202DEC0: ; 0x0202DEC0 ldr r1, _0202DEDC ; =0x021C59E4 mov r2, #0x1 ldr r1, [r1, #0x0] add r1, r1, r0 mov r0, #0xe6 lsl r0, r0, #0x2 ldrb r0, [r1, r0] cmp r0, #0x2 beq _0202DED8 cmp r0, #0x1 beq _0202DED8 mov r2, #0x0 _0202DED8: add r0, r2, #0x0 bx lr .balign 4 _0202DEDC: .word 0x021C59E4 thumb_func_start FUN_0202DEE0 FUN_0202DEE0: ; 0x0202DEE0 ldr r1, _0202DEF0 ; =0x021C59E4 mov r2, #0x2 ldr r1, [r1, #0x0] add r1, r1, r0 mov r0, #0xe6 lsl r0, r0, #0x2 strb r2, [r1, r0] bx lr .balign 4 _0202DEF0: .word 0x021C59E4 thumb_func_start FUN_0202DEF4 FUN_0202DEF4: ; 0x0202DEF4 ldr r1, _0202DF04 ; =0x021C59E4 mov r2, #0x3 ldr r1, [r1, #0x0] add r1, r1, r0 mov r0, #0xe6 lsl r0, r0, #0x2 strb r2, [r1, r0] bx lr .balign 4 _0202DF04: .word 0x021C59E4 thumb_func_start FUN_0202DF08 FUN_0202DF08: ; 0x0202DF08 ldr r1, _0202DF24 ; =0x021C59E4 mov r0, #0x0 ldr r3, [r1, #0x0] mov r1, #0xe6 lsl r1, r1, #0x2 _0202DF12: ldrb r2, [r3, r1] cmp r2, #0x1 beq _0202DF22 add r0, r0, #0x1 add r3, r3, #0x1 cmp r0, #0x8 blt _0202DF12 mov r0, #0xff _0202DF22: bx lr .balign 4 _0202DF24: .word 0x021C59E4 thumb_func_start FUN_0202DF28 FUN_0202DF28: ; 0x0202DF28 push {r3-r4} ldr r1, _0202DF50 ; =0x021C59E4 mov r0, #0x0 ldr r4, [r1, #0x0] mov r1, #0xe6 add r3, r0, #0x0 lsl r1, r1, #0x2 _0202DF36: ldrb r2, [r4, r1] cmp r2, #0x2 beq _0202DF40 cmp r2, #0x3 bne _0202DF42 _0202DF40: add r0, r0, #0x1 _0202DF42: add r3, r3, #0x1 add r4, r4, #0x1 cmp r3, #0x8 blt _0202DF36 pop {r3-r4} bx lr nop _0202DF50: .word 0x021C59E4 thumb_func_start FUN_0202DF54 FUN_0202DF54: ; 0x0202DF54 push {r4-r6, lr} ldr r0, _0202DFA0 ; =0x021C59E4 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _0202DF9C bl FUN_02030F20 cmp r0, #0x0 beq _0202DF9C mov r6, #0xe6 ldr r4, _0202DFA0 ; =0x021C59E4 mov r5, #0x0 lsl r6, r6, #0x2 _0202DF6E: lsl r0, r5, #0x10 lsr r0, r0, #0x10 bl FUN_02030E7C cmp r0, #0x0 bne _0202DF96 cmp r5, #0x0 bne _0202DF86 bl FUN_02031280 cmp r0, #0x0 bne _0202DF96 _0202DF86: ldr r0, [r4, #0x0] add r0, r0, r5 ldrb r0, [r0, r6] cmp r0, #0x0 beq _0202DF96 add r0, r5, #0x0 bl FUN_0202DE78 _0202DF96: add r5, r5, #0x1 cmp r5, #0x8 blt _0202DF6E _0202DF9C: pop {r4-r6, pc} nop _0202DFA0: .word 0x021C59E4 thumb_func_start FUN_0202DFA4 FUN_0202DFA4: ; 0x0202DFA4 ldr r1, _0202DFD4 ; =0x021C59E4 ldr r3, [r1, #0x0] cmp r3, #0x0 bne _0202DFB0 mov r0, #0x0 bx lr _0202DFB0: mov r1, #0xe6 add r2, r3, r0 lsl r1, r1, #0x2 ldrb r1, [r2, r1] cmp r1, #0x1 beq _0202DFC4 cmp r1, #0x2 beq _0202DFC4 cmp r1, #0x3 bne _0202DFD0 _0202DFC4: lsl r0, r0, #0x2 add r1, r3, r0 mov r0, #0xd2 lsl r0, r0, #0x2 ldr r0, [r1, r0] bx lr _0202DFD0: mov r0, #0x0 bx lr .balign 4 _0202DFD4: .word 0x021C59E4 thumb_func_start FUN_0202DFD8 FUN_0202DFD8: ; 0x0202DFD8 ldr r1, _0202DFF8 ; =0x021C59E4 ldr r3, [r1, #0x0] mov r1, #0xe6 add r2, r3, r0 lsl r1, r1, #0x2 ldrb r1, [r2, r1] cmp r1, #0x0 beq _0202DFF2 mov r1, #0x68 add r3, #0x48 mul r1, r0 add r0, r3, r1 bx lr _0202DFF2: mov r0, #0x0 bx lr nop _0202DFF8: .word 0x021C59E4 thumb_func_start FUN_0202DFFC FUN_0202DFFC: ; 0x0202DFFC ldr r1, _0202E01C ; =0x021C59E4 ldr r3, [r1, #0x0] mov r1, #0xe6 add r2, r3, r0 lsl r1, r1, #0x2 ldrb r1, [r2, r1] cmp r1, #0x0 beq _0202E016 mov r1, #0x68 add r3, #0x54 mul r1, r0 add r0, r3, r1 bx lr _0202E016: mov r0, #0x0 bx lr nop _0202E01C: .word 0x021C59E4 thumb_func_start FUN_0202E020 FUN_0202E020: ; 0x0202E020 ldr r1, _0202E040 ; =0x021C59E4 ldr r3, [r1, #0x0] mov r1, #0xe6 add r2, r3, r0 lsl r1, r1, #0x2 ldrb r1, [r2, r1] cmp r1, #0x0 beq _0202E03C mov r1, #0x68 mul r1, r0 add r0, r3, r1 add r0, #0x6b ldrb r0, [r0, #0x0] bx lr _0202E03C: mov r0, #0x0 bx lr .balign 4 _0202E040: .word 0x021C59E4 thumb_func_start FUN_0202E044 FUN_0202E044: ; 0x0202E044 ldr r1, _0202E064 ; =0x021C59E4 ldr r3, [r1, #0x0] mov r1, #0xe6 add r2, r3, r0 lsl r1, r1, #0x2 ldrb r1, [r2, r1] cmp r1, #0x0 beq _0202E060 mov r1, #0x68 mul r1, r0 add r0, r3, r1 add r0, #0x6c ldrb r0, [r0, #0x0] bx lr _0202E060: mov r0, #0x0 bx lr .balign 4 _0202E064: .word 0x021C59E4 thumb_func_start FUN_0202E068 FUN_0202E068: ; 0x0202E068 ldr r1, _0202E088 ; =0x021C59E4 ldr r3, [r1, #0x0] mov r1, #0xe6 add r2, r3, r0 lsl r1, r1, #0x2 ldrb r1, [r2, r1] cmp r1, #0x0 beq _0202E084 mov r1, #0x68 mul r1, r0 add r0, r3, r1 add r0, #0x6d ldrb r0, [r0, #0x0] bx lr _0202E084: mov r0, #0x0 bx lr .balign 4 _0202E088: .word 0x021C59E4 thumb_func_start FUN_0202E08C FUN_0202E08C: ; 0x0202E08C push {r4-r6, lr} mov r4, #0x0 add r5, r4, #0x0 add r6, r4, #0x0 _0202E094: lsl r0, r4, #0x10 lsr r0, r0, #0x10 bl FUN_02030E7C cmp r0, #0x0 beq _0202E0E8 ldr r0, _0202E0F4 ; =0x021C59E4 ldr r0, [r0, #0x0] add r1, r0, r4 mov r0, #0xe6 lsl r0, r0, #0x2 ldrb r0, [r1, r0] cmp r0, #0x0 beq _0202E0E8 add r0, r4, #0x1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_02030E7C cmp r0, #0x0 beq _0202E0E8 ldr r0, _0202E0F4 ; =0x021C59E4 ldr r1, _0202E0F8 ; =0x00000399 ldr r0, [r0, #0x0] add r2, r0, r4 ldrb r1, [r2, r1] cmp r1, #0x0 beq _0202E0E8 add r1, r6, #0x0 add r2, r0, r5 _0202E0D0: add r3, r2, #0x0 add r3, #0x70 ldrb r0, [r2, #0x8] ldrb r3, [r3, #0x0] cmp r0, r3 beq _0202E0E0 mov r0, #0x0 pop {r4-r6, pc} _0202E0E0: add r1, r1, #0x1 add r2, r2, #0x1 cmp r1, #0x20 blt _0202E0D0 _0202E0E8: add r4, r4, #0x1 add r5, #0x68 cmp r4, #0x7 blt _0202E094 mov r0, #0x1 pop {r4-r6, pc} .balign 4 _0202E0F4: .word 0x021C59E4 _0202E0F8: .word 0x00000399 thumb_func_start FUN_0202E0FC FUN_0202E0FC: ; 0x0202E0FC push {r3-r7, lr} add r7, r0, #0x0 ldr r0, _0202E1B4 ; =0x021C59E4 add r6, r1, #0x0 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _0202E1B0 cmp r7, #0x2 beq _0202E11C bl FUN_02031190 bl FUN_020313CC mov r1, #0x1 and r0, r1 str r0, [sp, #0x0] _0202E11C: mov r4, #0x0 bl FUN_02030F20 cmp r0, #0x0 ble _0202E1B0 add r5, r4, #0x0 _0202E128: lsl r0, r4, #0x10 lsr r0, r0, #0x10 bl FUN_02030E7C cmp r0, #0x0 beq _0202E1A4 ldr r0, _0202E1B4 ; =0x021C59E4 mov r1, #0xe6 ldr r0, [r0, #0x0] lsl r1, r1, #0x2 add r2, r0, r4 ldrb r1, [r2, r1] cmp r1, #0x0 beq _0202E1A4 cmp r7, #0x0 bne _0202E16E add r0, r4, #0x0 bl FUN_020313CC mov r1, #0x1 and r1, r0 ldr r0, [sp, #0x0] cmp r0, r1 beq _0202E1A4 ldr r0, _0202E1B4 ; =0x021C59E4 mov r1, #0xda ldr r0, [r0, #0x0] lsl r1, r1, #0x2 add r0, r0, r5 ldrh r1, [r0, r1] add r2, r1, r6 mov r1, #0xda lsl r1, r1, #0x2 strh r2, [r0, r1] b _0202E1A4 _0202E16E: cmp r7, #0x1 bne _0202E194 add r0, r4, #0x0 bl FUN_020313CC mov r1, #0x1 and r1, r0 ldr r0, [sp, #0x0] cmp r0, r1 beq _0202E1A4 ldr r0, _0202E1B4 ; =0x021C59E4 ldr r1, _0202E1B8 ; =0x0000036A ldr r0, [r0, #0x0] add r0, r0, r5 ldrh r1, [r0, r1] add r2, r1, r6 ldr r1, _0202E1B8 ; =0x0000036A strh r2, [r0, r1] b _0202E1A4 _0202E194: mov r1, #0xdb add r0, r0, r5 lsl r1, r1, #0x2 ldrh r1, [r0, r1] add r2, r1, r6 mov r1, #0xdb lsl r1, r1, #0x2 strh r2, [r0, r1] _0202E1A4: add r5, r5, #0x6 add r4, r4, #0x1 bl FUN_02030F20 cmp r4, r0 blt _0202E128 _0202E1B0: pop {r3-r7, pc} nop _0202E1B4: .word 0x021C59E4 _0202E1B8: .word 0x0000036A thumb_func_start FUN_0202E1BC FUN_0202E1BC: ; 0x0202E1BC push {r4-r7, lr} sub sp, #0xc add r7, r0, #0x0 bl FUN_020286EC str r0, [sp, #0x4] mov r4, #0x0 bl FUN_02030F20 cmp r0, #0x0 ble _0202E224 add r5, r4, #0x0 _0202E1D4: add r0, r4, #0x0 bl FUN_0202DFD8 add r1, r0, #0x0 beq _0202E218 add r0, r7, #0x0 add r2, sp, #0x8 bl FUN_02033874 cmp r0, #0x0 beq _0202E1EE cmp r0, #0x1 bne _0202E218 _0202E1EE: ldr r0, [sp, #0x8] cmp r0, #0x0 bge _0202E1F8 bl ErrorHandling _0202E1F8: ldr r0, _0202E254 ; =0x021C59E4 mov r2, #0xda ldr r0, [r0, #0x0] ldr r3, _0202E258 ; =0x0000036A add r6, r0, r5 mov r0, #0xdb lsl r0, r0, #0x2 ldrh r0, [r6, r0] lsl r2, r2, #0x2 str r0, [sp, #0x0] ldrh r2, [r6, r2] ldrh r3, [r6, r3] ldr r0, [sp, #0x4] ldr r1, [sp, #0x8] bl FUN_02028608 _0202E218: add r5, r5, #0x6 add r4, r4, #0x1 bl FUN_02030F20 cmp r4, r0 blt _0202E1D4 _0202E224: mov r3, #0xda mov r2, #0x0 lsl r3, r3, #0x2 ldr r6, _0202E254 ; =0x021C59E4 add r1, r2, #0x0 add r0, r2, #0x0 add r4, r3, #0x2 add r5, r3, #0x4 _0202E234: ldr r7, [r6, #0x0] add r2, r2, #0x1 add r7, r7, r1 strh r0, [r7, r3] ldr r7, [r6, #0x0] add r7, r7, r1 strh r0, [r7, r4] ldr r7, [r6, #0x0] add r7, r7, r1 add r1, r1, #0x6 strh r0, [r7, r5] cmp r2, #0x8 blt _0202E234 add sp, #0xc pop {r4-r7, pc} nop _0202E254: .word 0x021C59E4 _0202E258: .word 0x0000036A thumb_func_start FUN_0202E25C FUN_0202E25C: ; 0x0202E25C push {r4, lr} add r4, r0, #0x0 cmp r1, #0x1 bne _0202E26E mov r0, #0x0 mov r1, #0x1 bl FUN_0202E0FC b _0202E27E _0202E26E: mov r0, #0x0 mvn r0, r0 cmp r1, r0 bne _0202E27E mov r0, #0x1 add r1, r0, #0x0 bl FUN_0202E0FC _0202E27E: add r0, r4, #0x0 bl FUN_0202E1BC pop {r4, pc} .balign 4 thumb_func_start FUN_0202E288 FUN_0202E288: ; 0x0202E288 push {r4, lr} add r4, r0, #0x0 mov r0, #0x2 bl FUN_0202E0FC add r0, r4, #0x0 bl FUN_0202E1BC pop {r4, pc} .balign 4 thumb_func_start FUN_0202E29C FUN_0202E29C: ; 0x0202E29C push {r4, lr} add r4, r0, #0x0 ldr r0, _0202E334 ; =0x021C59E8 ldr r0, [r0, #0x8] cmp r0, #0x0 bne _0202E332 mov r1, #0xdb mov r0, #0xf lsl r1, r1, #0x4 bl FUN_02016998 ldr r1, _0202E334 ; =0x021C59E8 mov r2, #0xdb str r0, [r1, #0x8] mov r1, #0x0 lsl r2, r2, #0x4 blx MI_CpuFill8 bl FUN_0202CEEC add r1, r0, #0x0 mov r0, #0xf bl FUN_02016998 ldr r1, _0202E334 ; =0x021C59E8 ldr r2, [r1, #0x8] ldr r1, _0202E338 ; =0x00000CA4 str r0, [r2, r1] bl FUN_0202CEEC add r2, r0, #0x0 ldr r0, _0202E334 ; =0x021C59E8 ldr r1, [r0, #0x8] ldr r0, _0202E338 ; =0x00000CA4 ldr r0, [r1, r0] mov r1, #0x0 blx MI_CpuFill8 bl FUN_02023AC4 add r1, r0, #0x0 mov r0, #0xf bl FUN_02016998 ldr r1, _0202E334 ; =0x021C59E8 ldr r2, [r1, #0x8] ldr r1, _0202E33C ; =0x00000CBC str r0, [r2, r1] bl FUN_02023AC4 add r2, r0, #0x0 ldr r0, _0202E334 ; =0x021C59E8 ldr r1, [r0, #0x8] ldr r0, _0202E33C ; =0x00000CBC ldr r0, [r1, r0] mov r1, #0x0 blx MI_CpuFill8 ldr r2, _0202E334 ; =0x021C59E8 mov r1, #0x33 ldr r3, _0202E340 ; =0x00000333 ldr r0, [r2, #0x8] lsl r1, r1, #0x6 str r3, [r0, r1] add r0, r1, #0x0 ldr r3, [r2, #0x8] sub r0, #0x8 str r4, [r3, r0] ldr r0, [r2, #0x8] sub r1, #0x18 add r0, r0, r1 bl FUN_02013724 bl FUN_0202E500 _0202E332: pop {r4, pc} .balign 4 _0202E334: .word 0x021C59E8 _0202E338: .word 0x00000CA4 _0202E33C: .word 0x00000CBC _0202E340: .word 0x00000333 thumb_func_start FUN_0202E344 FUN_0202E344: ; 0x0202E344 ldr r0, _0202E354 ; =0x021C59E8 ldr r0, [r0, #0x8] cmp r0, #0x0 beq _0202E350 mov r0, #0x1 bx lr _0202E350: mov r0, #0x0 bx lr .balign 4 _0202E354: .word 0x021C59E8 thumb_func_start FUN_0202E358 FUN_0202E358: ; 0x0202E358 push {r4-r5} mov r5, #0x0 cmp r2, #0x0 ble _0202E378 _0202E360: ldrb r4, [r0, #0x0] ldrb r3, [r1, #0x0] cmp r4, r3 beq _0202E36E mov r0, #0x0 pop {r4-r5} bx lr _0202E36E: add r5, r5, #0x1 add r0, r0, #0x1 add r1, r1, #0x1 cmp r5, r2 blt _0202E360 _0202E378: mov r0, #0x1 pop {r4-r5} bx lr .balign 4 thumb_func_start FUN_0202E380 FUN_0202E380: ; 0x0202E380 push {r3-r7, lr} add r7, r0, #0x0 bl FUN_02033534 add r5, r0, #0x0 bl FUN_0203354C add r4, r7, #0x0 add r6, r0, #0x0 add r4, #0x50 cmp r5, #0xe beq _0202E3C2 ldrb r0, [r4, #0x4] bl FUN_0202D8B0 cmp r0, #0x0 beq _0202E3AC add r0, r5, #0x0 bl FUN_0202D8B0 cmp r0, #0x0 bne _0202E3C2 _0202E3AC: add r0, r4, #0x0 add r0, #0x54 ldrb r0, [r0, #0x0] cmp r0, #0x0 beq _0202E3BC ldrb r0, [r4, #0x4] cmp r0, #0xa beq _0202E460 _0202E3BC: ldrb r0, [r4, #0x4] cmp r0, r5 bne _0202E460 _0202E3C2: cmp r5, #0xe beq _0202E3CC ldrb r0, [r4, #0x5] cmp r0, r6 bne _0202E460 _0202E3CC: mov r6, #0x0 add r4, r6, #0x0 add r5, r6, #0x0 _0202E3D2: ldr r0, _0202E464 ; =0x021C59E8 ldr r1, _0202E468 ; =0x00000C84 ldr r0, [r0, #0x8] add r2, r0, r4 ldrh r1, [r2, r1] cmp r1, #0x0 beq _0202E412 add r0, #0x58 add r0, r0, r5 add r1, r7, #0x4 mov r2, #0x6 bl FUN_0202E358 cmp r0, #0x0 beq _0202E412 ldr r2, _0202E464 ; =0x021C59E8 lsl r1, r6, #0x1 ldr r3, [r2, #0x8] mov r0, #0x96 add r3, r3, r1 ldr r1, _0202E468 ; =0x00000C84 strh r0, [r3, r1] ldr r3, [r2, #0x8] mov r2, #0xc0 add r1, r6, #0x0 add r3, #0x54 mul r1, r2 add r0, r7, #0x0 add r1, r3, r1 blx MI_CpuCopy8 pop {r3-r7, pc} _0202E412: add r6, r6, #0x1 add r4, r4, #0x2 add r5, #0xc0 cmp r6, #0x10 blt _0202E3D2 ldr r0, _0202E464 ; =0x021C59E8 ldr r2, _0202E468 ; =0x00000C84 ldr r0, [r0, #0x8] mov r1, #0x0 add r4, r0, #0x0 _0202E426: ldrh r3, [r4, r2] cmp r3, #0x0 beq _0202E434 add r1, r1, #0x1 add r4, r4, #0x2 cmp r1, #0x10 blt _0202E426 _0202E434: cmp r1, #0x10 bge _0202E460 lsl r2, r1, #0x1 add r2, r0, r2 ldr r0, _0202E468 ; =0x00000C84 mov r3, #0x96 strh r3, [r2, r0] ldr r2, _0202E464 ; =0x021C59E8 add r3, r1, #0x0 ldr r4, [r2, #0x8] mov r2, #0xc0 add r4, #0x54 mul r3, r2 add r0, r7, #0x0 add r1, r4, r3 blx MI_CpuCopy8 ldr r0, _0202E464 ; =0x021C59E8 mov r2, #0x1 ldr r1, [r0, #0x8] ldr r0, _0202E46C ; =0x00000CB4 strb r2, [r1, r0] _0202E460: pop {r3-r7, pc} nop _0202E464: .word 0x021C59E8 _0202E468: .word 0x00000C84 _0202E46C: .word 0x00000CB4 thumb_func_start FUN_0202E470 FUN_0202E470: ; 0x0202E470 push {r3, lr} cmp r1, #0x0 beq _0202E47A blx OS_Terminate _0202E47A: ldr r0, _0202E484 ; =0x021C59E8 mov r1, #0x2 str r1, [r0, #0x4] pop {r3, pc} nop _0202E484: .word 0x021C59E8 thumb_func_start FUN_0202E488 FUN_0202E488: ; 0x0202E488 ldr r0, _0202E494 ; =0x021C59E8 mov r1, #0x0 str r1, [r0, #0x4] ldr r3, _0202E498 ; =FUN_02016454 mov r0, #0x4 bx r3 .balign 4 _0202E494: .word 0x021C59E8 _0202E498: .word FUN_02016454 thumb_func_start FUN_0202E49C FUN_0202E49C: ; 0x0202E49C push {r3, lr} mov r0, #0x4 bl FUN_02016444 ldr r0, _0202E4C0 ; =0x021C59E8 mov r1, #0x1 str r1, [r0, #0x4] ldr r1, _0202E4C4 ; =FUN_0202E470 mov r0, #0x8 mov r2, #0x0 blx FUN_02090DB8 cmp r0, #0x1 beq _0202E4BC blx OS_Terminate _0202E4BC: pop {r3, pc} nop _0202E4C0: .word 0x021C59E8 _0202E4C4: .word FUN_0202E470 thumb_func_start FUN_0202E4C8 FUN_0202E4C8: ; 0x0202E4C8 ldr r0, _0202E4D8 ; =0x021C59E8 ldr r0, [r0, #0x4] cmp r0, #0x2 bne _0202E4D4 mov r0, #0x1 bx lr _0202E4D4: mov r0, #0x0 bx lr .balign 4 _0202E4D8: .word 0x021C59E8 thumb_func_start FUN_0202E4DC FUN_0202E4DC: ; 0x0202E4DC ldr r0, _0202E4EC ; =0x021C59E8 ldr r0, [r0, #0x4] cmp r0, #0x0 beq _0202E4E8 mov r0, #0x1 bx lr _0202E4E8: mov r0, #0x0 bx lr .balign 4 _0202E4EC: .word 0x021C59E8 thumb_func_start FUN_0202E4F0 FUN_0202E4F0: ; 0x0202E4F0 ldr r3, _0202E4F8 ; =FUN_02090CC8 ldr r0, _0202E4FC ; =FUN_0202E488 mov r1, #0x0 bx r3 .balign 4 _0202E4F8: .word FUN_02090CC8 _0202E4FC: .word FUN_0202E488 thumb_func_start FUN_0202E500 FUN_0202E500: ; 0x0202E500 push {r3, lr} ldr r1, _0202E534 ; =0x021C59E8 mov r0, #0xcb ldr r2, [r1, #0x8] mov r3, #0x0 lsl r0, r0, #0x4 str r3, [r2, r0] ldr r1, [r1, #0x8] sub r0, #0xc ldr r2, [r1, r0] mov r0, #0x1f add r1, r2, #0x0 and r1, r0 mov r0, #0x20 sub r0, r0, r1 add r0, r2, r0 bl FUN_0202CE64 ldr r0, _0202E534 ; =0x021C59E8 ldr r1, [r0, #0x8] mov r0, #0x33 lsl r0, r0, #0x6 ldr r0, [r1, r0] bl FUN_0202CB70 pop {r3, pc} .balign 4 _0202E534: .word 0x021C59E8 thumb_func_start FUN_0202E538 FUN_0202E538: ; 0x0202E538 push {r3-r5, lr} mov r4, #0x0 ldr r2, _0202E564 ; =0x021C59E8 ldr r0, _0202E568 ; =0x00000C84 add r5, r4, #0x0 add r1, r4, #0x0 _0202E544: ldr r3, [r2, #0x8] add r4, r4, #0x1 add r3, r3, r5 add r5, r5, #0x2 strh r1, [r3, r0] cmp r4, #0x10 blt _0202E544 ldr r0, _0202E564 ; =0x021C59E8 mov r2, #0x3 ldr r0, [r0, #0x8] lsl r2, r2, #0xa add r0, #0x54 blx MI_CpuFill8 pop {r3-r5, pc} nop _0202E564: .word 0x021C59E8 _0202E568: .word 0x00000C84 thumb_func_start FUN_0202E56C FUN_0202E56C: ; 0x0202E56C push {r3-r4} ldr r1, _0202E58C ; =0x021C59E8 lsl r0, r0, #0x18 ldr r2, [r1, #0x8] ldr r4, _0202E590 ; =0x00000DAD lsr r0, r0, #0x18 ldrb r1, [r2, r4] mov r3, #0x8 lsl r0, r0, #0x1f bic r1, r3 lsr r0, r0, #0x1c orr r0, r1 strb r0, [r2, r4] pop {r3-r4} bx lr nop _0202E58C: .word 0x021C59E8 _0202E590: .word 0x00000DAD thumb_func_start FUN_0202E594 FUN_0202E594: ; 0x0202E594 push {r4-r5} ldr r1, _0202E5F0 ; =0x021C59E8 ldr r0, _0202E5F4 ; =0x00000CB4 ldr r3, [r1, #0x8] mov r2, #0x0 strb r2, [r3, r0] add r3, r0, #0x0 ldr r5, [r1, #0x8] add r3, #0xf9 ldrb r4, [r5, r3] mov r3, #0x1 bic r4, r3 add r3, r0, #0x0 add r3, #0xf9 strb r4, [r5, r3] add r3, r0, #0x0 ldr r5, [r1, #0x8] add r3, #0xf9 ldrb r4, [r5, r3] mov r3, #0x4 bic r4, r3 add r3, r0, #0x0 add r3, #0xf9 strb r4, [r5, r3] add r3, r0, #0x0 ldr r4, [r1, #0x8] add r3, #0xf6 strb r2, [r4, r3] add r3, r0, #0x0 ldr r5, [r1, #0x8] add r3, #0xf9 ldrb r4, [r5, r3] mov r3, #0x10 bic r4, r3 add r3, r0, #0x0 add r3, #0xf9 strb r4, [r5, r3] add r3, r0, #0x0 ldr r4, [r1, #0x8] add r3, #0xf8 strb r2, [r4, r3] ldr r1, [r1, #0x8] add r0, #0xf7 strb r2, [r1, r0] pop {r4-r5} bx lr .balign 4 _0202E5F0: .word 0x021C59E8 _0202E5F4: .word 0x00000CB4 thumb_func_start FUN_0202E5F8 FUN_0202E5F8: ; 0x0202E5F8 push {r3-r5, lr} add r5, r1, #0x0 add r4, r2, #0x0 bl FUN_0202E594 add r0, r5, #0x0 bl FUN_0202E56C bl FUN_0202D2F4 ldr r0, _0202E65C ; =0x021C59E8 ldr r1, [r0, #0x8] ldr r0, _0202E660 ; =0x00000DAB ldrb r0, [r1, r0] cmp r0, #0x0 bne _0202E62A ldr r0, _0202E664 ; =FUN_020303BC mov r1, #0xe bl FUN_0202D0A0 ldr r0, _0202E65C ; =0x021C59E8 mov r2, #0x1 ldr r1, [r0, #0x8] ldr r0, _0202E660 ; =0x00000DAB strb r2, [r1, r0] _0202E62A: ldr r0, _0202E65C ; =0x021C59E8 ldr r3, _0202E668 ; =0x00000DAD ldr r1, [r0, #0x8] mov r2, #0x20 ldrb r0, [r1, r3] bic r0, r2 lsl r2, r4, #0x18 lsr r2, r2, #0x18 lsl r2, r2, #0x1f lsr r2, r2, #0x1a orr r0, r2 strb r0, [r1, r3] bl FUN_0202CBD4 cmp r0, #0x1 bne _0202E656 bl FUN_0202CBFC cmp r0, #0x0 beq _0202E656 mov r0, #0x1 pop {r3-r5, pc} _0202E656: mov r0, #0x0 pop {r3-r5, pc} nop _0202E65C: .word 0x021C59E8 _0202E660: .word 0x00000DAB _0202E664: .word FUN_020303BC _0202E668: .word 0x00000DAD thumb_func_start FUN_0202E66C FUN_0202E66C: ; 0x0202E66C push {r4, lr} sub sp, #0x8 add r4, r1, #0x0 bl FUN_0202E594 cmp r4, #0x0 beq _0202E67E bl FUN_0202E538 _0202E67E: ldr r0, _0202E6DC ; =0x021C59E8 ldr r1, [r0, #0x8] ldr r0, _0202E6E0 ; =0x00000DAB ldrb r0, [r1, r0] cmp r0, #0x0 bne _0202E69C ldr r0, _0202E6E4 ; =FUN_02030238 mov r1, #0xe bl FUN_0202D0A0 ldr r0, _0202E6DC ; =0x021C59E8 mov r2, #0x1 ldr r1, [r0, #0x8] ldr r0, _0202E6E0 ; =0x00000DAB strb r2, [r1, r0] _0202E69C: bl FUN_0202CBD4 cmp r0, #0x1 bne _0202E6D4 ldr r2, _0202E6E8 ; =0x020EEC40 add r0, sp, #0x0 ldrb r3, [r2, #0x0] add r1, sp, #0x0 strb r3, [r0, #0x0] ldrb r3, [r2, #0x1] strb r3, [r0, #0x1] ldrb r3, [r2, #0x2] strb r3, [r0, #0x2] ldrb r3, [r2, #0x3] strb r3, [r0, #0x3] ldrb r3, [r2, #0x4] ldrb r2, [r2, #0x5] strb r3, [r0, #0x4] strb r2, [r0, #0x5] ldr r0, _0202E6EC ; =FUN_0202E380 mov r2, #0x0 bl FUN_0202C570 cmp r0, #0x0 beq _0202E6D4 add sp, #0x8 mov r0, #0x1 pop {r4, pc} _0202E6D4: mov r0, #0x0 add sp, #0x8 pop {r4, pc} nop _0202E6DC: .word 0x021C59E8 _0202E6E0: .word 0x00000DAB _0202E6E4: .word FUN_02030238 _0202E6E8: .word 0x020EEC40 _0202E6EC: .word FUN_0202E380 thumb_func_start FUN_0202E6F0 FUN_0202E6F0: ; 0x0202E6F0 push {r3, lr} ldr r0, _0202E77C ; =0x021C59E8 ldr r1, [r0, #0x8] cmp r1, #0x0 bne _0202E6FE mov r0, #0x1 pop {r3, pc} _0202E6FE: ldr r0, _0202E780 ; =0x00000DAC ldrb r0, [r1, r0] cmp r0, #0x0 beq _0202E710 cmp r0, #0x1 beq _0202E740 cmp r0, #0x2 beq _0202E758 b _0202E776 _0202E710: bl FUN_0202D21C cmp r0, #0x0 beq _0202E728 bl FUN_0202C770 ldr r0, _0202E77C ; =0x021C59E8 mov r2, #0x1 ldr r1, [r0, #0x8] ldr r0, _0202E780 ; =0x00000DAC strb r2, [r1, r0] b _0202E776 _0202E728: bl FUN_0202D1E4 cmp r0, #0x0 bne _0202E776 bl FUN_0202D100 ldr r0, _0202E77C ; =0x021C59E8 mov r2, #0x2 ldr r1, [r0, #0x8] ldr r0, _0202E780 ; =0x00000DAC strb r2, [r1, r0] b _0202E776 _0202E740: bl FUN_0202D1E4 cmp r0, #0x0 bne _0202E776 bl FUN_0202D100 ldr r0, _0202E77C ; =0x021C59E8 mov r2, #0x2 ldr r1, [r0, #0x8] ldr r0, _0202E780 ; =0x00000DAC strb r2, [r1, r0] b _0202E776 _0202E758: bl FUN_0202D1C8 cmp r0, #0x0 beq _0202E764 mov r0, #0x1 pop {r3, pc} _0202E764: bl FUN_0202D200 cmp r0, #0x0 beq _0202E776 ldr r0, _0202E77C ; =0x021C59E8 mov r2, #0x1 ldr r1, [r0, #0x8] ldr r0, _0202E780 ; =0x00000DAC strb r2, [r1, r0] _0202E776: mov r0, #0x0 pop {r3, pc} nop _0202E77C: .word 0x021C59E8 _0202E780: .word 0x00000DAC thumb_func_start FUN_0202E784 FUN_0202E784: ; 0x0202E784 push {r3, lr} ldr r0, _0202E7A8 ; =0x021C59E8 ldr r2, [r0, #0x8] cmp r2, #0x0 beq _0202E7A2 ldr r0, _0202E7AC ; =0x00000DAA ldrb r1, [r2, r0] cmp r1, #0x0 bne _0202E7A2 mov r1, #0x1 strb r1, [r2, r0] bl FUN_0202D100 mov r0, #0x1 pop {r3, pc} _0202E7A2: mov r0, #0x0 pop {r3, pc} nop _0202E7A8: .word 0x021C59E8 _0202E7AC: .word 0x00000DAA thumb_func_start FUN_0202E7B0 FUN_0202E7B0: ; 0x0202E7B0 push {r3, lr} ldr r1, _0202E7D0 ; =0x021C59E8 ldr r2, [r1, #0x8] cmp r2, #0x0 beq _0202E7CE cmp r0, #0x0 ldr r0, _0202E7D4 ; =0x00000DAA beq _0202E7C6 mov r1, #0x2 strb r1, [r2, r0] pop {r3, pc} _0202E7C6: mov r1, #0x0 strb r1, [r2, r0] bl FUN_0202E500 _0202E7CE: pop {r3, pc} .balign 4 _0202E7D0: .word 0x021C59E8 _0202E7D4: .word 0x00000DAA thumb_func_start FUN_0202E7D8 FUN_0202E7D8: ; 0x0202E7D8 push {r3, lr} ldr r0, _0202E804 ; =0x021C59E8 ldr r1, [r0, #0x8] ldr r0, _0202E808 ; =0x00000CBC ldr r0, [r1, r0] bl FUN_02016A18 ldr r0, _0202E804 ; =0x021C59E8 ldr r1, [r0, #0x8] ldr r0, _0202E80C ; =0x00000CA4 ldr r0, [r1, r0] bl FUN_02016A18 ldr r0, _0202E804 ; =0x021C59E8 ldr r0, [r0, #0x8] bl FUN_02016A18 ldr r0, _0202E804 ; =0x021C59E8 mov r1, #0x0 str r1, [r0, #0x8] pop {r3, pc} nop _0202E804: .word 0x021C59E8 _0202E808: .word 0x00000CBC _0202E80C: .word 0x00000CA4 thumb_func_start FUN_0202E810 FUN_0202E810: ; 0x0202E810 push {r4, lr} bl FUN_02030F40 cmp r0, #0x0 bne _0202E81E mov r0, #0x0 pop {r4, pc} _0202E81E: ldr r1, _0202E83C ; =0x021C59E8 mov r0, #0x0 ldr r4, [r1, #0x8] ldr r1, _0202E840 ; =0x00000C84 add r3, r0, #0x0 _0202E828: ldrh r2, [r4, r1] cmp r2, #0x0 beq _0202E830 add r0, r0, #0x1 _0202E830: add r3, r3, #0x1 add r4, r4, #0x2 cmp r3, #0x10 blt _0202E828 pop {r4, pc} nop _0202E83C: .word 0x021C59E8 _0202E840: .word 0x00000C84 thumb_func_start FUN_0202E844 FUN_0202E844: ; 0x0202E844 push {r3-r5, lr} ldr r1, _0202E870 ; =0x021C59E8 mov r4, #0x0 ldr r5, [r1, #0x8] ldr r1, _0202E874 ; =0x00000C84 add r3, r4, #0x0 _0202E850: ldrh r2, [r5, r1] cmp r2, #0x0 beq _0202E860 cmp r4, r0 bne _0202E85E add r0, r3, #0x0 pop {r3-r5, pc} _0202E85E: add r4, r4, #0x1 _0202E860: add r3, r3, #0x1 add r5, r5, #0x2 cmp r3, #0x10 blt _0202E850 bl ErrorHandling mov r0, #0x0 pop {r3-r5, pc} .balign 4 _0202E870: .word 0x021C59E8 _0202E874: .word 0x00000C84 thumb_func_start FUN_0202E878 FUN_0202E878: ; 0x0202E878 ldr r0, _0202E884 ; =0x021C59E8 ldr r1, [r0, #0x8] ldr r0, _0202E888 ; =0x00000CB4 ldrb r0, [r1, r0] bx lr nop _0202E884: .word 0x021C59E8 _0202E888: .word 0x00000CB4 thumb_func_start FUN_0202E88C FUN_0202E88C: ; 0x0202E88C ldr r0, _0202E898 ; =0x021C59E8 mov r2, #0x0 ldr r1, [r0, #0x8] ldr r0, _0202E89C ; =0x00000CB4 strb r2, [r1, r0] bx lr .balign 4 _0202E898: .word 0x021C59E8 _0202E89C: .word 0x00000CB4 thumb_func_start FUN_0202E8A0 FUN_0202E8A0: ; 0x0202E8A0 ldr r1, _0202E8C8 ; =0x021C59E8 ldr r3, [r1, #0x8] lsl r1, r0, #0x1 add r2, r3, r1 ldr r1, _0202E8CC ; =0x00000C84 ldrh r1, [r2, r1] cmp r1, #0x0 beq _0202E8C2 mov r1, #0xc0 mul r1, r0 add r0, r3, r1 add r0, #0xaa ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _0202E8C4 mov r0, #0x1 bx lr _0202E8C2: mov r0, #0x0 _0202E8C4: bx lr nop _0202E8C8: .word 0x021C59E8 _0202E8CC: .word 0x00000C84 thumb_func_start FUN_0202E8D0 FUN_0202E8D0: ; 0x0202E8D0 push {r3-r5, lr} add r5, r0, #0x0 mov r4, #0xf _0202E8D6: add r0, r4, #0x0 bl FUN_0202E8A0 cmp r0, r5 ble _0202E8E8 cmp r0, #0x8 bge _0202E8E8 add r0, r4, #0x0 pop {r3-r5, pc} _0202E8E8: sub r4, r4, #0x1 bpl _0202E8D6 mov r0, #0x0 mvn r0, r0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0202E8F4 FUN_0202E8F4: ; 0x0202E8F4 push {r3-r7, lr} bl FUN_0202E810 cmp r0, #0x0 bne _0202E904 mov r0, #0x0 mvn r0, r0 pop {r3-r7, pc} _0202E904: mov r5, #0x2d ldr r7, _0202E948 ; =0x021C59E8 mov r6, #0xf mov r4, #0x1e lsl r5, r5, #0x6 _0202E90E: ldr r0, [r7, #0x8] ldr r1, _0202E94C ; =0x00000C84 add r2, r0, r4 ldrh r1, [r2, r1] cmp r1, #0x0 beq _0202E938 add r0, #0x58 add r0, r0, r5 bl FUN_0202EFE4 cmp r0, #0x0 beq _0202E938 add r0, r6, #0x0 bl FUN_0202E8A0 cmp r0, #0x1 ble _0202E938 cmp r0, #0x8 bge _0202E938 add r0, r6, #0x0 pop {r3-r7, pc} _0202E938: sub r4, r4, #0x2 sub r5, #0xc0 sub r6, r6, #0x1 bpl _0202E90E mov r0, #0x0 mvn r0, r0 pop {r3-r7, pc} nop _0202E948: .word 0x021C59E8 _0202E94C: .word 0x00000C84 thumb_func_start FUN_0202E950 FUN_0202E950: ; 0x0202E950 push {r3-r7, lr} bl FUN_0202E810 cmp r0, #0x0 bne _0202E960 mov r0, #0x0 mvn r0, r0 pop {r3-r7, pc} _0202E960: mov r5, #0x2d ldr r7, _0202E9A4 ; =0x021C59E8 mov r6, #0xf mov r4, #0x1e lsl r5, r5, #0x6 _0202E96A: ldr r0, [r7, #0x8] ldr r1, _0202E9A8 ; =0x00000C84 add r2, r0, r4 ldrh r1, [r2, r1] cmp r1, #0x0 beq _0202E986 add r0, #0x58 add r0, r0, r5 bl FUN_0202EFE4 cmp r0, #0x0 beq _0202E986 add r0, r6, #0x0 pop {r3-r7, pc} _0202E986: sub r4, r4, #0x2 sub r5, #0xc0 sub r6, r6, #0x1 bpl _0202E96A mov r0, #0x1 bl FUN_0202E8D0 mov r1, #0x0 mvn r1, r1 cmp r0, r1 bne _0202E9A2 mov r0, #0x0 bl FUN_0202E8D0 _0202E9A2: pop {r3-r7, pc} .balign 4 _0202E9A4: .word 0x021C59E8 _0202E9A8: .word 0x00000C84 thumb_func_start FUN_0202E9AC FUN_0202E9AC: ; 0x0202E9AC push {r4-r6, lr} add r4, r1, #0x0 ldr r1, _0202E9E0 ; =0x021C59E8 mov r5, #0x0 ldr r6, [r1, #0x8] ldr r1, _0202E9E4 ; =0x00000C84 add r3, r5, #0x0 _0202E9BA: ldrh r2, [r6, r1] cmp r2, #0x0 beq _0202E9D4 cmp r0, r5 bne _0202E9D2 add r0, r3, #0x0 bl FUN_0202EF84 add r1, r4, #0x0 bl FUN_0202393C pop {r4-r6, pc} _0202E9D2: add r5, r5, #0x1 _0202E9D4: add r3, r3, #0x1 add r6, r6, #0x2 cmp r3, #0x10 blt _0202E9BA pop {r4-r6, pc} nop _0202E9E0: .word 0x021C59E8 _0202E9E4: .word 0x00000C84 thumb_func_start FUN_0202E9E8 FUN_0202E9E8: ; 0x0202E9E8 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_0202CBD4 cmp r0, #0x2 bne _0202E9FC bl FUN_0202C770 mov r0, #0x0 pop {r3-r5, pc} _0202E9FC: bl FUN_0202CBD4 cmp r0, #0x1 bne _0202EA48 bl FUN_02033534 mov r1, #0xc0 add r4, r5, #0x0 mul r4, r1 ldr r1, _0202EA4C ; =0x021C59E8 ldr r3, [r1, #0x8] add r1, r3, r4 add r1, #0x8a ldrh r2, [r1, #0x0] ldr r1, _0202EA50 ; =0x00000DA8 strb r2, [r3, r1] bl FUN_0202D8B0 cmp r0, #0x0 beq _0202EA36 ldr r1, _0202EA4C ; =0x021C59E8 mov r0, #0x1 ldr r1, [r1, #0x8] mov r2, #0x0 add r1, #0x58 add r1, r1, r4 bl FUN_0202C4D8 b _0202EA44 _0202EA36: ldr r1, _0202EA4C ; =0x021C59E8 mov r0, #0x1 ldr r1, [r1, #0x8] add r1, #0x54 add r1, r1, r4 bl FUN_0202D034 _0202EA44: mov r0, #0x1 pop {r3-r5, pc} _0202EA48: mov r0, #0x0 pop {r3-r5, pc} .balign 4 _0202EA4C: .word 0x021C59E8 _0202EA50: .word 0x00000DA8 thumb_func_start FUN_0202EA54 FUN_0202EA54: ; 0x0202EA54 push {r4-r7} mov r4, #0x0 ldr r1, _0202EA90 ; =0x021C59E8 ldr r0, _0202EA94 ; =0x00000C84 add r5, r4, #0x0 mov r2, #0x1 _0202EA60: ldr r3, [r1, #0x8] add r3, r3, r5 ldrh r6, [r3, r0] cmp r6, #0x0 beq _0202EA84 beq _0202EA84 ldr r6, _0202EA94 ; =0x00000C84 ldrh r6, [r3, r6] sub r7, r6, #0x1 ldr r6, _0202EA94 ; =0x00000C84 strh r7, [r3, r6] ldr r3, [r1, #0x8] add r7, r3, r5 ldrh r6, [r7, r6] cmp r6, #0x0 bne _0202EA84 ldr r6, _0202EA98 ; =0x00000CB4 strb r2, [r3, r6] _0202EA84: add r4, r4, #0x1 add r5, r5, #0x2 cmp r4, #0x10 blt _0202EA60 pop {r4-r7} bx lr .balign 4 _0202EA90: .word 0x021C59E8 _0202EA94: .word 0x00000C84 _0202EA98: .word 0x00000CB4 thumb_func_start FUN_0202EA9C FUN_0202EA9C: ; 0x0202EA9C push {r3-r5, lr} bl FUN_02033534 add r5, r0, #0x0 bl FUN_0202EF70 add r4, r0, #0x0 cmp r5, #0xf beq _0202EB24 ldr r0, _0202EB6C ; =0x021C59E8 ldr r1, [r0, #0x8] ldr r0, _0202EB70 ; =0x00000CC4 add r5, r1, r0 bl FUN_02023AC4 cmp r0, #0x20 ble _0202EAC2 bl ErrorHandling _0202EAC2: bl FUN_02023924 cmp r0, #0x20 beq _0202EACE bl ErrorHandling _0202EACE: bl FUN_02023924 add r1, r5, #0x0 add r2, r0, #0x0 add r0, r4, #0x0 add r1, #0x10 blx MI_CpuCopy8 bl FUN_02023AC4 add r2, r0, #0x0 ldr r0, _0202EB6C ; =0x021C59E8 ldr r1, [r0, #0x8] ldr r0, _0202EB74 ; =0x00000CBC ldr r0, [r1, r0] add r1, r5, #0x0 add r1, #0x30 blx MI_CpuCopy8 add r0, r4, #0x0 bl FUN_020239BC str r0, [r5, #0x0] bl FUN_02033534 strb r0, [r5, #0x4] bl FUN_0203354C strb r0, [r5, #0x5] ldr r0, _0202EB6C ; =0x021C59E8 mov r2, #0x8 ldr r1, [r0, #0x8] ldr r0, _0202EB78 ; =0x00000CA8 add r0, r1, r0 add r1, r5, #0x0 add r1, #0x8 blx MI_CpuCopy8 bl FUN_0202D358 add r5, #0x54 strb r0, [r5, #0x0] b _0202EB4E _0202EB24: ldr r1, _0202EB6C ; =0x021C59E8 ldr r4, [r1, #0x8] ldr r1, _0202EB70 ; =0x00000CC4 add r5, r4, r1 bl FUN_020239BC ldr r1, _0202EB70 ; =0x00000CC4 str r0, [r4, r1] bl FUN_02033534 strb r0, [r5, #0x4] bl FUN_0203354C strb r0, [r5, #0x5] ldr r0, _0202EB6C ; =0x021C59E8 add r5, #0x8 ldr r0, [r0, #0x8] add r1, r5, #0x0 mov r2, #0x54 blx MI_CpuCopy8 _0202EB4E: ldr r0, _0202EB6C ; =0x021C59E8 ldr r1, [r0, #0x8] ldr r0, _0202EB70 ; =0x00000CC4 add r0, r1, r0 mov r1, #0x5c blx DC_FlushRange ldr r0, _0202EB6C ; =0x021C59E8 ldr r1, [r0, #0x8] ldr r0, _0202EB70 ; =0x00000CC4 add r0, r1, r0 mov r1, #0x5c bl FUN_0202CB7C pop {r3-r5, pc} .balign 4 _0202EB6C: .word 0x021C59E8 _0202EB70: .word 0x00000CC4 _0202EB74: .word 0x00000CBC _0202EB78: .word 0x00000CA8 thumb_func_start FUN_0202EB7C FUN_0202EB7C: ; 0x0202EB7C push {r4, lr} ldr r0, _0202EBC8 ; =0x021C59E8 ldr r1, [r0, #0x8] ldr r0, _0202EBCC ; =0x00000CC4 add r4, r1, r0 bl FUN_0202EDB8 ldrb r1, [r4, #0x6] cmp r1, r0 beq _0202EBC6 bl FUN_0202EDB8 strb r0, [r4, #0x6] ldr r0, _0202EBC8 ; =0x021C59E8 ldr r1, [r0, #0x8] ldr r0, _0202EBCC ; =0x00000CC4 add r0, r1, r0 mov r1, #0x5c blx DC_FlushRange ldr r0, _0202EBC8 ; =0x021C59E8 ldr r1, [r0, #0x8] ldr r0, _0202EBCC ; =0x00000CC4 add r0, r1, r0 mov r1, #0x5c bl FUN_0202CB7C ldr r3, _0202EBC8 ; =0x021C59E8 ldr r2, _0202EBCC ; =0x00000CC4 ldr r4, [r3, #0x8] ldrh r3, [r3, #0x0] add r0, r4, r2 sub r2, r2, #0x4 ldr r2, [r4, r2] mov r1, #0x5c bl FUN_0202D240 _0202EBC6: pop {r4, pc} .balign 4 _0202EBC8: .word 0x021C59E8 _0202EBCC: .word 0x00000CC4 thumb_func_start FUN_0202EBD0 FUN_0202EBD0: ; 0x0202EBD0 push {r3-r5, lr} sub sp, #0x8 add r4, r0, #0x0 bl FUN_0202CBD4 add r5, r0, #0x0 bl FUN_0202DF54 bl FUN_0202EB7C bl FUN_0202D19C cmp r0, #0x0 bne _0202EC0C bl FUN_0202EE24 cmp r0, #0x0 bne _0202EC0C ldr r0, _0202ED50 ; =0x021C59E8 ldr r2, [r0, #0x8] ldr r0, _0202ED54 ; =0x00000DAD ldrb r1, [r2, r0] lsl r3, r1, #0x1d lsr r3, r3, #0x1f beq _0202EC0C mov r3, #0x1 bic r1, r3 mov r3, #0x1 orr r1, r3 strb r1, [r2, r0] _0202EC0C: ldr r0, _0202ED50 ; =0x021C59E8 ldr r1, _0202ED58 ; =0x0000FFFF ldr r3, [r0, #0x8] ldr r0, _0202ED5C ; =0x00000DA6 ldrh r2, [r3, r0] cmp r2, r1 bne _0202EC1C strh r4, [r3, r0] _0202EC1C: ldr r0, _0202ED50 ; =0x021C59E8 ldr r2, [r0, #0x8] ldr r0, _0202ED54 ; =0x00000DAD ldrb r1, [r2, r0] lsl r3, r1, #0x1e lsr r3, r3, #0x1f beq _0202EC3C sub r3, r0, #0x7 ldrh r3, [r2, r3] cmp r3, r4 bls _0202EC3C mov r3, #0x1 bic r1, r3 mov r3, #0x1 orr r1, r3 strb r1, [r2, r0] _0202EC3C: bl FUN_0202CBE8 cmp r0, #0x19 bne _0202EC4A mov r0, #0x0 bl FUN_020335D0 _0202EC4A: cmp r5, #0x9 bhi _0202ED4C add r0, r5, r5 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0202EC5A: ; jump table (using 16-bit offset) .short _0202EC6E - _0202EC5A - 2; case 0 .short _0202EC8E - _0202EC5A - 2; case 1 .short _0202ED4C - _0202EC5A - 2; case 2 .short _0202ED4C - _0202EC5A - 2; case 3 .short _0202ED4C - _0202EC5A - 2; case 4 .short _0202ED4C - _0202EC5A - 2; case 5 .short _0202ED4C - _0202EC5A - 2; case 6 .short _0202ECD2 - _0202EC5A - 2; case 7 .short _0202ECB8 - _0202EC5A - 2; case 8 .short _0202ECB8 - _0202EC5A - 2; case 9 _0202EC6E: ldr r0, _0202ED50 ; =0x021C59E8 ldr r2, [r0, #0x8] ldr r0, _0202ED60 ; =0x00000DAA ldrb r1, [r2, r0] cmp r1, #0x1 bne _0202EC82 bl FUN_0202E7D8 add sp, #0x8 pop {r3-r5, pc} _0202EC82: cmp r1, #0x2 bne _0202ED4C mov r1, #0x3 strb r1, [r2, r0] add sp, #0x8 pop {r3-r5, pc} _0202EC8E: ldr r0, _0202ED50 ; =0x021C59E8 ldr r1, [r0, #0x8] ldr r0, _0202ED60 ; =0x00000DAA ldrb r0, [r1, r0] cmp r0, #0x1 bne _0202ECA2 bl FUN_0202D178 cmp r0, #0x0 bne _0202ED4C _0202ECA2: ldr r0, _0202ED50 ; =0x021C59E8 ldr r1, [r0, #0x8] ldr r0, _0202ED60 ; =0x00000DAA ldrb r0, [r1, r0] cmp r0, #0x2 bne _0202ED4C bl FUN_0202D178 add sp, #0x8 cmp r0, #0x0 pop {r3-r5, pc} _0202ECB8: ldr r0, _0202ED50 ; =0x021C59E8 ldr r3, [r0, #0x8] cmp r3, #0x0 beq _0202ED4C ldr r1, _0202ED54 ; =0x00000DAD mov r0, #0x1 ldrb r2, [r3, r1] add sp, #0x8 bic r2, r0 mov r0, #0x1 orr r0, r2 strb r0, [r3, r1] pop {r3-r5, pc} _0202ECD2: bl FUN_0202CDA4 ldr r3, _0202ED50 ; =0x021C59E8 ldr r2, _0202ED64 ; =0x00000DA9 ldr r4, [r3, #0x8] ldrb r1, [r4, r2] cmp r1, #0x0 bne _0202ECEE sub r1, r2, #0x5 strh r0, [r4, r1] ldr r0, [r3, #0x8] mov r1, #0x5 strb r1, [r0, r2] b _0202ECF2 _0202ECEE: sub r0, r1, #0x1 strb r0, [r4, r2] _0202ECF2: ldr r1, _0202ED50 ; =0x021C59E8 ldr r0, _0202ED68 ; =0x00000DA4 ldr r2, [r1, #0x8] ldrh r5, [r2, r0] add r0, #0x9 ldrb r0, [r2, r0] lsl r0, r0, #0x1c lsr r0, r0, #0x1f beq _0202ED0A ldrh r0, [r1, #0x0] add r0, r0, #0x1 strh r0, [r1, #0x0] _0202ED0A: bl FUN_0202EA9C bl FUN_02033534 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_0202D858 add r4, r0, #0x0 bl FUN_02033534 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_0202EEE8 str r0, [sp, #0x0] ldr r1, _0202ED50 ; =0x021C59E8 ldr r0, _0202ED54 ; =0x00000DAD ldr r2, [r1, #0x8] add r3, r4, #0x0 ldrb r0, [r2, r0] add r2, r5, #0x0 lsl r0, r0, #0x1a lsr r0, r0, #0x1f str r0, [sp, #0x4] ldrh r1, [r1, #0x0] mov r0, #0x0 bl FUN_0202CF84 ldr r0, _0202ED50 ; =0x021C59E8 ldr r1, [r0, #0x8] ldr r0, _0202ED6C ; =0x00000DA8 strb r5, [r1, r0] _0202ED4C: add sp, #0x8 pop {r3-r5, pc} .balign 4 _0202ED50: .word 0x021C59E8 _0202ED54: .word 0x00000DAD _0202ED58: .word 0x0000FFFF _0202ED5C: .word 0x00000DA6 _0202ED60: .word 0x00000DAA _0202ED64: .word 0x00000DA9 _0202ED68: .word 0x00000DA4 _0202ED6C: .word 0x00000DA8 thumb_func_start FUN_0202ED70 FUN_0202ED70: ; 0x0202ED70 push {r3, lr} ldr r1, _0202ED80 ; =0x021C59E8 ldr r1, [r1, #0x8] cmp r1, #0x0 beq _0202ED7E bl FUN_0202EBD0 _0202ED7E: pop {r3, pc} .balign 4 _0202ED80: .word 0x021C59E8 thumb_func_start FUN_0202ED84 FUN_0202ED84: ; 0x0202ED84 push {r4, lr} add r4, r0, #0x0 ldr r0, _0202EDB4 ; =0x021C59E8 ldr r0, [r0, #0x8] cmp r0, #0x0 bne _0202ED94 mov r0, #0x0 pop {r4, pc} _0202ED94: bl FUN_0202CBD4 cmp r0, #0x4 beq _0202EDA0 mov r0, #0x0 pop {r4, pc} _0202EDA0: bl FUN_0202CB8C mov r2, #0x1 add r1, r2, #0x0 lsl r1, r4 tst r0, r1 bne _0202EDB0 mov r2, #0x0 _0202EDB0: add r0, r2, #0x0 pop {r4, pc} .balign 4 _0202EDB4: .word 0x021C59E8 thumb_func_start FUN_0202EDB8 FUN_0202EDB8: ; 0x0202EDB8 push {r3-r5, lr} mov r4, #0x0 add r5, r4, #0x0 _0202EDBE: lsl r0, r5, #0x10 lsr r0, r0, #0x10 bl FUN_0202ED84 cmp r0, #0x0 beq _0202EDCC add r4, r4, #0x1 _0202EDCC: add r5, r5, #0x1 cmp r5, #0x8 blt _0202EDBE add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0202EDD8 FUN_0202EDD8: ; 0x0202EDD8 ldr r0, _0202EDF0 ; =0x021C59E8 ldr r1, [r0, #0x8] cmp r1, #0x0 beq _0202EDEC ldr r0, _0202EDF4 ; =0x00000DAA ldrb r0, [r1, r0] cmp r0, #0x3 bne _0202EDEC mov r0, #0x1 bx lr _0202EDEC: mov r0, #0x0 bx lr .balign 4 _0202EDF0: .word 0x021C59E8 _0202EDF4: .word 0x00000DAA thumb_func_start FUN_0202EDF8 FUN_0202EDF8: ; 0x0202EDF8 ldr r0, _0202EE08 ; =0x021C59E8 ldr r0, [r0, #0x8] cmp r0, #0x0 beq _0202EE04 mov r0, #0x1 bx lr _0202EE04: mov r0, #0x0 bx lr .balign 4 _0202EE08: .word 0x021C59E8 thumb_func_start FUN_0202EE0C FUN_0202EE0C: ; 0x0202EE0C push {r3, lr} ldr r0, _0202EE20 ; =0x021C59E8 ldr r0, [r0, #0x8] cmp r0, #0x0 beq _0202EE1C bl FUN_0202D1C8 pop {r3, pc} _0202EE1C: mov r0, #0x1 pop {r3, pc} .balign 4 _0202EE20: .word 0x021C59E8 thumb_func_start FUN_0202EE24 FUN_0202EE24: ; 0x0202EE24 push {r3, lr} ldr r0, _0202EE3C ; =0x021C59E8 ldr r0, [r0, #0x8] cmp r0, #0x0 beq _0202EE38 bl FUN_0202CB8C ldr r1, _0202EE40 ; =0x0000FFFE and r0, r1 pop {r3, pc} _0202EE38: mov r0, #0x0 pop {r3, pc} .balign 4 _0202EE3C: .word 0x021C59E8 _0202EE40: .word 0x0000FFFE thumb_func_start FUN_0202EE44 FUN_0202EE44: ; 0x0202EE44 push {r3, lr} bl FUN_0202EE60 cmp r0, #0x0 beq _0202EE5A bl FUN_0202CBE8 cmp r0, #0x14 bne _0202EE5A mov r0, #0x1 pop {r3, pc} _0202EE5A: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0202EE60 FUN_0202EE60: ; 0x0202EE60 ldr r0, _0202EE7C ; =0x021C59E8 ldr r1, [r0, #0x8] cmp r1, #0x0 beq _0202EE76 ldr r0, _0202EE80 ; =0x00000DAD ldrb r0, [r1, r0] lsl r0, r0, #0x1f lsr r0, r0, #0x1f beq _0202EE76 mov r0, #0x1 bx lr _0202EE76: mov r0, #0x0 bx lr nop _0202EE7C: .word 0x021C59E8 _0202EE80: .word 0x00000DAD thumb_func_start FUN_0202EE84 FUN_0202EE84: ; 0x0202EE84 push {r3-r4} ldr r1, _0202EEA8 ; =0x021C59E8 ldr r2, [r1, #0x8] cmp r2, #0x0 beq _0202EEA2 ldr r4, _0202EEAC ; =0x00000DAD lsl r0, r0, #0x18 ldrb r1, [r2, r4] lsr r0, r0, #0x18 mov r3, #0x4 lsl r0, r0, #0x1f bic r1, r3 lsr r0, r0, #0x1d orr r0, r1 strb r0, [r2, r4] _0202EEA2: pop {r3-r4} bx lr nop _0202EEA8: .word 0x021C59E8 _0202EEAC: .word 0x00000DAD thumb_func_start FUN_0202EEB0 FUN_0202EEB0: ; 0x0202EEB0 push {r4-r5} ldr r5, _0202EEDC ; =0x021C59E8 ldr r2, [r5, #0x8] cmp r2, #0x0 beq _0202EED6 ldr r4, _0202EEE0 ; =0x00000DAD lsl r0, r0, #0x18 ldrb r1, [r2, r4] lsr r0, r0, #0x18 mov r3, #0x2 lsl r0, r0, #0x1f bic r1, r3 lsr r0, r0, #0x1e orr r0, r1 strb r0, [r2, r4] ldr r2, _0202EEE4 ; =0x0000FFFF ldr r1, [r5, #0x8] sub r0, r4, #0x7 strh r2, [r1, r0] _0202EED6: pop {r4-r5} bx lr nop _0202EEDC: .word 0x021C59E8 _0202EEE0: .word 0x00000DAD _0202EEE4: .word 0x0000FFFF thumb_func_start FUN_0202EEE8 FUN_0202EEE8: ; 0x0202EEE8 push {r3-r5, lr} add r5, r0, #0x0 blx FUN_020D8AF0 add r4, r0, #0x0 cmp r5, #0x1a blo _0202EEFA bl ErrorHandling _0202EEFA: cmp r5, #0xa bne _0202EF04 lsl r0, r4, #0xe lsr r0, r0, #0x10 pop {r3-r5, pc} _0202EF04: cmp r5, #0x9 beq _0202EF0C cmp r5, #0xd bne _0202EF12 _0202EF0C: lsl r0, r4, #0xe lsr r0, r0, #0x10 pop {r3-r5, pc} _0202EF12: add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0202EF18 FUN_0202EF18: ; 0x0202EF18 ldr r1, _0202EF3C ; =0x021C59E8 ldr r3, [r1, #0x8] cmp r3, #0x0 beq _0202EF36 lsl r1, r0, #0x1 add r2, r3, r1 ldr r1, _0202EF40 ; =0x00000C84 ldrh r1, [r2, r1] cmp r1, #0x0 beq _0202EF36 mov r1, #0xc0 add r3, #0x54 mul r1, r0 add r0, r3, r1 bx lr _0202EF36: mov r0, #0x0 bx lr nop _0202EF3C: .word 0x021C59E8 _0202EF40: .word 0x00000C84 thumb_func_start FUN_0202EF44 FUN_0202EF44: ; 0x0202EF44 ldr r1, _0202EF68 ; =0x021C59E8 ldr r3, [r1, #0x8] cmp r3, #0x0 beq _0202EF62 lsl r1, r0, #0x1 add r2, r3, r1 ldr r1, _0202EF6C ; =0x00000C84 ldrh r1, [r2, r1] cmp r1, #0x0 beq _0202EF62 mov r1, #0xc0 add r3, #0xa4 mul r1, r0 add r0, r3, r1 bx lr _0202EF62: mov r0, #0x0 bx lr nop _0202EF68: .word 0x021C59E8 _0202EF6C: .word 0x00000C84 thumb_func_start FUN_0202EF70 FUN_0202EF70: ; 0x0202EF70 ldr r0, _0202EF7C ; =0x021C59E8 ldr r1, [r0, #0x8] ldr r0, _0202EF80 ; =0x00000CB8 ldr r0, [r1, r0] bx lr nop _0202EF7C: .word 0x021C59E8 _0202EF80: .word 0x00000CB8 thumb_func_start FUN_0202EF84 FUN_0202EF84: ; 0x0202EF84 ldr r1, _0202EFA4 ; =0x021C59E8 ldr r3, [r1, #0x8] lsl r1, r0, #0x1 add r2, r3, r1 ldr r1, _0202EFA8 ; =0x00000C84 ldrh r1, [r2, r1] cmp r1, #0x0 bne _0202EF98 mov r0, #0x0 bx lr _0202EF98: mov r1, #0xc0 add r3, #0xa4 mul r1, r0 add r0, r3, r1 add r0, #0x10 bx lr .balign 4 _0202EFA4: .word 0x021C59E8 _0202EFA8: .word 0x00000C84 thumb_func_start FUN_0202EFAC FUN_0202EFAC: ; 0x0202EFAC push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _0202EFDC ; =0x021C59E8 add r4, r1, #0x0 ldr r0, [r0, #0x8] cmp r0, #0x0 beq _0202EFD8 cmp r4, #0x8 blt _0202EFC2 bl ErrorHandling _0202EFC2: ldr r1, _0202EFDC ; =0x021C59E8 add r0, r5, #0x0 ldr r2, [r1, #0x8] ldr r1, _0202EFE0 ; =0x00000C54 add r3, r2, r1 mov r2, #0x6 add r1, r4, #0x0 mul r1, r2 add r1, r3, r1 blx MI_CpuCopy8 _0202EFD8: pop {r3-r5, pc} nop _0202EFDC: .word 0x021C59E8 _0202EFE0: .word 0x00000C54 thumb_func_start FUN_0202EFE4 FUN_0202EFE4: ; 0x0202EFE4 push {r4-r5} ldr r2, _0202F034 ; =0x021C59E8 mov r1, #0x0 ldr r3, [r2, #0x8] ldr r2, _0202F038 ; =0x00000C54 add r2, r3, r2 ldrb r3, [r0, #0x0] _0202EFF2: ldrb r4, [r2, #0x0] cmp r4, r3 bne _0202F026 ldrb r5, [r2, #0x1] ldrb r4, [r0, #0x1] cmp r5, r4 bne _0202F026 ldrb r5, [r2, #0x2] ldrb r4, [r0, #0x2] cmp r5, r4 bne _0202F026 ldrb r5, [r2, #0x3] ldrb r4, [r0, #0x3] cmp r5, r4 bne _0202F026 ldrb r5, [r2, #0x4] ldrb r4, [r0, #0x4] cmp r5, r4 bne _0202F026 ldrb r5, [r2, #0x5] ldrb r4, [r0, #0x5] cmp r5, r4 bne _0202F026 mov r0, #0x1 pop {r4-r5} bx lr _0202F026: add r1, r1, #0x1 add r2, r2, #0x6 cmp r1, #0x8 blt _0202EFF2 mov r0, #0x0 pop {r4-r5} bx lr .balign 4 _0202F034: .word 0x021C59E8 _0202F038: .word 0x00000C54 thumb_func_start FUN_0202F03C FUN_0202F03C: ; 0x0202F03C ldr r0, _0202F054 ; =0x021C59E8 ldr r1, [r0, #0x8] cmp r1, #0x0 beq _0202F04E ldr r0, _0202F058 ; =0x00000DAD ldrb r0, [r1, r0] lsl r0, r0, #0x1b lsr r0, r0, #0x1f bx lr _0202F04E: mov r0, #0x0 bx lr nop _0202F054: .word 0x021C59E8 _0202F058: .word 0x00000DAD thumb_func_start FUN_0202F05C FUN_0202F05C: ; 0x0202F05C ldr r0, _0202F070 ; =0x021C59E8 ldr r3, [r0, #0x8] cmp r3, #0x0 beq _0202F06E ldr r1, _0202F074 ; =0x00000DAD mov r0, #0x10 ldrb r2, [r3, r1] orr r0, r2 strb r0, [r3, r1] _0202F06E: bx lr .balign 4 _0202F070: .word 0x021C59E8 _0202F074: .word 0x00000DAD thumb_func_start FUN_0202F078 FUN_0202F078: ; 0x0202F078 ldr r1, _0202F088 ; =0x021C59E8 ldr r3, _0202F08C ; =MI_CpuCopy8 ldr r2, [r1, #0x8] ldr r1, _0202F090 ; =0x00000CA8 add r1, r2, r1 mov r2, #0x8 bx r3 nop _0202F088: .word 0x021C59E8 _0202F08C: .word MI_CpuCopy8 _0202F090: .word 0x00000CA8 thumb_func_start FUN_0202F094 FUN_0202F094: ; 0x0202F094 push {r4, lr} add r4, r0, #0x0 bl FUN_02023AC4 ldr r1, _0202F0B0 ; =0x021C59E8 add r2, r0, #0x0 ldr r3, [r1, #0x8] ldr r1, _0202F0B4 ; =0x00000CBC add r0, r4, #0x0 ldr r1, [r3, r1] blx MI_CpuCopy8 pop {r4, pc} nop _0202F0B0: .word 0x021C59E8 _0202F0B4: .word 0x00000CBC thumb_func_start FUN_0202F0B8 FUN_0202F0B8: ; 0x0202F0B8 push {r4, lr} bl FUN_0202EA9C ldr r3, _0202F0D4 ; =0x021C59E8 ldr r2, _0202F0D8 ; =0x00000CC4 ldr r4, [r3, #0x8] ldrh r3, [r3, #0x0] add r0, r4, r2 sub r2, r2, #0x4 ldr r2, [r4, r2] mov r1, #0x5c bl FUN_0202D240 pop {r4, pc} .balign 4 _0202F0D4: .word 0x021C59E8 _0202F0D8: .word 0x00000CC4 thumb_func_start FUN_0202F0DC FUN_0202F0DC: ; 0x0202F0DC push {r4-r6, lr} mov r5, #0x0 add r6, r0, #0x0 add r4, r5, #0x0 _0202F0E4: add r0, r4, #0x0 bl FUN_0202EF44 cmp r0, #0x0 beq _0202F0F8 ldrb r1, [r0, #0x4] cmp r1, r6 bne _0202F0F8 ldrb r0, [r0, #0x6] add r5, r5, r0 _0202F0F8: add r4, r4, #0x1 cmp r4, #0x10 blt _0202F0E4 add r0, r5, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0202F104 FUN_0202F104: ; 0x0202F104 ldr r3, _0202F108 ; =FUN_0202D2D0 bx r3 .balign 4 _0202F108: .word FUN_0202D2D0 thumb_func_start FUN_0202F10C FUN_0202F10C: ; 0x0202F10C push {r3, lr} ldr r1, _0202F120 ; =0x021C59E8 mov r2, #0x54 ldr r1, [r1, #0x8] blx MI_CpuCopy8 bl FUN_0202F0B8 pop {r3, pc} nop _0202F120: .word 0x021C59E8 thumb_func_start FUN_0202F124 FUN_0202F124: ; 0x0202F124 ldr r1, _0202F148 ; =0x021C59E8 ldr r3, [r1, #0x8] cmp r3, #0x0 beq _0202F144 lsl r1, r0, #0x1 add r2, r3, r1 ldr r1, _0202F14C ; =0x00000C84 ldrh r1, [r2, r1] cmp r1, #0x0 beq _0202F144 mov r1, #0xc0 add r3, #0xa4 mul r1, r0 add r0, r3, r1 add r0, #0x8 bx lr _0202F144: mov r0, #0x0 bx lr .balign 4 _0202F148: .word 0x021C59E8 _0202F14C: .word 0x00000C84 thumb_func_start FUN_0202F150 FUN_0202F150: ; 0x0202F150 push {r4-r6, lr} add r6, r1, #0x0 mov r4, #0x0 ldr r1, _0202F2BC ; =0x021C59F4 cmp r0, #0x0 strb r4, [r1, #0x0] beq _0202F25C bl FUN_02033534 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_0202D858 add r5, r0, #0x1 ldr r0, _0202F2BC ; =0x021C59F4 ldr r0, [r0, #0x4] cmp r0, #0x0 beq _0202F178 mov r0, #0x1 pop {r4-r6, pc} _0202F178: mov r0, #0xf bl FUN_02031480 ldr r1, _0202F2C0 ; =0x0000068C mov r0, #0xf bl FUN_02016998 ldr r1, _0202F2BC ; =0x021C59F4 ldr r2, _0202F2C0 ; =0x0000068C str r0, [r1, #0x4] add r1, r4, #0x0 blx MI_CpuFill8 ldr r2, _0202F2BC ; =0x021C59F4 ldr r1, _0202F2C4 ; =0x00000658 ldr r0, [r2, #0x4] add r6, #0x40 str r6, [r0, r1] add r0, r1, #0x0 ldr r3, [r2, #0x4] add r6, r4, #0x0 add r0, #0x25 strb r6, [r3, r0] add r0, r1, #0x0 ldr r3, [r2, #0x4] mov r6, #0x1b add r0, #0x26 strb r6, [r3, r0] ldr r2, [r2, #0x4] mov r0, #0xf ldr r1, [r2, r1] lsl r1, r1, #0x1 bl FUN_02016998 ldr r2, _0202F2BC ; =0x021C59F4 ldr r1, _0202F2C8 ; =0x0000045C ldr r3, [r2, #0x4] str r0, [r3, r1] ldr r2, [r2, #0x4] ldr r1, _0202F2C4 ; =0x00000658 mov r0, #0xf ldr r1, [r2, r1] bl FUN_02016998 ldr r2, _0202F2BC ; =0x021C59F4 mov r1, #0x46 ldr r3, [r2, #0x4] lsl r1, r1, #0x4 str r0, [r3, r1] ldr r2, [r2, #0x4] ldr r1, _0202F2C4 ; =0x00000658 mov r0, #0xf ldr r1, [r2, r1] mul r1, r5 bl FUN_02016998 ldr r2, _0202F2BC ; =0x021C59F4 ldr r1, _0202F2CC ; =0x00000458 ldr r3, [r2, #0x4] str r0, [r3, r1] ldr r2, [r2, #0x4] ldr r1, _0202F2C4 ; =0x00000658 mov r0, #0xf ldr r1, [r2, r1] mul r1, r5 bl FUN_02016998 ldr r1, _0202F2BC ; =0x021C59F4 ldr r2, [r1, #0x4] ldr r1, _0202F2D0 ; =0x00000454 str r0, [r2, r1] bl FUN_02033534 cmp r0, #0xa ldr r2, _0202F2D4 ; =0x0000054C bne _0202F236 ldr r0, _0202F2BC ; =0x021C59F4 mov r1, #0x64 ldr r3, [r0, #0x4] add r0, r3, r2 sub r2, #0xe8 add r2, r3, r2 bl FUN_0202D7D8 ldr r0, _0202F2BC ; =0x021C59F4 mov r1, #0x32 ldr r3, [r0, #0x4] ldr r2, _0202F2D8 ; =0x0000056C lsl r1, r1, #0x4 add r0, r3, r2 sub r2, #0x90 add r2, r3, r2 bl FUN_0202D7D8 b _0202F268 _0202F236: ldr r0, _0202F2BC ; =0x021C59F4 mov r1, #0x14 ldr r3, [r0, #0x4] add r0, r3, r2 sub r2, #0xe8 add r2, r3, r2 bl FUN_0202D7D8 ldr r0, _0202F2BC ; =0x021C59F4 add r1, r6, #0x0 ldr r3, [r0, #0x4] ldr r2, _0202F2D8 ; =0x0000056C add r1, #0xfd add r0, r3, r2 sub r2, #0x90 add r2, r3, r2 bl FUN_0202D7D8 b _0202F268 _0202F25C: ldr r0, [r1, #0x4] mov r4, #0x1 cmp r0, #0x0 bne _0202F268 bl ErrorHandling _0202F268: ldr r2, _0202F2BC ; =0x021C59F4 ldr r1, _0202F2DC ; =0x0000065C ldr r3, [r2, #0x4] mov r0, #0x0 strh r0, [r3, r1] mov r5, #0xff add r1, #0x1b _0202F276: ldr r3, [r2, #0x4] add r3, r3, r0 add r0, r0, #0x1 strb r5, [r3, r1] cmp r0, #0x4 blt _0202F276 cmp r4, #0x0 bne _0202F28A bl FUN_0202F2F0 _0202F28A: ldr r0, _0202F2BC ; =0x021C59F4 ldr r1, [r0, #0x4] ldr r0, _0202F2E0 ; =0x000005F8 add r0, r1, r0 bl FUN_020312BC cmp r4, #0x0 bne _0202F2AC mov r1, #0x0 ldr r0, _0202F2E4 ; =FUN_0202FB20 add r2, r1, #0x0 bl FUN_0200CA60 ldr r1, _0202F2BC ; =0x021C59F4 ldr r2, [r1, #0x4] ldr r1, _0202F2E8 ; =0x00000548 str r0, [r2, r1] _0202F2AC: ldr r0, _0202F2BC ; =0x021C59F4 mov r2, #0x0 ldr r1, [r0, #0x4] ldr r0, _0202F2EC ; =0x00000687 strb r2, [r1, r0] mov r0, #0x1 pop {r4-r6, pc} nop _0202F2BC: .word 0x021C59F4 _0202F2C0: .word 0x0000068C _0202F2C4: .word 0x00000658 _0202F2C8: .word 0x0000045C _0202F2CC: .word 0x00000458 _0202F2D0: .word 0x00000454 _0202F2D4: .word 0x0000054C _0202F2D8: .word 0x0000056C _0202F2DC: .word 0x0000065C _0202F2E0: .word 0x000005F8 _0202F2E4: .word FUN_0202FB20 _0202F2E8: .word 0x00000548 _0202F2EC: .word 0x00000687 thumb_func_start FUN_0202F2F0 FUN_0202F2F0: ; 0x0202F2F0 push {r3-r7, lr} ldr r3, _0202F54C ; =0x021C59F4 ldr r2, _0202F550 ; =0x0000062C ldr r1, [r3, #0x4] mov r0, #0x0 strb r0, [r1, r2] ldr r4, [r3, #0x4] add r1, r2, #0x1 strb r0, [r4, r1] add r1, r2, #0x0 ldr r4, [r3, #0x4] add r1, #0x53 strb r0, [r4, r1] ldr r1, [r3, #0x4] add r2, #0x54 strb r0, [r1, r2] bl FUN_02033534 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_0202D858 add r6, r0, #0x1 ldr r0, _0202F54C ; =0x021C59F4 ldr r2, _0202F554 ; =0x00000658 ldr r3, [r0, #0x4] ldr r0, _0202F558 ; =0x00000458 mov r1, #0x0 ldr r0, [r3, r0] ldr r3, [r3, r2] add r2, r3, #0x0 mul r2, r6 blx MI_CpuFill8 mov r4, #0x0 cmp r6, #0x0 ble _0202F360 ldr r7, _0202F54C ; =0x021C59F4 add r5, r4, #0x0 _0202F33E: ldr r3, [r7, #0x4] ldr r0, _0202F554 ; =0x00000658 ldr r1, _0202F558 ; =0x00000458 ldr r2, [r3, r0] ldr r0, _0202F55C ; =0x000004E8 add r0, r3, r0 ldr r3, [r3, r1] add r1, r4, #0x0 mul r1, r2 add r0, r0, r5 add r1, r3, r1 bl FUN_0202D394 add r4, r4, #0x1 add r5, #0xc cmp r4, r6 blt _0202F33E _0202F360: ldr r0, _0202F54C ; =0x021C59F4 ldr r2, _0202F554 ; =0x00000658 ldr r3, [r0, #0x4] ldr r0, _0202F560 ; =0x00000454 mov r1, #0x0 ldr r0, [r3, r0] ldr r3, [r3, r2] add r2, r3, #0x0 mul r2, r6 blx MI_CpuFill8 mov r5, #0x0 cmp r6, #0x0 ble _0202F3A2 ldr r7, _0202F54C ; =0x021C59F4 add r4, r5, #0x0 _0202F380: ldr r3, [r7, #0x4] ldr r0, _0202F554 ; =0x00000658 ldr r1, _0202F560 ; =0x00000454 ldr r2, [r3, r0] ldr r0, _0202F564 ; =0x0000047C add r0, r3, r0 ldr r3, [r3, r1] add r1, r5, #0x0 mul r1, r2 add r0, r0, r4 add r1, r3, r1 bl FUN_0202D394 add r5, r5, #0x1 add r4, #0xc cmp r5, r6 blt _0202F380 _0202F3A2: ldr r0, _0202F54C ; =0x021C59F4 mov r2, #0x6 ldr r1, [r0, #0x4] mov r0, #0xb5 lsl r0, r0, #0x2 add r0, r1, r0 mov r1, #0x0 lsl r2, r2, #0x6 blx MI_CpuFill8 ldr r0, _0202F54C ; =0x021C59F4 mov r1, #0xb5 ldr r2, [r0, #0x4] ldr r0, _0202F568 ; =0x000004DC lsl r1, r1, #0x2 add r0, r2, r0 add r1, r2, r1 mov r2, #0x6 lsl r2, r2, #0x6 bl FUN_0202D394 mov r0, #0xee add r2, r0, #0x0 mov r3, #0x85 ldr r4, _0202F54C ; =0x021C59F4 mov r1, #0x0 add r2, #0x66 lsl r3, r3, #0x2 _0202F3DA: ldr r5, [r4, #0x4] add r5, r5, r1 strb r0, [r5, r2] ldr r5, [r4, #0x4] add r5, r5, r1 add r1, r1, #0x1 strb r0, [r5, r3] cmp r1, #0xc0 blt _0202F3DA ldr r0, _0202F54C ; =0x021C59F4 mov r2, #0x42 ldr r0, [r0, #0x4] mov r1, #0x0 add r0, #0x4c lsl r2, r2, #0x2 blx MI_CpuFill8 ldr r0, _0202F54C ; =0x021C59F4 mov r2, #0x42 ldr r1, [r0, #0x4] ldr r0, _0202F56C ; =0x00000464 lsl r2, r2, #0x2 add r0, r1, r0 add r1, #0x4c bl FUN_0202D394 ldr r1, _0202F54C ; =0x021C59F4 mov r2, #0xff ldr r0, [r1, #0x4] mov r3, #0x1 strb r2, [r0, #0x0] ldr r0, [r1, #0x4] add r0, #0x26 strb r2, [r0, #0x0] mov r2, #0xee _0202F420: ldr r0, [r1, #0x4] strb r2, [r0, r3] ldr r0, [r1, #0x4] add r0, r0, r3 add r0, #0x26 add r3, r3, #0x1 strb r2, [r0, #0x0] cmp r3, #0x26 blt _0202F420 ldr r0, _0202F54C ; =0x021C59F4 ldr r2, _0202F554 ; =0x00000658 ldr r3, [r0, #0x4] ldr r0, _0202F570 ; =0x0000045C ldr r2, [r3, r2] ldr r0, [r3, r0] mov r1, #0x0 lsl r2, r2, #0x1 blx MI_CpuFill8 ldr r0, _0202F54C ; =0x021C59F4 mov r1, #0x47 ldr r3, [r0, #0x4] ldr r2, _0202F554 ; =0x00000658 lsl r1, r1, #0x4 add r0, r3, r1 sub r1, #0x14 ldr r2, [r3, r2] ldr r1, [r3, r1] lsl r2, r2, #0x1 bl FUN_0202D394 mov r2, #0x0 ldr r0, _0202F54C ; =0x021C59F4 ldr r1, _0202F574 ; =0x00000684 ldr r3, [r0, #0x4] mov r12, r2 strb r2, [r3, r1] ldr r3, [r0, #0x4] add r1, r1, #0x1 strb r2, [r3, r1] add r1, r2, #0x0 add r7, r2, #0x0 add r6, r2, #0x0 _0202F476: ldr r3, [r0, #0x4] add r4, r3, r2 ldr r3, _0202F578 ; =0x0000065F strb r6, [r4, r3] ldr r3, [r0, #0x4] ldr r4, _0202F57C ; =0x00000667 add r5, r3, r2 mov r3, #0x1 strb r3, [r5, r4] ldr r3, [r0, #0x4] add r4, #0x8 add r5, r3, r2 mov r3, #0x1 strb r3, [r5, r4] ldr r4, [r0, #0x4] mov r3, r12 add r4, r4, r3 mov r3, #0x61 lsl r3, r3, #0x4 strh r6, [r4, r3] ldr r3, [r0, #0x4] mov r4, #0xee add r5, r3, r1 ldr r3, _0202F580 ; =0x00000596 add r2, r2, #0x1 strb r4, [r5, r3] ldr r3, [r0, #0x4] ldr r4, _0202F584 ; =0x0000FFFF add r5, r3, r1 ldr r3, _0202F588 ; =0x00000594 strh r4, [r5, r3] ldr r3, [r0, #0x4] add r4, r3, r1 mov r3, #0x59 lsl r3, r3, #0x4 str r6, [r4, r3] ldr r3, [r0, #0x4] add r4, r3, r1 ldr r3, _0202F58C ; =0x0000058C add r1, #0xc str r6, [r4, r3] ldr r3, [r0, #0x4] add r4, r3, r7 ldr r3, _0202F590 ; =0x00000638 add r7, r7, #0x4 str r6, [r4, r3] mov r3, r12 add r3, r3, #0x2 mov r12, r3 cmp r2, #0x8 blt _0202F476 ldr r1, _0202F54C ; =0x021C59F4 ldr r0, _0202F594 ; =0x00000634 ldr r2, [r1, #0x4] sub r3, r0, #0x4 str r6, [r2, r0] ldr r4, [r1, #0x4] mov r2, #0x1 str r2, [r4, r3] add r3, r0, #0x0 ldr r4, [r1, #0x4] sub r3, #0x3e mov r2, #0xee strb r2, [r4, r3] add r3, r0, #0x0 ldr r4, [r1, #0x4] ldr r2, _0202F584 ; =0x0000FFFF sub r3, #0x40 strh r2, [r4, r3] add r2, r0, #0x0 ldr r3, [r1, #0x4] sub r2, #0x44 str r6, [r3, r2] add r2, r0, #0x0 ldr r3, [r1, #0x4] sub r2, #0x48 str r6, [r3, r2] add r3, r0, #0x0 ldr r4, [r1, #0x4] add r3, #0x4e mov r2, #0x1 strb r2, [r4, r3] add r3, r0, #0x0 ldr r4, [r1, #0x4] add r3, #0x4f strb r2, [r4, r3] ldr r2, _0202F598 ; =0x02105D58 mov r3, #0x4 strb r3, [r2, #0x1] strb r3, [r2, #0x0] ldr r1, [r1, #0x4] sub r0, #0xe8 add r0, r1, r0 bl FUN_0202D804 ldr r0, _0202F54C ; =0x021C59F4 ldr r1, [r0, #0x4] ldr r0, _0202F59C ; =0x0000056C add r0, r1, r0 bl FUN_0202D804 ldr r0, _0202F54C ; =0x021C59F4 mov r2, #0x0 ldr r1, [r0, #0x4] ldr r0, _0202F5A0 ; =0x00000688 strb r2, [r1, r0] pop {r3-r7, pc} .balign 4 _0202F54C: .word 0x021C59F4 _0202F550: .word 0x0000062C _0202F554: .word 0x00000658 _0202F558: .word 0x00000458 _0202F55C: .word 0x000004E8 _0202F560: .word 0x00000454 _0202F564: .word 0x0000047C _0202F568: .word 0x000004DC _0202F56C: .word 0x00000464 _0202F570: .word 0x0000045C _0202F574: .word 0x00000684 _0202F578: .word 0x0000065F _0202F57C: .word 0x00000667 _0202F580: .word 0x00000596 _0202F584: .word 0x0000FFFF _0202F588: .word 0x00000594 _0202F58C: .word 0x0000058C _0202F590: .word 0x00000638 _0202F594: .word 0x00000634 _0202F598: .word 0x02105D58 _0202F59C: .word 0x0000056C _0202F5A0: .word 0x00000688 thumb_func_start FUN_0202F5A4 FUN_0202F5A4: ; 0x0202F5A4 push {r3-r7, lr} ldr r1, _0202F7D4 ; =0x021C59F4 ldr r0, _0202F7D8 ; =0x0000062C ldr r2, [r1, #0x4] mov r3, #0x0 strb r3, [r2, r0] ldr r1, [r1, #0x4] add r0, r0, #0x1 strb r3, [r1, r0] bl FUN_02033534 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_0202D858 add r6, r0, #0x1 ldr r0, _0202F7D4 ; =0x021C59F4 ldr r2, _0202F7DC ; =0x00000658 ldr r3, [r0, #0x4] ldr r0, _0202F7E0 ; =0x00000458 mov r1, #0x0 ldr r0, [r3, r0] ldr r3, [r3, r2] add r2, r3, #0x0 mul r2, r6 blx MI_CpuFill8 mov r4, #0x0 cmp r6, #0x0 ble _0202F606 ldr r7, _0202F7D4 ; =0x021C59F4 add r5, r4, #0x0 _0202F5E4: ldr r3, [r7, #0x4] ldr r0, _0202F7DC ; =0x00000658 ldr r1, _0202F7E0 ; =0x00000458 ldr r2, [r3, r0] ldr r0, _0202F7E4 ; =0x000004E8 add r0, r3, r0 ldr r3, [r3, r1] add r1, r4, #0x0 mul r1, r2 add r0, r0, r5 add r1, r3, r1 bl FUN_0202D394 add r4, r4, #0x1 add r5, #0xc cmp r4, r6 blt _0202F5E4 _0202F606: ldr r0, _0202F7D4 ; =0x021C59F4 ldr r2, _0202F7DC ; =0x00000658 ldr r3, [r0, #0x4] ldr r0, _0202F7E8 ; =0x00000454 mov r1, #0x0 ldr r0, [r3, r0] ldr r3, [r3, r2] add r2, r3, #0x0 mul r2, r6 blx MI_CpuFill8 mov r5, #0x0 cmp r6, #0x0 ble _0202F648 ldr r7, _0202F7D4 ; =0x021C59F4 add r4, r5, #0x0 _0202F626: ldr r3, [r7, #0x4] ldr r0, _0202F7DC ; =0x00000658 ldr r1, _0202F7E8 ; =0x00000454 ldr r2, [r3, r0] ldr r0, _0202F7EC ; =0x0000047C add r0, r3, r0 ldr r3, [r3, r1] add r1, r5, #0x0 mul r1, r2 add r0, r0, r4 add r1, r3, r1 bl FUN_0202D394 add r5, r5, #0x1 add r4, #0xc cmp r5, r6 blt _0202F626 _0202F648: ldr r0, _0202F7D4 ; =0x021C59F4 mov r2, #0x6 ldr r1, [r0, #0x4] mov r0, #0xb5 lsl r0, r0, #0x2 add r0, r1, r0 mov r1, #0x0 lsl r2, r2, #0x6 blx MI_CpuFill8 ldr r0, _0202F7D4 ; =0x021C59F4 mov r1, #0xb5 ldr r2, [r0, #0x4] ldr r0, _0202F7F0 ; =0x000004DC lsl r1, r1, #0x2 add r0, r2, r0 add r1, r2, r1 mov r2, #0x6 lsl r2, r2, #0x6 bl FUN_0202D394 mov r0, #0xee add r2, r0, #0x0 mov r3, #0x85 ldr r4, _0202F7D4 ; =0x021C59F4 mov r1, #0x0 add r2, #0x66 lsl r3, r3, #0x2 _0202F680: ldr r5, [r4, #0x4] add r5, r5, r1 strb r0, [r5, r2] ldr r5, [r4, #0x4] add r5, r5, r1 add r1, r1, #0x1 strb r0, [r5, r3] cmp r1, #0xc0 blt _0202F680 ldr r0, _0202F7D4 ; =0x021C59F4 mov r2, #0x42 ldr r0, [r0, #0x4] mov r1, #0x0 add r0, #0x4c lsl r2, r2, #0x2 blx MI_CpuFill8 ldr r0, _0202F7D4 ; =0x021C59F4 mov r2, #0x42 ldr r1, [r0, #0x4] ldr r0, _0202F7F4 ; =0x00000464 lsl r2, r2, #0x2 add r0, r1, r0 add r1, #0x4c bl FUN_0202D394 ldr r1, _0202F7D4 ; =0x021C59F4 mov r2, #0xff ldr r0, [r1, #0x4] mov r3, #0x1 strb r2, [r0, #0x0] ldr r0, [r1, #0x4] add r0, #0x26 strb r2, [r0, #0x0] mov r2, #0xee _0202F6C6: ldr r0, [r1, #0x4] strb r2, [r0, r3] ldr r0, [r1, #0x4] add r0, r0, r3 add r0, #0x26 add r3, r3, #0x1 strb r2, [r0, #0x0] cmp r3, #0x26 blt _0202F6C6 ldr r0, _0202F7D4 ; =0x021C59F4 ldr r2, _0202F7DC ; =0x00000658 ldr r3, [r0, #0x4] ldr r0, _0202F7F8 ; =0x0000045C ldr r2, [r3, r2] ldr r0, [r3, r0] mov r1, #0x0 lsl r2, r2, #0x1 blx MI_CpuFill8 ldr r0, _0202F7D4 ; =0x021C59F4 mov r1, #0x47 ldr r3, [r0, #0x4] ldr r2, _0202F7DC ; =0x00000658 lsl r1, r1, #0x4 add r0, r3, r1 sub r1, #0x14 ldr r2, [r3, r2] ldr r1, [r3, r1] lsl r2, r2, #0x1 bl FUN_0202D394 ldr r0, _0202F7D4 ; =0x021C59F4 mov r3, #0x0 ldr r2, [r0, #0x4] ldr r1, _0202F7FC ; =0x00000684 add r7, r3, #0x0 strb r3, [r2, r1] ldr r2, [r0, #0x4] add r1, r1, #0x1 strb r3, [r2, r1] add r1, r3, #0x0 add r2, r3, #0x0 _0202F71A: ldr r4, [r0, #0x4] add r5, r4, r3 ldr r4, _0202F800 ; =0x0000065F strb r7, [r5, r4] ldr r4, [r0, #0x4] ldr r5, _0202F804 ; =0x00000667 add r6, r4, r3 mov r4, #0x1 strb r4, [r6, r5] ldr r4, [r0, #0x4] add r5, #0x8 add r6, r4, r3 mov r4, #0x1 strb r4, [r6, r5] ldr r4, [r0, #0x4] add r3, r3, #0x1 add r5, r4, r1 mov r4, #0x61 lsl r4, r4, #0x4 strh r7, [r5, r4] ldr r4, [r0, #0x4] ldr r5, _0202F808 ; =0x00000596 add r6, r4, r2 mov r4, #0xee strb r4, [r6, r5] ldr r4, [r0, #0x4] ldr r5, _0202F80C ; =0x0000FFFF add r6, r4, r2 ldr r4, _0202F810 ; =0x00000594 add r1, r1, #0x2 strh r5, [r6, r4] ldr r4, [r0, #0x4] add r5, r4, r2 mov r4, #0x59 lsl r4, r4, #0x4 str r7, [r5, r4] ldr r4, [r0, #0x4] add r5, r4, r2 ldr r4, _0202F814 ; =0x0000058C add r2, #0xc str r7, [r5, r4] cmp r3, #0x8 blt _0202F71A ldr r1, _0202F7D4 ; =0x021C59F4 add r0, r4, #0x0 ldr r3, [r1, #0x4] add r0, #0xa4 mov r2, #0x1 str r2, [r3, r0] add r3, r0, #0x0 ldr r4, [r1, #0x4] sub r3, #0x3a mov r2, #0xee strb r2, [r4, r3] add r3, r0, #0x0 ldr r4, [r1, #0x4] ldr r2, _0202F80C ; =0x0000FFFF sub r3, #0x3c strh r2, [r4, r3] add r2, r0, #0x0 ldr r3, [r1, #0x4] sub r2, #0x40 str r7, [r3, r2] add r2, r0, #0x0 ldr r3, [r1, #0x4] sub r2, #0x44 str r7, [r3, r2] add r3, r0, #0x0 ldr r4, [r1, #0x4] add r3, #0x52 mov r2, #0x1 strb r2, [r4, r3] add r3, r0, #0x0 ldr r4, [r1, #0x4] add r3, #0x53 strb r2, [r4, r3] ldr r1, [r1, #0x4] sub r0, #0xe4 add r0, r1, r0 bl FUN_0202D804 ldr r0, _0202F7D4 ; =0x021C59F4 ldr r1, [r0, #0x4] ldr r0, _0202F818 ; =0x0000056C add r0, r1, r0 bl FUN_0202D804 ldr r0, _0202F7D4 ; =0x021C59F4 mov r2, #0x0 ldr r1, [r0, #0x4] ldr r0, _0202F81C ; =0x00000688 strb r2, [r1, r0] pop {r3-r7, pc} .balign 4 _0202F7D4: .word 0x021C59F4 _0202F7D8: .word 0x0000062C _0202F7DC: .word 0x00000658 _0202F7E0: .word 0x00000458 _0202F7E4: .word 0x000004E8 _0202F7E8: .word 0x00000454 _0202F7EC: .word 0x0000047C _0202F7F0: .word 0x000004DC _0202F7F4: .word 0x00000464 _0202F7F8: .word 0x0000045C _0202F7FC: .word 0x00000684 _0202F800: .word 0x0000065F _0202F804: .word 0x00000667 _0202F808: .word 0x00000596 _0202F80C: .word 0x0000FFFF _0202F810: .word 0x00000594 _0202F814: .word 0x0000058C _0202F818: .word 0x0000056C _0202F81C: .word 0x00000688 thumb_func_start FUN_0202F820 FUN_0202F820: ; 0x0202F820 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, _0202F8B8 ; =0x021C59F4 ldr r3, _0202F8BC ; =0x0000065F ldr r1, [r0, #0x4] mov r2, #0x0 add r1, r1, r5 strb r2, [r1, r3] ldr r4, [r0, #0x4] mov r1, #0x1 add r6, r4, r5 add r4, r3, #0x0 add r4, #0x8 strb r1, [r6, r4] ldr r6, [r0, #0x4] lsl r4, r5, #0x2 add r6, r6, r4 add r4, r3, #0x0 sub r4, #0x27 str r2, [r6, r4] ldr r2, [r0, #0x4] add r4, r2, r5 add r2, r3, #0x0 add r2, #0x10 strb r1, [r4, r2] ldr r1, [r0, #0x4] sub r0, r3, #0x7 ldr r2, [r1, r0] ldr r3, _0202F8C0 ; =0x0000047C mov r0, #0xc add r4, r5, #0x0 mul r4, r0 add r0, r1, r3 sub r3, #0x28 ldr r3, [r1, r3] add r1, r5, #0x0 mul r1, r2 add r0, r0, r4 add r1, r3, r1 bl FUN_0202D394 ldr r0, _0202F8B8 ; =0x021C59F4 ldr r3, _0202F8C4 ; =0x000004E8 ldr r1, [r0, #0x4] ldr r0, _0202F8C8 ; =0x00000658 ldr r2, [r1, r0] add r0, r1, r3 sub r3, #0x90 ldr r3, [r1, r3] add r1, r5, #0x0 mul r1, r2 add r0, r0, r4 add r1, r3, r1 bl FUN_0202D394 ldr r3, _0202F8B8 ; =0x021C59F4 ldr r2, _0202F8CC ; =0x00000596 ldr r0, [r3, #0x4] mov r1, #0xee add r0, r0, r4 strb r1, [r0, r2] ldr r0, [r3, #0x4] ldr r5, _0202F8D0 ; =0x0000FFFF add r1, r0, r4 sub r0, r2, #0x2 strh r5, [r1, r0] ldr r1, [r3, #0x4] mov r0, #0x0 add r5, r1, r4 sub r1, r2, #0x6 str r0, [r5, r1] ldr r1, [r3, #0x4] sub r2, #0xa add r1, r1, r4 str r0, [r1, r2] pop {r4-r6, pc} .balign 4 _0202F8B8: .word 0x021C59F4 _0202F8BC: .word 0x0000065F _0202F8C0: .word 0x0000047C _0202F8C4: .word 0x000004E8 _0202F8C8: .word 0x00000658 _0202F8CC: .word 0x00000596 _0202F8D0: .word 0x0000FFFF thumb_func_start FUN_0202F8D4 FUN_0202F8D4: ; 0x0202F8D4 push {r4-r6, lr} ldr r4, _0202F908 ; =0x021C59F4 ldr r6, _0202F90C ; =0x00000667 mov r5, #0x1 _0202F8DC: lsl r0, r5, #0x10 lsr r0, r0, #0x10 bl FUN_02030E7C cmp r0, #0x0 bne _0202F900 ldr r0, [r4, #0x4] add r0, r0, r5 ldrb r0, [r0, r6] cmp r0, #0x0 bne _0202F900 bl FUN_02031280 cmp r0, #0x0 bne _0202F900 add r0, r5, #0x0 bl FUN_0202F820 _0202F900: add r5, r5, #0x1 cmp r5, #0x8 blt _0202F8DC pop {r4-r6, pc} .balign 4 _0202F908: .word 0x021C59F4 _0202F90C: .word 0x00000667 thumb_func_start FUN_0202F910 FUN_0202F910: ; 0x0202F910 ldr r3, _0202F914 ; =FUN_0202F820 bx r3 .balign 4 _0202F914: .word FUN_0202F820 thumb_func_start FUN_0202F918 FUN_0202F918: ; 0x0202F918 push {r3-r7, lr} add r5, r0, #0x0 add r6, r1, #0x0 add r7, r2, #0x0 str r3, [sp, #0x0] mov r4, #0x1 bl FUN_02033534 cmp r0, #0x13 bge _0202F93E ldr r2, [sp, #0x0] add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_0202E5F8 add r4, r0, #0x0 ldr r0, _0202F94C ; =FUN_0202F910 bl FUN_0202D330 _0202F93E: add r0, r5, #0x0 add r1, r7, #0x0 bl FUN_0202F150 add r0, r4, #0x0 pop {r3-r7, pc} nop _0202F94C: .word FUN_0202F910 thumb_func_start FUN_0202F950 FUN_0202F950: ; 0x0202F950 push {r3-r7, lr} add r5, r0, #0x0 add r6, r1, #0x0 add r7, r2, #0x0 mov r4, #0x1 bl FUN_02033534 cmp r0, #0x13 bge _0202F96C add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_0202E66C add r4, r0, #0x0 _0202F96C: add r0, r5, #0x0 add r1, r7, #0x0 bl FUN_0202F150 ldr r0, _0202F980 ; =0x02105D58 mov r1, #0x4 strb r1, [r0, #0x0] add r0, r4, #0x0 pop {r3-r7, pc} nop _0202F980: .word 0x02105D58 thumb_func_start FUN_0202F984 FUN_0202F984: ; 0x0202F984 push {r4, lr} mov r4, #0x0 bl FUN_02031190 cmp r0, #0x0 bne _0202F99A ldr r0, _0202F9D4 ; =0x02105D58 ldrb r0, [r0, #0x1] cmp r0, #0x4 beq _0202F9A2 pop {r4, pc} _0202F99A: ldr r0, _0202F9D4 ; =0x02105D58 ldrb r0, [r0, #0x0] cmp r0, #0x4 bne _0202F9D0 _0202F9A2: ldr r0, _0202F9D8 ; =0x021C59F4 ldr r2, [r0, #0x4] ldr r0, _0202F9DC ; =0x0000067D ldrb r1, [r2, r0] cmp r1, #0x2 bne _0202F9B4 mov r1, #0x0 strb r1, [r2, r0] mov r4, #0x1 _0202F9B4: ldr r0, _0202F9D8 ; =0x021C59F4 ldr r2, [r0, #0x4] ldr r0, _0202F9DC ; =0x0000067D ldrb r1, [r2, r0] cmp r1, #0x3 bne _0202F9C4 mov r4, #0x1 strb r4, [r2, r0] _0202F9C4: cmp r4, #0x0 beq _0202F9CC bl FUN_0202F5A4 _0202F9CC: bl FUN_02031088 _0202F9D0: pop {r4, pc} nop _0202F9D4: .word 0x02105D58 _0202F9D8: .word 0x021C59F4 _0202F9DC: .word 0x0000067D thumb_func_start FUN_0202F9E0 FUN_0202F9E0: ; 0x0202F9E0 ldr r1, _0202FA08 ; =0x021C59F4 ldr r3, [r1, #0x4] ldr r1, _0202FA0C ; =0x0000067D ldrb r2, [r3, r1] cmp r2, #0x0 bne _0202F9F6 cmp r0, #0x1 bne _0202F9F6 mov r0, #0x3 strb r0, [r3, r1] bx lr _0202F9F6: cmp r2, #0x1 bne _0202FA04 cmp r0, #0x0 bne _0202FA04 ldr r0, _0202FA0C ; =0x0000067D mov r1, #0x2 strb r1, [r3, r0] _0202FA04: bx lr nop _0202FA08: .word 0x021C59F4 _0202FA0C: .word 0x0000067D thumb_func_start FUN_0202FA10 FUN_0202FA10: ; 0x0202FA10 ldr r3, _0202FA18 ; =FUN_0202F9E0 mov r0, #0x1 bx r3 nop _0202FA18: .word FUN_0202F9E0 thumb_func_start FUN_0202FA1C FUN_0202FA1C: ; 0x0202FA1C ldr r3, _0202FA24 ; =FUN_0202F9E0 mov r0, #0x0 bx r3 nop _0202FA24: .word FUN_0202F9E0 thumb_func_start FUN_0202FA28 FUN_0202FA28: ; 0x0202FA28 ldr r0, _0202FA40 ; =0x021C59F4 ldr r1, [r0, #0x4] ldr r0, _0202FA44 ; =0x0000067D ldrb r0, [r1, r0] cmp r0, #0x2 bne _0202FA38 mov r0, #0x1 bx lr _0202FA38: cmp r0, #0x3 bne _0202FA3E mov r0, #0x0 _0202FA3E: bx lr .balign 4 _0202FA40: .word 0x021C59F4 _0202FA44: .word 0x0000067D thumb_func_start FUN_0202FA48 FUN_0202FA48: ; 0x0202FA48 push {r3, lr} bl FUN_0202FA28 cmp r0, #0x1 bne _0202FA56 mov r0, #0x1 pop {r3, pc} _0202FA56: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0202FA5C FUN_0202FA5C: ; 0x0202FA5C push {r4, lr} ldr r0, _0202FB00 ; =0x021C59F4 mov r4, #0x0 ldr r0, [r0, #0x4] cmp r0, #0x0 beq _0202FA82 bl FUN_02033534 cmp r0, #0x13 blt _0202FA78 bl FUN_021D83C0 mov r4, #0x1 b _0202FA82 _0202FA78: bl FUN_0202E784 cmp r0, #0x0 beq _0202FA82 mov r4, #0x1 _0202FA82: cmp r4, #0x0 beq _0202FAFE bl FUN_020314D0 bl FUN_0202DBA4 ldr r0, _0202FB00 ; =0x021C59F4 mov r1, #0x0 strb r1, [r0, #0x0] ldr r1, [r0, #0x4] ldr r0, _0202FB04 ; =0x00000548 ldr r0, [r1, r0] bl FUN_0200CAB4 ldr r1, _0202FB00 ; =0x021C59F4 ldr r0, _0202FB04 ; =0x00000548 ldr r2, [r1, #0x4] mov r3, #0x0 str r3, [r2, r0] ldr r1, [r1, #0x4] sub r0, #0xec ldr r0, [r1, r0] bl FUN_02016A18 ldr r0, _0202FB00 ; =0x021C59F4 ldr r1, [r0, #0x4] mov r0, #0x46 lsl r0, r0, #0x4 ldr r0, [r1, r0] bl FUN_02016A18 ldr r0, _0202FB00 ; =0x021C59F4 ldr r1, [r0, #0x4] ldr r0, _0202FB08 ; =0x00000458 ldr r0, [r1, r0] bl FUN_02016A18 ldr r0, _0202FB00 ; =0x021C59F4 ldr r1, [r0, #0x4] ldr r0, _0202FB0C ; =0x00000454 ldr r0, [r1, r0] bl FUN_02016A18 ldr r0, _0202FB00 ; =0x021C59F4 ldr r1, [r0, #0x4] ldr r0, _0202FB10 ; =0x0000056C add r0, r1, r0 bl FUN_0202D824 ldr r0, _0202FB00 ; =0x021C59F4 ldr r1, [r0, #0x4] ldr r0, _0202FB14 ; =0x0000054C add r0, r1, r0 bl FUN_0202D824 ldr r0, _0202FB00 ; =0x021C59F4 ldr r0, [r0, #0x4] bl FUN_02016A18 ldr r0, _0202FB00 ; =0x021C59F4 mov r1, #0x0 str r1, [r0, #0x4] _0202FAFE: pop {r4, pc} .balign 4 _0202FB00: .word 0x021C59F4 _0202FB04: .word 0x00000548 _0202FB08: .word 0x00000458 _0202FB0C: .word 0x00000454 _0202FB10: .word 0x0000056C _0202FB14: .word 0x0000054C thumb_func_start FUN_0202FB18 FUN_0202FB18: ; 0x0202FB18 ldr r3, _0202FB1C ; =FUN_0202E9E8 bx r3 .balign 4 _0202FB1C: .word FUN_0202E9E8 thumb_func_start FUN_0202FB20 FUN_0202FB20: ; 0x0202FB20 push {r3, lr} ldr r0, _0202FB54 ; =0x021C59F4 ldrb r0, [r0, #0x0] cmp r0, #0x0 beq _0202FB52 bl FUN_0203050C bl FUN_02031190 cmp r0, #0x0 bne _0202FB40 mov r0, #0x0 bl FUN_02030E7C cmp r0, #0x0 bne _0202FB48 _0202FB40: bl FUN_02031280 cmp r0, #0x0 beq _0202FB4C _0202FB48: bl FUN_0202FEEC _0202FB4C: ldr r0, _0202FB54 ; =0x021C59F4 mov r1, #0x0 strb r1, [r0, #0x0] _0202FB52: pop {r3, pc} .balign 4 _0202FB54: .word 0x021C59F4 thumb_func_start FUN_0202FB58 FUN_0202FB58: ; 0x0202FB58 push {r3, lr} bl FUN_0202F03C cmp r0, #0x0 beq _0202FB7C bl FUN_02031190 cmp r0, #0x0 bne _0202FB78 bl FUN_0202EE24 cmp r0, #0x0 bne _0202FB7C bl FUN_0202FA5C pop {r3, pc} _0202FB78: bl FUN_0202FA5C _0202FB7C: pop {r3, pc} .balign 4 thumb_func_start FUN_0202FB80 FUN_0202FB80: ; 0x0202FB80 push {r4, lr} bl FUN_02031CDC ldr r1, _0202FC48 ; =0x021C59F4 ldr r2, [r1, #0x4] cmp r2, #0x0 beq _0202FC34 ldr r0, _0202FC4C ; =0x0000068A ldrb r0, [r2, r0] cmp r0, #0x0 bne _0202FC16 mov r0, #0x0 strb r0, [r1, #0x0] bl FUN_0202F984 ldr r0, _0202FC48 ; =0x021C59F4 ldr r1, _0202FC50 ; =0x021C48B8 ldr r0, [r0, #0x4] ldr r2, _0202FC54 ; =0x00000628 ldr r3, [r1, #0x44] ldr r1, _0202FC58 ; =0x00007FFF ldrh r4, [r0, r2] and r1, r3 orr r1, r4 strh r1, [r0, r2] bl FUN_02030674 bl FUN_0202FCCC ldr r0, _0202FC48 ; =0x021C59F4 ldr r1, _0202FC54 ; =0x00000628 ldr r3, [r0, #0x4] mov r0, #0x2 ldrh r2, [r3, r1] lsl r0, r0, #0xe and r0, r2 strh r0, [r3, r1] bl FUN_0202FA28 cmp r0, #0x0 bne _0202FBD6 bl FUN_02030DA4 _0202FBD6: bl FUN_02031190 cmp r0, #0x0 bne _0202FBE8 mov r0, #0x0 bl FUN_02030E7C cmp r0, #0x0 bne _0202FBF0 _0202FBE8: bl FUN_02031280 cmp r0, #0x0 beq _0202FBF4 _0202FBF0: bl FUN_02030074 _0202FBF4: bl FUN_02031190 cmp r0, #0x0 beq _0202FC0C bl FUN_0202FA28 cmp r0, #0x1 beq _0202FC0C bl FUN_02031280 cmp r0, #0x0 beq _0202FC10 _0202FC0C: bl FUN_02030DFC _0202FC10: ldr r0, _0202FC48 ; =0x021C59F4 mov r1, #0x1 strb r1, [r0, #0x0] _0202FC16: ldr r0, _0202FC48 ; =0x021C59F4 ldr r1, [r0, #0x4] ldr r0, _0202FC5C ; =0x0000065C ldrh r0, [r1, r0] bl FUN_0202ED70 bl FUN_02031190 cmp r0, #0x0 bne _0202FC2E bl FUN_0202F8D4 _0202FC2E: bl FUN_0202FB58 b _0202FC3A _0202FC34: mov r0, #0x0 bl FUN_0202ED70 _0202FC3A: mov r0, #0x0 bl FUN_020335F4 bl FUN_020315A4 mov r0, #0x1 pop {r4, pc} .balign 4 _0202FC48: .word 0x021C59F4 _0202FC4C: .word 0x0000068A _0202FC50: .word 0x021C48B8 _0202FC54: .word 0x00000628 _0202FC58: .word 0x00007FFF _0202FC5C: .word 0x0000065C thumb_func_start FUN_0202FC60 FUN_0202FC60: ; 0x0202FC60 push {r4, lr} ldr r0, _0202FC7C ; =0x021C59F4 mov r1, #0x0 ldrb r4, [r0, #0x0] strb r1, [r0, #0x0] ldr r0, [r0, #0x4] cmp r0, #0x0 beq _0202FC74 bl FUN_0202F2F0 _0202FC74: ldr r0, _0202FC7C ; =0x021C59F4 strb r4, [r0, #0x0] pop {r4, pc} nop _0202FC7C: .word 0x021C59F4 thumb_func_start FUN_0202FC80 FUN_0202FC80: ; 0x0202FC80 push {r4, lr} ldr r0, _0202FCA0 ; =0x021C59F4 mov r1, #0x0 ldrb r4, [r0, #0x0] strb r1, [r0, #0x0] ldr r2, [r0, #0x4] cmp r2, #0x0 beq _0202FC9A ldr r0, _0202FCA4 ; =0x0000067D mov r1, #0x1 strb r1, [r2, r0] bl FUN_0202F2F0 _0202FC9A: ldr r0, _0202FCA0 ; =0x021C59F4 strb r4, [r0, #0x0] pop {r4, pc} .balign 4 _0202FCA0: .word 0x021C59F4 _0202FCA4: .word 0x0000067D thumb_func_start FUN_0202FCA8 FUN_0202FCA8: ; 0x0202FCA8 push {r4, lr} ldr r0, _0202FCC8 ; =0x021C59F4 mov r1, #0x0 ldrb r4, [r0, #0x0] strb r1, [r0, #0x0] ldr r0, [r0, #0x4] cmp r0, #0x0 beq _0202FCC0 bl FUN_0202F2F0 bl FUN_0202E538 _0202FCC0: ldr r0, _0202FCC8 ; =0x021C59F4 strb r4, [r0, #0x0] pop {r4, pc} nop _0202FCC8: .word 0x021C59F4 thumb_func_start FUN_0202FCCC FUN_0202FCCC: ; 0x0202FCCC push {r3, lr} ldr r0, _0202FE14 ; =0x021C59F4 ldr r1, [r0, #0x4] ldr r0, _0202FE18 ; =0x00000683 ldrb r0, [r1, r0] cmp r0, #0x0 beq _0202FD40 bl FUN_02033534 cmp r0, #0x13 blt _0202FD06 ldr r0, _0202FE14 ; =0x021C59F4 ldr r1, _0202FE1C ; =0x00000687 ldr r0, [r0, #0x4] ldrb r1, [r0, r1] cmp r1, #0x0 beq _0202FCF8 mov r1, #0x26 bl FUN_021D78FC cmp r0, #0x0 bne _0202FCFA _0202FCF8: b _0202FE10 _0202FCFA: ldr r0, _0202FE14 ; =0x021C59F4 mov r2, #0x0 ldr r1, [r0, #0x4] ldr r0, _0202FE18 ; =0x00000683 strb r2, [r1, r0] pop {r3, pc} _0202FD06: bl FUN_0202CBD4 cmp r0, #0x4 bne _0202FD1A bl FUN_02031190 bl FUN_02030E7C cmp r0, #0x0 bne _0202FD22 _0202FD1A: bl FUN_02031280 cmp r0, #0x0 beq _0202FE10 _0202FD22: ldr r0, _0202FE20 ; =0x02105D58 mov r1, #0x0 strb r1, [r0, #0x0] bl FUN_0203050C ldr r0, _0202FE20 ; =0x02105D58 ldrb r0, [r0, #0x0] cmp r0, #0x0 beq _0202FE10 ldr r0, _0202FE14 ; =0x021C59F4 mov r2, #0x0 ldr r1, [r0, #0x4] ldr r0, _0202FE18 ; =0x00000683 strb r2, [r1, r0] pop {r3, pc} _0202FD40: bl FUN_02033534 cmp r0, #0x13 blt _0202FDB2 ldr r0, _0202FE14 ; =0x021C59F4 ldr r2, _0202FE1C ; =0x00000687 ldr r0, [r0, #0x4] ldrb r1, [r0, r2] cmp r1, #0x0 beq _0202FE10 add r1, r2, #0x0 sub r1, #0x57 ldr r1, [r0, r1] cmp r1, #0x0 beq _0202FD7A sub r2, #0x53 ldr r1, [r0, r2] cmp r1, #0x3 bgt _0202FE10 ldr r1, _0202FE20 ; =0x02105D58 ldrb r1, [r1, #0x0] cmp r1, #0x4 bne _0202FD90 bl FUN_02030930 ldr r0, _0202FE20 ; =0x02105D58 mov r1, #0x2 strb r1, [r0, #0x0] b _0202FD90 _0202FD7A: ldr r1, _0202FE20 ; =0x02105D58 ldrb r1, [r1, #0x0] cmp r1, #0x4 bne _0202FD90 bl FUN_02030930 cmp r0, #0x0 beq _0202FE10 ldr r0, _0202FE20 ; =0x02105D58 mov r1, #0x2 strb r1, [r0, #0x0] _0202FD90: ldr r0, _0202FE14 ; =0x021C59F4 mov r1, #0x26 ldr r0, [r0, #0x4] bl FUN_021D78FC cmp r0, #0x0 beq _0202FE10 ldr r0, _0202FE20 ; =0x02105D58 mov r1, #0x4 strb r1, [r0, #0x0] ldr r0, _0202FE14 ; =0x021C59F4 ldr r2, [r0, #0x4] ldr r0, _0202FE24 ; =0x00000634 ldr r1, [r2, r0] add r1, r1, #0x1 str r1, [r2, r0] pop {r3, pc} _0202FDB2: bl FUN_0202CBD4 cmp r0, #0x4 bne _0202FDC6 bl FUN_02031190 bl FUN_02030E7C cmp r0, #0x0 bne _0202FDCE _0202FDC6: bl FUN_02031280 cmp r0, #0x0 beq _0202FE10 _0202FDCE: ldr r0, _0202FE20 ; =0x02105D58 ldrb r0, [r0, #0x0] cmp r0, #0x4 bne _0202FE10 ldr r0, _0202FE14 ; =0x021C59F4 ldr r2, [r0, #0x4] ldr r0, _0202FE24 ; =0x00000634 ldr r1, [r2, r0] cmp r1, #0x3 bgt _0202FE10 add r0, #0x4b ldrb r1, [r2, r0] mov r0, #0x26 mul r0, r1 add r0, r2, r0 bl FUN_02030930 ldr r0, _0202FE14 ; =0x021C59F4 ldr r2, [r0, #0x4] ldr r0, _0202FE28 ; =0x0000067F ldrb r1, [r2, r0] mov r0, #0x1 sub r1, r0, r1 mov r0, #0x26 mul r0, r1 add r0, r2, r0 bl FUN_02030930 ldr r0, _0202FE20 ; =0x02105D58 mov r1, #0x0 strb r1, [r0, #0x0] bl FUN_0203050C _0202FE10: pop {r3, pc} nop _0202FE14: .word 0x021C59F4 _0202FE18: .word 0x00000683 _0202FE1C: .word 0x00000687 _0202FE20: .word 0x02105D58 _0202FE24: .word 0x00000634 _0202FE28: .word 0x0000067F thumb_func_start FUN_0202FE2C FUN_0202FE2C: ; 0x0202FE2C push {r3-r7, lr} sub sp, #0x10 str r0, [sp, #0x0] mov r0, #0x0 str r0, [sp, #0x4] bl FUN_02033534 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_02031228 str r0, [sp, #0xc] bl FUN_02033534 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_0202D858 add r0, r0, #0x1 mov r7, #0x0 str r0, [sp, #0x8] cmp r0, #0x0 ble _0202FED0 ldr r0, [sp, #0x0] mov r1, #0xc0 add r6, r0, #0x0 add r4, r7, #0x0 add r5, r7, #0x0 mul r6, r1 _0202FE66: ldr r0, _0202FEE4 ; =0x021C59F4 ldr r1, [r0, #0x4] ldr r0, _0202FEE8 ; =0x0000047C add r0, r1, r0 add r0, r0, r4 bl FUN_0202D4BC lsl r0, r7, #0x10 lsr r0, r0, #0x10 bl FUN_02030E7C cmp r0, #0x0 beq _0202FE90 ldr r0, _0202FEE4 ; =0x021C59F4 mov r1, #0xe ldr r0, [r0, #0x4] add r0, r6, r0 add r2, r5, r0 mov r0, #0x55 lsl r0, r0, #0x2 strb r1, [r2, r0] _0202FE90: ldr r0, _0202FEE4 ; =0x021C59F4 mov r2, #0x55 ldr r1, [r0, #0x4] ldr r0, _0202FEE8 ; =0x0000047C lsl r2, r2, #0x2 add r0, r1, r0 add r1, r1, r2 add r1, r1, r6 ldr r2, [sp, #0xc] add r0, r0, r4 add r1, r1, r5 bl FUN_0202D400 ldr r0, _0202FEE4 ; =0x021C59F4 ldr r0, [r0, #0x4] add r0, r6, r0 add r1, r5, r0 mov r0, #0x55 lsl r0, r0, #0x2 ldrb r0, [r1, r0] cmp r0, #0xe bne _0202FEC2 ldr r0, [sp, #0x4] add r0, r0, #0x1 str r0, [sp, #0x4] _0202FEC2: ldr r0, [sp, #0xc] add r7, r7, #0x1 add r5, r5, r0 ldr r0, [sp, #0x8] add r4, #0xc cmp r7, r0 blt _0202FE66 _0202FED0: ldr r1, [sp, #0x4] ldr r0, [sp, #0x8] cmp r1, r0 bne _0202FEDE add sp, #0x10 mov r0, #0x0 pop {r3-r7, pc} _0202FEDE: mov r0, #0x1 add sp, #0x10 pop {r3-r7, pc} .balign 4 _0202FEE4: .word 0x021C59F4 _0202FEE8: .word 0x0000047C thumb_func_start FUN_0202FEEC FUN_0202FEEC: ; 0x0202FEEC push {r3-r7, lr} ldr r0, _02030064 ; =0x021C59F4 ldr r0, [r0, #0x4] cmp r0, #0x0 beq _0202FEFE bl FUN_02033534 cmp r0, #0x13 blt _0202FF00 _0202FEFE: b _02030062 _0202FF00: bl FUN_02033534 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_02031228 str r0, [sp, #0x0] bl FUN_02033534 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_0202D858 add r6, r0, #0x1 ldr r0, _02030068 ; =0x02105D58 ldrb r1, [r0, #0x1] cmp r1, #0x2 beq _0202FF2C ldrb r0, [r0, #0x1] cmp r0, #0x0 beq _0202FF2C b _02030062 _0202FF2C: ldr r0, _02030068 ; =0x02105D58 ldrb r1, [r0, #0x1] add r1, r1, #0x1 strb r1, [r0, #0x1] bl FUN_0202FA28 cmp r0, #0x1 bne _0202FF4A ldr r0, _02030064 ; =0x021C59F4 ldr r1, [r0, #0x4] mov r0, #0x1a lsl r0, r0, #0x6 ldrb r0, [r1, r0] bl FUN_0202FE2C _0202FF4A: bl FUN_0202CBD4 cmp r0, #0x4 bne _0202FF86 bl FUN_02031280 cmp r0, #0x0 bne _0202FF86 ldr r0, _02030064 ; =0x021C59F4 ldr r1, [r0, #0x4] mov r0, #0x55 lsl r0, r0, #0x2 add r3, r1, r0 mov r0, #0x1a lsl r0, r0, #0x6 ldrb r0, [r1, r0] mov r1, #0xc0 add r2, r0, #0x0 mul r2, r1 add r0, r3, r2 ldr r3, _0203006C ; =FUN_020304F0 mov r2, #0xe bl FUN_0202D0D0 cmp r0, #0x0 bne _0202FF86 ldr r0, _02030068 ; =0x02105D58 ldrb r1, [r0, #0x1] sub r1, r1, #0x1 strb r1, [r0, #0x1] _0202FF86: ldr r0, _02030068 ; =0x02105D58 ldrb r1, [r0, #0x1] cmp r1, #0x1 beq _0202FF94 ldrb r0, [r0, #0x1] cmp r0, #0x3 bne _0203000A _0202FF94: mov r4, #0x0 cmp r6, #0x0 ble _0202FFDC ldr r7, _02030064 ; =0x021C59F4 add r5, r4, #0x0 _0202FF9E: lsl r0, r4, #0x10 lsr r0, r0, #0x10 bl FUN_02030E7C cmp r0, #0x0 beq _0202FFBA ldr r0, [r7, #0x4] ldr r1, _02030070 ; =0x00000638 add r0, r0, r5 ldr r1, [r0, r1] add r2, r1, #0x1 ldr r1, _02030070 ; =0x00000638 str r2, [r0, r1] b _0202FFD4 _0202FFBA: bl FUN_02031280 cmp r0, #0x0 beq _0202FFD4 cmp r4, #0x0 bne _0202FFD4 ldr r0, [r7, #0x4] ldr r1, _02030070 ; =0x00000638 add r0, r0, r5 ldr r1, [r0, r1] add r2, r1, #0x1 ldr r1, _02030070 ; =0x00000638 str r2, [r0, r1] _0202FFD4: add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, r6 blt _0202FF9E _0202FFDC: ldr r0, _02030064 ; =0x021C59F4 mov r1, #0x55 ldr r2, [r0, #0x4] lsl r1, r1, #0x2 add r4, r2, r1 mov r1, #0x1a lsl r1, r1, #0x6 ldrb r1, [r2, r1] mov r2, #0xc0 mov r0, #0x0 add r3, r1, #0x0 mul r3, r2 add r1, r4, r3 bl FUN_0203026C ldr r0, _02030064 ; =0x021C59F4 mov r1, #0x1a ldr r3, [r0, #0x4] lsl r1, r1, #0x6 ldrb r2, [r3, r1] mov r0, #0x1 sub r0, r0, r2 strb r0, [r3, r1] _0203000A: mov r5, #0x0 cmp r6, #0x0 ble _0203004A add r4, r5, #0x0 mov r7, #0xff _02030014: lsl r0, r5, #0x10 lsr r0, r0, #0x10 bl FUN_02030E7C cmp r0, #0x0 bne _02030040 bl FUN_0202FA28 cmp r0, #0x1 bne _02030040 ldr r0, _02030064 ; =0x021C59F4 mov r1, #0x1a ldr r0, [r0, #0x4] lsl r1, r1, #0x6 ldrb r2, [r0, r1] mov r1, #0xc0 mul r1, r2 add r0, r0, r1 add r1, r4, r0 mov r0, #0x55 lsl r0, r0, #0x2 strb r7, [r1, r0] _02030040: ldr r0, [sp, #0x0] add r5, r5, #0x1 add r4, r4, r0 cmp r5, r6 blt _02030014 _0203004A: bl FUN_0202CBD4 cmp r0, #0x4 bne _0203005A bl FUN_02031280 cmp r0, #0x0 beq _02030062 _0203005A: ldr r0, _02030068 ; =0x02105D58 ldrb r1, [r0, #0x1] add r1, r1, #0x1 strb r1, [r0, #0x1] _02030062: pop {r3-r7, pc} .balign 4 _02030064: .word 0x021C59F4 _02030068: .word 0x02105D58 _0203006C: .word FUN_020304F0 _02030070: .word 0x00000638 thumb_func_start FUN_02030074 FUN_02030074: ; 0x02030074 push {r3-r7, lr} ldr r0, _02030228 ; =0x021C59F4 ldr r1, [r0, #0x4] ldr r0, _0203022C ; =0x00000683 ldrb r0, [r1, r0] cmp r0, #0x0 beq _020300DC bl FUN_02033534 cmp r0, #0x13 blt _020300B4 mov r0, #0x0 bl FUN_02030E7C cmp r0, #0x0 beq _020300DC ldr r0, _02030228 ; =0x021C59F4 ldr r1, [r0, #0x4] mov r0, #0x55 lsl r0, r0, #0x2 add r0, r1, r0 mov r1, #0x4c bl FUN_021D79B4 cmp r0, #0x0 beq _020300DC ldr r0, _02030228 ; =0x021C59F4 mov r2, #0x0 ldr r1, [r0, #0x4] ldr r0, _0203022C ; =0x00000683 strb r2, [r1, r0] pop {r3-r7, pc} _020300B4: bl FUN_0202CBD4 cmp r0, #0x4 beq _020300C4 bl FUN_02031280 cmp r0, #0x0 beq _020300DC _020300C4: bl FUN_0202FEEC ldr r0, _02030230 ; =0x02105D58 ldrb r0, [r0, #0x1] cmp r0, #0x2 bne _020300DC ldr r0, _02030228 ; =0x021C59F4 mov r2, #0x0 ldr r1, [r0, #0x4] ldr r0, _0203022C ; =0x00000683 strb r2, [r1, r0] pop {r3-r7, pc} _020300DC: bl FUN_02033534 cmp r0, #0x13 blt _02030184 mov r0, #0x0 bl FUN_02030E7C cmp r0, #0x0 bne _020300F0 b _02030224 _020300F0: ldr r0, _02030228 ; =0x021C59F4 mov r1, #0x63 ldr r2, [r0, #0x4] lsl r1, r1, #0x4 ldr r0, [r2, r1] cmp r0, #0x0 beq _02030130 add r0, r1, #0x0 add r0, #0xc ldr r0, [r2, r0] cmp r0, #0x3 bgt _02030110 add r1, #0x8 ldr r0, [r2, r1] cmp r0, #0x3 ble _02030112 _02030110: b _02030224 _02030112: ldr r0, _02030230 ; =0x02105D58 ldrb r0, [r0, #0x1] cmp r0, #0x4 bne _02030150 bl FUN_0202FA28 cmp r0, #0x1 bne _02030128 mov r0, #0x0 bl FUN_0202FE2C _02030128: ldr r0, _02030230 ; =0x02105D58 mov r1, #0x2 strb r1, [r0, #0x1] b _02030150 _02030130: ldr r0, _02030230 ; =0x02105D58 ldrb r0, [r0, #0x1] cmp r0, #0x4 bne _0203014A bl FUN_0202FA28 cmp r0, #0x1 bne _0203014A mov r0, #0x0 bl FUN_0202FE2C cmp r0, #0x0 beq _02030224 _0203014A: ldr r0, _02030230 ; =0x02105D58 mov r1, #0x2 strb r1, [r0, #0x1] _02030150: ldr r0, _02030228 ; =0x021C59F4 ldr r1, [r0, #0x4] mov r0, #0x55 lsl r0, r0, #0x2 add r0, r1, r0 mov r1, #0x4c bl FUN_021D79B4 cmp r0, #0x0 beq _02030224 ldr r0, _02030230 ; =0x02105D58 mov r1, #0x4 strb r1, [r0, #0x1] ldr r1, _02030228 ; =0x021C59F4 ldr r0, _02030234 ; =0x00000638 ldr r3, [r1, #0x4] ldr r2, [r3, r0] add r2, r2, #0x1 str r2, [r3, r0] ldr r2, [r1, #0x4] add r1, r0, #0x4 ldr r1, [r2, r1] add r0, r0, #0x4 add r1, r1, #0x1 str r1, [r2, r0] pop {r3-r7, pc} _02030184: bl FUN_0202CBD4 cmp r0, #0x4 beq _02030194 bl FUN_02031280 cmp r0, #0x0 beq _02030224 _02030194: ldr r0, _02030230 ; =0x02105D58 ldrb r0, [r0, #0x1] cmp r0, #0x4 bne _02030224 ldr r6, _02030228 ; =0x021C59F4 ldr r7, _02030234 ; =0x00000638 mov r4, #0x1 mov r5, #0x4 _020301A4: lsl r0, r4, #0x10 lsr r0, r0, #0x10 bl FUN_02030E7C cmp r0, #0x0 beq _020301BC ldr r0, [r6, #0x4] add r0, r0, r5 ldr r0, [r0, r7] cmp r0, #0x3 ble _020301D2 pop {r3-r7, pc} _020301BC: cmp r4, #0x0 bne _020301D2 bl FUN_02031280 cmp r0, #0x0 beq _020301D2 ldr r1, [r6, #0x4] ldr r0, _02030234 ; =0x00000638 ldr r0, [r1, r0] cmp r0, #0x3 bgt _02030224 _020301D2: add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, #0x8 blt _020301A4 bl FUN_0202FA28 cmp r0, #0x0 bne _0203021A ldr r0, _02030228 ; =0x021C59F4 ldr r1, [r0, #0x4] mov r0, #0x55 lsl r0, r0, #0x2 add r2, r1, r0 mov r0, #0x1a lsl r0, r0, #0x6 ldrb r1, [r1, r0] mov r0, #0xc0 mul r0, r1 add r0, r2, r0 bl FUN_02030A00 ldr r0, _02030228 ; =0x021C59F4 ldr r1, [r0, #0x4] mov r0, #0x55 lsl r0, r0, #0x2 add r2, r1, r0 mov r0, #0x1a lsl r0, r0, #0x6 ldrb r1, [r1, r0] mov r0, #0x1 sub r1, r0, r1 mov r0, #0xc0 mul r0, r1 add r0, r2, r0 bl FUN_02030A00 _0203021A: ldr r0, _02030230 ; =0x02105D58 mov r1, #0x0 strb r1, [r0, #0x1] bl FUN_0202FEEC _02030224: pop {r3-r7, pc} nop _02030228: .word 0x021C59F4 _0203022C: .word 0x00000683 _02030230: .word 0x02105D58 _02030234: .word 0x00000638 thumb_func_start FUN_02030238 FUN_02030238: ; 0x02030238 push {r4-r6, lr} ldr r4, _02030264 ; =0x021C59F4 ldr r3, _02030268 ; =0x0000066F ldr r5, [r4, #0x4] ldrb r6, [r5, r3] cmp r6, #0x0 beq _0203025C add r0, r3, #0x0 sub r0, #0x3b ldr r0, [r5, r0] sub r1, r0, #0x1 add r0, r3, #0x0 sub r0, #0x3b str r1, [r5, r0] ldr r0, [r4, #0x4] mov r1, #0x0 strb r1, [r0, r3] pop {r4-r6, pc} _0203025C: bl FUN_0203026C pop {r4-r6, pc} nop _02030264: .word 0x021C59F4 _02030268: .word 0x0000066F thumb_func_start FUN_0203026C FUN_0203026C: ; 0x0203026C push {r3-r7, lr} sub sp, #0x8 ldr r0, _020303A0 ; =0x021C59F4 add r5, r1, #0x0 ldr r2, [r0, #0x4] ldr r0, _020303A4 ; =0x00000634 ldr r1, [r2, r0] sub r1, r1, #0x1 str r1, [r2, r0] cmp r5, #0x0 beq _02030290 ldrb r0, [r5, #0x0] cmp r0, #0xb bne _02030296 bl FUN_0202FA28 cmp r0, #0x1 bne _02030292 _02030290: b _0203039C _02030292: add r5, r5, #0x1 b _0203029E _02030296: bl FUN_0202FA28 cmp r0, #0x0 beq _0203039C _0203029E: ldr r0, _020303A0 ; =0x021C59F4 ldr r1, _020303A8 ; =0x00000682 ldr r0, [r0, #0x4] ldrb r1, [r0, r1] cmp r1, #0x0 beq _020302B2 ldrb r2, [r5, #0x0] mov r1, #0x1 tst r1, r2 bne _0203039C _020302B2: ldr r1, _020303A8 ; =0x00000682 mov r2, #0x0 strb r2, [r0, r1] bl FUN_0202FA28 cmp r0, #0x1 bne _0203036E bl FUN_02033534 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_02031228 add r6, r0, #0x0 bl FUN_02033534 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_0202D858 add r0, r0, #0x1 mov r4, #0x0 str r0, [sp, #0x4] cmp r0, #0x0 ble _0203039C sub r0, r6, #0x1 add r7, r4, #0x0 str r0, [sp, #0x0] _020302EA: ldrb r0, [r5, #0x0] cmp r0, #0xff bne _02030302 ldr r0, _020303A0 ; =0x021C59F4 mov r2, #0x1 ldr r1, [r0, #0x4] ldr r0, _020303AC ; =0x0000065C lsl r2, r4 ldrh r0, [r1, r0] mvn r2, r2 and r2, r0 b _02030310 _02030302: ldr r0, _020303A0 ; =0x021C59F4 mov r2, #0x1 ldr r1, [r0, #0x4] ldr r0, _020303AC ; =0x0000065C lsl r2, r4 ldrh r0, [r1, r0] orr r2, r0 _02030310: ldr r0, _020303AC ; =0x0000065C strh r2, [r1, r0] ldrb r2, [r5, #0x0] cmp r2, #0xff bne _0203031E add r5, r5, r6 b _02030360 _0203031E: cmp r2, #0xe bne _02030326 add r5, r5, r6 b _02030360 _02030326: ldr r0, _020303A0 ; =0x021C59F4 ldr r3, [r0, #0x4] ldr r0, _020303B0 ; =0x00000667 add r1, r3, r4 ldrb r0, [r1, r0] cmp r0, #0x0 beq _0203033E mov r0, #0x1 tst r0, r2 beq _0203033E add r5, r5, r6 b _02030360 _0203033E: ldr r0, _020303B4 ; =0x000004E8 add r5, r5, #0x1 add r0, r3, r0 ldr r2, [sp, #0x0] ldr r3, _020303B8 ; =0x000005E6 add r0, r0, r7 add r1, r5, #0x0 bl FUN_0202D3A4 ldr r0, [sp, #0x0] mov r1, #0x0 add r5, r5, r0 ldr r0, _020303A0 ; =0x021C59F4 ldr r0, [r0, #0x4] add r2, r0, r4 ldr r0, _020303B0 ; =0x00000667 strb r1, [r2, r0] _02030360: ldr r0, [sp, #0x4] add r4, r4, #0x1 add r7, #0xc cmp r4, r0 blt _020302EA add sp, #0x8 pop {r3-r7, pc} _0203036E: ldr r0, _020303A0 ; =0x021C59F4 ldrb r2, [r5, #0x1] ldr r1, [r0, #0x4] ldr r3, _020303AC ; =0x0000065C strh r2, [r1, r3] ldr r2, [r0, #0x4] ldrh r1, [r2, r3] lsl r1, r1, #0x8 strh r1, [r2, r3] ldr r4, [r0, #0x4] ldrb r1, [r5, #0x2] ldrh r2, [r4, r3] add r1, r2, r1 strh r1, [r4, r3] ldr r1, [r0, #0x4] mov r0, #0x47 lsl r0, r0, #0x4 add r0, r1, r0 ldrb r2, [r5, #0x3] add r1, r5, #0x4 sub r3, #0x5d bl FUN_0202D3A4 _0203039C: add sp, #0x8 pop {r3-r7, pc} .balign 4 _020303A0: .word 0x021C59F4 _020303A4: .word 0x00000634 _020303A8: .word 0x00000682 _020303AC: .word 0x0000065C _020303B0: .word 0x00000667 _020303B4: .word 0x000004E8 _020303B8: .word 0x000005E6 thumb_func_start FUN_020303BC FUN_020303BC: ; 0x020303BC push {r4-r6, lr} ldr r3, _020303EC ; =0x021C59F4 ldr r6, _020303F0 ; =0x0000066F ldr r5, [r3, #0x4] add r4, r5, r0 ldrb r4, [r4, r6] cmp r4, #0x0 beq _020303E4 add r1, r6, #0x0 sub r1, #0x37 add r4, r5, r1 lsl r2, r0, #0x2 ldr r1, [r4, r2] sub r1, r1, #0x1 str r1, [r4, r2] ldr r1, [r3, #0x4] mov r2, #0x0 add r0, r1, r0 strb r2, [r0, r6] pop {r4-r6, pc} _020303E4: bl FUN_020303F4 pop {r4-r6, pc} nop _020303EC: .word 0x021C59F4 _020303F0: .word 0x0000066F thumb_func_start FUN_020303F4 FUN_020303F4: ; 0x020303F4 push {r4-r6, lr} ldr r3, _020304B8 ; =0x021C59F4 add r5, r0, #0x0 ldr r0, [r3, #0x4] ldr r2, _020304BC ; =0x00000638 add r4, r1, #0x0 add r1, r0, r2 lsl r0, r5, #0x2 ldr r6, [r1, r0] sub r6, r6, #0x1 str r6, [r1, r0] cmp r4, #0x0 beq _020304B4 ldr r0, [r3, #0x4] add r2, #0x2f add r0, r0, r2 ldrb r1, [r0, r5] cmp r1, #0x0 beq _02030422 ldrb r2, [r4, #0x0] mov r1, #0x1 tst r1, r2 bne _020304B4 _02030422: mov r1, #0x0 strb r1, [r0, r5] bl FUN_0202FA28 cmp r0, #0x1 bne _02030478 bl FUN_02033534 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_02031228 add r6, r0, #0x0 bl FUN_02033534 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_0202D858 ldrb r1, [r4, #0x0] mov r0, #0x2 tst r0, r1 bne _02030468 ldr r0, _020304B8 ; =0x021C59F4 ldr r3, _020304C0 ; =0x0000065E ldr r1, [r0, #0x4] ldr r0, _020304C4 ; =0x0000047C add r2, r6, #0x0 add r1, r1, r0 mov r0, #0xc mul r0, r5 add r0, r1, r0 add r1, r4, #0x0 bl FUN_0202D3A4 _02030468: ldr r0, _020304B8 ; =0x021C59F4 ldr r1, [r0, #0x4] ldr r0, _020304C8 ; =0x0000065F add r1, r1, r0 ldrb r0, [r1, r5] add r0, r0, #0x1 strb r0, [r1, r5] pop {r4-r6, pc} _02030478: add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_020307E4 ldrb r1, [r4, #0x0] mov r0, #0x2 tst r0, r1 bne _020304B4 mov r0, #0xc add r6, r5, #0x0 mul r6, r0 ldr r0, _020304B8 ; =0x021C59F4 ldr r1, [r0, #0x4] ldr r0, _020304CC ; =0x000004E8 add r0, r1, r0 add r0, r0, r6 bl FUN_0202D498 cmp r0, #0xb blt _020304B4 ldr r0, _020304B8 ; =0x021C59F4 ldr r3, _020304D0 ; =0x0000066E ldr r1, [r0, #0x4] ldr r0, _020304CC ; =0x000004E8 mov r2, #0xb add r0, r1, r0 add r0, r0, r6 add r1, r4, #0x1 bl FUN_0202D3A4 _020304B4: pop {r4-r6, pc} nop _020304B8: .word 0x021C59F4 _020304BC: .word 0x00000638 _020304C0: .word 0x0000065E _020304C4: .word 0x0000047C _020304C8: .word 0x0000065F _020304CC: .word 0x000004E8 _020304D0: .word 0x0000066E thumb_func_start FUN_020304D4 FUN_020304D4: ; 0x020304D4 push {r3, lr} cmp r0, #0x0 beq _020304E4 ldr r0, _020304EC ; =0x02105D58 ldrb r1, [r0, #0x0] add r1, r1, #0x1 strb r1, [r0, #0x0] pop {r3, pc} _020304E4: bl ErrorHandling pop {r3, pc} nop _020304EC: .word 0x02105D58 thumb_func_start FUN_020304F0 FUN_020304F0: ; 0x020304F0 push {r3, lr} cmp r0, #0x0 beq _02030500 ldr r0, _02030508 ; =0x02105D58 ldrb r1, [r0, #0x1] add r1, r1, #0x1 strb r1, [r0, #0x1] pop {r3, pc} _02030500: bl ErrorHandling pop {r3, pc} nop _02030508: .word 0x02105D58 thumb_func_start FUN_0203050C FUN_0203050C: ; 0x0203050C push {r4, lr} ldr r0, _02030660 ; =0x021C59F4 ldr r0, [r0, #0x4] cmp r0, #0x0 beq _0203051E bl FUN_02033534 cmp r0, #0x13 blt _02030520 _0203051E: b _0203065E _02030520: bl FUN_02033534 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_02031228 add r4, r0, #0x0 bl FUN_02033534 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_0202D858 bl FUN_02031280 cmp r0, #0x0 beq _02030594 ldr r0, _02030664 ; =0x02105D58 ldrb r1, [r0, #0x0] cmp r1, #0x2 beq _02030550 ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _02030594 _02030550: ldr r0, _02030664 ; =0x02105D58 ldrb r1, [r0, #0x0] add r1, r1, #0x1 strb r1, [r0, #0x0] mov r0, #0x1 bl FUN_020304D4 ldr r0, _02030660 ; =0x021C59F4 ldr r1, _02030668 ; =0x0000067F ldr r3, [r0, #0x4] mov r0, #0x0 ldrb r2, [r3, r1] mov r1, #0x26 mul r1, r2 lsl r2, r4, #0x10 add r1, r3, r1 lsr r2, r2, #0x10 bl FUN_020303F4 ldr r2, _02030660 ; =0x021C59F4 ldr r1, _02030668 ; =0x0000067F ldr r4, [r2, #0x4] mov r0, #0x1 ldrb r3, [r4, r1] sub r0, r0, r3 strb r0, [r4, r1] add r0, r1, #0x0 ldr r2, [r2, #0x4] sub r0, #0x4b ldr r0, [r2, r0] sub r1, #0x4b add r0, r0, #0x1 str r0, [r2, r1] pop {r4, pc} _02030594: bl FUN_0202CBD4 cmp r0, #0x4 bne _0203065E bl FUN_02031190 bl FUN_02030E7C cmp r0, #0x0 bne _020305AE bl FUN_02031190 pop {r4, pc} _020305AE: ldr r0, _02030664 ; =0x02105D58 ldrb r1, [r0, #0x0] cmp r1, #0x2 beq _020305BC ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _0203065E _020305BC: bl FUN_02031190 cmp r0, #0x0 beq _02030612 ldr r0, _02030664 ; =0x02105D58 ldr r3, _0203066C ; =FUN_020304D4 ldrb r1, [r0, #0x0] add r1, r1, #0x1 strb r1, [r0, #0x0] ldr r0, _02030660 ; =0x021C59F4 ldr r2, [r0, #0x4] ldr r0, _02030668 ; =0x0000067F ldrb r1, [r2, r0] mov r0, #0x26 mul r0, r1 lsl r1, r4, #0x10 add r0, r2, r0 lsr r1, r1, #0x10 mov r2, #0xe bl FUN_0202D0D0 cmp r0, #0x0 bne _020305F4 ldr r0, _02030664 ; =0x02105D58 ldrb r1, [r0, #0x0] sub r1, r1, #0x1 strb r1, [r0, #0x0] pop {r4, pc} _020305F4: ldr r2, _02030660 ; =0x021C59F4 ldr r1, _02030668 ; =0x0000067F ldr r4, [r2, #0x4] mov r0, #0x1 ldrb r3, [r4, r1] sub r0, r0, r3 strb r0, [r4, r1] add r0, r1, #0x0 ldr r2, [r2, #0x4] sub r0, #0x4b ldr r0, [r2, r0] sub r1, #0x4b add r0, r0, #0x1 str r0, [r2, r1] pop {r4, pc} _02030612: bl FUN_0202CB8C ldr r1, _02030670 ; =0x0000FFFE tst r0, r1 beq _0203065E ldr r0, _02030664 ; =0x02105D58 ldrb r1, [r0, #0x0] add r1, r1, #0x1 strb r1, [r0, #0x0] mov r0, #0x1 bl FUN_020304D4 ldr r0, _02030660 ; =0x021C59F4 ldr r1, _02030668 ; =0x0000067F ldr r3, [r0, #0x4] mov r0, #0x0 ldrb r2, [r3, r1] mov r1, #0x26 mul r1, r2 lsl r2, r4, #0x10 add r1, r3, r1 lsr r2, r2, #0x10 bl FUN_020303F4 ldr r2, _02030660 ; =0x021C59F4 ldr r1, _02030668 ; =0x0000067F ldr r4, [r2, #0x4] mov r0, #0x1 ldrb r3, [r4, r1] sub r0, r0, r3 strb r0, [r4, r1] add r0, r1, #0x0 ldr r2, [r2, #0x4] sub r0, #0x4b ldr r0, [r2, r0] sub r1, #0x4b add r0, r0, #0x1 str r0, [r2, r1] _0203065E: pop {r4, pc} .balign 4 _02030660: .word 0x021C59F4 _02030664: .word 0x02105D58 _02030668: .word 0x0000067F _0203066C: .word FUN_020304D4 _02030670: .word 0x0000FFFE thumb_func_start FUN_02030674 FUN_02030674: ; 0x02030674 push {r3-r7, lr} ldr r7, _02030798 ; =0x021C59F4 mov r6, #0x0 ldr r5, [r7, #0x4] ldr r2, _0203079C ; =0x0000062C add r4, r6, #0x0 ldrb r0, [r5, r2] cmp r0, #0x0 beq _02030690 sub r1, r2, #0x4 ldrh r1, [r5, r1] mov r3, #0xf0 tst r3, r1 bne _02030692 _02030690: b _02030794 _02030692: cmp r0, #0x2 bne _020306D0 mov r0, #0x20 tst r0, r1 beq _020306A4 mov r0, #0x10 orr r0, r6 lsl r0, r0, #0x10 lsr r4, r0, #0x10 _020306A4: mov r0, #0x10 tst r0, r1 beq _020306B2 mov r0, #0x20 orr r0, r4 lsl r0, r0, #0x10 lsr r4, r0, #0x10 _020306B2: mov r0, #0x40 tst r0, r1 beq _020306C0 mov r0, #0x80 orr r0, r4 lsl r0, r0, #0x10 lsr r4, r0, #0x10 _020306C0: mov r0, #0x80 tst r0, r1 beq _0203077E mov r0, #0x40 orr r0, r4 lsl r0, r0, #0x10 lsr r4, r0, #0x10 b _0203077E _020306D0: add r0, r2, #0x2 ldrh r0, [r5, r0] cmp r0, #0x0 beq _020306F2 add r4, r0, #0x0 add r0, r2, #0x1 ldrsb r0, [r5, r0] sub r1, r0, #0x1 add r0, r2, #0x1 strb r1, [r5, r0] ldr r1, [r7, #0x4] ldrsb r0, [r1, r0] cmp r0, #0x0 bge _0203077E add r0, r2, #0x2 strh r6, [r1, r0] b _0203077E _020306F2: add r0, r2, #0x0 sub r0, #0x34 add r6, r5, r0 sub r2, #0x34 ldr r0, [r6, #0x8] ldr r1, [r6, #0xc] ldr r2, [r5, r2] ldr r3, [r6, #0x4] blx FUN_020EBC30 add r3, r0, #0x0 add r2, r1, #0x0 ldr r0, [r6, #0x10] ldr r1, [r6, #0x14] add r0, r0, r3 adc r1, r2 ldr r2, _020307A0 ; =0x000005F8 str r0, [r5, r2] mov r2, #0x0 str r1, [r6, #0x4] lsr r0, r1, #0x1e lsl r1, r2, #0x2 orr r1, r0 cmp r1, #0x3 bhi _02030746 add r0, r1, r1 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02030730: ; jump table (using 16-bit offset) .short _02030738 - _02030730 - 2; case 0 .short _0203073C - _02030730 - 2; case 1 .short _02030740 - _02030730 - 2; case 2 .short _02030744 - _02030730 - 2; case 3 _02030738: mov r4, #0x20 b _02030746 _0203073C: mov r4, #0x10 b _02030746 _02030740: mov r4, #0x40 b _02030746 _02030744: mov r4, #0x80 _02030746: ldr r0, _02030798 ; =0x021C59F4 ldr r5, [r0, #0x4] ldr r0, _020307A0 ; =0x000005F8 add r6, r5, r0 ldr r0, [r6, #0x8] ldr r1, [r6, #0xc] ldr r2, [r6, #0x0] ldr r3, [r6, #0x4] blx FUN_020EBC30 ldr r3, [r6, #0x10] ldr r2, [r6, #0x14] add r0, r3, r0 adc r2, r1 ldr r1, _020307A0 ; =0x000005F8 mov r3, #0x0 str r0, [r5, r1] str r2, [r6, #0x4] lsr r0, r2, #0x1c lsl r2, r3, #0x4 orr r2, r0 add r0, r1, #0x0 add r0, #0x35 strb r2, [r5, r0] ldr r0, _02030798 ; =0x021C59F4 add r1, #0x36 ldr r0, [r0, #0x4] strh r4, [r0, r1] _0203077E: ldr r2, _02030798 ; =0x021C59F4 ldr r1, _020307A4 ; =0x00000628 ldr r5, [r2, #0x4] mov r0, #0xf0 ldrh r3, [r5, r1] bic r3, r0 strh r3, [r5, r1] ldr r2, [r2, #0x4] ldrh r0, [r2, r1] add r0, r0, r4 strh r0, [r2, r1] _02030794: pop {r3-r7, pc} nop _02030798: .word 0x021C59F4 _0203079C: .word 0x0000062C _020307A0: .word 0x000005F8 _020307A4: .word 0x00000628 thumb_func_start FUN_020307A8 FUN_020307A8: ; 0x020307A8 ldr r0, _020307B4 ; =0x021C59F4 mov r2, #0x1 ldr r1, [r0, #0x4] ldr r0, _020307B8 ; =0x0000062C strb r2, [r1, r0] bx lr .balign 4 _020307B4: .word 0x021C59F4 _020307B8: .word 0x0000062C thumb_func_start FUN_020307BC FUN_020307BC: ; 0x020307BC ldr r0, _020307C8 ; =0x021C59F4 mov r2, #0x2 ldr r1, [r0, #0x4] ldr r0, _020307CC ; =0x0000062C strb r2, [r1, r0] bx lr .balign 4 _020307C8: .word 0x021C59F4 _020307CC: .word 0x0000062C thumb_func_start FUN_020307D0 FUN_020307D0: ; 0x020307D0 ldr r0, _020307DC ; =0x021C59F4 mov r2, #0x0 ldr r1, [r0, #0x4] ldr r0, _020307E0 ; =0x0000062C strb r2, [r1, r0] bx lr .balign 4 _020307DC: .word 0x021C59F4 _020307E0: .word 0x0000062C thumb_func_start FUN_020307E4 FUN_020307E4: ; 0x020307E4 push {r4-r7} ldr r4, _02030868 ; =0x021C59F4 lsl r6, r1, #0x1 ldr r2, [r4, #0x4] mov r5, #0x0 add r3, r2, r6 mov r2, #0x61 lsl r2, r2, #0x4 strh r5, [r3, r2] ldrb r5, [r0, #0x0] mov r3, #0x10 add r7, r5, #0x0 and r7, r3 cmp r7, #0x10 bne _02030860 mov r7, #0xc and r5, r7 lsl r5, r5, #0x18 lsr r5, r5, #0x18 bne _0203081A ldr r3, [r4, #0x4] add r4, r3, r2 ldrh r3, [r4, r6] mov r2, #0x40 orr r2, r3 strh r2, [r4, r6] b _0203084C _0203081A: cmp r5, #0x4 bne _0203082C ldr r3, [r4, #0x4] add r4, r3, r2 ldrh r3, [r4, r6] mov r2, #0x80 orr r2, r3 strh r2, [r4, r6] b _0203084C _0203082C: cmp r5, #0x8 bne _0203083E ldr r3, [r4, #0x4] add r4, r3, r2 ldrh r3, [r4, r6] mov r2, #0x20 orr r2, r3 strh r2, [r4, r6] b _0203084C _0203083E: cmp r5, #0xc bne _0203084C ldr r4, [r4, #0x4] add r4, r4, r2 ldrh r2, [r4, r6] orr r2, r3 strh r2, [r4, r6] _0203084C: ldrb r0, [r0, #0x0] asr r2, r0, #0x5 mov r0, #0x7 and r2, r0 ldr r0, _02030868 ; =0x021C59F4 ldr r0, [r0, #0x4] add r1, r0, r1 mov r0, #0x62 lsl r0, r0, #0x4 strb r2, [r1, r0] _02030860: mov r0, #0x1 pop {r4-r7} bx lr nop _02030868: .word 0x021C59F4 thumb_func_start FUN_0203086C FUN_0203086C: ; 0x0203086C bx lr .balign 4 thumb_func_start FUN_02030870 FUN_02030870: ; 0x02030870 push {r4, lr} add r4, r0, #0x0 ldr r0, _0203091C ; =0x021C59F4 ldr r1, [r0, #0x4] ldr r0, _02030920 ; =0x0000062A ldrb r0, [r1, r0] cmp r0, #0x0 beq _02030884 mov r0, #0x0 pop {r4, pc} _02030884: bl FUN_02030FE0 cmp r0, #0x0 bne _02030890 mov r0, #0x0 pop {r4, pc} _02030890: ldr r0, _0203091C ; =0x021C59F4 ldr r2, [r0, #0x4] ldr r0, _02030924 ; =0x00000681 ldrb r1, [r2, r0] cmp r1, #0x0 beq _020308A0 sub r1, r1, #0x1 strb r1, [r2, r0] _020308A0: ldr r1, _0203091C ; =0x021C59F4 ldr r0, _02030928 ; =0x00000628 ldr r2, [r1, #0x4] mov r3, #0x40 ldrh r2, [r2, r0] tst r3, r2 beq _020308C0 ldrb r3, [r4, #0x0] mov r2, #0x10 add r0, #0x59 orr r2, r3 strb r2, [r4, #0x0] ldr r1, [r1, #0x4] mov r2, #0x8 strb r2, [r1, r0] b _02030906 _020308C0: mov r3, #0x80 tst r3, r2 beq _020308D8 ldrb r3, [r4, #0x0] mov r2, #0x14 add r0, #0x59 orr r2, r3 strb r2, [r4, #0x0] ldr r1, [r1, #0x4] mov r2, #0x8 strb r2, [r1, r0] b _02030906 _020308D8: mov r3, #0x20 tst r3, r2 beq _020308F0 ldrb r3, [r4, #0x0] mov r2, #0x18 add r0, #0x59 orr r2, r3 strb r2, [r4, #0x0] ldr r1, [r1, #0x4] mov r2, #0x8 strb r2, [r1, r0] b _02030906 _020308F0: mov r3, #0x10 tst r2, r3 beq _02030906 ldrb r3, [r4, #0x0] mov r2, #0x1c add r0, #0x59 orr r2, r3 strb r2, [r4, #0x0] ldr r1, [r1, #0x4] mov r2, #0x8 strb r2, [r1, r0] _02030906: ldr r0, _0203091C ; =0x021C59F4 ldrb r2, [r4, #0x0] ldr r1, [r0, #0x4] ldr r0, _0203092C ; =0x0000062B ldrb r0, [r1, r0] lsl r0, r0, #0x5 orr r0, r2 strb r0, [r4, #0x0] mov r0, #0x0 pop {r4, pc} nop _0203091C: .word 0x021C59F4 _02030920: .word 0x0000062A _02030924: .word 0x00000681 _02030928: .word 0x00000628 _0203092C: .word 0x0000062B thumb_func_start FUN_02030930 FUN_02030930: ; 0x02030930 push {r3-r5, lr} sub sp, #0x8 add r4, r0, #0x0 bl FUN_02033534 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_02031228 add r5, r0, #0x0 bl FUN_02033534 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_0202D858 ldr r0, _020309F0 ; =0x021C59F4 ldr r1, [r0, #0x4] ldr r0, _020309F4 ; =0x00000684 ldrb r0, [r1, r0] cmp r0, #0x0 bne _02030960 mov r0, #0x0 b _02030962 _02030960: mov r0, #0x1 _02030962: strb r0, [r4, #0x0] bl FUN_0202FA28 cmp r0, #0x0 bne _02030972 add r0, r4, #0x0 bl FUN_02030870 _02030972: ldr r1, _020309F0 ; =0x021C59F4 ldr r0, _020309F4 ; =0x00000684 ldr r2, [r1, #0x4] mov r3, #0x0 strb r3, [r2, r0] ldr r1, [r1, #0x4] ldr r0, _020309F8 ; =0x0000054C add r0, r1, r0 bl FUN_0202D4E4 cmp r0, #0x0 beq _0203099E ldrb r1, [r4, #0x0] mov r0, #0x2 orr r0, r1 strb r0, [r4, #0x0] ldrb r0, [r4, #0x0] cmp r0, #0x2 bne _020309E8 add sp, #0x8 mov r0, #0x0 pop {r3-r5, pc} _0203099E: sub r0, r5, #0x1 str r0, [sp, #0x4] add r0, r4, #0x1 str r0, [sp, #0x0] ldr r0, _020309F0 ; =0x021C59F4 mov r2, #0x1 ldr r1, [r0, #0x4] ldr r0, _020309F8 ; =0x0000054C add r0, r1, r0 add r1, sp, #0x0 bl FUN_0202D760 cmp r0, #0x0 bne _020309C4 ldr r0, _020309F0 ; =0x021C59F4 mov r2, #0x1 ldr r1, [r0, #0x4] ldr r0, _020309F4 ; =0x00000684 strb r2, [r1, r0] _020309C4: bl FUN_0202FA28 cmp r0, #0x1 bne _020309E8 ldr r2, _020309F0 ; =0x021C59F4 ldr r1, _020309FC ; =0x0000065E ldr r3, [r2, #0x4] ldrb r0, [r3, r1] add r0, r0, #0x1 strb r0, [r3, r1] ldr r2, [r2, #0x4] ldrb r0, [r4, #0x0] ldrb r1, [r2, r1] lsl r2, r1, #0x4 mov r1, #0xf0 and r1, r2 orr r0, r1 strb r0, [r4, #0x0] _020309E8: mov r0, #0x1 add sp, #0x8 pop {r3-r5, pc} nop _020309F0: .word 0x021C59F4 _020309F4: .word 0x00000684 _020309F8: .word 0x0000054C _020309FC: .word 0x0000065E thumb_func_start FUN_02030A00 FUN_02030A00: ; 0x02030A00 push {r4, lr} sub sp, #0x8 add r4, r0, #0x0 mov r0, #0xb strb r0, [r4, #0x0] ldr r0, _02030A6C ; =0x021C59F4 ldr r1, [r0, #0x4] ldr r0, _02030A70 ; =0x00000685 ldrb r0, [r1, r0] cmp r0, #0x0 bne _02030A1A mov r0, #0x0 b _02030A1C _02030A1A: mov r0, #0x1 _02030A1C: strb r0, [r4, #0x1] bl FUN_0202CB8C asr r1, r0, #0x8 strb r1, [r4, #0x2] strb r0, [r4, #0x3] mov r0, #0xbb str r0, [sp, #0x4] add r0, r4, #0x5 str r0, [sp, #0x0] ldr r0, _02030A6C ; =0x021C59F4 mov r2, #0x0 ldr r1, [r0, #0x4] ldr r0, _02030A74 ; =0x0000056C add r0, r1, r0 add r1, sp, #0x0 bl FUN_0202D760 cmp r0, #0x0 beq _02030A5A ldr r0, _02030A6C ; =0x021C59F4 mov r2, #0x0 ldr r1, [r0, #0x4] ldr r0, _02030A70 ; =0x00000685 strb r2, [r1, r0] ldr r1, [sp, #0x4] mov r0, #0xbb sub r0, r0, r1 add sp, #0x8 strb r0, [r4, #0x4] pop {r4, pc} _02030A5A: ldr r0, _02030A6C ; =0x021C59F4 mov r2, #0x1 ldr r1, [r0, #0x4] ldr r0, _02030A70 ; =0x00000685 strb r2, [r1, r0] mov r0, #0xbb strb r0, [r4, #0x4] add sp, #0x8 pop {r4, pc} .balign 4 _02030A6C: .word 0x021C59F4 _02030A70: .word 0x00000685 _02030A74: .word 0x0000056C thumb_func_start FUN_02030A78 FUN_02030A78: ; 0x02030A78 push {r4-r6, lr} sub sp, #0x8 add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 bl FUN_02031190 bl FUN_02030E7C cmp r0, #0x0 bne _02030A9C bl FUN_02031280 cmp r0, #0x0 bne _02030A9C add sp, #0x8 mov r0, #0x0 pop {r4-r6, pc} _02030A9C: mov r0, #0x1 str r0, [sp, #0x0] mov r0, #0x0 str r0, [sp, #0x4] ldr r0, _02030AD4 ; =0x021C59F4 add r2, r4, #0x0 ldr r1, [r0, #0x4] ldr r0, _02030AD8 ; =0x0000054C add r3, r6, #0x0 add r0, r1, r0 add r1, r5, #0x0 bl FUN_0202D684 cmp r0, #0x0 beq _02030AC0 add sp, #0x8 mov r0, #0x1 pop {r4-r6, pc} _02030AC0: bl FUN_02033534 cmp r0, #0xa bne _02030ACC bl FUN_02031454 _02030ACC: mov r0, #0x0 add sp, #0x8 pop {r4-r6, pc} nop _02030AD4: .word 0x021C59F4 _02030AD8: .word 0x0000054C thumb_func_start FUN_02030ADC FUN_02030ADC: ; 0x02030ADC push {r4-r6, lr} sub sp, #0x8 add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 bl FUN_02031190 bl FUN_02030E7C cmp r0, #0x0 bne _02030B00 bl FUN_02031280 cmp r0, #0x0 bne _02030B00 add sp, #0x8 mov r0, #0x0 pop {r4-r6, pc} _02030B00: mov r0, #0x1 str r0, [sp, #0x0] str r0, [sp, #0x4] ldr r0, _02030B34 ; =0x021C59F4 add r2, r4, #0x0 ldr r1, [r0, #0x4] ldr r0, _02030B38 ; =0x0000054C add r3, r6, #0x0 add r0, r1, r0 add r1, r5, #0x0 bl FUN_0202D684 cmp r0, #0x0 beq _02030B22 add sp, #0x8 mov r0, #0x1 pop {r4-r6, pc} _02030B22: bl FUN_02033534 cmp r0, #0xa bne _02030B2E bl FUN_02031454 _02030B2E: mov r0, #0x0 add sp, #0x8 pop {r4-r6, pc} .balign 4 _02030B34: .word 0x021C59F4 _02030B38: .word 0x0000054C thumb_func_start FUN_02030B3C FUN_02030B3C: ; 0x02030B3C push {r4-r6, lr} sub sp, #0x8 add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 bl FUN_02031190 cmp r0, #0x0 beq _02030B58 bl ErrorHandling add sp, #0x8 mov r0, #0x0 pop {r4-r6, pc} _02030B58: mov r0, #0x0 bl FUN_02030E7C cmp r0, #0x0 bne _02030B70 bl FUN_02031280 cmp r0, #0x0 bne _02030B70 add sp, #0x8 mov r0, #0x0 pop {r4-r6, pc} _02030B70: bl FUN_0202FA28 cmp r0, #0x1 bne _02030B86 add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_02030A78 add sp, #0x8 pop {r4-r6, pc} _02030B86: mov r0, #0x1 str r0, [sp, #0x0] mov r0, #0x0 str r0, [sp, #0x4] ldr r0, _02030BBC ; =0x021C59F4 add r2, r4, #0x0 ldr r1, [r0, #0x4] ldr r0, _02030BC0 ; =0x0000056C add r3, r6, #0x0 add r0, r1, r0 add r1, r5, #0x0 bl FUN_0202D684 cmp r0, #0x0 beq _02030BAA add sp, #0x8 mov r0, #0x1 pop {r4-r6, pc} _02030BAA: bl FUN_02033534 cmp r0, #0xa bne _02030BB6 bl FUN_02031454 _02030BB6: mov r0, #0x0 add sp, #0x8 pop {r4-r6, pc} .balign 4 _02030BBC: .word 0x021C59F4 _02030BC0: .word 0x0000056C thumb_func_start FUN_02030BC4 FUN_02030BC4: ; 0x02030BC4 push {r4-r6, lr} sub sp, #0x8 add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 bl FUN_02031190 cmp r0, #0x0 beq _02030BE0 bl FUN_02031454 add sp, #0x8 mov r0, #0x0 pop {r4-r6, pc} _02030BE0: mov r0, #0x0 bl FUN_02030E7C cmp r0, #0x0 bne _02030BF8 bl FUN_02031280 cmp r0, #0x0 bne _02030BF8 add sp, #0x8 mov r0, #0x0 pop {r4-r6, pc} _02030BF8: bl FUN_0202FA28 cmp r0, #0x1 bne _02030C0E add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_02030ADC add sp, #0x8 pop {r4-r6, pc} _02030C0E: mov r0, #0x1 str r0, [sp, #0x0] str r0, [sp, #0x4] ldr r0, _02030C44 ; =0x021C59F4 add r2, r4, #0x0 ldr r1, [r0, #0x4] ldr r0, _02030C48 ; =0x0000056C add r3, r6, #0x0 add r0, r1, r0 add r1, r5, #0x0 bl FUN_0202D684 cmp r0, #0x0 beq _02030C30 add sp, #0x8 mov r0, #0x1 pop {r4-r6, pc} _02030C30: bl FUN_02033534 cmp r0, #0xa bne _02030C3C bl FUN_02031454 _02030C3C: mov r0, #0x0 add sp, #0x8 pop {r4-r6, pc} nop _02030C44: .word 0x021C59F4 _02030C48: .word 0x0000056C thumb_func_start FUN_02030C4C FUN_02030C4C: ; 0x02030C4C ldr r3, _02030C54 ; =FUN_02030BC4 mov r2, #0x0 bx r3 nop _02030C54: .word FUN_02030BC4 thumb_func_start FUN_02030C58 FUN_02030C58: ; 0x02030C58 ldr r0, _02030C64 ; =0x021C59F4 ldr r3, _02030C68 ; =FUN_0202D498 ldr r1, [r0, #0x4] ldr r0, _02030C6C ; =0x00000464 add r0, r1, r0 bx r3 .balign 4 _02030C64: .word 0x021C59F4 _02030C68: .word FUN_0202D498 _02030C6C: .word 0x00000464 thumb_func_start FUN_02030C70 FUN_02030C70: ; 0x02030C70 push {r4, lr} ldr r4, [sp, #0x8] bl FUN_0202D934 mov r0, #0xee strb r0, [r4, #0xa] ldr r0, _02030C88 ; =0x0000FFFF strh r0, [r4, #0x8] mov r0, #0x0 str r0, [r4, #0x4] str r0, [r4, #0x0] pop {r4, pc} .balign 4 _02030C88: .word 0x0000FFFF thumb_func_start FUN_02030C8C FUN_02030C8C: ; 0x02030C8C push {r4-r7, lr} sub sp, #0x14 add r6, r0, #0x0 str r1, [sp, #0x4] str r2, [sp, #0x8] ldr r5, [sp, #0x28] bl FUN_0202D478 cmp r0, #0x0 beq _02030D94 _02030CA0: ldrb r7, [r5, #0xa] cmp r7, #0xee bne _02030CB2 add r0, r6, #0x0 bl FUN_0202D41C add r7, r0, #0x0 cmp r7, #0xee beq _02030D8A _02030CB2: mov r0, #0x4 ldrsh r0, [r6, r0] strb r7, [r5, #0xa] ldrh r4, [r5, #0x8] str r0, [sp, #0x10] ldr r0, _02030D98 ; =0x0000FFFF cmp r4, r0 bne _02030D06 add r0, r7, #0x0 bl FUN_0202D9A0 add r4, r0, #0x0 ldr r0, _02030D9C ; =0x021C59F4 ldr r1, [r0, #0x4] ldr r0, _02030DA0 ; =0x00000689 ldrb r0, [r1, r0] cmp r0, #0x0 bne _02030D94 ldr r0, _02030D98 ; =0x0000FFFF cmp r4, r0 bne _02030D04 add r0, r6, #0x0 bl FUN_0202D478 cmp r0, #0x1 bge _02030CEE ldr r0, [sp, #0x10] add sp, #0x14 strh r0, [r6, #0x4] pop {r4-r7, pc} _02030CEE: add r0, r6, #0x0 bl FUN_0202D41C lsl r4, r0, #0x8 add r0, r6, #0x0 bl FUN_0202D41C add r4, r4, r0 mov r0, #0x4 ldrsh r0, [r6, r0] str r0, [sp, #0x10] _02030D04: strh r4, [r5, #0x8] _02030D06: add r0, r7, #0x0 bl FUN_0202DA04 cmp r0, #0x0 beq _02030D5E ldr r0, [r5, #0x4] cmp r0, #0x0 bne _02030D22 ldrh r2, [r5, #0x8] ldr r1, [sp, #0x4] add r0, r7, #0x0 bl FUN_0202DA40 str r0, [r5, #0x4] _02030D22: ldr r2, [r5, #0x0] ldr r1, [sp, #0x8] add r0, r6, #0x0 sub r2, r4, r2 bl FUN_0202D400 ldr r2, [r5, #0x4] str r0, [sp, #0xc] cmp r2, #0x0 beq _02030D42 ldr r1, [r5, #0x0] ldr r0, [sp, #0x8] add r1, r2, r1 ldr r2, [sp, #0xc] blx MI_CpuCopy8 _02030D42: ldr r1, [r5, #0x0] ldr r0, [sp, #0xc] add r0, r1, r0 str r0, [r5, #0x0] cmp r0, r4 blt _02030D8A str r5, [sp, #0x0] ldr r0, [sp, #0x4] ldr r3, [r5, #0x4] add r1, r7, #0x0 add r2, r4, #0x0 bl FUN_02030C70 b _02030D8A _02030D5E: add r0, r6, #0x0 bl FUN_0202D478 cmp r0, r4 blt _02030D82 ldr r1, [sp, #0x8] add r0, r6, #0x0 add r2, r4, #0x0 bl FUN_0202D400 ldr r0, [sp, #0x4] ldr r3, [sp, #0x8] add r1, r7, #0x0 add r2, r4, #0x0 str r5, [sp, #0x0] bl FUN_02030C70 b _02030D8A _02030D82: ldr r0, [sp, #0x10] add sp, #0x14 strh r0, [r6, #0x4] pop {r4-r7, pc} _02030D8A: add r0, r6, #0x0 bl FUN_0202D478 cmp r0, #0x0 bne _02030CA0 _02030D94: add sp, #0x14 pop {r4-r7, pc} .balign 4 _02030D98: .word 0x0000FFFF _02030D9C: .word 0x021C59F4 _02030DA0: .word 0x00000689 thumb_func_start FUN_02030DA4 FUN_02030DA4: ; 0x02030DA4 push {r3, lr} ldr r0, _02030DF0 ; =0x021C59F4 ldr r1, [r0, #0x4] cmp r1, #0x0 beq _02030DEE ldr r0, _02030DF4 ; =0x0000068B ldrb r0, [r1, r0] cmp r0, #0x0 bne _02030DEE mov r0, #0x47 lsl r0, r0, #0x4 add r0, r1, r0 bl FUN_0202D4BC ldr r0, _02030DF0 ; =0x021C59F4 ldr r1, [r0, #0x4] mov r0, #0x47 lsl r0, r0, #0x4 add r0, r1, r0 bl FUN_0202D478 cmp r0, #0x0 ble _02030DEE ldr r0, _02030DF0 ; =0x021C59F4 mov r2, #0x47 ldr r3, [r0, #0x4] ldr r0, _02030DF8 ; =0x000005EC lsl r2, r2, #0x4 add r0, r3, r0 str r0, [sp, #0x0] add r0, r3, r2 sub r2, #0x10 ldr r2, [r3, r2] mov r1, #0x0 mov r3, #0x1 bl FUN_02030C8C _02030DEE: pop {r3, pc} .balign 4 _02030DF0: .word 0x021C59F4 _02030DF4: .word 0x0000068B _02030DF8: .word 0x000005EC thumb_func_start FUN_02030DFC FUN_02030DFC: ; 0x02030DFC push {r3-r7, lr} ldr r0, _02030E6C ; =0x021C59F4 ldr r1, [r0, #0x4] cmp r1, #0x0 beq _02030E68 ldr r0, _02030E70 ; =0x0000068B ldrb r0, [r1, r0] cmp r0, #0x0 bne _02030E68 bl FUN_02033534 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_0202D858 add r7, r0, #0x1 mov r4, #0x0 cmp r7, #0x0 ble _02030E68 ldr r6, _02030E6C ; =0x021C59F4 add r5, r4, #0x0 _02030E26: ldr r1, [r6, #0x4] ldr r0, _02030E74 ; =0x000004E8 add r0, r1, r0 add r0, r0, r5 bl FUN_0202D4BC ldr r1, [r6, #0x4] ldr r0, _02030E74 ; =0x000004E8 add r0, r1, r0 add r0, r0, r5 bl FUN_0202D478 cmp r0, #0x0 ble _02030E60 ldr r3, [r6, #0x4] ldr r0, _02030E78 ; =0x0000058C mov r2, #0x46 add r0, r3, r0 add r0, r0, r5 str r0, [sp, #0x0] ldr r0, _02030E74 ; =0x000004E8 lsl r2, r2, #0x4 add r0, r3, r0 ldr r2, [r3, r2] add r0, r0, r5 add r1, r4, #0x0 mov r3, #0x0 bl FUN_02030C8C _02030E60: add r4, r4, #0x1 add r5, #0xc cmp r4, r7 blt _02030E26 _02030E68: pop {r3-r7, pc} nop _02030E6C: .word 0x021C59F4 _02030E70: .word 0x0000068B _02030E74: .word 0x000004E8 _02030E78: .word 0x0000058C thumb_func_start FUN_02030E7C FUN_02030E7C: ; 0x02030E7C push {r4, lr} add r4, r0, #0x0 ldr r0, _02030F14 ; =0x021C59F4 ldr r0, [r0, #0x4] cmp r0, #0x0 bne _02030E8C mov r0, #0x0 pop {r4, pc} _02030E8C: bl FUN_02033534 cmp r0, #0x13 blt _02030EC0 ldr r0, _02030F14 ; =0x021C59F4 ldr r1, [r0, #0x4] ldr r0, _02030F18 ; =0x00000687 ldrb r0, [r1, r0] cmp r0, #0x0 beq _02030EBC bl FUN_021D8018 mov r1, #0x0 mvn r1, r1 cmp r0, r1 beq _02030EBC cmp r4, #0x0 bne _02030EB4 mov r0, #0x1 pop {r4, pc} _02030EB4: cmp r4, #0x1 bne _02030EBC mov r0, #0x1 pop {r4, pc} _02030EBC: mov r0, #0x0 pop {r4, pc} _02030EC0: bl FUN_02030F40 cmp r0, #0x0 bne _02030ECC mov r0, #0x0 pop {r4, pc} _02030ECC: bl FUN_0202CBD4 cmp r0, #0x4 beq _02030ED8 mov r0, #0x0 pop {r4, pc} _02030ED8: bl FUN_02031190 cmp r4, r0 bne _02030EE4 mov r0, #0x1 pop {r4, pc} _02030EE4: bl FUN_02031190 cmp r0, #0x0 bne _02030EFE bl FUN_0202CB8C mov r1, #0x1 add r2, r1, #0x0 lsl r2, r4 tst r0, r2 beq _02030F10 add r0, r1, #0x0 pop {r4, pc} _02030EFE: ldr r0, _02030F14 ; =0x021C59F4 ldr r1, [r0, #0x4] ldr r0, _02030F1C ; =0x0000065C ldrh r2, [r1, r0] mov r0, #0x1 add r1, r0, #0x0 lsl r1, r4 tst r1, r2 bne _02030F12 _02030F10: mov r0, #0x0 _02030F12: pop {r4, pc} .balign 4 _02030F14: .word 0x021C59F4 _02030F18: .word 0x00000687 _02030F1C: .word 0x0000065C thumb_func_start FUN_02030F20 FUN_02030F20: ; 0x02030F20 push {r3-r5, lr} mov r4, #0x0 add r5, r4, #0x0 _02030F26: lsl r0, r5, #0x10 lsr r0, r0, #0x10 bl FUN_02030E7C cmp r0, #0x0 beq _02030F34 add r4, r4, #0x1 _02030F34: add r5, r5, #0x1 cmp r5, #0x8 blt _02030F26 add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02030F40 FUN_02030F40: ; 0x02030F40 push {r3, lr} ldr r0, _02030F5C ; =0x021C59F4 ldr r0, [r0, #0x4] cmp r0, #0x0 beq _02030F56 bl FUN_02033534 cmp r0, #0x13 blt _02030F56 mov r0, #0x1 pop {r3, pc} _02030F56: bl FUN_0202EDF8 pop {r3, pc} .balign 4 _02030F5C: .word 0x021C59F4 thumb_func_start FUN_02030F60 FUN_02030F60: ; 0x02030F60 ldr r1, _02030F6C ; =0x021C59F4 ldr r2, [r1, #0x4] ldr r1, _02030F70 ; =0x0000062B strb r0, [r2, r1] bx lr nop _02030F6C: .word 0x021C59F4 _02030F70: .word 0x0000062B thumb_func_start FUN_02030F74 FUN_02030F74: ; 0x02030F74 ldr r1, _02030F84 ; =0x021C59F4 ldr r1, [r1, #0x4] add r1, r1, r0 mov r0, #0x62 lsl r0, r0, #0x4 ldrb r0, [r1, r0] bx lr nop _02030F84: .word 0x021C59F4 thumb_func_start FUN_02030F88 FUN_02030F88: ; 0x02030F88 ldr r1, _02030FA4 ; =0x021C59F4 ldr r2, [r1, #0x4] cmp r2, #0x0 bne _02030F94 mov r0, #0x0 bx lr _02030F94: mov r1, #0x61 lsl r1, r1, #0x4 add r3, r2, r1 lsl r2, r0, #0x1 ldrh r0, [r3, r2] mov r1, #0x0 strh r1, [r3, r2] bx lr .balign 4 _02030FA4: .word 0x021C59F4 thumb_func_start FUN_02030FA8 FUN_02030FA8: ; 0x02030FA8 ldr r0, _02030FC0 ; =0x021C59F4 ldr r3, [r0, #0x4] cmp r3, #0x0 beq _02030FBC ldr r1, _02030FC4 ; =0x00000628 mov r0, #0x2 ldrh r2, [r3, r1] lsl r0, r0, #0xe orr r0, r2 strh r0, [r3, r1] _02030FBC: bx lr nop _02030FC0: .word 0x021C59F4 _02030FC4: .word 0x00000628 thumb_func_start FUN_02030FC8 FUN_02030FC8: ; 0x02030FC8 ldr r0, _02030FD8 ; =0x021C59F4 ldr r2, [r0, #0x4] cmp r2, #0x0 beq _02030FD6 ldr r0, _02030FDC ; =0x00000628 mov r1, #0x0 strh r1, [r2, r0] _02030FD6: bx lr .balign 4 _02030FD8: .word 0x021C59F4 _02030FDC: .word 0x00000628 thumb_func_start FUN_02030FE0 FUN_02030FE0: ; 0x02030FE0 ldr r0, _02030FF8 ; =0x021C59F4 ldr r1, [r0, #0x4] cmp r1, #0x0 beq _02030FF4 ldr r0, _02030FFC ; =0x00000628 ldrh r1, [r1, r0] mov r0, #0x2 lsl r0, r0, #0xe and r0, r1 bx lr _02030FF4: mov r0, #0x1 bx lr .balign 4 _02030FF8: .word 0x021C59F4 _02030FFC: .word 0x00000628 thumb_func_start FUN_02031000 FUN_02031000: ; 0x02031000 push {r4-r6, lr} sub sp, #0x8 add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 bl FUN_0202FA28 cmp r0, #0x1 bne _02031030 mov r0, #0x1 str r0, [sp, #0x0] mov r0, #0x0 str r0, [sp, #0x4] ldr r0, _02031050 ; =0x021C59F4 add r2, r4, #0x0 ldr r1, [r0, #0x4] ldr r0, _02031054 ; =0x0000054C add r3, r6, #0x0 add r0, r1, r0 add r1, r5, #0x0 bl FUN_0202D684 add sp, #0x8 pop {r4-r6, pc} _02031030: mov r0, #0x1 str r0, [sp, #0x0] mov r0, #0x0 str r0, [sp, #0x4] ldr r0, _02031050 ; =0x021C59F4 add r2, r4, #0x0 ldr r1, [r0, #0x4] ldr r0, _02031058 ; =0x0000056C add r3, r6, #0x0 add r0, r1, r0 add r1, r5, #0x0 bl FUN_0202D684 add sp, #0x8 pop {r4-r6, pc} nop _02031050: .word 0x021C59F4 _02031054: .word 0x0000054C _02031058: .word 0x0000056C thumb_func_start FUN_0203105C FUN_0203105C: ; 0x0203105C push {r3-r5, lr} sub sp, #0x8 add r5, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x4] ldr r0, _02031080 ; =0x021C59F4 add r4, r1, #0x0 ldr r1, [r0, #0x4] ldr r0, _02031084 ; =0x0000054C add r3, r2, #0x0 add r0, r1, r0 add r1, r5, #0x0 add r2, r4, #0x0 bl FUN_0202D684 add sp, #0x8 pop {r3-r5, pc} .balign 4 _02031080: .word 0x021C59F4 _02031084: .word 0x0000054C thumb_func_start FUN_02031088 FUN_02031088: ; 0x02031088 push {r3, lr} ldr r0, _02031100 ; =0x021C59F4 ldr r2, [r0, #0x4] cmp r2, #0x0 beq _020310FC ldr r1, _02031104 ; =0x0000067B ldrb r0, [r2, r1] cmp r0, #0x1 beq _020310A0 cmp r0, #0x3 beq _020310D8 pop {r3, pc} _020310A0: bl FUN_0202FA28 cmp r0, #0x1 bne _020310B8 ldr r1, _02031100 ; =0x021C59F4 mov r0, #0xb ldr r2, [r1, #0x4] ldr r1, _02031108 ; =0x0000067C add r1, r2, r1 bl FUN_020311D0 b _020310C8 _020310B8: ldr r1, _02031100 ; =0x021C59F4 mov r0, #0xb ldr r2, [r1, #0x4] ldr r1, _02031108 ; =0x0000067C add r1, r2, r1 mov r2, #0x1 bl FUN_02030BC4 _020310C8: cmp r0, #0x0 beq _020310FC ldr r0, _02031100 ; =0x021C59F4 mov r2, #0x2 ldr r1, [r0, #0x4] ldr r0, _02031104 ; =0x0000067B strb r2, [r1, r0] pop {r3, pc} _020310D8: add r1, r1, #0x1 mov r0, #0xc add r1, r2, r1 bl FUN_020311D0 cmp r0, #0x0 beq _020310FC ldr r0, _02031100 ; =0x021C59F4 ldr r1, [r0, #0x4] ldr r0, _02031108 ; =0x0000067C ldrb r0, [r1, r0] bl FUN_0202F9E0 ldr r0, _02031100 ; =0x021C59F4 mov r2, #0x0 ldr r1, [r0, #0x4] ldr r0, _02031104 ; =0x0000067B strb r2, [r1, r0] _020310FC: pop {r3, pc} nop _02031100: .word 0x021C59F4 _02031104: .word 0x0000067B _02031108: .word 0x0000067C thumb_func_start FUN_0203110C FUN_0203110C: ; 0x0203110C push {r4, lr} add r4, r2, #0x0 bl FUN_02031190 cmp r0, #0x0 bne _0203112A ldr r1, _0203112C ; =0x021C59F4 ldr r0, _02031130 ; =0x0000067B ldr r2, [r1, #0x4] mov r3, #0x1 strb r3, [r2, r0] ldrb r2, [r4, #0x0] ldr r1, [r1, #0x4] add r0, r0, #0x1 strb r2, [r1, r0] _0203112A: pop {r4, pc} .balign 4 _0203112C: .word 0x021C59F4 _02031130: .word 0x0000067B thumb_func_start FUN_02031134 FUN_02031134: ; 0x02031134 push {r4, lr} add r4, r2, #0x0 bl FUN_02031190 cmp r0, #0x0 beq _02031152 ldr r1, _02031154 ; =0x021C59F4 ldrb r3, [r4, #0x0] ldr r2, [r1, #0x4] ldr r0, _02031158 ; =0x0000067C strb r3, [r2, r0] ldr r1, [r1, #0x4] mov r2, #0x3 sub r0, r0, #0x1 strb r2, [r1, r0] _02031152: pop {r4, pc} .balign 4 _02031154: .word 0x021C59F4 _02031158: .word 0x0000067C thumb_func_start FUN_0203115C FUN_0203115C: ; 0x0203115C push {r4, lr} add r4, r2, #0x0 bl FUN_02031190 cmp r0, #0x0 bne _02031184 ldr r0, _02031188 ; =0x021C59F4 ldr r1, [r0, #0x4] ldr r0, _0203118C ; =0x0000067B ldrb r0, [r1, r0] cmp r0, #0x2 bne _02031184 ldrb r0, [r4, #0x0] bl FUN_0202F9E0 ldr r0, _02031188 ; =0x021C59F4 mov r2, #0x0 ldr r1, [r0, #0x4] ldr r0, _0203118C ; =0x0000067B strb r2, [r1, r0] _02031184: pop {r4, pc} nop _02031188: .word 0x021C59F4 _0203118C: .word 0x0000067B thumb_func_start FUN_02031190 FUN_02031190: ; 0x02031190 push {r3, lr} ldr r0, _020311CC ; =0x021C59F4 ldr r0, [r0, #0x4] cmp r0, #0x0 beq _020311C6 bl FUN_02033534 cmp r0, #0x13 blt _020311B4 bl FUN_021D8018 mov r1, #0x0 mvn r1, r1 cmp r0, r1 beq _020311C6 lsl r0, r0, #0x10 lsr r0, r0, #0x10 pop {r3, pc} _020311B4: bl FUN_02031280 cmp r0, #0x0 beq _020311C0 mov r0, #0x0 pop {r3, pc} _020311C0: bl FUN_0202D19C pop {r3, pc} _020311C6: mov r0, #0x0 pop {r3, pc} nop _020311CC: .word 0x021C59F4 thumb_func_start FUN_020311D0 FUN_020311D0: ; 0x020311D0 ldr r3, _020311D8 ; =FUN_02030ADC mov r2, #0x0 bx r3 nop _020311D8: .word FUN_02030ADC thumb_func_start FUN_020311DC FUN_020311DC: ; 0x020311DC ldr r3, _020311E4 ; =FUN_02030ADC mov r1, #0x0 add r2, r1, #0x0 bx r3 .balign 4 _020311E4: .word FUN_02030ADC thumb_func_start FUN_020311E8 FUN_020311E8: ; 0x020311E8 ldr r3, _020311EC ; =FUN_0202EE24 bx r3 .balign 4 _020311EC: .word FUN_0202EE24 thumb_func_start FUN_020311F0 FUN_020311F0: ; 0x020311F0 push {r3, lr} bl FUN_02031280 cmp r0, #0x0 beq _020311FE mov r0, #0x0 pop {r3, pc} _020311FE: ldr r0, _02031220 ; =0x021C59F4 ldr r1, [r0, #0x4] cmp r1, #0x0 beq _0203121A ldr r0, _02031224 ; =0x00000689 ldrb r0, [r1, r0] cmp r0, #0x0 beq _0203121A mov r0, #0x1 add r1, r0, #0x0 bl FUN_020334E8 mov r0, #0x1 pop {r3, pc} _0203121A: bl FUN_0202EE60 pop {r3, pc} .balign 4 _02031220: .word 0x021C59F4 _02031224: .word 0x00000689 thumb_func_start FUN_02031228 FUN_02031228: ; 0x02031228 push {r3, lr} bl FUN_0202D858 cmp r0, #0x5 blo _02031236 mov r0, #0xc pop {r3, pc} _02031236: bl FUN_0202FA28 cmp r0, #0x0 bne _02031242 mov r0, #0xc pop {r3, pc} _02031242: mov r0, #0x26 pop {r3, pc} .balign 4 thumb_func_start FUN_02031248 FUN_02031248: ; 0x02031248 push {r3, lr} lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_0202D858 add r0, r0, #0x1 pop {r3, pc} .balign 4 thumb_func_start FUN_02031258 FUN_02031258: ; 0x02031258 push {r3, lr} lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_0202D884 add r0, r0, #0x1 pop {r3, pc} .balign 4 thumb_func_start FUN_02031268 FUN_02031268: ; 0x02031268 ldr r1, _02031278 ; =0x021C59F4 ldr r2, [r1, #0x4] cmp r2, #0x0 beq _02031274 ldr r1, _0203127C ; =0x00000686 strb r0, [r2, r1] _02031274: bx lr nop _02031278: .word 0x021C59F4 _0203127C: .word 0x00000686 thumb_func_start FUN_02031280 FUN_02031280: ; 0x02031280 ldr r0, _02031294 ; =0x021C59F4 ldr r1, [r0, #0x4] cmp r1, #0x0 beq _0203128E ldr r0, _02031298 ; =0x00000686 ldrb r0, [r1, r0] bx lr _0203128E: mov r0, #0x0 bx lr nop _02031294: .word 0x021C59F4 _02031298: .word 0x00000686 thumb_func_start FUN_0203129C FUN_0203129C: ; 0x0203129C push {r3, lr} bl FUN_0202F03C cmp r0, #0x0 bne _020312B6 bl FUN_02031190 cmp r0, #0x0 bne _020312B6 mov r0, #0x2 add r1, sp, #0x0 bl FUN_02030C4C _020312B6: bl FUN_0202F05C pop {r3, pc} thumb_func_start FUN_020312BC FUN_020312BC: ; 0x020312BC push {r3-r7, lr} sub sp, #0x20 add r4, r0, #0x0 add r0, sp, #0x10 add r1, sp, #0x4 bl FUN_0201265C ldr r0, _02031340 ; =0x021C48B8 ldr r6, [sp, #0x10] mov r5, #0x0 lsr r7, r6, #0x1c lsl r5, r5, #0x4 ldr r1, [sp, #0xc] ldr r0, [r0, #0x2c] lsl r6, r6, #0x4 add r3, r1, r0 ldr r0, [sp, #0x18] orr r5, r7 str r0, [sp, #0x0] ldr r0, [sp, #0x14] ldr r1, [sp, #0x4] add r6, r0, r6 ldr r0, _02031344 ; =0x00000000 ldr r2, [sp, #0x8] adc r0, r5 lsr r5, r6, #0x1b lsl r0, r0, #0x5 orr r0, r5 ldr r5, [sp, #0x0] lsl r6, r6, #0x5 add r6, r5, r6 ldr r5, _02031344 ; =0x00000000 adc r5, r0 lsr r0, r6, #0x1b lsl r5, r5, #0x5 orr r5, r0 lsl r0, r6, #0x5 add r6, r1, r0 ldr r1, _02031344 ; =0x00000000 adc r1, r5 lsr r0, r6, #0x1a lsl r1, r1, #0x6 orr r1, r0 lsl r0, r6, #0x6 add r5, r2, r0 ldr r2, _02031344 ; =0x00000000 adc r2, r1 lsr r0, r5, #0x1a lsl r1, r2, #0x6 orr r1, r0 lsl r0, r5, #0x6 add r2, r3, r0 ldr r0, _02031344 ; =0x00000000 str r2, [r4, #0x0] adc r0, r1 str r0, [r4, #0x4] ldr r1, _02031348 ; =0x6C078965 ldr r0, _0203134C ; =0x5D588B65 str r1, [r4, #0x8] str r0, [r4, #0xc] ldr r0, _02031350 ; =0x00269EC3 str r0, [r4, #0x10] mov r0, #0x0 str r0, [r4, #0x14] add sp, #0x20 pop {r3-r7, pc} .balign 4 _02031340: .word 0x021C48B8 _02031344: .word 0x00000000 _02031348: .word 0x6C078965 _0203134C: .word 0x5D588B65 _02031350: .word 0x00269EC3 thumb_func_start FUN_02031354 FUN_02031354: ; 0x02031354 add r1, r0, #0x0 ldr r0, _02031364 ; =0x021C59F4 ldr r3, _02031368 ; =FUN_0202D830 ldr r2, [r0, #0x4] ldr r0, _0203136C ; =0x0000056C add r0, r2, r0 bx r3 nop _02031364: .word 0x021C59F4 _02031368: .word FUN_0202D830 _0203136C: .word 0x0000056C thumb_func_start FUN_02031370 FUN_02031370: ; 0x02031370 ldr r0, _0203137C ; =0x021C59F4 ldr r3, _02031380 ; =FUN_0202D4E4 ldr r1, [r0, #0x4] ldr r0, _02031384 ; =0x0000056C add r0, r1, r0 bx r3 .balign 4 _0203137C: .word 0x021C59F4 _02031380: .word FUN_0202D4E4 _02031384: .word 0x0000056C thumb_func_start FUN_02031388 FUN_02031388: ; 0x02031388 ldr r0, _02031394 ; =0x021C59F4 ldr r3, _02031398 ; =FUN_0202D4E4 ldr r1, [r0, #0x4] ldr r0, _0203139C ; =0x0000054C add r0, r1, r0 bx r3 .balign 4 _02031394: .word 0x021C59F4 _02031398: .word FUN_0202D4E4 _0203139C: .word 0x0000054C thumb_func_start FUN_020313A0 FUN_020313A0: ; 0x020313A0 ldr r1, _020313AC ; =0x021C59F4 ldr r2, [r1, #0x4] ldr r1, _020313B0 ; =0x00000687 strb r0, [r2, r1] bx lr nop _020313AC: .word 0x021C59F4 _020313B0: .word 0x00000687 thumb_func_start FUN_020313B4 FUN_020313B4: ; 0x020313B4 ldr r2, _020313C4 ; =0x021C59F4 ldr r2, [r2, #0x4] cmp r2, #0x0 beq _020313C2 add r2, r2, r1 ldr r1, _020313C8 ; =0x00000677 strb r0, [r2, r1] _020313C2: bx lr .balign 4 _020313C4: .word 0x021C59F4 _020313C8: .word 0x00000677 thumb_func_start FUN_020313CC FUN_020313CC: ; 0x020313CC ldr r1, _020313E4 ; =0x021C59F4 ldr r1, [r1, #0x4] cmp r1, #0x0 beq _020313E0 add r2, r1, r0 ldr r1, _020313E8 ; =0x00000677 ldrb r1, [r2, r1] cmp r1, #0xff beq _020313E0 add r0, r1, #0x0 _020313E0: bx lr nop _020313E4: .word 0x021C59F4 _020313E8: .word 0x00000677 thumb_func_start FUN_020313EC FUN_020313EC: ; 0x020313EC push {r3, lr} bl FUN_02033534 cmp r0, #0x13 bge _020313FA mov r0, #0x0 pop {r3, pc} _020313FA: bl FUN_021D8624 pop {r3, pc} thumb_func_start FUN_02031400 FUN_02031400: ; 0x02031400 push {r4, lr} add r4, r0, #0x0 bl FUN_02033534 cmp r0, #0x13 blt _02031430 ldr r2, _02031434 ; =0x021C59F4 mov r1, #0x63 ldr r0, [r2, #0x4] lsl r1, r1, #0x4 str r4, [r0, r1] cmp r4, #0x0 beq _02031430 ldr r3, [r2, #0x4] mov r4, #0x0 add r0, r1, #0x4 str r4, [r3, r0] add r0, r1, #0x0 ldr r3, [r2, #0x4] add r0, #0x8 str r4, [r3, r0] ldr r0, [r2, #0x4] add r1, #0xc str r4, [r0, r1] _02031430: pop {r4, pc} nop _02031434: .word 0x021C59F4 thumb_func_start FUN_02031438 FUN_02031438: ; 0x02031438 ldr r0, _0203144C ; =0x021C59F4 ldr r1, [r0, #0x4] ldr r0, _02031450 ; =0x00000681 ldrb r0, [r1, r0] cmp r0, #0x0 beq _02031448 mov r0, #0x1 bx lr _02031448: mov r0, #0x0 bx lr .balign 4 _0203144C: .word 0x021C59F4 _02031450: .word 0x00000681 thumb_func_start FUN_02031454 FUN_02031454: ; 0x02031454 ldr r0, _02031460 ; =0x021C59F4 mov r2, #0x1 ldr r1, [r0, #0x4] ldr r0, _02031464 ; =0x00000689 strb r2, [r1, r0] bx lr .balign 4 _02031460: .word 0x021C59F4 _02031464: .word 0x00000689 thumb_func_start FUN_02031468 FUN_02031468: ; 0x02031468 ldr r0, _02031478 ; =0x021C59F4 ldr r2, [r0, #0x4] cmp r2, #0x0 beq _02031476 ldr r0, _0203147C ; =0x0000068A mov r1, #0x1 strb r1, [r2, r0] _02031476: bx lr .balign 4 _02031478: .word 0x021C59F4 _0203147C: .word 0x0000068A thumb_func_start FUN_02031480 FUN_02031480: ; 0x02031480 push {r4, lr} ldr r1, _020314C8 ; =0x021C59FC ldr r1, [r1, #0x0] cmp r1, #0x0 bne _0203149C ldr r1, _020314CC ; =0x00000253 bl FUN_02016998 ldr r1, _020314C8 ; =0x021C59FC ldr r2, _020314CC ; =0x00000253 str r0, [r1, #0x0] mov r1, #0x0 blx MI_CpuFill8 _0203149C: ldr r1, _020314C8 ; =0x021C59FC mov r3, #0x0 mov r0, #0xff _020314A2: ldr r2, [r1, #0x0] add r2, r2, r3 add r3, r3, #0x1 strb r0, [r2, #0x10] cmp r3, #0x8 blt _020314A2 ldr r3, _020314C8 ; =0x021C59FC mov r1, #0x25 ldr r2, [r3, #0x0] lsl r1, r1, #0x4 strb r0, [r2, r1] ldr r4, [r3, #0x0] add r2, r1, #0x1 strb r0, [r4, r2] ldr r2, [r3, #0x0] mov r4, #0x0 add r0, r1, #0x2 strb r4, [r2, r0] pop {r4, pc} .balign 4 _020314C8: .word 0x021C59FC _020314CC: .word 0x00000253 thumb_func_start FUN_020314D0 FUN_020314D0: ; 0x020314D0 push {r3, lr} ldr r0, _020314E4 ; =0x021C59FC ldr r0, [r0, #0x0] bl FUN_02016A18 ldr r0, _020314E4 ; =0x021C59FC mov r1, #0x0 str r1, [r0, #0x0] pop {r3, pc} nop _020314E4: .word 0x021C59FC thumb_func_start FUN_020314E8 FUN_020314E8: ; 0x020314E8 ldr r0, _020314F8 ; =0x021C59FC ldr r0, [r0, #0x0] cmp r0, #0x0 beq _020314F4 mov r0, #0x1 bx lr _020314F4: mov r0, #0x0 bx lr .balign 4 _020314F8: .word 0x021C59FC thumb_func_start FUN_020314FC FUN_020314FC: ; 0x020314FC push {r3-r6, lr} sub sp, #0x4 ldrb r1, [r2, #0x0] add r5, r0, #0x0 add r0, sp, #0x0 strb r1, [r0, #0x0] bl FUN_02031190 cmp r0, #0x0 bne _02031556 add r0, sp, #0x0 strb r5, [r0, #0x1] ldrb r1, [r0, #0x0] strb r1, [r0, #0x2] add r1, sp, #0x0 mov r0, #0x12 add r1, #0x1 bl FUN_02030C4C ldr r6, _0203155C ; =0x021C59FC add r4, sp, #0x0 ldr r0, [r6, #0x0] ldrb r1, [r4, #0x0] add r0, r0, r5 mov r5, #0x0 strb r1, [r0, #0x10] _02031530: lsl r0, r5, #0x10 lsr r0, r0, #0x10 bl FUN_02030E7C cmp r0, #0x0 beq _02031548 ldr r0, [r6, #0x0] ldrb r1, [r4, #0x0] add r0, r0, r5 ldrb r0, [r0, #0x10] cmp r1, r0 bne _02031556 _02031548: add r5, r5, #0x1 cmp r5, #0x8 blt _02031530 mov r0, #0x11 add r1, sp, #0x0 bl FUN_02030C4C _02031556: add sp, #0x4 pop {r3-r6, pc} nop _0203155C: .word 0x021C59FC thumb_func_start FUN_02031560 FUN_02031560: ; 0x02031560 ldr r0, _02031570 ; =0x021C59FC ldrb r3, [r2, #0x1] ldr r1, [r0, #0x0] ldrb r0, [r2, #0x0] add r0, r1, r0 strb r3, [r0, #0x10] bx lr nop _02031570: .word 0x021C59FC thumb_func_start FUN_02031574 FUN_02031574: ; 0x02031574 ldr r0, _02031584 ; =0x021C59FC ldrb r2, [r2, #0x0] ldr r1, [r0, #0x0] mov r0, #0x25 lsl r0, r0, #0x4 strb r2, [r1, r0] bx lr nop _02031584: .word 0x021C59FC thumb_func_start FUN_02031588 FUN_02031588: ; 0x02031588 ldr r2, _0203159C ; =0x021C59FC ldr r1, _020315A0 ; =0x00000251 ldr r3, [r2, #0x0] strb r0, [r3, r1] ldr r2, [r2, #0x0] mov r3, #0x1 add r0, r1, #0x1 strb r3, [r2, r0] bx lr nop _0203159C: .word 0x021C59FC _020315A0: .word 0x00000251 thumb_func_start FUN_020315A4 FUN_020315A4: ; 0x020315A4 push {r3, lr} ldr r0, _020315D0 ; =0x021C59FC ldr r2, [r0, #0x0] cmp r2, #0x0 beq _020315CE ldr r1, _020315D4 ; =0x00000252 ldrb r0, [r2, r1] cmp r0, #0x0 beq _020315CE sub r1, r1, #0x1 mov r0, #0x10 add r1, r2, r1 bl FUN_020311D0 cmp r0, #0x0 beq _020315CE ldr r0, _020315D0 ; =0x021C59FC mov r2, #0x0 ldr r1, [r0, #0x0] ldr r0, _020315D4 ; =0x00000252 strb r2, [r1, r0] _020315CE: pop {r3, pc} .balign 4 _020315D0: .word 0x021C59FC _020315D4: .word 0x00000252 thumb_func_start FUN_020315D8 FUN_020315D8: ; 0x020315D8 ldr r1, _020315F8 ; =0x021C59FC ldr r2, [r1, #0x0] cmp r2, #0x0 bne _020315E4 mov r0, #0x1 bx lr _020315E4: mov r1, #0x25 lsl r1, r1, #0x4 ldrb r1, [r2, r1] cmp r1, r0 bne _020315F2 mov r0, #0x1 bx lr _020315F2: mov r0, #0x0 bx lr nop _020315F8: .word 0x021C59FC thumb_func_start FUN_020315FC FUN_020315FC: ; 0x020315FC ldr r1, _02031608 ; =0x021C59FC ldr r1, [r1, #0x0] add r0, r1, r0 ldrb r0, [r0, #0x10] bx lr nop _02031608: .word 0x021C59FC thumb_func_start FUN_0203160C FUN_0203160C: ; 0x0203160C push {r3-r4} lsl r4, r0, #0x1 ldr r0, _02031624 ; =0x021C59FC ldrb r3, [r2, #0x0] ldr r1, [r0, #0x0] strb r3, [r1, r4] ldr r0, [r0, #0x0] ldrb r1, [r2, #0x1] add r0, r0, r4 strb r1, [r0, #0x1] pop {r3-r4} bx lr .balign 4 _02031624: .word 0x021C59FC thumb_func_start FUN_02031628 FUN_02031628: ; 0x02031628 mov r0, #0x2 bx lr thumb_func_start FUN_0203162C FUN_0203162C: ; 0x0203162C push {r3, lr} add r2, sp, #0x0 strb r0, [r2, #0x0] strb r1, [r2, #0x1] mov r0, #0x13 add r1, sp, #0x0 bl FUN_020311D0 pop {r3, pc} .balign 4 thumb_func_start FUN_02031640 FUN_02031640: ; 0x02031640 ldr r2, _02031664 ; =0x021C59FC ldr r3, [r2, #0x0] cmp r3, #0x0 bne _0203164E mov r0, #0x0 mvn r0, r0 bx lr _0203164E: lsl r2, r0, #0x1 ldrb r0, [r3, r2] cmp r1, r0 bne _0203165C add r0, r3, r2 ldrb r0, [r0, #0x1] bx lr _0203165C: mov r0, #0x0 mvn r0, r0 bx lr nop _02031664: .word 0x021C59FC thumb_func_start FUN_02031668 FUN_02031668: ; 0x02031668 push {r3-r7, lr} mov r4, #0x0 ldr r6, _02031688 ; =0x021C59FC add r5, r4, #0x0 add r7, r4, #0x0 _02031672: ldr r0, [r6, #0x0] add r1, r7, #0x0 add r0, r0, r5 mov r2, #0x2 blx MI_CpuFill8 add r4, r4, #0x1 add r5, r5, #0x2 cmp r4, #0x8 blt _02031672 pop {r3-r7, pc} .balign 4 _02031688: .word 0x021C59FC thumb_func_start FUN_0203168C FUN_0203168C: ; 0x0203168C push {r3-r4} mov r4, #0x0 mov r0, #0x92 ldr r1, _020316A8 ; =0x021C59FC add r3, r4, #0x0 lsl r0, r0, #0x2 _02031698: ldr r2, [r1, #0x0] add r2, r2, r4 add r4, r4, #0x1 strb r3, [r2, r0] cmp r4, #0x8 blt _02031698 pop {r3-r4} bx lr .balign 4 _020316A8: .word 0x021C59FC thumb_func_start FUN_020316AC FUN_020316AC: ; 0x020316AC push {r4, lr} ldr r2, _020316DC ; =0x021C59FC ldr r3, [r2, #0x0] cmp r3, #0x0 beq _020316D8 add r4, r0, #0x0 mov r2, #0x46 mul r4, r2 add r3, #0x18 add r0, r1, #0x0 add r1, r3, r4 blx MI_CpuCopy8 ldr r1, _020316DC ; =0x021C59FC mov r0, #0x14 ldr r1, [r1, #0x0] add r1, #0x18 add r1, r1, r4 bl FUN_020311D0 mov r0, #0x1 pop {r4, pc} _020316D8: mov r0, #0x0 pop {r4, pc} .balign 4 _020316DC: .word 0x021C59FC thumb_func_start FUN_020316E0 FUN_020316E0: ; 0x020316E0 ldr r1, _02031700 ; =0x021C59FC ldr r3, [r1, #0x0] mov r1, #0x92 add r2, r3, r0 lsl r1, r1, #0x2 ldrb r1, [r2, r1] cmp r1, #0x0 beq _020316FA mov r1, #0x46 add r3, #0x18 mul r1, r0 add r0, r3, r1 bx lr _020316FA: mov r0, #0x0 bx lr nop _02031700: .word 0x021C59FC thumb_func_start FUN_02031704 FUN_02031704: ; 0x02031704 push {r3-r5, lr} ldr r3, _0203172C ; =0x021C59FC add r1, r0, #0x0 ldr r0, [r3, #0x0] mov r5, #0x1 add r4, r0, r1 mov r0, #0x92 lsl r0, r0, #0x2 strb r5, [r4, r0] ldr r4, [r3, #0x0] add r0, r2, #0x0 mov r2, #0x46 add r3, r1, #0x0 add r4, #0x18 mul r3, r2 add r1, r4, r3 blx MI_CpuCopy8 pop {r3-r5, pc} nop _0203172C: .word 0x021C59FC thumb_func_start FUN_02031730 FUN_02031730: ; 0x02031730 mov r0, #0x46 bx lr thumb_func_start FUN_02031734 FUN_02031734: ; 0x02031734 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _020317BC ; =0x021C5A00 add r4, r1, #0x0 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _020317B8 bl FUN_0202E49C mov r0, #0xf mov r1, #0x50 bl FUN_02016998 ldr r1, _020317BC ; =0x021C5A00 mov r2, #0x50 str r0, [r1, #0x0] mov r1, #0x0 blx MI_CpuFill8 ldr r0, _020317BC ; =0x021C5A00 mov r2, #0x32 ldr r1, [r0, #0x0] strh r2, [r1, #0x3a] ldr r1, [r0, #0x0] mov r2, #0x1 add r1, #0x43 strb r2, [r1, #0x0] ldr r0, [r0, #0x0] str r5, [r0, #0x28] add r0, r5, #0x0 bl FUN_020238F4 ldr r1, _020317BC ; =0x021C5A00 ldr r2, [r1, #0x0] str r0, [r2, #0x2c] ldr r0, [r1, #0x0] mov r2, #0x2 add r0, #0x3c strb r2, [r0, #0x0] ldr r0, [r1, #0x0] mov r2, #0x0 add r0, #0x3d strb r2, [r0, #0x0] ldr r0, [r1, #0x0] add r0, #0x48 strb r2, [r0, #0x0] ldr r0, [r1, #0x0] add r0, #0x3f strb r4, [r0, #0x0] ldr r0, [r1, #0x0] add r0, #0xc bl FUN_020312BC mov r0, #0x0 add r1, r0, #0x0 add r2, r0, #0x0 bl FUN_0202D8D0 cmp r4, #0x9 beq _020317B8 cmp r4, #0x11 beq _020317B8 cmp r4, #0xf beq _020317B8 bl FUN_02033E74 _020317B8: pop {r3-r5, pc} nop _020317BC: .word 0x021C5A00 thumb_func_start FUN_020317C0 FUN_020317C0: ; 0x020317C0 push {r3, lr} ldr r0, _0203180C ; =0x021C5A00 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _0203180A bl FUN_0202D918 ldr r0, _0203180C ; =0x021C5A00 ldr r0, [r0, #0x0] ldr r0, [r0, #0x0] cmp r0, #0x0 beq _020317DC bl FUN_02016A18 _020317DC: ldr r0, _0203180C ; =0x021C5A00 ldr r0, [r0, #0x0] add r0, #0x3f ldrb r0, [r0, #0x0] cmp r0, #0x13 blo _020317EE mov r0, #0x31 bl FUN_020168D0 _020317EE: bl FUN_02033ED0 bl FUN_0202E4F0 ldr r0, _0203180C ; =0x021C5A00 ldr r0, [r0, #0x0] bl FUN_02016A18 mov r0, #0xf bl FUN_020168D0 ldr r0, _0203180C ; =0x021C5A00 mov r1, #0x0 str r1, [r0, #0x0] _0203180A: pop {r3, pc} .balign 4 _0203180C: .word 0x021C5A00 thumb_func_start FUN_02031810 FUN_02031810: ; 0x02031810 ldr r0, _02031820 ; =0x021C5A00 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _0203181C mov r0, #0x1 bx lr _0203181C: mov r0, #0x0 bx lr .balign 4 _02031820: .word 0x021C5A00 thumb_func_start FUN_02031824 FUN_02031824: ; 0x02031824 push {r4, lr} add r4, r0, #0x0 ldr r0, _02031858 ; =0x021C5A00 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02031856 mov r2, #0xe mov r0, #0x3 mov r1, #0xf lsl r2, r2, #0xc bl FUN_02016828 add r0, r4, #0x0 mov r1, #0xa bl FUN_02031734 ldr r0, _02031858 ; =0x021C5A00 mov r1, #0x0 ldr r0, [r0, #0x0] add r0, #0x40 strb r1, [r0, #0x0] ldr r0, _0203185C ; =FUN_02031D30 mov r1, #0x32 bl FUN_02031D20 _02031856: pop {r4, pc} .balign 4 _02031858: .word 0x021C5A00 _0203185C: .word FUN_02031D30 thumb_func_start FUN_02031860 FUN_02031860: ; 0x02031860 push {r3, lr} ldr r0, _02031878 ; =0x021C5A00 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _02031876 bl FUN_02031468 ldr r0, _0203187C ; =FUN_020323CC mov r1, #0x0 bl FUN_02031D20 _02031876: pop {r3, pc} .balign 4 _02031878: .word 0x021C5A00 _0203187C: .word FUN_020323CC thumb_func_start FUN_02031880 FUN_02031880: ; 0x02031880 push {r3, lr} bl FUN_0202FC60 bl FUN_02031190 ldr r1, _0203189C ; =0x021C5A00 ldr r1, [r1, #0x0] strh r0, [r1, #0x38] ldr r0, _020318A0 ; =FUN_020321B8 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} nop _0203189C: .word 0x021C5A00 _020318A0: .word FUN_020321B8 thumb_func_start FUN_020318A4 FUN_020318A4: ; 0x020318A4 ldr r1, _020318B0 ; =0x021C5A00 ldr r1, [r1, #0x0] add r1, #0x4f strb r0, [r1, #0x0] bx lr nop _020318B0: .word 0x021C5A00 thumb_func_start FUN_020318B4 FUN_020318B4: ; 0x020318B4 ldr r3, _020318BC ; =FUN_02031D20 ldr r0, _020318C0 ; =FUN_02032028 mov r1, #0x0 bx r3 .balign 4 _020318BC: .word FUN_02031D20 _020318C0: .word FUN_02032028 thumb_func_start FUN_020318C4 FUN_020318C4: ; 0x020318C4 push {r4} sub sp, #0xc ldr r4, _0203190C ; =0x020EEC50 add r3, sp, #0x0 ldmia r4!, {r0-r1} add r2, r3, #0x0 stmia r3!, {r0-r1} ldr r0, [r4, #0x0] str r0, [r3, #0x0] ldr r0, _02031910 ; =0x021C5A00 ldr r0, [r0, #0x0] ldr r1, [r0, #0x24] cmp r0, #0x0 bne _020318E8 add sp, #0xc mov r0, #0x0 pop {r4} bx lr _020318E8: ldr r0, [sp, #0x0] cmp r0, #0x0 beq _02031904 _020318EE: ldr r0, [r2, #0x0] cmp r1, r0 bne _020318FC add sp, #0xc mov r0, #0x1 pop {r4} bx lr _020318FC: add r2, r2, #0x4 ldr r0, [r2, #0x0] cmp r0, #0x0 bne _020318EE _02031904: mov r0, #0x0 add sp, #0xc pop {r4} bx lr .balign 4 _0203190C: .word 0x020EEC50 _02031910: .word 0x021C5A00 thumb_func_start FUN_02031914 FUN_02031914: ; 0x02031914 ldr r3, _0203191C ; =FUN_02031D20 ldr r0, _02031920 ; =FUN_02032178 mov r1, #0x0 bx r3 .balign 4 _0203191C: .word FUN_02031D20 _02031920: .word FUN_02032178 thumb_func_start FUN_02031924 FUN_02031924: ; 0x02031924 ldr r0, _02031930 ; =0x021C5A00 mov r1, #0x1 ldr r0, [r0, #0x0] add r0, #0x4c strb r1, [r0, #0x0] bx lr .balign 4 _02031930: .word 0x021C5A00 thumb_func_start FUN_02031934 FUN_02031934: ; 0x02031934 push {r3, lr} bl FUN_0202E49C ldr r0, _02031944 ; =FUN_02032194 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} .balign 4 _02031944: .word FUN_02032194 thumb_func_start FUN_02031948 FUN_02031948: ; 0x02031948 push {r3-r7, lr} add r6, r0, #0x0 add r7, r1, #0x0 add r5, r2, #0x0 add r4, r3, #0x0 bl FUN_02030F40 cmp r0, #0x0 bne _02031980 ldr r2, _02031984 ; =0x00007080 mov r0, #0x3 mov r1, #0xf bl FUN_02016828 add r0, r6, #0x0 add r1, r7, #0x0 bl FUN_02031734 ldr r0, _02031988 ; =0x021C5A00 ldr r1, [r0, #0x0] add r1, #0x40 strb r5, [r1, #0x0] ldr r0, [r0, #0x0] mov r1, #0x0 str r4, [r0, #0x30] ldr r0, _0203198C ; =FUN_020321D0 bl FUN_02031D20 _02031980: pop {r3-r7, pc} nop _02031984: .word 0x00007080 _02031988: .word 0x021C5A00 _0203198C: .word FUN_020321D0 thumb_func_start FUN_02031990 FUN_02031990: ; 0x02031990 push {r3-r7, lr} add r6, r0, #0x0 add r7, r1, #0x0 add r5, r2, #0x0 add r4, r3, #0x0 bl FUN_02030F40 cmp r0, #0x0 bne _020319C8 ldr r2, _020319CC ; =0x00007080 mov r0, #0x3 mov r1, #0xf bl FUN_02016828 add r0, r6, #0x0 add r1, r7, #0x0 bl FUN_02031734 ldr r0, _020319D0 ; =0x021C5A00 ldr r1, [r0, #0x0] add r1, #0x40 strb r5, [r1, #0x0] ldr r0, [r0, #0x0] mov r1, #0x0 str r4, [r0, #0x30] ldr r0, _020319D4 ; =FUN_0203224C bl FUN_02031D20 _020319C8: pop {r3-r7, pc} nop _020319CC: .word 0x00007080 _020319D0: .word 0x021C5A00 _020319D4: .word FUN_0203224C thumb_func_start FUN_020319D8 FUN_020319D8: ; 0x020319D8 ldr r1, _020319E8 ; =0x021C5A00 ldr r3, _020319EC ; =FUN_02031D20 ldr r1, [r1, #0x0] add r1, #0x3e strb r0, [r1, #0x0] ldr r0, _020319F0 ; =FUN_02032298 mov r1, #0x0 bx r3 .balign 4 _020319E8: .word 0x021C5A00 _020319EC: .word FUN_02031D20 _020319F0: .word FUN_02032298 thumb_func_start FUN_020319F4 FUN_020319F4: ; 0x020319F4 push {r3, lr} bl FUN_0202FCA8 ldr r0, _02031A04 ; =FUN_02032364 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} .balign 4 _02031A04: .word FUN_02032364 thumb_func_start FUN_02031A08 FUN_02031A08: ; 0x02031A08 push {r3, lr} ldr r0, _02031A1C ; =0x021C5A00 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _02031A1A ldr r0, _02031A20 ; =FUN_02032440 mov r1, #0x5 bl FUN_02031D20 _02031A1A: pop {r3, pc} .balign 4 _02031A1C: .word 0x021C5A00 _02031A20: .word FUN_02032440 thumb_func_start FUN_02031A24 FUN_02031A24: ; 0x02031A24 ldr r3, _02031A28 ; =FUN_0202D298 bx r3 .balign 4 _02031A28: .word FUN_0202D298 thumb_func_start FUN_02031A2C FUN_02031A2C: ; 0x02031A2C push {r4} sub sp, #0xc ldr r4, _02031A74 ; =0x020EEC5C add r3, sp, #0x0 ldmia r4!, {r0-r1} add r2, r3, #0x0 stmia r3!, {r0-r1} ldr r0, [r4, #0x0] str r0, [r3, #0x0] ldr r0, _02031A78 ; =0x021C5A00 ldr r0, [r0, #0x0] ldr r1, [r0, #0x24] cmp r0, #0x0 bne _02031A50 add sp, #0xc mov r0, #0x0 pop {r4} bx lr _02031A50: ldr r0, [sp, #0x0] cmp r0, #0x0 beq _02031A6C _02031A56: ldr r0, [r2, #0x0] cmp r1, r0 bne _02031A64 add sp, #0xc mov r0, #0x1 pop {r4} bx lr _02031A64: add r2, r2, #0x4 ldr r0, [r2, #0x0] cmp r0, #0x0 bne _02031A56 _02031A6C: mov r0, #0x0 add sp, #0xc pop {r4} bx lr .balign 4 _02031A74: .word 0x020EEC5C _02031A78: .word 0x021C5A00 thumb_func_start FUN_02031A7C FUN_02031A7C: ; 0x02031A7C push {r4, lr} add r4, r0, #0x0 ldr r0, _02031ABC ; =0x021C5A00 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02031ABA ldr r2, _02031AC0 ; =0x00007080 mov r0, #0x3 mov r1, #0xf bl FUN_02016828 cmp r0, #0x0 bne _02031A9A bl FUN_020335E0 _02031A9A: add r0, r4, #0x0 mov r1, #0x9 bl FUN_02031734 ldr r0, _02031ABC ; =0x021C5A00 mov r2, #0x9 ldr r1, [r0, #0x0] add r1, #0x3f strb r2, [r1, #0x0] ldr r0, [r0, #0x0] mov r1, #0x0 add r0, #0x40 strb r1, [r0, #0x0] ldr r0, _02031AC4 ; =FUN_02032478 bl FUN_02031D20 _02031ABA: pop {r4, pc} .balign 4 _02031ABC: .word 0x021C5A00 _02031AC0: .word 0x00007080 _02031AC4: .word FUN_02032478 thumb_func_start FUN_02031AC8 FUN_02031AC8: ; 0x02031AC8 push {r3, lr} ldr r1, _02031AEC ; =0x021C5A00 ldr r2, [r1, #0x0] add r2, #0x3e strb r0, [r2, #0x0] ldr r0, [r1, #0x0] mov r2, #0x3 strh r2, [r0, #0x38] mov r0, #0x1 bl FUN_0202D344 bl FUN_02033E74 ldr r0, _02031AF0 ; =FUN_02032628 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} .balign 4 _02031AEC: .word 0x021C5A00 _02031AF0: .word FUN_02032628 thumb_func_start FUN_02031AF4 FUN_02031AF4: ; 0x02031AF4 ldr r0, _02031B20 ; =0x021C5A00 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02031B02 mov r0, #0x0 mvn r0, r0 bx lr _02031B02: ldr r1, [r0, #0x24] ldr r0, _02031B24 ; =FUN_0203279C cmp r1, r0 bne _02031B0E mov r0, #0x1 bx lr _02031B0E: ldr r0, _02031B28 ; =FUN_020327B4 cmp r1, r0 bne _02031B18 mov r0, #0x1 b _02031B1A _02031B18: mov r0, #0x0 _02031B1A: neg r0, r0 bx lr nop _02031B20: .word 0x021C5A00 _02031B24: .word FUN_0203279C _02031B28: .word FUN_020327B4 thumb_func_start FUN_02031B2C FUN_02031B2C: ; 0x02031B2C ldr r0, _02031B48 ; =0x021C5A00 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02031B38 mov r0, #0x0 bx lr _02031B38: ldr r1, [r0, #0x24] ldr r0, _02031B4C ; =FUN_020327FC cmp r1, r0 bne _02031B44 mov r0, #0x1 bx lr _02031B44: mov r0, #0x0 bx lr .balign 4 _02031B48: .word 0x021C5A00 _02031B4C: .word FUN_020327FC thumb_func_start FUN_02031B50 FUN_02031B50: ; 0x02031B50 push {r3, lr} mov r0, #0x0 bl FUN_0202D344 ldr r0, _02031BC4 ; =0x021C5A00 ldr r1, [r0, #0x0] add r0, r1, #0x0 add r0, #0x44 ldrb r0, [r0, #0x0] cmp r0, #0x1 bne _02031B78 add r0, r1, #0x0 add r0, #0x45 ldrb r0, [r0, #0x0] cmp r0, #0x1 bne _02031B78 add r1, #0x3f ldrb r0, [r1, #0x0] cmp r0, #0x9 bne _02031B80 _02031B78: mov r0, #0x0 add r1, r0, #0x0 bl FUN_020334E8 _02031B80: bl FUN_02033ED0 ldr r0, _02031BC4 ; =0x021C5A00 mov r2, #0x9 ldr r1, [r0, #0x0] add r1, #0x3f strb r2, [r1, #0x0] ldr r1, [r0, #0x0] mov r2, #0x0 add r1, #0x48 strb r2, [r1, #0x0] ldr r0, [r0, #0x0] add r0, #0x3c ldrb r0, [r0, #0x0] bl FUN_0202D1B0 bl FUN_02031190 cmp r0, #0x0 bne _02031BB8 mov r0, #0x1 bl FUN_0202D36C ldr r0, _02031BC8 ; =FUN_020323DC mov r1, #0xf bl FUN_02031D20 pop {r3, pc} _02031BB8: ldr r0, _02031BCC ; =FUN_02032424 mov r1, #0x5 bl FUN_02031D20 pop {r3, pc} nop _02031BC4: .word 0x021C5A00 _02031BC8: .word FUN_020323DC _02031BCC: .word FUN_02032424 thumb_func_start FUN_02031BD0 FUN_02031BD0: ; 0x02031BD0 ldr r0, _02031BEC ; =0x021C5A00 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02031BDC mov r0, #0x1 bx lr _02031BDC: ldr r1, [r0, #0x24] ldr r0, _02031BF0 ; =FUN_020324F8 cmp r1, r0 beq _02031BE8 mov r0, #0x1 bx lr _02031BE8: mov r0, #0x0 bx lr .balign 4 _02031BEC: .word 0x021C5A00 _02031BF0: .word FUN_020324F8 thumb_func_start FUN_02031BF4 FUN_02031BF4: ; 0x02031BF4 push {r3, lr} ldr r0, _02031C08 ; =0x021C5A00 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _02031C06 ldr r0, _02031C0C ; =FUN_02032440 mov r1, #0x5 bl FUN_02031D20 _02031C06: pop {r3, pc} .balign 4 _02031C08: .word 0x021C5A00 _02031C0C: .word FUN_02032440 thumb_func_start FUN_02031C10 FUN_02031C10: ; 0x02031C10 push {r3, lr} ldr r0, _02031C28 ; =0x021C5A00 ldr r1, [r0, #0x0] cmp r1, #0x0 beq _02031C24 mov r0, #0x1 add r1, #0x48 strb r0, [r1, #0x0] bl FUN_0202D344 _02031C24: pop {r3, pc} nop _02031C28: .word 0x021C5A00 thumb_func_start FUN_02031C2C FUN_02031C2C: ; 0x02031C2C push {r3, lr} ldr r0, _02031C4C ; =0x021C5A00 ldr r1, [r0, #0x0] cmp r1, #0x0 beq _02031C48 mov r0, #0x1 add r1, #0x48 strb r0, [r1, #0x0] bl FUN_0202D344 ldr r0, _02031C50 ; =FUN_02032850 mov r1, #0x0 bl FUN_02031D20 _02031C48: pop {r3, pc} nop _02031C4C: .word 0x021C5A00 _02031C50: .word FUN_02032850 thumb_func_start FUN_02031C54 FUN_02031C54: ; 0x02031C54 ldr r0, _02031C60 ; =0x021C5A00 mov r1, #0x12 ldr r0, [r0, #0x0] add r0, #0x3f strb r1, [r0, #0x0] bx lr .balign 4 _02031C60: .word 0x021C5A00 thumb_func_start FUN_02031C64 FUN_02031C64: ; 0x02031C64 ldr r0, _02031C70 ; =0x021C5A00 mov r1, #0x9 ldr r0, [r0, #0x0] add r0, #0x3f strb r1, [r0, #0x0] bx lr .balign 4 _02031C70: .word 0x021C5A00 thumb_func_start FUN_02031C74 FUN_02031C74: ; 0x02031C74 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_02030F40 cmp r0, #0x0 bne _02031C9C ldr r2, _02031CA0 ; =0x00007080 mov r0, #0x3 mov r1, #0xf bl FUN_02016828 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02031734 ldr r0, _02031CA4 ; =FUN_02032E00 mov r1, #0x0 bl FUN_02031D20 _02031C9C: pop {r3-r5, pc} nop _02031CA0: .word 0x00007080 _02031CA4: .word FUN_02032E00 thumb_func_start FUN_02031CA8 FUN_02031CA8: ; 0x02031CA8 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_02030F40 cmp r0, #0x0 bne _02031CD0 ldr r2, _02031CD4 ; =0x00007080 mov r0, #0x3 mov r1, #0xf bl FUN_02016828 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02031734 ldr r0, _02031CD8 ; =FUN_02032E48 mov r1, #0x0 bl FUN_02031D20 _02031CD0: pop {r3-r5, pc} nop _02031CD4: .word 0x00007080 _02031CD8: .word FUN_02032E48 thumb_func_start FUN_02031CDC FUN_02031CDC: ; 0x02031CDC push {r3, lr} ldr r0, _02031D1C ; =0x021C5A00 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _02031CEE ldr r0, [r0, #0x24] cmp r0, #0x0 beq _02031CEE blx r0 _02031CEE: bl FUN_02033590 cmp r0, #0x0 beq _02031D04 blx FUN_021DDB08 mov r1, #0x3 sub r0, r1, r0 bl FUN_02033EEC pop {r3, pc} _02031D04: bl FUN_0202EDF8 cmp r0, #0x0 beq _02031D18 blx FUN_020D8B94 mov r1, #0x3 sub r0, r1, r0 bl FUN_02033EEC _02031D18: pop {r3, pc} nop _02031D1C: .word 0x021C5A00 thumb_func_start FUN_02031D20 FUN_02031D20: ; 0x02031D20 ldr r2, _02031D2C ; =0x021C5A00 ldr r3, [r2, #0x0] str r0, [r3, #0x24] ldr r0, [r2, #0x0] strh r1, [r0, #0x3a] bx lr .balign 4 _02031D2C: .word 0x021C5A00 thumb_func_start FUN_02031D30 FUN_02031D30: ; 0x02031D30 push {r3-r5, lr} ldr r0, _02031DF8 ; =0x021C5A00 ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3a] cmp r0, #0x0 beq _02031D42 sub r0, r0, #0x1 strh r0, [r1, #0x3a] pop {r3-r5, pc} _02031D42: bl FUN_0202E4C8 cmp r0, #0x0 beq _02031DF6 ldr r0, _02031DF8 ; =0x021C5A00 ldr r0, [r0, #0x0] ldr r0, [r0, #0x2c] bl FUN_0202E29C ldr r0, _02031DF8 ; =0x021C5A00 mov r1, #0x0 ldr r0, [r0, #0x0] ldr r0, [r0, #0x28] bl FUN_0202DB14 mov r0, #0x1 bl FUN_02031268 bl FUN_02030FA8 ldr r0, _02031DF8 ; =0x021C5A00 ldr r1, [r0, #0x0] add r0, r1, #0x0 add r0, #0x4a ldrb r0, [r0, #0x0] cmp r0, #0x0 beq _02031DC8 add r1, #0x43 ldrb r1, [r1, #0x0] mov r0, #0x1 mov r2, #0x7d lsl r2, r2, #0x2 add r3, r0, #0x0 bl FUN_0202F918 cmp r0, #0x0 beq _02031DF6 ldr r0, _02031DF8 ; =0x021C5A00 ldr r5, [r0, #0x0] add r4, r5, #0x0 add r4, #0xc ldr r0, [r4, #0x8] ldr r1, [r4, #0xc] ldr r2, [r5, #0xc] ldr r3, [r4, #0x4] blx FUN_020EBC30 ldr r2, [r4, #0x10] ldr r3, [r4, #0x14] add r0, r2, r0 adc r3, r1 str r0, [r5, #0xc] str r3, [r4, #0x4] add r0, r3, #0x0 mov r1, #0x0 mov r2, #0x14 mov r3, #0x0 blx FUN_020EBC30 mov r0, #0x0 add r5, #0x43 strb r0, [r5, #0x0] ldr r0, _02031DFC ; =FUN_020320C4 add r1, #0x14 bl FUN_02031D20 pop {r3-r5, pc} _02031DC8: mov r0, #0x1 mov r2, #0x7d add r1, r0, #0x0 lsl r2, r2, #0x2 bl FUN_0202F950 cmp r0, #0x0 beq _02031DF6 ldr r0, _02031DF8 ; =0x021C5A00 ldr r0, [r0, #0x0] add r0, #0x4c ldrb r0, [r0, #0x0] cmp r0, #0x0 beq _02031DEE ldr r0, _02031E00 ; =FUN_020323B8 mov r1, #0x0 bl FUN_02031D20 pop {r3-r5, pc} _02031DEE: ldr r0, _02031E04 ; =FUN_02031EE0 mov r1, #0x40 bl FUN_02031D20 _02031DF6: pop {r3-r5, pc} .balign 4 _02031DF8: .word 0x021C5A00 _02031DFC: .word FUN_020320C4 _02031E00: .word FUN_020323B8 _02031E04: .word FUN_02031EE0 thumb_func_start FUN_02031E08 FUN_02031E08: ; 0x02031E08 push {r3-r5, lr} bl FUN_0202EE0C cmp r0, #0x0 beq _02031E7C mov r0, #0x1 bl FUN_02031268 bl FUN_02030FA8 ldr r0, _02031E80 ; =0x021C5A00 ldr r0, [r0, #0x0] add r0, #0x4a ldrb r0, [r0, #0x0] cmp r0, #0x0 beq _02031E32 ldr r0, _02031E84 ; =FUN_02032058 mov r1, #0x0 bl FUN_02031D20 pop {r3-r5, pc} _02031E32: mov r2, #0x7d mov r0, #0x0 mov r1, #0x1 lsl r2, r2, #0x2 bl FUN_0202F950 cmp r0, #0x0 beq _02031E7C ldr r0, _02031E80 ; =0x021C5A00 ldr r5, [r0, #0x0] add r4, r5, #0x0 add r4, #0xc ldr r0, [r4, #0x8] ldr r1, [r4, #0xc] ldr r2, [r5, #0xc] ldr r3, [r4, #0x4] blx FUN_020EBC30 ldr r2, [r4, #0x10] ldr r3, [r4, #0x14] add r0, r2, r0 adc r3, r1 str r0, [r5, #0xc] mov r1, #0x0 str r3, [r4, #0x4] lsr r0, r3, #0x1a lsl r1, r1, #0x6 orr r1, r0 ldrh r0, [r5, #0x38] cmp r0, #0x0 beq _02031E76 lsl r1, r0, #0x6 mov r0, #0x0 strh r0, [r5, #0x38] _02031E76: ldr r0, _02031E88 ; =FUN_02031EE0 bl FUN_02031D20 _02031E7C: pop {r3-r5, pc} nop _02031E80: .word 0x021C5A00 _02031E84: .word FUN_02032058 _02031E88: .word FUN_02031EE0 thumb_func_start FUN_02031E8C FUN_02031E8C: ; 0x02031E8C push {r3-r5, lr} bl FUN_0202EE0C cmp r0, #0x0 beq _02031ED6 mov r0, #0x0 mov r2, #0x7d add r1, r0, #0x0 lsl r2, r2, #0x2 bl FUN_0202F950 cmp r0, #0x0 beq _02031ED6 ldr r0, _02031ED8 ; =0x021C5A00 ldr r4, [r0, #0x0] add r5, r4, #0x0 add r5, #0xc ldr r0, [r5, #0x8] ldr r1, [r5, #0xc] ldr r2, [r4, #0xc] ldr r3, [r5, #0x4] blx FUN_020EBC30 ldr r2, [r5, #0x10] ldr r3, [r5, #0x14] add r0, r2, r0 adc r3, r1 str r0, [r4, #0xc] mov r1, #0x0 lsr r2, r3, #0x1b lsl r1, r1, #0x5 orr r1, r2 ldr r0, _02031EDC ; =FUN_02031EE0 add r1, #0x10 str r3, [r5, #0x4] bl FUN_02031D20 _02031ED6: pop {r3-r5, pc} .balign 4 _02031ED8: .word 0x021C5A00 _02031EDC: .word FUN_02031EE0 thumb_func_start FUN_02031EE0 FUN_02031EE0: ; 0x02031EE0 push {r3, lr} bl FUN_0202EA54 ldr r0, _02031F54 ; =0x021C5A00 ldr r1, [r0, #0x0] add r0, r1, #0x0 add r0, #0x4f ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _02031F50 add r1, #0x4b ldrb r0, [r1, #0x0] cmp r0, #0x0 bne _02031F50 bl FUN_0202E8F4 mov r1, #0x0 mvn r1, r1 cmp r0, r1 beq _02031F1A ldr r1, _02031F54 ; =0x021C5A00 ldr r1, [r1, #0x0] add r1, #0x3e strb r0, [r1, #0x0] ldr r0, _02031F58 ; =FUN_02031F60 mov r1, #0x20 bl FUN_02031D20 pop {r3, pc} _02031F1A: ldr r0, _02031F54 ; =0x021C5A00 ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3a] cmp r0, #0x0 beq _02031F2A sub r0, r0, #0x1 strh r0, [r1, #0x3a] pop {r3, pc} _02031F2A: bl FUN_0202E950 mov r1, #0x0 mvn r1, r1 cmp r0, r1 beq _02031F48 ldr r1, _02031F54 ; =0x021C5A00 ldr r1, [r1, #0x0] add r1, #0x3e strb r0, [r1, #0x0] ldr r0, _02031F58 ; =FUN_02031F60 mov r1, #0x20 bl FUN_02031D20 pop {r3, pc} _02031F48: ldr r0, _02031F5C ; =FUN_02032028 mov r1, #0x0 bl FUN_02031D20 _02031F50: pop {r3, pc} nop _02031F54: .word 0x021C5A00 _02031F58: .word FUN_02031F60 _02031F5C: .word FUN_02032028 thumb_func_start FUN_02031F60 FUN_02031F60: ; 0x02031F60 push {r3, lr} bl FUN_0202EA54 ldr r0, _02031FBC ; =0x021C5A00 ldr r0, [r0, #0x0] add r0, #0x3e ldrb r0, [r0, #0x0] bl FUN_0202E8A0 cmp r0, #0x0 beq _02031F90 ldr r0, _02031FBC ; =0x021C5A00 ldr r0, [r0, #0x0] add r0, #0x3e ldrb r0, [r0, #0x0] bl FUN_0202FB18 cmp r0, #0x0 beq _02031F90 ldr r0, _02031FC0 ; =FUN_02031FC8 mov r1, #0x64 bl FUN_02031D20 pop {r3, pc} _02031F90: bl FUN_020311F0 cmp r0, #0x0 beq _02031FA2 ldr r0, _02031FC4 ; =FUN_02032028 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _02031FA2: ldr r0, _02031FBC ; =0x021C5A00 ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3a] cmp r0, #0x0 beq _02031FB2 sub r0, r0, #0x1 strh r0, [r1, #0x3a] pop {r3, pc} _02031FB2: ldr r0, _02031FC4 ; =FUN_02032028 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} .balign 4 _02031FBC: .word 0x021C5A00 _02031FC0: .word FUN_02031FC8 _02031FC4: .word FUN_02032028 thumb_func_start FUN_02031FC8 FUN_02031FC8: ; 0x02031FC8 push {r3, lr} bl FUN_02031190 bl FUN_02030E7C cmp r0, #0x0 beq _02031FEE bl FUN_0202FC60 mov r0, #0x0 bl FUN_02031268 bl FUN_02030FA8 ldr r0, _0203201C ; =FUN_0203213C mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _02031FEE: bl FUN_020311F0 cmp r0, #0x0 beq _02032000 ldr r0, _02032020 ; =FUN_02032028 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _02032000: ldr r0, _02032024 ; =0x021C5A00 ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3a] cmp r0, #0x0 beq _02032010 sub r0, r0, #0x1 strh r0, [r1, #0x3a] pop {r3, pc} _02032010: ldr r0, _02032020 ; =FUN_02032028 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} nop _0203201C: .word FUN_0203213C _02032020: .word FUN_02032028 _02032024: .word 0x021C5A00 thumb_func_start FUN_02032028 FUN_02032028: ; 0x02032028 push {r3, lr} bl FUN_0202E6F0 cmp r0, #0x0 beq _0203203A ldr r0, _0203203C ; =FUN_02032058 mov r1, #0x0 bl FUN_02031D20 _0203203A: pop {r3, pc} .balign 4 _0203203C: .word FUN_02032058 thumb_func_start FUN_02032040 FUN_02032040: ; 0x02032040 push {r3, lr} bl FUN_0202E6F0 cmp r0, #0x0 beq _02032052 ldr r0, _02032054 ; =FUN_02031E8C mov r1, #0x0 bl FUN_02031D20 _02032052: pop {r3, pc} .balign 4 _02032054: .word FUN_02031E8C thumb_func_start FUN_02032058 FUN_02032058: ; 0x02032058 push {r3-r5, lr} bl FUN_0202EE0C cmp r0, #0x0 beq _020320BA mov r0, #0x1 bl FUN_02031268 ldr r1, _020320BC ; =0x021C5A00 mov r2, #0x7d ldr r1, [r1, #0x0] mov r0, #0x0 add r1, #0x43 ldrb r1, [r1, #0x0] lsl r2, r2, #0x2 mov r3, #0x1 bl FUN_0202F918 cmp r0, #0x0 beq _020320BA ldr r0, _020320BC ; =0x021C5A00 ldr r5, [r0, #0x0] add r4, r5, #0x0 add r4, #0xc ldr r0, [r4, #0x8] ldr r1, [r4, #0xc] ldr r2, [r5, #0xc] ldr r3, [r4, #0x4] blx FUN_020EBC30 ldr r2, [r4, #0x10] ldr r3, [r4, #0x14] add r0, r2, r0 adc r3, r1 str r0, [r5, #0xc] str r3, [r4, #0x4] add r0, r3, #0x0 mov r1, #0x0 mov r2, #0x14 mov r3, #0x0 blx FUN_020EBC30 mov r0, #0x0 add r5, #0x43 strb r0, [r5, #0x0] ldr r0, _020320C0 ; =FUN_020320C4 add r1, #0x14 bl FUN_02031D20 _020320BA: pop {r3-r5, pc} .balign 4 _020320BC: .word 0x021C5A00 _020320C0: .word FUN_020320C4 thumb_func_start FUN_020320C4 FUN_020320C4: ; 0x020320C4 push {r3, lr} bl FUN_020311E8 cmp r0, #0x0 beq _020320E2 ldr r0, _0203210C ; =0x021C5A00 mov r1, #0x1 ldr r0, [r0, #0x0] add r0, #0x43 strb r1, [r0, #0x0] ldr r0, _02032110 ; =FUN_02032118 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _020320E2: ldr r0, _0203210C ; =0x021C5A00 ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3a] cmp r0, #0x0 beq _020320F2 sub r0, r0, #0x1 strh r0, [r1, #0x3a] pop {r3, pc} _020320F2: add r1, #0x4a ldrb r0, [r1, #0x0] cmp r0, #0x0 bne _0203210A bl FUN_0202E6F0 cmp r0, #0x0 beq _0203210A ldr r0, _02032114 ; =FUN_02032040 mov r1, #0x2 bl FUN_02031D20 _0203210A: pop {r3, pc} .balign 4 _0203210C: .word 0x021C5A00 _02032110: .word FUN_02032118 _02032114: .word FUN_02032040 thumb_func_start FUN_02032118 FUN_02032118: ; 0x02032118 push {r3, lr} mov r0, #0x0 bl FUN_02031268 mov r0, #0x1 bl FUN_0202EE84 bl FUN_02030FA8 ldr r0, _02032134 ; =FUN_02032138 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} .balign 4 _02032134: .word FUN_02032138 thumb_func_start FUN_02032138 FUN_02032138: ; 0x02032138 bx lr .balign 4 thumb_func_start FUN_0203213C FUN_0203213C: ; 0x0203213C bx lr .balign 4 thumb_func_start FUN_02032140 FUN_02032140: ; 0x02032140 push {r3, lr} ldr r0, _02032170 ; =0x021C5A00 ldr r0, [r0, #0x0] add r0, #0x3f ldrb r0, [r0, #0x0] cmp r0, #0x13 bhs _02032166 bl FUN_0202EE0C cmp r0, #0x0 beq _0203216E mov r0, #0x1 bl FUN_02031268 bl FUN_02030FA8 mov r0, #0x1 bl FUN_0202E7B0 _02032166: ldr r0, _02032174 ; =FUN_020323B8 mov r1, #0x0 bl FUN_02031D20 _0203216E: pop {r3, pc} .balign 4 _02032170: .word 0x021C5A00 _02032174: .word FUN_020323B8 thumb_func_start FUN_02032178 FUN_02032178: ; 0x02032178 push {r3, lr} bl FUN_0202E6F0 cmp r0, #0x0 beq _0203218E bl FUN_0202FC60 ldr r0, _02032190 ; =FUN_02032140 mov r1, #0x0 bl FUN_02031D20 _0203218E: pop {r3, pc} .balign 4 _02032190: .word FUN_02032140 thumb_func_start FUN_02032194 FUN_02032194: ; 0x02032194 push {r3, lr} bl FUN_0202E4C8 cmp r0, #0x0 beq _020321B0 mov r0, #0x0 bl FUN_0202E7B0 bl FUN_0202FC60 ldr r0, _020321B4 ; =FUN_02031E08 mov r1, #0x0 bl FUN_02031D20 _020321B0: pop {r3, pc} nop _020321B4: .word FUN_02031E08 thumb_func_start FUN_020321B8 FUN_020321B8: ; 0x020321B8 push {r3, lr} bl FUN_0202E6F0 cmp r0, #0x0 beq _020321CA ldr r0, _020321CC ; =FUN_02031E08 mov r1, #0x0 bl FUN_02031D20 _020321CA: pop {r3, pc} .balign 4 _020321CC: .word FUN_02031E08 thumb_func_start FUN_020321D0 FUN_020321D0: ; 0x020321D0 push {r3, lr} bl FUN_0202E4C8 cmp r0, #0x0 beq _0203220C ldr r0, _02032210 ; =0x021C5A00 ldr r0, [r0, #0x0] ldr r0, [r0, #0x2c] bl FUN_0202E29C ldr r0, _02032210 ; =0x021C5A00 ldr r1, [r0, #0x0] ldr r0, [r1, #0x28] ldr r1, [r1, #0x30] bl FUN_0202DB14 mov r0, #0x1 add r1, r0, #0x0 lsl r2, r0, #0x9 add r3, r0, #0x0 bl FUN_0202F918 cmp r0, #0x0 beq _0203220C bl FUN_0202FA10 ldr r0, _02032214 ; =FUN_02032218 mov r1, #0x0 bl FUN_02031D20 _0203220C: pop {r3, pc} nop _02032210: .word 0x021C5A00 _02032214: .word FUN_02032218 thumb_func_start FUN_02032218 FUN_02032218: ; 0x02032218 push {r3, lr} bl FUN_02031190 bl FUN_02030E7C cmp r0, #0x0 beq _0203222E ldr r0, _02032230 ; =FUN_02032234 mov r1, #0x0 bl FUN_02031D20 _0203222E: pop {r3, pc} .balign 4 _02032230: .word FUN_02032234 thumb_func_start FUN_02032234 FUN_02032234: ; 0x02032234 push {r3, lr} bl FUN_02030F40 cmp r0, #0x0 bne _02032246 ldr r0, _02032248 ; =FUN_020323BC mov r1, #0x0 bl FUN_02031D20 _02032246: pop {r3, pc} .balign 4 _02032248: .word FUN_020323BC thumb_func_start FUN_0203224C FUN_0203224C: ; 0x0203224C push {r3, lr} bl FUN_0202E4C8 cmp r0, #0x0 beq _02032286 ldr r0, _02032288 ; =0x021C5A00 ldr r0, [r0, #0x0] ldr r0, [r0, #0x2c] bl FUN_0202E29C ldr r0, _02032288 ; =0x021C5A00 ldr r1, [r0, #0x0] ldr r0, [r1, #0x28] ldr r1, [r1, #0x30] bl FUN_0202DB14 mov r0, #0x1 add r1, r0, #0x0 lsl r2, r0, #0x9 bl FUN_0202F950 cmp r0, #0x0 beq _02032286 bl FUN_0202FA10 ldr r0, _0203228C ; =FUN_02032290 mov r1, #0x0 bl FUN_02031D20 _02032286: pop {r3, pc} .balign 4 _02032288: .word 0x021C5A00 _0203228C: .word FUN_02032290 thumb_func_start FUN_02032290 FUN_02032290: ; 0x02032290 ldr r3, _02032294 ; =FUN_0202EA54 bx r3 .balign 4 _02032294: .word FUN_0202EA54 thumb_func_start FUN_02032298 FUN_02032298: ; 0x02032298 push {r3, lr} bl FUN_0202EA54 ldr r0, _020322B8 ; =0x021C5A00 ldr r0, [r0, #0x0] add r0, #0x3e ldrb r0, [r0, #0x0] bl FUN_0202FB18 cmp r0, #0x0 beq _020322B6 ldr r0, _020322BC ; =FUN_020322C0 mov r1, #0xa bl FUN_02031D20 _020322B6: pop {r3, pc} .balign 4 _020322B8: .word 0x021C5A00 _020322BC: .word FUN_020322C0 thumb_func_start FUN_020322C0 FUN_020322C0: ; 0x020322C0 push {r3, lr} bl FUN_020311F0 cmp r0, #0x0 beq _020322D2 ldr r0, _020322F0 ; =FUN_020322F8 mov r1, #0x0 bl FUN_02031D20 _020322D2: bl FUN_02031190 bl FUN_02030E7C cmp r0, #0x0 beq _020322EE bl FUN_02031190 cmp r0, #0x0 beq _020322EE ldr r0, _020322F4 ; =FUN_0203234C mov r1, #0x0 bl FUN_02031D20 _020322EE: pop {r3, pc} .balign 4 _020322F0: .word FUN_020322F8 _020322F4: .word FUN_0203234C thumb_func_start FUN_020322F8 FUN_020322F8: ; 0x020322F8 push {r3, lr} bl FUN_0202E6F0 ldr r0, _02032308 ; =FUN_0203230C mov r1, #0x2 bl FUN_02031D20 pop {r3, pc} .balign 4 _02032308: .word FUN_0203230C thumb_func_start FUN_0203230C FUN_0203230C: ; 0x0203230C push {r3, lr} ldr r0, _02032344 ; =0x021C5A00 ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3a] cmp r0, #0x0 beq _0203231E sub r0, r0, #0x1 strh r0, [r1, #0x3a] pop {r3, pc} _0203231E: bl FUN_0202EE0C cmp r0, #0x0 beq _02032340 mov r1, #0x1 mov r0, #0x0 lsl r2, r1, #0x9 bl FUN_0202F950 cmp r0, #0x0 beq _02032340 bl FUN_0202FA10 ldr r0, _02032348 ; =FUN_02032298 mov r1, #0xa bl FUN_02031D20 _02032340: pop {r3, pc} nop _02032344: .word 0x021C5A00 _02032348: .word FUN_02032298 thumb_func_start FUN_0203234C FUN_0203234C: ; 0x0203234C push {r3, lr} bl FUN_02030F40 cmp r0, #0x0 bne _0203235E ldr r0, _02032360 ; =FUN_020323BC mov r1, #0x0 bl FUN_02031D20 _0203235E: pop {r3, pc} .balign 4 _02032360: .word FUN_020323BC thumb_func_start FUN_02032364 FUN_02032364: ; 0x02032364 push {r3, lr} bl FUN_0202E6F0 ldr r0, _02032374 ; =FUN_02032378 mov r1, #0x2 bl FUN_02031D20 pop {r3, pc} .balign 4 _02032374: .word FUN_02032378 thumb_func_start FUN_02032378 FUN_02032378: ; 0x02032378 push {r3, lr} ldr r0, _020323B0 ; =0x021C5A00 ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3a] cmp r0, #0x0 beq _0203238A sub r0, r0, #0x1 strh r0, [r1, #0x3a] pop {r3, pc} _0203238A: bl FUN_0202EE0C cmp r0, #0x0 beq _020323AC mov r1, #0x1 mov r0, #0x0 lsl r2, r1, #0x9 bl FUN_0202F950 cmp r0, #0x0 beq _020323AC bl FUN_0202FA10 ldr r0, _020323B4 ; =FUN_02032290 mov r1, #0xa bl FUN_02031D20 _020323AC: pop {r3, pc} nop _020323B0: .word 0x021C5A00 _020323B4: .word FUN_02032290 thumb_func_start FUN_020323B8 FUN_020323B8: ; 0x020323B8 bx lr .balign 4 thumb_func_start FUN_020323BC FUN_020323BC: ; 0x020323BC push {r3, lr} bl FUN_02030F40 cmp r0, #0x0 bne _020323CA bl FUN_020317C0 _020323CA: pop {r3, pc} thumb_func_start FUN_020323CC FUN_020323CC: ; 0x020323CC ldr r3, _020323D4 ; =FUN_02031D20 ldr r0, _020323D8 ; =FUN_02032440 mov r1, #0x5 bx r3 .balign 4 _020323D4: .word FUN_02031D20 _020323D8: .word FUN_02032440 thumb_func_start FUN_020323DC FUN_020323DC: ; 0x020323DC push {r3, lr} bl FUN_02030F20 cmp r0, #0x1 bgt _020323F8 mov r0, #0x0 bl FUN_0202D36C bl FUN_0202FC80 ldr r0, _0203241C ; =FUN_020324F8 mov r1, #0x0 bl FUN_02031D20 _020323F8: ldr r0, _02032420 ; =0x021C5A00 ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3a] cmp r0, #0x0 beq _02032408 sub r0, r0, #0x1 strh r0, [r1, #0x3a] pop {r3, pc} _02032408: mov r0, #0x0 bl FUN_0202D36C bl FUN_0202FC80 ldr r0, _0203241C ; =FUN_020324F8 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} .balign 4 _0203241C: .word FUN_020324F8 _02032420: .word 0x021C5A00 thumb_func_start FUN_02032424 FUN_02032424: ; 0x02032424 push {r3, lr} bl FUN_0202E6F0 cmp r0, #0x0 beq _0203243A bl FUN_0202FC60 ldr r0, _0203243C ; =FUN_020324F8 mov r1, #0x0 bl FUN_02031D20 _0203243A: pop {r3, pc} .balign 4 _0203243C: .word FUN_020324F8 thumb_func_start FUN_02032440 FUN_02032440: ; 0x02032440 push {r3, lr} ldr r0, _02032470 ; =0x021C5A00 ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3a] cmp r0, #0x0 beq _02032450 sub r0, r0, #0x1 strh r0, [r1, #0x3a] _02032450: bl FUN_0202E6F0 cmp r0, #0x0 beq _0203246E ldr r0, _02032470 ; =0x021C5A00 ldr r0, [r0, #0x0] ldrh r0, [r0, #0x3a] cmp r0, #0x0 bne _0203246E bl FUN_0202FA5C ldr r0, _02032474 ; =FUN_020323BC mov r1, #0x0 bl FUN_02031D20 _0203246E: pop {r3, pc} .balign 4 _02032470: .word 0x021C5A00 _02032474: .word FUN_020323BC thumb_func_start FUN_02032478 FUN_02032478: ; 0x02032478 push {r3, lr} bl FUN_0202E4C8 cmp r0, #0x0 beq _020324BE ldr r0, _020324C0 ; =0x021C5A00 ldr r0, [r0, #0x0] ldr r0, [r0, #0x2c] bl FUN_0202E29C ldr r0, _020324C0 ; =0x021C5A00 ldr r0, [r0, #0x0] add r0, #0x3c ldrb r0, [r0, #0x0] bl FUN_0202D1B0 ldr r0, _020324C0 ; =0x021C5A00 mov r1, #0x0 ldr r0, [r0, #0x0] ldr r0, [r0, #0x28] bl FUN_0202DB14 mov r0, #0x1 add r1, r0, #0x0 lsl r2, r0, #0x9 bl FUN_0202F950 cmp r0, #0x0 beq _020324BE bl FUN_0202FA10 ldr r0, _020324C4 ; =FUN_020324C8 mov r1, #0x40 bl FUN_02031D20 _020324BE: pop {r3, pc} .balign 4 _020324C0: .word 0x021C5A00 _020324C4: .word FUN_020324C8 thumb_func_start FUN_020324C8 FUN_020324C8: ; 0x020324C8 push {r3, lr} bl FUN_0202EA54 ldr r0, _020324F0 ; =0x021C5A00 ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3a] cmp r0, #0x0 beq _020324DE sub r0, r0, #0x1 strh r0, [r1, #0x3a] pop {r3, pc} _020324DE: bl FUN_0202E6F0 cmp r0, #0x0 beq _020324EE ldr r0, _020324F4 ; =FUN_02032510 mov r1, #0x0 bl FUN_02031D20 _020324EE: pop {r3, pc} .balign 4 _020324F0: .word 0x021C5A00 _020324F4: .word FUN_02032510 thumb_func_start FUN_020324F8 FUN_020324F8: ; 0x020324F8 push {r3, lr} bl FUN_0202E6F0 cmp r0, #0x0 beq _0203250A ldr r0, _0203250C ; =FUN_02032510 mov r1, #0x0 bl FUN_02031D20 _0203250A: pop {r3, pc} .balign 4 _0203250C: .word FUN_02032510 thumb_func_start FUN_02032510 FUN_02032510: ; 0x02032510 push {r3-r5, lr} bl FUN_0202EE0C cmp r0, #0x0 beq _02032568 ldr r1, _0203256C ; =0x021C5A00 mov r2, #0x2 ldr r1, [r1, #0x0] mov r0, #0x0 add r1, #0x43 ldrb r1, [r1, #0x0] lsl r2, r2, #0x8 mov r3, #0x1 bl FUN_0202F918 cmp r0, #0x0 beq _02032568 ldr r0, _0203256C ; =0x021C5A00 ldr r4, [r0, #0x0] add r5, r4, #0x0 add r5, #0xc ldr r0, [r5, #0x8] ldr r1, [r5, #0xc] ldr r2, [r4, #0xc] ldr r3, [r5, #0x4] blx FUN_020EBC30 ldr r2, [r5, #0x10] ldr r3, [r5, #0x14] add r0, r2, r0 adc r3, r1 str r0, [r4, #0xc] str r3, [r5, #0x4] bl FUN_0202FA10 ldr r0, _0203256C ; =0x021C5A00 mov r1, #0x0 ldr r0, [r0, #0x0] add r0, #0x43 strb r1, [r0, #0x0] ldr r0, _02032570 ; =FUN_02032578 ldr r1, _02032574 ; =0x00002710 bl FUN_02031D20 _02032568: pop {r3-r5, pc} nop _0203256C: .word 0x021C5A00 _02032570: .word FUN_02032578 _02032574: .word 0x00002710 thumb_func_start FUN_02032578 FUN_02032578: ; 0x02032578 push {r3, lr} bl FUN_0202F104 cmp r0, #0x0 bne _020325B2 bl FUN_020311E8 cmp r0, #0x0 beq _020325A2 ldr r0, _020325C4 ; =0x021C5A00 mov r1, #0x1 ldr r0, [r0, #0x0] add r0, #0x43 strb r1, [r0, #0x0] bl FUN_02033E74 ldr r0, _020325C8 ; =FUN_020327FC mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _020325A2: ldr r0, _020325C4 ; =0x021C5A00 ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3a] cmp r0, #0x0 beq _020325B2 sub r0, r0, #0x1 strh r0, [r1, #0x3a] pop {r3, pc} _020325B2: bl FUN_0202E6F0 cmp r0, #0x0 beq _020325C2 ldr r0, _020325CC ; =FUN_020325D0 mov r1, #0x0 bl FUN_02031D20 _020325C2: pop {r3, pc} .balign 4 _020325C4: .word 0x021C5A00 _020325C8: .word FUN_020327FC _020325CC: .word FUN_020325D0 thumb_func_start FUN_020325D0 FUN_020325D0: ; 0x020325D0 push {r3-r5, lr} bl FUN_0202EE0C cmp r0, #0x0 beq _0203261C mov r0, #0x0 mov r2, #0x2 add r1, r0, #0x0 lsl r2, r2, #0x8 bl FUN_0202F950 cmp r0, #0x0 beq _0203261C bl FUN_0202FA10 ldr r0, _02032620 ; =0x021C5A00 ldr r4, [r0, #0x0] add r5, r4, #0x0 add r5, #0xc ldr r0, [r5, #0x8] ldr r1, [r5, #0xc] ldr r2, [r4, #0xc] ldr r3, [r5, #0x4] blx FUN_020EBC30 ldr r2, [r5, #0x10] ldr r3, [r5, #0x14] add r0, r2, r0 adc r3, r1 str r0, [r4, #0xc] mov r1, #0x0 ldr r0, _02032624 ; =FUN_020324C8 lsr r2, r3, #0x1b lsl r1, r1, #0x5 orr r1, r2 str r3, [r5, #0x4] bl FUN_02031D20 _0203261C: pop {r3-r5, pc} nop _02032620: .word 0x021C5A00 _02032624: .word FUN_020324C8 thumb_func_start FUN_02032628 FUN_02032628: ; 0x02032628 push {r3, lr} bl FUN_0202E6F0 cmp r0, #0x0 beq _0203263A ldr r0, _0203263C ; =FUN_02032640 mov r1, #0x0 bl FUN_02031D20 _0203263A: pop {r3, pc} .balign 4 _0203263C: .word FUN_02032640 thumb_func_start FUN_02032640 FUN_02032640: ; 0x02032640 push {r3, lr} bl FUN_0202EE0C cmp r0, #0x0 beq _02032666 mov r0, #0x0 mov r2, #0x2 add r1, r0, #0x0 lsl r2, r2, #0x8 bl FUN_0202F950 cmp r0, #0x0 beq _02032666 bl FUN_0202FA10 ldr r0, _02032668 ; =FUN_0203266C mov r1, #0x64 bl FUN_02031D20 _02032666: pop {r3, pc} .balign 4 _02032668: .word FUN_0203266C thumb_func_start FUN_0203266C FUN_0203266C: ; 0x0203266C push {r3, lr} ldr r0, _020326C4 ; =0x021C5A00 ldr r0, [r0, #0x0] add r0, #0x3e ldrb r0, [r0, #0x0] bl FUN_0202E8A0 cmp r0, #0x0 beq _02032698 ldr r0, _020326C4 ; =0x021C5A00 ldr r0, [r0, #0x0] add r0, #0x3e ldrb r0, [r0, #0x0] bl FUN_0202FB18 cmp r0, #0x0 beq _02032698 ldr r0, _020326C8 ; =FUN_020326D0 mov r1, #0x64 bl FUN_02031D20 pop {r3, pc} _02032698: bl FUN_020311F0 cmp r0, #0x0 beq _020326AA ldr r0, _020326CC ; =FUN_020327B8 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _020326AA: ldr r0, _020326C4 ; =0x021C5A00 ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3a] cmp r0, #0x0 beq _020326BA sub r0, r0, #0x1 strh r0, [r1, #0x3a] pop {r3, pc} _020326BA: ldr r0, _020326CC ; =FUN_020327B8 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} .balign 4 _020326C4: .word 0x021C5A00 _020326C8: .word FUN_020326D0 _020326CC: .word FUN_020327B8 thumb_func_start FUN_020326D0 FUN_020326D0: ; 0x020326D0 push {r3, lr} bl FUN_020311F0 cmp r0, #0x0 beq _020326E4 ldr r0, _02032728 ; =FUN_020327B8 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _020326E4: bl FUN_02031190 bl FUN_02030E7C cmp r0, #0x0 beq _0203270C ldr r0, _0203272C ; =0x021C5A00 mov r1, #0x0 ldr r0, [r0, #0x0] add r0, #0x3d strb r1, [r0, #0x0] ldr r1, _02032730 ; =0x02105D5C mov r0, #0x6 bl FUN_020311D0 ldr r0, _02032734 ; =FUN_02032738 mov r1, #0x78 bl FUN_02031D20 pop {r3, pc} _0203270C: ldr r0, _0203272C ; =0x021C5A00 ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3a] cmp r0, #0x0 beq _0203271C sub r0, r0, #0x1 strh r0, [r1, #0x3a] pop {r3, pc} _0203271C: ldr r0, _02032728 ; =FUN_020327B8 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} nop _02032728: .word FUN_020327B8 _0203272C: .word 0x021C5A00 _02032730: .word 0x02105D5C _02032734: .word FUN_02032738 thumb_func_start FUN_02032738 FUN_02032738: ; 0x02032738 push {r3, lr} bl FUN_020311F0 cmp r0, #0x0 beq _0203274C ldr r0, _0203278C ; =FUN_020327B8 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _0203274C: ldr r0, _02032790 ; =0x021C5A00 ldr r1, [r0, #0x0] add r0, r1, #0x0 add r0, #0x3d ldrb r0, [r0, #0x0] cmp r0, #0x2 bne _02032764 ldr r0, _02032794 ; =FUN_020327B4 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _02032764: cmp r0, #0x1 bne _02032776 bl FUN_0202DBE0 ldr r0, _02032798 ; =FUN_0203279C mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _02032776: ldrh r0, [r1, #0x3a] cmp r0, #0x0 beq _02032782 sub r0, r0, #0x1 strh r0, [r1, #0x3a] pop {r3, pc} _02032782: ldr r0, _0203278C ; =FUN_020327B8 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} .balign 4 _0203278C: .word FUN_020327B8 _02032790: .word 0x021C5A00 _02032794: .word FUN_020327B4 _02032798: .word FUN_0203279C thumb_func_start FUN_0203279C FUN_0203279C: ; 0x0203279C push {r3, lr} bl FUN_020311F0 cmp r0, #0x0 beq _020327AE ldr r0, _020327B0 ; =FUN_020327B8 mov r1, #0x0 bl FUN_02031D20 _020327AE: pop {r3, pc} .balign 4 _020327B0: .word FUN_020327B8 thumb_func_start FUN_020327B4 FUN_020327B4: ; 0x020327B4 bx lr .balign 4 thumb_func_start FUN_020327B8 FUN_020327B8: ; 0x020327B8 push {r3, lr} ldr r0, _020327F0 ; =0x021C5A00 mov r1, #0x0 ldr r0, [r0, #0x0] add r0, #0x3d strb r1, [r0, #0x0] bl FUN_0202E6F0 cmp r0, #0x0 beq _020327EC ldr r0, _020327F0 ; =0x021C5A00 ldr r1, [r0, #0x0] ldrh r0, [r1, #0x38] cmp r0, #0x0 beq _020327E4 sub r0, r0, #0x1 strh r0, [r1, #0x38] ldr r0, _020327F4 ; =FUN_02032640 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _020327E4: ldr r0, _020327F8 ; =FUN_020327B4 mov r1, #0x0 bl FUN_02031D20 _020327EC: pop {r3, pc} nop _020327F0: .word 0x021C5A00 _020327F4: .word FUN_02032640 _020327F8: .word FUN_020327B4 thumb_func_start FUN_020327FC FUN_020327FC: ; 0x020327FC push {r3, lr} bl FUN_020311E8 cmp r0, #0x0 bne _02032820 bl FUN_02033510 cmp r0, #0x0 bne _0203282C bl FUN_0202E6F0 cmp r0, #0x0 beq _0203282C ldr r0, _02032848 ; =FUN_020325D0 mov r1, #0x0 bl FUN_02031D20 b _0203282C _02032820: bl FUN_02031190 cmp r0, #0x0 bne _0203282C bl FUN_0202DDE8 _0203282C: bl FUN_020311F0 cmp r0, #0x0 beq _02032844 bl FUN_02033510 cmp r0, #0x0 bne _02032844 ldr r0, _0203284C ; =FUN_020327B8 mov r1, #0x0 bl FUN_02031D20 _02032844: pop {r3, pc} nop _02032848: .word FUN_020325D0 _0203284C: .word FUN_020327B8 thumb_func_start FUN_02032850 FUN_02032850: ; 0x02032850 push {r3, lr} bl FUN_0202EE0C cmp r0, #0x0 beq _0203287E ldr r1, _02032880 ; =0x021C5A00 mov r0, #0x0 ldr r1, [r1, #0x0] mov r2, #0x2 add r1, #0x43 ldrb r1, [r1, #0x0] lsl r2, r2, #0x8 add r3, r0, #0x0 bl FUN_0202F918 cmp r0, #0x0 beq _0203287E bl FUN_0202FA10 ldr r0, _02032884 ; =FUN_020323B8 mov r1, #0x0 bl FUN_02031D20 _0203287E: pop {r3, pc} .balign 4 _02032880: .word 0x021C5A00 _02032884: .word FUN_020323B8 thumb_func_start FUN_02032888 FUN_02032888: ; 0x02032888 push {r3, lr} ldr r0, _020328BC ; =0x021C5A00 mov r1, #0xd ldr r0, [r0, #0x0] add r0, #0x3f strb r1, [r0, #0x0] bl FUN_02031190 cmp r0, #0x0 add r0, sp, #0x0 bne _020328AE mov r1, #0x0 strb r1, [r0, #0x1] add r1, sp, #0x0 mov r0, #0xa add r1, #0x1 bl FUN_020311D0 pop {r3, pc} _020328AE: mov r1, #0x0 strb r1, [r0, #0x0] mov r0, #0xa add r1, sp, #0x0 bl FUN_020311D0 pop {r3, pc} .balign 4 _020328BC: .word 0x021C5A00 thumb_func_start FUN_020328C0 FUN_020328C0: ; 0x020328C0 ldr r1, _020328D8 ; =0x021C5A00 ldr r3, _020328DC ; =FUN_02031D20 ldr r2, [r1, #0x0] add r2, #0x3e strb r0, [r2, #0x0] ldr r0, [r1, #0x0] mov r2, #0x3 strh r2, [r0, #0x38] ldr r0, _020328E0 ; =FUN_02032924 mov r1, #0x0 bx r3 nop _020328D8: .word 0x021C5A00 _020328DC: .word FUN_02031D20 _020328E0: .word FUN_02032924 thumb_func_start FUN_020328E4 FUN_020328E4: ; 0x020328E4 ldr r0, _020328F0 ; =0x021C5A00 mov r1, #0x7 ldr r0, [r0, #0x0] add r0, #0x3f strb r1, [r0, #0x0] bx lr .balign 4 _020328F0: .word 0x021C5A00 thumb_func_start FUN_020328F4 FUN_020328F4: ; 0x020328F4 push {r3, lr} ldr r1, _0203291C ; =0x021C5A00 ldr r2, [r1, #0x0] add r2, #0x3e strb r0, [r2, #0x0] ldr r0, [r1, #0x0] mov r2, #0x7 add r0, #0x3f strb r2, [r0, #0x0] ldr r0, [r1, #0x0] mov r2, #0x3 strh r2, [r0, #0x38] bl FUN_02033E74 ldr r0, _02032920 ; =FUN_02032628 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} nop _0203291C: .word 0x021C5A00 _02032920: .word FUN_02032628 thumb_func_start FUN_02032924 FUN_02032924: ; 0x02032924 push {r3, lr} bl FUN_0202E6F0 cmp r0, #0x0 beq _02032936 ldr r0, _02032938 ; =FUN_0203293C mov r1, #0x0 bl FUN_02031D20 _02032936: pop {r3, pc} .balign 4 _02032938: .word FUN_0203293C thumb_func_start FUN_0203293C FUN_0203293C: ; 0x0203293C push {r3, lr} bl FUN_0202EE0C cmp r0, #0x0 beq _0203296C ldr r0, _02032970 ; =0x021C5A00 mov r2, #0x2 ldr r0, [r0, #0x0] mov r1, #0xd add r0, #0x3f strb r1, [r0, #0x0] mov r0, #0x0 add r1, r0, #0x0 lsl r2, r2, #0x8 bl FUN_0202F950 cmp r0, #0x0 beq _0203296C bl FUN_0202FA1C ldr r0, _02032974 ; =FUN_02032978 mov r1, #0x64 bl FUN_02031D20 _0203296C: pop {r3, pc} nop _02032970: .word 0x021C5A00 _02032974: .word FUN_02032978 thumb_func_start FUN_02032978 FUN_02032978: ; 0x02032978 push {r3, lr} ldr r0, _020329E4 ; =0x021C5A00 ldr r0, [r0, #0x0] add r0, #0x3e ldrb r0, [r0, #0x0] bl FUN_0202E8A0 cmp r0, #0x0 beq _020329A4 ldr r0, _020329E4 ; =0x021C5A00 ldr r0, [r0, #0x0] add r0, #0x3e ldrb r0, [r0, #0x0] bl FUN_0202FB18 cmp r0, #0x0 beq _020329A4 ldr r0, _020329E8 ; =FUN_020329F4 mov r1, #0x64 bl FUN_02031D20 pop {r3, pc} _020329A4: bl FUN_020311F0 cmp r0, #0x0 bne _020329B6 ldr r0, _020329E4 ; =0x021C5A00 ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3a] cmp r0, #0x0 bne _020329DC _020329B6: ldr r0, _020329E4 ; =0x021C5A00 ldr r2, [r0, #0x0] ldrh r1, [r2, #0x38] sub r1, r1, #0x1 strh r1, [r2, #0x38] ldr r0, [r0, #0x0] ldrh r0, [r0, #0x38] cmp r0, #0x0 bne _020329D2 ldr r0, _020329EC ; =FUN_020327B4 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _020329D2: ldr r0, _020329F0 ; =FUN_02032924 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _020329DC: beq _020329E2 sub r0, r0, #0x1 strh r0, [r1, #0x3a] _020329E2: pop {r3, pc} .balign 4 _020329E4: .word 0x021C5A00 _020329E8: .word FUN_020329F4 _020329EC: .word FUN_020327B4 _020329F0: .word FUN_02032924 thumb_func_start FUN_020329F4 FUN_020329F4: ; 0x020329F4 push {r3, lr} ldr r0, _02032A7C ; =0x021C5A00 ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3a] cmp r0, #0x5a bls _02032A06 sub r0, r0, #0x1 strh r0, [r1, #0x3a] pop {r3, pc} _02032A06: bl FUN_020311F0 cmp r0, #0x0 beq _02032A34 ldr r0, _02032A7C ; =0x021C5A00 ldr r2, [r0, #0x0] ldrh r1, [r2, #0x38] sub r1, r1, #0x1 strh r1, [r2, #0x38] ldr r0, [r0, #0x0] ldrh r0, [r0, #0x38] cmp r0, #0x0 bne _02032A2A ldr r0, _02032A80 ; =FUN_020327B4 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _02032A2A: ldr r0, _02032A84 ; =FUN_02032924 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _02032A34: bl FUN_02031190 bl FUN_02030E7C cmp r0, #0x0 beq _02032A4A ldr r0, _02032A88 ; =FUN_0203279C mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _02032A4A: ldr r0, _02032A7C ; =0x021C5A00 ldr r2, [r0, #0x0] ldrh r1, [r2, #0x3a] cmp r1, #0x0 beq _02032A5A sub r0, r1, #0x1 strh r0, [r2, #0x3a] pop {r3, pc} _02032A5A: ldrh r1, [r2, #0x38] sub r1, r1, #0x1 strh r1, [r2, #0x38] ldr r0, [r0, #0x0] ldrh r0, [r0, #0x38] cmp r0, #0x0 bne _02032A72 ldr r0, _02032A80 ; =FUN_020327B4 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _02032A72: ldr r0, _02032A84 ; =FUN_02032924 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} .balign 4 _02032A7C: .word 0x021C5A00 _02032A80: .word FUN_020327B4 _02032A84: .word FUN_02032924 _02032A88: .word FUN_0203279C thumb_func_start FUN_02032A8C FUN_02032A8C: ; 0x02032A8C push {r4-r6, lr} add r5, r0, #0x0 add r4, r2, #0x0 bl FUN_02031190 cmp r0, #0x0 bne _02032ADA ldr r6, _02032ADC ; =0x02105D5C mov r3, #0x1 mov r2, #0x0 _02032AA0: ldrb r1, [r6, #0x0] ldrb r0, [r4, r2] cmp r1, r0 beq _02032AAC mov r3, #0x0 b _02032AB4 _02032AAC: add r2, r2, #0x1 add r6, r6, #0x1 cmp r2, #0x6 blo _02032AA0 _02032AB4: cmp r3, #0x0 beq _02032AD0 ldr r0, _02032AE0 ; =0x021C5A00 ldr r0, [r0, #0x0] add r0, #0x48 ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _02032AD0 ldr r1, _02032AE4 ; =0x02105D6C mov r0, #0x7 strb r5, [r1, #0x0] bl FUN_02030C4C pop {r4-r6, pc} _02032AD0: ldr r1, _02032AE8 ; =0x02105D64 mov r0, #0x7 strb r5, [r1, #0x0] bl FUN_02030C4C _02032ADA: pop {r4-r6, pc} .balign 4 _02032ADC: .word 0x02105D5C _02032AE0: .word 0x021C5A00 _02032AE4: .word 0x02105D6C _02032AE8: .word 0x02105D64 thumb_func_start FUN_02032AEC FUN_02032AEC: ; 0x02032AEC push {r3-r5, lr} mov r4, #0x1 ldr r5, _02032B5C ; =0x02105D6D add r3, r4, #0x0 _02032AF4: ldrb r1, [r5, #0x0] ldrb r0, [r2, r3] cmp r1, r0 beq _02032B00 mov r4, #0x0 b _02032B08 _02032B00: add r3, r3, #0x1 add r5, r5, #0x1 cmp r3, #0x6 blo _02032AF4 _02032B08: cmp r4, #0x0 beq _02032B22 ldrb r4, [r2, #0x0] bl FUN_02031190 cmp r4, r0 bne _02032B58 ldr r0, _02032B60 ; =0x021C5A00 mov r1, #0x1 ldr r0, [r0, #0x0] add r0, #0x3d strb r1, [r0, #0x0] pop {r3-r5, pc} _02032B22: mov r4, #0x1 ldr r3, _02032B64 ; =0x02105D65 add r5, r4, #0x0 _02032B28: ldrb r1, [r3, #0x0] ldrb r0, [r2, r5] cmp r1, r0 beq _02032B34 mov r4, #0x0 b _02032B3C _02032B34: add r5, r5, #0x1 add r3, r3, #0x1 cmp r5, #0x6 blo _02032B28 _02032B3C: cmp r4, #0x0 beq _02032B58 ldrb r4, [r2, #0x0] bl FUN_02031190 lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r4, r0 bne _02032B58 ldr r0, _02032B60 ; =0x021C5A00 mov r1, #0x2 ldr r0, [r0, #0x0] add r0, #0x3d strb r1, [r0, #0x0] _02032B58: pop {r3-r5, pc} nop _02032B5C: .word 0x02105D6D _02032B60: .word 0x021C5A00 _02032B64: .word 0x02105D65 thumb_func_start FUN_02032B68 FUN_02032B68: ; 0x02032B68 mov r0, #0x6 bx lr thumb_func_start FUN_02032B6C FUN_02032B6C: ; 0x02032B6C push {r3, lr} ldr r1, _02032B80 ; =0x021C5A00 ldr r1, [r1, #0x0] cmp r1, #0x0 beq _02032B7E add r1, #0x3c strb r0, [r1, #0x0] bl FUN_0202D1B0 _02032B7E: pop {r3, pc} .balign 4 _02032B80: .word 0x021C5A00 thumb_func_start FUN_02032B84 FUN_02032B84: ; 0x02032B84 ldr r3, _02032B88 ; =FUN_0202EA54 bx r3 .balign 4 _02032B88: .word FUN_0202EA54 thumb_func_start FUN_02032B8C FUN_02032B8C: ; 0x02032B8C push {r3, lr} bl FUN_0202E4C8 cmp r0, #0x0 beq _02032BC6 ldr r0, _02032BC8 ; =0x021C5A00 ldr r0, [r0, #0x0] ldr r0, [r0, #0x2c] bl FUN_0202E29C ldr r0, _02032BC8 ; =0x021C5A00 mov r1, #0x0 ldr r0, [r0, #0x0] ldr r0, [r0, #0x28] bl FUN_0202DB14 mov r0, #0x1 add r1, r0, #0x0 mov r2, #0x20 bl FUN_0202F950 cmp r0, #0x0 beq _02032BC6 bl FUN_0202FA10 ldr r0, _02032BCC ; =FUN_02032B84 mov r1, #0x0 bl FUN_02031D20 _02032BC6: pop {r3, pc} .balign 4 _02032BC8: .word 0x021C5A00 _02032BCC: .word FUN_02032B84 thumb_func_start FUN_02032BD0 FUN_02032BD0: ; 0x02032BD0 push {r4, lr} add r4, r0, #0x0 bl FUN_02030F40 cmp r0, #0x0 bne _02032C00 mov r2, #0x7 mov r0, #0x3 mov r1, #0xf lsl r2, r2, #0xc bl FUN_02016828 add r0, r4, #0x0 mov r1, #0xe bl FUN_02031734 ldr r0, _02032C04 ; =0x021C5A00 mov r1, #0x0 ldr r0, [r0, #0x0] add r0, #0x40 strb r1, [r0, #0x0] ldr r0, _02032C08 ; =FUN_02032B8C bl FUN_02031D20 _02032C00: pop {r4, pc} nop _02032C04: .word 0x021C5A00 _02032C08: .word FUN_02032B8C thumb_func_start FUN_02032C0C FUN_02032C0C: ; 0x02032C0C push {r3, lr} ldr r0, _02032C20 ; =0x021C5A00 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _02032C1E ldr r0, _02032C24 ; =FUN_02032440 mov r1, #0x5 bl FUN_02031D20 _02032C1E: pop {r3, pc} .balign 4 _02032C20: .word 0x021C5A00 _02032C24: .word FUN_02032440 thumb_func_start FUN_02032C28 FUN_02032C28: ; 0x02032C28 sub sp, #0x8 ldr r1, _02032C64 ; =0x020EEC48 add r0, sp, #0x0 ldr r2, [r1, #0x0] ldr r1, [r1, #0x4] str r2, [sp, #0x0] str r1, [sp, #0x4] ldr r1, _02032C68 ; =0x021C5A00 ldr r1, [r1, #0x0] ldr r3, [r1, #0x24] cmp r1, #0x0 bne _02032C46 mov r0, #0x0 add sp, #0x8 bx lr _02032C46: cmp r2, #0x0 beq _02032C5E _02032C4A: ldr r1, [r0, #0x0] cmp r3, r1 bne _02032C56 mov r0, #0x1 add sp, #0x8 bx lr _02032C56: add r0, r0, #0x4 ldr r1, [r0, #0x0] cmp r1, #0x0 bne _02032C4A _02032C5E: mov r0, #0x0 add sp, #0x8 bx lr .balign 4 _02032C64: .word 0x020EEC48 _02032C68: .word 0x021C5A00 thumb_func_start FUN_02032C6C FUN_02032C6C: ; 0x02032C6C ldr r2, _02032CE4 ; =0x00400131 cmp r0, r2 bhi _02032C7C bhs _02032CBA ldr r2, _02032CE8 ; =0x00000333 cmp r0, r2 beq _02032C8E bx lr _02032C7C: ldr r1, _02032CEC ; =0x00400286 cmp r0, r1 bhi _02032C86 beq _02032CCE bx lr _02032C86: add r1, #0x92 cmp r0, r1 beq _02032CA6 bx lr _02032C8E: cmp r1, #0xf bne _02032CE0 ldr r0, _02032CF0 ; =0x021C5A00 ldr r2, [r0, #0x0] add r0, r2, #0x0 add r0, #0x49 ldrb r1, [r0, #0x0] mov r0, #0x1 add r2, #0x49 orr r0, r1 strb r0, [r2, #0x0] bx lr _02032CA6: ldr r0, _02032CF0 ; =0x021C5A00 ldr r2, [r0, #0x0] add r0, r2, #0x0 add r0, #0x49 ldrb r1, [r0, #0x0] mov r0, #0x1 add r2, #0x49 orr r0, r1 strb r0, [r2, #0x0] bx lr _02032CBA: ldr r0, _02032CF0 ; =0x021C5A00 ldr r2, [r0, #0x0] add r0, r2, #0x0 add r0, #0x49 ldrb r1, [r0, #0x0] mov r0, #0x2 add r2, #0x49 orr r0, r1 strb r0, [r2, #0x0] bx lr _02032CCE: ldr r0, _02032CF0 ; =0x021C5A00 ldr r2, [r0, #0x0] add r0, r2, #0x0 add r0, #0x49 ldrb r1, [r0, #0x0] mov r0, #0x4 add r2, #0x49 orr r0, r1 strb r0, [r2, #0x0] _02032CE0: bx lr nop _02032CE4: .word 0x00400131 _02032CE8: .word 0x00000333 _02032CEC: .word 0x00400286 _02032CF0: .word 0x021C5A00 thumb_func_start FUN_02032CF4 FUN_02032CF4: ; 0x02032CF4 push {r3, lr} bl FUN_0202E4C8 cmp r0, #0x0 beq _02032D34 ldr r0, _02032D38 ; =0x021C5A00 ldr r0, [r0, #0x0] ldr r0, [r0, #0x2c] bl FUN_0202E29C ldr r0, _02032D38 ; =0x021C5A00 mov r1, #0x0 ldr r0, [r0, #0x0] ldr r0, [r0, #0x28] bl FUN_0202DB14 ldr r0, _02032D3C ; =FUN_02032C6C bl FUN_0202D308 mov r0, #0x1 add r1, r0, #0x0 mov r2, #0x20 bl FUN_0202F950 cmp r0, #0x0 beq _02032D34 bl FUN_0202FA10 ldr r0, _02032D40 ; =FUN_02032B84 mov r1, #0x0 bl FUN_02031D20 _02032D34: pop {r3, pc} nop _02032D38: .word 0x021C5A00 _02032D3C: .word FUN_02032C6C _02032D40: .word FUN_02032B84 thumb_func_start FUN_02032D44 FUN_02032D44: ; 0x02032D44 push {r4, lr} add r4, r0, #0x0 bl FUN_02030F40 cmp r0, #0x0 bne _02032D74 mov r2, #0x7 mov r0, #0x3 mov r1, #0xf lsl r2, r2, #0xc bl FUN_02016828 add r0, r4, #0x0 mov r1, #0x11 bl FUN_02031734 ldr r0, _02032D78 ; =0x021C5A00 mov r1, #0x0 ldr r0, [r0, #0x0] add r0, #0x40 strb r1, [r0, #0x0] ldr r0, _02032D7C ; =FUN_02032CF4 bl FUN_02031D20 _02032D74: pop {r4, pc} nop _02032D78: .word 0x021C5A00 _02032D7C: .word FUN_02032CF4 thumb_func_start FUN_02032D80 FUN_02032D80: ; 0x02032D80 push {r3, lr} ldr r0, _02032D94 ; =0x021C5A00 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _02032D92 ldr r0, _02032D98 ; =FUN_02032440 mov r1, #0x5 bl FUN_02031D20 _02032D92: pop {r3, pc} .balign 4 _02032D94: .word 0x021C5A00 _02032D98: .word FUN_02032440 thumb_func_start FUN_02032D9C FUN_02032D9C: ; 0x02032D9C ldr r0, _02032DA8 ; =0x021C5A00 ldr r0, [r0, #0x0] add r0, #0x49 ldrb r0, [r0, #0x0] bx lr nop _02032DA8: .word 0x021C5A00 thumb_func_start FUN_02032DAC FUN_02032DAC: ; 0x02032DAC push {r3, lr} bl FUN_02031468 ldr r0, _02032DF4 ; =0x021C5A00 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02032DBE mov r0, #0x1 pop {r3, pc} _02032DBE: add r0, #0x3f ldrb r0, [r0, #0x0] add r0, #0xe8 lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r0, #0x1 bhi _02032DD4 bl FUN_021D83C0 mov r0, #0x1 pop {r3, pc} _02032DD4: bl FUN_02033590 cmp r0, #0x0 beq _02032DE6 ldr r0, _02032DF8 ; =FUN_0203318C mov r1, #0x0 bl FUN_02031D20 b _02032DEE _02032DE6: ldr r0, _02032DFC ; =FUN_02032178 mov r1, #0x0 bl FUN_02031D20 _02032DEE: mov r0, #0x0 pop {r3, pc} nop _02032DF4: .word 0x021C5A00 _02032DF8: .word FUN_0203318C _02032DFC: .word FUN_02032178 thumb_func_start FUN_02032E00 FUN_02032E00: ; 0x02032E00 push {r3, lr} bl FUN_0202E4C8 cmp r0, #0x0 beq _02032E3C ldr r0, _02032E40 ; =0x021C5A00 ldr r0, [r0, #0x0] ldr r0, [r0, #0x2c] bl FUN_0202E29C ldr r0, _02032E40 ; =0x021C5A00 mov r1, #0x0 ldr r0, [r0, #0x0] ldr r0, [r0, #0x28] bl FUN_0202DB14 mov r0, #0x1 add r1, r0, #0x0 lsl r2, r0, #0x9 add r3, r0, #0x0 bl FUN_0202F918 cmp r0, #0x0 beq _02032E3C bl FUN_0202FA10 ldr r0, _02032E44 ; =FUN_02032218 mov r1, #0x0 bl FUN_02031D20 _02032E3C: pop {r3, pc} nop _02032E40: .word 0x021C5A00 _02032E44: .word FUN_02032218 thumb_func_start FUN_02032E48 FUN_02032E48: ; 0x02032E48 push {r3, lr} bl FUN_0202E4C8 cmp r0, #0x0 beq _02032E82 ldr r0, _02032E84 ; =0x021C5A00 ldr r0, [r0, #0x0] ldr r0, [r0, #0x2c] bl FUN_0202E29C ldr r0, _02032E84 ; =0x021C5A00 mov r1, #0x0 ldr r0, [r0, #0x0] ldr r0, [r0, #0x28] bl FUN_0202DB14 mov r0, #0x1 add r1, r0, #0x0 lsl r2, r0, #0x9 bl FUN_0202F950 cmp r0, #0x0 beq _02032E82 bl FUN_0202FA10 ldr r0, _02032E88 ; =FUN_02032290 mov r1, #0x0 bl FUN_02031D20 _02032E82: pop {r3, pc} .balign 4 _02032E84: .word 0x021C5A00 _02032E88: .word FUN_02032290 thumb_func_start FUN_02032E8C FUN_02032E8C: ; 0x02032E8C bx lr .balign 4 thumb_func_start FUN_02032E90 FUN_02032E90: ; 0x02032E90 push {r3, lr} bl FUN_021D7F8C cmp r0, #0x0 bge _02032EA2 ldr r0, _02032EA4 ; =FUN_02032E8C mov r1, #0x0 bl FUN_02031D20 _02032EA2: pop {r3, pc} .balign 4 _02032EA4: .word FUN_02032E8C thumb_func_start FUN_02032EA8 FUN_02032EA8: ; 0x02032EA8 bx lr .balign 4 thumb_func_start FUN_02032EAC FUN_02032EAC: ; 0x02032EAC bx lr .balign 4 thumb_func_start FUN_02032EB0 FUN_02032EB0: ; 0x02032EB0 push {r3, lr} mov r0, #0x1 bl FUN_020313A0 bl FUN_021D7F8C cmp r0, #0xa blt _02032ECA ldr r0, _02032F0C ; =FUN_02032EAC mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _02032ECA: cmp r0, #0x0 bge _02032ED8 ldr r0, _02032F10 ; =FUN_02032E8C mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _02032ED8: cmp r0, #0x1 bne _02032EE6 ldr r0, _02032F14 ; =FUN_02032E90 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _02032EE6: cmp r0, #0x2 bne _02032F08 ldr r0, _02032F18 ; =0x021C5A00 ldr r0, [r0, #0x0] add r0, #0x44 ldrb r0, [r0, #0x0] cmp r0, #0x0 beq _02032F00 ldr r0, _02032F10 ; =FUN_02032E8C mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _02032F00: ldr r0, _02032F1C ; =FUN_02032EA8 mov r1, #0x0 bl FUN_02031D20 _02032F08: pop {r3, pc} nop _02032F0C: .word FUN_02032EAC _02032F10: .word FUN_02032E8C _02032F14: .word FUN_02032E90 _02032F18: .word 0x021C5A00 _02032F1C: .word FUN_02032EA8 thumb_func_start FUN_02032F20 FUN_02032F20: ; 0x02032F20 add r1, r0, #0x2 cmp r1, #0x1 bls _02032F28 neg r0, r0 _02032F28: ldr r1, _02032F30 ; =0x021C5A00 ldr r1, [r1, #0x0] str r0, [r1, #0x34] bx lr .balign 4 _02032F30: .word 0x021C5A00 thumb_func_start FUN_02032F34 FUN_02032F34: ; 0x02032F34 push {r3, lr} mov r0, #0x0 bl FUN_021D7800 cmp r0, #0xa blt _02032F4A ldr r0, _02032F88 ; =FUN_02032EAC mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _02032F4A: cmp r0, #0x0 bge _02032F5C bl FUN_02032F20 ldr r0, _02032F8C ; =FUN_02032E8C mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _02032F5C: cmp r0, #0x1 bne _02032F6A ldr r0, _02032F90 ; =FUN_02032EB0 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _02032F6A: cmp r0, #0x2 bne _02032F78 ldr r0, _02032F94 ; =FUN_02032EA8 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _02032F78: cmp r0, #0x3 bne _02032F84 ldr r0, _02032F88 ; =FUN_02032EAC mov r1, #0x0 bl FUN_02031D20 _02032F84: pop {r3, pc} nop _02032F88: .word FUN_02032EAC _02032F8C: .word FUN_02032E8C _02032F90: .word FUN_02032EB0 _02032F94: .word FUN_02032EA8 thumb_func_start FUN_02032F98 FUN_02032F98: ; 0x02032F98 push {r3, lr} mov r0, #0x1 bl FUN_021D7800 cmp r0, #0x0 bge _02032FB2 bl FUN_02032F20 ldr r0, _02032FD0 ; =FUN_02032E8C mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _02032FB2: ldr r0, _02032FD4 ; =0x021C5A00 ldr r0, [r0, #0x0] add r0, #0x42 ldrb r0, [r0, #0x0] bl FUN_021D8494 cmp r0, #0x0 beq _02032FCE bl FUN_0202FC60 ldr r0, _02032FD8 ; =FUN_02032F34 mov r1, #0x0 bl FUN_02031D20 _02032FCE: pop {r3, pc} .balign 4 _02032FD0: .word FUN_02032E8C _02032FD4: .word 0x021C5A00 _02032FD8: .word FUN_02032F34 thumb_func_start FUN_02032FDC FUN_02032FDC: ; 0x02032FDC push {r4, lr} add r4, r0, #0x0 ldr r0, _02032FFC ; =FUN_020303BC ldr r1, _02033000 ; =FUN_02030238 bl FUN_021D77C4 ldr r0, _02033004 ; =0x021C5A00 mov r1, #0x0 ldr r0, [r0, #0x0] add r0, #0x42 strb r4, [r0, #0x0] ldr r0, _02033008 ; =FUN_02032F98 bl FUN_02031D20 mov r0, #0x1 pop {r4, pc} .balign 4 _02032FFC: .word FUN_020303BC _02033000: .word FUN_02030238 _02033004: .word 0x021C5A00 _02033008: .word FUN_02032F98 thumb_func_start FUN_0203300C FUN_0203300C: ; 0x0203300C ldr r0, _02033048 ; =0x021C5A00 ldr r0, [r0, #0x0] ldr r1, [r0, #0x24] ldr r0, _0203304C ; =FUN_02032F34 cmp r1, r0 bne _0203301C mov r0, #0x0 bx lr _0203301C: ldr r0, _02033050 ; =FUN_02032EB0 cmp r1, r0 bne _02033026 mov r0, #0x1 bx lr _02033026: ldr r0, _02033054 ; =FUN_02032E90 cmp r1, r0 bne _02033030 mov r0, #0x3 bx lr _02033030: ldr r0, _02033058 ; =FUN_02032EA8 cmp r1, r0 bne _0203303A mov r0, #0x4 bx lr _0203303A: ldr r0, _0203305C ; =FUN_02032EAC cmp r1, r0 bne _02033044 mov r0, #0x5 bx lr _02033044: mov r0, #0x2 bx lr .balign 4 _02033048: .word 0x021C5A00 _0203304C: .word FUN_02032F34 _02033050: .word FUN_02032EB0 _02033054: .word FUN_02032E90 _02033058: .word FUN_02032EA8 _0203305C: .word FUN_02032EAC thumb_func_start FUN_02033060 FUN_02033060: ; 0x02033060 push {r3, lr} ldr r0, _02033090 ; =FUN_020303BC ldr r1, _02033094 ; =FUN_02030238 bl FUN_021D77C4 mov r0, #0x0 mvn r0, r0 bl FUN_021D8494 cmp r0, #0x0 beq _0203308C ldr r0, _02033098 ; =0x021C5A00 mov r1, #0x0 ldr r0, [r0, #0x0] add r0, #0x4d strb r1, [r0, #0x0] bl FUN_0202FC60 ldr r0, _0203309C ; =FUN_02032F34 mov r1, #0x0 bl FUN_02031D20 _0203308C: pop {r3, pc} nop _02033090: .word FUN_020303BC _02033094: .word FUN_02030238 _02033098: .word 0x021C5A00 _0203309C: .word FUN_02032F34 thumb_func_start FUN_020330A0 FUN_020330A0: ; 0x020330A0 push {r3, lr} mov r0, #0x0 bl FUN_020313A0 ldr r0, _020330D8 ; =0x021C5A00 ldr r0, [r0, #0x0] add r0, #0x41 ldrb r0, [r0, #0x0] bl FUN_021D82BC cmp r0, #0x0 beq _020330C6 bl FUN_021D836C ldr r0, _020330DC ; =FUN_02033060 mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _020330C6: bl FUN_021D7F8C cmp r0, #0x0 bge _020330D6 ldr r0, _020330E0 ; =FUN_02032E8C mov r1, #0x0 bl FUN_02031D20 _020330D6: pop {r3, pc} .balign 4 _020330D8: .word 0x021C5A00 _020330DC: .word FUN_02033060 _020330E0: .word FUN_02032E8C thumb_func_start FUN_020330E4 FUN_020330E4: ; 0x020330E4 push {r3, lr} bl FUN_02031190 cmp r0, #0x0 bne _02033100 ldr r0, _02033120 ; =0x021C5A00 mov r1, #0x0 ldr r0, [r0, #0x0] add r0, #0x41 strb r1, [r0, #0x0] ldr r0, _02033124 ; =FUN_020330A0 bl FUN_02031D20 b _02033112 _02033100: ldr r0, _02033120 ; =0x021C5A00 mov r1, #0x1 ldr r0, [r0, #0x0] add r0, #0x41 strb r1, [r0, #0x0] ldr r0, _02033124 ; =FUN_020330A0 mov r1, #0x0 bl FUN_02031D20 _02033112: ldr r0, _02033120 ; =0x021C5A00 mov r1, #0x1 ldr r0, [r0, #0x0] add r0, #0x4d strb r1, [r0, #0x0] pop {r3, pc} nop _02033120: .word 0x021C5A00 _02033124: .word FUN_020330A0 thumb_func_start FUN_02033128 FUN_02033128: ; 0x02033128 ldr r0, _02033134 ; =0x021C5A00 ldr r0, [r0, #0x0] add r0, #0x4d ldrb r0, [r0, #0x0] bx lr nop _02033134: .word 0x021C5A00 thumb_func_start FUN_02033138 FUN_02033138: ; 0x02033138 ldr r0, _0203314C ; =0x021C5A00 ldr r0, [r0, #0x0] ldr r1, [r0, #0x24] ldr r0, _02033150 ; =FUN_02033060 cmp r1, r0 bne _02033148 mov r0, #0x1 bx lr _02033148: mov r0, #0x0 bx lr .balign 4 _0203314C: .word 0x021C5A00 _02033150: .word FUN_02033060 thumb_func_start FUN_02033154 FUN_02033154: ; 0x02033154 ldr r0, _02033174 ; =0x021C5A00 ldr r0, [r0, #0x0] ldr r1, [r0, #0x24] ldr r0, _02033178 ; =FUN_02032F34 cmp r1, r0 bne _02033164 mov r0, #0x1 bx lr _02033164: ldr r0, _0203317C ; =FUN_02033060 cmp r1, r0 bne _0203316E mov r0, #0x1 bx lr _0203316E: mov r0, #0x0 bx lr nop _02033174: .word 0x021C5A00 _02033178: .word FUN_02032F34 _0203317C: .word FUN_02033060 thumb_func_start FUN_02033180 FUN_02033180: ; 0x02033180 ldr r0, _02033188 ; =0x021C5A00 ldr r0, [r0, #0x0] ldr r0, [r0, #0x34] bx lr .balign 4 _02033188: .word 0x021C5A00 thumb_func_start FUN_0203318C FUN_0203318C: ; 0x0203318C push {r3, lr} mov r0, #0x0 bl FUN_020313A0 mov r0, #0x0 bl FUN_021D82BC cmp r0, #0x0 beq _020331AA bl FUN_021D836C ldr r0, _020331BC ; =FUN_02032440 mov r1, #0x0 bl FUN_02031D20 _020331AA: bl FUN_021D7F8C cmp r0, #0x0 bge _020331BA ldr r0, _020331C0 ; =FUN_02032E8C mov r1, #0x0 bl FUN_02031D20 _020331BA: pop {r3, pc} .balign 4 _020331BC: .word FUN_02032440 _020331C0: .word FUN_02032E8C thumb_func_start FUN_020331C4 FUN_020331C4: ; 0x020331C4 push {r3, lr} ldr r0, _020331E0 ; =0x021C5A00 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _020331DC mov r0, #0x1 bl FUN_020166B8 ldr r0, _020331E4 ; =FUN_02032440 mov r1, #0x5 bl FUN_02031D20 _020331DC: pop {r3, pc} nop _020331E0: .word 0x021C5A00 _020331E4: .word FUN_02032440 thumb_func_start FUN_020331E8 FUN_020331E8: ; 0x020331E8 push {r3, lr} ldr r0, _02033200 ; =0x021C5A00 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _020331FE mov r1, #0x0 add r0, #0x41 strb r1, [r0, #0x0] ldr r0, _02033204 ; =FUN_020330A0 bl FUN_02031D20 _020331FE: pop {r3, pc} .balign 4 _02033200: .word 0x021C5A00 _02033204: .word FUN_020330A0 thumb_func_start FUN_02033208 FUN_02033208: ; 0x02033208 push {r3, lr} ldr r0, _02033234 ; =0x021C5A00 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _02033232 bl FUN_02031190 cmp r0, #0x0 bne _02033220 mov r1, #0x0 ldr r0, _02033234 ; =0x021C5A00 b _02033224 _02033220: ldr r0, _02033234 ; =0x021C5A00 mov r1, #0x1 _02033224: ldr r0, [r0, #0x0] add r0, #0x41 strb r1, [r0, #0x0] ldr r0, _02033238 ; =FUN_020330A0 mov r1, #0x0 bl FUN_02031D20 _02033232: pop {r3, pc} .balign 4 _02033234: .word 0x021C5A00 _02033238: .word FUN_020330A0 thumb_func_start FUN_0203323C FUN_0203323C: ; 0x0203323C push {r3, lr} bl FUN_02031190 add r1, sp, #0x0 strb r0, [r1, #0x0] mov r0, #0x15 add r1, sp, #0x0 bl FUN_020311D0 pop {r3, pc} thumb_func_start FUN_02033250 FUN_02033250: ; 0x02033250 ldr r0, _0203327C ; =0x021C5A00 ldr r2, [r0, #0x0] cmp r2, #0x0 beq _02033276 ldr r1, [r2, #0x24] ldr r0, _02033280 ; =FUN_02032E8C cmp r1, r0 bne _02033264 mov r0, #0x1 bx lr _02033264: ldr r0, _02033284 ; =FUN_02032E90 cmp r1, r0 bne _02033276 add r2, #0x44 ldrb r0, [r2, #0x0] cmp r0, #0x0 beq _02033276 mov r0, #0x1 bx lr _02033276: mov r0, #0x0 bx lr nop _0203327C: .word 0x021C5A00 _02033280: .word FUN_02032E8C _02033284: .word FUN_02032E90 thumb_func_start FUN_02033288 FUN_02033288: ; 0x02033288 push {r4, lr} add r4, r0, #0x0 ldr r0, _020332D8 ; =0x021C5A00 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _020332D6 mov r1, #0xf add r2, r1, #0x0 mov r0, #0x3 add r2, #0xf1 bl FUN_02016828 mov r0, #0xf mov r1, #0x50 bl FUN_02016998 ldr r1, _020332D8 ; =0x021C5A00 mov r2, #0x50 str r0, [r1, #0x0] mov r1, #0x0 blx MI_CpuFill8 ldr r0, _020332D8 ; =0x021C5A00 mov r2, #0x18 ldr r1, [r0, #0x0] add r1, #0x3f strb r2, [r1, #0x0] ldr r2, [r0, #0x0] mov r1, #0x1 add r2, #0x46 strb r1, [r2, #0x0] ldr r0, [r0, #0x0] str r4, [r0, #0x28] mov r0, #0x0 bl FUN_020334E8 mov r0, #0x1 bl FUN_020166A8 _020332D6: pop {r4, pc} .balign 4 _020332D8: .word 0x021C5A00 thumb_func_start FUN_020332DC FUN_020332DC: ; 0x020332DC push {r3, lr} ldr r0, _0203330C ; =0x021C5A00 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _02033308 mov r0, #0x1 bl FUN_020166B8 mov r0, #0x0 add r1, r0, #0x0 bl FUN_020334E8 ldr r0, _0203330C ; =0x021C5A00 ldr r0, [r0, #0x0] bl FUN_02016A18 ldr r0, _0203330C ; =0x021C5A00 mov r1, #0x0 str r1, [r0, #0x0] mov r0, #0xf bl FUN_020168D0 _02033308: pop {r3, pc} nop _0203330C: .word 0x021C5A00 thumb_func_start FUN_02033310 FUN_02033310: ; 0x02033310 push {r4, lr} add r4, r0, #0x0 ldr r0, _02033360 ; =0x021C5A00 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _0203335E mov r1, #0xf add r2, r1, #0x0 mov r0, #0x3 add r2, #0xf1 bl FUN_02016828 mov r0, #0xf mov r1, #0x50 bl FUN_02016998 ldr r1, _02033360 ; =0x021C5A00 mov r2, #0x50 str r0, [r1, #0x0] mov r1, #0x0 blx MI_CpuFill8 ldr r0, _02033360 ; =0x021C5A00 mov r2, #0x19 ldr r1, [r0, #0x0] add r1, #0x3f strb r2, [r1, #0x0] ldr r2, [r0, #0x0] mov r1, #0x1 add r2, #0x46 strb r1, [r2, #0x0] ldr r0, [r0, #0x0] str r4, [r0, #0x28] mov r0, #0x0 bl FUN_020334E8 mov r0, #0x1 bl FUN_020166A8 _0203335E: pop {r4, pc} .balign 4 _02033360: .word 0x021C5A00 thumb_func_start FUN_02033364 FUN_02033364: ; 0x02033364 push {r3, lr} ldr r0, _02033394 ; =0x021C5A00 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _02033390 mov r0, #0x1 bl FUN_020166B8 mov r0, #0x0 add r1, r0, #0x0 bl FUN_020334E8 ldr r0, _02033394 ; =0x021C5A00 ldr r0, [r0, #0x0] bl FUN_02016A18 ldr r0, _02033394 ; =0x021C5A00 mov r1, #0x0 str r1, [r0, #0x0] mov r0, #0xf bl FUN_020168D0 _02033390: pop {r3, pc} nop _02033394: .word 0x021C5A00 thumb_func_start FUN_02033398 FUN_02033398: ; 0x02033398 push {r3, lr} sub sp, #0x8 ldr r0, _020333EC ; =0x021C5A00 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _020333AA add sp, #0x8 mov r0, #0x0 pop {r3, pc} _020333AA: add r0, #0x3f ldrb r0, [r0, #0x0] cmp r0, #0x18 bne _020333C8 add r0, sp, #0x4 add r1, sp, #0x0 blx FUN_021DD718 cmp r0, #0x0 beq _020333E4 blx FUN_021DD6F0 add sp, #0x8 mov r0, #0x1 pop {r3, pc} _020333C8: cmp r0, #0x19 bne _020333E4 add r0, sp, #0x4 add r1, sp, #0x0 blx FUN_021DD718 cmp r0, #0x0 beq _020333E4 ldr r0, [sp, #0x0] cmp r0, #0x7 bne _020333E4 add sp, #0x8 mov r0, #0x1 pop {r3, pc} _020333E4: mov r0, #0x0 add sp, #0x8 pop {r3, pc} nop _020333EC: .word 0x021C5A00 thumb_func_start FUN_020333F0 FUN_020333F0: ; 0x020333F0 push {r3, lr} bl FUN_021D76AC cmp r0, #0x0 bge _02033408 bl FUN_02032F20 ldr r0, _02033414 ; =FUN_02032E8C mov r1, #0x0 bl FUN_02031D20 pop {r3, pc} _02033408: ble _02033412 ldr r0, _02033418 ; =FUN_02033060 mov r1, #0x0 bl FUN_02031D20 _02033412: pop {r3, pc} .balign 4 _02033414: .word FUN_02032E8C _02033418: .word FUN_02033060 thumb_func_start FUN_0203341C FUN_0203341C: ; 0x0203341C push {r3, lr} bl FUN_0202E4C8 cmp r0, #0x0 beq _0203345E mov r1, #0x31 mov r0, #0x3 lsl r2, r1, #0xc bl FUN_02016828 mov r0, #0x1 add r1, r0, #0x0 lsl r2, r0, #0x9 add r3, r0, #0x0 bl FUN_0202F918 cmp r0, #0x0 beq _0203345E ldr r0, _02033460 ; =0x021C5A00 mov r1, #0x31 ldr r0, [r0, #0x0] ldr r0, [r0, #0x28] bl FUN_021D74E0 ldr r0, _02033464 ; =FUN_020335D0 bl FUN_021D83A8 bl FUN_0202FA10 ldr r0, _02033468 ; =FUN_020333F0 mov r1, #0x0 bl FUN_02031D20 _0203345E: pop {r3, pc} .balign 4 _02033460: .word 0x021C5A00 _02033464: .word FUN_020335D0 _02033468: .word FUN_020333F0 thumb_func_start FUN_0203346C FUN_0203346C: ; 0x0203346C push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_020238F4 bl FUN_02030F40 cmp r0, #0x0 beq _02033482 mov r0, #0x0 pop {r3-r5, pc} _02033482: mov r0, #0x1 bl FUN_020166A8 ldr r2, _020334D0 ; =0x00007080 mov r0, #0x3 mov r1, #0xf bl FUN_02016828 add r0, r5, #0x0 mov r1, #0x17 bl FUN_02031734 mov r0, #0xf add r1, r4, #0x0 bl FUN_02016998 ldr r1, _020334D4 ; =0x021C5A00 ldr r2, [r1, #0x0] str r0, [r2, #0x0] ldr r0, [r1, #0x0] mov r1, #0x0 ldr r0, [r0, #0x0] add r2, r4, #0x0 blx MI_CpuFill8 ldr r0, _020334D4 ; =0x021C5A00 mov r1, #0x0 ldr r2, [r0, #0x0] add r2, #0x40 strb r1, [r2, #0x0] ldr r0, [r0, #0x0] str r5, [r0, #0x28] ldr r0, _020334D8 ; =FUN_0203341C bl FUN_02031D20 ldr r0, _020334D4 ; =0x021C5A00 ldr r0, [r0, #0x0] ldr r0, [r0, #0x0] pop {r3-r5, pc} .balign 4 _020334D0: .word 0x00007080 _020334D4: .word 0x021C5A00 _020334D8: .word FUN_0203341C thumb_func_start FUN_020334DC FUN_020334DC: ; 0x020334DC ldr r0, _020334E4 ; =0x021C5A00 ldr r0, [r0, #0x0] ldr r0, [r0, #0x0] bx lr .balign 4 _020334E4: .word 0x021C5A00 thumb_func_start FUN_020334E8 FUN_020334E8: ; 0x020334E8 push {r4, lr} add r4, r0, #0x0 ldr r0, _0203350C ; =0x021C5A00 ldr r2, [r0, #0x0] cmp r2, #0x0 beq _020334FE add r2, #0x44 strb r4, [r2, #0x0] ldr r0, [r0, #0x0] add r0, #0x45 strb r1, [r0, #0x0] _020334FE: add r0, r4, #0x0 bl FUN_0202EE84 add r0, r4, #0x0 bl FUN_0202EEB0 pop {r4, pc} .balign 4 _0203350C: .word 0x021C5A00 thumb_func_start FUN_02033510 FUN_02033510: ; 0x02033510 ldr r0, _02033530 ; =0x021C5A00 ldr r1, [r0, #0x0] cmp r1, #0x0 beq _0203352C add r0, r1, #0x0 add r0, #0x4e ldrb r0, [r0, #0x0] cmp r0, #0x0 beq _02033526 mov r0, #0x1 bx lr _02033526: add r1, #0x45 ldrb r0, [r1, #0x0] bx lr _0203352C: mov r0, #0x0 bx lr .balign 4 _02033530: .word 0x021C5A00 thumb_func_start FUN_02033534 FUN_02033534: ; 0x02033534 ldr r0, _02033548 ; =0x021C5A00 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _02033542 add r0, #0x3f ldrb r0, [r0, #0x0] bx lr _02033542: mov r0, #0x1 bx lr nop _02033548: .word 0x021C5A00 thumb_func_start FUN_0203354C FUN_0203354C: ; 0x0203354C ldr r0, _02033560 ; =0x021C5A00 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _0203355A add r0, #0x40 ldrb r0, [r0, #0x0] bx lr _0203355A: mov r0, #0x0 bx lr nop _02033560: .word 0x021C5A00 thumb_func_start FUN_02033564 FUN_02033564: ; 0x02033564 ldr r1, _02033570 ; =0x021C5A00 ldr r3, _02033574 ; =MI_CpuCopy8 ldr r1, [r1, #0x0] mov r2, #0x6 add r1, r1, #0x4 bx r3 .balign 4 _02033570: .word 0x021C5A00 _02033574: .word MI_CpuCopy8 thumb_func_start FUN_02033578 FUN_02033578: ; 0x02033578 add r1, r0, #0x0 ldr r0, _02033588 ; =0x021C5A00 ldr r3, _0203358C ; =MI_CpuCopy8 ldr r0, [r0, #0x0] mov r2, #0x6 add r0, r0, #0x4 bx r3 nop _02033588: .word 0x021C5A00 _0203358C: .word MI_CpuCopy8 thumb_func_start FUN_02033590 FUN_02033590: ; 0x02033590 push {r3, lr} bl FUN_02033534 cmp r0, #0x13 blt _0203359E mov r0, #0x1 pop {r3, pc} _0203359E: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_020335A4 FUN_020335A4: ; 0x020335A4 ldr r1, _020335B4 ; =0x021C5A00 ldr r1, [r1, #0x0] cmp r1, #0x0 beq _020335B0 add r1, #0x47 strb r0, [r1, #0x0] _020335B0: bx lr nop _020335B4: .word 0x021C5A00 thumb_func_start FUN_020335B8 FUN_020335B8: ; 0x020335B8 ldr r0, _020335CC ; =0x021C5A00 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _020335C6 add r0, #0x47 ldrb r0, [r0, #0x0] bx lr _020335C6: mov r0, #0x0 bx lr nop _020335CC: .word 0x021C5A00 thumb_func_start FUN_020335D0 FUN_020335D0: ; 0x020335D0 push {r3, lr} add r2, r0, #0x0 mov r0, #0x0 mov r1, #0x1 bl FUN_02033F70 _020335DC: b _020335DC .balign 4 thumb_func_start FUN_020335E0 FUN_020335E0: ; 0x020335E0 push {r3, lr} mov r0, #0x0 mov r1, #0x4 add r2, r0, #0x0 bl FUN_02033F70 _020335EC: b _020335EC .balign 4 thumb_func_start FUN_020335F0 FUN_020335F0: ; 0x020335F0 bx lr .balign 4 thumb_func_start FUN_020335F4 FUN_020335F4: ; 0x020335F4 push {r3, lr} bl FUN_02033510 cmp r0, #0x0 beq _0203366C bl FUN_020311F0 cmp r0, #0x0 bne _02033622 bl FUN_02033250 cmp r0, #0x0 bne _02033622 bl FUN_02033398 cmp r0, #0x0 bne _02033622 ldr r0, _02033670 ; =0x021C5A00 ldr r0, [r0, #0x0] add r0, #0x4e ldrb r0, [r0, #0x0] cmp r0, #0x0 beq _0203366C _02033622: bl FUN_020335B8 cmp r0, #0x0 bne _0203366C bl FUN_0200541C ldr r0, _02033670 ; =0x021C5A00 ldr r0, [r0, #0x0] ldr r0, [r0, #0x28] bl FUN_0202287C ldr r1, _02033674 ; =0x021C4918 mov r0, #0x1 strb r0, [r1, #0x4] ldr r1, _02033670 ; =0x021C5A00 ldr r2, [r1, #0x0] add r1, r2, #0x0 add r1, #0x4e ldrb r1, [r1, #0x0] cmp r1, #0x3 bne _02033654 mov r0, #0x3 bl FUN_020335A4 pop {r3, pc} _02033654: add r2, #0x3f ldrb r1, [r2, #0x0] cmp r1, #0x19 beq _02033660 cmp r1, #0xf bne _02033668 _02033660: mov r0, #0x2 bl FUN_020335A4 pop {r3, pc} _02033668: bl FUN_020335A4 _0203366C: pop {r3, pc} nop _02033670: .word 0x021C5A00 _02033674: .word 0x021C4918 thumb_func_start FUN_02033678 FUN_02033678: ; 0x02033678 push {r3, lr} bl FUN_0202EDD8 cmp r0, #0x0 bne _0203368A bl FUN_02031810 cmp r0, #0x0 bne _0203368E _0203368A: mov r0, #0x1 pop {r3, pc} _0203368E: bl FUN_0202E344 cmp r0, #0x0 bne _0203369A mov r0, #0x1 pop {r3, pc} _0203369A: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_020336A0 FUN_020336A0: ; 0x020336A0 push {r3, lr} ldr r1, _020336BC ; =0x021C5A00 ldr r1, [r1, #0x0] cmp r1, #0x0 beq _020336B6 add r1, #0x4e strb r0, [r1, #0x0] bl FUN_02031468 mov r0, #0x1 pop {r3, pc} _020336B6: mov r0, #0x0 pop {r3, pc} nop _020336BC: .word 0x021C5A00 thumb_func_start FUN_020336C0 FUN_020336C0: ; 0x020336C0 mov r1, #0x0 str r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_020336C8 FUN_020336C8: ; 0x020336C8 push {r4-r6, lr} add r4, r2, #0x0 add r6, r1, #0x0 ldr r1, [r4, #0x0] add r5, r0, #0x0 cmp r1, #0x6 bhi _02033774 add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _020336E2: ; jump table (using 16-bit offset) .short _020336F0 - _020336E2 - 2; case 0 .short _020336FC - _020336E2 - 2; case 1 .short _02033714 - _020336E2 - 2; case 2 .short _0203373A - _020336E2 - 2; case 3 .short _0203374A - _020336E2 - 2; case 4 .short _0203376A - _020336E2 - 2; case 5 .short _02033770 - _020336E2 - 2; case 6 _020336F0: mov r0, #0x6f bl FUN_02031588 mov r0, #0x1 str r0, [r4, #0x0] b _02033774 _020336FC: mov r0, #0x6f bl FUN_020315D8 cmp r0, #0x0 beq _02033774 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02022840 mov r0, #0x2 str r0, [r4, #0x0] b _02033774 _02033714: bl FUN_02022854 add r5, r0, #0x0 cmp r5, #0x2 bne _02033722 bl ErrorHandling _02033722: cmp r5, #0x3 bne _0203372A bl ErrorHandling _0203372A: cmp r5, #0x1 bne _02033774 mov r0, #0x3 str r0, [r4, #0x0] mov r0, #0x70 bl FUN_02031588 b _02033774 _0203373A: mov r0, #0x70 bl FUN_020315D8 cmp r0, #0x0 beq _02033774 mov r0, #0x4 str r0, [r4, #0x0] b _02033774 _0203374A: bl FUN_02022854 add r5, r0, #0x0 cmp r5, #0x3 bne _02033758 bl ErrorHandling _02033758: cmp r5, #0x1 bne _02033760 bl ErrorHandling _02033760: cmp r5, #0x2 bne _02033774 mov r0, #0x5 str r0, [r4, #0x0] b _02033774 _0203376A: mov r0, #0x6 str r0, [r4, #0x0] b _02033774 _02033770: mov r0, #0x1 pop {r4-r6, pc} _02033774: mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02033778 FUN_02033778: ; 0x02033778 push {r3-r7, lr} str r0, [sp, #0x0] bl FUN_02030F20 add r7, r0, #0x0 mov r0, #0x0 bl FUN_0202DFA4 cmp r0, #0x0 beq _020337C6 mov r5, #0x0 cmp r7, #0x0 ble _020337C6 _02033792: bl FUN_02031190 cmp r5, r0 beq _020337C0 add r0, r5, #0x0 bl FUN_0202E020 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0202E044 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_0202DFA4 bl FUN_02023A70 add r3, r0, #0x0 ldr r0, [sp, #0x0] add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_020337C8 _020337C0: add r5, r5, #0x1 cmp r5, r7 blt _02033792 _020337C6: pop {r3-r7, pc} thumb_func_start FUN_020337C8 FUN_020337C8: ; 0x020337C8 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 bl FUN_02029B40 cmp r0, #0x0 bne _020337E4 add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 mov r3, #0x1 bl FUN_02029B90 _020337E4: pop {r4-r6, pc} .balign 4 thumb_func_start FUN_020337E8 FUN_020337E8: ; 0x020337E8 push {r3-r5, lr} mov r1, #0x72 lsl r1, r1, #0x4 bl FUN_02016998 add r4, r0, #0x0 add r0, #0x1f mov r1, #0x1f bic r0, r1 blx FUN_02096B14 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02016A18 add r0, r5, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203380C FUN_0203380C: ; 0x0203380C push {r4, lr} bl FUN_02028228 add r4, r0, #0x0 blx FUN_02096FB0 cmp r0, #0x0 bne _0203382A ldr r1, _0203382C ; =0x4144414A add r0, r4, #0x0 blx FUN_02096FF4 add r0, r4, #0x0 blx FUN_02096E90 _0203382A: pop {r4, pc} .balign 4 _0203382C: .word 0x4144414A thumb_func_start FUN_02033830 FUN_02033830: ; 0x02033830 push {r3-r4, lr} sub sp, #0xc bl FUN_02028228 add r4, r0, #0x0 add r1, sp, #0x0 blx FUN_02096CCC add r0, r4, #0x0 add r1, sp, #0x0 blx FUN_02096DA0 add sp, #0xc pop {r3-r4, pc} thumb_func_start FUN_0203384C FUN_0203384C: ; 0x0203384C push {r4, lr} bl FUN_020286EC bl FUN_02028228 add r4, r0, #0x0 blx FUN_02096F80 cmp r0, #0x0 beq _0203386E add r0, r4, #0x0 blx FUN_02096F18 cmp r0, #0x0 beq _0203386E mov r0, #0x1 pop {r4, pc} _0203386E: mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02033874 FUN_02033874: ; 0x02033874 push {r3-r7, lr} sub sp, #0x8 add r4, r0, #0x0 add r5, r1, #0x0 str r2, [sp, #0x0] bl FUN_020286EC bl FUN_02028228 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_020286EC mov r1, #0x0 bl FUN_0202838C add r4, r0, #0x0 mov r1, #0x0 ldr r0, [sp, #0x0] mvn r1, r1 str r1, [r0, #0x0] add r0, r5, #0x0 blx FUN_0209700C cmp r0, #0x0 bne _020338AE add sp, #0x8 mov r0, #0x3 pop {r3-r7, pc} _020338AE: mov r7, #0x0 _020338B0: add r0, r5, #0x0 add r1, r4, #0x0 blx FUN_02096B78 cmp r0, #0x0 beq _020338C6 ldr r0, [sp, #0x0] add sp, #0x8 str r7, [r0, #0x0] mov r0, #0x0 pop {r3-r7, pc} _020338C6: add r0, r6, #0x0 add r1, r5, #0x0 blx FUN_02096DA0 cmp r0, #0x0 ble _020338F4 add r0, r6, #0x0 add r1, r5, #0x0 blx FUN_02096DA0 str r0, [sp, #0x4] add r0, r6, #0x0 add r1, r4, #0x0 blx FUN_02096DA0 ldr r1, [sp, #0x4] cmp r1, r0 bne _020338F4 ldr r0, [sp, #0x0] add sp, #0x8 str r7, [r0, #0x0] mov r0, #0x1 pop {r3-r7, pc} _020338F4: ldr r0, [sp, #0x0] ldr r0, [r0, #0x0] cmp r0, #0x0 bge _0203390A add r0, r4, #0x0 blx FUN_0209700C cmp r0, #0x0 bne _0203390A ldr r0, [sp, #0x0] str r7, [r0, #0x0] _0203390A: add r7, r7, #0x1 add r4, #0xc cmp r7, #0x20 blt _020338B0 mov r0, #0x2 add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_02033918 FUN_02033918: ; 0x02033918 push {r3-r7, lr} sub sp, #0x18 add r4, r0, #0x0 str r1, [sp, #0x0] str r2, [sp, #0x4] add r6, r3, #0x0 bl FUN_020286EC bl FUN_02028228 add r7, r0, #0x0 add r0, r4, #0x0 bl FUN_020286EC mov r1, #0x0 bl FUN_0202838C add r5, r0, #0x0 ldr r1, [sp, #0x0] ldr r2, [sp, #0x4] add r0, r7, #0x0 blx FUN_020973B4 cmp r0, #0x0 bne _02033950 add sp, #0x18 mov r0, #0x3 pop {r3-r7, pc} _02033950: ldr r1, [sp, #0x0] ldr r2, [sp, #0x4] add r0, sp, #0xc blx FUN_02096D2C add r0, r7, #0x0 add r1, sp, #0xc blx FUN_02096DA0 cmp r0, #0x0 bgt _0203396C add sp, #0x18 mov r0, #0x3 pop {r3-r7, pc} _0203396C: mov r0, #0x0 mvn r0, r0 str r0, [r6, #0x0] mov r4, #0x0 _02033974: add r0, r7, #0x0 add r1, sp, #0xc blx FUN_02096DA0 str r0, [sp, #0x8] add r0, r7, #0x0 add r1, r5, #0x0 blx FUN_02096DA0 ldr r1, [sp, #0x8] cmp r1, r0 bne _02033994 add sp, #0x18 str r4, [r6, #0x0] mov r0, #0x0 pop {r3-r7, pc} _02033994: ldr r0, [r6, #0x0] cmp r0, #0x0 bge _020339A6 add r0, r5, #0x0 blx FUN_0209700C cmp r0, #0x0 bne _020339A6 str r4, [r6, #0x0] _020339A6: add r4, r4, #0x1 add r5, #0xc cmp r4, #0x20 blt _02033974 mov r0, #0x2 add sp, #0x18 pop {r3-r7, pc} thumb_func_start FUN_020339B4 FUN_020339B4: ; 0x020339B4 push {r4-r7, lr} sub sp, #0x14 add r6, r1, #0x0 mov r1, #0x0 add r5, r0, #0x0 str r2, [sp, #0x4] str r1, [sp, #0xc] bl FUN_020286EC mov r1, #0x0 bl FUN_0202838C str r0, [sp, #0x8] mov r4, #0x0 bl FUN_02030F20 cmp r0, #0x0 ble _02033A68 _020339D8: bl FUN_02031190 cmp r4, r0 beq _02033A5C add r0, r4, #0x0 bl FUN_0202DFD8 add r7, r0, #0x0 beq _02033A5C add r0, r5, #0x0 add r1, r7, #0x0 add r2, sp, #0x10 bl FUN_02033874 str r0, [r6, #0x0] cmp r0, #0x3 bne _020339FE bl ErrorHandling _020339FE: ldr r0, [r6, #0x0] cmp r0, #0x0 bne _02033A1C mov r0, #0x2 str r0, [sp, #0x0] ldr r2, [sp, #0x10] ldr r3, [sp, #0x4] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02033A70 add r0, r5, #0x0 bl FUN_0202E1BC b _02033A5C _02033A1C: cmp r0, #0x1 bne _02033A54 bl FUN_02033590 cmp r0, #0x0 bne _02033A5C mov r0, #0x1 str r0, [sp, #0x0] ldr r2, [sp, #0x10] ldr r3, [sp, #0x4] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02033A70 ldr r2, [sp, #0x10] mov r1, #0xc add r3, r2, #0x0 mul r3, r1 ldr r1, [sp, #0x8] add r0, r7, #0x0 add r1, r1, r3 mov r2, #0xc blx MI_CpuCopy8 add r0, r5, #0x0 bl FUN_0202E1BC b _02033A5C _02033A54: cmp r0, #0x2 bne _02033A5C mov r0, #0x1 str r0, [sp, #0xc] _02033A5C: add r6, r6, #0x4 add r4, r4, #0x1 bl FUN_02030F20 cmp r4, r0 blt _020339D8 _02033A68: ldr r0, [sp, #0xc] add sp, #0x14 pop {r4-r7, pc} .balign 4 thumb_func_start FUN_02033A70 FUN_02033A70: ; 0x02033A70 push {r4-r7, lr} sub sp, #0x14 add r5, r2, #0x0 str r0, [sp, #0x0] add r7, r1, #0x0 str r3, [sp, #0x4] bl FUN_020286EC add r1, r5, #0x0 add r4, r0, #0x0 bl FUN_0202838C str r0, [sp, #0x8] add r0, r7, #0x0 bl FUN_0202DFA4 add r6, r0, #0x0 ldr r0, [sp, #0x28] cmp r0, #0x2 beq _02033AA6 add r0, r7, #0x0 bl FUN_0202DFD8 ldr r1, [sp, #0x8] mov r2, #0xc blx MI_CpuCopy8 _02033AA6: ldr r0, [sp, #0x28] cmp r0, #0x0 bne _02033AEC ldr r1, [sp, #0x4] add r0, r6, #0x0 bl FUN_020239A0 str r0, [sp, #0xc] ldr r2, [sp, #0xc] add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_020283C0 ldr r0, [sp, #0xc] bl FUN_02021A20 add r0, r6, #0x0 bl FUN_020239CC add r3, r0, #0x0 add r0, r4, #0x0 add r1, r5, #0x0 mov r2, #0x8 bl FUN_020282E8 add r0, r6, #0x0 bl FUN_020239BC add r3, r0, #0x0 add r0, r4, #0x0 add r1, r5, #0x0 mov r2, #0x0 bl FUN_020282E8 b _02033B22 _02033AEC: cmp r0, #0x1 bne _02033B22 add r0, r4, #0x0 add r1, r5, #0x0 mov r2, #0x8 bl FUN_0202822C cmp r0, #0x2 bne _02033B22 add r0, r6, #0x0 bl FUN_020239CC add r3, r0, #0x0 add r0, r4, #0x0 add r1, r5, #0x0 mov r2, #0x8 bl FUN_020282E8 add r0, r6, #0x0 bl FUN_020239BC add r3, r0, #0x0 add r0, r4, #0x0 add r1, r5, #0x0 mov r2, #0x0 bl FUN_020282E8 _02033B22: ldr r1, [sp, #0x4] mov r0, #0x78 bl FUN_020219F4 str r0, [sp, #0x10] add r0, r7, #0x0 bl FUN_0202DFFC add r1, r0, #0x0 ldr r0, [sp, #0x10] bl FUN_02021E28 ldr r2, [sp, #0x10] add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_02028404 ldr r0, [sp, #0x10] bl FUN_02021A20 add r0, r6, #0x0 bl FUN_02023A28 add r3, r0, #0x0 add r0, r4, #0x0 add r1, r5, #0x0 mov r2, #0x7 bl FUN_020282E8 ldr r0, [sp, #0x0] bl FUN_0202E1BC add sp, #0x14 pop {r4-r7, pc} .balign 4 thumb_func_start FUN_02033B68 FUN_02033B68: ; 0x02033B68 push {r4-r6, lr} add r4, r1, #0x0 add r5, r2, #0x0 mov r2, #0x7 add r6, r3, #0x0 ldr r1, [sp, #0x10] mov r0, #0x1 lsl r2, r2, #0x6 add r3, r4, #0x0 bl FUN_02033D3C ldr r1, [sp, #0x10] mov r0, #0x1 add r2, r4, #0x0 bl FUN_02033D9C add r0, r4, #0x0 mov r1, #0x20 bl FUN_020169D8 add r4, r0, #0x0 ldr r0, _02033BC4 ; =FUN_02033BC8 add r1, r4, #0x0 mov r2, #0x5 bl FUN_0200CA98 str r0, [r4, #0x18] strh r5, [r4, #0xc] strh r6, [r4, #0xe] mov r1, #0x0 str r1, [r4, #0x0] mov r0, #0x3 str r0, [r4, #0x4] ldr r0, [sp, #0x14] str r0, [r4, #0x14] ldr r0, [sp, #0x10] str r1, [r4, #0x8] strb r0, [r4, #0x10] strb r1, [r4, #0x12] mov r0, #0x7 strb r1, [r4, #0x11] lsl r0, r0, #0x18 str r0, [r4, #0x1c] add r0, r4, #0x0 pop {r4-r6, pc} nop _02033BC4: .word FUN_02033BC8 thumb_func_start FUN_02033BC8 FUN_02033BC8: ; 0x02033BC8 push {r3-r7, lr} add r5, r1, #0x0 ldrb r0, [r5, #0x11] cmp r0, #0x1 beq _02033BD8 cmp r0, #0x2 beq _02033BEE b _02033C04 _02033BD8: ldr r0, _02033CB0 ; =0x04000304 ldrh r1, [r0, #0x0] lsr r0, r0, #0xb and r0, r1 asr r0, r0, #0xf cmp r0, #0x1 bne _02033BEA mov r6, #0x1 b _02033C06 _02033BEA: mov r6, #0x2 b _02033C06 _02033BEE: ldr r0, _02033CB0 ; =0x04000304 ldrh r1, [r0, #0x0] lsr r0, r0, #0xb and r0, r1 asr r0, r0, #0xf cmp r0, #0x1 bne _02033C00 mov r6, #0x2 b _02033C06 _02033C00: mov r6, #0x1 b _02033C06 _02033C04: mov r6, #0x1 _02033C06: ldr r4, [r5, #0x4] cmp r6, #0x1 bne _02033C1E mov r0, #0x1 lsl r0, r0, #0x1a ldr r1, [r0, #0x0] ldr r0, _02033CB4 ; =0x00300010 add r7, r1, #0x0 and r7, r0 blx FUN_020C5DBC b _02033C2C _02033C1E: ldr r0, _02033CB8 ; =0x04001000 ldr r1, [r0, #0x0] ldr r0, _02033CB4 ; =0x00300010 add r7, r1, #0x0 and r7, r0 blx FUN_020C5D4C _02033C2C: cmp r7, #0x10 beq _02033C38 ldr r1, _02033CBC ; =0x00200010 cmp r7, r1 beq _02033C54 b _02033C6C _02033C38: cmp r0, #0x40 beq _02033C40 cmp r0, #0x20 bne _02033C4A _02033C40: mov r0, #0x1f lsl r1, r4, #0x2 lsl r0, r0, #0x4 add r1, r1, r0 b _02033C74 _02033C4A: mov r0, #0x3f lsl r1, r4, #0x2 lsl r0, r0, #0x4 add r1, r1, r0 b _02033C74 _02033C54: cmp r0, #0x30 beq _02033C5C cmp r0, #0x50 bne _02033C64 _02033C5C: mov r0, #0x9f lsl r0, r0, #0x2 add r1, r4, r0 b _02033C74 _02033C64: mov r0, #0xff lsl r0, r0, #0x2 add r1, r4, r0 b _02033C74 _02033C6C: mov r0, #0xfe lsl r1, r4, #0x1 lsl r0, r0, #0x2 add r1, r1, r0 _02033C74: cmp r6, #0x1 bne _02033C7E mov r2, #0x7 lsl r2, r2, #0x18 b _02033C80 _02033C7E: ldr r2, _02033CC0 ; =0x07000400 _02033C80: ldrh r3, [r5, #0xe] ldrh r0, [r5, #0xc] lsl r3, r3, #0x18 lsr r4, r3, #0x18 mov r3, #0x1 lsl r0, r0, #0x17 lsl r3, r3, #0x1e lsr r0, r0, #0x7 orr r3, r4 orr r0, r3 str r0, [r2, #0x0] mov r0, #0xe lsl r0, r0, #0xc orr r0, r1 strh r0, [r2, #0x4] ldr r1, [r5, #0x1c] cmp r2, r1 beq _02033CAE ldr r0, _02033CC4 ; =0x40000200 str r0, [r1, #0x0] mov r0, #0x0 strh r0, [r1, #0x4] str r2, [r5, #0x1c] _02033CAE: pop {r3-r7, pc} .balign 4 _02033CB0: .word 0x04000304 _02033CB4: .word 0x00300010 _02033CB8: .word 0x04001000 _02033CBC: .word 0x00200010 _02033CC0: .word 0x07000400 _02033CC4: .word 0x40000200 thumb_func_start FUN_02033CC8 FUN_02033CC8: ; 0x02033CC8 cmp r1, #0x4 bge _02033CD2 str r1, [r0, #0x4] mov r1, #0x0 str r1, [r0, #0x8] _02033CD2: bx lr thumb_func_start FUN_02033CD4 FUN_02033CD4: ; 0x02033CD4 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x18] bl FUN_0200CAB4 mov r0, #0x7 ldr r2, _02033D00 ; =0x40000200 lsl r0, r0, #0x18 str r2, [r0, #0x0] mov r1, #0x0 strh r1, [r0, #0x4] ldrb r0, [r4, #0x12] cmp r0, #0x0 beq _02033CF6 ldr r0, _02033D04 ; =0x07000400 str r2, [r0, #0x0] strh r1, [r0, #0x4] _02033CF6: add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} nop _02033D00: .word 0x40000200 _02033D04: .word 0x07000400 thumb_func_start FUN_02033D08 FUN_02033D08: ; 0x02033D08 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 mov r2, #0x7 ldrb r1, [r5, #0x10] mov r0, #0x2 lsl r2, r2, #0x6 add r3, r6, #0x0 bl FUN_02033D3C ldrb r1, [r5, #0x10] mov r0, #0x2 add r2, r6, #0x0 bl FUN_02033D9C cmp r4, #0x0 beq _02033D30 mov r0, #0x1 b _02033D32 _02033D30: mov r0, #0x2 _02033D32: strb r0, [r5, #0x11] mov r0, #0x1 strb r0, [r5, #0x12] pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02033D3C FUN_02033D3C: ; 0x02033D3C push {r3-r5, lr} sub sp, #0x8 mov r1, #0x96 add r5, r0, #0x0 add r0, r3, #0x0 lsl r1, r1, #0x2 add r4, r2, #0x0 bl FUN_020169D8 str r0, [sp, #0x4] cmp r0, #0x0 beq _02033D92 ldr r0, _02033D98 ; =0x02105D88 add r1, sp, #0x4 bl FUN_020161F8 mov r1, #0x96 ldr r0, [sp, #0x4] lsl r1, r1, #0x2 blx DC_FlushRange ldr r0, [sp, #0x4] add r1, sp, #0x0 blx FUN_020B0138 cmp r5, #0x1 bne _02033D80 ldr r0, [sp, #0x0] add r1, r4, #0x0 ldr r0, [r0, #0xc] mov r2, #0x20 blx FUN_020C9480 b _02033D8C _02033D80: ldr r0, [sp, #0x0] add r1, r4, #0x0 ldr r0, [r0, #0xc] mov r2, #0x20 blx FUN_020C9418 _02033D8C: ldr r0, [sp, #0x4] bl FUN_02016A18 _02033D92: add sp, #0x8 pop {r3-r5, pc} nop _02033D98: .word 0x02105D88 thumb_func_start FUN_02033D9C FUN_02033D9C: ; 0x02033D9C push {r3-r5, lr} sub sp, #0x8 add r4, r1, #0x0 mov r1, #0x96 add r5, r0, #0x0 add r0, r2, #0x0 lsl r1, r1, #0x2 bl FUN_020169D8 str r0, [sp, #0x4] cmp r0, #0x0 beq _02033E58 cmp r4, #0x0 add r1, sp, #0x4 beq _02033DC2 ldr r0, _02033E5C ; =0x02105D98 bl FUN_020161F8 b _02033DC8 _02033DC2: ldr r0, _02033E60 ; =0x02105DA8 bl FUN_020161F8 _02033DC8: mov r1, #0x96 ldr r0, [sp, #0x4] lsl r1, r1, #0x2 blx DC_FlushRange ldr r0, [sp, #0x4] add r1, sp, #0x0 blx FUN_020B0088 cmp r5, #0x1 bne _02033DF0 mov r0, #0x1 lsl r0, r0, #0x1a ldr r1, [r0, #0x0] ldr r0, _02033E64 ; =0x00300010 add r4, r1, #0x0 and r4, r0 blx FUN_020C5DBC b _02033E00 _02033DF0: mov r0, #0x1 lsl r0, r0, #0x1a ldr r1, [r0, #0x0] ldr r0, _02033E64 ; =0x00300010 add r4, r1, #0x0 and r4, r0 blx FUN_020C5DBC _02033E00: cmp r4, #0x10 beq _02033E0C ldr r1, _02033E68 ; =0x00200010 cmp r4, r1 beq _02033E20 b _02033E30 _02033E0C: cmp r0, #0x40 beq _02033E14 cmp r0, #0x20 bne _02033E1A _02033E14: mov r1, #0x3e lsl r1, r1, #0x8 b _02033E34 _02033E1A: mov r1, #0x7e lsl r1, r1, #0x8 b _02033E34 _02033E20: cmp r0, #0x30 beq _02033E28 cmp r0, #0x50 bne _02033E2C _02033E28: ldr r1, _02033E6C ; =0x00013E00 b _02033E34 _02033E2C: ldr r1, _02033E70 ; =0x0001FE00 b _02033E34 _02033E30: mov r1, #0xfe lsl r1, r1, #0x8 _02033E34: cmp r5, #0x1 bne _02033E46 ldr r0, [sp, #0x0] mov r2, #0x2 ldr r0, [r0, #0x14] lsl r2, r2, #0x8 blx FUN_020C92F4 b _02033E52 _02033E46: ldr r0, [sp, #0x0] mov r2, #0x2 ldr r0, [r0, #0x14] lsl r2, r2, #0x8 blx FUN_020C9294 _02033E52: ldr r0, [sp, #0x4] bl FUN_02016A18 _02033E58: add sp, #0x8 pop {r3-r5, pc} .balign 4 _02033E5C: .word 0x02105D98 _02033E60: .word 0x02105DA8 _02033E64: .word 0x00300010 _02033E68: .word 0x00200010 _02033E6C: .word 0x00013E00 _02033E70: .word 0x0001FE00 thumb_func_start FUN_02033E74 FUN_02033E74: ; 0x02033E74 push {r4, lr} mov r4, #0x0 bl FUN_02033590 cmp r0, #0x0 beq _02033E82 mov r4, #0x1 _02033E82: mov r0, #0xf0 mov r1, #0x0 add r2, r4, #0x0 bl FUN_02033E90 pop {r4, pc} .balign 4 thumb_func_start FUN_02033E90 FUN_02033E90: ; 0x02033E90 push {r4-r6, lr} sub sp, #0x8 add r5, r0, #0x0 add r6, r1, #0x0 add r4, r2, #0x0 bl FUN_0202E4DC cmp r0, #0x0 beq _02033EC4 ldr r0, _02033EC8 ; =0x021C5A04 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _02033EAE bl FUN_02033ED0 _02033EAE: ldr r0, _02033ECC ; =0x02105D74 str r4, [sp, #0x0] str r0, [sp, #0x4] mov r0, #0x0 mov r1, #0x5b add r2, r5, #0x0 add r3, r6, #0x0 bl FUN_02033B68 ldr r1, _02033EC8 ; =0x021C5A04 str r0, [r1, #0x0] _02033EC4: add sp, #0x8 pop {r4-r6, pc} .balign 4 _02033EC8: .word 0x021C5A04 _02033ECC: .word 0x02105D74 thumb_func_start FUN_02033ED0 FUN_02033ED0: ; 0x02033ED0 push {r3, lr} ldr r0, _02033EE8 ; =0x021C5A04 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _02033EE4 bl FUN_02033CD4 ldr r0, _02033EE8 ; =0x021C5A04 mov r1, #0x0 str r1, [r0, #0x0] _02033EE4: pop {r3, pc} nop _02033EE8: .word 0x021C5A04 thumb_func_start FUN_02033EEC FUN_02033EEC: ; 0x02033EEC push {r3, lr} add r1, r0, #0x0 ldr r0, _02033F00 ; =0x021C5A04 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _02033EFC bl FUN_02033CC8 _02033EFC: pop {r3, pc} nop _02033F00: .word 0x021C5A04 thumb_func_start FUN_02033F04 FUN_02033F04: ; 0x02033F04 push {r3, lr} add r3, r0, #0x0 ldr r0, _02033F1C ; =0x021C5A04 add r2, r1, #0x0 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _02033F18 add r1, r3, #0x0 bl FUN_02033D08 _02033F18: pop {r3, pc} nop _02033F1C: .word 0x021C5A04 thumb_func_start FUN_02033F20 FUN_02033F20: ; 0x02033F20 push {r3, lr} bl FUN_02030F40 cmp r0, #0x0 beq _02033F40 bl FUN_02030F20 cmp r0, #0x1 bgt _02033F3A bl FUN_02033590 cmp r0, #0x0 beq _02033F4C _02033F3A: bl FUN_02033E74 pop {r3, pc} _02033F40: bl FUN_02033590 cmp r0, #0x0 beq _02033F4C bl FUN_02033E74 _02033F4C: pop {r3, pc} .balign 4 thumb_func_start FUN_02033F50 FUN_02033F50: ; 0x02033F50 ldr r3, _02033F64 ; =0x027E0000 ldr r1, _02033F68 ; =0x00003FF8 mov r0, #0x1 ldr r2, [r3, r1] orr r0, r2 str r0, [r3, r1] ldr r3, _02033F6C ; =MI_WaitDma mov r0, #0x3 bx r3 nop _02033F64: .word 0x027E0000 _02033F68: .word 0x00003FF8 _02033F6C: .word MI_WaitDma thumb_func_start FUN_02033F70 FUN_02033F70: ; 0x02033F70 push {r3-r7, lr} sub sp, #0x28 add r4, r0, #0x0 str r2, [sp, #0xc] cmp r1, #0x4 bhi _02033F92 add r0, r1, r1 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02033F88: ; jump table (using 16-bit offset) .short _02033F92 - _02033F88 - 2; case 0 .short _02033F96 - _02033F88 - 2; case 1 .short _02033F9A - _02033F88 - 2; case 2 .short _02033F9E - _02033F88 - 2; case 3 .short _02033FA2 - _02033F88 - 2; case 4 _02033F92: mov r5, #0x1 b _02033FA4 _02033F96: mov r5, #0x2 b _02033FA4 _02033F9A: mov r5, #0x3 b _02033FA4 _02033F9E: mov r5, #0x4 b _02033FA4 _02033FA2: mov r5, #0x5 _02033FA4: mov r0, #0x0 add r1, r0, #0x0 bl FUN_0200E3A0 mov r0, #0x1 mov r1, #0x0 bl FUN_0200E3A0 mov r0, #0x1 blx OS_DisableIrqMask ldr r1, _02034154 ; =FUN_02033F50 mov r0, #0x1 blx OS_SetIrqFunction mov r0, #0x1 blx OS_EnableIrqMask mov r0, #0x0 add r1, r0, #0x0 bl FUN_02015F10 mov r0, #0x0 add r1, r0, #0x0 bl FUN_02015F34 bl FUN_0201E6D8 bl FUN_0201E740 mov r2, #0x1 lsl r2, r2, #0x1a ldr r1, [r2, #0x0] ldr r0, _02034158 ; =0xFFFFE0FF and r1, r0 str r1, [r2, #0x0] ldr r2, _0203415C ; =0x04001000 ldr r1, [r2, #0x0] and r0, r1 str r0, [r2, #0x0] mov r0, #0x4 mov r1, #0x8 bl FUN_0201669C ldr r0, _02034160 ; =0x021C4918 mov r1, #0x0 strb r1, [r0, #0x5] bl FUN_0201E7A0 ldr r3, _02034164 ; =0x04000050 mov r1, #0x0 strh r1, [r3, #0x0] ldr r0, _02034168 ; =0x04001050 sub r3, #0x50 strh r1, [r0, #0x0] ldr r2, [r3, #0x0] ldr r1, _0203416C ; =0xFFFF1FFF sub r0, #0x50 and r2, r1 str r2, [r3, #0x0] ldr r2, [r0, #0x0] and r1, r2 str r1, [r0, #0x0] ldr r0, _02034170 ; =0x020EECD0 bl FUN_0201E66C add r0, r4, #0x0 bl FUN_02016B94 add r6, r0, #0x0 ldr r0, _02034174 ; =0x020EECA4 bl FUN_02016BBC mov r1, #0x0 ldr r2, _02034178 ; =0x020EECB4 add r0, r6, #0x0 add r3, r1, #0x0 bl FUN_02016C18 add r0, r6, #0x0 mov r1, #0x0 bl FUN_02018744 mov r1, #0x0 str r1, [sp, #0x0] ldr r2, _0203417C ; =0x000001F7 add r0, r6, #0x0 mov r3, #0x2 str r4, [sp, #0x4] bl FUN_0200CB00 mov r0, #0x0 mov r1, #0x20 add r2, r4, #0x0 bl FUN_02002ED0 mov r0, #0x0 mov r1, #0x20 add r2, r0, #0x0 add r3, r4, #0x0 bl FUN_02017F18 ldr r1, _02034180 ; =0x00006C21 mov r0, #0x0 bl FUN_02017FE4 ldr r1, _02034180 ; =0x00006C21 mov r0, #0x4 bl FUN_02017FE4 mov r0, #0x1 mov r1, #0x1a mov r2, #0xc8 add r3, r4, #0x0 bl FUN_0200A86C str r0, [sp, #0x10] mov r0, #0x6 lsl r0, r0, #0x6 add r1, r4, #0x0 bl FUN_020219F4 add r7, r0, #0x0 mov r0, #0x6 lsl r0, r0, #0x6 add r1, r4, #0x0 bl FUN_020219F4 str r0, [sp, #0x14] bl FUN_0201BD5C add r0, r4, #0x0 bl FUN_0200AA80 add r4, r0, #0x0 ldr r2, _02034184 ; =0x020EEC9C add r0, r6, #0x0 add r1, sp, #0x18 bl FUN_02019150 mov r0, #0xd0 str r0, [sp, #0x0] mov r0, #0x90 mov r2, #0x0 str r0, [sp, #0x4] add r0, sp, #0x18 mov r1, #0xf add r3, r2, #0x0 bl FUN_020196F4 ldr r2, _0203417C ; =0x000001F7 add r0, sp, #0x18 mov r1, #0x0 mov r3, #0x2 bl FUN_0200CCA4 mov r0, #0x2 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] ldr r2, [sp, #0xc] add r0, r4, #0x0 mov r1, #0x0 mov r3, #0x5 bl FUN_0200AD38 ldr r0, [sp, #0x10] ldr r2, [sp, #0x14] add r1, r5, #0x0 bl FUN_0200A8E0 ldr r2, [sp, #0x14] add r0, r4, #0x0 add r1, r7, #0x0 bl FUN_0200B7B8 mov r1, #0x0 str r1, [sp, #0x0] str r1, [sp, #0x4] add r0, sp, #0x18 add r2, r7, #0x0 add r3, r1, #0x0 str r1, [sp, #0x8] bl FUN_0201BD84 add r0, r7, #0x0 bl FUN_02021A20 bl FUN_0201E788 mov r0, #0x0 bl FUN_0200E394 mov r0, #0x1 bl FUN_0200E394 mov r0, #0x0 mov r1, #0x3f mov r2, #0x3 bl FUN_0200A274 add r0, sp, #0x18 bl FUN_02019178 ldr r0, [sp, #0x10] bl FUN_0200A8B8 add r0, r4, #0x0 bl FUN_0200AB18 add r0, r6, #0x0 bl FUN_02016A18 add sp, #0x28 pop {r3-r7, pc} nop _02034154: .word FUN_02033F50 _02034158: .word 0xFFFFE0FF _0203415C: .word 0x04001000 _02034160: .word 0x021C4918 _02034164: .word 0x04000050 _02034168: .word 0x04001050 _0203416C: .word 0xFFFF1FFF _02034170: .word 0x020EECD0 _02034174: .word 0x020EECA4 _02034178: .word 0x020EECB4 _0203417C: .word 0x000001F7 _02034180: .word 0x00006C21 _02034184: .word 0x020EEC9C thumb_func_start FUN_02034188 FUN_02034188: ; 0x02034188 push {r4-r7, lr} sub sp, #0x24 add r4, r0, #0x0 mov r0, #0x0 add r1, r0, #0x0 bl FUN_0200E3A0 mov r0, #0x1 mov r1, #0x0 bl FUN_0200E3A0 bl FUN_02015EF4 mov r0, #0x0 add r1, r0, #0x0 bl FUN_02015F10 mov r0, #0x0 add r1, r0, #0x0 bl FUN_02015F34 bl FUN_0201E6D8 bl FUN_0201E740 mov r2, #0x1 lsl r2, r2, #0x1a ldr r1, [r2, #0x0] ldr r0, _02034368 ; =0xFFFFE0FF and r1, r0 str r1, [r2, #0x0] ldr r2, _0203436C ; =0x04001000 ldr r1, [r2, #0x0] and r0, r1 str r0, [r2, #0x0] mov r0, #0x4 mov r1, #0x8 bl FUN_0201669C ldr r0, _02034370 ; =0x021C4918 mov r1, #0x0 strb r1, [r0, #0x5] bl FUN_0201E7A0 ldr r3, _02034374 ; =0x04000050 mov r0, #0x0 strh r0, [r3, #0x0] ldr r2, _02034378 ; =0x04001050 sub r3, #0x50 strh r0, [r2, #0x0] ldr r1, [r3, #0x0] ldr r0, _0203437C ; =0xFFFF1FFF sub r2, #0x50 and r1, r0 str r1, [r3, #0x0] ldr r1, [r2, #0x0] and r0, r1 str r0, [r2, #0x0] ldr r0, _02034380 ; =0x020EED2C bl FUN_0201E66C add r0, r4, #0x0 bl FUN_02016B94 str r0, [sp, #0x10] ldr r0, _02034384 ; =0x020EED00 bl FUN_02016BBC mov r1, #0x0 ldr r0, [sp, #0x10] ldr r2, _02034388 ; =0x020EED10 add r3, r1, #0x0 bl FUN_02016C18 ldr r0, [sp, #0x10] mov r1, #0x0 bl FUN_02018744 mov r1, #0x0 str r1, [sp, #0x0] ldr r0, [sp, #0x10] ldr r2, _0203438C ; =0x000001F7 mov r3, #0x2 str r4, [sp, #0x4] bl FUN_0200CB00 mov r0, #0x0 mov r1, #0x20 add r2, r4, #0x0 bl FUN_02002ED0 mov r0, #0x0 mov r1, #0x20 add r2, r0, #0x0 add r3, r4, #0x0 bl FUN_02017F18 ldr r1, _02034390 ; =0x00006C21 mov r0, #0x0 bl FUN_02017FE4 ldr r1, _02034390 ; =0x00006C21 mov r0, #0x4 bl FUN_02017FE4 ldr r2, _02034394 ; =0x00000265 mov r0, #0x1 mov r1, #0x1a add r3, r4, #0x0 bl FUN_0200A86C str r0, [sp, #0xc] mov r0, #0x6 lsl r0, r0, #0x6 add r1, r4, #0x0 bl FUN_020219F4 add r4, r0, #0x0 bl FUN_0201BD5C ldr r0, [sp, #0x10] ldr r2, _02034398 ; =0x020EECF8 add r1, sp, #0x14 bl FUN_02019150 mov r0, #0xd0 str r0, [sp, #0x0] mov r0, #0x90 mov r2, #0x0 str r0, [sp, #0x4] add r0, sp, #0x14 mov r1, #0xf add r3, r2, #0x0 bl FUN_020196F4 ldr r2, _0203438C ; =0x000001F7 add r0, sp, #0x14 mov r1, #0x0 mov r3, #0x2 bl FUN_0200CCA4 ldr r0, [sp, #0xc] mov r1, #0xf add r2, r4, #0x0 bl FUN_0200A8E0 mov r1, #0x0 str r1, [sp, #0x0] str r1, [sp, #0x4] add r0, sp, #0x14 add r2, r4, #0x0 add r3, r1, #0x0 str r1, [sp, #0x8] bl FUN_0201BD84 add r0, r4, #0x0 bl FUN_02021A20 bl FUN_0201E788 mov r0, #0x0 bl FUN_0200E394 mov r0, #0x1 bl FUN_0200E394 mov r0, #0x0 mov r1, #0x3f mov r2, #0x3 bl FUN_0200A274 ldr r4, _0203439C ; =0x04000130 ldr r6, _020343A0 ; =0x027FFFA8 mov r7, #0x1 _020342E4: ldrh r1, [r4, #0x0] ldrh r0, [r6, #0x0] orr r1, r0 ldr r0, _020343A4 ; =0x00002FFF eor r1, r0 and r0, r1 lsl r0, r0, #0x10 lsr r5, r0, #0x10 bl FUN_02000FE8 add r0, r5, #0x0 tst r0, r7 bne _02034308 mov r0, #0x1 add r1, r0, #0x0 blx OS_WaitIrq b _020342E4 _02034308: add r0, sp, #0x14 bl FUN_02019178 ldr r0, [sp, #0xc] bl FUN_0200A8B8 mov r0, #0x0 add r1, r0, #0x0 bl FUN_0201797C mov r0, #0x1 mov r1, #0x0 bl FUN_0201797C mov r0, #0x2 mov r1, #0x0 bl FUN_0201797C mov r0, #0x3 mov r1, #0x0 bl FUN_0201797C mov r0, #0x4 mov r1, #0x0 bl FUN_0201797C mov r0, #0x5 mov r1, #0x0 bl FUN_0201797C mov r0, #0x6 mov r1, #0x0 bl FUN_0201797C mov r0, #0x7 mov r1, #0x0 bl FUN_0201797C ldr r0, [sp, #0x10] mov r1, #0x0 bl FUN_020178A0 ldr r0, [sp, #0x10] bl FUN_02016A18 add sp, #0x24 pop {r4-r7, pc} nop _02034368: .word 0xFFFFE0FF _0203436C: .word 0x04001000 _02034370: .word 0x021C4918 _02034374: .word 0x04000050 _02034378: .word 0x04001050 _0203437C: .word 0xFFFF1FFF _02034380: .word 0x020EED2C _02034384: .word 0x020EED00 _02034388: .word 0x020EED10 _0203438C: .word 0x000001F7 _02034390: .word 0x00006C21 _02034394: .word 0x00000265 _02034398: .word 0x020EECF8 _0203439C: .word 0x04000130 _020343A0: .word 0x027FFFA8 _020343A4: .word 0x00002FFF thumb_func_start FUN_020343A8 FUN_020343A8: ; 0x020343A8 push {r4-r7, lr} sub sp, #0xc add r4, r0, #0x0 str r2, [sp, #0x0] mov r2, #0x0 strb r2, [r4, #0x1] mov r0, #0xe1 ldr r7, _02034488 ; =0x0000070A ldr r6, _0203448C ; =0x00000A8E mov r12, r1 strb r2, [r4, #0x0] add r3, r4, #0x0 add r5, r2, #0x0 lsl r0, r0, #0x2 _020343C4: add r1, r4, r2 strh r5, [r3, #0x2] strb r5, [r1, r7] strh r5, [r3, r6] add r2, r2, #0x1 add r3, r3, #0x2 cmp r2, r0 blt _020343C4 ldr r0, _02034490 ; =0x00001196 mov r2, #0x0 _020343D8: add r1, r4, r5 add r5, r5, #0x1 strb r2, [r1, r0] cmp r5, #0x10 blt _020343D8 mov r0, #0x29 mov r1, r12 mov r2, #0xb bl FUN_02006528 add r6, r0, #0x0 ldrb r0, [r6, #0x0] add r5, r6, #0x5 strb r0, [r4, #0x1] ldrb r0, [r6, #0x1] strb r0, [r4, #0x0] ldrb r0, [r6, #0x2] str r0, [sp, #0x8] ldrb r0, [r6, #0x3] str r0, [sp, #0x4] ldrb r7, [r6, #0x4] cmp r7, #0x10 bls _0203440A bl ErrorHandling _0203440A: ldr r1, _02034490 ; =0x00001196 add r0, r5, #0x0 add r1, r4, r1 add r2, r7, #0x0 blx MI_CpuCopy8 ldr r0, [sp, #0x8] add r5, r5, r7 cmp r0, #0x0 beq _0203443A ldrb r3, [r4, #0x1] ldrb r2, [r4, #0x0] add r0, r5, #0x0 add r1, r4, #0x2 mul r2, r3 lsl r2, r2, #0x1 blx MI_CpuCopy8 ldrb r1, [r4, #0x1] ldrb r0, [r4, #0x0] mul r0, r1 lsl r0, r0, #0x1 add r5, r5, r0 b _0203444E _0203443A: ldrb r3, [r4, #0x1] ldrb r2, [r4, #0x0] ldr r0, [sp, #0x0] add r1, r4, #0x2 lsl r0, r0, #0x10 mul r2, r3 lsr r0, r0, #0x10 lsl r2, r2, #0x1 blx MIi_CpuClear16 _0203444E: ldr r0, [sp, #0x4] cmp r0, #0x0 beq _0203446C ldrb r3, [r4, #0x1] ldrb r2, [r4, #0x0] ldr r1, _02034488 ; =0x0000070A add r0, r5, #0x0 add r1, r4, r1 mul r2, r3 blx MI_CpuCopy8 ldrb r1, [r4, #0x1] ldrb r0, [r4, #0x0] mul r0, r1 add r5, r5, r0 _0203446C: ldrb r3, [r4, #0x1] ldrb r2, [r4, #0x0] ldr r1, _0203448C ; =0x00000A8E add r0, r5, #0x0 mul r2, r3 add r1, r4, r1 lsl r2, r2, #0x1 blx MI_CpuCopy8 add r0, r6, #0x0 bl FUN_02016A18 add sp, #0xc pop {r4-r7, pc} .balign 4 _02034488: .word 0x0000070A _0203448C: .word 0x00000A8E _02034490: .word 0x00001196 thumb_func_start FUN_02034494 FUN_02034494: ; 0x02034494 push {r3, lr} ldr r1, _020344A8 ; =0x000011AA mov r0, #0xb bl FUN_02016998 mov r1, #0x0 strb r1, [r0, #0x0] strb r1, [r0, #0x1] strb r1, [r0, #0x2] pop {r3, pc} .balign 4 _020344A8: .word 0x000011AA thumb_func_start FUN_020344AC FUN_020344AC: ; 0x020344AC push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_0203474C add r6, r0, #0x0 add r0, r4, #0x4 add r1, r6, #0x0 add r2, r5, #0x0 bl FUN_020343A8 strb r6, [r4, #0x2] ldrb r0, [r4, #0x4] strb r0, [r4, #0x1] ldrb r0, [r4, #0x5] strb r0, [r4, #0x0] pop {r4-r6, pc} .balign 4 thumb_func_start FUN_020344D0 FUN_020344D0: ; 0x020344D0 ldr r3, _020344D4 ; =FUN_02016A18 bx r3 .balign 4 _020344D4: .word FUN_02016A18 thumb_func_start FUN_020344D8 FUN_020344D8: ; 0x020344D8 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 ldrb r1, [r4, #0x0] ldrb r0, [r4, #0x1] mul r0, r1 cmp r5, r0 blt _020344EC bl ErrorHandling _020344EC: lsl r0, r5, #0x1 add r1, r4, r0 ldr r0, _020344F8 ; =0x00000A92 ldrh r0, [r1, r0] pop {r3-r5, pc} nop _020344F8: .word 0x00000A92 thumb_func_start FUN_020344FC FUN_020344FC: ; 0x020344FC push {r4, lr} add r4, r0, #0x0 bne _02034506 bl ErrorHandling _02034506: ldrb r0, [r4, #0x0] pop {r4, pc} .balign 4 thumb_func_start FUN_0203450C FUN_0203450C: ; 0x0203450C push {r4, lr} add r4, r0, #0x0 bne _02034516 bl ErrorHandling _02034516: ldrb r0, [r4, #0x1] pop {r4, pc} .balign 4 thumb_func_start FUN_0203451C FUN_0203451C: ; 0x0203451C push {r3-r7, lr} add r7, r0, #0x0 ldrb r0, [r7, #0x1] add r5, r1, #0x0 add r4, r2, #0x0 ldrb r6, [r7, #0x0] str r0, [sp, #0x0] cmp r5, #0x0 blt _02034532 cmp r5, r6 blt _02034536 _02034532: bl ErrorHandling _02034536: cmp r4, #0x0 blt _02034540 ldr r0, [sp, #0x0] cmp r4, r0 blt _02034544 _02034540: bl ErrorHandling _02034544: add r0, r4, #0x0 mul r0, r6 add r0, r5, r0 lsl r0, r0, #0x1 add r0, r7, r0 ldrh r0, [r0, #0x6] pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02034554 FUN_02034554: ; 0x02034554 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldrb r1, [r5, #0x0] ldrb r0, [r5, #0x1] mul r0, r1 cmp r4, #0x0 blt _02034568 cmp r4, r0 blt _0203456C _02034568: bl ErrorHandling _0203456C: lsl r0, r4, #0x1 add r0, r5, r0 ldrh r0, [r0, #0x6] pop {r3-r5, pc} thumb_func_start FUN_02034574 FUN_02034574: ; 0x02034574 ldrb r0, [r0, #0x2] bx lr thumb_func_start FUN_02034578 FUN_02034578: ; 0x02034578 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [sp, #0x10] add r4, r2, #0x0 add r6, r3, #0x0 cmp r4, r0 blt _0203458A bl ErrorHandling _0203458A: ldr r0, [sp, #0x10] mul r0, r6 add r4, r4, r0 mov r0, #0xe1 lsl r0, r0, #0x2 cmp r4, r0 blt _0203459C bl ErrorHandling _0203459C: ldr r0, _020345A4 ; =0x0000070E add r1, r5, r4 ldrb r0, [r1, r0] pop {r4-r6, pc} .balign 4 _020345A4: .word 0x0000070E thumb_func_start FUN_020345A8 FUN_020345A8: ; 0x020345A8 push {r3-r5, lr} ldr r1, _020345D8 ; =0x00000708 add r4, r0, #0x0 bl FUN_02016998 add r5, r0, #0x0 mov r0, #0x29 mov r1, #0x0 add r2, r4, #0x0 bl FUN_02006528 add r4, r0, #0x0 ldrb r1, [r4, #0x4] add r0, r4, #0x5 ldr r2, _020345D8 ; =0x00000708 add r0, r0, r1 add r1, r5, #0x0 blx MI_CpuCopy8 add r0, r4, #0x0 bl FUN_02016A18 add r0, r5, #0x0 pop {r3-r5, pc} .balign 4 _020345D8: .word 0x00000708 thumb_func_start FUN_020345DC FUN_020345DC: ; 0x020345DC push {r4, lr} add r4, r0, #0x0 bne _020345E6 bl ErrorHandling _020345E6: add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} .balign 4 thumb_func_start FUN_020345F0 FUN_020345F0: ; 0x020345F0 mov r3, #0x1e mul r3, r2 add r1, r1, r3 lsl r1, r1, #0x1 ldrh r0, [r0, r1] bx lr thumb_func_start FUN_020345FC FUN_020345FC: ; 0x020345FC push {r3-r5, lr} sub sp, #0x1fc sub sp, #0x1fc sub sp, #0x1fc sub sp, #0x1fc sub sp, #0x1fc sub sp, #0x1fc sub sp, #0x1fc sub sp, #0x1fc sub sp, #0x1c8 add r3, r0, #0x0 add r5, r1, #0x0 lsl r1, r3, #0x10 add r4, r2, #0x0 add r0, sp, #0x0 lsr r1, r1, #0x10 mov r2, #0x0 bl FUN_020343A8 add r0, sp, #0x0 ldrb r0, [r0, #0x1] cmp r5, r0 blt _0203462E bl ErrorHandling _0203462E: add r0, sp, #0x0 ldrb r0, [r0, #0x0] cmp r4, r0 blt _0203463A bl ErrorHandling _0203463A: add r0, sp, #0x0 ldrb r0, [r0, #0x1] mul r0, r4 add r0, r5, r0 lsl r1, r0, #0x1 add r0, sp, #0x0 add r0, #0x2 ldrh r0, [r0, r1] add sp, #0x1fc add sp, #0x1fc add sp, #0x1fc add sp, #0x1fc add sp, #0x1fc add sp, #0x1fc add sp, #0x1fc add sp, #0x1fc add sp, #0x1c8 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02034660 FUN_02034660: ; 0x02034660 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bne _0203466C bl ErrorHandling _0203466C: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_020344D8 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02034678 FUN_02034678: ; 0x02034678 push {r4-r7} ldr r1, _020346C4 ; =0x00000A92 ldrb r7, [r0, #0x0] add r2, r0, r1 ldr r1, _020346C8 ; =0x0000070E add r1, r0, r1 ldrb r0, [r0, #0x2] cmp r0, #0x0 bne _020346BE mov r0, #0x15 add r6, r7, #0x0 mul r6, r0 add r5, r6, #0x0 add r5, #0x17 mov r4, #0xb0 lsl r0, r5, #0x1 add r6, #0x18 strh r4, [r2, r0] lsl r0, r6, #0x1 strh r4, [r2, r0] mov r0, #0x16 add r3, r7, #0x0 mul r3, r0 add r0, r3, #0x0 add r0, #0x17 lsl r7, r0, #0x1 add r3, #0x18 strh r4, [r2, r7] lsl r7, r3, #0x1 strh r4, [r2, r7] mov r2, #0x2 strb r2, [r1, r5] strb r2, [r1, r6] strb r2, [r1, r0] strb r2, [r1, r3] _020346BE: pop {r4-r7} bx lr nop _020346C4: .word 0x00000A92 _020346C8: .word 0x0000070E thumb_func_start FUN_020346CC FUN_020346CC: ; 0x020346CC push {r3-r4} ldr r1, _0203470C ; =0x00000A92 add r2, r0, r1 ldrb r1, [r0, #0x0] ldrb r0, [r0, #0x2] cmp r0, #0x0 bne _02034706 mov r0, #0xf mul r0, r1 add r0, #0x1c mov r3, #0x77 lsl r0, r0, #0x1 strh r3, [r2, r0] lsl r0, r1, #0x4 add r3, r0, #0x0 add r3, #0x1b mov r4, #0x78 lsl r3, r3, #0x1 strh r4, [r2, r3] add r3, r0, #0x0 add r3, #0x1c add r0, r1, r0 add r0, #0x1b mov r4, #0x79 lsl r3, r3, #0x1 strh r4, [r2, r3] mov r3, #0x7a lsl r0, r0, #0x1 strh r3, [r2, r0] _02034706: pop {r3-r4} bx lr nop _0203470C: .word 0x00000A92 thumb_func_start FUN_02034710 FUN_02034710: ; 0x02034710 push {r3, lr} ldr r1, _02034720 ; =0x0000022F cmp r0, r1 blo _0203471E bl ErrorHandling mov r0, #0x3 _0203471E: pop {r3, pc} .balign 4 _02034720: .word 0x0000022F thumb_func_start FUN_02034724 FUN_02034724: ; 0x02034724 push {r3, lr} bl FUN_02034710 mov r1, #0x18 mul r1, r0 ldr r0, _02034734 ; =0x020EEDBC ldrb r0, [r0, r1] pop {r3, pc} .balign 4 _02034734: .word 0x020EEDBC thumb_func_start FUN_02034738 FUN_02034738: ; 0x02034738 push {r3, lr} bl FUN_02034710 mov r1, #0x18 mul r1, r0 ldr r0, _02034748 ; =0x020EEDBD ldrb r0, [r0, r1] pop {r3, pc} .balign 4 _02034748: .word 0x020EEDBD thumb_func_start FUN_0203474C FUN_0203474C: ; 0x0203474C push {r3, lr} bl FUN_02034710 mov r1, #0x18 mul r1, r0 ldr r0, _0203476C ; =0x020EEDBE ldrh r0, [r0, r1] cmp r0, #0x16 bne _02034768 ldr r1, _02034770 ; =0x020ECAC0 ldrb r1, [r1, #0x0] cmp r1, #0xb bne _02034768 mov r0, #0x17 _02034768: pop {r3, pc} nop _0203476C: .word 0x020EEDBE _02034770: .word 0x020ECAC0 thumb_func_start FUN_02034774 FUN_02034774: ; 0x02034774 push {r3, lr} bl FUN_02034710 mov r1, #0x18 mul r1, r0 ldr r0, _02034784 ; =0x020EEDC4 ldrh r0, [r0, r1] pop {r3, pc} .balign 4 _02034784: .word 0x020EEDC4 thumb_func_start FUN_02034788 FUN_02034788: ; 0x02034788 push {r3, lr} bl FUN_02034710 mov r1, #0x18 mul r1, r0 ldr r0, _02034798 ; =0x020EEDC0 ldrh r0, [r0, r1] pop {r3, pc} .balign 4 _02034798: .word 0x020EEDC0 thumb_func_start FUN_0203479C FUN_0203479C: ; 0x0203479C push {r3, lr} bl FUN_02034710 mov r1, #0x18 mul r1, r0 ldr r0, _020347AC ; =0x020EEDC2 ldrh r0, [r0, r1] pop {r3, pc} .balign 4 _020347AC: .word 0x020EEDC2 thumb_func_start FUN_020347B0 FUN_020347B0: ; 0x020347B0 push {r3, lr} bl FUN_02034710 mov r1, #0x18 mul r1, r0 ldr r0, _020347C0 ; =0x020EEDC6 ldrh r0, [r0, r1] pop {r3, pc} .balign 4 _020347C0: .word 0x020EEDC6 thumb_func_start FUN_020347C4 FUN_020347C4: ; 0x020347C4 push {r3, lr} bl FUN_02034710 mov r1, #0x18 mul r1, r0 ldr r0, _020347D4 ; =0x020EEDC8 ldrh r0, [r0, r1] pop {r3, pc} .balign 4 _020347D4: .word 0x020EEDC8 thumb_func_start FUN_020347D8 FUN_020347D8: ; 0x020347D8 push {r3, lr} bl FUN_02034710 mov r1, #0x18 mul r1, r0 ldr r0, _020347F4 ; =0x020EEDCA ldrh r1, [r0, r1] ldr r0, _020347F8 ; =0x0000FFFF cmp r1, r0 beq _020347F0 mov r0, #0x1 pop {r3, pc} _020347F0: mov r0, #0x0 pop {r3, pc} .balign 4 _020347F4: .word 0x020EEDCA _020347F8: .word 0x0000FFFF thumb_func_start FUN_020347FC FUN_020347FC: ; 0x020347FC push {r3, lr} bl FUN_02034710 mov r1, #0x18 mul r1, r0 ldr r0, _0203480C ; =0x020EEDCA ldrh r0, [r0, r1] pop {r3, pc} .balign 4 _0203480C: .word 0x020EEDCA thumb_func_start FUN_02034810 FUN_02034810: ; 0x02034810 push {r3, lr} bl FUN_02034710 mov r1, #0x18 mul r1, r0 ldr r0, _02034820 ; =0x020EEDCC ldrh r0, [r0, r1] pop {r3, pc} .balign 4 _02034820: .word 0x020EEDCC thumb_func_start FUN_02034824 FUN_02034824: ; 0x02034824 push {r3, lr} bl FUN_02034710 mov r1, #0x18 mul r1, r0 ldr r0, _02034834 ; =0x020EEDCE ldrh r0, [r0, r1] pop {r3, pc} .balign 4 _02034834: .word 0x020EEDCE thumb_func_start FUN_02034838 FUN_02034838: ; 0x02034838 push {r3, lr} bl FUN_02034710 mov r1, #0x18 mul r1, r0 ldr r0, _02034848 ; =0x020EEDD0 ldrb r0, [r0, r1] pop {r3, pc} .balign 4 _02034848: .word 0x020EEDD0 thumb_func_start FUN_0203484C FUN_0203484C: ; 0x0203484C push {r3, lr} bl FUN_02034710 mov r1, #0x18 mul r1, r0 ldr r0, _0203485C ; =0x020EEDD1 ldrb r0, [r0, r1] pop {r3, pc} .balign 4 _0203485C: .word 0x020EEDD1 thumb_func_start FUN_02034860 FUN_02034860: ; 0x02034860 push {r3, lr} bl FUN_02034710 mov r1, #0x18 mul r1, r0 ldr r0, _02034878 ; =0x020EEDBC add r0, r0, r1 ldrb r0, [r0, #0x17] lsl r0, r0, #0x1c lsr r0, r0, #0x1c pop {r3, pc} nop _02034878: .word 0x020EEDBC thumb_func_start FUN_0203487C FUN_0203487C: ; 0x0203487C push {r3, lr} bl FUN_02034710 mov r1, #0x18 mul r1, r0 ldr r0, _02034894 ; =0x020EEDBC add r0, r0, r1 ldrb r0, [r0, #0x17] lsl r0, r0, #0x19 lsr r0, r0, #0x1f pop {r3, pc} nop _02034894: .word 0x020EEDBC thumb_func_start FUN_02034898 FUN_02034898: ; 0x02034898 push {r3, lr} bl FUN_02034710 mov r1, #0x18 mul r1, r0 ldr r0, _020348B0 ; =0x020EEDBC add r0, r0, r1 ldrb r0, [r0, #0x17] lsl r0, r0, #0x18 lsr r0, r0, #0x1f pop {r3, pc} nop _020348B0: .word 0x020EEDBC thumb_func_start FUN_020348B4 FUN_020348B4: ; 0x020348B4 push {r3, lr} bl FUN_02034710 mov r1, #0x18 mul r1, r0 ldr r0, _020348CC ; =0x020EEDBC add r0, r0, r1 ldrb r0, [r0, #0x17] lsl r0, r0, #0x1b lsr r0, r0, #0x1f pop {r3, pc} nop _020348CC: .word 0x020EEDBC thumb_func_start FUN_020348D0 FUN_020348D0: ; 0x020348D0 push {r3, lr} bl FUN_02034710 mov r1, #0x18 mul r1, r0 ldr r0, _020348E0 ; =0x020EEDD2 ldrb r0, [r0, r1] pop {r3, pc} .balign 4 _020348E0: .word 0x020EEDD2 thumb_func_start FUN_020348E4 FUN_020348E4: ; 0x020348E4 push {r4, lr} add r4, r0, #0x0 bl FUN_02034898 cmp r0, #0x0 bne _020348F4 mov r0, #0x0 pop {r4, pc} _020348F4: add r0, r4, #0x0 bl FUN_020348D0 cmp r0, #0x1 beq _02034902 mov r0, #0x1 pop {r4, pc} _02034902: mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02034908 FUN_02034908: ; 0x02034908 push {r3, lr} bl FUN_0203474C cmp r0, #0x0 bne _02034916 mov r0, #0x1 pop {r3, pc} _02034916: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0203491C FUN_0203491C: ; 0x0203491C push {r3, lr} bl FUN_020348D0 cmp r0, #0x5 bne _0203492A mov r0, #0x1 pop {r3, pc} _0203492A: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_02034930 FUN_02034930: ; 0x02034930 push {r3, lr} bl FUN_020348D0 cmp r0, #0x3 bne _0203493E mov r0, #0x1 pop {r3, pc} _0203493E: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_02034944 FUN_02034944: ; 0x02034944 push {r4, lr} add r4, r0, #0x0 bl FUN_020348D0 cmp r0, #0x4 beq _0203495A add r0, r4, #0x0 bl FUN_020348D0 cmp r0, #0x5 bne _0203495E _0203495A: mov r0, #0x1 pop {r4, pc} _0203495E: mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02034964 FUN_02034964: ; 0x02034964 push {r4, lr} add r4, r0, #0x0 bl FUN_020348D0 cmp r0, #0x1 beq _0203497A add r0, r4, #0x0 bl FUN_020348D0 cmp r0, #0x2 bne _0203497E _0203497A: mov r0, #0x1 pop {r4, pc} _0203497E: mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02034984 FUN_02034984: ; 0x02034984 push {r3, lr} bl FUN_0203491C cmp r0, #0x0 beq _02034992 mov r0, #0x1 pop {r3, pc} _02034992: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_02034998 FUN_02034998: ; 0x02034998 ldr r1, _020349A8 ; =0x000001D2 cmp r0, r1 bne _020349A2 mov r0, #0x1 bx lr _020349A2: mov r0, #0x0 bx lr nop _020349A8: .word 0x000001D2 thumb_func_start FUN_020349AC FUN_020349AC: ; 0x020349AC cmp r0, #0xdb bne _020349B4 mov r0, #0x1 bx lr _020349B4: mov r0, #0x0 bx lr thumb_func_start FUN_020349B8 FUN_020349B8: ; 0x020349B8 ldr r1, _020349C8 ; =0x0000011F cmp r0, r1 bne _020349C2 mov r0, #0x1 bx lr _020349C2: mov r0, #0x0 bx lr nop _020349C8: .word 0x0000011F thumb_func_start FUN_020349CC FUN_020349CC: ; 0x020349CC cmp r0, #0xfd bne _020349D4 mov r0, #0x1 bx lr _020349D4: mov r0, #0x0 bx lr thumb_func_start FUN_020349D8 FUN_020349D8: ; 0x020349D8 cmp r0, #0xdc bne _020349E0 mov r0, #0x1 bx lr _020349E0: mov r0, #0x0 bx lr thumb_func_start FUN_020349E4 FUN_020349E4: ; 0x020349E4 ldr r3, _02034A00 ; =0x020EED54 mov r2, #0x0 _020349E8: ldrh r1, [r3, #0x0] cmp r0, r1 bne _020349F2 mov r0, #0x1 bx lr _020349F2: add r2, r2, #0x1 add r3, r3, #0x2 cmp r2, #0x12 blo _020349E8 mov r0, #0x0 bx lr nop _02034A00: .word 0x020EED54 thumb_func_start FUN_02034A04 FUN_02034A04: ; 0x02034A04 ldr r3, _02034A24 ; =0x020EED78 mov r2, #0x0 _02034A08: ldrh r1, [r3, #0x0] cmp r0, r1 bne _02034A18 add r0, r2, #0x1 lsl r1, r0, #0x1 ldr r0, _02034A24 ; =0x020EED78 ldrh r0, [r0, r1] bx lr _02034A18: add r2, r2, #0x2 add r3, r3, #0x4 cmp r2, #0x22 blo _02034A08 mov r0, #0x0 bx lr .balign 4 _02034A24: .word 0x020EED78 thumb_func_start FUN_02034A28 FUN_02034A28: ; 0x02034A28 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0x14] add r4, r1, #0x0 cmp r0, #0x0 beq _02034A38 bl ErrorHandling _02034A38: ldr r1, _02034A44 ; =0x00000AC8 add r0, r4, #0x0 bl FUN_02016998 str r0, [r5, #0x14] pop {r3-r5, pc} .balign 4 _02034A44: .word 0x00000AC8 thumb_func_start FUN_02034A48 FUN_02034A48: ; 0x02034A48 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x14] cmp r0, #0x0 bne _02034A56 bl ErrorHandling _02034A56: ldr r0, [r4, #0x14] bl FUN_02016A18 pop {r4, pc} .balign 4 thumb_func_start FUN_02034A60 FUN_02034A60: ; 0x02034A60 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0x14] add r4, r1, #0x0 cmp r0, #0x0 bne _02034A70 bl ErrorHandling _02034A70: ldr r0, [r5, #0x14] add r1, r4, #0x0 bl FUN_02034A98 ldr r0, [r5, #0x14] bl FUN_02034C50 mov r0, #0x92 ldr r1, [r5, #0x14] lsl r0, r0, #0x4 add r0, r1, r0 add r1, r4, #0x0 bl FUN_02034CB4 ldr r0, [r5, #0x14] add r1, r4, #0x0 bl FUN_02034CEC pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02034A98 FUN_02034A98: ; 0x02034A98 push {r3-r5, lr} add r5, r0, #0x0 add r0, r1, #0x0 bl FUN_02034810 add r4, r0, #0x0 mov r0, #0x20 add r1, r4, #0x0 bl FUN_020065A4 mov r1, #0x2 lsl r1, r1, #0xa cmp r0, r1 blo _02034AB8 bl ErrorHandling _02034AB8: add r5, #0x20 add r0, r5, #0x0 mov r1, #0x20 add r2, r4, #0x0 bl FUN_020064F0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02034AC8 FUN_02034AC8: ; 0x02034AC8 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0x14] ldr r4, [r0, #0x4] cmp r0, #0x0 bne _02034AD8 bl ErrorHandling _02034AD8: cmp r4, #0x0 beq _02034AEC ldr r1, [r5, #0x1c] ldr r3, [r5, #0x14] ldr r0, [r5, #0x34] ldr r1, [r1, #0x0] ldr r3, [r3, #0x14] add r2, r4, #0x0 bl FUN_02057BAC _02034AEC: pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02034AF0 FUN_02034AF0: ; 0x02034AF0 ldr r0, [r0, #0x14] ldr r0, [r0, #0x10] bx lr .balign 4 thumb_func_start FUN_02034AF8 FUN_02034AF8: ; 0x02034AF8 ldr r0, [r0, #0x14] ldr r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02034B00 FUN_02034B00: ; 0x02034B00 ldr r2, [r0, #0x14] ldr r0, [r2, #0x8] cmp r1, r0 blo _02034B0C mov r0, #0x0 bx lr _02034B0C: mov r0, #0xc ldr r2, [r2, #0x18] mul r0, r1 add r0, r2, r0 bx lr .balign 4 thumb_func_start FUN_02034B18 FUN_02034B18: ; 0x02034B18 push {r4-r7} ldr r5, [r0, #0x14] mov r3, #0x0 ldr r0, [r5, #0x8] cmp r0, #0x0 bls _02034B4A ldr r6, [r5, #0x18] add r4, r3, #0x0 add r0, r6, #0x0 _02034B2A: ldrh r7, [r0, #0x0] cmp r1, r7 bne _02034B3E add r7, r6, r4 ldrh r7, [r7, #0x2] cmp r2, r7 bne _02034B3E add r0, r3, #0x0 pop {r4-r7} bx lr _02034B3E: ldr r7, [r5, #0x8] add r3, r3, #0x1 add r0, #0xc add r4, #0xc cmp r3, r7 blo _02034B2A _02034B4A: mov r0, #0x0 mvn r0, r0 pop {r4-r7} bx lr .balign 4 thumb_func_start FUN_02034B54 FUN_02034B54: ; 0x02034B54 ldr r0, [r0, #0x14] ldr r0, [r0, #0xc] bx lr .balign 4 thumb_func_start FUN_02034B5C FUN_02034B5C: ; 0x02034B5C ldr r0, [r0, #0x14] ldr r0, [r0, #0x1c] bx lr .balign 4 thumb_func_start FUN_02034B64 FUN_02034B64: ; 0x02034B64 ldr r0, [r0, #0x14] ldr r0, [r0, #0x4] bx lr .balign 4 thumb_func_start FUN_02034B6C FUN_02034B6C: ; 0x02034B6C ldr r0, [r0, #0x14] ldr r0, [r0, #0x14] bx lr .balign 4 thumb_func_start FUN_02034B74 FUN_02034B74: ; 0x02034B74 push {r3-r7, lr} ldr r0, [r0, #0x14] add r4, r1, #0x0 ldr r5, [r0, #0x4] add r7, r2, #0x0 add r1, r3, #0x0 mov r2, #0x0 ldr r3, [r0, #0x14] cmp r5, #0x0 bls _02034BA4 add r6, r3, #0x0 _02034B8A: ldrh r0, [r6, #0x0] cmp r4, r0 bne _02034B9C lsl r0, r2, #0x5 add r0, r3, r0 strh r7, [r0, #0x18] strh r1, [r0, #0x1a] mov r0, #0x1 pop {r3-r7, pc} _02034B9C: add r2, r2, #0x1 add r6, #0x20 cmp r2, r5 blo _02034B8A _02034BA4: bl ErrorHandling mov r0, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02034BAC FUN_02034BAC: ; 0x02034BAC push {r4-r6, lr} ldr r0, [r0, #0x14] mov r3, #0x0 ldr r5, [r0, #0x4] ldr r4, [r0, #0x14] cmp r5, #0x0 bls _02034BD4 add r6, r4, #0x0 _02034BBC: ldrh r0, [r6, #0x0] cmp r1, r0 bne _02034BCC lsl r0, r3, #0x5 add r0, r4, r0 strh r2, [r0, #0xc] mov r0, #0x1 pop {r4-r6, pc} _02034BCC: add r3, r3, #0x1 add r6, #0x20 cmp r3, r5 blo _02034BBC _02034BD4: bl ErrorHandling mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02034BDC FUN_02034BDC: ; 0x02034BDC push {r4-r6, lr} ldr r0, [r0, #0x14] mov r3, #0x0 ldr r5, [r0, #0x4] ldr r4, [r0, #0x14] cmp r5, #0x0 bls _02034C04 add r6, r4, #0x0 _02034BEC: ldrh r0, [r6, #0x0] cmp r1, r0 bne _02034BFC lsl r0, r3, #0x5 add r0, r4, r0 strh r2, [r0, #0x4] mov r0, #0x1 pop {r4-r6, pc} _02034BFC: add r3, r3, #0x1 add r6, #0x20 cmp r3, r5 blo _02034BEC _02034C04: bl ErrorHandling mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02034C0C FUN_02034C0C: ; 0x02034C0C push {r3-r4} ldr r0, [r0, #0x14] ldr r4, [r0, #0x18] mov r0, #0xc mul r0, r1 strh r2, [r4, r0] add r0, r4, r0 strh r3, [r0, #0x2] mov r0, #0x1 pop {r3-r4} bx lr .balign 4 thumb_func_start FUN_02034C24 FUN_02034C24: ; 0x02034C24 ldr r0, [r0, #0x14] ldr r3, [r0, #0x18] mov r0, #0xc mul r0, r1 add r0, r3, r0 strh r2, [r0, #0x4] mov r0, #0x1 bx lr thumb_func_start FUN_02034C34 FUN_02034C34: ; 0x02034C34 push {r4-r6, lr} add r5, r1, #0x0 add r4, r2, #0x0 add r6, r3, #0x0 bl FUN_02034AF0 mov r1, #0x14 mul r1, r5 add r0, r0, r1 str r4, [r0, #0x4] str r6, [r0, #0x8] mov r0, #0x1 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02034C50 FUN_02034C50: ; 0x02034C50 add r1, r0, #0x0 ldr r2, [r0, #0x20] add r1, #0x20 add r1, r1, #0x4 str r2, [r0, #0x0] cmp r2, #0x0 beq _02034C62 str r1, [r0, #0x10] b _02034C66 _02034C62: mov r2, #0x0 str r2, [r0, #0x10] _02034C66: ldr r3, [r0, #0x0] mov r2, #0x14 mul r2, r3 add r3, r1, r2 ldr r2, [r1, r2] add r1, r3, #0x4 str r2, [r0, #0x4] cmp r2, #0x0 beq _02034C7C str r1, [r0, #0x14] b _02034C80 _02034C7C: mov r2, #0x0 str r2, [r0, #0x14] _02034C80: ldr r2, [r0, #0x4] lsl r2, r2, #0x5 add r3, r1, r2 ldr r2, [r1, r2] add r1, r3, #0x4 str r2, [r0, #0x8] cmp r2, #0x0 beq _02034C94 str r1, [r0, #0x18] b _02034C98 _02034C94: mov r2, #0x0 str r2, [r0, #0x18] _02034C98: ldr r3, [r0, #0x8] mov r2, #0xc mul r2, r3 add r3, r1, r2 ldr r1, [r1, r2] str r1, [r0, #0xc] cmp r1, #0x0 beq _02034CAE add r1, r3, #0x4 str r1, [r0, #0x1c] bx lr _02034CAE: mov r1, #0x0 str r1, [r0, #0x1c] bx lr thumb_func_start FUN_02034CB4 FUN_02034CB4: ; 0x02034CB4 push {r3-r5, lr} mov r2, #0x6a add r4, r1, #0x0 mov r1, #0x0 lsl r2, r2, #0x2 add r5, r0, #0x0 blx FUN_020DF4A4 add r0, r4, #0x0 bl FUN_020347D8 cmp r0, #0x0 beq _02034CDE add r0, r4, #0x0 bl FUN_020347FC add r2, r0, #0x0 add r0, r5, #0x0 mov r1, #0x25 bl FUN_020064F0 _02034CDE: pop {r3-r5, pc} thumb_func_start FUN_02034CE0 FUN_02034CE0: ; 0x02034CE0 ldr r1, [r0, #0x14] mov r0, #0x92 lsl r0, r0, #0x4 add r0, r1, r0 bx lr .balign 4 thumb_func_start FUN_02034CEC FUN_02034CEC: ; 0x02034CEC push {r3-r5, lr} add r5, r0, #0x0 add r0, r1, #0x0 bl FUN_0203479C mov r1, #0x82 lsl r1, r1, #0x4 mov r2, #0x1 add r4, r0, #0x0 mov r0, #0x0 add r1, r5, r1 lsl r2, r2, #0x8 blx MIi_CpuClearFast mov r0, #0xa add r1, r4, #0x0 bl FUN_020065A4 mov r1, #0x1 lsl r1, r1, #0x8 cmp r0, r1 blo _02034D1C bl ErrorHandling _02034D1C: mov r0, #0x82 lsl r0, r0, #0x4 add r0, r5, r0 mov r1, #0xa add r2, r4, #0x0 bl FUN_020064F0 pop {r3-r5, pc} thumb_func_start FUN_02034D2C FUN_02034D2C: ; 0x02034D2C push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x14] cmp r0, #0x0 bne _02034D3A bl ErrorHandling _02034D3A: mov r0, #0x82 ldr r1, [r4, #0x14] lsl r0, r0, #0x4 add r0, r1, r0 pop {r4, pc} thumb_func_start FUN_02034D44 FUN_02034D44: ; 0x02034D44 push {r4-r7} ldr r0, [r0, #0x14] mov r3, #0x0 ldr r4, [r0, #0x4] cmp r4, #0x0 bls _02034D76 ldr r6, [r0, #0x14] add r5, r3, #0x0 add r4, r6, #0x0 _02034D56: ldrh r7, [r4, #0x18] cmp r1, r7 bne _02034D6A add r7, r6, r5 ldrh r7, [r7, #0x1a] cmp r2, r7 bne _02034D6A mov r0, #0x0 pop {r4-r7} bx lr _02034D6A: ldr r7, [r0, #0x4] add r3, r3, #0x1 add r4, #0x20 add r5, #0x20 cmp r3, r7 blo _02034D56 _02034D76: mov r0, #0x1 pop {r4-r7} bx lr thumb_func_start FUN_02034D7C FUN_02034D7C: ; 0x02034D7C mov r0, #0xa0 bx lr thumb_func_start FUN_02034D80 FUN_02034D80: ; 0x02034D80 mov r0, #0x5 lsl r0, r0, #0xa bx lr .balign 4 thumb_func_start FUN_02034D88 FUN_02034D88: ; 0x02034D88 ldr r3, _02034D94 ; =MIi_CpuClear32 mov r2, #0x5 add r1, r0, #0x0 mov r0, #0x0 lsl r2, r2, #0xa bx r3 .balign 4 _02034D94: .word MIi_CpuClear32 thumb_func_start FUN_02034D98 FUN_02034D98: ; 0x02034D98 push {r4, lr} add r4, r0, #0x0 mov r1, #0x0 mov r2, #0xa0 blx FUN_020DF4A4 add r0, r4, #0x0 add r0, #0x6c bl FUN_0204ADE0 add r0, r4, #0x0 add r0, #0x8c bl FUN_02055468 bl FUN_02034E8C add r4, #0x68 strh r0, [r4, #0x0] pop {r4, pc} .balign 4 thumb_func_start FUN_02034DC0 FUN_02034DC0: ; 0x02034DC0 bx lr .balign 4 thumb_func_start FUN_02034DC4 FUN_02034DC4: ; 0x02034DC4 add r0, #0x14 bx lr thumb_func_start FUN_02034DC8 FUN_02034DC8: ; 0x02034DC8 add r0, #0x28 bx lr thumb_func_start FUN_02034DCC FUN_02034DCC: ; 0x02034DCC add r0, #0x50 bx lr thumb_func_start FUN_02034DD0 FUN_02034DD0: ; 0x02034DD0 add r0, #0x3c bx lr thumb_func_start FUN_02034DD4 FUN_02034DD4: ; 0x02034DD4 add r3, r1, #0x0 add r2, r0, #0x0 ldmia r3!, {r0-r1} add r2, #0x3c stmia r2!, {r0-r1} ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldr r0, [r3, #0x0] str r0, [r2, #0x0] bx lr thumb_func_start FUN_02034DE8 FUN_02034DE8: ; 0x02034DE8 add r0, #0x64 bx lr thumb_func_start FUN_02034DEC FUN_02034DEC: ; 0x02034DEC add r0, #0x66 ldrh r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02034DF4 FUN_02034DF4: ; 0x02034DF4 add r0, #0x66 strh r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02034DFC FUN_02034DFC: ; 0x02034DFC add r0, #0x68 ldrh r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02034E04 FUN_02034E04: ; 0x02034E04 add r0, #0x68 strh r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02034E0C FUN_02034E0C: ; 0x02034E0C add r0, #0x6c bx lr thumb_func_start FUN_02034E10 FUN_02034E10: ; 0x02034E10 add r0, #0x6a ldrb r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02034E18 FUN_02034E18: ; 0x02034E18 add r0, #0x6a strb r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02034E20 FUN_02034E20: ; 0x02034E20 add r0, #0x8c bx lr thumb_func_start FUN_02034E24 FUN_02034E24: ; 0x02034E24 add r0, #0x98 bx lr thumb_func_start FUN_02034E28 FUN_02034E28: ; 0x02034E28 add r0, #0x96 bx lr thumb_func_start FUN_02034E2C FUN_02034E2C: ; 0x02034E2C add r0, #0x94 bx lr thumb_func_start FUN_02034E30 FUN_02034E30: ; 0x02034E30 ldr r3, _02034E38 ; =FUN_02022610 mov r1, #0x6 bx r3 nop _02034E38: .word FUN_02022610 thumb_func_start FUN_02034E3C FUN_02034E3C: ; 0x02034E3C ldr r3, _02034E44 ; =FUN_02022610 mov r1, #0xb bx r3 nop _02034E44: .word FUN_02022610 thumb_func_start FUN_02034E48 FUN_02034E48: ; 0x02034E48 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_02034E3C add r2, r0, #0x0 ldr r1, [r4, #0x34] add r0, r4, #0x0 mov r3, #0x40 bl FUN_02057800 pop {r4, pc} thumb_func_start FUN_02034E60 FUN_02034E60: ; 0x02034E60 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_02034E3C add r1, r0, #0x0 ldr r0, [r4, #0x34] mov r2, #0x40 bl FUN_0205785C pop {r4, pc} .balign 4 thumb_func_start FUN_02034E78 FUN_02034E78: ; 0x02034E78 push {r3, lr} cmp r0, #0x0 ble _02034E82 cmp r0, #0x14 bls _02034E88 _02034E82: bl ErrorHandling mov r0, #0x1 _02034E88: sub r0, r0, #0x1 pop {r3, pc} thumb_func_start FUN_02034E8C FUN_02034E8C: ; 0x02034E8C mov r0, #0x1 bx lr thumb_func_start FUN_02034E90 FUN_02034E90: ; 0x02034E90 push {r4, lr} add r4, r1, #0x0 bl FUN_02034E78 lsl r1, r0, #0x4 ldr r0, _02034EB8 ; =0x020F222A ldrh r0, [r0, r1] str r0, [r4, #0x0] mov r0, #0x0 mvn r0, r0 str r0, [r4, #0x4] ldr r0, _02034EBC ; =0x020F222C ldrh r0, [r0, r1] str r0, [r4, #0x8] ldr r0, _02034EC0 ; =0x020F222E ldrh r0, [r0, r1] str r0, [r4, #0xc] mov r0, #0x1 str r0, [r4, #0x10] pop {r4, pc} .balign 4 _02034EB8: .word 0x020F222A _02034EBC: .word 0x020F222C _02034EC0: .word 0x020F222E thumb_func_start FUN_02034EC4 FUN_02034EC4: ; 0x02034EC4 push {r4, lr} add r4, r1, #0x0 bl FUN_02034E78 lsl r1, r0, #0x4 ldr r0, _02034EEC ; =0x020F2224 ldrh r0, [r0, r1] str r0, [r4, #0x0] mov r0, #0x0 mvn r0, r0 str r0, [r4, #0x4] ldr r0, _02034EF0 ; =0x020F2226 ldrh r0, [r0, r1] str r0, [r4, #0x8] ldr r0, _02034EF4 ; =0x020F2228 ldrh r0, [r0, r1] str r0, [r4, #0xc] mov r0, #0x0 str r0, [r4, #0x10] pop {r4, pc} .balign 4 _02034EEC: .word 0x020F2224 _02034EF0: .word 0x020F2226 _02034EF4: .word 0x020F2228 thumb_func_start FUN_02034EF8 FUN_02034EF8: ; 0x02034EF8 ldr r3, _02034F18 ; =0x020F2224 mov r2, #0x0 _02034EFC: ldrh r1, [r3, #0x0] cmp r0, r1 bne _02034F0C ldrb r1, [r3, #0xc] cmp r1, #0x0 beq _02034F0C add r0, r2, #0x1 bx lr _02034F0C: add r2, r2, #0x1 add r3, #0x10 cmp r2, #0x14 blo _02034EFC mov r0, #0x0 bx lr .balign 4 _02034F18: .word 0x020F2224 thumb_func_start FUN_02034F1C FUN_02034F1C: ; 0x02034F1C ldr r3, _02034F3C ; =0x020F2224 mov r2, #0x0 _02034F20: ldrh r1, [r3, #0x6] cmp r0, r1 bne _02034F30 ldrb r1, [r3, #0xc] cmp r1, #0x0 beq _02034F30 add r0, r2, #0x1 bx lr _02034F30: add r2, r2, #0x1 add r3, #0x10 cmp r2, #0x14 blo _02034F20 mov r0, #0x0 bx lr .balign 4 _02034F3C: .word 0x020F2224 thumb_func_start FUN_02034F40 FUN_02034F40: ; 0x02034F40 push {r3-r6} asr r3, r1, #0x4 lsr r3, r3, #0x1b add r3, r1, r3 asr r1, r2, #0x4 lsr r1, r1, #0x1b add r1, r2, r1 mov r4, #0x0 asr r2, r1, #0x5 ldr r5, _02034F84 ; =0x020F2224 asr r3, r3, #0x5 add r1, r4, #0x0 _02034F58: ldrh r6, [r5, #0x6] cmp r0, r6 bne _02034F76 ldrh r6, [r5, #0x8] add r4, r1, #0x1 lsr r6, r6, #0x5 cmp r3, r6 bne _02034F76 ldrh r6, [r5, #0xa] lsr r6, r6, #0x5 cmp r2, r6 bne _02034F76 add r0, r4, #0x0 pop {r3-r6} bx lr _02034F76: add r1, r1, #0x1 add r5, #0x10 cmp r1, #0x14 blo _02034F58 add r0, r4, #0x0 pop {r3-r6} bx lr .balign 4 _02034F84: .word 0x020F2224 thumb_func_start FUN_02034F88 FUN_02034F88: ; 0x02034F88 push {r4, lr} ldr r3, _02034FB8 ; =0x020F2224 mov r4, #0x0 _02034F8E: ldrh r2, [r3, #0x6] cmp r1, r2 bne _02034FAE ldrb r2, [r3, #0xd] cmp r2, #0x0 beq _02034FAE ldr r0, [r0, #0xc] bl FUN_020462AC ldr r2, _02034FBC ; =0x020F2232 lsl r3, r4, #0x4 ldrh r2, [r2, r3] mov r1, #0x1 bl FUN_0205F2E4 pop {r4, pc} _02034FAE: add r4, r4, #0x1 add r3, #0x10 cmp r4, #0x14 blo _02034F8E pop {r4, pc} .balign 4 _02034FB8: .word 0x020F2224 _02034FBC: .word 0x020F2232 thumb_func_start FUN_02034FC0 FUN_02034FC0: ; 0x02034FC0 push {r3-r5, lr} add r5, r0, #0x0 add r0, r1, #0x0 bl FUN_02034E78 add r4, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_020462AC ldr r2, _02034FE0 ; =0x020F2232 lsl r3, r4, #0x4 ldrh r2, [r2, r3] mov r1, #0x2 bl FUN_0205F2E4 pop {r3-r5, pc} .balign 4 _02034FE0: .word 0x020F2232 thumb_func_start FUN_02034FE4 FUN_02034FE4: ; 0x02034FE4 push {r3-r7, lr} add r7, r0, #0x0 add r0, r1, #0x0 bl FUN_02034838 add r4, r0, #0x0 cmp r4, #0x18 blt _0203505C ldr r0, [r7, #0xc] bl FUN_02023794 add r6, r0, #0x0 add r0, r6, #0x4 bl FUN_02012710 sub r5, r0, #0x1 bmi _0203500C ldr r0, _02035060 ; =0x0000016E cmp r5, r0 blt _02035010 _0203500C: bl ErrorHandling _02035010: ldr r0, [r6, #0x8] cmp r0, #0x2 bls _02035044 ldr r6, [r6, #0x4] mov r0, #0x3 tst r0, r6 bne _0203502A add r0, r6, #0x0 mov r1, #0x64 blx _u32_div_f cmp r1, #0x0 bne _02035038 _0203502A: mov r1, #0x19 add r0, r6, #0x0 lsl r1, r1, #0x4 blx _u32_div_f cmp r1, #0x0 bne _0203503C _02035038: mov r0, #0x1 b _0203503E _0203503C: mov r0, #0x0 _0203503E: cmp r0, #0x0 bne _02035044 add r5, r5, #0x1 _02035044: add r0, r7, #0x0 bl FUN_0204B33C cmp r0, #0x0 beq _02035050 mov r5, #0x1 _02035050: lsl r0, r5, #0x2 sub r4, #0x18 add r0, r5, r0 add r1, r4, r0 ldr r0, _02035064 ; =0x020F2364 ldrb r0, [r0, r1] _0203505C: pop {r3-r7, pc} nop _02035060: .word 0x0000016E _02035064: .word 0x020F2364 thumb_func_start FUN_02035068 FUN_02035068: ; 0x02035068 push {r3, lr} ldr r0, [r0, #0x1c] ldr r0, [r0, #0x0] bl FUN_02034824 cmp r0, #0x0 beq _0203507A mov r0, #0x1 pop {r3, pc} _0203507A: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_02035080 FUN_02035080: ; 0x02035080 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02035254 add r4, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_020462AC bl FUN_0205F214 cmp r0, #0x1 bne _020350A6 add r0, r5, #0x0 bl FUN_020352C4 mov r1, #0x7 lsl r1, r1, #0x6 str r0, [r4, r1] b _020350E6 _020350A6: ldr r0, [r5, #0xc] bl FUN_020462AC bl FUN_0205F244 cmp r0, #0x1 bne _020350C2 add r0, r5, #0x0 bl FUN_020352C8 mov r1, #0x7 lsl r1, r1, #0x6 str r0, [r4, r1] b _020350E6 _020350C2: add r0, r5, #0x0 bl FUN_02060144 cmp r0, #0x1 bne _020350DA add r0, r5, #0x0 bl FUN_020352CC mov r1, #0x7 lsl r1, r1, #0x6 str r0, [r4, r1] b _020350E6 _020350DA: add r0, r5, #0x0 bl FUN_02035270 mov r1, #0x7 lsl r1, r1, #0x6 str r0, [r4, r1] _020350E6: mov r0, #0x71 mov r1, #0x0 lsl r0, r0, #0x2 str r1, [r4, r0] ldr r0, [r5, #0x38] bl FUN_02055B30 cmp r0, #0x1 bne _02035106 ldr r0, [r5, #0x38] bl FUN_020552F8 add r1, r0, #0x0 ldr r0, [r5, #0x38] bl FUN_02055B8C _02035106: ldr r1, _02035114 ; =FUN_020352E4 add r0, r5, #0x0 add r2, r4, #0x0 bl FUN_020463CC pop {r3-r5, pc} nop _02035114: .word FUN_020352E4 thumb_func_start FUN_02035118 FUN_02035118: ; 0x02035118 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02035254 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_020352D4 mov r1, #0x7 lsl r1, r1, #0x6 str r0, [r4, r1] mov r2, #0x1 add r0, r1, #0x4 str r2, [r4, r0] ldr r0, [r5, #0x38] bl FUN_02055B30 cmp r0, #0x1 bne _0203514C ldr r0, [r5, #0x38] bl FUN_020552F8 add r1, r0, #0x0 ldr r0, [r5, #0x38] bl FUN_02055B8C _0203514C: ldr r1, _02035158 ; =FUN_020352E4 add r0, r5, #0x0 add r2, r4, #0x0 bl FUN_020463CC pop {r3-r5, pc} .balign 4 _02035158: .word FUN_020352E4 thumb_func_start FUN_0203515C FUN_0203515C: ; 0x0203515C push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02035254 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_020352DC mov r1, #0x7 lsl r1, r1, #0x6 str r0, [r4, r1] mov r2, #0x0 add r0, r1, #0x4 str r2, [r4, r0] ldr r0, [r5, #0x38] bl FUN_02055B30 cmp r0, #0x1 bne _02035190 ldr r0, [r5, #0x38] bl FUN_020552F8 add r1, r0, #0x0 ldr r0, [r5, #0x38] bl FUN_02055B8C _02035190: ldr r1, _0203519C ; =FUN_020352E4 add r0, r5, #0x0 add r2, r4, #0x0 bl FUN_020463CC pop {r3-r5, pc} .balign 4 _0203519C: .word FUN_020352E4 thumb_func_start FUN_020351A0 FUN_020351A0: ; 0x020351A0 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _0203524C ; =0x000005FD bl FUN_020054C8 bl FUN_02035254 add r4, r0, #0x0 mov r0, #0x71 mov r1, #0x0 lsl r0, r0, #0x2 str r1, [r4, r0] ldr r0, [r5, #0xc] bl FUN_020462AC bl FUN_0205F214 cmp r0, #0x1 bne _020351D4 add r0, r5, #0x0 bl FUN_020352C4 mov r1, #0x7 lsl r1, r1, #0x6 str r0, [r4, r1] b _02035240 _020351D4: ldr r0, [r5, #0xc] bl FUN_020462AC bl FUN_0205F244 cmp r0, #0x1 bne _020351F0 add r0, r5, #0x0 bl FUN_020352C8 mov r1, #0x7 lsl r1, r1, #0x6 str r0, [r4, r1] b _02035240 _020351F0: add r0, r5, #0x0 bl FUN_02060144 cmp r0, #0x1 bne _02035208 add r0, r5, #0x0 bl FUN_020352CC mov r1, #0x7 lsl r1, r1, #0x6 str r0, [r4, r1] b _02035240 _02035208: ldr r0, [r5, #0x6c] cmp r0, #0x3 bne _0203521C add r0, r5, #0x0 bl FUN_020352DC mov r1, #0x7 lsl r1, r1, #0x6 str r0, [r4, r1] b _02035240 _0203521C: cmp r0, #0x2 bne _02035234 add r0, r5, #0x0 bl FUN_020352D4 mov r1, #0x7 lsl r1, r1, #0x6 str r0, [r4, r1] mov r2, #0x1 add r0, r1, #0x4 str r2, [r4, r0] b _02035240 _02035234: add r0, r5, #0x0 bl FUN_02035270 mov r1, #0x7 lsl r1, r1, #0x6 str r0, [r4, r1] _02035240: ldr r0, [r5, #0x10] ldr r1, _02035250 ; =FUN_020352E4 add r2, r4, #0x0 bl FUN_020463EC pop {r3-r5, pc} .balign 4 _0203524C: .word 0x000005FD _02035250: .word FUN_020352E4 thumb_func_start FUN_02035254 FUN_02035254: ; 0x02035254 push {r3, lr} mov r1, #0x2 mov r0, #0xb lsl r1, r1, #0x8 bl FUN_02016998 mov r2, #0x0 strh r2, [r0, #0x2a] mov r1, #0x7e strh r2, [r0, #0x28] lsl r1, r1, #0x2 str r2, [r0, r1] pop {r3, pc} .balign 4 thumb_func_start FUN_02035270 FUN_02035270: ; 0x02035270 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] mov r4, #0x0 bl FUN_02024DA0 bl FUN_02024D64 cmp r0, #0x0 bne _02035288 mov r0, #0x1 orr r4, r0 _02035288: ldr r0, [r5, #0xc] bl FUN_020462AC bl FUN_0205F388 cmp r0, #0x0 bne _0203529A mov r0, #0x2 orr r4, r0 _0203529A: ldr r0, [r5, #0xc] bl FUN_020462AC bl FUN_0205ECE0 cmp r0, #0x0 bne _020352AC mov r0, #0x4 orr r4, r0 _020352AC: ldr r0, [r5, #0x1c] ldr r0, [r0, #0x0] bl FUN_020349CC cmp r0, #0x1 bne _020352BC mov r0, #0x6 orr r4, r0 _020352BC: mov r0, #0x6 lsl r0, r0, #0x6 orr r0, r4 pop {r3-r5, pc} thumb_func_start FUN_020352C4 FUN_020352C4: ; 0x020352C4 mov r0, #0x90 bx lr thumb_func_start FUN_020352C8 FUN_020352C8: ; 0x020352C8 mov r0, #0x94 bx lr thumb_func_start FUN_020352CC FUN_020352CC: ; 0x020352CC ldr r0, _020352D0 ; =0x00000195 bx lr .balign 4 _020352D0: .word 0x00000195 thumb_func_start FUN_020352D4 FUN_020352D4: ; 0x020352D4 mov r0, #0x11 lsl r0, r0, #0x4 bx lr .balign 4 thumb_func_start FUN_020352DC FUN_020352DC: ; 0x020352DC ldr r0, _020352E0 ; =0x00000191 bx lr .balign 4 _020352E0: .word 0x00000191 thumb_func_start FUN_020352E4 FUN_020352E4: ; 0x020352E4 push {r4-r6, lr} add r6, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r6, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldrh r1, [r4, #0x2a] cmp r1, #0xf bhi _02035362 add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02035308: ; jump table (using 16-bit offset) .short _02035328 - _02035308 - 2; case 0 .short _02035358 - _02035308 - 2; case 1 .short _02035368 - _02035308 - 2; case 2 .short _02035370 - _02035308 - 2; case 3 .short _02035378 - _02035308 - 2; case 4 .short _02035380 - _02035308 - 2; case 5 .short _02035388 - _02035308 - 2; case 6 .short _02035390 - _02035308 - 2; case 7 .short _020353C0 - _02035308 - 2; case 8 .short _020353D6 - _02035308 - 2; case 9 .short _020353F6 - _02035308 - 2; case 10 .short _02035412 - _02035308 - 2; case 11 .short _02035398 - _02035308 - 2; case 12 .short _02035440 - _02035308 - 2; case 13 .short _02035478 - _02035308 - 2; case 14 .short _02035432 - _02035308 - 2; case 15 _02035328: ldr r0, [r5, #0x34] bl FUN_02058780 mov r1, #0x73 lsl r1, r1, #0x2 add r0, r5, #0x0 add r1, r4, r1 bl FUN_0205CE80 mov r1, #0x7a lsl r1, r1, #0x2 add r0, r5, #0x0 add r1, r4, r1 bl FUN_02063964 add r0, r6, #0x0 bl FUN_0203549C add r0, r6, #0x0 bl FUN_02035734 mov r0, #0x1 strh r0, [r4, #0x2a] b _02035484 _02035358: add r0, r6, #0x0 bl FUN_020358E4 cmp r0, #0x0 beq _02035364 _02035362: b _02035484 _02035364: mov r0, #0x0 pop {r4-r6, pc} _02035368: add r0, r6, #0x0 bl FUN_02035CA0 b _02035484 _02035370: add r0, r6, #0x0 bl FUN_02035CDC b _02035484 _02035378: add r0, r6, #0x0 bl FUN_020365F0 b _02035484 _02035380: add r0, r6, #0x0 bl FUN_02036644 b _02035484 _02035388: add r0, r6, #0x0 bl FUN_02036E08 b _02035484 _02035390: add r0, r6, #0x0 bl FUN_02036F1C b _02035484 _02035398: add r0, r5, #0x0 bl FUN_020464A4 cmp r0, #0x0 beq _02035484 ldr r0, [r5, #0x34] bl FUN_02058780 add r0, r6, #0x0 bl FUN_0203549C add r0, r6, #0x0 bl FUN_02035734 mov r0, #0x1 bl FUN_021D7CA4 mov r0, #0xe strh r0, [r4, #0x2a] b _02035484 _020353C0: add r0, r5, #0x0 bl FUN_020464A4 cmp r0, #0x0 beq _02035484 mov r0, #0x1 bl FUN_021D7CA4 mov r0, #0x9 strh r0, [r4, #0x2a] b _02035484 _020353D6: bl FUN_0200E308 cmp r0, #0x0 beq _02035484 add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_0203598C add r0, r4, #0x0 bl FUN_02016A18 ldr r0, [r5, #0x34] bl FUN_020587B0 mov r0, #0x1 pop {r4-r6, pc} _020353F6: add r0, r5, #0x0 bl FUN_020464A4 cmp r0, #0x0 beq _02035484 ldr r0, [r5, #0x34] bl FUN_02058780 mov r0, #0x1 bl FUN_021D7CA4 mov r0, #0xb strh r0, [r4, #0x2a] b _02035484 _02035412: bl FUN_0200E308 cmp r0, #0x0 beq _02035484 mov r2, #0x72 lsl r2, r2, #0x2 ldr r1, [r4, r2] add r2, #0x30 ldr r2, [r4, r2] add r0, r6, #0x0 bl FUN_020463EC add r0, r4, #0x0 bl FUN_02016A18 b _02035484 _02035432: bl FUN_02016A18 ldr r0, [r5, #0x34] bl FUN_020587B0 mov r0, #0x1 pop {r4-r6, pc} _02035440: add r1, r5, #0x0 bl FUN_0203598C add r0, r4, #0x0 bl FUN_02035718 add r0, r4, #0x0 mov r1, #0x1 bl FUN_0200CCF8 add r0, r4, #0x0 bl FUN_02019178 add r0, r6, #0x0 bl FUN_020358A0 ldr r0, [r5, #0x8] mov r1, #0x3 bl FUN_0201AC68 add r0, r4, #0x0 bl FUN_02016A18 ldr r0, [r5, #0x34] bl FUN_020587B0 mov r0, #0x1 pop {r4-r6, pc} _02035478: bl FUN_0200E308 cmp r0, #0x0 beq _02035484 mov r0, #0x1 strh r0, [r4, #0x2a] _02035484: ldr r0, [r4, #0x20] cmp r0, #0x0 beq _02035496 add r0, r4, #0x0 bl FUN_02035BB0 ldr r0, [r4, #0x38] bl FUN_0201FDEC _02035496: mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0203549C FUN_0203549C: ; 0x0203549C push {r3-r7, lr} sub sp, #0x30 add r4, r0, #0x0 bl FUN_02046528 str r0, [sp, #0x1c] add r0, r4, #0x0 bl FUN_0204652C add r4, r0, #0x0 add r1, r4, #0x0 add r1, #0x30 bl FUN_0203566C str r0, [sp, #0x14] mov r0, #0x1 str r0, [sp, #0x0] mov r0, #0xb str r0, [sp, #0x4] ldr r0, [sp, #0x14] mov r2, #0x3 lsl r1, r0, #0x1 add r0, r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x8] mov r0, #0xc str r0, [sp, #0xc] ldr r0, _02035658 ; =0x0000023B add r1, r4, #0x0 str r0, [sp, #0x10] ldr r0, [sp, #0x1c] mov r3, #0x14 ldr r0, [r0, #0x8] bl FUN_02019064 mov r0, #0x1 str r0, [sp, #0x0] mov r3, #0xb ldr r0, [sp, #0x1c] str r3, [sp, #0x4] ldr r0, [r0, #0x8] ldr r2, _0203565C ; =0x000003D9 mov r1, #0x3 bl FUN_0200CB00 ldr r2, _0203565C ; =0x000003D9 add r0, r4, #0x0 mov r1, #0x1 mov r3, #0xb bl FUN_0200CCA4 ldr r2, _02035660 ; =0x00000143 mov r0, #0x0 mov r1, #0x1a mov r3, #0xb bl FUN_0200A86C str r0, [sp, #0x18] ldr r0, [sp, #0x14] mov r1, #0xb bl FUN_02012838 str r0, [r4, #0x24] mov r5, #0x0 ldr r0, [sp, #0x14] strh r5, [r4, #0x28] cmp r0, #0x0 bls _020355BC _02035526: add r0, r4, r5 add r0, #0x30 ldrb r3, [r0, #0x0] cmp r3, #0x3 bne _02035594 mov r0, #0xb bl FUN_0200AA80 add r6, r0, #0x0 mov r0, #0x8 mov r1, #0xb bl FUN_020219F4 add r1, r4, r5 add r1, #0x30 ldrb r1, [r1, #0x0] add r7, r0, #0x0 ldr r0, [sp, #0x18] lsl r2, r1, #0x3 ldr r1, _02035664 ; =0x020F2ACC ldr r1, [r1, r2] bl FUN_0200A914 str r0, [sp, #0x20] ldr r0, [sp, #0x1c] ldr r0, [r0, #0xc] bl FUN_020238F4 add r2, r0, #0x0 add r0, r6, #0x0 mov r1, #0x0 bl FUN_0200ABC0 ldr r2, [sp, #0x20] add r0, r6, #0x0 add r1, r7, #0x0 bl FUN_0200B7B8 add r2, r4, r5 add r2, #0x30 ldrb r2, [r2, #0x0] ldr r0, [r4, #0x24] add r1, r7, #0x0 bl FUN_020128A0 ldr r0, [sp, #0x20] bl FUN_02021A20 add r0, r7, #0x0 bl FUN_02021A20 add r0, r6, #0x0 bl FUN_0200AB18 b _020355A2 _02035594: ldr r2, _02035664 ; =0x020F2ACC lsl r6, r3, #0x3 ldr r0, [r4, #0x24] ldr r1, [sp, #0x18] ldr r2, [r2, r6] bl FUN_02012880 _020355A2: ldr r0, [sp, #0x1c] add r0, #0x8c ldr r1, [r0, #0x0] add r0, r4, r5 add r0, #0x30 ldrb r0, [r0, #0x0] cmp r1, r0 bne _020355B4 strh r5, [r4, #0x28] _020355B4: ldr r0, [sp, #0x14] add r5, r5, #0x1 cmp r5, r0 blo _02035526 _020355BC: ldrh r0, [r4, #0x28] add r0, r4, r0 add r0, #0x30 ldrb r1, [r0, #0x0] ldr r0, [sp, #0x1c] add r0, #0x8c str r1, [r0, #0x0] ldr r0, [sp, #0x18] bl FUN_0200A8B8 ldr r0, [r4, #0x24] mov r1, #0x1 str r0, [sp, #0x24] str r4, [sp, #0x28] add r0, sp, #0x24 strb r1, [r0, #0x8] strb r1, [r0, #0x9] ldr r1, [sp, #0x14] strb r1, [r0, #0xa] ldrb r2, [r0, #0xb] mov r1, #0xf bic r2, r1 mov r1, #0x8 orr r1, r2 strb r1, [r0, #0xb] ldrb r2, [r0, #0xb] mov r1, #0x30 bic r2, r1 mov r1, #0x10 orr r1, r2 strb r1, [r0, #0xb] ldr r1, [sp, #0x14] ldrb r2, [r0, #0xb] cmp r1, #0x4 blo _0203560E mov r1, #0xc0 bic r2, r1 mov r1, #0x40 orr r1, r2 strb r1, [r0, #0xb] b _02035614 _0203560E: mov r1, #0xc0 bic r2, r1 strb r2, [r0, #0xb] _02035614: mov r0, #0xb str r0, [sp, #0x0] ldr r0, _02035668 ; =0x00000402 mov r1, #0x1c str r0, [sp, #0x4] ldrh r3, [r4, #0x28] add r0, sp, #0x24 mov r2, #0x4 lsl r3, r3, #0x18 lsr r3, r3, #0x18 bl FUN_02001B8C str r0, [r4, #0x20] add r0, r4, #0x0 bl FUN_02019220 ldr r0, [sp, #0x1c] ldr r0, [r0, #0xc] bl FUN_020238F4 bl FUN_020239CC add r3, r0, #0x0 add r0, r4, #0x0 add r4, #0x30 lsl r3, r3, #0x18 ldr r2, [sp, #0x14] add r1, r4, #0x0 lsr r3, r3, #0x18 bl FUN_020359B8 add sp, #0x30 pop {r3-r7, pc} nop _02035658: .word 0x0000023B _0203565C: .word 0x000003D9 _02035660: .word 0x00000143 _02035664: .word 0x020F2ACC _02035668: .word 0x00000402 thumb_func_start FUN_0203566C FUN_0203566C: ; 0x0203566C push {r3-r4} mov r3, #0x7 lsl r3, r3, #0x6 ldr r4, [r0, r3] sub r3, #0xc0 mov r2, #0x0 tst r3, r4 bne _02035682 mov r3, #0x8 strb r3, [r1, #0x0] add r2, r2, #0x1 _02035682: mov r3, #0x7 lsl r3, r3, #0x6 ldr r4, [r0, r3] mov r3, #0x80 tst r3, r4 bne _02035694 mov r3, #0x7 strb r3, [r1, r2] add r2, r2, #0x1 _02035694: mov r3, #0x7 lsl r3, r3, #0x6 ldr r4, [r0, r3] mov r3, #0x1 tst r3, r4 bne _020356A6 mov r3, #0x0 strb r3, [r1, r2] add r2, r2, #0x1 _020356A6: mov r3, #0x7 lsl r3, r3, #0x6 ldr r4, [r0, r3] mov r3, #0x2 tst r3, r4 bne _020356B8 mov r3, #0x1 strb r3, [r1, r2] add r2, r2, #0x1 _020356B8: mov r3, #0x7 lsl r3, r3, #0x6 ldr r4, [r0, r3] mov r3, #0x4 tst r3, r4 bne _020356CA mov r3, #0x2 strb r3, [r1, r2] add r2, r2, #0x1 _020356CA: mov r3, #0x7 lsl r3, r3, #0x6 ldr r4, [r0, r3] mov r3, #0x8 tst r3, r4 bne _020356DC mov r3, #0x3 strb r3, [r1, r2] add r2, r2, #0x1 _020356DC: mov r3, #0x7 lsl r3, r3, #0x6 ldr r4, [r0, r3] mov r3, #0x10 tst r3, r4 bne _020356EE mov r3, #0x4 strb r3, [r1, r2] add r2, r2, #0x1 _020356EE: mov r3, #0x7 lsl r3, r3, #0x6 ldr r4, [r0, r3] mov r3, #0x20 tst r3, r4 bne _02035700 mov r3, #0x5 strb r3, [r1, r2] add r2, r2, #0x1 _02035700: mov r3, #0x7 lsl r3, r3, #0x6 ldr r3, [r0, r3] mov r0, #0x40 tst r0, r3 bne _02035712 mov r0, #0x6 strb r0, [r1, r2] add r2, r2, #0x1 _02035712: add r0, r2, #0x0 pop {r3-r4} bx lr thumb_func_start FUN_02035718 FUN_02035718: ; 0x02035718 push {r4, lr} add r4, r0, #0x0 bl FUN_02035B78 ldr r0, [r4, #0x20] mov r1, #0x0 bl FUN_02001C5C ldr r0, [r4, #0x24] bl FUN_02012870 mov r0, #0x0 str r0, [r4, #0x20] pop {r4, pc} thumb_func_start FUN_02035734 FUN_02035734: ; 0x02035734 push {r3-r7, lr} sub sp, #0x20 add r5, r0, #0x0 bl FUN_02046528 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0204652C add r5, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_020462AC bl FUN_0205F214 cmp r0, #0x1 bne _0203575A mov r6, #0x0 b _0203576C _0203575A: ldr r0, [r4, #0xc] bl FUN_020462AC bl FUN_0205F244 cmp r0, #0x1 beq _0203576A b _0203588E _0203576A: mov r6, #0x1 _0203576C: mov r3, #0x1 str r3, [sp, #0x0] mov r0, #0xc str r0, [sp, #0x4] mov r0, #0x4 str r0, [sp, #0x8] mov r0, #0xd str r0, [sp, #0xc] ldr r0, _02035894 ; =0x0000032D add r1, r5, #0x0 str r0, [sp, #0x10] ldr r0, [r4, #0x8] add r1, #0x10 mov r2, #0x3 bl FUN_02019064 mov r0, #0x1 str r0, [sp, #0x0] mov r3, #0xb str r3, [sp, #0x4] ldr r0, [r4, #0x8] ldr r2, _02035898 ; =0x000003D9 mov r1, #0x3 bl FUN_0200CB00 add r0, r5, #0x0 ldr r2, _02035898 ; =0x000003D9 add r0, #0x10 mov r1, #0x1 mov r3, #0xb bl FUN_0200CCA4 add r0, r5, #0x0 add r0, #0x10 mov r1, #0xf bl FUN_02019620 ldr r2, _0203589C ; =0x00000143 mov r0, #0x0 mov r1, #0x1a mov r3, #0xb bl FUN_0200A86C str r0, [sp, #0x1c] cmp r6, #0x0 bne _020357D0 mov r1, #0x9 bl FUN_0200A914 b _020357D6 _020357D0: mov r1, #0xa bl FUN_0200A914 _020357D6: mov r1, #0x0 add r7, r0, #0x0 str r1, [sp, #0x0] mov r0, #0xff str r0, [sp, #0x4] add r0, r5, #0x0 add r0, #0x10 add r2, r7, #0x0 add r3, r1, #0x0 str r1, [sp, #0x8] bl FUN_0201BD84 add r0, r7, #0x0 bl FUN_02021A20 mov r0, #0xb bl FUN_0200AA80 add r7, r0, #0x0 mov r0, #0x20 mov r1, #0xb bl FUN_020219F4 str r0, [sp, #0x18] ldr r0, [sp, #0x1c] mov r1, #0xb bl FUN_0200A914 str r0, [sp, #0x14] cmp r6, #0x0 bne _02035834 ldr r0, [r4, #0xc] bl FUN_02034E30 bl FUN_02034E24 mov r1, #0x0 add r2, r0, #0x0 str r1, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] ldrh r2, [r2, #0x0] add r0, r7, #0x0 mov r3, #0x2 bl FUN_0200AD38 b _0203584C _02035834: add r0, r4, #0x0 bl FUN_0204BAB0 mov r1, #0x0 add r2, r0, #0x0 str r1, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] add r0, r7, #0x0 mov r3, #0x2 bl FUN_0200AD38 _0203584C: ldr r1, [sp, #0x18] ldr r2, [sp, #0x14] add r0, r7, #0x0 bl FUN_0200B7B8 mov r0, #0x10 str r0, [sp, #0x0] mov r0, #0xff str r0, [sp, #0x4] mov r1, #0x0 add r0, r5, #0x0 ldr r2, [sp, #0x18] add r0, #0x10 add r3, r1, #0x0 str r1, [sp, #0x8] bl FUN_0201BD84 ldr r0, [sp, #0x18] bl FUN_02021A20 ldr r0, [sp, #0x14] bl FUN_02021A20 add r0, r7, #0x0 bl FUN_0200AB18 ldr r0, [sp, #0x1c] bl FUN_0200A8B8 add r5, #0x10 add r0, r5, #0x0 bl FUN_02019220 _0203588E: add sp, #0x20 pop {r3-r7, pc} nop _02035894: .word 0x0000032D _02035898: .word 0x000003D9 _0203589C: .word 0x00000143 thumb_func_start FUN_020358A0 FUN_020358A0: ; 0x020358A0 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02046528 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0204652C add r5, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_020462AC bl FUN_0205F214 cmp r0, #0x0 bne _020358CE ldr r0, [r4, #0xc] bl FUN_020462AC bl FUN_0205F244 cmp r0, #0x0 beq _020358E0 _020358CE: add r0, r5, #0x0 add r0, #0x10 mov r1, #0x1 bl FUN_0200CCF8 add r5, #0x10 add r0, r5, #0x0 bl FUN_02019178 _020358E0: pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020358E4 FUN_020358E4: ; 0x020358E4 push {r3-r7, lr} add r7, r0, #0x0 bl FUN_02046528 add r4, r0, #0x0 add r0, r7, #0x0 bl FUN_0204652C add r5, r0, #0x0 ldr r0, [r5, #0x20] bl FUN_02001E5C add r6, r0, #0x0 mov r1, #0x5e ldr r0, [r5, #0x20] lsl r1, r1, #0x4 bl FUN_02001D2C str r0, [r5, #0x2c] ldr r0, [r5, #0x20] bl FUN_02001E5C strh r0, [r5, #0x28] ldrh r1, [r5, #0x28] cmp r6, r1 beq _0203593A mov r0, #0x67 lsl r0, r0, #0x2 ldr r0, [r5, r0] ldr r0, [r0, #0x0] bl FUN_02035BE8 ldrh r2, [r5, #0x28] add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02035C44 ldrh r0, [r5, #0x28] add r4, #0x8c add r0, r5, r0 add r0, #0x30 ldrb r0, [r0, #0x0] str r0, [r4, #0x0] _0203593A: ldrh r0, [r5, #0x28] add r0, r0, #0x1 lsl r0, r0, #0x2 add r1, r5, r0 mov r0, #0x67 lsl r0, r0, #0x2 ldr r0, [r1, r0] ldr r0, [r0, #0x0] bl FUN_02035C78 mov r1, #0x1 ldr r2, [r5, #0x2c] mvn r1, r1 cmp r2, r1 beq _02035960 add r0, r1, #0x1 cmp r2, r0 beq _02035982 b _02035966 _02035960: mov r0, #0xd strh r0, [r5, #0x2a] b _02035982 _02035966: ldr r0, _02035988 ; =0x020F2AD0 lsl r2, r2, #0x3 ldr r2, [r0, r2] cmp r2, r1 bne _02035976 mov r0, #0xd strh r0, [r5, #0x2a] b _02035982 _02035976: add r0, r1, #0x1 cmp r2, r0 beq _02035982 add r0, r7, #0x0 blx r2 pop {r3-r7, pc} _02035982: mov r0, #0x1 pop {r3-r7, pc} nop _02035988: .word 0x020F2AD0 thumb_func_start FUN_0203598C FUN_0203598C: ; 0x0203598C push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_0202EDF8 cmp r0, #0x0 beq _020359B4 mov r0, #0x71 lsl r0, r0, #0x2 ldr r0, [r5, r0] cmp r0, #0x0 beq _020359B4 ldr r0, [r4, #0x7c] bl FUN_02052F74 bl FUN_02031B50 mov r0, #0x0 bl FUN_02052B74 _020359B4: pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020359B8 FUN_020359B8: ; 0x020359B8 push {r4-r7, lr} sub sp, #0xb4 ldr r4, _02035B60 ; =0x020F2AB4 str r3, [sp, #0x18] add r3, sp, #0x9c str r2, [sp, #0x14] str r0, [sp, #0xc] str r1, [sp, #0x10] add r2, r3, #0x0 ldmia r4!, {r0-r1} stmia r3!, {r0-r1} ldmia r4!, {r0-r1} stmia r3!, {r0-r1} ldmia r4!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [sp, #0xc] add r1, r2, #0x0 add r0, #0x38 mov r2, #0x8 mov r3, #0xb bl FUN_021D959C mov r0, #0x2 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] ldr r0, _02035B64 ; =0x000034D8 mov r1, #0x42 str r0, [sp, #0x8] ldr r0, [sp, #0xc] mov r2, #0x5 add r0, #0x38 mov r3, #0x0 bl FUN_021D967C ldr r0, _02035B64 ; =0x000034D8 mov r1, #0x42 str r0, [sp, #0x0] ldr r0, [sp, #0xc] mov r2, #0x1 add r0, #0x38 mov r3, #0x0 bl FUN_021D96F4 ldr r0, _02035B64 ; =0x000034D8 mov r2, #0x0 str r0, [sp, #0x0] ldr r0, [sp, #0xc] mov r1, #0x42 add r0, #0x38 add r3, r2, #0x0 bl FUN_021D9708 mov r0, #0x1 str r0, [sp, #0x0] ldr r0, _02035B64 ; =0x000034D8 mov r1, #0x42 str r0, [sp, #0x4] ldr r0, [sp, #0xc] mov r2, #0x2 add r0, #0x38 mov r3, #0x0 bl FUN_021D971C ldr r0, [sp, #0xc] ldr r1, _02035B68 ; =0x020F2B14 add r0, #0x38 bl FUN_021D9820 mov r2, #0x67 ldr r1, [sp, #0xc] lsl r2, r2, #0x2 str r0, [r1, r2] add r0, r1, #0x0 ldr r0, [r0, r2] ldrh r1, [r1, #0x28] ldr r0, [r0, #0x0] bl FUN_02035BE8 ldr r0, _02035B6C ; =0x000034D9 mov r1, #0x42 str r0, [sp, #0x0] ldr r0, [sp, #0xc] mov r2, #0x4 add r0, #0x38 mov r3, #0x0 bl FUN_021D96F4 ldr r0, _02035B6C ; =0x000034D9 mov r1, #0x42 str r0, [sp, #0x0] ldr r0, [sp, #0xc] mov r2, #0x3 add r0, #0x38 mov r3, #0x0 bl FUN_021D9708 mov r0, #0x1 str r0, [sp, #0x0] ldr r0, _02035B6C ; =0x000034D9 mov r1, #0x42 str r0, [sp, #0x4] ldr r0, [sp, #0xc] mov r2, #0x6 add r0, #0x38 mov r3, #0x0 bl FUN_021D971C ldr r0, [sp, #0x14] mov r4, #0x0 cmp r0, #0x0 bls _02035B2C ldr r5, [sp, #0xc] ldr r3, _02035B70 ; =0x020F2B48 add r7, r4, #0x0 add r2, sp, #0x28 mov r6, #0x6 _02035AA2: ldmia r3!, {r0-r1} stmia r2!, {r0-r1} sub r6, r6, #0x1 bne _02035AA2 ldr r0, [r3, #0x0] ldr r3, _02035B74 ; =0x020F2AA8 str r0, [r2, #0x0] ldmia r3!, {r0-r1} add r2, sp, #0x1c stmia r2!, {r0-r1} ldr r0, [r3, #0x0] str r0, [r2, #0x0] _02035ABA: add r6, sp, #0x28 add r3, sp, #0x68 mov r2, #0x6 _02035AC0: ldmia r6!, {r0-r1} stmia r3!, {r0-r1} sub r2, r2, #0x1 bne _02035AC0 ldr r0, [r6, #0x0] add r1, sp, #0x68 str r0, [r3, #0x0] mov r0, #0x2 ldrsh r0, [r1, r0] add r0, r0, r7 strh r0, [r1, #0x2] ldr r0, [sp, #0x10] ldrb r2, [r0, r4] cmp r2, #0x2 bne _02035AEA ldr r0, [sp, #0x18] cmp r0, #0x1 bne _02035AEA mov r0, #0x1b strh r0, [r1, #0x6] b _02035AF2 _02035AEA: lsl r0, r2, #0x1 add r1, r2, r0 add r0, sp, #0x68 strh r1, [r0, #0x6] _02035AF2: ldr r0, [sp, #0xc] add r1, sp, #0x68 add r0, #0x38 bl FUN_021D9820 mov r1, #0x1a lsl r1, r1, #0x4 add r2, sp, #0x5c add r3, sp, #0x1c str r0, [r5, r1] ldmia r3!, {r0-r1} add r6, r2, #0x0 stmia r2!, {r0-r1} ldr r0, [r3, #0x0] add r1, r6, #0x0 str r0, [r2, #0x0] mov r0, #0x1a lsl r0, r0, #0x4 ldr r0, [r5, r0] mov r2, #0x1 ldr r0, [r0, #0x0] bl FUN_02020074 ldr r0, [sp, #0x14] add r4, r4, #0x1 add r7, #0x18 add r5, r5, #0x4 cmp r4, r0 blo _02035ABA _02035B2C: ldr r0, [sp, #0xc] mov r2, #0x1 ldrh r0, [r0, #0x28] add r0, r0, #0x1 lsl r1, r0, #0x2 ldr r0, [sp, #0xc] add r1, r0, r1 mov r0, #0x67 lsl r0, r0, #0x2 ldr r0, [r1, r0] mov r1, #0x2 ldr r0, [r0, #0x0] bl FUN_02035C18 ldr r0, [sp, #0x14] mov r1, #0x6f add r2, r0, #0x1 ldr r0, [sp, #0xc] lsl r1, r1, #0x2 str r2, [r0, r1] mov r0, #0x10 mov r1, #0x1 bl FUN_0201E6E4 add sp, #0xb4 pop {r4-r7, pc} .balign 4 _02035B60: .word 0x020F2AB4 _02035B64: .word 0x000034D8 _02035B68: .word 0x020F2B14 _02035B6C: .word 0x000034D9 _02035B70: .word 0x020F2B48 _02035B74: .word 0x020F2AA8 thumb_func_start FUN_02035B78 FUN_02035B78: ; 0x02035B78 push {r3-r7, lr} add r5, r0, #0x0 mov r0, #0x6f lsl r0, r0, #0x2 ldr r0, [r5, r0] mov r4, #0x0 cmp r0, #0x0 bls _02035BA6 mov r7, #0x67 lsl r7, r7, #0x2 add r6, r7, #0x0 add r6, #0x20 _02035B90: lsl r0, r4, #0x2 add r0, r5, r0 ldr r0, [r0, r7] bl FUN_0200C3DC add r0, r4, #0x1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 ldr r0, [r5, r6] cmp r4, r0 blo _02035B90 _02035BA6: add r5, #0x38 add r0, r5, #0x0 bl FUN_021D99F8 pop {r3-r7, pc} thumb_func_start FUN_02035BB0 FUN_02035BB0: ; 0x02035BB0 push {r3-r7, lr} add r5, r0, #0x0 mov r0, #0x6f lsl r0, r0, #0x2 ldr r0, [r5, r0] mov r4, #0x0 cmp r0, #0x0 bls _02035BE4 mov r7, #0x67 lsl r7, r7, #0x2 add r6, r7, #0x0 add r6, #0x20 _02035BC8: lsl r0, r4, #0x2 add r0, r5, r0 ldr r0, [r0, r7] mov r1, #0x1 ldr r0, [r0, #0x0] lsl r1, r1, #0xc bl FUN_020201E4 add r0, r4, #0x1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 ldr r0, [r5, r6] cmp r4, r0 blo _02035BC8 _02035BE4: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02035BE8 FUN_02035BE8: ; 0x02035BE8 push {r3-r6, lr} sub sp, #0xc add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_0202011C add r6, r0, #0x0 add r3, sp, #0x0 ldmia r6!, {r0-r1} add r2, r3, #0x0 stmia r3!, {r0-r1} ldr r0, [r6, #0x0] add r1, r2, #0x0 str r0, [r3, #0x0] mov r0, #0x18 mul r0, r4 add r0, #0x14 lsl r0, r0, #0xc str r0, [sp, #0x4] add r0, r5, #0x0 bl FUN_02020044 add sp, #0xc pop {r3-r6, pc} thumb_func_start FUN_02035C18 FUN_02035C18: ; 0x02035C18 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 bl FUN_020201DC mov r1, #0x3 blx _u32_div_f add r2, r0, #0x0 lsl r1, r2, #0x1 add r1, r2, r1 add r0, r5, #0x0 add r1, r4, r1 bl FUN_02020130 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_0202027C pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02035C44 FUN_02035C44: ; 0x02035C44 push {r3-r5, lr} add r5, r0, #0x0 add r0, r1, #0x1 lsl r0, r0, #0x2 add r1, r5, r0 mov r0, #0x67 lsl r0, r0, #0x2 ldr r0, [r1, r0] mov r1, #0x0 add r4, r2, #0x0 ldr r0, [r0, #0x0] add r2, r1, #0x0 bl FUN_02035C18 add r0, r4, #0x1 lsl r0, r0, #0x2 add r1, r5, r0 mov r0, #0x67 lsl r0, r0, #0x2 ldr r0, [r1, r0] mov r1, #0x1 ldr r0, [r0, #0x0] add r2, r1, #0x0 bl FUN_02035C18 pop {r3-r5, pc} thumb_func_start FUN_02035C78 FUN_02035C78: ; 0x02035C78 push {r4, lr} add r4, r0, #0x0 bl FUN_020201DC mov r1, #0x3 blx _u32_div_f cmp r1, #0x1 bne _02035C9E add r0, r4, #0x0 bl FUN_02020388 cmp r0, #0x0 bne _02035C9E add r0, r4, #0x0 mov r1, #0x2 mov r2, #0x1 bl FUN_02035C18 _02035C9E: pop {r4, pc} thumb_func_start FUN_02035CA0 FUN_02035CA0: ; 0x02035CA0 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_0200E308 cmp r0, #0x0 beq _02035CD8 add r0, r5, #0x0 bl FUN_02046528 add r0, r5, #0x0 bl FUN_0204652C add r4, r0, #0x0 bl FUN_02035718 add r0, r4, #0x0 bl FUN_02019178 add r0, r5, #0x0 bl FUN_020358A0 mov r1, #0x72 lsl r1, r1, #0x2 ldr r1, [r4, r1] add r0, r5, #0x0 blx r1 mov r0, #0x3 strh r0, [r4, #0x2a] _02035CD8: pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02035CDC FUN_02035CDC: ; 0x02035CDC push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02046528 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_0204652C add r4, r0, #0x0 add r0, r6, #0x0 bl FUN_0204647C cmp r0, #0x0 bne _02035D02 mov r1, #0x72 lsl r1, r1, #0x2 ldr r1, [r4, r1] add r0, r5, #0x0 blx r1 _02035D02: pop {r4-r6, pc} thumb_func_start FUN_02035D04 FUN_02035D04: ; 0x02035D04 mov r2, #0x72 lsl r2, r2, #0x2 str r1, [r0, r2] mov r1, #0x3 strh r1, [r0, #0x2a] bx lr thumb_func_start FUN_02035D10 FUN_02035D10: ; 0x02035D10 push {r4, lr} bl FUN_0204652C add r4, r0, #0x0 mov r0, #0x0 bl FUN_021D7CA4 mov r0, #0x72 ldr r1, _02035D30 ; =FUN_02035D34 lsl r0, r0, #0x2 str r1, [r4, r0] mov r0, #0x2 strh r0, [r4, #0x2a] mov r0, #0x1 pop {r4, pc} nop _02035D30: .word FUN_02035D34 thumb_func_start FUN_02035D34 FUN_02035D34: ; 0x02035D34 push {r3-r7, lr} sub sp, #0x8 add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C add r6, r0, #0x0 mov r0, #0xb mov r1, #0x20 bl FUN_02016998 add r4, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_02024DA0 str r0, [sp, #0x0] ldr r0, [r5, #0xc] bl FUN_020238F4 str r0, [sp, #0x4] ldr r0, [r5, #0xc] bl FUN_020462AC add r7, r0, #0x0 ldr r0, [sp, #0x0] str r0, [r4, #0x0] ldr r0, [sp, #0x4] str r0, [r4, #0x4] add r0, r5, #0x0 bl FUN_0204B2A4 str r0, [r4, #0x8] add r0, r7, #0x0 mov r1, #0x0 bl FUN_0205F524 str r0, [r4, #0xc] add r0, r7, #0x0 mov r1, #0x1 bl FUN_0205F524 str r0, [r4, #0x10] add r0, r7, #0x0 mov r1, #0x2 bl FUN_0205F524 str r0, [r4, #0x14] add r0, r7, #0x0 mov r1, #0x3 bl FUN_0205F524 str r0, [r4, #0x18] add r0, r5, #0x0 add r0, #0xb0 ldr r0, [r0, #0x0] add r1, r4, #0x0 str r0, [r4, #0x1c] add r0, r5, #0x0 bl FUN_02038690 mov r0, #0x7e lsl r0, r0, #0x2 str r4, [r6, r0] ldr r1, _02035DC4 ; =FUN_02035DC8 sub r0, #0x30 str r1, [r6, r0] mov r0, #0x0 add sp, #0x8 pop {r3-r7, pc} .balign 4 _02035DC4: .word FUN_02035DC8 thumb_func_start FUN_02035DC8 FUN_02035DC8: ; 0x02035DC8 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0204649C mov r0, #0x7e lsl r0, r0, #0x2 ldr r1, [r4, r0] cmp r1, #0x0 beq _02035DF0 mov r0, #0xb bl FUN_02016A8C _02035DF0: mov r0, #0xc strh r0, [r4, #0x2a] mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02035DF8 FUN_02035DF8: ; 0x02035DF8 push {r4, lr} bl FUN_0204652C add r4, r0, #0x0 mov r0, #0x0 bl FUN_021D7CA4 mov r0, #0x72 ldr r1, _02035E18 ; =FUN_02035E1C lsl r0, r0, #0x2 str r1, [r4, r0] mov r0, #0x2 strh r0, [r4, #0x2a] mov r0, #0x1 pop {r4, pc} nop _02035E18: .word FUN_02035E1C thumb_func_start FUN_02035E1C FUN_02035E1C: ; 0x02035E1C push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C mov r1, #0x7a add r4, r0, #0x0 lsl r1, r1, #0x2 add r0, r5, #0x0 add r1, r4, r1 mov r2, #0x0 bl FUN_020379C8 mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] ldr r0, _02035E4C ; =FUN_02035E50 sub r1, #0x30 str r0, [r4, r1] mov r0, #0x0 pop {r3-r5, pc} .balign 4 _02035E4C: .word FUN_02035E50 thumb_func_start FUN_02035E50 FUN_02035E50: ; 0x02035E50 push {r4-r7, lr} sub sp, #0xc add r7, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r7, #0x0 bl FUN_0204652C add r4, r0, #0x0 mov r0, #0xb mov r1, #0x40 bl FUN_02016998 mov r1, #0x7e lsl r1, r1, #0x2 ldr r1, [r4, r1] mov r2, #0x40 add r6, r0, #0x0 blx FUN_020DF438 mov r0, #0x7e lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02016A18 add r0, r6, #0x0 add r0, #0x23 ldrb r0, [r0, #0x0] cmp r0, #0x17 bls _02035E90 b _020361E6 _02035E90: add r1, r0, r0 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02035E9C: ; jump table (using 16-bit offset) .short _020361E6 - _02035E9C - 2; case 0 .short _02035ECC - _02035E9C - 2; case 1 .short _020361E6 - _02035E9C - 2; case 2 .short _020360EA - _02035E9C - 2; case 3 .short _02035F4A - _02035E9C - 2; case 4 .short _02035FD0 - _02035E9C - 2; case 5 .short _02036056 - _02035E9C - 2; case 6 .short _020360AC - _02035E9C - 2; case 7 .short _02036144 - _02035E9C - 2; case 8 .short _02036170 - _02035E9C - 2; case 9 .short _020361CA - _02035E9C - 2; case 10 .short _020361A4 - _02035E9C - 2; case 11 .short _020361A4 - _02035E9C - 2; case 12 .short _020361A4 - _02035E9C - 2; case 13 .short _020361A4 - _02035E9C - 2; case 14 .short _020361A4 - _02035E9C - 2; case 15 .short _020361A4 - _02035E9C - 2; case 16 .short _020361A4 - _02035E9C - 2; case 17 .short _020361A4 - _02035E9C - 2; case 18 .short _020361A4 - _02035E9C - 2; case 19 .short _020361A4 - _02035E9C - 2; case 20 .short _020361A4 - _02035E9C - 2; case 21 .short _020361A4 - _02035E9C - 2; case 22 .short _020361A4 - _02035E9C - 2; case 23 _02035ECC: mov r0, #0xb mov r1, #0x30 bl FUN_02016998 add r7, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_0206BB1C str r0, [r7, #0x0] ldr r0, [r5, #0xc] bl LoadPlayerDataAddress str r0, [r7, #0x4] mov r0, #0x1 strb r0, [r7, #0x11] add r0, r6, #0x0 add r0, #0x22 ldrb r0, [r0, #0x0] strb r0, [r7, #0x14] ldr r0, [r7, #0x0] bl FUN_0206B9AC strb r0, [r7, #0x13] mov r0, #0x0 strh r0, [r7, #0x18] strb r0, [r7, #0x12] ldr r0, [r5, #0xc] bl FUN_0202A918 str r0, [r7, #0x20] ldr r0, [r5, #0xc] bl FUN_0206BB28 str r0, [r7, #0x1c] ldr r0, [r5, #0xc] bl FUN_02079C70 str r0, [r7, #0x2c] mov r0, #0x0 str r0, [r7, #0x28] ldr r1, _0203626C ; =0x020F2A9C add r0, r7, #0x0 bl FUN_0207B000 ldr r0, [r5, #0xc] bl FUN_020238F4 add r1, r0, #0x0 add r0, r7, #0x0 bl FUN_0207C2A4 add r0, r5, #0x0 add r1, r7, #0x0 bl FUN_0203796C mov r0, #0x7e lsl r0, r0, #0x2 str r7, [r4, r0] ldr r1, _02036270 ; =FUN_0203684C add r0, r4, #0x0 bl FUN_02035D04 b _0203625E _02035F4A: mov r0, #0xb mov r1, #0x30 bl FUN_02016998 add r7, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_0206BB1C str r0, [r7, #0x0] ldr r0, [r5, #0xc] bl LoadPlayerDataAddress str r0, [r7, #0x4] mov r1, #0x1 add r0, r6, #0x0 strb r1, [r7, #0x11] add r0, #0x22 ldrb r0, [r0, #0x0] strb r0, [r7, #0x14] strb r1, [r7, #0x13] ldrh r0, [r6, #0x26] strh r0, [r7, #0x18] mov r0, #0x2 strb r0, [r7, #0x12] ldr r0, [r5, #0xc] bl FUN_0206BB28 str r0, [r7, #0x1c] ldr r0, [r5, #0xc] bl FUN_02079C70 str r0, [r7, #0x2c] mov r0, #0x0 str r0, [r7, #0x28] ldr r1, _02036274 ; =0x020F2A8C add r0, r7, #0x0 bl FUN_0207B000 ldr r0, [r5, #0xc] bl FUN_020238F4 add r1, r0, #0x0 add r0, r7, #0x0 bl FUN_0207C2A4 add r0, r5, #0x0 add r1, r7, #0x0 bl FUN_0203796C mov r0, #0xb mov r1, #0x4 bl FUN_02016998 ldrh r1, [r6, #0x24] strh r1, [r0, #0x0] mov r1, #0x0 strh r1, [r0, #0x2] mov r1, #0x7f lsl r1, r1, #0x2 str r0, [r4, r1] sub r0, r1, #0x4 str r7, [r4, r0] ldr r1, _02036270 ; =FUN_0203684C add r0, r4, #0x0 bl FUN_02035D04 b _0203625E _02035FD0: mov r0, #0xb mov r1, #0x30 bl FUN_02016998 add r7, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_0206BB1C str r0, [r7, #0x0] ldr r0, [r5, #0xc] bl LoadPlayerDataAddress str r0, [r7, #0x4] mov r1, #0x1 add r0, r6, #0x0 strb r1, [r7, #0x11] add r0, #0x22 ldrb r0, [r0, #0x0] strb r0, [r7, #0x14] strb r1, [r7, #0x13] ldrh r0, [r6, #0x26] strh r0, [r7, #0x18] mov r0, #0x2 strb r0, [r7, #0x12] ldr r0, [r5, #0xc] bl FUN_0206BB28 str r0, [r7, #0x1c] ldr r0, [r5, #0xc] bl FUN_02079C70 str r0, [r7, #0x2c] mov r0, #0x0 str r0, [r7, #0x28] ldr r1, _02036274 ; =0x020F2A8C add r0, r7, #0x0 bl FUN_0207B000 ldr r0, [r5, #0xc] bl FUN_020238F4 add r1, r0, #0x0 add r0, r7, #0x0 bl FUN_0207C2A4 add r0, r5, #0x0 add r1, r7, #0x0 bl FUN_0203796C mov r0, #0xb mov r1, #0x4 bl FUN_02016998 mov r1, #0x0 strh r1, [r0, #0x0] ldr r1, [r6, #0x34] strh r1, [r0, #0x2] mov r1, #0x7f lsl r1, r1, #0x2 str r0, [r4, r1] sub r0, r1, #0x4 str r7, [r4, r0] ldr r1, _02036270 ; =FUN_0203684C add r0, r4, #0x0 bl FUN_02035D04 b _0203625E _02036056: ldrh r0, [r6, #0x24] bl FUN_0206EAB8 add r3, r0, #0x0 mov r0, #0xb add r2, r6, #0x0 str r0, [sp, #0x0] add r2, #0x22 ldrb r2, [r2, #0x0] add r0, r5, #0x0 mov r1, #0x2 bl FUN_02037F2C mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] add r0, r6, #0x0 add r0, #0x20 ldrb r0, [r0, #0x0] cmp r0, #0xa ldrh r0, [r6, #0x24] bne _02036090 add r2, r6, #0x0 add r2, #0x22 ldrb r2, [r2, #0x0] mov r1, #0x0 bl FUN_02036BC4 b _0203609C _02036090: add r2, r6, #0x0 add r2, #0x22 ldrb r2, [r2, #0x0] mov r1, #0x1 bl FUN_02036BC4 _0203609C: mov r1, #0x7f lsl r1, r1, #0x2 str r0, [r4, r1] ldr r1, _02036278 ; =FUN_02036BDC add r0, r4, #0x0 bl FUN_02035D04 b _0203625E _020360AC: ldr r0, [r5, #0xc] bl FUN_0206BB1C add r1, r6, #0x0 add r1, #0x22 ldrb r1, [r1, #0x0] bl FUN_0206B9B0 add r1, r0, #0x0 add r0, r5, #0x0 mov r2, #0xb bl FUN_02037F90 mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] add r2, r6, #0x0 add r2, #0x22 ldrh r0, [r6, #0x24] ldrb r2, [r2, #0x0] mov r1, #0x2 bl FUN_02036BC4 mov r1, #0x7f lsl r1, r1, #0x2 str r0, [r4, r1] ldr r1, _02036278 ; =FUN_02036BDC add r0, r4, #0x0 bl FUN_02035D04 b _0203625E _020360EA: mov r0, #0xb mov r1, #0x4 bl FUN_02016998 add r1, r6, #0x0 add r1, #0x22 ldrb r1, [r1, #0x0] str r1, [r0, #0x0] mov r1, #0x7f lsl r1, r1, #0x2 str r0, [r4, r1] ldr r0, [r5, #0xc] bl FUN_0206F158 add r7, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_020238F4 ldr r1, _0203627C ; =0x020F2A90 add r0, r7, #0x0 mov r2, #0xb bl FUN_0206EFEC mov r1, #0x7e lsl r1, r1, #0x2 add r3, r5, #0x0 str r0, [r4, r1] add r3, #0x94 ldr r0, [r4, r1] ldr r1, [r5, #0xc] ldr r3, [r3, #0x0] mov r2, #0x1 bl FUN_0206E314 mov r1, #0x7e lsl r1, r1, #0x2 ldr r1, [r4, r1] add r0, r5, #0x0 bl FUN_0203781C ldr r1, _02036280 ; =FUN_020362E4 add r0, r4, #0x0 bl FUN_02035D04 b _0203625E _02036144: mov r0, #0xb mov r1, #0xc bl FUN_02016998 ldrh r1, [r6, #0x24] strh r1, [r0, #0x2] mov r1, #0x3 strb r1, [r0, #0x1] add r1, r6, #0x0 add r1, #0x22 ldrb r1, [r1, #0x0] strb r1, [r0, #0x0] ldrh r1, [r6, #0x38] strh r1, [r0, #0x4] ldr r1, [r6, #0x3c] str r1, [r0, #0x8] mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] mov r0, #0x6 strh r0, [r4, #0x2a] b _0203625E _02036170: mov r0, #0xb mov r1, #0xc bl FUN_02016998 add r7, r0, #0x0 ldr r0, [r5, #0x1c] ldr r0, [r0, #0x0] bl FUN_02034A04 strh r0, [r7, #0x2] mov r0, #0x0 strb r0, [r7, #0x1] add r0, r6, #0x0 add r0, #0x22 ldrb r0, [r0, #0x0] strb r0, [r7, #0x0] ldrh r0, [r6, #0x38] strh r0, [r7, #0x4] ldr r0, [r6, #0x3c] str r0, [r7, #0x8] mov r0, #0x7e lsl r0, r0, #0x2 str r7, [r4, r0] mov r0, #0x6 strh r0, [r4, #0x2a] b _0203625E _020361A4: sub r0, #0xb add r1, sp, #0x4 strh r0, [r1, #0x6] add r0, r6, #0x0 add r0, #0x22 ldrb r0, [r0, #0x0] strh r0, [r1, #0x4] str r7, [sp, #0x4] ldrh r1, [r1, #0x6] mov r0, #0x0 bl FUN_02063948 mov r1, #0x7a lsl r1, r1, #0x2 add r2, r0, #0x0 add r0, sp, #0x4 add r1, r4, r1 blx r2 b _0203625E _020361CA: mov r1, #0x73 lsl r1, r1, #0x2 add r0, r5, #0x0 add r1, r4, r1 bl FUN_02037844 mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] ldr r1, _02036280 ; =FUN_020362E4 add r0, r4, #0x0 bl FUN_02035D04 b _0203625E _020361E6: add r0, r6, #0x0 add r0, #0x20 ldrb r0, [r0, #0x0] cmp r0, #0x5 beq _02036200 cmp r0, #0x6 beq _02036200 cmp r0, #0x7 beq _02036200 cmp r0, #0x10 beq _02036200 cmp r0, #0x8 bne _02036234 _02036200: mov r1, #0x73 lsl r1, r1, #0x2 add r0, r5, #0x0 add r1, r4, r1 bl FUN_02037844 mov r2, #0x7e lsl r2, r2, #0x2 str r0, [r4, r2] add r0, r6, #0x0 add r0, #0x22 ldrb r1, [r0, #0x0] ldr r0, [r4, r2] cmp r1, #0x6 blo _02036226 mov r1, #0x0 bl FUN_0206E358 b _0203622A _02036226: bl FUN_0206E358 _0203622A: ldr r1, _02036280 ; =FUN_020362E4 add r0, r4, #0x0 bl FUN_02035D04 b _0203625E _02036234: cmp r0, #0x9 bne _02036254 mov r1, #0x73 lsl r1, r1, #0x2 add r0, r5, #0x0 add r1, r4, r1 bl FUN_02037844 mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] ldr r1, _02036280 ; =FUN_020362E4 add r0, r4, #0x0 bl FUN_02035D04 b _0203625E _02036254: add r0, r5, #0x0 bl FUN_0204649C mov r0, #0xc strh r0, [r4, #0x2a] _0203625E: add r0, r6, #0x0 bl FUN_02016A18 mov r0, #0x0 add sp, #0xc pop {r4-r7, pc} nop _0203626C: .word 0x020F2A9C _02036270: .word FUN_0203684C _02036274: .word 0x020F2A8C _02036278: .word FUN_02036BDC _0203627C: .word 0x020F2A90 _02036280: .word FUN_020362E4 thumb_func_start FUN_02036284 FUN_02036284: ; 0x02036284 push {r4, lr} bl FUN_0204652C add r4, r0, #0x0 mov r0, #0x0 bl FUN_021D7CA4 mov r0, #0x72 ldr r1, _020362A4 ; =FUN_020362A8 lsl r0, r0, #0x2 str r1, [r4, r0] mov r0, #0x2 strh r0, [r4, #0x2a] mov r0, #0x1 pop {r4, pc} nop _020362A4: .word FUN_020362A8 thumb_func_start FUN_020362A8 FUN_020362A8: ; 0x020362A8 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C mov r1, #0x73 add r4, r0, #0x0 lsl r1, r1, #0x2 add r0, r5, #0x0 add r1, r4, r1 bl FUN_02037844 mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] ldr r0, [r4, r1] mov r1, #0x0 bl FUN_0206E358 mov r0, #0x72 ldr r1, _020362E0 ; =FUN_020362E4 lsl r0, r0, #0x2 str r1, [r4, r0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 _020362E0: .word FUN_020362E4 thumb_func_start FUN_020362E4 FUN_020362E4: ; 0x020362E4 push {r3-r7, lr} sub sp, #0x18 add r5, r0, #0x0 bl FUN_02046528 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_0204652C add r4, r0, #0x0 mov r0, #0xb bl FUN_0206E2F0 str r0, [sp, #0x8] bl FUN_0206E308 mov r1, #0x7e lsl r1, r1, #0x2 add r2, r0, #0x0 ldr r0, [sp, #0x8] ldr r1, [r4, r1] blx FUN_020DF438 mov r0, #0x7e lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02016A18 ldr r0, [sp, #0x8] bl FUN_0206E384 cmp r0, #0x5 bls _02036328 b _020364EE _02036328: add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02036334: ; jump table (using 16-bit offset) .short _02036340 - _02036334 - 2; case 0 .short _0203637A - _02036334 - 2; case 1 .short _0203638A - _02036334 - 2; case 2 .short _020364EE - _02036334 - 2; case 3 .short _020363F6 - _02036334 - 2; case 4 .short _020364EE - _02036334 - 2; case 5 _02036340: ldr r0, [sp, #0x8] bl FUN_0206E37C add r1, sp, #0x10 strh r0, [r1, #0x4] ldr r0, [sp, #0x8] bl FUN_0206E38C add r1, sp, #0x10 strb r0, [r1, #0x6] str r5, [sp, #0x10] ldrh r0, [r1, #0x4] mov r1, #0x6 mov r2, #0xb bl FUN_0206E7B8 add r1, r0, #0x0 lsl r1, r1, #0x10 mov r0, #0x0 lsr r1, r1, #0x10 bl FUN_0205CE48 mov r1, #0x73 lsl r1, r1, #0x2 add r2, r0, #0x0 add r0, sp, #0x10 add r1, r4, r1 blx r2 b _020364F8 _0203637A: ldr r0, [sp, #0x8] bl FUN_0206E37C add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_0203695C b _020364F8 _0203638A: mov r0, #0xb mov r1, #0x40 bl FUN_02016998 mov r1, #0x0 mov r2, #0x40 add r5, r0, #0x0 blx FUN_020DF4A4 ldr r0, [r6, #0xc] bl FUN_0206BB1C str r0, [r5, #0x0] ldr r0, [r6, #0xc] bl FUN_0206F158 str r0, [r5, #0x4] ldr r0, [r6, #0xc] bl FUN_02025838 str r0, [r5, #0x8] ldr r0, [r6, #0xc] bl LoadPlayerDataAddress str r0, [r5, #0xc] mov r0, #0x7a lsl r0, r0, #0x2 add r0, r4, r0 str r0, [r5, #0x18] add r0, r5, #0x0 mov r1, #0x0 add r0, #0x21 strb r1, [r0, #0x0] add r0, r5, #0x0 mov r1, #0x9 add r0, #0x20 strb r1, [r0, #0x0] ldr r0, [sp, #0x8] bl FUN_0206E37C strh r0, [r5, #0x24] ldr r1, _02036504 ; =0x020F96DC add r0, r6, #0x0 add r2, r5, #0x0 bl FUN_020373D4 mov r0, #0x7e lsl r0, r0, #0x2 str r5, [r4, r0] ldr r1, _02036508 ; =FUN_02035E50 add r0, r4, #0x0 bl FUN_02035D04 b _020364F8 _020363F6: ldr r0, [r6, #0xc] bl FUN_0206BB1C str r0, [sp, #0x4] mov r0, #0x7f lsl r0, r0, #0x2 ldr r0, [r4, r0] ldr r7, [r0, #0x0] ldr r0, [sp, #0x8] bl FUN_0206E37C add r5, r0, #0x0 ldr r0, [sp, #0x4] add r1, r7, #0x0 bl FUN_0206B9B0 str r0, [sp, #0xc] mov r0, #0x7f lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02016A18 add r0, r5, #0x0 bl FUN_0206EA98 cmp r0, #0x1 bne _02036474 ldr r0, [sp, #0xc] mov r1, #0x6 mov r2, #0x0 bl FUN_020671BC cmp r0, #0x0 bne _02036474 add r0, r5, #0x0 bl FUN_0206EAB8 add r3, r0, #0x0 mov r0, #0xb lsl r2, r7, #0x18 str r0, [sp, #0x0] add r0, r6, #0x0 mov r1, #0x2 lsr r2, r2, #0x18 bl FUN_02037F2C mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] lsl r2, r7, #0x18 add r0, r5, #0x0 mov r1, #0x0 lsr r2, r2, #0x18 bl FUN_02036BC4 mov r1, #0x7f lsl r1, r1, #0x2 str r0, [r4, r1] ldr r1, _0203650C ; =FUN_02036BDC add r0, r4, #0x0 bl FUN_02035D04 b _020364F8 _02036474: mov r0, #0xb mov r1, #0x40 bl FUN_02016998 mov r1, #0x0 mov r2, #0x40 add r5, r0, #0x0 blx FUN_020DF4A4 ldr r0, [sp, #0x4] str r0, [r5, #0x0] ldr r0, [r6, #0xc] bl FUN_0206F158 str r0, [r5, #0x4] ldr r0, [r6, #0xc] bl FUN_02025838 str r0, [r5, #0x8] ldr r0, [r6, #0xc] bl LoadPlayerDataAddress str r0, [r5, #0xc] mov r0, #0x7a lsl r0, r0, #0x2 add r0, r4, r0 str r0, [r5, #0x18] add r0, r5, #0x0 mov r1, #0x0 add r0, #0x21 strb r1, [r0, #0x0] ldr r0, [sp, #0x8] bl FUN_0206E37C strh r0, [r5, #0x24] add r0, r5, #0x0 add r0, #0x22 strb r7, [r0, #0x0] str r6, [r5, #0x1c] ldrh r0, [r5, #0x24] cmp r0, #0x0 bne _020364CC mov r1, #0x0 b _020364CE _020364CC: mov r1, #0xa _020364CE: add r0, r5, #0x0 add r0, #0x20 strb r1, [r0, #0x0] ldr r1, _02036504 ; =0x020F96DC add r0, r6, #0x0 add r2, r5, #0x0 bl FUN_020373D4 mov r0, #0x7e lsl r0, r0, #0x2 str r5, [r4, r0] ldr r1, _02036508 ; =FUN_02035E50 add r0, r4, #0x0 bl FUN_02035D04 b _020364F8 _020364EE: add r0, r6, #0x0 bl FUN_0204649C mov r0, #0xc strh r0, [r4, #0x2a] _020364F8: ldr r0, [sp, #0x8] bl FUN_02016A18 mov r0, #0x0 add sp, #0x18 pop {r3-r7, pc} .balign 4 _02036504: .word 0x020F96DC _02036508: .word FUN_02035E50 _0203650C: .word FUN_02036BDC thumb_func_start FUN_02036510 FUN_02036510: ; 0x02036510 push {r4, lr} bl FUN_0204652C add r4, r0, #0x0 mov r0, #0x0 bl FUN_021D7CA4 mov r0, #0x72 ldr r1, _02036530 ; =FUN_02036534 lsl r0, r0, #0x2 str r1, [r4, r0] mov r0, #0x2 strh r0, [r4, #0x2a] mov r0, #0x1 pop {r4, pc} nop _02036530: .word FUN_02036534 thumb_func_start FUN_02036534 FUN_02036534: ; 0x02036534 push {r3-r5, lr} sub sp, #0x8 add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C add r4, r0, #0x0 mov r0, #0xb bl FUN_02065054 mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] str r5, [sp, #0x0] ldr r0, [r4, r1] mov r2, #0x0 str r0, [sp, #0x4] mov r0, #0x1 add r1, r0, #0x0 mov r3, #0xff bl FUN_02064E90 mov r1, #0x7e lsl r1, r1, #0x2 ldr r1, [r4, r1] add r0, r5, #0x0 bl FUN_02038680 mov r0, #0x72 ldr r1, _02036580 ; =FUN_02036584 lsl r0, r0, #0x2 str r1, [r4, r0] mov r0, #0x0 add sp, #0x8 pop {r3-r5, pc} .balign 4 _02036580: .word FUN_02036584 thumb_func_start FUN_02036584 FUN_02036584: ; 0x02036584 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C mov r1, #0x7e add r4, r0, #0x0 lsl r1, r1, #0x2 ldr r1, [r4, r1] add r0, r5, #0x0 bl FUN_02065314 mov r0, #0x7e lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02065070 add r0, r5, #0x0 bl FUN_0204649C mov r0, #0xc strh r0, [r4, #0x2a] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020365BC FUN_020365BC: ; 0x020365BC push {r3-r5, lr} add r5, r0, #0x0 bl FUN_0204652C add r4, r0, #0x0 bl FUN_02035718 add r0, r4, #0x0 mov r1, #0x1 bl FUN_0200CCF8 ldrb r1, [r4, #0x4] ldr r0, [r4, #0x0] bl FUN_0201AC68 add r0, r4, #0x0 bl FUN_02019178 add r0, r5, #0x0 bl FUN_020358A0 mov r0, #0x4 strh r0, [r4, #0x2a] mov r0, #0x1 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020365F0 FUN_020365F0: ; 0x020365F0 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_0204652C add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02046528 ldr r0, [r0, #0xc] bl FUN_0202280C cmp r0, #0x0 beq _02036618 mov r2, #0x0 ldr r1, _0203663C ; =0x000007F2 add r0, r5, #0x0 add r3, r2, #0x0 bl FUN_02038CD8 b _02036636 _02036618: mov r0, #0x20 mov r1, #0x8 bl FUN_02016998 mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] ldr r3, [r4, r1] mov r2, #0x0 strh r2, [r3, #0x4] ldr r1, _02036640 ; =0x000007D5 add r0, r5, #0x0 add r3, r3, #0x4 bl FUN_02038CD8 _02036636: mov r0, #0x5 strh r0, [r4, #0x2a] pop {r3-r5, pc} .balign 4 _0203663C: .word 0x000007F2 _02036640: .word 0x000007D5 thumb_func_start FUN_02036644 FUN_02036644: ; 0x02036644 push {r4-r6, lr} add r4, r0, #0x0 bl FUN_02046528 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C add r4, r0, #0x0 mov r0, #0x7e lsl r0, r0, #0x2 ldr r5, [r4, r0] ldr r0, [r6, #0xc] bl FUN_0202280C cmp r0, #0x0 beq _0203666C mov r0, #0x0 strh r0, [r4, #0x2a] pop {r4-r6, pc} _0203666C: ldrh r0, [r5, #0x4] cmp r0, #0x0 bne _02036676 mov r0, #0x0 b _02036678 _02036676: mov r0, #0xf _02036678: strh r0, [r4, #0x2a] add r0, r5, #0x0 bl FUN_02016A18 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02036684 FUN_02036684: ; 0x02036684 push {r4, lr} bl FUN_0204652C add r4, r0, #0x0 mov r0, #0x0 bl FUN_021D7CA4 mov r0, #0x72 ldr r1, _020366A4 ; =FUN_020366A8 lsl r0, r0, #0x2 str r1, [r4, r0] mov r0, #0x2 strh r0, [r4, #0x2a] mov r0, #0x1 pop {r4, pc} nop _020366A4: .word FUN_020366A8 thumb_func_start FUN_020366A8 FUN_020366A8: ; 0x020366A8 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02037EF8 mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] ldr r0, _020366D0 ; =FUN_020366D4 sub r1, #0x30 str r0, [r4, r1] mov r0, #0x0 pop {r3-r5, pc} .balign 4 _020366D0: .word FUN_020366D4 thumb_func_start FUN_020366D4 FUN_020366D4: ; 0x020366D4 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C add r4, r0, #0x0 mov r0, #0x7e lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02016A18 add r0, r5, #0x0 bl FUN_0204649C mov r0, #0xc strh r0, [r4, #0x2a] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02036700 FUN_02036700: ; 0x02036700 push {r4, lr} bl FUN_0204652C add r4, r0, #0x0 mov r0, #0x0 bl FUN_021D7CA4 mov r0, #0x72 ldr r1, _02036720 ; =FUN_02036724 lsl r0, r0, #0x2 str r1, [r4, r0] mov r0, #0x2 strh r0, [r4, #0x2a] mov r0, #0x1 pop {r4, pc} nop _02036720: .word FUN_02036724 thumb_func_start FUN_02036724 FUN_02036724: ; 0x02036724 push {r3-r5, lr} sub sp, #0x8 add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldr r2, [r5, #0xc] mov r0, #0x2 mov r1, #0x0 mov r3, #0xb bl FUN_02085338 mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] add r0, sp, #0x0 mov r1, #0x4 bl FUN_0201373C mov r0, #0x7e lsl r0, r0, #0x2 ldr r0, [r4, r0] add r1, sp, #0x0 bl FUN_020853BC mov r1, #0x7e lsl r1, r1, #0x2 ldr r1, [r4, r1] add r0, r5, #0x0 bl FUN_02037E80 mov r0, #0x72 ldr r1, _02036778 ; =FUN_0203677C lsl r0, r0, #0x2 str r1, [r4, r0] mov r0, #0x0 add sp, #0x8 pop {r3-r5, pc} .balign 4 _02036778: .word FUN_0203677C thumb_func_start FUN_0203677C FUN_0203677C: ; 0x0203677C push {r3-r5, lr} sub sp, #0x8 add r5, r0, #0x0 bl FUN_02046528 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0204652C add r5, r0, #0x0 mov r0, #0x7e lsl r0, r0, #0x2 ldr r0, [r5, r0] bl FUN_020853E4 cmp r0, #0x0 bne _020367C6 mov r0, #0x7e lsl r0, r0, #0x2 ldr r0, [r5, r0] add r1, sp, #0x0 bl FUN_020853FC bl FUN_0202EDF8 cmp r0, #0x0 beq _020367C0 add r0, sp, #0x0 bl FUN_02052DE8 ldr r0, [r4, #0x78] add r1, sp, #0x0 bl FUN_02052CD8 _020367C0: mov r0, #0x8 strh r0, [r5, #0x2a] b _020367CA _020367C6: mov r0, #0xc strh r0, [r5, #0x2a] _020367CA: mov r0, #0x7e lsl r0, r0, #0x2 ldr r0, [r5, r0] bl FUN_020853A8 add r0, r4, #0x0 bl FUN_0204649C ldr r0, [r4, #0x7c] bl FUN_02052F74 mov r0, #0x0 add sp, #0x8 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020367E8 FUN_020367E8: ; 0x020367E8 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02046528 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_0204652C add r4, r0, #0x0 bl FUN_02035718 add r0, r4, #0x0 mov r1, #0x1 bl FUN_0200CCF8 ldrb r1, [r4, #0x4] ldr r0, [r4, #0x0] bl FUN_0201AC68 add r0, r4, #0x0 bl FUN_02019178 add r0, r5, #0x0 bl FUN_020358A0 ldr r0, [r6, #0xc] bl FUN_020462AC bl FUN_0205F214 cmp r0, #0x1 bne _02036834 ldr r1, _02036848 ; =0x00002275 add r0, r5, #0x0 mov r2, #0x0 bl FUN_02038D10 b _0203683E _02036834: add r0, r5, #0x0 mov r1, #0x4 mov r2, #0x0 bl FUN_02038D10 _0203683E: add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x0 pop {r4-r6, pc} .balign 4 _02036848: .word 0x00002275 thumb_func_start FUN_0203684C FUN_0203684C: ; 0x0203684C push {r3-r7, lr} add r4, r0, #0x0 bl FUN_02046528 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C add r4, r0, #0x0 mov r0, #0xb mov r1, #0x30 bl FUN_02016998 mov r1, #0x7e lsl r1, r1, #0x2 ldr r1, [r4, r1] mov r2, #0x30 add r7, r0, #0x0 blx FUN_020DF438 mov r0, #0x7e lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02016A18 ldrb r0, [r7, #0x12] cmp r0, #0x2 bne _0203692E mov r0, #0xb mov r1, #0x40 bl FUN_02016998 mov r1, #0x7f lsl r1, r1, #0x2 ldr r1, [r4, r1] mov r2, #0x40 str r1, [sp, #0x0] mov r1, #0x0 add r5, r0, #0x0 blx FUN_020DF4A4 ldr r0, [r6, #0xc] bl FUN_0206BB1C str r0, [r5, #0x0] ldr r0, [r6, #0xc] bl FUN_0206F158 str r0, [r5, #0x4] ldr r0, [r6, #0xc] bl FUN_02025838 str r0, [r5, #0x8] ldr r0, [r6, #0xc] bl LoadPlayerDataAddress str r0, [r5, #0xc] mov r0, #0x7a lsl r0, r0, #0x2 add r0, r4, r0 add r1, r5, #0x0 str r0, [r5, #0x18] mov r0, #0x0 add r1, #0x21 strb r0, [r1, #0x0] ldr r1, [sp, #0x0] str r6, [r5, #0x1c] ldrh r1, [r1, #0x0] cmp r1, #0x0 beq _020368E2 add r1, r5, #0x0 mov r2, #0x7 add r1, #0x20 strb r2, [r1, #0x0] b _020368EE _020368E2: add r0, r5, #0x0 mov r1, #0x8 add r0, #0x20 strb r1, [r0, #0x0] ldr r0, [sp, #0x0] ldrh r0, [r0, #0x2] _020368EE: str r0, [r5, #0x34] ldr r0, [sp, #0x0] add r2, r5, #0x0 ldrh r0, [r0, #0x0] strh r0, [r5, #0x24] add r0, r5, #0x0 ldrb r1, [r7, #0x14] add r0, #0x22 strb r1, [r0, #0x0] ldrh r0, [r7, #0x18] strh r0, [r5, #0x26] add r0, r5, #0x0 ldrb r1, [r7, #0x16] add r0, #0x28 strb r1, [r0, #0x0] ldr r1, _02036954 ; =0x020F96DC add r0, r6, #0x0 bl FUN_020373D4 mov r0, #0x7f lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02016A18 mov r0, #0x7e lsl r0, r0, #0x2 str r5, [r4, r0] ldr r1, _02036958 ; =FUN_02035E50 add r0, r4, #0x0 bl FUN_02035D04 b _0203694A _0203692E: mov r1, #0x7a lsl r1, r1, #0x2 ldrb r2, [r7, #0x14] add r0, r6, #0x0 add r1, r4, r1 bl FUN_020379C8 mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] ldr r1, _02036958 ; =FUN_02035E50 add r0, r4, #0x0 bl FUN_02035D04 _0203694A: add r0, r7, #0x0 bl FUN_02016A18 mov r0, #0x0 pop {r3-r7, pc} .balign 4 _02036954: .word 0x020F96DC _02036958: .word FUN_02035E50 thumb_func_start FUN_0203695C FUN_0203695C: ; 0x0203695C push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_02046528 str r0, [sp, #0x4] add r0, r5, #0x0 bl FUN_0204652C add r6, r0, #0x0 mov r0, #0xb bl FUN_020851B8 mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r6, r1] ldr r0, [sp, #0x4] ldr r0, [r0, #0xc] bl FUN_0206F158 str r0, [sp, #0x0] mov r0, #0x7e lsl r0, r0, #0x2 ldr r0, [r6, r0] add r1, r4, #0x0 mov r2, #0x1 bl FUN_020851DC mov r5, #0x0 add r4, r5, #0x0 _0203699A: add r0, r4, #0x0 bl FUN_0206EB1C add r7, r0, #0x0 ldr r0, [sp, #0x0] add r1, r7, #0x0 mov r2, #0x1 mov r3, #0xb bl FUN_0206EE50 cmp r0, #0x1 bne _020369C6 mov r0, #0x7e lsl r0, r0, #0x2 ldr r0, [r6, r0] add r1, r7, #0x0 mov r2, #0x0 bl FUN_020851DC add r0, r5, #0x1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 _020369C6: add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #0x40 blo _0203699A ldr r0, [sp, #0x4] add r3, sp, #0x8 add r0, #0x94 ldr r0, [r0, #0x0] mov r1, #0x4 add r2, sp, #0x8 add r3, #0x1 bl FUN_0206F17C mov r0, #0x7e add r2, sp, #0x8 lsl r0, r0, #0x2 ldrb r1, [r2, #0x1] add r3, r5, #0x3 lsl r3, r3, #0x18 ldrb r2, [r2, #0x0] ldr r0, [r6, r0] lsr r3, r3, #0x18 bl FUN_020851F8 mov r1, #0x7e lsl r1, r1, #0x2 ldr r0, [sp, #0x4] ldr r1, [r6, r1] bl FUN_0203791C ldr r1, _02036A10 ; =FUN_02036A14 add r0, r6, #0x0 bl FUN_02035D04 add sp, #0xc pop {r4-r7, pc} .balign 4 _02036A10: .word FUN_02036A14 thumb_func_start FUN_02036A14 FUN_02036A14: ; 0x02036A14 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C add r4, r0, #0x0 mov r0, #0x7e lsl r0, r0, #0x2 add r1, sp, #0x0 ldr r0, [r4, r0] add r1, #0x1 add r2, sp, #0x0 bl FUN_0208524C add r0, r5, #0x0 add r3, sp, #0x0 add r0, #0x94 ldrb r2, [r3, #0x0] ldrb r3, [r3, #0x1] ldr r0, [r0, #0x0] mov r1, #0x4 bl FUN_0206F190 mov r1, #0x7e lsl r1, r1, #0x2 ldr r1, [r4, r1] mov r0, #0xb bl FUN_02016A8C mov r1, #0x73 lsl r1, r1, #0x2 add r0, r5, #0x0 add r1, r4, r1 bl FUN_02037844 mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] ldr r1, _02036A74 ; =FUN_020362E4 add r0, r4, #0x0 bl FUN_02035D04 mov r0, #0x0 pop {r3-r5, pc} nop _02036A74: .word FUN_020362E4 thumb_func_start FUN_02036A78 FUN_02036A78: ; 0x02036A78 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C mov r1, #0x7e add r4, r0, #0x0 lsl r1, r1, #0x2 ldr r1, [r4, r1] mov r0, #0xb bl FUN_02016A8C mov r1, #0x73 lsl r1, r1, #0x2 add r0, r5, #0x0 add r1, r4, r1 bl FUN_02037844 mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] ldr r1, _02036AB4 ; =FUN_020362E4 add r0, r4, #0x0 bl FUN_02035D04 mov r0, #0x0 pop {r3-r5, pc} .balign 4 _02036AB4: .word FUN_020362E4 thumb_func_start FUN_02036AB8 FUN_02036AB8: ; 0x02036AB8 push {r3-r7, lr} sub sp, #0x8 add r4, r0, #0x0 bl FUN_02046528 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C add r4, r0, #0x0 mov r0, #0x7f lsl r0, r0, #0x2 ldr r1, [r4, r0] mov r0, #0xb ldr r7, [r1, #0x0] bl FUN_02016A8C mov r0, #0x7e lsl r0, r0, #0x2 ldr r5, [r4, r0] ldr r0, [r5, #0x10] cmp r0, #0x0 bne _02036B0E mov r0, #0xb add r1, r5, #0x0 bl FUN_02016A8C mov r1, #0x7a lsl r1, r1, #0x2 lsl r2, r7, #0x18 add r0, r6, #0x0 add r1, r4, r1 lsr r2, r2, #0x18 bl FUN_020379C8 mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] ldr r1, _02036B88 ; =FUN_02035E50 add r0, r4, #0x0 bl FUN_02035D04 b _02036B82 _02036B0E: ldr r0, [r6, #0xc] bl FUN_0206BB1C add r1, r7, #0x0 bl FUN_0206B9B0 add r2, r0, #0x0 ldr r0, [r5, #0x14] add r1, r6, #0x0 lsl r0, r0, #0x5 add r0, #0x10 lsl r0, r0, #0x10 asr r0, r0, #0x10 str r0, [sp, #0x0] ldr r0, [r5, #0x18] lsl r0, r0, #0x5 add r0, #0x10 lsl r0, r0, #0x10 asr r0, r0, #0x10 str r0, [sp, #0x4] ldr r3, [r5, #0x1c] mov r0, #0xb lsl r3, r3, #0x10 lsr r3, r3, #0x10 bl FUN_02063888 ldr r1, [r5, #0x1c] add r7, r0, #0x0 lsl r1, r1, #0x10 mov r0, #0x1 lsr r1, r1, #0x10 mov r2, #0xb bl FUN_0202914C add r1, r0, #0x0 add r0, r6, #0x0 add r0, #0x98 ldr r0, [r0, #0x0] mov r2, #0x1 bl FUN_02028AD4 mov r1, #0x7e lsl r1, r1, #0x2 ldr r1, [r4, r1] mov r0, #0xb bl FUN_02016A8C add r0, r6, #0x0 bl FUN_0204649C mov r0, #0x72 ldr r1, _02036B8C ; =FUN_020638BC lsl r0, r0, #0x2 str r1, [r4, r0] add r0, #0x30 str r7, [r4, r0] mov r0, #0xa strh r0, [r4, #0x2a] _02036B82: mov r0, #0x0 add sp, #0x8 pop {r3-r7, pc} .balign 4 _02036B88: .word FUN_02035E50 _02036B8C: .word FUN_020638BC thumb_func_start FUN_02036B90 FUN_02036B90: ; 0x02036B90 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C mov r1, #0x73 add r4, r0, #0x0 lsl r1, r1, #0x2 add r0, r5, #0x0 add r1, r4, r1 bl FUN_02037844 mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] ldr r1, _02036BC0 ; =FUN_020362E4 add r0, r4, #0x0 bl FUN_02035D04 mov r0, #0x0 pop {r3-r5, pc} .balign 4 _02036BC0: .word FUN_020362E4 thumb_func_start FUN_02036BC4 FUN_02036BC4: ; 0x02036BC4 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 mov r0, #0xb mov r1, #0x4 add r6, r2, #0x0 bl FUN_02016998 strh r5, [r0, #0x0] strb r6, [r0, #0x2] strb r4, [r0, #0x3] pop {r4-r6, pc} thumb_func_start FUN_02036BDC FUN_02036BDC: ; 0x02036BDC push {r4-r6, lr} add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C add r4, r0, #0x0 mov r0, #0x7f lsl r0, r0, #0x2 ldr r6, [r4, r0] ldrb r1, [r6, #0x3] cmp r1, #0x3 bhi _02036CD4 add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02036C06: ; jump table (using 16-bit offset) .short _02036C58 - _02036C06 - 2; case 0 .short _02036C98 - _02036C06 - 2; case 1 .short _02036C32 - _02036C06 - 2; case 2 .short _02036C0E - _02036C06 - 2; case 3 _02036C0E: sub r0, r0, #0x4 ldr r0, [r4, r0] bl FUN_0208562C mov r1, #0x73 lsl r1, r1, #0x2 add r0, r5, #0x0 add r1, r4, r1 bl FUN_02037844 mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] ldr r1, _02036CE4 ; =FUN_020362E4 add r0, r4, #0x0 bl FUN_02035D04 b _02036CD4 _02036C32: sub r0, r0, #0x4 ldr r0, [r4, r0] bl FUN_0208562C mov r1, #0x7a lsl r1, r1, #0x2 ldrb r2, [r6, #0x2] add r0, r5, #0x0 add r1, r4, r1 bl FUN_020379C8 mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] ldr r1, _02036CE8 ; =FUN_02035E50 add r0, r4, #0x0 bl FUN_02035D04 b _02036CD4 _02036C58: sub r0, r0, #0x4 ldr r0, [r4, r0] bl FUN_020855E4 cmp r0, #0x1 bne _02036C70 add r0, r5, #0x0 add r1, r4, #0x0 mov r2, #0xc bl FUN_02036CEC b _02036CD4 _02036C70: mov r0, #0x7e lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_0208562C mov r1, #0x7a lsl r1, r1, #0x2 ldrb r2, [r6, #0x2] add r0, r5, #0x0 add r1, r4, r1 bl FUN_020379C8 mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] ldr r1, _02036CE8 ; =FUN_02035E50 add r0, r4, #0x0 bl FUN_02035D04 b _02036CD4 _02036C98: sub r0, r0, #0x4 ldr r0, [r4, r0] bl FUN_020855E4 cmp r0, #0x1 bne _02036CB0 add r0, r5, #0x0 add r1, r4, #0x0 mov r2, #0xb bl FUN_02036CEC b _02036CD4 _02036CB0: mov r0, #0x7e lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_0208562C mov r1, #0x73 lsl r1, r1, #0x2 add r0, r5, #0x0 add r1, r4, r1 bl FUN_02037844 mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] ldr r1, _02036CE4 ; =FUN_020362E4 add r0, r4, #0x0 bl FUN_02035D04 _02036CD4: mov r0, #0x7f lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02016A18 mov r0, #0x0 pop {r4-r6, pc} nop _02036CE4: .word FUN_020362E4 _02036CE8: .word FUN_02035E50 thumb_func_start FUN_02036CEC FUN_02036CEC: ; 0x02036CEC push {r3-r7, lr} add r5, r0, #0x0 mov r0, #0x7f add r6, r1, #0x0 str r2, [sp, #0x0] lsl r0, r0, #0x2 ldr r7, [r6, r0] mov r0, #0xb mov r1, #0x40 bl FUN_02016998 mov r1, #0x0 mov r2, #0x40 add r4, r0, #0x0 blx FUN_020DF4A4 ldr r0, [r5, #0xc] bl FUN_0206BB1C str r0, [r4, #0x0] ldr r0, [r5, #0xc] bl FUN_0206F158 str r0, [r4, #0x4] ldr r0, [r5, #0xc] bl FUN_02025838 str r0, [r4, #0x8] ldr r0, [r5, #0xc] bl LoadPlayerDataAddress str r0, [r4, #0xc] mov r0, #0x7a lsl r0, r0, #0x2 add r0, r6, r0 str r0, [r4, #0x18] add r0, r4, #0x0 mov r1, #0x0 add r0, #0x21 strb r1, [r0, #0x0] ldrh r0, [r7, #0x0] strh r0, [r4, #0x24] add r0, r4, #0x0 ldrb r1, [r7, #0x2] add r0, #0x22 strb r1, [r0, #0x0] add r1, r4, #0x0 ldr r0, [sp, #0x0] add r1, #0x20 strb r0, [r1, #0x0] str r5, [r4, #0x1c] ldrb r1, [r7, #0x2] ldr r0, [r4, #0x0] bl FUN_0206B9B0 add r1, r0, #0x0 mov r0, #0x7e lsl r0, r0, #0x2 ldr r0, [r6, r0] bl FUN_0208560C mov r0, #0x7e lsl r0, r0, #0x2 ldr r0, [r6, r0] bl FUN_0208562C ldr r1, _02036D8C ; =0x020F96DC add r0, r5, #0x0 add r2, r4, #0x0 bl FUN_020373D4 mov r0, #0x7e lsl r0, r0, #0x2 str r4, [r6, r0] ldr r1, _02036D90 ; =FUN_02035E50 add r0, r6, #0x0 bl FUN_02035D04 pop {r3-r7, pc} nop _02036D8C: .word 0x020F96DC _02036D90: .word FUN_02035E50 thumb_func_start FUN_02036D94 FUN_02036D94: ; 0x02036D94 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C add r4, r0, #0x0 mov r0, #0x7e lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02087E14 mov r1, #0x73 lsl r1, r1, #0x2 add r0, r5, #0x0 add r1, r4, r1 bl FUN_02037844 mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] ldr r1, _02036DD0 ; =FUN_020362E4 add r0, r4, #0x0 bl FUN_02035D04 mov r0, #0x0 pop {r3-r5, pc} nop _02036DD0: .word FUN_020362E4 thumb_func_start FUN_02036DD4 FUN_02036DD4: ; 0x02036DD4 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C mov r1, #0x73 add r4, r0, #0x0 lsl r1, r1, #0x2 add r0, r5, #0x0 add r1, r4, r1 bl FUN_02037844 mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] ldr r1, _02036E04 ; =FUN_020362E4 add r0, r4, #0x0 bl FUN_02035D04 mov r0, #0x0 pop {r3-r5, pc} .balign 4 _02036E04: .word FUN_020362E4 thumb_func_start FUN_02036E08 FUN_02036E08: ; 0x02036E08 push {r3-r7, lr} sub sp, #0x48 add r5, r0, #0x0 bl FUN_02046528 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0204652C add r6, r0, #0x0 mov r0, #0x7e lsl r0, r0, #0x2 ldr r5, [r6, r0] bl FUN_0200541C mov r0, #0x3 mov r1, #0x49 lsl r2, r0, #0x10 bl FUN_0201681C ldr r0, [r4, #0xc] bl FUN_0206BB1C ldrb r1, [r5, #0x0] str r0, [sp, #0x20] bl FUN_0206B9B0 str r0, [sp, #0x24] ldrb r0, [r5, #0x1] cmp r0, #0x0 ldr r0, [r4, #0xc] bne _02036E9E bl LoadPlayerDataAddress str r0, [sp, #0x28] ldr r0, [r4, #0xc] bl FUN_02079C70 add r7, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_02024DA0 str r0, [sp, #0x2c] ldr r0, [r4, #0xc] bl FUN_0206F158 str r0, [sp, #0x30] ldr r0, [r4, #0xc] bl FUN_02029FC8 str r0, [sp, #0x34] ldr r0, [r4, #0xc] bl FUN_0204C1A8 ldr r1, [sp, #0x2c] str r7, [sp, #0x0] str r1, [sp, #0x4] ldr r1, [sp, #0x30] ldr r3, [sp, #0x28] str r1, [sp, #0x8] ldr r1, [sp, #0x34] str r1, [sp, #0xc] str r0, [sp, #0x10] ldr r0, [r5, #0x8] ldr r1, [sp, #0x24] str r0, [sp, #0x14] mov r0, #0x1 str r0, [sp, #0x18] mov r0, #0x49 str r0, [sp, #0x1c] ldrh r2, [r5, #0x4] ldr r0, [sp, #0x20] bl FUN_0206C700 b _02036EF2 _02036E9E: bl LoadPlayerDataAddress str r0, [sp, #0x38] ldr r0, [r4, #0xc] bl FUN_02079C70 add r7, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_02024DA0 str r0, [sp, #0x3c] ldr r0, [r4, #0xc] bl FUN_0206F158 str r0, [sp, #0x40] ldr r0, [r4, #0xc] bl FUN_02029FC8 str r0, [sp, #0x44] ldr r0, [r4, #0xc] bl FUN_0204C1A8 ldr r1, [sp, #0x3c] str r7, [sp, #0x0] str r1, [sp, #0x4] ldr r1, [sp, #0x40] ldr r3, [sp, #0x38] str r1, [sp, #0x8] ldr r1, [sp, #0x44] str r1, [sp, #0xc] str r0, [sp, #0x10] ldr r0, [r5, #0x8] ldr r1, [sp, #0x24] str r0, [sp, #0x14] mov r0, #0x0 str r0, [sp, #0x18] mov r0, #0x49 str r0, [sp, #0x1c] ldrh r2, [r5, #0x4] ldr r0, [sp, #0x20] bl FUN_0206C700 _02036EF2: add r4, r0, #0x0 mov r0, #0xb mov r1, #0x4 bl FUN_02016998 ldrb r1, [r5, #0x0] str r1, [r0, #0x0] mov r1, #0x7f lsl r1, r1, #0x2 str r0, [r6, r1] sub r0, r1, #0x4 ldr r0, [r6, r0] bl FUN_02016A18 mov r0, #0x7e lsl r0, r0, #0x2 str r4, [r6, r0] mov r0, #0x7 strh r0, [r6, #0x2a] add sp, #0x48 pop {r3-r7, pc} thumb_func_start FUN_02036F1C FUN_02036F1C: ; 0x02036F1C push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C add r4, r0, #0x0 mov r0, #0x7e lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_0206C91C cmp r0, #0x1 bne _02036F98 mov r0, #0x7e lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_0206C92C mov r0, #0x49 bl FUN_020168D0 ldr r0, _02036F9C ; =0x00000475 mov r1, #0x0 bl FUN_02005350 mov r0, #0x0 bl FUN_0200415C ldr r1, [r5, #0x1c] add r0, r5, #0x0 ldr r1, [r1, #0x0] bl FUN_0204ADBC mov r1, #0x73 lsl r1, r1, #0x2 add r0, r5, #0x0 add r1, r4, r1 bl FUN_02037844 mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] ldr r0, [r4, r1] add r1, r1, #0x4 ldr r1, [r4, r1] ldr r1, [r1, #0x0] lsl r1, r1, #0x18 lsr r1, r1, #0x18 bl FUN_0206E358 mov r0, #0x7f lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02016A18 ldr r1, _02036FA0 ; =FUN_020362E4 add r0, r4, #0x0 bl FUN_02035D04 _02036F98: pop {r3-r5, pc} nop _02036F9C: .word 0x00000475 _02036FA0: .word FUN_020362E4 thumb_func_start FUN_02036FA4 FUN_02036FA4: ; 0x02036FA4 push {r3-r7, lr} add r6, r0, #0x0 ldr r0, [r6, #0x38] add r4, r1, #0x0 add r5, r2, #0x0 bl FUN_020552F8 add r7, r0, #0x0 ldr r0, [r6, #0x38] bl FUN_02055320 str r0, [r4, #0x0] ldr r0, [r6, #0x38] bl FUN_0205532C str r0, [r5, #0x0] cmp r7, #0x3 bhi _02036FFA add r0, r7, r7 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02036FD4: ; jump table (using 16-bit offset) .short _02036FDC - _02036FD4 - 2; case 0 .short _02036FE4 - _02036FD4 - 2; case 1 .short _02036FEC - _02036FD4 - 2; case 2 .short _02036FF4 - _02036FD4 - 2; case 3 _02036FDC: ldr r0, [r5, #0x0] sub r0, r0, #0x1 str r0, [r5, #0x0] b _02036FFA _02036FE4: ldr r0, [r5, #0x0] add r0, r0, #0x1 str r0, [r5, #0x0] b _02036FFA _02036FEC: ldr r0, [r4, #0x0] sub r0, r0, #0x1 str r0, [r4, #0x0] b _02036FFA _02036FF4: ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] _02036FFA: add r0, r7, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02037000 FUN_02037000: ; 0x02037000 push {r3-r5, lr} add r5, r1, #0x0 bl FUN_020553A0 bl FUN_02058BE4 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02058BE4 cmp r4, r0 bne _0203701C mov r0, #0x1 b _0203701E _0203701C: mov r0, #0x0 _0203701E: lsl r0, r0, #0x18 lsr r0, r0, #0x18 pop {r3-r5, pc} thumb_func_start FUN_02037024 FUN_02037024: ; 0x02037024 push {r4-r6, lr} sub sp, #0x8 add r6, r1, #0x0 add r1, sp, #0x4 add r2, sp, #0x0 add r5, r0, #0x0 bl FUN_02036FA4 add r4, r0, #0x0 ldr r1, [sp, #0x4] ldr r2, [sp, #0x0] add r0, r5, #0x0 bl FUN_0204A6E0 bl FUN_020547A4 cmp r0, #0x1 bne _0203707E cmp r4, #0x3 bhi _0203707E add r0, r4, r4 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02037058: ; jump table (using 16-bit offset) .short _02037060 - _02037058 - 2; case 0 .short _02037068 - _02037058 - 2; case 1 .short _02037070 - _02037058 - 2; case 2 .short _02037078 - _02037058 - 2; case 3 _02037060: ldr r0, [sp, #0x0] sub r0, r0, #0x1 str r0, [sp, #0x0] b _0203707E _02037068: ldr r0, [sp, #0x0] add r0, r0, #0x1 str r0, [sp, #0x0] b _0203707E _02037070: ldr r0, [sp, #0x4] sub r0, r0, #0x1 str r0, [sp, #0x4] b _0203707E _02037078: ldr r0, [sp, #0x4] add r0, r0, #0x1 str r0, [sp, #0x4] _0203707E: ldr r0, [r5, #0x34] ldr r1, [sp, #0x4] ldr r2, [sp, #0x0] bl FUN_02058D74 str r0, [r6, #0x0] add sp, #0x8 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02037090 FUN_02037090: ; 0x02037090 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 bl FUN_02037024 ldr r0, [r4, #0x0] cmp r0, #0x0 beq _020370B8 bl FUN_020588D4 cmp r0, #0x1 bne _020370B8 ldr r0, [r5, #0x38] ldr r1, [r4, #0x0] bl FUN_02037000 cmp r0, #0x1 bne _020370B8 mov r0, #0x1 pop {r3-r5, pc} _020370B8: mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_020370BC FUN_020370BC: ; 0x020370BC push {r3-r7, lr} sub sp, #0x10 str r1, [sp, #0x0] str r2, [sp, #0x4] add r1, sp, #0xc add r2, sp, #0x8 add r6, r0, #0x0 bl FUN_02036FA4 ldr r0, [sp, #0x4] mov r7, #0x0 cmp r0, #0x0 ble _02037130 ldr r4, [sp, #0x0] add r5, r4, #0x0 _020370DA: ldr r1, [sp, #0xc] ldr r0, [r4, #0x4] cmp r1, r0 bne _02037124 ldr r1, [sp, #0x8] ldr r0, [r4, #0x8] cmp r1, r0 bne _02037124 ldrh r0, [r4, #0x2] cmp r0, #0x2 bne _0203710A add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_0203713C cmp r0, #0x1 bne _02037124 mov r0, #0x14 add r1, r7, #0x0 mul r1, r0 ldr r0, [sp, #0x0] add sp, #0x10 ldrh r0, [r0, r1] pop {r3-r7, pc} _0203710A: add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_02037168 cmp r0, #0x1 bne _02037124 mov r0, #0x14 add r1, r7, #0x0 mul r1, r0 ldr r0, [sp, #0x0] add sp, #0x10 ldrh r0, [r0, r1] pop {r3-r7, pc} _02037124: ldr r0, [sp, #0x4] add r7, r7, #0x1 add r4, #0x14 add r5, #0x14 cmp r7, r0 blt _020370DA _02037130: ldr r0, _02037138 ; =0x0000FFFF add sp, #0x10 pop {r3-r7, pc} nop _02037138: .word 0x0000FFFF thumb_func_start FUN_0203713C FUN_0203713C: ; 0x0203713C push {r4, lr} add r4, r0, #0x0 ldrh r0, [r1, #0x2] cmp r0, #0x2 beq _0203714A mov r0, #0x0 pop {r4, pc} _0203714A: ldrh r0, [r1, #0x0] bl FUN_02039694 add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_02039528 cmp r0, #0x1 beq _02037160 mov r0, #0x1 b _02037162 _02037160: mov r0, #0x0 _02037162: lsl r0, r0, #0x18 lsr r0, r0, #0x18 pop {r4, pc} thumb_func_start FUN_02037168 FUN_02037168: ; 0x02037168 push {r4, lr} add r4, r1, #0x0 ldrh r1, [r4, #0x10] cmp r1, #0x4 bne _02037176 mov r0, #0x1 pop {r4, pc} _02037176: ldr r0, [r0, #0x38] bl FUN_020552F8 cmp r0, #0x3 bhi _020371CC add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0203718C: ; jump table (using 16-bit offset) .short _02037194 - _0203718C - 2; case 0 .short _020371A2 - _0203718C - 2; case 1 .short _020371B0 - _0203718C - 2; case 2 .short _020371BE - _0203718C - 2; case 3 _02037194: ldrh r0, [r4, #0x10] cmp r0, #0x0 beq _0203719E cmp r0, #0x6 bne _020371CC _0203719E: mov r0, #0x1 pop {r4, pc} _020371A2: ldrh r0, [r4, #0x10] cmp r0, #0x3 beq _020371AC cmp r0, #0x6 bne _020371CC _020371AC: mov r0, #0x1 pop {r4, pc} _020371B0: ldrh r0, [r4, #0x10] cmp r0, #0x2 beq _020371BA cmp r0, #0x5 bne _020371CC _020371BA: mov r0, #0x1 pop {r4, pc} _020371BE: ldrh r0, [r4, #0x10] cmp r0, #0x1 beq _020371C8 cmp r0, #0x5 bne _020371CC _020371C8: mov r0, #0x1 pop {r4, pc} _020371CC: mov r0, #0x0 pop {r4, pc} thumb_func_start FUN_020371D0 FUN_020371D0: ; 0x020371D0 push {r4-r6, lr} sub sp, #0x8 add r5, r0, #0x0 ldr r0, [r5, #0x38] add r6, r1, #0x0 add r4, r2, #0x0 bl FUN_020552F8 cmp r0, #0x0 beq _020371EA add sp, #0x8 ldr r0, _0203722C ; =0x0000FFFF pop {r4-r6, pc} _020371EA: add r0, r5, #0x0 add r1, sp, #0x4 add r2, sp, #0x0 bl FUN_02036FA4 mov r0, #0x0 cmp r4, #0x0 ble _02037224 ldr r2, [sp, #0x4] ldr r3, [sp, #0x0] add r1, r6, #0x0 _02037200: ldr r5, [r1, #0x4] cmp r2, r5 bne _0203721C ldr r5, [r1, #0x8] cmp r3, r5 bne _0203721C ldrh r5, [r1, #0x2] cmp r5, #0x1 bne _0203721C mov r1, #0x14 mul r1, r0 add sp, #0x8 ldrh r0, [r6, r1] pop {r4-r6, pc} _0203721C: add r0, r0, #0x1 add r1, #0x14 cmp r0, r4 blt _02037200 _02037224: ldr r0, _0203722C ; =0x0000FFFF add sp, #0x8 pop {r4-r6, pc} nop _0203722C: .word 0x0000FFFF thumb_func_start FUN_02037230 FUN_02037230: ; 0x02037230 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0x38] add r4, r1, #0x0 bl FUN_020552F8 cmp r0, #0x0 beq _02037244 mov r0, #0x0 pop {r3-r5, pc} _02037244: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02037090 cmp r0, #0x1 bne _02037260 ldr r0, [r4, #0x0] bl FUN_02058458 sub r0, #0x5b cmp r0, #0x5 bhi _02037260 mov r0, #0x1 pop {r3-r5, pc} _02037260: mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02037264 FUN_02037264: ; 0x02037264 push {r4-r7, lr} sub sp, #0xc str r0, [sp, #0x0] ldr r0, [r0, #0x38] str r1, [sp, #0x4] str r2, [sp, #0x8] bl FUN_02055320 add r6, r0, #0x0 ldr r0, [sp, #0x0] ldr r0, [r0, #0x38] bl FUN_0205532C add r4, r0, #0x0 ldr r0, [sp, #0x8] mov r7, #0x0 cmp r0, #0x0 ble _020372C8 ldr r5, [sp, #0x4] _0203728A: ldrh r1, [r5, #0x2] cmp r6, r1 blt _020372BE ldrh r0, [r5, #0x6] add r0, r1, r0 cmp r6, r0 bge _020372BE ldrh r1, [r5, #0x4] cmp r4, r1 blt _020372BE ldrh r0, [r5, #0x8] add r0, r1, r0 cmp r4, r0 bge _020372BE ldrh r1, [r5, #0xe] ldr r0, [sp, #0x0] bl FUN_020394F0 ldrh r1, [r5, #0xc] cmp r1, r0 bne _020372BE ldr r0, [sp, #0x4] lsl r1, r7, #0x4 add sp, #0xc ldrh r0, [r0, r1] pop {r4-r7, pc} _020372BE: ldr r0, [sp, #0x8] add r7, r7, #0x1 add r5, #0x10 cmp r7, r0 blt _0203728A _020372C8: ldr r0, _020372D0 ; =0x0000FFFF add sp, #0xc pop {r4-r7, pc} nop _020372D0: .word 0x0000FFFF thumb_func_start FUN_020372D4 FUN_020372D4: ; 0x020372D4 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_0200628C add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02037400 ldr r1, _02037300 ; =0x021C5A08 str r0, [r1, #0x0] ldr r1, [r4, #0x4] cmp r1, #0x0 beq _020372F4 bl FUN_02048FC8 b _020372F8 _020372F4: bl FUN_02048EC8 _020372F8: mov r0, #0x0 str r0, [r4, #0x4] mov r0, #0x1 pop {r3-r5, pc} .balign 4 _02037300: .word 0x021C5A08 thumb_func_start FUN_02037304 FUN_02037304: ; 0x02037304 push {r3, lr} bl FUN_02037400 ldr r1, _02037318 ; =0x021C5A08 str r0, [r1, #0x0] bl FUN_02048D90 mov r0, #0x1 pop {r3, pc} nop _02037318: .word 0x021C5A08 thumb_func_start FUN_0203731C FUN_0203731C: ; 0x0203731C push {r3, lr} bl FUN_02006278 bl FUN_02037524 cmp r0, #0x0 beq _0203732E mov r0, #0x1 pop {r3, pc} _0203732E: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_02037334 FUN_02037334: ; 0x02037334 push {r3, lr} bl FUN_020374B0 ldr r0, _02037348 ; =0x0000003F ldr r1, _0203734C ; =0x021DBAB8 bl FUN_02000E7C mov r0, #0x1 pop {r3, pc} nop _02037348: .word 0x0000003F _0203734C: .word 0x021DBAB8 thumb_func_start FUN_02037350 FUN_02037350: ; 0x02037350 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] ldr r0, [r0, #0x4] cmp r0, #0x0 beq _02037360 bl ErrorHandling _02037360: ldr r0, [r4, #0x0] ldr r0, [r0, #0x0] cmp r0, #0x0 beq _0203736C bl ErrorHandling _0203736C: ldr r0, _0203738C ; =0x00000005 mov r1, #0x2 bl FUN_02005FDC mov r1, #0x0 str r1, [r4, #0x64] ldr r0, [r4, #0x0] mov r2, #0xb str r1, [r0, #0x8] ldr r0, _02037390 ; =0x021F64C8 add r1, r4, #0x0 bl FUN_02006234 ldr r1, [r4, #0x0] str r0, [r1, #0x0] pop {r4, pc} .balign 4 _0203738C: .word 0x00000005 _02037390: .word 0x021F64C8 thumb_func_start FUN_02037394 FUN_02037394: ; 0x02037394 mov r1, #0x0 str r1, [r0, #0x64] bx lr .balign 4 thumb_func_start FUN_0203739C FUN_0203739C: ; 0x0203739C ldr r0, [r0, #0x0] ldr r0, [r0, #0x0] cmp r0, #0x0 beq _020373A8 mov r0, #0x1 bx lr _020373A8: mov r0, #0x0 bx lr thumb_func_start FUN_020373AC FUN_020373AC: ; 0x020373AC ldr r1, [r0, #0x0] ldr r1, [r1, #0x0] cmp r1, #0x0 beq _020373BE ldr r0, [r0, #0x64] cmp r0, #0x0 beq _020373BE mov r0, #0x1 bx lr _020373BE: mov r0, #0x0 bx lr .balign 4 thumb_func_start FUN_020373C4 FUN_020373C4: ; 0x020373C4 ldr r0, [r0, #0x0] ldr r0, [r0, #0x4] cmp r0, #0x0 beq _020373D0 mov r0, #0x1 bx lr _020373D0: mov r0, #0x0 bx lr thumb_func_start FUN_020373D4 FUN_020373D4: ; 0x020373D4 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] add r4, r1, #0x0 ldr r0, [r0, #0x4] add r6, r2, #0x0 cmp r0, #0x0 beq _020373E8 bl ErrorHandling _020373E8: add r0, r5, #0x0 bl FUN_02037394 add r0, r4, #0x0 add r1, r6, #0x0 mov r2, #0xb bl FUN_02006234 ldr r1, [r5, #0x0] str r0, [r1, #0x4] pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02037400 FUN_02037400: ; 0x02037400 push {r3-r5, lr} mov r2, #0x7 add r5, r0, #0x0 mov r0, #0x3 mov r1, #0xb lsl r2, r2, #0xe bl FUN_0201681C mov r1, #0x20 mov r0, #0x3 lsl r2, r1, #0x9 bl FUN_0201681C mov r2, #0x3 mov r0, #0x0 mov r1, #0x5b lsl r2, r2, #0x8 bl FUN_0201681C add r0, r5, #0x0 mov r1, #0xb8 mov r2, #0xb bl FUN_02006268 mov r1, #0x0 mov r2, #0xb8 add r4, r0, #0x0 blx MI_CpuFill8 mov r0, #0xb mov r1, #0x10 bl FUN_02016998 str r0, [r4, #0x0] mov r1, #0x0 str r1, [r0, #0x0] ldr r0, [r4, #0x0] str r1, [r0, #0x4] ldr r0, [r4, #0x0] str r1, [r0, #0x8] ldr r0, [r4, #0x0] str r1, [r0, #0xc] add r0, r5, #0x0 bl FUN_0200628C ldr r0, [r0, #0x8] str r0, [r4, #0xc] mov r0, #0x0 str r0, [r4, #0x10] ldr r0, [r4, #0xc] bl FUN_02034E30 bl FUN_02034DC0 str r0, [r4, #0x1c] bl FUN_02034494 str r0, [r4, #0x28] add r0, r4, #0x0 mov r1, #0xb bl FUN_02034A28 mov r0, #0xb bl FUN_0206F164 add r1, r4, #0x0 add r1, #0x94 str r0, [r1, #0x0] mov r0, #0xb bl FUN_0205DD18 add r1, r4, #0x0 add r1, #0x90 str r0, [r1, #0x0] add r0, r4, #0x0 add r0, #0x90 ldr r0, [r0, #0x0] bl FUN_0205DD40 mov r0, #0xb bl FUN_0208A300 add r1, r4, #0x0 add r1, #0xb0 str r0, [r1, #0x0] add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020374B0 FUN_020374B0: ; 0x020374B0 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02006278 add r4, r0, #0x0 ldr r0, [r4, #0x28] bl FUN_020344D0 add r0, r4, #0x0 bl FUN_02034A48 add r0, r4, #0x0 add r0, #0x94 ldr r0, [r0, #0x0] bl FUN_02016A18 add r0, r4, #0x0 add r0, #0x90 ldr r0, [r0, #0x0] bl FUN_0205DD38 add r0, r4, #0x0 add r0, #0xb0 ldr r0, [r0, #0x0] bl FUN_0208A320 ldr r0, [r4, #0x0] bl FUN_02016A18 add r0, r5, #0x0 bl FUN_0200627C mov r0, #0x5b bl FUN_020168D0 mov r0, #0xb bl FUN_020168D0 mov r0, #0x20 bl FUN_020168D0 pop {r3-r5, pc} thumb_func_start FUN_02037504 FUN_02037504: ; 0x02037504 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x0 beq _02037520 bl FUN_02006290 cmp r0, #0x0 beq _02037520 ldr r0, [r4, #0x0] bl FUN_02006260 mov r0, #0x0 str r0, [r4, #0x0] _02037520: pop {r4, pc} .balign 4 thumb_func_start FUN_02037524 FUN_02037524: ; 0x02037524 push {r4, lr} add r4, r0, #0x0 bl FUN_02037594 add r0, r4, #0x0 bl FUN_02046420 cmp r0, #0x1 bne _02037546 ldr r0, [r4, #0x4] cmp r0, #0x0 beq _02037546 mov r1, #0x0 add r0, r4, #0x0 add r2, r1, #0x0 bl FUN_021EFA9C _02037546: ldr r0, [r4, #0x0] ldr r1, [r0, #0x0] cmp r1, #0x0 beq _02037562 bl FUN_02037504 ldr r0, [r4, #0x0] ldr r0, [r0, #0x0] cmp r0, #0x0 bne _0203756E ldr r0, _02037590 ; =0x00000005 bl FUN_02005F60 b _0203756E _02037562: ldr r1, [r0, #0x4] cmp r1, #0x0 beq _0203756E add r0, r0, #0x4 bl FUN_02037504 _0203756E: ldr r1, [r4, #0x0] ldr r0, [r1, #0xc] cmp r0, #0x0 beq _0203758C ldr r0, [r4, #0x10] cmp r0, #0x0 bne _0203758C ldr r0, [r1, #0x0] cmp r0, #0x0 bne _0203758C ldr r0, [r1, #0x4] cmp r0, #0x0 bne _0203758C mov r0, #0x1 pop {r4, pc} _0203758C: mov r0, #0x0 pop {r4, pc} .balign 4 _02037590: .word 0x00000005 thumb_func_start FUN_02037594 FUN_02037594: ; 0x02037594 push {r3-r5, lr} sub sp, #0x10 add r4, r0, #0x0 ldr r1, [r4, #0x0] mov r5, #0x0 ldr r1, [r1, #0x8] cmp r1, #0x0 bne _020375B4 ldr r1, [r4, #0x64] cmp r1, #0x0 beq _020375B4 bl FUN_0204646C cmp r0, #0x0 bne _020375B4 mov r5, #0x1 _020375B4: cmp r5, #0x0 beq _020375D4 ldr r0, [r4, #0x38] bl FUN_02055A38 ldr r3, _02037758 ; =0x021C48B8 add r0, sp, #0x8 ldr r2, [r3, #0x48] ldr r3, [r3, #0x44] lsl r2, r2, #0x10 lsl r3, r3, #0x10 add r1, r4, #0x0 lsr r2, r2, #0x10 lsr r3, r3, #0x10 bl FUN_021D8164 _020375D4: ldr r0, [r4, #0x1c] ldr r2, [r4, #0x6c] ldr r1, [r0, #0x0] ldr r0, _0203775C ; =0x00000146 cmp r1, r0 bne _020375E2 mov r2, #0x0 _020375E2: cmp r2, #0x4 bhi _020376E2 add r0, r2, r2 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _020375F2: ; jump table (using 16-bit offset) .short _020376E2 - _020375F2 - 2; case 0 .short _020375FC - _020375F2 - 2; case 1 .short _02037646 - _020375F2 - 2; case 2 .short _0203761C - _020375F2 - 2; case 3 .short _02037672 - _020375F2 - 2; case 4 _020375FC: cmp r5, #0x0 beq _02037610 bl FUN_0204E2FC cmp r0, #0x0 beq _02037610 add r0, sp, #0x8 add r1, r4, #0x0 bl FUN_021D85FC _02037610: add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_0204D6C0 add sp, #0x10 pop {r3-r5, pc} _0203761C: cmp r5, #0x0 beq _0203763A bl FUN_0204E2FC cmp r0, #0x0 beq _02037638 add r0, sp, #0x8 add r1, r4, #0x0 bl FUN_021D865C cmp r0, #0x1 bne _0203763A mov r5, #0x0 b _0203763A _02037638: mov r5, #0x0 _0203763A: add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_0204D6C0 add sp, #0x10 pop {r3-r5, pc} _02037646: cmp r5, #0x0 bne _0203764C b _02037754 _0203764C: add r0, sp, #0x8 add r1, r4, #0x0 bl FUN_021D8758 cmp r0, #0x1 beq _02037754 add r3, sp, #0x8 ldrh r0, [r3, #0x6] mov r2, #0x0 str r0, [sp, #0x0] str r2, [sp, #0x4] ldrh r3, [r3, #0x4] ldr r0, [r4, #0x38] ldr r1, [r4, #0x24] sub r2, r2, #0x1 bl FUN_020557F4 add sp, #0x10 pop {r3-r5, pc} _02037672: cmp r5, #0x0 beq _02037754 add r0, sp, #0x8 add r1, r4, #0x0 bl FUN_021D8820 cmp r0, #0x1 bne _020376A6 ldr r0, [r4, #0x4] ldr r0, [r0, #0x8] bl FUN_021E32F0 add r0, r4, #0x0 mov r1, #0x4 bl FUN_021E81BC ldr r0, [r4, #0x38] bl FUN_021E7138 add r0, r4, #0x0 mov r1, #0x0 mov r2, #0x1 bl FUN_021EFA9C add sp, #0x10 pop {r3-r5, pc} _020376A6: ldr r0, _02037758 ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #0x1 tst r0, r1 beq _020376B8 ldr r0, [r4, #0x4] ldr r0, [r0, #0x8] bl FUN_021E32F0 _020376B8: mov r5, #0x0 bl FUN_02037790 cmp r0, #0x0 beq _020376C8 bl FUN_02252534 add r5, r0, #0x0 _020376C8: add r3, sp, #0x8 ldrh r0, [r3, #0x6] mov r2, #0x0 mvn r2, r2 str r0, [sp, #0x0] str r5, [sp, #0x4] ldrh r3, [r3, #0x4] ldr r0, [r4, #0x38] ldr r1, [r4, #0x24] bl FUN_020557F4 add sp, #0x10 pop {r3-r5, pc} _020376E2: cmp r5, #0x0 beq _02037754 add r0, sp, #0x8 add r1, r4, #0x0 bl FUN_021D8320 cmp r0, #0x1 bne _0203771C ldr r0, [r4, #0x4] ldr r0, [r0, #0x8] bl FUN_021E32F0 add r0, r4, #0x0 mov r1, #0x4 bl FUN_021E81BC ldr r0, [r4, #0x38] bl FUN_02055B14 ldr r0, [r4, #0x38] bl FUN_021E7138 add r0, r4, #0x0 mov r1, #0x0 mov r2, #0x1 bl FUN_021EFA9C add sp, #0x10 pop {r3-r5, pc} _0203771C: ldr r0, _02037758 ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #0x1 tst r0, r1 beq _0203772E ldr r0, [r4, #0x4] ldr r0, [r0, #0x8] bl FUN_021E32F0 _0203772E: mov r5, #0x0 bl FUN_02037790 cmp r0, #0x0 beq _0203773E bl FUN_02252534 add r5, r0, #0x0 _0203773E: add r3, sp, #0x8 ldrh r0, [r3, #0x6] mov r2, #0x0 mvn r2, r2 str r0, [sp, #0x0] str r5, [sp, #0x4] ldrh r3, [r3, #0x4] ldr r0, [r4, #0x38] ldr r1, [r4, #0x24] bl FUN_020557F4 _02037754: add sp, #0x10 pop {r3-r5, pc} .balign 4 _02037758: .word 0x021C48B8 _0203775C: .word 0x00000146 thumb_func_start FUN_02037760 FUN_02037760: ; 0x02037760 ldr r0, _02037770 ; =0x021C5A08 ldr r3, _02037774 ; =FUN_02030FC8 ldr r0, [r0, #0x0] mov r1, #0x1 ldr r0, [r0, #0x0] str r1, [r0, #0x8] bx r3 nop _02037770: .word 0x021C5A08 _02037774: .word FUN_02030FC8 thumb_func_start FUN_02037778 FUN_02037778: ; 0x02037778 ldr r0, _02037788 ; =0x021C5A08 ldr r3, _0203778C ; =FUN_02030FA8 ldr r0, [r0, #0x0] mov r1, #0x0 ldr r0, [r0, #0x0] str r1, [r0, #0x8] bx r3 nop _02037788: .word 0x021C5A08 _0203778C: .word FUN_02030FA8 thumb_func_start FUN_02037790 FUN_02037790: ; 0x02037790 ldr r0, _020377A4 ; =0x021C5A08 ldr r0, [r0, #0x0] ldr r0, [r0, #0x4] cmp r0, #0x0 bne _0203779E mov r0, #0x0 bx lr _0203779E: ldr r0, [r0, #0x14] bx lr nop _020377A4: .word 0x021C5A08 thumb_func_start FUN_020377A8 FUN_020377A8: ; 0x020377A8 ldr r0, [r0, #0x8] bx lr thumb_func_start FUN_020377AC FUN_020377AC: ; 0x020377AC ldr r0, [r0, #0xc] bx lr thumb_func_start FUN_020377B0 FUN_020377B0: ; 0x020377B0 ldr r2, _020377C4 ; =0x020F2B9C add r3, r0, #0x0 ldmia r2!, {r0-r1} stmia r3!, {r0-r1} ldmia r2!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r2, #0x0] str r0, [r3, #0x0] bx lr nop _020377C4: .word 0x020F2B9C thumb_func_start FUN_020377C8 FUN_020377C8: ; 0x020377C8 ldr r2, _020377DC ; =0x020F2BB0 add r3, r0, #0x0 ldmia r2!, {r0-r1} stmia r3!, {r0-r1} ldmia r2!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r2, #0x0] str r0, [r3, #0x0] bx lr nop _020377DC: .word 0x020F2BB0 thumb_func_start FUN_020377E0 FUN_020377E0: ; 0x020377E0 push {r3, lr} bl FUN_02034E30 bl FUN_02034DC0 bl FUN_020377B0 pop {r3, pc} thumb_func_start FUN_020377F0 FUN_020377F0: ; 0x020377F0 mov r0, #0x1 bx lr thumb_func_start FUN_020377F4 FUN_020377F4: ; 0x020377F4 push {r3, lr} bl FUN_0222D5C0 cmp r0, #0x0 beq _02037802 mov r0, #0x1 pop {r3, pc} _02037802: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_02037808 FUN_02037808: ; 0x02037808 mov r0, #0x1 bx lr thumb_func_start FUN_0203780C FUN_0203780C: ; 0x0203780C ldr r3, _02037814 ; =FUN_020373D4 add r2, r1, #0x0 ldr r1, _02037818 ; =0x020F2D94 bx r3 .balign 4 _02037814: .word FUN_020373D4 _02037818: .word 0x020F2D94 thumb_func_start FUN_0203781C FUN_0203781C: ; 0x0203781C push {r4-r6, lr} sub sp, #0x10 ldr r5, _02037840 ; =0x020F2D74 add r4, sp, #0x0 add r6, r0, #0x0 add r2, r1, #0x0 add r3, r4, #0x0 ldmia r5!, {r0-r1} stmia r4!, {r0-r1} ldmia r5!, {r0-r1} stmia r4!, {r0-r1} add r0, r6, #0x0 add r1, r3, #0x0 bl FUN_020373D4 add sp, #0x10 pop {r4-r6, pc} nop _02037840: .word 0x020F2D74 thumb_func_start FUN_02037844 FUN_02037844: ; 0x02037844 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] add r6, r1, #0x0 bl FUN_0206F158 ldr r1, _02037898 ; =0x020F2BDC mov r2, #0xb bl FUN_0206EFEC add r3, r5, #0x0 add r3, #0x94 ldr r1, [r5, #0xc] ldr r3, [r3, #0x0] mov r2, #0x0 add r4, r0, #0x0 bl FUN_0206E314 ldr r1, [r5, #0x6c] add r0, r4, #0x0 lsl r1, r1, #0x10 lsr r1, r1, #0x10 bl FUN_0206E360 ldr r0, [r5, #0x38] bl FUN_020553C4 cmp r0, #0x1 bne _02037884 add r0, r4, #0x0 bl FUN_0206E340 _02037884: add r0, r4, #0x0 add r1, r6, #0x0 bl FUN_0206E354 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0203781C add r0, r4, #0x0 pop {r4-r6, pc} .balign 4 _02037898: .word 0x020F2BDC thumb_func_start FUN_0203789C FUN_0203789C: ; 0x0203789C push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] add r4, r1, #0x0 bl FUN_0206F158 add r6, r0, #0x0 cmp r4, #0x0 beq _020378B4 cmp r4, #0x1 beq _020378BC b _020378C4 _020378B4: ldr r1, _020378F0 ; =0x020F2BC8 ldr r0, _020378F4 ; =0x02105DB8 str r1, [r0, #0x0] b _020378C8 _020378BC: ldr r1, _020378F8 ; =0x020F2BC4 ldr r0, _020378F4 ; =0x02105DB8 str r1, [r0, #0x0] b _020378C8 _020378C4: bl ErrorHandling _020378C8: ldr r1, _020378F4 ; =0x02105DB8 add r0, r6, #0x0 ldr r1, [r1, #0x0] mov r2, #0x20 bl FUN_0206EFEC add r3, r5, #0x0 add r3, #0x94 ldr r1, [r5, #0xc] ldr r3, [r3, #0x0] add r4, r0, #0x0 mov r2, #0x3 bl FUN_0206E314 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0203781C add r0, r4, #0x0 pop {r4-r6, pc} .balign 4 _020378F0: .word 0x020F2BC8 _020378F4: .word 0x02105DB8 _020378F8: .word 0x020F2BC4 thumb_func_start FUN_020378FC FUN_020378FC: ; 0x020378FC push {r3-r5, lr} add r5, r0, #0x0 bl FUN_0206E37C add r4, r0, #0x0 beq _02037916 add r0, r5, #0x0 bl FUN_0206E384 cmp r0, #0x5 bne _02037916 bl ErrorHandling _02037916: add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203791C FUN_0203791C: ; 0x0203791C push {r4-r6, lr} sub sp, #0x10 ldr r5, _02037940 ; =0x020F2D44 add r4, sp, #0x0 add r6, r0, #0x0 add r2, r1, #0x0 add r3, r4, #0x0 ldmia r5!, {r0-r1} stmia r4!, {r0-r1} ldmia r5!, {r0-r1} stmia r4!, {r0-r1} add r0, r6, #0x0 add r1, r3, #0x0 bl FUN_020373D4 add sp, #0x10 pop {r4-r6, pc} nop _02037940: .word 0x020F2D44 thumb_func_start FUN_02037944 FUN_02037944: ; 0x02037944 push {r3-r5, lr} sub sp, #0x10 ldr r4, _02037968 ; =0x020F2D24 add r3, sp, #0x0 add r5, r0, #0x0 add r2, r3, #0x0 ldmia r4!, {r0-r1} stmia r3!, {r0-r1} ldmia r4!, {r0-r1} stmia r3!, {r0-r1} add r1, r2, #0x0 ldr r2, [r5, #0xc] add r0, r5, #0x0 bl FUN_020373D4 add sp, #0x10 pop {r3-r5, pc} nop _02037968: .word 0x020F2D24 thumb_func_start FUN_0203796C FUN_0203796C: ; 0x0203796C ldr r3, _02037974 ; =FUN_020373D4 add r2, r1, #0x0 ldr r1, _02037978 ; =0x020FA6E8 bx r3 .balign 4 _02037974: .word FUN_020373D4 _02037978: .word 0x020FA6E8 thumb_func_start FUN_0203797C FUN_0203797C: ; 0x0203797C push {r3-r7, lr} add r5, r1, #0x0 mov r1, #0x40 add r6, r2, #0x0 add r7, r3, #0x0 bl FUN_02016998 add r4, r0, #0x0 mov r0, #0x0 add r1, r4, #0x0 mov r2, #0x40 blx MIi_CpuClearFast ldr r0, [r5, #0xc] bl FUN_0206BB1C str r0, [r4, #0x0] ldr r0, [r5, #0xc] bl FUN_0206F158 str r0, [r4, #0x4] ldr r0, [r5, #0xc] bl FUN_02025838 str r0, [r4, #0x8] ldr r0, [r5, #0xc] bl LoadPlayerDataAddress str r0, [r4, #0xc] add r0, r4, #0x0 add r0, #0x21 strb r6, [r0, #0x0] add r0, r4, #0x0 add r0, #0x20 strb r7, [r0, #0x0] str r5, [r4, #0x1c] add r0, r4, #0x0 pop {r3-r7, pc} thumb_func_start FUN_020379C8 FUN_020379C8: ; 0x020379C8 push {r3-r7, lr} add r5, r0, #0x0 add r7, r2, #0x0 mov r2, #0x0 add r6, r1, #0x0 mov r0, #0xb add r1, r5, #0x0 add r3, r2, #0x0 bl FUN_0203797C add r4, r0, #0x0 str r6, [r4, #0x18] add r0, #0x22 strb r7, [r0, #0x0] ldr r1, _020379F4 ; =0x020F96DC add r0, r5, #0x0 add r2, r4, #0x0 bl FUN_020373D4 add r0, r4, #0x0 pop {r3-r7, pc} nop _020379F4: .word 0x020F96DC thumb_func_start FUN_020379F8 FUN_020379F8: ; 0x020379F8 push {r3-r5, lr} mov r0, #0xb mov r2, #0x0 mov r3, #0x3 add r5, r1, #0x0 bl FUN_0203797C add r4, r0, #0x0 ldr r1, _02037A18 ; =0x020F96DC add r0, r5, #0x0 add r2, r4, #0x0 bl FUN_020373D4 add r0, r4, #0x0 pop {r3-r5, pc} nop _02037A18: .word 0x020F96DC thumb_func_start FUN_02037A1C FUN_02037A1C: ; 0x02037A1C push {r3-r5, lr} mov r0, #0xb mov r2, #0x0 mov r3, #0x13 add r5, r1, #0x0 bl FUN_0203797C add r4, r0, #0x0 ldr r1, _02037A3C ; =0x020F96DC add r0, r5, #0x0 add r2, r4, #0x0 bl FUN_020373D4 add r0, r4, #0x0 pop {r3-r5, pc} nop _02037A3C: .word 0x020F96DC thumb_func_start FUN_02037A40 FUN_02037A40: ; 0x02037A40 add r0, #0x22 ldrb r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02037A48 FUN_02037A48: ; 0x02037A48 push {r4-r6, lr} add r4, r2, #0x0 mov r0, #0xb mov r2, #0x0 mov r3, #0x12 add r5, r1, #0x0 bl FUN_0203797C add r6, r0, #0x0 add r0, #0x22 strb r4, [r0, #0x0] ldr r1, _02037A6C ; =0x020F96DC add r0, r5, #0x0 add r2, r6, #0x0 bl FUN_020373D4 add r0, r6, #0x0 pop {r4-r6, pc} .balign 4 _02037A6C: .word 0x020F96DC thumb_func_start FUN_02037A70 FUN_02037A70: ; 0x02037A70 add r0, #0x23 ldrb r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02037A78 FUN_02037A78: ; 0x02037A78 ldrb r0, [r0, #0x14] bx lr thumb_func_start FUN_02037A7C FUN_02037A7C: ; 0x02037A7C push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02046528 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_0204652C add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02046530 add r5, r0, #0x0 ldr r0, [r5, #0x0] cmp r0, #0x4 bhi _02037B3A add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02037AA8: ; jump table (using 16-bit offset) .short _02037AB2 - _02037AA8 - 2; case 0 .short _02037AC2 - _02037AA8 - 2; case 1 .short _02037AF8 - _02037AA8 - 2; case 2 .short _02037B1A - _02037AA8 - 2; case 3 .short _02037B30 - _02037AA8 - 2; case 4 _02037AB2: ldr r1, _02037B40 ; =0x020F96DC ldr r2, [r4, #0x4] add r0, r6, #0x0 bl FUN_020373D4 mov r0, #0x1 str r0, [r5, #0x0] b _02037B3A _02037AC2: add r0, r6, #0x0 bl FUN_0204647C cmp r0, #0x0 bne _02037B3A ldr r0, [r4, #0x4] add r0, #0x22 ldrb r0, [r0, #0x0] cmp r0, #0x6 beq _02037AE6 cmp r0, #0x7 bne _02037AF2 mov r0, #0x2 bl FUN_020527D8 mov r0, #0x4 str r0, [r5, #0x0] b _02037B3A _02037AE6: mov r0, #0x1 bl FUN_020527D8 mov r0, #0x4 str r0, [r5, #0x0] b _02037B3A _02037AF2: mov r0, #0x2 str r0, [r5, #0x0] b _02037B3A _02037AF8: ldr r1, [r4, #0x0] add r0, r6, #0x0 mov r2, #0x0 bl FUN_02037C7C str r0, [r4, #0x8] ldr r1, [r4, #0x4] add r1, #0x22 ldrb r1, [r1, #0x0] strb r1, [r0, #0x14] ldr r1, [r4, #0x8] add r0, r6, #0x0 bl FUN_0203796C mov r0, #0x3 str r0, [r5, #0x0] b _02037B3A _02037B1A: add r0, r6, #0x0 bl FUN_0204647C cmp r0, #0x0 bne _02037B3A ldr r0, [r4, #0x8] bl FUN_02016A18 mov r0, #0x0 str r0, [r5, #0x0] b _02037B3A _02037B30: add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x1 pop {r4-r6, pc} _02037B3A: mov r0, #0x0 pop {r4-r6, pc} nop _02037B40: .word 0x020F96DC thumb_func_start FUN_02037B44 FUN_02037B44: ; 0x02037B44 push {r3-r7, lr} add r5, r1, #0x0 add r7, r0, #0x0 bl FUN_02046528 add r6, r0, #0x0 add r0, r5, #0x0 mov r1, #0xc bl FUN_02016998 add r4, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 mov r2, #0x0 mov r3, #0x2 str r5, [r4, #0x0] bl FUN_0203797C add r5, r0, #0x0 add r0, #0x32 ldrb r1, [r0, #0x0] mov r0, #0xf add r2, r4, #0x0 bic r1, r0 mov r0, #0x2 orr r1, r0 add r0, r5, #0x0 add r0, #0x32 strb r1, [r0, #0x0] add r0, r5, #0x0 add r0, #0x32 ldrb r1, [r0, #0x0] mov r0, #0xf0 bic r1, r0 mov r0, #0x20 orr r1, r0 add r0, r5, #0x0 add r0, #0x32 strb r1, [r0, #0x0] add r0, r5, #0x0 mov r1, #0x1e add r0, #0x33 strb r1, [r0, #0x0] mov r0, #0x0 str r0, [r5, #0x14] ldr r1, _02037BAC ; =FUN_02037A7C add r0, r7, #0x0 str r5, [r4, #0x4] bl FUN_0204640C add r0, r5, #0x0 pop {r3-r7, pc} .balign 4 _02037BAC: .word FUN_02037A7C thumb_func_start FUN_02037BB0 FUN_02037BB0: ; 0x02037BB0 push {r3-r7, lr} add r5, r2, #0x0 add r6, r3, #0x0 mov r0, #0xb mov r2, #0x0 mov r3, #0xd add r7, r1, #0x0 bl FUN_0203797C add r4, r0, #0x0 ldr r1, [sp, #0x1c] add r0, #0x22 strb r1, [r0, #0x0] add r0, r4, #0x0 mov r1, #0x2 add r0, #0x29 strb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x2a strb r5, [r0, #0x0] ldr r0, [sp, #0x18] cmp r0, #0x0 bne _02037BE6 add r0, r4, #0x0 add r0, #0x2b strb r6, [r0, #0x0] b _02037BEE _02037BE6: add r0, r4, #0x0 mov r1, #0x0 add r0, #0x2b strb r1, [r0, #0x0] _02037BEE: ldr r1, _02037BFC ; =0x020F96DC add r0, r7, #0x0 add r2, r4, #0x0 bl FUN_020373D4 add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 _02037BFC: .word 0x020F96DC thumb_func_start FUN_02037C00 FUN_02037C00: ; 0x02037C00 push {r4-r6, lr} add r5, r1, #0x0 mov r0, #0xb mov r1, #0x30 add r6, r2, #0x0 bl FUN_02016998 add r4, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_0206BB1C str r0, [r4, #0x0] ldr r0, [r5, #0xc] bl LoadPlayerDataAddress str r0, [r4, #0x4] mov r0, #0x1 strb r0, [r4, #0x11] strb r6, [r4, #0x14] ldr r0, [r4, #0x0] bl FUN_0206B9AC strb r0, [r4, #0x13] mov r0, #0x0 strh r0, [r4, #0x18] strb r0, [r4, #0x12] ldr r0, [r5, #0xc] bl FUN_0202A918 str r0, [r4, #0x20] ldr r0, [r5, #0xc] bl FUN_0206BB28 str r0, [r4, #0x1c] ldr r0, [r5, #0xc] bl FUN_02079C70 str r0, [r4, #0x2c] mov r0, #0x0 str r0, [r4, #0x28] ldr r1, _02037C74 ; =0x020F2A9C add r0, r4, #0x0 bl FUN_0207B000 ldr r0, [r5, #0xc] bl FUN_020238F4 add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_0207C2A4 ldr r1, _02037C78 ; =0x020FA6E8 add r0, r5, #0x0 add r2, r4, #0x0 bl FUN_020373D4 add r0, r4, #0x0 pop {r4-r6, pc} .balign 4 _02037C74: .word 0x020F2A9C _02037C78: .word 0x020FA6E8 thumb_func_start FUN_02037C7C FUN_02037C7C: ; 0x02037C7C push {r4-r6, lr} ldr r5, [r0, #0xc] add r0, r1, #0x0 mov r1, #0x30 add r6, r2, #0x0 bl FUN_020169D8 mov r1, #0x0 mov r2, #0x30 add r4, r0, #0x0 blx MI_CpuFill8 add r0, r5, #0x0 bl LoadPlayerDataAddress str r0, [r4, #0x4] add r0, r5, #0x0 bl FUN_0206BB1C str r0, [r4, #0x0] mov r0, #0x1 strb r0, [r4, #0x11] mov r0, #0x0 strb r0, [r4, #0x14] ldr r0, [r4, #0x0] bl FUN_0206B9AC strb r0, [r4, #0x13] mov r0, #0x0 strh r0, [r4, #0x18] strb r6, [r4, #0x12] add r0, r5, #0x0 bl FUN_0206BB28 str r0, [r4, #0x1c] add r0, r5, #0x0 bl FUN_02079C70 str r0, [r4, #0x2c] add r0, r5, #0x0 bl FUN_0202A918 str r0, [r4, #0x20] ldr r1, _02037CEC ; =0x020F2BD0 add r0, r4, #0x0 bl FUN_0207B000 add r0, r5, #0x0 bl FUN_020238F4 add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_0207C2A4 add r0, r4, #0x0 pop {r4-r6, pc} .balign 4 _02037CEC: .word 0x020F2BD0 thumb_func_start FUN_02037CF0 FUN_02037CF0: ; 0x02037CF0 push {r4-r6, lr} add r5, r1, #0x0 mov r1, #0x30 add r6, r2, #0x0 bl FUN_02016998 mov r1, #0x0 mov r2, #0x30 add r4, r0, #0x0 blx FUN_020DF4A4 ldr r0, [r5, #0xc] bl FUN_0206BB1C str r0, [r4, #0x0] ldr r0, [r5, #0xc] bl LoadPlayerDataAddress str r0, [r4, #0x4] mov r0, #0x1 strb r0, [r4, #0x11] strb r6, [r4, #0x14] strb r0, [r4, #0x13] mov r0, #0x0 strh r0, [r4, #0x18] mov r0, #0x2 strb r0, [r4, #0x12] ldr r0, [r5, #0xc] bl FUN_0206BB28 str r0, [r4, #0x1c] ldr r0, [r5, #0xc] bl FUN_02079C70 str r0, [r4, #0x2c] ldr r1, _02037D58 ; =0x020F2BCC add r0, r4, #0x0 bl FUN_0207B000 ldr r0, [r5, #0xc] bl FUN_020238F4 add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_0207C2A4 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0203796C add r0, r4, #0x0 pop {r4-r6, pc} .balign 4 _02037D58: .word 0x020F2BCC thumb_func_start FUN_02037D5C FUN_02037D5C: ; 0x02037D5C ldrb r0, [r0, #0x16] bx lr thumb_func_start FUN_02037D60 FUN_02037D60: ; 0x02037D60 ldr r3, _02037D68 ; =FUN_020373D4 add r2, r1, #0x0 ldr r1, _02037D6C ; =0x020F2CF4 bx r3 .balign 4 _02037D68: .word FUN_020373D4 _02037D6C: .word 0x020F2CF4 thumb_func_start FUN_02037D70 FUN_02037D70: ; 0x02037D70 push {r3-r6, lr} sub sp, #0x4 add r6, r0, #0x0 bl FUN_02046530 add r4, r0, #0x0 add r0, r6, #0x0 bl FUN_0204652C add r5, r0, #0x0 add r0, r6, #0x0 bl FUN_02046528 ldr r1, [r4, #0x0] cmp r1, #0x0 beq _02037D9A cmp r1, #0x1 beq _02037DA8 cmp r1, #0x2 beq _02037DB8 b _02037E12 _02037D9A: ldr r1, [r5, #0xc] bl FUN_02037E80 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02037E12 _02037DA8: bl FUN_0204647C cmp r0, #0x0 bne _02037E12 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02037E12 _02037DB8: ldr r0, [r5, #0xc] bl FUN_020853E4 cmp r0, #0x0 bne _02037DCC ldr r0, [r5, #0xc] bl FUN_020853E8 cmp r0, #0x0 bne _02037DD4 _02037DCC: ldr r0, [r5, #0x0] mov r1, #0x0 strh r1, [r0, #0x0] b _02037E00 _02037DD4: ldr r0, [r5, #0x0] mov r1, #0x1 strh r1, [r0, #0x0] ldr r0, [r5, #0x8] cmp r0, #0x0 ldr r0, [r5, #0xc] bne _02037DEC bl FUN_020853EC ldr r1, [r5, #0x4] strh r0, [r1, #0x0] b _02037E00 _02037DEC: add r1, sp, #0x0 bl FUN_020853F0 add r0, sp, #0x0 ldrh r2, [r0, #0x0] ldr r1, [r5, #0x4] strh r2, [r1, #0x0] ldrh r1, [r0, #0x2] ldr r0, [r5, #0x8] strh r1, [r0, #0x0] _02037E00: ldr r0, [r5, #0xc] bl FUN_020853A8 add r0, r5, #0x0 bl FUN_02016A18 add sp, #0x4 mov r0, #0x1 pop {r3-r6, pc} _02037E12: mov r0, #0x0 add sp, #0x4 pop {r3-r6, pc} thumb_func_start FUN_02037E18 FUN_02037E18: ; 0x02037E18 push {r3-r7, lr} sub sp, #0x8 str r0, [sp, #0x0] str r1, [sp, #0x4] add r5, r2, #0x0 add r6, r3, #0x0 bl FUN_02046528 add r7, r0, #0x0 mov r0, #0x20 mov r1, #0x10 bl FUN_02016998 add r4, r0, #0x0 ldr r0, [sp, #0x4] cmp r6, #0x0 str r0, [r4, #0x0] str r5, [r4, #0x4] str r6, [r4, #0x8] bne _02037E56 mov r0, #0x0 ldr r2, [r7, #0xc] add r1, r0, #0x0 mov r3, #0x20 bl FUN_02085338 str r0, [r4, #0xc] ldrh r1, [r5, #0x0] bl FUN_020853B0 b _02037E6C _02037E56: ldr r2, [r7, #0xc] mov r0, #0x1 mov r1, #0x0 mov r3, #0x20 bl FUN_02085338 str r0, [r4, #0xc] ldrh r1, [r5, #0x0] ldrh r2, [r6, #0x0] bl FUN_020853B4 _02037E6C: ldr r0, [sp, #0x0] ldr r1, _02037E7C ; =FUN_02037D70 add r2, r4, #0x0 bl FUN_0204640C add sp, #0x8 pop {r3-r7, pc} nop _02037E7C: .word FUN_02037D70 thumb_func_start FUN_02037E80 FUN_02037E80: ; 0x02037E80 ldr r3, _02037E88 ; =FUN_020373D4 add r2, r1, #0x0 ldr r1, _02037E8C ; =0x020F2CE4 bx r3 .balign 4 _02037E88: .word FUN_020373D4 _02037E8C: .word 0x020F2CE4 thumb_func_start FUN_02037E90 FUN_02037E90: ; 0x02037E90 push {r4-r6, lr} sub sp, #0x10 ldr r5, _02037EB4 ; =0x020F2CD4 add r4, sp, #0x0 add r6, r0, #0x0 add r2, r1, #0x0 add r3, r4, #0x0 ldmia r5!, {r0-r1} stmia r4!, {r0-r1} ldmia r5!, {r0-r1} stmia r4!, {r0-r1} add r0, r6, #0x0 add r1, r3, #0x0 bl FUN_020373D4 add sp, #0x10 pop {r4-r6, pc} nop _02037EB4: .word 0x020F2CD4 thumb_func_start FUN_02037EB8 FUN_02037EB8: ; 0x02037EB8 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_02034E30 bl FUN_02034E0C mov r1, #0x5 mov r0, #0xb lsl r1, r1, #0x6 bl FUN_020169D8 add r4, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 mov r2, #0x0 bl FUN_0205F7A0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02037E90 add r0, r4, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02037EE8 FUN_02037EE8: ; 0x02037EE8 ldr r3, _02037EF0 ; =FUN_020373D4 add r2, r1, #0x0 ldr r1, _02037EF4 ; =0x020F2CC4 bx r3 .balign 4 _02037EF0: .word FUN_020373D4 _02037EF4: .word 0x020F2CC4 thumb_func_start FUN_02037EF8 FUN_02037EF8: ; 0x02037EF8 push {r3-r5, lr} add r5, r0, #0x0 mov r0, #0xb mov r1, #0x2 bl FUN_020169D8 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_020377AC bl LoadPlayerDataAddress add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_02037EE8 add r0, r4, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02037F1C FUN_02037F1C: ; 0x02037F1C ldr r3, _02037F24 ; =FUN_020373D4 add r2, r1, #0x0 ldr r1, _02037F28 ; =0x020FCAC8 bx r3 .balign 4 _02037F24: .word FUN_020373D4 _02037F28: .word 0x020FCAC8 thumb_func_start FUN_02037F2C FUN_02037F2C: ; 0x02037F2C push {r3-r7, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 add r7, r3, #0x0 bl FUN_020377AC mov r1, #0xb str r1, [sp, #0x0] add r1, r4, #0x0 add r2, r6, #0x0 add r3, r7, #0x0 bl FUN_020854E0 add r4, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02037F1C add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02037F58 FUN_02037F58: ; 0x02037F58 push {r3-r7, lr} add r5, r1, #0x0 add r7, r0, #0x0 add r4, r2, #0x0 add r6, r3, #0x0 cmp r5, #0x3 bne _02037F74 bl FUN_020377AC add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_020855B0 b _02037F82 _02037F74: bl FUN_020377AC add r1, r5, #0x0 add r2, r4, #0x0 add r3, r6, #0x0 bl FUN_02085538 _02037F82: add r4, r0, #0x0 add r0, r7, #0x0 add r1, r4, #0x0 bl FUN_02037F1C add r0, r4, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02037F90 FUN_02037F90: ; 0x02037F90 push {r4-r6, lr} add r4, r1, #0x0 add r6, r2, #0x0 add r5, r0, #0x0 bl FUN_020377AC add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_02085578 add r4, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02037F1C add r0, r4, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02037FB4 FUN_02037FB4: ; 0x02037FB4 ldr r3, _02037FBC ; =FUN_020373D4 add r2, r1, #0x0 ldr r1, _02037FC0 ; =0x020FD1B0 bx r3 .balign 4 _02037FBC: .word FUN_020373D4 _02037FC0: .word 0x020FD1B0 thumb_func_start FUN_02037FC4 FUN_02037FC4: ; 0x02037FC4 push {r3-r5, lr} add r5, r1, #0x0 add r4, r0, #0x0 bl FUN_020377AC add r1, r5, #0x0 bl FUN_02087D00 add r5, r0, #0x0 add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_02037FB4 add r0, r5, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02037FE4 FUN_02037FE4: ; 0x02037FE4 push {r4-r6, lr} sub sp, #0x10 ldr r5, _02038008 ; =0x020F2CB4 add r4, sp, #0x0 add r6, r0, #0x0 add r2, r1, #0x0 add r3, r4, #0x0 ldmia r5!, {r0-r1} stmia r4!, {r0-r1} ldmia r5!, {r0-r1} stmia r4!, {r0-r1} add r0, r6, #0x0 add r1, r3, #0x0 bl FUN_020373D4 add sp, #0x10 pop {r4-r6, pc} nop _02038008: .word 0x020F2CB4 thumb_func_start FUN_0203800C FUN_0203800C: ; 0x0203800C push {r3-r7, lr} add r5, r1, #0x0 mov r1, #0x20 add r7, r2, #0x0 add r6, r3, #0x0 bl FUN_02016998 mov r1, #0x0 mov r2, #0x20 add r4, r0, #0x0 blx FUN_020DF4A4 add r0, r5, #0x0 bl FUN_0206BB1C add r1, r7, #0x0 bl FUN_0206B9B0 str r0, [r4, #0x0] add r0, r5, #0x0 bl FUN_02027E24 str r0, [sp, #0x0] mov r1, #0x0 bl FUN_02027008 add r7, r0, #0x0 ldr r0, [sp, #0x0] bl FUN_0202708C str r7, [r4, #0x4] str r0, [r4, #0x8] add r0, r5, #0x0 bl LoadPlayerDataAddress str r0, [r4, #0xc] add r0, r5, #0x0 bl FUN_02029FC8 str r0, [r4, #0x10] add r0, r5, #0x0 bl FUN_020238F4 str r0, [r4, #0x14] ldr r0, [sp, #0x18] str r6, [r4, #0x18] str r0, [r4, #0x1c] add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02038070 FUN_02038070: ; 0x02038070 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02046528 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0204652C add r5, r0, #0x0 ldr r0, [r5, #0x0] cmp r0, #0x0 beq _0203808E cmp r0, #0x1 beq _0203809E b _020380C8 _0203808E: ldr r1, [r5, #0xc] add r0, r4, #0x0 bl FUN_0203811C ldr r0, [r5, #0x0] add r0, r0, #0x1 str r0, [r5, #0x0] b _020380C8 _0203809E: add r0, r4, #0x0 bl FUN_0204647C cmp r0, #0x0 bne _020380C8 ldr r0, [r5, #0x8] cmp r0, #0x1 bne _020380B2 mov r1, #0x1 b _020380B4 _020380B2: mov r1, #0x0 _020380B4: ldr r0, [r5, #0x4] strh r1, [r0, #0x0] ldr r0, [r5, #0xc] bl FUN_02016A18 add r0, r5, #0x0 bl FUN_02016A18 mov r0, #0x1 pop {r3-r5, pc} _020380C8: mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_020380CC FUN_020380CC: ; 0x020380CC push {r3-r7, lr} sub sp, #0x8 add r6, r0, #0x0 add r5, r1, #0x0 mov r0, #0x20 mov r1, #0x10 add r7, r2, #0x0 str r3, [sp, #0x4] bl FUN_02016998 add r4, r0, #0x0 add r2, r4, #0x0 mov r1, #0x10 mov r0, #0x0 _020380E8: strb r0, [r2, #0x0] add r2, r2, #0x1 sub r1, r1, #0x1 bne _020380E8 add r0, sp, #0x10 ldrh r0, [r0, #0x10] add r3, r4, #0x0 add r1, r7, #0x0 str r0, [sp, #0x0] ldr r2, [sp, #0x4] mov r0, #0x20 add r3, #0x8 bl FUN_0203800C str r0, [r4, #0xc] ldr r1, _02038118 ; =FUN_02038070 add r0, r6, #0x0 add r2, r4, #0x0 str r5, [r4, #0x4] bl FUN_0204640C add sp, #0x8 pop {r3-r7, pc} nop _02038118: .word FUN_02038070 thumb_func_start FUN_0203811C FUN_0203811C: ; 0x0203811C push {r3, lr} add r2, r1, #0x0 ldr r1, _0203812C ; =0x02105DDC bl FUN_020373D4 mov r0, #0x1 pop {r3, pc} nop _0203812C: .word 0x02105DDC thumb_func_start FUN_02038130 FUN_02038130: ; 0x02038130 push {r3, lr} add r2, r1, #0x0 ldr r1, _02038140 ; =0x02105DCC bl FUN_020373D4 mov r0, #0x1 pop {r3, pc} nop _02038140: .word 0x02105DCC thumb_func_start FUN_02038144 FUN_02038144: ; 0x02038144 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_020238F4 str r0, [r5, #0x4] ldr r0, [r4, #0xc] bl FUN_0206BB1C str r0, [r5, #0x8] ldr r0, [r4, #0xc] mov r1, #0x9 bl FUN_02022610 str r0, [r5, #0xc] ldr r0, [r4, #0xc] bl FUN_02029AFC str r0, [r5, #0x14] ldr r0, [r4, #0xc] bl LoadPlayerDataAddress str r0, [r5, #0x18] ldr r0, [r4, #0xc] bl FUN_02024DA0 str r0, [r5, #0x24] ldr r0, [r4, #0xc] bl FUN_0206BB28 str r0, [r5, #0x30] ldr r0, [r4, #0xc] str r0, [r5, #0x10] add r0, r4, #0x0 add r0, #0x98 ldr r0, [r0, #0x0] str r0, [r5, #0x1c] ldr r0, [r4, #0xc] bl FUN_02029FC8 str r0, [r5, #0x20] bl FUN_02023924 add r1, r0, #0x0 mov r0, #0x20 bl FUN_02016998 str r0, [r5, #0x38] bl FUN_020690C4 add r1, r0, #0x0 mov r0, #0x20 bl FUN_02016998 str r0, [r5, #0x3c] bl FUN_020690C4 add r1, r0, #0x0 mov r0, #0x20 bl FUN_02016998 str r0, [r5, #0x40] str r4, [r5, #0x0] mov r0, #0x0 str r0, [r5, #0x34] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020381CC FUN_020381CC: ; 0x020381CC push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x38] cmp r0, #0x0 beq _020381DE bl FUN_02016A18 mov r0, #0x0 str r0, [r4, #0x38] _020381DE: ldr r0, [r4, #0x3c] cmp r0, #0x0 beq _020381EC bl FUN_02016A18 mov r0, #0x0 str r0, [r4, #0x3c] _020381EC: ldr r0, [r4, #0x40] cmp r0, #0x0 beq _020381FA bl FUN_02016A18 mov r0, #0x0 str r0, [r4, #0x40] _020381FA: pop {r4, pc} thumb_func_start FUN_020381FC FUN_020381FC: ; 0x020381FC push {r4-r7, lr} sub sp, #0x34 add r6, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r6, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x7 bls _02038218 b _020383C8 _02038218: add r1, r0, r0 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02038224: ; jump table (using 16-bit offset) .short _02038234 - _02038224 - 2; case 0 .short _0203824A - _02038224 - 2; case 1 .short _02038258 - _02038224 - 2; case 2 .short _0203826A - _02038224 - 2; case 3 .short _02038288 - _02038224 - 2; case 4 .short _020382F6 - _02038224 - 2; case 5 .short _02038386 - _02038224 - 2; case 6 .short _020383B2 - _02038224 - 2; case 7 _02038234: bl FUN_02033590 cmp r0, #0x0 bne _02038242 add r0, r6, #0x0 bl FUN_0204AF3C _02038242: ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _020383C8 _0203824A: add r0, r4, #0x4 add r1, r5, #0x0 bl FUN_02038144 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] _02038258: ldr r1, _020383D0 ; =0x02105DBC add r0, r6, #0x0 add r2, r4, #0x4 bl FUN_02046500 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _020383C8 _0203826A: ldr r1, [r4, #0x2c] cmp r1, #0x0 bne _02038282 add r0, r4, #0x4 bl FUN_020381CC add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x34 mov r0, #0x1 pop {r4-r7, pc} _02038282: add r0, r0, #0x1 str r0, [r4, #0x0] b _020383C8 _02038288: ldr r0, [r4, #0x3c] str r0, [r4, #0x50] ldr r0, [r4, #0x40] bl FUN_020690E4 str r0, [r4, #0x48] ldr r0, [r4, #0x44] bl FUN_020690E4 str r0, [r4, #0x4c] ldr r0, [r5, #0xc] bl LoadPlayerDataAddress str r0, [r4, #0x5c] mov r0, #0x1 str r0, [r4, #0x58] add r0, r5, #0x0 bl FUN_0204B2A4 cmp r0, #0x4 bhi _020382C8 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _020382BE: ; jump table (using 16-bit offset) .short _020382C8 - _020382BE - 2; case 0 .short _020382C8 - _020382BE - 2; case 1 .short _020382CE - _020382BE - 2; case 2 .short _020382D4 - _020382BE - 2; case 3 .short _020382D4 - _020382BE - 2; case 4 _020382C8: mov r0, #0x0 str r0, [r4, #0x54] b _020382D8 _020382CE: mov r0, #0x1 str r0, [r4, #0x54] b _020382D8 _020382D4: mov r0, #0x2 str r0, [r4, #0x54] _020382D8: bl FUN_02033590 cmp r0, #0x0 beq _020382E4 mov r0, #0x3 str r0, [r4, #0x54] _020382E4: add r2, r4, #0x0 ldr r1, _020383D4 ; =0x020F2CA4 add r0, r6, #0x0 add r2, #0x48 bl FUN_02046500 mov r0, #0x5 str r0, [r4, #0x0] b _020383C8 _020382F6: ldr r0, [r4, #0x44] mov r1, #0x6 mov r2, #0x0 bl FUN_020671BC add r3, r0, #0x0 add r0, sp, #0x30 str r0, [sp, #0x0] lsl r3, r3, #0x10 ldr r1, [r4, #0x44] mov r0, #0x0 mov r2, #0x1 lsr r3, r3, #0x10 bl FUN_02069168 str r0, [sp, #0x20] cmp r0, #0x0 beq _02038380 mov r0, #0x3 mov r1, #0x1a lsl r2, r0, #0x10 bl FUN_0201681C ldr r0, [r5, #0xc] bl LoadPlayerDataAddress str r0, [sp, #0x24] ldr r0, [r5, #0xc] bl FUN_02079C70 add r6, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_02024DA0 add r7, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_0206F158 str r0, [sp, #0x28] ldr r0, [r5, #0xc] bl FUN_02029FC8 str r0, [sp, #0x2c] ldr r0, [r5, #0xc] bl FUN_0204C1A8 str r6, [sp, #0x0] ldr r1, [sp, #0x28] str r7, [sp, #0x4] str r1, [sp, #0x8] ldr r1, [sp, #0x2c] ldr r2, [sp, #0x20] str r1, [sp, #0xc] str r0, [sp, #0x10] ldr r0, [sp, #0x30] ldr r3, [sp, #0x24] str r0, [sp, #0x14] mov r0, #0x4 str r0, [sp, #0x18] mov r0, #0x1a str r0, [sp, #0x1c] ldr r1, [r4, #0x44] mov r0, #0x0 bl FUN_0206C700 str r0, [r4, #0x60] mov r0, #0x6 str r0, [r4, #0x0] b _020383C8 _02038380: mov r0, #0x7 str r0, [r4, #0x0] b _020383C8 _02038386: ldr r0, [r4, #0x60] bl FUN_0206C91C cmp r0, #0x0 beq _020383C8 ldr r0, [r4, #0xc] ldr r1, [r4, #0x30] bl FUN_0206B9B0 add r1, r0, #0x0 ldr r0, [r4, #0x44] bl FUN_02069B88 ldr r0, [r4, #0x60] bl FUN_0206C92C mov r0, #0x1a bl FUN_020168D0 mov r0, #0x7 str r0, [r4, #0x0] b _020383C8 _020383B2: ldr r0, [r4, #0x38] add r0, r0, #0x1 str r0, [r4, #0x38] mov r0, #0x2 str r0, [r4, #0x0] ldr r0, [r5, #0xc] bl FUN_02029FC8 mov r1, #0x10 bl FUN_0202A170 _020383C8: mov r0, #0x0 add sp, #0x34 pop {r4-r7, pc} nop _020383D0: .word 0x02105DBC _020383D4: .word 0x020F2CA4 thumb_func_start FUN_020383D8 FUN_020383D8: ; 0x020383D8 push {r4, lr} add r4, r0, #0x0 mov r0, #0x20 mov r1, #0x68 bl FUN_02016998 add r2, r0, #0x0 mov r0, #0x0 str r0, [r2, #0x0] ldr r1, _020383F4 ; =FUN_020381FC add r0, r4, #0x0 bl FUN_0204640C pop {r4, pc} .balign 4 _020383F4: .word FUN_020381FC thumb_func_start FUN_020383F8 FUN_020383F8: ; 0x020383F8 push {r3-r5, lr} add r5, r0, #0x0 mov r0, #0x20 mov r1, #0xc bl FUN_02016998 add r4, r0, #0x0 ldr r0, [r5, #0x7c] str r0, [r4, #0x0] add r0, r5, #0x0 add r0, #0x98 ldr r0, [r0, #0x0] str r0, [r4, #0x4] ldr r0, [r5, #0xc] bl LoadPlayerDataAddress str r0, [r4, #0x8] ldr r1, _02038428 ; =0x020F2C94 add r0, r5, #0x0 add r2, r4, #0x0 bl FUN_020373D4 pop {r3-r5, pc} nop _02038428: .word 0x020F2C94 thumb_func_start FUN_0203842C FUN_0203842C: ; 0x0203842C push {r3-r5, lr} add r5, r0, #0x0 mov r0, #0xb mov r1, #0x14 bl FUN_02016998 add r4, r0, #0x0 ldr r0, [r5, #0xc] str r0, [r4, #0x0] ldr r0, [r5, #0x7c] str r0, [r4, #0x4] ldr r0, [r5, #0xc] bl LoadPlayerDataAddress str r0, [r4, #0x8] ldr r0, [r5, #0xc] bl FUN_02029FC8 str r0, [r4, #0xc] add r0, r5, #0x0 add r0, #0x98 ldr r0, [r0, #0x0] ldr r1, _02038468 ; =0x020F2D04 str r0, [r4, #0x10] add r0, r5, #0x0 add r2, r4, #0x0 bl FUN_020373D4 add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 _02038468: .word 0x020F2D04 thumb_func_start FUN_0203846C FUN_0203846C: ; 0x0203846C ldr r3, _02038474 ; =FUN_020373D4 add r2, r1, #0x0 ldr r1, _02038478 ; =0x020F2D54 bx r3 .balign 4 _02038474: .word FUN_020373D4 _02038478: .word 0x020F2D54 thumb_func_start FUN_0203847C FUN_0203847C: ; 0x0203847C push {r3-r7, lr} add r5, r0, #0x0 bl FUN_02046528 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x3 bhi _02038544 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _020384A0: ; jump table (using 16-bit offset) .short _020384A8 - _020384A0 - 2; case 0 .short _020384B6 - _020384A0 - 2; case 1 .short _020384C8 - _020384A0 - 2; case 2 .short _020384D6 - _020384A0 - 2; case 3 _020384A8: add r0, r5, #0x0 bl FUN_0204AF3C ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02038544 _020384B6: ldr r1, _02038548 ; =0x020FA5FC ldr r2, [r4, #0xc] add r0, r5, #0x0 bl FUN_02046500 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02038544 _020384C8: add r0, r5, #0x0 bl FUN_0204AF84 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02038544 _020384D6: ldr r1, [r4, #0xc] ldr r0, [r1, #0x0] cmp r0, #0x1 bne _020384F2 ldr r0, [r1, #0x18] ldr r1, [r4, #0x10] bl FUN_02021CE0 cmp r0, #0x0 bne _02038514 ldr r0, [r4, #0xc] mov r1, #0x1 str r1, [r0, #0x14] b _02038514 _020384F2: cmp r0, #0x5 bne _02038514 ldr r0, [r1, #0x18] bl FUN_02021F2C add r7, r0, #0x0 ldr r0, [r6, #0xc] bl FUN_0202881C add r1, r7, #0x0 bl FUN_02028854 cmp r0, #0x0 beq _02038514 ldr r0, [r4, #0xc] mov r1, #0x2 str r1, [r0, #0x14] _02038514: ldr r0, [r4, #0xc] ldr r0, [r0, #0x14] cmp r0, #0x0 bne _02038522 add r0, r5, #0x0 bl FUN_0203854C _02038522: ldr r1, [r4, #0x8] cmp r1, #0x0 beq _0203852E ldr r0, [r4, #0xc] ldr r0, [r0, #0x14] strh r0, [r1, #0x0] _0203852E: ldr r0, [r4, #0xc] bl FUN_02077AC4 ldr r0, [r4, #0x10] bl FUN_02021A20 add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x1 pop {r3-r7, pc} _02038544: mov r0, #0x0 pop {r3-r7, pc} .balign 4 _02038548: .word 0x020FA5FC thumb_func_start FUN_0203854C FUN_0203854C: ; 0x0203854C push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldr r0, [r4, #0xc] ldr r0, [r0, #0x0] cmp r0, #0x6 bhi _020385CA add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02038572: ; jump table (using 16-bit offset) .short _02038580 - _02038572 - 2; case 0 .short _02038590 - _02038572 - 2; case 1 .short _020385CA - _02038572 - 2; case 2 .short _020385CA - _02038572 - 2; case 3 .short _020385CA - _02038572 - 2; case 4 .short _020385A8 - _02038572 - 2; case 5 .short _020385BC - _02038572 - 2; case 6 _02038580: ldr r0, [r5, #0xc] bl FUN_020238F4 ldr r1, [r4, #0xc] add r1, #0x1c bl FUN_0202395C pop {r3-r5, pc} _02038590: ldr r0, [r5, #0xc] bl FUN_0206BB1C ldr r1, [r4, #0x4] bl FUN_0206B9B0 ldr r2, [r4, #0xc] mov r1, #0x75 add r2, #0x1c bl FUN_02067830 pop {r3-r5, pc} _020385A8: ldr r0, [r5, #0xc] bl FUN_0202881C ldr r3, [r4, #0xc] mov r1, #0x0 ldr r3, [r3, #0x18] add r2, r1, #0x0 bl FUN_020287C0 pop {r3-r5, pc} _020385BC: ldr r0, [r5, #0xc] bl FUN_02024EB4 ldr r1, [r4, #0xc] ldr r1, [r1, #0x18] bl FUN_02024F18 _020385CA: pop {r3-r5, pc} thumb_func_start FUN_020385CC FUN_020385CC: ; 0x020385CC push {r3-r7, lr} sub sp, #0x10 str r0, [sp, #0x4] add r6, r1, #0x0 str r2, [sp, #0x8] str r3, [sp, #0xc] ldr r5, [sp, #0x2c] bl FUN_02046528 add r7, r0, #0x0 mov r0, #0xb mov r1, #0x14 bl FUN_020169D8 add r4, r0, #0x0 mov r0, #0x0 str r0, [r4, #0x0] ldr r0, [sp, #0x28] str r0, [r4, #0x4] ldr r0, [sp, #0x30] str r0, [r4, #0x8] ldr r0, [r7, #0xc] bl LoadPlayerDataAddress str r0, [sp, #0x0] ldr r2, [sp, #0x8] ldr r3, [sp, #0xc] mov r0, #0xb add r1, r6, #0x0 bl FUN_02077A84 str r0, [r4, #0xc] mov r0, #0xc mov r1, #0xb bl FUN_020219F4 str r0, [r4, #0x10] cmp r6, #0x1 beq _02038620 cmp r6, #0x5 beq _02038656 b _02038660 _02038620: ldr r0, [r7, #0xc] bl FUN_0206BB1C ldr r1, [r4, #0x4] bl FUN_0206B9B0 mov r1, #0x6f mov r2, #0x0 add r6, r0, #0x0 bl FUN_020671BC ldr r1, [r4, #0xc] mov r2, #0x0 str r0, [r1, #0x10] add r0, r6, #0x0 mov r1, #0x70 bl FUN_020671BC ldr r1, [r4, #0xc] cmp r5, #0x0 str r0, [r1, #0x8] beq _0203866E ldr r0, [r4, #0x10] add r1, r5, #0x0 bl FUN_02021E28 b _0203866E _02038656: ldr r0, [r4, #0x10] add r1, r5, #0x0 bl FUN_02021E28 b _0203866E _02038660: cmp r5, #0x0 beq _0203866E ldr r0, [r4, #0xc] add r1, r5, #0x0 ldr r0, [r0, #0x18] bl FUN_02021E28 _0203866E: ldr r0, [sp, #0x4] ldr r1, _0203867C ; =FUN_0203847C add r2, r4, #0x0 bl FUN_0204640C add sp, #0x10 pop {r3-r7, pc} .balign 4 _0203867C: .word FUN_0203847C thumb_func_start FUN_02038680 FUN_02038680: ; 0x02038680 ldr r3, _02038688 ; =FUN_020373D4 add r2, r1, #0x0 ldr r1, _0203868C ; =0x020F2C54 bx r3 .balign 4 _02038688: .word FUN_020373D4 _0203868C: .word 0x020F2C54 thumb_func_start FUN_02038690 FUN_02038690: ; 0x02038690 push {r3, lr} add r2, r1, #0x0 ldr r1, _020386A0 ; =0x020F2C44 bl FUN_020373D4 mov r0, #0x1 pop {r3, pc} nop _020386A0: .word 0x020F2C44 thumb_func_start FUN_020386A4 FUN_020386A4: ; 0x020386A4 ldr r3, _020386AC ; =FUN_020373D4 add r2, r1, #0x0 ldr r1, _020386B0 ; =0x020F2C34 bx r3 .balign 4 _020386AC: .word FUN_020373D4 _020386B0: .word 0x020F2C34 thumb_func_start FUN_020386B4 FUN_020386B4: ; 0x020386B4 push {r3-r5, lr} sub sp, #0x10 add r4, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_02029ABC ldr r5, _020386DC ; =0x020F2C24 add r3, sp, #0x0 add r2, r3, #0x0 ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} add r1, r2, #0x0 ldr r2, [r4, #0xc] add r0, r4, #0x0 bl FUN_020373D4 add sp, #0x10 pop {r3-r5, pc} .balign 4 _020386DC: .word 0x020F2C24 thumb_func_start FUN_020386E0 FUN_020386E0: ; 0x020386E0 push {r4-r6, lr} sub sp, #0x10 ldr r3, _0203878C ; =0x020F2C64 add r2, sp, #0x0 add r5, r0, #0x0 add r6, r1, #0x0 ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldmia r3!, {r0-r1} stmia r2!, {r0-r1} mov r0, #0xb mov r1, #0x44 bl FUN_020169D8 add r4, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_0202ABBC str r0, [r4, #0x0] ldr r0, [r5, #0xc] bl FUN_02023788 str r0, [r4, #0x4] ldr r0, [r5, #0xc] mov r1, #0x2 bl FUN_02022610 str r0, [r4, #0x8] ldr r0, [r5, #0xc] bl FUN_02022510 str r0, [r4, #0xc] ldr r0, [r5, #0xc] bl FUN_02024DA0 str r0, [r4, #0x10] ldr r0, [r5, #0xc] bl FUN_020286EC str r0, [r4, #0x14] ldr r0, [r5, #0xc] bl FUN_02029AFC str r0, [r4, #0x18] ldr r0, [r5, #0xc] bl FUN_020238F4 str r0, [r4, #0x1c] ldr r0, [r5, #0xc] bl LoadPlayerDataAddress str r0, [r4, #0x24] ldr r0, [r5, #0xc] bl FUN_02029FC8 str r0, [r4, #0x28] add r0, r5, #0x0 add r0, #0x98 ldr r0, [r0, #0x0] str r0, [r4, #0x2c] ldr r0, [r5, #0xc] bl FUN_02079C70 str r0, [r4, #0x3c] ldr r0, [r5, #0xc] str r0, [r4, #0x20] ldr r0, [r5, #0xc] bl FUN_0206BB28 str r0, [r4, #0x34] ldr r0, [r4, #0x14] bl FUN_02033830 str r0, [r4, #0x38] ldr r0, [r5, #0xc] bl FUN_0206F158 str r0, [r4, #0x30] add r0, r5, #0x0 add r1, sp, #0x0 add r2, r4, #0x0 str r6, [r4, #0x40] bl FUN_020373D4 add sp, #0x10 pop {r4-r6, pc} .balign 4 _0203878C: .word 0x020F2C64 thumb_func_start FUN_02038790 FUN_02038790: ; 0x02038790 push {r3-r7, lr} sub sp, #0x10 ldr r3, _02038800 ; =0x020F2C74 add r7, r2, #0x0 add r2, sp, #0x0 add r5, r0, #0x0 add r6, r1, #0x0 ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldmia r3!, {r0-r1} stmia r2!, {r0-r1} mov r0, #0xb mov r1, #0x28 bl FUN_020169D8 add r4, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_0202A8D8 str r0, [r4, #0x0] ldr r0, [r5, #0xc] bl FUN_0202A8E4 str r0, [r4, #0x4] ldr r0, [r5, #0xc] bl FUN_02023788 str r0, [r4, #0x8] ldr r0, [r5, #0xc] bl LoadPlayerDataAddress str r0, [r4, #0x10] ldr r0, [r5, #0xc] bl FUN_020286EC bl FUN_02028228 str r0, [r4, #0x14] ldr r0, [r5, #0xc] str r0, [r4, #0xc] ldr r0, [r5, #0xc] bl FUN_020286EC bl FUN_02033830 str r0, [r4, #0x1c] str r6, [r4, #0x18] add r0, r5, #0x0 add r1, sp, #0x0 add r2, r4, #0x0 str r7, [r4, #0x24] bl FUN_020373D4 add r0, r4, #0x0 add sp, #0x10 pop {r3-r7, pc} .balign 4 _02038800: .word 0x020F2C74 thumb_func_start FUN_02038804 FUN_02038804: ; 0x02038804 ldr r3, _0203880C ; =FUN_020373D4 ldr r1, _02038810 ; =0x020F2D14 ldr r2, [r0, #0xc] bx r3 .balign 4 _0203880C: .word FUN_020373D4 _02038810: .word 0x020F2D14 thumb_func_start FUN_02038814 FUN_02038814: ; 0x02038814 ldr r3, _0203881C ; =FUN_020373D4 add r2, r1, #0x0 ldr r1, _02038820 ; =0x020F2D64 bx r3 .balign 4 _0203881C: .word FUN_020373D4 _02038820: .word 0x020F2D64 thumb_func_start FUN_02038824 FUN_02038824: ; 0x02038824 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] mov r1, #0xb add r2, sp, #0x0 bl FUN_02022534 ldr r1, [sp, #0x0] add r4, r0, #0x0 cmp r1, #0x2 bne _02038842 bl FUN_02016A18 mov r0, #0x0 pop {r3-r5, pc} _02038842: ldr r1, _02038850 ; =0x020F2BF4 add r0, r5, #0x0 add r2, r4, #0x0 bl FUN_020373D4 add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 _02038850: .word 0x020F2BF4 thumb_func_start FUN_02038854 FUN_02038854: ; 0x02038854 ldr r3, _0203885C ; =FUN_020373D4 add r2, r1, #0x0 ldr r1, _02038860 ; =0x020F2C04 bx r3 .balign 4 _0203885C: .word FUN_020373D4 _02038860: .word 0x020F2C04 thumb_func_start FUN_02038864 FUN_02038864: ; 0x02038864 push {r4-r6, lr} sub sp, #0x10 ldr r5, _02038888 ; =0x020F2C84 add r4, sp, #0x0 add r6, r0, #0x0 add r2, r1, #0x0 add r3, r4, #0x0 ldmia r5!, {r0-r1} stmia r4!, {r0-r1} ldmia r5!, {r0-r1} stmia r4!, {r0-r1} add r0, r6, #0x0 add r1, r3, #0x0 bl FUN_020373D4 add sp, #0x10 pop {r4-r6, pc} nop _02038888: .word 0x020F2C84 thumb_func_start FUN_0203888C FUN_0203888C: ; 0x0203888C push {r4-r6, lr} sub sp, #0x10 ldr r5, _020388B0 ; =0x020F2D84 add r4, sp, #0x0 add r6, r0, #0x0 add r2, r1, #0x0 add r3, r4, #0x0 ldmia r5!, {r0-r1} stmia r4!, {r0-r1} ldmia r5!, {r0-r1} stmia r4!, {r0-r1} add r0, r6, #0x0 add r1, r3, #0x0 bl FUN_020373D4 add sp, #0x10 pop {r4-r6, pc} nop _020388B0: .word 0x020F2D84 thumb_func_start FUN_020388B4 FUN_020388B4: ; 0x020388B4 push {r3-r5, lr} sub sp, #0x10 add r4, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_0206BB1C bl FUN_021ED49C add r5, r0, #0x0 bne _020388CC bl ErrorHandling _020388CC: add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_020613CC str r5, [sp, #0x0] ldr r0, [r4, #0xc] bl LoadPlayerDataAddress str r0, [sp, #0x4] ldr r0, [r4, #0xc] bl FUN_020238F4 str r0, [sp, #0x8] ldr r1, [r4, #0x1c] add r0, r4, #0x0 ldr r1, [r1, #0x0] bl FUN_0204AB58 add r1, sp, #0x0 strh r0, [r1, #0xc] ldr r0, [r4, #0x10] add r1, sp, #0x0 bl FUN_020863DC add sp, #0x10 pop {r3-r5, pc} thumb_func_start FUN_02038900 FUN_02038900: ; 0x02038900 push {r3, lr} add r2, r1, #0x0 ldr r1, _02038910 ; =0x020F2C14 bl FUN_020373D4 mov r0, #0x1 pop {r3, pc} nop _02038910: .word 0x020F2C14 thumb_func_start FUN_02038914 FUN_02038914: ; 0x02038914 push {r4-r7, lr} sub sp, #0xc add r6, r0, #0x0 bl FUN_02046528 add r4, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_020462AC add r7, r0, #0x0 add r0, r6, #0x0 bl FUN_0204652C add r5, r0, #0x0 add r0, r6, #0x0 bl FUN_02046530 add r6, r0, #0x0 ldr r0, [r6, #0x0] cmp r0, #0x0 beq _02038944 cmp r0, #0x1 beq _02038956 b _020389C6 _02038944: add r5, #0xc add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_02038900 ldr r0, [r6, #0x0] add r0, r0, #0x1 str r0, [r6, #0x0] b _020389C6 _02038956: add r0, r4, #0x0 bl FUN_0204647C cmp r0, #0x0 bne _020389C6 ldr r0, [r4, #0xc] bl FUN_0202390C str r0, [sp, #0x0] bl FUN_020126FC str r0, [sp, #0x4] ldr r0, [sp, #0x0] add r6, r1, #0x0 bl FUN_02028930 str r0, [sp, #0x8] ldr r0, [r5, #0x4] ldr r1, [r5, #0x8] ldr r2, [sp, #0x4] add r3, r6, #0x0 bl FUN_020127C0 mov r2, #0x3c mov r3, #0x0 blx FUN_020EBA38 add r3, r0, #0x0 ldr r1, [sp, #0x8] ldr r2, [r5, #0x0] add r0, r4, #0x0 bl FUN_02061A8C ldr r0, [r4, #0xc] bl FUN_0202390C ldr r1, [r5, #0x0] bl FUN_02028918 add r0, r7, #0x0 bl FUN_0205F6C8 ldr r1, [r5, #0x18] cmp r1, r0 ble _020389BA lsl r1, r1, #0x10 add r0, r7, #0x0 lsr r1, r1, #0x10 bl FUN_0205F6D8 _020389BA: add r0, r5, #0x0 bl FUN_02016A18 add sp, #0xc mov r0, #0x1 pop {r4-r7, pc} _020389C6: mov r0, #0x0 add sp, #0xc pop {r4-r7, pc} thumb_func_start FUN_020389CC FUN_020389CC: ; 0x020389CC push {r3-r7, lr} add r7, r0, #0x0 add r6, r1, #0x0 bl FUN_02046528 add r5, r0, #0x0 ldr r0, [r5, #0xc] bl LoadPlayerDataAddress str r0, [sp, #0x0] mov r0, #0x20 add r1, r0, #0x0 bl FUN_02016998 add r4, r0, #0x0 str r4, [r4, #0xc] ldr r0, [r5, #0xc] bl FUN_0202390C bl FUN_02028930 str r0, [r4, #0x0] bl FUN_020126FC str r0, [r4, #0x4] str r1, [r4, #0x8] ldr r0, [r5, #0xc] bl FUN_02029FC8 str r0, [r4, #0x14] mov r0, #0x0 str r0, [r4, #0x18] ldr r0, [sp, #0x0] bl FUN_02025084 str r0, [r4, #0x1c] lsl r1, r6, #0x18 ldr r0, [r5, #0xc] lsr r1, r1, #0x18 bl FUN_02038A3C str r0, [r4, #0x10] ldr r0, [r5, #0xc] bl FUN_02029FC8 mov r1, #0x5 bl FUN_0202A170 ldr r1, _02038A38 ; =FUN_02038914 add r0, r7, #0x0 add r2, r4, #0x0 bl FUN_0204640C pop {r3-r7, pc} .balign 4 _02038A38: .word FUN_02038914 thumb_func_start FUN_02038A3C FUN_02038A3C: ; 0x02038A3C push {r4-r7, lr} sub sp, #0x14 str r1, [sp, #0x0] bl FUN_0202881C add r4, r0, #0x0 bl FUN_0201B9D4 str r0, [sp, #0x4] add r0, r4, #0x0 bl FUN_020287A4 bl FUN_0201B9E0 ldr r0, _02038AAC ; =0x020F2BE8 add r1, sp, #0x8 mov r2, #0xc blx MI_CpuCopy8 mov r4, #0x0 mov r7, #0xc add r6, sp, #0x8 _02038A68: add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 cmp r5, #0xc bhs _02038A92 _02038A72: bl FUN_0201B9EC add r1, r7, #0x0 blx _s32_div_f lsl r0, r1, #0x18 lsr r2, r0, #0x18 ldrb r1, [r6, r4] ldrb r0, [r6, r2] strb r0, [r6, r4] add r0, r5, #0x1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 strb r1, [r6, r2] cmp r5, #0xc blo _02038A72 _02038A92: add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #0xc blo _02038A68 ldr r0, [sp, #0x4] bl FUN_0201B9E0 ldr r0, [sp, #0x0] add r1, sp, #0x8 ldrb r0, [r1, r0] add sp, #0x14 pop {r4-r7, pc} .balign 4 _02038AAC: .word 0x020F2BE8 thumb_func_start FUN_02038AB0 FUN_02038AB0: ; 0x02038AB0 push {r4, lr} bl FUN_0204652C add r4, r0, #0x0 bl FUN_0224D79C cmp r0, #0x1 bne _02038ACA add r0, r4, #0x0 bl FUN_0224D76C mov r0, #0x1 pop {r4, pc} _02038ACA: mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02038AD0 FUN_02038AD0: ; 0x02038AD0 push {r4, lr} add r4, r0, #0x0 bl FUN_02046528 add r2, r0, #0x0 ldr r1, [r2, #0xc] ldr r2, [r2, #0x8] mov r0, #0x4 bl FUN_0224D70C add r2, r0, #0x0 ldr r1, _02038AF0 ; =FUN_02038AB0 add r0, r4, #0x0 bl FUN_0204640C pop {r4, pc} .balign 4 _02038AF0: .word FUN_02038AB0 thumb_func_start FUN_02038AF4 FUN_02038AF4: ; 0x02038AF4 push {r4-r6, lr} add r5, r0, #0x0 add r0, r1, #0x0 mov r1, #0x8 add r6, r2, #0x0 bl FUN_02016998 add r4, r0, #0x0 str r6, [r4, #0x4] ldr r0, [r5, #0xc] ldr r1, _02038B18 ; =0x020F2DA4 str r0, [r4, #0x0] add r0, r5, #0x0 add r2, r4, #0x0 bl FUN_020373D4 add r0, r4, #0x0 pop {r4-r6, pc} .balign 4 _02038B18: .word 0x020F2DA4 thumb_func_start FUN_02038B1C FUN_02038B1C: ; 0x02038B1C push {r3-r4} mov r3, #0x0 strb r3, [r0, #0x1] str r3, [r0, #0x8] strb r3, [r0, #0x0] str r3, [r0, #0x4] str r1, [r0, #0x5c] str r2, [r0, #0x60] add r1, r0, #0x0 add r4, r3, #0x0 _02038B30: add r3, r3, #0x1 str r4, [r1, #0x64] add r1, r1, #0x4 cmp r3, #0x4 blo _02038B30 add r2, r0, #0x0 mov r1, #0x0 _02038B3E: add r4, r4, #0x1 str r1, [r2, #0xc] add r2, r2, #0x4 cmp r4, #0x14 blo _02038B3E str r1, [r0, #0x74] pop {r3-r4} bx lr .balign 4 thumb_func_start FUN_02038B50 FUN_02038B50: ; 0x02038B50 str r1, [r0, #0x8] mov r1, #0x1 strb r1, [r0, #0x1] add r0, r1, #0x0 bx lr .balign 4 thumb_func_start FUN_02038B5C FUN_02038B5C: ; 0x02038B5C mov r2, #0x2 strb r2, [r0, #0x1] str r1, [r0, #0x4] bx lr thumb_func_start FUN_02038B64 FUN_02038B64: ; 0x02038B64 mov r1, #0x0 strb r1, [r0, #0x1] str r1, [r0, #0x8] bx lr thumb_func_start FUN_02038B6C FUN_02038B6C: ; 0x02038B6C str r1, [r0, #0x74] bx lr thumb_func_start FUN_02038B70 FUN_02038B70: ; 0x02038B70 push {r4, lr} add r4, r0, #0x0 ldrb r1, [r4, #0x1] cmp r1, #0x0 bne _02038B7E mov r0, #0x0 pop {r4, pc} _02038B7E: beq _02038B8A cmp r1, #0x1 beq _02038BA6 cmp r1, #0x2 beq _02038B8E b _02038BD8 _02038B8A: mov r0, #0x0 pop {r4, pc} _02038B8E: ldr r1, [r4, #0x4] cmp r1, #0x0 beq _02038BA2 blx r1 cmp r0, #0x1 bne _02038B9E mov r0, #0x1 strb r0, [r4, #0x1] _02038B9E: mov r0, #0x1 pop {r4, pc} _02038BA2: mov r0, #0x1 strb r0, [r4, #0x1] _02038BA6: ldr r0, [r4, #0x8] cmp r0, #0x0 bne _02038BB2 mov r0, #0x0 strb r0, [r4, #0x1] pop {r4, pc} _02038BB2: add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 ldr r0, [r4, #0x60] cmp r1, r0 blo _02038BCA bl ErrorHandling mov r0, #0x0 strb r0, [r4, #0x1] pop {r4, pc} _02038BCA: ldr r2, [r4, #0x5c] lsl r1, r1, #0x2 ldr r1, [r2, r1] add r0, r4, #0x0 blx r1 cmp r0, #0x1 bne _02038BA6 _02038BD8: mov r0, #0x1 pop {r4, pc} thumb_func_start FUN_02038BDC FUN_02038BDC: ; 0x02038BDC ldrb r3, [r0, #0x0] add r2, r3, #0x1 cmp r2, #0x14 blt _02038BE8 mov r0, #0x1 bx lr _02038BE8: lsl r2, r3, #0x2 add r2, r0, r2 str r1, [r2, #0xc] ldrb r1, [r0, #0x0] add r1, r1, #0x1 strb r1, [r0, #0x0] mov r0, #0x0 bx lr thumb_func_start FUN_02038BF8 FUN_02038BF8: ; 0x02038BF8 ldrb r1, [r0, #0x0] cmp r1, #0x0 bne _02038C02 mov r0, #0x0 bx lr _02038C02: sub r1, r1, #0x1 strb r1, [r0, #0x0] ldrb r1, [r0, #0x0] lsl r1, r1, #0x2 add r0, r0, r1 ldr r0, [r0, #0xc] bx lr thumb_func_start FUN_02038C10 FUN_02038C10: ; 0x02038C10 str r1, [r0, #0x8] bx lr thumb_func_start FUN_02038C14 FUN_02038C14: ; 0x02038C14 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x8] bl FUN_02038BDC str r4, [r5, #0x8] pop {r3-r5, pc} thumb_func_start FUN_02038C24 FUN_02038C24: ; 0x02038C24 push {r4, lr} add r4, r0, #0x0 bl FUN_02038BF8 str r0, [r4, #0x8] pop {r4, pc} thumb_func_start FUN_02038C30 FUN_02038C30: ; 0x02038C30 ldr r1, [r0, #0x8] add r3, r1, #0x1 str r3, [r0, #0x8] ldrb r2, [r1, #0x0] add r1, r3, #0x1 str r1, [r0, #0x8] ldrb r0, [r3, #0x0] lsl r0, r0, #0x8 add r0, r2, r0 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bx lr thumb_func_start FUN_02038C48 FUN_02038C48: ; 0x02038C48 push {r4-r5} ldr r1, [r0, #0x8] add r2, r1, #0x1 str r2, [r0, #0x8] ldrb r3, [r1, #0x0] add r1, r2, #0x1 add r5, r1, #0x1 str r1, [r0, #0x8] ldrb r2, [r2, #0x0] add r4, r5, #0x1 str r5, [r0, #0x8] ldrb r1, [r1, #0x0] str r4, [r0, #0x8] ldrb r0, [r5, #0x0] mov r4, #0x0 add r0, r4, r0 lsl r0, r0, #0x8 add r0, r0, r1 lsl r0, r0, #0x8 add r0, r0, r2 lsl r0, r0, #0x8 add r0, r0, r3 pop {r4-r5} bx lr thumb_func_start FUN_02038C78 FUN_02038C78: ; 0x02038C78 push {r3-r7, lr} add r5, r0, #0x0 add r6, r1, #0x0 add r7, r2, #0x0 bl FUN_02038E20 add r4, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 add r3, r7, #0x0 bl FUN_02038E60 ldr r1, _02038CA4 ; =FUN_02038D48 add r0, r5, #0x0 add r2, r4, #0x0 bl FUN_020463CC pop {r3-r7, pc} nop _02038CA4: .word FUN_02038D48 thumb_func_start FUN_02038CA8 FUN_02038CA8: ; 0x02038CA8 push {r4-r6, lr} ldr r0, [r0, #0x10] add r5, r1, #0x0 add r4, r2, #0x0 add r6, r3, #0x0 bl FUN_0204652C ldr r2, [sp, #0x1c] mov r1, #0x1c add r3, r2, #0x0 add r0, #0x50 mul r3, r1 add r1, r0, r3 str r4, [r0, r3] ldr r0, [sp, #0x10] str r6, [r1, #0x4] str r0, [r1, #0x8] ldr r0, [sp, #0x14] str r0, [r1, #0xc] ldr r0, [sp, #0x18] str r0, [r1, #0x10] str r5, [r1, #0x14] pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02038CD8 FUN_02038CD8: ; 0x02038CD8 push {r4-r7, lr} sub sp, #0xc add r6, r0, #0x0 add r7, r1, #0x0 str r2, [sp, #0x4] add r5, r3, #0x0 bl FUN_02046528 str r0, [sp, #0x8] bl FUN_02038E20 add r4, r0, #0x0 ldr r0, [sp, #0x8] ldr r3, [sp, #0x4] add r1, r4, #0x0 add r2, r7, #0x0 str r5, [sp, #0x0] bl FUN_02038E60 ldr r1, _02038D0C ; =FUN_02038D48 add r0, r6, #0x0 add r2, r4, #0x0 bl FUN_0204640C add sp, #0xc pop {r4-r7, pc} .balign 4 _02038D0C: .word FUN_02038D48 thumb_func_start FUN_02038D10 FUN_02038D10: ; 0x02038D10 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 add r6, r1, #0x0 add r7, r2, #0x0 bl FUN_02046528 str r0, [sp, #0x4] bl FUN_02038E20 add r4, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] ldr r0, [sp, #0x4] add r1, r4, #0x0 add r2, r6, #0x0 add r3, r7, #0x0 bl FUN_02038E60 ldr r1, _02038D44 ; =FUN_02038D48 add r0, r5, #0x0 add r2, r4, #0x0 bl FUN_020463EC add sp, #0x8 pop {r3-r7, pc} .balign 4 _02038D44: .word FUN_02038D48 thumb_func_start FUN_02038D48 FUN_02038D48: ; 0x02038D48 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 bl FUN_0204652C add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02046528 ldrb r1, [r4, #0x4] str r0, [sp, #0x0] cmp r1, #0x0 beq _02038D68 cmp r1, #0x1 beq _02038D9E b _02038E1A _02038D68: ldrh r1, [r4, #0xa] bl FUN_02038EB0 str r0, [r4, #0x38] mov r0, #0x1 strb r0, [r4, #0x9] mov r0, #0x8 mov r1, #0x40 mov r2, #0xb bl FUN_0200AA90 str r0, [r4, #0x40] mov r0, #0x1 lsl r0, r0, #0xa mov r1, #0xb bl FUN_020219F4 str r0, [r4, #0x44] mov r0, #0x1 lsl r0, r0, #0xa mov r1, #0xb bl FUN_020219F4 str r0, [r4, #0x48] ldrb r0, [r4, #0x4] add r0, r0, #0x1 strb r0, [r4, #0x4] _02038D9E: mov r0, #0x0 add r7, r4, #0x0 str r0, [sp, #0x4] add r5, r4, #0x0 add r7, #0x9 _02038DA8: ldr r6, [r5, #0x38] cmp r6, #0x0 beq _02038DD2 add r0, r6, #0x0 bl FUN_02038B70 cmp r0, #0x0 bne _02038DD2 add r0, r6, #0x0 bl FUN_02038E48 ldrb r0, [r4, #0x9] cmp r0, #0x0 bne _02038DC8 bl ErrorHandling _02038DC8: mov r0, #0x0 str r0, [r5, #0x38] ldrb r0, [r7, #0x0] sub r0, r0, #0x1 strb r0, [r7, #0x0] _02038DD2: ldr r0, [sp, #0x4] add r5, r5, #0x4 add r0, r0, #0x1 str r0, [sp, #0x4] cmp r0, #0x2 blt _02038DA8 ldrb r0, [r4, #0x9] cmp r0, #0x0 bne _02038E1A add r0, r4, #0x0 add r0, #0xa4 ldr r5, [r0, #0x0] ldr r0, [r4, #0x40] bl FUN_0200AB18 ldr r0, [r4, #0x44] bl FUN_02021A20 ldr r0, [r4, #0x48] bl FUN_02021A20 mov r0, #0x0 str r0, [r4, #0x0] add r0, r4, #0x0 bl FUN_02016A18 cmp r5, #0x0 beq _02038E14 ldr r0, [sp, #0x0] blx r5 add sp, #0x8 mov r0, #0x0 pop {r3-r7, pc} _02038E14: add sp, #0x8 mov r0, #0x1 pop {r3-r7, pc} _02038E1A: mov r0, #0x0 add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_02038E20 FUN_02038E20: ; 0x02038E20 push {r4, lr} mov r0, #0xb mov r1, #0xdc bl FUN_02016998 add r4, r0, #0x0 bne _02038E32 bl ErrorHandling _02038E32: add r0, r4, #0x0 mov r1, #0x0 mov r2, #0xdc blx FUN_020DF4A4 ldr r0, _02038E44 ; =0x0003643F str r0, [r4, #0x0] add r0, r4, #0x0 pop {r4, pc} .balign 4 _02038E44: .word 0x0003643F thumb_func_start FUN_02038E48 FUN_02038E48: ; 0x02038E48 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x78] bl FUN_0200A8B8 ldr r0, [r4, #0x7c] bl FUN_02016A18 add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} thumb_func_start FUN_02038E60 FUN_02038E60: ; 0x02038E60 push {r3-r7, lr} add r5, r1, #0x0 add r7, r0, #0x0 add r0, r5, #0x0 mov r1, #0x36 add r4, r2, #0x0 add r6, r3, #0x0 bl FUN_02039300 str r0, [sp, #0x0] ldr r0, [r7, #0x38] bl FUN_020552F8 str r0, [r5, #0x28] str r6, [r5, #0x2c] ldr r0, [sp, #0x18] strh r4, [r5, #0xa] str r0, [r5, #0x34] cmp r6, #0x0 beq _02038E92 add r0, r6, #0x0 bl FUN_02058448 ldr r1, [sp, #0x0] strh r0, [r1, #0x0] _02038E92: mov r0, #0x7d lsl r0, r0, #0x6 cmp r4, r0 blo _02038EA8 ldr r0, _02038EAC ; =0x0000225F cmp r4, r0 bhi _02038EA8 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_020396E8 _02038EA8: pop {r3-r7, pc} nop _02038EAC: .word 0x0000225F thumb_func_start FUN_02038EB0 FUN_02038EB0: ; 0x02038EB0 push {r4-r6, lr} add r5, r0, #0x0 add r6, r1, #0x0 mov r0, #0xb mov r1, #0x84 bl FUN_02016998 add r4, r0, #0x0 bne _02038EC6 bl ErrorHandling _02038EC6: ldr r2, _02038EE4 ; =0x020F34DC ldr r1, _02038EE8 ; =0x020F355C ldr r2, [r2, #0x0] add r0, r4, #0x0 bl FUN_02038B1C add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 mov r3, #0x0 bl FUN_02038EEC add r0, r4, #0x0 pop {r4-r6, pc} nop _02038EE4: .word 0x020F34DC _02038EE8: .word 0x020F355C thumb_func_start FUN_02038EEC FUN_02038EEC: ; 0x02038EEC push {r4-r6, lr} add r4, r1, #0x0 add r3, r4, #0x0 add r5, r0, #0x0 add r3, #0x80 str r5, [r3, #0x0] bl FUN_02038F18 add r6, r0, #0x0 ldr r1, [r4, #0x7c] add r0, r4, #0x0 bl FUN_02038B50 add r0, r4, #0x0 add r1, r6, #0x0 bl FUN_02039484 ldr r1, [r5, #0x10] add r0, r4, #0x0 bl FUN_02038B6C pop {r4-r6, pc} thumb_func_start FUN_02038F18 FUN_02038F18: ; 0x02038F18 push {r3-r5, lr} ldr r3, _02039210 ; =0x0000283C add r4, r2, #0x0 cmp r4, r3 blo _02038F36 mov r3, #0x1f ldr r2, _02039214 ; =0x000003D1 lsl r3, r3, #0x4 bl FUN_020392B4 ldr r0, _02039210 ; =0x0000283C sub r0, r4, r0 lsl r0, r0, #0x10 lsr r4, r0, #0x10 b _0203920A _02038F36: add r2, r3, #0x0 sub r2, #0x64 cmp r4, r2 blo _02038F52 ldr r2, _02039218 ; =0x00000175 add r3, r2, #0x0 sub r3, #0x29 bl FUN_020392B4 ldr r0, _0203921C ; =0x000027D8 sub r0, r4, r0 lsl r0, r0, #0x10 lsr r4, r0, #0x10 b _0203920A _02038F52: add r2, r3, #0x0 sub r2, #0x96 cmp r4, r2 blo _02038F6C ldr r2, _02039220 ; =0x00000412 ldr r3, _02039224 ; =0x00000232 bl FUN_020392B4 ldr r0, _02039228 ; =0x000027A6 sub r0, r4, r0 lsl r0, r0, #0x10 lsr r4, r0, #0x10 b _0203920A _02038F6C: sub r3, #0xc8 cmp r4, r3 blo _02038F84 ldr r2, _0203922C ; =0x00000411 ldr r3, _02039230 ; =0x00000233 bl FUN_020392B4 ldr r0, _02039234 ; =0x00002774 sub r0, r4, r0 lsl r0, r0, #0x10 lsr r4, r0, #0x10 b _0203920A _02038F84: ldr r3, _02039238 ; =0x00002710 cmp r4, r3 blo _02038F9E ldr r2, _0203923C ; =0x00000177 add r3, r2, #0x0 sub r3, #0x29 bl FUN_020392B4 ldr r0, _02039238 ; =0x00002710 sub r0, r4, r0 lsl r0, r0, #0x10 lsr r4, r0, #0x10 b _0203920A _02038F9E: add r2, r3, #0x0 sub r2, #0x32 cmp r4, r2 blo _02038FBC mov r2, #0x5e lsl r2, r2, #0x2 add r3, r2, #0x0 sub r3, #0x29 bl FUN_020392B4 ldr r0, _02039240 ; =0x000026DE sub r0, r4, r0 lsl r0, r0, #0x10 lsr r4, r0, #0x10 b _0203920A _02038FBC: add r2, r3, #0x0 sub r2, #0x64 cmp r4, r2 blo _02038FD6 ldr r2, _02039244 ; =0x0000016D mov r3, #0xc7 bl FUN_020392B4 ldr r0, _02039248 ; =0x000026AC sub r0, r4, r0 lsl r0, r0, #0x10 lsr r4, r0, #0x10 b _0203920A _02038FD6: add r2, r3, #0x0 sub r2, #0xc8 cmp r4, r2 blo _02038FF0 mov r2, #0xce mov r3, #0xcb bl FUN_020392B4 ldr r0, _0203924C ; =0x00002648 sub r0, r4, r0 lsl r0, r0, #0x10 lsr r4, r0, #0x10 b _0203920A _02038FF0: ldr r5, _02039250 ; =0x000025E4 cmp r4, r5 blo _0203900A ldr r2, _02039254 ; =0x00000183 add r3, r2, #0x0 sub r3, #0x9 bl FUN_020392B4 add r0, r5, #0x0 sub r0, r4, r0 lsl r0, r0, #0x10 lsr r4, r0, #0x10 b _0203920A _0203900A: add r2, r5, #0x0 sub r2, #0x64 cmp r4, r2 blo _02039026 ldr r2, _02039258 ; =0x00000179 mov r3, #0xc7 bl FUN_020392B4 add r0, r5, #0x0 sub r0, #0x64 sub r0, r4, r0 lsl r0, r0, #0x10 lsr r4, r0, #0x10 b _0203920A _02039026: sub r5, #0xc8 cmp r4, r5 blo _02039042 mov r2, #0x1d lsl r2, r2, #0x4 add r3, r2, #0x0 add r3, #0x1c bl FUN_020392B4 ldr r0, _0203925C ; =0x0000251C sub r0, r4, r0 lsl r0, r0, #0x10 lsr r4, r0, #0x10 b _0203920A _02039042: ldr r5, _02039260 ; =0x000024B8 cmp r4, r5 blo _0203905C ldr r2, _02039264 ; =0x00000187 add r3, r2, #0x0 sub r3, #0xa bl FUN_020392B4 add r0, r5, #0x0 sub r0, r4, r0 lsl r0, r0, #0x10 lsr r4, r0, #0x10 b _0203920A _0203905C: add r2, r5, #0x0 sub r2, #0x64 cmp r4, r2 blo _0203907C mov r2, #0x5d lsl r2, r2, #0x2 add r3, r2, #0x0 sub r3, #0x2b bl FUN_020392B4 add r0, r5, #0x0 sub r0, #0x64 sub r0, r4, r0 lsl r0, r0, #0x10 lsr r4, r0, #0x10 b _0203920A _0203907C: sub r5, #0xc8 cmp r4, r5 blo _02039098 mov r2, #0x61 lsl r2, r2, #0x2 add r3, r2, #0x0 sub r3, #0x9 bl FUN_020392B4 ldr r0, _02039268 ; =0x000023F0 sub r0, r4, r0 lsl r0, r0, #0x10 lsr r4, r0, #0x10 b _0203920A _02039098: ldr r2, _0203926C ; =0x0000238C cmp r4, r2 blo _020390B0 mov r2, #0x0 mov r3, #0x9 bl FUN_020392B4 ldr r0, _0203926C ; =0x0000238C sub r0, r4, r0 lsl r0, r0, #0x10 lsr r4, r0, #0x10 b _0203920A _020390B0: add r5, r2, #0x0 sub r5, #0x64 cmp r4, r5 blo _020390CA mov r2, #0xcf add r3, r2, #0x0 bl FUN_020392B4 ldr r0, _02039270 ; =0x00002328 sub r0, r4, r0 lsl r0, r0, #0x10 lsr r4, r0, #0x10 b _0203920A _020390CA: add r5, r2, #0x0 sub r5, #0x82 cmp r4, r5 blo _020390E4 ldr r2, _02039274 ; =0x00000186 mov r3, #0x7 bl FUN_020392B4 ldr r0, _02039278 ; =0x0000230A sub r0, r4, r0 lsl r0, r0, #0x10 lsr r4, r0, #0x10 b _0203920A _020390E4: add r5, r2, #0x0 sub r5, #0x96 cmp r4, r5 blo _02039100 ldr r2, _0203927C ; =0x000001CF add r3, r2, #0x0 add r3, #0x17 bl FUN_020392B4 ldr r0, _02039280 ; =0x000022F6 sub r0, r4, r0 lsl r0, r0, #0x10 lsr r4, r0, #0x10 b _0203920A _02039100: sub r2, #0xc8 cmp r4, r2 blo _0203911A ldr r2, _02039284 ; =0x00000185 add r3, r2, #0x0 sub r3, #0x9 bl FUN_020392B4 ldr r0, _02039288 ; =0x000022C4 sub r0, r4, r0 lsl r0, r0, #0x10 lsr r4, r0, #0x10 b _0203920A _0203911A: ldr r2, _0203928C ; =0x00002260 cmp r4, r2 blo _02039134 ldr r2, _02039290 ; =0x000001CE add r3, r2, #0x0 add r3, #0x17 bl FUN_020392B4 ldr r0, _0203928C ; =0x00002260 sub r0, r4, r0 lsl r0, r0, #0x10 lsr r4, r0, #0x10 b _0203920A _02039134: mov r2, #0x7d lsl r2, r2, #0x6 cmp r4, r2 blo _02039152 ldr r2, _02039294 ; =0x00000176 add r3, r2, #0x0 sub r3, #0x29 bl FUN_020392B4 mov r0, #0x7d lsl r0, r0, #0x6 sub r0, r4, r0 lsl r0, r0, #0x10 lsr r4, r0, #0x10 b _0203920A _02039152: ldr r5, _02039298 ; =0x00001B58 cmp r4, r5 blo _0203916C ldr r2, _0203929C ; =0x00000172 add r3, r2, #0x0 sub r3, #0x2d bl FUN_020392B4 add r0, r5, #0x0 sub r0, r4, r0 lsl r0, r0, #0x10 lsr r4, r0, #0x10 b _0203920A _0203916C: lsr r5, r3, #0x1 cmp r4, r5 blo _02039186 mov r2, #0x41 lsl r2, r2, #0x4 mov r3, #0xc7 bl FUN_020392B4 ldr r0, _020392A0 ; =0x00001388 sub r0, r4, r0 lsl r0, r0, #0x10 lsr r4, r0, #0x10 b _0203920A _02039186: ldr r5, _020392A4 ; =0x00000BB8 cmp r4, r5 blo _020391A0 mov r2, #0x41 lsl r2, r2, #0x4 mov r3, #0xc7 bl FUN_020392B4 add r0, r5, #0x0 sub r0, r4, r0 lsl r0, r0, #0x10 lsr r4, r0, #0x10 b _0203920A _020391A0: sub r5, #0xc8 cmp r4, r5 blo _020391BC ldr r2, _020392A8 ; =0x0000017A add r3, r2, #0x0 sub r3, #0x1c bl FUN_020392B4 mov r0, #0xaf lsl r0, r0, #0x4 sub r0, r4, r0 lsl r0, r0, #0x10 lsr r4, r0, #0x10 b _0203920A _020391BC: lsr r3, r3, #0x2 cmp r4, r3 blo _020391D4 mov r2, #0x1 mov r3, #0xd bl FUN_020392B4 ldr r0, _020392AC ; =0x000009C4 sub r0, r4, r0 lsl r0, r0, #0x10 lsr r4, r0, #0x10 b _0203920A _020391D4: lsr r2, r2, #0x2 cmp r4, r2 blo _020391EE mov r2, #0xcd mov r3, #0xc7 bl FUN_020392B4 mov r0, #0x7d lsl r0, r0, #0x4 sub r0, r4, r0 lsl r0, r0, #0x10 lsr r4, r0, #0x10 b _0203920A _020391EE: cmp r4, #0x1 blo _020391FE bl FUN_020392D8 sub r0, r4, #0x1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 b _0203920A _020391FE: ldr r2, _020392B0 ; =0x00000171 add r3, r2, #0x0 sub r3, #0x34 bl FUN_020392B4 mov r4, #0x0 _0203920A: add r0, r4, #0x0 pop {r3-r5, pc} nop _02039210: .word 0x0000283C _02039214: .word 0x000003D1 _02039218: .word 0x00000175 _0203921C: .word 0x000027D8 _02039220: .word 0x00000412 _02039224: .word 0x00000232 _02039228: .word 0x000027A6 _0203922C: .word 0x00000411 _02039230: .word 0x00000233 _02039234: .word 0x00002774 _02039238: .word 0x00002710 _0203923C: .word 0x00000177 _02039240: .word 0x000026DE _02039244: .word 0x0000016D _02039248: .word 0x000026AC _0203924C: .word 0x00002648 _02039250: .word 0x000025E4 _02039254: .word 0x00000183 _02039258: .word 0x00000179 _0203925C: .word 0x0000251C _02039260: .word 0x000024B8 _02039264: .word 0x00000187 _02039268: .word 0x000023F0 _0203926C: .word 0x0000238C _02039270: .word 0x00002328 _02039274: .word 0x00000186 _02039278: .word 0x0000230A _0203927C: .word 0x000001CF _02039280: .word 0x000022F6 _02039284: .word 0x00000185 _02039288: .word 0x000022C4 _0203928C: .word 0x00002260 _02039290: .word 0x000001CE _02039294: .word 0x00000176 _02039298: .word 0x00001B58 _0203929C: .word 0x00000172 _020392A0: .word 0x00001388 _020392A4: .word 0x00000BB8 _020392A8: .word 0x0000017A _020392AC: .word 0x000009C4 _020392B0: .word 0x00000171 thumb_func_start FUN_020392B4 FUN_020392B4: ; 0x020392B4 push {r3-r5, lr} add r5, r1, #0x0 add r1, r2, #0x0 add r4, r3, #0x0 mov r0, #0xa mov r2, #0xb bl FUN_0200650C str r0, [r5, #0x7c] mov r0, #0x1 mov r1, #0x1a add r2, r4, #0x0 mov r3, #0xb bl FUN_0200A86C str r0, [r5, #0x78] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020392D8 FUN_020392D8: ; 0x020392D8 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0x1c] add r4, r1, #0x0 ldr r0, [r0, #0x0] bl FUN_0203949C str r0, [r4, #0x7c] ldr r0, [r5, #0x1c] ldr r0, [r0, #0x0] bl FUN_020394B0 add r2, r0, #0x0 mov r0, #0x1 mov r1, #0x1a mov r3, #0xb bl FUN_0200A86C str r0, [r4, #0x78] pop {r3-r5, pc} thumb_func_start FUN_02039300 FUN_02039300: ; 0x02039300 push {r3, lr} cmp r1, #0x36 bls _02039308 b _02039430 _02039308: add r2, r1, r1 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _02039314: ; jump table (using 16-bit offset) .short _02039382 - _02039314 - 2; case 0 .short _02039386 - _02039314 - 2; case 1 .short _0203938A - _02039314 - 2; case 2 .short _0203938E - _02039314 - 2; case 3 .short _02039392 - _02039314 - 2; case 4 .short _02039396 - _02039314 - 2; case 5 .short _0203939A - _02039314 - 2; case 6 .short _0203939E - _02039314 - 2; case 7 .short _020393A2 - _02039314 - 2; case 8 .short _020393A6 - _02039314 - 2; case 9 .short _020393AA - _02039314 - 2; case 10 .short _020393AE - _02039314 - 2; case 11 .short _020393B2 - _02039314 - 2; case 12 .short _020393B6 - _02039314 - 2; case 13 .short _020393BA - _02039314 - 2; case 14 .short _020393BE - _02039314 - 2; case 15 .short _020393C2 - _02039314 - 2; case 16 .short _020393C6 - _02039314 - 2; case 17 .short _020393CA - _02039314 - 2; case 18 .short _020393CE - _02039314 - 2; case 19 .short _020393D2 - _02039314 - 2; case 20 .short _020393D6 - _02039314 - 2; case 21 .short _020393DA - _02039314 - 2; case 22 .short _020393DE - _02039314 - 2; case 23 .short _020393E2 - _02039314 - 2; case 24 .short _020393E6 - _02039314 - 2; case 25 .short _020393EA - _02039314 - 2; case 26 .short _020393EE - _02039314 - 2; case 27 .short _020393F2 - _02039314 - 2; case 28 .short _020393F6 - _02039314 - 2; case 29 .short _020393FA - _02039314 - 2; case 30 .short _020393FE - _02039314 - 2; case 31 .short _02039402 - _02039314 - 2; case 32 .short _02039406 - _02039314 - 2; case 33 .short _0203940A - _02039314 - 2; case 34 .short _0203940E - _02039314 - 2; case 35 .short _02039412 - _02039314 - 2; case 36 .short _02039416 - _02039314 - 2; case 37 .short _0203941A - _02039314 - 2; case 38 .short _0203941E - _02039314 - 2; case 39 .short _02039422 - _02039314 - 2; case 40 .short _02039426 - _02039314 - 2; case 41 .short _02039426 - _02039314 - 2; case 42 .short _02039426 - _02039314 - 2; case 43 .short _02039426 - _02039314 - 2; case 44 .short _02039426 - _02039314 - 2; case 45 .short _02039426 - _02039314 - 2; case 46 .short _02039426 - _02039314 - 2; case 47 .short _02039426 - _02039314 - 2; case 48 .short _02039426 - _02039314 - 2; case 49 .short _02039426 - _02039314 - 2; case 50 .short _02039426 - _02039314 - 2; case 51 .short _02039426 - _02039314 - 2; case 52 .short _02039426 - _02039314 - 2; case 53 .short _02039426 - _02039314 - 2; case 54 _02039382: add r0, #0x10 pop {r3, pc} _02039386: add r0, #0x14 pop {r3, pc} _0203938A: add r0, #0x24 pop {r3, pc} _0203938E: add r0, r0, #0x5 pop {r3, pc} _02039392: add r0, r0, #0x6 pop {r3, pc} _02039396: add r0, r0, #0x7 pop {r3, pc} _0203939A: add r0, #0x8 pop {r3, pc} _0203939E: add r0, #0x9 pop {r3, pc} _020393A2: add r0, #0xa pop {r3, pc} _020393A6: add r0, #0x28 pop {r3, pc} _020393AA: add r0, #0x2c pop {r3, pc} _020393AE: add r0, #0x30 pop {r3, pc} _020393B2: add r0, #0x34 pop {r3, pc} _020393B6: add r0, #0x38 pop {r3, pc} _020393BA: add r0, #0x3c pop {r3, pc} _020393BE: add r0, #0x40 pop {r3, pc} _020393C2: add r0, #0x44 pop {r3, pc} _020393C6: add r0, #0x48 pop {r3, pc} _020393CA: add r0, #0x4c pop {r3, pc} _020393CE: add r0, #0xa8 pop {r3, pc} _020393D2: add r0, #0xac pop {r3, pc} _020393D6: add r0, #0xb0 pop {r3, pc} _020393DA: add r0, #0xb4 pop {r3, pc} _020393DE: add r0, #0xc pop {r3, pc} _020393E2: add r0, #0x50 pop {r3, pc} _020393E6: add r0, #0x54 pop {r3, pc} _020393EA: add r0, #0x58 pop {r3, pc} _020393EE: add r0, #0x5c pop {r3, pc} _020393F2: add r0, #0x60 pop {r3, pc} _020393F6: add r0, #0x64 pop {r3, pc} _020393FA: add r0, #0x68 pop {r3, pc} _020393FE: add r0, #0x6c pop {r3, pc} _02039402: add r0, #0x70 pop {r3, pc} _02039406: add r0, #0x74 pop {r3, pc} _0203940A: add r0, #0x78 pop {r3, pc} _0203940E: add r0, #0x7c pop {r3, pc} _02039412: add r0, #0x80 pop {r3, pc} _02039416: add r0, #0x84 pop {r3, pc} _0203941A: add r0, #0xb8 pop {r3, pc} _0203941E: add r0, #0xc8 pop {r3, pc} _02039422: add r0, #0xd8 pop {r3, pc} _02039426: sub r1, #0x29 add r0, #0x88 lsl r1, r1, #0x1 add r0, r0, r1 pop {r3, pc} _02039430: bl ErrorHandling mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_02039438 FUN_02039438: ; 0x02039438 push {r3-r5, lr} ldr r0, [r0, #0x10] add r5, r1, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _0203945C ; =0x0003643F cmp r1, r0 beq _02039450 bl ErrorHandling _02039450: add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_02039300 pop {r3-r5, pc} nop _0203945C: .word 0x0003643F thumb_func_start FUN_02039460 FUN_02039460: ; 0x02039460 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0x10] bl FUN_0204652C add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02035068 cmp r0, #0x1 bne _0203947C ldr r0, _02039480 ; =FUN_020351A0 add r4, #0xa4 str r0, [r4, #0x0] _0203947C: pop {r3-r5, pc} nop _02039480: .word FUN_020351A0 thumb_func_start FUN_02039484 FUN_02039484: ; 0x02039484 push {r4, lr} add r4, r0, #0x0 ldr r2, [r4, #0x8] lsl r1, r1, #0x2 add r1, r2, r1 str r1, [r4, #0x8] bl FUN_02038C48 ldr r1, [r4, #0x8] add r0, r1, r0 str r0, [r4, #0x8] pop {r4, pc} thumb_func_start FUN_0203949C FUN_0203949C: ; 0x0203949C push {r3, lr} bl FUN_02034788 add r1, r0, #0x0 mov r0, #0xa mov r2, #0xb bl FUN_0200650C pop {r3, pc} .balign 4 thumb_func_start FUN_020394B0 FUN_020394B0: ; 0x020394B0 ldr r3, _020394B4 ; =FUN_02034774 bx r3 .balign 4 _020394B4: .word FUN_02034774 thumb_func_start FUN_020394B8 FUN_020394B8: ; 0x020394B8 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] add r4, r1, #0x0 bl FUN_020462AC mov r1, #0x1 lsl r1, r1, #0xe cmp r4, r1 bhs _020394D0 mov r0, #0x0 pop {r3-r5, pc} _020394D0: lsl r1, r1, #0x1 cmp r4, r1 bhs _020394DE add r1, r4, #0x0 bl FUN_02046380 pop {r3-r5, pc} _020394DE: ldr r1, _020394EC ; =0x00007FD7 add r0, r5, #0x0 sub r1, r4, r1 bl FUN_02039438 pop {r3-r5, pc} nop _020394EC: .word 0x00007FD7 thumb_func_start FUN_020394F0 FUN_020394F0: ; 0x020394F0 push {r4, lr} add r4, r1, #0x0 bl FUN_020394B8 cmp r0, #0x0 beq _020394FE ldrh r4, [r0, #0x0] _020394FE: add r0, r4, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02039504 FUN_02039504: ; 0x02039504 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x10 blo _02039512 bl ErrorHandling _02039512: ldr r1, _02039524 ; =0x00004020 add r0, r5, #0x0 add r1, r4, r1 lsl r1, r1, #0x10 lsr r1, r1, #0x10 bl FUN_020394F0 pop {r3-r5, pc} nop _02039524: .word 0x00004020 thumb_func_start FUN_02039528 FUN_02039528: ; 0x02039528 push {r4, lr} ldr r0, [r0, #0xc] add r4, r1, #0x0 bl FUN_020462AC add r1, r4, #0x0 bl FUN_020462B8 pop {r4, pc} .balign 4 thumb_func_start FUN_0203953C FUN_0203953C: ; 0x0203953C push {r4, lr} ldr r0, [r0, #0xc] add r4, r1, #0x0 bl FUN_020462AC add r1, r4, #0x0 bl FUN_020462E4 pop {r4, pc} .balign 4 thumb_func_start FUN_02039550 FUN_02039550: ; 0x02039550 push {r4, lr} ldr r0, [r0, #0xc] add r4, r1, #0x0 bl FUN_020462AC add r1, r4, #0x0 bl FUN_0204630C pop {r4, pc} .balign 4 thumb_func_start FUN_02039564 FUN_02039564: ; 0x02039564 push {r4, lr} ldr r0, [r0, #0xc] bl FUN_020462AC mov r1, #0x1 add r4, r0, #0x0 bl FUN_02046338 mov r1, #0x0 strb r1, [r0, #0x0] strb r1, [r0, #0x1] strb r1, [r0, #0x2] strb r1, [r0, #0x3] strb r1, [r0, #0x4] strb r1, [r0, #0x5] strb r1, [r0, #0x6] strb r1, [r0, #0x7] mov r1, #0x1 add r0, r4, #0x0 lsl r1, r1, #0xe bl FUN_02046380 mov r1, #0x0 mov r2, #0x40 blx FUN_020DF4A4 pop {r4, pc} .balign 4 thumb_func_start FUN_0203959C FUN_0203959C: ; 0x0203959C push {r3, lr} ldr r0, [r0, #0xc] bl FUN_020462AC mov r1, #0xaa lsl r1, r1, #0x4 bl FUN_02046338 mov r2, #0x18 mov r1, #0x0 _020395B0: strb r1, [r0, #0x0] add r0, r0, #0x1 sub r2, r2, #0x1 bne _020395B0 pop {r3, pc} .balign 4 thumb_func_start FUN_020395BC FUN_020395BC: ; 0x020395BC push {r3-r7, lr} add r4, r1, #0x0 add r5, r0, #0x0 mov r1, #0x29 add r6, r2, #0x0 add r7, r3, #0x0 bl FUN_02039438 strh r4, [r0, #0x0] add r0, r5, #0x0 mov r1, #0x2a bl FUN_02039438 strh r6, [r0, #0x0] add r0, r5, #0x0 mov r1, #0x2b bl FUN_02039438 strh r7, [r0, #0x0] add r0, r5, #0x0 mov r1, #0x2c bl FUN_02039438 add r1, sp, #0x8 ldrh r1, [r1, #0x10] strh r1, [r0, #0x0] pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020395F4 FUN_020395F4: ; 0x020395F4 ldr r1, _02039610 ; =0x00001388 cmp r0, r1 bhs _02039604 ldr r1, _02039614 ; =0x00000BB7 sub r0, r0, r1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bx lr _02039604: sub r1, r1, #0x1 sub r0, r0, r1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bx lr nop _02039610: .word 0x00001388 _02039614: .word 0x00000BB7 thumb_func_start FUN_02039618 FUN_02039618: ; 0x02039618 ldr r1, _02039628 ; =0x00001388 cmp r0, r1 blo _02039622 mov r0, #0x1 bx lr _02039622: mov r0, #0x0 bx lr nop _02039628: .word 0x00001388 thumb_func_start FUN_0203962C FUN_0203962C: ; 0x0203962C push {r3, lr} mov r1, #0x9 bl FUN_0206AC74 cmp r0, #0x0 beq _0203963C mov r0, #0x1 pop {r3, pc} _0203963C: mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_02039640 FUN_02039640: ; 0x02039640 push {r4, lr} ldr r0, [r0, #0xc] add r4, r1, #0x0 bl FUN_020462AC mov r1, #0x55 lsl r1, r1, #0x4 add r1, r4, r1 lsl r1, r1, #0x10 lsr r1, r1, #0x10 bl FUN_020462B8 pop {r4, pc} .balign 4 thumb_func_start FUN_0203965C FUN_0203965C: ; 0x0203965C push {r4, lr} ldr r0, [r0, #0xc] add r4, r1, #0x0 bl FUN_020462AC mov r1, #0x55 lsl r1, r1, #0x4 add r1, r4, r1 lsl r1, r1, #0x10 lsr r1, r1, #0x10 bl FUN_020462E4 pop {r4, pc} .balign 4 thumb_func_start FUN_02039678 FUN_02039678: ; 0x02039678 push {r4, lr} ldr r0, [r0, #0xc] add r4, r1, #0x0 bl FUN_020462AC mov r1, #0x55 lsl r1, r1, #0x4 add r1, r4, r1 lsl r1, r1, #0x10 lsr r1, r1, #0x10 bl FUN_0204630C pop {r4, pc} .balign 4 thumb_func_start FUN_02039694 FUN_02039694: ; 0x02039694 ldr r1, _020396A0 ; =0x00001C66 sub r0, r0, r1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bx lr nop _020396A0: .word 0x00001C66 thumb_func_start FUN_020396A4 FUN_020396A4: ; 0x020396A4 mov r1, #0x7d lsl r1, r1, #0x6 sub r0, r0, r1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bx lr thumb_func_start FUN_020396B0 FUN_020396B0: ; 0x020396B0 push {r4, lr} ldr r4, _020396E4 ; =0x020F2DB4 bl FUN_020396A4 lsl r0, r0, #0x18 lsr r3, r0, #0x18 mov r1, #0x0 add r2, r4, #0x0 _020396C0: ldrh r0, [r2, #0x6] cmp r3, r0 beq _020396CE add r1, r1, #0x1 add r2, #0x8 cmp r1, #0xe5 blo _020396C0 _020396CE: cmp r1, #0xe5 blo _020396DA bl ErrorHandling mov r0, #0x0 pop {r4, pc} _020396DA: lsl r0, r1, #0x3 add r0, r4, r0 ldrb r0, [r0, #0x3] pop {r4, pc} nop _020396E4: .word 0x020F2DB4 thumb_func_start FUN_020396E8 FUN_020396E8: ; 0x020396E8 push {r3-r7, lr} add r5, r1, #0x0 add r4, r0, #0x0 mov r1, #0x29 bl FUN_02039300 add r7, r0, #0x0 add r0, r4, #0x0 mov r1, #0x2a bl FUN_02039300 add r6, r0, #0x0 add r0, r4, #0x0 mov r1, #0x2b bl FUN_02039300 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_020396A4 lsl r0, r0, #0x18 ldr r2, _02039750 ; =0x020F2DB4 lsr r3, r0, #0x18 mov r1, #0x0 _02039718: ldrh r0, [r2, #0x6] cmp r3, r0 beq _02039726 add r1, r1, #0x1 add r2, #0x8 cmp r1, #0xe5 blo _02039718 _02039726: cmp r1, #0xe5 blo _02039732 bl ErrorHandling mov r0, #0x0 pop {r3-r7, pc} _02039732: lsl r0, r1, #0x3 ldr r1, _02039750 ; =0x020F2DB4 ldrh r1, [r1, r0] strh r1, [r7, #0x0] ldr r1, _02039750 ; =0x020F2DB4 add r0, r1, r0 ldrb r0, [r0, #0x2] strh r0, [r6, #0x0] add r0, r5, #0x0 bl FUN_02039694 strh r0, [r4, #0x0] mov r0, #0x1 pop {r3-r7, pc} nop _02039750: .word 0x020F2DB4 thumb_func_start FUN_02039754 FUN_02039754: ; 0x02039754 push {r4-r7, lr} sub sp, #0x24 str r0, [sp, #0x0] add r4, r1, #0x0 mov r6, #0x0 bl FUN_02034AF8 add r5, r0, #0x0 add r2, r5, #0x1 mov r1, #0x6 add r0, r4, #0x0 mul r1, r2 bl FUN_02016998 str r0, [sp, #0x1c] cmp r5, #0x0 bne _02039786 mov r2, #0xff add r1, r0, #0x0 strb r2, [r1, #0x4] ldr r2, _02039870 ; =0x0000FFFF add sp, #0x24 strh r2, [r1, #0x0] strh r2, [r1, #0x2] pop {r4-r7, pc} _02039786: ldr r0, [sp, #0x0] bl FUN_02034AF0 add r4, r0, #0x0 bne _020397A0 ldr r0, [sp, #0x1c] mov r1, #0xff strb r1, [r0, #0x4] ldr r1, _02039870 ; =0x0000FFFF add sp, #0x24 strh r1, [r0, #0x0] strh r1, [r0, #0x2] pop {r4-r7, pc} _020397A0: ldr r0, [sp, #0x0] ldr r0, [r0, #0x38] bl FUN_02055320 str r0, [sp, #0x18] ldr r0, [sp, #0x0] ldr r0, [r0, #0x38] bl FUN_0205532C str r0, [sp, #0x14] ldr r0, [sp, #0x18] sub r0, r0, #0x7 str r0, [sp, #0x10] ldr r0, [sp, #0x18] add r0, r0, #0x7 str r0, [sp, #0xc] ldr r0, [sp, #0x14] sub r0, r0, #0x7 str r0, [sp, #0x8] ldr r0, [sp, #0x14] add r0, r0, #0x6 str r0, [sp, #0x4] ldr r0, [sp, #0x10] cmp r0, #0x0 bge _020397D6 add r0, r6, #0x0 str r0, [sp, #0x10] _020397D6: ldr r0, [sp, #0x8] cmp r0, #0x0 bge _020397E0 mov r0, #0x0 str r0, [sp, #0x8] _020397E0: add r0, r5, #0x1 mov r7, #0x0 str r0, [sp, #0x20] cmp r0, #0x0 ble _02039856 ldr r5, [sp, #0x1c] _020397EC: ldrh r0, [r4, #0x2] cmp r0, #0x2 bne _0203984C ldrh r0, [r4, #0x0] bl FUN_02039694 add r1, r0, #0x0 ldr r0, [sp, #0x0] bl FUN_02039528 cmp r0, #0x0 bne _0203984C ldr r1, [r4, #0x4] ldr r0, [sp, #0x10] cmp r1, r0 blt _0203984C ldr r0, [sp, #0xc] cmp r1, r0 bgt _0203984C ldr r1, [r4, #0x8] ldr r0, [sp, #0x8] cmp r1, r0 blt _0203984C ldr r0, [sp, #0x4] cmp r1, r0 bgt _0203984C ldrh r0, [r4, #0x0] bl FUN_020396B0 strb r0, [r5, #0x4] ldr r1, [r4, #0x4] ldr r0, [sp, #0x18] sub r1, r0, r1 mov r0, #0x7 sub r0, r0, r1 blx FUN_020DE3F0 strh r0, [r5, #0x0] ldr r1, [r4, #0x8] ldr r0, [sp, #0x14] sub r1, r0, r1 mov r0, #0x7 sub r0, r0, r1 blx FUN_020DE3F0 strh r0, [r5, #0x2] add r5, r5, #0x6 add r6, r6, #0x1 _0203984C: ldr r0, [sp, #0x20] add r7, r7, #0x1 add r4, #0x14 cmp r7, r0 blt _020397EC _02039856: mov r0, #0x6 add r3, r6, #0x0 mul r3, r0 ldr r0, [sp, #0x1c] mov r1, #0xff add r2, r0, r3 strb r1, [r2, #0x4] ldr r1, _02039870 ; =0x0000FFFF strh r1, [r0, r3] strh r1, [r2, #0x2] add sp, #0x24 pop {r4-r7, pc} nop _02039870: .word 0x0000FFFF thumb_func_start FUN_02039874 FUN_02039874: ; 0x02039874 ldr r3, _0203987C ; =FUN_02039880 mov r1, #0x96 lsl r1, r1, #0x6 bx r3 .balign 4 _0203987C: .word FUN_02039880 thumb_func_start FUN_02039880 FUN_02039880: ; 0x02039880 push {r4, lr} bl FUN_02038EB0 add r4, r0, #0x0 _02039888: add r0, r4, #0x0 bl FUN_02038B70 cmp r0, #0x1 beq _02039888 add r0, r4, #0x0 bl FUN_02038E48 pop {r4, pc} .balign 4 thumb_func_start FUN_0203989C FUN_0203989C: ; 0x0203989C push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_02034D2C add r1, r0, #0x0 bne _020398AE mov r0, #0x0 pop {r3-r5, pc} _020398AE: cmp r4, #0x1 bne _020398BC add r0, r5, #0x0 add r2, r4, #0x0 bl FUN_02039914 b _020398C2 _020398BC: add r1, r4, #0x0 bl _020398EC _020398C2: add r1, r0, #0x0 ldr r0, _020398E8 ; =0x0000FFFF cmp r1, r0 bne _020398CE mov r0, #0x0 pop {r3-r5, pc} _020398CE: cmp r4, #0x1 bne _020398DC add r0, r5, #0x0 mov r2, #0x0 bl FUN_02038C78 b _020398E2 _020398DC: add r0, r5, #0x0 bl FUN_02039880 _020398E2: mov r0, #0x1 pop {r3-r5, pc} nop _020398E8: .word 0x0000FFFF _020398EC: ldrb r2, [r0, #0x0] cmp r2, #0x0 bne _020398F6 ldr r0, _02039910 ; =0x0000FFFF bx lr _020398F6: cmp r2, r1 bne _02039908 ldrb r1, [r0, #0x1] ldrb r0, [r0, #0x2] lsl r0, r0, #0x8 add r0, r1, r0 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bx lr _02039908: add r0, r0, #0x5 b _020398EC thumb_func_start FUN_0203990C FUN_0203990C: ; 0x0203990C bx lr nop _02039910: .word 0x0000FFFF thumb_func_start FUN_02039914 FUN_02039914: ; 0x02039914 push {r3-r7, lr} add r5, r0, #0x0 add r4, r1, #0x0 _0203991A: ldrb r0, [r4, #0x0] cmp r0, #0x0 bne _02039924 ldr r0, _0203999C ; =0x0000FFFF pop {r3-r7, pc} _02039924: cmp r0, r2 bne _02039940 ldrb r0, [r4, #0x4] ldrb r2, [r4, #0x2] ldrb r3, [r4, #0x1] lsl r1, r0, #0x18 ldrb r0, [r4, #0x3] lsl r2, r2, #0x8 add r2, r3, r2 lsl r0, r0, #0x10 add r0, r0, r2 add r1, r1, r0 add r0, r4, #0x5 b _02039944 _02039940: add r4, r4, #0x5 b _0203991A _02039944: cmp r1, #0x0 bne _0203994C ldr r0, _0203999C ; =0x0000FFFF pop {r3-r7, pc} _0203994C: add r4, r0, r1 _0203994E: ldrb r1, [r4, #0x0] cmp r1, #0x0 bne _02039958 ldr r0, _0203999C ; =0x0000FFFF pop {r3-r7, pc} _02039958: ldrb r0, [r4, #0x1] lsl r0, r0, #0x8 add r0, r1, r0 lsl r0, r0, #0x10 lsr r1, r0, #0x10 bne _02039968 ldr r0, _0203999C ; =0x0000FFFF pop {r3-r7, pc} _02039968: ldrb r0, [r4, #0x3] ldrb r2, [r4, #0x2] lsl r0, r0, #0x8 add r0, r2, r0 lsl r0, r0, #0x10 lsr r6, r0, #0x10 add r0, r5, #0x0 bl FUN_020394F0 add r7, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_020394F0 cmp r7, r0 bne _02039996 ldrb r0, [r4, #0x5] ldrb r1, [r4, #0x4] lsl r0, r0, #0x8 add r0, r1, r0 lsl r0, r0, #0x10 lsr r0, r0, #0x10 pop {r3-r7, pc} _02039996: add r4, r4, #0x6 b _0203994E non_word_aligned_thumb_func_start FUN_0203999A FUN_0203999A: ; 0x0203999A pop {r3-r7, pc} .balign 4 _0203999C: .word 0x0000FFFF thumb_func_start FUN_020399A0 FUN_020399A0: ; 0x020399A0 mov r0, #0x0 bx lr thumb_func_start FUN_020399A4 FUN_020399A4: ; 0x020399A4 mov r0, #0x0 bx lr thumb_func_start FUN_020399A8 FUN_020399A8: ; 0x020399A8 push {r3, lr} bl FUN_02038B64 mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_020399B4 FUN_020399B4: ; 0x020399B4 push {r3-r7, lr} add r5, r0, #0x0 add r1, r5, #0x0 add r1, #0x80 ldr r6, [r1, #0x0] bl FUN_02038C30 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r4, r0, #0x0 add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_020394B8 strh r7, [r0, #0x0] ldr r1, _020399E4 ; =FUN_020399E8 add r0, r5, #0x0 str r4, [r5, #0x64] bl FUN_02038B5C mov r0, #0x1 pop {r3-r7, pc} .balign 4 _020399E4: .word FUN_020399E8 thumb_func_start FUN_020399E8 FUN_020399E8: ; 0x020399E8 push {r3, lr} add r1, r0, #0x0 ldr r1, [r1, #0x64] add r0, #0x80 lsl r1, r1, #0x10 ldr r0, [r0, #0x0] lsr r1, r1, #0x10 bl FUN_020394B8 ldrh r1, [r0, #0x0] sub r1, r1, #0x1 strh r1, [r0, #0x0] ldrh r0, [r0, #0x0] cmp r0, #0x0 bne _02039A0A mov r0, #0x1 pop {r3, pc} _02039A0A: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_02039A10 FUN_02039A10: ; 0x02039A10 push {r4, lr} add r4, r0, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394F0 mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02039A28 FUN_02039A28: ; 0x02039A28 ldr r1, [r0, #0x8] add r2, r1, #0x1 str r2, [r0, #0x8] ldrb r3, [r1, #0x0] add r1, r2, #0x1 str r1, [r0, #0x8] ldrb r2, [r2, #0x0] lsl r1, r3, #0x2 add r0, r0, r1 str r2, [r0, #0x64] mov r0, #0x0 bx lr thumb_func_start FUN_02039A40 FUN_02039A40: ; 0x02039A40 push {r3-r5, lr} add r4, r0, #0x0 ldr r2, [r4, #0x8] add r1, r2, #0x1 str r1, [r4, #0x8] ldrb r5, [r2, #0x0] bl FUN_02038C48 lsl r1, r5, #0x2 add r1, r4, r1 str r0, [r1, #0x64] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02039A5C FUN_02039A5C: ; 0x02039A5C push {r3-r5, lr} add r5, r0, #0x0 ldr r2, [r5, #0x8] add r1, r2, #0x1 str r1, [r5, #0x8] ldrb r4, [r2, #0x0] bl FUN_02038C48 ldrb r1, [r0, #0x0] lsl r0, r4, #0x2 add r0, r5, r0 str r1, [r0, #0x64] mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02039A78 FUN_02039A78: ; 0x02039A78 push {r4, lr} add r4, r0, #0x0 bl FUN_02038C48 ldr r2, [r4, #0x8] add r1, r2, #0x1 str r1, [r4, #0x8] ldrb r1, [r2, #0x0] strb r1, [r0, #0x0] mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02039A90 FUN_02039A90: ; 0x02039A90 push {r4, lr} add r4, r0, #0x0 bl FUN_02038C48 ldr r2, [r4, #0x8] add r1, r2, #0x1 str r1, [r4, #0x8] ldrb r1, [r2, #0x0] lsl r1, r1, #0x2 add r1, r4, r1 ldr r1, [r1, #0x64] strb r1, [r0, #0x0] mov r0, #0x0 pop {r4, pc} thumb_func_start FUN_02039AAC FUN_02039AAC: ; 0x02039AAC ldr r1, [r0, #0x8] add r2, r1, #0x1 str r2, [r0, #0x8] ldrb r3, [r1, #0x0] add r1, r2, #0x1 str r1, [r0, #0x8] ldrb r1, [r2, #0x0] lsl r1, r1, #0x2 add r1, r0, r1 ldr r2, [r1, #0x64] lsl r1, r3, #0x2 add r0, r0, r1 str r2, [r0, #0x64] mov r0, #0x0 bx lr .balign 4 thumb_func_start FUN_02039ACC FUN_02039ACC: ; 0x02039ACC push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C48 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C48 ldrb r0, [r0, #0x0] strb r0, [r4, #0x0] mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02039AE4 FUN_02039AE4: ; 0x02039AE4 cmp r0, r1 bhs _02039AEC mov r0, #0x0 bx lr _02039AEC: cmp r0, r1 bne _02039AF4 mov r0, #0x1 bx lr _02039AF4: mov r0, #0x2 bx lr thumb_func_start FUN_02039AF8 FUN_02039AF8: ; 0x02039AF8 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x8] add r1, r0, #0x1 str r1, [r4, #0x8] ldrb r0, [r0, #0x0] add r2, r1, #0x1 lsl r0, r0, #0x2 add r0, r4, r0 ldr r0, [r0, #0x64] str r2, [r4, #0x8] ldrb r1, [r1, #0x0] lsl r0, r0, #0x18 lsr r0, r0, #0x18 lsl r1, r1, #0x2 add r1, r4, r1 ldr r1, [r1, #0x64] lsl r1, r1, #0x18 lsr r1, r1, #0x18 bl FUN_02039AE4 strb r0, [r4, #0x2] mov r0, #0x0 pop {r4, pc} thumb_func_start FUN_02039B28 FUN_02039B28: ; 0x02039B28 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x8] add r1, r0, #0x1 str r1, [r4, #0x8] ldrb r0, [r0, #0x0] add r2, r1, #0x1 lsl r0, r0, #0x2 add r0, r4, r0 ldr r0, [r0, #0x64] str r2, [r4, #0x8] ldrb r1, [r1, #0x0] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_02039AE4 strb r0, [r4, #0x2] mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02039B50 FUN_02039B50: ; 0x02039B50 push {r3-r5, lr} add r4, r0, #0x0 ldr r2, [r4, #0x8] add r1, r2, #0x1 str r1, [r4, #0x8] ldrb r1, [r2, #0x0] lsl r1, r1, #0x2 add r1, r4, r1 ldr r1, [r1, #0x64] lsl r1, r1, #0x18 lsr r5, r1, #0x18 bl FUN_02038C48 ldrb r1, [r0, #0x0] add r0, r5, #0x0 bl FUN_02039AE4 strb r0, [r4, #0x2] mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02039B78 FUN_02039B78: ; 0x02039B78 push {r4, lr} add r4, r0, #0x0 bl FUN_02038C48 ldr r2, [r4, #0x8] ldrb r0, [r0, #0x0] add r1, r2, #0x1 str r1, [r4, #0x8] ldrb r1, [r2, #0x0] lsl r1, r1, #0x2 add r1, r4, r1 ldr r1, [r1, #0x64] lsl r1, r1, #0x18 lsr r1, r1, #0x18 bl FUN_02039AE4 strb r0, [r4, #0x2] mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02039BA0 FUN_02039BA0: ; 0x02039BA0 push {r4, lr} add r4, r0, #0x0 bl FUN_02038C48 ldr r2, [r4, #0x8] ldrb r0, [r0, #0x0] add r1, r2, #0x1 str r1, [r4, #0x8] ldrb r1, [r2, #0x0] bl FUN_02039AE4 strb r0, [r4, #0x2] mov r0, #0x0 pop {r4, pc} thumb_func_start FUN_02039BBC FUN_02039BBC: ; 0x02039BBC push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C48 ldrb r4, [r0, #0x0] add r0, r5, #0x0 bl FUN_02038C48 ldrb r1, [r0, #0x0] add r0, r4, #0x0 bl FUN_02039AE4 strb r0, [r5, #0x2] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02039BDC FUN_02039BDC: ; 0x02039BDC push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 ldrh r5, [r0, #0x0] add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_02039AE4 strb r0, [r4, #0x2] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02039C08 FUN_02039C08: ; 0x02039C08 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r1, r0, #0x0 ldrh r0, [r4, #0x0] ldrh r1, [r1, #0x0] bl FUN_02039AE4 strb r0, [r5, #0x2] mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02039C40 FUN_02039C40: ; 0x02039C40 push {r3-r7, lr} add r7, r0, #0x0 add r0, #0x80 ldr r5, [r0, #0x0] mov r1, #0x7 add r0, r5, #0x0 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0xe bl FUN_02039438 add r6, r0, #0x0 add r0, r7, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_02038EB0 str r0, [r6, #0x0] ldrb r0, [r4, #0x0] add r0, r0, #0x1 strb r0, [r4, #0x0] mov r0, #0x1 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02039C78 FUN_02039C78: ; 0x02039C78 push {r3-r7, lr} str r0, [sp, #0x0] add r0, #0x80 ldr r5, [r0, #0x0] mov r1, #0x5 add r0, r5, #0x0 bl FUN_02039438 add r6, r0, #0x0 add r0, r5, #0x0 mov r1, #0x7 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0xe bl FUN_02039438 add r7, r0, #0x0 ldr r0, [sp, #0x0] bl FUN_02038C30 add r1, r0, #0x0 mov r0, #0x1 strb r0, [r6, #0x0] add r0, r5, #0x0 bl FUN_02038EB0 str r0, [r7, #0x0] ldrb r0, [r4, #0x0] ldr r1, _02039CC4 ; =FUN_02039CC8 add r0, r0, #0x1 strb r0, [r4, #0x0] ldr r0, [sp, #0x0] bl FUN_02038B5C mov r0, #0x1 pop {r3-r7, pc} .balign 4 _02039CC4: .word FUN_02039CC8 thumb_func_start FUN_02039CC8 FUN_02039CC8: ; 0x02039CC8 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x5 bl FUN_02039438 ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _02039CDE mov r0, #0x1 pop {r3, pc} _02039CDE: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_02039CE4 FUN_02039CE4: ; 0x02039CE4 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x5 bl FUN_02039438 mov r1, #0x0 strb r1, [r0, #0x0] add r0, r1, #0x0 pop {r3, pc} thumb_func_start FUN_02039CF8 FUN_02039CF8: ; 0x02039CF8 push {r4, lr} add r4, r0, #0x0 bl FUN_02038C48 add r2, r0, #0x0 ldr r1, [r4, #0x8] add r0, r4, #0x0 add r1, r1, r2 bl FUN_02038C10 mov r0, #0x0 pop {r4, pc} thumb_func_start FUN_02039D10 FUN_02039D10: ; 0x02039D10 push {r3-r7, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xa bl FUN_02039438 ldr r1, [r5, #0x8] add r6, r0, #0x0 add r0, r1, #0x1 str r0, [r5, #0x8] add r0, r5, #0x0 ldrb r4, [r1, #0x0] bl FUN_02038C48 add r7, r0, #0x0 ldr r0, [r6, #0x0] bl FUN_02058448 cmp r4, r0 bne _02039D44 ldr r1, [r5, #0x8] add r0, r5, #0x0 add r1, r1, r7 bl FUN_02038C10 _02039D44: mov r0, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02039D48 FUN_02039D48: ; 0x02039D48 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0x74] bl FUN_02046534 ldr r1, [r5, #0x8] add r6, r0, #0x0 add r0, r1, #0x1 str r0, [r5, #0x8] ldrb r4, [r1, #0x0] add r0, r5, #0x0 bl FUN_02038C48 add r2, r0, #0x0 cmp r6, r4 bne _02039D72 ldr r1, [r5, #0x8] add r0, r5, #0x0 add r1, r1, r2 bl FUN_02038C10 _02039D72: mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02039D78 FUN_02039D78: ; 0x02039D78 push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x9 bl FUN_02039438 ldr r1, [r5, #0x8] add r6, r0, #0x0 add r0, r1, #0x1 str r0, [r5, #0x8] ldrb r4, [r1, #0x0] add r0, r5, #0x0 bl FUN_02038C48 add r2, r0, #0x0 ldr r0, [r6, #0x0] cmp r0, r4 bne _02039DA8 ldr r1, [r5, #0x8] add r0, r5, #0x0 add r1, r1, r2 bl FUN_02038C10 _02039DA8: mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02039DAC FUN_02039DAC: ; 0x02039DAC push {r4, lr} add r4, r0, #0x0 bl FUN_02038C48 add r2, r0, #0x0 ldr r1, [r4, #0x8] add r0, r4, #0x0 add r1, r1, r2 bl FUN_02038C14 mov r0, #0x0 pop {r4, pc} thumb_func_start FUN_02039DC4 FUN_02039DC4: ; 0x02039DC4 push {r3, lr} bl FUN_02038C24 mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_02039DD0 FUN_02039DD0: ; 0x02039DD0 push {r3-r5, lr} add r5, r0, #0x0 ldr r2, [r5, #0x8] add r1, r2, #0x1 str r1, [r5, #0x8] ldrb r4, [r2, #0x0] bl FUN_02038C48 add r1, r0, #0x0 lsl r0, r4, #0x1 add r3, r4, r0 ldr r0, _02039E00 ; =0x020F34E8 ldrb r2, [r5, #0x2] add r0, r0, r3 ldrb r0, [r2, r0] cmp r0, #0x1 bne _02039DFC ldr r2, [r5, #0x8] add r0, r5, #0x0 add r1, r2, r1 bl FUN_02038C10 _02039DFC: mov r0, #0x0 pop {r3-r5, pc} .balign 4 _02039E00: .word 0x020F34E8 thumb_func_start FUN_02039E04 FUN_02039E04: ; 0x02039E04 push {r3-r5, lr} add r5, r0, #0x0 ldr r2, [r5, #0x8] add r1, r2, #0x1 str r1, [r5, #0x8] ldrb r4, [r2, #0x0] bl FUN_02038C48 add r1, r0, #0x0 lsl r0, r4, #0x1 add r3, r4, r0 ldr r0, _02039E34 ; =0x020F34E8 ldrb r2, [r5, #0x2] add r0, r0, r3 ldrb r0, [r2, r0] cmp r0, #0x1 bne _02039E30 ldr r2, [r5, #0x8] add r0, r5, #0x0 add r1, r2, r1 bl FUN_02038C14 _02039E30: mov r0, #0x0 pop {r3-r5, pc} .balign 4 _02039E34: .word 0x020F34E8 thumb_func_start FUN_02039E38 FUN_02039E38: ; 0x02039E38 push {r4, lr} add r1, r0, #0x0 add r1, #0x80 ldr r4, [r1, #0x0] bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_0203953C mov r0, #0x0 pop {r4, pc} thumb_func_start FUN_02039E50 FUN_02039E50: ; 0x02039E50 push {r4, lr} add r1, r0, #0x0 add r1, #0x80 ldr r4, [r1, #0x0] bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_02039550 mov r0, #0x0 pop {r4, pc} thumb_func_start FUN_02039E68 FUN_02039E68: ; 0x02039E68 push {r3-r5, lr} add r4, r0, #0x0 add r1, r4, #0x0 add r1, #0x80 ldr r5, [r1, #0x0] bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_02039528 strb r0, [r4, #0x2] mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02039E84 FUN_02039E84: ; 0x02039E84 push {r4-r6, lr} add r4, r0, #0x0 add r1, r4, #0x0 add r1, #0x80 ldr r5, [r1, #0x0] bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 add r4, r0, #0x0 ldrh r1, [r6, #0x0] add r0, r5, #0x0 bl FUN_02039528 strh r0, [r4, #0x0] mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02039EC0 FUN_02039EC0: ; 0x02039EC0 push {r3-r5, lr} add r5, r0, #0x0 add r1, r5, #0x0 add r1, #0x80 ldr r4, [r1, #0x0] bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r1, r0, #0x0 ldrh r1, [r1, #0x0] add r0, r4, #0x0 bl FUN_0203953C mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02039EE8 FUN_02039EE8: ; 0x02039EE8 push {r3-r5, lr} add r4, r0, #0x0 add r1, r4, #0x0 add r1, #0x80 ldr r5, [r1, #0x0] bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394F0 add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_0203965C mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02039F0C FUN_02039F0C: ; 0x02039F0C push {r3-r5, lr} add r4, r0, #0x0 add r1, r4, #0x0 add r1, #0x80 ldr r5, [r1, #0x0] bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394F0 add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_02039678 mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02039F30 FUN_02039F30: ; 0x02039F30 push {r3-r5, lr} add r5, r0, #0x0 add r1, r5, #0x0 add r1, #0x80 ldr r4, [r1, #0x0] bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_02039640 strb r0, [r5, #0x2] mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02039F58 FUN_02039F58: ; 0x02039F58 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 ldrh r1, [r4, #0x0] add r0, r1, r0 strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02039F88 FUN_02039F88: ; 0x02039F88 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 ldrh r1, [r4, #0x0] sub r0, r1, r0 strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02039FB8 FUN_02039FB8: ; 0x02039FB8 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 strh r0, [r5, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02039FDC FUN_02039FDC: ; 0x02039FDC push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 ldrh r0, [r0, #0x0] strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203A00C FUN_0203A00C: ; 0x0203A00C push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394F0 strh r0, [r5, #0x0] mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0203A038 FUN_0203A038: ; 0x0203A038 push {r3, lr} ldr r2, [r0, #0x8] add r1, r2, #0x1 str r1, [r0, #0x8] ldrb r2, [r2, #0x0] ldr r1, [r0, #0x78] bl FUN_021E2C24 mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_0203A04C FUN_0203A04C: ; 0x0203A04C push {r4-r6, lr} add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 mov r0, #0x1 mov r1, #0x1a add r2, r5, #0x0 mov r3, #0x20 bl FUN_0200A86C add r5, r0, #0x0 add r0, r4, #0x0 add r1, r5, #0x0 add r2, r6, #0x0 bl FUN_021E2C24 add r0, r5, #0x0 bl FUN_0200A8B8 mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_0203A098 FUN_0203A098: ; 0x0203A098 push {r3-r6, lr} sub sp, #0x4 add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 mov r0, #0x1 mov r1, #0x1a add r2, r5, #0x0 mov r3, #0x20 bl FUN_0200A86C add r5, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] add r0, r4, #0x0 add r1, r5, #0x0 add r2, r6, #0x0 mov r3, #0x1 bl FUN_021E2BD0 add r0, r5, #0x0 bl FUN_0200A8B8 ldr r1, _0203A0F8 ; =FUN_0203A2F0 add r0, r4, #0x0 bl FUN_02038B5C mov r0, #0x1 add sp, #0x4 pop {r3-r6, pc} nop _0203A0F8: .word FUN_0203A2F0 thumb_func_start FUN_0203A0FC FUN_0203A0FC: ; 0x0203A0FC push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 bl FUN_02038C30 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 lsl r0, r0, #0x10 asr r0, r0, #0x10 str r0, [sp, #0x0] mov r0, #0xff str r0, [sp, #0x4] add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 add r3, r7, #0x0 bl FUN_021E2C58 mov r0, #0x0 add sp, #0x8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0203A13C FUN_0203A13C: ; 0x0203A13C push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 bl FUN_02038C30 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 lsl r0, r0, #0x10 asr r0, r0, #0x10 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 add r3, r7, #0x0 bl FUN_021E2C58 ldr r1, _0203A184 ; =FUN_0203A2F0 add r0, r5, #0x0 bl FUN_02038B5C mov r0, #0x1 add sp, #0x8 pop {r3-r7, pc} nop _0203A184: .word FUN_0203A2F0 thumb_func_start FUN_0203A188 FUN_0203A188: ; 0x0203A188 push {r4-r6, lr} sub sp, #0x8 add r5, r0, #0x0 ldr r2, [r5, #0x8] add r1, r2, #0x1 str r1, [r5, #0x8] add r1, r5, #0x0 add r1, #0x80 ldr r1, [r1, #0x0] ldrb r3, [r2, #0x0] add r1, #0xa8 ldr r2, [r1, #0x0] cmp r2, #0x0 bne _0203A1AA add sp, #0x8 mov r0, #0x0 pop {r4-r6, pc} _0203A1AA: lsl r1, r3, #0x4 add r1, r3, r1 add r2, #0x90 lsl r1, r1, #0x4 add r4, r2, r1 ldrh r1, [r2, r1] ldr r2, _0203A204 ; =0x0000FFFF cmp r1, r2 bne _0203A1E2 ldr r2, _0203A208 ; =0x0000022B mov r0, #0x1 mov r1, #0x1a mov r3, #0x20 bl FUN_0200A86C add r6, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] ldrh r2, [r4, #0x2] add r0, r5, #0x0 add r1, r6, #0x0 mov r3, #0x1 bl FUN_021E2BD0 add r0, r6, #0x0 bl FUN_0200A8B8 b _0203A1F4 _0203A1E2: mov r2, #0x6 ldrsh r2, [r4, r2] str r2, [sp, #0x0] mov r2, #0x1 str r2, [sp, #0x4] ldrh r2, [r4, #0x2] ldrh r3, [r4, #0x4] bl FUN_021E2C58 _0203A1F4: ldr r1, _0203A20C ; =FUN_0203A2F0 add r0, r5, #0x0 bl FUN_02038B5C mov r0, #0x1 add sp, #0x8 pop {r4-r6, pc} nop _0203A204: .word 0x0000FFFF _0203A208: .word 0x0000022B _0203A20C: .word FUN_0203A2F0 thumb_func_start FUN_0203A210 FUN_0203A210: ; 0x0203A210 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 add r1, r5, #0x0 add r1, #0x80 ldr r2, [r5, #0x8] ldr r6, [r1, #0x0] add r1, r2, #0x1 str r1, [r5, #0x8] ldrb r4, [r2, #0x0] bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 ldr r1, [r5, #0x8] add r2, r0, #0x0 add r0, r1, #0x1 str r0, [r5, #0x8] ldrb r3, [r1, #0x0] mov r1, #0x0 add r0, sp, #0x4 strb r1, [r0, #0x0] add r0, sp, #0x4 str r0, [sp, #0x0] ldr r0, [r6, #0xc] add r1, r7, #0x0 bl FUN_02244210 add r6, r0, #0x0 add r2, sp, #0x4 ldrb r2, [r2, #0x0] add r0, r5, #0x0 add r1, r6, #0x0 add r2, r4, r2 lsl r2, r2, #0x18 lsr r2, r2, #0x18 mov r3, #0x1 bl FUN_021E2CBC add r0, r6, #0x0 bl FUN_0200AB18 ldr r1, _0203A284 ; =FUN_0203A2F0 add r0, r5, #0x0 bl FUN_02038B5C mov r0, #0x1 add sp, #0x8 pop {r3-r7, pc} nop _0203A284: .word FUN_0203A2F0 thumb_func_start FUN_0203A288 FUN_0203A288: ; 0x0203A288 push {r3-r5, lr} sub sp, #0x8 add r5, r0, #0x0 bl FUN_02038C30 add r4, r0, #0x0 add r0, sp, #0x4 add r1, r5, #0x0 bl FUN_021E2BB8 mov r1, #0x3 add r0, sp, #0x4 strb r1, [r0, #0x2] add r0, sp, #0x4 str r0, [sp, #0x0] ldr r1, [r5, #0x78] add r0, r5, #0x0 add r2, r4, #0x0 mov r3, #0x0 bl FUN_021E2BD0 ldr r1, _0203A2C0 ; =FUN_0203A2F0 add r0, r5, #0x0 bl FUN_02038B5C mov r0, #0x1 add sp, #0x8 pop {r3-r5, pc} .balign 4 _0203A2C0: .word FUN_0203A2F0 thumb_func_start FUN_0203A2C4 FUN_0203A2C4: ; 0x0203A2C4 push {r3-r4, lr} sub sp, #0x4 add r4, r0, #0x0 ldr r2, [r4, #0x8] mov r3, #0x1 add r1, r2, #0x1 str r1, [r4, #0x8] mov r1, #0x0 str r1, [sp, #0x0] ldrb r2, [r2, #0x0] ldr r1, [r4, #0x78] bl FUN_021E2BD0 ldr r1, _0203A2EC ; =FUN_0203A2F0 add r0, r4, #0x0 bl FUN_02038B5C mov r0, #0x1 add sp, #0x4 pop {r3-r4, pc} .balign 4 _0203A2EC: .word FUN_0203A2F0 thumb_func_start FUN_0203A2F0 FUN_0203A2F0: ; 0x0203A2F0 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x3 bl FUN_02039438 ldrb r0, [r0, #0x0] bl FUN_020546C8 pop {r3, pc} thumb_func_start FUN_0203A304 FUN_0203A304: ; 0x0203A304 push {r3-r4, lr} sub sp, #0x4 add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r2, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] lsl r2, r2, #0x18 ldr r1, [r4, #0x78] add r0, r4, #0x0 lsr r2, r2, #0x18 mov r3, #0x1 bl FUN_021E2BD0 ldr r1, _0203A33C ; =FUN_0203A2F0 add r0, r4, #0x0 bl FUN_02038B5C mov r0, #0x1 add sp, #0x4 pop {r3-r4, pc} .balign 4 _0203A33C: .word FUN_0203A2F0 thumb_func_start FUN_0203A340 FUN_0203A340: ; 0x0203A340 push {r3-r5, lr} sub sp, #0x8 add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r4, r0, #0x0 add r0, sp, #0x4 add r1, r5, #0x0 bl FUN_021E2BB8 lsl r2, r4, #0x18 mov r3, #0x1 add r0, sp, #0x4 strb r3, [r0, #0x1] add r0, sp, #0x4 str r0, [sp, #0x0] ldr r1, [r5, #0x78] add r0, r5, #0x0 lsr r2, r2, #0x18 bl FUN_021E2BD0 ldr r1, _0203A384 ; =FUN_0203A2F0 add r0, r5, #0x0 bl FUN_02038B5C mov r0, #0x1 add sp, #0x8 pop {r3-r5, pc} .balign 4 _0203A384: .word FUN_0203A2F0 thumb_func_start FUN_0203A388 FUN_0203A388: ; 0x0203A388 push {r3-r4, lr} sub sp, #0x4 add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r2, r0, #0x0 mov r3, #0x0 str r3, [sp, #0x0] lsl r2, r2, #0x18 ldr r1, [r4, #0x78] add r0, r4, #0x0 lsr r2, r2, #0x18 bl FUN_021E2BD0 ldr r1, _0203A3C0 ; =FUN_0203A2F0 add r0, r4, #0x0 bl FUN_02038B5C mov r0, #0x1 add sp, #0x4 pop {r3-r4, pc} nop _0203A3C0: .word FUN_0203A2F0 thumb_func_start FUN_0203A3C4 FUN_0203A3C4: ; 0x0203A3C4 push {r3-r4, lr} sub sp, #0x4 add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xa bl FUN_02039438 ldr r0, [r0, #0x0] bl FUN_02058488 lsl r0, r0, #0x18 lsr r2, r0, #0x18 mov r0, #0x0 str r0, [sp, #0x0] ldr r1, [r4, #0x78] add r0, r4, #0x0 mov r3, #0x1 bl FUN_021E2BD0 ldr r1, _0203A3FC ; =FUN_0203A2F0 add r0, r4, #0x0 bl FUN_02038B5C mov r0, #0x1 add sp, #0x4 pop {r3-r4, pc} nop _0203A3FC: .word FUN_0203A2F0 thumb_func_start FUN_0203A400 FUN_0203A400: ; 0x0203A400 push {r3-r5, lr} sub sp, #0x8 add r5, r0, #0x0 ldr r1, [r5, #0x8] add r0, r1, #0x1 str r0, [r5, #0x8] ldrb r4, [r1, #0x0] bl FUN_02030F40 cmp r0, #0x0 bne _0203A428 mov r0, #0x0 str r0, [sp, #0x0] ldr r1, [r5, #0x78] add r0, r5, #0x0 add r2, r4, #0x0 mov r3, #0x1 bl FUN_021E2BD0 b _0203A448 _0203A428: add r0, sp, #0x4 add r1, r5, #0x0 bl FUN_021E2BB8 mov r1, #0x1 add r0, sp, #0x4 strb r1, [r0, #0x0] strb r1, [r0, #0x1] add r0, sp, #0x4 str r0, [sp, #0x0] ldr r1, [r5, #0x78] add r0, r5, #0x0 add r2, r4, #0x0 mov r3, #0x0 bl FUN_021E2BD0 _0203A448: ldr r1, _0203A458 ; =FUN_0203A2F0 add r0, r5, #0x0 bl FUN_02038B5C mov r0, #0x1 add sp, #0x8 pop {r3-r5, pc} nop _0203A458: .word FUN_0203A2F0 thumb_func_start FUN_0203A45C FUN_0203A45C: ; 0x0203A45C push {r3, lr} ldr r1, _0203A468 ; =FUN_0203A46C bl FUN_02038B5C mov r0, #0x1 pop {r3, pc} .balign 4 _0203A468: .word FUN_0203A46C thumb_func_start FUN_0203A46C FUN_0203A46C: ; 0x0203A46C ldr r0, _0203A480 ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #0x3 tst r0, r1 beq _0203A47A mov r0, #0x1 bx lr _0203A47A: mov r0, #0x0 bx lr nop _0203A480: .word 0x021C48B8 thumb_func_start FUN_0203A484 FUN_0203A484: ; 0x0203A484 push {r4, lr} add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 str r0, [r4, #0x64] ldr r1, _0203A4A8 ; =FUN_0203A4AC add r0, r4, #0x0 bl FUN_02038B5C mov r0, #0x1 pop {r4, pc} nop _0203A4A8: .word FUN_0203A4AC thumb_func_start FUN_0203A4AC FUN_0203A4AC: ; 0x0203A4AC ldr r1, _0203A4CC ; =0x021C48B8 ldr r2, [r1, #0x48] mov r1, #0x3 tst r1, r2 beq _0203A4BA mov r0, #0x1 bx lr _0203A4BA: ldr r1, [r0, #0x64] sub r1, r1, #0x1 str r1, [r0, #0x64] bne _0203A4C6 mov r0, #0x1 bx lr _0203A4C6: mov r0, #0x0 bx lr nop _0203A4CC: .word 0x021C48B8 thumb_func_start FUN_0203A4D0 FUN_0203A4D0: ; 0x0203A4D0 push {r3, lr} ldr r1, _0203A4DC ; =FUN_0203A4E0 bl FUN_02038B5C mov r0, #0x1 pop {r3, pc} .balign 4 _0203A4DC: .word FUN_0203A4E0 thumb_func_start FUN_0203A4E0 FUN_0203A4E0: ; 0x0203A4E0 push {r4, lr} ldr r1, _0203A55C ; =0x021C48B8 ldr r2, [r1, #0x48] mov r1, #0x3 add r3, r2, #0x0 tst r3, r1 beq _0203A4F2 mov r0, #0x1 pop {r4, pc} _0203A4F2: mov r3, #0x40 tst r3, r2 beq _0203A506 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x0 ldr r0, [r0, #0x38] bl FUN_02055304 b _0203A556 _0203A506: mov r3, #0x80 tst r3, r2 beq _0203A51A add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x1 ldr r0, [r0, #0x38] bl FUN_02055304 b _0203A556 _0203A51A: mov r3, #0x20 tst r3, r2 beq _0203A52E add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x2 ldr r0, [r0, #0x38] bl FUN_02055304 b _0203A556 _0203A52E: mov r3, #0x10 add r4, r2, #0x0 tst r4, r3 beq _0203A542 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0x38] bl FUN_02055304 b _0203A556 _0203A542: lsl r1, r3, #0x6 tst r1, r2 beq _0203A552 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_02039460 b _0203A556 _0203A552: mov r0, #0x0 pop {r4, pc} _0203A556: mov r0, #0x1 pop {r4, pc} nop _0203A55C: .word 0x021C48B8 thumb_func_start FUN_0203A560 FUN_0203A560: ; 0x0203A560 push {r3, lr} ldr r1, _0203A56C ; =FUN_0203A570 bl FUN_02038B5C mov r0, #0x1 pop {r3, pc} .balign 4 _0203A56C: .word FUN_0203A570 thumb_func_start FUN_0203A570 FUN_0203A570: ; 0x0203A570 ldr r0, _0203A58C ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #0x3 tst r0, r1 beq _0203A57E mov r0, #0x1 bx lr _0203A57E: mov r0, #0xf0 tst r0, r1 beq _0203A588 mov r0, #0x1 bx lr _0203A588: mov r0, #0x0 bx lr .balign 4 _0203A58C: .word 0x021C48B8 thumb_func_start FUN_0203A590 FUN_0203A590: ; 0x0203A590 push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 ldr r4, [r0, #0x0] mov r1, #0x6 add r0, r4, #0x0 bl FUN_02039438 add r6, r0, #0x0 add r0, r4, #0x0 mov r1, #0x1 bl FUN_02039438 add r1, r0, #0x0 ldr r0, [r4, #0x8] mov r2, #0x3 bl FUN_020545B8 add r0, r4, #0x0 mov r1, #0x1 bl FUN_02039438 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl LoadPlayerDataAddress add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_02054608 mov r0, #0x1 strb r0, [r6, #0x0] mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_0203A5D8 FUN_0203A5D8: ; 0x0203A5D8 push {r3-r5, lr} add r0, #0x80 ldr r4, [r0, #0x0] mov r1, #0x1 add r0, r4, #0x0 bl FUN_02039438 add r5, r0, #0x0 add r0, r4, #0x0 mov r1, #0x6 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x0 bl FUN_0200D0E0 add r0, r5, #0x0 bl FUN_02019178 mov r0, #0x0 strb r0, [r4, #0x0] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203A608 FUN_0203A608: ; 0x0203A608 push {r3-r5, lr} add r0, #0x80 ldr r4, [r0, #0x0] mov r1, #0x1 add r0, r4, #0x0 bl FUN_02039438 add r5, r0, #0x0 add r0, r4, #0x0 mov r1, #0x6 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02019178 mov r0, #0x0 strb r0, [r4, #0x0] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203A630 FUN_0203A630: ; 0x0203A630 push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 add r0, #0x80 ldr r4, [r0, #0x0] mov r1, #0x31 add r0, r4, #0x0 bl FUN_02039438 add r6, r0, #0x0 add r0, r4, #0x0 mov r1, #0x2d bl FUN_02039438 add r7, r0, #0x0 add r0, r4, #0x0 mov r1, #0x32 bl FUN_02039438 str r0, [sp, #0x0] add r0, r4, #0x0 mov r1, #0x33 bl FUN_02039438 str r0, [sp, #0x4] add r0, r4, #0x0 mov r1, #0x2e bl FUN_02039438 str r0, [sp, #0x8] add r0, r4, #0x0 mov r1, #0x34 bl FUN_02039438 ldr r2, [r5, #0x8] add r1, r2, #0x1 str r1, [r5, #0x8] ldrb r1, [r2, #0x0] strh r1, [r6, #0x0] ldr r2, [r5, #0x8] add r1, r2, #0x1 str r1, [r5, #0x8] ldrb r1, [r2, #0x0] strh r1, [r7, #0x0] ldr r2, [r5, #0x8] add r1, r2, #0x1 str r1, [r5, #0x8] ldrb r2, [r2, #0x0] ldr r1, [sp, #0x0] strh r2, [r1, #0x0] ldr r2, [r5, #0x8] add r1, r2, #0x1 str r1, [r5, #0x8] ldrb r2, [r2, #0x0] ldr r1, [sp, #0x4] strh r2, [r1, #0x0] ldr r2, [r5, #0x8] add r1, r2, #0x1 str r1, [r5, #0x8] ldrb r2, [r2, #0x0] ldr r1, [sp, #0x8] strh r2, [r1, #0x0] ldr r2, [r5, #0x8] add r1, r2, #0x1 str r1, [r5, #0x8] ldrb r1, [r2, #0x0] strh r1, [r0, #0x0] ldr r1, _0203A6C4 ; =FUN_0203A6C8 add r0, r5, #0x0 bl FUN_02038B5C mov r0, #0x1 add sp, #0xc pop {r4-r7, pc} .balign 4 _0203A6C4: .word FUN_0203A6C8 thumb_func_start FUN_0203A6C8 FUN_0203A6C8: ; 0x0203A6C8 push {r4-r7, lr} sub sp, #0xc add r0, #0x80 ldr r4, [r0, #0x0] mov r1, #0x31 add r0, r4, #0x0 bl FUN_02039438 add r7, r0, #0x0 add r0, r4, #0x0 mov r1, #0x32 bl FUN_02039438 str r0, [sp, #0x8] add r0, r4, #0x0 mov r1, #0x33 bl FUN_02039438 str r0, [sp, #0x4] add r0, r4, #0x0 mov r1, #0x34 bl FUN_02039438 str r0, [sp, #0x0] add r0, r4, #0x0 mov r1, #0x2d bl FUN_02039438 add r6, r0, #0x0 add r0, r4, #0x0 mov r1, #0x2e bl FUN_02039438 add r5, r0, #0x0 ldrh r0, [r6, #0x0] cmp r0, #0x0 bne _0203A71E ldrh r0, [r5, #0x0] cmp r0, #0x0 bne _0203A71E add sp, #0xc mov r0, #0x1 pop {r4-r7, pc} _0203A71E: ldrh r3, [r7, #0x0] cmp r3, #0x0 beq _0203A740 ldr r0, [sp, #0x8] ldrh r0, [r0, #0x0] cmp r0, #0x0 ldr r0, [r4, #0x8] bne _0203A738 mov r1, #0x3 mov r2, #0x1 bl FUN_020179E0 b _0203A740 _0203A738: mov r1, #0x3 mov r2, #0x2 bl FUN_020179E0 _0203A740: ldr r0, [sp, #0x4] ldrh r3, [r0, #0x0] cmp r3, #0x0 beq _0203A764 ldr r0, [sp, #0x0] ldrh r0, [r0, #0x0] cmp r0, #0x0 ldr r0, [r4, #0x8] bne _0203A75C mov r1, #0x3 mov r2, #0x4 bl FUN_020179E0 b _0203A764 _0203A75C: mov r1, #0x3 mov r2, #0x5 bl FUN_020179E0 _0203A764: ldrh r0, [r6, #0x0] cmp r0, #0x0 beq _0203A76E sub r0, r0, #0x1 strh r0, [r6, #0x0] _0203A76E: ldrh r0, [r5, #0x0] cmp r0, #0x0 beq _0203A778 sub r0, r0, #0x1 strh r0, [r5, #0x0] _0203A778: mov r0, #0x0 add sp, #0xc pop {r4-r7, pc} .balign 4 thumb_func_start FUN_0203A780 FUN_0203A780: ; 0x0203A780 push {r4-r7, lr} sub sp, #0x1c add r5, r0, #0x0 add r0, #0x80 ldr r4, [r0, #0x0] mov r1, #0x11 add r0, r4, #0x0 bl FUN_02039438 str r0, [sp, #0x18] add r0, r4, #0x0 mov r1, #0x10 bl FUN_02039438 add r7, r0, #0x0 add r0, r4, #0x0 mov r1, #0xf bl FUN_02039438 str r0, [sp, #0x14] ldr r0, [r5, #0x8] add r1, r0, #0x1 str r1, [r5, #0x8] ldrb r0, [r0, #0x0] str r0, [sp, #0xc] add r0, r1, #0x1 str r0, [r5, #0x8] ldrb r0, [r1, #0x0] str r0, [sp, #0x10] add r0, r5, #0x0 bl FUN_02038C30 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 cmp r6, #0x0 bne _0203A7E0 add r0, r4, #0x0 mov r1, #0xa bl FUN_02039438 ldr r0, [r0, #0x0] mov r1, #0x0 bl FUN_02058510 lsl r0, r0, #0x10 lsr r6, r0, #0x10 _0203A7E0: ldr r0, [r4, #0x60] ldr r1, [sp, #0x10] add r2, r6, #0x0 bl FUN_021E8128 ldr r0, [r4, #0x60] mov r1, #0x1 bl FUN_021E8130 add r0, r4, #0x0 bl FUN_021E8158 ldr r2, [sp, #0x18] ldr r0, [r5, #0x78] ldr r1, [sp, #0xc] ldr r2, [r2, #0x0] bl FUN_0200A8E0 ldr r0, [sp, #0x14] ldr r2, [sp, #0x18] ldr r0, [r0, #0x0] ldr r1, [r7, #0x0] ldr r2, [r2, #0x0] bl FUN_0200B7B8 ldr r0, [r4, #0x60] bl FUN_021E8140 mov r3, #0x0 str r3, [sp, #0x0] str r3, [sp, #0x4] str r3, [sp, #0x8] ldr r2, [r7, #0x0] mov r1, #0x1 bl FUN_0201BD84 mov r0, #0x1 add sp, #0x1c pop {r4-r7, pc} .balign 4 thumb_func_start FUN_0203A830 FUN_0203A830: ; 0x0203A830 push {r3-r5, lr} add r1, r0, #0x0 add r1, #0x80 ldr r2, [r0, #0x8] ldr r4, [r1, #0x0] add r1, r2, #0x1 str r1, [r0, #0x8] ldrb r5, [r2, #0x0] bl FUN_02038C30 add r2, r0, #0x0 ldr r0, [r4, #0x60] add r1, r5, #0x0 bl FUN_021E8128 ldr r0, [r4, #0x60] mov r1, #0x1 bl FUN_021E8130 mov r0, #0x1 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203A85C FUN_0203A85C: ; 0x0203A85C push {r3, lr} add r1, r0, #0x0 add r1, #0x80 ldr r2, [r0, #0x8] ldr r3, [r1, #0x0] add r1, r2, #0x1 str r1, [r0, #0x8] ldrb r1, [r2, #0x0] ldr r0, [r3, #0x60] bl FUN_021E8130 mov r0, #0x1 pop {r3, pc} .balign 4 thumb_func_start FUN_0203A878 FUN_0203A878: ; 0x0203A878 push {r4, lr} add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0x60] bl FUN_021E8148 cmp r0, #0x1 bne _0203A88E mov r0, #0x0 pop {r4, pc} _0203A88E: ldr r1, _0203A89C ; =FUN_0203A8A0 add r0, r4, #0x0 bl FUN_02038B5C mov r0, #0x1 pop {r4, pc} nop _0203A89C: .word FUN_0203A8A0 thumb_func_start FUN_0203A8A0 FUN_0203A8A0: ; 0x0203A8A0 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0x60] bl FUN_021E8148 cmp r0, #0x1 bne _0203A8B4 mov r0, #0x1 pop {r3, pc} _0203A8B4: mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_0203A8B8 FUN_0203A8B8: ; 0x0203A8B8 push {r3-r7, lr} sub sp, #0x10 add r5, r0, #0x0 add r0, #0x80 ldr r4, [r0, #0x0] mov r1, #0x3 add r0, r4, #0x0 bl FUN_02039438 str r0, [sp, #0x4] add r0, r4, #0x0 mov r1, #0x11 bl FUN_02039438 add r6, r0, #0x0 add r0, r4, #0x0 mov r1, #0x10 bl FUN_02039438 add r7, r0, #0x0 add r0, r4, #0x0 mov r1, #0xf bl FUN_02039438 ldr r1, [r5, #0x8] str r0, [sp, #0x8] add r0, r1, #0x1 str r0, [r5, #0x8] ldrb r0, [r1, #0x0] str r0, [sp, #0x0] add r0, r5, #0x0 bl FUN_02038C30 str r0, [sp, #0xc] ldr r0, [r5, #0x78] ldr r1, [sp, #0x0] ldr r2, [r6, #0x0] bl FUN_0200A8E0 ldr r0, [sp, #0x8] ldr r1, [r7, #0x0] ldr r0, [r0, #0x0] ldr r2, [r6, #0x0] bl FUN_0200B7B8 ldr r0, [r4, #0x60] bl FUN_021E8140 add r4, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl LoadPlayerDataAddress add r2, r0, #0x0 ldr r1, [r7, #0x0] add r0, r4, #0x0 mov r3, #0x1 bl FUN_02054658 ldr r1, [sp, #0x4] strb r0, [r1, #0x0] ldr r0, [sp, #0xc] ldr r1, _0203A948 ; =FUN_0203A94C str r0, [r5, #0x64] add r0, r5, #0x0 bl FUN_02038B5C mov r0, #0x1 add sp, #0x10 pop {r3-r7, pc} .balign 4 _0203A948: .word FUN_0203A94C thumb_func_start FUN_0203A94C FUN_0203A94C: ; 0x0203A94C push {r3-r7, lr} add r7, r0, #0x0 add r0, #0x80 ldr r5, [r0, #0x0] mov r1, #0x3 add r0, r5, #0x0 bl FUN_02039438 ldr r1, [r7, #0x64] add r6, r0, #0x0 lsl r1, r1, #0x10 add r0, r5, #0x0 lsr r1, r1, #0x10 bl FUN_020394B8 add r4, r0, #0x0 ldr r0, [r5, #0x60] bl FUN_021E8144 ldrb r0, [r6, #0x0] ldr r5, _0203A9E8 ; =0x0000FFFF bl FUN_020546C8 cmp r0, #0x1 bne _0203A986 mov r0, #0x2 strh r0, [r4, #0x0] mov r0, #0x1 pop {r3-r7, pc} _0203A986: ldr r0, _0203A9EC ; =0x021C48B8 mov r1, #0x40 ldr r0, [r0, #0x48] tst r1, r0 beq _0203A994 mov r5, #0x0 b _0203A9B0 _0203A994: mov r1, #0x80 tst r1, r0 beq _0203A99E mov r5, #0x1 b _0203A9B0 _0203A99E: mov r1, #0x20 tst r1, r0 beq _0203A9A8 mov r5, #0x2 b _0203A9B0 _0203A9A8: mov r1, #0x10 tst r1, r0 beq _0203A9B0 mov r5, #0x3 _0203A9B0: ldr r1, _0203A9E8 ; =0x0000FFFF cmp r5, r1 beq _0203A9D0 ldrb r0, [r6, #0x0] bl FUN_0201BD7C add r7, #0x80 ldr r0, [r7, #0x0] add r1, r5, #0x0 ldr r0, [r0, #0x38] bl FUN_02055304 mov r0, #0x0 strh r0, [r4, #0x0] mov r0, #0x1 pop {r3-r7, pc} _0203A9D0: mov r1, #0x1 lsl r1, r1, #0xa tst r0, r1 beq _0203A9E4 ldrb r0, [r6, #0x0] bl FUN_0201BD7C mov r0, #0x1 strh r0, [r4, #0x0] pop {r3-r7, pc} _0203A9E4: mov r0, #0x0 pop {r3-r7, pc} .balign 4 _0203A9E8: .word 0x0000FFFF _0203A9EC: .word 0x021C48B8 thumb_func_start FUN_0203A9F0 FUN_0203A9F0: ; 0x0203A9F0 push {r4, lr} add r4, r0, #0x0 bl FUN_02038C30 str r0, [r4, #0x64] ldr r1, _0203AA08 ; =FUN_0203AA0C add r0, r4, #0x0 bl FUN_02038B5C mov r0, #0x1 pop {r4, pc} nop _0203AA08: .word FUN_0203AA0C thumb_func_start FUN_0203AA0C FUN_0203AA0C: ; 0x0203AA0C push {r3-r5, lr} add r5, r0, #0x0 ldr r1, [r5, #0x64] add r0, #0x80 lsl r1, r1, #0x10 ldr r0, [r0, #0x0] lsr r1, r1, #0x10 bl FUN_020394B8 add r4, r0, #0x0 ldr r0, _0203AA88 ; =0x021C48B8 ldr r1, _0203AA8C ; =0x0000FFFF ldr r2, [r0, #0x48] mov r0, #0x3 add r3, r2, #0x0 tst r3, r0 beq _0203AA36 mov r0, #0x0 strh r0, [r4, #0x0] mov r0, #0x1 pop {r3-r5, pc} _0203AA36: mov r3, #0x40 tst r3, r2 beq _0203AA40 mov r1, #0x0 b _0203AA5C _0203AA40: mov r3, #0x80 tst r3, r2 beq _0203AA4A mov r1, #0x1 b _0203AA5C _0203AA4A: mov r3, #0x20 tst r3, r2 beq _0203AA54 mov r1, #0x2 b _0203AA5C _0203AA54: mov r3, #0x10 tst r3, r2 beq _0203AA5C add r1, r0, #0x0 _0203AA5C: ldr r0, _0203AA8C ; =0x0000FFFF cmp r1, r0 beq _0203AA74 add r5, #0x80 ldr r0, [r5, #0x0] ldr r0, [r0, #0x38] bl FUN_02055304 mov r0, #0x0 strh r0, [r4, #0x0] mov r0, #0x1 pop {r3-r5, pc} _0203AA74: mov r0, #0x1 lsl r0, r0, #0xa tst r0, r2 beq _0203AA82 mov r0, #0x1 strh r0, [r4, #0x0] pop {r3-r5, pc} _0203AA82: mov r0, #0x0 pop {r3-r5, pc} nop _0203AA88: .word 0x021C48B8 _0203AA8C: .word 0x0000FFFF thumb_func_start FUN_0203AA90 FUN_0203AA90: ; 0x0203AA90 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_02039460 mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0203AAA0 FUN_0203AAA0: ; 0x0203AAA0 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 add r0, #0x80 ldr r4, [r0, #0x0] mov r1, #0x2 add r0, r4, #0x0 bl FUN_02039438 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r7, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x4 str r0, [sp, #0x4] ldr r0, [r4, #0x8] ldr r2, _0203AAF4 ; =0x000003D9 mov r1, #0x3 mov r3, #0xb bl FUN_0200CB00 mov r0, #0x4 str r0, [sp, #0x0] ldr r0, [r4, #0x8] ldr r1, _0203AAF8 ; =0x020F34E0 ldr r2, _0203AAF4 ; =0x000003D9 mov r3, #0xb bl FUN_02002198 str r0, [r6, #0x0] ldr r1, _0203AAFC ; =FUN_0203AB00 add r0, r5, #0x0 str r7, [r5, #0x64] bl FUN_02038B5C mov r0, #0x1 add sp, #0x8 pop {r3-r7, pc} nop _0203AAF4: .word 0x000003D9 _0203AAF8: .word 0x020F34E0 _0203AAFC: .word FUN_0203AB00 thumb_func_start FUN_0203AB00 FUN_0203AB00: ; 0x0203AB00 push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 ldr r6, [r0, #0x0] mov r1, #0x2 add r0, r6, #0x0 bl FUN_02039438 ldr r1, [r5, #0x64] add r4, r0, #0x0 lsl r1, r1, #0x10 add r0, r6, #0x0 lsr r1, r1, #0x10 bl FUN_020394B8 add r5, r0, #0x0 ldr r0, [r4, #0x0] mov r1, #0x4 bl FUN_020021AC mov r1, #0x0 mvn r1, r1 cmp r0, r1 bne _0203AB34 mov r0, #0x0 pop {r4-r6, pc} _0203AB34: cmp r0, #0x0 bne _0203AB3C mov r0, #0x0 b _0203AB3E _0203AB3C: mov r0, #0x1 _0203AB3E: strh r0, [r5, #0x0] mov r0, #0x1 pop {r4-r6, pc} thumb_func_start FUN_0203AB44 FUN_0203AB44: ; 0x0203AB44 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x1 bl FUN_02039438 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] mov r1, #0x12 bl FUN_02039438 add r5, r0, #0x0 ldr r1, _0203AB70 ; =0x000003E2 add r0, r4, #0x0 bl FUN_0200D858 str r0, [r5, #0x0] mov r0, #0x0 pop {r3-r5, pc} nop _0203AB70: .word 0x000003E2 thumb_func_start FUN_0203AB74 FUN_0203AB74: ; 0x0203AB74 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x12 bl FUN_02039438 ldr r0, [r0, #0x0] bl FUN_0200DBFC mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0203AB8C FUN_0203AB8C: ; 0x0203AB8C push {r4-r7, lr} sub sp, #0x2c add r5, r0, #0x0 add r0, #0x80 ldr r6, [r0, #0x0] mov r1, #0x0 add r0, r6, #0x0 bl FUN_02039438 str r0, [sp, #0x1c] add r0, r6, #0x0 mov r1, #0xf bl FUN_02039438 str r0, [sp, #0x20] ldr r0, [r5, #0x8] add r1, r0, #0x1 str r1, [r5, #0x8] ldrb r0, [r0, #0x0] add r2, r1, #0x1 str r0, [sp, #0x18] str r2, [r5, #0x8] ldrb r0, [r1, #0x0] add r1, r2, #0x1 str r0, [sp, #0x14] str r1, [r5, #0x8] ldrb r7, [r2, #0x0] add r0, r1, #0x1 str r0, [r5, #0x8] add r0, r5, #0x0 ldrb r4, [r1, #0x0] bl FUN_02038C30 str r0, [sp, #0x24] ldr r1, [sp, #0x24] add r0, r6, #0x0 bl FUN_020394B8 str r0, [sp, #0x28] add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x1 bl FUN_02039438 ldr r1, [sp, #0x28] str r4, [sp, #0x0] str r1, [sp, #0x4] ldr r1, [sp, #0x20] add r3, r7, #0x0 ldr r1, [r1, #0x0] str r1, [sp, #0x8] str r0, [sp, #0xc] mov r0, #0x0 str r0, [sp, #0x10] ldr r1, [sp, #0x18] ldr r2, [sp, #0x14] add r0, r6, #0x0 bl FUN_021E1BF8 ldr r1, [sp, #0x1c] str r0, [r1, #0x0] ldr r0, [sp, #0x24] str r0, [r5, #0x64] mov r0, #0x1 add sp, #0x2c pop {r4-r7, pc} .balign 4 thumb_func_start FUN_0203AC14 FUN_0203AC14: ; 0x0203AC14 push {r4-r7, lr} sub sp, #0x2c add r5, r0, #0x0 add r0, #0x80 ldr r6, [r0, #0x0] mov r1, #0x0 add r0, r6, #0x0 bl FUN_02039438 str r0, [sp, #0x1c] add r0, r6, #0x0 mov r1, #0xf bl FUN_02039438 str r0, [sp, #0x20] ldr r0, [r5, #0x8] add r1, r0, #0x1 str r1, [r5, #0x8] ldrb r0, [r0, #0x0] add r2, r1, #0x1 str r0, [sp, #0x18] str r2, [r5, #0x8] ldrb r0, [r1, #0x0] add r1, r2, #0x1 str r0, [sp, #0x14] str r1, [r5, #0x8] ldrb r7, [r2, #0x0] add r0, r1, #0x1 str r0, [r5, #0x8] add r0, r5, #0x0 ldrb r4, [r1, #0x0] bl FUN_02038C30 str r0, [sp, #0x24] ldr r1, [sp, #0x24] add r0, r6, #0x0 bl FUN_020394B8 str r0, [sp, #0x28] add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x1 bl FUN_02039438 ldr r1, [sp, #0x28] str r4, [sp, #0x0] str r1, [sp, #0x4] ldr r1, [sp, #0x20] add r3, r7, #0x0 ldr r1, [r1, #0x0] str r1, [sp, #0x8] str r0, [sp, #0xc] ldr r0, [r5, #0x78] str r0, [sp, #0x10] ldr r1, [sp, #0x18] ldr r2, [sp, #0x14] add r0, r6, #0x0 bl FUN_021E1BF8 ldr r1, [sp, #0x1c] str r0, [r1, #0x0] ldr r0, [sp, #0x24] str r0, [r5, #0x64] mov r0, #0x1 add sp, #0x2c pop {r4-r7, pc} .balign 4 thumb_func_start FUN_0203AC9C FUN_0203AC9C: ; 0x0203AC9C push {r4, lr} add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x0 bl FUN_02039438 ldr r1, [r4, #0x8] add r3, r1, #0x1 str r3, [r4, #0x8] ldrb r1, [r1, #0x0] add r2, r3, #0x1 str r2, [r4, #0x8] ldrb r2, [r3, #0x0] ldr r0, [r0, #0x0] bl FUN_021E1C4C mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_0203ACC4 FUN_0203ACC4: ; 0x0203ACC4 push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x0 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r2, r0, #0x0 ldr r0, [r4, #0x0] add r1, r6, #0x0 bl FUN_021E1C4C mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0203AD08 FUN_0203AD08: ; 0x0203AD08 push {r4, lr} add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x0 bl FUN_02039438 ldr r0, [r0, #0x0] bl FUN_021E1C54 ldr r1, _0203AD28 ; =FUN_0203AD2C add r0, r4, #0x0 bl FUN_02038B5C mov r0, #0x1 pop {r4, pc} .balign 4 _0203AD28: .word FUN_0203AD2C thumb_func_start FUN_0203AD2C FUN_0203AD2C: ; 0x0203AD2C push {r3, lr} add r1, r0, #0x0 ldr r1, [r1, #0x64] add r0, #0x80 lsl r1, r1, #0x10 ldr r0, [r0, #0x0] lsr r1, r1, #0x10 bl FUN_020394B8 ldrh r1, [r0, #0x0] ldr r0, _0203AD50 ; =0x0000EEEE cmp r1, r0 beq _0203AD4A mov r0, #0x1 pop {r3, pc} _0203AD4A: mov r0, #0x0 pop {r3, pc} nop _0203AD50: .word 0x0000EEEE thumb_func_start FUN_0203AD54 FUN_0203AD54: ; 0x0203AD54 push {r4, lr} add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x0 bl FUN_02039438 ldr r0, [r0, #0x0] bl FUN_021E1C54 ldr r1, _0203AD74 ; =FUN_0203AD78 add r0, r4, #0x0 bl FUN_02038B5C mov r0, #0x1 pop {r4, pc} .balign 4 _0203AD74: .word FUN_0203AD78 thumb_func_start FUN_0203AD78 FUN_0203AD78: ; 0x0203AD78 push {r4-r6, lr} add r1, r0, #0x0 add r0, #0x80 ldr r1, [r1, #0x64] ldr r5, [r0, #0x0] lsl r1, r1, #0x10 add r0, r5, #0x0 lsr r1, r1, #0x10 bl FUN_020394B8 add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x0 bl FUN_02039438 add r6, r0, #0x0 ldrh r1, [r4, #0x0] ldr r0, _0203ADC0 ; =0x0000EEEE cmp r1, r0 bne _0203ADBC ldr r0, [r5, #0x78] bl FUN_02052714 cmp r0, #0x0 beq _0203ADB8 mov r0, #0x8 strh r0, [r4, #0x0] ldr r0, [r6, #0x0] bl FUN_021E1ECC mov r0, #0x1 pop {r4-r6, pc} _0203ADB8: mov r0, #0x0 pop {r4-r6, pc} _0203ADBC: mov r0, #0x1 pop {r4-r6, pc} .balign 4 _0203ADC0: .word 0x0000EEEE thumb_func_start FUN_0203ADC4 FUN_0203ADC4: ; 0x0203ADC4 push {r4-r7, lr} sub sp, #0x2c add r5, r0, #0x0 add r0, #0x80 ldr r6, [r0, #0x0] mov r1, #0x0 add r0, r6, #0x0 bl FUN_02039438 str r0, [sp, #0x1c] add r0, r6, #0x0 mov r1, #0xf bl FUN_02039438 str r0, [sp, #0x20] ldr r0, [r5, #0x8] add r1, r0, #0x1 str r1, [r5, #0x8] ldrb r0, [r0, #0x0] add r2, r1, #0x1 str r0, [sp, #0x18] str r2, [r5, #0x8] ldrb r0, [r1, #0x0] add r1, r2, #0x1 str r0, [sp, #0x14] str r1, [r5, #0x8] ldrb r7, [r2, #0x0] add r0, r1, #0x1 str r0, [r5, #0x8] add r0, r5, #0x0 ldrb r4, [r1, #0x0] bl FUN_02038C30 str r0, [sp, #0x24] ldr r1, [sp, #0x24] add r0, r6, #0x0 bl FUN_020394B8 str r0, [sp, #0x28] add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x1 bl FUN_02039438 ldr r1, [sp, #0x28] str r4, [sp, #0x0] str r1, [sp, #0x4] ldr r1, [sp, #0x20] add r3, r7, #0x0 ldr r1, [r1, #0x0] str r1, [sp, #0x8] str r0, [sp, #0xc] mov r0, #0x0 str r0, [sp, #0x10] ldr r1, [sp, #0x18] ldr r2, [sp, #0x14] add r0, r6, #0x0 bl FUN_021E1F34 ldr r1, [sp, #0x1c] str r0, [r1, #0x0] ldr r0, [sp, #0x24] str r0, [r5, #0x64] mov r0, #0x1 add sp, #0x2c pop {r4-r7, pc} .balign 4 thumb_func_start FUN_0203AE4C FUN_0203AE4C: ; 0x0203AE4C push {r4-r7, lr} sub sp, #0x2c add r5, r0, #0x0 add r0, #0x80 ldr r6, [r0, #0x0] mov r1, #0x0 add r0, r6, #0x0 bl FUN_02039438 str r0, [sp, #0x1c] add r0, r6, #0x0 mov r1, #0xf bl FUN_02039438 str r0, [sp, #0x20] ldr r0, [r5, #0x8] add r1, r0, #0x1 str r1, [r5, #0x8] ldrb r0, [r0, #0x0] add r2, r1, #0x1 str r0, [sp, #0x18] str r2, [r5, #0x8] ldrb r0, [r1, #0x0] add r1, r2, #0x1 str r0, [sp, #0x14] str r1, [r5, #0x8] ldrb r7, [r2, #0x0] add r0, r1, #0x1 str r0, [r5, #0x8] add r0, r5, #0x0 ldrb r4, [r1, #0x0] bl FUN_02038C30 str r0, [sp, #0x24] ldr r1, [sp, #0x24] add r0, r6, #0x0 bl FUN_020394B8 str r0, [sp, #0x28] add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x1 bl FUN_02039438 ldr r1, [sp, #0x28] str r4, [sp, #0x0] str r1, [sp, #0x4] ldr r1, [sp, #0x20] add r3, r7, #0x0 ldr r1, [r1, #0x0] str r1, [sp, #0x8] str r0, [sp, #0xc] ldr r0, [r5, #0x78] str r0, [sp, #0x10] ldr r1, [sp, #0x18] ldr r2, [sp, #0x14] add r0, r6, #0x0 bl FUN_021E1F34 ldr r1, [sp, #0x1c] str r0, [r1, #0x0] ldr r0, [sp, #0x24] str r0, [r5, #0x64] mov r0, #0x1 add sp, #0x2c pop {r4-r7, pc} .balign 4 thumb_func_start FUN_0203AED4 FUN_0203AED4: ; 0x0203AED4 push {r3-r7, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x0 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r3, r0, #0x0 lsl r1, r6, #0x18 lsl r2, r7, #0x18 lsl r3, r3, #0x18 ldr r0, [r4, #0x0] lsr r1, r1, #0x18 lsr r2, r2, #0x18 lsr r3, r3, #0x18 bl FUN_021E1F58 mov r0, #0x0 pop {r3-r7, pc} thumb_func_start FUN_0203AF34 FUN_0203AF34: ; 0x0203AF34 push {r4, lr} add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x0 bl FUN_02039438 ldr r0, [r0, #0x0] bl FUN_021E1F60 ldr r1, _0203AF54 ; =FUN_0203AD2C add r0, r4, #0x0 bl FUN_02038B5C mov r0, #0x1 pop {r4, pc} .balign 4 _0203AF54: .word FUN_0203AD2C thumb_func_start FUN_0203AF58 FUN_0203AF58: ; 0x0203AF58 push {r4, lr} add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x0 bl FUN_02039438 ldr r2, [r4, #0x8] add r1, r2, #0x1 str r1, [r4, #0x8] ldrb r1, [r2, #0x0] ldr r0, [r0, #0x0] bl FUN_021E26CC ldr r1, _0203AF80 ; =FUN_0203AD2C add r0, r4, #0x0 bl FUN_02038B5C mov r0, #0x1 pop {r4, pc} .balign 4 _0203AF80: .word FUN_0203AD2C thumb_func_start FUN_0203AF84 FUN_0203AF84: ; 0x0203AF84 push {r4, lr} add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x0 bl FUN_02039438 ldr r2, [r4, #0x8] add r1, r2, #0x1 str r1, [r4, #0x8] ldrb r1, [r2, #0x0] ldr r0, [r0, #0x0] bl FUN_021E2B80 mov r0, #0x1 pop {r4, pc} thumb_func_start FUN_0203AFA4 FUN_0203AFA4: ; 0x0203AFA4 push {r4, lr} add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x0 bl FUN_02039438 ldr r2, [r4, #0x8] add r1, r2, #0x1 str r1, [r4, #0x8] ldrb r1, [r2, #0x0] ldr r0, [r0, #0x0] bl FUN_021E2B9C mov r0, #0x1 pop {r4, pc} thumb_func_start FUN_0203AFC4 FUN_0203AFC4: ; 0x0203AFC4 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C48 add r4, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] add r1, r6, #0x0 bl FUN_0203B120 add r6, r0, #0x0 bne _0203AFF6 bl ErrorHandling _0203AFF6: ldr r1, [r5, #0x8] add r0, r6, #0x0 add r1, r1, r4 bl FUN_0205AEA4 add r4, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x4 bl FUN_02039438 ldrb r1, [r0, #0x0] add r5, #0x80 mov r2, #0x0 add r1, r1, #0x1 strb r1, [r0, #0x0] ldr r0, [r5, #0x0] add r1, r4, #0x0 bl FUN_0203B174 mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_0203B024 FUN_0203B024: ; 0x0203B024 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 str r0, [sp, #0x0] add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] add r1, r4, #0x0 bl FUN_0203B120 str r0, [sp, #0x4] cmp r0, #0x0 bne _0203B07A bl ErrorHandling _0203B07A: mov r0, #0x4 add r1, r0, #0x0 add r1, #0xfc bl FUN_02016998 add r4, r0, #0x0 ldr r0, [sp, #0x4] bl FUN_02058B2C lsl r0, r0, #0x10 lsr r6, r0, #0x10 ldr r0, [sp, #0x4] bl FUN_02058B4C lsl r0, r0, #0x10 ldr r2, [sp, #0x0] lsr r0, r0, #0x10 mov r1, #0x0 cmp r6, r2 bhs _0203B0B0 mov r2, #0xf strh r2, [r4, #0x0] ldr r2, [sp, #0x0] add r1, r1, #0x1 sub r2, r2, r6 strh r2, [r4, #0x2] b _0203B0C0 _0203B0B0: cmp r6, r2 bls _0203B0C0 mov r2, #0xe strh r2, [r4, #0x0] ldr r2, [sp, #0x0] add r1, r1, #0x1 sub r2, r6, r2 strh r2, [r4, #0x2] _0203B0C0: cmp r0, r7 bhs _0203B0D4 lsl r2, r1, #0x2 mov r3, #0xc strh r3, [r4, r2] sub r3, r7, r0 add r0, r4, r2 strh r3, [r0, #0x2] add r1, r1, #0x1 b _0203B0E6 _0203B0D4: cmp r0, r7 bls _0203B0E6 lsl r2, r1, #0x2 mov r3, #0xd strh r3, [r4, r2] sub r3, r0, r7 add r0, r4, r2 strh r3, [r0, #0x2] add r1, r1, #0x1 _0203B0E6: lsl r2, r1, #0x2 mov r0, #0xfe strh r0, [r4, r2] mov r1, #0x0 add r0, r4, r2 strh r1, [r0, #0x2] ldr r0, [sp, #0x4] add r1, r4, #0x0 bl FUN_0205AEA4 add r6, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x4 bl FUN_02039438 ldrb r1, [r0, #0x0] add r5, #0x80 add r2, r4, #0x0 add r1, r1, #0x1 strb r1, [r0, #0x0] ldr r0, [r5, #0x0] add r1, r6, #0x0 bl FUN_0203B174 mov r0, #0x0 add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_0203B120 FUN_0203B120: ; 0x0203B120 push {r3, lr} cmp r1, #0xf2 bne _0203B130 ldr r0, [r0, #0x34] mov r1, #0x30 bl FUN_020580B4 pop {r3, pc} _0203B130: cmp r1, #0xf1 bne _0203B13E mov r1, #0xb bl FUN_02039438 ldr r0, [r0, #0x0] pop {r3, pc} _0203B13E: ldr r0, [r0, #0x34] bl FUN_02058060 pop {r3, pc} .balign 4 thumb_func_start FUN_0203B148 FUN_0203B148: ; 0x0203B148 push {r3, lr} ldr r1, _0203B154 ; =FUN_0203B158 bl FUN_02038B5C mov r0, #0x1 pop {r3, pc} .balign 4 _0203B154: .word FUN_0203B158 thumb_func_start FUN_0203B158 FUN_0203B158: ; 0x0203B158 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x4 bl FUN_02039438 ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _0203B16E mov r0, #0x1 pop {r3, pc} _0203B16E: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0203B174 FUN_0203B174: ; 0x0203B174 push {r3-r7, lr} add r5, r0, #0x0 add r6, r1, #0x0 mov r0, #0x4 mov r1, #0x10 add r7, r2, #0x0 bl FUN_02016998 add r4, r0, #0x0 bne _0203B18E bl ErrorHandling pop {r3-r7, pc} _0203B18E: str r5, [r4, #0xc] str r6, [r4, #0x4] ldr r0, _0203B1A4 ; =FUN_0203B1A8 add r1, r4, #0x0 mov r2, #0x0 str r7, [r4, #0x8] bl FUN_0200CA44 str r0, [r4, #0x0] pop {r3-r7, pc} nop _0203B1A4: .word FUN_0203B1A8 thumb_func_start FUN_0203B1A8 FUN_0203B1A8: ; 0x0203B1A8 push {r3-r5, lr} add r5, r1, #0x0 ldr r0, [r5, #0xc] mov r1, #0x4 bl FUN_02039438 add r4, r0, #0x0 ldr r0, [r5, #0x4] bl FUN_0205AEF0 cmp r0, #0x1 bne _0203B1EC ldr r0, [r5, #0x4] bl FUN_0205AEFC ldr r0, [r5, #0x0] bl FUN_0200CAB4 ldr r0, [r5, #0x8] cmp r0, #0x0 beq _0203B1D6 bl FUN_02016A18 _0203B1D6: add r0, r5, #0x0 bl FUN_02016A18 ldrb r0, [r4, #0x0] cmp r0, #0x0 bne _0203B1E8 bl ErrorHandling pop {r3-r5, pc} _0203B1E8: sub r0, r0, #0x1 strb r0, [r4, #0x0] _0203B1EC: pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203B1F0 FUN_0203B1F0: ; 0x0203B1F0 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r4, [r0, #0x0] mov r1, #0xa add r0, r4, #0x0 bl FUN_02039438 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _0203B20E ldr r0, [r4, #0x34] bl FUN_02058780 b _0203B214 _0203B20E: add r0, r5, #0x0 bl FUN_0203B2E0 _0203B214: mov r0, #0x1 pop {r3-r5, pc} thumb_func_start FUN_0203B218 FUN_0203B218: ; 0x0203B218 push {r4-r6, lr} add r0, #0x80 ldr r4, [r0, #0x0] mov r1, #0xa add r0, r4, #0x0 bl FUN_02039438 add r5, r0, #0x0 ldr r0, [r4, #0x38] bl FUN_020553A0 ldr r1, _0203B2DC ; =0x021C5A0C add r6, r0, #0x0 ldrb r2, [r1, #0x0] mov r1, #0x1 tst r1, r2 beq _0203B252 bl FUN_0205AE28 cmp r0, #0x1 bne _0203B252 add r0, r6, #0x0 bl FUN_02058908 ldr r1, _0203B2DC ; =0x021C5A0C mov r0, #0xfe ldrb r2, [r1, #0x0] and r0, r2 strb r0, [r1, #0x0] _0203B252: ldr r0, _0203B2DC ; =0x021C5A0C ldrb r1, [r0, #0x0] mov r0, #0x4 tst r0, r1 beq _0203B276 ldr r0, [r5, #0x0] bl FUN_02058854 cmp r0, #0x0 bne _0203B276 ldr r0, [r5, #0x0] bl FUN_02058908 ldr r1, _0203B2DC ; =0x021C5A0C mov r0, #0xfb ldrb r2, [r1, #0x0] and r0, r2 strb r0, [r1, #0x0] _0203B276: ldr r0, _0203B2DC ; =0x021C5A0C ldrb r1, [r0, #0x0] mov r0, #0x2 tst r0, r1 beq _0203B2A2 ldr r0, [r4, #0x34] mov r1, #0x30 bl FUN_020580B4 add r4, r0, #0x0 bl FUN_02058854 cmp r0, #0x0 bne _0203B2A2 add r0, r4, #0x0 bl FUN_02058908 ldr r1, _0203B2DC ; =0x021C5A0C mov r0, #0xfd ldrb r2, [r1, #0x0] and r0, r2 strb r0, [r1, #0x0] _0203B2A2: ldr r0, _0203B2DC ; =0x021C5A0C ldrb r1, [r0, #0x0] mov r0, #0x8 tst r0, r1 beq _0203B2CC ldr r0, [r5, #0x0] bl FUN_0205E7C4 add r4, r0, #0x0 bl FUN_02058854 cmp r0, #0x0 bne _0203B2CC add r0, r4, #0x0 bl FUN_02058908 ldr r1, _0203B2DC ; =0x021C5A0C mov r0, #0xf7 ldrb r2, [r1, #0x0] and r0, r2 strb r0, [r1, #0x0] _0203B2CC: ldr r0, _0203B2DC ; =0x021C5A0C ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _0203B2D8 mov r0, #0x1 pop {r4-r6, pc} _0203B2D8: mov r0, #0x0 pop {r4-r6, pc} .balign 4 _0203B2DC: .word 0x021C5A0C thumb_func_start FUN_0203B2E0 FUN_0203B2E0: ; 0x0203B2E0 push {r3-r7, lr} sub sp, #0x8 str r0, [sp, #0x0] add r0, #0x80 ldr r4, [r0, #0x0] mov r1, #0xa add r0, r4, #0x0 bl FUN_02039438 add r5, r0, #0x0 ldr r0, [r4, #0x38] bl FUN_020553A0 str r0, [sp, #0x4] ldr r0, [r4, #0x34] mov r1, #0x30 bl FUN_020580B4 add r7, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_0205E7C4 add r6, r0, #0x0 ldr r0, [r4, #0x34] ldr r1, _0203B3A8 ; =0x021C5A0C mov r2, #0x0 strb r2, [r1, #0x0] bl FUN_02058780 ldr r0, [sp, #0x4] bl FUN_0205AE28 cmp r0, #0x0 bne _0203B334 ldr r1, _0203B3A8 ; =0x021C5A0C mov r0, #0x1 ldrb r2, [r1, #0x0] orr r0, r2 strb r0, [r1, #0x0] ldr r0, [sp, #0x4] bl FUN_02058914 _0203B334: ldr r0, [r5, #0x0] bl FUN_02058854 cmp r0, #0x0 beq _0203B34E ldr r1, _0203B3A8 ; =0x021C5A0C mov r0, #0x4 ldrb r2, [r1, #0x0] orr r0, r2 strb r0, [r1, #0x0] ldr r0, [r5, #0x0] bl FUN_02058914 _0203B34E: cmp r7, #0x0 beq _0203B37A ldr r0, [r4, #0xc] bl FUN_020462AC bl FUN_0205ED3C cmp r0, #0x1 bne _0203B37A add r0, r7, #0x0 bl FUN_02058854 cmp r0, #0x0 beq _0203B37A ldr r1, _0203B3A8 ; =0x021C5A0C mov r0, #0x2 ldrb r2, [r1, #0x0] orr r0, r2 strb r0, [r1, #0x0] add r0, r7, #0x0 bl FUN_02058914 _0203B37A: cmp r6, #0x0 beq _0203B398 add r0, r6, #0x0 bl FUN_02058854 cmp r0, #0x0 beq _0203B398 ldr r1, _0203B3A8 ; =0x021C5A0C mov r0, #0x8 ldrb r2, [r1, #0x0] orr r0, r2 strb r0, [r1, #0x0] add r0, r6, #0x0 bl FUN_02058914 _0203B398: ldr r0, [sp, #0x0] ldr r1, _0203B3AC ; =FUN_0203B218 bl FUN_02038B5C mov r0, #0x1 add sp, #0x8 pop {r3-r7, pc} nop _0203B3A8: .word 0x021C5A0C _0203B3AC: .word FUN_0203B218 thumb_func_start FUN_0203B3B0 FUN_0203B3B0: ; 0x0203B3B0 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0x34] bl FUN_020587B0 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0203B3C0 FUN_0203B3C0: ; 0x0203B3C0 push {r4, lr} add r1, r0, #0x0 add r1, #0x80 ldr r4, [r1, #0x0] bl FUN_02038C30 add r1, r0, #0x0 ldr r0, [r4, #0x34] bl FUN_02058060 bl FUN_02058908 mov r0, #0x0 pop {r4, pc} thumb_func_start FUN_0203B3DC FUN_0203B3DC: ; 0x0203B3DC push {r4, lr} add r1, r0, #0x0 add r1, #0x80 ldr r4, [r1, #0x0] bl FUN_02038C30 add r1, r0, #0x0 ldr r0, [r4, #0x34] bl FUN_02058060 bl FUN_02058914 mov r0, #0x0 pop {r4, pc} thumb_func_start FUN_0203B3F8 FUN_0203B3F8: ; 0x0203B3F8 push {r3-r6, lr} sub sp, #0x4 add r4, r0, #0x0 add r1, r4, #0x0 add r1, #0x80 ldr r5, [r1, #0x0] bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394F0 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02034B64 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02034B6C str r0, [sp, #0x0] ldr r3, [r5, #0x1c] ldr r0, [r5, #0x34] ldr r3, [r3, #0x0] add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_020575D4 cmp r0, #0x0 bne _0203B43A bl ErrorHandling _0203B43A: mov r0, #0x0 add sp, #0x4 pop {r3-r6, pc} thumb_func_start FUN_0203B440 FUN_0203B440: ; 0x0203B440 push {r3-r5, lr} add r4, r0, #0x0 add r1, r4, #0x0 add r1, #0x80 ldr r5, [r1, #0x0] bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394F0 add r1, r0, #0x0 ldr r0, [r5, #0x34] bl FUN_02058060 bl FUN_02057688 mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0203B468 FUN_0203B468: ; 0x0203B468 push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xb bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 mov r1, #0x2 ldr r0, [r0, #0x0] lsl r1, r1, #0xc str r1, [sp, #0x0] mov r3, #0x0 str r3, [sp, #0x4] ldr r1, [r0, #0x1c] add r2, r7, #0x0 ldr r1, [r1, #0x0] str r1, [sp, #0x8] ldr r0, [r0, #0x34] add r1, r6, #0x0 bl FUN_0205753C str r0, [r4, #0x0] bl FUN_02059D1C ldr r0, [r4, #0x0] mov r1, #0x1 bl FUN_0205889C ldr r0, [r4, #0x0] mov r1, #0x0 bl FUN_020588B8 ldr r0, [r4, #0x0] bl FUN_02058B7C add r1, r5, #0x0 add r1, #0x80 ldr r1, [r1, #0x0] add r4, r0, #0x0 ldr r1, [r1, #0x24] bl FUN_021EF5E0 add r5, #0x80 ldr r1, [r5, #0x0] add r0, r4, #0x0 ldr r1, [r1, #0x20] bl FUN_0201EC68 mov r0, #0x0 add sp, #0xc pop {r4-r7, pc} .balign 4 thumb_func_start FUN_0203B500 FUN_0203B500: ; 0x0203B500 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xb bl FUN_02039438 ldr r0, [r0, #0x0] bl FUN_02057654 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xff ldr r0, [r0, #0x34] bl FUN_02058060 bl FUN_02058B7C add r1, r5, #0x0 add r1, #0x80 ldr r1, [r1, #0x0] add r4, r0, #0x0 ldr r1, [r1, #0x24] bl FUN_021EF5E0 add r5, #0x80 ldr r1, [r5, #0x0] add r0, r4, #0x0 ldr r1, [r1, #0x20] bl FUN_0201EC68 mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0203B544 FUN_0203B544: ; 0x0203B544 push {r3-r5, lr} add r0, #0x80 ldr r5, [r0, #0x0] ldr r0, [r5, #0x38] bl FUN_020552F8 bl FUN_02059E74 add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0xa bl FUN_02039438 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _0203B568 mov r0, #0x0 pop {r3-r5, pc} _0203B568: add r1, r4, #0x0 bl FUN_021F1EC0 mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203B574 FUN_0203B574: ; 0x0203B574 push {r4-r6, lr} add r4, r0, #0x0 add r1, r4, #0x0 add r1, #0x80 ldr r5, [r1, #0x0] bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 add r4, r0, #0x0 ldr r0, [r5, #0x38] bl FUN_02055320 strh r0, [r6, #0x0] ldr r0, [r5, #0x38] bl FUN_0205532C strh r0, [r4, #0x0] mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0203B5B8 FUN_0203B5B8: ; 0x0203B5B8 push {r4-r6, lr} add r4, r0, #0x0 add r1, r4, #0x0 add r1, #0x80 ldr r5, [r1, #0x0] bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r1, r0, #0x0 ldr r0, [r5, #0x34] bl FUN_02058060 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02058B2C strh r0, [r6, #0x0] add r0, r5, #0x0 bl FUN_02058B4C strh r0, [r4, #0x0] mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0203B618 FUN_0203B618: ; 0x0203B618 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0x38] bl FUN_020552F8 strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203B640 FUN_0203B640: ; 0x0203B640 push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r4, r0, #0x0 cmp r7, #0x0 beq _0203B696 lsl r0, r7, #0xc blx FUN_020EB534 add r1, r0, #0x0 mov r0, #0x3f lsl r0, r0, #0x18 blx FUN_020EA980 b _0203B6A4 _0203B696: lsl r0, r7, #0xc blx FUN_020EB534 mov r1, #0x3f lsl r1, r1, #0x18 blx FUN_020EB7B0 _0203B6A4: blx FUN_020EB4C0 str r0, [sp, #0x0] cmp r6, #0x0 beq _0203B6C0 lsl r0, r6, #0xc blx FUN_020EB534 add r1, r0, #0x0 mov r0, #0x3f lsl r0, r0, #0x18 blx FUN_020EA980 b _0203B6CE _0203B6C0: lsl r0, r6, #0xc blx FUN_020EB534 mov r1, #0x3f lsl r1, r1, #0x18 blx FUN_020EB7B0 _0203B6CE: blx FUN_020EB4C0 str r0, [sp, #0x4] cmp r4, #0x0 beq _0203B6EA lsl r0, r4, #0xc blx FUN_020EB534 add r1, r0, #0x0 mov r0, #0x3f lsl r0, r0, #0x18 blx FUN_020EA980 b _0203B6F8 _0203B6EA: lsl r0, r4, #0xc blx FUN_020EB534 mov r1, #0x3f lsl r1, r1, #0x18 blx FUN_020EB7B0 _0203B6F8: blx FUN_020EB4C0 str r0, [sp, #0x8] add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0x38] bl FUN_020553A0 add r1, sp, #0x0 bl FUN_02058BB4 add r5, #0x80 ldr r1, [r5, #0x0] add r0, sp, #0x0 ldr r1, [r1, #0x20] bl FUN_0201EF70 mov r0, #0x0 add sp, #0xc pop {r4-r7, pc} .balign 4 thumb_func_start FUN_0203B724 FUN_0203B724: ; 0x0203B724 push {r4, lr} add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0x34] bl FUN_02058060 ldr r2, [r4, #0x8] add r1, r2, #0x1 str r1, [r4, #0x8] ldrb r1, [r2, #0x0] bl FUN_02058994 mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_0203B758 FUN_0203B758: ; 0x0203B758 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0x34] bl FUN_02058060 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_02058E90 mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203B790 FUN_0203B790: ; 0x0203B790 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, r0, #0x0 mov r0, #0x0 strh r0, [r4, #0x0] add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0x34] bl FUN_02058060 cmp r0, #0x0 beq _0203B7D2 bl FUN_02058480 strh r0, [r4, #0x0] _0203B7D2: mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203B7D8 FUN_0203B7D8: ; 0x0203B7D8 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x30 ldr r0, [r0, #0x34] bl FUN_020580B4 mov r1, #0xfe bl FUN_02058EB0 mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_0203B7F0 FUN_0203B7F0: ; 0x0203B7F0 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_02029C80 bl FUN_02029E0C strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203B81C FUN_0203B81C: ; 0x0203B81C push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_02029C80 add r1, r6, #0x0 bl FUN_02029E2C strh r0, [r4, #0x0] mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_0203B85C FUN_0203B85C: ; 0x0203B85C push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_02029C80 lsl r2, r4, #0x10 add r1, r6, #0x0 asr r2, r2, #0x10 bl FUN_02029D44 mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0203B8A0 FUN_0203B8A0: ; 0x0203B8A0 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_0206BB1C add r1, r6, #0x0 bl FUN_0206B9B0 bl FUN_020690CC strh r0, [r4, #0x0] mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_0203B8E4 FUN_0203B8E4: ; 0x0203B8E4 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x13 bl FUN_02039438 add r1, r5, #0x0 add r1, #0x80 add r4, r0, #0x0 ldr r1, [r1, #0x0] mov r0, #0x20 bl FUN_020379F8 str r0, [r4, #0x0] ldr r1, _0203B910 ; =FUN_0203BC04 add r0, r5, #0x0 bl FUN_02038B5C mov r0, #0x1 pop {r3-r5, pc} nop _0203B910: .word FUN_0203BC04 thumb_func_start FUN_0203B914 FUN_0203B914: ; 0x0203B914 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x13 bl FUN_02039438 add r1, r5, #0x0 add r1, #0x80 add r4, r0, #0x0 ldr r1, [r1, #0x0] mov r0, #0x20 bl FUN_02037A1C str r0, [r4, #0x0] ldr r1, _0203B940 ; =FUN_0203BC04 add r0, r5, #0x0 bl FUN_02038B5C mov r0, #0x1 pop {r3-r5, pc} nop _0203B940: .word FUN_0203BC04 thumb_func_start FUN_0203B944 FUN_0203B944: ; 0x0203B944 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x13 bl FUN_02039438 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] mov r1, #0x20 ldr r0, [r0, #0x10] bl FUN_02037B44 str r0, [r4, #0x0] mov r0, #0x1 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203B968 FUN_0203B968: ; 0x0203B968 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, #0x80 add r5, r0, #0x0 ldr r0, [r4, #0x0] mov r1, #0x13 bl FUN_02039438 add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x0 bne _0203B994 bl ErrorHandling _0203B994: ldr r0, [r4, #0x0] bl FUN_02037A40 strh r0, [r5, #0x0] ldrh r0, [r5, #0x0] cmp r0, #0x7 bne _0203B9A6 mov r0, #0xff strh r0, [r5, #0x0] _0203B9A6: ldr r0, [r4, #0x0] bl FUN_02016A18 mov r0, #0x0 str r0, [r4, #0x0] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203B9B4 FUN_0203B9B4: ; 0x0203B9B4 push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x13 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 str r0, [sp, #0x8] add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 str r0, [sp, #0x0] add r1, r5, #0x0 str r6, [sp, #0x4] add r1, #0x80 ldr r1, [r1, #0x0] ldr r2, [sp, #0x8] mov r0, #0x20 add r3, r7, #0x0 bl FUN_02037BB0 str r0, [r4, #0x0] ldr r1, _0203BA38 ; =FUN_0203BC04 add r0, r5, #0x0 bl FUN_02038B5C mov r0, #0x1 add sp, #0xc pop {r4-r7, pc} .balign 4 _0203BA38: .word FUN_0203BC04 thumb_func_start FUN_0203BA3C FUN_0203BA3C: ; 0x0203BA3C push {r4-r6, lr} add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, #0x80 add r5, r0, #0x0 ldr r0, [r4, #0x0] mov r1, #0x13 bl FUN_02039438 add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x0 bne _0203BA7C bl ErrorHandling _0203BA7C: ldr r0, [r4, #0x0] bl FUN_02037A40 strh r0, [r6, #0x0] ldrh r0, [r6, #0x0] cmp r0, #0x7 bne _0203BA8E mov r0, #0xff strh r0, [r6, #0x0] _0203BA8E: ldr r0, [r4, #0x0] bl FUN_02037A70 strh r0, [r5, #0x0] ldrh r0, [r5, #0x0] cmp r0, #0x1 bne _0203BAA0 mov r0, #0x1 b _0203BAA2 _0203BAA0: mov r0, #0x0 _0203BAA2: strh r0, [r5, #0x0] ldr r0, [r4, #0x0] bl FUN_02016A18 mov r0, #0x0 str r0, [r4, #0x0] pop {r4-r6, pc} thumb_func_start FUN_0203BAB0 FUN_0203BAB0: ; 0x0203BAB0 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x13 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r1, r5, #0x0 add r1, #0x80 add r2, r0, #0x0 ldr r1, [r1, #0x0] mov r0, #0x20 bl FUN_02037C00 str r0, [r4, #0x0] ldr r1, _0203BAF0 ; =FUN_0203BC04 add r0, r5, #0x0 bl FUN_02038B5C mov r0, #0x1 pop {r3-r5, pc} nop _0203BAF0: .word FUN_0203BC04 thumb_func_start FUN_0203BAF4 FUN_0203BAF4: ; 0x0203BAF4 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, #0x80 add r5, r0, #0x0 ldr r0, [r4, #0x0] mov r1, #0x13 bl FUN_02039438 add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x0 bne _0203BB20 bl ErrorHandling _0203BB20: ldr r0, [r4, #0x0] bl FUN_02037A78 strh r0, [r5, #0x0] ldr r0, [r4, #0x0] bl FUN_02016A18 mov r0, #0x0 str r0, [r4, #0x0] pop {r3-r5, pc} thumb_func_start FUN_0203BB34 FUN_0203BB34: ; 0x0203BB34 push {r3-r7, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xa bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, #0x80 add r6, r0, #0x0 ldr r0, [r5, #0x0] ldr r1, [r4, #0x0] add r2, r7, #0x0 bl FUN_021E1858 strh r0, [r6, #0x0] mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0203BB80 FUN_0203BB80: ; 0x0203BB80 mov r0, #0x0 bx lr thumb_func_start FUN_0203BB84 FUN_0203BB84: ; 0x0203BB84 mov r0, #0x0 bx lr thumb_func_start FUN_0203BB88 FUN_0203BB88: ; 0x0203BB88 mov r0, #0x1 bx lr thumb_func_start FUN_0203BB8C FUN_0203BB8C: ; 0x0203BB8C mov r0, #0x0 bx lr thumb_func_start FUN_0203BB90 FUN_0203BB90: ; 0x0203BB90 push {r3-r5, lr} add r0, #0x80 ldr r5, [r0, #0x0] mov r1, #0x13 add r0, r5, #0x0 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0204647C cmp r0, #0x0 beq _0203BBAE mov r0, #0x0 pop {r3-r5, pc} _0203BBAE: ldr r0, [r4, #0x0] bl FUN_02016A18 mov r0, #0x0 str r0, [r4, #0x0] mov r0, #0x1 pop {r3-r5, pc} thumb_func_start FUN_0203BBBC FUN_0203BBBC: ; 0x0203BBBC push {r4-r6, lr} add r0, #0x80 ldr r5, [r0, #0x0] mov r1, #0x13 add r0, r5, #0x0 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 ldr r6, [r4, #0x0] bl FUN_0204647C cmp r0, #0x0 beq _0203BBDC mov r0, #0x0 pop {r4-r6, pc} _0203BBDC: ldr r0, [r6, #0x8] cmp r0, #0x1 bne _0203BBF4 mov r0, #0xb bl FUN_02029048 add r5, #0x98 add r1, r0, #0x0 ldr r0, [r5, #0x0] mov r2, #0x1 bl FUN_02028AD4 _0203BBF4: ldr r0, [r4, #0x0] bl FUN_02016A18 mov r0, #0x0 str r0, [r4, #0x0] mov r0, #0x1 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0203BC04 FUN_0203BC04: ; 0x0203BC04 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_0204647C cmp r0, #0x0 bne _0203BC16 mov r0, #0x1 pop {r3, pc} _0203BC16: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0203BC1C FUN_0203BC1C: ; 0x0203BC1C push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0x10] bl FUN_0204AF84 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0203BC2C FUN_0203BC2C: ; 0x0203BC2C push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0x10] bl FUN_0204AF3C mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0203BC3C FUN_0203BC3C: ; 0x0203BC3C push {r3-r5, lr} ldr r0, [r0, #0xc] add r5, r1, #0x0 add r4, r2, #0x0 bl FUN_02027E24 cmp r5, #0x0 bne _0203BC5A add r1, r4, #0x0 bl FUN_02027098 cmp r0, #0x0 bne _0203BC68 mov r0, #0x0 pop {r3-r5, pc} _0203BC5A: add r1, r4, #0x0 bl FUN_020270B4 cmp r0, #0x0 bne _0203BC68 mov r0, #0x0 pop {r3-r5, pc} _0203BC68: mov r0, #0x1 pop {r3-r5, pc} thumb_func_start FUN_0203BC6C FUN_0203BC6C: ; 0x0203BC6C push {r3-r7, lr} add r5, r1, #0x0 str r0, [sp, #0x0] ldr r0, [r5, #0xc] add r4, r2, #0x0 add r6, r3, #0x0 bl FUN_02027E24 add r7, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_0203BC3C cmp r0, #0x0 bne _0203BC90 mov r0, #0x0 pop {r3-r7, pc} _0203BC90: ldr r0, [sp, #0x0] mov r1, #0xc bl FUN_02016998 mov r1, #0x0 strb r1, [r0, #0x0] strb r1, [r0, #0x1] strb r1, [r0, #0x2] strb r1, [r0, #0x3] strb r1, [r0, #0x4] strb r1, [r0, #0x5] strb r1, [r0, #0x6] strb r1, [r0, #0x7] strb r1, [r0, #0x8] strb r1, [r0, #0x9] strb r1, [r0, #0xa] strb r1, [r0, #0xb] str r7, [r0, #0x0] str r4, [r0, #0x8] str r6, [r0, #0x4] pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0203BCBC FUN_0203BCBC: ; 0x0203BCBC push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_021F02C4 mov r0, #0x1 pop {r3, pc} .balign 4 thumb_func_start FUN_0203BCCC FUN_0203BCCC: ; 0x0203BCCC push {r3, lr} ldr r0, [r0, #0x74] bl FUN_0206F3B8 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0203BCD8 FUN_0203BCD8: ; 0x0203BCD8 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x13 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 ldr r1, [r4, #0x0] ldr r1, [r1, #0x4] strh r1, [r0, #0x0] ldr r0, [r4, #0x0] bl FUN_02016A18 mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0203BD08 FUN_0203BD08: ; 0x0203BD08 push {r4, lr} add r4, r0, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 add r4, r0, #0x0 bl FUN_02031190 strh r0, [r4, #0x0] mov r0, #0x1 pop {r4, pc} .balign 4 thumb_func_start FUN_0203BD28 FUN_0203BD28: ; 0x0203BD28 push {r4-r7, lr} sub sp, #0x14 add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x14 bl FUN_02039438 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x4 str r0, [sp, #0x4] add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r2, _0203BDB4 ; =0x000003D9 ldr r0, [r0, #0x8] mov r1, #0x3 mov r3, #0xb bl FUN_0200CB00 mov r0, #0xb str r0, [sp, #0x0] ldr r0, _0203BDB4 ; =0x000003D9 mov r1, #0x3 str r0, [sp, #0x4] lsl r0, r7, #0x18 str r4, [sp, #0x8] lsr r0, r0, #0x18 str r0, [sp, #0xc] mov r0, #0x4 str r0, [sp, #0x10] add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r2, #0xa ldr r0, [r0, #0x8] mov r3, #0x5 bl FUN_0200DC4C add r5, #0x80 str r0, [r6, #0x0] ldr r0, [r5, #0x0] add r1, r4, #0x0 bl FUN_0203ED2C mov r0, #0x0 add sp, #0x14 pop {r4-r7, pc} .balign 4 _0203BDB4: .word 0x000003D9 thumb_func_start FUN_0203BDB8 FUN_0203BDB8: ; 0x0203BDB8 push {r4-r6, lr} sub sp, #0x10 add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x14 bl FUN_02039438 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r4, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_0206BB1C add r1, r4, #0x0 bl FUN_0206B9B0 add r4, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x4 str r0, [sp, #0x4] add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r2, _0203BE4C ; =0x000003D9 ldr r0, [r0, #0x8] mov r1, #0x3 mov r3, #0xb bl FUN_0200CB00 mov r0, #0xb str r0, [sp, #0x0] ldr r0, _0203BE4C ; =0x000003D9 mov r1, #0x3 str r0, [sp, #0x4] str r4, [sp, #0x8] mov r0, #0x4 str r0, [sp, #0xc] add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r2, #0xa ldr r0, [r0, #0x8] mov r3, #0x5 bl FUN_0200DCA4 str r0, [r6, #0x0] add r0, r4, #0x0 mov r1, #0x5 mov r2, #0x0 bl FUN_020671BC add r1, r0, #0x0 add r5, #0x80 lsl r1, r1, #0x10 ldr r0, [r5, #0x0] lsr r1, r1, #0x10 bl FUN_0203ED2C mov r0, #0x0 add sp, #0x10 pop {r4-r6, pc} .balign 4 _0203BE4C: .word 0x000003D9 thumb_func_start FUN_0203BE50 FUN_0203BE50: ; 0x0203BE50 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x14 bl FUN_02039438 ldr r0, [r0, #0x0] mov r1, #0x1 strb r1, [r0, #0x0] add r0, r1, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0203BE68 FUN_0203BE68: ; 0x0203BE68 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x14 bl FUN_02039438 ldr r0, [r0, #0x0] mov r1, #0x2 strb r1, [r0, #0x0] mov r0, #0x1 pop {r3, pc} .balign 4 thumb_func_start FUN_0203BE80 FUN_0203BE80: ; 0x0203BE80 push {r4, lr} add r4, r0, #0x0 bl FUN_02038C30 str r0, [r4, #0x64] ldr r1, _0203BE98 ; =FUN_0203BE9C add r0, r4, #0x0 bl FUN_02038B5C mov r0, #0x1 pop {r4, pc} nop _0203BE98: .word FUN_0203BE9C thumb_func_start FUN_0203BE9C FUN_0203BE9C: ; 0x0203BE9C push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x14 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 ldr r1, [r5, #0x64] add r0, #0x80 lsl r1, r1, #0x10 ldr r0, [r0, #0x0] lsr r1, r1, #0x10 bl FUN_020394B8 ldr r0, [r4, #0x0] ldrb r0, [r0, #0x0] cmp r0, #0x3 beq _0203BEC8 mov r0, #0x1 pop {r3-r5, pc} _0203BEC8: mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0203BECC FUN_0203BECC: ; 0x0203BECC push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02038C30 add r6, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] add r1, r6, #0x0 bl FUN_020394B8 add r2, r0, #0x0 ldr r0, [r5, #0x74] ldr r1, [r4, #0x0] bl FUN_021E1374 mov r0, #0x1 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0203BF00 FUN_0203BF00: ; 0x0203BF00 push {r4, lr} add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xa bl FUN_02039438 ldr r1, [r0, #0x0] cmp r1, #0x0 beq _0203BF1C add r4, #0x80 ldr r0, [r4, #0x0] bl FUN_021E1994 _0203BF1C: mov r0, #0x0 pop {r4, pc} thumb_func_start FUN_0203BF20 FUN_0203BF20: ; 0x0203BF20 push {r3, lr} ldr r0, [r0, #0x74] bl FUN_0208A338 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0203BF2C FUN_0203BF2C: ; 0x0203BF2C push {r3-r6, lr} sub sp, #0x4 add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r5, #0x80 ldr r2, [r5, #0x0] add r1, r6, #0x0 str r0, [sp, #0x0] ldr r0, [r2, #0x10] ldr r2, [r2, #0xc] add r3, r4, #0x0 bl FUN_020380CC mov r0, #0x1 add sp, #0x4 pop {r3-r6, pc} .balign 4 thumb_func_start FUN_0203BF84 FUN_0203BF84: ; 0x0203BF84 push {r3-r7, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x13 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r1, r5, #0x0 add r1, #0x80 add r6, r0, #0x0 ldr r1, [r1, #0x0] mov r0, #0xb mov r2, #0x0 add r3, r7, #0x0 bl FUN_0203BC6C str r0, [r4, #0x0] cmp r0, #0x0 bne _0203BFCC mov r0, #0x1 strh r0, [r6, #0x0] pop {r3-r7, pc} _0203BFCC: mov r0, #0x0 strh r0, [r6, #0x0] add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r1, [r4, #0x0] bl FUN_02038130 ldr r1, _0203BFE8 ; =FUN_0203BB90 add r0, r5, #0x0 bl FUN_02038B5C mov r0, #0x1 pop {r3-r7, pc} .balign 4 _0203BFE8: .word FUN_0203BB90 thumb_func_start FUN_0203BFEC FUN_0203BFEC: ; 0x0203BFEC push {r3-r7, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x13 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r1, r5, #0x0 add r1, #0x80 add r6, r0, #0x0 ldr r1, [r1, #0x0] mov r0, #0xb mov r2, #0x1 add r3, r7, #0x0 bl FUN_0203BC6C str r0, [r4, #0x0] cmp r0, #0x0 bne _0203C034 mov r0, #0x1 strh r0, [r6, #0x0] pop {r3-r7, pc} _0203C034: mov r0, #0x0 strh r0, [r6, #0x0] add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r1, [r4, #0x0] bl FUN_02038130 ldr r1, _0203C050 ; =FUN_0203BB90 add r0, r5, #0x0 bl FUN_02038B5C mov r0, #0x1 pop {r3-r7, pc} .balign 4 _0203C050: .word FUN_0203BB90 thumb_func_start FUN_0203C054 FUN_0203C054: ; 0x0203C054 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02038C30 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] mov r1, #0x0 add r2, r6, #0x0 bl FUN_0203BC3C cmp r0, #0x1 bne _0203C088 mov r0, #0x1 strh r0, [r4, #0x0] pop {r4-r6, pc} _0203C088: mov r0, #0x0 strh r0, [r4, #0x0] mov r0, #0x1 pop {r4-r6, pc} thumb_func_start FUN_0203C090 FUN_0203C090: ; 0x0203C090 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02038C30 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] mov r1, #0x1 add r2, r6, #0x0 bl FUN_0203BC3C cmp r0, #0x1 bne _0203C0C4 mov r0, #0x1 strh r0, [r4, #0x0] pop {r4-r6, pc} _0203C0C4: mov r0, #0x0 strh r0, [r4, #0x0] mov r0, #0x1 pop {r4-r6, pc} thumb_func_start FUN_0203C0CC FUN_0203C0CC: ; 0x0203C0CC push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_02027E24 mov r1, #0x0 bl FUN_02027008 add r1, r4, #0x0 bl FUN_02027478 mov r0, #0x1 pop {r3-r5, pc} thumb_func_start FUN_0203C0FC FUN_0203C0FC: ; 0x0203C0FC push {r4, lr} add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_02038804 ldr r1, _0203C114 ; =FUN_0203BC04 add r0, r4, #0x0 bl FUN_02038B5C mov r0, #0x1 pop {r4, pc} .balign 4 _0203C114: .word FUN_0203BC04 thumb_func_start FUN_0203C118 FUN_0203C118: ; 0x0203C118 push {r3, lr} add r1, r0, #0x0 ldr r0, [r1, #0x74] add r1, #0x80 ldr r1, [r1, #0x0] ldr r1, [r1, #0xc] bl FUN_02085F48 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0203C12C FUN_0203C12C: ; 0x0203C12C push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x13 bl FUN_02039438 mov r1, #0x5 add r4, r0, #0x0 mov r0, #0xb lsl r1, r1, #0x6 bl FUN_02016998 str r0, [r4, #0x0] add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r1, [r4, #0x0] mov r2, #0x2 bl FUN_0205F7A0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r1, [r4, #0x0] bl FUN_02037E90 ldr r1, _0203C170 ; =FUN_0203BB90 add r0, r5, #0x0 bl FUN_02038B5C mov r0, #0x1 pop {r3-r5, pc} nop _0203C170: .word FUN_0203BB90 thumb_func_start FUN_0203C174 FUN_0203C174: ; 0x0203C174 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x13 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 lsl r0, r0, #0x18 lsr r1, r0, #0x18 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r2, #0xb bl FUN_02088960 str r0, [r4, #0x0] ldr r1, _0203C1A8 ; =FUN_0203BB90 add r0, r5, #0x0 bl FUN_02038B5C mov r0, #0x1 pop {r3-r5, pc} .balign 4 _0203C1A8: .word FUN_0203BB90 thumb_func_start FUN_0203C1AC FUN_0203C1AC: ; 0x0203C1AC push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_0206F158 mov r1, #0x4 bl FUN_0206EE64 cmp r0, #0x0 bne _0203C1E0 mov r0, #0x1 strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r5, pc} _0203C1E0: add r5, #0x80 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_02028048 bl FUN_020281B8 cmp r0, #0x64 blo _0203C1FA mov r0, #0x2 strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r5, pc} _0203C1FA: mov r0, #0x0 strh r0, [r4, #0x0] pop {r3-r5, pc} thumb_func_start FUN_0203C200 FUN_0203C200: ; 0x0203C200 push {r3-r7, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 str r0, [sp, #0x0] add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x13 bl FUN_02039438 add r6, r0, #0x0 mov r0, #0xb mov r1, #0x8 bl FUN_02016998 mov r1, #0x0 mov r2, #0x8 str r0, [r6, #0x0] add r4, r0, #0x0 blx MI_CpuFill8 ldr r0, [sp, #0x0] strh r7, [r4, #0x4] strh r0, [r4, #0x6] add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] str r0, [r4, #0x0] add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r1, [r6, #0x0] bl FUN_02037FE4 ldr r1, _0203C274 ; =FUN_0203BB90 add r0, r5, #0x0 bl FUN_02038B5C mov r0, #0x1 pop {r3-r7, pc} .balign 4 _0203C274: .word FUN_0203BB90 thumb_func_start FUN_0203C278 FUN_0203C278: ; 0x0203C278 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x13 bl FUN_02039438 add r4, r0, #0x0 mov r0, #0xb mov r1, #0xc bl FUN_02016998 add r1, r5, #0x0 add r1, #0x80 ldr r1, [r1, #0x0] ldr r1, [r1, #0xc] str r1, [r0, #0x0] ldr r2, [r5, #0x8] add r1, r2, #0x1 str r1, [r5, #0x8] ldrb r1, [r2, #0x0] str r1, [r0, #0x4] str r0, [r4, #0x0] add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r1, [r4, #0x0] bl FUN_02037D60 ldr r1, _0203C2C0 ; =FUN_0203BBBC add r0, r5, #0x0 bl FUN_02038B5C mov r0, #0x1 pop {r3-r5, pc} nop _0203C2C0: .word FUN_0203BBBC thumb_func_start FUN_0203C2C4 FUN_0203C2C4: ; 0x0203C2C4 push {r4, lr} add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020383F8 ldr r1, _0203C2DC ; =FUN_0203BC04 add r0, r4, #0x0 bl FUN_02038B5C mov r0, #0x1 pop {r4, pc} .balign 4 _0203C2DC: .word FUN_0203BC04 thumb_func_start FUN_0203C2E0 FUN_0203C2E0: ; 0x0203C2E0 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_02065344 mov r0, #0x1 pop {r3, pc} .balign 4 thumb_func_start FUN_0203C2F0 FUN_0203C2F0: ; 0x0203C2F0 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0x10] bl FUN_020383D8 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0203C300 FUN_0203C300: ; 0x0203C300 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x13 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_0203842C str r0, [r4, #0x0] ldr r1, _0203C328 ; =FUN_0203BB90 add r0, r5, #0x0 bl FUN_02038B5C mov r0, #0x1 pop {r3-r5, pc} .balign 4 _0203C328: .word FUN_0203BB90 thumb_func_start FUN_0203C32C FUN_0203C32C: ; 0x0203C32C push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0x10] bl FUN_02048694 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0203C33C FUN_0203C33C: ; 0x0203C33C push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x13 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_02038824 str r0, [r4, #0x0] ldr r1, _0203C364 ; =FUN_0203BB90 add r0, r5, #0x0 bl FUN_02038B5C mov r0, #0x1 pop {r3-r5, pc} .balign 4 _0203C364: .word FUN_0203BB90 thumb_func_start FUN_0203C368 FUN_0203C368: ; 0x0203C368 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_0203384C cmp r0, #0x0 beq _0203C3BC mov r0, #0x1 strh r0, [r4, #0x0] add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] add r1, r6, #0x0 bl FUN_020386E0 ldr r1, _0203C3C4 ; =FUN_0203BC04 add r0, r5, #0x0 bl FUN_02038B5C b _0203C3C0 _0203C3BC: mov r0, #0x0 strh r0, [r4, #0x0] _0203C3C0: mov r0, #0x1 pop {r4-r6, pc} .balign 4 _0203C3C4: .word FUN_0203BC04 thumb_func_start FUN_0203C3C8 FUN_0203C3C8: ; 0x0203C3C8 push {r4, lr} add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r1, r0, #0x0 ldr r0, [r4, #0x74] bl FUN_0206F3D8 mov r0, #0x1 pop {r4, pc} thumb_func_start FUN_0203C3E8 FUN_0203C3E8: ; 0x0203C3E8 push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x14 bl FUN_02039438 add r4, r0, #0x0 mov r0, #0xb mov r1, #0x8 bl FUN_02016998 str r0, [r4, #0x0] add r6, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl LoadPlayerDataAddress str r0, [r6, #0x4] add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r1, [r4, #0x0] bl FUN_020386A4 ldr r1, _0203C42C ; =FUN_0203BC04 add r0, r5, #0x0 bl FUN_02038B5C mov r0, #0x1 pop {r4-r6, pc} nop _0203C42C: .word FUN_0203BC04 thumb_func_start FUN_0203C430 FUN_0203C430: ; 0x0203C430 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x14 bl FUN_02039438 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_020462AC ldr r1, [r4, #0x0] ldr r1, [r1, #0x0] lsl r1, r1, #0x10 lsr r1, r1, #0x10 bl FUN_0205F378 ldr r0, [r4, #0x0] bl FUN_02016A18 mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0203C460 FUN_0203C460: ; 0x0203C460 push {r4-r6, lr} add r5, r0, #0x0 ldr r1, [r5, #0x8] add r0, r1, #0x1 str r0, [r5, #0x8] ldrb r0, [r1, #0x0] cmp r0, #0x0 beq _0203C474 mov r0, #0x1 b _0203C476 _0203C474: mov r0, #0x0 _0203C476: lsl r0, r0, #0x18 lsr r4, r0, #0x18 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x13 bl FUN_02039438 add r6, r0, #0x0 ldr r0, [r6, #0x0] cmp r0, #0x0 beq _0203C492 bl ErrorHandling _0203C492: add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] add r1, r4, #0x0 bl FUN_0203789C str r0, [r6, #0x0] ldr r1, _0203C4AC ; =FUN_0203BC04 add r0, r5, #0x0 bl FUN_02038B5C mov r0, #0x1 pop {r4-r6, pc} .balign 4 _0203C4AC: .word FUN_0203BC04 thumb_func_start FUN_0203C4B0 FUN_0203C4B0: ; 0x0203C4B0 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, #0x80 add r5, r0, #0x0 ldr r0, [r4, #0x0] mov r1, #0x13 bl FUN_02039438 add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x0 bne _0203C4DC bl ErrorHandling _0203C4DC: ldr r0, [r4, #0x0] bl FUN_020378FC strh r0, [r5, #0x0] ldr r0, [r4, #0x0] bl FUN_02016A18 mov r0, #0x0 str r0, [r4, #0x0] pop {r3-r5, pc} thumb_func_start FUN_0203C4F0 FUN_0203C4F0: ; 0x0203C4F0 push {r3-r4, lr} sub sp, #0xc add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 mov r1, #0x0 str r1, [sp, #0x0] str r1, [sp, #0x4] str r0, [sp, #0x8] ldr r0, [r4, #0x74] add r2, r1, #0x0 mov r3, #0x7 bl FUN_020385CC mov r0, #0x1 add sp, #0xc pop {r3-r4, pc} .balign 4 thumb_func_start FUN_0203C520 FUN_0203C520: ; 0x0203C520 push {r4-r7, lr} sub sp, #0x34 add r5, r0, #0x0 add r1, r5, #0x0 add r1, #0x80 ldr r4, [r1, #0x0] bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_0206BB1C add r1, r6, #0x0 bl FUN_0206B9B0 mov r1, #0x74 add r2, sp, #0xc add r7, r0, #0x0 bl FUN_020671BC add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, r0, #0x0 add r0, r7, #0x0 mov r1, #0x5 mov r2, #0x0 bl FUN_020671BC add r2, r0, #0x0 str r6, [sp, #0x0] add r0, sp, #0xc str r0, [sp, #0x4] str r4, [sp, #0x8] ldr r0, [r5, #0x74] mov r1, #0x1 mov r3, #0xa bl FUN_020385CC mov r0, #0x1 add sp, #0x34 pop {r4-r7, pc} thumb_func_start FUN_0203C58C FUN_0203C58C: ; 0x0203C58C push {r3-r4, lr} sub sp, #0xc add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 mov r2, #0x0 str r2, [sp, #0x0] str r2, [sp, #0x4] str r0, [sp, #0x8] ldr r0, [r4, #0x74] mov r1, #0x6 mov r3, #0xa bl FUN_020385CC mov r0, #0x1 add sp, #0xc pop {r3-r4, pc} .balign 4 thumb_func_start FUN_0203C5BC FUN_0203C5BC: ; 0x0203C5BC push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r2, r0, #0x0 ldr r0, _0203C610 ; =0x0000FFFF add r5, #0x80 strh r0, [r2, #0x0] ldr r0, [r5, #0x0] add r1, r4, #0x0 ldr r0, [r0, #0x10] mov r3, #0x0 bl FUN_02037E18 mov r0, #0x1 pop {r3-r5, pc} nop _0203C610: .word 0x0000FFFF thumb_func_start FUN_0203C614 FUN_0203C614: ; 0x0203C614 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r3, r0, #0x0 ldr r0, _0203C67C ; =0x0000FFFF add r5, #0x80 strh r0, [r4, #0x0] strh r0, [r3, #0x0] ldr r0, [r5, #0x0] add r1, r6, #0x0 ldr r0, [r0, #0x10] add r2, r4, #0x0 bl FUN_02037E18 mov r0, #0x1 pop {r4-r6, pc} .balign 4 _0203C67C: .word 0x0000FFFF thumb_func_start FUN_0203C680 FUN_0203C680: ; 0x0203C680 push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r2, r0, #0x0 ldr r0, [r4, #0x0] add r1, r6, #0x0 bl FUN_0200B518 mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0203C6C4 FUN_0203C6C4: ; 0x0203C6C4 push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 bl FUN_02038C30 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 str r4, [sp, #0x0] add r3, r0, #0x0 str r6, [sp, #0x4] mov r0, #0x4 str r0, [sp, #0x8] mov r0, #0x0 add r1, r7, #0x0 add r2, r7, #0x0 bl FUN_0200E1D0 mov r0, #0x0 bl FUN_0200E388 mov r0, #0x1 bl FUN_0200E388 mov r0, #0x0 add sp, #0xc pop {r4-r7, pc} thumb_func_start FUN_0203C70C FUN_0203C70C: ; 0x0203C70C push {r3, lr} ldr r1, _0203C718 ; =FUN_0203C71C bl FUN_02038B5C mov r0, #0x1 pop {r3, pc} .balign 4 _0203C718: .word FUN_0203C71C thumb_func_start FUN_0203C71C FUN_0203C71C: ; 0x0203C71C push {r3, lr} bl FUN_0200E308 cmp r0, #0x1 bne _0203C72A mov r0, #0x1 pop {r3, pc} _0203C72A: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0203C730 FUN_0203C730: ; 0x0203C730 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 bl FUN_02038C30 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 str r4, [sp, #0x0] str r0, [sp, #0x4] mov r2, #0x0 ldr r0, [r5, #0x74] add r1, r6, #0x0 mvn r2, r2 add r3, r7, #0x0 bl FUN_02049240 mov r0, #0x1 add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_0203C788 FUN_0203C788: ; 0x0203C788 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 bl FUN_02038C30 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 str r4, [sp, #0x0] mov r2, #0x0 add r5, #0x80 str r0, [sp, #0x4] ldr r0, [r5, #0x0] add r1, r6, #0x0 ldr r0, [r0, #0x10] mvn r2, r2 add r3, r7, #0x0 bl FUN_02049F98 mov r0, #0x1 add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_0203C7E4 FUN_0203C7E4: ; 0x0203C7E4 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0x10] bl FUN_02049FFC mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0203C7F4 FUN_0203C7F4: ; 0x0203C7F4 push {r3-r5, lr} add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_02034E30 bl FUN_02034DC8 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 ldr r1, [r5, #0x0] strh r1, [r0, #0x0] mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0203C820 FUN_0203C820: ; 0x0203C820 push {r4, lr} add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, #0x80 ldr r1, [r4, #0x0] ldr r1, [r1, #0x1c] ldr r1, [r1, #0x0] strh r1, [r0, #0x0] mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_0203C844 FUN_0203C844: ; 0x0203C844 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r4, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0x38] bl FUN_020552F8 add r1, r0, #0x0 ldr r0, [r5, #0x74] add r2, r4, #0x0 bl FUN_021E6990 mov r0, #0x1 pop {r3-r5, pc} thumb_func_start FUN_0203C874 FUN_0203C874: ; 0x0203C874 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] add r0, #0x90 ldr r0, [r0, #0x0] bl FUN_0205DD40 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r4, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0x38] bl FUN_020552F8 add r1, r0, #0x0 ldr r0, [r5, #0x74] add r2, r4, #0x0 bl FUN_021E6410 mov r0, #0x1 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203C8B4 FUN_0203C8B4: ; 0x0203C8B4 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r4, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0x38] bl FUN_020552F8 add r1, r0, #0x0 ldr r0, [r5, #0x74] add r2, r4, #0x0 bl FUN_021E6BF4 mov r0, #0x1 pop {r3-r5, pc} thumb_func_start FUN_0203C8E4 FUN_0203C8E4: ; 0x0203C8E4 push {r4-r6, lr} sub sp, #0x8 add r5, r0, #0x0 bl FUN_02038C30 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 str r0, [sp, #0x0] mov r2, #0x1 str r2, [sp, #0x4] add r5, #0x80 ldr r0, [r5, #0x0] add r1, r4, #0x0 sub r2, r2, #0x2 add r3, r6, #0x0 bl FUN_02049274 mov r0, #0x1 add sp, #0x8 pop {r4-r6, pc} thumb_func_start FUN_0203C930 FUN_0203C930: ; 0x0203C930 push {r3-r5, lr} add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_02034E30 add r5, r0, #0x0 mov r1, #0x0 bl FUN_02034DF4 add r0, r5, #0x0 bl FUN_02034DEC add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] ldr r0, [r0, #0x4] ldr r0, [r0, #0xc] bl FUN_021DC174 mov r0, #0x1 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203C960 FUN_0203C960: ; 0x0203C960 push {r3-r5, lr} add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_02034E30 add r5, r0, #0x0 mov r1, #0x0 bl FUN_02034DF4 add r0, r5, #0x0 bl FUN_02034DEC add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] ldr r0, [r0, #0x4] ldr r0, [r0, #0xc] bl FUN_021DC174 mov r0, #0x1 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203C990 FUN_0203C990: ; 0x0203C990 push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x14 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_0206BB1C add r1, r6, #0x0 bl FUN_0206B9B0 add r6, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0x38] bl FUN_020553E8 add r3, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x0 add r2, r6, #0x0 bl FUN_0224666C str r0, [r4, #0x0] ldr r1, _0203C9F4 ; =FUN_0203C9F8 add r0, r5, #0x0 bl FUN_02038B5C mov r0, #0x1 pop {r4-r6, pc} nop _0203C9F4: .word FUN_0203C9F8 thumb_func_start FUN_0203C9F8 FUN_0203C9F8: ; 0x0203C9F8 push {r4, lr} add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x14 bl FUN_02039438 add r4, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_022466A0 cmp r0, #0x1 bne _0203CA1A ldr r0, [r4, #0x0] bl FUN_022466AC mov r0, #0x1 pop {r4, pc} _0203CA1A: mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_0203CA20 FUN_0203CA20: ; 0x0203CA20 push {r3, lr} ldr r0, [r0, #0x74] bl FUN_021E7030 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0203CA2C FUN_0203CA2C: ; 0x0203CA2C push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0x38] bl FUN_020553C4 cmp r0, #0x1 bne _0203CA54 mov r0, #0x1 b _0203CA56 _0203CA54: mov r0, #0x0 _0203CA56: strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0203CA5C FUN_0203CA5C: ; 0x0203CA5C push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x8] add r0, r1, #0x1 str r0, [r4, #0x8] ldrb r0, [r1, #0x0] cmp r0, #0x1 bne _0203CAA4 add r0, r4, #0x0 add r0, #0x80 mov r1, #0x12 ldr r0, [r0, #0x0] lsl r1, r1, #0x6 bl FUN_0204AB20 add r0, r4, #0x0 add r0, #0x80 mov r1, #0x12 ldr r0, [r0, #0x0] lsl r1, r1, #0x6 mov r2, #0x1 bl FUN_0204ABDC add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x2 ldr r0, [r0, #0x38] bl FUN_021E5FD8 add r4, #0x80 ldr r0, [r4, #0x0] ldr r0, [r0, #0x38] bl FUN_021E5FE0 b _0203CAE4 _0203CAA4: add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x1 ldr r0, [r0, #0x38] bl FUN_021E5FD8 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0x38] bl FUN_021E5FE0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x0 bl FUN_0204AB20 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r1, [r0, #0x1c] ldr r1, [r1, #0x0] bl FUN_0204AB58 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] mov r2, #0x1 bl FUN_0204ABDC _0203CAE4: mov r0, #0x0 pop {r4, pc} thumb_func_start FUN_0203CAE8 FUN_0203CAE8: ; 0x0203CAE8 push {r4, lr} add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x2 ldr r0, [r0, #0x38] bl FUN_021E5FD8 add r4, #0x80 mov r1, #0x12 ldr r0, [r4, #0x0] lsl r1, r1, #0x6 bl FUN_0204AB20 mov r0, #0x0 pop {r4, pc} thumb_func_start FUN_0203CB08 FUN_0203CB08: ; 0x0203CB08 push {r3, lr} ldr r2, [r0, #0x8] add r1, r2, #0x1 str r1, [r0, #0x8] add r0, #0x80 ldr r0, [r0, #0x0] ldrb r1, [r2, #0x0] ldr r0, [r0, #0x38] bl FUN_02055720 mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_0203CB20 FUN_0203CB20: ; 0x0203CB20 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0x38] bl FUN_020553C4 strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203CB48 FUN_0203CB48: ; 0x0203CB48 push {r4, lr} add r4, r0, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] ldr r0, [r0, #0x38] bl FUN_020553D4 mov r0, #0x1 pop {r4, pc} thumb_func_start FUN_0203CB60 FUN_0203CB60: ; 0x0203CB60 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0x38] bl FUN_021E5FE0 mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_0203CB70 FUN_0203CB70: ; 0x0203CB70 push {r4-r6, lr} add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_0202A9B0 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x2 bl FUN_0202A990 add r1, r6, #0x0 add r2, r4, #0x0 bl FUN_02245910 mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0203CBBC FUN_0203CBBC: ; 0x0203CBBC push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_020462AC bl FUN_0205F388 strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203CBE8 FUN_0203CBE8: ; 0x0203CBE8 push {r3-r7, lr} add r5, r0, #0x0 add r0, #0x80 ldr r4, [r0, #0x0] mov r1, #0x8 add r0, r4, #0x0 bl FUN_02039438 add r0, r4, #0x0 mov r1, #0x10 bl FUN_02039438 add r6, r0, #0x0 add r0, r4, #0x0 mov r1, #0x6 bl FUN_02039438 add r0, r4, #0x0 mov r1, #0x3 bl FUN_02039438 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 str r0, [sp, #0x0] add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r1, r0, #0x0 ldr r0, [sp, #0x0] ldr r2, [r6, #0x0] mov r3, #0xb bl FUN_0206AD4C add r0, r4, #0x0 mov r1, #0x1 bl FUN_02039438 mov r1, #0xf bl FUN_02019620 add r0, r4, #0x0 mov r1, #0x1 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl LoadPlayerDataAddress add r2, r0, #0x0 ldr r1, [r6, #0x0] add r0, r4, #0x0 mov r3, #0x1 bl FUN_02054658 strb r0, [r7, #0x0] ldr r1, _0203CC84 ; =FUN_0203A2F0 add r0, r5, #0x0 bl FUN_02038B5C mov r0, #0x1 pop {r3-r7, pc} .balign 4 _0203CC84: .word FUN_0203A2F0 thumb_func_start FUN_0203CC88 FUN_0203CC88: ; 0x0203CC88 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 add r1, r5, #0x0 add r1, #0x80 ldr r4, [r1, #0x0] bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 str r0, [sp, #0x0] add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 str r0, [sp, #0x4] add r0, r5, #0x0 bl FUN_02038C30 add r6, r0, #0x0 ldr r2, [sp, #0x0] ldr r3, [sp, #0x4] add r0, r4, #0x0 add r1, r7, #0x0 bl FUN_02240790 ldr r1, _0203CCF4 ; =FUN_0203CCF8 add r0, r5, #0x0 str r6, [r5, #0x64] bl FUN_02038B5C mov r0, #0x1 add sp, #0x8 pop {r3-r7, pc} nop _0203CCF4: .word FUN_0203CCF8 thumb_func_start FUN_0203CCF8 FUN_0203CCF8: ; 0x0203CCF8 push {r4, lr} add r1, r0, #0x0 ldr r1, [r1, #0x64] add r0, #0x80 lsl r1, r1, #0x10 ldr r0, [r0, #0x0] lsr r1, r1, #0x10 bl FUN_020394B8 add r4, r0, #0x0 bl FUN_022407DC cmp r0, #0x0 bne _0203CD18 mov r0, #0x0 pop {r4, pc} _0203CD18: strh r0, [r4, #0x0] mov r0, #0x1 pop {r4, pc} .balign 4 thumb_func_start FUN_0203CD20 FUN_0203CD20: ; 0x0203CD20 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 add r1, r5, #0x0 add r1, #0x80 ldr r4, [r1, #0x0] bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 str r0, [sp, #0x0] add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 str r0, [sp, #0x4] add r0, r5, #0x0 bl FUN_02038C30 add r6, r0, #0x0 ldr r2, [sp, #0x0] ldr r3, [sp, #0x4] add r0, r4, #0x0 add r1, r7, #0x0 bl FUN_022407F8 ldr r1, _0203CD8C ; =FUN_0203CD90 add r0, r5, #0x0 str r6, [r5, #0x64] bl FUN_02038B5C mov r0, #0x1 add sp, #0x8 pop {r3-r7, pc} nop _0203CD8C: .word FUN_0203CD90 thumb_func_start FUN_0203CD90 FUN_0203CD90: ; 0x0203CD90 push {r4, lr} add r1, r0, #0x0 ldr r1, [r1, #0x64] add r0, #0x80 lsl r1, r1, #0x10 ldr r0, [r0, #0x0] lsr r1, r1, #0x10 bl FUN_020394B8 add r4, r0, #0x0 bl FUN_02240844 cmp r0, #0x0 bne _0203CDB0 mov r0, #0x0 pop {r4, pc} _0203CDB0: strh r0, [r4, #0x0] mov r0, #0x1 pop {r4, pc} .balign 4 thumb_func_start FUN_0203CDB8 FUN_0203CDB8: ; 0x0203CDB8 push {r3, lr} bl FUN_02038C30 mov r0, #0x1 pop {r3, pc} .balign 4 thumb_func_start FUN_0203CDC4 FUN_0203CDC4: ; 0x0203CDC4 push {r3, lr} bl FUN_02038C30 mov r0, #0x1 pop {r3, pc} .balign 4 thumb_func_start FUN_0203CDD0 FUN_0203CDD0: ; 0x0203CDD0 push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x13 bl FUN_02039438 add r6, r0, #0x0 add r5, #0x80 ldr r4, [r6, #0x0] ldr r0, [r5, #0x0] add r1, r4, #0x0 ldr r0, [r0, #0x10] add r1, #0x2c mov r2, #0x5 bl FUN_02047174 add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x0 str r0, [r6, #0x0] mov r0, #0x1 pop {r4-r6, pc} thumb_func_start FUN_0203CE00 FUN_0203CE00: ; 0x0203CE00 push {r3, lr} ldr r0, [r0, #0x74] bl FUN_02080C38 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0203CE0C FUN_0203CE0C: ; 0x0203CE0C push {r3-r4, lr} sub sp, #0x14 add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 str r0, [sp, #0x0] add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 str r0, [sp, #0x4] add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 str r0, [sp, #0x8] add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 str r0, [sp, #0xc] add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r4, #0x80 str r0, [sp, #0x10] ldr r0, [r4, #0x0] ldr r0, [r0, #0xc] bl FUN_02034E30 add r1, sp, #0x0 bl FUN_02034DD4 mov r0, #0x0 add sp, #0x14 pop {r3-r4, pc} .balign 4 thumb_func_start FUN_0203CE8C FUN_0203CE8C: ; 0x0203CE8C push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_02034E30 bl FUN_02034DD0 ldr r0, [r0, #0x0] bl FUN_021E2608 strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0203CEBC FUN_0203CEBC: ; 0x0203CEBC push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf str r0, [sp, #0x4] bl FUN_02039438 add r7, r0, #0x0 ldr r0, [r5, #0x8] add r1, r0, #0x1 str r1, [r5, #0x8] ldrb r6, [r0, #0x0] add r0, r1, #0x1 str r0, [r5, #0x8] add r0, r5, #0x0 ldrb r4, [r1, #0x0] bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r3, r0, #0x0 ldr r0, [r7, #0x0] add r1, r6, #0x0 str r0, [sp, #0x0] ldr r0, [sp, #0x4] add r2, r4, #0x0 bl FUN_021E2464 mov r0, #0x0 add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_0203CF04 FUN_0203CF04: ; 0x0203CF04 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_02024DA0 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_020244A4 strh r0, [r5, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203CF34 FUN_0203CF34: ; 0x0203CF34 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_02024DA0 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0202445C strh r0, [r5, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203CF64 FUN_0203CF64: ; 0x0203CF64 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_02024DA0 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02024404 strh r0, [r5, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203CF94 FUN_0203CF94: ; 0x0203CF94 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_02024DA0 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_020243C8 strh r0, [r5, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203CFC4 FUN_0203CFC4: ; 0x0203CFC4 mov r0, #0x0 bx lr thumb_func_start FUN_0203CFC8 FUN_0203CFC8: ; 0x0203CFC8 push {r3-r7, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_02024DA0 add r7, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_020238F4 ldr r1, [r5, #0x8] str r0, [sp, #0x0] add r0, r1, #0x1 str r0, [r5, #0x8] add r0, r5, #0x0 ldrb r6, [r1, #0x0] bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, r0, #0x0 cmp r6, #0x0 bne _0203D02E add r0, r7, #0x0 bl FUN_02024550 add r5, #0x80 add r6, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_020462AC mov r1, #0x2 mov r2, #0xa bl FUN_0205F2E4 add r1, r0, #0x0 lsl r1, r1, #0x10 add r0, r6, #0x0 lsr r1, r1, #0x10 bl FUN_02054CC8 b _0203D048 _0203D02E: add r0, r7, #0x0 bl FUN_02024518 add r5, r0, #0x0 ldr r0, [sp, #0x0] bl FUN_020239CC add r1, r0, #0x0 lsl r1, r1, #0x10 add r0, r5, #0x0 lsr r1, r1, #0x10 bl FUN_02054D1C _0203D048: strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0203D050 FUN_0203D050: ; 0x0203D050 push {r3-r6, lr} sub sp, #0x4 add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x17 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r2, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] lsl r2, r2, #0x18 ldr r0, [r5, #0x74] add r1, r6, #0x0 lsr r2, r2, #0x18 add r3, r4, #0x0 bl FUN_02046E18 mov r0, #0x1 add sp, #0x4 pop {r3-r6, pc} .balign 4 thumb_func_start FUN_0203D0A4 FUN_0203D0A4: ; 0x0203D0A4 push {r3-r6, lr} sub sp, #0x4 add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x17 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r2, r0, #0x0 mov r0, #0x1 str r0, [sp, #0x0] lsl r2, r2, #0x18 ldr r0, [r5, #0x74] add r1, r6, #0x0 lsr r2, r2, #0x18 add r3, r4, #0x0 bl FUN_02046E18 mov r0, #0x1 add sp, #0x4 pop {r3-r6, pc} .balign 4 thumb_func_start FUN_0203D0F8 FUN_0203D0F8: ; 0x0203D0F8 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r2, r0, #0x0 lsl r2, r2, #0x18 ldr r0, [r5, #0x74] add r1, r4, #0x0 lsr r2, r2, #0x18 bl FUN_02046FA0 mov r0, #0x1 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203D134 FUN_0203D134: ; 0x0203D134 push {r3, lr} ldr r0, [r0, #0x74] bl FUN_020470AC mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0203D140 FUN_0203D140: ; 0x0203D140 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_021F4DC8 mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0203D150 FUN_0203D150: ; 0x0203D150 push {r3-r5, lr} add r5, r0, #0x0 add r1, r5, #0x0 add r1, #0x80 ldr r4, [r1, #0x0] bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_021F4D80 strh r0, [r5, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203D178 FUN_0203D178: ; 0x0203D178 push {r4, lr} add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x17 bl FUN_02039438 add r1, r0, #0x0 ldr r0, [r4, #0x74] bl FUN_02046DB4 mov r0, #0x1 pop {r4, pc} .balign 4 thumb_func_start FUN_0203D194 FUN_0203D194: ; 0x0203D194 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_021F4E7C mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0203D1A4 FUN_0203D1A4: ; 0x0203D1A4 push {r4, lr} add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020386B4 ldr r1, _0203D1BC ; =FUN_0203BC04 add r0, r4, #0x0 bl FUN_02038B5C mov r0, #0x1 pop {r4, pc} .balign 4 _0203D1BC: .word FUN_0203BC04 thumb_func_start FUN_0203D1C0 FUN_0203D1C0: ; 0x0203D1C0 push {r3-r5, lr} add r4, r0, #0x0 add r1, r4, #0x0 add r1, #0x80 ldr r1, [r1, #0x0] ldr r5, [r1, #0xc] bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0202280C cmp r0, #0x0 beq _0203D1EC mov r0, #0x0 strh r0, [r4, #0x0] b _0203D210 _0203D1EC: add r0, r5, #0x0 bl FUN_02022804 cmp r0, #0x0 bne _0203D1FC mov r0, #0x1 strh r0, [r4, #0x0] b _0203D210 _0203D1FC: add r0, r5, #0x0 bl FUN_0202282C cmp r0, #0x0 beq _0203D20C mov r0, #0x2 strh r0, [r4, #0x0] b _0203D210 _0203D20C: mov r0, #0x3 strh r0, [r4, #0x0] _0203D210: mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0203D214 FUN_0203D214: ; 0x0203D214 push {r3-r5, lr} add r5, r0, #0x0 add r1, r5, #0x0 add r1, #0x80 ldr r4, [r1, #0x0] bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_021E85FC strh r0, [r5, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203D23C FUN_0203D23C: ; 0x0203D23C push {r3, lr} ldr r0, [r0, #0x74] bl FUN_021E3424 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0203D248 FUN_0203D248: ; 0x0203D248 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_0204C1A8 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204BEC8 strh r0, [r5, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203D278 FUN_0203D278: ; 0x0203D278 push {r3-r5, lr} add r5, r0, #0x0 add r1, r5, #0x0 add r1, #0x80 ldr r4, [r1, #0x0] bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r5, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_0204C1A8 add r1, r5, #0x0 bl FUN_0204BED8 mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203D2A4 FUN_0203D2A4: ; 0x0203D2A4 push {r4-r6, lr} add r4, r0, #0x0 add r1, r4, #0x0 add r1, #0x80 ldr r5, [r1, #0x0] bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 add r4, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_0204C1A8 add r1, r6, #0x0 bl FUN_0204BED0 strh r0, [r4, #0x0] mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_0203D2E4 FUN_0203D2E4: ; 0x0203D2E4 push {r4, lr} add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 str r0, [r4, #0x64] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_02031588 ldr r1, _0203D310 ; =FUN_0203D314 add r0, r4, #0x0 bl FUN_02038B5C mov r0, #0x1 pop {r4, pc} nop _0203D310: .word FUN_0203D314 thumb_func_start FUN_0203D314 FUN_0203D314: ; 0x0203D314 push {r4, lr} add r4, r0, #0x0 bl FUN_02030F20 cmp r0, #0x2 bge _0203D324 mov r0, #0x1 pop {r4, pc} _0203D324: ldr r0, [r4, #0x64] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_020315D8 pop {r4, pc} thumb_func_start FUN_0203D330 FUN_0203D330: ; 0x0203D330 push {r3, lr} bl FUN_0203168C mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0203D33C FUN_0203D33C: ; 0x0203D33C push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r5, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_0205296C strh r0, [r5, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203D36C FUN_0203D36C: ; 0x0203D36C push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 add r1, r0, #0x0 add r5, #0x80 ldr r0, [r5, #0x0] ldr r1, [r1, #0x0] ldr r0, [r0, #0x78] bl FUN_02052C0C strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203D3A4 FUN_0203D3A4: ; 0x0203D3A4 push {r4, lr} bl FUN_02038C30 add r4, r0, #0x0 cmp r4, #0x5 beq _0203D3BC cmp r4, #0x7 beq _0203D3BC cmp r4, #0x9 beq _0203D3BC cmp r4, #0x6 bne _0203D3C2 _0203D3BC: bl FUN_02031C54 b _0203D3CA _0203D3C2: cmp r4, #0xb bne _0203D3CA bl FUN_02031C64 _0203D3CA: bl FUN_02031190 cmp r0, #0x0 bne _0203D3D8 add r0, r4, #0x0 bl FUN_02052B74 _0203D3D8: mov r0, #0x0 pop {r4, pc} thumb_func_start FUN_0203D3DC FUN_0203D3DC: ; 0x0203D3DC push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xa bl FUN_02039438 add r7, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r4, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020377AC bl FUN_020238F4 add r5, #0x80 str r0, [sp, #0x4] ldr r0, [r5, #0x0] bl FUN_020377AC bl FUN_02013B5C add r5, r0, #0x0 cmp r4, #0x0 bne _0203D432 ldr r0, [r7, #0x0] bl FUN_02058448 lsl r0, r0, #0x10 lsr r2, r0, #0x10 b _0203D434 _0203D432: mov r2, #0x0 _0203D434: str r5, [sp, #0x0] ldr r0, [r6, #0x0] ldr r3, [sp, #0x4] add r1, r4, #0x0 bl FUN_02052D08 mov r0, #0x0 add sp, #0x8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0203D448 FUN_0203D448: ; 0x0203D448 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_0208881C mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0203D458 FUN_0203D458: ; 0x0203D458 push {r4, lr} add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0x7c] bl FUN_02052F74 bl FUN_02031B50 ldr r1, _0203D478 ; =FUN_0203D47C add r0, r4, #0x0 bl FUN_02038B5C mov r0, #0x1 pop {r4, pc} nop _0203D478: .word FUN_0203D47C thumb_func_start FUN_0203D47C FUN_0203D47C: ; 0x0203D47C push {r3, lr} bl FUN_02030F20 cmp r0, #0x2 bge _0203D48A mov r0, #0x1 pop {r3, pc} _0203D48A: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0203D490 FUN_0203D490: ; 0x0203D490 push {r3-r7, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xa bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 str r0, [sp, #0x0] add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r6, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 add r7, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_02058448 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] ldr r2, [sp, #0x0] ldr r0, [r0, #0x78] ldr r3, [r7, #0x0] bl FUN_02052A10 strh r0, [r6, #0x0] mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0203D4E8 FUN_0203D4E8: ; 0x0203D4E8 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0x78] bl FUN_020527A8 strh r0, [r4, #0x0] ldrh r0, [r4, #0x0] cmp r0, #0x0 beq _0203D522 add r5, #0x80 ldr r0, [r5, #0x0] mov r1, #0x13 bl FUN_02039438 ldr r0, [r0, #0x0] bl FUN_02016A18 _0203D522: mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203D528 FUN_0203D528: ; 0x0203D528 push {r4-r6, lr} add r4, r0, #0x0 add r0, #0x80 ldr r5, [r0, #0x0] mov r1, #0xa add r0, r5, #0x0 bl FUN_02039438 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 add r4, r0, #0x0 ldr r0, [r6, #0x0] bl FUN_02058448 add r1, r0, #0x0 ldr r0, [r5, #0x78] bl FUN_020524CC strh r0, [r4, #0x0] mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_0203D560 FUN_0203D560: ; 0x0203D560 push {r3-r7, lr} add r4, r0, #0x0 add r0, #0x80 ldr r5, [r0, #0x0] mov r1, #0xa add r0, r5, #0x0 bl FUN_02039438 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 add r4, r0, #0x0 ldr r0, [r6, #0x0] bl FUN_02058448 add r1, r0, #0x0 ldr r0, [r5, #0x78] add r2, r7, #0x0 bl FUN_02052544 strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0203D5B0 FUN_0203D5B0: ; 0x0203D5B0 push {r4, lr} add r4, r0, #0x0 bl FUN_02038C30 str r0, [r4, #0x64] ldr r1, _0203D5C8 ; =FUN_0203D5CC add r0, r4, #0x0 bl FUN_02038B5C mov r0, #0x1 pop {r4, pc} nop _0203D5C8: .word FUN_0203D5CC thumb_func_start FUN_0203D5CC FUN_0203D5CC: ; 0x0203D5CC push {r4-r6, lr} add r6, r0, #0x0 add r0, #0x80 ldr r5, [r0, #0x0] ldr r0, [r5, #0x78] bl FUN_02052604 ldr r1, [r6, #0x64] add r4, r0, #0x0 lsl r1, r1, #0x10 add r0, r5, #0x0 lsr r1, r1, #0x10 bl FUN_020394B8 cmp r4, #0x0 bne _0203D5F0 mov r0, #0x0 pop {r4-r6, pc} _0203D5F0: strh r4, [r0, #0x0] mov r0, #0x1 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0203D5F8 FUN_0203D5F8: ; 0x0203D5F8 push {r3, lr} add r0, #0x80 ldr r1, [r0, #0x0] ldr r0, [r1, #0x34] ldr r1, [r1, #0x7c] bl FUN_020534DC mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0203D60C FUN_0203D60C: ; 0x0203D60C push {r3, lr} mov r0, #0x4 bl FUN_02052B74 bl FUN_02031C2C mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_0203D61C FUN_0203D61C: ; 0x0203D61C push {r3, lr} bl FUN_02031C64 bl FUN_02031B50 mov r0, #0x0 bl FUN_02052B74 mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_0203D630 FUN_0203D630: ; 0x0203D630 push {r4-r6, lr} add r5, r0, #0x0 add r1, r5, #0x0 add r1, #0x80 ldr r4, [r1, #0x0] bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r2, r0, #0x0 ldr r0, [r4, #0x78] add r1, r6, #0x0 bl FUN_0205265C mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0203D66C FUN_0203D66C: ; 0x0203D66C push {r4, lr} add r4, r0, #0x0 bl FUN_02038C30 str r0, [r4, #0x64] ldr r1, _0203D684 ; =FUN_0203D688 add r0, r4, #0x0 bl FUN_02038B5C mov r0, #0x1 pop {r4, pc} nop _0203D684: .word FUN_0203D688 thumb_func_start FUN_0203D688 FUN_0203D688: ; 0x0203D688 push {r3-r5, lr} add r5, r0, #0x0 ldr r1, [r5, #0x64] add r0, #0x80 lsl r1, r1, #0x10 ldr r0, [r0, #0x0] lsr r1, r1, #0x10 bl FUN_020394B8 add r4, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0x78] bl FUN_02052608 cmp r0, #0x1 blo _0203D6BC add r5, #0x80 strh r0, [r4, #0x0] ldr r0, [r5, #0x0] ldr r0, [r0, #0x78] bl FUN_02052E10 mov r0, #0x1 pop {r3-r5, pc} _0203D6BC: mov r0, #0x0 strh r0, [r4, #0x0] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203D6C4 FUN_0203D6C4: ; 0x0203D6C4 push {r4, lr} add r4, r0, #0x0 bl FUN_02038C30 str r0, [r4, #0x64] ldr r1, _0203D6DC ; =FUN_0203D6E0 add r0, r4, #0x0 bl FUN_02038B5C mov r0, #0x1 pop {r4, pc} nop _0203D6DC: .word FUN_0203D6E0 thumb_func_start FUN_0203D6E0 FUN_0203D6E0: ; 0x0203D6E0 push {r3-r5, lr} add r5, r0, #0x0 ldr r1, [r5, #0x64] add r0, #0x80 lsl r1, r1, #0x10 ldr r0, [r0, #0x0] lsr r1, r1, #0x10 bl FUN_020394B8 add r4, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0x78] bl FUN_02052648 ldr r1, _0203D724 ; =0x021C48B8 ldr r2, [r1, #0x48] mov r1, #0x2 tst r1, r2 beq _0203D716 add r5, #0x80 ldr r0, [r5, #0x0] mov r1, #0x8 ldr r0, [r0, #0x78] bl FUN_02052718 _0203D716: cmp r0, #0x0 beq _0203D720 strh r0, [r4, #0x0] mov r0, #0x1 pop {r3-r5, pc} _0203D720: mov r0, #0x0 pop {r3-r5, pc} .balign 4 _0203D724: .word 0x021C48B8 thumb_func_start FUN_0203D728 FUN_0203D728: ; 0x0203D728 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0x10] bl FUN_02049EA4 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0203D738 FUN_0203D738: ; 0x0203D738 push {r4-r6, lr} add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020377AC bl FUN_020238F4 add r4, #0x80 add r5, r0, #0x0 ldr r0, [r4, #0x0] mov r1, #0xf bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_020239BC add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_020239CC add r1, r0, #0x0 ldr r2, [r4, #0x0] add r0, r6, #0x0 bl FUN_0205363C mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0203D774 FUN_0203D774: ; 0x0203D774 push {r3-r7, lr} add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020377AC bl FUN_020238F4 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_020239BC add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_020239CC add r1, r0, #0x0 add r0, r6, #0x0 add r2, r7, #0x0 bl FUN_02053678 strh r0, [r4, #0x0] add r0, r5, #0x0 bl FUN_020239CC ldrh r1, [r4, #0x0] mov r2, #0x2 bl FUN_020536D0 strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0203D7DC FUN_0203D7DC: ; 0x0203D7DC push {r3-r7, lr} add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020377AC bl FUN_020238F4 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_020239BC add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_020239CC add r1, r0, #0x0 add r0, r6, #0x0 add r2, r7, #0x0 bl FUN_02053678 strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0203D834 FUN_0203D834: ; 0x0203D834 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020377AC bl FUN_020238F4 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r1, r0, #0x0 lsl r1, r1, #0x18 add r0, r4, #0x0 lsr r1, r1, #0x18 bl FUN_02023A2C mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203D868 FUN_0203D868: ; 0x0203D868 push {r3, lr} ldr r0, [r0, #0x74] bl FUN_02048498 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0203D874 FUN_0203D874: ; 0x0203D874 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_02034E30 add r1, r4, #0x0 bl FUN_02034E04 mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203D8A0 FUN_0203D8A0: ; 0x0203D8A0 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020377AC bl FUN_020238F4 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_020239CC strh r0, [r5, #0x0] mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0203D8D0 FUN_0203D8D0: ; 0x0203D8D0 push {r3, lr} ldr r0, [r0, #0x74] bl FUN_02046528 ldr r0, [r0, #0xc] bl FUN_0206BB1C bl FUN_02085140 mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0203D8E8 FUN_0203D8E8: ; 0x0203D8E8 mov r0, #0x0 bx lr thumb_func_start FUN_0203D8EC FUN_0203D8EC: ; 0x0203D8EC push {r4, lr} add r4, r0, #0x0 bl FUN_02050024 ldr r1, _0203D900 ; =FUN_0203D904 add r0, r4, #0x0 bl FUN_02038B5C mov r0, #0x1 pop {r4, pc} .balign 4 _0203D900: .word FUN_0203D904 thumb_func_start FUN_0203D904 FUN_0203D904: ; 0x0203D904 push {r3, lr} bl FUN_02031810 cmp r0, #0x1 beq _0203D91A bl FUN_0202EDF8 cmp r0, #0x1 beq _0203D91A mov r0, #0x1 pop {r3, pc} _0203D91A: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0203D920 FUN_0203D920: ; 0x0203D920 push {r4, lr} add r4, r0, #0x0 bl FUN_02050048 ldr r1, _0203D934 ; =FUN_0203D904 add r0, r4, #0x0 bl FUN_02038B5C mov r0, #0x1 pop {r4, pc} .balign 4 _0203D934: .word FUN_0203D904 thumb_func_start FUN_0203D938 FUN_0203D938: ; 0x0203D938 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_0204FF5C mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0203D948 FUN_0203D948: ; 0x0203D948 push {r3, lr} bl FUN_02038C30 bl FUN_0204F6DC mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0203D958 FUN_0203D958: ; 0x0203D958 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_0206F158 add r1, r6, #0x0 bl FUN_0206EE64 strh r0, [r4, #0x0] mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_0203D998 FUN_0203D998: ; 0x0203D998 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r5, #0x80 add r3, r0, #0x0 ldr r0, [r5, #0x0] add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_02034B74 mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0203D9E8 FUN_0203D9E8: ; 0x0203D9E8 push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 str r0, [sp, #0x4] add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 str r0, [sp, #0x8] add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] add r1, r6, #0x0 ldr r0, [r0, #0x34] bl FUN_02058060 ldr r2, [sp, #0x4] ldr r3, [sp, #0x8] add r5, r0, #0x0 add r1, r7, #0x0 str r4, [sp, #0x0] bl FUN_02058E28 add r0, r5, #0x0 bl FUN_02059D1C mov r0, #0x0 add sp, #0xc pop {r4-r7, pc} .balign 4 thumb_func_start FUN_0203DA78 FUN_0203DA78: ; 0x0203DA78 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r5, #0x80 add r2, r0, #0x0 ldr r0, [r5, #0x0] add r1, r4, #0x0 bl FUN_02034BDC mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0203DAB0 FUN_0203DAB0: ; 0x0203DAB0 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r5, #0x80 add r2, r0, #0x0 ldr r0, [r5, #0x0] add r1, r4, #0x0 bl FUN_02034BAC mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0203DAE8 FUN_0203DAE8: ; 0x0203DAE8 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r5, #0x80 add r3, r0, #0x0 ldr r0, [r5, #0x0] add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_02034C0C mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0203DB38 FUN_0203DB38: ; 0x0203DB38 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r5, #0x80 add r3, r0, #0x0 ldr r0, [r5, #0x0] add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_02034C34 mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0203DB88 FUN_0203DB88: ; 0x0203DB88 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] add r1, r6, #0x0 ldr r0, [r0, #0x34] bl FUN_02058060 add r5, r0, #0x0 bne _0203DBC6 bl ErrorHandling _0203DBC6: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_021F1EC0 mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0203DBD4 FUN_0203DBD4: ; 0x0203DBD4 push {r3-r5, lr} add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xc bl FUN_02039438 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394F0 ldr r1, [r5, #0x0] cmp r1, #0x0 beq _0203DBFC strh r0, [r1, #0x0] _0203DBFC: mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0203DC00 FUN_0203DC00: ; 0x0203DC00 push {r3-r7, lr} add r5, r0, #0x0 bl FUN_02038C30 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 lsl r1, r4, #0x5 ldr r3, [r5, #0x8] add r2, r0, #0x0 add r0, r3, #0x1 str r0, [r5, #0x8] add r5, #0x80 lsl r4, r6, #0x5 ldrb r3, [r3, #0x0] ldr r0, [r5, #0x0] add r1, r7, r1 add r2, r2, r4 bl FUN_021DAE40 mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0203DC58 FUN_0203DC58: ; 0x0203DC58 push {r3, lr} ldr r2, [r0, #0x8] add r1, r2, #0x1 str r1, [r0, #0x8] add r0, #0x80 ldrb r1, [r2, #0x0] ldr r0, [r0, #0x0] bl FUN_021DAF78 mov r0, #0x1 pop {r3, pc} .balign 4 thumb_func_start FUN_0203DC70 FUN_0203DC70: ; 0x0203DC70 push {r3, lr} ldr r2, [r0, #0x8] add r1, r2, #0x1 str r1, [r0, #0x8] add r0, #0x80 ldrb r1, [r2, #0x0] ldr r0, [r0, #0x0] bl FUN_021DAF98 mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0203DC88 FUN_0203DC88: ; 0x0203DC88 push {r3, lr} ldr r2, [r0, #0x8] add r1, r2, #0x1 str r1, [r0, #0x8] add r0, #0x80 ldrb r1, [r2, #0x0] ldr r0, [r0, #0x0] bl FUN_021DAED4 mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0203DCA0 FUN_0203DCA0: ; 0x0203DCA0 push {r3, lr} ldr r2, [r0, #0x8] add r1, r2, #0x1 str r1, [r0, #0x8] add r0, #0x80 ldrb r1, [r2, #0x0] ldr r0, [r0, #0x0] bl FUN_021DAF28 mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0203DCB8 FUN_0203DCB8: ; 0x0203DCB8 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_02064CA8 mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0203DCC8 FUN_0203DCC8: ; 0x0203DCC8 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_02241230 mov r0, #0x1 pop {r3, pc} .balign 4 thumb_func_start FUN_0203DCD8 FUN_0203DCD8: ; 0x0203DCD8 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_02064CC8 mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0203DCE8 FUN_0203DCE8: ; 0x0203DCE8 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_02241914 mov r0, #0x1 pop {r3, pc} .balign 4 thumb_func_start FUN_0203DCF8 FUN_0203DCF8: ; 0x0203DCF8 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_02064D10 mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0203DD08 FUN_0203DD08: ; 0x0203DD08 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_02064D4C mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0203DD18 FUN_0203DD18: ; 0x0203DD18 push {r3, lr} add r1, r0, #0x0 add r1, #0x80 ldr r2, [r0, #0x8] ldr r3, [r1, #0x0] add r1, r2, #0x1 str r1, [r0, #0x8] ldrb r1, [r2, #0x0] add r0, r3, #0x0 bl FUN_02064D88 mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0203DD34 FUN_0203DD34: ; 0x0203DD34 push {r3, lr} add r1, r0, #0x0 add r1, #0x80 ldr r2, [r0, #0x8] ldr r3, [r1, #0x0] add r1, r2, #0x1 str r1, [r0, #0x8] ldrb r1, [r2, #0x0] add r0, r3, #0x0 bl FUN_02242A38 mov r0, #0x1 pop {r3, pc} .balign 4 thumb_func_start FUN_0203DD50 FUN_0203DD50: ; 0x0203DD50 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020388B4 mov r0, #0x1 pop {r3, pc} .balign 4 thumb_func_start FUN_0203DD60 FUN_0203DD60: ; 0x0203DD60 push {r3-r7, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x14 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xa bl FUN_02039438 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 str r0, [r5, #0x64] ldr r0, [r6, #0x0] bl FUN_02058448 add r1, r5, #0x0 add r1, #0x80 add r2, r0, #0x0 ldr r1, [r1, #0x0] add r0, r7, #0x0 bl FUN_0224CA54 str r0, [r4, #0x0] ldr r1, _0203DDBC ; =FUN_0203DDC0 add r0, r5, #0x0 bl FUN_02038B5C mov r0, #0x1 pop {r3-r7, pc} .balign 4 _0203DDBC: .word FUN_0203DDC0 thumb_func_start FUN_0203DDC0 FUN_0203DDC0: ; 0x0203DDC0 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x14 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 ldr r1, [r5, #0x64] add r0, #0x80 lsl r1, r1, #0x10 ldr r0, [r0, #0x0] lsr r1, r1, #0x10 bl FUN_020394B8 add r5, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_0224CA2C strh r0, [r5, #0x0] ldrh r1, [r5, #0x0] ldr r0, _0203DDFC ; =0x0000FFFE cmp r1, r0 beq _0203DDF6 mov r0, #0x1 pop {r3-r5, pc} _0203DDF6: mov r0, #0x0 pop {r3-r5, pc} nop _0203DDFC: .word 0x0000FFFE thumb_func_start FUN_0203DE00 FUN_0203DE00: ; 0x0203DE00 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x3 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 bl FUN_0224CA58 strb r0, [r4, #0x0] ldr r1, _0203DE34 ; =FUN_0203DE38 add r0, r5, #0x0 bl FUN_02038B5C mov r0, #0x1 pop {r3-r5, pc} .balign 4 _0203DE34: .word FUN_0203DE38 thumb_func_start FUN_0203DE38 FUN_0203DE38: ; 0x0203DE38 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x3 bl FUN_02039438 ldrb r0, [r0, #0x0] bl FUN_020546C8 pop {r3, pc} thumb_func_start FUN_0203DE4C FUN_0203DE4C: ; 0x0203DE4C push {r3, lr} bl FUN_0224CA94 mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0203DE58 FUN_0203DE58: ; 0x0203DE58 push {r3-r5, lr} add r4, r0, #0x0 ldr r2, [r4, #0x8] add r1, r2, #0x1 str r1, [r4, #0x8] ldrb r5, [r2, #0x0] bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394F0 add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_0224CAA0 mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203DE80 FUN_0203DE80: ; 0x0203DE80 push {r3-r5, lr} add r4, r0, #0x0 ldr r2, [r4, #0x8] add r1, r2, #0x1 str r1, [r4, #0x8] ldrb r5, [r2, #0x0] bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394F0 add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_0224CAB4 mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203DEA8 FUN_0203DEA8: ; 0x0203DEA8 push {r3, lr} sub sp, #0x8 mov r3, #0x0 str r3, [sp, #0x0] str r3, [sp, #0x4] mov r1, #0x1 ldr r0, [r0, #0x74] add r2, r1, #0x0 bl FUN_02242BE0 mov r0, #0x1 add sp, #0x8 pop {r3, pc} .balign 4 thumb_func_start FUN_0203DEC4 FUN_0203DEC4: ; 0x0203DEC4 push {r3-r5, lr} add r4, r0, #0x0 add r1, r4, #0x0 add r1, #0x80 ldr r5, [r1, #0x0] bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394F0 add r1, r0, #0x0 ldr r0, [r5, #0x34] bl FUN_02058060 add r4, r0, #0x0 bne _0203DEEC bl ErrorHandling _0203DEEC: add r0, r4, #0x0 mov r1, #0x0 bl FUN_0205889C mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0203DEF8 FUN_0203DEF8: ; 0x0203DEF8 push {r3-r5, lr} add r4, r0, #0x0 add r1, r4, #0x0 add r1, #0x80 ldr r5, [r1, #0x0] bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394F0 add r1, r0, #0x0 ldr r0, [r5, #0x34] bl FUN_02058060 add r4, r0, #0x0 bne _0203DF20 bl ErrorHandling _0203DF20: add r0, r4, #0x0 mov r1, #0x1 bl FUN_0205889C mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0203DF2C FUN_0203DF2C: ; 0x0203DF2C push {r3, lr} ldr r0, [r0, #0x74] bl FUN_02066818 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0203DF38 FUN_0203DF38: ; 0x0203DF38 push {r3-r5, lr} add r5, r0, #0x0 add r1, r5, #0x0 add r1, #0x80 ldr r4, [r1, #0x0] bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r5, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_02025838 mov r1, #0x0 bl FUN_0202589C strh r0, [r5, #0x0] mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0203DF64 FUN_0203DF64: ; 0x0203DF64 push {r4, lr} add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r1, r0, #0x0 ldr r0, [r4, #0x74] bl FUN_02063650 mov r0, #0x1 pop {r4, pc} thumb_func_start FUN_0203DF84 FUN_0203DF84: ; 0x0203DF84 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, #0x80 add r5, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_0204B2A4 strh r0, [r5, #0x0] mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0203DFA8 FUN_0203DFA8: ; 0x0203DFA8 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r5, r0, #0x0 bl FUN_0201B9EC add r1, r5, #0x0 blx _s32_div_f strh r1, [r4, #0x0] mov r0, #0x1 pop {r3-r5, pc} thumb_func_start FUN_0203DFE0 FUN_0203DFE0: ; 0x0203DFE0 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r5, r0, #0x0 bl FUN_0201B9EC add r1, r5, #0x0 blx _s32_div_f strh r1, [r4, #0x0] mov r0, #0x1 pop {r3-r5, pc} thumb_func_start FUN_0203E018 FUN_0203E018: ; 0x0203E018 push {r4-r6, lr} add r5, r0, #0x0 add r1, r5, #0x0 add r1, #0x80 ldr r4, [r1, #0x0] bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_021F3A18 strh r0, [r6, #0x0] mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0203E054 FUN_0203E054: ; 0x0203E054 push {r3-r5, lr} add r4, r0, #0x0 add r1, r4, #0x0 add r1, #0x80 ldr r5, [r1, #0x0] bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394F0 add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_021F3AB4 mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0203E078 FUN_0203E078: ; 0x0203E078 push {r3-r7, lr} add r5, r0, #0x0 add r1, r5, #0x0 add r1, #0x80 ldr r4, [r1, #0x0] bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 lsl r1, r6, #0x18 lsl r2, r7, #0x18 add r3, r0, #0x0 add r0, r4, #0x0 lsr r1, r1, #0x18 lsr r2, r2, #0x18 bl FUN_021F3B7C mov r0, #0x0 pop {r3-r7, pc} thumb_func_start FUN_0203E0CC FUN_0203E0CC: ; 0x0203E0CC push {r3-r7, lr} add r5, r0, #0x0 add r1, r5, #0x0 add r1, #0x80 ldr r4, [r1, #0x0] bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 lsl r1, r6, #0x18 lsl r2, r7, #0x18 add r3, r0, #0x0 add r0, r4, #0x0 lsr r1, r1, #0x18 lsr r2, r2, #0x18 bl FUN_021F3B4C mov r0, #0x0 pop {r3-r7, pc} thumb_func_start FUN_0203E120 FUN_0203E120: ; 0x0203E120 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_020462AC mov r1, #0x82 lsl r1, r1, #0x8 bl FUN_0205F3F8 mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_0203E138 FUN_0203E138: ; 0x0203E138 push {r4, lr} add r0, #0x80 ldr r4, [r0, #0x0] ldr r0, [r4, #0xc] bl FUN_020462AC mov r1, #0x1 bl FUN_0205F2D4 ldr r0, [r4, #0xc] bl FUN_020289A4 mov r1, #0x1 bl FUN_020289B0 add r1, r4, #0x0 add r1, #0x98 str r0, [r1, #0x0] add r0, r4, #0x0 bl FUN_02048C58 mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_0203E168 FUN_0203E168: ; 0x0203E168 push {r3-r7, lr} add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 str r0, [sp, #0x0] add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x14 bl FUN_02039438 add r5, r0, #0x0 add r0, r7, #0x0 sub r0, #0x10 cmp r0, #0xa bhi _0203E23A add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0203E1EA: ; jump table (using 16-bit offset) .short _0203E200 - _0203E1EA - 2; case 0 .short _0203E20C - _0203E1EA - 2; case 1 .short _0203E218 - _0203E1EA - 2; case 2 .short _0203E226 - _0203E1EA - 2; case 3 .short _0203E23A - _0203E1EA - 2; case 4 .short _0203E226 - _0203E1EA - 2; case 5 .short _0203E226 - _0203E1EA - 2; case 6 .short _0203E226 - _0203E1EA - 2; case 7 .short _0203E226 - _0203E1EA - 2; case 8 .short _0203E226 - _0203E1EA - 2; case 9 .short _0203E226 - _0203E1EA - 2; case 10 _0203E200: mov r0, #0x4 mov r6, #0x1 bl FUN_02029120 str r0, [r5, #0x0] b _0203E23E _0203E20C: mov r0, #0x4 mov r6, #0x1 bl FUN_0202912C str r0, [r5, #0x0] b _0203E23E _0203E218: ldr r0, [sp, #0x0] mov r1, #0x4 mov r6, #0x1 bl FUN_02029138 str r0, [r5, #0x0] b _0203E23E _0203E226: sub r7, #0x13 lsl r0, r7, #0x18 ldr r1, [sp, #0x0] lsr r0, r0, #0x18 mov r2, #0x4 mov r6, #0x1 bl FUN_0202914C str r0, [r5, #0x0] b _0203E23E _0203E23A: mov r0, #0x1 pop {r3-r7, pc} _0203E23E: add r4, #0x80 ldr r0, [r4, #0x0] ldr r1, [r5, #0x0] add r0, #0x98 ldr r0, [r0, #0x0] add r2, r6, #0x0 bl FUN_02028AD4 mov r0, #0x1 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0203E254 FUN_0203E254: ; 0x0203E254 mov r0, #0x0 bx lr thumb_func_start FUN_0203E258 FUN_0203E258: ; 0x0203E258 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r5, #0x80 add r6, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_02027E24 bl FUN_0202708C add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_020271A4 mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_0203E29C FUN_0203E29C: ; 0x0203E29C push {r3-r7, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_02027E24 bl FUN_0202708C add r1, r6, #0x0 add r2, r7, #0x0 bl FUN_020270D8 strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0203E2F8 FUN_0203E2F8: ; 0x0203E2F8 push {r3-r7, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_02027E24 bl FUN_0202708C add r1, r7, #0x0 bl FUN_02027114 cmp r6, r0 bhi _0203E352 mov r0, #0x1 b _0203E354 _0203E352: mov r0, #0x0 _0203E354: strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0203E35C FUN_0203E35C: ; 0x0203E35C push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_02027E24 bl FUN_0202708C add r1, r4, #0x0 bl FUN_02027264 mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203E38C FUN_0203E38C: ; 0x0203E38C push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_02027E24 bl FUN_0202708C add r1, r6, #0x0 bl FUN_02027100 strh r0, [r4, #0x0] mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_0203E3D0 FUN_0203E3D0: ; 0x0203E3D0 push {r3-r5, lr} add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_02024DA0 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 add r4, r0, #0x0 mov r0, #0x0 strh r0, [r4, #0x0] add r0, r5, #0x0 bl FUN_02024504 cmp r0, #0x1 bne _0203E404 mov r0, #0x1 strh r0, [r4, #0x0] _0203E404: mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0203E408 FUN_0203E408: ; 0x0203E408 push {r3-r5, lr} add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_02024DA0 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 add r4, r0, #0x0 mov r0, #0x0 strh r0, [r4, #0x0] add r0, r5, #0x0 bl FUN_020244EC cmp r0, #0x1 bne _0203E43C mov r0, #0x1 strh r0, [r4, #0x0] _0203E43C: mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0203E440 FUN_0203E440: ; 0x0203E440 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x13 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x20 mov r2, #0x0 bl FUN_02038AF4 str r0, [r4, #0x0] ldr r1, _0203E46C ; =FUN_0203BB90 add r0, r5, #0x0 bl FUN_02038B5C mov r0, #0x1 pop {r3-r5, pc} .balign 4 _0203E46C: .word FUN_0203BB90 thumb_func_start FUN_0203E470 FUN_0203E470: ; 0x0203E470 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x13 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x20 mov r2, #0x1 bl FUN_02038AF4 str r0, [r4, #0x0] ldr r1, _0203E49C ; =FUN_0203BB90 add r0, r5, #0x0 bl FUN_02038B5C mov r0, #0x1 pop {r3-r5, pc} .balign 4 _0203E49C: .word FUN_0203BB90 thumb_func_start FUN_0203E4A0 FUN_0203E4A0: ; 0x0203E4A0 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_0224CBB0 mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_0203E4B0 FUN_0203E4B0: ; 0x0203E4B0 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_0224CC24 strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203E4D8 FUN_0203E4D8: ; 0x0203E4D8 push {r4, lr} add r4, r0, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_0203E4F0 FUN_0203E4F0: ; 0x0203E4F0 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_02029FC8 add r1, r4, #0x0 bl FUN_0202A0E8 mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203E510 FUN_0203E510: ; 0x0203E510 push {r3-r7, lr} add r5, r0, #0x0 bl FUN_02038C30 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r6, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] add r1, r4, #0x0 bl FUN_020394B8 add r4, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] add r1, r6, #0x0 bl FUN_020394B8 add r5, #0x80 add r6, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_02029FC8 add r1, r7, #0x0 bl FUN_0202A150 ldr r1, _0203E564 ; =0xFFFF0000 and r1, r0 lsr r1, r1, #0x10 strh r1, [r4, #0x0] strh r0, [r6, #0x0] mov r0, #0x0 pop {r3-r7, pc} .balign 4 _0203E564: .word 0xFFFF0000 thumb_func_start FUN_0203E568 FUN_0203E568: ; 0x0203E568 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02038C30 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 ldr r1, [r5, #0x8] add r2, r1, #0x1 str r2, [r5, #0x8] lsl r2, r4, #0x10 add r4, r2, #0x0 orr r4, r0 ldrb r0, [r1, #0x0] cmp r0, #0x0 beq _0203E59C cmp r0, #0x1 beq _0203E5B0 cmp r0, #0x2 beq _0203E5C4 b _0203E5D6 _0203E59C: add r5, #0x80 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_02029FC8 add r1, r6, #0x0 add r2, r4, #0x0 bl FUN_0202A11C b _0203E5D6 _0203E5B0: add r5, #0x80 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_02029FC8 add r1, r6, #0x0 add r2, r4, #0x0 bl FUN_0202A07C b _0203E5D6 _0203E5C4: add r5, #0x80 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_02029FC8 add r1, r6, #0x0 add r2, r4, #0x0 bl FUN_0202A0A8 _0203E5D6: mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0203E5DC FUN_0203E5DC: ; 0x0203E5DC push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_02034E30 add r7, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_020462AC str r0, [sp, #0x0] add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_02022504 ldr r1, [r5, #0x8] str r0, [sp, #0x4] add r0, r1, #0x1 str r0, [r5, #0x8] ldrb r4, [r1, #0x0] add r0, r7, #0x0 bl FUN_02034E24 add r6, r0, #0x0 add r0, r7, #0x0 bl FUN_02034E28 add r7, r0, #0x0 cmp r4, #0x0 beq _0203E62C cmp r4, #0x1 beq _0203E642 b _0203E66E _0203E62C: ldr r0, [sp, #0x0] bl FUN_0205F1F4 ldr r0, [sp, #0x4] bl FUN_02060FD0 mov r0, #0x1e strh r0, [r6, #0x0] mov r0, #0x0 strh r0, [r7, #0x0] b _0203E66E _0203E642: ldr r0, [sp, #0x0] bl FUN_0205F204 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_02061574 mov r0, #0x4 bl FUN_0202912C add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] mov r2, #0x1 add r0, #0x98 ldr r0, [r0, #0x0] bl FUN_02028AD4 mov r0, #0x0 strh r0, [r6, #0x0] strh r0, [r7, #0x0] _0203E66E: mov r0, #0x0 add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_0203E674 FUN_0203E674: ; 0x0203E674 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_0206015C mov r0, #0x1 pop {r3, pc} .balign 4 thumb_func_start FUN_0203E684 FUN_0203E684: ; 0x0203E684 push {r4-r6, lr} add r5, r0, #0x0 ldr r2, [r5, #0x8] add r1, r2, #0x1 str r1, [r5, #0x8] ldrb r4, [r2, #0x0] bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, #0x80 add r6, r0, #0x0 ldr r0, [r5, #0x0] add r1, r4, #0x0 bl FUN_022456E8 strh r0, [r6, #0x0] mov r0, #0x1 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0203E6B4 FUN_0203E6B4: ; 0x0203E6B4 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_02064E20 mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0203E6C4 FUN_0203E6C4: ; 0x0203E6C4 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 mov r1, #0x0 add r6, r0, #0x0 mov r0, #0x41 add r2, r1, #0x0 bl FUN_0200433C add r5, #0x80 ldrh r1, [r4, #0x0] ldr r0, [r5, #0x0] add r2, r6, #0x0 bl FUN_0224525C mov r0, #0x1 pop {r4-r6, pc} thumb_func_start FUN_0203E6FC FUN_0203E6FC: ; 0x0203E6FC push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02038C30 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] add r1, r6, #0x0 bl FUN_02245340 strh r0, [r4, #0x0] mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0203E72C FUN_0203E72C: ; 0x0203E72C push {r3, lr} ldr r2, [r0, #0x8] add r1, r2, #0x1 str r1, [r0, #0x8] add r0, #0x80 ldr r0, [r0, #0x0] ldrb r1, [r2, #0x0] ldr r0, [r0, #0x38] bl FUN_02055560 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0203E744 FUN_0203E744: ; 0x0203E744 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_020462AC add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0205F688 strh r0, [r5, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203E774 FUN_0203E774: ; 0x0203E774 push {r3-r7, lr} add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_02024DA0 add r7, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 str r0, [sp, #0x0] add r0, r7, #0x0 bl FUN_020244A4 add r4, r0, #0x0 bl FUN_0201B9EC add r1, r4, #0x0 blx _s32_div_f lsl r0, r1, #0x10 lsr r6, r0, #0x10 ldr r0, [sp, #0x0] mov r1, #0x19 strh r1, [r0, #0x0] mov r4, #0x1 mov r5, #0x0 _0203E7B6: add r0, r7, #0x0 add r1, r4, #0x0 bl FUN_020245F0 cmp r0, #0x1 bne _0203E7DC add r0, r4, #0x0 bl FUN_02069B40 cmp r0, #0x0 beq _0203E7DC cmp r5, r6 bne _0203E7D6 ldr r0, [sp, #0x0] strh r4, [r0, #0x0] b _0203E7E8 _0203E7D6: add r0, r5, #0x1 lsl r0, r0, #0x10 lsr r5, r0, #0x10 _0203E7DC: add r0, r4, #0x1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 ldr r0, _0203E7EC ; =0x000001ED cmp r4, r0 bls _0203E7B6 _0203E7E8: mov r0, #0x0 pop {r3-r7, pc} .balign 4 _0203E7EC: .word 0x000001ED thumb_func_start FUN_0203E7F0 FUN_0203E7F0: ; 0x0203E7F0 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_020462AC add r1, r4, #0x0 bl FUN_0205F5A4 mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203E81C FUN_0203E81C: ; 0x0203E81C push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_020462AC bl FUN_0205F594 strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203E848 FUN_0203E848: ; 0x0203E848 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_0202AA00 mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_0203E858 FUN_0203E858: ; 0x0203E858 push {r3, lr} ldr r2, [r0, #0x8] add r1, r2, #0x1 str r1, [r0, #0x8] add r0, #0x80 ldr r0, [r0, #0x0] ldrb r1, [r2, #0x0] ldr r0, [r0, #0xc] bl FUN_02060490 mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_0203E870 FUN_0203E870: ; 0x0203E870 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x14 bl FUN_02039438 ldr r1, [r5, #0x8] add r4, r0, #0x0 add r0, r1, #0x1 str r0, [r5, #0x8] ldrb r1, [r1, #0x0] mov r0, #0xb bl FUN_0224884C str r0, [r4, #0x0] mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0203E894 FUN_0203E894: ; 0x0203E894 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x14 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r5, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_022488EC strh r0, [r5, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203E8C4 FUN_0203E8C4: ; 0x0203E8C4 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x14 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r5, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_022488F4 strh r0, [r5, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203E8F4 FUN_0203E8F4: ; 0x0203E8F4 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x14 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r2, r0, #0x0 ldr r0, [r5, #0x74] ldr r1, [r4, #0x0] mov r3, #0xb bl FUN_02060790 mov r0, #0x1 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203E928 FUN_0203E928: ; 0x0203E928 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x14 bl FUN_02039438 ldr r0, [r0, #0x0] bl FUN_022488CC mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0203E940 FUN_0203E940: ; 0x0203E940 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_02024DA0 bl FUN_02024D4C mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_0203E954 FUN_0203E954: ; 0x0203E954 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_02024DA0 bl FUN_02024CE0 mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_0203E968 FUN_0203E968: ; 0x0203E968 push {r4-r6, lr} add r5, r0, #0x0 ldr r2, [r5, #0x8] add r1, r2, #0x1 str r1, [r5, #0x8] ldrb r4, [r2, #0x0] bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r6, r0, #0x0 mov r0, #0x0 strh r0, [r6, #0x0] cmp r4, #0x1 bne _0203E9AE add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_02024DA0 bl FUN_02024C84 add r5, #0x80 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_020238F4 bl FUN_02023A90 b _0203E9C8 _0203E9AE: cmp r4, #0x2 bne _0203E9C4 add r5, #0x80 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_02024DA0 bl FUN_02024CA4 strh r0, [r6, #0x0] b _0203E9C8 _0203E9C4: bl ErrorHandling _0203E9C8: mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_0203E9CC FUN_0203E9CC: ; 0x0203E9CC push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 str r0, [sp, #0x0] add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_0206BB1C add r1, r4, #0x0 bl FUN_0206B9B0 add r5, r0, #0x0 mov r1, #0xd mov r2, #0x0 bl FUN_020671BC add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0xe mov r2, #0x0 bl FUN_020671BC add r6, r0, #0x0 add r0, r5, #0x0 mov r1, #0xf mov r2, #0x0 bl FUN_020671BC add r7, r0, #0x0 add r0, r5, #0x0 mov r1, #0x10 mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0x4] add r0, r5, #0x0 mov r1, #0x11 mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0x8] add r0, r5, #0x0 mov r1, #0x12 mov r2, #0x0 bl FUN_020671BC add r1, r4, r6 add r2, r7, r1 ldr r1, [sp, #0x4] add r2, r1, r2 ldr r1, [sp, #0x8] add r1, r1, r2 add r1, r0, r1 ldr r0, [sp, #0x0] strh r1, [r0, #0x0] mov r0, #0x0 add sp, #0xc pop {r4-r7, pc} .balign 4 thumb_func_start FUN_0203EA68 FUN_0203EA68: ; 0x0203EA68 push {r4, lr} sub sp, #0x10 add r4, r0, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 add r4, r0, #0x0 add r0, sp, #0x0 bl FUN_020126B4 ldr r0, [sp, #0xc] strh r0, [r4, #0x0] mov r0, #0x0 add sp, #0x10 pop {r4, pc} .balign 4 thumb_func_start FUN_0203EA90 FUN_0203EA90: ; 0x0203EA90 push {r4, lr} add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r1, r0, #0x0 ldr r0, [r4, #0x74] bl FUN_022411F4 mov r0, #0x1 pop {r4, pc} thumb_func_start FUN_0203EAB0 FUN_0203EAB0: ; 0x0203EAB0 push {r3-r7, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r5, #0x80 add r7, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_0206BB1C add r1, r7, #0x0 bl FUN_0206B9B0 mov r1, #0x5 mov r2, #0x0 bl FUN_020671BC lsl r0, r0, #0x10 lsr r5, r0, #0x10 add r0, r5, #0x0 bl FUN_021F61E8 strh r0, [r4, #0x0] add r0, r5, #0x0 bl FUN_021F61DC strh r0, [r6, #0x0] mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0203EB20 FUN_0203EB20: ; 0x0203EB20 push {r4, lr} add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r1, r0, #0x0 add r4, #0x80 lsl r1, r1, #0x18 ldr r0, [r4, #0x0] lsr r1, r1, #0x18 bl FUN_0224C27C mov r0, #0x1 pop {r4, pc} .balign 4 thumb_func_start FUN_0203EB48 FUN_0203EB48: ; 0x0203EB48 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r2, r0, #0x0 add r5, #0x80 lsl r1, r4, #0x18 lsl r2, r2, #0x18 ldr r0, [r5, #0x0] lsr r1, r1, #0x18 lsr r2, r2, #0x18 bl FUN_0224C520 mov r0, #0x1 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203EB88 FUN_0203EB88: ; 0x0203EB88 push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 ldr r1, [r5, #0x8] add r2, r1, #0x1 str r2, [r5, #0x8] ldrb r6, [r1, #0x0] add r1, r2, #0x1 str r1, [r5, #0x8] ldrb r4, [r2, #0x0] bl FUN_02038C30 str r0, [sp, #0x8] add r0, r5, #0x0 bl FUN_02038C30 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 str r7, [sp, #0x0] add r5, #0x80 str r0, [sp, #0x4] ldr r0, [r5, #0x0] ldr r3, [sp, #0x8] add r1, r6, #0x0 add r2, r4, #0x0 bl FUN_020607D4 mov r0, #0x1 add sp, #0xc pop {r4-r7, pc} thumb_func_start FUN_0203EBC8 FUN_0203EBC8: ; 0x0203EBC8 push {r4, lr} add r4, r0, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 mov r1, #0xa strh r1, [r0, #0x0] mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_0203EBE4 FUN_0203EBE4: ; 0x0203EBE4 push {r3-r7, lr} sub sp, #0x10 add r5, r0, #0x0 add r0, #0x80 ldr r6, [r0, #0x0] add r0, r6, #0x0 bl FUN_020377AC bl FUN_020238F4 str r0, [sp, #0x4] add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, r0, #0x0 ldr r0, [r6, #0xc] bl FUN_02022510 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 str r0, [sp, #0x8] add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 str r0, [sp, #0xc] add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 str r0, [sp, #0x0] ldr r0, [sp, #0x4] ldr r2, [sp, #0x8] ldr r3, [sp, #0xc] add r1, r7, #0x0 bl FUN_0224D14C add r5, r0, #0x0 mov r0, #0x0 mvn r0, r0 cmp r5, r0 beq _0203EC7E cmp r5, #0x7 ble _0203EC88 _0203EC7E: mov r0, #0xff strh r0, [r4, #0x0] add sp, #0x10 mov r0, #0x0 pop {r3-r7, pc} _0203EC88: add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_0206B644 cmp r0, #0x0 beq _0203EC98 mov r0, #0x0 b _0203ECA2 _0203EC98: add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_0206B620 add r0, r5, #0x1 _0203ECA2: strh r0, [r4, #0x0] mov r0, #0x0 add sp, #0x10 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0203ECAC FUN_0203ECAC: ; 0x0203ECAC push {r3-r5, lr} add r5, r0, #0x0 add r1, r5, #0x0 add r1, #0x80 ldr r1, [r1, #0x0] ldr r4, [r1, #0xc] bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02026CB4 bl FUN_020269CC strh r0, [r5, #0x0] mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0203ECD8 FUN_0203ECD8: ; 0x0203ECD8 push {r3, lr} add r1, r0, #0x0 add r1, #0x80 ldr r2, [r0, #0x8] ldr r3, [r1, #0x0] add r1, r2, #0x1 str r1, [r0, #0x8] ldrb r1, [r2, #0x0] add r0, r3, #0x0 bl FUN_0224C678 mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0203ECF4 FUN_0203ECF4: ; 0x0203ECF4 push {r3, lr} add r1, r0, #0x0 add r1, #0x80 ldr r2, [r0, #0x8] ldr r3, [r1, #0x0] add r1, r2, #0x1 str r1, [r0, #0x8] ldrb r1, [r2, #0x0] add r0, r3, #0x0 bl FUN_0224C6E8 mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0203ED10 FUN_0203ED10: ; 0x0203ED10 push {r3, lr} add r1, r0, #0x0 add r1, #0x80 ldr r2, [r0, #0x8] ldr r3, [r1, #0x0] add r1, r2, #0x1 str r1, [r0, #0x8] ldrb r1, [r2, #0x0] add r0, r3, #0x0 bl FUN_0224C6F4 mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0203ED2C FUN_0203ED2C: ; 0x0203ED2C push {r4-r6, lr} sub sp, #0x10 ldr r0, [r0, #0xc] add r5, r1, #0x0 bl FUN_02024DA0 add r6, r0, #0x0 mov r0, #0x20 bl FUN_020669C0 add r4, r0, #0x0 bl FUN_02066978 mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x4] str r0, [sp, #0x8] str r0, [sp, #0xc] add r0, r4, #0x0 add r1, r5, #0x0 mov r2, #0x32 mov r3, #0x20 bl FUN_02066ACC add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_0202498C add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x10 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0203ED70 FUN_0203ED70: ; 0x0203ED70 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_02022510 bl FUN_0206B3E4 lsl r0, r0, #0x10 lsr r1, r0, #0x10 mov r0, #0x87 lsl r0, r0, #0x2 sub r0, r0, r1 strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0203EDA4 FUN_0203EDA4: ; 0x0203EDA4 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x16 bl FUN_02039438 add r4, r0, #0x0 mov r0, #0x0 add r5, #0x80 str r0, [r4, #0x0] ldr r0, [r5, #0x0] bl FUN_021E7184 str r0, [r4, #0x0] mov r0, #0x1 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203EDC8 FUN_0203EDC8: ; 0x0203EDC8 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x16 bl FUN_02039438 ldr r0, [r0, #0x0] bl FUN_021E71E8 mov r0, #0x1 pop {r3, pc} .balign 4 thumb_func_start FUN_0203EDE0 FUN_0203EDE0: ; 0x0203EDE0 push {r4, lr} add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r1, r0, #0x0 add r4, #0x80 lsl r1, r1, #0x18 ldr r0, [r4, #0x0] lsr r1, r1, #0x18 bl FUN_0224E554 mov r0, #0x1 pop {r4, pc} .balign 4 thumb_func_start FUN_0203EE08 FUN_0203EE08: ; 0x0203EE08 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_0206486C mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0203EE18 FUN_0203EE18: ; 0x0203EE18 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020649D4 mov r0, #0x1 pop {r3, pc} .balign 4 thumb_func_start FUN_0203EE28 FUN_0203EE28: ; 0x0203EE28 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020649B0 cmp r0, #0x0 beq _0203EE4E mov r0, #0x1 b _0203EE50 _0203EE4E: mov r0, #0x0 _0203EE50: strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203EE58 FUN_0203EE58: ; 0x0203EE58 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_0224E764 mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0203EE68 FUN_0203EE68: ; 0x0203EE68 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_0224E7C4 mov r0, #0x1 pop {r3, pc} .balign 4 thumb_func_start FUN_0203EE78 FUN_0203EE78: ; 0x0203EE78 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_02029FC8 add r1, r4, #0x0 bl FUN_0202A170 mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203EE98 FUN_0203EE98: ; 0x0203EE98 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_0206BB1C add r1, r6, #0x0 bl FUN_0206BAE4 strh r0, [r4, #0x0] mov r0, #0x1 pop {r4-r6, pc} thumb_func_start FUN_0203EED8 FUN_0203EED8: ; 0x0203EED8 push {r3-r7, lr} sub sp, #0x8 add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r1, sp, #0x4 strh r0, [r1, #0x0] add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_0206BB1C str r0, [sp, #0x0] bl FUN_0206B9AC add r4, #0x80 add r6, r0, #0x0 ldr r0, [r4, #0x0] ldr r0, [r0, #0xc] bl FUN_02024DA0 add r7, r0, #0x0 mov r5, #0x0 cmp r6, #0x0 ble _0203EF4E _0203EF18: ldr r0, [sp, #0x0] add r1, r5, #0x0 bl FUN_0206B9B0 mov r1, #0x5 mov r2, #0x0 add r4, r0, #0x0 bl FUN_020671BC ldr r1, _0203EF54 ; =0x00000182 cmp r0, r1 bne _0203EF48 add r0, r4, #0x0 mov r1, #0x70 add r2, sp, #0x4 bl FUN_02067830 add r0, r4, #0x0 bl FUN_02066ED8 add r0, r7, #0x0 add r1, r4, #0x0 bl FUN_02024AF0 _0203EF48: add r5, r5, #0x1 cmp r5, r6 blt _0203EF18 _0203EF4E: mov r0, #0x1 add sp, #0x8 pop {r3-r7, pc} .balign 4 _0203EF54: .word 0x00000182 thumb_func_start FUN_0203EF58 FUN_0203EF58: ; 0x0203EF58 push {r3-r7, lr} sub sp, #0x30 add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, #0x80 str r0, [sp, #0x0] ldr r0, [r4, #0x0] ldr r0, [r0, #0xc] bl FUN_0206BB1C str r0, [sp, #0xc] bl FUN_0206B9AC add r2, sp, #0x18 mov r4, #0x0 ldr r3, _0203F008 ; =0x020F34FC str r0, [sp, #0x8] add r7, r2, #0x0 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 r0, [sp, #0x8] str r4, [sp, #0x4] cmp r0, #0x0 ble _0203EFFC mov r5, #0x1 str r7, [sp, #0x14] _0203EFA2: ldr r0, [sp, #0xc] add r1, r4, #0x0 bl FUN_0206B9B0 add r6, r0, #0x0 mov r1, #0x5 mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0x10] add r0, r6, #0x0 mov r1, #0x70 mov r2, #0x0 bl FUN_020671BC add r3, r0, #0x0 mov r0, #0x67 ldr r1, [sp, #0x10] lsl r0, r0, #0x2 cmp r1, r0 bne _0203EFF2 mov r2, #0x0 add r1, r2, #0x0 str r3, [r7, #0x0] cmp r4, #0x0 ble _0203EFE8 ldr r6, [sp, #0x14] _0203EFD8: ldr r0, [r6, #0x0] cmp r3, r0 bne _0203EFE0 add r2, r5, #0x0 _0203EFE0: add r1, r1, #0x1 add r6, r6, #0x4 cmp r1, r4 blt _0203EFD8 _0203EFE8: cmp r2, #0x0 bne _0203EFF2 ldr r0, [sp, #0x4] add r0, r0, #0x1 str r0, [sp, #0x4] _0203EFF2: ldr r0, [sp, #0x8] add r4, r4, #0x1 add r7, r7, #0x4 cmp r4, r0 blt _0203EFA2 _0203EFFC: ldr r1, [sp, #0x4] ldr r0, [sp, #0x0] strh r1, [r0, #0x0] mov r0, #0x1 add sp, #0x30 pop {r3-r7, pc} .balign 4 _0203F008: .word 0x020F34FC thumb_func_start FUN_0203F00C FUN_0203F00C: ; 0x0203F00C push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_020462AC bl FUN_0205F1C4 mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_0203F020 FUN_0203F020: ; 0x0203F020 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_020462AC bl FUN_0205F1D4 mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_0203F034 FUN_0203F034: ; 0x0203F034 push {r4, lr} add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] ldr r0, [r0, #0x10] bl FUN_020389CC mov r0, #0x1 pop {r4, pc} thumb_func_start FUN_0203F058 FUN_0203F058: ; 0x0203F058 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, #0x80 add r5, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_0204B2D8 strh r0, [r5, #0x0] mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0203F07C FUN_0203F07C: ; 0x0203F07C push {r3-r7, lr} sub sp, #0x10 add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 str r0, [sp, #0xc] add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 str r0, [sp, #0x8] add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r4, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] add r1, r7, #0x0 ldr r0, [r0, #0x34] bl FUN_02058060 add r7, r0, #0x0 bne _0203F0FA bl ErrorHandling _0203F0FA: str r6, [sp, #0x0] str r4, [sp, #0x4] ldr r0, [r5, #0x74] ldr r2, [sp, #0xc] ldr r3, [sp, #0x8] add r1, r7, #0x0 bl FUN_02054F50 mov r0, #0x1 add sp, #0x10 pop {r3-r7, pc} thumb_func_start FUN_0203F110 FUN_0203F110: ; 0x0203F110 push {r3-r7, lr} add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] add r1, r5, #0x0 ldr r0, [r0, #0x34] bl FUN_02058060 add r5, r0, #0x0 bne _0203F164 bl ErrorHandling _0203F164: ldr r0, [r4, #0x74] add r1, r5, #0x0 add r2, r7, #0x0 add r3, r6, #0x0 bl FUN_0205502C mov r0, #0x1 pop {r3-r7, pc} thumb_func_start FUN_0203F174 FUN_0203F174: ; 0x0203F174 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_02054E30 strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203F19C FUN_0203F19C: ; 0x0203F19C push {r4-r7, lr} sub sp, #0x24 add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, #0x80 str r0, [sp, #0x0] ldr r0, [r4, #0x0] ldr r0, [r0, #0xc] bl FUN_02027E24 bl FUN_0202708C mov r6, #0x0 add r7, r0, #0x0 add r4, r6, #0x0 add r5, sp, #0x4 _0203F1CA: add r1, r4, #0x0 add r0, r7, #0x0 add r1, #0x22 mov r2, #0x1 bl FUN_020270D8 cmp r0, #0x1 bne _0203F1E0 mov r0, #0x1 strh r0, [r5, #0x0] add r6, r6, #0x1 _0203F1E0: add r4, r4, #0x1 add r5, r5, #0x2 cmp r4, #0x10 blt _0203F1CA cmp r6, #0x0 bne _0203F1F8 ldr r0, [sp, #0x0] ldr r1, _0203F230 ; =0x0000FFFF add sp, #0x24 strh r1, [r0, #0x0] mov r0, #0x0 pop {r4-r7, pc} _0203F1F8: bl FUN_0201B9EC add r1, r6, #0x0 blx _s32_div_f mov r4, #0x0 add r2, sp, #0x4 _0203F206: ldrh r0, [r2, #0x0] cmp r0, #0x1 bne _0203F212 cmp r1, #0x0 beq _0203F21A sub r1, r1, #0x1 _0203F212: add r4, r4, #0x1 add r2, r2, #0x2 cmp r4, #0x10 blt _0203F206 _0203F21A: cmp r4, #0x10 blt _0203F222 bl ErrorHandling _0203F222: ldr r0, [sp, #0x0] add r4, #0x22 strh r4, [r0, #0x0] mov r0, #0x0 add sp, #0x24 pop {r4-r7, pc} nop _0203F230: .word 0x0000FFFF thumb_func_start FUN_0203F234 FUN_0203F234: ; 0x0203F234 push {r4, lr} add r4, r0, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 ldr r1, _0203F250 ; =0x021C4918 ldrb r1, [r1, #0x6] strh r1, [r0, #0x0] mov r0, #0x1 pop {r4, pc} .balign 4 _0203F250: .word 0x021C4918 thumb_func_start FUN_0203F254 FUN_0203F254: ; 0x0203F254 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_020462AC mov r1, #0x0 bl FUN_0205F698 mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0203F26C FUN_0203F26C: ; 0x0203F26C push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 ldr r1, [r5, #0x8] add r6, r0, #0x0 add r0, r1, #0x1 str r0, [r5, #0x8] add r5, #0x80 ldr r0, [r5, #0x0] ldrb r4, [r1, #0x0] ldr r0, [r0, #0xc] bl FUN_020462AC cmp r4, #0x0 beq _0203F2A0 add r1, r6, #0x0 bl FUN_0205F4E4 b _0203F2A6 _0203F2A0: add r1, r6, #0x0 bl FUN_0205F50C _0203F2A6: mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0203F2AC FUN_0203F2AC: ; 0x0203F2AC push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 ldr r1, [r5, #0x8] add r6, r0, #0x0 add r0, r1, #0x1 str r0, [r5, #0x8] add r0, r5, #0x0 ldrb r4, [r1, #0x0] bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r2, r0, #0x0 ldr r0, [r6, #0x0] add r1, r4, #0x0 bl FUN_0200B6D0 mov r0, #0x1 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0203F2E4 FUN_0203F2E4: ; 0x0203F2E4 push {r3-r5, lr} add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_020462AC add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0205F6C8 cmp r0, #0xa blo _0203F314 mov r0, #0x1 b _0203F316 _0203F314: mov r0, #0x0 _0203F316: strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0203F31C FUN_0203F31C: ; 0x0203F31C push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_020462AC bl FUN_0205F648 strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203F348 FUN_0203F348: ; 0x0203F348 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r5, #0x80 add r6, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_02027E24 bl FUN_0202708C add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_02027210 mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_0203F38C FUN_0203F38C: ; 0x0203F38C push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_02046030 mov r0, #0x1 pop {r3, pc} .balign 4 thumb_func_start FUN_0203F39C FUN_0203F39C: ; 0x0203F39C push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_0205F668 mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_0203F3AC FUN_0203F3AC: ; 0x0203F3AC push {r3-r7, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 add r5, #0x80 add r6, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_02013B5C bl FUN_02013B74 cmp r0, #0x20 bne _0203F3FE ldr r0, _0203F414 ; =0x0000FFFF strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r7, pc} _0203F3FE: strh r0, [r4, #0x0] bl FUN_02013BE4 add r2, r0, #0x0 ldr r0, [r6, #0x0] add r1, r7, #0x0 bl FUN_0200B518 mov r0, #0x0 pop {r3-r7, pc} nop _0203F414: .word 0x0000FFFF thumb_func_start FUN_0203F418 FUN_0203F418: ; 0x0203F418 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_02013B5C bl FUN_02013BC8 cmp r0, #0x1 bne _0203F444 mov r0, #0x1 b _0203F446 _0203F444: mov r0, #0x0 _0203F446: strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0203F44C FUN_0203F44C: ; 0x0203F44C push {r3-r5, lr} add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_020462AC add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0205F710 cmp r0, #0x5 blo _0203F47C mov r0, #0x1 b _0203F47E _0203F47C: mov r0, #0x0 _0203F47E: strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0203F484 FUN_0203F484: ; 0x0203F484 push {r3-r7, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, #0x80 ldr r5, [r5, #0x0] add r4, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_02023788 add r7, r0, #0x0 bl FUN_02023818 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_0204B2B4 cmp r6, r0 bne _0203F4CE add r0, r7, #0x0 bl FUN_0202381C add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_0204B2C0 cmp r6, r0 bne _0203F4CE mov r0, #0x1 strh r0, [r4, #0x0] b _0203F4D2 _0203F4CE: mov r0, #0x0 strh r0, [r4, #0x0] _0203F4D2: mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0203F4D8 FUN_0203F4D8: ; 0x0203F4D8 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_02024DA0 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0202471C strh r0, [r5, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203F508 FUN_0203F508: ; 0x0203F508 push {r3-r7, lr} add r6, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r6, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r6, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r6, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r1, r6, #0x0 add r1, #0x80 ldr r1, [r1, #0x0] ldr r2, [r1, #0x1c] ldr r1, [r2, #0x8] lsl r1, r1, #0x10 lsr r5, r1, #0x10 ldr r1, [r2, #0xc] lsl r1, r1, #0x10 lsr r4, r1, #0x10 cmp r7, #0x3 blo _0203F54C ldr r7, _0203F5C8 ; =0x0000010E b _0203F582 _0203F54C: cmp r0, #0x1e blo _0203F556 mov r7, #0x43 lsl r7, r7, #0x2 b _0203F582 _0203F556: bl FUN_0201B9EC mov r1, #0x64 blx _s32_div_f cmp r1, #0x19 bge _0203F568 ldr r7, _0203F5CC ; =0x0000010D b _0203F582 _0203F568: bl FUN_0201B9EC mov r1, #0x6 blx _s32_div_f lsl r0, r1, #0x10 lsr r1, r0, #0x10 mov r0, #0x6 mul r0, r7 add r0, r1, r0 lsl r1, r0, #0x1 ldr r0, _0203F5D0 ; =0x020F3538 ldrh r7, [r0, r1] _0203F582: cmp r5, #0xb bne _0203F59A cmp r4, #0x1 bne _0203F58E mov r4, #0x0 b _0203F5A4 _0203F58E: cmp r4, #0x14 bne _0203F596 mov r4, #0x2 b _0203F5A4 _0203F596: mov r4, #0x5 b _0203F5A4 _0203F59A: cmp r5, #0x14 bne _0203F5A2 mov r4, #0x1 b _0203F5A4 _0203F5A2: mov r4, #0x3 _0203F5A4: mov r5, #0x0 _0203F5A6: cmp r5, r4 beq _0203F5B8 add r0, r6, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] add r1, r5, #0x0 add r2, r7, #0x0 bl FUN_02034C24 _0203F5B8: add r0, r5, #0x1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 cmp r5, #0x4 blo _0203F5A6 mov r0, #0x0 pop {r3-r7, pc} nop _0203F5C8: .word 0x0000010E _0203F5CC: .word 0x0000010D _0203F5D0: .word 0x020F3538 thumb_func_start FUN_0203F5D4 FUN_0203F5D4: ; 0x0203F5D4 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_020462AC add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0205F720 strh r0, [r5, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203F604 FUN_0203F604: ; 0x0203F604 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_020462AC add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0205F740 strh r0, [r5, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203F634 FUN_0203F634: ; 0x0203F634 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_020462AC add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0205F760 strh r0, [r5, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203F664 FUN_0203F664: ; 0x0203F664 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, r0, #0x0 add r0, r5, #0x0 mov r2, #0x0 add r3, sp, #0x0 add r0, #0x8 _0203F684: ldr r6, [r0, #0x0] ldr r1, [r5, #0x8] add r6, r6, #0x1 str r6, [r0, #0x0] ldrb r1, [r1, #0x0] add r2, r2, #0x1 strb r1, [r3, #0x0] add r3, r3, #0x1 cmp r2, #0x5 blt _0203F684 ldr r1, [r0, #0x0] ldr r2, [r5, #0x8] add r1, r1, #0x1 str r1, [r0, #0x0] ldrb r6, [r2, #0x0] mov r0, #0x4 bl FUN_02027E5C add r1, sp, #0x0 add r2, r6, #0x0 mov r3, #0x0 add r7, r0, #0x0 bl FUN_02027F04 add r5, #0x80 add r6, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_02028048 add r1, r7, #0x0 bl FUN_02028094 add r5, r0, #0x0 add r0, r7, #0x0 bl FUN_02016A18 ldr r0, _0203F6E0 ; =0x0000FFFF cmp r5, r0 bne _0203F6D8 strh r0, [r4, #0x0] b _0203F6DA _0203F6D8: strh r6, [r4, #0x0] _0203F6DA: mov r0, #0x0 add sp, #0x8 pop {r3-r7, pc} .balign 4 _0203F6E0: .word 0x0000FFFF thumb_func_start FUN_0203F6E4 FUN_0203F6E4: ; 0x0203F6E4 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_02028048 bl FUN_02028074 ldr r1, _0203F71C ; =0x0000FFFF cmp r0, r1 bne _0203F712 mov r0, #0x0 b _0203F714 _0203F712: mov r0, #0x1 _0203F714: strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r5, pc} nop _0203F71C: .word 0x0000FFFF thumb_func_start FUN_0203F720 FUN_0203F720: ; 0x0203F720 push {r4-r6, lr} add r5, r0, #0x0 ldr r2, [r5, #0x8] add r1, r2, #0x1 str r1, [r5, #0x8] ldrb r4, [r2, #0x0] bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, #0x80 add r6, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_020462AC add r5, r0, #0x0 cmp r4, #0x3 bls _0203F752 bl ErrorHandling _0203F752: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0205F4A0 strh r0, [r6, #0x0] mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_0203F760 FUN_0203F760: ; 0x0203F760 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, #0x80 add r5, r0, #0x0 ldr r0, [r4, #0x0] mov r1, #0x20 ldr r0, [r0, #0xc] add r2, sp, #0x0 bl FUN_02022534 ldr r1, [sp, #0x0] add r4, r0, #0x0 cmp r1, #0x0 bne _0203F798 mov r1, #0x0 strh r1, [r5, #0x0] bl FUN_02016A18 mov r0, #0x1 pop {r3-r5, pc} _0203F798: cmp r1, #0x1 bne _0203F7AE mov r1, #0x0 bl FUN_0202B21C strh r0, [r5, #0x0] add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x1 pop {r3-r5, pc} _0203F7AE: cmp r1, #0x2 bne _0203F7BE mov r1, #0x0 strh r1, [r5, #0x0] bl FUN_02016A18 mov r0, #0x1 pop {r3-r5, pc} _0203F7BE: mov r0, #0x0 strh r0, [r5, #0x0] mov r0, #0x1 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203F7C8 FUN_0203F7C8: ; 0x0203F7C8 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x13 bl FUN_02039438 add r1, r5, #0x0 add r1, #0x80 add r4, r0, #0x0 ldr r1, [r1, #0x0] mov r0, #0x20 add r2, r6, #0x0 bl FUN_02037A48 str r0, [r4, #0x0] ldr r1, _0203F808 ; =FUN_0203BC04 add r0, r5, #0x0 bl FUN_02038B5C mov r0, #0x1 pop {r4-r6, pc} .balign 4 _0203F808: .word FUN_0203BC04 thumb_func_start FUN_0203F80C FUN_0203F80C: ; 0x0203F80C push {r4-r6, lr} add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, #0x80 add r5, r0, #0x0 ldr r0, [r4, #0x0] mov r1, #0x13 bl FUN_02039438 add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x0 bne _0203F84C bl ErrorHandling _0203F84C: ldr r0, [r4, #0x0] bl FUN_02037A40 strh r0, [r6, #0x0] ldrh r0, [r6, #0x0] cmp r0, #0x7 bne _0203F85E mov r0, #0xff strh r0, [r6, #0x0] _0203F85E: ldr r0, [r4, #0x0] bl FUN_02037A70 strh r0, [r5, #0x0] ldrh r0, [r5, #0x0] cmp r0, #0x1 bne _0203F870 mov r0, #0x1 b _0203F872 _0203F870: mov r0, #0x0 _0203F872: strh r0, [r5, #0x0] ldr r0, [r4, #0x0] bl FUN_02016A18 mov r0, #0x0 str r0, [r4, #0x0] pop {r4-r6, pc} thumb_func_start FUN_0203F880 FUN_0203F880: ; 0x0203F880 push {r3-r5, lr} add r5, r0, #0x0 ldr r2, [r5, #0x8] add r1, r2, #0x1 str r1, [r5, #0x8] ldrb r4, [r2, #0x0] bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r5, r0, #0x0 cmp r4, #0x64 bls _0203F8A2 mov r4, #0x64 _0203F8A2: bl FUN_0201B9EC mov r1, #0x65 blx _s32_div_f lsl r0, r1, #0x10 lsr r0, r0, #0x10 cmp r0, r4 bgt _0203F8B8 mov r0, #0x1 b _0203F8BA _0203F8B8: mov r0, #0x0 _0203F8BA: strh r0, [r5, #0x0] mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0203F8C0 FUN_0203F8C0: ; 0x0203F8C0 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] cmp r4, #0x0 beq _0203F8FC cmp r4, #0x1 beq _0203F906 cmp r4, #0x2 beq _0203F910 b _0203F91A _0203F8FC: mov r2, #0x0 mov r3, #0x20 bl FUN_0224F12C b _0203F91E _0203F906: mov r2, #0x1 mov r3, #0x20 bl FUN_0224F12C b _0203F91E _0203F910: mov r2, #0x2 mov r3, #0x20 bl FUN_0224F12C b _0203F91E _0203F91A: bl ErrorHandling _0203F91E: mov r0, #0x1 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203F924 FUN_0203F924: ; 0x0203F924 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_020462AC add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0205F6A8 strh r0, [r5, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203F954 FUN_0203F954: ; 0x0203F954 push {r4, lr} add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 cmp r0, #0x0 bne _0203F978 add r4, #0x80 ldr r0, [r4, #0x0] ldr r0, [r0, #0x10] bl FUN_02239944 b _0203F982 _0203F978: add r4, #0x80 ldr r0, [r4, #0x0] ldr r0, [r0, #0x10] bl FUN_02239AAC _0203F982: mov r0, #0x1 pop {r4, pc} .balign 4 thumb_func_start FUN_0203F988 FUN_0203F988: ; 0x0203F988 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_0203384C strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203F9B0 FUN_0203F9B0: ; 0x0203F9B0 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_020286EC bl FUN_02028448 strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203F9DC FUN_0203F9DC: ; 0x0203F9DC push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_02026CC4 ldr r1, _0203FA10 ; =0x0000FF79 add r1, r4, r1 lsl r1, r1, #0x10 lsr r1, r1, #0x10 cmp r1, #0x1 bhi _0203FA0C bl FUN_02025C30 _0203FA0C: mov r0, #0x0 pop {r3-r5, pc} .balign 4 _0203FA10: .word 0x0000FF79 thumb_func_start FUN_0203FA14 FUN_0203FA14: ; 0x0203FA14 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 mov r1, #0x0 strh r1, [r0, #0x0] ldr r1, _0203FA54 ; =0x0000012A cmp r4, r1 blo _0203FA4E add r1, #0xf cmp r4, r1 bhi _0203FA4E mov r1, #0x1 strh r1, [r0, #0x0] _0203FA4E: mov r0, #0x0 pop {r3-r5, pc} nop _0203FA54: .word 0x0000012A thumb_func_start FUN_0203FA58 FUN_0203FA58: ; 0x0203FA58 push {r3-r7, lr} sub sp, #0x10 add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 str r0, [sp, #0x4] add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 str r0, [sp, #0x8] add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 str r0, [sp, #0xc] add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394F0 add r7, r0, #0x0 mov r0, #0x20 bl FUN_0200AA80 add r4, r0, #0x0 ldr r2, _0203FB48 ; =0x00000147 mov r0, #0x0 mov r1, #0x1a mov r3, #0x20 bl FUN_0200A86C add r5, r0, #0x0 ldr r2, [sp, #0x4] add r0, r4, #0x0 mov r1, #0x0 bl FUN_0200B518 ldr r2, [sp, #0x8] add r0, r4, #0x0 mov r1, #0x1 bl FUN_0200B518 ldr r2, [sp, #0xc] add r0, r4, #0x0 mov r1, #0x2 bl FUN_0200B518 add r0, r4, #0x0 mov r1, #0x3 add r2, r7, #0x0 bl FUN_0200B518 add r0, r4, #0x0 add r1, r5, #0x0 mov r2, #0x1 mov r3, #0x20 bl FUN_0200A9C4 add r7, r0, #0x0 add r0, r5, #0x0 mov r1, #0x0 bl FUN_0200A914 str r0, [sp, #0x0] ldr r1, [sp, #0x0] add r0, r7, #0x0 bl FUN_02021CE0 cmp r0, #0x0 bne _0203FB24 mov r0, #0x1 b _0203FB26 _0203FB24: mov r0, #0x0 _0203FB26: strh r0, [r6, #0x0] add r0, r7, #0x0 bl FUN_02021A20 ldr r0, [sp, #0x0] bl FUN_02021A20 add r0, r5, #0x0 bl FUN_0200A8B8 add r0, r4, #0x0 bl FUN_0200AB18 mov r0, #0x0 add sp, #0x10 pop {r3-r7, pc} nop _0203FB48: .word 0x00000147 thumb_func_start FUN_0203FB4C FUN_0203FB4C: ; 0x0203FB4C push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_02023788 mov r1, #0x1 bl FUN_02023828 mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0203FB64 FUN_0203FB64: ; 0x0203FB64 push {r3-r5, lr} add r5, r0, #0x0 add r1, r5, #0x0 add r1, #0x80 ldr r4, [r1, #0x0] bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r5, r0, #0x0 add r0, r4, #0x0 mov r1, #0xf bl FUN_02039438 ldr r0, [r0, #0x0] bl FUN_0205296C strh r0, [r5, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203FB94 FUN_0203FB94: ; 0x0203FB94 push {r3, lr} bl FUN_02033E74 mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0203FBA0 FUN_0203FBA0: ; 0x0203FBA0 push {r3, lr} bl FUN_02033ED0 mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0203FBAC FUN_0203FBAC: ; 0x0203FBAC push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_02034E48 mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0203FBBC FUN_0203FBBC: ; 0x0203FBBC push {r3-r7, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r5, #0x80 add r7, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_02034E30 bl FUN_02034DCC str r4, [r0, #0x0] str r6, [r0, #0x8] mov r1, #0x0 str r7, [r0, #0xc] mvn r1, r1 str r1, [r0, #0x4] mov r1, #0x1 str r1, [r0, #0x10] mov r0, #0x0 pop {r3-r7, pc} thumb_func_start FUN_0203FC1C FUN_0203FC1C: ; 0x0203FC1C push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 ldr r2, [r5, #0x8] add r1, r0, #0x0 add r0, r2, #0x1 str r0, [r5, #0x8] add r5, #0x80 ldr r0, [r5, #0x0] ldrb r4, [r2, #0x0] ldr r0, [r0, #0x34] bl FUN_02058060 add r5, r0, #0x0 bne _0203FC4C bl ErrorHandling _0203FC4C: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_020588B8 mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0203FC58 FUN_0203FC58: ; 0x0203FC58 push {r3-r5, lr} add r5, r0, #0x0 add r1, r5, #0x0 add r1, #0x80 ldr r4, [r1, #0x0] bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02065078 strh r0, [r5, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203FC80 FUN_0203FC80: ; 0x0203FC80 push {r3-r5, lr} add r0, #0x80 ldr r5, [r0, #0x0] mov r1, #0x28 add r0, r5, #0x0 bl FUN_02039438 add r4, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_0202280C cmp r0, #0x0 bne _0203FCAA add r0, r5, #0x0 mov r1, #0x4 mov r2, #0x3 bl FUN_021E8588 str r0, [r4, #0x0] bl FUN_021E84F4 _0203FCAA: mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203FCB0 FUN_0203FCB0: ; 0x0203FCB0 push {r3-r5, lr} add r0, #0x80 ldr r5, [r0, #0x0] mov r1, #0x28 add r0, r5, #0x0 bl FUN_02039438 add r4, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_0202280C cmp r0, #0x0 bne _0203FCD6 ldr r0, [r4, #0x0] bl FUN_021E856C ldr r0, [r4, #0x0] bl FUN_021E85E4 _0203FCD6: mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0203FCDC FUN_0203FCDC: ; 0x0203FCDC push {r3, lr} ldr r2, [r0, #0x8] add r1, r2, #0x1 str r1, [r0, #0x8] add r0, #0x80 ldrb r1, [r2, #0x0] ldr r0, [r0, #0x0] bl FUN_0206367C mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0203FCF4 FUN_0203FCF4: ; 0x0203FCF4 push {r4-r7, lr} sub sp, #0x84 add r7, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r7, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 mov r4, #0x0 add r6, r4, #0x0 add r5, r4, #0x0 _0203FD10: add r0, r7, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_020238F4 add r1, r5, #0x0 bl FUN_020239D0 cmp r0, #0x1 bne _0203FD2C add r0, r6, #0x1 lsl r0, r0, #0x18 lsr r6, r0, #0x18 _0203FD2C: add r0, r5, #0x1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 cmp r5, #0x8 blo _0203FD10 cmp r6, #0x8 bhi _0203FD70 add r0, r6, r6 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0203FD46: ; jump table (using 16-bit offset) .short _0203FD58 - _0203FD46 - 2; case 0 .short _0203FD5C - _0203FD46 - 2; case 1 .short _0203FD5C - _0203FD46 - 2; case 2 .short _0203FD60 - _0203FD46 - 2; case 3 .short _0203FD60 - _0203FD46 - 2; case 4 .short _0203FD64 - _0203FD46 - 2; case 5 .short _0203FD64 - _0203FD46 - 2; case 6 .short _0203FD68 - _0203FD46 - 2; case 7 .short _0203FD6C - _0203FD46 - 2; case 8 _0203FD58: mov r1, #0x1 b _0203FD72 _0203FD5C: mov r1, #0x2 b _0203FD72 _0203FD60: mov r1, #0x3 b _0203FD72 _0203FD64: mov r1, #0x4 b _0203FD72 _0203FD68: mov r1, #0x5 b _0203FD72 _0203FD6C: mov r1, #0x6 b _0203FD72 _0203FD70: mov r1, #0x1 _0203FD72: ldr r0, _0203FDB4 ; =0x020F4218 mov r2, #0x0 add r6, sp, #0x4 _0203FD78: lsl r3, r2, #0x2 add r5, r0, r3 ldrh r3, [r5, #0x2] cmp r1, r3 blt _0203FD8E ldrh r5, [r5, #0x0] lsl r3, r4, #0x1 strh r5, [r6, r3] add r3, r4, #0x1 lsl r3, r3, #0x18 lsr r4, r3, #0x18 _0203FD8E: add r2, r2, #0x1 lsl r2, r2, #0x18 lsr r2, r2, #0x18 cmp r2, #0x13 blo _0203FD78 ldr r1, _0203FDB8 ; =0x0000FFFF lsl r0, r4, #0x1 add r2, sp, #0x4 strh r1, [r2, r0] mov r3, #0x0 str r3, [sp, #0x0] ldr r0, [r7, #0x74] add r7, #0x80 ldr r1, [r7, #0x0] bl FUN_0223D3D0 mov r0, #0x1 add sp, #0x84 pop {r4-r7, pc} .balign 4 _0203FDB4: .word 0x020F4218 _0203FDB8: .word 0x0000FFFF thumb_func_start FUN_0203FDBC FUN_0203FDBC: ; 0x0203FDBC push {r3-r4, lr} sub sp, #0x4 add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r2, r0, #0x0 ldr r0, _0203FE00 ; =0x0000FFF8 add r0, r2, r0 lsl r0, r0, #0x10 lsr r0, r0, #0x10 cmp r0, #0x5 bhi _0203FDE4 mov r0, #0x1 b _0203FDE6 _0203FDE4: mov r0, #0x0 _0203FDE6: lsl r3, r2, #0x2 str r0, [sp, #0x0] ldr r2, _0203FE04 ; =0x02105E10 ldr r0, [r4, #0x74] add r4, #0x80 ldr r2, [r2, r3] ldr r1, [r4, #0x0] mov r3, #0x0 bl FUN_0223D3D0 mov r0, #0x1 add sp, #0x4 pop {r3-r4, pc} .balign 4 _0203FE00: .word 0x0000FFF8 _0203FE04: .word 0x02105E10 thumb_func_start FUN_0203FE08 FUN_0203FE08: ; 0x0203FE08 push {r3-r4, lr} sub sp, #0x4 add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r2, r0, #0x0 cmp r2, #0x1 bhi _0203FE28 mov r0, #0x1 b _0203FE2A _0203FE28: mov r0, #0x0 _0203FE2A: lsl r3, r2, #0x2 str r0, [sp, #0x0] ldr r2, _0203FE44 ; =0x02105DEC ldr r0, [r4, #0x74] add r4, #0x80 ldr r2, [r2, r3] ldr r1, [r4, #0x0] mov r3, #0x1 bl FUN_0223D3D0 mov r0, #0x1 add sp, #0x4 pop {r3-r4, pc} .balign 4 _0203FE44: .word 0x02105DEC thumb_func_start FUN_0203FE48 FUN_0203FE48: ; 0x0203FE48 push {r3-r4, lr} sub sp, #0x4 add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r2, r0, #0x0 mov r0, #0x0 lsl r3, r2, #0x2 str r0, [sp, #0x0] ldr r2, _0203FE7C ; =0x02105DF4 ldr r0, [r4, #0x74] add r4, #0x80 ldr r2, [r2, r3] ldr r1, [r4, #0x0] mov r3, #0x2 bl FUN_0223D3D0 mov r0, #0x1 add sp, #0x4 pop {r3-r4, pc} .balign 4 _0203FE7C: .word 0x02105DF4 thumb_func_start FUN_0203FE80 FUN_0203FE80: ; 0x0203FE80 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0x10] bl FUN_02038AD0 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0203FE90 FUN_0203FE90: ; 0x0203FE90 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x14 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r1, r0, #0x0 lsl r1, r1, #0x18 ldr r0, [r4, #0x0] lsr r1, r1, #0x18 bl FUN_02082140 mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0203FEC0 FUN_0203FEC0: ; 0x0203FEC0 push {r4, lr} add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x14 bl FUN_02039438 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 str r0, [r4, #0x64] ldr r1, _0203FEF0 ; =FUN_0203FEF4 add r0, r4, #0x0 bl FUN_02038B5C mov r0, #0x1 pop {r4, pc} nop _0203FEF0: .word FUN_0203FEF4 thumb_func_start FUN_0203FEF4 FUN_0203FEF4: ; 0x0203FEF4 push {r4, lr} add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x14 bl FUN_02039438 ldr r1, [r4, #0x64] ldr r0, [r0, #0x0] lsl r1, r1, #0x18 lsr r1, r1, #0x18 bl FUN_02082158 pop {r4, pc} thumb_func_start FUN_0203FF10 FUN_0203FF10: ; 0x0203FF10 push {r3-r7, lr} sub sp, #0x38 add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x14 bl FUN_02039438 str r0, [sp, #0x0] add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020377AC bl FUN_020238F4 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 str r0, [sp, #0x4] add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 str r0, [sp, #0x8] add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 str r0, [sp, #0xc] add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_0206BB1C add r1, r6, #0x0 bl FUN_0206B9B0 str r0, [sp, #0x10] add r0, r4, #0x0 mov r1, #0x4 bl FUN_020239A0 add r7, r0, #0x0 ldr r1, [sp, #0x8] add r0, sp, #0x14 strb r1, [r0, #0x0] ldr r1, [sp, #0x4] strb r1, [r0, #0x1] ldr r1, [sp, #0xc] strb r1, [r0, #0x2] add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_020462AC bl FUN_0205ED0C add r1, sp, #0x14 strb r0, [r1, #0x3] add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_02024DA0 bl FUN_02024CA4 add r1, sp, #0x14 strb r0, [r1, #0x4] strb r6, [r1, #0x5] ldr r0, [sp, #0x10] str r7, [sp, #0x20] str r0, [sp, #0x1c] add r0, r5, #0x0 str r4, [sp, #0x24] add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_02027E24 str r0, [sp, #0x28] add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl LoadPlayerDataAddress str r0, [sp, #0x2c] add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] add r5, #0x80 ldr r0, [r0, #0xc] str r0, [sp, #0x30] ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_02029EF8 str r0, [sp, #0x34] add r0, sp, #0x14 bl FUN_02081214 ldr r1, [sp, #0x0] str r0, [r1, #0x0] add r0, r7, #0x0 bl FUN_02021A20 mov r0, #0x0 add sp, #0x38 pop {r3-r7, pc} thumb_func_start FUN_02040028 FUN_02040028: ; 0x02040028 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x14 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0x1c] ldr r0, [r0, #0x0] bl FUN_02034824 add r5, #0x80 ldr r3, [r5, #0x0] add r2, r0, #0x0 ldr r1, [r3, #0xc] add r3, #0x98 ldr r0, [r4, #0x0] ldr r3, [r3, #0x0] bl FUN_02082630 ldr r0, [r4, #0x0] bl FUN_020814E8 mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02040074 FUN_02040074: ; 0x02040074 push {r3-r7, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x14 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r3, r0, #0x0 ldr r0, [r4, #0x0] ldr r2, [r6, #0x0] add r1, r7, #0x0 bl FUN_0208201C mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020400C8 FUN_020400C8: ; 0x020400C8 push {r3-r7, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x14 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r3, r0, #0x0 ldr r0, [r4, #0x0] ldr r2, [r6, #0x0] add r1, r7, #0x0 bl FUN_02082034 mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0204011C FUN_0204011C: ; 0x0204011C push {r3-r7, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x14 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r3, r0, #0x0 ldr r0, [r4, #0x0] ldr r2, [r6, #0x0] add r1, r7, #0x0 bl FUN_0208206C mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02040170 FUN_02040170: ; 0x02040170 push {r4-r6, lr} sub sp, #0x8 add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x14 bl FUN_02039438 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r1, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] mov r3, #0x1 str r3, [sp, #0x4] ldr r0, [r4, #0x0] add r2, r6, #0x0 bl FUN_0200AD38 mov r0, #0x0 add sp, #0x8 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_020401CC FUN_020401CC: ; 0x020401CC push {r4, lr} add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x14 bl FUN_02039438 ldr r0, [r0, #0x0] bl FUN_02081DC4 ldr r1, _020401EC ; =FUN_020401F0 add r0, r4, #0x0 bl FUN_02038B5C mov r0, #0x1 pop {r4, pc} .balign 4 _020401EC: .word FUN_020401F0 thumb_func_start FUN_020401F0 FUN_020401F0: ; 0x020401F0 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x14 bl FUN_02039438 ldr r0, [r0, #0x0] bl FUN_02081EB8 pop {r3, pc} thumb_func_start FUN_02040204 FUN_02040204: ; 0x02040204 push {r4, lr} add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x14 bl FUN_02039438 add r1, r0, #0x0 ldr r0, [r4, #0x74] ldr r1, [r1, #0x0] bl FUN_02080E0C mov r0, #0x1 pop {r4, pc} thumb_func_start FUN_02040220 FUN_02040220: ; 0x02040220 push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x14 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r2, r0, #0x0 ldr r0, [r4, #0x0] ldr r1, [r6, #0x0] bl FUN_02082090 mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_0204025C FUN_0204025C: ; 0x0204025C push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x14 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r2, r0, #0x0 ldr r0, [r4, #0x0] ldr r1, [r6, #0x0] bl FUN_020820B8 mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02040298 FUN_02040298: ; 0x02040298 push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x14 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r2, r0, #0x0 ldr r0, [r4, #0x0] ldr r1, [r6, #0x0] bl FUN_020820DC mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_020402D4 FUN_020402D4: ; 0x020402D4 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x14 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r5, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_0208213C strh r0, [r5, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02040304 FUN_02040304: ; 0x02040304 push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x14 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r2, r0, #0x0 ldr r0, [r4, #0x0] ldr r1, [r6, #0x0] bl FUN_0208210C mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02040340 FUN_02040340: ; 0x02040340 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x14 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r5, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_0208217C strh r0, [r5, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02040370 FUN_02040370: ; 0x02040370 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x14 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r5, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_02082190 strh r0, [r5, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020403A0 FUN_020403A0: ; 0x020403A0 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x14 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r5, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020821B4 strh r0, [r5, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020403D0 FUN_020403D0: ; 0x020403D0 push {r4-r6, lr} add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x14 bl FUN_02039438 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 add r4, r0, #0x0 ldr r0, [r5, #0x0] add r1, r6, #0x0 bl FUN_020821C4 strh r0, [r4, #0x0] mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02040414 FUN_02040414: ; 0x02040414 push {r4-r6, lr} add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x14 bl FUN_02039438 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 add r4, r0, #0x0 ldr r0, [r5, #0x0] add r1, r6, #0x0 bl FUN_020821DC strh r0, [r4, #0x0] mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02040458 FUN_02040458: ; 0x02040458 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x14 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r5, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020821F0 strh r0, [r5, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02040488 FUN_02040488: ; 0x02040488 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x14 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 str r0, [sp, #0x4] add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 str r0, [sp, #0x0] ldr r0, [r4, #0x0] ldr r3, [sp, #0x4] add r1, r6, #0x0 add r2, r7, #0x0 bl FUN_02082214 mov r0, #0x0 add sp, #0x8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020404FC FUN_020404FC: ; 0x020404FC push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x14 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r5, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_02082254 strh r0, [r5, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0204052C FUN_0204052C: ; 0x0204052C push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x14 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r2, r0, #0x0 ldr r0, [r4, #0x0] ldr r1, [r6, #0x0] mov r3, #0xb bl FUN_02082284 mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0204056C FUN_0204056C: ; 0x0204056C push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x14 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r5, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020822F0 strh r0, [r5, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0204059C FUN_0204059C: ; 0x0204059C push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x14 bl FUN_02039438 ldr r0, [r0, #0x0] bl FUN_0208223C mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_020405B4 FUN_020405B4: ; 0x020405B4 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x14 bl FUN_02039438 ldr r0, [r0, #0x0] bl FUN_0208224C mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_020405CC FUN_020405CC: ; 0x020405CC push {r3-r5, lr} add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x14 bl FUN_02039438 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394F0 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_02082444 mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_020405F8 FUN_020405F8: ; 0x020405F8 push {r4, lr} add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x14 bl FUN_02039438 ldr r1, _02040614 ; =FUN_02040618 add r0, r4, #0x0 bl FUN_02038B5C mov r0, #0x1 pop {r4, pc} nop _02040614: .word FUN_02040618 thumb_func_start FUN_02040618 FUN_02040618: ; 0x02040618 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x14 bl FUN_02039438 ldr r0, [r0, #0x0] bl FUN_02082508 cmp r0, #0x1 bne _02040632 mov r0, #0x1 pop {r3, pc} _02040632: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_02040638 FUN_02040638: ; 0x02040638 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0x4] ldr r0, [r0, #0x1c] bl FUN_021F4608 mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0204064C FUN_0204064C: ; 0x0204064C push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0x4] ldr r0, [r0, #0x1c] bl FUN_021F45E8 mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_02040660 FUN_02040660: ; 0x02040660 push {r4-r5, lr} sub sp, #0x1c add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x14 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r5, r0, #0x0 add r0, sp, #0xc str r0, [sp, #0x0] add r0, sp, #0x8 str r0, [sp, #0x4] ldr r0, [r4, #0x0] add r1, sp, #0x18 add r2, sp, #0x14 add r3, sp, #0x10 bl FUN_020825A0 ldr r0, [sp, #0x14] cmp r0, #0x1 beq _020406B0 ldr r0, [sp, #0x10] cmp r0, #0x1 beq _020406B0 ldr r0, [sp, #0xc] cmp r0, #0x1 beq _020406B0 ldr r0, [sp, #0x8] cmp r0, #0x1 bne _020406B6 _020406B0: mov r0, #0x1 strh r0, [r5, #0x0] b _020406BA _020406B6: mov r0, #0x0 strh r0, [r5, #0x0] _020406BA: mov r0, #0x0 add sp, #0x1c pop {r4-r5, pc} thumb_func_start FUN_020406C0 FUN_020406C0: ; 0x020406C0 push {r3, lr} ldr r0, [r0, #0x74] bl FUN_0224D3E8 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_020406CC FUN_020406CC: ; 0x020406CC push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 ldr r6, [r0, #0x0] mov r1, #0xf add r0, r6, #0x0 bl FUN_02039438 ldr r1, [r5, #0x8] add r4, r0, #0x0 add r0, r1, #0x1 str r0, [r5, #0x8] ldrb r5, [r1, #0x0] add r0, r6, #0x0 bl FUN_020377AC bl FUN_020238F4 add r2, r0, #0x0 ldr r0, [r4, #0x0] add r1, r5, #0x0 bl FUN_0200ABC0 mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02040700 FUN_02040700: ; 0x02040700 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r4, [r0, #0x0] mov r1, #0xf add r0, r4, #0x0 bl FUN_02039438 ldr r2, [r5, #0x8] add r1, r2, #0x1 str r1, [r5, #0x8] ldrb r1, [r2, #0x0] ldr r0, [r0, #0x0] ldr r2, [r4, #0xc] bl FUN_0200ABE4 mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02040724 FUN_02040724: ; 0x02040724 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r4, [r0, #0x0] mov r1, #0xf add r0, r4, #0x0 bl FUN_02039438 ldr r2, [r5, #0x8] add r1, r2, #0x1 str r1, [r5, #0x8] ldrb r1, [r2, #0x0] ldr r0, [r0, #0x0] ldr r2, [r4, #0xc] bl FUN_0200AC0C mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02040748 FUN_02040748: ; 0x02040748 push {r3-r7, lr} add r5, r0, #0x0 add r0, #0x80 ldr r6, [r0, #0x0] mov r1, #0xf add r0, r6, #0x0 bl FUN_02039438 ldr r1, [r5, #0x8] add r7, r0, #0x0 add r0, r1, #0x1 str r0, [r5, #0x8] add r0, r5, #0x0 ldrb r4, [r1, #0x0] bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r5, r0, #0x0 ldr r0, [r6, #0xc] bl FUN_0206BB1C add r1, r5, #0x0 bl FUN_0206B9B0 add r2, r0, #0x0 ldr r0, [r7, #0x0] add r1, r4, #0x0 bl FUN_0200AC60 mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02040790 FUN_02040790: ; 0x02040790 push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 ldr r1, [r5, #0x8] add r6, r0, #0x0 add r0, r1, #0x1 str r0, [r5, #0x8] add r0, r5, #0x0 ldrb r4, [r1, #0x0] bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r2, r0, #0x0 ldr r0, [r6, #0x0] add r1, r4, #0x0 bl FUN_0200AE38 mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_020407C8 FUN_020407C8: ; 0x020407C8 push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 ldr r1, [r5, #0x8] add r6, r0, #0x0 add r0, r1, #0x1 str r0, [r5, #0x8] add r0, r5, #0x0 ldrb r4, [r1, #0x0] bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r2, r0, #0x0 ldr r0, [r6, #0x0] add r1, r4, #0x0 bl FUN_0200AEE0 mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02040800 FUN_02040800: ; 0x02040800 push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 ldr r1, [r5, #0x8] add r6, r0, #0x0 add r0, r1, #0x1 str r0, [r5, #0x8] add r0, r5, #0x0 ldrb r4, [r1, #0x0] bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 bl FUN_0206EA30 add r2, r0, #0x0 ldr r0, [r6, #0x0] add r1, r4, #0x0 bl FUN_0200AD5C mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0204083C FUN_0204083C: ; 0x0204083C push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 ldr r1, [r5, #0x8] add r6, r0, #0x0 add r0, r1, #0x1 str r0, [r5, #0x8] add r0, r5, #0x0 ldrb r4, [r1, #0x0] bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r2, r0, #0x0 ldr r0, [r6, #0x0] add r1, r4, #0x0 bl FUN_0200AD5C mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02040874 FUN_02040874: ; 0x02040874 push {r4-r6, lr} sub sp, #0x8 add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 ldr r1, [r5, #0x8] add r6, r0, #0x0 add r0, r1, #0x1 str r0, [r5, #0x8] add r0, r5, #0x0 ldrb r4, [r1, #0x0] bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r5, r0, #0x0 bl FUN_02054C14 add r3, r0, #0x0 mov r0, #0x1 str r0, [sp, #0x0] str r0, [sp, #0x4] ldr r0, [r6, #0x0] add r1, r4, #0x0 add r2, r5, #0x0 bl FUN_0200AD38 mov r0, #0x0 add sp, #0x8 pop {r4-r6, pc} thumb_func_start FUN_020408BC FUN_020408BC: ; 0x020408BC push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 ldr r1, [r5, #0x8] add r7, r0, #0x0 add r0, r1, #0x1 str r0, [r5, #0x8] add r0, r5, #0x0 ldrb r6, [r1, #0x0] bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 str r0, [sp, #0x8] ldr r1, [r5, #0x8] add r2, r1, #0x1 str r2, [r5, #0x8] ldrb r4, [r1, #0x0] add r1, r2, #0x1 str r1, [r5, #0x8] ldrb r3, [r2, #0x0] cmp r4, #0x0 bne _02040904 bl FUN_02054C14 lsl r0, r0, #0x18 lsr r3, r0, #0x18 _02040904: str r4, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] ldr r0, [r7, #0x0] ldr r2, [sp, #0x8] add r1, r6, #0x0 bl FUN_0200AD38 mov r0, #0x0 add sp, #0xc pop {r4-r7, pc} .balign 4 thumb_func_start FUN_0204091C FUN_0204091C: ; 0x0204091C push {r3-r7, lr} add r5, r0, #0x0 add r0, #0x80 ldr r6, [r0, #0x0] mov r1, #0xf add r0, r6, #0x0 bl FUN_02039438 ldr r1, [r5, #0x8] add r7, r0, #0x0 add r0, r1, #0x1 str r0, [r5, #0x8] add r0, r5, #0x0 ldrb r4, [r1, #0x0] bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r5, r0, #0x0 ldr r0, [r6, #0xc] bl FUN_0206BB1C add r1, r5, #0x0 bl FUN_0206B9B0 add r2, r0, #0x0 ldr r0, [r7, #0x0] add r1, r4, #0x0 bl FUN_0200ACF8 mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02040964 FUN_02040964: ; 0x02040964 push {r3-r7, lr} add r5, r0, #0x0 add r0, #0x80 ldr r4, [r0, #0x0] ldr r0, [r4, #0xc] bl FUN_02022510 str r0, [sp, #0x0] add r0, r4, #0x0 mov r1, #0xf bl FUN_02039438 ldr r1, [r5, #0x8] add r6, r0, #0x0 add r0, r1, #0x1 str r0, [r5, #0x8] add r0, r5, #0x0 ldrb r4, [r1, #0x0] bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r5, r0, #0x0 mov r1, #0x1e blx _s32_div_f add r7, r0, #0x0 add r0, r5, #0x0 mov r1, #0x1e blx _s32_div_f add r2, r1, #0x0 ldr r0, [sp, #0x0] add r1, r7, #0x0 bl FUN_0206B5E4 add r2, r0, #0x0 ldr r0, [r6, #0x0] add r1, r4, #0x0 bl FUN_0200ACF8 mov r0, #0x0 pop {r3-r7, pc} thumb_func_start FUN_020409C0 FUN_020409C0: ; 0x020409C0 push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 ldr r1, [r5, #0x8] add r6, r0, #0x0 add r0, r1, #0x1 str r0, [r5, #0x8] add r0, r5, #0x0 ldrb r4, [r1, #0x0] bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r2, r0, #0x0 ldr r0, [r6, #0x0] add r1, r4, #0x0 bl FUN_0200B02C mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_020409F8 FUN_020409F8: ; 0x020409F8 push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 ldr r1, [r5, #0x8] add r6, r0, #0x0 add r0, r1, #0x1 str r0, [r5, #0x8] add r0, r5, #0x0 ldrb r4, [r1, #0x0] bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r2, r0, #0x0 ldr r0, [r6, #0x0] add r1, r4, #0x0 bl FUN_0200B064 mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02040A30 FUN_02040A30: ; 0x02040A30 push {r3-r7, lr} add r7, r0, #0x0 add r0, #0x80 ldr r5, [r0, #0x0] add r0, r5, #0x0 bl FUN_020377AC bl FUN_020238F4 add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0xf bl FUN_02039438 ldr r1, [r7, #0x8] add r6, r0, #0x0 add r0, r1, #0x1 str r0, [r7, #0x8] add r0, r4, #0x0 ldrb r5, [r1, #0x0] bl FUN_020239CC add r7, r0, #0x0 add r0, r4, #0x0 bl FUN_02023A28 add r1, r0, #0x0 add r0, r7, #0x0 mov r2, #0x2 bl FUN_020536D0 add r2, r0, #0x0 ldr r0, [r6, #0x0] add r1, r5, #0x0 bl FUN_0200B09C mov r0, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02040A7C FUN_02040A7C: ; 0x02040A7C push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 ldr r1, [r5, #0x8] add r7, r0, #0x0 add r0, r1, #0x1 str r0, [r5, #0x8] add r0, r5, #0x0 ldrb r4, [r1, #0x0] bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 ldr r1, [r5, #0x8] str r0, [sp, #0x8] add r0, r1, #0x1 str r0, [r5, #0x8] ldrb r5, [r1, #0x0] add r0, r6, #0x0 mov r1, #0x4 bl FUN_02040AE4 add r6, r0, #0x0 str r5, [sp, #0x0] mov r0, #0x2 str r0, [sp, #0x4] ldr r0, [r7, #0x0] ldr r3, [sp, #0x8] add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_0200ABB4 add r0, r6, #0x0 bl FUN_02021A20 mov r0, #0x0 add sp, #0xc pop {r4-r7, pc} .balign 4 thumb_func_start FUN_02040AE4 FUN_02040AE4: ; 0x02040AE4 push {r3-r5, lr} ldr r2, _02040B08 ; =0x0000016A add r4, r0, #0x0 add r3, r1, #0x0 mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r5, r0, #0x0 add r1, r4, #0x0 bl FUN_0200A914 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0200A8B8 add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 _02040B08: .word 0x0000016A thumb_func_start FUN_02040B0C FUN_02040B0C: ; 0x02040B0C push {r4-r6, lr} sub sp, #0x8 add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 ldr r1, [r4, #0x8] add r6, r0, #0x0 add r0, r1, #0x1 str r0, [r4, #0x8] add r4, #0x80 ldr r0, [r4, #0x0] ldrb r5, [r1, #0x0] ldr r0, [r0, #0xc] bl FUN_020462AC bl FUN_0205F388 mov r1, #0x4 bl FUN_02040AE4 add r4, r0, #0x0 mov r0, #0x1 str r0, [sp, #0x0] mov r0, #0x2 str r0, [sp, #0x4] ldr r0, [r6, #0x0] add r1, r5, #0x0 add r2, r4, #0x0 mov r3, #0x0 bl FUN_0200ABB4 add r0, r4, #0x0 bl FUN_02021A20 mov r0, #0x0 add sp, #0x8 pop {r4-r6, pc} thumb_func_start FUN_02040B5C FUN_02040B5C: ; 0x02040B5C push {r4-r6, lr} sub sp, #0x8 add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 ldr r1, [r4, #0x8] add r6, r0, #0x0 add r0, r1, #0x1 str r0, [r4, #0x8] add r4, #0x80 ldr r0, [r4, #0x0] ldrb r5, [r1, #0x0] ldr r0, [r0, #0xc] bl FUN_020462AC bl FUN_0205F398 mov r1, #0x4 bl FUN_02040AE4 add r4, r0, #0x0 mov r0, #0x1 str r0, [sp, #0x0] mov r0, #0x2 str r0, [sp, #0x4] ldr r0, [r6, #0x0] add r1, r5, #0x0 add r2, r4, #0x0 mov r3, #0x0 bl FUN_0200ABB4 add r0, r4, #0x0 bl FUN_02021A20 mov r0, #0x0 add sp, #0x8 pop {r4-r6, pc} thumb_func_start FUN_02040BAC FUN_02040BAC: ; 0x02040BAC push {r4-r6, lr} sub sp, #0x8 add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 ldr r1, [r4, #0x8] add r6, r0, #0x0 add r0, r1, #0x1 str r0, [r4, #0x8] add r4, #0x80 ldr r0, [r4, #0x0] ldrb r5, [r1, #0x0] ldr r0, [r0, #0xc] bl FUN_020462AC bl FUN_0205F3C0 mov r1, #0x4 bl FUN_02040AE4 add r4, r0, #0x0 mov r0, #0x1 str r0, [sp, #0x0] mov r0, #0x2 str r0, [sp, #0x4] ldr r0, [r6, #0x0] add r1, r5, #0x0 add r2, r4, #0x0 mov r3, #0x0 bl FUN_0200ABB4 add r0, r4, #0x0 bl FUN_02021A20 mov r0, #0x0 add sp, #0x8 pop {r4-r6, pc} thumb_func_start FUN_02040BFC FUN_02040BFC: ; 0x02040BFC push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 ldr r1, [r5, #0x8] add r6, r0, #0x0 add r0, r1, #0x1 str r0, [r5, #0x8] add r0, r5, #0x0 ldrb r4, [r1, #0x0] bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r2, r0, #0x0 ldr r0, [r6, #0x0] add r1, r4, #0x0 bl FUN_0200B350 mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02040C34 FUN_02040C34: ; 0x02040C34 push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 ldr r1, [r5, #0x8] add r6, r0, #0x0 add r0, r1, #0x1 str r0, [r5, #0x8] add r0, r5, #0x0 ldrb r4, [r1, #0x0] bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r2, r0, #0x0 ldr r0, [r6, #0x0] add r1, r4, #0x0 bl FUN_0200B1D4 mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02040C6C FUN_02040C6C: ; 0x02040C6C push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 ldr r1, [r5, #0x8] add r6, r0, #0x0 add r0, r1, #0x1 str r0, [r5, #0x8] add r0, r5, #0x0 ldrb r4, [r1, #0x0] bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r2, r0, #0x0 ldr r0, [r6, #0x0] add r1, r4, #0x0 bl FUN_0200B164 mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02040CA4 FUN_02040CA4: ; 0x02040CA4 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 mov r0, #0x16 mov r1, #0x4 bl FUN_020219F4 add r4, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 ldr r1, [r5, #0x8] add r7, r0, #0x0 add r0, r1, #0x1 str r0, [r5, #0x8] add r0, r5, #0x0 ldrb r6, [r1, #0x0] bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 mov r1, #0x4 add r2, r4, #0x0 bl FUN_02064E60 mov r0, #0x1 str r0, [sp, #0x0] mov r0, #0x2 str r0, [sp, #0x4] ldr r0, [r7, #0x0] add r1, r6, #0x0 add r2, r4, #0x0 mov r3, #0x0 bl FUN_0200ABB4 add r0, r4, #0x0 bl FUN_02021A20 mov r0, #0x0 add sp, #0x8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02040D04 FUN_02040D04: ; 0x02040D04 push {r3-r7, lr} sub sp, #0x8 add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 ldr r1, [r4, #0x8] add r7, r0, #0x0 add r0, r1, #0x1 str r0, [r4, #0x8] add r0, r4, #0x0 ldrb r6, [r1, #0x0] bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394F0 sub r5, #0x95 add r4, r0, #0x0 lsl r0, r5, #0x10 lsr r0, r0, #0x10 mov r1, #0x20 bl FUN_020852E8 add r5, r0, #0x0 cmp r4, #0x2 bhs _02040D5A mov r0, #0x1 b _02040D5C _02040D5A: mov r0, #0x0 _02040D5C: str r0, [sp, #0x0] mov r0, #0x2 str r0, [sp, #0x4] ldr r0, [r7, #0x0] add r1, r6, #0x0 add r2, r5, #0x0 mov r3, #0x0 bl FUN_0200ABB4 add r0, r5, #0x0 bl FUN_02021A20 mov r0, #0x0 add sp, #0x8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02040D7C FUN_02040D7C: ; 0x02040D7C push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 ldr r1, [r5, #0x8] add r6, r0, #0x0 add r0, r1, #0x1 str r0, [r5, #0x8] add r0, r5, #0x0 ldrb r4, [r1, #0x0] bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r2, r0, #0x0 ldr r0, [r6, #0x0] add r1, r4, #0x0 bl FUN_0200AE04 mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02040DB4 FUN_02040DB4: ; 0x02040DB4 push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 ldr r1, [r5, #0x8] add r6, r0, #0x0 add r0, r1, #0x1 str r0, [r5, #0x8] add r0, r5, #0x0 ldrb r4, [r1, #0x0] bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r2, r0, #0x0 ldr r0, [r6, #0x0] add r1, r4, #0x0 bl FUN_0200B660 mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02040DEC FUN_02040DEC: ; 0x02040DEC push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 ldr r1, [r5, #0x8] add r7, r0, #0x0 add r0, r1, #0x1 str r0, [r5, #0x8] mov r0, #0xb ldrb r6, [r1, #0x0] add r1, r0, #0x0 bl FUN_020219F4 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_02024EB4 bl FUN_02024F0C add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_02021E28 ldr r0, _02040E48 ; =0x020ECAC4 mov r3, #0x0 ldrb r0, [r0, #0x0] str r3, [sp, #0x0] add r1, r6, #0x0 str r0, [sp, #0x4] ldr r0, [r7, #0x0] add r2, r4, #0x0 bl FUN_0200ABB4 add r0, r4, #0x0 bl FUN_02021A20 mov r0, #0x0 add sp, #0x8 pop {r3-r7, pc} nop _02040E48: .word 0x020ECAC4 thumb_func_start FUN_02040E4C FUN_02040E4C: ; 0x02040E4C push {r3-r7, lr} add r4, r0, #0x0 add r0, #0x80 ldr r6, [r0, #0x0] mov r1, #0xf add r0, r6, #0x0 bl FUN_02039438 ldr r1, [r4, #0x8] add r7, r0, #0x0 add r0, r1, #0x1 str r0, [r4, #0x8] add r0, r4, #0x0 ldrb r5, [r1, #0x0] bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 str r0, [sp, #0x0] add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394F0 add r4, r0, #0x0 ldr r0, [r6, #0xc] bl FUN_0206BB1C ldr r1, [sp, #0x0] bl FUN_0206B9B0 add r4, #0x36 add r1, r4, #0x0 mov r2, #0x0 bl FUN_020671BC lsl r0, r0, #0x10 lsr r2, r0, #0x10 ldr r0, [r7, #0x0] add r1, r5, #0x0 bl FUN_0200AD5C mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02040EB4 FUN_02040EB4: ; 0x02040EB4 push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 ldr r1, [r5, #0x8] add r6, r0, #0x0 add r0, r1, #0x1 str r0, [r5, #0x8] add r0, r5, #0x0 ldrb r4, [r1, #0x0] bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 lsl r0, r0, #0x18 lsr r0, r0, #0x18 mov r1, #0x3 bl FUN_0207FC5C lsl r0, r0, #0x10 lsr r2, r0, #0x10 ldr r0, [r6, #0x0] add r1, r4, #0x0 bl FUN_0200AD94 mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02040EF8 FUN_02040EF8: ; 0x02040EF8 push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 ldr r1, [r5, #0x8] add r6, r0, #0x0 add r0, r1, #0x1 str r0, [r5, #0x8] add r0, r5, #0x0 ldrb r4, [r1, #0x0] bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r2, r0, #0x0 sub r2, r2, #0x1 lsl r2, r2, #0x10 ldr r0, [r6, #0x0] add r1, r4, #0x0 lsr r2, r2, #0x10 bl FUN_0200B534 mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02040F34 FUN_02040F34: ; 0x02040F34 push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 ldr r1, [r5, #0x8] add r6, r0, #0x0 add r0, r1, #0x1 str r0, [r5, #0x8] add r0, r5, #0x0 ldrb r4, [r1, #0x0] bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r2, r0, #0x0 ldr r0, [r6, #0x0] add r1, r4, #0x0 bl FUN_0200AE70 mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02040F6C FUN_02040F6C: ; 0x02040F6C push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 ldr r1, [r5, #0x8] add r6, r0, #0x0 add r0, r1, #0x1 str r0, [r5, #0x8] add r0, r5, #0x0 ldrb r4, [r1, #0x0] bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r2, r0, #0x0 ldr r0, [r6, #0x0] add r1, r4, #0x0 bl FUN_0200AEA8 mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02040FA4 FUN_02040FA4: ; 0x02040FA4 push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 ldr r1, [r5, #0x8] add r6, r0, #0x0 add r0, r1, #0x1 str r0, [r5, #0x8] add r0, r5, #0x0 ldrb r4, [r1, #0x0] bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r2, r0, #0x0 ldr r0, [r6, #0x0] add r1, r4, #0x0 bl FUN_0200B388 mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02040FDC FUN_02040FDC: ; 0x02040FDC push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 ldr r1, [r5, #0x8] add r6, r0, #0x0 add r0, r1, #0x1 str r0, [r5, #0x8] add r0, r5, #0x0 ldrb r4, [r1, #0x0] bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r2, r0, #0x0 ldr r0, [r6, #0x0] add r1, r4, #0x0 bl FUN_0200B20C mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02041014 FUN_02041014: ; 0x02041014 push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 ldr r1, [r5, #0x8] add r6, r0, #0x0 add r0, r1, #0x1 str r0, [r5, #0x8] add r0, r5, #0x0 ldrb r4, [r1, #0x0] bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r2, r0, #0x0 ldr r0, [r6, #0x0] add r1, r4, #0x0 bl FUN_0200B19C mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0204104C FUN_0204104C: ; 0x0204104C push {r3-r7, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 ldr r1, [r5, #0x8] add r6, r0, #0x0 add r0, r1, #0x1 str r0, [r5, #0x8] add r0, r5, #0x0 ldrb r4, [r1, #0x0] bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 ldr r0, [r5, #0x8] add r1, r4, #0x0 add r0, r0, #0x1 str r0, [r5, #0x8] ldr r0, [r6, #0x0] add r2, r7, #0x0 bl FUN_0200ACC0 mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02041094 FUN_02041094: ; 0x02041094 push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 ldr r1, [r5, #0x8] add r6, r0, #0x0 add r0, r1, #0x1 str r0, [r5, #0x8] add r5, #0x80 ldr r0, [r5, #0x0] ldrb r4, [r1, #0x0] ldr r0, [r0, #0xc] bl FUN_020462AC bl FUN_0205F3C0 add r2, r0, #0x0 ldr r0, [r6, #0x0] add r1, r4, #0x0 bl FUN_0200ACC0 mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_020410C8 FUN_020410C8: ; 0x020410C8 push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 ldr r1, [r5, #0x8] add r6, r0, #0x0 add r0, r1, #0x1 str r0, [r5, #0x8] add r0, r5, #0x0 ldrb r4, [r1, #0x0] bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r2, r0, #0x0 ldr r0, [r6, #0x0] add r1, r4, #0x0 bl FUN_0200B698 mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02041100 FUN_02041100: ; 0x02041100 push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 ldr r1, [r5, #0x8] add r6, r0, #0x0 add r0, r1, #0x1 str r0, [r5, #0x8] add r0, r5, #0x0 ldrb r4, [r1, #0x0] bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r2, r0, #0x0 ldr r0, [r6, #0x0] add r1, r4, #0x0 bl FUN_0200B09C mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02041138 FUN_02041138: ; 0x02041138 push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 ldr r1, [r5, #0x8] add r6, r0, #0x0 add r0, r1, #0x1 str r0, [r5, #0x8] add r0, r5, #0x0 ldrb r4, [r1, #0x0] bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r2, r0, #0x0 sub r2, r2, #0x1 lsl r2, r2, #0x10 ldr r0, [r6, #0x0] add r1, r4, #0x0 lsr r2, r2, #0x10 bl FUN_0200B568 mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02041174 FUN_02041174: ; 0x02041174 push {r4, lr} add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 ldr r2, [r4, #0x8] add r1, r2, #0x1 str r1, [r4, #0x8] ldrb r1, [r2, #0x0] ldr r0, [r0, #0x0] bl FUN_0200B7A8 mov r0, #0x0 pop {r4, pc} thumb_func_start FUN_02041194 FUN_02041194: ; 0x02041194 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_020462AC add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0205F5D8 strh r0, [r5, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020411C4 FUN_020411C4: ; 0x020411C4 push {r4-r7, lr} sub sp, #0x24 add r4, r0, #0x0 add r0, #0x80 ldr r7, [r0, #0x0] ldr r0, [r7, #0xc] bl FUN_02022510 str r0, [sp, #0x20] add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 str r0, [sp, #0xc] add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 str r0, [sp, #0x8] add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 str r0, [sp, #0x4] add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394F0 str r0, [sp, #0x0] ldr r0, [r7, #0xc] bl FUN_0206BB1C bl FUN_0206B9AC lsl r0, r0, #0x10 lsr r6, r0, #0x10 ldr r0, _0204133C ; =0x00000000 str r0, [sp, #0x1c] str r0, [sp, #0x18] ldr r5, [sp, #0x1c] beq _02041286 _0204123C: ldr r0, [r7, #0xc] bl FUN_0206BB1C add r1, r5, #0x0 bl FUN_0206B9B0 mov r1, #0x4c mov r2, #0x0 add r4, r0, #0x0 bl FUN_020671BC cmp r0, #0x0 bne _0204127C add r0, r4, #0x0 mov r1, #0x7 mov r2, #0x0 bl FUN_020671BC lsl r0, r0, #0x10 lsr r1, r0, #0x10 lsl r1, r1, #0x10 ldr r0, [sp, #0x0] lsr r1, r1, #0x10 bl FUN_02041354 cmp r0, #0x0 beq _0204127C ldr r1, [sp, #0x1c] cmp r1, r0 bge _0204127C str r0, [sp, #0x1c] str r5, [sp, #0x18] _0204127C: add r0, r5, #0x1 lsl r0, r0, #0x10 lsr r5, r0, #0x10 cmp r5, r6 blo _0204123C _02041286: mov r6, #0x0 str r6, [sp, #0x14] str r6, [sp, #0x10] add r7, r6, #0x0 _0204128E: mov r5, #0x0 _02041290: ldr r0, [sp, #0x20] ldr r1, [sp, #0x10] add r2, r5, #0x0 bl FUN_0206B5E4 mov r1, #0x5 mov r2, #0x0 add r4, r0, #0x0 bl FUN_020672BC cmp r0, #0x0 beq _020412E0 add r0, r4, #0x0 mov r1, #0x4c mov r2, #0x0 bl FUN_020672BC cmp r0, #0x0 bne _020412E0 add r0, r4, #0x0 mov r1, #0x7 mov r2, #0x0 bl FUN_020672BC lsl r0, r0, #0x10 lsr r1, r0, #0x10 lsl r1, r1, #0x10 ldr r0, [sp, #0x0] lsr r1, r1, #0x10 bl FUN_02041354 cmp r0, #0x0 beq _020412E0 cmp r6, r0 bge _020412E0 add r6, r0, #0x0 add r0, r5, r7 lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x14] _020412E0: add r5, r5, #0x1 cmp r5, #0x1e blo _02041290 ldr r0, [sp, #0x10] add r7, #0x1e add r0, r0, #0x1 str r0, [sp, #0x10] cmp r0, #0x12 blo _0204128E ldr r0, [sp, #0x1c] cmp r0, #0x0 bne _0204130C cmp r6, #0x0 bne _0204130C ldr r0, [sp, #0xc] mov r1, #0x0 strh r1, [r0, #0x0] ldr r0, [sp, #0x8] strh r1, [r0, #0x0] ldr r0, [sp, #0x4] strh r1, [r0, #0x0] b _02041336 _0204130C: ldr r0, [sp, #0x1c] cmp r0, r6 blo _02041326 ldr r1, [sp, #0x18] ldr r0, [sp, #0xc] strh r1, [r0, #0x0] ldr r1, [sp, #0x1c] ldr r0, [sp, #0x8] strh r1, [r0, #0x0] ldr r0, [sp, #0x4] mov r1, #0x0 strh r1, [r0, #0x0] b _02041336 _02041326: ldr r1, [sp, #0x14] ldr r0, [sp, #0xc] strh r1, [r0, #0x0] ldr r0, [sp, #0x8] mov r1, #0x1 strh r6, [r0, #0x0] ldr r0, [sp, #0x4] strh r1, [r0, #0x0] _02041336: mov r0, #0x0 add sp, #0x24 pop {r4-r7, pc} .balign 4 _0204133C: .word 0x00000000 thumb_func_start FUN_02041340 FUN_02041340: ; 0x02041340 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_020462AC bl FUN_0205F5FC mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_02041354 FUN_02041354: ; 0x02041354 push {r4-r7, lr} sub sp, #0xc mov r6, #0x0 add r5, r0, #0x0 add r4, r1, #0x0 add r7, r6, #0x0 _02041360: add r0, r5, #0x0 mov r1, #0xa blx _s32_div_f lsl r0, r1, #0x10 lsr r0, r0, #0x10 str r1, [sp, #0x0] str r0, [sp, #0x4] add r0, r4, #0x0 mov r1, #0xa blx _s32_div_f lsl r0, r1, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x8] ldr r0, [sp, #0x0] cmp r0, r1 bne _020413AC add r0, r5, #0x0 mov r1, #0xa blx _s32_div_f lsl r0, r0, #0x10 lsr r5, r0, #0x10 add r0, r4, #0x0 mov r1, #0xa blx _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 add r0, r6, #0x1 lsl r0, r0, #0x18 lsr r6, r0, #0x18 add r0, r7, #0x1 lsl r0, r0, #0x18 lsr r7, r0, #0x18 cmp r7, #0x5 blo _02041360 _020413AC: ldr r1, _020413BC ; =0x021C5A10 ldr r0, [sp, #0x8] strh r0, [r1, #0x2] ldr r0, [sp, #0x4] strh r0, [r1, #0x0] add r0, r6, #0x0 add sp, #0xc pop {r4-r7, pc} .balign 4 _020413BC: .word 0x021C5A10 thumb_func_start FUN_020413C0 FUN_020413C0: ; 0x020413C0 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02038C30 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02005410 strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_020413E8 FUN_020413E8: ; 0x020413E8 push {r3, lr} bl FUN_02038C30 bl FUN_0200521C mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_020413F8 FUN_020413F8: ; 0x020413F8 push {r3, lr} bl FUN_02038C30 bl FUN_02004124 mov r1, #0x0 bl FUN_02005350 mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_0204140C FUN_0204140C: ; 0x0204140C push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] ldr r1, [r0, #0x1c] ldr r1, [r1, #0x0] bl FUN_0204ABA8 bl FUN_0200521C mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_02041424 FUN_02041424: ; 0x02041424 push {r4, lr} add r4, r0, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_0204AB20 mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_0204143C FUN_0204143C: ; 0x0204143C push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_020053CC ldr r1, _02041460 ; =FUN_02041464 add r0, r5, #0x0 bl FUN_02038B5C mov r0, #0x1 pop {r3-r5, pc} .balign 4 _02041460: .word FUN_02041464 thumb_func_start FUN_02041464 FUN_02041464: ; 0x02041464 push {r3, lr} bl FUN_02005404 cmp r0, #0x0 bne _02041472 mov r0, #0x1 pop {r3, pc} _02041472: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_02041478 FUN_02041478: ; 0x02041478 push {r4, lr} add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 mov r0, #0x7f mov r2, #0x0 bl FUN_0200538C ldr r1, _02041498 ; =FUN_02041464 add r0, r4, #0x0 bl FUN_02038B5C mov r0, #0x1 pop {r4, pc} nop _02041498: .word FUN_02041464 thumb_func_start FUN_0204149C FUN_0204149C: ; 0x0204149C push {r3, lr} ldr r1, [r0, #0x8] add r3, r1, #0x1 str r3, [r0, #0x8] ldrb r2, [r1, #0x0] add r1, r3, #0x1 str r1, [r0, #0x8] ldrb r1, [r3, #0x0] add r0, r2, #0x0 bl FUN_020047C8 mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_020414B8 FUN_020414B8: ; 0x020414B8 push {r3, lr} bl FUN_02038C30 add r1, r0, #0x0 mov r0, #0x4 bl FUN_02005308 mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_020414CC FUN_020414CC: ; 0x020414CC push {r3, lr} ldr r2, [r0, #0x8] add r1, r2, #0x1 str r1, [r0, #0x8] ldrb r0, [r2, #0x0] bl FUN_020040F4 mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_020414E0 FUN_020414E0: ; 0x020414E0 push {r4, lr} add r4, r0, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394F0 bl FUN_020054C8 mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_020414FC FUN_020414FC: ; 0x020414FC push {r4, lr} add r4, r0, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394F0 mov r1, #0x0 bl FUN_020054F0 mov r0, #0x0 pop {r4, pc} thumb_func_start FUN_02041518 FUN_02041518: ; 0x02041518 push {r4, lr} add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 str r0, [r4, #0x64] ldr r1, _0204153C ; =FUN_02041540 add r0, r4, #0x0 bl FUN_02038B5C mov r0, #0x1 pop {r4, pc} nop _0204153C: .word FUN_02041540 thumb_func_start FUN_02041540 FUN_02041540: ; 0x02041540 push {r3, lr} ldr r0, [r0, #0x64] lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_02005508 cmp r0, #0x0 bne _02041554 mov r0, #0x1 pop {r3, pc} _02041554: mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_02041558 FUN_02041558: ; 0x02041558 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394F0 add r0, r5, #0x0 bl FUN_02005578 mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02041588 FUN_02041588: ; 0x02041588 push {r3, lr} ldr r1, _02041594 ; =FUN_02041598 bl FUN_02038B5C mov r0, #0x1 pop {r3, pc} .balign 4 _02041594: .word FUN_02041598 thumb_func_start FUN_02041598 FUN_02041598: ; 0x02041598 push {r3, lr} bl FUN_02005670 cmp r0, #0x0 bne _020415A6 mov r0, #0x1 pop {r3, pc} _020415A6: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_020415AC FUN_020415AC: ; 0x020415AC push {r3, lr} bl FUN_02038C30 bl FUN_02005C28 mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_020415BC FUN_020415BC: ; 0x020415BC push {r3, lr} ldr r1, _020415C8 ; =FUN_020415CC bl FUN_02038B5C mov r0, #0x1 pop {r3, pc} .balign 4 _020415C8: .word FUN_020415CC thumb_func_start FUN_020415CC FUN_020415CC: ; 0x020415CC push {r3, lr} bl FUN_02005CBC cmp r0, #0x0 bne _020415DA mov r0, #0x1 pop {r3, pc} _020415DA: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_020415E0 FUN_020415E0: ; 0x020415E0 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_02029EF8 bl FUN_02005D20 cmp r0, #0x1 bne _02041610 mov r0, #0x1 strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r5, pc} _02041610: mov r0, #0x0 strh r0, [r4, #0x0] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02041618 FUN_02041618: ; 0x02041618 push {r4, lr} add r4, r0, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 add r4, r0, #0x0 bl FUN_02005E28 cmp r0, #0x0 bne _0204163C mov r0, #0x1 strh r0, [r4, #0x0] mov r0, #0x0 pop {r4, pc} _0204163C: mov r0, #0x0 strh r0, [r4, #0x0] pop {r4, pc} .balign 4 thumb_func_start FUN_02041644 FUN_02041644: ; 0x02041644 push {r3, lr} bl FUN_02005E64 mov r0, #0x1 pop {r3, pc} .balign 4 thumb_func_start FUN_02041650 FUN_02041650: ; 0x02041650 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_02029EF8 bl FUN_02005E6C mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_02041664 FUN_02041664: ; 0x02041664 push {r3, lr} mov r1, #0x0 mov r0, #0x3f add r2, r1, #0x0 bl FUN_0200433C mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_02041674 FUN_02041674: ; 0x02041674 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394F0 add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_0200488C mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020416A8 FUN_020416A8: ; 0x020416A8 push {r3-r7, lr} sub sp, #0x18 add r5, r0, #0x0 add r1, r5, #0x0 add r1, #0x80 ldr r4, [r1, #0x0] bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r5, r0, #0x0 bne _02041708 add r0, r4, #0x0 mov r1, #0x18 bl FUN_02039438 str r0, [sp, #0x14] add r0, r4, #0x0 mov r1, #0x19 bl FUN_02039438 str r0, [sp, #0xc] add r0, r4, #0x0 mov r1, #0x1a bl FUN_02039438 add r0, r4, #0x0 mov r1, #0x1b bl FUN_02039438 add r0, r4, #0x0 mov r1, #0x1c bl FUN_02039438 str r0, [sp, #0x10] add r0, r4, #0x0 mov r1, #0x1d bl FUN_02039438 add r6, r0, #0x0 add r0, r4, #0x0 mov r1, #0x1e bl FUN_02039438 b _02041748 _02041708: add r0, r4, #0x0 mov r1, #0x1f bl FUN_02039438 str r0, [sp, #0x14] add r0, r4, #0x0 mov r1, #0x20 bl FUN_02039438 str r0, [sp, #0xc] add r0, r4, #0x0 mov r1, #0x21 bl FUN_02039438 add r0, r4, #0x0 mov r1, #0x22 bl FUN_02039438 add r0, r4, #0x0 mov r1, #0x23 bl FUN_02039438 str r0, [sp, #0x10] add r0, r4, #0x0 mov r1, #0x24 bl FUN_02039438 add r6, r0, #0x0 add r0, r4, #0x0 mov r1, #0x25 bl FUN_02039438 _02041748: add r7, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] ldr r0, [sp, #0x10] ldr r2, [sp, #0xc] ldr r0, [r0, #0x0] ldr r3, [sp, #0x14] str r0, [sp, #0x4] str r5, [sp, #0x8] ldr r0, [r6, #0x0] ldr r1, [r4, #0x38] ldr r2, [r2, #0x0] ldr r3, [r3, #0x0] bl FUN_0205CA4C str r0, [r7, #0x0] mov r0, #0x0 add sp, #0x18 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02041770 FUN_02041770: ; 0x02041770 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, r0, #0x0 mov r0, #0x0 strh r0, [r4, #0x0] cmp r6, #0x0 bne _020417AE add r5, #0x80 ldr r0, [r5, #0x0] mov r1, #0x1e bl FUN_02039438 b _020417B8 _020417AE: add r5, #0x80 ldr r0, [r5, #0x0] mov r1, #0x25 bl FUN_02039438 _020417B8: add r5, r0, #0x0 ldr r0, [r5, #0x0] cmp r0, #0x0 bne _020417C6 mov r0, #0x1 strh r0, [r4, #0x0] pop {r4-r6, pc} _020417C6: bl FUN_0205CA64 cmp r0, #0x1 bne _020417DC ldr r0, [r5, #0x0] bl FUN_0205CA78 mov r0, #0x0 str r0, [r5, #0x0] mov r0, #0x1 strh r0, [r4, #0x0] _020417DC: mov r0, #0x1 pop {r4-r6, pc} thumb_func_start FUN_020417E0 FUN_020417E0: ; 0x020417E0 push {r3-r5, lr} add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x1c bl FUN_02039438 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 ldrh r1, [r5, #0x0] strh r1, [r0, #0x0] mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02041808 FUN_02041808: ; 0x02041808 push {r3-r7, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x1b bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x22 bl FUN_02039438 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 cmp r7, #0x0 bne _02041852 ldrh r1, [r4, #0x0] b _02041854 _02041852: ldrh r1, [r6, #0x0] _02041854: strh r1, [r0, #0x0] mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0204185C FUN_0204185C: ; 0x0204185C push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x8 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r5, r0, #0x0 ldrh r0, [r4, #0x0] bl FUN_020395F4 strh r0, [r5, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0204188C FUN_0204188C: ; 0x0204188C push {r3-r7, lr} sub sp, #0x10 add r5, r0, #0x0 add r0, #0x80 ldr r4, [r0, #0x0] mov r1, #0x8 add r0, r4, #0x0 bl FUN_02039438 add r0, r4, #0x0 mov r1, #0x17 bl FUN_02039438 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 str r0, [sp, #0xc] add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 str r0, [sp, #0x8] add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r6, #0x0 ldr r0, [r0, #0xc] bl FUN_020462AC bl FUN_0205ED3C cmp r0, #0x1 bne _020418F2 ldr r0, [r4, #0xc] bl FUN_020462AC bl FUN_0205F368 add r6, r0, #0x0 _020418F2: mov r0, #0xb str r0, [sp, #0x0] str r7, [sp, #0x4] ldr r0, [r5, #0x74] ldr r1, [sp, #0xc] ldr r2, [sp, #0x8] add r3, r6, #0x0 bl FUN_020470E8 mov r0, #0x1 add sp, #0x10 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0204190C FUN_0204190C: ; 0x0204190C push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x17 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r2, r0, #0x0 mov r0, #0xb str r0, [sp, #0x0] str r4, [sp, #0x4] ldr r0, [r5, #0x74] add r1, r7, #0x0 add r3, r6, #0x0 bl FUN_020470E8 mov r0, #0x1 add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_02041970 FUN_02041970: ; 0x02041970 push {r3-r7, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x8 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r5, r0, #0x0 ldrh r0, [r4, #0x0] bl FUN_020395F4 bl FUN_0203962C lsl r0, r0, #0x10 lsr r0, r0, #0x10 bne _020419D2 mov r0, #0x0 mov r1, #0x2 add r2, r0, #0x0 b _020419EC _020419D2: ldrh r0, [r4, #0x0] bl FUN_02039618 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bne _020419E6 mov r0, #0x3 mov r1, #0x5 mov r2, #0x6 b _020419EC _020419E6: mov r0, #0x7 mov r1, #0x9 mov r2, #0xa _020419EC: strh r0, [r7, #0x0] strh r1, [r6, #0x0] strh r2, [r5, #0x0] mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020419F8 FUN_020419F8: ; 0x020419F8 push {r3-r7, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x8 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r5, r0, #0x0 ldrh r0, [r4, #0x0] bl FUN_020395F4 bl FUN_0203962C lsl r0, r0, #0x10 lsr r0, r0, #0x10 bne _02041A5A mov r1, #0x0 mov r0, #0x11 add r2, r1, #0x0 b _02041A74 _02041A5A: ldrh r0, [r4, #0x0] bl FUN_02039618 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bne _02041A6E mov r0, #0x12 mov r1, #0x0 mov r2, #0x6 b _02041A74 _02041A6E: mov r0, #0x13 mov r1, #0x0 mov r2, #0xa _02041A74: strh r0, [r7, #0x0] strh r1, [r6, #0x0] strh r2, [r5, #0x0] mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02041A80 FUN_02041A80: ; 0x02041A80 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x8 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r5, r0, #0x0 ldrh r0, [r4, #0x0] bl FUN_020395F4 bl FUN_0203962C strh r0, [r5, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02041AB4 FUN_02041AB4: ; 0x02041AB4 push {r4, lr} add r4, r0, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394F0 bl FUN_0204AD0C bl FUN_02004724 mov r0, #0x1 pop {r4, pc} .balign 4 thumb_func_start FUN_02041AD4 FUN_02041AD4: ; 0x02041AD4 push {r3, lr} ldr r0, [r0, #0x74] bl FUN_02048498 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_02041AE0 FUN_02041AE0: ; 0x02041AE0 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x17 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r5, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020480B8 strh r0, [r5, #0x0] mov r0, #0x1 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02041B10 FUN_02041B10: ; 0x02041B10 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x17 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r5, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020480C8 strh r0, [r5, #0x0] mov r0, #0x1 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02041B40 FUN_02041B40: ; 0x02041B40 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x17 bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r5, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020480D8 strh r0, [r5, #0x0] mov r0, #0x1 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02041B70 FUN_02041B70: ; 0x02041B70 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_0206BB1C bl FUN_0204A248 strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02041B9C FUN_02041B9C: ; 0x02041B9C push {r4, lr} sub sp, #0x8 add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x17 bl FUN_02039438 mov r1, #0xb str r1, [sp, #0x0] str r0, [sp, #0x4] mov r2, #0x0 ldr r0, [r4, #0x74] mov r1, #0x1 add r3, r2, #0x0 bl FUN_020470E8 mov r0, #0x1 add sp, #0x8 pop {r4, pc} thumb_func_start FUN_02041BC4 FUN_02041BC4: ; 0x02041BC4 push {r3-r5, lr} add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xa bl FUN_02039438 add r5, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_02058738 add r4, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_02058448 add r1, r0, #0x0 lsl r1, r1, #0x10 add r0, r4, #0x0 lsr r1, r1, #0x10 bl FUN_0203965C mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02041BF0 FUN_02041BF0: ; 0x02041BF0 push {r3-r7, lr} add r6, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xa bl FUN_02039438 add r5, r0, #0x0 add r0, r6, #0x0 bl FUN_02038C48 add r4, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_02058738 add r7, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_02058448 add r1, r0, #0x0 lsl r1, r1, #0x10 add r0, r7, #0x0 lsr r1, r1, #0x10 bl FUN_02039640 cmp r0, #0x1 bne _02041C34 ldr r1, [r6, #0x8] add r0, r6, #0x0 add r1, r1, r4 bl FUN_02038C10 mov r0, #0x1 pop {r3-r7, pc} _02041C34: mov r0, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02041C38 FUN_02041C38: ; 0x02041C38 push {r4-r7, lr} sub sp, #0xc add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 add r6, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_0202881C add r5, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r7, [r0, #0xc] add r0, r4, #0x0 bl FUN_02038C30 cmp r0, #0x6 bls _02041C6C b _02041E38 _02041C6C: add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02041C78: ; jump table (using 16-bit offset) .short _02041C86 - _02041C78 - 2; case 0 .short _02041CBC - _02041C78 - 2; case 1 .short _02041CF2 - _02041C78 - 2; case 2 .short _02041D28 - _02041C78 - 2; case 3 .short _02041D5E - _02041C78 - 2; case 4 .short _02041D94 - _02041C78 - 2; case 5 .short _02041DCE - _02041C78 - 2; case 6 _02041C86: add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 add r4, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02028828 strh r0, [r4, #0x0] add sp, #0xc mov r0, #0x0 pop {r4-r7, pc} _02041CBC: add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 add r4, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02028840 strh r0, [r4, #0x0] add sp, #0xc mov r0, #0x0 pop {r4-r7, pc} _02041CF2: add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394F0 add r3, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] ldr r0, [r6, #0x0] add r1, r7, #0x0 add r2, r5, #0x0 bl FUN_0200B708 b _02041E38 _02041D28: add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394F0 add r3, r0, #0x0 mov r0, #0x1 str r0, [sp, #0x0] ldr r0, [r6, #0x0] add r1, r7, #0x0 add r2, r5, #0x0 bl FUN_0200B708 b _02041E38 _02041D5E: mov r1, #0x0 add r0, r5, #0x0 add r2, r1, #0x0 bl FUN_020287A8 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 mov r2, #0x0 str r2, [sp, #0x0] str r5, [sp, #0x4] str r0, [sp, #0x8] ldr r0, [r4, #0x74] mov r1, #0x5 mov r3, #0x7 bl FUN_020385CC add sp, #0xc mov r0, #0x1 pop {r4-r7, pc} _02041D94: add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r5, #0x0 mov r1, #0x1 bl FUN_02028828 add r6, r0, #0x0 add r0, r5, #0x0 add r1, r7, #0x0 mov r2, #0x1 bl FUN_02028700 cmp r6, #0x0 beq _02041DC8 add r4, #0x80 ldr r0, [r4, #0x0] bl FUN_020612F8 _02041DC8: add sp, #0xc mov r0, #0x0 pop {r4-r7, pc} _02041DCE: mov r0, #0x40 mov r1, #0x20 bl FUN_020219F4 add r6, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_020238F4 add r1, r6, #0x0 add r7, r0, #0x0 bl FUN_02023990 add r0, r5, #0x0 mov r1, #0x0 mov r2, #0x1 add r3, r6, #0x0 bl FUN_020287C0 add r0, r7, #0x0 bl FUN_020239CC add r2, r0, #0x0 add r0, r5, #0x0 mov r1, #0x0 bl FUN_020287EC add r0, r5, #0x0 mov r1, #0x0 mov r2, #0x2 bl FUN_02028810 bl FUN_0201BA60 add r2, r0, #0x0 add r0, r5, #0x0 mov r1, #0x0 bl FUN_02028788 add r0, r6, #0x0 bl FUN_02021A20 add r0, r5, #0x0 mov r1, #0x0 mov r2, #0x1 bl FUN_02028700 add r4, #0x80 ldr r0, [r4, #0x0] bl FUN_020612EC _02041E38: mov r0, #0x0 add sp, #0xc pop {r4-r7, pc} .balign 4 thumb_func_start FUN_02041E40 FUN_02041E40: ; 0x02041E40 push {r3-r7, lr} add r4, r0, #0x0 bl FUN_02038C30 cmp r0, #0x6 bls _02041E4E b _02041FD2 _02041E4E: add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02041E5A: ; jump table (using 16-bit offset) .short _02041E68 - _02041E5A - 2; case 0 .short _02041E88 - _02041E5A - 2; case 1 .short _02041F24 - _02041E5A - 2; case 2 .short _02041ECA - _02041E5A - 2; case 3 .short _02041F2E - _02041E5A - 2; case 4 .short _02041F68 - _02041E5A - 2; case 5 .short _02041FB4 - _02041E5A - 2; case 6 _02041E68: add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, #0x80 add r5, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_02248CD0 strh r0, [r5, #0x0] b _02041FD2 _02041E88: add r0, r4, #0x0 bl FUN_02038C30 add r7, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r6, r0, #0x0 ldr r0, _02041FD8 ; =0x00000233 add r4, #0x80 strh r0, [r5, #0x0] ldr r0, [r4, #0x0] add r1, r7, #0x0 bl FUN_02249038 strh r0, [r6, #0x0] b _02041FD2 _02041ECA: add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r7, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 str r0, [sp, #0x0] add r4, #0x80 ldr r0, [r4, #0x0] ldr r1, [r5, #0x0] add r2, r6, #0x0 add r3, r7, #0x0 bl FUN_022490A0 b _02041FD2 _02041F24: add r4, #0x80 ldr r0, [r4, #0x0] bl FUN_02248CC0 b _02041FD2 _02041F2E: add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r6, r0, #0x0 mov r0, #0x8d lsl r0, r0, #0x2 add r4, #0x80 strh r0, [r5, #0x0] ldr r0, [r4, #0x0] bl FUN_022491FC strh r0, [r6, #0x0] b _02041FD2 _02041F68: add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, #0x80 add r5, r0, #0x0 ldr r0, [r4, #0x0] add r1, r6, #0x0 add r2, r7, #0x0 bl FUN_02248F70 strh r0, [r5, #0x0] b _02041FD2 _02041FB4: add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, #0x80 add r5, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_02248FE0 strh r0, [r5, #0x0] _02041FD2: mov r0, #0x0 pop {r3-r7, pc} nop _02041FD8: .word 0x00000233 thumb_func_start FUN_02041FDC FUN_02041FDC: ; 0x02041FDC push {r4, lr} add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_02061374 mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02042000 FUN_02042000: ; 0x02042000 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_0206BB1C add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_0206B9B0 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_02061460 mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02042038 FUN_02042038: ; 0x02042038 push {r3-r7, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 cmp r0, #0x0 beq _02042058 cmp r0, #0x1 beq _020420A8 b _02042106 _02042058: add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 str r0, [sp, #0x0] add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r7, r0, #0x0 ldr r0, _0204210C ; =0x00000232 add r5, #0x80 strh r0, [r6, #0x0] ldr r0, [sp, #0x0] ldr r1, [r5, #0x0] ldr r2, [r4, #0x0] bl FUN_020421F0 strh r0, [r7, #0x0] b _02042106 _020420A8: add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_02029FC8 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r5, #0x80 add r3, r0, #0x0 ldr r0, [r5, #0x0] add r1, r6, #0x0 add r2, r7, #0x0 bl FUN_020421D8 add r0, r4, #0x0 mov r1, #0x3 bl FUN_0202A170 _02042106: mov r0, #0x0 pop {r3-r7, pc} nop _0204210C: .word 0x00000232 thumb_func_start FUN_02042110 FUN_02042110: ; 0x02042110 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] add r1, r6, #0x0 bl FUN_02042214 strh r0, [r4, #0x0] mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0204214C FUN_0204214C: ; 0x0204214C push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_02022504 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 cmp r0, #0x0 beq _02042170 cmp r0, #0x1 beq _020421A2 cmp r0, #0x2 beq _020421BC b _020421D4 _02042170: add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_0206BB1C add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r1, r0, #0x0 add r0, r6, #0x0 bl FUN_0206B9B0 add r1, r0, #0x0 add r0, r4, #0x0 mov r2, #0x4 bl FUN_02060F3C b _020421D4 _020421A2: add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_02060F9C b _020421D4 _020421BC: add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_02060F88 _020421D4: mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_020421D8 FUN_020421D8: ; 0x020421D8 push {r3, lr} sub r1, r1, #0x1 lsl r3, r1, #0x4 ldr r1, _020421EC ; =0x020F4264 ldr r3, [r1, r3] cmp r3, #0x0 beq _020421EA add r1, r2, #0x0 blx r3 _020421EA: pop {r3, pc} .balign 4 _020421EC: .word 0x020F4264 thumb_func_start FUN_020421F0 FUN_020421F0: ; 0x020421F0 push {r4, lr} sub r0, r0, #0x1 lsl r4, r0, #0x4 ldr r0, _0204220C ; =0x020F4268 ldr r3, [r0, r4] cmp r3, #0x0 beq _02042204 add r0, r1, #0x0 add r1, r2, #0x0 blx r3 _02042204: ldr r0, _02042210 ; =0x020F4270 ldr r0, [r0, r4] pop {r4, pc} nop _0204220C: .word 0x020F4268 _02042210: .word 0x020F4270 thumb_func_start FUN_02042214 FUN_02042214: ; 0x02042214 push {r3-r5, lr} add r4, r0, #0x0 ldr r0, [r4, #0xc] add r5, r1, #0x0 bl FUN_02022504 mov r1, #0x1 add r2, r5, #0x0 bl FUN_0202B710 cmp r0, #0x0 bne _02042230 mov r0, #0x0 pop {r3-r5, pc} _02042230: sub r0, r5, #0x1 lsl r1, r0, #0x4 ldr r0, _02042248 ; =0x020F426C ldr r1, [r0, r1] cmp r1, #0x0 bne _02042240 mov r0, #0x1 pop {r3-r5, pc} _02042240: add r0, r4, #0x0 blx r1 pop {r3-r5, pc} nop _02042248: .word 0x020F426C thumb_func_start FUN_0204224C FUN_0204224C: ; 0x0204224C push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 add r6, r1, #0x0 add r7, r2, #0x0 mov r0, #0x40 mov r1, #0x4 str r3, [sp, #0x8] bl FUN_020219F4 add r1, r7, #0x0 add r4, r0, #0x0 bl FUN_02021E28 ldr r0, [sp, #0x24] ldr r3, [sp, #0x8] str r0, [sp, #0x0] ldr r0, [sp, #0x20] add r1, r6, #0x0 str r0, [sp, #0x4] add r0, r5, #0x0 add r2, r4, #0x0 bl FUN_0200ABB4 add r0, r4, #0x0 bl FUN_02021A20 add sp, #0xc pop {r4-r7, pc} .balign 4 thumb_func_start FUN_02042288 FUN_02042288: ; 0x02042288 push {r4, lr} ldr r0, [r0, #0xc] add r4, r1, #0x0 bl FUN_0206BB1C bl FUN_0204A20C bl FUN_020690E4 add r2, r0, #0x0 add r0, r4, #0x0 mov r1, #0x0 bl FUN_0200AC60 pop {r4, pc} .balign 4 thumb_func_start FUN_020422A8 FUN_020422A8: ; 0x020422A8 push {r4, lr} ldr r0, [r0, #0x4] add r4, r1, #0x0 ldr r0, [r0, #0x14] bl FUN_02252538 add r2, r0, #0x0 add r0, r4, #0x0 mov r1, #0x0 bl FUN_0200B02C pop {r4, pc} thumb_func_start FUN_020422C0 FUN_020422C0: ; 0x020422C0 push {r4, lr} sub sp, #0x20 ldr r0, [r0, #0xc] add r4, r1, #0x0 bl FUN_02022504 bl FUN_0202B844 ldrh r0, [r0, #0x2] mov r1, #0x4 add r2, sp, #0x8 bl FUN_0200A99C mov r0, #0x2 str r0, [sp, #0x0] mov r0, #0x1 mov r1, #0x0 str r0, [sp, #0x4] add r0, r4, #0x0 add r2, sp, #0x8 add r3, r1, #0x0 bl FUN_0204224C add sp, #0x20 pop {r4, pc} .balign 4 thumb_func_start FUN_020422F4 FUN_020422F4: ; 0x020422F4 push {r3, lr} ldr r0, [r0, #0xc] bl FUN_02022504 bl FUN_0202B85C ldrb r0, [r0, #0x0] pop {r3, pc} thumb_func_start FUN_02042304 FUN_02042304: ; 0x02042304 push {r3, lr} ldr r0, [r0, #0xc] bl FUN_0204C1A8 bl FUN_0204BEC8 pop {r3, pc} .balign 4 thumb_func_start FUN_02042314 FUN_02042314: ; 0x02042314 push {r3, lr} ldr r0, [r0, #0xc] bl FUN_02022504 bl FUN_0202B838 ldrb r0, [r0, #0x0] pop {r3, pc} thumb_func_start FUN_02042324 FUN_02042324: ; 0x02042324 push {r3, lr} ldr r0, [r0, #0xc] bl FUN_02027E24 mov r1, #0x0 bl FUN_02027098 pop {r3, pc} thumb_func_start FUN_02042334 FUN_02042334: ; 0x02042334 push {r3, lr} ldr r0, [r0, #0xc] bl FUN_02022504 bl FUN_0202B850 ldrb r0, [r0, #0x0] pop {r3, pc} thumb_func_start FUN_02042344 FUN_02042344: ; 0x02042344 push {r3, lr} ldr r0, [r0, #0xc] bl FUN_02022504 bl FUN_0202B844 ldrb r0, [r0, #0x0] pop {r3, pc} thumb_func_start FUN_02042354 FUN_02042354: ; 0x02042354 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] add r0, #0xa8 bl FUN_022434BC mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_02042364 FUN_02042364: ; 0x02042364 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02038C30 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r6, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020377AC add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_022434D0 add r5, #0x80 ldr r1, [r5, #0x0] add r1, #0xa8 str r0, [r1, #0x0] mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02042394 FUN_02042394: ; 0x02042394 push {r4, lr} add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] add r0, #0xa8 ldr r0, [r0, #0x0] bl FUN_02243694 add r4, #0x80 ldr r1, [r4, #0x0] mov r0, #0x0 add r1, #0xa8 str r0, [r1, #0x0] pop {r4, pc} thumb_func_start FUN_020423B0 FUN_020423B0: ; 0x020423B0 push {r3-r7, lr} sub sp, #0x8 add r7, r0, #0x0 bl FUN_02038C30 str r0, [sp, #0x0] add r0, r7, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r7, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r7, #0x0 bl FUN_02038C30 str r0, [sp, #0x4] add r0, r7, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r1, [sp, #0x4] bl FUN_020394B8 add r4, r0, #0x0 add r0, r7, #0x0 add r0, #0x80 ldr r1, [r0, #0x0] add r0, r1, #0x0 add r0, #0xa8 ldr r5, [r0, #0x0] ldr r0, [sp, #0x0] cmp r0, #0x64 bls _020423FA b _020426F6 _020423FA: add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02042406: ; jump table (using 16-bit offset) .short _020424D0 - _02042406 - 2; case 0 .short _020424DA - _02042406 - 2; case 1 .short _020424F6 - _02042406 - 2; case 2 .short _020424FC - _02042406 - 2; case 3 .short _02042508 - _02042406 - 2; case 4 .short _02042516 - _02042406 - 2; case 5 .short _0204251E - _02042406 - 2; case 6 .short _020426F6 - _02042406 - 2; case 7 .short _02042526 - _02042406 - 2; case 8 .short _02042532 - _02042406 - 2; case 9 .short _02042540 - _02042406 - 2; case 10 .short _0204254E - _02042406 - 2; case 11 .short _0204255A - _02042406 - 2; case 12 .short _020426F6 - _02042406 - 2; case 13 .short _02042564 - _02042406 - 2; case 14 .short _0204256E - _02042406 - 2; case 15 .short _02042578 - _02042406 - 2; case 16 .short _020426F6 - _02042406 - 2; case 17 .short _020426F6 - _02042406 - 2; case 18 .short _020426F6 - _02042406 - 2; case 19 .short _020426F6 - _02042406 - 2; case 20 .short _020426F6 - _02042406 - 2; case 21 .short _020426F6 - _02042406 - 2; case 22 .short _020426F6 - _02042406 - 2; case 23 .short _020426F6 - _02042406 - 2; case 24 .short _020426F6 - _02042406 - 2; case 25 .short _020426F6 - _02042406 - 2; case 26 .short _020426F6 - _02042406 - 2; case 27 .short _020426F6 - _02042406 - 2; case 28 .short _020426F6 - _02042406 - 2; case 29 .short _0204258A - _02042406 - 2; case 30 .short _020425A2 - _02042406 - 2; case 31 .short _020425BC - _02042406 - 2; case 32 .short _020425C8 - _02042406 - 2; case 33 .short _020425D2 - _02042406 - 2; case 34 .short _020425DC - _02042406 - 2; case 35 .short _020425E6 - _02042406 - 2; case 36 .short _020425F0 - _02042406 - 2; case 37 .short _020425F8 - _02042406 - 2; case 38 .short _02042600 - _02042406 - 2; case 39 .short _02042608 - _02042406 - 2; case 40 .short _0204261A - _02042406 - 2; case 41 .short _02042626 - _02042406 - 2; case 42 .short _02042642 - _02042406 - 2; case 43 .short _0204264C - _02042406 - 2; case 44 .short _02042656 - _02042406 - 2; case 45 .short _02042660 - _02042406 - 2; case 46 .short _0204266A - _02042406 - 2; case 47 .short _02042674 - _02042406 - 2; case 48 .short _02042680 - _02042406 - 2; case 49 .short _0204268C - _02042406 - 2; case 50 .short _020426A0 - _02042406 - 2; case 51 .short _020426AA - _02042406 - 2; case 52 .short _020426B4 - _02042406 - 2; case 53 .short _020426BE - _02042406 - 2; case 54 .short _020426CC - _02042406 - 2; case 55 .short _02042612 - _02042406 - 2; case 56 .short _020426DA - _02042406 - 2; case 57 .short _020426F6 - _02042406 - 2; case 58 .short _020426F6 - _02042406 - 2; case 59 .short _020426F6 - _02042406 - 2; case 60 .short _020426F6 - _02042406 - 2; case 61 .short _020426F6 - _02042406 - 2; case 62 .short _020426F6 - _02042406 - 2; case 63 .short _020426F6 - _02042406 - 2; case 64 .short _020426F6 - _02042406 - 2; case 65 .short _020426F6 - _02042406 - 2; case 66 .short _020426F6 - _02042406 - 2; case 67 .short _020426F6 - _02042406 - 2; case 68 .short _020426F6 - _02042406 - 2; case 69 .short _020426F6 - _02042406 - 2; case 70 .short _020426F6 - _02042406 - 2; case 71 .short _020426F6 - _02042406 - 2; case 72 .short _020426F6 - _02042406 - 2; case 73 .short _020426F6 - _02042406 - 2; case 74 .short _020426F6 - _02042406 - 2; case 75 .short _020426F6 - _02042406 - 2; case 76 .short _020426F6 - _02042406 - 2; case 77 .short _020426F6 - _02042406 - 2; case 78 .short _020426F6 - _02042406 - 2; case 79 .short _020426F6 - _02042406 - 2; case 80 .short _020426F6 - _02042406 - 2; case 81 .short _020426F6 - _02042406 - 2; case 82 .short _020426F6 - _02042406 - 2; case 83 .short _020426F6 - _02042406 - 2; case 84 .short _020426F6 - _02042406 - 2; case 85 .short _020426F6 - _02042406 - 2; case 86 .short _020426F6 - _02042406 - 2; case 87 .short _020426F6 - _02042406 - 2; case 88 .short _020426F6 - _02042406 - 2; case 89 .short _020426F6 - _02042406 - 2; case 90 .short _020426F6 - _02042406 - 2; case 91 .short _020426F6 - _02042406 - 2; case 92 .short _020426F6 - _02042406 - 2; case 93 .short _020426F6 - _02042406 - 2; case 94 .short _020426F6 - _02042406 - 2; case 95 .short _020426F6 - _02042406 - 2; case 96 .short _020426F6 - _02042406 - 2; case 97 .short _020426F6 - _02042406 - 2; case 98 .short _020426F6 - _02042406 - 2; case 99 .short _020426E6 - _02042406 - 2; case 100 _020424D0: add r0, r6, #0x0 bl FUN_0224312C strh r0, [r4, #0x0] b _020426FA _020424DA: cmp r6, #0x0 bne _020424EA ldrb r0, [r5, #0xe] ldr r1, [r1, #0xc] bl FUN_022432E4 strh r0, [r4, #0x0] b _020426FA _020424EA: ldr r1, [r1, #0xc] add r0, r6, #0x0 bl FUN_022432E4 strh r0, [r4, #0x0] b _020426FA _020424F6: bl FUN_0224339C b _020426FA _020424FC: ldr r0, [r1, #0xc] bl FUN_0202A8CC bl FUN_022433A8 b _020426FA _02042508: ldr r0, [r1, #0xc] bl FUN_0202A8CC bl FUN_022433B0 strh r0, [r4, #0x0] b _020426FA _02042516: add r0, r1, #0x0 bl FUN_022433B8 b _020426FA _0204251E: add r0, r1, #0x0 bl FUN_022433F8 b _020426FA _02042526: ldr r0, [r1, #0xc] add r1, r6, #0x0 bl FUN_02243408 strh r0, [r4, #0x0] b _020426FA _02042532: ldr r1, [r1, #0xc] mov r0, #0x0 mov r2, #0x2 bl FUN_02243E74 strh r0, [r4, #0x0] b _020426FA _02042540: mov r0, #0x0 ldr r1, [r1, #0xc] add r2, r0, #0x0 bl FUN_02243E74 strh r0, [r4, #0x0] b _020426FA _0204254E: ldr r0, [r1, #0xc] lsl r1, r6, #0x18 lsr r1, r1, #0x18 bl FUN_02243428 b _020426FA _0204255A: ldr r0, [r1, #0xc] bl FUN_02243448 strh r0, [r4, #0x0] b _020426FA _02042564: ldr r0, [r1, #0xc] bl FUN_0224345C strh r0, [r4, #0x0] b _020426FA _0204256E: ldr r0, [r1, #0xc] bl FUN_022434AC strh r0, [r4, #0x0] b _020426FA _02042578: ldrh r3, [r4, #0x0] ldr r0, [r7, #0x74] ldr r2, [sp, #0x4] add r1, r6, #0x0 bl FUN_0205FD38 add sp, #0x8 mov r0, #0x1 pop {r3-r7, pc} _0204258A: add r0, r1, #0x0 mov r1, #0x13 bl FUN_02039438 add r2, r0, #0x0 ldr r1, [r7, #0x74] add r0, r5, #0x0 bl FUN_022436C8 add sp, #0x8 mov r0, #0x1 pop {r3-r7, pc} _020425A2: add r0, r1, #0x0 mov r1, #0x13 bl FUN_02039438 add r7, #0x80 ldr r2, [r7, #0x0] add r1, r0, #0x0 ldr r2, [r2, #0xc] add r0, r5, #0x0 bl FUN_022436E8 strh r0, [r4, #0x0] b _020426FA _020425BC: ldr r1, [r1, #0xc] add r0, r5, #0x0 bl FUN_02243780 strh r0, [r4, #0x0] b _020426FA _020425C8: add r0, r5, #0x0 bl FUN_022438DC strh r0, [r4, #0x0] b _020426FA _020425D2: add r0, r5, #0x0 bl FUN_022438E0 strh r0, [r4, #0x0] b _020426FA _020425DC: add r0, r5, #0x0 bl FUN_022438FC strh r0, [r4, #0x0] b _020426FA _020425E6: add r0, r5, #0x0 bl FUN_02243920 strh r0, [r4, #0x0] b _020426FA _020425F0: add r0, r5, #0x0 bl FUN_022439F8 b _020426FA _020425F8: add r0, r5, #0x0 bl FUN_02243AD8 b _020426FA _02042600: add r0, r5, #0x0 bl FUN_02243BA8 b _020426FA _02042608: ldr r1, [r1, #0xc] add r0, r5, #0x0 bl FUN_02243C5C b _020426FA _02042612: add r0, r5, #0x0 bl FUN_02243D3C b _020426FA _0204261A: add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02243DA0 strh r0, [r4, #0x0] b _020426FA _02042626: add r0, r1, #0x0 mov r1, #0x17 bl FUN_02039438 add r7, #0x80 add r2, r0, #0x0 ldr r0, [r7, #0x0] add r1, r5, #0x0 ldr r0, [r0, #0x10] bl FUN_02243DB8 add sp, #0x8 mov r0, #0x1 pop {r3-r7, pc} _02042642: add r0, r5, #0x0 bl FUN_02243DC0 strh r0, [r4, #0x0] b _020426FA _0204264C: add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02243DC4 b _020426FA _02042656: add r0, r5, #0x0 bl FUN_02243DD8 strh r0, [r4, #0x0] b _020426FA _02042660: add r0, r5, #0x0 bl FUN_02243DE0 strh r0, [r4, #0x0] b _020426FA _0204266A: ldr r1, [r1, #0xc] add r0, r5, #0x0 bl FUN_02243E34 b _020426FA _02042674: ldr r1, [r1, #0xc] add r0, r5, #0x0 bl FUN_02243F18 strh r0, [r4, #0x0] b _020426FA _02042680: ldr r1, [r1, #0xc] add r0, r5, #0x0 bl FUN_02243F50 strh r0, [r4, #0x0] b _020426FA _0204268C: ldrb r1, [r5, #0x10] mov r0, #0xe0 bic r1, r0 lsl r0, r6, #0x18 lsr r0, r0, #0x18 lsl r0, r0, #0x1d lsr r0, r0, #0x18 orr r0, r1 strb r0, [r5, #0x10] b _020426FA _020426A0: ldrb r0, [r5, #0x10] lsl r0, r0, #0x18 lsr r0, r0, #0x1d strh r0, [r4, #0x0] b _020426FA _020426AA: ldr r1, [r1, #0xc] add r0, r5, #0x0 bl FUN_02243838 b _020426FA _020426B4: add r0, r5, r6 add r0, #0x2a ldrb r0, [r0, #0x0] strh r0, [r4, #0x0] b _020426FA _020426BE: ldr r1, [r1, #0xc] add r0, r5, #0x0 mov r2, #0x1 bl FUN_02243E74 strh r0, [r4, #0x0] b _020426FA _020426CC: lsl r1, r6, #0x18 add r0, r5, #0x0 lsr r1, r1, #0x18 bl FUN_0204290C strh r0, [r4, #0x0] b _020426FA _020426DA: ldr r1, [r1, #0xc] add r0, r5, #0x0 bl FUN_02243F9C strh r0, [r4, #0x0] b _020426FA _020426E6: cmp r5, #0x0 bne _020426F0 mov r0, #0x1 strh r0, [r4, #0x0] b _020426FA _020426F0: mov r0, #0x0 strh r0, [r4, #0x0] b _020426FA _020426F6: mov r0, #0x0 strh r0, [r4, #0x0] _020426FA: mov r0, #0x0 add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_02042700 FUN_02042700: ; 0x02042700 push {r3-r7, lr} add r5, r0, #0x0 add r1, r5, #0x0 add r1, #0x80 ldr r1, [r1, #0x0] add r1, #0xa8 ldr r4, [r1, #0x0] bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 str r0, [sp, #0x0] add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 lsl r2, r6, #0x4 add r2, r6, r2 mov r1, #0x38 lsl r2, r2, #0x4 mul r1, r7 add r2, r4, r2 add r3, r2, r1 mov r2, #0xb2 lsl r2, r2, #0x2 ldrh r1, [r3, r2] lsl r1, r1, #0x15 lsr r4, r1, #0x15 ldr r1, [sp, #0x0] strh r4, [r1, #0x0] add r1, r2, #0x4 ldrh r1, [r3, r1] strh r1, [r0, #0x0] mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02042780 FUN_02042780: ; 0x02042780 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_0205FE10 strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020427A8 FUN_020427A8: ; 0x020427A8 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_0205FF5C strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020427D0 FUN_020427D0: ; 0x020427D0 push {r3-r7, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x0 add r0, #0xa8 ldr r6, [r0, #0x0] ldr r0, _0204285C ; =0x00000884 mov r2, #0x46 add r0, r6, r0 blx MI_CpuFill8 cmp r4, #0x0 beq _0204281E cmp r4, #0x1 beq _02042830 cmp r4, #0x2 beq _0204283E b _0204284C _0204281E: add r5, #0x80 ldr r1, [r5, #0x0] add r0, r1, #0x0 add r0, #0xa8 ldr r0, [r0, #0x0] ldr r1, [r1, #0xc] bl FUN_022446FC b _0204284C _02042830: add r5, #0x80 ldr r0, [r5, #0x0] add r0, #0xa8 ldr r0, [r0, #0x0] bl FUN_02244758 b _0204284C _0204283E: add r5, #0x80 ldr r0, [r5, #0x0] add r1, r7, #0x0 add r0, #0xa8 ldr r0, [r0, #0x0] bl FUN_02244770 _0204284C: bl FUN_02031190 ldr r1, _02042860 ; =0x0000083E add r1, r6, r1 bl FUN_020316AC mov r0, #0x0 pop {r3-r7, pc} .balign 4 _0204285C: .word 0x00000884 _02042860: .word 0x0000083E thumb_func_start FUN_02042864 FUN_02042864: ; 0x02042864 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r2, r0, #0x0 ldr r0, [r5, #0x0] add r1, r4, #0x0 ldr r0, [r0, #0x10] bl FUN_0205FDDC mov r0, #0x1 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02042894 FUN_02042894: ; 0x02042894 push {r3-r6, lr} sub sp, #0x4 add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, #0x80 add r6, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_0202A8E4 add r1, sp, #0x0 bl FUN_0202A864 add r0, sp, #0x0 ldrb r1, [r0, #0x0] strh r1, [r4, #0x0] ldrb r0, [r0, #0x1] strh r0, [r6, #0x0] mov r0, #0x0 add sp, #0x4 pop {r3-r6, pc} thumb_func_start FUN_020428E0 FUN_020428E0: ; 0x020428E0 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_0202A8E4 bl FUN_0202A74C strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0204290C FUN_0204290C: ; 0x0204290C cmp r1, #0x2 bne _02042918 ldrb r0, [r0, #0x10] lsl r0, r0, #0x18 lsr r0, r0, #0x1d bx lr _02042918: cmp r1, #0x1 bne _0204293E ldrb r1, [r0, #0xf] cmp r1, #0x2 bne _02042930 ldrb r0, [r0, #0x10] lsl r0, r0, #0x18 lsr r0, r0, #0x1d lsl r1, r0, #0x1 ldr r0, _0204294C ; =0x020F4334 ldrh r0, [r0, r1] bx lr _02042930: ldrb r0, [r0, #0x12] cmp r0, #0x0 beq _0204293A mov r0, #0x61 bx lr _0204293A: mov r0, #0x0 bx lr _0204293E: ldrb r0, [r0, #0x11] cmp r0, #0x0 beq _02042948 mov r0, #0x61 bx lr _02042948: mov r0, #0x0 bx lr .balign 4 _0204294C: .word 0x020F4334 thumb_func_start FUN_02042950 FUN_02042950: ; 0x02042950 push {r3-r7, lr} add r5, r0, #0x0 add r0, #0x80 ldr r1, [r5, #0x8] ldr r0, [r0, #0x0] add r2, r1, #0x1 str r2, [r5, #0x8] ldrb r6, [r1, #0x0] add r1, r2, #0x1 str r1, [r5, #0x8] ldrb r4, [r2, #0x0] mov r1, #0x26 bl FUN_02039438 add r5, #0x80 add r7, r0, #0x0 ldr r0, [r5, #0x0] add r1, r6, #0x0 add r2, r4, #0x0 bl FUN_021E2A70 str r0, [r7, #0x0] mov r0, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02042980 FUN_02042980: ; 0x02042980 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x26 bl FUN_02039438 ldr r0, [r0, #0x0] bl FUN_021E29B4 mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_02042998 FUN_02042998: ; 0x02042998 push {r4, lr} add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x26 bl FUN_02039438 add r1, r0, #0x0 add r4, #0x80 ldr r0, [r4, #0x0] ldr r1, [r1, #0x0] bl FUN_021E2AD4 mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_020429B8 FUN_020429B8: ; 0x020429B8 push {r3-r5, lr} add r5, r0, #0x0 add r1, r5, #0x0 add r1, #0x80 ldr r1, [r1, #0x0] ldr r4, [r1, #0xc] bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0202A8D8 mov r1, #0x0 add r2, r1, #0x0 bl FUN_0202A3B4 strh r0, [r5, #0x0] mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_020429E8 FUN_020429E8: ; 0x020429E8 push {r3-r5, lr} add r5, r0, #0x0 add r1, r5, #0x0 add r1, #0x80 ldr r1, [r1, #0x0] ldr r4, [r1, #0xc] bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0202A8D8 add r1, r5, #0x0 mov r2, #0x5 bl FUN_0202A3B4 mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02042A18 FUN_02042A18: ; 0x02042A18 push {r3-r5, lr} add r5, r0, #0x0 add r1, r5, #0x0 add r1, #0x80 ldr r1, [r1, #0x0] ldr r4, [r1, #0xc] bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0202A8D8 add r1, r5, #0x0 mov r2, #0x6 bl FUN_0202A3B4 mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02042A48 FUN_02042A48: ; 0x02042A48 push {r4-r6, lr} add r4, r0, #0x0 add r1, r4, #0x0 add r1, #0x80 ldr r1, [r1, #0x0] ldr r5, [r1, #0xc] bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0202A8D8 mov r1, #0x0 add r2, r1, #0x0 bl FUN_0202A3B4 cmp r0, r6 bhs _02042A8E mov r0, #0x0 b _02042A90 _02042A8E: mov r0, #0x1 _02042A90: strh r0, [r4, #0x0] mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02042A98 FUN_02042A98: ; 0x02042A98 push {r3-r7, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 cmp r7, #0x1 bne _02042AEE mov r1, #0x1a b _02042AF0 _02042AEE: mov r1, #0x0 _02042AF0: add r1, r1, r6 lsl r2, r1, #0x2 ldr r1, _02042B04 ; =0x020F433E ldrh r1, [r1, r2] strh r1, [r4, #0x0] ldr r1, _02042B08 ; =0x020F4340 ldrh r1, [r1, r2] strh r1, [r0, #0x0] mov r0, #0x0 pop {r3-r7, pc} .balign 4 _02042B04: .word 0x020F433E _02042B08: .word 0x020F4340 thumb_func_start FUN_02042B0C FUN_02042B0C: ; 0x02042B0C push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xa bl FUN_02039438 add r1, r0, #0x0 add r5, #0x80 ldr r0, [r5, #0x0] ldr r1, [r1, #0x0] bl FUN_0204B5FC strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02042B40 FUN_02042B40: ; 0x02042B40 push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xa bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, #0x80 add r6, r0, #0x0 ldr r0, [r5, #0x0] ldr r1, [r4, #0x0] bl FUN_0204B63C strh r0, [r6, #0x0] mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02042B74 FUN_02042B74: ; 0x02042B74 push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xa bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, #0x80 add r6, r0, #0x0 ldr r0, [r5, #0x0] ldr r1, [r4, #0x0] bl FUN_0204B660 strh r0, [r6, #0x0] mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02042BA8 FUN_02042BA8: ; 0x02042BA8 push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xa bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, #0x80 add r6, r0, #0x0 ldr r0, [r5, #0x0] ldr r1, [r4, #0x0] bl FUN_0204B684 strh r0, [r6, #0x0] mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02042BDC FUN_02042BDC: ; 0x02042BDC push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xa bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, #0x80 add r6, r0, #0x0 ldr r0, [r5, #0x0] ldr r1, [r4, #0x0] bl FUN_0204B6A4 strh r0, [r6, #0x0] mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02042C10 FUN_02042C10: ; 0x02042C10 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xa bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r5, #0x80 add r2, r0, #0x0 ldr r0, [r5, #0x0] ldr r1, [r4, #0x0] bl FUN_0204B57C mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02042C44 FUN_02042C44: ; 0x02042C44 push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xa bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_02029FC8 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r5, #0x80 add r2, r0, #0x0 ldr r0, [r5, #0x0] ldr r1, [r4, #0x0] bl FUN_0204B5A8 add r0, r6, #0x0 mov r1, #0x3 bl FUN_0202A0E8 mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02042C8C FUN_02042C8C: ; 0x02042C8C push {r4, lr} add r4, r0, #0x0 bl FUN_02038C30 cmp r0, #0x0 beq _02042C9E cmp r0, #0x1 beq _02042CA8 b _02042CB2 _02042C9E: add r4, #0x80 ldr r0, [r4, #0x0] bl FUN_0204B9A0 b _02042CB6 _02042CA8: add r4, #0x80 ldr r0, [r4, #0x0] bl FUN_0204B9CC b _02042CB6 _02042CB2: bl ErrorHandling _02042CB6: mov r0, #0x1 pop {r4, pc} .balign 4 thumb_func_start FUN_02042CBC FUN_02042CBC: ; 0x02042CBC push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_02029FC8 add r4, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xa bl FUN_02039438 add r1, r0, #0x0 add r5, #0x80 ldr r0, [r5, #0x0] ldr r1, [r1, #0x0] bl FUN_0204B4FC add r0, r4, #0x0 mov r1, #0x0 bl FUN_0202A170 mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02042CF0 FUN_02042CF0: ; 0x02042CF0 str r1, [r0, #0x0] str r2, [r0, #0x4] str r3, [r0, #0x8] bx lr thumb_func_start FUN_02042CF8 FUN_02042CF8: ; 0x02042CF8 push {r3, lr} bl FUN_0202AF9C bl FUN_0202AFC0 pop {r3, pc} thumb_func_start FUN_02042D04 FUN_02042D04: ; 0x02042D04 push {r3, lr} bl FUN_0202AF9C bl FUN_0202AFFC pop {r3, pc} thumb_func_start FUN_02042D10 FUN_02042D10: ; 0x02042D10 push {r3, lr} bl FUN_0202AF9C bl FUN_0202B020 pop {r3, pc} thumb_func_start FUN_02042D1C FUN_02042D1C: ; 0x02042D1C push {r3-r7, lr} sub sp, #0x20 add r4, r0, #0x0 bl FUN_02038C30 cmp r0, #0x8 bls _02042D2C b _02042F04 _02042D2C: add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02042D38: ; jump table (using 16-bit offset) .short _02042D4A - _02042D38 - 2; case 0 .short _02042D74 - _02042D38 - 2; case 1 .short _02042DA0 - _02042D38 - 2; case 2 .short _02042DC0 - _02042D38 - 2; case 3 .short _02042DFC - _02042D38 - 2; case 4 .short _02042E2E - _02042D38 - 2; case 5 .short _02042E9A - _02042D38 - 2; case 6 .short _02042D58 - _02042D38 - 2; case 7 .short _02042D66 - _02042D38 - 2; case 8 _02042D4A: add r4, #0x80 ldr r0, [r4, #0x0] mov r1, #0x20 ldr r0, [r0, #0xc] bl FUN_0202AF70 b _02042F04 _02042D58: add r4, #0x80 ldr r0, [r4, #0x0] mov r1, #0x0 ldr r0, [r0, #0xc] bl FUN_0202AF88 b _02042F04 _02042D66: add r4, #0x80 ldr r0, [r4, #0x0] mov r1, #0x1 ldr r0, [r0, #0xc] bl FUN_0202AF88 b _02042F04 _02042D74: add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, #0x80 add r5, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_02042CF8 cmp r0, #0x0 beq _02042D9A mov r0, #0x1 strh r0, [r5, #0x0] b _02042F04 _02042D9A: mov r0, #0x0 strh r0, [r5, #0x0] b _02042F04 _02042DA0: add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, #0x80 add r5, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_02042CF8 strh r0, [r5, #0x0] b _02042F04 _02042DC0: add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r6, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_02042CF8 sub r0, r0, #0x1 lsl r5, r0, #0x4 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r7, _02042F0C ; =0x020F43E4 bl FUN_02042D04 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] ldr r2, [r7, r5] blx r2 strh r0, [r6, #0x0] b _02042F04 _02042DFC: add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_02042CF8 sub r0, r0, #0x1 ldr r1, _02042F0C ; =0x020F43E4 lsl r0, r0, #0x4 add r5, r1, r0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_02042D04 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r2, [r5, #0x4] blx r2 add r4, #0x80 ldr r0, [r4, #0x0] bl FUN_02042D10 b _02042F04 _02042E2E: add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_02042CF8 sub r0, r0, #0x1 ldr r1, _02042F0C ; =0x020F43E4 lsl r0, r0, #0x4 add r5, r1, r0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r7, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 str r0, [sp, #0x0] add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_02042D04 add r4, #0x80 add r3, r0, #0x0 ldr r1, [r4, #0x0] ldr r2, [r6, #0x0] add r0, sp, #0x14 bl FUN_02042CF0 ldr r2, [sp, #0x0] ldr r3, [r5, #0x8] add r0, sp, #0x14 add r1, r7, #0x0 blx r3 b _02042F04 _02042E9A: add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_02042CF8 sub r0, r0, #0x1 ldr r1, _02042F0C ; =0x020F43E4 lsl r0, r0, #0x4 add r5, r1, r0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf bl FUN_02039438 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r7, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 str r0, [sp, #0x4] add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_02042D04 add r4, #0x80 add r3, r0, #0x0 ldr r1, [r4, #0x0] ldr r2, [r6, #0x0] add r0, sp, #0x8 bl FUN_02042CF0 ldr r2, [sp, #0x4] ldr r3, [r5, #0xc] add r0, sp, #0x8 add r1, r7, #0x0 blx r3 _02042F04: mov r0, #0x0 add sp, #0x20 pop {r3-r7, pc} nop _02042F0C: .word 0x020F43E4 thumb_func_start FUN_02042F10 FUN_02042F10: ; 0x02042F10 push {r3, lr} ldr r0, [r0, #0xc] bl FUN_0206BB1C bl FUN_0206B9AC cmp r0, #0x6 bge _02042F24 mov r0, #0x1 pop {r3, pc} _02042F24: mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_02042F28 FUN_02042F28: ; 0x02042F28 push {r3, lr} sub sp, #0x8 add r1, r0, #0x0 mov r0, #0x2 str r0, [sp, #0x0] mov r3, #0x1 str r3, [sp, #0x4] ldr r1, [r1, #0xc] ldr r2, _02042F44 ; =0x000001EA mov r0, #0x20 bl FUN_0204A0C8 add sp, #0x8 pop {r3, pc} .balign 4 _02042F44: .word 0x000001EA thumb_func_start FUN_02042F48 FUN_02042F48: ; 0x02042F48 push {r4, lr} add r4, r0, #0x0 mov r0, #0x53 lsl r0, r0, #0x2 strh r0, [r1, #0x0] mov r0, #0xd strh r0, [r2, #0x0] ldr r0, [r4, #0x0] ldr r0, [r0, #0xc] bl FUN_020238F4 add r2, r0, #0x0 ldr r0, [r4, #0x4] mov r1, #0x0 bl FUN_0200ABC0 pop {r4, pc} .balign 4 thumb_func_start FUN_02042F6C FUN_02042F6C: ; 0x02042F6C push {r3-r7, lr} sub sp, #0x38 str r0, [sp, #0x4] bl FUN_02042D04 str r0, [sp, #0x10] ldr r0, [sp, #0x4] ldr r0, [r0, #0xc] bl FUN_020238F4 str r0, [sp, #0xc] ldr r0, [sp, #0x10] mov r7, #0x0 add r5, r0, #0x0 add r4, r0, #0x4 add r0, r4, #0x0 mov r1, #0x97 add r2, r7, #0x0 add r5, #0xf0 bl FUN_020671BC add r1, r7, #0x0 str r0, [sp, #0x8] add r0, r4, #0x0 add r2, r1, #0x0 bl FUN_020671BC str r0, [sp, #0x14] add r0, r4, #0x0 mov r1, #0x7 add r2, r7, #0x0 bl FUN_020671BC add r6, r0, #0x0 blx OS_GetTick bl FUN_0201BA10 add r1, r0, #0x0 ldr r0, [sp, #0x14] str r1, [sp, #0x34] cmp r0, #0x0 beq _02042FE8 cmp r0, #0x1 bne _02042FE6 add r0, r6, #0x0 bl FUN_02068AAC cmp r0, #0x0 beq _02042FE8 _02042FD0: ldr r0, [sp, #0x34] bl FUN_0201BA10 add r1, r0, #0x0 add r0, r6, #0x0 str r1, [sp, #0x34] bl FUN_02068AAC cmp r0, #0x0 bne _02042FD0 b _02042FE8 _02042FE6: str r0, [sp, #0x34] _02042FE8: ldr r1, [sp, #0x34] add r0, r4, #0x0 bl FUN_0206A23C add r0, r4, #0x0 bl FUN_020689E0 str r0, [sp, #0x30] add r0, r4, #0x0 mov r1, #0x6f add r2, sp, #0x30 bl FUN_02067830 add r0, r4, #0x0 mov r1, #0x4b mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0x18] add r0, r4, #0x0 mov r1, #0x4a mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0x1c] add r0, r4, #0x0 mov r1, #0x49 mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0x20] add r0, r4, #0x0 mov r1, #0x48 mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0x24] add r0, r4, #0x0 mov r1, #0x46 mov r2, #0x0 bl FUN_020671BC add r6, r0, #0x0 add r0, r4, #0x0 mov r1, #0x47 mov r2, #0x0 bl FUN_020671BC add r1, r6, r0 ldr r0, [sp, #0x24] add r1, r0, r1 ldr r0, [sp, #0x20] add r1, r0, r1 ldr r0, [sp, #0x1c] add r1, r0, r1 ldr r0, [sp, #0x18] add r0, r0, r1 str r0, [sp, #0x30] bne _020430DA bl FUN_0201B9EC add r6, r0, #0x0 mov r0, #0x1f and r0, r6 str r0, [sp, #0x34] add r0, r4, #0x0 mov r1, #0x46 add r2, sp, #0x34 bl FUN_02067830 mov r0, #0x3e lsl r0, r0, #0x4 and r0, r6 lsr r0, r0, #0x5 str r0, [sp, #0x34] add r0, r4, #0x0 mov r1, #0x47 add r2, sp, #0x34 bl FUN_02067830 mov r0, #0x1f lsl r0, r0, #0xa and r0, r6 lsr r0, r0, #0xa str r0, [sp, #0x34] add r0, r4, #0x0 mov r1, #0x48 add r2, sp, #0x34 bl FUN_02067830 bl FUN_0201B9EC add r6, r0, #0x0 mov r0, #0x1f and r0, r6 str r0, [sp, #0x34] add r0, r4, #0x0 mov r1, #0x49 add r2, sp, #0x34 bl FUN_02067830 mov r0, #0x3e lsl r0, r0, #0x4 and r0, r6 lsr r0, r0, #0x5 str r0, [sp, #0x34] add r0, r4, #0x0 mov r1, #0x4a add r2, sp, #0x34 bl FUN_02067830 mov r0, #0x1f lsl r0, r0, #0xa and r0, r6 lsr r0, r0, #0xa str r0, [sp, #0x34] add r0, r4, #0x0 mov r1, #0x4b add r2, sp, #0x34 bl FUN_02067830 _020430DA: ldr r0, [sp, #0x4] ldr r0, [r0, #0xc] bl FUN_0202A918 add r6, r0, #0x0 add r0, r4, #0x0 mov r1, #0x2e mov r2, #0x0 bl FUN_020671BC cmp r0, #0x0 beq _020430FC mov r0, #0x49 bl FUN_0207FCE0 ldrb r1, [r5, #0x0] strb r1, [r6, r0] _020430FC: add r0, r4, #0x0 mov r1, #0x2f mov r2, #0x0 bl FUN_020671BC cmp r0, #0x0 beq _02043114 mov r0, #0x4a bl FUN_0207FCE0 ldrb r1, [r5, #0x1] strb r1, [r6, r0] _02043114: add r0, r4, #0x0 mov r1, #0x30 mov r2, #0x0 bl FUN_020671BC cmp r0, #0x0 beq _0204312C mov r0, #0x4b bl FUN_0207FCE0 ldrb r1, [r5, #0x2] strb r1, [r6, r0] _0204312C: add r0, r4, #0x0 mov r1, #0x31 mov r2, #0x0 bl FUN_020671BC cmp r0, #0x0 beq _02043144 mov r0, #0x4c bl FUN_0207FCE0 ldrb r1, [r5, #0x3] strb r1, [r6, r0] _02043144: add r0, r4, #0x0 mov r1, #0x32 mov r2, #0x0 bl FUN_020671BC cmp r0, #0x0 beq _0204315C mov r0, #0x4d bl FUN_0207FCE0 ldrb r1, [r5, #0x4] strb r1, [r6, r0] _0204315C: add r0, r4, #0x0 mov r1, #0x33 mov r2, #0x0 bl FUN_020671BC cmp r0, #0x0 beq _02043174 mov r0, #0x4e bl FUN_0207FCE0 ldrb r1, [r5, #0x5] strb r1, [r6, r0] _02043174: add r0, r4, #0x0 mov r1, #0x34 mov r2, #0x0 bl FUN_020671BC cmp r0, #0x0 beq _0204318C mov r0, #0x4f bl FUN_0207FCE0 ldrb r1, [r5, #0x6] strb r1, [r6, r0] _0204318C: add r0, r4, #0x0 mov r1, #0x67 mov r2, #0x0 bl FUN_020671BC cmp r0, #0x0 beq _020431A4 mov r0, #0x19 bl FUN_0207FCE0 ldrb r1, [r5, #0x7] strb r1, [r6, r0] _020431A4: add r0, r4, #0x0 mov r1, #0x68 mov r2, #0x0 bl FUN_020671BC cmp r0, #0x0 beq _020431BC mov r0, #0x1a bl FUN_0207FCE0 ldrb r1, [r5, #0x8] strb r1, [r6, r0] _020431BC: add r0, r4, #0x0 mov r1, #0x69 mov r2, #0x0 bl FUN_020671BC cmp r0, #0x0 beq _020431D4 mov r0, #0x1b bl FUN_0207FCE0 ldrb r1, [r5, #0x9] strb r1, [r6, r0] _020431D4: ldr r0, [sp, #0x10] ldr r0, [r0, #0x0] cmp r0, #0x0 bne _0204322C ldr r0, [sp, #0xc] mov r1, #0x20 bl FUN_020239A0 add r5, r0, #0x0 ldr r0, [sp, #0xc] bl FUN_020239BC str r0, [sp, #0x2c] ldr r0, [sp, #0xc] bl FUN_020239CC str r0, [sp, #0x28] mov r0, #0x20 bl FUN_020669C0 add r7, r0, #0x0 add r0, r4, #0x0 add r1, r7, #0x0 bl FUN_02069B88 add r0, r7, #0x0 mov r1, #0x90 add r2, r5, #0x0 bl FUN_02067830 add r0, r7, #0x0 mov r1, #0x7 add r2, sp, #0x2c bl FUN_02067830 add r0, r7, #0x0 mov r1, #0x9c add r2, sp, #0x28 bl FUN_02067830 add r0, r5, #0x0 add r4, r7, #0x0 bl FUN_02021A20 _0204322C: ldr r1, [sp, #0x8] mov r0, #0x2 bl FUN_02015CF8 add r3, r0, #0x0 mov r0, #0x20 str r0, [sp, #0x0] ldr r1, [sp, #0xc] add r0, r4, #0x0 mov r2, #0x4 bl FUN_0208089C add r0, r4, #0x0 bl FUN_02066ED8 ldr r0, [sp, #0x4] ldr r0, [r0, #0xc] bl FUN_0206BB1C add r1, r4, #0x0 bl FUN_0206B900 cmp r0, #0x0 beq _02043266 ldr r0, [sp, #0x4] add r1, r4, #0x0 ldr r0, [r0, #0xc] bl FUN_0202C144 _02043266: cmp r7, #0x0 beq _02043270 add r0, r7, #0x0 bl FUN_02016A18 _02043270: add sp, #0x38 pop {r3-r7, pc} thumb_func_start FUN_02043274 FUN_02043274: ; 0x02043274 push {r3-r7, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] add r4, r1, #0x0 add r6, r2, #0x0 bl FUN_02042D04 add r7, r0, #0x0 mov r0, #0x53 lsl r0, r0, #0x2 strh r0, [r4, #0x0] mov r0, #0x7 strh r0, [r6, #0x0] ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_020238F4 add r2, r0, #0x0 ldr r0, [r5, #0x4] mov r1, #0x0 bl FUN_0200ABC0 add r0, r7, #0x4 bl FUN_020690E4 add r2, r0, #0x0 ldr r0, [r5, #0x4] mov r1, #0x1 bl FUN_0200ACA4 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020432B4 FUN_020432B4: ; 0x020432B4 mov r0, #0x53 lsl r0, r0, #0x2 strh r0, [r1, #0x0] mov r0, #0x4 strh r0, [r2, #0x0] bx lr thumb_func_start FUN_020432C0 FUN_020432C0: ; 0x020432C0 ldr r3, _020432C4 ; =FUN_02042F6C bx r3 .balign 4 _020432C4: .word FUN_02042F6C thumb_func_start FUN_020432C8 FUN_020432C8: ; 0x020432C8 push {r3-r7, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] add r4, r1, #0x0 add r6, r2, #0x0 bl FUN_02042D04 add r7, r0, #0x0 mov r0, #0x53 lsl r0, r0, #0x2 strh r0, [r4, #0x0] mov r0, #0x8 strh r0, [r6, #0x0] ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_020238F4 add r2, r0, #0x0 ldr r0, [r5, #0x4] mov r1, #0x0 bl FUN_0200ABC0 add r0, r7, #0x4 bl FUN_020690E4 add r2, r0, #0x0 ldr r0, [r5, #0x4] mov r1, #0x1 bl FUN_0200AC60 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02043308 FUN_02043308: ; 0x02043308 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_0206F158 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02042D04 add r1, r0, #0x0 ldr r1, [r1, #0x0] add r0, r4, #0x0 lsl r1, r1, #0x10 lsr r1, r1, #0x10 mov r2, #0x1 mov r3, #0x20 bl FUN_0206ED24 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02043330 FUN_02043330: ; 0x02043330 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_0206F158 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02042D04 add r1, r0, #0x0 ldr r1, [r1, #0x0] add r0, r4, #0x0 lsl r1, r1, #0x10 lsr r1, r1, #0x10 mov r2, #0x1 mov r3, #0x20 bl FUN_0206ED38 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02043358 FUN_02043358: ; 0x02043358 push {r3-r7, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] add r4, r1, #0x0 add r6, r2, #0x0 bl FUN_02042D04 ldr r0, [r0, #0x0] lsl r0, r0, #0x10 lsr r7, r0, #0x10 mov r0, #0x53 lsl r0, r0, #0x2 strh r0, [r4, #0x0] mov r0, #0x9 strh r0, [r6, #0x0] ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_020238F4 add r2, r0, #0x0 ldr r0, [r5, #0x4] mov r1, #0x0 bl FUN_0200ABC0 ldr r0, [r5, #0x4] mov r1, #0x1 add r2, r7, #0x0 bl FUN_0200AE38 pop {r3-r7, pc} thumb_func_start FUN_02043394 FUN_02043394: ; 0x02043394 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] add r4, r1, #0x0 ldr r0, [r0, #0xc] add r6, r2, #0x0 bl FUN_0206F158 ldr r0, [r5, #0x0] bl FUN_02042D04 ldr r0, [r0, #0x0] mov r1, #0x0 lsl r0, r0, #0x10 lsr r2, r0, #0x10 mov r0, #0x53 lsl r0, r0, #0x2 strh r0, [r4, #0x0] mov r0, #0x5 strh r0, [r6, #0x0] ldr r0, [r5, #0x4] bl FUN_0200AE38 pop {r4-r6, pc} thumb_func_start FUN_020433C4 FUN_020433C4: ; 0x020433C4 mov r0, #0x1 bx lr thumb_func_start FUN_020433C8 FUN_020433C8: ; 0x020433C8 push {r4, lr} add r4, r0, #0x0 bl FUN_02042D04 add r1, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_02023BD4 pop {r4, pc} .balign 4 thumb_func_start FUN_020433DC FUN_020433DC: ; 0x020433DC push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 ldr r0, [r5, #0x0] add r4, r1, #0x0 add r6, r2, #0x0 bl FUN_02042D04 add r7, r0, #0x0 mov r0, #0x53 lsl r0, r0, #0x2 strh r0, [r4, #0x0] mov r0, #0xa strh r0, [r6, #0x0] ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_020238F4 add r2, r0, #0x0 ldr r0, [r5, #0x4] mov r1, #0x0 bl FUN_0200ABC0 add r0, r7, #0x0 mov r1, #0x20 bl FUN_02023AF4 add r4, r0, #0x0 mov r1, #0x1 str r1, [sp, #0x0] mov r0, #0x2 str r0, [sp, #0x4] ldr r0, [r5, #0x4] add r2, r4, #0x0 mov r3, #0x0 bl FUN_0200ABB4 add r0, r4, #0x0 bl FUN_02021A20 add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_02043430 FUN_02043430: ; 0x02043430 mov r0, #0x53 lsl r0, r0, #0x2 strh r0, [r1, #0x0] mov r0, #0x6 strh r0, [r2, #0x0] bx lr thumb_func_start FUN_0204343C FUN_0204343C: ; 0x0204343C push {r3, lr} ldr r0, [r0, #0xc] bl FUN_02026CC4 bl FUN_02025DB0 cmp r0, #0xc8 bge _02043450 mov r0, #0x1 pop {r3, pc} _02043450: mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_02043454 FUN_02043454: ; 0x02043454 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02042D04 add r4, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_02026CC4 ldr r1, [r4, #0x0] bl FUN_02025D6C pop {r3-r5, pc} thumb_func_start FUN_0204346C FUN_0204346C: ; 0x0204346C push {r3-r7, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] add r4, r1, #0x0 add r6, r2, #0x0 bl FUN_02042D04 ldr r7, [r0, #0x0] mov r0, #0x53 lsl r0, r0, #0x2 strh r0, [r4, #0x0] mov r0, #0xb strh r0, [r6, #0x0] ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_020238F4 add r2, r0, #0x0 ldr r0, [r5, #0x4] mov r1, #0x0 bl FUN_0200ABC0 ldr r0, [r5, #0x4] mov r1, #0x1 add r2, r7, #0x0 bl FUN_0200B350 pop {r3-r7, pc} thumb_func_start FUN_020434A4 FUN_020434A4: ; 0x020434A4 mov r0, #0x53 lsl r0, r0, #0x2 strh r0, [r1, #0x0] mov r0, #0x6 strh r0, [r2, #0x0] bx lr thumb_func_start FUN_020434B0 FUN_020434B0: ; 0x020434B0 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02042D04 ldr r4, [r0, #0x4] ldr r0, [r0, #0x0] cmp r0, #0x1 beq _020434CA cmp r0, #0x2 beq _020434DA cmp r0, #0x3 beq _020434DE b _020434E2 _020434CA: ldr r0, [r5, #0xc] bl FUN_02029C80 add r1, r4, #0x0 mov r2, #0x1 bl FUN_02029DD4 pop {r3-r5, pc} _020434DA: mov r0, #0x1 pop {r3-r5, pc} _020434DE: mov r0, #0x1 pop {r3-r5, pc} _020434E2: mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020434E8 FUN_020434E8: ; 0x020434E8 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02042D04 ldr r4, [r0, #0x4] ldr r0, [r0, #0x0] cmp r0, #0x1 beq _02043502 cmp r0, #0x2 beq _02043512 cmp r0, #0x3 beq _02043526 pop {r3-r5, pc} _02043502: ldr r0, [r5, #0xc] bl FUN_02029C80 add r1, r4, #0x0 mov r2, #0x1 bl FUN_02029D44 pop {r3-r5, pc} _02043512: ldr r0, [r5, #0xc] bl FUN_02027E24 bl FUN_0202708C add r1, r4, #0x0 mov r2, #0x1 bl FUN_020271A4 pop {r3-r5, pc} _02043526: ldr r0, [r5, #0xc] bl FUN_02027E24 bl FUN_0202708C add r1, r4, #0x0 bl FUN_02027264 pop {r3-r5, pc} thumb_func_start FUN_02043538 FUN_02043538: ; 0x02043538 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] add r4, r1, #0x0 add r6, r2, #0x0 bl FUN_02042D04 ldr r2, [r0, #0x4] ldr r0, [r0, #0x0] cmp r0, #0x1 beq _02043558 cmp r0, #0x2 beq _02043562 cmp r0, #0x3 beq _0204356C b _02043574 _02043558: ldr r0, [r5, #0x4] mov r1, #0x1 bl FUN_0200B534 b _02043574 _02043562: ldr r0, [r5, #0x4] mov r1, #0x1 bl FUN_0200B660 b _02043574 _0204356C: ldr r0, [r5, #0x4] mov r1, #0x1 bl FUN_0200B6D0 _02043574: mov r0, #0x53 lsl r0, r0, #0x2 strh r0, [r4, #0x0] mov r0, #0xc strh r0, [r6, #0x0] ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_020238F4 add r2, r0, #0x0 ldr r0, [r5, #0x4] mov r1, #0x0 bl FUN_0200ABC0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02043594 FUN_02043594: ; 0x02043594 mov r0, #0x53 lsl r0, r0, #0x2 strh r0, [r1, #0x0] mov r0, #0x6 strh r0, [r2, #0x0] bx lr thumb_func_start FUN_020435A0 FUN_020435A0: ; 0x020435A0 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_0206F158 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02042D04 ldr r1, _020435C0 ; =0x000001C6 add r0, r4, #0x0 mov r2, #0x1 mov r3, #0x20 bl FUN_0206ED24 pop {r3-r5, pc} .balign 4 _020435C0: .word 0x000001C6 thumb_func_start FUN_020435C4 FUN_020435C4: ; 0x020435C4 push {r3-r5, lr} add r4, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_0206F158 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02042D04 ldr r0, [r4, #0xc] bl FUN_020462AC add r4, r0, #0x0 ldr r1, _020435F4 ; =0x000001C6 add r0, r5, #0x0 mov r2, #0x1 mov r3, #0x20 bl FUN_0206ED38 add r0, r4, #0x0 mov r1, #0x0 bl FUN_0205F478 pop {r3-r5, pc} .balign 4 _020435F4: .word 0x000001C6 thumb_func_start FUN_020435F8 FUN_020435F8: ; 0x020435F8 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] add r4, r1, #0x0 add r6, r2, #0x0 bl FUN_02042D04 mov r0, #0x53 lsl r0, r0, #0x2 strh r0, [r4, #0x0] mov r0, #0xe strh r0, [r6, #0x0] ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_020238F4 add r2, r0, #0x0 ldr r0, [r5, #0x4] mov r1, #0x0 bl FUN_0200ABC0 ldr r0, [r5, #0x4] ldr r2, _02043630 ; =0x000001C6 mov r1, #0x1 bl FUN_0200AE38 pop {r4-r6, pc} nop _02043630: .word 0x000001C6 thumb_func_start FUN_02043634 FUN_02043634: ; 0x02043634 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] add r4, r1, #0x0 ldr r0, [r0, #0xc] add r6, r2, #0x0 bl FUN_0206F158 ldr r0, [r5, #0x0] bl FUN_02042D04 mov r2, #0x53 lsl r2, r2, #0x2 strh r2, [r4, #0x0] mov r0, #0x5 strh r0, [r6, #0x0] ldr r0, [r5, #0x4] mov r1, #0x0 add r2, #0x7a bl FUN_0200AE38 pop {r4-r6, pc} thumb_func_start FUN_02043660 FUN_02043660: ; 0x02043660 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_0206F158 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02042D04 mov r1, #0x71 add r0, r4, #0x0 lsl r1, r1, #0x2 mov r2, #0x1 mov r3, #0x20 bl FUN_0206ED24 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02043684 FUN_02043684: ; 0x02043684 push {r3-r5, lr} add r4, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_0206F158 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02042D04 ldr r0, [r4, #0xc] bl FUN_020462AC mov r1, #0x71 add r4, r0, #0x0 add r0, r5, #0x0 lsl r1, r1, #0x2 mov r2, #0x1 mov r3, #0x20 bl FUN_0206ED38 add r0, r4, #0x0 mov r1, #0x1 bl FUN_0205F478 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020436B8 FUN_020436B8: ; 0x020436B8 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] add r4, r1, #0x0 add r6, r2, #0x0 bl FUN_02042D04 mov r0, #0x53 lsl r0, r0, #0x2 strh r0, [r4, #0x0] mov r0, #0xf strh r0, [r6, #0x0] ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_020238F4 add r2, r0, #0x0 ldr r0, [r5, #0x4] mov r1, #0x0 bl FUN_0200ABC0 mov r2, #0x71 ldr r0, [r5, #0x4] mov r1, #0x1 lsl r2, r2, #0x2 bl FUN_0200AE38 pop {r4-r6, pc} thumb_func_start FUN_020436F0 FUN_020436F0: ; 0x020436F0 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] add r4, r1, #0x0 ldr r0, [r0, #0xc] add r6, r2, #0x0 bl FUN_0206F158 ldr r0, [r5, #0x0] bl FUN_02042D04 mov r2, #0x53 lsl r2, r2, #0x2 strh r2, [r4, #0x0] mov r0, #0x5 strh r0, [r6, #0x0] ldr r0, [r5, #0x4] mov r1, #0x0 add r2, #0x78 bl FUN_0200AE38 pop {r4-r6, pc} thumb_func_start FUN_0204371C FUN_0204371C: ; 0x0204371C push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_0206F158 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02042D04 ldr r1, _0204373C ; =0x000001C7 add r0, r4, #0x0 mov r2, #0x1 mov r3, #0x20 bl FUN_0206ED24 pop {r3-r5, pc} .balign 4 _0204373C: .word 0x000001C7 thumb_func_start FUN_02043740 FUN_02043740: ; 0x02043740 push {r3-r5, lr} add r4, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_0206F158 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02042D04 ldr r0, [r4, #0xc] bl FUN_020462AC add r4, r0, #0x0 ldr r1, _02043770 ; =0x000001C7 add r0, r5, #0x0 mov r2, #0x1 mov r3, #0x20 bl FUN_0206ED38 add r0, r4, #0x0 mov r1, #0x2 bl FUN_0205F478 pop {r3-r5, pc} .balign 4 _02043770: .word 0x000001C7 thumb_func_start FUN_02043774 FUN_02043774: ; 0x02043774 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] add r4, r1, #0x0 add r6, r2, #0x0 bl FUN_02042D04 mov r0, #0x53 lsl r0, r0, #0x2 strh r0, [r4, #0x0] mov r0, #0x10 strh r0, [r6, #0x0] ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_020238F4 add r2, r0, #0x0 ldr r0, [r5, #0x4] mov r1, #0x0 bl FUN_0200ABC0 ldr r0, [r5, #0x4] ldr r2, _020437AC ; =0x000001C7 mov r1, #0x1 bl FUN_0200AE38 pop {r4-r6, pc} nop _020437AC: .word 0x000001C7 thumb_func_start FUN_020437B0 FUN_020437B0: ; 0x020437B0 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] add r4, r1, #0x0 ldr r0, [r0, #0xc] add r6, r2, #0x0 bl FUN_0206F158 ldr r0, [r5, #0x0] bl FUN_02042D04 mov r2, #0x53 lsl r2, r2, #0x2 strh r2, [r4, #0x0] mov r0, #0x5 strh r0, [r6, #0x0] ldr r0, [r5, #0x4] mov r1, #0x0 add r2, #0x7b bl FUN_0200AE38 pop {r4-r6, pc} thumb_func_start FUN_020437DC FUN_020437DC: ; 0x020437DC push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_0204C1A8 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02042D04 add r0, r4, #0x0 bl FUN_0204BEC8 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020437F8 FUN_020437F8: ; 0x020437F8 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_0204C1A8 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02042D04 add r1, r0, #0x0 ldr r1, [r1, #0x0] add r0, r4, #0x0 bl FUN_0204BED8 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02043818 FUN_02043818: ; 0x02043818 push {r3-r7, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] add r4, r1, #0x0 add r6, r2, #0x0 bl FUN_02042D04 add r7, r0, #0x0 mov r0, #0x53 lsl r0, r0, #0x2 strh r0, [r4, #0x0] mov r0, #0x12 strh r0, [r6, #0x0] ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_020238F4 add r2, r0, #0x0 ldr r0, [r5, #0x4] mov r1, #0x0 bl FUN_0200ABC0 ldr r0, [r5, #0x4] ldr r2, [r7, #0x0] mov r1, #0x1 bl FUN_0200B02C pop {r3-r7, pc} thumb_func_start FUN_02043850 FUN_02043850: ; 0x02043850 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] add r4, r1, #0x0 add r6, r2, #0x0 bl FUN_02042D04 mov r0, #0x53 lsl r0, r0, #0x2 strh r0, [r4, #0x0] mov r0, #0x13 strh r0, [r6, #0x0] ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_020238F4 add r2, r0, #0x0 ldr r0, [r5, #0x4] mov r1, #0x0 bl FUN_0200ABC0 pop {r4-r6, pc} thumb_func_start FUN_0204387C FUN_0204387C: ; 0x0204387C push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_020462AC add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 cmp r0, #0x0 bne _020438B2 add r0, r4, #0x0 bl FUN_0205F224 add r5, #0x80 ldr r0, [r5, #0x0] bl FUN_0204B9EC b _020438CA _020438B2: cmp r0, #0x1 bne _020438C6 add r0, r4, #0x0 bl FUN_0205F234 add r5, #0x80 ldr r0, [r5, #0x0] bl FUN_0204BA1C b _020438CA _020438C6: bl ErrorHandling _020438CA: mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020438D0 FUN_020438D0: ; 0x020438D0 push {r4-r6, lr} add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_02022528 add r6, r0, #0x0 mov r0, #0x20 bl FUN_020669C0 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 add r4, r0, #0x0 add r0, r6, #0x0 bl FUN_0202C000 cmp r0, #0x6 bne _02043908 mov r0, #0x1 b _0204390A _02043908: mov r0, #0x0 _0204390A: strh r0, [r4, #0x0] add r0, r5, #0x0 bl FUN_02016A18 mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02043918 FUN_02043918: ; 0x02043918 push {r4-r7, lr} sub sp, #0xc add r6, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_02022528 add r7, r0, #0x0 add r0, r6, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_02022510 str r0, [sp, #0x8] mov r0, #0x20 bl FUN_020669C0 add r4, r0, #0x0 add r0, r6, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_020238F4 str r0, [sp, #0x4] add r0, r6, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_02024DA0 mov r5, #0x0 _0204395C: add r0, r7, #0x0 add r1, r5, #0x0 add r2, r4, #0x0 bl FUN_0202BFD8 mov r0, #0x20 str r0, [sp, #0x0] ldr r1, [sp, #0x4] add r0, r4, #0x0 mov r2, #0x2 mov r3, #0x0 bl FUN_0208089C add r0, r4, #0x0 bl FUN_020690E4 add r1, r0, #0x0 ldr r0, [sp, #0x8] bl FUN_0206B20C cmp r0, #0x0 bne _0204398C bl ErrorHandling _0204398C: add r0, r6, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] add r1, r4, #0x0 ldr r0, [r0, #0xc] bl FUN_0202C144 add r5, r5, #0x1 cmp r5, #0x6 blt _0204395C add r0, r4, #0x0 bl FUN_02016A18 add r0, r7, #0x0 bl FUN_0202BEDC mov r0, #0x0 add sp, #0xc pop {r4-r7, pc} .balign 4 thumb_func_start FUN_020439B4 FUN_020439B4: ; 0x020439B4 push {r3-r7, lr} add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, r0, #0x0 cmp r6, #0x3 bhi _02043A40 add r0, r6, r6 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _020439EE: ; jump table (using 16-bit offset) .short _020439F6 - _020439EE - 2; case 0 .short _02043A02 - _020439EE - 2; case 1 .short _02043A0E - _020439EE - 2; case 2 .short _02043A1A - _020439EE - 2; case 3 _020439F6: add r4, #0x80 ldr r0, [r4, #0x0] bl FUN_0204BAC4 strh r0, [r5, #0x0] b _02043A40 _02043A02: add r4, #0x80 ldr r0, [r4, #0x0] bl FUN_0204BAD4 strh r0, [r5, #0x0] b _02043A40 _02043A0E: add r4, #0x80 ldr r0, [r4, #0x0] bl FUN_0204BAE4 strh r0, [r5, #0x0] b _02043A40 _02043A1A: add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_0204BAD4 add r6, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_0204BAC4 add r4, #0x80 add r7, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_0204BAE4 add r0, r7, r0 add r0, r6, r0 strh r0, [r5, #0x0] _02043A40: mov r0, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02043A44 FUN_02043A44: ; 0x02043A44 push {r3-r7, lr} add r4, r0, #0x0 add r1, r4, #0x0 add r1, #0x80 ldr r5, [r1, #0x0] bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r5, #0x0 mov r1, #0x26 bl FUN_02039438 lsl r1, r6, #0x18 lsl r2, r7, #0x18 add r4, #0x80 add r5, r0, #0x0 ldr r0, [r4, #0x0] lsr r1, r1, #0x18 lsr r2, r2, #0x18 bl FUN_021E2950 str r0, [r5, #0x0] mov r0, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02043A94 FUN_02043A94: ; 0x02043A94 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x26 bl FUN_02039438 ldr r0, [r0, #0x0] bl FUN_021E29B4 mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_02043AAC FUN_02043AAC: ; 0x02043AAC push {r4, lr} add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x26 bl FUN_02039438 add r1, r0, #0x0 add r4, #0x80 ldr r0, [r4, #0x0] ldr r1, [r1, #0x0] bl FUN_021E29C8 mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02043ACC FUN_02043ACC: ; 0x02043ACC push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_0202390C add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02028930 strh r0, [r5, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02043AFC FUN_02043AFC: ; 0x02043AFC push {r3-r5, lr} add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_0202390C add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394F0 add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_02028934 mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02043B28 FUN_02043B28: ; 0x02043B28 push {r3-r5, lr} add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_0202390C add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394F0 add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_0202896C mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02043B54 FUN_02043B54: ; 0x02043B54 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_0202390C add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r1, r0, #0x0 ldrh r1, [r1, #0x0] add r0, r4, #0x0 bl FUN_0202896C mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02043B84 FUN_02043B84: ; 0x02043B84 push {r4-r6, lr} add r4, r0, #0x0 add r0, #0x80 ldr r5, [r0, #0x0] add r0, r5, #0x0 bl FUN_020377AC bl FUN_020238F4 ldr r0, [r5, #0xc] bl FUN_0202390C add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C48 add r4, r0, #0x0 add r0, r6, #0x0 bl FUN_02028930 cmp r0, r4 bhs _02043BC8 mov r0, #0x0 b _02043BCA _02043BC8: mov r0, #0x1 _02043BCA: strh r0, [r5, #0x0] mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02043BD0 FUN_02043BD0: ; 0x02043BD0 push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 ldr r4, [r0, #0x0] add r0, r4, #0x0 bl FUN_020377AC bl FUN_020238F4 ldr r0, [r4, #0xc] bl FUN_0202390C add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 ldrh r5, [r0, #0x0] add r0, r6, #0x0 bl FUN_02028930 cmp r0, r5 bhs _02043C1E mov r0, #0x0 b _02043C20 _02043C1E: mov r0, #0x1 _02043C20: strh r0, [r4, #0x0] mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02043C28 FUN_02043C28: ; 0x02043C28 push {r4-r6, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_0202390C add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r1, r0, #0x0 add r0, r6, #0x0 bl FUN_02028954 strh r0, [r4, #0x0] mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02043C6C FUN_02043C6C: ; 0x02043C6C push {r3-r5, lr} add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020377AC bl FUN_020238F4 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C48 add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_02023A30 mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02043C90 FUN_02043C90: ; 0x02043C90 push {r3-r5, lr} add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020377AC bl FUN_020238F4 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C48 add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_02023A54 mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02043CB4 FUN_02043CB4: ; 0x02043CB4 push {r3-r5, lr} add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020377AC bl FUN_020238F4 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394F0 add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_02023A54 mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02043CE4 FUN_02043CE4: ; 0x02043CE4 push {r4-r6, lr} add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020377AC bl FUN_020238F4 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C48 add r4, r0, #0x0 add r0, r6, #0x0 bl FUN_02023A10 cmp r0, r4 bhs _02043D20 mov r0, #0x0 b _02043D22 _02043D20: mov r0, #0x1 _02043D22: strh r0, [r5, #0x0] mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02043D28 FUN_02043D28: ; 0x02043D28 push {r4-r6, lr} add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020377AC bl FUN_020238F4 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394F0 add r4, r0, #0x0 add r0, r6, #0x0 bl FUN_02023A10 cmp r0, r4 bhs _02043D6E mov r0, #0x0 b _02043D70 _02043D6E: mov r0, #0x1 _02043D70: strh r0, [r5, #0x0] mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02043D78 FUN_02043D78: ; 0x02043D78 push {r3-r7, lr} add r4, r0, #0x0 add r1, r4, #0x0 add r1, #0x80 ldr r5, [r1, #0x0] bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r5, #0x0 mov r1, #0x27 bl FUN_02039438 lsl r1, r6, #0x18 lsl r2, r7, #0x18 add r4, #0x80 add r5, r0, #0x0 ldr r0, [r4, #0x0] lsr r1, r1, #0x18 lsr r2, r2, #0x18 bl FUN_021E27E8 str r0, [r5, #0x0] mov r0, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02043DC8 FUN_02043DC8: ; 0x02043DC8 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x27 bl FUN_02039438 ldr r0, [r0, #0x0] bl FUN_021E288C mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_02043DE0 FUN_02043DE0: ; 0x02043DE0 push {r4, lr} add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x27 bl FUN_02039438 add r1, r0, #0x0 add r4, #0x80 ldr r0, [r4, #0x0] ldr r1, [r1, #0x0] bl FUN_021E28A0 mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02043E00 FUN_02043E00: ; 0x02043E00 push {r3-r5, lr} add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf ldr r5, [r0, #0xc] bl FUN_02039438 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02023D58 ldr r1, [r4, #0x0] bl FUN_021ED4E0 mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02043E20 FUN_02043E20: ; 0x02043E20 push {r3-r5, lr} add r5, r0, #0x0 add r1, r5, #0x0 add r1, #0x80 ldr r1, [r1, #0x0] ldr r4, [r1, #0xc] bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r5, r0, #0x0 add r0, r4, #0x0 mov r1, #0x8 bl FUN_02022610 bl FUN_021ED5EC strh r0, [r5, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02043E50 FUN_02043E50: ; 0x02043E50 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x8 ldr r0, [r0, #0xc] bl FUN_02022610 bl FUN_021ECD64 mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_02043E68 FUN_02043E68: ; 0x02043E68 push {r4-r6, lr} add r4, r0, #0x0 add r0, #0x80 ldr r5, [r0, #0x0] mov r1, #0x8 ldr r0, [r5, #0xc] bl FUN_02022610 add r6, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_0206BB1C add r4, #0x80 add r5, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020377AC bl FUN_020238F4 add r2, r0, #0x0 add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_021ED0CC mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02043E9C FUN_02043E9C: ; 0x02043E9C push {r3-r7, lr} add r4, r0, #0x0 add r0, #0x80 ldr r5, [r0, #0x0] mov r1, #0xf add r0, r5, #0x0 bl FUN_02039438 add r7, r0, #0x0 add r0, r4, #0x0 ldr r6, [r5, #0xc] bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 str r0, [sp, #0x0] add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394F0 add r4, r0, #0x0 add r0, r6, #0x0 mov r1, #0x8 bl FUN_02022610 add r6, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_0206BB1C lsl r3, r4, #0x18 ldr r1, [r7, #0x0] add r2, r6, #0x0 lsr r3, r3, #0x18 bl FUN_021EC71C ldr r1, [sp, #0x0] strh r0, [r1, #0x0] mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02043EFC FUN_02043EFC: ; 0x02043EFC push {r3-r7, lr} add r4, r0, #0x0 add r0, #0x80 ldr r5, [r0, #0x0] mov r1, #0xf add r0, r5, #0x0 bl FUN_02039438 add r7, r0, #0x0 add r0, r4, #0x0 ldr r5, [r5, #0xc] bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394F0 add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x8 bl FUN_02022610 lsl r1, r4, #0x18 ldr r2, [r7, #0x0] lsr r1, r1, #0x18 bl FUN_021EC854 strh r0, [r6, #0x0] mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02043F50 FUN_02043F50: ; 0x02043F50 push {r3-r7, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf ldr r4, [r0, #0xc] bl FUN_02039438 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r5, r0, #0x0 add r0, r4, #0x0 mov r1, #0x8 bl FUN_02022610 ldr r2, [r6, #0x0] add r1, r5, #0x0 bl FUN_021EC864 strh r0, [r7, #0x0] mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02043FA0 FUN_02043FA0: ; 0x02043FA0 push {r3-r7, lr} add r4, r0, #0x0 add r0, #0x80 ldr r5, [r0, #0x0] mov r1, #0xf add r0, r5, #0x0 bl FUN_02039438 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 add r4, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_0206BB1C ldr r2, [r6, #0x0] add r1, r7, #0x0 bl FUN_021ED5C4 strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02043FF4 FUN_02043FF4: ; 0x02043FF4 push {r4-r6, lr} add r6, r0, #0x0 add r1, r6, #0x0 add r1, #0x80 ldr r4, [r1, #0x0] ldr r5, [r4, #0xc] bl FUN_02038C30 add r6, #0x80 add r1, r0, #0x0 ldr r0, [r6, #0x0] bl FUN_020394F0 add r6, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_0206BB1C add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x8 bl FUN_02022610 lsl r1, r6, #0x18 add r2, r0, #0x0 add r0, r4, #0x0 lsr r1, r1, #0x18 add r3, r5, #0x0 bl FUN_021EC57C mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02044034 FUN_02044034: ; 0x02044034 push {r3-r7, lr} sub sp, #0x10 add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0xf ldr r5, [r0, #0xc] bl FUN_02039438 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 str r0, [sp, #0x8] add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 str r0, [sp, #0xc] add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394F0 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02023D58 lsl r1, r4, #0x18 lsr r1, r1, #0x18 str r1, [sp, #0x0] ldr r1, [r6, #0x0] ldr r2, [sp, #0x8] ldr r3, [sp, #0xc] str r1, [sp, #0x4] lsl r1, r7, #0x18 lsl r2, r2, #0x18 lsl r3, r3, #0x18 lsr r1, r1, #0x18 lsr r2, r2, #0x18 lsr r3, r3, #0x18 bl FUN_021ED52C mov r0, #0x0 add sp, #0x10 pop {r3-r7, pc} thumb_func_start FUN_020440C0 FUN_020440C0: ; 0x020440C0 push {r3-r5, lr} add r5, r0, #0x0 add r1, r5, #0x0 add r1, #0x80 ldr r1, [r1, #0x0] ldr r4, [r1, #0xc] bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r5, r0, #0x0 add r0, r4, #0x0 mov r1, #0x8 bl FUN_02022610 bl FUN_021ED644 strh r0, [r5, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020440F0 FUN_020440F0: ; 0x020440F0 push {r3-r5, lr} add r5, r0, #0x0 add r1, r5, #0x0 add r1, #0x80 ldr r1, [r1, #0x0] ldr r4, [r1, #0xc] bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r5, r0, #0x0 add r0, r4, #0x0 mov r1, #0x8 bl FUN_02022610 bl FUN_02023C90 strh r0, [r5, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02044120 FUN_02044120: ; 0x02044120 push {r4, lr} add r4, r0, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02044138 FUN_02044138: ; 0x02044138 mov r0, #0x0 bx lr thumb_func_start FUN_0204413C FUN_0204413C: ; 0x0204413C mov r0, #0x0 bx lr thumb_func_start FUN_02044140 FUN_02044140: ; 0x02044140 push {r4, lr} add r4, r0, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02044158 FUN_02044158: ; 0x02044158 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_020462AC bl FUN_0205F54C mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_0204416C FUN_0204416C: ; 0x0204416C push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_020462AC bl FUN_0205F55C strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02044198 FUN_02044198: ; 0x02044198 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r5, r0, #0x0 bl FUN_0201B9EC mov r1, #0x64 blx _s32_div_f lsl r0, r1, #0x10 lsr r0, r0, #0x10 cmp r0, #0xf bhs _020441D6 mov r0, #0x0 b _02044218 _020441D6: cmp r0, #0x1e bhs _020441DE mov r0, #0x1 b _02044218 _020441DE: cmp r0, #0x2d bhs _020441E6 mov r0, #0x2 b _02044218 _020441E6: cmp r0, #0x3c bhs _020441EE mov r0, #0x3 b _02044218 _020441EE: cmp r0, #0x46 bhs _020441F6 mov r0, #0x4 b _02044218 _020441F6: cmp r0, #0x50 bhs _020441FE mov r0, #0x5 b _02044218 _020441FE: cmp r0, #0x58 bhs _02044206 mov r0, #0x6 b _02044218 _02044206: cmp r0, #0x5d bhs _0204420E mov r0, #0x7 b _02044218 _0204420E: cmp r0, #0x62 bhs _02044216 mov r0, #0x8 b _02044218 _02044216: mov r0, #0x9 _02044218: ldr r2, _020442B4 ; =0x0000011D cmp r5, r2 bgt _02044244 bge _02044290 cmp r5, #0x27 bgt _02044236 cmp r5, #0x23 blt _02044230 beq _02044284 cmp r5, #0x27 beq _02044290 b _0204429C _02044230: cmp r5, #0x19 beq _02044294 b _0204429C _02044236: cmp r5, #0x36 bgt _0204423E beq _0204428C b _0204429C _0204423E: cmp r5, #0xff beq _02044288 b _0204429C _02044244: add r1, r2, #0x0 add r1, #0x8c cmp r5, r1 bgt _0204426C add r1, r2, #0x0 add r1, #0x8c cmp r5, r1 bge _02044288 add r1, r2, #0x0 add r1, #0xf cmp r5, r1 bgt _02044264 add r2, #0xf cmp r5, r2 beq _02044284 b _0204429C _02044264: add r2, #0x84 cmp r5, r2 beq _0204428C b _0204429C _0204426C: add r1, r2, #0x0 add r1, #0x8e cmp r5, r1 bgt _0204427C add r2, #0x8e cmp r5, r2 beq _02044298 b _0204429C _0204427C: add r2, #0x9b cmp r5, r2 beq _02044298 b _0204429C _02044284: mov r2, #0x0 b _0204429E _02044288: mov r2, #0x1 b _0204429E _0204428C: mov r2, #0x2 b _0204429E _02044290: mov r2, #0x3 b _0204429E _02044294: mov r2, #0x4 b _0204429E _02044298: mov r2, #0x5 b _0204429E _0204429C: mov r2, #0x0 _0204429E: add r3, r2, #0x0 mov r1, #0x14 mul r3, r1 ldr r2, _020442B8 ; =0x020F4494 lsl r1, r0, #0x1 add r0, r2, r3 ldrh r0, [r1, r0] strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r5, pc} nop _020442B4: .word 0x0000011D _020442B8: .word 0x020F4494 thumb_func_start FUN_020442BC FUN_020442BC: ; 0x020442BC push {r4-r7, lr} sub sp, #0x14 add r4, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0x1c] ldr r0, [r0, #0x0] bl FUN_02034824 add r6, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r5, [r0, #0x0] add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 str r0, [sp, #0xc] add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 str r0, [sp, #0x10] add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 add r4, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_0206BB1C ldr r0, [sp, #0x10] lsl r3, r7, #0x18 str r0, [sp, #0x0] str r6, [sp, #0x4] mov r0, #0xc str r0, [sp, #0x8] ldr r1, [r5, #0xc] ldr r2, [sp, #0xc] mov r0, #0xb lsr r3, r3, #0x18 bl FUN_0204A048 strh r0, [r4, #0x0] mov r0, #0x0 add sp, #0x14 pop {r4-r7, pc} .balign 4 thumb_func_start FUN_0204434C FUN_0204434C: ; 0x0204434C push {r4-r6, lr} add r4, r0, #0x0 add r1, r4, #0x0 add r1, #0x80 ldr r5, [r1, #0x0] bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 add r4, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_0206BB1C ldrh r1, [r6, #0x0] bl FUN_0206B9B0 mov r1, #0x4c mov r2, #0x0 add r5, r0, #0x0 bl FUN_020671BC cmp r0, #0x0 bne _020443A0 add r0, r5, #0x0 mov r1, #0x5 mov r2, #0x0 bl FUN_020671BC b _020443A2 _020443A0: mov r0, #0x0 _020443A2: strh r0, [r4, #0x0] mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_020443A8 FUN_020443A8: ; 0x020443A8 push {r3-r7, lr} add r4, r0, #0x0 add r0, #0x80 ldr r5, [r0, #0x0] add r0, r5, #0x0 bl FUN_020377AC bl FUN_020238F4 add r7, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 add r4, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_0206BB1C ldrh r1, [r6, #0x0] bl FUN_0206B9B0 mov r1, #0x7 mov r2, #0x0 bl FUN_020671BC lsl r0, r0, #0x10 lsr r5, r0, #0x10 add r0, r7, #0x0 bl FUN_020239BC lsl r0, r0, #0x10 lsr r0, r0, #0x10 cmp r5, r0 bne _0204440C mov r0, #0x0 b _0204440E _0204440C: mov r0, #0x1 _0204440E: strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02044414 FUN_02044414: ; 0x02044414 push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 add r0, #0x80 ldr r4, [r0, #0x0] ldr r0, [r4, #0xc] bl FUN_020238F4 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 str r0, [sp, #0x8] add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r5, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_0206BB1C add r6, r0, #0x0 bl FUN_0206B9AC lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r0, #0x6 bhs _02044494 mov r0, #0xb bl FUN_020669C0 add r4, r0, #0x0 bl FUN_02066978 mov r0, #0x1 add r1, r5, #0x0 bl FUN_02015CF8 mov r1, #0x3 str r1, [sp, #0x0] str r0, [sp, #0x4] ldr r1, [sp, #0x8] add r0, r4, #0x0 mov r2, #0x1 add r3, r7, #0x0 bl FUN_021ECF14 add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_0206B900 add r0, r4, #0x0 bl FUN_02016A18 _02044494: mov r0, #0x0 add sp, #0xc pop {r4-r7, pc} .balign 4 thumb_func_start FUN_0204449C FUN_0204449C: ; 0x0204449C push {r3-r7, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r5, #0x80 add r7, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_0206BB1C add r1, r4, #0x0 add r2, r6, #0x0 add r3, r7, #0x0 bl FUN_0204A120 mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020444F4 FUN_020444F4: ; 0x020444F4 push {r3-r7, lr} add r4, r0, #0x0 add r1, r4, #0x0 add r1, #0x80 ldr r7, [r1, #0x0] bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394F0 add r4, r0, #0x0 ldr r0, [r7, #0xc] bl FUN_0206BB1C add r1, r4, #0x0 bl FUN_0206B9B0 mov r2, #0x0 mov r1, #0x4c add r4, r0, #0x0 strh r2, [r6, #0x0] bl FUN_020671BC cmp r0, #0x0 beq _02044556 mov r0, #0x0 pop {r3-r7, pc} _02044556: add r0, r4, #0x0 mov r1, #0x36 mov r2, #0x0 bl FUN_020671BC cmp r5, r0 beq _0204458E add r0, r4, #0x0 mov r1, #0x37 mov r2, #0x0 bl FUN_020671BC cmp r5, r0 beq _0204458E add r0, r4, #0x0 mov r1, #0x38 mov r2, #0x0 bl FUN_020671BC cmp r5, r0 beq _0204458E add r0, r4, #0x0 mov r1, #0x39 mov r2, #0x0 bl FUN_020671BC cmp r5, r0 bne _02044592 _0204458E: mov r0, #0x1 strh r0, [r6, #0x0] _02044592: mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02044598 FUN_02044598: ; 0x02044598 push {r3-r7, lr} sub sp, #0x8 add r4, r0, #0x0 add r1, r4, #0x0 add r1, #0x80 ldr r1, [r1, #0x0] str r1, [sp, #0x4] bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 str r0, [sp, #0x0] add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394F0 add r5, r0, #0x0 ldr r0, [sp, #0x4] ldr r0, [r0, #0xc] bl FUN_0206BB1C bl FUN_0206B9AC lsl r0, r0, #0x18 lsr r7, r0, #0x18 ldr r1, _02044650 ; =0x00000006 ldr r0, [sp, #0x0] ldr r6, _02044654 ; =0x00000000 strh r1, [r0, #0x0] beq _02044648 _020445E4: ldr r0, [sp, #0x4] ldr r0, [r0, #0xc] bl FUN_0206BB1C add r1, r6, #0x0 bl FUN_0206B9B0 mov r1, #0x4c mov r2, #0x0 add r4, r0, #0x0 bl FUN_020671BC cmp r0, #0x0 bne _0204463E add r0, r4, #0x0 mov r1, #0x36 mov r2, #0x0 bl FUN_020671BC cmp r5, r0 beq _02044638 add r0, r4, #0x0 mov r1, #0x37 mov r2, #0x0 bl FUN_020671BC cmp r5, r0 beq _02044638 add r0, r4, #0x0 mov r1, #0x38 mov r2, #0x0 bl FUN_020671BC cmp r5, r0 beq _02044638 add r0, r4, #0x0 mov r1, #0x39 mov r2, #0x0 bl FUN_020671BC cmp r5, r0 bne _0204463E _02044638: ldr r0, [sp, #0x0] strh r6, [r0, #0x0] b _02044648 _0204463E: add r0, r6, #0x1 lsl r0, r0, #0x18 lsr r6, r0, #0x18 cmp r6, r7 blo _020445E4 _02044648: mov r0, #0x0 add sp, #0x8 pop {r3-r7, pc} nop _02044650: .word 0x00000006 _02044654: .word 0x00000000 thumb_func_start FUN_02044658 FUN_02044658: ; 0x02044658 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r5, #0x80 add r6, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_0206BB1C add r1, r6, #0x0 bl FUN_0206B9B0 bl FUN_0204A32C strh r0, [r4, #0x0] mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_0204469C FUN_0204469C: ; 0x0204469C push {r4-r7, lr} sub sp, #0xc add r4, r0, #0x0 add r1, r4, #0x0 add r1, #0x80 ldr r7, [r1, #0x0] bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 str r0, [sp, #0x4] add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394F0 str r0, [sp, #0x0] ldr r0, [r7, #0xc] bl FUN_0206BB1C bl FUN_0206B9AC lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x8] mov r4, #0x0 ldr r0, [sp, #0x4] add r5, r4, #0x0 strh r4, [r0, #0x0] ldr r0, [sp, #0x8] cmp r0, #0x0 bls _02044726 _020446EA: ldr r0, [r7, #0xc] bl FUN_0206BB1C add r1, r4, #0x0 bl FUN_0206B9B0 mov r1, #0x4c mov r2, #0x0 add r6, r0, #0x0 bl FUN_020671BC cmp r0, #0x0 bne _0204471A add r0, r6, #0x0 mov r1, #0xa0 mov r2, #0x0 bl FUN_020671BC ldr r1, [sp, #0x0] cmp r0, r1 bhi _0204471A add r0, r5, #0x1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 _0204471A: add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 ldr r0, [sp, #0x8] cmp r4, r0 blo _020446EA _02044726: ldr r0, [sp, #0x4] strh r5, [r0, #0x0] mov r0, #0x0 add sp, #0xc pop {r4-r7, pc} thumb_func_start FUN_02044730 FUN_02044730: ; 0x02044730 push {r4-r6, lr} add r5, r0, #0x0 add r1, r5, #0x0 add r1, #0x80 ldr r6, [r1, #0x0] bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r5, r0, #0x0 ldr r0, [r6, #0xc] bl FUN_0206BB1C add r1, r5, #0x0 bl FUN_0206B9B0 mov r2, #0x0 mov r1, #0x4c add r5, r0, #0x0 strh r2, [r4, #0x0] bl FUN_020671BC cmp r0, #0x0 bne _02044786 add r0, r5, #0x0 mov r1, #0xa0 mov r2, #0x0 bl FUN_020671BC strh r0, [r4, #0x0] _02044786: mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0204478C FUN_0204478C: ; 0x0204478C push {r4-r6, lr} add r6, r0, #0x0 add r1, r6, #0x0 add r1, #0x80 ldr r5, [r1, #0x0] bl FUN_02038C30 add r1, r0, #0x0 add r0, r6, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, r0, #0x0 add r0, r6, #0x0 bl FUN_02038C30 add r6, #0x80 add r1, r0, #0x0 ldr r0, [r6, #0x0] bl FUN_020394F0 add r6, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_0206BB1C bl FUN_0206B9AC lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r6, r0 blt _020447D2 mov r0, #0x0 strh r0, [r4, #0x0] pop {r4-r6, pc} _020447D2: ldr r0, [r5, #0xc] bl FUN_0206BB1C add r1, r6, #0x0 bl FUN_0206B9B0 mov r1, #0x4c mov r2, #0x0 add r5, r0, #0x0 bl FUN_020671BC cmp r0, #0x0 beq _020447F2 mov r0, #0x0 strh r0, [r4, #0x0] pop {r4-r6, pc} _020447F2: add r0, r5, #0x0 bl FUN_02068854 strh r0, [r4, #0x0] mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02044800 FUN_02044800: ; 0x02044800 push {r3-r7, lr} sub sp, #0x8 add r4, r0, #0x0 add r1, r4, #0x0 add r1, #0x80 ldr r7, [r1, #0x0] bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 str r0, [sp, #0x4] add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394F0 str r0, [sp, #0x0] ldr r0, [r7, #0xc] bl FUN_0206BB1C bl FUN_0206B9AC lsl r0, r0, #0x18 lsr r6, r0, #0x18 ldr r1, _02044884 ; =0x000000FF ldr r0, [sp, #0x4] ldr r5, _02044888 ; =0x00000000 strh r1, [r0, #0x0] beq _0204487E _02044848: ldr r0, [r7, #0xc] bl FUN_0206BB1C add r1, r5, #0x0 bl FUN_0206B9B0 mov r1, #0x4c mov r2, #0x0 add r4, r0, #0x0 bl FUN_020671BC cmp r0, #0x0 bne _02044874 add r0, r4, #0x0 bl FUN_02068854 ldr r1, [sp, #0x0] cmp r1, r0 bne _02044874 ldr r0, [sp, #0x4] strh r5, [r0, #0x0] b _0204487E _02044874: add r0, r5, #0x1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 cmp r5, r6 blo _02044848 _0204487E: mov r0, #0x0 add sp, #0x8 pop {r3-r7, pc} .balign 4 _02044884: .word 0x000000FF _02044888: .word 0x00000000 thumb_func_start FUN_0204488C FUN_0204488C: ; 0x0204488C push {r4-r6, lr} add r5, r0, #0x0 add r1, r5, #0x0 add r1, #0x80 ldr r4, [r1, #0x0] bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r5, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_0206BB1C add r1, r5, #0x0 bl FUN_0206B9B0 mov r1, #0x9 mov r2, #0x0 bl FUN_020671BC strh r0, [r6, #0x0] mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_020448D4 FUN_020448D4: ; 0x020448D4 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 add r1, r5, #0x0 add r1, #0x80 ldr r6, [r1, #0x0] bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r5, #0x80 str r0, [sp, #0x0] ldr r0, [r5, #0x0] ldr r0, [r0, #0x1c] ldr r0, [r0, #0x0] bl FUN_02034824 add r7, r0, #0x0 ldr r0, [r6, #0xc] bl FUN_0206BB1C ldr r1, [sp, #0x0] bl FUN_0206B9B0 mov r1, #0x9 mov r2, #0x0 add r5, r0, #0x0 bl FUN_020671BC add r1, sp, #0x4 strh r0, [r1, #0x0] cmp r4, #0x0 beq _02044982 add r0, r5, #0x0 mov r1, #0x6 mov r2, #0x0 bl FUN_020671BC lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r1, #0x1 mov r2, #0xb bl FUN_0206E7B8 cmp r0, #0x34 bne _0204495A mov r0, #0x96 mul r0, r4 mov r1, #0x64 blx _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 _0204495A: add r0, r5, #0x0 mov r1, #0x9a mov r2, #0x0 bl FUN_020671BC cmp r0, #0xb bne _0204496E add r0, r4, #0x1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 _0204496E: add r0, r5, #0x0 mov r1, #0x97 mov r2, #0x0 bl FUN_020671BC cmp r7, r0 bne _02044982 add r0, r4, #0x1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 _02044982: add r0, sp, #0x4 ldrh r1, [r0, #0x0] add r1, r1, r4 strh r1, [r0, #0x0] ldrh r1, [r0, #0x0] cmp r1, #0xff bls _02044994 mov r1, #0xff strh r1, [r0, #0x0] _02044994: add r0, r5, #0x0 mov r1, #0x9 add r2, sp, #0x4 bl FUN_02067830 mov r0, #0x0 add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_020449A4 FUN_020449A4: ; 0x020449A4 push {r3-r6, lr} sub sp, #0x4 add r5, r0, #0x0 add r1, r5, #0x0 add r1, #0x80 ldr r6, [r1, #0x0] bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r5, r0, #0x0 ldr r0, [r6, #0xc] bl FUN_0206BB1C add r1, r5, #0x0 bl FUN_0206B9B0 mov r1, #0x9 mov r2, #0x0 add r5, r0, #0x0 bl FUN_020671BC add r1, sp, #0x0 strh r0, [r1, #0x0] ldrh r0, [r1, #0x0] cmp r4, r0 bls _020449F8 mov r0, #0x0 b _020449FA _020449F8: sub r0, r0, r4 _020449FA: strh r0, [r1, #0x0] add r0, r5, #0x0 mov r1, #0x9 add r2, sp, #0x0 bl FUN_02067830 mov r0, #0x0 add sp, #0x4 pop {r3-r6, pc} thumb_func_start FUN_02044A0C FUN_02044A0C: ; 0x02044A0C push {r3-r7, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, #0x80 add r6, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_0206BB1C add r1, r7, #0x0 bl FUN_0206B9B0 add r4, #0x13 add r1, r4, #0x0 mov r2, #0x0 bl FUN_020671BC strh r0, [r6, #0x0] mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02044A6C FUN_02044A6C: ; 0x02044A6C push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_02054DEC strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02044A94 FUN_02044A94: ; 0x02044A94 push {r3-r7, lr} add r5, r0, #0x0 add r1, r5, #0x0 add r1, #0x80 ldr r4, [r1, #0x0] bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r5, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_0206BB1C add r1, r5, #0x0 bl FUN_0206B9B0 add r4, r0, #0x0 mov r1, #0xb0 mov r2, #0x0 bl FUN_020671BC strh r0, [r6, #0x0] add r0, r4, #0x0 mov r1, #0xb1 mov r2, #0x0 bl FUN_020671BC strh r0, [r7, #0x0] mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02044B00 FUN_02044B00: ; 0x02044B00 push {r3-r5, lr} add r5, r0, #0x0 add r1, r5, #0x0 add r1, #0x80 ldr r4, [r1, #0x0] bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r5, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_0206BB1C bl FUN_0206B9AC strh r0, [r5, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02044B2C FUN_02044B2C: ; 0x02044B2C push {r3-r7, lr} add r4, r0, #0x0 add r1, r4, #0x0 add r1, #0x80 ldr r6, [r1, #0x0] bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 str r0, [sp, #0x0] ldr r0, [r6, #0xc] bl FUN_0206BB1C bl FUN_0206B9AC mov r5, #0x0 add r7, r0, #0x0 add r4, r5, #0x0 cmp r7, #0x0 ble _02044B7A _02044B5A: ldr r0, [r6, #0xc] bl FUN_0206BB1C add r1, r5, #0x0 bl FUN_0206B9B0 mov r1, #0x4c mov r2, #0x0 bl FUN_020671BC cmp r0, #0x0 bne _02044B74 add r4, r4, #0x1 _02044B74: add r5, r5, #0x1 cmp r5, r7 blt _02044B5A _02044B7A: ldr r0, [sp, #0x0] strh r4, [r0, #0x0] mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02044B84 FUN_02044B84: ; 0x02044B84 push {r4-r7, lr} sub sp, #0xc add r4, r0, #0x0 add r1, r4, #0x0 add r1, #0x80 ldr r7, [r1, #0x0] bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 str r0, [sp, #0x4] add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394F0 str r0, [sp, #0x0] ldr r0, [r7, #0xc] bl FUN_0206BB1C bl FUN_0206B9AC mov r5, #0x0 add r4, r5, #0x0 str r0, [sp, #0x8] cmp r0, #0x0 ble _02044C00 _02044BC8: ldr r0, [sp, #0x0] cmp r5, r0 beq _02044BF8 ldr r0, [r7, #0xc] bl FUN_0206BB1C add r1, r5, #0x0 bl FUN_0206B9B0 mov r1, #0x4c mov r2, #0x0 add r6, r0, #0x0 bl FUN_020671BC cmp r0, #0x0 bne _02044BF8 add r0, r6, #0x0 mov r1, #0xa2 mov r2, #0x0 bl FUN_020671BC cmp r0, #0x0 beq _02044BF8 add r4, r4, #0x1 _02044BF8: ldr r0, [sp, #0x8] add r5, r5, #0x1 cmp r5, r0 blt _02044BC8 _02044C00: ldr r0, [sp, #0x4] strh r4, [r0, #0x0] mov r0, #0x0 add sp, #0xc pop {r4-r7, pc} .balign 4 thumb_func_start FUN_02044C0C FUN_02044C0C: ; 0x02044C0C push {r4-r7, lr} sub sp, #0xc add r4, r0, #0x0 add r1, r4, #0x0 add r1, #0x80 ldr r7, [r1, #0x0] bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 str r0, [sp, #0x0] ldr r0, [r7, #0xc] bl FUN_02022510 str r0, [sp, #0x4] ldr r0, [r7, #0xc] bl FUN_0206BB1C bl FUN_0206B9AC mov r5, #0x0 add r4, r5, #0x0 str r0, [sp, #0x8] cmp r0, #0x0 ble _02044C76 _02044C44: ldr r0, [r7, #0xc] bl FUN_0206BB1C add r1, r5, #0x0 bl FUN_0206B9B0 mov r1, #0x4c mov r2, #0x0 add r6, r0, #0x0 bl FUN_020671BC cmp r0, #0x0 bne _02044C6E add r0, r6, #0x0 mov r1, #0xa2 mov r2, #0x0 bl FUN_020671BC cmp r0, #0x0 beq _02044C6E add r4, r4, #0x1 _02044C6E: ldr r0, [sp, #0x8] add r5, r5, #0x1 cmp r5, r0 blt _02044C44 _02044C76: ldr r0, [sp, #0x4] bl FUN_0206B57C add r1, r4, r0 ldr r0, [sp, #0x0] strh r1, [r0, #0x0] mov r0, #0x0 add sp, #0xc pop {r4-r7, pc} thumb_func_start FUN_02044C88 FUN_02044C88: ; 0x02044C88 push {r3-r7, lr} add r4, r0, #0x0 add r1, r4, #0x0 add r1, #0x80 ldr r6, [r1, #0x0] bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 str r0, [sp, #0x0] ldr r0, [r6, #0xc] bl FUN_0206BB1C bl FUN_0206B9AC mov r5, #0x0 add r7, r0, #0x0 add r4, r5, #0x0 cmp r7, #0x0 ble _02044CD6 _02044CB6: ldr r0, [r6, #0xc] bl FUN_0206BB1C add r1, r5, #0x0 bl FUN_0206B9B0 mov r1, #0x4c mov r2, #0x0 bl FUN_020671BC cmp r0, #0x0 beq _02044CD0 add r4, r4, #0x1 _02044CD0: add r5, r5, #0x1 cmp r5, r7 blt _02044CB6 _02044CD6: ldr r0, [sp, #0x0] strh r4, [r0, #0x0] mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02044CE0 FUN_02044CE0: ; 0x02044CE0 push {r3-r7, lr} add r4, r0, #0x0 add r1, r4, #0x0 add r1, #0x80 ldr r5, [r1, #0x0] bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 str r0, [sp, #0x0] ldr r0, [r5, #0xc] bl FUN_0206BB1C bl FUN_0206B9AC lsl r0, r0, #0x10 lsr r6, r0, #0x10 ldr r4, _02044D40 ; =0x00000000 ldr r0, [sp, #0x0] strh r4, [r0, #0x0] beq _02044D3C mov r7, #0x99 _02044D12: ldr r0, [r5, #0xc] bl FUN_0206BB1C add r1, r4, #0x0 bl FUN_0206B9B0 add r1, r7, #0x0 mov r2, #0x0 bl FUN_020671BC cmp r0, #0x0 beq _02044D32 ldr r0, [sp, #0x0] mov r1, #0x1 strh r1, [r0, #0x0] b _02044D3C _02044D32: add r0, r4, #0x1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, r6 blo _02044D12 _02044D3C: mov r0, #0x0 pop {r3-r7, pc} .balign 4 _02044D40: .word 0x00000000 thumb_func_start FUN_02044D44 FUN_02044D44: ; 0x02044D44 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_0206BB1C add r1, r6, #0x0 bl FUN_0206B9B0 mov r1, #0x6f mov r2, #0x0 bl FUN_020671BC strh r0, [r4, #0x0] mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02044D8C FUN_02044D8C: ; 0x02044D8C push {r4-r6, lr} add r4, r0, #0x0 add r1, r4, #0x0 add r1, #0x80 ldr r6, [r1, #0x0] bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394F0 add r4, r0, #0x0 ldr r0, [r6, #0xc] bl FUN_0206BB1C add r1, r4, #0x0 bl FUN_0206B9B0 mov r1, #0x4c mov r2, #0x0 add r6, r0, #0x0 bl FUN_020671BC cmp r0, #0x0 beq _02044DDA mov r0, #0x0 strh r0, [r5, #0x0] pop {r4-r6, pc} _02044DDA: mov r4, #0x0 add r0, r6, #0x0 mov r1, #0x36 add r2, r4, #0x0 bl FUN_020671BC cmp r0, #0x0 beq _02044DF0 add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 _02044DF0: add r0, r6, #0x0 mov r1, #0x37 mov r2, #0x0 bl FUN_020671BC cmp r0, #0x0 beq _02044E04 add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 _02044E04: add r0, r6, #0x0 mov r1, #0x38 mov r2, #0x0 bl FUN_020671BC cmp r0, #0x0 beq _02044E18 add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 _02044E18: add r0, r6, #0x0 mov r1, #0x39 mov r2, #0x0 bl FUN_020671BC cmp r0, #0x0 beq _02044E2C add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 _02044E2C: strh r4, [r5, #0x0] mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02044E34 FUN_02044E34: ; 0x02044E34 push {r4-r6, lr} add r4, r0, #0x0 add r1, r4, #0x0 add r1, #0x80 ldr r5, [r1, #0x0] bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394F0 add r4, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_0206BB1C add r1, r6, #0x0 bl FUN_0206B9B0 add r1, r4, #0x0 bl FUN_020699A4 mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02044E78 FUN_02044E78: ; 0x02044E78 push {r3-r7, lr} add r4, r0, #0x0 add r1, r4, #0x0 add r1, #0x80 ldr r5, [r1, #0x0] bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394F0 add r4, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_0206BB1C add r1, r7, #0x0 bl FUN_0206B9B0 add r4, #0x36 add r1, r4, #0x0 mov r2, #0x0 bl FUN_020671BC strh r0, [r6, #0x0] mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02044ED8 FUN_02044ED8: ; 0x02044ED8 push {r4-r6, lr} add r5, r0, #0x0 add r1, r5, #0x0 add r1, #0x80 ldr r4, [r1, #0x0] bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r5, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_0206BB1C add r1, r5, #0x0 bl FUN_0206B9B0 mov r1, #0x6 mov r2, #0x0 bl FUN_020671BC strh r0, [r6, #0x0] mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02044F20 FUN_02044F20: ; 0x02044F20 push {r3-r5, lr} add r5, r0, #0x0 add r1, r5, #0x0 add r1, #0x80 ldr r4, [r1, #0x0] bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 add r5, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_0206BB1C add r1, r5, #0x0 bl FUN_0206B9B0 mov r2, #0x0 add r1, sp, #0x0 strh r2, [r1, #0x0] mov r1, #0x6 add r2, sp, #0x0 bl FUN_02067830 mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02044F58 FUN_02044F58: ; 0x02044F58 push {r3-r7, lr} sub sp, #0x8 add r4, r0, #0x0 add r1, r4, #0x0 add r1, #0x80 ldr r7, [r1, #0x0] bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 str r0, [sp, #0x4] add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394F0 str r0, [sp, #0x0] ldr r0, [r7, #0xc] bl FUN_0206BB1C bl FUN_0206B9AC lsl r0, r0, #0x18 lsr r6, r0, #0x18 ldr r5, _02044FE4 ; =0x00000000 ldr r0, [sp, #0x4] strh r5, [r0, #0x0] beq _02044FDE _02044F9E: ldr r0, [r7, #0xc] bl FUN_0206BB1C add r1, r5, #0x0 bl FUN_0206B9B0 mov r1, #0x4c mov r2, #0x0 add r4, r0, #0x0 bl FUN_020671BC cmp r0, #0x0 bne _02044FD4 add r0, r4, #0x0 mov r1, #0x5 mov r2, #0x0 bl FUN_020671BC lsl r0, r0, #0x10 lsr r1, r0, #0x10 ldr r0, [sp, #0x0] cmp r0, r1 bne _02044FD4 ldr r0, [sp, #0x4] mov r1, #0x1 strh r1, [r0, #0x0] b _02044FDE _02044FD4: add r0, r5, #0x1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 cmp r5, r6 blo _02044F9E _02044FDE: mov r0, #0x0 add sp, #0x8 pop {r3-r7, pc} .balign 4 _02044FE4: .word 0x00000000 thumb_func_start FUN_02044FE8 FUN_02044FE8: ; 0x02044FE8 push {r3-r7, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 str r0, [sp, #0x0] add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_0206BB1C add r1, r4, #0x0 bl FUN_0206B9B0 mov r4, #0x0 add r6, r0, #0x0 add r5, r4, #0x0 add r7, r4, #0x0 _0204502A: lsl r0, r4, #0x18 lsr r0, r0, #0x18 add r1, r7, #0x0 bl FUN_0207FC5C add r1, r0, #0x0 add r0, r6, #0x0 mov r2, #0x0 bl FUN_020671BC cmp r0, #0x0 beq _02045048 add r0, r5, #0x1 lsl r0, r0, #0x10 lsr r5, r0, #0x10 _02045048: add r0, r4, #0x1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, #0x50 blo _0204502A ldr r0, [sp, #0x0] strh r5, [r0, #0x0] mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0204505C FUN_0204505C: ; 0x0204505C push {r3-r7, lr} sub sp, #0x10 add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 str r0, [sp, #0x0] add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_0206BB1C bl FUN_0206B9AC lsl r0, r0, #0x10 add r4, #0x80 lsr r6, r0, #0x10 ldr r0, [r4, #0x0] ldr r0, [r0, #0xc] bl FUN_0206BB1C str r0, [sp, #0xc] mov r0, #0x0 str r0, [sp, #0x8] str r0, [sp, #0x4] _0204509A: mov r5, #0x0 cmp r6, #0x0 bls _020450E8 ldr r0, [sp, #0x8] lsl r0, r0, #0x18 lsr r7, r0, #0x18 _020450A6: ldr r0, [sp, #0xc] add r1, r5, #0x0 bl FUN_0206B9B0 mov r1, #0x4c mov r2, #0x0 add r4, r0, #0x0 bl FUN_020671BC cmp r0, #0x0 bne _020450E8 add r0, r7, #0x0 mov r1, #0x0 bl FUN_0207FC5C add r1, r0, #0x0 add r0, r4, #0x0 mov r2, #0x0 bl FUN_020671BC cmp r0, #0x0 beq _020450DE ldr r0, [sp, #0x4] add r0, r0, #0x1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x4] b _020450E8 _020450DE: add r0, r5, #0x1 lsl r0, r0, #0x10 lsr r5, r0, #0x10 cmp r5, r6 blo _020450A6 _020450E8: ldr r0, [sp, #0x8] add r0, r0, #0x1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x8] cmp r0, #0x50 blo _0204509A ldr r1, [sp, #0x4] ldr r0, [sp, #0x0] strh r1, [r0, #0x0] mov r0, #0x0 add sp, #0x10 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02045104 FUN_02045104: ; 0x02045104 push {r3-r7, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r5, #0x80 add r6, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_0206BB1C add r1, r7, #0x0 bl FUN_0206B9B0 add r5, r0, #0x0 lsl r0, r6, #0x18 lsr r0, r0, #0x18 mov r1, #0x0 bl FUN_0207FC5C add r1, r0, #0x0 add r0, r5, #0x0 mov r2, #0x0 bl FUN_020671BC strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02045170 FUN_02045170: ; 0x02045170 push {r3-r6, lr} sub sp, #0x4 add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r4, r0, #0x0 mov r1, #0x1 add r0, sp, #0x0 add r5, #0x80 strb r1, [r0, #0x0] ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_0206BB1C add r1, r6, #0x0 bl FUN_0206B9B0 add r5, r0, #0x0 lsl r0, r4, #0x18 lsr r0, r0, #0x18 mov r1, #0x0 bl FUN_0207FC5C add r1, r0, #0x0 add r0, r5, #0x0 add r2, sp, #0x0 bl FUN_02067830 mov r0, #0x0 add sp, #0x4 pop {r3-r6, pc} .balign 4 thumb_func_start FUN_020451D0 FUN_020451D0: ; 0x020451D0 push {r3-r7, lr} sub sp, #0x8 add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 str r0, [sp, #0x0] add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_0206BB1C bl FUN_0206B9AC lsl r0, r0, #0x10 add r4, #0x80 lsr r6, r0, #0x10 ldr r0, [r4, #0x0] ldr r0, [r0, #0xc] bl FUN_0206BB1C add r7, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x4] _0204520C: mov r5, #0x0 cmp r6, #0x0 bls _0204524C _02045212: add r0, r7, #0x0 add r1, r5, #0x0 bl FUN_0206B9B0 mov r1, #0x4c mov r2, #0x0 add r4, r0, #0x0 bl FUN_020671BC cmp r0, #0x0 beq _02045242 add r0, r4, #0x0 mov r1, #0x3 mov r2, #0x0 bl FUN_020671BC cmp r0, #0x0 beq _02045242 ldr r0, [sp, #0x0] mov r1, #0x1 strh r1, [r0, #0x0] add sp, #0x8 mov r0, #0x0 pop {r3-r7, pc} _02045242: add r0, r5, #0x1 lsl r0, r0, #0x10 lsr r5, r0, #0x10 cmp r5, r6 blo _02045212 _0204524C: ldr r0, [sp, #0x4] add r0, r0, #0x1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x4] cmp r0, #0x50 blo _0204520C ldr r1, [sp, #0x0] mov r0, #0x0 strh r0, [r1, #0x0] add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_02045264 FUN_02045264: ; 0x02045264 mov r0, #0x0 bx lr thumb_func_start FUN_02045268 FUN_02045268: ; 0x02045268 push {r3-r7, lr} add r4, r0, #0x0 add r1, r4, #0x0 add r1, #0x80 ldr r6, [r1, #0x0] bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 mov r4, #0x0 ldr r7, _020452B0 ; =0x020F450C str r0, [sp, #0x0] add r5, r4, #0x0 _02045288: ldr r0, [r6, #0xc] bl FUN_0206F158 lsl r1, r4, #0x2 ldrh r1, [r7, r1] mov r2, #0x4 bl FUN_0206EEF8 add r0, r5, r0 lsl r0, r0, #0x10 lsr r5, r0, #0x10 add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #0x7 blo _02045288 ldr r0, [sp, #0x0] strh r5, [r0, #0x0] mov r0, #0x0 pop {r3-r7, pc} .balign 4 _020452B0: .word 0x020F450C thumb_func_start FUN_020452B4 FUN_020452B4: ; 0x020452B4 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394F0 mov r5, #0x0 ldr r2, _02045300 ; =0x020F450C strh r5, [r4, #0x0] _020452E0: lsl r3, r5, #0x2 ldrh r1, [r2, r3] cmp r0, r1 bne _020452F0 ldr r0, _02045304 ; =0x020F450E ldrh r0, [r0, r3] strh r0, [r4, #0x0] b _020452FA _020452F0: add r1, r5, #0x1 lsl r1, r1, #0x10 lsr r5, r1, #0x10 cmp r5, #0x7 blo _020452E0 _020452FA: mov r0, #0x0 pop {r3-r5, pc} nop _02045300: .word 0x020F450C _02045304: .word 0x020F450E thumb_func_start FUN_02045308 FUN_02045308: ; 0x02045308 push {r4-r7, lr} sub sp, #0xc add r4, r0, #0x0 add r1, r4, #0x0 add r1, #0x80 ldr r7, [r1, #0x0] bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 str r0, [sp, #0x8] add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 str r0, [sp, #0x4] add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394F0 str r0, [sp, #0x0] mov r4, #0x0 ldr r0, [sp, #0x8] add r6, r4, #0x0 strh r4, [r0, #0x0] ldr r0, [sp, #0x4] strh r4, [r0, #0x0] _02045358: ldr r0, [r7, #0xc] lsl r5, r4, #0x2 bl FUN_0206F158 ldr r1, _02045394 ; =0x020F450C mov r2, #0x4 ldrh r1, [r1, r5] bl FUN_0206EEF8 add r0, r6, r0 lsl r0, r0, #0x10 lsr r6, r0, #0x10 ldr r0, [sp, #0x0] cmp r6, r0 blo _02045384 ldr r0, _02045394 ; =0x020F450C ldrh r1, [r0, r5] ldr r0, [sp, #0x8] strh r1, [r0, #0x0] ldr r0, [sp, #0x4] strh r4, [r0, #0x0] b _0204538E _02045384: add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #0x7 blo _02045358 _0204538E: mov r0, #0x0 add sp, #0xc pop {r4-r7, pc} .balign 4 _02045394: .word 0x020F450C thumb_func_start FUN_02045398 FUN_02045398: ; 0x02045398 mov r0, #0x0 bx lr thumb_func_start FUN_0204539C FUN_0204539C: ; 0x0204539C mov r0, #0x0 bx lr thumb_func_start FUN_020453A0 FUN_020453A0: ; 0x020453A0 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 ldr r1, _020453EC ; =0x020F4528 lsl r2, r4, #0x2 ldrh r1, [r1, r2] strh r1, [r6, #0x0] ldr r1, _020453F0 ; =0x020F452A ldrh r1, [r1, r2] strh r1, [r0, #0x0] mov r0, #0x0 pop {r4-r6, pc} .balign 4 _020453EC: .word 0x020F4528 _020453F0: .word 0x020F452A thumb_func_start FUN_020453F4 FUN_020453F4: ; 0x020453F4 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_02024DA0 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02024D64 strh r0, [r5, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02045424 FUN_02045424: ; 0x02045424 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_02024DA0 bl FUN_02024D80 mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_02045438 FUN_02045438: ; 0x02045438 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_02034E30 bl FUN_02034E20 bl FUN_02055474 strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02045468 FUN_02045468: ; 0x02045468 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_02034E30 bl FUN_02034E20 mov r1, #0x1 bl FUN_02055488 mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_02045484 FUN_02045484: ; 0x02045484 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r6, r0, #0x0 cmp r4, #0x8 blo _020454B6 bl ErrorHandling _020454B6: add r5, #0x80 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_020238F4 add r1, r4, #0x0 bl FUN_020239D0 strh r0, [r6, #0x0] mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_020454CC FUN_020454CC: ; 0x020454CC push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r4, r0, #0x0 cmp r4, #0x8 blo _020454EA bl ErrorHandling _020454EA: add r5, #0x80 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_020238F4 add r1, r4, #0x0 bl FUN_020239E4 mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02045500 FUN_02045500: ; 0x02045500 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_020462AC bl FUN_0205ECE0 strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0204552C FUN_0204552C: ; 0x0204552C push {r3-r7, lr} add r6, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r6, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 mov r4, #0x0 ldr r7, _02045578 ; =0x020F4574 str r0, [sp, #0x0] add r5, r4, #0x0 _02045548: add r0, r6, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_020238F4 ldrb r1, [r7, r4] bl FUN_020239D0 cmp r0, #0x1 bne _02045564 add r0, r5, #0x1 lsl r0, r0, #0x10 lsr r5, r0, #0x10 _02045564: add r0, r4, #0x1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, #0x8 blo _02045548 ldr r0, [sp, #0x0] strh r5, [r0, #0x0] mov r0, #0x0 pop {r3-r7, pc} nop _02045578: .word 0x020F4574 thumb_func_start FUN_0204557C FUN_0204557C: ; 0x0204557C push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_020462AC bl FUN_0205ECD4 mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_02045590 FUN_02045590: ; 0x02045590 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_020462AC bl FUN_0205ED3C strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020455BC FUN_020455BC: ; 0x020455BC push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_020462AC bl FUN_0205ED1C mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_020455D0 FUN_020455D0: ; 0x020455D0 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_020462AC bl FUN_0205ED2C mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_020455E4 FUN_020455E4: ; 0x020455E4 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_020462AC bl FUN_0205ED6C strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02045610 FUN_02045610: ; 0x02045610 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_020462AC bl FUN_0205ED4C mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_02045624 FUN_02045624: ; 0x02045624 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_020462AC bl FUN_0205ED5C mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_02045638 FUN_02045638: ; 0x02045638 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r5, #0x80 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_020462AC bl FUN_0205ED0C strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02045664 FUN_02045664: ; 0x02045664 push {r3, lr} add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_020462AC bl FUN_0205ECFC mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_02045678 FUN_02045678: ; 0x02045678 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_020462AC ldr r2, [r5, #0x8] add r4, r0, #0x0 add r1, r2, #0x1 str r1, [r5, #0x8] ldrb r1, [r2, #0x0] cmp r1, #0x0 beq _020456A6 cmp r1, #0x1 beq _0204569E cmp r1, #0x2 beq _020456AE b _020456CC _0204569E: mov r1, #0x1 bl FUN_0205F264 b _020456D0 _020456A6: mov r1, #0x0 bl FUN_0205F264 b _020456D0 _020456AE: add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r5, r0, #0x0 add r0, r4, #0x0 mov r1, #0x2 bl FUN_0205F264 strh r0, [r5, #0x0] b _020456D0 _020456CC: bl ErrorHandling _020456D0: mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_020456D4 FUN_020456D4: ; 0x020456D4 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_020462AC ldr r2, [r5, #0x8] add r4, r0, #0x0 add r1, r2, #0x1 str r1, [r5, #0x8] ldrb r1, [r2, #0x0] cmp r1, #0x0 beq _02045700 cmp r1, #0x1 beq _020456FA cmp r1, #0x2 beq _02045706 b _02045722 _020456FA: bl FUN_0205F274 b _02045726 _02045700: bl FUN_0205F284 b _02045726 _02045706: add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0205F294 strh r0, [r5, #0x0] b _02045726 _02045722: bl ErrorHandling _02045726: mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0204572C FUN_0204572C: ; 0x0204572C push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_020462AC ldr r2, [r5, #0x8] add r4, r0, #0x0 add r1, r2, #0x1 str r1, [r5, #0x8] ldrb r1, [r2, #0x0] cmp r1, #0x0 beq _02045758 cmp r1, #0x1 beq _02045752 cmp r1, #0x2 beq _0204575E b _0204577A _02045752: bl FUN_0205F2A4 b _0204577E _02045758: bl FUN_0205F2B4 b _0204577E _0204575E: add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0205F2C4 strh r0, [r5, #0x0] b _0204577E _0204577A: bl ErrorHandling _0204577E: mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02045784 FUN_02045784: ; 0x02045784 push {r3-r7, lr} add r4, r0, #0x0 add r1, r4, #0x0 add r1, #0x80 ldr r5, [r1, #0x0] bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 add r4, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_0206F158 add r1, r6, #0x0 add r2, r7, #0x0 mov r3, #0x4 bl FUN_0206ED38 strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r7, pc} thumb_func_start FUN_020457DC FUN_020457DC: ; 0x020457DC push {r3-r7, lr} add r4, r0, #0x0 add r1, r4, #0x0 add r1, #0x80 ldr r5, [r1, #0x0] bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 add r4, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_0206F158 add r1, r6, #0x0 add r2, r7, #0x0 mov r3, #0x4 bl FUN_0206EDD4 strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02045834 FUN_02045834: ; 0x02045834 push {r3-r7, lr} add r4, r0, #0x0 add r1, r4, #0x0 add r1, #0x80 ldr r5, [r1, #0x0] bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 add r4, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_0206F158 add r1, r6, #0x0 add r2, r7, #0x0 mov r3, #0x4 bl FUN_0206ED24 strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r7, pc} thumb_func_start FUN_0204588C FUN_0204588C: ; 0x0204588C push {r3-r7, lr} add r4, r0, #0x0 add r1, r4, #0x0 add r1, #0x80 ldr r5, [r1, #0x0] bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 add r4, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_0206F158 add r1, r6, #0x0 add r2, r7, #0x0 mov r3, #0xb bl FUN_0206EE50 strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r7, pc} thumb_func_start FUN_020458E4 FUN_020458E4: ; 0x020458E4 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02054CB0 strh r0, [r5, #0x0] mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02045918 FUN_02045918: ; 0x02045918 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r5, r0, #0x0 add r0, r4, #0x0 mov r1, #0x5 mov r2, #0xb bl FUN_0206E7B8 strh r0, [r5, #0x0] mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02045950 FUN_02045950: ; 0x02045950 mov r0, #0x0 bx lr thumb_func_start FUN_02045954 FUN_02045954: ; 0x02045954 mov r0, #0x0 bx lr thumb_func_start FUN_02045958 FUN_02045958: ; 0x02045958 push {r4-r6, lr} add r4, r0, #0x0 add r1, r4, #0x0 add r1, #0x80 ldr r1, [r1, #0x0] ldr r5, [r1, #0xc] bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02026CC4 add r1, r6, #0x0 bl FUN_02025D6C strh r0, [r4, #0x0] mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_020459AC FUN_020459AC: ; 0x020459AC push {r4, lr} add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_020459E8 FUN_020459E8: ; 0x020459E8 push {r4-r6, lr} add r4, r0, #0x0 add r1, r4, #0x0 add r1, #0x80 ldr r1, [r1, #0x0] ldr r5, [r1, #0xc] bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02026CC4 add r1, r6, #0x0 bl FUN_02025D94 strh r0, [r4, #0x0] mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02045A3C FUN_02045A3C: ; 0x02045A3C push {r4, lr} add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02045A78 FUN_02045A78: ; 0x02045A78 push {r4-r6, lr} add r4, r0, #0x0 add r1, r4, #0x0 add r1, #0x80 ldr r1, [r1, #0x0] ldr r5, [r1, #0xc] bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02026CC4 add r1, r6, #0x0 bl FUN_02026298 strh r0, [r4, #0x0] mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02045ACC FUN_02045ACC: ; 0x02045ACC push {r4, lr} add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02045B08 FUN_02045B08: ; 0x02045B08 push {r4, lr} add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02045B44 FUN_02045B44: ; 0x02045B44 push {r4, lr} add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02045B80 FUN_02045B80: ; 0x02045B80 push {r3-r5, lr} add r5, r0, #0x0 add r1, r5, #0x0 add r1, #0x80 ldr r1, [r1, #0x0] ldr r4, [r1, #0xc] bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r0, r5, #0x0 bl FUN_02038C30 add r5, #0x80 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_020394B8 add r0, r4, #0x0 bl FUN_02026CC4 mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02045BC8 FUN_02045BC8: ; 0x02045BC8 push {r4, lr} add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02045C04 FUN_02045C04: ; 0x02045C04 push {r4, lr} add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02045C40 FUN_02045C40: ; 0x02045C40 push {r4, lr} add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02045C7C FUN_02045C7C: ; 0x02045C7C push {r3-r7, lr} add r4, r0, #0x0 add r1, r4, #0x0 add r1, #0x80 ldr r1, [r1, #0x0] ldr r5, [r1, #0xc] bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r7, r0, #0x0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02026CC4 add r1, r6, #0x0 add r2, r7, #0x0 bl FUN_020260C4 strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02045CD4 FUN_02045CD4: ; 0x02045CD4 push {r4, lr} add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02045D10 FUN_02045D10: ; 0x02045D10 push {r4, lr} add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02045D4C FUN_02045D4C: ; 0x02045D4C push {r4, lr} add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r0, r4, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r0, r4, #0x0 bl FUN_02038C30 add r4, #0x80 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_020394B8 mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02045D88 FUN_02045D88: ; 0x02045D88 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r4, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] mov r1, #0x13 bl FUN_02039438 add r1, r5, #0x0 add r1, #0x80 lsl r2, r4, #0x18 add r6, r0, #0x0 ldr r1, [r1, #0x0] mov r0, #0x20 lsr r2, r2, #0x18 bl FUN_02037CF0 str r0, [r6, #0x0] ldr r1, _02045DCC ; =FUN_0203BC04 add r0, r5, #0x0 bl FUN_02038B5C mov r0, #0x1 pop {r4-r6, pc} nop _02045DCC: .word FUN_0203BC04 thumb_func_start FUN_02045DD0 FUN_02045DD0: ; 0x02045DD0 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, #0x80 add r5, r0, #0x0 ldr r0, [r4, #0x0] mov r1, #0x13 bl FUN_02039438 add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x0 bne _02045DFC bl ErrorHandling _02045DFC: ldr r0, [r4, #0x0] bl FUN_02037D5C strh r0, [r5, #0x0] ldrh r0, [r5, #0x0] cmp r0, #0x4 bne _02045E0E mov r0, #0xff strh r0, [r5, #0x0] _02045E0E: ldr r0, [r4, #0x0] bl FUN_02016A18 mov r0, #0x0 str r0, [r4, #0x0] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02045E1C FUN_02045E1C: ; 0x02045E1C mov r0, #0x0 bx lr thumb_func_start FUN_02045E20 FUN_02045E20: ; 0x02045E20 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r5, #0x80 add r6, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_0206BB1C add r1, r6, #0x0 bl FUN_0206B9B0 mov r1, #0x20 bl FUN_02088DF8 add r5, r0, #0x0 bl FUN_02088EF8 strh r0, [r4, #0x0] add r0, r5, #0x0 bl FUN_02016A18 mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02045E74 FUN_02045E74: ; 0x02045E74 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 add r0, #0x80 add r7, r1, #0x0 ldr r0, [r0, #0x0] mov r1, #0x13 str r2, [sp, #0x0] add r6, r3, #0x0 bl FUN_02039438 str r0, [sp, #0x4] mov r0, #0x20 bl FUN_02088DD8 add r4, r0, #0x0 ldr r0, [sp, #0x4] str r4, [r0, #0x0] ldr r0, [sp, #0x0] str r0, [r4, #0x0] add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020377AC bl FUN_020238F4 str r0, [r4, #0x4] add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl LoadPlayerDataAddress str r0, [r4, #0x8] str r6, [r4, #0xc] add r0, r5, #0x0 strb r7, [r4, #0x15] add r0, #0x80 ldr r0, [r0, #0x0] add r1, r4, #0x0 bl FUN_02038864 ldr r1, _02045EDC ; =FUN_0203BC04 add r0, r5, #0x0 bl FUN_02038B5C add r0, r6, #0x0 bl FUN_02016A18 add sp, #0x8 pop {r3-r7, pc} .balign 4 _02045EDC: .word FUN_0203BC04 thumb_func_start FUN_02045EE0 FUN_02045EE0: ; 0x02045EE0 mov r0, #0x1 bx lr thumb_func_start FUN_02045EE4 FUN_02045EE4: ; 0x02045EE4 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r4, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_0206BB1C add r1, r4, #0x0 bl FUN_0206B9B0 add r4, r0, #0x0 mov r1, #0x20 bl FUN_02088DF8 add r3, r0, #0x0 add r0, r5, #0x0 mov r1, #0x1 add r2, r4, #0x0 bl FUN_02045E74 mov r0, #0x1 pop {r3-r5, pc} thumb_func_start FUN_02045F24 FUN_02045F24: ; 0x02045F24 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394F0 add r4, r0, #0x0 add r0, r5, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] bl FUN_0206BB1C add r1, r6, #0x0 bl FUN_0206B9B0 add r6, r0, #0x0 mov r0, #0x20 mov r1, #0x4 bl FUN_02016998 add r3, r0, #0x0 ldr r0, _02045F80 ; =0x0000FFFF strh r4, [r3, #0x0] strh r0, [r3, #0x2] add r0, r5, #0x0 mov r1, #0x0 add r2, r6, #0x0 bl FUN_02045E74 mov r0, #0x1 pop {r4-r6, pc} .balign 4 _02045F80: .word 0x0000FFFF thumb_func_start FUN_02045F84 FUN_02045F84: ; 0x02045F84 mov r0, #0x0 bx lr thumb_func_start FUN_02045F88 FUN_02045F88: ; 0x02045F88 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, #0x80 add r5, r0, #0x0 ldr r0, [r4, #0x0] mov r1, #0x13 bl FUN_02039438 ldr r4, [r0, #0x0] cmp r4, #0x0 bne _02045FB2 bl ErrorHandling _02045FB2: ldrb r0, [r4, #0x16] cmp r0, #0x0 bne _02045FBC mov r0, #0x0 b _02045FBE _02045FBC: mov r0, #0xff _02045FBE: strh r0, [r5, #0x0] add r0, r4, #0x0 bl FUN_02088DF0 mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02045FCC FUN_02045FCC: ; 0x02045FCC push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02038C30 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x80 ldr r0, [r0, #0x0] bl FUN_020394B8 add r4, #0x80 add r5, r0, #0x0 ldr r0, [r4, #0x0] mov r1, #0x13 bl FUN_02039438 ldr r4, [r0, #0x0] cmp r4, #0x0 bne _02045FF6 bl ErrorHandling _02045FF6: ldrb r0, [r4, #0x16] cmp r0, #0x0 bne _02046000 mov r0, #0x0 b _02046002 _02046000: mov r0, #0xff _02046002: strh r0, [r5, #0x0] add r0, r4, #0x0 bl FUN_02088DF0 mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02046010 FUN_02046010: ; 0x02046010 push {r3, lr} bl ErrorHandling mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0204601C FUN_0204601C: ; 0x0204601C push {r3, lr} bl ErrorHandling mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_02046028 FUN_02046028: ; 0x02046028 mov r0, #0x0 bx lr thumb_func_start FUN_0204602C FUN_0204602C: ; 0x0204602C mov r0, #0x0 bx lr thumb_func_start FUN_02046030 FUN_02046030: ; 0x02046030 push {r4, lr} add r4, r0, #0x0 mov r0, #0xb mov r1, #0xc bl FUN_020169D8 add r2, r0, #0x0 mov r0, #0x0 strb r0, [r2, #0x0] strb r0, [r2, #0x1] strb r0, [r2, #0x2] strb r0, [r2, #0x3] strb r0, [r2, #0x4] strb r0, [r2, #0x5] strb r0, [r2, #0x6] strb r0, [r2, #0x7] strb r0, [r2, #0x8] strb r0, [r2, #0x9] strb r0, [r2, #0xa] strb r0, [r2, #0xb] ldr r0, [r4, #0x10] ldr r1, _02046064 ; =FUN_02046068 bl FUN_0204640C pop {r4, pc} nop _02046064: .word FUN_02046068 thumb_func_start FUN_02046068 FUN_02046068: ; 0x02046068 push {r4-r6, lr} sub sp, #0x38 add r6, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r6, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_020462AC ldrb r1, [r4, #0x8] cmp r1, #0xb bls _0204608A b _020461F8 _0204608A: add r2, r1, r1 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _02046096: ; jump table (using 16-bit offset) .short _020460AE - _02046096 - 2; case 0 .short _020460D4 - _02046096 - 2; case 1 .short _020460E2 - _02046096 - 2; case 2 .short _0204610A - _02046096 - 2; case 3 .short _02046118 - _02046096 - 2; case 4 .short _02046150 - _02046096 - 2; case 5 .short _02046160 - _02046096 - 2; case 6 .short _0204618A - _02046096 - 2; case 7 .short _02046198 - _02046096 - 2; case 8 .short _020461C0 - _02046096 - 2; case 9 .short _020461CE - _02046096 - 2; case 10 .short _020461E4 - _02046096 - 2; case 11 _020460AE: ldr r0, [r5, #0x38] bl FUN_02055320 strh r0, [r4, #0x4] ldr r0, [r5, #0x38] bl FUN_0205532C strh r0, [r4, #0x6] add r0, r5, #0x0 mov r1, #0x1 bl FUN_0206367C add r0, r6, #0x0 bl FUN_0204AFC8 ldrb r0, [r4, #0x8] add r0, r0, #0x1 strb r0, [r4, #0x8] b _020461F8 _020460D4: add r0, r6, #0x0 bl FUN_0204AF3C ldrb r0, [r4, #0x8] add r0, r0, #0x1 strb r0, [r4, #0x8] b _020461F8 _020460E2: bl FUN_0205F1C4 mov r0, #0xac str r0, [sp, #0x24] sub r0, #0xad str r0, [sp, #0x28] ldr r0, _02046200 ; =0x0000034F add r1, sp, #0x24 str r0, [sp, #0x2c] ldr r0, _02046204 ; =0x00000231 str r0, [sp, #0x30] mov r0, #0x1 str r0, [sp, #0x34] add r0, r6, #0x0 bl FUN_02049160 ldrb r0, [r4, #0x8] add r0, r0, #0x1 strb r0, [r4, #0x8] b _020461F8 _0204610A: add r0, r6, #0x0 bl FUN_0204AF84 ldrb r0, [r4, #0x8] add r0, r0, #0x1 strb r0, [r4, #0x8] b _020461F8 _02046118: ldr r0, [r5, #0x38] mov r1, #0x1 bl FUN_02046214 add r0, r5, #0x0 bl FUN_02046224 mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x6 str r0, [sp, #0x4] mov r0, #0x1 str r0, [sp, #0x8] mov r0, #0xb str r0, [sp, #0xc] ldr r3, _02046208 ; =0x0000FFFF add r0, r6, #0x0 mov r1, #0x3 mov r2, #0x11 bl FUN_0204C1B4 ldr r0, _0204620C ; =0x00000679 bl FUN_020054C8 ldrb r0, [r4, #0x8] add r0, r0, #0x1 strb r0, [r4, #0x8] b _020461F8 _02046150: ldr r0, _02046210 ; =0x021C48B8 ldr r2, [r0, #0x48] mov r0, #0x3 tst r0, r2 beq _020461F8 add r0, r1, #0x1 strb r0, [r4, #0x8] b _020461F8 _02046160: mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x6 str r0, [sp, #0x4] mov r0, #0x1 str r0, [sp, #0x8] mov r0, #0xb str r0, [sp, #0xc] ldr r3, _02046208 ; =0x0000FFFF add r0, r6, #0x0 mov r1, #0x3 mov r2, #0x10 bl FUN_0204C1B4 ldr r0, _0204620C ; =0x00000679 bl FUN_020054C8 ldrb r0, [r4, #0x8] add r0, r0, #0x1 strb r0, [r4, #0x8] b _020461F8 _0204618A: add r0, r6, #0x0 bl FUN_0204AF3C ldrb r0, [r4, #0x8] add r0, r0, #0x1 strb r0, [r4, #0x8] b _020461F8 _02046198: bl FUN_0205F1D4 ldrh r2, [r4, #0x6] ldrh r1, [r4, #0x4] mov r0, #0xa4 str r0, [sp, #0x10] sub r0, #0xa5 str r0, [sp, #0x14] mov r0, #0x0 str r1, [sp, #0x18] str r0, [sp, #0x20] str r2, [sp, #0x1c] add r0, r6, #0x0 add r1, sp, #0x10 bl FUN_02049160 ldrb r0, [r4, #0x8] add r0, r0, #0x1 strb r0, [r4, #0x8] b _020461F8 _020461C0: add r0, r6, #0x0 bl FUN_0204AF84 ldrb r0, [r4, #0x8] add r0, r0, #0x1 strb r0, [r4, #0x8] b _020461F8 _020461CE: ldr r0, [r5, #0x38] mov r1, #0x0 bl FUN_02046214 add r0, r6, #0x0 bl FUN_0204B00C ldrb r0, [r4, #0x8] add r0, r0, #0x1 strb r0, [r4, #0x8] b _020461F8 _020461E4: add r0, r4, #0x0 bl FUN_02016A18 add r0, r5, #0x0 mov r1, #0x0 bl FUN_0206367C add sp, #0x38 mov r0, #0x1 pop {r4-r6, pc} _020461F8: mov r0, #0x0 add sp, #0x38 pop {r4-r6, pc} nop _02046200: .word 0x0000034F _02046204: .word 0x00000231 _02046208: .word 0x0000FFFF _0204620C: .word 0x00000679 _02046210: .word 0x021C48B8 thumb_func_start FUN_02046214 FUN_02046214: ; 0x02046214 push {r4, lr} add r4, r1, #0x0 bl FUN_020553A0 add r1, r4, #0x0 bl FUN_0205889C pop {r4, pc} thumb_func_start FUN_02046224 FUN_02046224: ; 0x02046224 push {r3-r4, lr} sub sp, #0x14 add r4, r0, #0x0 ldr r0, _02046278 ; =0x000008C1 ldr r1, [r4, #0x20] bl FUN_0201EEF0 ldr r0, _0204627C ; =0x000F81B8 ldr r1, [r4, #0x20] bl FUN_0201EFE0 ldr r0, _02046280 ; =0x0350523D str r0, [sp, #0x8] ldr r0, _02046284 ; =0x0015EDB7 str r0, [sp, #0xc] ldr r0, _02046288 ; =0x023DA40E str r0, [sp, #0x10] ldr r1, [r4, #0x20] add r0, sp, #0x8 bl FUN_0201F04C ldr r1, _0204628C ; =0x00000823 add r0, sp, #0x0 strh r1, [r0, #0x0] mov r1, #0x52 lsl r1, r1, #0x4 strh r1, [r0, #0x2] mov r1, #0x0 strh r1, [r0, #0x4] ldr r1, [r4, #0x20] add r0, sp, #0x0 bl FUN_0201EF90 mov r0, #0x3 ldr r1, _02046290 ; =0x0061C000 ldr r2, [r4, #0x20] lsl r0, r0, #0xe bl FUN_0201EC94 add sp, #0x14 pop {r3-r4, pc} nop _02046278: .word 0x000008C1 _0204627C: .word 0x000F81B8 _02046280: .word 0x0350523D _02046284: .word 0x0015EDB7 _02046288: .word 0x023DA40E _0204628C: .word 0x00000823 _02046290: .word 0x0061C000 thumb_func_start FUN_02046294 FUN_02046294: ; 0x02046294 mov r0, #0xeb lsl r0, r0, #0x2 bx lr .balign 4 thumb_func_start FUN_0204629C FUN_0204629C: ; 0x0204629C ldr r3, _020462A8 ; =FUN_020DF4A4 mov r2, #0xeb mov r1, #0x0 lsl r2, r2, #0x2 bx r3 nop _020462A8: .word FUN_020DF4A4 thumb_func_start FUN_020462AC FUN_020462AC: ; 0x020462AC ldr r3, _020462B4 ; =FUN_02022610 mov r1, #0x4 bx r3 nop _020462B4: .word FUN_02022610 thumb_func_start FUN_020462B8 FUN_020462B8: ; 0x020462B8 push {r3-r5, lr} add r4, r1, #0x0 bl FUN_02046338 cmp r0, #0x0 beq _020462DE lsr r3, r4, #0x1f lsl r2, r4, #0x1d ldrb r5, [r0, #0x0] sub r2, r2, r3 mov r1, #0x1d ror r2, r1 mov r0, #0x1 add r1, r3, r2 add r2, r0, #0x0 lsl r2, r1 add r1, r5, #0x0 tst r1, r2 bne _020462E0 _020462DE: mov r0, #0x0 _020462E0: pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020462E4 FUN_020462E4: ; 0x020462E4 push {r4-r6, lr} add r4, r1, #0x0 bl FUN_02046338 cmp r0, #0x0 beq _02046308 lsr r5, r4, #0x1f lsl r3, r4, #0x1d sub r3, r3, r5 mov r2, #0x1d ror r3, r2 mov r6, #0x1 add r2, r5, r3 add r3, r6, #0x0 ldrb r1, [r0, #0x0] lsl r3, r2 orr r1, r3 strb r1, [r0, #0x0] _02046308: pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0204630C FUN_0204630C: ; 0x0204630C push {r4-r6, lr} add r4, r1, #0x0 bl FUN_02046338 cmp r0, #0x0 beq _02046334 lsr r5, r4, #0x1f lsl r3, r4, #0x1d sub r3, r3, r5 mov r2, #0x1d ror r3, r2 mov r6, #0x1 add r2, r5, r3 add r3, r6, #0x0 lsl r3, r2 mov r2, #0xff ldrb r1, [r0, #0x0] eor r2, r3 and r1, r2 strb r1, [r0, #0x0] _02046334: pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02046338 FUN_02046338: ; 0x02046338 push {r3-r5, lr} add r5, r0, #0x0 cmp r1, #0x0 bne _02046344 mov r0, #0x0 pop {r3-r5, pc} _02046344: mov r0, #0x1 lsl r0, r0, #0xe cmp r1, r0 bhs _02046364 mov r0, #0x5b lsr r4, r1, #0x3 lsl r0, r0, #0x2 cmp r4, r0 blt _0204635A bl ErrorHandling _0204635A: mov r0, #0x9 lsl r0, r0, #0x6 add r0, r5, r0 add r0, r0, r4 pop {r3-r5, pc} _02046364: sub r1, r1, r0 asr r0, r1, #0x2 lsr r0, r0, #0x1d add r0, r1, r0 asr r4, r0, #0x3 cmp r4, #0x8 blt _02046376 bl ErrorHandling _02046376: ldr r0, _0204637C ; =0x021C5A14 add r0, r0, r4 pop {r3-r5, pc} .balign 4 _0204637C: .word 0x021C5A14 thumb_func_start FUN_02046380 FUN_02046380: ; 0x02046380 push {r3-r5, lr} add r5, r0, #0x0 mov r0, #0x1 lsl r0, r0, #0xe sub r4, r1, r0 mov r0, #0x12 lsl r0, r0, #0x4 cmp r4, r0 blt _02046396 bl ErrorHandling _02046396: lsl r0, r4, #0x1 add r0, r5, r0 pop {r3-r5, pc} thumb_func_start FUN_0204639C FUN_0204639C: ; 0x0204639C push {r3-r7, lr} add r5, r0, #0x0 mov r0, #0x20 add r6, r1, #0x0 add r1, r0, #0x0 add r7, r2, #0x0 bl FUN_020169D8 add r4, r0, #0x0 mov r0, #0x0 str r0, [r4, #0x0] str r6, [r4, #0x4] str r0, [r4, #0x8] str r7, [r4, #0xc] str r0, [r4, #0x10] str r0, [r4, #0x14] mov r0, #0x20 mov r1, #0x4 str r5, [r4, #0x18] bl FUN_020169D8 str r0, [r4, #0x1c] add r0, r4, #0x0 pop {r3-r7, pc} thumb_func_start FUN_020463CC FUN_020463CC: ; 0x020463CC push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0x10] add r4, r1, #0x0 add r6, r2, #0x0 cmp r0, #0x0 beq _020463DE bl ErrorHandling _020463DE: add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_0204639C str r0, [r5, #0x10] pop {r4-r6, pc} thumb_func_start FUN_020463EC FUN_020463EC: ; 0x020463EC push {r4, lr} add r4, r0, #0x0 str r1, [r4, #0x4] mov r0, #0x0 str r0, [r4, #0x8] str r2, [r4, #0xc] ldr r0, [r4, #0x14] cmp r0, #0x0 bne _02046400 beq _0204640A _02046400: bl FUN_02016A18 mov r0, #0x0 str r0, [r4, #0x10] str r0, [r4, #0x14] _0204640A: pop {r4, pc} thumb_func_start FUN_0204640C FUN_0204640C: ; 0x0204640C push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x18] bl FUN_0204639C str r4, [r0, #0x0] ldr r1, [r4, #0x18] str r0, [r1, #0x10] pop {r4, pc} .balign 4 thumb_func_start FUN_02046420 FUN_02046420: ; 0x02046420 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0x10] cmp r0, #0x0 bne _0204642E mov r0, #0x0 pop {r3-r5, pc} _0204642E: ldr r1, [r0, #0x4] blx r1 cmp r0, #0x1 bne _02046466 _02046436: ldr r0, [r5, #0x10] ldr r4, [r0, #0x0] ldr r0, [r0, #0x14] cmp r0, #0x0 beq _02046444 bl FUN_02016A18 _02046444: ldr r0, [r5, #0x10] ldr r0, [r0, #0x1c] bl FUN_02016A18 ldr r0, [r5, #0x10] bl FUN_02016A18 str r4, [r5, #0x10] cmp r4, #0x0 bne _0204645C mov r0, #0x1 pop {r3-r5, pc} _0204645C: ldr r0, [r5, #0x10] ldr r1, [r0, #0x4] blx r1 cmp r0, #0x1 beq _02046436 _02046466: mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0204646C FUN_0204646C: ; 0x0204646C ldr r0, [r0, #0x10] cmp r0, #0x0 beq _02046476 mov r0, #0x1 bx lr _02046476: mov r0, #0x0 bx lr .balign 4 thumb_func_start FUN_0204647C FUN_0204647C: ; 0x0204647C push {r4, lr} add r4, r0, #0x0 bl FUN_0203739C cmp r0, #0x0 bne _02046492 add r0, r4, #0x0 bl FUN_020373C4 cmp r0, #0x0 beq _02046496 _02046492: mov r0, #0x1 pop {r4, pc} _02046496: mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_0204649C FUN_0204649C: ; 0x0204649C ldr r3, _020464A0 ; =FUN_02037350 bx r3 .balign 4 _020464A0: .word FUN_02037350 thumb_func_start FUN_020464A4 FUN_020464A4: ; 0x020464A4 push {r3, lr} bl FUN_020373AC cmp r0, #0x0 beq _020464B2 mov r0, #0x1 pop {r3, pc} _020464B2: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_020464B8 FUN_020464B8: ; 0x020464B8 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x0 beq _020464D6 cmp r0, #0x1 beq _020464E8 b _020464FC _020464D6: ldr r1, [r4, #0x4] ldr r2, [r4, #0x8] add r0, r5, #0x0 bl FUN_020373D4 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _020464FC _020464E8: add r0, r5, #0x0 bl FUN_0204647C cmp r0, #0x0 bne _020464FC add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x1 pop {r3-r5, pc} _020464FC: mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02046500 FUN_02046500: ; 0x02046500 push {r4-r6, lr} add r6, r0, #0x0 add r5, r1, #0x0 mov r0, #0x20 mov r1, #0xc add r4, r2, #0x0 bl FUN_020169D8 add r2, r0, #0x0 mov r0, #0x0 str r0, [r2, #0x0] str r5, [r2, #0x4] ldr r1, _02046524 ; =FUN_020464B8 add r0, r6, #0x0 str r4, [r2, #0x8] bl FUN_0204640C pop {r4-r6, pc} .balign 4 _02046524: .word FUN_020464B8 thumb_func_start FUN_02046528 FUN_02046528: ; 0x02046528 ldr r0, [r0, #0x18] bx lr thumb_func_start FUN_0204652C FUN_0204652C: ; 0x0204652C ldr r0, [r0, #0xc] bx lr thumb_func_start FUN_02046530 FUN_02046530: ; 0x02046530 add r0, #0x8 bx lr thumb_func_start FUN_02046534 FUN_02046534: ; 0x02046534 ldr r0, [r0, #0x1c] ldr r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_0204653C FUN_0204653C: ; 0x0204653C push {r4-r6, lr} add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02046530 add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x0 beq _02046562 cmp r0, #0x1 beq _02046572 b _02046580 _02046562: add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_0203780C ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02046580 _02046572: add r0, r5, #0x0 bl FUN_0204647C cmp r0, #0x0 bne _02046580 mov r0, #0x1 pop {r4-r6, pc} _02046580: mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02046584 FUN_02046584: ; 0x02046584 ldr r3, _0204658C ; =FUN_0204640C add r2, r1, #0x0 ldr r1, _02046590 ; =FUN_0204653C bx r3 .balign 4 _0204658C: .word FUN_0204640C _02046590: .word FUN_0204653C thumb_func_start FUN_02046594 FUN_02046594: ; 0x02046594 push {r3-r7, lr} add r5, r0, #0x0 add r6, r1, #0x0 mov r0, #0xb mov r1, #0x14 add r7, r2, #0x0 add r4, r3, #0x0 bl FUN_020169D8 str r4, [r0, #0x0] cmp r4, #0x0 beq _020465B0 mov r1, #0x0 str r1, [r4, #0x0] _020465B0: str r6, [r0, #0x4] str r7, [r0, #0x8] str r5, [r0, #0x10] pop {r3-r7, pc} thumb_func_start FUN_020465B8 FUN_020465B8: ; 0x020465B8 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x10] bl FUN_02047964 add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} .balign 4 thumb_func_start FUN_020465CC FUN_020465CC: ; 0x020465CC ldr r2, [r0, #0x0] cmp r2, #0x0 beq _020465D8 ldr r1, [r0, #0x10] ldr r1, [r1, #0x14] str r1, [r2, #0x0] _020465D8: ldr r0, [r0, #0x10] ldr r3, _020465E0 ; =FUN_020480B8 ldr r0, [r0, #0x14] bx r3 .balign 4 _020465E0: .word FUN_020480B8 thumb_func_start FUN_020465E4 FUN_020465E4: ; 0x020465E4 push {r3, lr} mov r2, #0x2 ldr r3, [r0, #0x0] lsl r2, r2, #0x1e tst r2, r3 bne _020465F4 bl FUN_02047F38 _020465F4: pop {r3, pc} .balign 4 thumb_func_start FUN_020465F8 FUN_020465F8: ; 0x020465F8 push {r3-r7, lr} add r7, r0, #0x0 bl FUN_02046528 add r6, r0, #0x0 add r0, r7, #0x0 bl FUN_0204652C add r5, r0, #0x0 add r0, r7, #0x0 bl FUN_02046530 add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x5 bhi _020466F8 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02046624: ; jump table (using 16-bit offset) .short _02046630 - _02046624 - 2; case 0 .short _02046648 - _02046624 - 2; case 1 .short _02046656 - _02046624 - 2; case 2 .short _02046666 - _02046624 - 2; case 3 .short _020466DA - _02046624 - 2; case 4 .short _020466EE - _02046624 - 2; case 5 _02046630: ldr r0, [r6, #0x34] bl FUN_02058780 ldr r1, [r5, #0x4] ldr r2, [r5, #0x8] add r0, r7, #0x0 bl FUN_0204AEF8 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _020466F8 _02046648: add r0, r7, #0x0 bl FUN_0204AF3C ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _020466F8 _02046656: ldr r1, [r5, #0x10] add r0, r7, #0x0 bl FUN_02046584 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _020466F8 _02046666: ldr r0, [r5, #0x10] add r1, r6, #0x0 bl FUN_020465E4 ldr r2, [r5, #0x10] ldr r1, [r2, #0x0] cmp r1, #0x0 beq _02046682 mov r0, #0x1 lsl r0, r0, #0x8 cmp r1, r0 beq _02046682 cmp r1, #0x4a bne _02046690 _02046682: mov r1, #0x4d lsl r1, r1, #0x2 ldr r1, [r2, r1] ldr r2, [r2, #0x14] add r0, r6, #0x0 bl FUN_02061080 _02046690: add r0, r5, #0x0 bl FUN_020465CC cmp r0, #0x0 bne _020466A4 add r0, r5, #0x0 bl FUN_020465B8 mov r0, #0x1 pop {r3-r7, pc} _020466A4: ldr r0, [r6, #0xc] bl FUN_020462AC bl FUN_0205ED3C cmp r0, #0x0 beq _020466BC ldr r0, [r6, #0xc] bl FUN_0206BB1C bl FUN_02085140 _020466BC: ldr r1, [r5, #0x10] add r0, r6, #0x0 bl FUN_020472F4 ldr r1, [r5, #0x10] add r0, r6, #0x0 bl FUN_020473CC add r0, r7, #0x0 bl FUN_0204AF84 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _020466F8 _020466DA: ldr r0, [r6, #0x34] bl FUN_020587B0 add r0, r7, #0x0 bl FUN_0204B00C ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _020466F8 _020466EE: add r0, r5, #0x0 bl FUN_020465B8 mov r0, #0x1 pop {r3-r7, pc} _020466F8: mov r0, #0x0 pop {r3-r7, pc} thumb_func_start FUN_020466FC FUN_020466FC: ; 0x020466FC push {r4, lr} add r4, r0, #0x0 add r0, r1, #0x0 add r1, r2, #0x0 add r2, r3, #0x0 ldr r3, [sp, #0x8] bl FUN_02046594 add r2, r0, #0x0 ldr r1, _02046718 ; =FUN_020465F8 add r0, r4, #0x0 bl FUN_0204640C pop {r4, pc} .balign 4 _02046718: .word FUN_020465F8 thumb_func_start FUN_0204671C FUN_0204671C: ; 0x0204671C push {r3, lr} mov r2, #0xf and r0, r2 cmp r0, #0x6 bhi _02046754 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02046732: ; jump table (using 16-bit offset) .short _02046754 - _02046732 - 2; case 0 .short _02046740 - _02046732 - 2; case 1 .short _0204674A - _02046732 - 2; case 2 .short _02046754 - _02046732 - 2; case 3 .short _02046754 - _02046732 - 2; case 4 .short _0204674A - _02046732 - 2; case 5 .short _02046740 - _02046732 - 2; case 6 _02046740: ldr r0, [r1, #0xc] mov r1, #0x1 bl FUN_0202E25C pop {r3, pc} _0204674A: ldr r0, [r1, #0xc] sub r2, #0x10 add r1, r2, #0x0 bl FUN_0202E25C _02046754: pop {r3, pc} .balign 4 thumb_func_start FUN_02046758 FUN_02046758: ; 0x02046758 push {r3-r7, lr} add r6, r0, #0x0 bl FUN_02046528 add r7, r0, #0x0 add r0, r6, #0x0 bl FUN_0204652C add r5, r0, #0x0 add r0, r6, #0x0 bl FUN_02046530 add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x5 bhi _020467F6 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02046784: ; jump table (using 16-bit offset) .short _02046790 - _02046784 - 2; case 0 .short _020467A2 - _02046784 - 2; case 1 .short _020467B0 - _02046784 - 2; case 2 .short _020467C0 - _02046784 - 2; case 3 .short _020467EC - _02046784 - 2; case 4 .short _020467EC - _02046784 - 2; case 5 _02046790: ldr r1, [r5, #0x4] ldr r2, [r5, #0x8] add r0, r6, #0x0 bl FUN_0204AEF8 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _020467F6 _020467A2: add r0, r6, #0x0 bl FUN_0204AF3C ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _020467F6 _020467B0: ldr r1, [r5, #0x10] add r0, r6, #0x0 bl FUN_02046584 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _020467F6 _020467C0: ldr r0, [r5, #0x10] add r1, r7, #0x0 ldr r0, [r0, #0x14] bl FUN_0204671C ldr r0, [r5, #0x10] add r1, r7, #0x0 bl FUN_02047FA4 ldr r0, [r7, #0xc] bl FUN_02029FC8 mov r1, #0x15 bl FUN_0202A170 add r0, r6, #0x0 bl FUN_0204AF84 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _020467F6 _020467EC: add r0, r5, #0x0 bl FUN_020465B8 mov r0, #0x1 pop {r3-r7, pc} _020467F6: mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020467FC FUN_020467FC: ; 0x020467FC push {r3-r7, lr} add r7, r0, #0x0 bl FUN_02046528 add r6, r0, #0x0 add r0, r7, #0x0 bl FUN_0204652C add r5, r0, #0x0 add r0, r7, #0x0 bl FUN_02046530 add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x0 beq _02046826 cmp r0, #0x1 beq _02046844 cmp r0, #0x2 beq _0204686A b _02046874 _02046826: ldr r1, [r5, #0x8] mov r0, #0x5 lsl r1, r1, #0x10 lsr r1, r1, #0x10 mov r2, #0x1 bl FUN_0200433C ldr r1, [r5, #0x10] add r0, r7, #0x0 bl FUN_02046584 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02046874 _02046844: ldr r0, [r5, #0x10] add r1, r6, #0x0 ldr r0, [r0, #0x14] bl FUN_0204671C ldr r0, [r5, #0x10] add r1, r6, #0x0 bl FUN_02047FA4 ldr r0, [r6, #0xc] bl FUN_02029FC8 mov r1, #0x15 bl FUN_0202A170 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02046874 _0204686A: add r0, r5, #0x0 bl FUN_020465B8 mov r0, #0x1 pop {r3-r7, pc} _02046874: mov r0, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02046878 FUN_02046878: ; 0x02046878 push {r3-r7, lr} add r6, r0, #0x0 bl FUN_02046528 add r7, r0, #0x0 add r0, r6, #0x0 bl FUN_0204652C add r5, r0, #0x0 add r0, r6, #0x0 bl FUN_02046530 add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x5 bhi _02046922 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _020468A4: ; jump table (using 16-bit offset) .short _020468B0 - _020468A4 - 2; case 0 .short _020468C2 - _020468A4 - 2; case 1 .short _020468D0 - _020468A4 - 2; case 2 .short _020468E0 - _020468A4 - 2; case 3 .short _0204690A - _020468A4 - 2; case 4 .short _02046918 - _020468A4 - 2; case 5 _020468B0: ldr r1, [r5, #0x4] ldr r2, [r5, #0x8] add r0, r6, #0x0 bl FUN_0204AEF8 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02046922 _020468C2: add r0, r6, #0x0 bl FUN_0204AF3C ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02046922 _020468D0: ldr r1, [r5, #0x10] add r0, r6, #0x0 bl FUN_02046584 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02046922 _020468E0: ldr r0, [r5, #0x10] add r1, r7, #0x0 bl FUN_02047FA4 mov r1, #0x4e ldr r2, [r5, #0x10] lsl r1, r1, #0x2 add r0, r7, #0x0 add r1, r2, r1 bl FUN_02060044 add r0, r5, #0x0 bl FUN_020465CC add r0, r6, #0x0 bl FUN_0204AF84 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02046922 _0204690A: add r0, r6, #0x0 bl FUN_0204B00C ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02046922 _02046918: add r0, r5, #0x0 bl FUN_020465B8 mov r0, #0x1 pop {r3-r7, pc} _02046922: mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02046928 FUN_02046928: ; 0x02046928 push {r4, lr} add r4, r0, #0x0 add r0, r1, #0x0 add r1, r2, #0x0 add r2, r3, #0x0 ldr r3, [sp, #0x8] bl FUN_02046594 add r2, r0, #0x0 ldr r1, _02046944 ; =FUN_02046878 add r0, r4, #0x0 bl FUN_0204640C pop {r4, pc} .balign 4 _02046944: .word FUN_02046878 thumb_func_start FUN_02046948 FUN_02046948: ; 0x02046948 push {r3-r7, lr} add r4, r1, #0x0 add r7, r0, #0x0 add r5, r2, #0x0 bl FUN_02046528 add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_02244558 add r4, r0, #0x0 bl FUN_020475A0 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_020475B0 add r3, r0, #0x0 add r0, r7, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 str r5, [sp, #0x0] bl FUN_02046928 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0204697C FUN_0204697C: ; 0x0204697C push {r3-r7, lr} add r5, r0, #0x0 add r6, r1, #0x0 mov r0, #0xb mov r1, #0x14 add r7, r2, #0x0 add r4, r3, #0x0 bl FUN_020169D8 str r4, [r0, #0xc] cmp r4, #0x0 beq _02046998 mov r1, #0x0 str r1, [r4, #0x0] _02046998: str r6, [r0, #0x4] str r7, [r0, #0x8] str r5, [r0, #0x10] mov r1, #0x0 str r1, [r0, #0x0] pop {r3-r7, pc} thumb_func_start FUN_020469A4 FUN_020469A4: ; 0x020469A4 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x10] bl FUN_02047964 add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} .balign 4 thumb_func_start FUN_020469B8 FUN_020469B8: ; 0x020469B8 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] add r4, r1, #0x0 bl FUN_020462AC bl FUN_0205F214 cmp r0, #0x0 beq _020469F2 add r0, r4, #0x0 bl FUN_020475A0 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_020475B0 add r2, r0, #0x0 add r0, r4, #0x0 add r1, r6, #0x0 mov r3, #0x0 bl FUN_02046594 add r2, r0, #0x0 ldr r1, _02046A18 ; =FUN_02046C1C add r0, r5, #0x0 bl FUN_020463CC pop {r4-r6, pc} _020469F2: add r0, r4, #0x0 bl FUN_020475A0 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_020475B0 add r2, r0, #0x0 add r0, r4, #0x0 add r1, r6, #0x0 mov r3, #0x0 bl FUN_0204697C add r2, r0, #0x0 ldr r1, _02046A1C ; =FUN_02046A88 add r0, r5, #0x0 bl FUN_020463CC pop {r4-r6, pc} .balign 4 _02046A18: .word FUN_02046C1C _02046A1C: .word FUN_02046A88 thumb_func_start FUN_02046A20 FUN_02046A20: ; 0x02046A20 push {r4-r6, lr} ldr r0, [r0, #0xc] add r5, r1, #0x0 add r4, r2, #0x0 bl FUN_020462AC bl FUN_0205F214 cmp r0, #0x0 beq _02046A5A add r0, r4, #0x0 bl FUN_020475A0 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_020475B0 add r2, r0, #0x0 add r0, r4, #0x0 add r1, r6, #0x0 mov r3, #0x0 bl FUN_02046594 add r2, r0, #0x0 ldr r1, _02046A80 ; =FUN_02046C1C add r0, r5, #0x0 bl FUN_020463EC pop {r4-r6, pc} _02046A5A: add r0, r4, #0x0 bl FUN_020475A0 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_020475B0 add r2, r0, #0x0 add r0, r4, #0x0 add r1, r6, #0x0 mov r3, #0x0 bl FUN_0204697C add r2, r0, #0x0 ldr r1, _02046A84 ; =FUN_02046A88 add r0, r5, #0x0 bl FUN_020463EC pop {r4-r6, pc} .balign 4 _02046A80: .word FUN_02046C1C _02046A84: .word FUN_02046A88 thumb_func_start FUN_02046A88 FUN_02046A88: ; 0x02046A88 push {r4-r6, lr} add r6, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r6, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x6 bls _02046AA2 b _02046C12 _02046AA2: add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02046AAE: ; jump table (using 16-bit offset) .short _02046ABC - _02046AAE - 2; case 0 .short _02046AE0 - _02046AAE - 2; case 1 .short _02046AEE - _02046AAE - 2; case 2 .short _02046AFE - _02046AAE - 2; case 3 .short _02046BAE - _02046AAE - 2; case 4 .short _02046BC4 - _02046AAE - 2; case 5 .short _02046BF4 - _02046AAE - 2; case 6 _02046ABC: ldr r0, [r5, #0x34] bl FUN_02058780 ldr r0, [r5, #0xc] bl FUN_02029FC8 mov r1, #0x7 bl FUN_0202A0E8 ldr r1, [r4, #0x4] ldr r2, [r4, #0x8] add r0, r6, #0x0 bl FUN_0204AEF8 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02046C12 _02046AE0: add r0, r6, #0x0 bl FUN_0204AF3C ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02046C12 _02046AEE: ldr r1, [r4, #0x10] add r0, r6, #0x0 bl FUN_02046584 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02046C12 _02046AFE: ldr r0, [r4, #0x10] add r1, r5, #0x0 bl FUN_020465E4 mov r1, #0x4d ldr r2, [r4, #0x10] lsl r1, r1, #0x2 ldr r1, [r2, r1] ldr r2, [r2, #0x14] add r0, r5, #0x0 bl FUN_02061080 ldr r0, [r4, #0x10] ldr r0, [r0, #0x14] bl FUN_020480B8 cmp r0, #0x0 bne _02046B3E add r0, r4, #0x0 bl FUN_020469A4 add r5, #0x90 ldr r0, [r5, #0x0] bl FUN_0205DD40 ldr r1, _02046C18 ; =FUN_0204837C add r0, r6, #0x0 mov r2, #0x0 bl FUN_020463EC mov r0, #0x0 pop {r4-r6, pc} _02046B3E: ldr r0, [r5, #0xc] bl FUN_020462AC bl FUN_0205ED3C cmp r0, #0x0 beq _02046B56 ldr r0, [r5, #0xc] bl FUN_0206BB1C bl FUN_02085140 _02046B56: ldr r1, [r4, #0x10] add r0, r5, #0x0 bl FUN_020472F4 ldr r1, [r4, #0x10] add r0, r5, #0x0 bl FUN_020473CC add r0, r5, #0x0 add r0, #0x90 ldr r0, [r0, #0x0] bl FUN_0205E128 cmp r0, #0x0 beq _02046BA0 add r0, r5, #0x0 add r0, #0x90 ldr r0, [r0, #0x0] bl FUN_0205E0A4 cmp r0, #0x0 beq _02046B98 ldr r0, [r4, #0x10] ldr r0, [r0, #0x14] cmp r0, #0x1 beq _02046BA0 cmp r0, #0x4 beq _02046BA0 add r5, #0x90 ldr r0, [r5, #0x0] bl FUN_0205DD40 b _02046BA0 _02046B98: add r5, #0x90 ldr r0, [r5, #0x0] bl FUN_0205DD40 _02046BA0: add r0, r6, #0x0 bl FUN_0204AF84 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02046C12 _02046BAE: ldr r1, [r4, #0x10] add r0, r5, #0x0 bl FUN_02248724 add r0, r6, #0x0 bl FUN_0204B00C ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02046C12 _02046BC4: add r0, r5, #0x0 add r0, #0x90 ldr r0, [r0, #0x0] bl FUN_0205E128 cmp r0, #0x0 beq _02046BEC ldr r1, [r4, #0x10] add r2, r5, #0x0 add r2, #0x90 ldr r1, [r1, #0x14] ldr r2, [r2, #0x0] add r0, r5, #0x0 bl FUN_0205DED4 add r0, r5, #0x0 add r5, #0x90 ldr r1, [r5, #0x0] bl FUN_0205DF44 _02046BEC: ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02046C12 _02046BF4: add r0, r5, #0x0 add r0, #0x90 ldr r0, [r0, #0x0] bl FUN_0205DF9C cmp r0, #0x0 beq _02046C12 ldr r0, [r5, #0x34] bl FUN_020587B0 add r0, r4, #0x0 bl FUN_020469A4 mov r0, #0x1 pop {r4-r6, pc} _02046C12: mov r0, #0x0 pop {r4-r6, pc} nop _02046C18: .word FUN_0204837C thumb_func_start FUN_02046C1C FUN_02046C1C: ; 0x02046C1C push {r4-r7, lr} sub sp, #0xc add r7, r0, #0x0 bl FUN_02046528 add r6, r0, #0x0 add r0, r7, #0x0 bl FUN_0204652C add r5, r0, #0x0 add r0, r7, #0x0 bl FUN_02046530 add r4, r0, #0x0 ldr r0, [r6, #0xc] bl FUN_02034E30 bl FUN_02034E24 str r0, [sp, #0x0] ldr r0, [r4, #0x0] cmp r0, #0x7 bls _02046C4C b _02046DA0 _02046C4C: add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02046C58: ; jump table (using 16-bit offset) .short _02046C68 - _02046C58 - 2; case 0 .short _02046C8C - _02046C58 - 2; case 1 .short _02046C9A - _02046C58 - 2; case 2 .short _02046CAA - _02046C58 - 2; case 3 .short _02046D0E - _02046C58 - 2; case 4 .short _02046D1C - _02046C58 - 2; case 5 .short _02046D30 - _02046C58 - 2; case 6 .short _02046D94 - _02046C58 - 2; case 7 _02046C68: ldr r0, [r6, #0x34] bl FUN_02058780 ldr r0, [r6, #0xc] bl FUN_02029FC8 mov r1, #0x7 bl FUN_0202A0E8 ldr r1, [r5, #0x4] ldr r2, [r5, #0x8] add r0, r7, #0x0 bl FUN_0204AEF8 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02046DA0 _02046C8C: add r0, r7, #0x0 bl FUN_0204AF3C ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02046DA0 _02046C9A: ldr r1, [r5, #0x10] add r0, r7, #0x0 bl FUN_02046584 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02046DA0 _02046CAA: ldr r0, [r5, #0x10] add r1, r6, #0x0 bl FUN_020465E4 ldr r0, [r5, #0x10] ldr r0, [r0, #0x14] cmp r0, #0x4 bne _02046CD4 ldr r0, [r6, #0xc] bl FUN_02022504 str r0, [sp, #0x4] ldr r0, [r5, #0x10] mov r1, #0x0 ldr r0, [r0, #0x8] bl FUN_0206B9B0 add r1, r0, #0x0 ldr r0, [sp, #0x4] bl FUN_02060FE0 _02046CD4: ldr r1, [r5, #0x10] add r0, r6, #0x0 bl FUN_020472F4 ldr r0, [sp, #0x0] ldrh r0, [r0, #0x0] cmp r0, #0x0 bne _02046CFE ldr r0, [r5, #0x10] ldr r0, [r0, #0x14] cmp r0, #0x4 beq _02046CFE ldr r0, [r6, #0xc] bl FUN_02034E30 bl FUN_02034DD0 add r1, r0, #0x0 add r0, r7, #0x0 bl FUN_02049160 _02046CFE: ldr r1, [r5, #0x10] add r0, r6, #0x0 bl FUN_020473CC ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02046DA0 _02046D0E: add r0, r7, #0x0 bl FUN_0204AF84 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02046DA0 _02046D1C: ldr r0, [r6, #0x34] bl FUN_020587B0 add r0, r7, #0x0 bl FUN_0204B00C ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02046DA0 _02046D30: ldr r0, [sp, #0x0] ldrh r0, [r0, #0x0] cmp r0, #0x0 bne _02046D5C ldr r0, [r5, #0x10] ldr r0, [r0, #0x14] cmp r0, #0x4 bne _02046D4E mov r2, #0x0 ldr r1, _02046DA8 ; =0x00002262 add r0, r7, #0x0 add r3, r2, #0x0 bl FUN_02038CD8 b _02046D8C _02046D4E: mov r2, #0x0 ldr r1, _02046DAC ; =0x00002269 add r0, r7, #0x0 add r3, r2, #0x0 bl FUN_02038CD8 b _02046D8C _02046D5C: ldr r0, [r6, #0xc] bl FUN_02022510 str r0, [sp, #0x8] ldr r0, [r6, #0xc] bl FUN_0206BB1C add r5, r0, #0x0 ldr r0, [sp, #0x8] bl FUN_0206B334 cmp r0, #0x12 bne _02046D8C add r0, r5, #0x0 bl FUN_0206B9AC cmp r0, #0x6 bne _02046D8C mov r2, #0x0 ldr r1, _02046DB0 ; =0x00002276 add r0, r7, #0x0 add r3, r2, #0x0 bl FUN_02038CD8 _02046D8C: ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02046DA0 _02046D94: add r0, r5, #0x0 bl FUN_020465B8 add sp, #0xc mov r0, #0x1 pop {r4-r7, pc} _02046DA0: mov r0, #0x0 add sp, #0xc pop {r4-r7, pc} nop _02046DA8: .word 0x00002262 _02046DAC: .word 0x00002269 _02046DB0: .word 0x00002276 thumb_func_start FUN_02046DB4 FUN_02046DB4: ; 0x02046DB4 push {r3-r7, lr} add r7, r0, #0x0 add r6, r1, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, #0x90 ldr r0, [r0, #0x0] bl FUN_0205DD40 mov r0, #0xb mov r1, #0x0 bl FUN_020476CC add r1, r5, #0x0 add r4, r0, #0x0 bl FUN_02047BB0 mov r0, #0x15 mov r1, #0x0 lsl r0, r0, #0x4 str r1, [r4, r0] add r0, r0, #0x4 str r1, [r4, r0] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0223CCDC ldr r0, [r5, #0xc] bl FUN_02029FC8 mov r1, #0x7 bl FUN_0202A0E8 add r0, r4, #0x0 bl FUN_020475A0 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_020475B0 add r3, r0, #0x0 add r0, r7, #0x0 add r1, r4, #0x0 add r2, r5, #0x0 str r6, [sp, #0x0] bl FUN_020466FC pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02046E18 FUN_02046E18: ; 0x02046E18 push {r4-r7, lr} sub sp, #0xc str r0, [sp, #0x4] add r7, r1, #0x0 str r2, [sp, #0x8] add r6, r3, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, #0x90 ldr r0, [r0, #0x0] bl FUN_0205DD40 mov r0, #0xb mov r1, #0x0 bl FUN_020476CC add r1, r5, #0x0 add r4, r0, #0x0 bl FUN_02047BB0 ldr r2, [sp, #0x8] add r0, r5, #0x0 add r1, r7, #0x0 add r3, r4, #0x0 bl FUN_0223CD7C ldr r0, [sp, #0x20] cmp r0, #0x0 beq _02046E60 mov r1, #0x63 lsl r1, r1, #0x2 ldr r2, [r4, r1] mov r0, #0x8 orr r0, r2 str r0, [r4, r1] _02046E60: ldr r0, [r5, #0xc] bl FUN_02029FC8 mov r1, #0x7 bl FUN_0202A0E8 add r0, r4, #0x0 bl FUN_020475A0 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_020475B0 add r3, r0, #0x0 ldr r0, [sp, #0x4] add r1, r4, #0x0 add r2, r5, #0x0 str r6, [sp, #0x0] bl FUN_020466FC add sp, #0xc pop {r4-r7, pc} thumb_func_start FUN_02046E8C FUN_02046E8C: ; 0x02046E8C push {r3-r7, lr} add r7, r0, #0x0 bl FUN_02046528 add r6, r0, #0x0 add r0, r7, #0x0 bl FUN_0204652C add r5, r0, #0x0 add r0, r7, #0x0 bl FUN_02046530 add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x6 bhi _02046F6C add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02046EB8: ; jump table (using 16-bit offset) .short _02046EC6 - _02046EB8 - 2; case 0 .short _02046EEA - _02046EB8 - 2; case 1 .short _02046EF8 - _02046EB8 - 2; case 2 .short _02046F08 - _02046EB8 - 2; case 3 .short _02046F28 - _02046EB8 - 2; case 4 .short _02046F36 - _02046EB8 - 2; case 5 .short _02046F4A - _02046EB8 - 2; case 6 _02046EC6: ldr r0, [r6, #0x34] bl FUN_02058780 ldr r0, [r6, #0xc] bl FUN_02029FC8 mov r1, #0x7 bl FUN_0202A0E8 ldr r1, [r5, #0x4] ldr r2, [r5, #0x8] add r0, r7, #0x0 bl FUN_0204AEF8 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02046F6C _02046EEA: add r0, r7, #0x0 bl FUN_0204AF3C ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02046F6C _02046EF8: ldr r1, [r5, #0x10] add r0, r7, #0x0 bl FUN_02046584 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02046F6C _02046F08: ldr r0, [r5, #0x10] add r1, r6, #0x0 bl FUN_020465E4 ldr r1, [r5, #0x10] add r0, r6, #0x0 bl FUN_0204BAA0 ldr r1, [r5, #0x10] add r0, r6, #0x0 bl FUN_020472F4 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02046F6C _02046F28: add r0, r7, #0x0 bl FUN_0204AF84 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02046F6C _02046F36: ldr r0, [r6, #0x34] bl FUN_020587B0 add r0, r7, #0x0 bl FUN_0204B00C ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02046F6C _02046F4A: add r0, r5, #0x0 bl FUN_020465B8 add r0, r6, #0x0 bl FUN_0204BAB0 cmp r0, #0x0 bne _02046F68 add r0, r7, #0x0 mov r1, #0x3 mov r2, #0x0 bl FUN_02038D10 mov r0, #0x0 pop {r3-r7, pc} _02046F68: mov r0, #0x1 pop {r3-r7, pc} _02046F6C: mov r0, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02046F70 FUN_02046F70: ; 0x02046F70 push {r4-r6, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_020475A0 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_020475B0 add r2, r0, #0x0 add r0, r4, #0x0 add r1, r6, #0x0 mov r3, #0x0 bl FUN_02046594 add r2, r0, #0x0 ldr r1, _02046F9C ; =FUN_02046E8C add r0, r5, #0x0 bl FUN_020463CC pop {r4-r6, pc} .balign 4 _02046F9C: .word FUN_02046E8C thumb_func_start FUN_02046FA0 FUN_02046FA0: ; 0x02046FA0 push {r3-r7, lr} sub sp, #0x8 str r0, [sp, #0x4] add r6, r1, #0x0 add r7, r2, #0x0 bl FUN_02046528 add r5, r0, #0x0 mov r0, #0xb mov r1, #0x0 bl FUN_020476CC add r4, r0, #0x0 add r1, r5, #0x0 bl FUN_02047BB0 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 add r3, r4, #0x0 bl FUN_0223CD7C mov r0, #0x63 mov r1, #0x1 lsl r0, r0, #0x2 str r1, [r4, r0] ldr r0, [r5, #0xc] bl FUN_02029FC8 mov r1, #0x7 bl FUN_0202A0E8 add r0, r4, #0x0 bl FUN_020475A0 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_020475B0 add r3, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] ldr r0, [sp, #0x4] add r1, r4, #0x0 add r2, r5, #0x0 bl FUN_020466FC add sp, #0x8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02047004 FUN_02047004: ; 0x02047004 push {r3-r7, lr} add r5, r0, #0x0 bl FUN_0204652C add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02046528 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02046530 add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x6 bhi _020470A6 add r1, r0, r0 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02047030: ; jump table (using 16-bit offset) .short _0204703E - _02047030 - 2; case 0 .short _02047056 - _02047030 - 2; case 1 .short _02047064 - _02047030 - 2; case 2 .short _02047074 - _02047030 - 2; case 3 .short _0204707A - _02047030 - 2; case 4 .short _02047088 - _02047030 - 2; case 5 .short _0204709C - _02047030 - 2; case 6 _0204703E: ldr r0, [r7, #0x34] bl FUN_02058780 ldr r1, [r6, #0x4] ldr r2, [r6, #0x8] add r0, r5, #0x0 bl FUN_0204AEF8 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _020470A6 _02047056: add r0, r5, #0x0 bl FUN_0204AF3C ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _020470A6 _02047064: ldr r1, [r6, #0x10] add r0, r5, #0x0 bl FUN_02046584 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _020470A6 _02047074: add r0, r0, #0x1 str r0, [r4, #0x0] b _020470A6 _0204707A: add r0, r5, #0x0 bl FUN_0204AF84 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _020470A6 _02047088: ldr r0, [r7, #0x34] bl FUN_020587B0 add r0, r5, #0x0 bl FUN_0204B00C ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _020470A6 _0204709C: add r0, r6, #0x0 bl FUN_020465B8 mov r0, #0x1 pop {r3-r7, pc} _020470A6: mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020470AC FUN_020470AC: ; 0x020470AC push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02046528 add r1, r0, #0x0 mov r0, #0xb bl FUN_02047814 add r4, r0, #0x0 bl FUN_020475A0 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_020475B0 add r2, r0, #0x0 add r0, r4, #0x0 add r1, r6, #0x0 mov r3, #0x0 bl FUN_02046594 add r2, r0, #0x0 ldr r1, _020470E4 ; =FUN_02047004 add r0, r5, #0x0 bl FUN_0204640C pop {r4-r6, pc} nop _020470E4: .word FUN_02047004 thumb_func_start FUN_020470E8 FUN_020470E8: ; 0x020470E8 push {r4-r7, lr} sub sp, #0xc str r0, [sp, #0x4] add r6, r1, #0x0 add r5, r2, #0x0 str r3, [sp, #0x8] bl FUN_02046528 add r7, r0, #0x0 cmp r5, #0x0 beq _02047110 cmp r6, r5 beq _02047110 ldr r0, [sp, #0x8] cmp r0, #0x0 bne _0204710C mov r4, #0x13 b _0204711A _0204710C: mov r4, #0x4b b _0204711A _02047110: cmp r6, r5 bne _02047118 mov r4, #0x3 b _0204711A _02047118: mov r4, #0x1 _0204711A: add r0, r7, #0x0 add r0, #0x90 ldr r0, [r0, #0x0] bl FUN_0205DD40 mov r0, #0xb add r1, r4, #0x0 bl FUN_020476CC add r4, r0, #0x0 add r1, r7, #0x0 bl FUN_02047BB0 str r6, [r4, #0x1c] ldr r0, [sp, #0x8] str r5, [r4, #0x24] str r0, [r4, #0x20] ldr r1, [r7, #0xc] ldr r2, [sp, #0x20] add r0, r4, #0x0 bl FUN_0206ABC4 ldr r0, [r7, #0xc] bl FUN_02029FC8 mov r1, #0x8 bl FUN_0202A0E8 add r0, r4, #0x0 bl FUN_020475A0 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_020475B0 add r3, r0, #0x0 ldr r0, [sp, #0x24] add r1, r4, #0x0 str r0, [sp, #0x0] ldr r0, [sp, #0x4] add r2, r5, #0x0 bl FUN_020466FC add sp, #0xc pop {r4-r7, pc} thumb_func_start FUN_02047174 FUN_02047174: ; 0x02047174 push {r3-r7, lr} add r5, r2, #0x0 add r7, r0, #0x0 add r4, r1, #0x0 bl FUN_02046528 add r6, r0, #0x0 mov r0, #0xb add r1, r5, #0x0 bl FUN_020476CC add r5, r0, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 bl FUN_02047F1C add r0, r5, #0x0 bl FUN_020475A0 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_020475B0 add r2, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_02046594 add r2, r0, #0x0 ldr r1, _020471BC ; =FUN_02046758 add r0, r7, #0x0 bl FUN_0204640C pop {r3-r7, pc} nop _020471BC: .word FUN_02046758 thumb_func_start FUN_020471C0 FUN_020471C0: ; 0x020471C0 push {r3-r7, lr} str r0, [sp, #0x0] add r5, r1, #0x0 add r6, r2, #0x0 add r4, r3, #0x0 bl FUN_02046528 add r7, r0, #0x0 cmp r4, #0x0 beq _020471DE mov r0, #0xb mov r1, #0x5 bl FUN_020476CC b _020471E6 _020471DE: mov r0, #0xb mov r1, #0x7 bl FUN_020476CC _020471E6: add r4, r0, #0x0 add r0, r4, #0x0 add r1, r7, #0x0 add r2, r6, #0x0 bl FUN_02047BC0 add r0, r4, #0x0 bl FUN_020475A0 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_020475B0 add r2, r0, #0x0 add r0, r4, #0x0 add r1, r6, #0x0 mov r3, #0x0 bl FUN_02046594 add r2, r0, #0x0 ldr r0, [sp, #0x0] ldr r1, _0204721C ; =FUN_020467FC str r5, [r2, #0xc] bl FUN_0204640C pop {r3-r7, pc} nop _0204721C: .word FUN_020467FC thumb_func_start FUN_02047220 FUN_02047220: ; 0x02047220 push {r3-r7, lr} add r5, r0, #0x0 bl FUN_02046528 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_0204652C add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02046530 add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x0 beq _02047246 cmp r0, #0x1 beq _02047258 b _02047262 _02047246: ldr r1, _02047268 ; =FUN_02046758 add r0, r5, #0x0 add r2, r7, #0x0 bl FUN_0204640C ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02047262 _02047258: add r0, r6, #0x0 bl FUN_0204FF5C mov r0, #0x1 pop {r3-r7, pc} _02047262: mov r0, #0x0 pop {r3-r7, pc} nop _02047268: .word FUN_02046758 thumb_func_start FUN_0204726C FUN_0204726C: ; 0x0204726C push {r4-r6, lr} add r5, r0, #0x0 add r6, r1, #0x0 mov r0, #0xb add r1, r2, #0x0 bl FUN_020476CC add r4, r0, #0x0 add r1, r5, #0x0 add r2, r6, #0x0 bl FUN_02047F1C add r0, r4, #0x0 bl FUN_020475A0 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_020475B0 add r2, r0, #0x0 add r0, r4, #0x0 add r1, r6, #0x0 mov r3, #0x0 bl FUN_02046594 add r2, r0, #0x0 ldr r1, _020472AC ; =FUN_02047220 add r0, r5, #0x0 bl FUN_020463CC pop {r4-r6, pc} nop _020472AC: .word FUN_02047220 thumb_func_start FUN_020472B0 FUN_020472B0: ; 0x020472B0 push {r4-r6, lr} add r5, r0, #0x0 add r6, r1, #0x0 mov r0, #0xb add r1, r2, #0x0 bl FUN_020476CC add r4, r0, #0x0 add r1, r5, #0x0 add r2, r6, #0x0 mov r3, #0x0 bl FUN_02047D48 add r0, r4, #0x0 bl FUN_020475A0 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_020475B0 add r2, r0, #0x0 add r0, r4, #0x0 add r1, r6, #0x0 mov r3, #0x0 bl FUN_02046594 add r2, r0, #0x0 ldr r1, _020472F0 ; =FUN_02047220 add r0, r5, #0x0 bl FUN_020463CC pop {r4-r6, pc} .balign 4 _020472F0: .word FUN_02047220 thumb_func_start FUN_020472F4 FUN_020472F4: ; 0x020472F4 push {r3-r5, lr} add r4, r0, #0x0 ldr r0, [r1, #0x0] mov r3, #0x4 ldr r2, [r1, #0x14] tst r3, r0 bne _020473C8 mov r3, #0x80 add r5, r0, #0x0 tst r5, r3 bne _020473C8 cmp r0, #0x0 beq _02047318 add r3, #0x80 cmp r0, r3 beq _02047318 cmp r0, #0x4a bne _02047364 _02047318: cmp r2, #0x1 bne _0204732A ldr r0, [r4, #0xc] bl FUN_02029FC8 mov r1, #0x8 bl FUN_0202A170 pop {r3-r5, pc} _0204732A: cmp r2, #0x4 bne _020473C8 ldr r0, [r1, #0x8] mov r1, #0x0 bl FUN_0206B9B0 mov r1, #0x5 mov r2, #0x0 bl FUN_020671BC add r1, r0, #0x0 mov r0, #0x0 bl FUN_0206BB48 cmp r0, #0x0 ldr r0, [r4, #0xc] beq _02047358 bl FUN_02029FC8 mov r1, #0x9 bl FUN_0202A170 pop {r3-r5, pc} _02047358: bl FUN_02029FC8 mov r1, #0xa bl FUN_0202A170 pop {r3-r5, pc} _02047364: mov r3, #0x1 tst r3, r0 bne _02047370 mov r3, #0x10 tst r3, r0 beq _02047382 _02047370: cmp r2, #0x1 bne _020473C8 ldr r0, [r4, #0xc] bl FUN_02029FC8 mov r1, #0xb bl FUN_0202A170 pop {r3-r5, pc} _02047382: mov r3, #0x20 add r5, r0, #0x0 tst r5, r3 bne _02047390 lsl r3, r3, #0x4 tst r0, r3 beq _020473C8 _02047390: cmp r2, #0x4 bne _020473C8 ldr r0, [r1, #0x8] mov r1, #0x0 bl FUN_0206B9B0 mov r1, #0x5 mov r2, #0x0 bl FUN_020671BC add r1, r0, #0x0 mov r0, #0x0 bl FUN_0206BB48 cmp r0, #0x0 ldr r0, [r4, #0xc] beq _020473BE bl FUN_02029FC8 mov r1, #0x9 bl FUN_0202A170 pop {r3-r5, pc} _020473BE: bl FUN_02029FC8 mov r1, #0xa bl FUN_0202A170 _020473C8: pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020473CC FUN_020473CC: ; 0x020473CC push {r4-r7, lr} sub sp, #0xc add r4, r1, #0x0 add r5, r0, #0x0 ldr r0, [r4, #0x0] mov r2, #0x4 ldr r1, [r4, #0x14] tst r2, r0 bne _020473EC mov r3, #0x80 add r2, r0, #0x0 tst r2, r3 bne _020473EC lsl r2, r3, #0x2 tst r2, r0 beq _020473EE _020473EC: b _020474FC _020473EE: cmp r0, #0x0 beq _02047400 add r3, #0x80 cmp r0, r3 beq _02047400 cmp r0, #0x4a beq _02047400 cmp r0, #0x20 bne _020474D2 _02047400: cmp r1, #0x1 bne _02047470 add r0, r5, #0x0 add r0, #0x76 ldrh r0, [r0, #0x0] add r1, r0, #0x1 add r0, r5, #0x0 add r0, #0x76 strh r1, [r0, #0x0] add r0, r5, #0x0 add r0, #0x76 ldrh r0, [r0, #0x0] cmp r0, #0x5 blo _020474FC ldr r0, [r4, #0x8] mov r1, #0x0 bl FUN_0206B9B0 add r6, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_02023918 str r0, [sp, #0x4] add r0, r6, #0x0 mov r1, #0x5 mov r2, #0x0 bl FUN_020671BC add r7, r0, #0x0 add r0, r6, #0x0 mov r1, #0x6f mov r2, #0x0 bl FUN_020671BC add r2, r0, #0x0 mov r3, #0xb str r3, [sp, #0x0] lsl r3, r3, #0x5 ldr r3, [r4, r3] lsl r1, r7, #0x10 lsl r2, r2, #0x18 lsl r3, r3, #0x18 ldr r0, [sp, #0x4] lsr r1, r1, #0x10 lsr r2, r2, #0x18 lsr r3, r3, #0x18 bl FUN_0202920C add r5, #0x98 add r1, r0, #0x0 ldr r0, [r5, #0x0] mov r2, #0x2 bl FUN_02028AD4 add sp, #0xc pop {r4-r7, pc} _02047470: cmp r1, #0x4 bne _020474FC mov r0, #0x17 lsl r0, r0, #0x4 ldr r0, [r4, r0] mov r1, #0x0 lsl r0, r0, #0x2 add r0, r4, r0 ldr r0, [r0, #0x4] bl FUN_0206B9B0 add r6, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_02023918 str r0, [sp, #0x8] add r0, r6, #0x0 mov r1, #0x5 mov r2, #0x0 bl FUN_020671BC add r7, r0, #0x0 add r0, r6, #0x0 mov r1, #0x6f mov r2, #0x0 bl FUN_020671BC add r2, r0, #0x0 mov r3, #0xb str r3, [sp, #0x0] lsl r3, r3, #0x5 ldr r3, [r4, r3] lsl r1, r7, #0x10 lsl r2, r2, #0x18 lsl r3, r3, #0x18 ldr r0, [sp, #0x8] lsr r1, r1, #0x10 lsr r2, r2, #0x18 lsr r3, r3, #0x18 bl FUN_0202918C add r5, #0x98 add r1, r0, #0x0 ldr r0, [r5, #0x0] mov r2, #0x2 bl FUN_02028AD4 add sp, #0xc pop {r4-r7, pc} _020474D2: mov r2, #0x1 tst r2, r0 bne _020474DE mov r2, #0x10 tst r0, r2 beq _020474FC _020474DE: cmp r1, #0x1 bne _020474FC ldr r1, [r5, #0x1c] add r0, r5, #0x0 ldr r1, [r1, #0x0] ldr r2, [r4, #0x1c] add r0, #0x98 lsl r1, r1, #0x10 lsl r2, r2, #0x10 ldr r0, [r0, #0x0] lsr r1, r1, #0x10 lsr r2, r2, #0x10 mov r3, #0xb bl FUN_020299DC _020474FC: add sp, #0xc pop {r4-r7, pc} thumb_func_start FUN_02047500 FUN_02047500: ; 0x02047500 push {r4, lr} ldr r4, [r0, #0x0] mov r1, #0x1 tst r1, r4 beq _02047546 add r0, #0x5d ldrb r0, [r0, #0x0] bl FUN_020475C0 mov r1, #0x80 tst r1, r4 beq _0204752A cmp r0, #0x1c beq _02047558 mov r0, #0x2 tst r0, r4 beq _02047526 mov r0, #0x1a pop {r4, pc} _02047526: mov r0, #0x18 pop {r4, pc} _0204752A: add r1, r0, #0x0 sub r1, #0x15 cmp r1, #0x2 bls _02047558 mov r1, #0x2 tst r1, r4 beq _0204753C mov r0, #0x1a pop {r4, pc} _0204753C: mov r1, #0x4 tst r1, r4 beq _02047558 mov r0, #0x19 pop {r4, pc} _02047546: ldr r0, [r0, #0x8] bl FUN_02047668 cmp r0, #0x1e blo _02047558 mov r1, #0x2 tst r1, r4 beq _02047558 mov r0, #0x1b _02047558: pop {r4, pc} .balign 4 thumb_func_start FUN_0204755C FUN_0204755C: ; 0x0204755C push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x1f blo _0204756A bl ErrorHandling _0204756A: ldr r0, _02047580 ; =0x020F457C lsl r1, r5, #0x2 ldrh r0, [r0, r1] ldr r1, _02047584 ; =0x0000FFFF cmp r0, r1 bne _0204757C add r0, r4, #0x0 bl FUN_021E495C _0204757C: pop {r3-r5, pc} nop _02047580: .word 0x020F457C _02047584: .word 0x0000FFFF thumb_func_start FUN_02047588 FUN_02047588: ; 0x02047588 push {r4, lr} add r4, r0, #0x0 cmp r4, #0x1f blo _02047594 bl ErrorHandling _02047594: ldr r0, _0204759C ; =0x020F457E lsl r1, r4, #0x2 ldrh r0, [r0, r1] pop {r4, pc} .balign 4 _0204759C: .word 0x020F457E thumb_func_start FUN_020475A0 FUN_020475A0: ; 0x020475A0 push {r4, lr} add r4, r0, #0x0 bl FUN_02047500 add r1, r4, #0x0 bl FUN_0204755C pop {r4, pc} thumb_func_start FUN_020475B0 FUN_020475B0: ; 0x020475B0 push {r4, lr} add r4, r0, #0x0 bl FUN_02047500 add r1, r4, #0x0 bl FUN_02047588 pop {r4, pc} thumb_func_start FUN_020475C0 FUN_020475C0: ; 0x020475C0 sub r0, #0x3e mov r1, #0x1d cmp r0, #0x23 bhi _02047662 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _020475D4: ; jump table (using 16-bit offset) .short _0204761C - _020475D4 - 2; case 0 .short _02047650 - _020475D4 - 2; case 1 .short _02047634 - _020475D4 - 2; case 2 .short _0204763C - _020475D4 - 2; case 3 .short _02047640 - _020475D4 - 2; case 4 .short _02047644 - _020475D4 - 2; case 5 .short _02047648 - _020475D4 - 2; case 6 .short _0204764C - _020475D4 - 2; case 7 .short _02047662 - _020475D4 - 2; case 8 .short _02047662 - _020475D4 - 2; case 9 .short _02047658 - _020475D4 - 2; case 10 .short _0204765C - _020475D4 - 2; case 11 .short _02047620 - _020475D4 - 2; case 12 .short _02047624 - _020475D4 - 2; case 13 .short _02047628 - _020475D4 - 2; case 14 .short _0204762C - _020475D4 - 2; case 15 .short _02047630 - _020475D4 - 2; case 16 .short _02047638 - _020475D4 - 2; case 17 .short _02047662 - _020475D4 - 2; case 18 .short _02047662 - _020475D4 - 2; case 19 .short _02047662 - _020475D4 - 2; case 20 .short _02047662 - _020475D4 - 2; case 21 .short _02047662 - _020475D4 - 2; case 22 .short _02047662 - _020475D4 - 2; case 23 .short _02047654 - _020475D4 - 2; case 24 .short _02047658 - _020475D4 - 2; case 25 .short _02047658 - _020475D4 - 2; case 26 .short _0204765C - _020475D4 - 2; case 27 .short _02047662 - _020475D4 - 2; case 28 .short _02047662 - _020475D4 - 2; case 29 .short _02047662 - _020475D4 - 2; case 30 .short _02047662 - _020475D4 - 2; case 31 .short _02047662 - _020475D4 - 2; case 32 .short _02047662 - _020475D4 - 2; case 33 .short _02047662 - _020475D4 - 2; case 34 .short _02047660 - _020475D4 - 2; case 35 _0204761C: mov r1, #0x0 b _02047662 _02047620: mov r1, #0x1 b _02047662 _02047624: mov r1, #0x2 b _02047662 _02047628: mov r1, #0x3 b _02047662 _0204762C: mov r1, #0x4 b _02047662 _02047630: mov r1, #0x5 b _02047662 _02047634: mov r1, #0x6 b _02047662 _02047638: mov r1, #0x7 b _02047662 _0204763C: mov r1, #0x8 b _02047662 _02047640: mov r1, #0x9 b _02047662 _02047644: mov r1, #0xa b _02047662 _02047648: mov r1, #0xb b _02047662 _0204764C: mov r1, #0xc b _02047662 _02047650: mov r1, #0xd b _02047662 _02047654: mov r1, #0x17 b _02047662 _02047658: mov r1, #0x16 b _02047662 _0204765C: mov r1, #0x15 b _02047662 _02047660: mov r1, #0x1c _02047662: add r0, r1, #0x0 bx lr .balign 4 thumb_func_start FUN_02047668 FUN_02047668: ; 0x02047668 push {r4, lr} mov r4, #0x1e bl FUN_0204A1D8 mov r1, #0x5 mov r2, #0x0 bl FUN_020671BC ldr r1, _020476C8 ; =0x000001DF sub r0, r0, r1 cmp r0, #0xe bhi _020476C4 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0204768C: ; jump table (using 16-bit offset) .short _020476B2 - _0204768C - 2; case 0 .short _020476BA - _0204768C - 2; case 1 .short _020476B6 - _0204768C - 2; case 2 .short _020476BA - _0204768C - 2; case 3 .short _020476BE - _0204768C - 2; case 4 .short _020476BE - _0204768C - 2; case 5 .short _020476B2 - _0204768C - 2; case 6 .short _020476B2 - _0204768C - 2; case 7 .short _020476B2 - _0204768C - 2; case 8 .short _020476AE - _0204768C - 2; case 9 .short _020476C4 - _0204768C - 2; case 10 .short _020476C4 - _0204768C - 2; case 11 .short _020476B2 - _0204768C - 2; case 12 .short _020476AA - _0204768C - 2; case 13 .short _020476C2 - _0204768C - 2; case 14 _020476AA: mov r4, #0xe b _020476C4 _020476AE: mov r4, #0x14 b _020476C4 _020476B2: mov r4, #0x13 b _020476C4 _020476B6: mov r4, #0x11 b _020476C4 _020476BA: mov r4, #0x10 b _020476C4 _020476BE: mov r4, #0xf b _020476C4 _020476C2: mov r4, #0x12 _020476C4: add r0, r4, #0x0 pop {r4, pc} .balign 4 _020476C8: .word 0x000001DF thumb_func_start FUN_020476CC FUN_020476CC: ; 0x020476CC push {r3-r7, lr} add r4, r1, #0x0 mov r1, #0x67 lsl r1, r1, #0x2 add r5, r0, #0x0 bl FUN_02016998 mov r2, #0x67 mov r1, #0x0 lsl r2, r2, #0x2 add r7, r0, #0x0 blx MI_CpuFill8 mov r1, #0x63 str r4, [r7, #0x0] mov r0, #0x0 lsl r1, r1, #0x2 str r0, [r7, r1] add r4, r7, #0x0 str r0, [sp, #0x0] str r0, [r7, #0x14] add r6, r7, #0x0 add r4, #0x28 _020476FA: mov r0, #0x0 add r1, r4, #0x0 mov r2, #0x34 str r0, [r6, #0x18] blx MIi_CpuClear32 ldr r0, [sp, #0x0] add r6, r6, #0x4 add r0, r0, #0x1 add r4, #0x34 str r0, [sp, #0x0] cmp r0, #0x4 blt _020476FA mov r0, #0x15 lsl r0, r0, #0x4 mov r6, #0x0 str r6, [r7, r0] mov r2, #0xc add r1, r0, #0x4 str r2, [r7, r1] add r1, r0, #0x0 add r1, #0x8 str r6, [r7, r1] add r1, r0, #0x0 add r1, #0x10 str r6, [r7, r1] add r1, r0, #0x0 add r1, #0x14 str r6, [r7, r1] add r1, r0, #0x0 mov r2, #0x1 add r1, #0x18 str r2, [r7, r1] add r1, r0, #0x0 add r1, #0x1c str r2, [r7, r1] add r0, #0x24 str r6, [r7, r0] add r4, r7, #0x0 _02047748: add r0, r5, #0x0 bl FUN_0206B8AC str r0, [r4, #0x4] add r6, r6, #0x1 add r4, r4, #0x4 cmp r6, #0x4 blt _02047748 mov r6, #0x0 add r4, r7, #0x0 _0204775C: add r0, r5, #0x0 bl FUN_02023928 add r1, r4, #0x0 add r1, #0xf8 add r6, r6, #0x1 add r4, r4, #0x4 str r0, [r1, #0x0] cmp r6, #0x4 blt _0204775C mov r6, #0x0 add r4, r7, #0x0 _02047774: add r0, r5, #0x0 bl FUN_02029EE4 mov r1, #0x46 lsl r1, r1, #0x2 str r0, [r4, r1] add r6, r6, #0x1 add r4, r4, #0x4 cmp r6, #0x4 blt _02047774 add r0, r5, #0x0 bl FUN_0206EB88 mov r1, #0x42 lsl r1, r1, #0x2 str r0, [r7, r1] add r0, r5, #0x0 bl FUN_02023D6C mov r1, #0x11 lsl r1, r1, #0x4 str r0, [r7, r1] add r0, r5, #0x0 bl FUN_02024F30 mov r1, #0x13 lsl r1, r1, #0x4 str r0, [r7, r1] add r0, r5, #0x0 bl FUN_02061008 mov r2, #0x4d lsl r2, r2, #0x2 str r0, [r7, r2] add r0, r2, #0x0 mov r1, #0x0 sub r0, #0x28 str r1, [r7, r0] add r0, r2, #0x0 add r0, #0x5c str r1, [r7, r0] add r0, r2, #0x0 sub r0, #0x8 str r1, [r7, r0] add r0, r2, #0x0 add r0, #0x10 str r1, [r7, r0] add r0, r2, #0x0 add r0, #0x14 str r1, [r7, r0] add r0, r2, #0x0 add r0, #0x60 str r1, [r7, r0] add r0, r2, #0x4 add r0, r7, r0 mov r2, #0xc blx MI_CpuFill8 add r0, r7, #0x0 pop {r3-r7, pc} thumb_func_start FUN_020477EC FUN_020477EC: ; 0x020477EC push {r4, lr} add r4, r1, #0x0 mov r1, #0x20 bl FUN_020476CC mov r1, #0x19 lsl r1, r1, #0x4 str r4, [r0, r1] pop {r4, pc} .balign 4 thumb_func_start FUN_02047800 FUN_02047800: ; 0x02047800 push {r4, lr} add r4, r1, #0x0 mov r1, #0x2 lsl r1, r1, #0x8 bl FUN_020476CC mov r1, #0x19 lsl r1, r1, #0x4 str r4, [r0, r1] pop {r4, pc} thumb_func_start FUN_02047814 FUN_02047814: ; 0x02047814 push {r4-r7, lr} sub sp, #0x1c add r5, r1, #0x0 add r6, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_020238F4 str r0, [sp, #0x10] ldr r0, [r5, #0xc] bl LoadPlayerDataAddress mov r1, #0x1 str r0, [sp, #0x14] add r0, r6, #0x0 lsl r1, r1, #0xa bl FUN_020476CC add r4, r0, #0x0 ldr r2, _0204795C ; =0x000001F1 mov r0, #0x1 mov r1, #0x1a add r3, r6, #0x0 bl FUN_0200A86C str r0, [sp, #0x18] mov r0, #0x8 add r1, r6, #0x0 bl FUN_020219F4 add r7, r0, #0x0 ldr r0, [sp, #0x10] bl FUN_020239CC add r2, r0, #0x0 mov r1, #0x1 eor r1, r2 ldr r0, [sp, #0x18] add r2, r7, #0x0 bl FUN_0200A8E0 add r0, r7, #0x0 bl FUN_02021F2C add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0xf8 ldr r0, [r0, #0x0] bl FUN_0202395C add r0, r7, #0x0 bl FUN_02021A20 ldr r0, [sp, #0x18] bl FUN_0200A8B8 ldr r0, [sp, #0x10] bl FUN_020239CC add r2, r0, #0x0 add r0, r4, #0x0 add r0, #0xf8 mov r1, #0x1 ldr r0, [r0, #0x0] eor r1, r2 bl FUN_020239C8 add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_0204806C mov r1, #0x13 lsl r1, r1, #0x4 ldr r0, [sp, #0x14] ldr r1, [r4, r1] bl FUN_02024F44 add r0, r5, #0x0 bl FUN_0204B2A4 mov r1, #0x16 lsl r1, r1, #0x4 str r0, [r4, r1] sub r1, #0x58 ldr r0, [r4, r1] mov r1, #0x4 mov r2, #0x14 add r3, r6, #0x0 bl FUN_0206ED38 add r0, r6, #0x0 bl FUN_020669C0 add r6, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_020462AC bl FUN_0205F3C0 mov r2, #0x0 str r2, [sp, #0x0] add r1, r0, #0x0 str r2, [sp, #0x4] mov r0, #0x2 str r0, [sp, #0x8] str r2, [sp, #0xc] add r0, r6, #0x0 mov r2, #0x5 mov r3, #0x20 bl FUN_02066ACC ldr r0, [r4, #0x4] add r1, r6, #0x0 bl FUN_0206B900 mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x4] mov r2, #0x2 str r2, [sp, #0x8] str r0, [sp, #0xc] ldr r1, _02047960 ; =0x0000018F add r0, r6, #0x0 mov r3, #0x20 bl FUN_02066ACC ldr r0, [r4, #0x8] add r1, r6, #0x0 bl FUN_0206B900 add r0, r6, #0x0 bl FUN_02016A18 ldr r0, [r5, #0xc] bl FUN_02022510 mov r1, #0x45 lsl r1, r1, #0x2 str r0, [r4, r1] add r0, r5, #0x0 add r0, #0x94 ldr r0, [r0, #0x0] sub r1, #0x8 str r0, [r4, r1] ldr r0, [r5, #0xc] bl FUN_02029FC8 mov r1, #0x51 lsl r1, r1, #0x2 str r0, [r4, r1] add r0, r5, #0x0 add r0, #0x98 ldr r2, [r0, #0x0] add r0, r1, #0x4 str r2, [r4, r0] ldr r0, [r5, #0x1c] add r1, #0x18 ldr r0, [r0, #0x0] str r0, [r4, r1] add r0, r4, #0x0 bl FUN_020480E4 add r0, r4, #0x0 add sp, #0x1c pop {r4-r7, pc} .balign 4 _0204795C: .word 0x000001F1 _02047960: .word 0x0000018F thumb_func_start FUN_02047964 FUN_02047964: ; 0x02047964 push {r3-r7, lr} add r7, r0, #0x0 mov r4, #0x0 add r5, r7, #0x0 _0204796C: ldr r0, [r5, #0x4] cmp r0, #0x0 bne _02047976 bl ErrorHandling _02047976: ldr r0, [r5, #0x4] bl FUN_02016A18 add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, #0x4 blt _0204796C mov r5, #0x0 add r4, r7, #0x0 _02047988: add r0, r4, #0x0 add r0, #0xf8 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02047996 bl ErrorHandling _02047996: add r0, r4, #0x0 add r0, #0xf8 ldr r0, [r0, #0x0] bl FUN_02016A18 add r5, r5, #0x1 add r4, r4, #0x4 cmp r5, #0x4 blt _02047988 mov r6, #0x46 mov r5, #0x0 add r4, r7, #0x0 lsl r6, r6, #0x2 _020479B0: ldr r0, [r4, r6] cmp r0, #0x0 bne _020479BA bl ErrorHandling _020479BA: mov r0, #0x46 lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02016A18 add r5, r5, #0x1 add r4, r4, #0x4 cmp r5, #0x4 blt _020479B0 mov r0, #0x42 lsl r0, r0, #0x2 ldr r0, [r7, r0] bl FUN_02016A18 mov r0, #0x11 lsl r0, r0, #0x4 ldr r0, [r7, r0] bl FUN_02016A18 mov r0, #0x13 lsl r0, r0, #0x4 ldr r0, [r7, r0] bl FUN_02016A18 mov r0, #0x4d lsl r0, r0, #0x2 ldr r0, [r7, r0] bl FUN_02061020 add r0, r7, #0x0 bl FUN_02016A18 pop {r3-r7, pc} thumb_func_start FUN_020479FC FUN_020479FC: ; 0x020479FC push {r4-r6, lr} add r4, r2, #0x0 add r5, r0, #0x0 add r6, r1, #0x0 cmp r4, #0x4 blt _02047A0C bl ErrorHandling _02047A0C: lsl r0, r4, #0x2 add r0, r5, r0 ldr r0, [r0, #0x4] add r1, r6, #0x0 bl FUN_0206B900 cmp r0, #0x0 bne _02047A20 bl ErrorHandling _02047A20: pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02047A24 FUN_02047A24: ; 0x02047A24 push {r4-r6, lr} add r4, r2, #0x0 add r5, r0, #0x0 add r6, r1, #0x0 cmp r4, #0x4 blt _02047A34 bl ErrorHandling _02047A34: lsl r1, r4, #0x2 add r1, r5, r1 ldr r1, [r1, #0x4] add r0, r6, #0x0 bl FUN_0206BAD0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02047A44 FUN_02047A44: ; 0x02047A44 push {r4-r6, lr} add r4, r2, #0x0 add r5, r0, #0x0 add r6, r1, #0x0 cmp r4, #0x4 blt _02047A54 bl ErrorHandling _02047A54: lsl r1, r4, #0x2 add r1, r5, r1 add r1, #0xf8 ldr r1, [r1, #0x0] add r0, r6, #0x0 bl FUN_0202393C pop {r4-r6, pc} thumb_func_start FUN_02047A64 FUN_02047A64: ; 0x02047A64 lsl r2, r2, #0x2 add r2, r0, r2 mov r0, #0x46 lsl r0, r0, #0x2 ldr r3, _02047A74 ; =FUN_02029F9C ldr r0, [r2, r0] bx r3 nop _02047A74: .word FUN_02029F9C thumb_func_start FUN_02047A78 FUN_02047A78: ; 0x02047A78 push {r4-r7, lr} sub sp, #0x14 add r4, r1, #0x0 add r5, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_020238F4 add r6, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_0206BB1C add r7, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_0206F158 str r0, [sp, #0x0] ldr r0, [r4, #0xc] bl FUN_02024DA0 str r0, [sp, #0x4] ldr r0, [r4, #0xc] bl FUN_02029EF8 str r0, [sp, #0x8] ldr r0, [r4, #0xc] bl LoadPlayerDataAddress str r0, [sp, #0xc] ldr r0, [r4, #0xc] bl FUN_02034E30 str r0, [sp, #0x10] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0204806C add r0, r5, #0x0 add r1, r6, #0x0 mov r2, #0x0 bl FUN_02047A44 add r0, r5, #0x0 add r1, r7, #0x0 mov r2, #0x0 bl FUN_02047A24 mov r1, #0x42 lsl r1, r1, #0x2 ldr r0, [sp, #0x0] ldr r1, [r5, r1] bl FUN_0206EBB4 mov r1, #0x11 lsl r1, r1, #0x4 ldr r0, [sp, #0x4] ldr r1, [r5, r1] bl FUN_02023D80 mov r1, #0x13 lsl r1, r1, #0x4 ldr r0, [sp, #0xc] ldr r1, [r5, r1] bl FUN_02024F44 ldr r1, [sp, #0x8] add r0, r5, #0x0 mov r2, #0x0 bl FUN_02047A64 ldr r0, [r4, #0xc] bl FUN_02022510 mov r1, #0x45 lsl r1, r1, #0x2 str r0, [r5, r1] ldr r0, [r4, #0x1c] ldr r0, [r0, #0x0] bl FUN_02034824 mov r1, #0x56 lsl r1, r1, #0x2 str r0, [r5, r1] add r0, r4, #0x0 bl FUN_0204B2A4 mov r1, #0x16 lsl r1, r1, #0x4 str r0, [r5, r1] ldr r0, [r4, #0x1c] ldr r0, [r0, #0x0] bl FUN_02034A04 mov r1, #0x59 lsl r1, r1, #0x2 str r0, [r5, r1] ldr r0, [r4, #0xc] bl FUN_02079C70 mov r1, #0x5a lsl r1, r1, #0x2 str r0, [r5, r1] ldr r0, [r4, #0xc] bl FUN_020462AC bl FUN_0205F1B4 mov r1, #0x5b lsl r1, r1, #0x2 str r0, [r5, r1] ldr r0, [sp, #0x10] bl FUN_02034DEC mov r1, #0x5d lsl r1, r1, #0x2 str r0, [r5, r1] add r0, r4, #0x0 add r0, #0x94 ldr r0, [r0, #0x0] sub r1, #0x68 str r0, [r5, r1] ldr r0, [r4, #0xc] bl FUN_0204C1A8 mov r1, #0x4a lsl r1, r1, #0x2 str r0, [r5, r1] ldr r0, [r4, #0xc] bl FUN_02029AFC mov r1, #0x4b lsl r1, r1, #0x2 str r0, [r5, r1] ldr r0, [r4, #0xc] bl FUN_02029FC8 mov r1, #0x51 lsl r1, r1, #0x2 str r0, [r5, r1] add r0, r4, #0x0 add r0, #0x98 ldr r2, [r0, #0x0] add r0, r1, #0x4 str r2, [r5, r0] ldr r0, [r4, #0xc] bl FUN_020254C0 mov r1, #0x53 lsl r1, r1, #0x2 str r0, [r5, r1] ldr r0, [r4, #0x1c] add r1, #0x10 ldr r0, [r0, #0x0] str r0, [r5, r1] add sp, #0x14 pop {r4-r7, pc} .balign 4 thumb_func_start FUN_02047BB0 FUN_02047BB0: ; 0x02047BB0 push {r4, lr} add r4, r0, #0x0 bl FUN_02047A78 add r0, r4, #0x0 bl FUN_020480E4 pop {r4, pc} thumb_func_start FUN_02047BC0 FUN_02047BC0: ; 0x02047BC0 push {r4-r7, lr} sub sp, #0x1c add r6, r0, #0x0 add r0, r1, #0x0 ldr r0, [r0, #0xc] str r1, [sp, #0x0] add r7, r2, #0x0 bl FUN_020238F4 add r4, r0, #0x0 ldr r0, [sp, #0x0] ldr r0, [r0, #0xc] bl FUN_0206BB1C str r0, [sp, #0x14] ldr r0, [sp, #0x0] ldr r0, [r0, #0xc] bl FUN_0206F158 str r0, [sp, #0x10] ldr r0, [sp, #0x0] ldr r0, [r0, #0xc] bl FUN_02024DA0 str r0, [sp, #0xc] ldr r0, [sp, #0x0] ldr r0, [r0, #0xc] bl FUN_02029EF8 str r0, [sp, #0x8] ldr r0, [sp, #0x0] ldr r0, [r0, #0xc] bl LoadPlayerDataAddress str r0, [sp, #0x4] mov r0, #0x15 mov r1, #0x6 lsl r0, r0, #0x4 str r1, [r6, r0] mov r1, #0x9 add r0, r0, #0x4 str r1, [r6, r0] add r0, r6, #0x0 add r1, r4, #0x0 mov r2, #0x0 bl FUN_02047A44 mov r0, #0xb bl FUN_020669C0 add r5, r0, #0x0 ldr r0, [sp, #0x14] bl FUN_0206B9AC add r1, r0, #0x0 ldr r0, [r6, #0x4] bl FUN_0206B8CC ldr r0, [sp, #0x14] mov r4, #0x0 bl FUN_0206B9AC cmp r0, #0x0 ble _02047C98 _02047C40: ldr r0, [sp, #0x14] add r1, r4, #0x0 bl FUN_0206B9B0 add r1, r5, #0x0 bl FUN_02069B88 add r0, r5, #0x0 mov r1, #0xa0 mov r2, #0x0 bl FUN_020671BC cmp r7, r0 beq _02047C82 cmp r7, #0x0 beq _02047C82 add r0, r5, #0x0 mov r1, #0x5 mov r2, #0x0 bl FUN_020671BC add r1, r7, #0x0 bl FUN_02068758 str r0, [sp, #0x18] add r0, r5, #0x0 mov r1, #0x8 add r2, sp, #0x18 bl FUN_02067830 add r0, r5, #0x0 bl FUN_02066ED8 _02047C82: add r0, r6, #0x0 add r1, r5, #0x0 mov r2, #0x0 bl FUN_020479FC ldr r0, [sp, #0x14] add r4, r4, #0x1 bl FUN_0206B9AC cmp r4, r0 blt _02047C40 _02047C98: add r0, r5, #0x0 bl FUN_02016A18 mov r1, #0x42 lsl r1, r1, #0x2 ldr r0, [sp, #0x10] ldr r1, [r6, r1] bl FUN_0206EBB4 mov r1, #0x11 lsl r1, r1, #0x4 ldr r0, [sp, #0xc] ldr r1, [r6, r1] bl FUN_02023D80 mov r1, #0x13 lsl r1, r1, #0x4 ldr r0, [sp, #0x4] ldr r1, [r6, r1] bl FUN_02024F44 ldr r1, [sp, #0x8] add r0, r6, #0x0 mov r2, #0x0 bl FUN_02047A64 ldr r0, [sp, #0x0] ldr r0, [r0, #0xc] bl FUN_02022510 mov r1, #0x45 lsl r1, r1, #0x2 str r0, [r6, r1] ldr r0, [sp, #0x0] bl FUN_0204B2A4 mov r1, #0x16 lsl r1, r1, #0x4 str r0, [r6, r1] ldr r0, [sp, #0x0] sub r1, #0x54 add r0, #0x94 ldr r0, [r0, #0x0] str r0, [r6, r1] ldr r0, [sp, #0x0] ldr r0, [r0, #0xc] bl FUN_0204C1A8 mov r1, #0x4a lsl r1, r1, #0x2 str r0, [r6, r1] ldr r0, [sp, #0x0] ldr r0, [r0, #0xc] bl FUN_02029AFC mov r1, #0x4b lsl r1, r1, #0x2 str r0, [r6, r1] ldr r0, [sp, #0x0] ldr r0, [r0, #0xc] bl FUN_02029FC8 mov r1, #0x51 lsl r1, r1, #0x2 str r0, [r6, r1] ldr r0, [sp, #0x0] add r0, #0x98 ldr r2, [r0, #0x0] add r0, r1, #0x4 str r2, [r6, r0] ldr r0, [sp, #0x0] ldr r0, [r0, #0xc] bl FUN_020254C0 mov r1, #0x53 lsl r1, r1, #0x2 str r0, [r6, r1] ldr r0, [sp, #0x0] add r1, #0x10 ldr r0, [r0, #0x1c] ldr r0, [r0, #0x0] str r0, [r6, r1] add r0, r6, #0x0 bl FUN_020480E4 add sp, #0x1c pop {r4-r7, pc} .balign 4 thumb_func_start FUN_02047D48 FUN_02047D48: ; 0x02047D48 push {r4-r7, lr} sub sp, #0x24 add r5, r0, #0x0 add r0, r1, #0x0 ldr r0, [r0, #0xc] str r1, [sp, #0x0] str r2, [sp, #0x4] add r7, r3, #0x0 bl FUN_020238F4 str r0, [sp, #0x20] ldr r0, [sp, #0x0] ldr r0, [r0, #0xc] bl FUN_0206F158 str r0, [sp, #0x1c] ldr r0, [sp, #0x0] ldr r0, [r0, #0xc] bl FUN_02024DA0 str r0, [sp, #0x18] ldr r0, [sp, #0x0] ldr r0, [r0, #0xc] bl FUN_02029EF8 str r0, [sp, #0x14] ldr r0, [sp, #0x0] ldr r0, [r0, #0xc] bl LoadPlayerDataAddress str r0, [sp, #0x10] ldr r0, [sp, #0x0] mov r1, #0x6 add r0, #0xac ldr r0, [r0, #0x0] mov r2, #0x0 str r0, [sp, #0xc] mov r0, #0x15 lsl r0, r0, #0x4 str r1, [r5, r0] mov r1, #0x9 add r0, r0, #0x4 str r1, [r5, r0] ldr r1, [sp, #0x20] add r0, r5, #0x0 bl FUN_02047A44 cmp r7, #0x0 bne _02047DB6 ldr r1, [sp, #0x4] add r0, r5, #0x0 mov r2, #0x0 bl FUN_02047A24 b _02047E14 _02047DB6: mov r4, #0x0 add r1, r4, #0x0 _02047DBA: ldrb r0, [r7, r1] cmp r0, #0x0 beq _02047DC2 add r4, r4, #0x1 _02047DC2: add r1, r1, #0x1 cmp r1, #0x6 blt _02047DBA cmp r4, #0x0 bne _02047DD8 ldr r1, [sp, #0x4] add r0, r5, #0x0 mov r2, #0x0 bl FUN_02047A24 b _02047E14 _02047DD8: mov r0, #0xb bl FUN_020669C0 str r0, [sp, #0x8] ldr r0, [r5, #0x4] add r1, r4, #0x0 bl FUN_0206B8CC mov r6, #0x0 cmp r4, #0x0 ble _02047E0E _02047DEE: ldrb r1, [r7, r6] ldr r0, [sp, #0x4] sub r1, r1, #0x1 bl FUN_0206B9B0 ldr r1, [sp, #0x8] bl FUN_02069B88 ldr r1, [sp, #0x8] add r0, r5, #0x0 mov r2, #0x0 bl FUN_020479FC add r6, r6, #0x1 cmp r6, r4 blt _02047DEE _02047E0E: ldr r0, [sp, #0x8] bl FUN_02016A18 _02047E14: ldr r0, [sp, #0xc] cmp r0, #0x0 beq _02047E2C mov r1, #0xc bl FUN_02023B0C cmp r0, #0x0 beq _02047E2C mov r0, #0x65 mov r1, #0x1 lsl r0, r0, #0x2 str r1, [r5, r0] _02047E2C: mov r1, #0x42 lsl r1, r1, #0x2 ldr r0, [sp, #0x1c] ldr r1, [r5, r1] bl FUN_0206EBB4 mov r1, #0x11 lsl r1, r1, #0x4 ldr r0, [sp, #0x18] ldr r1, [r5, r1] bl FUN_02023D80 mov r1, #0x13 lsl r1, r1, #0x4 ldr r0, [sp, #0x10] ldr r1, [r5, r1] bl FUN_02024F44 ldr r1, [sp, #0x14] add r0, r5, #0x0 mov r2, #0x0 bl FUN_02047A64 ldr r0, [sp, #0x0] ldr r0, [r0, #0xc] bl FUN_02022510 mov r1, #0x45 lsl r1, r1, #0x2 str r0, [r5, r1] ldr r0, [sp, #0x0] bl FUN_0204B2A4 mov r1, #0x16 lsl r1, r1, #0x4 str r0, [r5, r1] ldr r0, [sp, #0x0] sub r1, #0x54 add r0, #0x94 ldr r0, [r0, #0x0] str r0, [r5, r1] ldr r0, [sp, #0x0] ldr r0, [r0, #0xc] bl FUN_02029AFC mov r1, #0x4b lsl r1, r1, #0x2 str r0, [r5, r1] ldr r0, [sp, #0x0] ldr r0, [r0, #0xc] bl FUN_02029FC8 mov r1, #0x51 lsl r1, r1, #0x2 str r0, [r5, r1] ldr r0, [sp, #0x0] add r0, #0x98 ldr r2, [r0, #0x0] add r0, r1, #0x4 str r2, [r5, r0] ldr r0, [sp, #0x0] add r1, #0x18 ldr r0, [r0, #0x1c] ldr r0, [r0, #0x0] str r0, [r5, r1] ldr r0, [sp, #0x0] ldr r0, [r0, #0xc] bl FUN_020254C0 mov r1, #0x53 lsl r1, r1, #0x2 str r0, [r5, r1] bl FUN_02033534 bl FUN_0202D8B0 cmp r0, #0x0 beq _02047F10 ldr r0, [sp, #0x20] bl FUN_02023A28 add r4, r0, #0x0 ldr r0, [sp, #0x20] bl FUN_020239CC add r1, r4, #0x0 mov r2, #0x1 bl FUN_020536D0 add r1, r5, #0x0 add r1, #0x29 strb r0, [r1, #0x0] add r0, r5, #0x0 add r0, #0xf8 ldr r0, [r0, #0x0] bl FUN_0202398C add r1, r0, #0x0 add r0, r5, #0x0 add r0, #0x3c bl StringCopy add r3, r5, #0x0 add r3, #0x28 add r5, #0x90 mov r2, #0x6 _02047F00: ldmia r3!, {r0-r1} stmia r5!, {r0-r1} sub r2, r2, #0x1 bne _02047F00 ldr r0, [r3, #0x0] add sp, #0x24 str r0, [r5, #0x0] pop {r4-r7, pc} _02047F10: add r0, r5, #0x0 bl FUN_020480E4 add sp, #0x24 pop {r4-r7, pc} .balign 4 thumb_func_start FUN_02047F1C FUN_02047F1C: ; 0x02047F1C push {r4-r6, lr} add r4, r1, #0x0 add r5, r0, #0x0 ldr r0, [r4, #0xc] add r6, r2, #0x0 bl FUN_0206BB1C add r2, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 add r3, r6, #0x0 bl FUN_02047D48 pop {r4-r6, pc} thumb_func_start FUN_02047F38 FUN_02047F38: ; 0x02047F38 push {r3-r7, lr} sub sp, #0x8 add r5, r1, #0x0 add r4, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_020238F4 add r6, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_0206BB1C add r7, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_0206F158 str r0, [sp, #0x0] ldr r0, [r5, #0xc] bl FUN_02024DA0 str r0, [sp, #0x4] ldr r0, [r5, #0xc] bl FUN_02034E30 bl FUN_02034E24 add r5, r0, #0x0 add r0, r4, #0x0 add r0, #0xf8 ldr r0, [r0, #0x0] add r1, r6, #0x0 bl FUN_0202393C ldr r0, [r4, #0x4] add r1, r7, #0x0 bl FUN_0206BAD0 mov r0, #0x42 lsl r0, r0, #0x2 ldr r0, [r4, r0] ldr r1, [sp, #0x0] bl FUN_0206EBB4 mov r0, #0x11 lsl r0, r0, #0x4 ldr r0, [r4, r0] ldr r1, [sp, #0x4] bl FUN_02023D80 mov r0, #0x19 lsl r0, r0, #0x4 ldr r0, [r4, r0] strh r0, [r5, #0x0] add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_02047FA4 FUN_02047FA4: ; 0x02047FA4 push {r3-r5, lr} add r5, r1, #0x0 add r4, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_020238F4 ldr r0, [r5, #0xc] bl FUN_0206BB1C ldr r0, [r5, #0xc] bl FUN_0206F158 ldr r0, [r5, #0xc] bl FUN_02024DA0 add r1, r0, #0x0 mov r0, #0x11 lsl r0, r0, #0x4 ldr r0, [r4, r0] bl FUN_02023D80 pop {r3-r5, pc} thumb_func_start FUN_02047FD0 FUN_02047FD0: ; 0x02047FD0 push {r3-r5, lr} ldr r2, [r0, #0x1c] add r4, r1, #0x0 ldr r1, [r2, #0x8] ldr r2, [r2, #0xc] bl FUN_0204A6E0 add r5, r0, #0x0 bl FUN_020548F0 cmp r0, #0x0 beq _02047FEC mov r0, #0x8 pop {r3-r5, pc} _02047FEC: add r0, r5, #0x0 bl FUN_0205478C cmp r0, #0x0 bne _02048000 add r0, r5, #0x0 bl FUN_02054798 cmp r0, #0x0 beq _02048004 _02048000: mov r0, #0x2 pop {r3-r5, pc} _02048004: add r0, r5, #0x0 bl FUN_02054830 cmp r0, #0x0 beq _02048012 mov r0, #0x1 pop {r3-r5, pc} _02048012: add r0, r5, #0x0 bl FUN_020549AC cmp r0, #0x0 beq _02048020 mov r0, #0x6 pop {r3-r5, pc} _02048020: add r0, r5, #0x0 bl FUN_02054974 cmp r0, #0x0 bne _02048034 add r0, r5, #0x0 bl FUN_02054990 cmp r0, #0x0 beq _02048038 _02048034: mov r0, #0xa pop {r3-r5, pc} _02048038: add r0, r5, #0x0 bl FUN_02054A3C cmp r0, #0x0 beq _02048046 mov r0, #0x5 pop {r3-r5, pc} _02048046: add r0, r5, #0x0 bl FUN_0205481C cmp r0, #0x0 beq _02048054 mov r0, #0x7 pop {r3-r5, pc} _02048054: cmp r4, #0xc bhs _02048060 ldr r0, _02048068 ; =0x020F45F8 lsl r1, r4, #0x2 ldr r0, [r0, r1] pop {r3-r5, pc} _02048060: bl ErrorHandling mov r0, #0xc pop {r3-r5, pc} .balign 4 _02048068: .word 0x020F45F8 thumb_func_start FUN_0204806C FUN_0204806C: ; 0x0204806C push {r4-r6, lr} add r4, r1, #0x0 add r5, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_02034E30 bl FUN_02034E20 add r6, r0, #0x0 ldr r0, [r4, #0x1c] ldr r0, [r0, #0x0] bl FUN_02034860 mov r1, #0x15 lsl r1, r1, #0x4 str r0, [r5, r1] ldr r0, [r6, #0x4] cmp r0, #0x2 bne _02048096 mov r0, #0x1 str r0, [r5, r1] _02048096: mov r1, #0x15 lsl r1, r1, #0x4 ldr r1, [r5, r1] add r0, r4, #0x0 bl FUN_02047FD0 mov r1, #0x55 lsl r1, r1, #0x2 str r0, [r5, r1] pop {r4-r6, pc} .balign 4 thumb_func_start FUN_020480AC FUN_020480AC: ; 0x020480AC mov r1, #0x55 mov r2, #0x7 lsl r1, r1, #0x2 str r2, [r0, r1] bx lr .balign 4 thumb_func_start FUN_020480B8 FUN_020480B8: ; 0x020480B8 cmp r0, #0x2 beq _020480C0 cmp r0, #0x3 bne _020480C4 _020480C0: mov r0, #0x0 bx lr _020480C4: mov r0, #0x1 bx lr thumb_func_start FUN_020480C8 FUN_020480C8: ; 0x020480C8 cmp r0, #0x1 beq _020480D0 cmp r0, #0x4 bne _020480D4 _020480D0: mov r0, #0x0 bx lr _020480D4: mov r0, #0x1 bx lr thumb_func_start FUN_020480D8 FUN_020480D8: ; 0x020480D8 cmp r0, #0x4 bne _020480E0 mov r0, #0x0 bx lr _020480E0: mov r0, #0x1 bx lr thumb_func_start FUN_020480E4 FUN_020480E4: ; 0x020480E4 push {r4, lr} add r4, r0, #0x0 add r0, #0xf8 ldr r0, [r0, #0x0] bl FUN_020239CC add r1, r4, #0x0 add r1, #0x29 strb r0, [r1, #0x0] add r0, r4, #0x0 add r0, #0xf8 ldr r0, [r0, #0x0] bl FUN_0202398C add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x3c bl StringCopy add r3, r4, #0x0 add r3, #0x28 add r4, #0x90 mov r2, #0x6 _02048112: ldmia r3!, {r0-r1} stmia r4!, {r0-r1} sub r2, r2, #0x1 bne _02048112 ldr r0, [r3, #0x0] str r0, [r4, #0x0] pop {r4, pc} thumb_func_start FUN_02048120 FUN_02048120: ; 0x02048120 push {r4, lr} sub sp, #0x8 add r4, r0, #0x0 ldr r0, _02048158 ; =0x020F465C bl FUN_0201E66C ldr r0, _0204815C ; =0x020F4630 bl FUN_02016BBC ldr r2, _02048160 ; =0x020F4640 add r0, r4, #0x0 mov r1, #0x3 mov r3, #0x0 bl FUN_02016C18 mov r0, #0x20 str r0, [sp, #0x0] mov r0, #0xb mov r3, #0x1a str r0, [sp, #0x4] mov r0, #0xe mov r1, #0x6 mov r2, #0x0 lsl r3, r3, #0x4 bl FUN_02006930 add sp, #0x8 pop {r4, pc} .balign 4 _02048158: .word 0x020F465C _0204815C: .word 0x020F4630 _02048160: .word 0x020F4640 thumb_func_start FUN_02048164 FUN_02048164: ; 0x02048164 push {r4-r6, lr} add r5, r0, #0x0 add r6, r1, #0x0 mov r0, #0xb mov r1, #0x24 bl FUN_02016998 add r4, r0, #0x0 bne _0204817A bl ErrorHandling _0204817A: add r0, r4, #0x0 mov r1, #0x0 mov r2, #0x24 blx FUN_020DF4A4 mov r0, #0x0 str r0, [r4, #0x0] str r5, [r4, #0x4] mov r0, #0xb bl FUN_02016B94 str r0, [r4, #0x8] bl FUN_02048120 mov r2, #0x52 mov r0, #0x1 mov r1, #0x1a lsl r2, r2, #0x2 mov r3, #0xb bl FUN_0200A86C str r0, [r4, #0x1c] mov r0, #0xb bl FUN_0200AA80 str r0, [r4, #0x20] add r1, r4, #0x0 ldr r0, [r4, #0x8] ldr r2, _02048208 ; =0x020F4628 add r1, #0xc bl FUN_02019150 add r0, r5, #0x0 bl FUN_020377AC bl FUN_020238F4 add r2, r0, #0x0 ldr r0, [r4, #0x20] mov r1, #0x0 bl FUN_0200ABC0 ldr r0, [r5, #0x1c] ldr r1, [r0, #0x0] ldr r0, _0204820C ; =0x0000019E cmp r1, r0 bne _020481E6 mov r2, #0x0 add r0, r4, #0x0 mov r1, #0x4 add r3, r2, #0x0 bl FUN_020482F4 b _020481F2 _020481E6: mov r2, #0x0 add r0, r4, #0x0 mov r1, #0x3 add r3, r2, #0x0 bl FUN_020482F4 _020481F2: add r0, r4, #0x0 add r0, #0xc bl FUN_020191D0 ldr r1, _02048210 ; =FUN_02048214 add r0, r6, #0x0 add r2, r4, #0x0 bl FUN_0204640C pop {r4-r6, pc} nop _02048208: .word 0x020F4628 _0204820C: .word 0x0000019E _02048210: .word FUN_02048214 thumb_func_start FUN_02048214 FUN_02048214: ; 0x02048214 push {r3-r4, lr} sub sp, #0xc bl FUN_0204652C add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x4 bhi _020482EA add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02048230: ; jump table (using 16-bit offset) .short _0204823A - _02048230 - 2; case 0 .short _02048258 - _02048230 - 2; case 1 .short _02048268 - _02048230 - 2; case 2 .short _02048298 - _02048230 - 2; case 3 .short _020482B2 - _02048230 - 2; case 4 _0204823A: mov r0, #0x8 str r0, [sp, #0x0] mov r1, #0x1 str r1, [sp, #0x4] mov r0, #0x20 str r0, [sp, #0x8] mov r0, #0x3 mov r2, #0x2a mov r3, #0x0 bl FUN_0200E1D0 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _020482EA _02048258: bl FUN_0200E308 cmp r0, #0x0 beq _020482EA ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _020482EA _02048268: ldr r0, _020482F0 ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #0x1 tst r0, r1 bne _02048278 mov r0, #0x2 tst r0, r1 beq _020482EA _02048278: mov r0, #0x8 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] mov r0, #0x20 str r0, [sp, #0x8] mov r0, #0x0 add r1, r0, #0x0 add r2, r0, #0x0 add r3, r0, #0x0 bl FUN_0200E1D0 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _020482EA _02048298: bl FUN_0200E308 cmp r0, #0x0 beq _020482EA add r0, r4, #0x0 add r0, #0xc mov r1, #0x0 bl FUN_02019620 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _020482EA _020482B2: add r0, r4, #0x0 add r0, #0xc mov r1, #0x0 bl FUN_0200D0E0 add r0, r4, #0x0 add r0, #0xc bl FUN_02019178 ldr r0, [r4, #0x20] bl FUN_0200AB18 ldr r0, [r4, #0x1c] bl FUN_0200A8B8 ldr r0, [r4, #0x8] mov r1, #0x3 bl FUN_020178A0 ldr r0, [r4, #0x8] bl FUN_02016A18 add r0, r4, #0x0 bl FUN_02016A18 add sp, #0xc mov r0, #0x1 pop {r3-r4, pc} _020482EA: mov r0, #0x0 add sp, #0xc pop {r3-r4, pc} .balign 4 _020482F0: .word 0x021C48B8 thumb_func_start FUN_020482F4 FUN_020482F4: ; 0x020482F4 push {r4-r7, lr} sub sp, #0x14 add r5, r0, #0x0 mov r0, #0x1 str r1, [sp, #0x10] lsl r0, r0, #0xa mov r1, #0xb add r7, r3, #0x0 bl FUN_020219F4 add r6, r0, #0x0 mov r0, #0x1 lsl r0, r0, #0xa mov r1, #0xb bl FUN_020219F4 add r4, r0, #0x0 add r0, r5, #0x0 add r0, #0xc mov r1, #0x0 bl FUN_02019620 ldr r0, [r5, #0x1c] ldr r1, [sp, #0x10] add r2, r6, #0x0 bl FUN_0200A8E0 ldr r0, [r5, #0x20] add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_0200B7B8 mov r0, #0x0 add r1, r4, #0x0 add r2, r0, #0x0 bl FUN_02002F08 add r3, r0, #0x0 str r7, [sp, #0x0] mov r0, #0xff str r0, [sp, #0x4] ldr r0, _02048378 ; =0x000F0200 mov r1, #0x0 str r0, [sp, #0x8] add r0, r5, #0x0 str r1, [sp, #0xc] ldrb r5, [r5, #0x13] add r0, #0xc add r2, r4, #0x0 lsl r5, r5, #0x3 sub r3, r5, r3 lsl r3, r3, #0x18 lsr r3, r3, #0x19 sub r3, r3, #0x4 lsl r3, r3, #0x18 lsr r3, r3, #0x18 bl FUN_0201BDE0 add r0, r6, #0x0 bl FUN_02021A20 add r0, r4, #0x0 bl FUN_02021A20 add sp, #0x14 pop {r4-r7, pc} .balign 4 _02048378: .word 0x000F0200 thumb_func_start FUN_0204837C FUN_0204837C: ; 0x0204837C push {r3-r7, lr} sub sp, #0x18 add r5, r0, #0x0 bl FUN_02046528 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02046530 add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x6 bhi _02048488 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _020483A2: ; jump table (using 16-bit offset) .short _020483B0 - _020483A2 - 2; case 0 .short _020483E8 - _020483A2 - 2; case 1 .short _020483F8 - _020483A2 - 2; case 2 .short _0204840C - _020483A2 - 2; case 3 .short _02048434 - _020483A2 - 2; case 4 .short _02048442 - _020483A2 - 2; case 5 .short _02048482 - _020483A2 - 2; case 6 _020483B0: ldr r0, [r6, #0xc] bl FUN_02034E30 add r7, r0, #0x0 bl FUN_02034DFC add r1, sp, #0x4 str r0, [sp, #0x0] bl FUN_02034EC4 add r0, r7, #0x0 bl FUN_02034DCC add r1, r0, #0x0 ldr r0, [sp, #0x0] bl FUN_02034E90 add r0, r5, #0x0 add r1, sp, #0x4 bl FUN_02049160 add r0, r6, #0x0 bl FUN_020637F0 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02048488 _020483E8: mov r0, #0x0 mov r1, #0x14 bl FUN_020053CC ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02048488 _020483F8: bl FUN_02005404 cmp r0, #0x0 bne _02048488 bl FUN_0204AB0C ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02048488 _0204840C: mov r0, #0xf mvn r0, r0 mov r1, #0x37 mov r2, #0x1 bl FUN_0200A274 mov r0, #0xf mvn r0, r0 mov r1, #0x3f mov r2, #0x2 bl FUN_0200A274 add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_02048164 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02048488 _02048434: add r0, r5, #0x0 bl FUN_0204AF84 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02048488 _02048442: mov r0, #0x0 mov r1, #0x3f mov r2, #0x3 bl FUN_0200A274 bl FUN_02034E8C add r7, r0, #0x0 ldr r0, [r6, #0xc] bl FUN_02034E30 bl FUN_02034DFC cmp r7, r0 bne _0204846E mov r2, #0x0 ldr r1, _02048490 ; =0x000007E4 add r0, r5, #0x0 add r3, r2, #0x0 bl FUN_02038CD8 b _0204847A _0204846E: mov r2, #0x0 ldr r1, _02048494 ; =0x000007E5 add r0, r5, #0x0 add r3, r2, #0x0 bl FUN_02038CD8 _0204847A: ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02048488 _02048482: add sp, #0x18 mov r0, #0x1 pop {r3-r7, pc} _02048488: mov r0, #0x0 add sp, #0x18 pop {r3-r7, pc} nop _02048490: .word 0x000007E4 _02048494: .word 0x000007E5 thumb_func_start FUN_02048498 FUN_02048498: ; 0x02048498 ldr r3, _020484A0 ; =FUN_0204640C ldr r1, _020484A4 ; =FUN_0204837C mov r2, #0x0 bx r3 .balign 4 _020484A0: .word FUN_0204640C _020484A4: .word FUN_0204837C thumb_func_start FUN_020484A8 FUN_020484A8: ; 0x020484A8 push {r3-r6, lr} sub sp, #0x14 add r5, r0, #0x0 ldr r0, [r5, #0xc] add r6, r1, #0x0 mov r1, #0xb add r2, sp, #0x0 bl FUN_02022534 add r4, r0, #0x0 ldr r0, [sp, #0x0] cmp r0, #0x1 bne _020484C6 cmp r6, #0x0 bne _020484CC _020484C6: add r0, r4, #0x0 bl FUN_0202B03C _020484CC: ldr r0, [r5, #0xc] bl FUN_0206BB1C add r6, r0, #0x0 add r0, sp, #0x4 bl FUN_020126B4 add r0, r4, #0x0 add r1, r6, #0x0 add r2, sp, #0x4 bl FUN_0202B050 ldr r0, [r5, #0xc] add r1, r4, #0x0 bl FUN_02022540 add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x14 pop {r3-r6, pc} .balign 4 thumb_func_start FUN_020484F8 FUN_020484F8: ; 0x020484F8 push {r4-r7, lr} sub sp, #0xc add r4, r0, #0x0 bl FUN_02046528 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02046530 add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x9 bhi _02048554 add r1, r0, r0 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02048526: ; jump table (using 16-bit offset) .short _0204853A - _02048526 - 2; case 0 .short _0204854A - _02048526 - 2; case 1 .short _02048586 - _02048526 - 2; case 2 .short _020485AE - _02048526 - 2; case 3 .short _020485C0 - _02048526 - 2; case 4 .short _020485F6 - _02048526 - 2; case 5 .short _02048612 - _02048526 - 2; case 6 .short _02048624 - _02048526 - 2; case 7 .short _02048644 - _02048526 - 2; case 8 .short _02048666 - _02048526 - 2; case 9 _0204853A: add r0, r6, #0x0 add r1, r5, #0x4 bl FUN_02038814 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02048688 _0204854A: add r0, r6, #0x0 bl FUN_0204647C cmp r0, #0x0 beq _02048556 _02048554: b _02048688 _02048556: mov r1, #0x4 mov r0, #0x3 lsl r2, r1, #0xf bl FUN_0201681C add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_02048764 mov r0, #0x8 str r0, [sp, #0x0] mov r1, #0x1 str r1, [sp, #0x4] mov r0, #0x20 str r0, [sp, #0x8] mov r0, #0x3 add r2, r1, #0x0 mov r3, #0x0 bl FUN_0200E1D0 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02048688 _02048586: bl FUN_0200E308 cmp r0, #0x0 beq _02048688 ldr r0, [r6, #0xc] bl FUN_0202280C cmp r0, #0x0 bne _020485A8 add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_020487E4 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02048688 _020485A8: mov r0, #0x7 str r0, [r4, #0x0] b _02048688 _020485AE: add r0, r5, #0x0 bl FUN_02048838 cmp r0, #0x0 beq _02048688 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02048688 _020485C0: ldr r0, [r6, #0xc] bl FUN_0206BB1C bl FUN_02085140 bl FUN_02022830 ldr r0, [r6, #0xc] bl FUN_02022720 add r7, r0, #0x0 ldr r1, [r5, #0x0] add r0, r6, #0x0 bl FUN_020484A8 add r0, r5, #0x0 bl FUN_02048848 add r0, r6, #0x0 add r1, r5, #0x0 add r2, r7, #0x0 bl FUN_02048864 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02048688 _020485F6: add r0, r5, #0x0 bl FUN_02048838 cmp r0, #0x0 beq _02048688 ldr r0, _02048690 ; =0x0000061B bl FUN_020054C8 mov r0, #0x12 str r0, [r5, #0x38] ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02048688 _02048612: ldr r1, [r5, #0x38] cmp r1, #0x0 beq _0204861E sub r0, r1, #0x1 str r0, [r5, #0x38] b _02048688 _0204861E: add r0, r0, #0x1 str r0, [r4, #0x0] b _02048688 _02048624: mov r0, #0x8 str r0, [sp, #0x0] mov r1, #0x0 mov r0, #0x1 str r0, [sp, #0x4] mov r0, #0x20 str r0, [sp, #0x8] mov r0, #0x3 add r2, r1, #0x0 add r3, r1, #0x0 bl FUN_0200E1D0 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02048688 _02048644: bl FUN_0200E308 cmp r0, #0x0 beq _02048688 add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_020488D4 add r5, #0x10 add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_02038854 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02048688 _02048666: add r0, r6, #0x0 bl FUN_0204647C cmp r0, #0x0 bne _02048688 add r0, r5, #0x0 bl FUN_02016A18 mov r0, #0x4 bl FUN_020168D0 mov r0, #0x0 blx OS_ResetSystem add sp, #0xc mov r0, #0x1 pop {r4-r7, pc} _02048688: mov r0, #0x0 add sp, #0xc pop {r4-r7, pc} nop _02048690: .word 0x0000061B thumb_func_start FUN_02048694 FUN_02048694: ; 0x02048694 push {r4-r7, lr} sub sp, #0xc add r7, r0, #0x0 bl FUN_02046528 add r4, r0, #0x0 mov r0, #0x20 mov r1, #0x3c bl FUN_02016998 add r5, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_020462AC add r6, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_020238F4 str r0, [sp, #0x0] ldr r0, [r4, #0xc] bl FUN_02034E30 bl FUN_02034DD0 str r0, [sp, #0x8] ldr r0, [r4, #0xc] bl FUN_02034E30 bl FUN_02034DCC str r0, [sp, #0x4] add r0, r6, #0x0 bl FUN_0205ED0C str r0, [r5, #0x0] ldr r0, [r4, #0xc] bl FUN_020238F4 str r0, [r5, #0x4] ldr r0, [r4, #0xc] bl FUN_0206BB1C str r0, [r5, #0x8] ldr r0, [r4, #0xc] bl FUN_02023918 str r0, [r5, #0xc] ldr r0, [r4, #0xc] bl FUN_020238F4 bl FUN_020239CC str r0, [r5, #0x10] add r0, r6, #0x0 bl FUN_0205ED0C str r0, [r5, #0x14] ldr r0, [r4, #0xc] bl FUN_02024DA0 str r0, [r5, #0x18] add r0, r6, #0x0 bl FUN_0205ED0C cmp r0, #0x0 bne _0204871E add r0, r4, #0x0 bl FUN_0204B328 _0204871E: ldr r0, [r4, #0xc] bl FUN_0206BB1C bl FUN_0204A25C ldr r0, [sp, #0x8] bl FUN_020377B0 ldr r0, [sp, #0x4] bl FUN_020377C8 add r0, r6, #0x0 bl FUN_0205F154 add r0, r6, #0x0 bl FUN_0205ECFC ldr r0, [sp, #0x0] bl FUN_02023A78 ldr r0, [r4, #0xc] bl FUN_02029FC8 mov r1, #0x2e bl FUN_0202A0E8 ldr r1, _02048760 ; =FUN_020484F8 add r0, r7, #0x0 add r2, r5, #0x0 bl FUN_0204640C add sp, #0xc pop {r4-r7, pc} .balign 4 _02048760: .word FUN_020484F8 thumb_func_start FUN_02048764 FUN_02048764: ; 0x02048764 push {r4, lr} sub sp, #0x10 add r4, r0, #0x0 mov r0, #0x0 str r0, [r1, #0x2c] str r0, [r1, #0x30] add r1, #0x1c add r0, r1, #0x0 bl FUN_0201901C ldr r0, _020487D4 ; =0x020F46B0 bl FUN_0201E66C ldr r2, _020487D8 ; =0x04000304 ldrh r1, [r2, #0x0] lsr r0, r2, #0xb orr r0, r1 strh r0, [r2, #0x0] ldr r0, _020487DC ; =0x020F4684 bl FUN_02016BBC mov r0, #0x3 mov r1, #0x0 bl FUN_02017FE4 ldr r0, [r4, #0x8] ldr r2, _020487E0 ; =0x020F4694 mov r1, #0x3 mov r3, #0x0 bl FUN_02016C18 mov r1, #0x20 mov r0, #0x3 mov r2, #0x0 add r3, r1, #0x0 bl FUN_02017F18 mov r2, #0x0 str r2, [sp, #0x0] mov r0, #0x20 str r0, [sp, #0x4] str r0, [sp, #0x8] mov r0, #0x11 str r0, [sp, #0xc] ldr r0, [r4, #0x8] mov r1, #0x3 add r3, r2, #0x0 bl FUN_02018540 ldr r0, [r4, #0x8] mov r1, #0x3 bl FUN_02017CD0 add sp, #0x10 pop {r4, pc} nop _020487D4: .word 0x020F46B0 _020487D8: .word 0x04000304 _020487DC: .word 0x020F4684 _020487E0: .word 0x020F4694 thumb_func_start FUN_020487E4 FUN_020487E4: ; 0x020487E4 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] add r4, r1, #0x0 bl LoadPlayerDataAddress add r6, r0, #0x0 mov r0, #0x1a mov r1, #0xc7 mov r2, #0xf mov r3, #0x20 bl FUN_0200A738 str r0, [r4, #0x2c] add r1, r4, #0x0 ldr r0, [r5, #0x8] add r1, #0x1c mov r2, #0x3 bl FUN_020545B8 add r0, r4, #0x0 add r0, #0x1c add r1, r6, #0x0 bl FUN_02054608 add r0, r4, #0x0 ldr r1, [r4, #0x2c] add r0, #0x1c add r2, r6, #0x0 mov r3, #0x1 bl FUN_02054658 str r0, [r4, #0x34] add r0, r4, #0x0 ldr r1, _02048834 ; =0x000003E2 add r0, #0x1c bl FUN_0200D858 str r0, [r4, #0x30] pop {r4-r6, pc} .balign 4 _02048834: .word 0x000003E2 thumb_func_start FUN_02048838 FUN_02048838: ; 0x02048838 ldr r0, [r0, #0x34] ldr r3, _02048844 ; =FUN_020546C8 lsl r0, r0, #0x18 lsr r0, r0, #0x18 bx r3 nop _02048844: .word FUN_020546C8 thumb_func_start FUN_02048848 FUN_02048848: ; 0x02048848 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x2c] bl FUN_02021A20 ldr r0, [r4, #0x30] bl FUN_0200DBFC add r4, #0x1c add r0, r4, #0x0 bl FUN_0205464C pop {r4, pc} .balign 4 thumb_func_start FUN_02048864 FUN_02048864: ; 0x02048864 push {r3-r7, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 mov r0, #0x1 mov r1, #0x1a mov r2, #0xc7 mov r3, #0x4 bl FUN_0200A86C add r7, r0, #0x0 cmp r6, #0x2 bne _020488AC mov r0, #0x4 bl FUN_0200AA80 add r6, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_020238F4 add r2, r0, #0x0 add r0, r6, #0x0 mov r1, #0x0 bl FUN_0200ABC0 add r0, r6, #0x0 add r1, r7, #0x0 mov r2, #0x10 mov r3, #0x4 bl FUN_0200A9C4 str r0, [r4, #0x2c] add r0, r6, #0x0 bl FUN_0200AB18 b _020488B4 _020488AC: mov r1, #0x12 bl FUN_0200A914 str r0, [r4, #0x2c] _020488B4: add r0, r7, #0x0 bl FUN_0200A8B8 ldr r0, [r5, #0xc] bl LoadPlayerDataAddress add r2, r0, #0x0 add r0, r4, #0x0 ldr r1, [r4, #0x2c] add r0, #0x1c mov r3, #0x1 bl FUN_02054658 str r0, [r4, #0x34] pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020488D4 FUN_020488D4: ; 0x020488D4 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 ldr r0, [r4, #0x2c] cmp r0, #0x0 beq _020488E4 bl FUN_02021A20 _020488E4: add r0, r4, #0x0 add r0, #0x1c bl FUN_02019048 cmp r0, #0x0 beq _020488F8 add r4, #0x1c add r0, r4, #0x0 bl FUN_02019178 _020488F8: ldr r0, [r5, #0x8] mov r1, #0x3 bl FUN_020178A0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02048904 FUN_02048904: ; 0x02048904 ldr r1, [r0, #0x1c] ldr r2, _02048950 ; =0x0000014B ldr r1, [r1, #0x0] cmp r1, r2 bgt _0204892C sub r2, r2, #0x5 sub r2, r1, r2 bmi _02048936 add r2, r2, r2 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _02048920: ; jump table (using 16-bit offset) .short _02048932 - _02048920 - 2; case 0 .short _02048932 - _02048920 - 2; case 1 .short _02048932 - _02048920 - 2; case 2 .short _02048932 - _02048920 - 2; case 3 .short _02048932 - _02048920 - 2; case 4 .short _02048932 - _02048920 - 2; case 5 _0204892C: ldr r2, _02048954 ; =0x000001ED cmp r1, r2 bne _02048936 _02048932: mov r2, #0x1 b _02048938 _02048936: mov r2, #0x0 _02048938: cmp r2, #0x0 bne _02048946 ldr r1, [r0, #0x6c] cmp r1, #0x4 bne _02048946 mov r1, #0x0 str r1, [r0, #0x6c] _02048946: cmp r2, #0x0 beq _0204894E mov r1, #0x4 str r1, [r0, #0x6c] _0204894E: bx lr .balign 4 _02048950: .word 0x0000014B _02048954: .word 0x000001ED thumb_func_start FUN_02048958 FUN_02048958: ; 0x02048958 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] add r4, r1, #0x0 bl FUN_02034E30 add r6, r0, #0x0 bl FUN_02034DC8 add r2, r0, #0x0 cmp r4, #0x0 beq _0204898C ldr r3, [r5, #0x1c] ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldr r0, [r3, #0x0] str r0, [r2, #0x0] ldr r2, [r5, #0x1c] ldmia r4!, {r0-r1} stmia r2!, {r0-r1} ldmia r4!, {r0-r1} stmia r2!, {r0-r1} ldr r0, [r4, #0x0] str r0, [r2, #0x0] _0204898C: ldr r1, [r5, #0x1c] add r0, r5, #0x0 ldr r1, [r1, #0x0] bl FUN_02034A60 ldr r0, [r5, #0x1c] ldr r1, [r0, #0x4] mov r0, #0x0 mvn r0, r0 cmp r1, r0 beq _020489DA add r0, r5, #0x0 bl FUN_02034B00 ldrh r2, [r0, #0x0] ldr r1, [r5, #0x1c] str r2, [r1, #0x8] ldrh r2, [r0, #0x2] ldr r1, [r5, #0x1c] str r2, [r1, #0xc] ldrh r1, [r0, #0x6] mov r0, #0x1 lsl r0, r0, #0x8 cmp r1, r0 bne _020489DA add r0, r6, #0x0 bl FUN_02034DD0 add r4, r0, #0x0 add r0, r6, #0x0 bl FUN_02034DC4 add r2, r0, #0x0 ldmia r2!, {r0-r1} stmia r4!, {r0-r1} ldmia r2!, {r0-r1} stmia r4!, {r0-r1} ldr r0, [r2, #0x0] str r0, [r4, #0x0] _020489DA: pop {r4-r6, pc} thumb_func_start FUN_020489DC FUN_020489DC: ; 0x020489DC push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x6c] cmp r0, #0x5 blt _020489EA bl ErrorHandling _020489EA: ldr r0, [r4, #0x70] ldr r0, [r0, #0x0] lsl r0, r0, #0x10 lsr r1, r0, #0x1c ldr r0, _020489F8 ; =0x021C4918 strb r1, [r0, #0x5] pop {r4, pc} .balign 4 _020489F8: .word 0x021C4918 thumb_func_start FUN_020489FC FUN_020489FC: ; 0x020489FC push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 ldr r0, [r5, #0x1c] add r4, r1, #0x0 ldr r7, [r0, #0x0] ldr r0, [r5, #0xc] bl FUN_02034E30 str r0, [sp, #0x4] add r0, r5, #0x0 bl FUN_0204AB44 add r0, r5, #0x0 bl FUN_02039564 cmp r4, #0x0 bne _02048A28 add r0, r5, #0x0 bl FUN_020636DC b _02048A2E _02048A28: add r0, r5, #0x0 bl FUN_02063684 _02048A2E: ldr r0, [r5, #0xc] bl FUN_020462AC bl FUN_0205F408 cmp r4, #0x0 bne _02048A42 add r0, r5, #0x0 bl FUN_0204B0F8 _02048A42: cmp r4, #0x0 bne _02048A50 ldr r0, [r5, #0xc] bl FUN_02024ED8 bl FUN_02025484 _02048A50: ldr r0, [r5, #0xc] bl FUN_020462AC str r0, [sp, #0x0] add r0, r5, #0x0 add r1, r7, #0x0 bl FUN_02034FE4 lsl r0, r0, #0x10 lsr r6, r0, #0x10 cmp r6, #0xe bne _02048A72 ldr r0, [sp, #0x0] bl FUN_0205F2C4 cmp r0, #0x1 beq _02048A80 _02048A72: cmp r6, #0x10 bne _02048A82 ldr r0, [sp, #0x0] bl FUN_0205F294 cmp r0, #0x1 bne _02048A82 _02048A80: mov r6, #0x0 _02048A82: ldr r0, [sp, #0x4] add r1, r6, #0x0 bl FUN_02034DF4 cmp r4, #0x0 beq _02048AA6 ldr r0, [sp, #0x4] bl FUN_02034E10 add r6, r0, #0x0 add r0, r7, #0x0 bl FUN_0203484C cmp r6, r0 beq _02048AB4 bl ErrorHandling b _02048AB4 _02048AA6: add r0, r7, #0x0 bl FUN_0203484C add r1, r0, #0x0 ldr r0, [sp, #0x4] bl FUN_02034E18 _02048AB4: cmp r4, #0x0 bne _02048ACA add r0, r7, #0x0 bl FUN_02034EF8 lsl r0, r0, #0x10 lsr r1, r0, #0x10 beq _02048ACA ldr r0, [sp, #0x4] bl FUN_02034E04 _02048ACA: add r0, r5, #0x0 mov r1, #0x2 bl FUN_0203989C add r0, r5, #0x0 mov r1, #0x0 add r0, #0x74 strh r1, [r0, #0x0] add r5, #0x76 strh r1, [r5, #0x0] add sp, #0x8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02048AE4 FUN_02048AE4: ; 0x02048AE4 push {r4-r5, lr} sub sp, #0xc add r5, r0, #0x0 mov r1, #0x40 mov r2, #0x5 bl FUN_02057380 str r0, [r5, #0x34] ldr r0, [r5, #0xc] bl FUN_020238F4 bl FUN_020239CC add r4, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_02034E30 bl FUN_02034E20 ldr r3, [r5, #0x1c] ldr r1, [r0, #0x4] str r1, [sp, #0x0] str r4, [sp, #0x4] str r0, [sp, #0x8] ldr r0, [r5, #0x34] ldr r1, [r3, #0x8] ldr r2, [r3, #0xc] ldr r3, [r3, #0x10] bl FUN_02055068 str r0, [r5, #0x38] add r0, r5, #0x0 bl FUN_02034AC8 ldr r0, [r5, #0x34] bl FUN_02058768 add sp, #0xc pop {r4-r5, pc} .balign 4 thumb_func_start FUN_02048B34 FUN_02048B34: ; 0x02048B34 push {r4, lr} add r4, r0, #0x0 bl FUN_0204CC48 ldr r0, [r4, #0x38] bl FUN_02055160 ldr r0, [r4, #0x34] bl FUN_0205771C ldr r0, [r4, #0x34] bl FUN_020573AC pop {r4, pc} thumb_func_start FUN_02048B50 FUN_02048B50: ; 0x02048B50 push {r3-r5, lr} add r5, r0, #0x0 mov r1, #0x40 mov r2, #0x5 bl FUN_02057380 str r0, [r5, #0x34] add r0, r5, #0x0 bl FUN_02034E60 ldr r0, [r5, #0xc] bl FUN_02034E30 bl FUN_02034E20 add r4, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_020238F4 bl FUN_020239CC add r2, r0, #0x0 ldr r0, [r5, #0x34] add r1, r4, #0x0 bl FUN_020550A4 str r0, [r5, #0x38] ldr r0, [r5, #0x34] bl FUN_02058768 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02048B90 FUN_02048B90: ; 0x02048B90 push {r4, lr} add r4, r0, #0x0 bl FUN_02048904 ldr r0, [r4, #0x58] cmp r0, #0x0 beq _02048BA2 bl ErrorHandling _02048BA2: ldr r0, [r4, #0x1c] ldr r1, [r4, #0x28] ldr r0, [r0, #0x0] bl FUN_020344AC ldr r0, [r4, #0xc] bl FUN_020462AC mov r1, #0x3 bl FUN_0205F524 cmp r0, #0x0 beq _02048BC2 ldr r0, [r4, #0x28] bl FUN_020346CC _02048BC2: ldr r0, [r4, #0xc] bl FUN_020462AC mov r1, #0x2 bl FUN_0205F524 cmp r0, #0x0 bne _02048BD8 ldr r0, [r4, #0x28] bl FUN_02034678 _02048BD8: ldr r0, [r4, #0x6c] cmp r0, #0x5 blt _02048BE2 bl ErrorHandling _02048BE2: ldr r0, [r4, #0x6c] ldr r1, _02048C28 ; =0x020F46E0 lsl r0, r0, #0x3 add r0, r1, r0 str r0, [r4, #0x70] ldr r0, [r0, #0x0] lsl r0, r0, #0x18 lsr r0, r0, #0x1c str r0, [r4, #0x5c] ldr r0, [r4, #0x70] ldr r0, [r0, #0x0] lsl r0, r0, #0x1c lsr r0, r0, #0x1c str r0, [r4, #0x18] ldr r1, [r4, #0x70] add r0, r4, #0x0 ldr r1, [r1, #0x0] add r0, #0x58 lsl r1, r1, #0x14 lsr r1, r1, #0x1c bl FUN_0204A690 ldr r0, [r4, #0x70] ldr r1, [r0, #0x0] lsl r0, r1, #0xc lsr r0, r0, #0x1c beq _02048C24 lsr r1, r1, #0x18 lsl r1, r1, #0x18 add r0, r4, #0x0 lsr r1, r1, #0x18 bl FUN_0204A368 _02048C24: pop {r4, pc} nop _02048C28: .word 0x020F46E0 thumb_func_start FUN_02048C2C FUN_02048C2C: ; 0x02048C2C push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x58] cmp r0, #0x0 bne _02048C3A bl ErrorHandling _02048C3A: mov r0, #0x0 str r0, [r4, #0x58] mov r0, #0x5 str r0, [r4, #0x18] ldr r0, [r4, #0x70] ldr r0, [r0, #0x0] lsl r0, r0, #0xc lsr r0, r0, #0x1c beq _02048C52 add r0, r4, #0x0 bl FUN_0204A390 _02048C52: mov r0, #0x0 str r0, [r4, #0x70] pop {r4, pc} thumb_func_start FUN_02048C58 FUN_02048C58: ; 0x02048C58 push {r4, lr} add r4, r0, #0x0 add r0, #0x98 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _02048C7E ldr r0, [r4, #0x1c] mov r1, #0xb ldr r0, [r0, #0x0] lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_02028FA4 add r4, #0x98 add r1, r0, #0x0 ldr r0, [r4, #0x0] mov r2, #0x0 bl FUN_02028AD4 _02048C7E: pop {r4, pc} thumb_func_start FUN_02048C80 FUN_02048C80: ; 0x02048C80 push {r4, lr} add r4, r0, #0x0 add r0, #0x98 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _02048CAE ldr r0, [r4, #0xc] bl FUN_02034E30 bl FUN_02034DD0 ldr r0, [r0, #0x0] mov r1, #0xb lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_02028FA4 add r4, #0x98 add r1, r0, #0x0 ldr r0, [r4, #0x0] mov r2, #0x0 bl FUN_02028AD4 _02048CAE: pop {r4, pc} thumb_func_start FUN_02048CB0 FUN_02048CB0: ; 0x02048CB0 push {r4-r6, lr} add r4, r1, #0x0 add r5, r0, #0x0 ldr r0, [r4, #0x38] bl FUN_0205532C add r6, r0, #0x0 ldr r0, [r4, #0x38] bl FUN_02055320 ldr r1, [r4, #0x1c] ldr r1, [r1, #0x0] str r1, [r5, #0x0] mov r1, #0x0 mvn r1, r1 str r1, [r5, #0x4] str r0, [r5, #0x8] str r6, [r5, #0xc] mov r0, #0x1 str r0, [r5, #0x10] pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02048CDC FUN_02048CDC: ; 0x02048CDC push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x1c] ldr r0, [r0, #0x0] bl FUN_020349E4 cmp r0, #0x0 beq _02048CFE ldr r1, [r4, #0x1c] ldr r0, [r1, #0x8] cmp r0, #0x7 bne _02048CFE ldr r0, [r1, #0xc] cmp r0, #0x6 bne _02048CFE mov r0, #0x1 pop {r4, pc} _02048CFE: mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02048D04 FUN_02048D04: ; 0x02048D04 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_02034E30 bl FUN_02034DD0 add r4, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_020462AC ldr r0, [r5, #0x1c] ldr r0, [r0, #0x0] str r0, [r4, #0x0] mov r0, #0x0 mvn r0, r0 str r0, [r4, #0x4] mov r0, #0x8 str r0, [r4, #0x8] mov r0, #0x2 str r0, [r4, #0xc] mov r0, #0x1 str r0, [r4, #0x10] pop {r3-r5, pc} thumb_func_start FUN_02048D34 FUN_02048D34: ; 0x02048D34 push {r4-r6, lr} add r6, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r6, #0x0 bl FUN_02046530 add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x0 beq _02048D56 cmp r0, #0x1 beq _02048D7A cmp r0, #0x2 beq _02048D88 b _02048D8C _02048D56: ldr r1, [r5, #0x1c] add r0, r5, #0x0 bl FUN_02048958 add r0, r5, #0x0 bl FUN_02048B90 add r0, r5, #0x0 mov r1, #0x0 bl FUN_020489FC add r0, r5, #0x0 bl FUN_02048AE4 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02048D8C _02048D7A: add r0, r6, #0x0 bl FUN_0204B0E8 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02048D8C _02048D88: mov r0, #0x1 pop {r4-r6, pc} _02048D8C: mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02048D90 FUN_02048D90: ; 0x02048D90 push {r4, lr} add r4, r0, #0x0 mov r1, #0x0 str r1, [r4, #0x6c] bl FUN_02039874 ldr r1, _02048DA8 ; =FUN_02048D34 add r0, r4, #0x0 mov r2, #0x0 bl FUN_020463CC pop {r4, pc} .balign 4 _02048DA8: .word FUN_02048D34 thumb_func_start FUN_02048DAC FUN_02048DAC: ; 0x02048DAC push {r3-r7, lr} add r7, r0, #0x0 bl FUN_02046528 add r4, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_020462AC add r6, r0, #0x0 add r0, r7, #0x0 bl FUN_02046530 add r5, r0, #0x0 ldr r0, [r5, #0x0] cmp r0, #0x4 bhi _02048EC2 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02048DD8: ; jump table (using 16-bit offset) .short _02048DE2 - _02048DD8 - 2; case 0 .short _02048E10 - _02048DD8 - 2; case 1 .short _02048EA4 - _02048DD8 - 2; case 2 .short _02048EB0 - _02048DD8 - 2; case 3 .short _02048EB4 - _02048DD8 - 2; case 4 _02048DE2: ldr r0, [r4, #0xc] bl FUN_02025B94 add r0, r6, #0x0 mov r1, #0x2 bl FUN_0205F2D4 add r7, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_020289A4 add r1, r7, #0x0 bl FUN_02028A20 cmp r0, #0x0 beq _02048E10 add r0, r4, #0x0 mov r1, #0x0 bl FUN_02037944 mov r0, #0x4 str r0, [r5, #0x0] b _02048EC2 _02048E10: add r0, r6, #0x0 mov r1, #0x2 bl FUN_0205F2D4 add r7, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_020289A4 add r1, r7, #0x0 bl FUN_020289B0 add r1, r4, #0x0 add r1, #0x98 str r0, [r1, #0x0] add r0, r6, #0x0 bl FUN_0205F174 cmp r0, #0x0 beq _02048E78 ldr r0, [r4, #0xc] bl FUN_02034E30 add r7, r0, #0x0 add r0, r4, #0x0 bl FUN_02048CDC cmp r0, #0x0 beq _02048E4E add r0, r4, #0x0 bl FUN_02048D04 _02048E4E: add r0, r6, #0x0 bl FUN_0205F164 add r0, r7, #0x0 bl FUN_02034DD0 add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_02048958 add r0, r4, #0x0 bl FUN_02048B90 add r0, r4, #0x0 mov r1, #0x0 bl FUN_020489FC add r0, r4, #0x0 bl FUN_02048AE4 b _02048E92 _02048E78: add r0, r4, #0x0 mov r1, #0x0 bl FUN_02048958 add r0, r4, #0x0 bl FUN_02048B90 add r0, r4, #0x0 bl FUN_0204B0F8 add r0, r4, #0x0 bl FUN_02048B50 _02048E92: add r0, r4, #0x0 bl FUN_02048C58 add r0, r4, #0x0 bl FUN_02063808 mov r0, #0x2 str r0, [r5, #0x0] b _02048EC2 _02048EA4: add r0, r7, #0x0 bl FUN_0204B0E8 mov r0, #0x3 str r0, [r5, #0x0] b _02048EC2 _02048EB0: mov r0, #0x1 pop {r3-r7, pc} _02048EB4: add r0, r4, #0x0 bl FUN_0204647C cmp r0, #0x0 bne _02048EC2 mov r0, #0x1 str r0, [r5, #0x0] _02048EC2: mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02048EC8 FUN_02048EC8: ; 0x02048EC8 ldr r3, _02048ED4 ; =FUN_020463CC mov r2, #0x0 str r2, [r0, #0x6c] ldr r1, _02048ED8 ; =FUN_02048DAC bx r3 nop _02048ED4: .word FUN_020463CC _02048ED8: .word FUN_02048DAC thumb_func_start FUN_02048EDC FUN_02048EDC: ; 0x02048EDC push {r3-r7, lr} add r7, r0, #0x0 bl FUN_02046528 add r4, r0, #0x0 add r0, r7, #0x0 bl FUN_0204652C add r6, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_020462AC str r0, [sp, #0x0] add r0, r7, #0x0 bl FUN_02046530 add r5, r0, #0x0 ldr r0, [r5, #0x0] cmp r0, #0x5 bhi _02048FC4 add r1, r0, r0 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02048F10: ; jump table (using 16-bit offset) .short _02048F1C - _02048F10 - 2; case 0 .short _02048F54 - _02048F10 - 2; case 1 .short _02048F7E - _02048F10 - 2; case 2 .short _02048F9A - _02048F10 - 2; case 3 .short _02048FAE - _02048F10 - 2; case 4 .short _02048FBA - _02048F10 - 2; case 5 _02048F1C: mov r0, #0x0 add r1, r0, #0x0 bl FUN_0200E3A0 mov r0, #0x1 mov r1, #0x0 bl FUN_0200E3A0 ldr r0, [r4, #0xc] bl FUN_02025B94 ldr r0, [sp, #0x0] mov r1, #0x2 bl FUN_0205F2D4 add r6, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_020289A4 add r1, r6, #0x0 bl FUN_020289B0 add r4, #0x98 str r0, [r4, #0x0] ldr r0, [r5, #0x0] add r0, r0, #0x1 str r0, [r5, #0x0] b _02048FC4 _02048F54: add r0, r4, #0x0 add r1, r6, #0x4 bl FUN_02048958 add r0, r4, #0x0 bl FUN_02048B90 add r0, r4, #0x0 mov r1, #0x0 bl FUN_020489FC add r0, r4, #0x0 bl FUN_02048AE4 add r0, r4, #0x0 bl FUN_02048C80 ldr r0, [r5, #0x0] add r0, r0, #0x1 str r0, [r5, #0x0] b _02048FC4 _02048F7E: add r0, r4, #0x0 bl FUN_020520AC str r0, [r4, #0x78] bl FUN_02052EE8 str r0, [r4, #0x7c] add r0, r7, #0x0 bl FUN_0204AF84 ldr r0, [r5, #0x0] add r0, r0, #0x1 str r0, [r5, #0x0] b _02048FC4 _02048F9A: mov r1, #0x0 str r1, [r6, #0x0] add r0, r4, #0x0 add r2, r6, #0x0 bl FUN_021E7750 ldr r0, [r5, #0x0] add r0, r0, #0x1 str r0, [r5, #0x0] b _02048FC4 _02048FAE: ldr r1, [r6, #0x0] cmp r1, #0x0 beq _02048FC4 add r0, r0, #0x1 str r0, [r5, #0x0] b _02048FC4 _02048FBA: add r0, r6, #0x0 bl FUN_02016A18 mov r0, #0x1 pop {r3-r7, pc} _02048FC4: mov r0, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02048FC8 FUN_02048FC8: ; 0x02048FC8 push {r3-r5, lr} add r4, r0, #0x0 ldr r0, [r4, #0x1c] ldr r0, [r0, #0x0] bl FUN_02034998 cmp r0, #0x0 bne _02049000 add r0, r4, #0x0 bl FUN_02048CDC cmp r0, #0x0 beq _02048FF8 ldr r0, [r4, #0xc] bl FUN_020462AC add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02048D04 add r0, r5, #0x0 bl FUN_0205F154 b _02049000 _02048FF8: add r0, r4, #0x0 bl FUN_02048EC8 pop {r3-r5, pc} _02049000: mov r0, #0xb mov r1, #0x18 bl FUN_020169D8 add r2, r0, #0x0 mov r1, #0x0 ldr r0, _02049030 ; =0x000001D2 str r1, [r2, #0x0] str r0, [r2, #0x4] sub r0, r1, #0x1 str r0, [r2, #0x8] mov r0, #0x8 str r0, [r2, #0xc] mov r0, #0xe str r0, [r2, #0x10] str r1, [r2, #0x14] mov r0, #0x2 str r0, [r4, #0x6c] ldr r1, _02049034 ; =FUN_02048EDC add r0, r4, #0x0 bl FUN_020463CC pop {r3-r5, pc} nop _02049030: .word 0x000001D2 _02049034: .word FUN_02048EDC thumb_func_start FUN_02049038 FUN_02049038: ; 0x02049038 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02046528 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldr r1, [r4, #0x0] cmp r1, #0x3 bhi _020490B6 add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0204905C: ; jump table (using 16-bit offset) .short _02049064 - _0204905C - 2; case 0 .short _02049080 - _0204905C - 2; case 1 .short _02049090 - _0204905C - 2; case 2 .short _020490AE - _0204905C - 2; case 3 _02049064: ldr r0, _020490BC ; =0x00000603 bl FUN_020054C8 ldr r1, [r4, #0x4] add r0, r6, #0x0 bl FUN_0204AD60 add r0, r5, #0x0 bl FUN_0204B090 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _020490B6 _02049080: add r0, r5, #0x0 add r1, r4, #0x4 bl FUN_02049160 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _020490B6 _02049090: bl FUN_02005404 cmp r0, #0x0 bne _020490B6 ldr r1, [r4, #0x4] add r0, r6, #0x0 bl FUN_0204AD8C add r0, r5, #0x0 bl FUN_0204B0E8 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _020490B6 _020490AE: bl FUN_02016A18 mov r0, #0x1 pop {r4-r6, pc} _020490B6: mov r0, #0x0 pop {r4-r6, pc} nop _020490BC: .word 0x00000603 thumb_func_start FUN_020490C0 FUN_020490C0: ; 0x020490C0 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 mov r0, #0xb mov r1, #0x1c bl FUN_020169D8 add r2, r0, #0x0 mov r0, #0x0 str r0, [r2, #0x0] ldmia r4!, {r0-r1} add r3, r2, #0x4 stmia r3!, {r0-r1} ldmia r4!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r4, #0x0] ldr r1, _020490EC ; =FUN_02049038 str r0, [r3, #0x0] add r0, r5, #0x0 bl FUN_0204640C pop {r3-r5, pc} .balign 4 _020490EC: .word FUN_02049038 thumb_func_start FUN_020490F0 FUN_020490F0: ; 0x020490F0 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x0 beq _02049112 cmp r0, #0x1 beq _02049126 cmp r0, #0x2 beq _0204914C b _0204915C _02049112: add r0, r5, #0x0 bl FUN_02048B34 add r0, r5, #0x0 bl FUN_02048C2C ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _0204915C _02049126: add r0, r5, #0x0 add r1, r4, #0x4 bl FUN_02048958 add r0, r5, #0x0 bl FUN_02048B90 add r0, r5, #0x0 mov r1, #0x0 bl FUN_020489FC add r5, #0x90 ldr r0, [r5, #0x0] bl FUN_0205DD40 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _0204915C _0204914C: add r0, r5, #0x0 bl FUN_02048AE4 add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x1 pop {r3-r5, pc} _0204915C: mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02049160 FUN_02049160: ; 0x02049160 push {r3-r7, lr} add r6, r0, #0x0 add r5, r1, #0x0 bl FUN_02046528 add r7, r0, #0x0 mov r0, #0xb mov r1, #0x18 bl FUN_020169D8 add r4, r0, #0x0 add r0, r7, #0x0 bl FUN_0203739C cmp r0, #0x0 beq _02049186 bl ErrorHandling pop {r3-r7, pc} _02049186: mov r0, #0x0 str r0, [r4, #0x0] ldmia r5!, {r0-r1} add r2, r4, #0x4 stmia r2!, {r0-r1} ldmia r5!, {r0-r1} stmia r2!, {r0-r1} ldr r0, [r5, #0x0] ldr r1, _020491A4 ; =FUN_020490F0 str r0, [r2, #0x0] add r0, r6, #0x0 add r2, r4, #0x0 bl FUN_0204640C pop {r3-r7, pc} .balign 4 _020491A4: .word FUN_020490F0 thumb_func_start FUN_020491A8 FUN_020491A8: ; 0x020491A8 push {lr} sub sp, #0x14 str r1, [sp, #0x0] ldr r1, [sp, #0x18] str r2, [sp, #0x4] str r1, [sp, #0xc] ldr r1, [sp, #0x1c] str r3, [sp, #0x8] str r1, [sp, #0x10] add r1, sp, #0x0 bl FUN_02049160 add sp, #0x14 pop {pc} thumb_func_start FUN_020491C4 FUN_020491C4: ; 0x020491C4 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02046528 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldr r1, [r4, #0x0] cmp r1, #0x3 bhi _0204923C add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _020491E8: ; jump table (using 16-bit offset) .short _020491F0 - _020491E8 - 2; case 0 .short _02049206 - _020491E8 - 2; case 1 .short _02049216 - _020491E8 - 2; case 2 .short _02049234 - _020491E8 - 2; case 3 _020491F0: ldr r1, [r4, #0x4] add r0, r6, #0x0 bl FUN_0204AD60 add r0, r5, #0x0 bl FUN_0204AF3C ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _0204923C _02049206: add r0, r5, #0x0 add r1, r4, #0x4 bl FUN_02049160 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _0204923C _02049216: bl FUN_02005404 cmp r0, #0x0 bne _0204923C ldr r1, [r4, #0x4] add r0, r6, #0x0 bl FUN_0204AD8C add r0, r5, #0x0 bl FUN_0204AF84 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _0204923C _02049234: bl FUN_02016A18 mov r0, #0x1 pop {r4-r6, pc} _0204923C: mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02049240 FUN_02049240: ; 0x02049240 push {r3-r7, lr} add r7, r0, #0x0 add r5, r1, #0x0 mov r0, #0xb mov r1, #0x18 add r4, r2, #0x0 add r6, r3, #0x0 bl FUN_020169D8 add r2, r0, #0x0 mov r0, #0x0 str r0, [r2, #0x0] str r5, [r2, #0x4] str r4, [r2, #0x8] ldr r0, [sp, #0x18] str r6, [r2, #0xc] str r0, [r2, #0x10] ldr r0, [sp, #0x1c] ldr r1, _02049270 ; =FUN_020491C4 str r0, [r2, #0x14] add r0, r7, #0x0 bl FUN_0204640C pop {r3-r7, pc} .balign 4 _02049270: .word FUN_020491C4 thumb_func_start FUN_02049274 FUN_02049274: ; 0x02049274 push {r4-r5, lr} sub sp, #0x14 add r4, r0, #0x0 ldr r0, [sp, #0x20] str r1, [sp, #0x0] str r0, [sp, #0xc] ldr r0, [sp, #0x24] mov r1, #0x20 str r0, [sp, #0x10] mov r0, #0xb str r2, [sp, #0x4] str r3, [sp, #0x8] bl FUN_020169D8 add r2, r0, #0x0 mov r0, #0x0 str r0, [r2, #0x0] add r3, r2, #0x0 add r5, sp, #0x0 str r0, [r2, #0x4] ldmia r5!, {r0-r1} add r3, #0x8 stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r5, #0x0] ldr r1, _020492B8 ; =FUN_02049304 str r0, [r3, #0x0] add r0, r4, #0x0 bl FUN_020463CC add sp, #0x14 pop {r4-r5, pc} nop _020492B8: .word FUN_02049304 thumb_func_start FUN_020492BC FUN_020492BC: ; 0x020492BC push {r4-r5, lr} sub sp, #0x14 add r4, r0, #0x0 ldr r0, [sp, #0x20] str r1, [sp, #0x0] str r0, [sp, #0xc] ldr r0, [sp, #0x24] mov r1, #0x20 str r0, [sp, #0x10] mov r0, #0xb str r2, [sp, #0x4] str r3, [sp, #0x8] bl FUN_020169D8 add r2, r0, #0x0 mov r0, #0x0 str r0, [r2, #0x0] add r3, r2, #0x0 add r5, sp, #0x0 str r0, [r2, #0x4] ldmia r5!, {r0-r1} add r3, #0x8 stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r5, #0x0] ldr r1, _02049300 ; =FUN_02049304 str r0, [r3, #0x0] add r0, r4, #0x0 bl FUN_020463EC add sp, #0x14 pop {r4-r5, pc} nop _02049300: .word FUN_02049304 thumb_func_start FUN_02049304 FUN_02049304: ; 0x02049304 push {r3-r7, lr} add r7, r0, #0x0 bl FUN_02046528 add r6, r0, #0x0 add r0, r7, #0x0 bl FUN_0204652C add r4, r0, #0x0 add r5, r4, #0x0 ldr r1, [r4, #0x0] add r5, #0x8 cmp r1, #0x3 bhi _02049390 add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0204932C: ; jump table (using 16-bit offset) .short _02049334 - _0204932C - 2; case 0 .short _0204934A - _0204932C - 2; case 1 .short _02049364 - _0204932C - 2; case 2 .short _02049388 - _0204932C - 2; case 3 _02049334: ldr r1, [r5, #0x0] add r0, r6, #0x0 bl FUN_0204AD60 add r0, r7, #0x0 bl FUN_02049394 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02049390 _0204934A: ldr r0, [r6, #0x38] mov r1, #0x0 bl FUN_020553A8 add r1, r4, #0x0 add r0, r7, #0x0 add r1, #0x8 bl FUN_02049160 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02049390 _02049364: bl FUN_02005404 cmp r0, #0x0 bne _02049390 ldr r1, [r5, #0x0] add r0, r6, #0x0 bl FUN_0204AD8C add r0, r6, #0x0 bl FUN_020637A8 add r0, r7, #0x0 bl FUN_020493D0 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02049390 _02049388: bl FUN_02016A18 mov r0, #0x1 pop {r3-r7, pc} _02049390: mov r0, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02049394 FUN_02049394: ; 0x02049394 ldr r3, _0204939C ; =FUN_0204640C ldr r1, _020493A0 ; =FUN_020493A4 mov r2, #0x0 bx r3 .balign 4 _0204939C: .word FUN_0204640C _020493A0: .word FUN_020493A4 thumb_func_start FUN_020493A4 FUN_020493A4: ; 0x020493A4 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02046530 add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x0 beq _020493BA cmp r0, #0x1 beq _020493C8 b _020493CC _020493BA: add r0, r5, #0x0 bl FUN_0204AF3C ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _020493CC _020493C8: mov r0, #0x1 pop {r3-r5, pc} _020493CC: mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_020493D0 FUN_020493D0: ; 0x020493D0 push {r4, lr} add r4, r0, #0x0 bl FUN_0204652C add r2, r0, #0x0 ldr r1, _020493E4 ; =FUN_020493E8 add r0, r4, #0x0 bl FUN_0204640C pop {r4, pc} .balign 4 _020493E4: .word FUN_020493E8 thumb_func_start FUN_020493E8 FUN_020493E8: ; 0x020493E8 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02046530 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02046528 ldr r1, [r4, #0x0] cmp r1, #0x0 beq _02049408 cmp r1, #0x1 beq _02049416 cmp r1, #0x2 beq _02049428 b _0204942C _02049408: add r0, r5, #0x0 bl FUN_0204AF84 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _0204942C _02049416: bl FUN_021E331C add r0, r5, #0x0 bl FUN_02049430 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _0204942C _02049428: mov r0, #0x1 pop {r3-r5, pc} _0204942C: mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02049430 FUN_02049430: ; 0x02049430 push {r4-r6, lr} add r6, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r6, #0x0 bl FUN_0204652C add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0203739C cmp r0, #0x0 bne _02049452 bl ErrorHandling pop {r4-r6, pc} _02049452: ldr r0, [r5, #0x38] bl FUN_020553E8 add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_022483BC str r0, [r4, #0x4] ldr r1, _02049470 ; =FUN_02049474 add r0, r6, #0x0 add r2, r4, #0x0 bl FUN_0204640C pop {r4-r6, pc} nop _02049470: .word FUN_02049474 thumb_func_start FUN_02049474 FUN_02049474: ; 0x02049474 push {r4, lr} bl FUN_0204652C add r4, r0, #0x0 ldr r0, [r4, #0x4] bl FUN_022483E0 cmp r0, #0x1 bne _02049490 ldr r0, [r4, #0x4] bl FUN_022483EC mov r0, #0x1 pop {r4, pc} _02049490: mov r0, #0x0 pop {r4, pc} thumb_func_start FUN_02049494 FUN_02049494: ; 0x02049494 push {r4-r6, lr} add r6, r0, #0x0 add r5, r1, #0x0 mov r0, #0xb mov r1, #0x20 add r4, r2, #0x0 bl FUN_020169D8 add r2, r0, #0x0 mov r0, #0x0 str r0, [r2, #0x0] str r4, [r2, #0x4] str r0, [r2, #0x8] add r3, r2, #0x0 ldmia r5!, {r0-r1} add r3, #0xc stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r5, #0x0] ldr r1, _020494C8 ; =FUN_020494CC str r0, [r3, #0x0] add r0, r6, #0x0 bl FUN_020463EC pop {r4-r6, pc} .balign 4 _020494C8: .word FUN_020494CC thumb_func_start FUN_020494CC FUN_020494CC: ; 0x020494CC push {r3-r7, lr} add r7, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r7, #0x0 bl FUN_0204652C add r4, r0, #0x0 add r6, r4, #0x0 ldr r1, [r4, #0x0] add r6, #0xc cmp r1, #0x3 bhi _02049570 add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _020494F4: ; jump table (using 16-bit offset) .short _020494FC - _020494F4 - 2; case 0 .short _02049512 - _020494F4 - 2; case 1 .short _0204952C - _020494F4 - 2; case 2 .short _02049568 - _020494F4 - 2; case 3 _020494FC: ldr r1, [r6, #0x0] add r0, r5, #0x0 bl FUN_0204AD60 add r0, r7, #0x0 bl FUN_02049574 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02049570 _02049512: ldr r0, [r5, #0x38] mov r1, #0x0 bl FUN_020553A8 add r1, r4, #0x0 add r0, r7, #0x0 add r1, #0xc bl FUN_02049160 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02049570 _0204952C: bl FUN_02005404 cmp r0, #0x0 bne _02049570 ldr r1, [r6, #0x0] add r0, r5, #0x0 bl FUN_0204AD8C ldr r0, [r4, #0x4] cmp r0, #0x2 bne _0204954A add r0, r5, #0x0 bl FUN_020637C4 b _0204955A _0204954A: cmp r0, #0x1 bhi _02049556 add r0, r5, #0x0 bl FUN_020637E0 b _0204955A _02049556: bl ErrorHandling _0204955A: add r0, r7, #0x0 bl FUN_020495B0 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02049570 _02049568: bl FUN_02016A18 mov r0, #0x1 pop {r3-r7, pc} _02049570: mov r0, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02049574 FUN_02049574: ; 0x02049574 ldr r3, _0204957C ; =FUN_0204640C ldr r1, _02049580 ; =FUN_02049584 mov r2, #0x0 bx r3 .balign 4 _0204957C: .word FUN_0204640C _02049580: .word FUN_02049584 thumb_func_start FUN_02049584 FUN_02049584: ; 0x02049584 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02046530 add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x0 beq _0204959A cmp r0, #0x1 beq _020495A8 b _020495AC _0204959A: add r0, r5, #0x0 bl FUN_0204AF3C ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _020495AC _020495A8: mov r0, #0x1 pop {r3-r5, pc} _020495AC: mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_020495B0 FUN_020495B0: ; 0x020495B0 push {r4, lr} add r4, r0, #0x0 bl FUN_0204652C add r2, r0, #0x0 ldr r1, _020495C4 ; =FUN_020495C8 add r0, r4, #0x0 bl FUN_0204640C pop {r4, pc} .balign 4 _020495C4: .word FUN_020495C8 thumb_func_start FUN_020495C8 FUN_020495C8: ; 0x020495C8 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02046530 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02046528 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_0204652C ldr r0, [r4, #0x0] cmp r0, #0x0 beq _020495F0 cmp r0, #0x1 beq _020495FE cmp r0, #0x2 beq _02049612 b _02049616 _020495F0: add r0, r5, #0x0 bl FUN_0204AF84 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02049616 _020495FE: add r0, r6, #0x0 bl FUN_021E331C add r0, r5, #0x0 bl FUN_0204961C ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02049616 _02049612: mov r0, #0x1 pop {r4-r6, pc} _02049616: mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0204961C FUN_0204961C: ; 0x0204961C push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02046528 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0204652C add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_0203739C cmp r0, #0x0 bne _0204963E bl ErrorHandling pop {r4-r6, pc} _0204963E: ldr r2, [r6, #0x4] add r0, r4, #0x0 mov r1, #0x4 bl FUN_0224C8C8 add r2, r0, #0x0 ldr r1, _02049654 ; =0x0224C8E9 add r0, r5, #0x0 bl FUN_0204640C pop {r4-r6, pc} .balign 4 _02049654: .word 0x0224C8E9 thumb_func_start FUN_02049658 FUN_02049658: ; 0x02049658 push {r3-r7, lr} add r6, r0, #0x0 bl FUN_02046528 add r7, r0, #0x0 add r0, r6, #0x0 bl FUN_0204652C add r4, r0, #0x0 add r5, r4, #0x0 ldr r1, [r4, #0x0] add r5, #0x8 cmp r1, #0x6 bhi _02049712 add r2, r1, r1 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _02049680: ; jump table (using 16-bit offset) .short _0204968E - _02049680 - 2; case 0 .short _020496A0 - _02049680 - 2; case 1 .short _020496BC - _02049680 - 2; case 2 .short _020496CC - _02049680 - 2; case 3 .short _020496EA - _02049680 - 2; case 4 .short _020496FE - _02049680 - 2; case 5 .short _0204970A - _02049680 - 2; case 6 _0204968E: add r0, r7, #0x0 mov r1, #0x1 add r2, r4, #0x4 bl FUN_021E7750 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02049712 _020496A0: ldr r0, [r4, #0x4] cmp r0, #0x0 beq _02049712 ldr r1, [r5, #0x0] add r0, r7, #0x0 bl FUN_0204AD60 add r0, r6, #0x0 bl FUN_0204AF3C ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02049712 _020496BC: add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_02049160 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02049712 _020496CC: bl FUN_02005404 cmp r0, #0x0 bne _02049712 ldr r1, [r5, #0x0] add r0, r7, #0x0 bl FUN_0204AD8C add r0, r6, #0x0 bl FUN_0204AF84 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02049712 _020496EA: mov r1, #0x0 str r1, [r4, #0x4] add r0, r7, #0x0 add r2, r4, #0x4 bl FUN_021E7750 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02049712 _020496FE: ldr r0, [r4, #0x4] cmp r0, #0x0 beq _02049712 add r0, r1, #0x1 str r0, [r4, #0x0] b _02049712 _0204970A: bl FUN_02016A18 mov r0, #0x1 pop {r3-r7, pc} _02049712: mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02049718 FUN_02049718: ; 0x02049718 push {r4-r7, lr} sub sp, #0x14 add r5, r0, #0x0 add r4, r1, #0x0 mov r0, #0xb mov r1, #0x1c add r6, r2, #0x0 bl FUN_020169D8 mov r1, #0x0 mov r2, #0x1c add r7, r0, #0x0 blx MI_CpuFill8 ldr r0, [r5, #0x38] bl FUN_020552F8 mov r1, #0x0 add r2, r7, #0x0 str r4, [sp, #0x0] str r6, [sp, #0x4] add r3, sp, #0x0 str r1, [sp, #0x8] str r1, [sp, #0xc] str r0, [sp, #0x10] ldmia r3!, {r0-r1} add r2, #0x8 stmia r2!, {r0-r1} ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldr r0, [r3, #0x0] ldr r1, _02049768 ; =FUN_02049658 str r0, [r2, #0x0] add r0, r5, #0x0 add r2, r7, #0x0 bl FUN_020463CC add sp, #0x14 pop {r4-r7, pc} nop _02049768: .word FUN_02049658 thumb_func_start FUN_0204976C FUN_0204976C: ; 0x0204976C push {r4-r6, lr} add r6, r0, #0x0 ldr r0, [r6, #0xc] bl FUN_02034E30 bl FUN_02034DD0 add r4, r0, #0x0 mov r0, #0xb mov r1, #0x40 bl FUN_020169D8 add r5, r0, #0x0 mov r1, #0x0 str r1, [r5, #0x0] str r1, [r5, #0x4] ldr r0, [r6, #0x6c] cmp r0, #0x1 bne _020497A4 ldr r0, [r4, #0x0] str r0, [r5, #0x8] sub r0, r1, #0x1 str r0, [r5, #0xc] ldr r0, [r4, #0x8] str r0, [r5, #0x10] ldr r0, [r4, #0xc] str r0, [r5, #0x14] b _02049820 _020497A4: add r0, r4, #0x0 add r1, r6, #0x0 bl FUN_02048CB0 mov r0, #0x2 str r0, [r5, #0x8] sub r0, r0, #0x3 str r0, [r5, #0xc] ldr r1, [r4, #0x8] asr r0, r1, #0x4 lsr r0, r0, #0x1b add r0, r1, r0 asr r0, r0, #0x5 ldr r1, [r4, #0xc] sub r6, r0, #0x1 asr r0, r1, #0x4 lsr r0, r0, #0x1b add r0, r1, r0 asr r0, r0, #0x5 sub r4, r0, #0x6 cmp r6, #0x0 bge _020497D4 bl ErrorHandling _020497D4: cmp r4, #0x0 bge _020497DC bl ErrorHandling _020497DC: lsr r2, r6, #0x1f lsl r1, r6, #0x1f sub r1, r1, r2 mov r0, #0x1f ror r1, r0 add r0, r2, r1 bne _020497EE mov r0, #0x8 b _020497F0 _020497EE: mov r0, #0x17 _020497F0: lsr r3, r4, #0x1f lsl r2, r4, #0x1f sub r2, r2, r3 mov r1, #0x1f ror r2, r1 add r1, r3, r2 bne _02049802 mov r1, #0x8 b _02049804 _02049802: mov r1, #0x17 _02049804: lsr r2, r6, #0x1f add r2, r6, r2 asr r2, r2, #0x1 add r6, r2, #0x1 lsr r2, r4, #0x1f add r2, r4, r2 asr r2, r2, #0x1 add r3, r2, #0x3 lsl r2, r6, #0x5 add r0, r0, r2 str r0, [r5, #0x10] lsl r0, r3, #0x5 add r0, r1, r0 str r0, [r5, #0x14] _02049820: add r0, r5, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02049824 FUN_02049824: ; 0x02049824 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_0204976C add r4, r0, #0x0 beq _02049840 add r0, r5, #0x0 bl FUN_02049BE8 add r1, r0, #0x0 add r0, r5, #0x0 add r2, r4, #0x0 bl FUN_020463CC _02049840: pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02049844 FUN_02049844: ; 0x02049844 push {r4-r6, lr} sub sp, #0x8 add r6, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r6, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0xc bhi _0204992C add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0204986A: ; jump table (using 16-bit offset) .short _02049884 - _0204986A - 2; case 0 .short _020498DC - _0204986A - 2; case 1 .short _02049918 - _0204986A - 2; case 2 .short _0204995E - _0204986A - 2; case 3 .short _020499A2 - _0204986A - 2; case 4 .short _020499D0 - _0204986A - 2; case 5 .short _020499E2 - _0204986A - 2; case 6 .short _020499F2 - _0204986A - 2; case 7 .short _02049A06 - _0204986A - 2; case 8 .short _02049A14 - _0204986A - 2; case 9 .short _02049A42 - _0204986A - 2; case 10 .short _02049A64 - _0204986A - 2; case 11 .short _02049A96 - _0204986A - 2; case 12 _02049884: mov r0, #0x1 mov r1, #0x1a mov r2, #0xcf mov r3, #0xb bl FUN_0200A86C add r6, r0, #0x0 mov r1, #0x7c bl FUN_0200A914 str r0, [r4, #0x34] add r0, r6, #0x0 bl FUN_0200A8B8 add r1, r4, #0x0 ldr r0, [r5, #0x8] add r1, #0x24 mov r2, #0x3 bl FUN_020545B8 ldr r0, [r5, #0xc] bl LoadPlayerDataAddress add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x24 bl FUN_02054608 ldr r0, [r5, #0xc] bl LoadPlayerDataAddress add r2, r0, #0x0 add r0, r4, #0x0 ldr r1, [r4, #0x34] add r0, #0x24 mov r3, #0x1 bl FUN_02054658 add r1, r4, #0x0 add r1, #0x38 strb r0, [r1, #0x0] mov r0, #0x1 str r0, [r4, #0x0] b _02049AB2 _020498DC: add r0, r4, #0x0 add r0, #0x38 ldrb r0, [r0, #0x0] bl FUN_020546C8 cmp r0, #0x1 bne _0204992C ldr r0, [r4, #0x34] bl FUN_02021A20 mov r0, #0x0 str r0, [sp, #0x0] mov r3, #0xb str r3, [sp, #0x4] ldr r0, [r5, #0x8] ldr r2, _02049AB8 ; =0x000003D9 mov r1, #0x3 bl FUN_0200CB00 mov r3, #0xb str r3, [sp, #0x0] ldr r0, [r5, #0x8] ldr r1, _02049ABC ; =0x020F46D8 ldr r2, _02049AB8 ; =0x000003D9 bl FUN_02002198 str r0, [r4, #0x3c] mov r0, #0x2 str r0, [r4, #0x0] b _02049AB2 _02049918: ldr r0, [r4, #0x3c] mov r1, #0xb bl FUN_020021AC cmp r0, #0x0 beq _0204992E mov r1, #0x1 mvn r1, r1 cmp r0, r1 beq _02049946 _0204992C: b _02049AB2 _0204992E: add r0, r4, #0x0 add r0, #0x24 mov r1, #0x0 bl FUN_0200D0E0 add r0, r4, #0x0 add r0, #0x24 bl FUN_02019178 mov r0, #0x3 str r0, [r4, #0x0] b _02049AB2 _02049946: add r0, r4, #0x0 add r0, #0x24 mov r1, #0x0 bl FUN_0200D0E0 add r0, r4, #0x0 add r0, #0x24 bl FUN_02019178 mov r0, #0x5 str r0, [r4, #0x0] b _02049AB2 _0204995E: ldr r0, [r5, #0xc] bl FUN_0202280C cmp r0, #0x0 beq _02049976 mov r2, #0x0 ldr r1, _02049AC0 ; =0x000007F2 add r0, r6, #0x0 add r3, r2, #0x0 bl FUN_02038CD8 b _0204999C _02049976: ldr r0, [r5, #0xc] bl FUN_02025BE8 add r0, r5, #0x0 mov r1, #0xb mov r2, #0x3 bl FUN_021E8588 str r0, [r4, #0x20] bl FUN_021E84F4 add r3, r4, #0x0 mov r2, #0x0 ldr r1, _02049AC4 ; =0x000007D5 add r0, r6, #0x0 add r3, #0x1c strh r2, [r4, #0x1c] bl FUN_02038CD8 _0204999C: mov r0, #0x4 str r0, [r4, #0x0] b _02049AB2 _020499A2: ldr r0, [r5, #0xc] bl FUN_0202280C cmp r0, #0x0 beq _020499B2 mov r0, #0x5 str r0, [r4, #0x0] b _02049AB2 _020499B2: ldr r0, [r4, #0x20] bl FUN_021E856C ldr r0, [r4, #0x20] bl FUN_021E85E4 ldrh r0, [r4, #0x1c] cmp r0, #0x0 bne _020499CA mov r0, #0x5 str r0, [r4, #0x0] b _02049AB2 _020499CA: mov r0, #0x6 str r0, [r4, #0x0] b _02049AB2 _020499D0: ldr r0, [r5, #0x34] bl FUN_020587B0 add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x8 mov r0, #0x1 pop {r4-r6, pc} _020499E2: mov r0, #0x0 mov r1, #0x1e bl FUN_020053CC ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02049AB2 _020499F2: add r0, r6, #0x0 mov r1, #0x0 bl FUN_02049C0C cmp r0, #0x0 beq _02049AB2 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02049AB2 _02049A06: add r0, r6, #0x0 bl FUN_0204AF3C ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02049AB2 _02049A14: mov r0, #0x1 str r0, [r5, #0x6c] ldr r0, _02049AC8 ; =0x00000012 mov r1, #0x2 bl FUN_02005FDC add r0, r5, #0x0 bl FUN_0204FC5C ldr r0, [r4, #0x14] mov r2, #0x1 str r0, [sp, #0x0] str r2, [sp, #0x4] ldr r1, [r4, #0x8] ldr r3, [r4, #0x10] add r0, r6, #0x0 sub r2, r2, #0x2 bl FUN_020491A8 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02049AB2 _02049A42: bl FUN_02005404 cmp r0, #0x0 bne _02049AB2 mov r0, #0x0 bl FUN_0200415C add r0, r5, #0x0 bl FUN_0204AB44 add r0, r6, #0x0 bl FUN_0204AF84 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02049AB2 _02049A64: add r0, r6, #0x0 mov r1, #0x1 bl FUN_02049C0C cmp r0, #0x0 beq _02049AB2 bl FUN_0204FCA0 add r0, r5, #0x0 bl FUN_02244824 mov r1, #0x0 str r0, [r5, #0x68] mov r0, #0x2 add r2, r1, #0x0 str r0, [sp, #0x0] mov r0, #0x1e sub r2, #0x10 mov r3, #0x19 bl FUN_0200A208 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02049AB2 _02049A96: mov r0, #0x2 bl FUN_0200A344 cmp r0, #0x0 beq _02049AB2 mov r0, #0x1 bl FUN_02247970 add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x8 mov r0, #0x1 pop {r4-r6, pc} _02049AB2: mov r0, #0x0 add sp, #0x8 pop {r4-r6, pc} .balign 4 _02049AB8: .word 0x000003D9 _02049ABC: .word 0x020F46D8 _02049AC0: .word 0x000007F2 _02049AC4: .word 0x000007D5 _02049AC8: .word 0x00000012 thumb_func_start FUN_02049ACC FUN_02049ACC: ; 0x02049ACC push {r4-r6, lr} sub sp, #0x8 add r6, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r6, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldr r1, [r4, #0x0] cmp r1, #0x7 bhi _02049BDC add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02049AF2: ; jump table (using 16-bit offset) .short _02049B02 - _02049AF2 - 2; case 0 .short _02049B2C - _02049AF2 - 2; case 1 .short _02049B54 - _02049AF2 - 2; case 2 .short _02049B68 - _02049AF2 - 2; case 3 .short _02049B76 - _02049AF2 - 2; case 4 .short _02049B9C - _02049AF2 - 2; case 5 .short _02049BBE - _02049AF2 - 2; case 6 .short _02049BD2 - _02049AF2 - 2; case 7 _02049B02: mov r0, #0x0 bl FUN_02247970 bl FUN_0204FCD8 ldr r0, [r5, #0x68] bl FUN_0224484C mov r0, #0x2 str r0, [sp, #0x0] mov r0, #0x1e add r1, r0, #0x0 sub r1, #0x2e mov r2, #0x0 mov r3, #0x1 bl FUN_0200A208 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02049BDC _02049B2C: mov r0, #0x2 bl FUN_0200A344 cmp r0, #0x0 beq _02049BDC ldr r0, [r5, #0x68] cmp r0, #0x0 bne _02049BDC bl FUN_02030F40 cmp r0, #0x0 bne _02049BDC mov r0, #0x0 mov r1, #0x1e bl FUN_020053CC ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02049BDC _02049B54: add r0, r6, #0x0 mov r1, #0x2 bl FUN_02049C0C cmp r0, #0x0 beq _02049BDC ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02049BDC _02049B68: add r0, r6, #0x0 bl FUN_0204AF3C ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02049BDC _02049B76: mov r0, #0x0 str r0, [r5, #0x6c] ldr r0, _02049BE4 ; =0x00000012 bl FUN_02005F60 ldr r0, [r4, #0x14] mov r2, #0x1 str r0, [sp, #0x0] str r2, [sp, #0x4] ldr r1, [r4, #0x8] ldr r3, [r4, #0x10] add r0, r6, #0x0 sub r2, r2, #0x2 bl FUN_020491A8 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02049BDC _02049B9C: bl FUN_02005404 cmp r0, #0x0 bne _02049BDC mov r0, #0x0 bl FUN_0200415C add r0, r5, #0x0 bl FUN_0204AB44 add r0, r6, #0x0 bl FUN_0204AF84 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02049BDC _02049BBE: add r0, r6, #0x0 mov r1, #0x3 bl FUN_02049C0C cmp r0, #0x0 beq _02049BDC ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02049BDC _02049BD2: bl FUN_02016A18 add sp, #0x8 mov r0, #0x1 pop {r4-r6, pc} _02049BDC: mov r0, #0x0 add sp, #0x8 pop {r4-r6, pc} nop _02049BE4: .word 0x00000012 thumb_func_start FUN_02049BE8 FUN_02049BE8: ; 0x02049BE8 push {r3, lr} ldr r0, [r0, #0x6c] cmp r0, #0x0 bne _02049BF4 ldr r0, _02049C04 ; =FUN_02049844 pop {r3, pc} _02049BF4: cmp r0, #0x1 bne _02049BFC ldr r0, _02049C08 ; =FUN_02049ACC pop {r3, pc} _02049BFC: bl ErrorHandling mov r0, #0x0 pop {r3, pc} .balign 4 _02049C04: .word FUN_02049844 _02049C08: .word FUN_02049ACC thumb_func_start FUN_02049C0C FUN_02049C0C: ; 0x02049C0C push {r3-r7, lr} add r4, r0, #0x0 add r6, r1, #0x0 bl FUN_02046528 add r7, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldr r0, [r4, #0x4] mov r5, #0x0 cmp r0, #0x0 beq _02049C2E cmp r0, #0x1 beq _02049C44 b _02049C4E _02049C2E: add r2, r4, #0x0 str r5, [r4, #0x18] add r0, r7, #0x0 add r1, r6, #0x0 add r2, #0x18 bl FUN_02053C98 ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _02049C4E _02049C44: ldr r0, [r4, #0x18] cmp r0, #0x0 beq _02049C4E str r5, [r4, #0x4] mov r5, #0x1 _02049C4E: add r0, r5, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02049C54 FUN_02049C54: ; 0x02049C54 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x0 beq _02049C76 cmp r0, #0x1 beq _02049C84 cmp r0, #0x2 beq _02049C9C b _02049CAC _02049C76: add r0, r5, #0x0 bl FUN_02048B34 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02049CAC _02049C84: add r0, r5, #0x0 add r1, r4, #0x4 bl FUN_02048958 add r0, r5, #0x0 mov r1, #0x2 bl FUN_0203989C ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02049CAC _02049C9C: add r0, r5, #0x0 bl FUN_02048AE4 add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x1 pop {r3-r5, pc} _02049CAC: mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02049CB0 FUN_02049CB0: ; 0x02049CB0 push {r3-r7, lr} add r6, r0, #0x0 add r5, r1, #0x0 bl FUN_02046528 add r7, r0, #0x0 mov r0, #0xb mov r1, #0x18 bl FUN_020169D8 add r4, r0, #0x0 add r0, r7, #0x0 bl FUN_0203739C cmp r0, #0x0 beq _02049CD6 bl ErrorHandling pop {r3-r7, pc} _02049CD6: mov r0, #0x0 str r0, [r4, #0x0] ldmia r5!, {r0-r1} add r2, r4, #0x4 stmia r2!, {r0-r1} ldmia r5!, {r0-r1} stmia r2!, {r0-r1} ldr r0, [r5, #0x0] ldr r1, _02049CF4 ; =FUN_02049C54 str r0, [r2, #0x0] add r0, r6, #0x0 add r2, r4, #0x0 bl FUN_0204640C pop {r3-r7, pc} .balign 4 _02049CF4: .word FUN_02049C54 thumb_func_start FUN_02049CF8 FUN_02049CF8: ; 0x02049CF8 push {r3-r7, lr} add r6, r0, #0x0 bl FUN_02046528 add r7, r0, #0x0 add r0, r6, #0x0 bl FUN_0204652C add r5, r0, #0x0 add r0, r6, #0x0 bl FUN_02046530 add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x5 bhi _02049D98 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02049D24: ; jump table (using 16-bit offset) .short _02049D30 - _02049D24 - 2; case 0 .short _02049D4C - _02049D24 - 2; case 1 .short _02049D60 - _02049D24 - 2; case 2 .short _02049D72 - _02049D24 - 2; case 3 .short _02049D80 - _02049D24 - 2; case 4 .short _02049D8E - _02049D24 - 2; case 5 _02049D30: ldr r1, [r5, #0x8] add r0, r7, #0x0 mov r2, #0x0 bl FUN_0204ACA8 add r0, r7, #0x0 mov r1, #0x1 add r2, r5, #0x4 bl FUN_021E7750 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02049D98 _02049D4C: ldr r0, [r5, #0x4] cmp r0, #0x0 beq _02049D98 add r0, r6, #0x0 bl FUN_0204AF3C ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02049D98 _02049D60: add r5, #0x8 add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_02049160 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02049D98 _02049D72: add r0, r6, #0x0 bl FUN_0204AF84 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02049D98 _02049D80: add r0, r6, #0x0 bl FUN_0204B00C ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02049D98 _02049D8E: add r0, r5, #0x0 bl FUN_02016A18 mov r0, #0x1 pop {r3-r7, pc} _02049D98: mov r0, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02049D9C FUN_02049D9C: ; 0x02049D9C push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_02034E30 bl FUN_02034DD0 add r4, r0, #0x0 mov r0, #0xb mov r1, #0x1c bl FUN_020169D8 add r6, r0, #0x0 mov r1, #0x0 mov r2, #0x1c blx MI_CpuFill8 add r2, r6, #0x0 ldmia r4!, {r0-r1} add r2, #0x8 stmia r2!, {r0-r1} ldmia r4!, {r0-r1} stmia r2!, {r0-r1} ldr r0, [r4, #0x0] str r0, [r2, #0x0] add r0, r5, #0x0 bl FUN_020520F8 ldr r0, [r5, #0x7c] bl FUN_02052FA4 mov r0, #0x0 str r0, [r5, #0x6c] ldr r1, _02049DF0 ; =FUN_02049CF8 add r0, r5, #0x0 add r2, r6, #0x0 bl FUN_020463CC mov r0, #0x0 str r0, [r5, #0x78] pop {r4-r6, pc} nop _02049DF0: .word FUN_02049CF8 thumb_func_start FUN_02049DF4 FUN_02049DF4: ; 0x02049DF4 push {r3-r7, lr} add r6, r0, #0x0 bl FUN_02046528 add r7, r0, #0x0 add r0, r6, #0x0 bl FUN_0204652C add r5, r0, #0x0 add r0, r6, #0x0 bl FUN_02046530 add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x6 bhi _02049E9E add r1, r0, r0 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02049E20: ; jump table (using 16-bit offset) .short _02049E2E - _02049E20 - 2; case 0 .short _02049E46 - _02049E20 - 2; case 1 .short _02049E54 - _02049E20 - 2; case 2 .short _02049E66 - _02049E20 - 2; case 3 .short _02049E74 - _02049E20 - 2; case 4 .short _02049E88 - _02049E20 - 2; case 5 .short _02049E94 - _02049E20 - 2; case 6 _02049E2E: ldr r1, [r5, #0x8] add r0, r7, #0x0 mov r2, #0x0 bl FUN_0204ACA8 add r0, r6, #0x0 bl FUN_0204AFC8 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02049E9E _02049E46: add r0, r6, #0x0 bl FUN_0204AF3C ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02049E9E _02049E54: add r5, #0x8 add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_02049160 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02049E9E _02049E66: add r0, r6, #0x0 bl FUN_0204AF84 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02049E9E _02049E74: mov r1, #0x0 str r1, [r5, #0x4] add r0, r7, #0x0 add r2, r5, #0x4 bl FUN_021E7750 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02049E9E _02049E88: ldr r1, [r5, #0x4] cmp r1, #0x0 beq _02049E9E add r0, r0, #0x1 str r0, [r4, #0x0] b _02049E9E _02049E94: add r0, r5, #0x0 bl FUN_02016A18 mov r0, #0x1 pop {r3-r7, pc} _02049E9E: mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02049EA4 FUN_02049EA4: ; 0x02049EA4 push {r3-r7, lr} add r6, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_02034E30 bl FUN_02034DD0 add r7, r0, #0x0 mov r0, #0xb mov r1, #0x1c bl FUN_020169D8 mov r1, #0x0 mov r2, #0x1c add r4, r0, #0x0 blx MI_CpuFill8 add r0, r7, #0x0 add r1, r5, #0x0 bl FUN_02048CB0 ldr r0, _02049F08 ; =0x000001D2 str r0, [r4, #0x8] mov r0, #0x0 mvn r0, r0 str r0, [r4, #0xc] mov r0, #0x8 str r0, [r4, #0x10] mov r0, #0xe str r0, [r4, #0x14] mov r0, #0x0 str r0, [r4, #0x18] add r0, r5, #0x0 bl FUN_020520AC str r0, [r5, #0x78] bl FUN_02052EE8 str r0, [r5, #0x7c] mov r0, #0x2 str r0, [r5, #0x6c] ldr r1, _02049F0C ; =FUN_02049DF4 add r0, r6, #0x0 add r2, r4, #0x0 bl FUN_0204640C pop {r3-r7, pc} .balign 4 _02049F08: .word 0x000001D2 _02049F0C: .word FUN_02049DF4 thumb_func_start FUN_02049F10 FUN_02049F10: ; 0x02049F10 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02046528 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldr r1, [r4, #0x0] cmp r1, #0x3 bhi _02049F8E add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02049F34: ; jump table (using 16-bit offset) .short _02049F3C - _02049F34 - 2; case 0 .short _02049F58 - _02049F34 - 2; case 1 .short _02049F68 - _02049F34 - 2; case 2 .short _02049F86 - _02049F34 - 2; case 3 _02049F3C: ldr r0, _02049F94 ; =0x00000603 bl FUN_020054C8 ldr r1, [r4, #0x4] add r0, r6, #0x0 bl FUN_0204AD60 add r0, r5, #0x0 bl FUN_0204B090 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02049F8E _02049F58: add r0, r5, #0x0 add r1, r4, #0x4 bl FUN_02049160 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02049F8E _02049F68: bl FUN_02005404 cmp r0, #0x0 bne _02049F8E ldr r1, [r4, #0x4] add r0, r6, #0x0 bl FUN_0204AD8C add r0, r5, #0x0 bl FUN_0204AF84 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02049F8E _02049F86: bl FUN_02016A18 mov r0, #0x1 pop {r4-r6, pc} _02049F8E: mov r0, #0x0 pop {r4-r6, pc} nop _02049F94: .word 0x00000603 thumb_func_start FUN_02049F98 FUN_02049F98: ; 0x02049F98 push {r3-r7, lr} sub sp, #0x18 str r0, [sp, #0x0] add r5, r1, #0x0 add r6, r2, #0x0 add r7, r3, #0x0 bl FUN_02046528 add r4, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_02034E30 bl FUN_02034DD0 add r1, r4, #0x0 bl FUN_02048CB0 mov r0, #0x3 str r0, [r4, #0x6c] mov r0, #0xb mov r1, #0x1c bl FUN_020169D8 add r2, r0, #0x0 ldr r0, [sp, #0x30] str r5, [sp, #0x4] str r0, [sp, #0x10] ldr r0, [sp, #0x34] str r6, [sp, #0x8] str r0, [sp, #0x14] mov r0, #0x0 str r7, [sp, #0xc] add r4, sp, #0x4 str r0, [r2, #0x0] ldmia r4!, {r0-r1} add r3, r2, #0x4 stmia r3!, {r0-r1} ldmia r4!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r4, #0x0] ldr r1, _02049FF8 ; =FUN_02049F10 str r0, [r3, #0x0] ldr r0, [sp, #0x0] bl FUN_0204640C add sp, #0x18 pop {r3-r7, pc} nop _02049FF8: .word FUN_02049F10 thumb_func_start FUN_02049FFC FUN_02049FFC: ; 0x02049FFC push {r4, lr} bl FUN_02046528 add r4, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_02034E30 bl FUN_02034DD0 add r1, r0, #0x0 mov r0, #0x0 str r0, [r4, #0x6c] ldr r0, [r4, #0x10] bl FUN_020490C0 pop {r4, pc} thumb_func_start FUN_0204A01C FUN_0204A01C: ; 0x0204A01C push {r4, lr} mov r1, #0xa2 mov r2, #0x0 add r4, r0, #0x0 bl FUN_020671BC cmp r0, #0x0 bne _0204A030 mov r0, #0x0 pop {r4, pc} _0204A030: add r0, r4, #0x0 mov r1, #0x4c mov r2, #0x0 bl FUN_020671BC cmp r0, #0x0 bne _0204A042 mov r0, #0x1 pop {r4, pc} _0204A042: mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_0204A048 FUN_0204A048: ; 0x0204A048 push {r3-r7, lr} sub sp, #0x20 add r6, r1, #0x0 add r5, r0, #0x0 add r0, r6, #0x0 add r7, r2, #0x0 str r3, [sp, #0x10] bl FUN_020238F4 str r0, [sp, #0x14] add r0, r6, #0x0 bl FUN_0206BB1C str r0, [sp, #0x18] add r0, r5, #0x0 bl FUN_020669C0 add r4, r0, #0x0 bl FUN_02066978 mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x4] str r0, [sp, #0x8] str r0, [sp, #0xc] ldr r2, [sp, #0x10] add r0, r4, #0x0 add r1, r7, #0x0 mov r3, #0x20 bl FUN_02066ACC ldr r0, [sp, #0x40] ldr r1, [sp, #0x14] str r0, [sp, #0x0] ldr r3, [sp, #0x3c] add r0, r4, #0x0 mov r2, #0x4 str r5, [sp, #0x4] bl FUN_0206A014 add r0, sp, #0x28 ldrh r0, [r0, #0x10] mov r1, #0x6 add r2, sp, #0x1c str r0, [sp, #0x1c] add r0, r4, #0x0 bl FUN_02067830 ldr r0, [sp, #0x18] add r1, r4, #0x0 bl FUN_0206B900 add r5, r0, #0x0 beq _0204A0BC add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_0202C144 _0204A0BC: add r0, r4, #0x0 bl FUN_02016A18 add r0, r5, #0x0 add sp, #0x20 pop {r3-r7, pc} thumb_func_start FUN_0204A0C8 FUN_0204A0C8: ; 0x0204A0C8 push {r4-r7, lr} sub sp, #0xc add r4, r1, #0x0 add r0, r4, #0x0 add r5, r2, #0x0 add r7, r3, #0x0 bl FUN_020238F4 str r0, [sp, #0x8] add r0, r4, #0x0 bl FUN_0206BB1C add r6, r0, #0x0 mov r0, #0x20 bl FUN_020669C0 add r4, r0, #0x0 bl FUN_02066978 ldr r0, [sp, #0x20] ldr r1, [sp, #0x24] bl FUN_02015CF8 mov r1, #0x4 str r1, [sp, #0x0] str r0, [sp, #0x4] ldr r3, [sp, #0x8] add r0, r4, #0x0 add r1, r5, #0x0 add r2, r7, #0x0 bl FUN_021ECF14 add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_0206B900 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02016A18 add r0, r5, #0x0 add sp, #0xc pop {r4-r7, pc} .balign 4 thumb_func_start FUN_0204A120 FUN_0204A120: ; 0x0204A120 push {r3-r5, lr} add r5, r2, #0x0 add r4, r3, #0x0 bl FUN_0206B9B0 lsl r2, r5, #0x18 add r1, r4, #0x0 lsr r2, r2, #0x18 bl FUN_020697CC pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0204A138 FUN_0204A138: ; 0x0204A138 push {r3-r7, lr} str r0, [sp, #0x0] add r5, r1, #0x0 bl FUN_0206B9AC add r7, r0, #0x0 mov r6, #0x0 cmp r7, #0x0 ble _0204A1A2 _0204A14A: ldr r0, [sp, #0x0] add r1, r6, #0x0 bl FUN_0206B9B0 mov r1, #0x4c mov r2, #0x0 add r4, r0, #0x0 bl FUN_020671BC cmp r0, #0x0 bne _0204A19C add r0, r4, #0x0 mov r1, #0x36 mov r2, #0x0 bl FUN_020671BC cmp r5, r0 beq _0204A198 add r0, r4, #0x0 mov r1, #0x37 mov r2, #0x0 bl FUN_020671BC cmp r5, r0 beq _0204A198 add r0, r4, #0x0 mov r1, #0x38 mov r2, #0x0 bl FUN_020671BC cmp r5, r0 beq _0204A198 add r0, r4, #0x0 mov r1, #0x39 mov r2, #0x0 bl FUN_020671BC cmp r5, r0 bne _0204A19C _0204A198: add r0, r6, #0x0 pop {r3-r7, pc} _0204A19C: add r6, r6, #0x1 cmp r6, r7 blt _0204A14A _0204A1A2: mov r0, #0xff pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0204A1A8 FUN_0204A1A8: ; 0x0204A1A8 push {r3-r7, lr} add r7, r0, #0x0 bl FUN_0206B9AC mov r5, #0x0 add r6, r0, #0x0 add r4, r5, #0x0 cmp r6, #0x0 ble _0204A1D2 _0204A1BA: add r0, r7, #0x0 add r1, r4, #0x0 bl FUN_0206B9B0 bl FUN_0204A01C cmp r0, #0x0 beq _0204A1CC add r5, r5, #0x1 _0204A1CC: add r4, r4, #0x1 cmp r4, r6 blt _0204A1BA _0204A1D2: add r0, r5, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0204A1D8 FUN_0204A1D8: ; 0x0204A1D8 push {r3-r7, lr} add r6, r0, #0x0 bl FUN_0206B9AC add r5, r0, #0x0 mov r4, #0x0 cmp r5, #0x0 ble _0204A204 _0204A1E8: add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_0206B9B0 add r7, r0, #0x0 bl FUN_0204A01C cmp r0, #0x0 beq _0204A1FE add r0, r7, #0x0 pop {r3-r7, pc} _0204A1FE: add r4, r4, #0x1 cmp r4, r5 blt _0204A1E8 _0204A204: bl ErrorHandling mov r0, #0x0 pop {r3-r7, pc} thumb_func_start FUN_0204A20C FUN_0204A20C: ; 0x0204A20C push {r3-r7, lr} add r6, r0, #0x0 bl FUN_0206B9AC lsl r0, r0, #0x10 lsr r5, r0, #0x10 ldr r4, _0204A244 ; =0x00000000 beq _0204A240 _0204A21C: add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_0206B9B0 mov r1, #0x4c mov r2, #0x0 add r7, r0, #0x0 bl FUN_020671BC cmp r0, #0x0 bne _0204A236 add r0, r7, #0x0 pop {r3-r7, pc} _0204A236: add r0, r4, #0x1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, r5 blo _0204A21C _0204A240: mov r0, #0x0 pop {r3-r7, pc} .balign 4 _0204A244: .word 0x00000000 thumb_func_start FUN_0204A248 FUN_0204A248: ; 0x0204A248 push {r3, lr} bl FUN_0204A1A8 cmp r0, #0x2 blt _0204A256 mov r0, #0x1 pop {r3, pc} _0204A256: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0204A25C FUN_0204A25C: ; 0x0204A25C push {r3-r7, lr} mov r2, #0x1 add r1, sp, #0x0 add r7, r0, #0x0 strb r2, [r1, #0x0] bl FUN_0206B9AC add r6, r0, #0x0 mov r5, #0x0 cmp r6, #0x0 ble _0204A298 _0204A272: add r0, r7, #0x0 add r1, r5, #0x0 bl FUN_0206B9B0 mov r1, #0x4c mov r2, #0x0 add r4, r0, #0x0 bl FUN_020671BC cmp r0, #0x0 bne _0204A292 add r0, r4, #0x0 mov r1, #0x19 add r2, sp, #0x0 bl FUN_02067830 _0204A292: add r5, r5, #0x1 cmp r5, r6 blt _0204A272 _0204A298: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0204A29C FUN_0204A29C: ; 0x0204A29C push {r3-r7, lr} sub sp, #0x10 mov r7, #0x0 str r0, [sp, #0x0] str r1, [sp, #0x4] add r6, r7, #0x0 bl FUN_0206B9AC add r4, r7, #0x0 str r0, [sp, #0x8] cmp r0, #0x0 ble _0204A310 _0204A2B4: ldr r0, [sp, #0x0] add r1, r4, #0x0 bl FUN_0206B9B0 add r5, r0, #0x0 bl FUN_0204A01C cmp r0, #0x0 beq _0204A308 add r0, r5, #0x0 mov r1, #0x9f mov r2, #0x0 bl FUN_020671BC mov r1, #0x88 tst r0, r1 beq _0204A308 add r0, r5, #0x0 mov r1, #0xa2 mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0xc] cmp r0, #0x1 bls _0204A2EA sub r0, r0, #0x1 str r0, [sp, #0xc] _0204A2EA: add r0, r5, #0x0 mov r1, #0xa2 add r2, sp, #0xc bl FUN_02067830 ldr r0, [sp, #0xc] cmp r0, #0x1 bne _0204A306 ldr r2, [sp, #0x4] add r0, r5, #0x0 mov r1, #0x7 add r6, r6, #0x1 bl FUN_020688E8 _0204A306: add r7, r7, #0x1 _0204A308: ldr r0, [sp, #0x8] add r4, r4, #0x1 cmp r4, r0 blt _0204A2B4 _0204A310: cmp r6, #0x0 beq _0204A31A add sp, #0x10 mov r0, #0x2 pop {r3-r7, pc} _0204A31A: cmp r7, #0x0 beq _0204A324 add sp, #0x10 mov r0, #0x1 pop {r3-r7, pc} _0204A324: mov r0, #0x0 add sp, #0x10 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0204A32C FUN_0204A32C: ; 0x0204A32C push {r3-r4, lr} sub sp, #0x4 mov r1, #0x9f mov r2, #0x0 add r4, r0, #0x0 bl FUN_020671BC mov r1, #0x88 tst r0, r1 beq _0204A362 add r0, r4, #0x0 mov r1, #0xa2 mov r2, #0x0 bl FUN_020671BC cmp r0, #0x1 bne _0204A362 mov r0, #0x0 str r0, [sp, #0x0] add r0, r4, #0x0 mov r1, #0x9f add r2, sp, #0x0 bl FUN_02067830 add sp, #0x4 mov r0, #0x1 pop {r3-r4, pc} _0204A362: mov r0, #0x0 add sp, #0x4 pop {r3-r4, pc} thumb_func_start FUN_0204A368 FUN_0204A368: ; 0x0204A368 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0x54] add r4, r1, #0x0 cmp r0, #0x0 bne _0204A388 ldr r1, _0204A38C ; =0x000080E2 mov r0, #0xb bl FUN_02016998 str r0, [r5, #0x54] ldr r0, [r5, #0x28] ldr r1, [r5, #0x54] add r2, r4, #0x0 bl FUN_0204A3B0 _0204A388: pop {r3-r5, pc} nop _0204A38C: .word 0x000080E2 thumb_func_start FUN_0204A390 FUN_0204A390: ; 0x0204A390 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x54] cmp r0, #0x0 beq _0204A3A2 bl FUN_02016A18 mov r0, #0x0 str r0, [r4, #0x54] _0204A3A2: pop {r4, pc} thumb_func_start FUN_0204A3A4 FUN_0204A3A4: ; 0x0204A3A4 ldrb r0, [r1, r0] add r2, r1, #0x0 add r2, #0xe2 lsl r0, r0, #0xb add r0, r2, r0 bx lr thumb_func_start FUN_0204A3B0 FUN_0204A3B0: ; 0x0204A3B0 push {r4-r7, lr} sub sp, #0x3c str r1, [sp, #0x8] str r2, [sp, #0xc] str r0, [sp, #0x4] mov r2, #0x0 add r1, sp, #0x18 strb r2, [r1, #0x0] bl FUN_020344FC add r6, r0, #0x0 ldr r0, [sp, #0x4] bl FUN_0203450C str r0, [sp, #0x10] mov r0, #0x0 str r0, [sp, #0x14] ldr r0, [sp, #0x10] cmp r0, #0x0 ble _0204A410 ldr r7, [sp, #0x14] _0204A3DA: mov r5, #0x0 cmp r6, #0x0 ble _0204A402 _0204A3E0: add r0, r5, r7 lsl r0, r0, #0x10 lsr r4, r0, #0x10 ldr r1, [sp, #0x4] add r0, r4, #0x0 bl FUN_020344D8 add r1, sp, #0x18 add r1, #0x2 add r2, sp, #0x18 bl FUN_0204A45C ldr r1, [sp, #0x8] add r5, r5, #0x1 strb r0, [r1, r4] cmp r5, r6 blt _0204A3E0 _0204A402: ldr r0, [sp, #0x14] add r7, r7, r6 add r1, r0, #0x1 ldr r0, [sp, #0x10] str r1, [sp, #0x14] cmp r1, r0 blt _0204A3DA _0204A410: mov r0, #0x43 mov r1, #0xb bl FUN_02006670 add r7, r0, #0x0 ldr r0, [sp, #0xc] mov r6, #0x0 cmp r0, #0x0 ble _0204A452 ldr r0, [sp, #0x8] add r4, sp, #0x18 add r0, #0xe2 add r4, #0x2 add r5, r6, #0x0 str r0, [sp, #0x8] _0204A42E: ldr r0, [sp, #0x8] lsl r1, r5, #0x1 add r0, r0, r1 str r0, [sp, #0x0] ldrh r1, [r4, #0x0] mov r2, #0x10 add r0, r7, #0x0 lsl r3, r2, #0x7 bl FUN_02006814 mov r0, #0x1 lsl r0, r0, #0xa add r5, r5, r0 ldr r0, [sp, #0xc] add r6, r6, #0x1 add r4, r4, #0x2 cmp r6, r0 blt _0204A42E _0204A452: add r0, r7, #0x0 bl FUN_020066F4 add sp, #0x3c pop {r4-r7, pc} thumb_func_start FUN_0204A45C FUN_0204A45C: ; 0x0204A45C push {r3-r7, lr} add r7, r2, #0x0 add r5, r0, #0x0 ldrb r0, [r7, #0x0] add r6, r1, #0x0 mov r4, #0x0 cmp r0, #0x0 bls _0204A482 _0204A46C: lsl r1, r4, #0x1 ldrh r1, [r6, r1] cmp r5, r1 bne _0204A478 add r0, r4, #0x0 pop {r3-r7, pc} _0204A478: add r1, r4, #0x1 lsl r1, r1, #0x18 lsr r4, r1, #0x18 cmp r4, r0 blo _0204A46C _0204A482: cmp r4, #0x10 blo _0204A48A bl ErrorHandling _0204A48A: lsl r0, r4, #0x1 strh r5, [r6, r0] ldrb r0, [r7, #0x0] add r0, r0, #0x1 strb r0, [r7, #0x0] add r0, r4, #0x0 pop {r3-r7, pc} thumb_func_start FUN_0204A498 FUN_0204A498: ; 0x0204A498 cmp r0, r1 blt _0204A4A0 sub r0, r0, r1 bx lr _0204A4A0: sub r0, r1, r0 bx lr thumb_func_start FUN_0204A4A4 FUN_0204A4A4: ; 0x0204A4A4 push {r3-r7, lr} sub sp, #0x38 add r4, r2, #0x0 add r6, r3, #0x0 add r5, r0, #0x0 mov r0, #0x0 str r4, [sp, #0x2c] str r6, [sp, #0x34] str r0, [sp, #0x10] str r0, [sp, #0x30] ldr r0, [r5, #0x24] str r1, [sp, #0x4] str r0, [sp, #0x8] ldr r0, [r5, #0x28] bl FUN_020344FC str r0, [sp, #0x24] lsl r0, r0, #0x5 str r0, [sp, #0xc] asr r0, r4, #0xf lsr r0, r0, #0x10 add r0, r4, r0 asr r7, r0, #0x10 asr r0, r6, #0xf lsr r0, r0, #0x10 add r0, r6, r0 asr r0, r0, #0x10 str r0, [sp, #0x1c] add r2, r5, #0x0 add r2, #0x9c ldr r1, [sp, #0x1c] ldr r2, [r2, #0x0] add r0, r7, #0x0 add r3, sp, #0x28 bl FUN_021F4520 str r0, [sp, #0x20] lsr r0, r7, #0x5 str r0, [sp, #0x18] ldr r0, [sp, #0x1c] ldr r1, [sp, #0x1c] lsr r0, r0, #0x5 str r0, [sp, #0x14] ldr r0, [sp, #0x18] lsl r0, r0, #0x5 add r0, #0x10 lsl r0, r0, #0x10 sub r0, r4, r0 str r0, [sp, #0x2c] ldr r0, [sp, #0x14] lsl r0, r0, #0x5 add r0, #0x10 lsl r0, r0, #0x10 sub r0, r6, r0 str r0, [sp, #0x34] ldr r0, [sp, #0xc] mul r0, r1 ldr r1, [sp, #0xc] add r0, r7, r0 bl FUN_021EF620 ldr r2, [sp, #0x14] add r1, r0, #0x0 add r3, r2, #0x0 ldr r0, [sp, #0x24] ldr r2, [sp, #0x8] mul r3, r0 ldr r0, [sp, #0x18] add r0, r0, r3 bl FUN_021EF654 add r1, r0, #0x0 cmp r1, #0x3 bls _0204A53C mov r4, #0x0 b _0204A558 _0204A53C: lsl r1, r1, #0x18 ldr r0, [sp, #0x8] lsr r1, r1, #0x18 bl FUN_021EF8C8 add r3, r0, #0x0 add r0, sp, #0x30 str r0, [sp, #0x0] ldr r0, [sp, #0x4] ldr r1, [sp, #0x2c] ldr r2, [sp, #0x34] bl FUN_021F3DA4 add r4, r0, #0x0 _0204A558: ldr r0, [sp, #0x20] cmp r0, #0x0 beq _0204A5A4 add r0, sp, #0x28 add r5, #0x9c ldrb r0, [r0, #0x0] ldr r1, [r5, #0x0] bl FUN_021F4568 add r5, r0, #0x0 cmp r4, #0x0 beq _0204A59E ldr r0, [sp, #0x30] str r0, [sp, #0x10] cmp r5, r0 bgt _0204A57C mov r1, #0x1 b _0204A5B2 _0204A57C: ldr r1, [sp, #0x4] bl FUN_0204A498 add r4, r0, #0x0 ldr r1, [sp, #0x4] add r0, r5, #0x0 bl FUN_0204A498 cmp r4, r0 bgt _0204A598 ldr r0, [sp, #0x30] mov r1, #0x1 str r0, [sp, #0x10] b _0204A5B2 _0204A598: str r5, [sp, #0x10] mov r1, #0x2 b _0204A5B2 _0204A59E: mov r1, #0x2 str r5, [sp, #0x10] b _0204A5B2 _0204A5A4: cmp r4, #0x0 beq _0204A5B0 ldr r0, [sp, #0x30] mov r1, #0x1 str r0, [sp, #0x10] b _0204A5B2 _0204A5B0: mov r1, #0x0 _0204A5B2: ldr r0, [sp, #0x50] cmp r0, #0x0 beq _0204A5BA strb r1, [r0, #0x0] _0204A5BA: ldr r0, [sp, #0x10] add sp, #0x38 pop {r3-r7, pc} thumb_func_start FUN_0204A5C0 FUN_0204A5C0: ; 0x0204A5C0 push {r3, lr} asr r1, r2, #0xf lsr r1, r1, #0x10 add r1, r2, r1 asr r2, r3, #0xf lsr r2, r2, #0x10 add r2, r3, r2 ldr r0, [r0, #0x24] asr r1, r1, #0x10 asr r2, r2, #0x10 mov r3, #0x0 bl FUN_021EF844 ldr r1, [sp, #0x8] cmp r1, #0x0 beq _0204A5EE cmp r0, #0x0 beq _0204A5E8 mov r1, #0x1 b _0204A5EA _0204A5E8: mov r1, #0x0 _0204A5EA: ldr r0, [sp, #0x8] strb r1, [r0, #0x0] _0204A5EE: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0204A5F4 FUN_0204A5F4: ; 0x0204A5F4 push {r3-r7, lr} ldr r7, [r0, #0x24] add r4, r3, #0x0 add r0, r7, #0x0 add r3, sp, #0x0 add r5, r1, #0x0 add r6, r2, #0x0 bl FUN_021EF844 cmp r0, #0x0 bne _0204A612 mov r0, #0xff strh r0, [r4, #0x0] mov r0, #0x0 pop {r3-r7, pc} _0204A612: add r1, sp, #0x0 ldrb r1, [r1, #0x0] add r0, r7, #0x0 bl FUN_021EF8DC lsr r2, r5, #0x1f lsl r1, r5, #0x1b sub r1, r1, r2 mov r3, #0x1b ror r1, r3 add r1, r2, r1 lsr r5, r6, #0x1f lsl r2, r6, #0x1b sub r2, r2, r5 ror r2, r3 add r2, r5, r2 lsl r2, r2, #0x5 add r1, r1, r2 lsl r1, r1, #0x1 ldrh r0, [r0, r1] strh r0, [r4, #0x0] mov r0, #0x1 pop {r3-r7, pc} thumb_func_start FUN_0204A640 FUN_0204A640: ; 0x0204A640 push {r3-r7, lr} add r6, r0, #0x0 ldr r0, [r6, #0x28] add r4, r2, #0x0 add r5, r1, #0x0 add r7, r3, #0x0 bl FUN_020344FC asr r2, r4, #0x4 asr r1, r5, #0x4 lsr r2, r2, #0x1b lsr r1, r1, #0x1b add r2, r4, r2 add r1, r5, r1 asr r2, r2, #0x5 asr r1, r1, #0x5 mul r0, r2 add r0, r1, r0 ldr r1, [r6, #0x54] bl FUN_0204A3A4 lsr r2, r5, #0x1f lsl r1, r5, #0x1b sub r1, r1, r2 mov r3, #0x1b ror r1, r3 add r1, r2, r1 lsr r5, r4, #0x1f lsl r2, r4, #0x1b sub r2, r2, r5 ror r2, r3 add r2, r5, r2 lsl r2, r2, #0x5 add r1, r1, r2 lsl r1, r1, #0x1 ldrh r0, [r0, r1] strh r0, [r7, #0x0] mov r0, #0x1 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0204A690 FUN_0204A690: ; 0x0204A690 push {r3, lr} cmp r1, #0x0 bne _0204A69C ldr r1, _0204A6AC ; =0x020F4708 str r1, [r0, #0x0] pop {r3, pc} _0204A69C: cmp r1, #0x1 bne _0204A6A6 ldr r1, _0204A6B0 ; =0x020F4710 str r1, [r0, #0x0] pop {r3, pc} _0204A6A6: bl ErrorHandling pop {r3, pc} .balign 4 _0204A6AC: .word 0x020F4708 _0204A6B0: .word 0x020F4710 thumb_func_start FUN_0204A6B4 FUN_0204A6B4: ; 0x0204A6B4 push {r3-r4, lr} sub sp, #0x4 ldr r4, [r0, #0x58] add r3, sp, #0x0 ldr r4, [r4, #0x4] blx r4 cmp r0, #0x0 beq _0204A6DA add r0, sp, #0x0 ldrh r0, [r0, #0x0] asr r0, r0, #0xf lsl r0, r0, #0x18 lsr r1, r0, #0x18 mov r0, #0x1 and r1, r0 lsl r1, r1, #0x18 lsr r1, r1, #0x18 cmp r1, #0x1 beq _0204A6DC _0204A6DA: mov r0, #0x0 _0204A6DC: add sp, #0x4 pop {r3-r4, pc} thumb_func_start FUN_0204A6E0 FUN_0204A6E0: ; 0x0204A6E0 push {r3-r4, lr} sub sp, #0x4 ldr r4, [r0, #0x58] add r3, sp, #0x0 ldr r4, [r4, #0x4] blx r4 cmp r0, #0x0 beq _0204A700 add r0, sp, #0x0 ldrh r0, [r0, #0x0] add sp, #0x4 lsl r0, r0, #0x18 lsr r0, r0, #0x18 lsl r0, r0, #0x18 lsr r0, r0, #0x18 pop {r3-r4, pc} _0204A700: mov r0, #0xff add sp, #0x4 pop {r3-r4, pc} .balign 4 thumb_func_start FUN_0204A708 FUN_0204A708: ; 0x0204A708 push {r3-r4, lr} sub sp, #0x4 ldr r4, [sp, #0x10] str r4, [sp, #0x0] ldr r4, [r0, #0x58] ldr r4, [r4, #0x0] blx r4 add sp, #0x4 pop {r3-r4, pc} .balign 4 thumb_func_start FUN_0204A71C FUN_0204A71C: ; 0x0204A71C push {r3-r5, lr} add r4, r1, #0x0 ldr r1, [sp, #0x10] mov r5, #0x2 str r1, [sp, #0x0] ldr r1, [r4, #0x4] lsl r2, r2, #0x10 lsl r5, r5, #0xe lsl r3, r3, #0x10 add r2, r2, r5 add r3, r3, r5 bl FUN_0204A708 ldr r1, [r4, #0x4] cmp r0, r1 bge _0204A744 mov r4, #0x0 add r2, r1, #0x0 mvn r4, r4 b _0204A754 _0204A744: cmp r0, r1 ble _0204A750 add r2, r0, #0x0 add r0, r1, #0x0 mov r4, #0x1 b _0204A754 _0204A750: mov r0, #0x0 pop {r3-r5, pc} _0204A754: sub r1, r2, r0 mov r0, #0x5 lsl r0, r0, #0xe cmp r1, r0 blt _0204A768 cmp r4, #0x0 bne _0204A76A bl ErrorHandling b _0204A76A _0204A768: mov r4, #0x0 _0204A76A: add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0204A770 FUN_0204A770: ; 0x0204A770 push {r3-r7, lr} sub sp, #0x8 add r6, sp, #0x4 add r5, r0, #0x0 add r4, r2, #0x0 add r7, r3, #0x0 str r6, [sp, #0x0] bl FUN_0204A71C ldr r1, [sp, #0x20] cmp r1, #0x0 beq _0204A78A strb r0, [r1, #0x0] _0204A78A: cmp r0, #0x0 bne _0204A7C2 add r0, r5, #0x0 add r1, r4, #0x0 add r2, r7, #0x0 bl FUN_0204A6B4 add r6, r0, #0x0 bne _0204A7BC add r0, sp, #0x4 ldrb r0, [r0, #0x0] cmp r0, #0x2 bne _0204A7BC add r0, r5, #0x0 add r1, r4, #0x0 add r2, r7, #0x0 bl FUN_0204A6E0 bl FUN_020548B4 cmp r0, #0x0 beq _0204A7BC add sp, #0x8 mov r0, #0x1 pop {r3-r7, pc} _0204A7BC: add sp, #0x8 add r0, r6, #0x0 pop {r3-r7, pc} _0204A7C2: mov r0, #0x1 add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_0204A7C8 FUN_0204A7C8: ; 0x0204A7C8 push {r3-r7, lr} sub sp, #0x10 add r6, sp, #0x8 add r5, r0, #0x0 str r1, [sp, #0x4] add r4, r2, #0x0 add r7, r3, #0x0 str r6, [sp, #0x0] bl FUN_0204A71C ldr r1, [sp, #0x28] cmp r1, #0x0 beq _0204A7E4 strb r0, [r1, #0x0] _0204A7E4: cmp r0, #0x0 bne _0204A83A add r0, sp, #0xc str r0, [sp, #0x0] ldr r3, [sp, #0x4] add r0, r5, #0x0 ldr r3, [r3, #0x4] add r1, r4, #0x0 add r2, r7, #0x0 bl FUN_0205CE00 cmp r0, #0x0 bne _0204A834 add r0, r5, #0x0 add r1, r4, #0x0 add r2, r7, #0x0 bl FUN_0204A6B4 str r0, [sp, #0xc] cmp r0, #0x0 bne _0204A82E add r0, sp, #0x8 ldrb r0, [r0, #0x0] cmp r0, #0x2 bne _0204A82E add r0, r5, #0x0 add r1, r4, #0x0 add r2, r7, #0x0 bl FUN_0204A6E0 bl FUN_020548B4 cmp r0, #0x0 beq _0204A82E add sp, #0x10 mov r0, #0x1 pop {r3-r7, pc} _0204A82E: ldr r0, [sp, #0xc] add sp, #0x10 pop {r3-r7, pc} _0204A834: ldr r0, [sp, #0xc] add sp, #0x10 pop {r3-r7, pc} _0204A83A: mov r0, #0x1 add sp, #0x10 pop {r3-r7, pc} thumb_func_start FUN_0204A840 FUN_0204A840: ; 0x0204A840 push {r3-r7, lr} add r6, r0, r2 ldr r0, [sp, #0x18] add r4, r1, r3 add r0, r6, r0 str r0, [sp, #0x0] ldr r0, [sp, #0x1c] ldr r5, [sp, #0x20] add r7, r4, r0 cmp r6, #0x0 blt _0204A864 cmp r4, #0x0 blt _0204A864 ldr r0, [sp, #0x0] cmp r0, #0x0 blt _0204A864 cmp r7, #0x0 bge _0204A868 _0204A864: bl ErrorHandling _0204A868: lsl r0, r6, #0x10 str r0, [r5, #0x0] lsl r0, r4, #0x10 str r0, [r5, #0x4] ldr r0, [sp, #0x0] lsl r0, r0, #0x10 str r0, [r5, #0x8] lsl r0, r7, #0x10 str r0, [r5, #0xc] pop {r3-r7, pc} thumb_func_start FUN_0204A87C FUN_0204A87C: ; 0x0204A87C push {r4-r5, lr} sub sp, #0xc add r3, r0, #0x0 add r5, r1, #0x0 add r4, r2, #0x0 add r0, sp, #0x0 add r1, r3, #0x0 bl FUN_021E7EA0 ldr r1, [sp, #0x0] ldr r0, [r4, #0x0] ldr r2, [sp, #0x8] add r0, r1, r0 str r0, [sp, #0x0] ldr r1, [r4, #0x8] add r2, r2, r1 str r2, [sp, #0x8] ldr r1, [r5, #0x0] cmp r1, r0 bgt _0204A8BC ldr r1, [r5, #0x8] cmp r0, r1 bgt _0204A8BC ldr r0, [r5, #0x4] cmp r0, r2 bgt _0204A8BC ldr r0, [r5, #0xc] cmp r2, r0 bgt _0204A8BC add sp, #0xc mov r0, #0x1 pop {r4-r5, pc} _0204A8BC: mov r0, #0x0 add sp, #0xc pop {r4-r5, pc} .balign 4 thumb_func_start FUN_0204A8C4 FUN_0204A8C4: ; 0x0204A8C4 push {r4-r7, lr} sub sp, #0x1c str r0, [sp, #0x0] mov r0, #0x0 add r6, r1, #0x0 add r7, r2, #0x0 str r3, [sp, #0x4] str r0, [sp, #0x8] _0204A8D4: ldr r1, [sp, #0x0] ldr r0, [sp, #0x8] ldr r1, [r1, #0x24] add r2, sp, #0xc bl FUN_021EF604 ldr r0, [sp, #0x0] ldr r1, [sp, #0x8] ldr r0, [r0, #0x24] bl FUN_021EF824 add r4, r0, #0x0 ldr r0, [sp, #0x0] ldr r0, [r0, #0x28] bl FUN_020344FC add r1, r0, #0x0 add r0, r4, #0x0 add r2, sp, #0x10 bl FUN_0204AAD4 mov r5, #0x0 _0204A900: ldr r0, [sp, #0xc] add r1, r5, #0x0 bl FUN_021E7ED0 add r1, r7, #0x0 add r2, sp, #0x10 add r4, r0, #0x0 bl FUN_0204A87C cmp r0, #0x0 beq _0204A92E add r0, r4, #0x0 bl FUN_021E7EC4 cmp r0, r6 bne _0204A92E ldr r0, [sp, #0x4] cmp r0, #0x0 beq _0204A928 str r4, [r0, #0x0] _0204A928: add sp, #0x1c mov r0, #0x1 pop {r4-r7, pc} _0204A92E: add r0, r5, #0x1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 cmp r5, #0x20 blo _0204A900 ldr r0, [sp, #0x8] add r0, r0, #0x1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x8] cmp r0, #0x4 blo _0204A8D4 mov r0, #0x0 add sp, #0x1c pop {r4-r7, pc} thumb_func_start FUN_0204A94C FUN_0204A94C: ; 0x0204A94C push {r4-r7, lr} sub sp, #0x1c str r0, [sp, #0x0] mov r0, #0x0 add r5, r1, #0x0 add r4, r2, #0x0 str r3, [sp, #0x4] str r0, [sp, #0x8] _0204A95C: ldr r1, [sp, #0x0] ldr r0, [sp, #0x8] ldr r1, [r1, #0x24] add r2, sp, #0xc bl FUN_021EF604 ldr r0, [sp, #0x0] ldr r1, [sp, #0x8] ldr r0, [r0, #0x24] bl FUN_021EF824 add r6, r0, #0x0 ldr r0, [sp, #0x0] ldr r0, [r0, #0x28] bl FUN_020344FC add r1, r0, #0x0 add r0, r6, #0x0 add r2, sp, #0x10 bl FUN_0204AAD4 mov r6, #0x0 _0204A988: ldr r0, [sp, #0xc] add r1, r6, #0x0 bl FUN_021E7ED0 ldr r1, [sp, #0x4] add r2, sp, #0x10 add r7, r0, #0x0 bl FUN_0204A87C cmp r0, #0x0 beq _0204A9D2 add r0, r7, #0x0 bl FUN_021E7EC4 mov r1, #0x0 cmp r4, #0x0 bls _0204A9D2 _0204A9AA: lsl r2, r1, #0x2 ldr r2, [r5, r2] cmp r0, r2 bne _0204A9C8 ldr r1, [sp, #0x30] cmp r1, #0x0 beq _0204A9BA str r7, [r1, #0x0] _0204A9BA: ldr r1, [sp, #0x34] cmp r1, #0x0 beq _0204A9C2 str r0, [r1, #0x0] _0204A9C2: add sp, #0x1c mov r0, #0x1 pop {r4-r7, pc} _0204A9C8: add r1, r1, #0x1 lsl r1, r1, #0x18 lsr r1, r1, #0x18 cmp r1, r4 blo _0204A9AA _0204A9D2: add r0, r6, #0x1 lsl r0, r0, #0x18 lsr r6, r0, #0x18 cmp r6, #0x20 blo _0204A988 ldr r0, [sp, #0x8] add r0, r0, #0x1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x8] cmp r0, #0x4 blo _0204A95C mov r0, #0x0 add sp, #0x1c pop {r4-r7, pc} thumb_func_start FUN_0204A9F0 FUN_0204A9F0: ; 0x0204A9F0 push {r3-r7, lr} sub sp, #0x10 str r0, [sp, #0x0] add r5, r1, #0x0 str r2, [sp, #0x4] str r3, [sp, #0x8] mov r7, #0x0 _0204A9FE: ldr r1, [sp, #0x0] add r0, r7, #0x0 ldr r1, [r1, #0x24] add r2, sp, #0xc bl FUN_021EF604 mov r4, #0x0 _0204AA0C: ldr r0, [sp, #0xc] add r1, r4, #0x0 bl FUN_021E7ED0 add r6, r0, #0x0 bl FUN_021E7EC4 cmp r0, r5 bne _0204AA40 ldr r0, [sp, #0x4] cmp r0, #0x0 beq _0204AA26 str r6, [r0, #0x0] _0204AA26: ldr r0, [sp, #0x8] cmp r0, #0x0 beq _0204AA3A ldr r0, [sp, #0x0] add r1, r7, #0x0 ldr r0, [r0, #0x24] bl FUN_021EF824 ldr r1, [sp, #0x8] str r0, [r1, #0x0] _0204AA3A: add sp, #0x10 mov r0, #0x1 pop {r3-r7, pc} _0204AA40: add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #0x20 blo _0204AA0C add r0, r7, #0x1 lsl r0, r0, #0x18 lsr r7, r0, #0x18 cmp r7, #0x4 blo _0204A9FE mov r0, #0x0 add sp, #0x10 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0204AA5C FUN_0204AA5C: ; 0x0204AA5C push {r3-r7, lr} sub sp, #0x10 str r0, [sp, #0x0] mov r0, #0x0 add r5, r1, #0x0 add r4, r2, #0x0 str r3, [sp, #0x4] str r0, [sp, #0x8] _0204AA6C: ldr r1, [sp, #0x0] ldr r0, [sp, #0x8] ldr r1, [r1, #0x24] add r2, sp, #0xc bl FUN_021EF604 mov r6, #0x0 _0204AA7A: ldr r0, [sp, #0xc] add r1, r6, #0x0 bl FUN_021E7ED0 add r7, r0, #0x0 bl FUN_021E7EC4 mov r1, #0x0 cmp r4, #0x0 bls _0204AAB6 _0204AA8E: lsl r2, r1, #0x2 ldr r2, [r5, r2] cmp r0, r2 bne _0204AAAC ldr r1, [sp, #0x4] cmp r1, #0x0 beq _0204AA9E str r7, [r1, #0x0] _0204AA9E: ldr r1, [sp, #0x28] cmp r1, #0x0 beq _0204AAA6 str r0, [r1, #0x0] _0204AAA6: add sp, #0x10 mov r0, #0x1 pop {r3-r7, pc} _0204AAAC: add r1, r1, #0x1 lsl r1, r1, #0x18 lsr r1, r1, #0x18 cmp r1, r4 blo _0204AA8E _0204AAB6: add r0, r6, #0x1 lsl r0, r0, #0x18 lsr r6, r0, #0x18 cmp r6, #0x20 blo _0204AA7A ldr r0, [sp, #0x8] add r0, r0, #0x1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x8] cmp r0, #0x4 blo _0204AA6C mov r0, #0x0 add sp, #0x10 pop {r3-r7, pc} thumb_func_start FUN_0204AAD4 FUN_0204AAD4: ; 0x0204AAD4 push {r4-r6, lr} add r4, r2, #0x0 mov r2, #0x1 lsl r2, r2, #0x14 str r2, [r4, #0x0] add r5, r0, #0x0 add r6, r1, #0x0 str r2, [r4, #0x8] blx _s32_div_f lsl r1, r1, #0x10 lsr r1, r1, #0x10 ldr r0, [r4, #0x0] lsl r1, r1, #0x15 add r0, r0, r1 str r0, [r4, #0x0] add r0, r5, #0x0 add r1, r6, #0x0 blx _s32_div_f lsl r0, r0, #0x10 lsr r0, r0, #0x10 ldr r1, [r4, #0x8] lsl r0, r0, #0x15 add r0, r1, r0 str r0, [r4, #0x8] pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0204AB0C FUN_0204AB0C: ; 0x0204AB0C push {r3, lr} bl FUN_0200541C bl FUN_02004810 mov r0, #0x0 bl FUN_0200415C pop {r3, pc} .balign 4 thumb_func_start FUN_0204AB20 FUN_0204AB20: ; 0x0204AB20 push {r4, lr} ldr r0, [r0, #0xc] add r4, r1, #0x0 bl FUN_02034E30 bl FUN_02034DE8 strh r4, [r0, #0x0] pop {r4, pc} .balign 4 thumb_func_start FUN_0204AB34 FUN_0204AB34: ; 0x0204AB34 push {r3, lr} ldr r0, [r0, #0xc] bl FUN_02034E30 bl FUN_02034DE8 ldrh r0, [r0, #0x0] pop {r3, pc} thumb_func_start FUN_0204AB44 FUN_0204AB44: ; 0x0204AB44 push {r3, lr} ldr r0, [r0, #0xc] bl FUN_02034E30 bl FUN_02034DE8 mov r1, #0x0 strh r1, [r0, #0x0] pop {r3, pc} .balign 4 thumb_func_start FUN_0204AB58 FUN_0204AB58: ; 0x0204AB58 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0x38] add r4, r1, #0x0 bl FUN_020553C4 cmp r0, #0x2 bne _0204AB6C ldr r0, _0204ABA0 ; =0x0000047F pop {r3-r5, pc} _0204AB6C: add r0, r5, #0x0 add r0, #0x90 ldr r0, [r0, #0x0] bl FUN_0205E128 cmp r0, #0x1 bne _0204AB7E ldr r0, _0204ABA4 ; =0x0000047E pop {r3-r5, pc} _0204AB7E: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0204ABA8 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0204AB34 cmp r0, #0x0 beq _0204AB9A add r0, r5, #0x0 bl FUN_0204AB34 add r4, r0, #0x0 _0204AB9A: add r0, r4, #0x0 pop {r3-r5, pc} nop _0204ABA0: .word 0x0000047F _0204ABA4: .word 0x0000047E thumb_func_start FUN_0204ABA8 FUN_0204ABA8: ; 0x0204ABA8 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_0201277C cmp r0, #0x0 bne _0204ABBE add r0, r4, #0x0 bl FUN_020347B0 b _0204ABC4 _0204ABBE: add r0, r4, #0x0 bl FUN_020347C4 _0204ABC4: add r6, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_020462AC add r1, r4, #0x0 bl FUN_0205EF20 cmp r0, #0x0 beq _0204ABD8 add r6, r0, #0x0 _0204ABD8: add r0, r6, #0x0 pop {r4-r6, pc} thumb_func_start FUN_0204ABDC FUN_0204ABDC: ; 0x0204ABDC push {r4-r7, lr} sub sp, #0x14 add r5, r0, #0x0 ldr r0, [r5, #0x38] add r4, r1, #0x0 add r7, r2, #0x0 bl FUN_020553C4 add r6, r0, #0x0 bl FUN_02004104 cmp r0, #0x1 bne _0204ABFC add sp, #0x14 mov r0, #0x0 pop {r4-r7, pc} _0204ABFC: add r0, r5, #0x0 bl FUN_02004124 cmp r4, r0 bne _0204AC0C add sp, #0x14 mov r0, #0x0 pop {r4-r7, pc} _0204AC0C: bl FUN_02004810 add r0, r5, #0x0 add r1, r7, #0x0 add r2, sp, #0x10 add r3, sp, #0xc bl FUN_0204ACCC cmp r6, #0x1 beq _0204AC22 bne _0204AC3A _0204AC22: mov r0, #0x1e str r0, [sp, #0x0] mov r0, #0x0 str r0, [sp, #0x4] str r0, [sp, #0x8] ldr r2, [sp, #0x10] ldr r3, [sp, #0xc] mov r0, #0x4 add r1, r4, #0x0 bl FUN_02004E08 b _0204AC4C _0204AC3A: mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x4] ldr r2, [sp, #0x10] ldr r3, [sp, #0xc] mov r0, #0x4 add r1, r4, #0x0 bl FUN_02004DCC _0204AC4C: mov r0, #0x1 add sp, #0x14 pop {r4-r7, pc} .balign 4 thumb_func_start FUN_0204AC54 FUN_0204AC54: ; 0x0204AC54 push {r4-r6, lr} sub sp, #0x10 add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 bl FUN_02004104 cmp r0, #0x1 bne _0204AC6C add sp, #0x10 mov r0, #0x0 pop {r4-r6, pc} _0204AC6C: add r0, r5, #0x0 bl FUN_02004124 cmp r4, r0 bne _0204AC7C add sp, #0x10 mov r0, #0x0 pop {r4-r6, pc} _0204AC7C: bl FUN_02004810 add r0, r5, #0x0 add r1, r6, #0x0 add r2, sp, #0xc add r3, sp, #0x8 bl FUN_0204ACCC mov r0, #0x1 str r0, [sp, #0x0] mov r0, #0x0 str r0, [sp, #0x4] ldr r2, [sp, #0xc] ldr r3, [sp, #0x8] mov r0, #0x4 add r1, r4, #0x0 bl FUN_02004DCC mov r0, #0x1 add sp, #0x10 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0204ACA8 FUN_0204ACA8: ; 0x0204ACA8 push {r3-r7, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r6, r2, #0x0 bl FUN_0204AB58 add r7, r0, #0x0 add r0, r4, #0x0 bl FUN_0204AD44 bl FUN_0200414C add r0, r5, #0x0 add r1, r7, #0x0 add r2, r6, #0x0 bl FUN_0204AC54 pop {r3-r7, pc} thumb_func_start FUN_0204ACCC FUN_0204ACCC: ; 0x0204ACCC cmp r1, #0x3 bhi _0204AD0A add r0, r1, r1 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0204ACDC: ; jump table (using 16-bit offset) .short _0204ACE4 - _0204ACDC - 2; case 0 .short _0204ACEE - _0204ACDC - 2; case 1 .short _0204ACF8 - _0204ACDC - 2; case 2 .short _0204AD02 - _0204ACDC - 2; case 3 _0204ACE4: mov r0, #0x1e str r0, [r2, #0x0] mov r0, #0x0 str r0, [r3, #0x0] bx lr _0204ACEE: mov r0, #0x3c str r0, [r2, #0x0] mov r0, #0x0 str r0, [r3, #0x0] bx lr _0204ACF8: mov r0, #0x3c str r0, [r2, #0x0] mov r0, #0xf str r0, [r3, #0x0] bx lr _0204AD02: mov r0, #0x3c str r0, [r2, #0x0] mov r0, #0x0 str r0, [r3, #0x0] _0204AD0A: bx lr thumb_func_start FUN_0204AD0C FUN_0204AD0C: ; 0x0204AD0C push {r3-r5, lr} mov r1, #0x1 bl FUN_0206AC74 lsl r0, r0, #0x18 lsr r5, r0, #0x18 ldr r0, _0204AD38 ; =0x0000044D ldr r2, _0204AD3C ; =0x020F4718 mov r4, #0x0 _0204AD1E: lsl r3, r4, #0x2 ldrh r1, [r2, r3] cmp r5, r1 bne _0204AD2C ldr r0, _0204AD40 ; =0x020F471A ldrh r0, [r0, r3] pop {r3-r5, pc} _0204AD2C: add r1, r4, #0x1 lsl r1, r1, #0x10 lsr r4, r1, #0x10 cmp r4, #0x4e blo _0204AD1E pop {r3-r5, pc} .balign 4 _0204AD38: .word 0x0000044D _0204AD3C: .word 0x020F4718 _0204AD40: .word 0x020F471A thumb_func_start FUN_0204AD44 FUN_0204AD44: ; 0x0204AD44 push {r4, lr} add r4, r0, #0x0 bl FUN_0201277C cmp r0, #0x0 bne _0204AD58 add r0, r4, #0x0 bl FUN_020347B0 pop {r4, pc} _0204AD58: add r0, r4, #0x0 bl FUN_020347C4 pop {r4, pc} thumb_func_start FUN_0204AD60 FUN_0204AD60: ; 0x0204AD60 push {r4-r6, lr} add r5, r0, #0x0 add r6, r1, #0x0 bl FUN_02004104 cmp r0, #0x1 beq _0204AD88 bl FUN_02004124 add r4, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_0204ABA8 cmp r4, r0 beq _0204AD88 mov r0, #0x0 mov r1, #0x28 bl FUN_020053CC _0204AD88: pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0204AD8C FUN_0204AD8C: ; 0x0204AD8C push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_02004104 cmp r0, #0x1 beq _0204ADB8 mov r0, #0x0 bl FUN_0200415C add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0204ABA8 add r4, r0, #0x0 bl FUN_0200414C mov r0, #0x4 add r1, r4, #0x0 mov r2, #0x1 bl FUN_0200433C _0204ADB8: pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0204ADBC FUN_0204ADBC: ; 0x0204ADBC push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_0204AB58 add r6, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0204ABA8 bl FUN_0200414C mov r0, #0x4 add r1, r6, #0x0 mov r2, #0x1 bl FUN_0200433C pop {r4-r6, pc} thumb_func_start FUN_0204ADE0 FUN_0204ADE0: ; 0x0204ADE0 mov r3, #0x0 add r2, r3, #0x0 _0204ADE4: lsl r1, r3, #0x2 add r1, r0, r1 strb r2, [r1, #0x6] strb r2, [r1, #0x7] strb r2, [r1, #0x8] strb r2, [r1, #0x9] add r1, r3, #0x1 lsl r1, r1, #0x18 lsr r3, r1, #0x18 cmp r3, #0x6 blo _0204ADE4 str r2, [r0, #0x0] strb r2, [r0, #0x4] strb r2, [r0, #0x5] bx lr .balign 4 thumb_func_start FUN_0204AE04 FUN_0204AE04: ; 0x0204AE04 push {r4, lr} add r4, r0, #0x0 asr r0, r1, #0x4 lsr r0, r0, #0x1b add r0, r1, r0 asr r1, r2, #0x4 lsr r1, r1, #0x1b add r1, r2, r1 lsl r0, r0, #0x13 lsl r1, r1, #0x13 ldrb r2, [r4, #0x4] lsr r0, r0, #0x18 lsr r1, r1, #0x18 cmp r0, r2 bne _0204AE28 ldrb r2, [r4, #0x5] cmp r1, r2 beq _0204AE58 _0204AE28: ldr r2, [r4, #0x0] lsl r2, r2, #0x2 add r2, r4, r2 strb r0, [r2, #0x6] ldr r0, [r4, #0x0] lsl r0, r0, #0x2 add r0, r4, r0 strb r1, [r0, #0x7] ldr r0, [r4, #0x0] mov r1, #0xff lsl r0, r0, #0x2 add r0, r4, r0 strb r1, [r0, #0x8] ldr r0, [r4, #0x0] mov r1, #0x1 lsl r0, r0, #0x2 add r0, r4, r0 strb r1, [r0, #0x9] ldr r0, [r4, #0x0] mov r1, #0x6 add r0, r0, #0x1 blx _s32_div_f str r1, [r4, #0x0] _0204AE58: pop {r4, pc} .balign 4 thumb_func_start FUN_0204AE5C FUN_0204AE5C: ; 0x0204AE5C push {r4, lr} add r4, r0, #0x0 lsl r0, r1, #0x18 lsl r1, r2, #0x18 ldrb r2, [r4, #0x4] lsr r0, r0, #0x18 lsr r1, r1, #0x18 cmp r0, r2 bne _0204AE74 ldrb r2, [r4, #0x5] cmp r1, r2 beq _0204AEA6 _0204AE74: ldr r2, [r4, #0x0] lsl r2, r2, #0x2 add r2, r4, r2 strb r0, [r2, #0x6] ldr r2, [r4, #0x0] lsl r2, r2, #0x2 add r2, r4, r2 strb r1, [r2, #0x7] ldr r2, [r4, #0x0] lsl r2, r2, #0x2 add r2, r4, r2 strb r3, [r2, #0x8] ldr r2, [r4, #0x0] mov r3, #0x1 lsl r2, r2, #0x2 add r2, r4, r2 strb r3, [r2, #0x9] strb r0, [r4, #0x4] strb r1, [r4, #0x5] ldr r0, [r4, #0x0] mov r1, #0x6 add r0, r0, #0x1 blx _s32_div_f str r1, [r4, #0x0] _0204AEA6: pop {r4, pc} thumb_func_start FUN_0204AEA8 FUN_0204AEA8: ; 0x0204AEA8 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldr r1, [r4, #0x0] cmp r1, #0x0 beq _0204AEC6 cmp r1, #0x1 beq _0204AEE6 b _0204AEF4 _0204AEC6: ldr r0, [r4, #0x8] add r1, r5, #0x0 add r2, r4, #0x4 bl FUN_021E3444 ldr r1, [r4, #0xc] mov r0, #0x5 lsl r1, r1, #0x10 lsr r1, r1, #0x10 mov r2, #0x1 bl FUN_0200433C ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _0204AEF4 _0204AEE6: ldr r1, [r4, #0x4] cmp r1, #0x1 bne _0204AEF4 bl FUN_02016A18 mov r0, #0x1 pop {r3-r5, pc} _0204AEF4: mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0204AEF8 FUN_0204AEF8: ; 0x0204AEF8 push {r4-r6, lr} add r6, r0, #0x0 add r5, r1, #0x0 mov r0, #0xb mov r1, #0x10 add r4, r2, #0x0 bl FUN_020169D8 add r2, r0, #0x0 mov r0, #0x0 str r0, [r2, #0x0] str r0, [r2, #0x4] str r5, [r2, #0x8] ldr r1, _0204AF20 ; =FUN_0204AEA8 add r0, r6, #0x0 str r4, [r2, #0xc] bl FUN_0204640C pop {r4-r6, pc} nop _0204AF20: .word FUN_0204AEA8 thumb_func_start FUN_0204AF24 FUN_0204AF24: ; 0x0204AF24 push {r3, lr} bl FUN_02046528 bl FUN_0203739C cmp r0, #0x0 bne _0204AF36 mov r0, #0x1 pop {r3, pc} _0204AF36: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0204AF3C FUN_0204AF3C: ; 0x0204AF3C push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02046528 add r4, r0, #0x0 bl FUN_0203739C cmp r0, #0x0 bne _0204AF54 bl ErrorHandling pop {r3-r5, pc} _0204AF54: add r0, r4, #0x0 bl FUN_02037394 ldr r1, _0204AF68 ; =FUN_0204AF24 add r0, r5, #0x0 mov r2, #0x0 bl FUN_0204640C pop {r3-r5, pc} nop _0204AF68: .word FUN_0204AF24 thumb_func_start FUN_0204AF6C FUN_0204AF6C: ; 0x0204AF6C push {r3, lr} bl FUN_02046528 bl FUN_020464A4 cmp r0, #0x0 beq _0204AF7E mov r0, #0x1 pop {r3, pc} _0204AF7E: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0204AF84 FUN_0204AF84: ; 0x0204AF84 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02046528 add r4, r0, #0x0 bl FUN_0203739C cmp r0, #0x0 beq _0204AF9C bl ErrorHandling pop {r3-r5, pc} _0204AF9C: add r0, r4, #0x0 bl FUN_0204649C ldr r1, _0204AFB0 ; =FUN_0204AF6C add r0, r5, #0x0 mov r2, #0x0 bl FUN_0204640C pop {r3-r5, pc} nop _0204AFB0: .word FUN_0204AF6C thumb_func_start FUN_0204AFB4 FUN_0204AFB4: ; 0x0204AFB4 push {r3, lr} bl FUN_0200E308 cmp r0, #0x0 beq _0204AFC2 mov r0, #0x1 pop {r3, pc} _0204AFC2: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0204AFC8 FUN_0204AFC8: ; 0x0204AFC8 push {r3-r4, lr} sub sp, #0xc add r4, r0, #0x0 bl FUN_02046528 bl FUN_0203739C cmp r0, #0x0 bne _0204AFE2 bl ErrorHandling add sp, #0xc pop {r3-r4, pc} _0204AFE2: mov r0, #0x6 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] mov r0, #0x4 str r0, [sp, #0x8] mov r0, #0x0 add r1, r0, #0x0 add r2, r0, #0x0 add r3, r0, #0x0 bl FUN_0200E1D0 ldr r1, _0204B008 ; =FUN_0204AFB4 add r0, r4, #0x0 mov r2, #0x0 bl FUN_0204640C add sp, #0xc pop {r3-r4, pc} .balign 4 _0204B008: .word FUN_0204AFB4 thumb_func_start FUN_0204B00C FUN_0204B00C: ; 0x0204B00C push {r3-r4, lr} sub sp, #0xc add r4, r0, #0x0 bl FUN_02046528 bl FUN_0203739C cmp r0, #0x0 bne _0204B026 bl ErrorHandling add sp, #0xc pop {r3-r4, pc} _0204B026: mov r0, #0x6 str r0, [sp, #0x0] mov r1, #0x1 str r1, [sp, #0x4] mov r0, #0x4 str r0, [sp, #0x8] mov r0, #0x0 add r2, r1, #0x0 add r3, r0, #0x0 bl FUN_0200E1D0 ldr r1, _0204B04C ; =FUN_0204AFB4 add r0, r4, #0x0 mov r2, #0x0 bl FUN_0204640C add sp, #0xc pop {r3-r4, pc} nop _0204B04C: .word FUN_0204AFB4 thumb_func_start FUN_0204B050 FUN_0204B050: ; 0x0204B050 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02046530 add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x0 beq _0204B06A cmp r0, #0x1 beq _0204B078 cmp r0, #0x2 beq _0204B086 b _0204B08A _0204B06A: add r0, r5, #0x0 bl FUN_0204AFC8 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _0204B08A _0204B078: add r0, r5, #0x0 bl FUN_0204AF3C ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _0204B08A _0204B086: mov r0, #0x1 pop {r3-r5, pc} _0204B08A: mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0204B090 FUN_0204B090: ; 0x0204B090 ldr r3, _0204B098 ; =FUN_0204640C ldr r1, _0204B09C ; =FUN_0204B050 mov r2, #0x0 bx r3 .balign 4 _0204B098: .word FUN_0204640C _0204B09C: .word FUN_0204B050 thumb_func_start FUN_0204B0A0 FUN_0204B0A0: ; 0x0204B0A0 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02046530 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02046528 ldr r1, [r4, #0x0] cmp r1, #0x0 beq _0204B0C0 cmp r1, #0x1 beq _0204B0CE cmp r1, #0x2 beq _0204B0E0 b _0204B0E4 _0204B0C0: add r0, r5, #0x0 bl FUN_0204AF84 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _0204B0E4 _0204B0CE: bl FUN_021E331C add r0, r5, #0x0 bl FUN_0204B00C ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _0204B0E4 _0204B0E0: mov r0, #0x1 pop {r3-r5, pc} _0204B0E4: mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0204B0E8 FUN_0204B0E8: ; 0x0204B0E8 ldr r3, _0204B0F0 ; =FUN_0204640C ldr r1, _0204B0F4 ; =FUN_0204B0A0 mov r2, #0x0 bx r3 .balign 4 _0204B0F0: .word FUN_0204640C _0204B0F4: .word FUN_0204B0A0 thumb_func_start FUN_0204B0F8 FUN_0204B0F8: ; 0x0204B0F8 push {r4-r5, lr} sub sp, #0x1c add r5, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_02023794 add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x0 beq _0204B12A add r0, sp, #0xc add r1, sp, #0x0 bl FUN_0201265C add r0, r5, #0x0 add r1, r4, #0x0 add r2, sp, #0xc bl FUN_0204B130 add r0, r5, #0x0 add r1, r4, #0x0 add r2, sp, #0xc add r3, sp, #0x0 bl FUN_0204B158 _0204B12A: add sp, #0x1c pop {r4-r5, pc} .balign 4 thumb_func_start FUN_0204B130 FUN_0204B130: ; 0x0204B130 push {r4-r6, lr} add r6, r0, #0x0 add r5, r1, #0x0 add r0, r2, #0x0 blx FUN_020D660C ldr r1, [r5, #0x20] add r4, r0, #0x0 cmp r4, r1 bhs _0204B148 str r4, [r5, #0x20] pop {r4-r6, pc} _0204B148: cmp r4, r1 bls _0204B156 add r0, r6, #0x0 sub r1, r4, r1 bl FUN_0204B1DC str r4, [r5, #0x20] _0204B156: pop {r4-r6, pc} thumb_func_start FUN_0204B158 FUN_0204B158: ; 0x0204B158 push {r4-r7, lr} sub sp, #0xc add r4, r2, #0x0 str r0, [sp, #0x0] add r6, r3, #0x0 add r5, r1, #0x0 add r0, r4, #0x0 add r1, r6, #0x0 blx FUN_020D6578 str r1, [sp, #0x8] add r1, r5, #0x0 add r7, r0, #0x0 add r0, r5, #0x4 add r1, #0x14 blx FUN_020D6578 add r2, r1, #0x0 sub r1, r7, r0 ldr r1, [sp, #0x8] sbc r1, r2 bge _0204B19C add r2, r5, #0x4 ldmia r4!, {r0-r1} stmia r2!, {r0-r1} ldmia r4!, {r0-r1} stmia r2!, {r0-r1} ldmia r6!, {r0-r1} add r5, #0x14 stmia r5!, {r0-r1} ldr r0, [r6, #0x0] add sp, #0xc str r0, [r5, #0x0] pop {r4-r7, pc} _0204B19C: ldr r1, [sp, #0x8] sub r0, r7, r0 sbc r1, r2 mov r2, #0x3c mov r3, #0x0 str r1, [sp, #0x8] blx FUN_020EBA38 add r7, r0, #0x0 cmp r7, #0x0 ble _0204B1D8 add r0, r5, #0x0 add r1, r7, #0x0 bl FUN_02023884 ldr r0, [sp, #0x0] add r1, r7, #0x0 add r2, r6, #0x0 bl FUN_0204B270 add r2, r5, #0x4 ldmia r4!, {r0-r1} stmia r2!, {r0-r1} ldmia r4!, {r0-r1} stmia r2!, {r0-r1} ldmia r6!, {r0-r1} add r5, #0x14 stmia r5!, {r0-r1} ldr r0, [r6, #0x0] str r0, [r5, #0x0] _0204B1D8: add sp, #0xc pop {r4-r7, pc} thumb_func_start FUN_0204B1DC FUN_0204B1DC: ; 0x0204B1DC push {r4-r6, lr} add r4, r1, #0x0 add r5, r0, #0x0 bl FUN_020377AC add r1, r4, #0x0 bl FUN_02025A60 add r0, r5, #0x0 bl FUN_0203959C ldr r0, [r5, #0xc] add r1, r4, #0x0 bl FUN_02060344 ldr r0, [r5, #0xc] bl FUN_0202881C add r1, r4, #0x0 bl FUN_02028754 ldr r0, [r5, #0xc] bl FUN_0202A9B0 add r6, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_0202881C bl FUN_020287A4 add r1, r0, #0x0 add r0, r6, #0x0 bl FUN_0202A988 ldr r0, [r5, #0xc] bl FUN_0206BB1C add r1, r4, #0x0 bl FUN_02069D50 ldr r0, [r5, #0xc] bl FUN_020462AC add r6, r0, #0x0 bl FUN_0205F594 cmp r0, r4 ble _0204B244 sub r0, r0, r4 lsl r0, r0, #0x10 lsr r1, r0, #0x10 b _0204B246 _0204B244: mov r1, #0x0 _0204B246: add r0, r6, #0x0 bl FUN_0205F5A4 lsl r1, r4, #0x10 ldr r0, [r5, #0xc] lsr r1, r1, #0x10 bl FUN_0205F618 ldr r0, [r5, #0xc] bl FUN_0205F668 ldr r0, [r5, #0xc] bl FUN_0206007C ldr r0, [r5, #0xc] bl FUN_02029AFC bl FUN_02029C08 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0204B270 FUN_0204B270: ; 0x0204B270 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 bl FUN_0204B3D0 ldr r0, [r5, #0xc] add r1, r4, #0x0 bl FUN_0202A9D0 add r0, r5, #0x0 bl FUN_0204B33C add r2, r0, #0x0 ldr r0, [r5, #0xc] add r1, r4, #0x0 bl FUN_02025B60 ldr r0, [r5, #0xc] bl FUN_02022504 ldr r2, [r6, #0x4] add r1, r4, #0x0 bl FUN_0202B3C4 pop {r4-r6, pc} thumb_func_start FUN_0204B2A4 FUN_0204B2A4: ; 0x0204B2A4 push {r3, lr} ldr r0, [r0, #0xc] bl FUN_02023794 ldr r0, [r0, #0x14] bl FUN_020127A8 pop {r3, pc} thumb_func_start FUN_0204B2B4 FUN_0204B2B4: ; 0x0204B2B4 push {r3, lr} ldr r0, [r0, #0xc] bl FUN_02023794 ldr r0, [r0, #0x8] pop {r3, pc} thumb_func_start FUN_0204B2C0 FUN_0204B2C0: ; 0x0204B2C0 push {r3, lr} ldr r0, [r0, #0xc] bl FUN_02023794 ldr r0, [r0, #0xc] pop {r3, pc} thumb_func_start FUN_0204B2CC FUN_0204B2CC: ; 0x0204B2CC push {r3, lr} ldr r0, [r0, #0xc] bl FUN_02023794 ldr r0, [r0, #0x10] pop {r3, pc} thumb_func_start FUN_0204B2D8 FUN_0204B2D8: ; 0x0204B2D8 push {r3, lr} ldr r0, [r0, #0xc] bl FUN_02023794 ldr r0, [r0, #0x14] pop {r3, pc} thumb_func_start FUN_0204B2E4 FUN_0204B2E4: ; 0x0204B2E4 push {r3, lr} ldr r0, [r0, #0xc] bl FUN_02023794 ldr r0, [r0, #0x18] pop {r3, pc} thumb_func_start FUN_0204B2F0 FUN_0204B2F0: ; 0x0204B2F0 push {r3-r5, lr} ldr r0, [r0, #0xc] add r5, r1, #0x0 add r4, r2, #0x0 bl FUN_02023794 add r3, r0, #0x0 ldr r2, [r3, #0x24] ldr r3, [r3, #0x28] add r0, r5, #0x0 add r1, r4, #0x0 blx FUN_020D6320 pop {r3-r5, pc} thumb_func_start FUN_0204B30C FUN_0204B30C: ; 0x0204B30C push {r3-r5, lr} ldr r0, [r0, #0xc] add r5, r1, #0x0 add r4, r2, #0x0 bl FUN_02023794 add r3, r0, #0x0 ldr r2, [r3, #0x2c] ldr r3, [r3, #0x30] add r0, r5, #0x0 add r1, r4, #0x0 blx FUN_020D6320 pop {r3-r5, pc} thumb_func_start FUN_0204B328 FUN_0204B328: ; 0x0204B328 push {r4, lr} ldr r0, [r0, #0xc] bl FUN_02023794 add r4, r0, #0x0 bl FUN_020126FC str r0, [r4, #0x2c] str r1, [r4, #0x30] pop {r4, pc} thumb_func_start FUN_0204B33C FUN_0204B33C: ; 0x0204B33C push {r3, lr} ldr r0, [r0, #0xc] bl FUN_02023794 bl FUN_02023874 pop {r3, pc} .balign 4 thumb_func_start FUN_0204B34C FUN_0204B34C: ; 0x0204B34C cmp r0, #0x0 bne _0204B354 mov r0, #0x0 bx lr _0204B354: add r0, #0x94 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bx lr thumb_func_start FUN_0204B35C FUN_0204B35C: ; 0x0204B35C cmp r0, #0x0 bne _0204B364 mov r0, #0x0 bx lr _0204B364: sub r0, #0x94 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bx lr thumb_func_start FUN_0204B36C FUN_0204B36C: ; 0x0204B36C cmp r0, #0x0 bne _0204B374 mov r0, #0x0 bx lr _0204B374: add r0, #0x5e lsl r0, r0, #0x10 lsr r0, r0, #0x10 bx lr thumb_func_start FUN_0204B37C FUN_0204B37C: ; 0x0204B37C cmp r0, #0x0 bne _0204B384 mov r0, #0x0 bx lr _0204B384: sub r0, #0x5e bx lr thumb_func_start FUN_0204B388 FUN_0204B388: ; 0x0204B388 push {r4-r6, lr} add r6, r1, #0x0 add r5, r0, #0x0 add r0, r6, #0x0 mov r1, #0x64 bl FUN_02016998 add r4, r0, #0x0 mov r1, #0x0 mov r2, #0x64 blx MI_CpuFill8 str r6, [r4, #0x0] add r0, r6, #0x0 bl FUN_02025128 str r0, [r4, #0x4] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0204B410 add r0, r4, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0204B3B8 FUN_0204B3B8: ; 0x0204B3B8 push {r4, lr} add r4, r0, #0x0 bl FUN_0204B444 ldr r0, [r4, #0x4] bl FUN_02016A18 add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} .balign 4 thumb_func_start FUN_0204B3D0 FUN_0204B3D0: ; 0x0204B3D0 push {r4-r6, lr} add r4, r0, #0x0 ldr r0, [r4, #0x4] add r6, r1, #0x0 cmp r0, #0x0 bne _0204B3FA mov r0, #0xb bl FUN_02025128 add r5, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_02024ECC add r1, r5, #0x0 add r2, r6, #0x0 bl FUN_020253E0 add r0, r5, #0x0 bl FUN_02016A18 pop {r4-r6, pc} _0204B3FA: ldr r0, [r0, #0x18] ldr r5, [r0, #0x4] ldr r0, [r4, #0xc] bl FUN_02024ECC add r1, r5, #0x0 add r2, r6, #0x0 bl FUN_020253E0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0204B410 FUN_0204B410: ; 0x0204B410 push {r3-r5, lr} ldr r4, [r0, #0x3c] add r5, r1, #0x0 add r0, r4, #0x0 mov r1, #0x11 bl FUN_021E4C54 add r1, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_02016998 str r0, [r5, #0x60] ldr r2, [r5, #0x60] add r0, r4, #0x0 mov r1, #0x11 bl FUN_021E4C60 add r0, r5, #0x0 add r1, r5, #0x0 add r5, #0x60 add r0, #0x8 add r1, #0x5c add r2, r5, #0x0 bl FUN_0201B234 pop {r3-r5, pc} thumb_func_start FUN_0204B444 FUN_0204B444: ; 0x0204B444 ldr r3, _0204B44C ; =0x021E4C01 ldr r0, [r0, #0x60] bx r3 nop _0204B44C: .word 0x021E4C01 thumb_func_start FUN_0204B450 FUN_0204B450: ; 0x0204B450 push {r3-r5, lr} sub sp, #0x30 ldr r3, _0204B48C ; =0x020F4860 add r5, r0, #0x0 add r4, r1, #0x0 ldmia r3!, {r0-r1} add r2, sp, #0x24 stmia r2!, {r0-r1} ldr r0, [r3, #0x0] str r0, [r2, #0x0] add r0, sp, #0x0 blx FUN_020C3F14 ldr r0, [r5, #0x4] add r1, r4, #0x0 ldr r0, [r0, #0x18] add r2, sp, #0x0 ldr r0, [r0, #0x5c] add r3, sp, #0x24 bl FUN_0201B6D0 cmp r0, #0x0 beq _0204B484 add sp, #0x30 mov r0, #0x1 pop {r3-r5, pc} _0204B484: mov r0, #0x0 add sp, #0x30 pop {r3-r5, pc} nop _0204B48C: .word 0x020F4860 thumb_func_start FUN_0204B490 FUN_0204B490: ; 0x0204B490 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x4] ldr r0, [r5, #0xc] bl FUN_02024ECC add r4, r0, #0x0 ldr r0, [r5, #0x34] add r1, sp, #0x0 add r2, sp, #0x4 mov r3, #0x1 bl FUN_020580F4 cmp r0, #0x1 bne _0204B4F8 mov r6, #0x0 mov r7, #0x1 _0204B4B6: ldr r0, [sp, #0x0] bl FUN_02058458 bl FUN_0205C334 cmp r0, #0x1 bne _0204B4E8 ldr r0, [sp, #0x0] bl FUN_02058B7C add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_0204B450 cmp r0, #0x0 beq _0204B4E8 ldr r0, [sp, #0x0] add r1, r6, #0x0 bl FUN_02058510 add r1, r0, #0x0 add r0, r4, #0x0 add r2, r7, #0x0 bl FUN_020252C4 _0204B4E8: ldr r0, [r5, #0x34] add r1, sp, #0x0 add r2, sp, #0x4 mov r3, #0x1 bl FUN_020580F4 cmp r0, #0x1 beq _0204B4B6 _0204B4F8: add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_0204B4FC FUN_0204B4FC: ; 0x0204B4FC push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 ldr r0, [r5, #0xc] add r7, r1, #0x0 bl FUN_02024ECC add r4, r0, #0x0 add r0, r7, #0x0 mov r1, #0x0 bl FUN_02058510 str r0, [sp, #0x0] ldr r1, [sp, #0x0] add r0, r4, #0x0 bl FUN_02025244 str r0, [sp, #0x4] ldr r1, [sp, #0x0] add r0, r4, #0x0 bl FUN_020252E8 add r6, r0, #0x0 ldr r0, [sp, #0x4] bl FUN_0204B34C str r0, [sp, #0x8] ldr r1, [sp, #0x0] add r0, r4, #0x0 bl FUN_02025268 add r2, r0, #0x0 lsl r2, r2, #0x18 lsl r3, r6, #0x10 ldr r1, [sp, #0x8] add r0, r5, #0x0 lsr r2, r2, #0x18 lsr r3, r3, #0x10 bl FUN_020616A4 ldr r1, [sp, #0x0] add r0, r4, #0x0 bl FUN_020252F4 add r0, r7, #0x0 bl FUN_0205C374 ldr r0, [r5, #0xc] bl FUN_0206F158 add r4, r0, #0x0 ldr r0, [sp, #0x4] bl FUN_0204B34C lsl r2, r6, #0x10 add r1, r0, #0x0 add r0, r4, #0x0 lsr r2, r2, #0x10 mov r3, #0x4 bl FUN_0206ED38 add sp, #0xc pop {r4-r7, pc} .balign 4 thumb_func_start FUN_0204B57C FUN_0204B57C: ; 0x0204B57C push {r4-r6, lr} ldr r0, [r0, #0xc] add r4, r1, #0x0 add r5, r2, #0x0 bl FUN_02024ECC add r6, r0, #0x0 add r0, r4, #0x0 mov r1, #0x0 bl FUN_02058510 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0204B37C add r2, r0, #0x0 add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_020252DC pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0204B5A8 FUN_0204B5A8: ; 0x0204B5A8 push {r3-r7, lr} add r4, r0, #0x0 ldr r0, [r4, #0xc] add r5, r1, #0x0 add r6, r2, #0x0 bl FUN_02024ECC add r7, r0, #0x0 add r0, r5, #0x0 mov r1, #0x0 bl FUN_02058510 add r5, r0, #0x0 add r0, r6, #0x0 bl FUN_0204B35C ldr r2, [r4, #0x4] add r3, r0, #0x0 ldr r2, [r2, #0x18] add r0, r7, #0x0 ldr r2, [r2, #0x4] add r1, r5, #0x0 bl FUN_02025274 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0204B5DC FUN_0204B5DC: ; 0x0204B5DC push {r3-r5, lr} ldr r0, [r0, #0xc] add r5, r1, #0x0 bl FUN_02024ECC add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x0 bl FUN_02058510 add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_020252AC pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0204B5FC FUN_0204B5FC: ; 0x0204B5FC push {r3-r5, lr} ldr r0, [r0, #0xc] add r5, r1, #0x0 bl FUN_02024ECC add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x0 bl FUN_02058510 add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_02025238 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0204B61C FUN_0204B61C: ; 0x0204B61C push {r3-r5, lr} ldr r0, [r0, #0xc] add r5, r1, #0x0 bl FUN_02024ECC add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x0 bl FUN_02058510 add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_02025244 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0204B63C FUN_0204B63C: ; 0x0204B63C push {r3-r5, lr} ldr r0, [r0, #0xc] add r5, r1, #0x0 bl FUN_02024ECC add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x0 bl FUN_02058510 add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_02025244 bl FUN_0204B34C pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0204B660 FUN_0204B660: ; 0x0204B660 push {r3-r5, lr} ldr r0, [r0, #0xc] add r5, r1, #0x0 bl FUN_02024ECC add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x0 bl FUN_02058510 add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_020252D0 bl FUN_0204B36C pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0204B684 FUN_0204B684: ; 0x0204B684 push {r3-r5, lr} ldr r0, [r0, #0xc] add r5, r1, #0x0 bl FUN_02024ECC add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x0 bl FUN_02058510 add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_0202524C pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0204B6A4 FUN_0204B6A4: ; 0x0204B6A4 push {r3-r5, lr} ldr r0, [r0, #0xc] add r5, r1, #0x0 bl FUN_02024ECC add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x0 bl FUN_02058510 add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_020252E8 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0204B6C4 FUN_0204B6C4: ; 0x0204B6C4 push {r4-r6, lr} add r6, r0, #0x0 add r5, r1, #0x0 ldr r4, _0204B708 ; =0x00000000 beq _0204B6D8 add r0, r5, #0x0 bl FUN_02058458 cmp r0, #0x64 beq _0204B6DC _0204B6D8: mov r0, #0x0 pop {r4-r6, pc} _0204B6DC: add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_0204B5FC cmp r0, #0x0 bne _0204B6FE mov r0, #0x1 orr r4, r0 add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_0204B660 cmp r0, #0x0 bne _0204B702 mov r0, #0x2 orr r4, r0 b _0204B702 _0204B6FE: mov r0, #0x4 orr r4, r0 _0204B702: add r0, r4, #0x0 pop {r4-r6, pc} nop _0204B708: .word 0x00000000 thumb_func_start FUN_0204B70C FUN_0204B70C: ; 0x0204B70C push {r3-r7, lr} add r7, r0, #0x0 ldr r0, [r7, #0x38] add r5, r2, #0x0 bl FUN_02055320 add r6, r0, #0x0 ldr r0, [r7, #0x38] bl FUN_0205532C add r4, r0, #0x0 cmp r5, #0x2 bne _0204B72A sub r6, r6, #0x1 b _0204B746 _0204B72A: cmp r5, #0x3 bne _0204B732 add r6, r6, #0x1 b _0204B746 _0204B732: cmp r5, #0x0 bne _0204B73A sub r4, r4, #0x1 b _0204B746 _0204B73A: cmp r5, #0x1 bne _0204B742 add r4, r4, #0x1 b _0204B746 _0204B742: bl ErrorHandling _0204B746: add r0, r7, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 bl FUN_0204A6B4 cmp r0, #0x0 beq _0204B758 mov r0, #0x1 pop {r3-r7, pc} _0204B758: ldr r0, [r7, #0x34] add r1, r6, #0x0 add r2, r4, #0x0 bl FUN_02058D74 cmp r0, #0x0 beq _0204B76A mov r0, #0x1 pop {r3-r7, pc} _0204B76A: mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0204B770 FUN_0204B770: ; 0x0204B770 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0x38] add r6, r1, #0x0 bl FUN_02055320 add r4, r0, #0x0 ldr r0, [r5, #0x38] bl FUN_0205532C add r2, r0, #0x0 cmp r6, #0x2 bne _0204B78E sub r4, r4, #0x1 b _0204B794 _0204B78E: cmp r6, #0x3 bne _0204B794 add r4, r4, #0x1 _0204B794: ldr r0, [r5, #0x34] add r1, r4, #0x0 sub r2, r2, #0x1 bl FUN_02058D74 pop {r4-r6, pc} thumb_func_start FUN_0204B7A0 FUN_0204B7A0: ; 0x0204B7A0 push {r3-r7, lr} add r5, r0, #0x0 ldr r0, [r5, #0x38] add r6, r1, #0x0 bl FUN_02055320 add r7, r0, #0x0 ldr r0, [r5, #0x38] bl FUN_0205532C add r4, r0, #0x0 ldr r0, [r6, #0x4] cmp r0, #0x0 bne _0204B7C0 sub r4, r4, #0x1 b _0204B7CC _0204B7C0: cmp r0, #0x1 bne _0204B7C8 add r4, r4, #0x1 b _0204B7CC _0204B7C8: bl ErrorHandling _0204B7CC: ldr r0, [r5, #0x34] add r1, r7, #0x0 add r2, r4, #0x0 bl FUN_02058D74 pop {r3-r7, pc} thumb_func_start FUN_0204B7D8 FUN_0204B7D8: ; 0x0204B7D8 push {r3, lr} bl FUN_02058458 cmp r0, #0x64 bne _0204B7E6 mov r0, #0x1 pop {r3, pc} _0204B7E6: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0204B7EC FUN_0204B7EC: ; 0x0204B7EC push {r4, lr} add r4, r0, #0x0 bl FUN_0204B7A0 add r1, r0, #0x0 beq _0204B7FE add r0, r4, #0x0 bl FUN_0204B5DC _0204B7FE: pop {r4, pc} thumb_func_start FUN_0204B800 FUN_0204B800: ; 0x0204B800 push {r3-r5, lr} ldr r0, [r0, #0x38] add r4, r2, #0x0 add r5, r1, #0x0 bl FUN_020553A0 add r1, r4, #0x0 bl FUN_0205AEA4 str r0, [r5, #0xc] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0204B818 FUN_0204B818: ; 0x0204B818 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x4 bls _0204B832 b _0204B98E _0204B832: add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0204B83E: ; jump table (using 16-bit offset) .short _0204B848 - _0204B83E - 2; case 0 .short _0204B866 - _0204B83E - 2; case 1 .short _0204B876 - _0204B83E - 2; case 2 .short _0204B93A - _0204B83E - 2; case 3 .short _0204B972 - _0204B83E - 2; case 4 _0204B848: ldr r0, [r5, #0x38] mov r1, #0x10 bl FUN_021E5FD8 ldr r0, [r5, #0x38] bl FUN_021E5FE0 ldr r0, [r5, #0x38] bl FUN_020553A0 bl FUN_02058914 mov r0, #0x1 str r0, [r4, #0x0] b _0204B98E _0204B866: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0204B7EC mov r0, #0x0 str r0, [r4, #0x8] mov r0, #0x2 str r0, [r4, #0x0] _0204B876: ldr r0, _0204B994 ; =0x021C48B8 mov r1, #0x20 ldr r0, [r0, #0x44] tst r1, r0 beq _0204B8B8 add r0, r5, #0x0 mov r1, #0x2 bl FUN_0204B770 cmp r0, #0x0 beq _0204B894 bl FUN_0204B7D8 cmp r0, #0x0 bne _0204B89A _0204B894: mov r0, #0x4 str r0, [r4, #0x0] b _0204B98E _0204B89A: add r0, r5, #0x0 add r1, r4, #0x0 mov r2, #0x2 bl FUN_0204B70C cmp r0, #0x0 bne _0204B922 ldr r2, _0204B998 ; =0x020F4850 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0204B800 mov r0, #0x3 str r0, [r4, #0x0] b _0204B98E _0204B8B8: mov r1, #0x10 tst r1, r0 beq _0204B8F6 add r0, r5, #0x0 mov r1, #0x3 bl FUN_0204B770 cmp r0, #0x0 beq _0204B8D2 bl FUN_0204B7D8 cmp r0, #0x0 bne _0204B8D8 _0204B8D2: mov r0, #0x4 str r0, [r4, #0x0] b _0204B98E _0204B8D8: add r0, r5, #0x0 add r1, r4, #0x0 mov r2, #0x3 bl FUN_0204B70C cmp r0, #0x0 bne _0204B922 ldr r2, _0204B99C ; =0x020F4858 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0204B800 mov r0, #0x3 str r0, [r4, #0x0] b _0204B98E _0204B8F6: mov r1, #0x40 tst r1, r0 beq _0204B910 ldr r1, [r4, #0x4] cmp r1, #0x1 bne _0204B910 ldr r0, [r5, #0x38] mov r1, #0x0 bl FUN_02055304 mov r0, #0x4 str r0, [r4, #0x0] b _0204B98E _0204B910: mov r1, #0x80 tst r0, r1 beq _0204B922 ldr r0, [r4, #0x4] cmp r0, #0x0 bne _0204B922 mov r0, #0x4 str r0, [r4, #0x0] b _0204B98E _0204B922: ldr r0, [r4, #0x8] add r0, r0, #0x1 str r0, [r4, #0x8] cmp r0, #0x5a ble _0204B98E ldr r0, [r5, #0x38] ldr r1, [r4, #0x4] bl FUN_02055304 mov r0, #0x4 str r0, [r4, #0x0] b _0204B98E _0204B93A: ldr r0, [r4, #0xc] bl FUN_0205AEF0 cmp r0, #0x0 beq _0204B98E ldr r0, [r4, #0xc] bl FUN_0205AEFC add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0204B7A0 cmp r0, #0x0 beq _0204B964 bl FUN_0204B7D8 cmp r0, #0x0 beq _0204B964 mov r0, #0x1 str r0, [r4, #0x0] b _0204B98E _0204B964: ldr r0, [r5, #0x38] ldr r1, [r4, #0x4] bl FUN_02055304 mov r0, #0x4 str r0, [r4, #0x0] b _0204B98E _0204B972: ldr r0, [r5, #0x38] ldr r1, [r4, #0x4] bl FUN_02055304 ldr r0, [r5, #0x38] bl FUN_020553A0 bl FUN_02058908 add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x1 pop {r3-r5, pc} _0204B98E: mov r0, #0x0 pop {r3-r5, pc} nop _0204B994: .word 0x021C48B8 _0204B998: .word 0x020F4850 _0204B99C: .word 0x020F4858 thumb_func_start FUN_0204B9A0 FUN_0204B9A0: ; 0x0204B9A0 push {r3-r5, lr} add r5, r0, #0x0 mov r0, #0x20 mov r1, #0x10 bl FUN_02016998 add r4, r0, #0x0 mov r0, #0x0 str r0, [r4, #0x0] str r0, [r4, #0xc] ldr r0, [r5, #0x38] bl FUN_020552F8 str r0, [r4, #0x4] ldr r0, [r5, #0x10] ldr r1, _0204B9C8 ; =FUN_0204B818 add r2, r4, #0x0 bl FUN_0204640C pop {r3-r5, pc} .balign 4 _0204B9C8: .word FUN_0204B818 thumb_func_start FUN_0204B9CC FUN_0204B9CC: ; 0x0204B9CC push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x38] bl FUN_020553C4 bl FUN_02055648 add r1, r0, #0x0 ldr r0, [r4, #0x38] bl FUN_021E5FD8 ldr r0, [r4, #0x38] bl FUN_021E5FE0 pop {r4, pc} .balign 4 thumb_func_start FUN_0204B9EC FUN_0204B9EC: ; 0x0204B9EC push {r4, lr} ldr r1, _0204BA14 ; =0x021C5A1C add r4, r0, #0x0 mov r0, #0x0 mov r2, #0x4c blx MIi_CpuClearFast ldr r1, _0204BA14 ; =0x021C5A1C add r0, r4, #0x0 bl FUN_0204BB20 ldr r0, _0204BA14 ; =0x021C5A1C bl FUN_0204BBC4 bl FUN_020126FC ldr r2, _0204BA18 ; =0x021C5A1C str r0, [r2, #0x40] str r1, [r2, #0x44] pop {r4, pc} .balign 4 _0204BA14: .word 0x021C5A1C _0204BA18: .word 0x021C5A1C thumb_func_start FUN_0204BA1C FUN_0204BA1C: ; 0x0204BA1C push {r3-r5, lr} ldr r0, [r0, #0xc] ldr r4, _0204BA60 ; =0x021C5A1C bl FUN_02029FC8 add r5, r0, #0x0 bl FUN_020126FC add r3, r1, #0x0 ldr r1, _0204BA64 ; =0x021C5A1C add r2, r0, #0x0 ldr r0, [r1, #0x40] ldr r1, [r1, #0x44] bl FUN_020127C0 mov r2, #0xfa mov r3, #0x0 lsl r2, r2, #0x2 sub r2, r0, r2 sbc r1, r3 bge _0204BA50 mov r1, #0xfa lsl r1, r1, #0x2 sub r0, r1, r0 lsl r0, r0, #0x1 b _0204BA52 _0204BA50: mov r0, #0x0 _0204BA52: str r0, [r4, #0x48] add r0, r5, #0x0 mov r1, #0x11 bl FUN_0202A170 pop {r3-r5, pc} nop _0204BA60: .word 0x021C5A1C _0204BA64: .word 0x021C5A1C thumb_func_start FUN_0204BA68 FUN_0204BA68: ; 0x0204BA68 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, _0204BA8C ; =0x021C5A1C add r4, r1, #0x0 add r6, r2, #0x0 bl FUN_0204BBE8 cmp r0, #0x1 bne _0204BA88 ldr r1, _0204BA8C ; =0x021C5A1C add r0, r5, #0x0 add r2, r4, #0x0 add r3, r6, #0x0 bl FUN_0204BC48 pop {r4-r6, pc} _0204BA88: mov r0, #0x0 pop {r4-r6, pc} .balign 4 _0204BA8C: .word 0x021C5A1C thumb_func_start FUN_0204BA90 FUN_0204BA90: ; 0x0204BA90 ldr r3, _0204BA98 ; =FUN_0204BD40 ldr r1, _0204BA9C ; =0x021C5A1C bx r3 nop _0204BA98: .word FUN_0204BD40 _0204BA9C: .word 0x021C5A1C thumb_func_start FUN_0204BAA0 FUN_0204BAA0: ; 0x0204BAA0 ldr r3, _0204BAA8 ; =FUN_0204BD18 ldr r2, _0204BAAC ; =0x021C5A1C bx r3 nop _0204BAA8: .word FUN_0204BD18 _0204BAAC: .word 0x021C5A1C thumb_func_start FUN_0204BAB0 FUN_0204BAB0: ; 0x0204BAB0 push {r3, lr} ldr r0, _0204BAC0 ; =0x021C5A1C bl FUN_0204BBA8 mov r1, #0x6 sub r0, r1, r0 pop {r3, pc} nop _0204BAC0: .word 0x021C5A1C thumb_func_start FUN_0204BAC4 FUN_0204BAC4: ; 0x0204BAC4 ldr r3, _0204BACC ; =FUN_0204BD8C ldr r0, _0204BAD0 ; =0x021C5A1C bx r3 nop _0204BACC: .word FUN_0204BD8C _0204BAD0: .word 0x021C5A1C thumb_func_start FUN_0204BAD4 FUN_0204BAD4: ; 0x0204BAD4 ldr r3, _0204BADC ; =0x0204BE11 ldr r0, _0204BAE0 ; =0x021C5A1C bx r3 nop _0204BADC: .word 0x0204BE11 _0204BAE0: .word 0x021C5A1C thumb_func_start FUN_0204BAE4 FUN_0204BAE4: ; 0x0204BAE4 ldr r3, _0204BAEC ; =FUN_0204BDA0 ldr r0, _0204BAF0 ; =0x021C5A1C bx r3 nop _0204BAEC: .word FUN_0204BDA0 _0204BAF0: .word 0x021C5A1C thumb_func_start FUN_0204BAF4 FUN_0204BAF4: ; 0x0204BAF4 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 beq _0204BB04 ldr r0, _0204BB1C ; =0x000001ED cmp r5, r0 bls _0204BB08 _0204BB04: bl ErrorHandling _0204BB08: mov r3, #0x6 add r0, r4, #0x0 sub r4, r5, #0x1 str r3, [sp, #0x0] mov r1, #0x83 mov r2, #0x0 mul r3, r4 bl FUN_02006548 pop {r3-r5, pc} .balign 4 _0204BB1C: .word 0x000001ED thumb_func_start FUN_0204BB20 FUN_0204BB20: ; 0x0204BB20 push {r3-r7, lr} sub sp, #0x10 ldr r0, [r0, #0xc] str r1, [sp, #0x0] bl FUN_02022528 str r0, [sp, #0x4] mov r0, #0x4 bl FUN_020669C0 ldr r5, [sp, #0x0] add r4, r0, #0x0 mov r6, #0x0 add r7, sp, #0x8 _0204BB3C: ldr r0, [sp, #0x0] add r2, r4, #0x0 add r1, r0, r6 add r1, #0x30 mov r0, #0x0 strb r0, [r1, #0x0] ldr r0, [sp, #0x4] add r1, r6, #0x0 bl FUN_0202BFD8 add r0, r4, #0x0 mov r1, #0x5 mov r2, #0x0 bl FUN_020671BC lsl r0, r0, #0x10 lsr r0, r0, #0x10 strh r0, [r5, #0x0] add r1, sp, #0x8 bl FUN_0204BAF4 ldrb r0, [r7, #0x0] cmp r0, #0x0 beq _0204BB6E b _0204BB72 _0204BB6E: ldrb r0, [r7, #0x1] add r0, r0, #0x4 _0204BB72: strb r0, [r5, #0x2] ldrb r0, [r7, #0x3] mov r1, #0xb0 mov r2, #0x0 strb r0, [r5, #0x3] ldrb r0, [r7, #0x2] strh r0, [r5, #0x4] add r0, r4, #0x0 bl FUN_020671BC strb r0, [r5, #0x6] add r0, r4, #0x0 mov r1, #0xb1 mov r2, #0x0 bl FUN_020671BC strb r0, [r5, #0x7] add r6, r6, #0x1 add r5, #0x8 cmp r6, #0x6 blt _0204BB3C add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x10 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0204BBA8 FUN_0204BBA8: ; 0x0204BBA8 mov r3, #0x0 add r2, r3, #0x0 _0204BBAC: add r1, r0, r2 add r1, #0x30 ldrb r1, [r1, #0x0] cmp r1, #0x0 beq _0204BBB8 add r3, r3, #0x1 _0204BBB8: add r2, r2, #0x1 cmp r2, #0x6 blt _0204BBAC add r0, r3, #0x0 bx lr .balign 4 thumb_func_start FUN_0204BBC4 FUN_0204BBC4: ; 0x0204BBC4 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_0201B9EC ldr r1, _0204BBE4 ; =0x0000199A blx _s32_div_f lsl r0, r0, #0x10 lsr r5, r0, #0x10 cmp r5, #0xa blo _0204BBDE bl ErrorHandling _0204BBDE: add r0, r5, #0x5 str r0, [r4, #0x38] pop {r3-r5, pc} .balign 4 _0204BBE4: .word 0x0000199A thumb_func_start FUN_0204BBE8 FUN_0204BBE8: ; 0x0204BBE8 push {r3, lr} ldr r1, [r0, #0x38] sub r1, r1, #0x1 str r1, [r0, #0x38] bne _0204BBFA bl FUN_0204BBC4 mov r0, #0x1 pop {r3, pc} _0204BBFA: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0204BC00 FUN_0204BC00: ; 0x0204BC00 push {r4-r6, lr} add r5, r1, #0x0 add r6, r2, #0x0 bl FUN_0204A6E0 add r4, r0, #0x0 cmp r5, #0x20 blt _0204BC14 mov r5, #0x1 b _0204BC16 _0204BC14: mov r5, #0x0 _0204BC16: cmp r6, #0x20 bge _0204BC1E mov r0, #0x0 b _0204BC20 _0204BC1E: mov r0, #0x2 _0204BC20: add r5, r5, r0 lsl r0, r4, #0x18 lsr r0, r0, #0x18 bl FUN_0205478C cmp r0, #0x0 beq _0204BC32 add r0, r5, #0x1 pop {r4-r6, pc} _0204BC32: lsl r0, r4, #0x18 lsr r0, r0, #0x18 bl FUN_0205481C cmp r0, #0x0 beq _0204BC42 add r0, r5, #0x5 pop {r4-r6, pc} _0204BC42: mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0204BC48 FUN_0204BC48: ; 0x0204BC48 push {r3-r7, lr} add r5, r1, #0x0 add r1, r2, #0x0 add r2, r3, #0x0 mov r6, #0x0 bl FUN_0204BC00 add r7, r0, #0x0 bne _0204BC5E add r0, r6, #0x0 pop {r3-r7, pc} _0204BC5E: add r0, r6, #0x0 add r1, r5, #0x0 _0204BC62: add r2, r5, r0 add r2, #0x30 ldrb r2, [r2, #0x0] cmp r2, #0x0 bne _0204BC76 ldrb r2, [r1, #0x2] cmp r7, r2 bne _0204BC76 ldrb r2, [r1, #0x3] add r6, r6, r2 _0204BC76: add r0, r0, #0x1 add r1, #0x8 cmp r0, #0x6 blt _0204BC62 cmp r6, #0x0 bne _0204BC86 mov r0, #0x0 pop {r3-r7, pc} _0204BC86: add r0, r6, #0x0 add r0, #0x14 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bne _0204BC94 bl ErrorHandling _0204BC94: add r0, r6, #0x0 add r0, #0x14 lsl r0, r0, #0x10 lsr r0, r0, #0x10 cmp r0, #0x1 bhi _0204BCA4 mov r4, #0x0 b _0204BCD8 _0204BCA4: bl FUN_0201B9EC add r1, r6, #0x0 add r1, #0x14 add r4, r0, #0x0 lsl r1, r1, #0x10 ldr r0, _0204BD14 ; =0x0000FFFF lsr r1, r1, #0x10 blx _s32_div_f add r1, r0, #0x0 add r1, r1, #0x1 lsl r1, r1, #0x10 add r0, r4, #0x0 lsr r1, r1, #0x10 blx _s32_div_f lsl r0, r0, #0x10 add r6, #0x14 lsr r4, r0, #0x10 lsl r0, r6, #0x10 lsr r0, r0, #0x10 cmp r4, r0 blo _0204BCD8 bl ErrorHandling _0204BCD8: cmp r4, #0x14 bge _0204BCE0 mov r0, #0x0 pop {r3-r7, pc} _0204BCE0: sub r4, #0x14 mov r1, #0x0 add r0, r5, #0x0 _0204BCE6: add r2, r5, r1 add r2, #0x30 ldrb r2, [r2, #0x0] cmp r2, #0x0 bne _0204BD04 ldrb r2, [r0, #0x2] cmp r7, r2 bne _0204BD04 ldrb r2, [r0, #0x3] cmp r4, r2 bge _0204BD02 str r1, [r5, #0x3c] mov r0, #0x1 pop {r3-r7, pc} _0204BD02: sub r4, r4, r2 _0204BD04: add r1, r1, #0x1 add r0, #0x8 cmp r1, #0x6 blt _0204BCE6 bl ErrorHandling mov r0, #0x0 pop {r3-r7, pc} .balign 4 _0204BD14: .word 0x0000FFFF thumb_func_start FUN_0204BD18 FUN_0204BD18: ; 0x0204BD18 push {r4, lr} ldr r0, [r1, #0x14] add r4, r2, #0x0 cmp r0, #0x4 beq _0204BD28 cmp r0, #0x5 beq _0204BD3E b _0204BD3A _0204BD28: add r0, r4, #0x0 bl FUN_0204BBA8 add r1, r0, #0x1 ldr r0, [r4, #0x3c] add r0, r4, r0 add r0, #0x30 strb r1, [r0, #0x0] pop {r4, pc} _0204BD3A: bl ErrorHandling _0204BD3E: pop {r4, pc} thumb_func_start FUN_0204BD40 FUN_0204BD40: ; 0x0204BD40 push {r3-r7, lr} add r5, r0, #0x0 mov r0, #0x20 add r6, r1, #0x0 bl FUN_020669C0 add r4, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_02022528 str r0, [sp, #0x0] add r0, r5, #0x0 bl FUN_0204BAB0 add r1, r0, #0x0 mov r0, #0xb bl FUN_02047800 add r1, r5, #0x0 add r7, r0, #0x0 bl FUN_02047BB0 ldr r0, [sp, #0x0] ldr r1, [r6, #0x3c] add r2, r4, #0x0 bl FUN_0202BFD8 add r0, r7, #0x0 add r1, r4, #0x0 mov r2, #0x1 bl FUN_020479FC add r0, r4, #0x0 bl FUN_02016A18 add r0, r7, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0204BD8C FUN_0204BD8C: ; 0x0204BD8C mov r3, #0x0 add r2, r3, #0x0 _0204BD90: ldrh r1, [r0, #0x4] add r2, r2, #0x1 add r0, #0x8 add r3, r3, r1 cmp r2, #0x6 blt _0204BD90 add r0, r3, #0x0 bx lr thumb_func_start FUN_0204BDA0 FUN_0204BDA0: ; 0x0204BDA0 push {r4-r7} mov r3, #0x0 add r5, r0, #0x0 add r4, r3, #0x0 mov r0, #0x1 _0204BDAA: mov r1, #0x0 _0204BDAC: add r2, r5, r1 add r2, #0x30 ldrb r2, [r2, #0x0] cmp r0, r2 bne _0204BDEC lsl r1, r1, #0x3 add r2, r5, r1 ldrb r1, [r2, #0x6] ldrb r2, [r2, #0x7] cmp r0, #0x1 beq _0204BDD8 mov r6, r12 cmp r6, r1 beq _0204BDD8 mov r6, r12 cmp r6, r2 beq _0204BDD8 cmp r7, r1 beq _0204BDD8 cmp r7, r2 beq _0204BDD8 add r4, #0xc8 _0204BDD8: mov r6, #0x1 mov r12, r1 lsl r6, r1 add r1, r3, #0x0 mov r3, #0x1 lsl r3, r2 orr r1, r6 add r7, r2, #0x0 orr r3, r1 b _0204BDF2 _0204BDEC: add r1, r1, #0x1 cmp r1, #0x6 blt _0204BDAC _0204BDF2: add r0, r0, #0x1 cmp r0, #0x7 blt _0204BDAA cmp r3, #0x0 beq _0204BE0A mov r0, #0x1 _0204BDFE: add r1, r3, #0x0 tst r1, r0 beq _0204BE06 add r4, #0x32 _0204BE06: lsr r3, r3, #0x1 bne _0204BDFE _0204BE0A: add r0, r4, #0x0 pop {r4-r7} bx lr thumb_func_start FUN_0204BE10 FUN_0204BE10: ; 0x0204BE10 ldr r0, [r0, #0x48] bx lr thumb_func_start FUN_0204BE14 FUN_0204BE14: ; 0x0204BE14 mov r0, #0xe8 bx lr thumb_func_start FUN_0204BE18 FUN_0204BE18: ; 0x0204BE18 push {r3-r5, lr} mov r2, #0x0 add r3, r2, #0x0 _0204BE1E: add r1, r0, r2 add r2, r2, #0x1 strb r3, [r1, #0x3] cmp r2, #0x20 blt _0204BE1E strb r3, [r0, #0x1] strb r3, [r0, #0x2] ldrb r1, [r0, #0x0] mov r2, #0x1 bic r1, r2 strb r1, [r0, #0x0] ldrb r4, [r0, #0x0] mov r1, #0x38 bic r4, r1 strb r4, [r0, #0x0] ldrb r4, [r0, #0x0] mov r1, #0x2 bic r4, r1 strb r4, [r0, #0x0] str r3, [r0, #0x24] ldrh r1, [r0, #0x28] bic r1, r2 strh r1, [r0, #0x28] ldrh r2, [r0, #0x28] mov r1, #0x3e bic r2, r1 strh r2, [r0, #0x28] ldrh r2, [r0, #0x28] ldr r1, _0204BEB0 ; =0xFFFFF03F and r1, r2 strh r1, [r0, #0x28] add r1, r0, #0x0 mov r2, #0x1 add r1, #0xa8 strb r2, [r1, #0x0] add r1, r0, #0x0 add r1, #0xa4 str r3, [r1, #0x0] ldr r1, _0204BEB4 ; =0x020F486C add r2, r0, #0x0 _0204BE6E: ldrb r5, [r1, #0x0] add r4, r2, #0x0 add r4, #0xa9 strb r5, [r4, #0x0] add r4, r2, #0x0 ldrb r5, [r1, #0x1] add r4, #0xaa add r3, r3, #0x1 strb r5, [r4, #0x0] add r1, r1, #0x2 add r2, r2, #0x2 cmp r3, #0x6 blt _0204BE6E mov r4, #0x0 add r3, r0, #0x0 add r1, r4, #0x0 _0204BE8E: add r2, r3, #0x0 add r2, #0xb6 strh r1, [r2, #0x0] add r2, r3, #0x0 add r2, #0xb8 add r4, r4, #0x1 add r3, r3, #0x4 strh r1, [r2, #0x0] cmp r4, #0xc blt _0204BE8E ldrb r3, [r0, #0x0] mov r2, #0x4 bic r3, r2 strb r3, [r0, #0x0] bl FUN_0204BED8 pop {r3-r5, pc} .balign 4 _0204BEB0: .word 0xFFFFF03F _0204BEB4: .word 0x020F486C thumb_func_start FUN_0204BEB8 FUN_0204BEB8: ; 0x0204BEB8 ldrb r2, [r0, #0x0] mov r1, #0x1 bic r2, r1 mov r1, #0x1 orr r1, r2 strb r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_0204BEC8 FUN_0204BEC8: ; 0x0204BEC8 ldrb r0, [r0, #0x0] lsl r0, r0, #0x1f lsr r0, r0, #0x1f bx lr thumb_func_start FUN_0204BED0 FUN_0204BED0: ; 0x0204BED0 add r0, r0, r1 ldrb r0, [r0, #0x3] bx lr .balign 4 thumb_func_start FUN_0204BED8 FUN_0204BED8: ; 0x0204BED8 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bmi _0204BEE4 cmp r4, #0x19 blt _0204BEE8 _0204BEE4: bl ErrorHandling _0204BEE8: mov r0, #0x1 ldrsb r1, [r5, r0] cmp r1, #0x19 bge _0204BF10 add r2, r5, #0x3 ldrb r1, [r2, r4] cmp r1, #0x0 bne _0204BF10 strb r0, [r2, r4] ldrsb r0, [r5, r0] add r0, r0, #0x1 strb r0, [r5, #0x1] cmp r4, #0x3 bne _0204BF0C ldrb r1, [r5, #0x0] mov r0, #0x2 orr r0, r1 strb r0, [r5, #0x0] _0204BF0C: mov r0, #0x1 pop {r3-r5, pc} _0204BF10: mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0204BF14 FUN_0204BF14: ; 0x0204BF14 mov r1, #0x2 ldrsb r0, [r0, r1] bx lr .balign 4 thumb_func_start FUN_0204BF1C FUN_0204BF1C: ; 0x0204BF1C push {r3-r4} mov r1, #0x2 ldrsb r3, [r0, r1] mov r2, #0x0 add r4, r3, #0x0 _0204BF26: add r3, r3, #0x1 cmp r3, #0x19 blt _0204BF2E add r3, r2, #0x0 _0204BF2E: cmp r3, r4 beq _0204BF3A add r1, r0, r3 ldrb r1, [r1, #0x3] cmp r1, #0x0 beq _0204BF26 _0204BF3A: mov r1, #0x2 strb r3, [r0, #0x2] ldrsb r0, [r0, r1] pop {r3-r4} bx lr thumb_func_start FUN_0204BF44 FUN_0204BF44: ; 0x0204BF44 push {r4, lr} add r4, r0, #0x0 bne _0204BF4E bl ErrorHandling _0204BF4E: ldrb r0, [r4, #0x0] lsl r0, r0, #0x1a lsr r0, r0, #0x1d pop {r4, pc} .balign 4 thumb_func_start FUN_0204BF58 FUN_0204BF58: ; 0x0204BF58 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _0204BF66 bl ErrorHandling _0204BF66: cmp r4, #0x8 blo _0204BF6E bl ErrorHandling _0204BF6E: ldrb r1, [r5, #0x0] mov r0, #0x38 bic r1, r0 lsl r0, r4, #0x18 lsr r0, r0, #0x18 lsl r0, r0, #0x1d lsr r0, r0, #0x1a orr r0, r1 strb r0, [r5, #0x0] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0204BF84 FUN_0204BF84: ; 0x0204BF84 ldr r0, [r0, #0x24] bx lr thumb_func_start FUN_0204BF88 FUN_0204BF88: ; 0x0204BF88 ldrb r2, [r0, #0x0] lsl r2, r2, #0x1e lsr r2, r2, #0x1f beq _0204BF92 str r1, [r0, #0x24] _0204BF92: bx lr thumb_func_start FUN_0204BF94 FUN_0204BF94: ; 0x0204BF94 ldrh r0, [r0, #0x28] lsl r0, r0, #0x1f lsr r0, r0, #0x1f bx lr thumb_func_start FUN_0204BF9C FUN_0204BF9C: ; 0x0204BF9C ldrh r3, [r0, #0x28] lsl r3, r3, #0x1a lsr r3, r3, #0x1b str r3, [r1, #0x0] ldrh r0, [r0, #0x28] lsl r0, r0, #0x14 lsr r0, r0, #0x1a str r0, [r2, #0x0] bx lr .balign 4 thumb_func_start FUN_0204BFB0 FUN_0204BFB0: ; 0x0204BFB0 push {r4-r5} ldrh r4, [r0, #0x28] mov r5, #0x1 lsl r1, r1, #0x10 bic r4, r5 lsr r5, r1, #0x10 mov r1, #0x1 and r1, r5 orr r1, r4 strh r1, [r0, #0x28] lsl r2, r2, #0x10 lsr r2, r2, #0x10 lsl r2, r2, #0x1b ldrh r1, [r0, #0x28] mov r4, #0x3e lsr r2, r2, #0x1a bic r1, r4 orr r1, r2 strh r1, [r0, #0x28] ldrh r2, [r0, #0x28] ldr r1, _0204BFEC ; =0xFFFFF03F and r2, r1 lsl r1, r3, #0x10 lsr r1, r1, #0x10 lsl r1, r1, #0x1a lsr r1, r1, #0x14 orr r1, r2 strh r1, [r0, #0x28] pop {r4-r5} bx lr .balign 4 _0204BFEC: .word 0xFFFFF03F thumb_func_start FUN_0204BFF0 FUN_0204BFF0: ; 0x0204BFF0 push {r3-r4} add r3, r0, #0x0 add r3, #0xa8 ldrb r3, [r3, #0x0] cmp r3, r1 bne _0204C016 add r1, r0, #0x0 add r1, #0xa4 ldr r4, [r1, #0x0] mov r3, #0x1 sub r1, r2, #0x1 add r2, r3, #0x0 lsl r2, r1 add r1, r4, #0x0 orr r1, r2 add r0, #0xa4 str r1, [r0, #0x0] pop {r3-r4} bx lr _0204C016: add r3, r0, #0x0 add r3, #0xa8 strb r1, [r3, #0x0] mov r3, #0x1 sub r1, r2, #0x1 add r2, r3, #0x0 lsl r2, r1 add r0, #0xa4 str r2, [r0, #0x0] pop {r3-r4} bx lr thumb_func_start FUN_0204C02C FUN_0204C02C: ; 0x0204C02C push {r3-r4} add r3, r0, #0x0 add r3, #0xa8 ldrb r3, [r3, #0x0] cmp r3, r1 bne _0204C052 add r1, r0, #0x0 add r1, #0xa4 ldr r4, [r1, #0x0] mov r3, #0x1 sub r1, r2, #0x1 add r2, r3, #0x0 lsl r2, r1 mvn r1, r2 and r1, r4 add r0, #0xa4 str r1, [r0, #0x0] pop {r3-r4} bx lr _0204C052: add r2, r0, #0x0 add r2, #0xa8 strb r1, [r2, #0x0] mov r1, #0x0 add r0, #0xa4 str r1, [r0, #0x0] pop {r3-r4} bx lr .balign 4 thumb_func_start FUN_0204C064 FUN_0204C064: ; 0x0204C064 add r3, r0, #0x0 add r3, #0xa8 ldrb r3, [r3, #0x0] cmp r3, r1 bne _0204C07C add r0, #0xa4 ldr r1, [r0, #0x0] sub r0, r2, #0x1 lsr r1, r0 mov r0, #0x1 and r0, r1 bx lr _0204C07C: mov r0, #0x0 bx lr thumb_func_start FUN_0204C080 FUN_0204C080: ; 0x0204C080 push {r3-r7, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r6, r2, #0x0 add r7, r3, #0x0 cmp r4, #0x6 blt _0204C092 bl ErrorHandling _0204C092: lsl r1, r4, #0x1 add r0, r5, r1 add r0, #0xa9 strb r6, [r0, #0x0] add r0, r5, r1 add r0, #0xaa strb r7, [r0, #0x0] pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0204C0A4 FUN_0204C0A4: ; 0x0204C0A4 push {r3-r7, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r6, r2, #0x0 add r7, r3, #0x0 cmp r4, #0x6 blt _0204C0B6 bl ErrorHandling _0204C0B6: lsl r1, r4, #0x1 add r0, r5, r1 add r0, #0xa9 ldrb r0, [r0, #0x0] strb r0, [r6, #0x0] add r0, r5, r1 add r0, #0xaa ldrb r0, [r0, #0x0] strb r0, [r7, #0x0] pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0204C0CC FUN_0204C0CC: ; 0x0204C0CC ldrb r0, [r0, #0x0] lsl r0, r0, #0x1d lsr r0, r0, #0x1f bx lr thumb_func_start FUN_0204C0D4 FUN_0204C0D4: ; 0x0204C0D4 push {r3, lr} ldrb r2, [r0, #0x0] lsl r2, r2, #0x1d lsr r2, r2, #0x1f beq _0204C0E6 add r0, #0x2a mov r2, #0x78 blx MI_CpuCopy8 _0204C0E6: pop {r3, pc} thumb_func_start FUN_0204C0E8 FUN_0204C0E8: ; 0x0204C0E8 push {r4, lr} add r4, r0, #0x0 add r0, r1, #0x0 add r1, r4, #0x0 add r1, #0x2a mov r2, #0x78 blx MI_CpuCopy8 ldrb r1, [r4, #0x0] mov r0, #0x4 orr r0, r1 strb r0, [r4, #0x0] pop {r4, pc} .balign 4 thumb_func_start FUN_0204C104 FUN_0204C104: ; 0x0204C104 push {r4-r6, lr} add r5, r0, #0x0 add r6, r1, #0x0 bl FUN_0204C158 cmp r0, #0xc blt _0204C138 mov r0, #0x0 add r1, r5, #0x0 _0204C116: add r2, r1, #0x0 add r2, #0xba ldrh r3, [r2, #0x0] add r2, r1, #0x0 add r2, #0xb6 strh r3, [r2, #0x0] add r2, r1, #0x0 add r2, #0xbc ldrh r3, [r2, #0x0] add r2, r1, #0x0 add r2, #0xb8 add r0, r0, #0x1 add r1, r1, #0x4 strh r3, [r2, #0x0] cmp r0, #0xb blt _0204C116 mov r0, #0xb _0204C138: lsl r4, r0, #0x2 add r0, r6, #0x0 mov r1, #0x5 mov r2, #0x0 bl FUN_020672BC add r1, r5, r4 add r1, #0xb6 strh r0, [r1, #0x0] add r0, r6, #0x0 bl FUN_0206B754 add r1, r5, r4 add r1, #0xb8 strh r0, [r1, #0x0] pop {r4-r6, pc} thumb_func_start FUN_0204C158 FUN_0204C158: ; 0x0204C158 mov r2, #0x0 _0204C15A: add r1, r0, #0x0 add r1, #0xb6 ldrh r1, [r1, #0x0] cmp r1, #0x0 bne _0204C168 add r0, r2, #0x0 bx lr _0204C168: add r2, r2, #0x1 add r0, r0, #0x4 cmp r2, #0xc blt _0204C15A add r0, r2, #0x0 bx lr thumb_func_start FUN_0204C174 FUN_0204C174: ; 0x0204C174 push {r3-r7, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r7, r2, #0x0 str r3, [sp, #0x0] cmp r4, #0xc blt _0204C186 bl ErrorHandling _0204C186: add r6, r5, #0x0 lsl r4, r4, #0x2 add r6, #0xb6 ldrh r0, [r6, r4] cmp r0, #0x0 bne _0204C196 bl ErrorHandling _0204C196: ldrh r0, [r6, r4] str r0, [r7, #0x0] add r0, r5, r4 add r0, #0xb8 ldrh r1, [r0, #0x0] ldr r0, [sp, #0x0] str r1, [r0, #0x0] pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0204C1A8 FUN_0204C1A8: ; 0x0204C1A8 ldr r3, _0204C1B0 ; =FUN_02022610 mov r1, #0x5 bx r3 nop _0204C1B0: .word FUN_02022610 thumb_func_start FUN_0204C1B4 FUN_0204C1B4: ; 0x0204C1B4 push {r3-r7, lr} add r7, r0, #0x0 add r5, r1, #0x0 ldr r0, [sp, #0x24] mov r1, #0x20 add r4, r2, #0x0 add r6, r3, #0x0 bl FUN_02016998 add r2, r0, #0x0 str r5, [r2, #0x4] str r4, [r2, #0x8] str r6, [r2, #0xc] add r0, sp, #0x8 ldrh r0, [r0, #0x10] ldr r1, _0204C1F0 ; =FUN_0204C1F4 strh r0, [r2, #0x10] ldr r0, [sp, #0x1c] str r0, [r2, #0x14] ldr r0, [sp, #0x20] str r0, [r2, #0x18] ldr r0, [sp, #0x24] str r0, [r2, #0x1c] mov r0, #0x0 str r0, [r2, #0x0] add r0, r7, #0x0 bl FUN_0204640C pop {r3-r7, pc} nop _0204C1F0: .word FUN_0204C1F4 thumb_func_start FUN_0204C1F4 FUN_0204C1F4: ; 0x0204C1F4 push {r4-r5, lr} sub sp, #0xc add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x0 beq _0204C214 cmp r0, #0x1 beq _0204C23C b _0204C258 _0204C214: ldr r0, [r5, #0x4] ldr r0, [r0, #0x1c] bl FUN_021F4608 ldr r0, [r4, #0x14] str r0, [sp, #0x0] ldr r0, [r4, #0x18] str r0, [sp, #0x4] ldr r0, [r4, #0x1c] str r0, [sp, #0x8] ldrh r3, [r4, #0x10] ldr r0, [r4, #0x4] ldr r1, [r4, #0x8] ldr r2, [r4, #0xc] bl FUN_0200E1D0 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _0204C258 _0204C23C: bl FUN_0200E308 cmp r0, #0x0 beq _0204C258 ldr r0, [r5, #0x4] ldr r0, [r0, #0x1c] bl FUN_021F45E8 add r0, r4, #0x0 bl FUN_02016A18 add sp, #0xc mov r0, #0x1 pop {r4-r5, pc} _0204C258: mov r0, #0x0 add sp, #0xc pop {r4-r5, pc} .balign 4 thumb_func_start FUN_0204C260 FUN_0204C260: ; 0x0204C260 push {r3-r7, lr} add r7, r0, #0x0 add r5, r1, #0x0 mov r0, #0xb mov r1, #0x24 add r4, r2, #0x0 add r6, r3, #0x0 bl FUN_020169D8 add r2, r0, #0x0 mov r0, #0x0 str r0, [r2, #0x0] str r0, [r2, #0x4] str r5, [r2, #0x8] str r4, [r2, #0xc] ldr r0, [sp, #0x18] str r6, [r2, #0x10] str r0, [r2, #0x14] ldr r0, [sp, #0x1c] ldr r1, _0204C298 ; =FUN_0204C380 str r0, [r2, #0x18] ldr r0, [sp, #0x20] str r0, [r2, #0x20] add r0, r7, #0x0 bl FUN_020463CC pop {r3-r7, pc} nop _0204C298: .word FUN_0204C380 thumb_func_start FUN_0204C29C FUN_0204C29C: ; 0x0204C29C push {r4-r7, lr} sub sp, #0xc add r7, r0, #0x0 add r5, r1, #0x0 mov r0, #0xb mov r1, #0x24 str r2, [sp, #0x0] str r3, [sp, #0x4] bl FUN_020169D8 add r6, r0, #0x0 mov r4, #0x0 str r4, [r6, #0x0] str r4, [r6, #0x4] ldr r0, [sp, #0x0] str r5, [r6, #0x8] str r0, [r6, #0xc] ldr r0, [sp, #0x4] str r0, [r6, #0x10] ldr r0, [sp, #0x20] str r0, [r6, #0x14] ldr r0, [sp, #0x24] str r0, [r6, #0x18] ldr r0, [r7, #0x1c] ldr r0, [r0, #0x0] str r0, [sp, #0x8] bl FUN_02034930 cmp r0, #0x0 beq _0204C308 add r0, r5, #0x0 bl FUN_02034930 cmp r0, #0x0 beq _0204C2E6 mov r4, #0x6 b _0204C36A _0204C2E6: add r0, r5, #0x0 bl FUN_02034964 cmp r0, #0x0 beq _0204C2F4 mov r4, #0x5 b _0204C36A _0204C2F4: add r0, r5, #0x0 bl FUN_02034944 cmp r0, #0x0 beq _0204C302 mov r4, #0x6 b _0204C36A _0204C302: bl ErrorHandling b _0204C36A _0204C308: ldr r0, [sp, #0x8] bl FUN_02034964 cmp r0, #0x0 beq _0204C334 add r0, r5, #0x0 bl FUN_02034930 cmp r0, #0x0 beq _0204C320 mov r4, #0x4 b _0204C36A _0204C320: add r0, r5, #0x0 bl FUN_02034944 cmp r0, #0x0 beq _0204C32E mov r4, #0x6 b _0204C36A _0204C32E: bl ErrorHandling b _0204C36A _0204C334: ldr r0, [sp, #0x8] bl FUN_02034944 cmp r0, #0x0 beq _0204C366 add r0, r5, #0x0 bl FUN_02034964 cmp r0, #0x0 bne _0204C36A add r0, r5, #0x0 bl FUN_02034944 cmp r0, #0x0 beq _0204C356 mov r4, #0x6 b _0204C36A _0204C356: add r0, r5, #0x0 bl FUN_02034930 cmp r0, #0x0 bne _0204C36A bl ErrorHandling b _0204C36A _0204C366: bl ErrorHandling _0204C36A: ldr r1, _0204C37C ; =FUN_0204C380 add r0, r7, #0x0 add r2, r6, #0x0 str r4, [r6, #0x20] bl FUN_020463CC add sp, #0xc pop {r4-r7, pc} nop _0204C37C: .word FUN_0204C380 thumb_func_start FUN_0204C380 FUN_0204C380: ; 0x0204C380 push {r3-r7, lr} add r5, r0, #0x0 bl FUN_02046528 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_0204652C add r4, r0, #0x0 add r6, r4, #0x0 ldr r1, [r4, #0x0] add r6, #0x8 cmp r1, #0x6 bhi _0204C458 add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0204C3A8: ; jump table (using 16-bit offset) .short _0204C3B6 - _0204C3A8 - 2; case 0 .short _0204C3DA - _0204C3A8 - 2; case 1 .short _0204C3E8 - _0204C3A8 - 2; case 2 .short _0204C3F8 - _0204C3A8 - 2; case 3 .short _0204C406 - _0204C3A8 - 2; case 4 .short _0204C41E - _0204C3A8 - 2; case 5 .short _0204C450 - _0204C3A8 - 2; case 6 _0204C3B6: mov r0, #0x0 str r0, [r4, #0x4] ldr r1, [r6, #0x0] add r0, r7, #0x0 bl FUN_0204AD60 ldr r1, [r4, #0x20] add r0, r5, #0x0 lsl r2, r1, #0x2 ldr r1, _0204C45C ; =0x020F4894 ldr r1, [r1, r2] add r2, r4, #0x0 bl FUN_0204640C ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _0204C458 _0204C3DA: add r0, r5, #0x0 bl FUN_0204AF3C ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _0204C458 _0204C3E8: add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02049160 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _0204C458 _0204C3F8: add r0, r5, #0x0 bl FUN_0204AF84 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _0204C458 _0204C406: ldr r0, [r4, #0x20] lsl r1, r0, #0x2 ldr r0, _0204C460 ; =0x020F48B0 ldr r1, [r0, r1] cmp r1, #0x0 beq _0204C416 add r0, r7, #0x0 blx r1 _0204C416: ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _0204C458 _0204C41E: bl FUN_02005404 cmp r0, #0x0 bne _0204C458 ldr r1, [r6, #0x0] add r0, r7, #0x0 bl FUN_0204AD8C add r0, r7, #0x0 bl FUN_021E331C mov r0, #0x0 str r0, [r4, #0x4] ldr r1, [r4, #0x20] add r0, r5, #0x0 lsl r2, r1, #0x2 ldr r1, _0204C464 ; =0x020F4878 ldr r1, [r1, r2] add r2, r4, #0x0 bl FUN_0204640C ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _0204C458 _0204C450: bl FUN_02016A18 mov r0, #0x1 pop {r3-r7, pc} _0204C458: mov r0, #0x0 pop {r3-r7, pc} .balign 4 _0204C45C: .word 0x020F4894 _0204C460: .word 0x020F48B0 _0204C464: .word 0x020F4878 thumb_func_start FUN_0204C468 FUN_0204C468: ; 0x0204C468 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02046528 add r0, r5, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldr r0, [r4, #0x4] cmp r0, #0x0 beq _0204C484 cmp r0, #0x1 beq _0204C498 b _0204C49C _0204C484: ldr r0, _0204C4A0 ; =0x00000603 bl FUN_020054C8 add r0, r5, #0x0 bl FUN_0204AFC8 ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _0204C49C _0204C498: mov r0, #0x1 pop {r3-r5, pc} _0204C49C: mov r0, #0x0 pop {r3-r5, pc} .balign 4 _0204C4A0: .word 0x00000603 thumb_func_start FUN_0204C4A4 FUN_0204C4A4: ; 0x0204C4A4 push {r4-r6, lr} add r6, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r6, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldr r0, [r4, #0x4] cmp r0, #0x3 bhi _0204C522 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0204C4C8: ; jump table (using 16-bit offset) .short _0204C4D0 - _0204C4C8 - 2; case 0 .short _0204C4F6 - _0204C4C8 - 2; case 1 .short _0204C510 - _0204C4C8 - 2; case 2 .short _0204C51E - _0204C4C8 - 2; case 3 _0204C4D0: bl FUN_021DA5B8 str r0, [r4, #0x1c] ldr r0, [r5, #0x38] bl FUN_02055320 add r6, r0, #0x0 ldr r0, [r5, #0x38] bl FUN_0205532C add r1, r0, #0x0 ldr r2, [r4, #0x1c] add r0, r6, #0x0 bl FUN_021DA5D0 ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _0204C522 _0204C4F6: ldr r1, [r4, #0x1c] add r0, r5, #0x0 bl FUN_021DA5D8 cmp r0, #0x0 beq _0204C522 ldr r0, [r4, #0x1c] bl FUN_021DA5C8 ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _0204C522 _0204C510: add r0, r6, #0x0 bl FUN_0204AFC8 ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _0204C522 _0204C51E: mov r0, #0x1 pop {r4-r6, pc} _0204C522: mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0204C528 FUN_0204C528: ; 0x0204C528 push {r4-r6, lr} add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldr r0, [r4, #0x4] cmp r0, #0x0 beq _0204C54A cmp r0, #0x1 beq _0204C570 cmp r0, #0x2 beq _0204C598 b _0204C59C _0204C54A: bl FUN_021DA5B8 str r0, [r4, #0x1c] ldr r0, [r5, #0x38] bl FUN_02055320 add r6, r0, #0x0 ldr r0, [r5, #0x38] bl FUN_0205532C add r1, r0, #0x0 ldr r2, [r4, #0x1c] add r0, r6, #0x0 bl FUN_021DA5D0 ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _0204C59C _0204C570: ldr r0, [r5, #0x38] ldr r6, [r4, #0x1c] bl FUN_020552F8 add r2, r0, #0x0 lsl r2, r2, #0x18 add r0, r5, #0x0 add r1, r6, #0x0 lsr r2, r2, #0x18 bl FUN_021DAC70 cmp r0, #0x0 beq _0204C59C ldr r0, [r4, #0x1c] bl FUN_021DA5C8 ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _0204C59C _0204C598: mov r0, #0x1 pop {r4-r6, pc} _0204C59C: mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_0204C5A0 FUN_0204C5A0: ; 0x0204C5A0 push {r4-r6, lr} add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldr r0, [r4, #0x4] cmp r0, #0x3 bhi _0204C63C add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0204C5C4: ; jump table (using 16-bit offset) .short _0204C5CC - _0204C5C4 - 2; case 0 .short _0204C5FE - _0204C5C4 - 2; case 1 .short _0204C61C - _0204C5C4 - 2; case 2 .short _0204C630 - _0204C5C4 - 2; case 3 _0204C5CC: ldr r0, [r5, #0x38] bl FUN_020552F8 add r6, r0, #0x0 ldr r0, [r5, #0x38] bl FUN_020553A0 cmp r6, #0x2 bne _0204C5E6 mov r1, #0xa bl FUN_0205ADDC b _0204C5F6 _0204C5E6: cmp r6, #0x3 bne _0204C5F2 mov r1, #0xb bl FUN_0205ADDC b _0204C5F6 _0204C5F2: bl ErrorHandling _0204C5F6: ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _0204C63C _0204C5FE: ldr r0, [r5, #0x38] bl FUN_020553A0 add r5, r0, #0x0 bl FUN_0205AE28 cmp r0, #0x1 bne _0204C63C add r0, r5, #0x0 bl FUN_0205AE50 ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _0204C63C _0204C61C: ldr r0, _0204C640 ; =0x00000603 bl FUN_020054C8 mov r0, #0x0 bl FUN_021D7CA4 ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _0204C63C _0204C630: bl FUN_0200E308 cmp r0, #0x0 beq _0204C63C mov r0, #0x1 pop {r4-r6, pc} _0204C63C: mov r0, #0x0 pop {r4-r6, pc} .balign 4 _0204C640: .word 0x00000603 thumb_func_start FUN_0204C644 FUN_0204C644: ; 0x0204C644 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02046528 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldr r0, [r6, #0x38] bl FUN_020553A0 ldr r0, [r4, #0x4] cmp r0, #0x0 beq _0204C668 cmp r0, #0x1 beq _0204C67E b _0204C682 _0204C668: bl FUN_021DB030 add r2, r0, #0x0 ldr r1, _0204C688 ; =0x021DB1D1 add r0, r5, #0x0 bl FUN_0204640C ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _0204C682 _0204C67E: mov r0, #0x1 pop {r4-r6, pc} _0204C682: mov r0, #0x0 pop {r4-r6, pc} nop _0204C688: .word 0x021DB1D1 thumb_func_start FUN_0204C68C FUN_0204C68C: ; 0x0204C68C push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02046528 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldr r0, [r6, #0x38] bl FUN_020553A0 ldr r0, [r4, #0x4] cmp r0, #0x0 beq _0204C6B0 cmp r0, #0x1 beq _0204C6C6 b _0204C6CA _0204C6B0: bl FUN_021DB030 add r2, r0, #0x0 ldr r1, _0204C6D0 ; =0x021DB145 add r0, r5, #0x0 bl FUN_0204640C ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _0204C6CA _0204C6C6: mov r0, #0x1 pop {r4-r6, pc} _0204C6CA: mov r0, #0x0 pop {r4-r6, pc} nop _0204C6D0: .word 0x021DB145 thumb_func_start FUN_0204C6D4 FUN_0204C6D4: ; 0x0204C6D4 push {r3-r7, lr} add r6, r0, #0x0 bl FUN_02046528 add r4, r0, #0x0 add r0, r6, #0x0 bl FUN_0204652C add r5, r0, #0x0 ldr r0, [r5, #0x4] cmp r0, #0x3 bhi _0204C798 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0204C6F8: ; jump table (using 16-bit offset) .short _0204C700 - _0204C6F8 - 2; case 0 .short _0204C74A - _0204C6F8 - 2; case 1 .short _0204C770 - _0204C6F8 - 2; case 2 .short _0204C794 - _0204C6F8 - 2; case 3 _0204C700: ldr r0, [r4, #0x38] bl FUN_020553A0 add r7, r0, #0x0 ldr r0, [r4, #0x38] bl FUN_02055320 str r0, [sp, #0x0] ldr r0, [r4, #0x38] bl FUN_0205532C add r2, r0, #0x0 ldr r1, [sp, #0x0] add r0, r4, #0x0 bl FUN_0204A6E0 bl FUN_020547B0 cmp r0, #0x0 beq _0204C736 add r0, r7, #0x0 mov r1, #0x1 bl FUN_0205889C mov r0, #0x1 str r0, [r5, #0x4] b _0204C798 _0204C736: bl FUN_021DB030 add r2, r0, #0x0 ldr r1, _0204C79C ; =0x021DB251 add r0, r6, #0x0 bl FUN_0204640C mov r0, #0x3 str r0, [r5, #0x4] b _0204C798 _0204C74A: bl FUN_021DA5B8 str r0, [r5, #0x1c] ldr r0, [r4, #0x38] bl FUN_02055320 add r6, r0, #0x0 ldr r0, [r4, #0x38] bl FUN_0205532C add r1, r0, #0x0 ldr r2, [r5, #0x1c] add r0, r6, #0x0 bl FUN_021DA5D0 ldr r0, [r5, #0x4] add r0, r0, #0x1 str r0, [r5, #0x4] b _0204C798 _0204C770: ldr r5, [r5, #0x1c] add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_021DA7B4 cmp r0, #0x0 beq _0204C798 add r0, r5, #0x0 bl FUN_021DA5C8 ldr r0, [r4, #0x38] bl FUN_020553A0 mov r1, #0x0 bl FUN_0205889C mov r0, #0x1 pop {r3-r7, pc} _0204C794: mov r0, #0x1 pop {r3-r7, pc} _0204C798: mov r0, #0x0 pop {r3-r7, pc} .balign 4 _0204C79C: .word 0x021DB251 thumb_func_start FUN_0204C7A0 FUN_0204C7A0: ; 0x0204C7A0 push {r3-r7, lr} add r6, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r6, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldr r0, [r4, #0x4] cmp r0, #0x0 beq _0204C7BE cmp r0, #0x1 beq _0204C814 b _0204C818 _0204C7BE: ldr r0, [r5, #0x38] bl FUN_020553A0 add r7, r0, #0x0 ldr r0, [r5, #0x38] bl FUN_02055320 str r0, [sp, #0x0] ldr r0, [r5, #0x38] bl FUN_0205532C add r2, r0, #0x0 ldr r1, [sp, #0x0] add r0, r5, #0x0 bl FUN_0204A6E0 bl FUN_020547B0 cmp r0, #0x0 beq _0204C7FE add r0, r7, #0x0 mov r1, #0x1 bl FUN_0205889C mov r0, #0x1 str r0, [r4, #0x4] ldr r1, _0204C81C ; =FUN_0204C6D4 add r0, r6, #0x0 add r2, r4, #0x0 bl FUN_020463EC b _0204C818 _0204C7FE: bl FUN_021DB030 add r2, r0, #0x0 ldr r1, _0204C820 ; =0x021DB381 add r0, r6, #0x0 bl FUN_0204640C ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _0204C818 _0204C814: mov r0, #0x1 pop {r3-r7, pc} _0204C818: mov r0, #0x0 pop {r3-r7, pc} .balign 4 _0204C81C: .word FUN_0204C6D4 _0204C820: .word 0x021DB381 thumb_func_start FUN_0204C824 FUN_0204C824: ; 0x0204C824 push {r4-r6, lr} add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldr r0, [r4, #0x4] cmp r0, #0x0 beq _0204C846 cmp r0, #0x1 beq _0204C86C cmp r0, #0x2 beq _0204C894 b _0204C898 _0204C846: bl FUN_021DA5B8 str r0, [r4, #0x1c] ldr r0, [r5, #0x38] bl FUN_02055320 add r6, r0, #0x0 ldr r0, [r5, #0x38] bl FUN_0205532C add r1, r0, #0x0 ldr r2, [r4, #0x1c] add r0, r6, #0x0 bl FUN_021DA5D0 ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _0204C898 _0204C86C: ldr r0, [r5, #0x38] ldr r6, [r4, #0x1c] bl FUN_020552F8 add r2, r0, #0x0 lsl r2, r2, #0x18 add r0, r5, #0x0 add r1, r6, #0x0 lsr r2, r2, #0x18 bl FUN_021DAAA4 cmp r0, #0x0 beq _0204C898 ldr r0, [r4, #0x1c] bl FUN_021DA5C8 ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _0204C898 _0204C894: mov r0, #0x1 pop {r4-r6, pc} _0204C898: mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_0204C89C FUN_0204C89C: ; 0x0204C89C push {r4-r6, lr} add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldr r0, [r4, #0x4] cmp r0, #0x3 bhi _0204C936 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0204C8C0: ; jump table (using 16-bit offset) .short _0204C8C8 - _0204C8C0 - 2; case 0 .short _0204C904 - _0204C8C0 - 2; case 1 .short _0204C922 - _0204C8C0 - 2; case 2 .short _0204C932 - _0204C8C0 - 2; case 3 _0204C8C8: mov r0, #0x1 bl FUN_021D7CA4 ldr r0, [r5, #0x38] bl FUN_020553A0 add r6, r0, #0x0 ldr r0, [r5, #0x38] bl FUN_020552F8 cmp r0, #0x2 bne _0204C8EA add r0, r6, #0x0 mov r1, #0xa bl FUN_0205ADDC b _0204C8FC _0204C8EA: cmp r0, #0x3 bne _0204C8F8 add r0, r6, #0x0 mov r1, #0xb bl FUN_0205ADDC b _0204C8FC _0204C8F8: bl ErrorHandling _0204C8FC: ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _0204C936 _0204C904: ldr r0, [r5, #0x38] bl FUN_020553A0 add r5, r0, #0x0 bl FUN_0205AE28 cmp r0, #0x1 bne _0204C936 add r0, r5, #0x0 bl FUN_0205AE50 ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _0204C936 _0204C922: bl FUN_0200E308 cmp r0, #0x0 beq _0204C936 ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _0204C936 _0204C932: mov r0, #0x1 pop {r4-r6, pc} _0204C936: mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0204C93C FUN_0204C93C: ; 0x0204C93C push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02046528 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldr r0, [r6, #0x38] bl FUN_020553A0 ldr r0, [r4, #0x4] cmp r0, #0x0 beq _0204C960 cmp r0, #0x1 beq _0204C976 b _0204C97A _0204C960: bl FUN_021DB030 add r2, r0, #0x0 ldr r1, _0204C980 ; =0x021DB041 add r0, r5, #0x0 bl FUN_0204640C ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _0204C97A _0204C976: mov r0, #0x1 pop {r4-r6, pc} _0204C97A: mov r0, #0x0 pop {r4-r6, pc} nop _0204C980: .word 0x021DB041 thumb_func_start FUN_0204C984 FUN_0204C984: ; 0x0204C984 push {r3-r5, lr} sub sp, #0x10 add r5, r0, #0x0 ldr r0, [r5, #0x38] bl FUN_020552F8 add r4, r0, #0x0 ldr r0, [r5, #0x38] add r1, sp, #0x4 bl FUN_02055350 cmp r4, #0x3 bne _0204C9AA mov r0, #0x1 ldr r1, [sp, #0x4] lsl r0, r0, #0x10 sub r0, r1, r0 str r0, [sp, #0x4] b _0204C9B4 _0204C9AA: mov r0, #0x1 ldr r1, [sp, #0x4] lsl r0, r0, #0x10 add r0, r1, r0 str r0, [sp, #0x4] _0204C9B4: mov r0, #0x0 str r0, [sp, #0x0] ldr r1, [sp, #0x8] ldr r2, [sp, #0x4] ldr r3, [sp, #0xc] add r0, r5, #0x0 bl FUN_0204A708 str r0, [sp, #0x8] ldr r0, [r5, #0x38] add r1, sp, #0x4 add r2, r4, #0x0 bl FUN_020554EC ldr r0, [r5, #0x38] bl FUN_02055360 ldr r1, [r5, #0x20] bl FUN_0201EFEC ldr r0, [r5, #0x38] bl FUN_02055360 ldr r1, [r5, #0x20] bl FUN_0201EC68 add sp, #0x10 pop {r3-r5, pc} thumb_func_start FUN_0204C9EC FUN_0204C9EC: ; 0x0204C9EC push {r4-r6, lr} sub sp, #0x10 add r5, r0, #0x0 ldr r0, [r5, #0x38] bl FUN_020552F8 add r4, r0, #0x0 ldr r0, [r5, #0x38] add r1, sp, #0x4 bl FUN_02055350 ldr r0, [r5, #0x38] bl FUN_02055320 add r6, r0, #0x0 ldr r0, [r5, #0x38] bl FUN_0205532C add r2, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_0204A6E0 add r6, r0, #0x0 bl FUN_020548D8 cmp r0, #0x0 beq _0204CA32 mov r0, #0x1 ldr r1, [sp, #0x4] lsl r0, r0, #0x10 add r0, r1, r0 str r0, [sp, #0x4] mov r4, #0x2 b _0204CA48 _0204CA32: add r0, r6, #0x0 bl FUN_020548E4 cmp r0, #0x0 beq _0204CA48 mov r0, #0x1 ldr r1, [sp, #0x4] lsl r0, r0, #0x10 sub r0, r1, r0 str r0, [sp, #0x4] mov r4, #0x3 _0204CA48: mov r0, #0x0 str r0, [sp, #0x0] ldr r1, [sp, #0x8] ldr r2, [sp, #0x4] ldr r3, [sp, #0xc] add r0, r5, #0x0 bl FUN_0204A708 str r0, [sp, #0x8] ldr r0, [r5, #0x38] add r1, sp, #0x4 add r2, r4, #0x0 bl FUN_020554EC ldr r0, [r5, #0x38] bl FUN_02055360 ldr r1, [r5, #0x20] bl FUN_0201EFEC ldr r0, [r5, #0x38] bl FUN_02055360 ldr r1, [r5, #0x20] bl FUN_0201EC68 add sp, #0x10 pop {r4-r6, pc} thumb_func_start FUN_0204CA80 FUN_0204CA80: ; 0x0204CA80 mov r1, #0x1c mul r1, r0 ldr r0, _0204CA8C ; =0x020F48CC ldrb r0, [r0, r1] bx lr nop _0204CA8C: .word 0x020F48CC thumb_func_start FUN_0204CA90 FUN_0204CA90: ; 0x0204CA90 mov r1, #0x1c mul r1, r0 ldr r0, _0204CA9C ; =0x020F48CD ldrb r0, [r0, r1] bx lr nop _0204CA9C: .word 0x020F48CD thumb_func_start FUN_0204CAA0 FUN_0204CAA0: ; 0x0204CAA0 mov r1, #0x1c ldr r2, _0204CAAC ; =0x020F48CC mul r1, r0 add r0, r2, r1 add r0, r0, #0x2 bx lr .balign 4 _0204CAAC: .word 0x020F48CC thumb_func_start FUN_0204CAB0 FUN_0204CAB0: ; 0x0204CAB0 mov r1, #0x1c mul r1, r0 ldr r0, _0204CABC ; =0x020F48D7 ldrb r0, [r0, r1] bx lr nop _0204CABC: .word 0x020F48D7 thumb_func_start FUN_0204CAC0 FUN_0204CAC0: ; 0x0204CAC0 mov r1, #0x1c mul r1, r0 ldr r0, _0204CACC ; =0x020F48D8 ldrb r0, [r0, r1] bx lr nop _0204CACC: .word 0x020F48D8 thumb_func_start FUN_0204CAD0 FUN_0204CAD0: ; 0x0204CAD0 mov r1, #0x1c mul r1, r0 ldr r0, _0204CADC ; =0x020F48D9 ldrb r0, [r0, r1] bx lr nop _0204CADC: .word 0x020F48D9 thumb_func_start FUN_0204CAE0 FUN_0204CAE0: ; 0x0204CAE0 mov r1, #0x1c mul r1, r0 ldr r0, _0204CAEC ; =0x020F48DC ldr r0, [r0, r1] bx lr nop _0204CAEC: .word 0x020F48DC thumb_func_start FUN_0204CAF0 FUN_0204CAF0: ; 0x0204CAF0 mov r1, #0x1c mul r1, r0 ldr r0, _0204CAFC ; =0x020F48E0 ldr r0, [r0, r1] bx lr nop _0204CAFC: .word 0x020F48E0 thumb_func_start FUN_0204CB00 FUN_0204CB00: ; 0x0204CB00 mov r1, #0x1c mul r1, r0 ldr r0, _0204CB0C ; =0x020F48E4 ldrb r0, [r0, r1] bx lr nop _0204CB0C: .word 0x020F48E4 thumb_func_start FUN_0204CB10 FUN_0204CB10: ; 0x0204CB10 mov r1, #0x1c mul r1, r0 ldr r0, _0204CB1C ; =0x020F48E5 ldrb r0, [r0, r1] bx lr nop _0204CB1C: .word 0x020F48E5 thumb_func_start FUN_0204CB20 FUN_0204CB20: ; 0x0204CB20 push {r3-r7, lr} add r4, r1, #0x0 ldr r1, _0204CC34 ; =0x021C5A68 add r5, r2, #0x0 ldr r2, [r1, #0x0] cmp r2, #0x0 beq _0204CB32 mov r0, #0x0 pop {r3-r7, pc} _0204CB32: bne _0204CB40 mov r2, #0xb1 str r0, [r1, #0x0] mov r1, #0x0 lsl r2, r2, #0x2 blx MI_CpuFill8 _0204CB40: ldr r1, _0204CC34 ; =0x021C5A68 ldr r0, _0204CC38 ; =0x000002BE ldr r2, [r1, #0x0] strb r5, [r2, r0] mov r2, #0x0 ldr r0, [r1, #0x0] cmp r5, #0x0 str r2, [r0, #0x4] beq _0204CB6C bl FUN_02244D1C add r1, r0, #0x0 mov r0, #0xf bl FUN_02016998 ldr r1, _0204CC34 ; =0x021C5A68 ldr r2, [r1, #0x0] str r0, [r2, #0x4] ldr r0, [r1, #0x0] ldr r0, [r0, #0x4] bl FUN_02244D20 _0204CB6C: ldr r0, _0204CC34 ; =0x021C5A68 ldr r7, _0204CC3C ; =0x0000FFFF ldr r1, [r0, #0x0] str r4, [r1, #0x54] mov r1, #0x0 add r2, r1, #0x0 add r3, r1, #0x0 _0204CB7A: ldr r4, [r0, #0x0] add r5, r4, r2 mov r4, #0x0 add r5, #0xa6 mvn r4, r4 strb r4, [r5, #0x0] ldr r4, [r0, #0x0] add r4, r4, r2 add r4, #0xa2 strh r7, [r4, #0x0] ldr r4, [r0, #0x0] add r4, r4, r2 add r4, #0xa4 strh r7, [r4, #0x0] ldr r4, [r0, #0x0] add r5, r4, r2 add r5, #0xa7 mov r4, #0x2 strb r4, [r5, #0x0] ldr r4, [r0, #0x0] add r5, r4, r2 mov r4, #0x0 add r5, #0x66 mvn r4, r4 strb r4, [r5, #0x0] ldr r4, [r0, #0x0] add r4, r4, r2 add r4, #0x62 strh r7, [r4, #0x0] ldr r4, [r0, #0x0] add r4, r4, r2 add r4, #0x64 strh r7, [r4, #0x0] ldr r4, [r0, #0x0] add r5, r4, r2 add r5, #0x67 mov r4, #0x2 strb r4, [r5, #0x0] ldr r4, [r0, #0x0] ldr r5, _0204CC40 ; =0x00000102 add r6, r4, r1 mov r4, #0x0 mvn r4, r4 strb r4, [r6, r5] ldr r4, [r0, #0x0] add r2, #0x8 add r5, r4, r1 add r5, #0xe2 mov r4, #0x0 strb r4, [r5, #0x0] ldr r4, [r0, #0x0] add r5, r4, r1 add r5, #0xea mov r4, #0x1 strb r4, [r5, #0x0] ldr r4, [r0, #0x0] add r5, r4, r1 add r5, #0xf2 mov r4, #0x0 strb r4, [r5, #0x0] ldr r4, [r0, #0x0] mov r5, #0xff add r6, r4, r3 add r4, r5, #0x0 add r4, #0x6b add r1, r1, #0x1 add r3, #0x22 strh r5, [r6, r4] cmp r1, #0x8 blt _0204CB7A ldr r2, _0204CC34 ; =0x021C5A68 mov r1, #0xaf ldr r3, [r2, #0x0] lsl r1, r1, #0x2 mov r0, #0x0 strb r0, [r3, r1] ldr r2, [r2, #0x0] add r1, r1, #0x3 strb r0, [r2, r1] ldr r0, _0204CC44 ; =FUN_0204D4F0 mov r1, #0x0 mov r2, #0xc8 bl FUN_0200CA44 ldr r1, _0204CC34 ; =0x021C5A68 ldr r1, [r1, #0x0] str r0, [r1, #0x50] bl FUN_02030FA8 bl FUN_0204CF60 mov r0, #0x1 pop {r3-r7, pc} .balign 4 _0204CC34: .word 0x021C5A68 _0204CC38: .word 0x000002BE _0204CC3C: .word 0x0000FFFF _0204CC40: .word 0x00000102 _0204CC44: .word FUN_0204D4F0 thumb_func_start FUN_0204CC48 FUN_0204CC48: ; 0x0204CC48 push {r3-r7, lr} ldr r4, _0204CC94 ; =0x021C5A68 ldr r0, [r4, #0x0] cmp r0, #0x0 beq _0204CC92 ldr r6, _0204CC98 ; =0x000002BE mov r5, #0x0 mov r7, #0x1 _0204CC58: ldr r0, [r4, #0x0] ldrb r0, [r0, r6] cmp r0, #0x0 beq _0204CC6E lsl r0, r5, #0x18 lsr r0, r0, #0x18 add r1, r7, #0x0 mov r2, #0x0 bl FUN_0204D43C b _0204CC7A _0204CC6E: lsl r0, r5, #0x18 mov r1, #0x1 lsr r0, r0, #0x18 add r2, r1, #0x0 bl FUN_0204D43C _0204CC7A: add r5, r5, #0x1 cmp r5, #0x8 blt _0204CC58 ldr r0, _0204CC94 ; =0x021C5A68 ldr r2, [r0, #0x0] ldr r0, _0204CC98 ; =0x000002BE ldrb r1, [r2, r0] cmp r1, #0x0 beq _0204CC92 mov r1, #0x1 sub r0, r0, #0x1 strb r1, [r2, r0] _0204CC92: pop {r3-r7, pc} .balign 4 _0204CC94: .word 0x021C5A68 _0204CC98: .word 0x000002BE thumb_func_start FUN_0204CC9C FUN_0204CC9C: ; 0x0204CC9C push {r3, lr} ldr r1, _0204CCD8 ; =0x021C5A68 ldr r3, [r1, #0x0] cmp r3, #0x0 beq _0204CCD6 ldr r0, _0204CCDC ; =0x000002BB mov r2, #0x1 strb r2, [r3, r0] ldr r1, [r1, #0x0] mov r2, #0x0 add r0, r0, #0x2 strb r2, [r1, r0] bl FUN_0204CF60 mov r0, #0x1 bl FUN_0204D168 ldr r0, _0204CCD8 ; =0x021C5A68 ldr r0, [r0, #0x0] ldr r0, [r0, #0x54] ldr r0, [r0, #0x38] bl FUN_02055320 ldr r0, _0204CCD8 ; =0x021C5A68 ldr r0, [r0, #0x0] ldr r0, [r0, #0x54] ldr r0, [r0, #0x38] bl FUN_0205532C _0204CCD6: pop {r3, pc} .balign 4 _0204CCD8: .word 0x021C5A68 _0204CCDC: .word 0x000002BB thumb_func_start FUN_0204CCE0 FUN_0204CCE0: ; 0x0204CCE0 push {r3-r7, lr} ldr r7, _0204CD70 ; =0x021C5A68 add r6, r0, #0x0 ldr r0, [r7, #0x0] cmp r0, #0x0 beq _0204CD6E mov r4, #0x0 add r5, r4, #0x0 _0204CCF0: ldr r0, [r7, #0x0] add r1, r0, r5 mov r0, #0x9f lsl r0, r0, #0x2 ldr r0, [r1, r0] cmp r0, #0x0 beq _0204CD0E bl FUN_02016A18 ldr r0, [r7, #0x0] mov r1, #0x0 add r2, r0, r5 mov r0, #0x9f lsl r0, r0, #0x2 str r1, [r2, r0] _0204CD0E: add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, #0x5 blt _0204CCF0 ldr r0, _0204CD70 ; =0x021C5A68 ldr r2, [r0, #0x0] ldr r0, _0204CD74 ; =0x000002B2 ldrh r1, [r2, r0] cmp r1, #0x5 blo _0204CD28 ldr r0, [r2, #0x54] bl FUN_02061B64 _0204CD28: mov r4, #0x0 add r5, r4, #0x0 _0204CD2C: lsl r0, r4, #0x18 lsr r0, r0, #0x18 add r1, r5, #0x0 add r2, r6, #0x0 bl FUN_0204D43C add r4, r4, #0x1 cmp r4, #0x8 blt _0204CD2C ldr r0, _0204CD70 ; =0x021C5A68 ldr r0, [r0, #0x0] ldr r0, [r0, #0x50] bl FUN_0200CAB4 ldr r0, _0204CD70 ; =0x021C5A68 ldr r0, [r0, #0x0] ldr r0, [r0, #0x4] cmp r0, #0x0 beq _0204CD60 bl FUN_02244D3C ldr r0, _0204CD70 ; =0x021C5A68 ldr r0, [r0, #0x0] ldr r0, [r0, #0x4] bl FUN_02016A18 _0204CD60: ldr r0, _0204CD70 ; =0x021C5A68 ldr r0, [r0, #0x0] bl FUN_02016A18 ldr r0, _0204CD70 ; =0x021C5A68 mov r1, #0x0 str r1, [r0, #0x0] _0204CD6E: pop {r3-r7, pc} .balign 4 _0204CD70: .word 0x021C5A68 _0204CD74: .word 0x000002B2 thumb_func_start FUN_0204CD78 FUN_0204CD78: ; 0x0204CD78 push {r4, lr} lsl r4, r0, #0x2 ldr r0, _0204CDB0 ; =0x021C5A68 ldr r0, [r0, #0x0] add r0, r0, r4 ldr r0, [r0, #0x28] cmp r0, #0x0 beq _0204CDAC bl FUN_020646A0 cmp r0, #0x0 beq _0204CD9E ldr r0, _0204CDB0 ; =0x021C5A68 ldr r0, [r0, #0x0] add r0, r0, r4 ldr r0, [r0, #0x28] bl FUN_02064520 b _0204CDA2 _0204CD9E: bl ErrorHandling _0204CDA2: ldr r0, _0204CDB0 ; =0x021C5A68 mov r1, #0x0 ldr r0, [r0, #0x0] add r0, r0, r4 str r1, [r0, #0x28] _0204CDAC: pop {r4, pc} nop _0204CDB0: .word 0x021C5A68 thumb_func_start FUN_0204CDB4 FUN_0204CDB4: ; 0x0204CDB4 push {r3-r7, lr} mov r4, #0x0 ldr r6, _0204CED4 ; =0x021C5A68 add r7, r4, #0x0 add r5, r4, #0x0 _0204CDBE: add r0, r4, #0x0 bl FUN_0204E778 add r0, r4, #0x0 bl FUN_0204CD78 cmp r4, #0x0 beq _0204CDD4 add r0, r4, #0x0 bl FUN_0204ED9C _0204CDD4: ldr r1, [r6, #0x0] add r0, r1, r7 ldr r0, [r0, #0x8] cmp r0, #0x0 beq _0204CDFA ldr r2, [r1, #0x54] ldr r2, [r2, #0x38] cmp r2, r0 beq _0204CDF2 ldr r2, _0204CED8 ; =0x000002BE ldrb r1, [r1, r2] cmp r1, #0x0 beq _0204CDF2 bl FUN_02055168 _0204CDF2: ldr r0, [r6, #0x0] add r1, r0, r7 mov r0, #0x0 str r0, [r1, #0x8] _0204CDFA: ldr r0, [r6, #0x0] add r7, r7, #0x4 add r1, r0, r4 add r1, #0x48 mov r0, #0x0 strb r0, [r1, #0x0] ldr r0, [r6, #0x0] add r1, r0, r5 mov r0, #0x0 add r1, #0xa6 mvn r0, r0 strb r0, [r1, #0x0] ldr r0, [r6, #0x0] add r1, r0, r5 ldr r0, _0204CEDC ; =0x0000FFFF add r1, #0xa2 strh r0, [r1, #0x0] ldr r0, [r6, #0x0] add r1, r0, r5 ldr r0, _0204CEDC ; =0x0000FFFF add r1, #0xa4 strh r0, [r1, #0x0] ldr r0, [r6, #0x0] add r1, r0, r5 add r1, #0xa7 mov r0, #0x2 strb r0, [r1, #0x0] ldr r0, [r6, #0x0] add r1, r0, r5 mov r0, #0x0 add r1, #0x66 mvn r0, r0 strb r0, [r1, #0x0] ldr r0, [r6, #0x0] add r1, r0, r5 ldr r0, _0204CEDC ; =0x0000FFFF add r1, #0x62 strh r0, [r1, #0x0] ldr r0, [r6, #0x0] add r1, r0, r5 ldr r0, _0204CEDC ; =0x0000FFFF add r1, #0x64 strh r0, [r1, #0x0] ldr r0, [r6, #0x0] add r1, r0, r5 add r1, #0x67 mov r0, #0x2 strb r0, [r1, #0x0] ldr r0, [r6, #0x0] mov r1, #0x0 add r2, r0, r4 ldr r0, _0204CEE0 ; =0x00000102 mvn r1, r1 strb r1, [r2, r0] ldr r0, [r6, #0x0] mov r1, #0x0 add r2, r0, r4 ldr r0, _0204CEE4 ; =0x0000010A add r5, #0x8 strb r1, [r2, r0] ldr r0, [r6, #0x0] add r1, r0, r4 add r1, #0xe2 mov r0, #0x0 strb r0, [r1, #0x0] ldr r0, [r6, #0x0] add r1, r0, r4 add r1, #0xea mov r0, #0x1 strb r0, [r1, #0x0] ldr r0, [r6, #0x0] add r1, r0, r4 add r1, #0xf2 mov r0, #0x0 strb r0, [r1, #0x0] ldr r0, [r6, #0x0] mov r1, #0x0 add r2, r0, r4 ldr r0, _0204CEE8 ; =0x0000013A strb r1, [r2, r0] ldr r0, [r6, #0x0] add r2, r0, r4 ldr r0, _0204CEEC ; =0x00000142 add r4, r4, #0x1 strb r1, [r2, r0] cmp r4, #0x8 blt _0204CDBE ldr r0, _0204CED4 ; =0x021C5A68 ldr r1, _0204CEF0 ; =0x000002BF ldr r2, [r0, #0x0] mov r0, #0x0 strb r0, [r2, r1] bl FUN_0204CF60 ldr r0, _0204CED4 ; =0x021C5A68 ldr r0, [r0, #0x0] ldr r0, [r0, #0x50] cmp r0, #0x0 bne _0204CED0 ldr r0, _0204CEF4 ; =FUN_0204D4F0 mov r1, #0x0 mov r2, #0xc8 bl FUN_0200CA44 ldr r1, _0204CED4 ; =0x021C5A68 ldr r1, [r1, #0x0] str r0, [r1, #0x50] _0204CED0: pop {r3-r7, pc} nop _0204CED4: .word 0x021C5A68 _0204CED8: .word 0x000002BE _0204CEDC: .word 0x0000FFFF _0204CEE0: .word 0x00000102 _0204CEE4: .word 0x0000010A _0204CEE8: .word 0x0000013A _0204CEEC: .word 0x00000142 _0204CEF0: .word 0x000002BF _0204CEF4: .word FUN_0204D4F0 thumb_func_start FUN_0204CEF8 FUN_0204CEF8: ; 0x0204CEF8 push {r3, lr} ldr r0, _0204CF20 ; =0x021C5A68 ldr r0, [r0, #0x0] ldr r0, [r0, #0x50] cmp r0, #0x0 beq _0204CF16 mov r0, #0x0 add r1, r0, #0x0 bl FUN_0204D4F0 ldr r0, _0204CF20 ; =0x021C5A68 ldr r0, [r0, #0x0] ldr r0, [r0, #0x50] bl FUN_0200CAB4 _0204CF16: ldr r0, _0204CF20 ; =0x021C5A68 mov r1, #0x0 ldr r0, [r0, #0x0] str r1, [r0, #0x50] pop {r3, pc} .balign 4 _0204CF20: .word 0x021C5A68 thumb_func_start FUN_0204CF24 FUN_0204CF24: ; 0x0204CF24 push {r3-r5, lr} ldr r0, _0204CF58 ; =0x021C5A68 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _0204CF54 mov r5, #0x0 add r4, r5, #0x0 _0204CF32: lsl r0, r5, #0x18 lsr r0, r0, #0x18 add r1, r4, #0x0 add r2, r4, #0x0 bl FUN_0204D43C add r0, r5, #0x0 bl FUN_0204F69C add r5, r5, #0x1 cmp r5, #0x8 blt _0204CF32 ldr r0, _0204CF58 ; =0x021C5A68 mov r2, #0x1 ldr r1, [r0, #0x0] ldr r0, _0204CF5C ; =0x000002BD strb r2, [r1, r0] _0204CF54: pop {r3-r5, pc} nop _0204CF58: .word 0x021C5A68 _0204CF5C: .word 0x000002BD thumb_func_start FUN_0204CF60 FUN_0204CF60: ; 0x0204CF60 push {r4, lr} bl FUN_02031190 ldr r1, _0204D03C ; =0x021C5A68 lsl r0, r0, #0x2 ldr r2, [r1, #0x0] ldr r1, [r2, #0x54] add r0, r2, r0 ldr r1, [r1, #0x38] str r1, [r0, #0x8] bl FUN_02031190 ldr r1, _0204D03C ; =0x021C5A68 mov r2, #0x1 ldr r1, [r1, #0x0] add r0, r1, r0 add r0, #0x48 strb r2, [r0, #0x0] bl FUN_02031190 add r4, r0, #0x0 ldr r0, _0204D03C ; =0x021C5A68 ldr r0, [r0, #0x0] ldr r0, [r0, #0x54] ldr r0, [r0, #0x38] bl FUN_02055320 ldr r1, _0204D03C ; =0x021C5A68 ldr r2, [r1, #0x0] lsl r1, r4, #0x3 add r1, r2, r1 add r1, #0xa2 strh r0, [r1, #0x0] bl FUN_02031190 add r4, r0, #0x0 ldr r0, _0204D03C ; =0x021C5A68 ldr r0, [r0, #0x0] ldr r0, [r0, #0x54] ldr r0, [r0, #0x38] bl FUN_0205532C ldr r1, _0204D03C ; =0x021C5A68 ldr r2, [r1, #0x0] lsl r1, r4, #0x3 add r1, r2, r1 add r1, #0xa4 strh r0, [r1, #0x0] bl FUN_02031190 add r4, r0, #0x0 ldr r0, _0204D03C ; =0x021C5A68 ldr r0, [r0, #0x0] ldr r0, [r0, #0x54] ldr r0, [r0, #0x38] bl FUN_020552F8 ldr r1, _0204D03C ; =0x021C5A68 ldr r2, [r1, #0x0] lsl r1, r4, #0x3 add r1, r2, r1 add r1, #0xa6 strb r0, [r1, #0x0] bl FUN_02031190 add r4, r0, #0x0 ldr r0, _0204D03C ; =0x021C5A68 ldr r0, [r0, #0x0] ldr r0, [r0, #0x54] ldr r0, [r0, #0x38] bl FUN_02055320 ldr r1, _0204D03C ; =0x021C5A68 ldr r2, [r1, #0x0] lsl r1, r4, #0x3 add r1, r2, r1 add r1, #0x62 strh r0, [r1, #0x0] bl FUN_02031190 add r4, r0, #0x0 ldr r0, _0204D03C ; =0x021C5A68 ldr r0, [r0, #0x0] ldr r0, [r0, #0x54] ldr r0, [r0, #0x38] bl FUN_0205532C ldr r1, _0204D03C ; =0x021C5A68 ldr r2, [r1, #0x0] lsl r1, r4, #0x3 add r1, r2, r1 add r1, #0x64 strh r0, [r1, #0x0] bl FUN_02031190 add r4, r0, #0x0 ldr r0, _0204D03C ; =0x021C5A68 ldr r0, [r0, #0x0] ldr r0, [r0, #0x54] ldr r0, [r0, #0x38] bl FUN_020552F8 ldr r1, _0204D03C ; =0x021C5A68 ldr r2, [r1, #0x0] lsl r1, r4, #0x3 add r1, r2, r1 add r1, #0x66 strb r0, [r1, #0x0] pop {r4, pc} nop _0204D03C: .word 0x021C5A68 thumb_func_start FUN_0204D040 FUN_0204D040: ; 0x0204D040 push {r3-r7, lr} str r0, [sp, #0x0] ldr r0, _0204D110 ; =0x021C5A68 mov r2, #0x0 ldr r1, [r0, #0x0] ldr r0, _0204D114 ; =0x000002BF strb r2, [r1, r0] bl FUN_02031190 ldr r2, _0204D110 ; =0x021C5A68 add r1, r0, #0x0 ldr r4, [r2, #0x0] lsl r6, r1, #0x2 ldr r0, [r4, #0x54] ldr r3, [r0, #0x38] add r0, r4, r6 str r3, [r0, #0x8] ldr r0, [r2, #0x0] mov r3, #0x1 add r0, r0, r1 add r0, #0x48 strb r3, [r0, #0x0] ldr r0, [sp, #0x0] ldr r3, [r2, #0x0] lsl r5, r0, #0x3 add r0, r3, r5 add r0, #0xa2 lsl r4, r1, #0x3 add r3, r3, r4 ldrh r0, [r0, #0x0] add r3, #0xa2 strh r0, [r3, #0x0] ldr r3, [r2, #0x0] add r0, r3, r5 add r0, #0xa4 add r3, r3, r4 ldrh r0, [r0, #0x0] add r3, #0xa4 strh r0, [r3, #0x0] ldr r7, [r2, #0x0] mov r0, #0xa6 add r3, r7, r5 ldrsb r0, [r3, r0] add r3, r7, r4 add r3, #0xa6 strb r0, [r3, #0x0] ldr r3, [r2, #0x0] mov r7, #0x29 add r0, r3, r5 add r0, #0x62 add r3, r3, r4 ldrh r0, [r0, #0x0] add r3, #0x62 lsl r7, r7, #0x4 strh r0, [r3, #0x0] ldr r3, [r2, #0x0] add r0, r3, r5 add r0, #0x64 add r3, r3, r4 ldrh r0, [r0, #0x0] add r3, #0x64 strh r0, [r3, #0x0] ldr r0, [r2, #0x0] mov r3, #0x66 add r5, r0, r5 add r0, r0, r4 ldrsb r5, [r5, r3] add r0, #0x66 strb r5, [r0, #0x0] ldr r0, [sp, #0x0] ldr r4, [r2, #0x0] lsl r5, r0, #0x2 add r0, r4, r5 ldr r0, [r0, r7] add r4, r4, r6 str r0, [r4, r7] ldr r0, [r2, #0x0] mov r4, #0x0 add r0, r0, r5 str r4, [r0, r7] ldr r2, [r2, #0x0] add r0, r2, r6 ldr r0, [r0, r7] cmp r0, #0x0 beq _0204D0F8 add r3, #0xe4 add r3, r2, r3 mov r2, #0x22 mul r2, r1 add r1, r3, r2 bl FUN_0202393C _0204D0F8: ldr r1, _0204D110 ; =0x021C5A68 mov r0, #0xff ldr r3, [r1, #0x0] ldr r1, [sp, #0x0] mov r2, #0x22 mul r2, r1 add r1, r0, #0x0 add r2, r3, r2 add r1, #0x6b strh r0, [r2, r1] pop {r3-r7, pc} nop _0204D110: .word 0x021C5A68 _0204D114: .word 0x000002BF thumb_func_start FUN_0204D118 FUN_0204D118: ; 0x0204D118 push {r4-r6, lr} sub sp, #0x8 add r5, r0, #0x0 ldr r0, _0204D160 ; =0x021C5A68 add r4, r1, #0x0 ldr r0, [r0, #0x0] add r6, r2, #0x0 ldr r0, [r0, #0x54] ldr r0, [r0, #0x38] bl FUN_020552F8 add r1, sp, #0x0 strb r4, [r1, #0x0] asr r2, r4, #0x8 strb r2, [r1, #0x1] asr r2, r6, #0x8 strb r6, [r1, #0x2] strb r2, [r1, #0x3] strb r0, [r1, #0x4] cmp r5, #0x0 beq _0204D14A ldrb r2, [r1, #0x4] mov r0, #0x80 orr r0, r2 strb r0, [r1, #0x4] _0204D14A: mov r0, #0x16 add r1, sp, #0x0 bl FUN_020311D0 ldr r0, _0204D160 ; =0x021C5A68 mov r2, #0x1 ldr r1, [r0, #0x0] ldr r0, _0204D164 ; =0x000002BB strb r2, [r1, r0] add sp, #0x8 pop {r4-r6, pc} .balign 4 _0204D160: .word 0x021C5A68 _0204D164: .word 0x000002BB thumb_func_start FUN_0204D168 FUN_0204D168: ; 0x0204D168 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _0204D194 ; =0x021C5A68 ldr r0, [r0, #0x0] ldr r0, [r0, #0x54] ldr r0, [r0, #0x38] bl FUN_02055320 add r4, r0, #0x0 ldr r0, _0204D194 ; =0x021C5A68 ldr r0, [r0, #0x0] ldr r0, [r0, #0x54] ldr r0, [r0, #0x38] bl FUN_0205532C add r2, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0204D118 pop {r3-r5, pc} nop _0204D194: .word 0x021C5A68 thumb_func_start FUN_0204D198 FUN_0204D198: ; 0x0204D198 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02031190 ldr r1, _0204D1C8 ; =0x021C5A68 lsl r0, r0, #0x3 ldr r1, [r1, #0x0] add r0, r1, r0 add r0, #0x62 ldrh r4, [r0, #0x0] bl FUN_02031190 ldr r1, _0204D1C8 ; =0x021C5A68 lsl r0, r0, #0x3 ldr r1, [r1, #0x0] add r0, r1, r0 add r0, #0x64 ldrh r2, [r0, #0x0] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0204D118 pop {r3-r5, pc} nop _0204D1C8: .word 0x021C5A68 thumb_func_start FUN_0204D1CC FUN_0204D1CC: ; 0x0204D1CC push {r3-r5, lr} sub sp, #0x8 ldrh r2, [r1, #0x0] mov r4, #0xf lsl r4, r4, #0xc ldrh r3, [r1, #0x2] cmp r2, r4 blo _0204D1DE sub r2, r4, #0x1 _0204D1DE: mov r4, #0xf lsl r4, r4, #0xc cmp r3, r4 blo _0204D1E8 sub r3, r4, #0x1 _0204D1E8: mov r4, #0xf and r0, r4 add r4, sp, #0x0 strb r0, [r4, #0x0] strb r2, [r4, #0x1] asr r2, r2, #0x8 add r5, r2, #0x0 mov r0, #0x1 and r5, r0 asr r2, r3, #0x7 mov r0, #0x2 and r0, r2 add r0, r5, r0 strb r0, [r4, #0x2] strb r3, [r4, #0x3] ldrb r0, [r1, #0x7] cmp r0, #0x0 beq _0204D214 ldrb r2, [r4, #0x2] mov r0, #0x80 orr r0, r2 strb r0, [r4, #0x2] _0204D214: mov r2, #0x4 ldrsb r2, [r1, r2] add r5, sp, #0x0 ldrb r0, [r5, #0x0] lsr r4, r2, #0x1f lsl r3, r2, #0x1e sub r3, r3, r4 mov r2, #0x1e ror r3, r2 add r2, r4, r3 lsl r2, r2, #0x4 add r0, r0, r2 strb r0, [r5, #0x0] ldrb r0, [r1, #0x5] ldrb r2, [r5, #0x0] add r1, sp, #0x0 lsl r0, r0, #0x6 add r0, r2, r0 strb r0, [r5, #0x0] mov r0, #0x17 mov r2, #0x0 bl FUN_02030BC4 add sp, #0x8 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0204D248 FUN_0204D248: ; 0x0204D248 push {r3-r5, lr} ldr r0, _0204D2A8 ; =0x021C5A68 ldr r0, [r0, #0x0] ldr r0, [r0, #0x54] ldr r0, [r0, #0x38] bl FUN_02055370 add r4, r0, #0x0 ldr r0, _0204D2A8 ; =0x021C5A68 ldr r0, [r0, #0x0] ldr r0, [r0, #0x54] ldr r0, [r0, #0x38] bl FUN_02055378 add r5, r0, #0x0 cmp r4, #0x0 bne _0204D292 bl FUN_02031190 bl FUN_02030E7C cmp r0, #0x0 beq _0204D292 ldr r0, _0204D2A8 ; =0x021C5A68 ldr r1, [r0, #0x0] ldr r0, _0204D2AC ; =0x000002BA ldrb r0, [r1, r0] cmp r0, #0x0 bne _0204D292 mov r0, #0x1 bl FUN_0204D168 ldr r0, _0204D2A8 ; =0x021C5A68 mov r2, #0x1 ldr r1, [r0, #0x0] ldr r0, _0204D2AC ; =0x000002BA strb r2, [r1, r0] _0204D292: cmp r4, #0x1 bne _0204D2A4 cmp r5, #0x1 bne _0204D2A4 ldr r0, _0204D2A8 ; =0x021C5A68 mov r2, #0x0 ldr r1, [r0, #0x0] ldr r0, _0204D2AC ; =0x000002BA strb r2, [r1, r0] _0204D2A4: pop {r3-r5, pc} nop _0204D2A8: .word 0x021C5A68 _0204D2AC: .word 0x000002BA thumb_func_start FUN_0204D2B0 FUN_0204D2B0: ; 0x0204D2B0 push {r3-r7, lr} mov r4, #0x0 ldr r7, _0204D2FC ; =0x021C5A68 add r5, r4, #0x0 add r6, r4, #0x0 _0204D2BA: ldr r0, [r7, #0x0] add r2, r0, r4 add r1, r2, #0x0 add r1, #0x48 ldrb r1, [r1, #0x0] cmp r1, #0x0 beq _0204D2E8 ldr r3, _0204D300 ; =0x00000132 add r1, r0, #0x0 ldrb r3, [r2, r3] add r1, #0x62 cmp r3, #0x0 bne _0204D2DC ldr r3, _0204D304 ; =0x000002BB ldrb r0, [r0, r3] cmp r0, #0x0 beq _0204D2E8 _0204D2DC: ldr r0, _0204D300 ; =0x00000132 add r1, r1, r5 strb r6, [r2, r0] add r0, r4, #0x0 bl FUN_0204D1CC _0204D2E8: add r4, r4, #0x1 add r5, #0x8 cmp r4, #0x8 blt _0204D2BA ldr r0, _0204D2FC ; =0x021C5A68 mov r2, #0x0 ldr r1, [r0, #0x0] ldr r0, _0204D304 ; =0x000002BB strb r2, [r1, r0] pop {r3-r7, pc} .balign 4 _0204D2FC: .word 0x021C5A68 _0204D300: .word 0x00000132 _0204D304: .word 0x000002BB thumb_func_start FUN_0204D308 FUN_0204D308: ; 0x0204D308 ldr r0, _0204D31C ; =0x021C5A68 ldr r2, [r0, #0x0] cmp r2, #0x0 beq _0204D318 mov r0, #0xae mov r1, #0x0 lsl r0, r0, #0x2 strb r1, [r2, r0] _0204D318: bx lr nop _0204D31C: .word 0x021C5A68 thumb_func_start FUN_0204D320 FUN_0204D320: ; 0x0204D320 mov r0, #0xb1 lsl r0, r0, #0x2 bx lr .balign 4 thumb_func_start FUN_0204D328 FUN_0204D328: ; 0x0204D328 push {r3-r7, lr} sub sp, #0x10 ldr r1, _0204D430 ; =0x021C5A68 add r5, r0, #0x0 ldr r2, [r1, #0x0] lsl r6, r5, #0x2 add r1, r2, r6 ldr r1, [r1, #0x8] cmp r1, #0x0 bne _0204D42A ldr r1, _0204D434 ; =0x000002BD ldrb r1, [r2, r1] cmp r1, #0x0 bne _0204D42A bl FUN_0202DFA4 str r0, [sp, #0xc] cmp r0, #0x0 beq _0204D42A ldr r0, _0204D430 ; =0x021C5A68 ldr r1, [r0, #0x0] ldr r0, _0204D438 ; =0x000002BE ldrb r0, [r1, r0] cmp r0, #0x0 bne _0204D37C bl FUN_02031190 cmp r5, r0 beq _0204D37C ldr r0, _0204D430 ; =0x021C5A68 mov r1, #0x1 ldr r0, [r0, #0x0] lsl r1, r1, #0x8 ldr r0, [r0, #0x54] add r1, r5, r1 ldr r0, [r0, #0x34] bl FUN_02058060 cmp r0, #0x0 beq _0204D37C bl FUN_02057654 _0204D37C: ldr r0, _0204D430 ; =0x021C5A68 lsl r4, r5, #0x3 ldr r7, [r0, #0x0] ldr r0, [sp, #0xc] bl FUN_020239CC mov r1, #0x0 str r1, [sp, #0x0] str r0, [sp, #0x4] str r1, [sp, #0x8] ldr r0, [r7, #0x54] add r7, r7, r4 add r1, r7, #0x0 add r2, r7, #0x0 add r1, #0xa2 add r2, #0xa4 mov r3, #0xa6 ldrh r1, [r1, #0x0] ldrh r2, [r2, #0x0] ldrsb r3, [r7, r3] ldr r0, [r0, #0x34] bl FUN_02055068 add r7, r0, #0x0 bne _0204D3B2 bl ErrorHandling _0204D3B2: ldr r0, _0204D430 ; =0x021C5A68 ldr r0, [r0, #0x0] add r0, r0, r6 str r7, [r0, #0x8] add r0, r7, #0x0 bl FUN_020553A0 mov r1, #0x1 lsl r1, r1, #0x8 add r1, r5, r1 bl FUN_02058444 ldr r0, _0204D430 ; =0x021C5A68 ldr r1, [r0, #0x0] ldr r0, _0204D438 ; =0x000002BE ldrb r0, [r1, r0] cmp r0, #0x0 beq _0204D3DC add r0, r5, #0x0 bl FUN_0223E4D4 _0204D3DC: ldr r0, _0204D430 ; =0x021C5A68 ldr r1, _0204D438 ; =0x000002BE ldr r3, [r0, #0x0] ldrb r2, [r3, r1] cmp r2, #0x0 beq _0204D41E add r0, r3, r5 add r0, #0x48 ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _0204D41E sub r0, r1, #0x1 ldrb r0, [r3, r0] cmp r0, #0x0 bne _0204D40E add r1, r3, r4 ldr r0, [r3, #0x54] add r3, r3, r4 add r1, #0xa2 add r3, #0xa4 ldrh r1, [r1, #0x0] ldrh r3, [r3, #0x0] mov r2, #0x0 bl FUN_021E5B30 _0204D40E: ldr r0, _0204D430 ; =0x021C5A68 mov r1, #0x1 ldr r0, [r0, #0x0] add sp, #0x10 add r0, r0, r5 add r0, #0x48 strb r1, [r0, #0x0] pop {r3-r7, pc} _0204D41E: cmp r2, #0x0 bne _0204D42A add r0, r3, r5 mov r1, #0x1 add r0, #0x48 strb r1, [r0, #0x0] _0204D42A: add sp, #0x10 pop {r3-r7, pc} nop _0204D430: .word 0x021C5A68 _0204D434: .word 0x000002BD _0204D438: .word 0x000002BE thumb_func_start FUN_0204D43C FUN_0204D43C: ; 0x0204D43C push {r3-r7, lr} add r5, r0, #0x0 ldr r0, _0204D4CC ; =0x021C5A68 add r6, r1, #0x0 ldr r0, [r0, #0x0] add r7, r2, #0x0 cmp r0, #0x0 beq _0204D4C8 add r0, #0x5a mov r1, #0x0 mov r2, #0x8 blx MI_CpuFill8 add r0, r5, #0x0 bl FUN_0204CD78 ldr r0, _0204D4CC ; =0x021C5A68 lsl r4, r5, #0x2 ldr r1, [r0, #0x0] add r0, r1, r4 ldr r0, [r0, #0x8] cmp r0, #0x0 beq _0204D492 ldr r2, [r1, #0x54] ldr r2, [r2, #0x38] cmp r2, r0 beq _0204D488 ldr r2, _0204D4D0 ; =0x000002BE ldrb r1, [r1, r2] cmp r1, #0x0 bne _0204D47E cmp r7, #0x0 beq _0204D484 _0204D47E: bl FUN_02055168 b _0204D488 _0204D484: bl FUN_02055160 _0204D488: ldr r0, _0204D4CC ; =0x021C5A68 mov r1, #0x0 ldr r0, [r0, #0x0] add r0, r0, r4 str r1, [r0, #0x8] _0204D492: ldr r0, _0204D4CC ; =0x021C5A68 ldr r1, [r0, #0x0] add r1, #0x48 ldrb r0, [r1, r5] cmp r0, #0x0 beq _0204D4A6 cmp r6, #0x0 bne _0204D4A6 mov r0, #0x0 strb r0, [r1, r5] _0204D4A6: ldr r0, _0204D4CC ; =0x021C5A68 mov r2, #0x1 ldr r0, [r0, #0x0] add r1, r0, r5 ldr r0, _0204D4D4 ; =0x00000132 cmp r6, #0x0 strb r2, [r1, r0] bne _0204D4C8 add r0, r5, #0x0 bl FUN_0204ED9C ldr r0, _0204D4CC ; =0x021C5A68 mov r1, #0x0 ldr r0, [r0, #0x0] add r0, r0, r5 add r0, #0xfa strb r1, [r0, #0x0] _0204D4C8: pop {r3-r7, pc} nop _0204D4CC: .word 0x021C5A68 _0204D4D0: .word 0x000002BE _0204D4D4: .word 0x00000132 thumb_func_start FUN_0204D4D8 FUN_0204D4D8: ; 0x0204D4D8 ldr r1, _0204D4E8 ; =0x021C48B8 mov r0, #0x2 ldr r1, [r1, #0x44] tst r1, r0 beq _0204D4E4 mov r0, #0x1 _0204D4E4: ldr r3, _0204D4EC ; =FUN_02030F60 bx r3 .balign 4 _0204D4E8: .word 0x021C48B8 _0204D4EC: .word FUN_02030F60 thumb_func_start FUN_0204D4F0 FUN_0204D4F0: ; 0x0204D4F0 push {r4-r6, lr} add r4, r1, #0x0 bl FUN_02030F40 cmp r0, #0x0 beq _0204D530 bl FUN_0204D4D8 bl FUN_02031190 cmp r0, #0x0 bne _0204D524 add r0, r4, #0x0 bl FUN_0204D2B0 add r0, r4, #0x0 bl FUN_0204D248 ldr r0, _0204D560 ; =0x021C5A68 ldr r0, [r0, #0x0] ldr r0, [r0, #0x4] cmp r0, #0x0 beq _0204D52A bl FUN_02244D58 b _0204D52A _0204D524: add r0, r4, #0x0 bl FUN_0204D248 _0204D52A: add r0, r4, #0x0 bl FUN_0204D568 _0204D530: ldr r4, _0204D560 ; =0x021C5A68 ldr r6, _0204D564 ; =0x000002BE mov r5, #0x0 _0204D536: ldr r0, [r4, #0x0] ldrb r0, [r0, r6] cmp r0, #0x0 beq _0204D556 bl FUN_02031190 cmp r0, #0x0 bne _0204D556 add r0, r5, #0x0 bl FUN_0202DFA4 cmp r0, #0x0 bne _0204D556 add r0, r5, #0x0 bl FUN_02245358 _0204D556: add r5, r5, #0x1 cmp r5, #0x8 blt _0204D536 pop {r4-r6, pc} nop _0204D560: .word 0x021C5A68 _0204D564: .word 0x000002BE thumb_func_start FUN_0204D568 FUN_0204D568: ; 0x0204D568 push {r3-r7, lr} ldr r4, _0204D608 ; =0x021C5A68 ldr r7, _0204D60C ; =0x000002BE mov r5, #0x0 add r6, sp, #0x0 _0204D572: lsl r0, r5, #0x10 lsr r0, r0, #0x10 bl FUN_02030E7C cmp r0, #0x0 bne _0204D5A0 bl FUN_02031280 cmp r0, #0x0 beq _0204D58A cmp r5, #0x0 beq _0204D5A0 _0204D58A: bl FUN_02031190 cmp r0, #0x0 bne _0204D5A0 ldr r0, [r4, #0x0] ldrb r0, [r0, r7] cmp r0, #0x0 beq _0204D5A0 add r0, r5, #0x0 bl FUN_02247614 _0204D5A0: lsl r0, r5, #0x10 lsr r0, r0, #0x10 bl FUN_02030E7C cmp r0, #0x0 bne _0204D5B8 bl FUN_02031280 cmp r0, #0x0 beq _0204D5C6 cmp r5, #0x0 bne _0204D5C6 _0204D5B8: add r0, r5, #0x0 bl FUN_0204DE30 add r0, r5, #0x0 bl FUN_0204EFCC b _0204D600 _0204D5C6: ldr r0, [r4, #0x0] add r0, r0, r5 add r0, #0x48 ldrb r0, [r0, #0x0] cmp r0, #0x0 beq _0204D600 bl FUN_02031190 cmp r0, #0x0 bne _0204D5F0 ldr r1, [r4, #0x0] ldr r0, _0204D60C ; =0x000002BE ldrb r0, [r1, r0] cmp r0, #0x0 beq _0204D5F0 add r0, r5, #0x0 bl FUN_0223EB8C add r0, r5, #0x0 bl FUN_0223CB08 _0204D5F0: strb r5, [r6, #0x0] ldr r3, [r4, #0x0] mov r0, #0x0 ldr r3, [r3, #0x54] mov r1, #0x1 add r2, sp, #0x0 bl FUN_0204DBCC _0204D600: add r5, r5, #0x1 cmp r5, #0x8 blt _0204D572 pop {r3-r7, pc} .balign 4 _0204D608: .word 0x021C5A68 _0204D60C: .word 0x000002BE thumb_func_start FUN_0204D610 FUN_0204D610: ; 0x0204D610 ldr r0, _0204D624 ; =0x021C5A68 ldr r1, [r0, #0x0] cmp r1, #0x0 beq _0204D620 mov r0, #0xaf lsl r0, r0, #0x2 ldrb r0, [r1, r0] bx lr _0204D620: mov r0, #0x0 bx lr .balign 4 _0204D624: .word 0x021C5A68 thumb_func_start FUN_0204D628 FUN_0204D628: ; 0x0204D628 push {r3, lr} ldr r1, _0204D650 ; =0x021C5A68 ldr r3, [r1, #0x0] cmp r3, #0x0 beq _0204D64E mov r1, #0xaf lsl r1, r1, #0x2 ldrb r2, [r3, r1] cmp r2, r0 beq _0204D63E strb r0, [r3, r1] _0204D63E: ldr r1, _0204D650 ; =0x021C5A68 mov r0, #0x3e ldr r2, [r1, #0x0] mov r1, #0xaf lsl r1, r1, #0x2 add r1, r2, r1 bl FUN_020311D0 _0204D64E: pop {r3, pc} .balign 4 _0204D650: .word 0x021C5A68 thumb_func_start FUN_0204D654 FUN_0204D654: ; 0x0204D654 push {r4, lr} ldr r2, _0204D678 ; =0x021C5A68 ldr r4, [r2, #0x0] cmp r4, #0x0 beq _0204D674 mov r1, #0xaf lsl r1, r1, #0x2 ldrb r3, [r4, r1] cmp r3, r0 beq _0204D674 strb r0, [r4, r1] ldr r2, [r2, #0x0] mov r0, #0x3e add r1, r2, r1 bl FUN_020311D0 _0204D674: pop {r4, pc} nop _0204D678: .word 0x021C5A68 thumb_func_start FUN_0204D67C FUN_0204D67C: ; 0x0204D67C push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _0204D6BC ; =0x021C5A68 add r4, r2, #0x0 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _0204D6B8 cmp r1, #0x1 beq _0204D692 bl ErrorHandling _0204D692: cmp r5, #0x8 blt _0204D69A bl ErrorHandling _0204D69A: ldrb r0, [r4, #0x0] mov r1, #0x1 cmp r0, #0x1 beq _0204D6A8 cmp r0, #0x0 beq _0204D6A8 mov r1, #0x0 _0204D6A8: cmp r1, #0x0 bne _0204D6B0 bl ErrorHandling _0204D6B0: ldrb r1, [r4, #0x0] add r0, r5, #0x0 bl FUN_0204EAD8 _0204D6B8: pop {r3-r5, pc} nop _0204D6BC: .word 0x021C5A68 thumb_func_start FUN_0204D6C0 FUN_0204D6C0: ; 0x0204D6C0 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _0204D734 ; =0x021C5A68 add r4, r1, #0x0 ldr r1, [r0, #0x0] cmp r1, #0x0 beq _0204D732 ldr r0, _0204D738 ; =0x000002BE ldrb r0, [r1, r0] cmp r0, #0x0 bne _0204D6E4 add r0, r4, #0x0 bl FUN_0204D654 ldr r0, _0204D734 ; =0x021C5A68 ldr r1, [r0, #0x0] ldr r0, _0204D73C ; =0x000002C1 strb r4, [r1, r0] _0204D6E4: ldr r4, [r5, #0x38] cmp r4, #0x0 beq _0204D6F8 bl FUN_02031190 ldr r1, _0204D734 ; =0x021C5A68 lsl r0, r0, #0x2 ldr r1, [r1, #0x0] add r0, r1, r0 str r4, [r0, #0x8] _0204D6F8: bl FUN_02030F40 cmp r0, #0x0 beq _0204D712 bl FUN_02031190 cmp r0, #0x0 bne _0204D712 ldr r1, _0204D734 ; =0x021C5A68 mov r0, #0x0 ldr r1, [r1, #0x0] bl FUN_0204D89C _0204D712: bl FUN_02030F40 cmp r0, #0x0 beq _0204D732 bl FUN_02031190 cmp r0, #0x0 bne _0204D732 ldr r0, _0204D734 ; =0x021C5A68 ldr r1, [r0, #0x0] ldr r0, _0204D738 ; =0x000002BE ldrb r0, [r1, r0] cmp r0, #0x0 bne _0204D732 bl FUN_0204EC28 _0204D732: pop {r3-r5, pc} .balign 4 _0204D734: .word 0x021C5A68 _0204D738: .word 0x000002BE _0204D73C: .word 0x000002C1 thumb_func_start FUN_0204D740 FUN_0204D740: ; 0x0204D740 mov r0, #0x20 tst r0, r1 beq _0204D74A mov r0, #0x2 bx lr _0204D74A: mov r0, #0x10 tst r0, r1 beq _0204D754 mov r0, #0x3 bx lr _0204D754: mov r0, #0x40 tst r0, r1 beq _0204D75E mov r0, #0x0 bx lr _0204D75E: mov r0, #0x80 tst r1, r0 beq _0204D768 mov r0, #0x1 bx lr _0204D768: sub r0, #0x81 bx lr thumb_func_start FUN_0204D76C FUN_0204D76C: ; 0x0204D76C push {r4-r6, lr} add r5, r0, #0x0 ldr r0, _0204D7AC ; =0x021C5A68 add r6, r1, #0x0 ldr r0, [r0, #0x0] ldr r0, [r0, #0x54] bl FUN_02034B64 add r4, r0, #0x0 ldr r0, _0204D7AC ; =0x021C5A68 ldr r0, [r0, #0x0] ldr r0, [r0, #0x54] bl FUN_02034B6C mov r2, #0x0 cmp r4, #0x0 ble _0204D7A6 _0204D78E: ldrh r1, [r0, #0x18] cmp r5, r1 bne _0204D79E ldrh r1, [r0, #0x1a] cmp r6, r1 bne _0204D79E mov r0, #0x1 pop {r4-r6, pc} _0204D79E: add r2, r2, #0x1 add r0, #0x20 cmp r2, r4 blt _0204D78E _0204D7A6: mov r0, #0x0 pop {r4-r6, pc} nop _0204D7AC: .word 0x021C5A68 thumb_func_start FUN_0204D7B0 FUN_0204D7B0: ; 0x0204D7B0 push {r3-r7, lr} add r5, r0, #0x0 ldr r0, _0204D824 ; =0x0000FFFF add r6, r1, #0x0 add r7, r2, #0x0 cmp r5, r0 beq _0204D812 cmp r6, r0 beq _0204D812 mov r4, #0x0 _0204D7C4: cmp r4, r7 beq _0204D7E0 add r0, r4, #0x0 bl FUN_0204E544 cmp r5, r0 bne _0204D7E0 add r0, r4, #0x0 bl FUN_0204E598 cmp r6, r0 bne _0204D7E0 mov r0, #0x1 pop {r3-r7, pc} _0204D7E0: add r4, r4, #0x1 cmp r4, #0x8 blt _0204D7C4 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_0204D76C cmp r0, #0x0 beq _0204D7F6 mov r0, #0x1 pop {r3-r7, pc} _0204D7F6: ldr r0, _0204D828 ; =0x021C5A68 ldr r1, [r0, #0x0] ldr r0, _0204D82C ; =0x000002BE ldrb r0, [r1, r0] cmp r0, #0x0 beq _0204D812 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02246F1C cmp r0, #0x0 bne _0204D812 mov r0, #0x1 pop {r3-r7, pc} _0204D812: ldr r0, _0204D828 ; =0x021C5A68 add r1, r5, #0x0 ldr r0, [r0, #0x0] add r2, r6, #0x0 ldr r0, [r0, #0x54] bl FUN_0204A6B4 pop {r3-r7, pc} nop _0204D824: .word 0x0000FFFF _0204D828: .word 0x021C5A68 _0204D82C: .word 0x000002BE thumb_func_start FUN_0204D830 FUN_0204D830: ; 0x0204D830 push {r3, lr} add r1, r0, #0x0 ldr r0, _0204D858 ; =0x021C5A68 ldr r0, [r0, #0x0] ldr r0, [r0, #0x4] cmp r0, #0x0 beq _0204D852 bl FUN_02244D40 bl FUN_02244DA0 cmp r0, #0x0 bne _0204D84E mov r0, #0x1 pop {r3, pc} _0204D84E: mov r0, #0x0 pop {r3, pc} _0204D852: mov r0, #0x0 pop {r3, pc} nop _0204D858: .word 0x021C5A68 thumb_func_start FUN_0204D85C FUN_0204D85C: ; 0x0204D85C cmp r0, #0x5 bge _0204D864 mov r0, #0x8 bx lr _0204D864: cmp r0, #0xa bge _0204D86C mov r0, #0x4 bx lr _0204D86C: mov r0, #0x2 bx lr thumb_func_start FUN_0204D870 FUN_0204D870: ; 0x0204D870 push {r3-r4, lr} sub sp, #0x14 ldr r3, _0204D898 ; =0x020F5824 add r4, r0, #0x0 ldmia r3!, {r0-r1} add r2, sp, #0x0 stmia r2!, {r0-r1} ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldr r0, [r3, #0x0] cmp r4, #0x5 str r0, [r2, #0x0] blt _0204D88E bl ErrorHandling _0204D88E: lsl r1, r4, #0x2 add r0, sp, #0x0 ldr r0, [r0, r1] add sp, #0x14 pop {r3-r4, pc} .balign 4 _0204D898: .word 0x020F5824 thumb_func_start FUN_0204D89C FUN_0204D89C: ; 0x0204D89C push {r3-r7, lr} sub sp, #0x18 mov r5, #0x0 add r0, r5, #0x0 ldr r6, _0204DAF4 ; =0x021C5A68 str r5, [sp, #0x4] str r0, [sp, #0x0] _0204D8AA: ldr r0, [r6, #0x0] add r1, r0, r5 add r1, #0x48 ldrb r1, [r1, #0x0] cmp r1, #0x0 beq _0204D976 add r1, r0, r5 add r1, #0xe2 ldrb r1, [r1, #0x0] cmp r1, #0x0 beq _0204D976 add r1, r0, r5 add r1, #0xea ldrb r1, [r1, #0x0] cmp r1, #0x0 beq _0204D976 add r2, r0, #0x0 ldr r1, [sp, #0x0] add r2, #0x62 ldr r0, [r0, #0x4] add r4, r2, r1 cmp r0, #0x0 beq _0204D8E0 add r1, r5, #0x0 bl FUN_02244D40 str r0, [sp, #0x4] _0204D8E0: ldr r1, [r6, #0x0] ldr r0, _0204DAF8 ; =0x000002BE ldrb r0, [r1, r0] cmp r0, #0x0 beq _0204D8F4 add r0, r5, #0x0 bl FUN_02245F4C cmp r0, #0x0 bne _0204D976 _0204D8F4: ldr r0, [r6, #0x0] ldr r1, _0204DAFC ; =0x0000013A add r0, r0, r5 ldrb r1, [r0, r1] cmp r1, #0x0 beq _0204D90A ldr r1, _0204DAFC ; =0x0000013A ldrb r1, [r0, r1] sub r2, r1, #0x1 ldr r1, _0204DAFC ; =0x0000013A strb r2, [r0, r1] _0204D90A: ldr r0, [r6, #0x0] ldr r1, _0204DAFC ; =0x0000013A add r2, r0, r5 ldrb r1, [r2, r1] cmp r1, #0x0 bne _0204D93C ldr r1, _0204DAF8 ; =0x000002BE ldrb r0, [r0, r1] cmp r0, #0x0 beq _0204D93C add r0, r5, #0x0 bl FUN_0223F8D8 cmp r0, #0x0 bne _0204D976 add r0, r5, #0x0 bl FUN_0204D830 cmp r0, #0x0 bne _0204D93C add r0, r5, #0x0 bl FUN_02247544 cmp r0, #0x0 bne _0204D976 _0204D93C: ldr r0, [sp, #0x4] cmp r0, #0x0 beq _0204D94A bl FUN_02244DB0 cmp r0, #0x0 beq _0204D976 _0204D94A: ldr r0, [r6, #0x0] add r0, r0, r5 add r0, #0xf2 ldrb r0, [r0, #0x0] cmp r0, #0x0 beq _0204D95A mov r7, #0x0 b _0204D962 _0204D95A: add r0, r5, #0x0 bl FUN_02030F88 add r7, r0, #0x0 _0204D962: add r0, r5, #0x0 bl FUN_02030F74 strb r0, [r4, #0x5] ldr r0, [r6, #0x0] add r1, r0, r5 ldr r0, _0204DAFC ; =0x0000013A ldrb r0, [r1, r0] cmp r0, #0x0 beq _0204D978 _0204D976: b _0204DAE2 _0204D978: ldr r0, _0204DB00 ; =0x0000010A ldr r2, _0204DB04 ; =0x0000012A ldrb r0, [r1, r0] ldrb r1, [r1, r2] bl FUN_0204D85C str r0, [sp, #0x10] ldr r1, [sp, #0x10] add r0, r5, #0x0 bl FUN_0204E084 cmp r0, #0x0 beq _0204D9A8 ldr r0, [r6, #0x0] ldr r1, [sp, #0x10] add r2, r0, r5 ldr r0, _0204DAFC ; =0x0000013A strb r1, [r2, r0] ldr r0, [r6, #0x0] mov r1, #0x1 add r2, r0, r5 ldr r0, _0204DB08 ; =0x00000132 strb r1, [r2, r0] b _0204DAE2 _0204D9A8: ldrb r0, [r4, #0x7] cmp r0, #0x1 bne _0204D9B8 ldr r0, [r6, #0x0] mov r1, #0x1 add r2, r0, r5 ldr r0, _0204DB08 ; =0x00000132 strb r1, [r2, r0] _0204D9B8: mov r0, #0x0 strb r0, [r4, #0x7] ldr r0, [r6, #0x0] ldr r1, _0204DB0C ; =0x00000122 add r0, r0, r5 ldrb r1, [r0, r1] cmp r1, #0x2 bne _0204D9DE add r1, sp, #0x14 strb r5, [r1, #0x1] ldr r1, _0204DB0C ; =0x00000122 mov r2, #0x1 strb r2, [r0, r1] add r1, sp, #0x14 mov r0, #0x28 add r1, #0x1 bl FUN_02030C4C b _0204DAE2 _0204D9DE: add r0, r7, #0x0 add r1, r7, #0x0 bl FUN_0204D740 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_0204E62C str r0, [sp, #0xc] add r0, r5, #0x0 bl FUN_0204E664 str r0, [sp, #0x8] ldr r1, [sp, #0xc] ldr r0, _0204DB10 ; =0x0000FFFF cmp r1, r0 beq _0204DAE2 ldr r1, [sp, #0x8] cmp r1, r0 beq _0204DAE2 mov r0, #0x0 mvn r0, r0 cmp r7, r0 beq _0204DAE2 mov r0, #0x4 ldrsb r0, [r4, r0] cmp r0, r7 beq _0204DA44 strb r7, [r4, #0x4] ldr r0, [r6, #0x0] mov r1, #0x4 add r2, r0, r5 ldr r0, _0204DAFC ; =0x0000013A strb r1, [r2, r0] ldr r0, [r6, #0x0] mov r1, #0x1 add r2, r0, r5 ldr r0, _0204DB08 ; =0x00000132 strb r1, [r2, r0] ldr r0, [r6, #0x0] ldr r1, _0204DB0C ; =0x00000122 add r0, r0, r5 ldrb r1, [r0, r1] cmp r1, #0x2 bls _0204DAE2 ldr r1, _0204DB0C ; =0x00000122 ldrb r1, [r0, r1] sub r2, r1, #0x1 ldr r1, _0204DB0C ; =0x00000122 strb r2, [r0, r1] b _0204DAE2 _0204DA44: ldr r0, [r6, #0x0] ldr r1, _0204DB0C ; =0x00000122 add r2, r0, r5 ldrb r1, [r2, r1] cmp r1, #0x0 bne _0204DAE2 ldr r1, _0204DAF8 ; =0x000002BE ldrb r0, [r0, r1] cmp r0, #0x0 beq _0204DA66 ldr r1, [sp, #0xc] ldr r2, [sp, #0x8] add r0, r5, #0x0 bl FUN_0224566C cmp r0, #0x1 beq _0204DAE2 _0204DA66: ldr r0, [sp, #0xc] ldr r1, [sp, #0x8] add r2, r5, #0x0 bl FUN_0204D7B0 cmp r0, #0x0 beq _0204DA8E mov r0, #0x1 strb r0, [r4, #0x7] ldr r0, [r6, #0x0] mov r1, #0x1 add r2, r0, r5 ldr r0, _0204DB08 ; =0x00000132 strb r1, [r2, r0] ldr r0, [r6, #0x0] mov r1, #0x4 add r2, r0, r5 ldr r0, _0204DAFC ; =0x0000013A strb r1, [r2, r0] b _0204DAE2 _0204DA8E: ldr r0, [r6, #0x0] mov r1, #0x1 add r2, r0, r5 ldr r0, _0204DB08 ; =0x00000132 strb r1, [r2, r0] ldr r0, [sp, #0xc] strh r0, [r4, #0x0] ldr r0, [sp, #0x8] strh r0, [r4, #0x2] strb r7, [r4, #0x4] ldrb r0, [r4, #0x5] bl FUN_0204D870 ldr r1, [r6, #0x0] add r2, r1, r5 ldr r1, _0204DAFC ; =0x0000013A strb r0, [r2, r1] ldr r0, [r6, #0x0] sub r1, #0x20 add r0, r0, r5 ldrb r1, [r0, r1] cmp r1, #0x0 beq _0204DAE2 ldr r1, _0204DB14 ; =0x0000011A ldrb r1, [r0, r1] sub r2, r1, #0x1 ldr r1, _0204DB14 ; =0x0000011A strb r2, [r0, r1] ldr r0, [r6, #0x0] add r1, r0, r5 ldr r0, _0204DB14 ; =0x0000011A ldrb r0, [r1, r0] cmp r0, #0x0 bne _0204DAE2 mov r1, #0x1 add r0, sp, #0x14 strb r1, [r0, #0x0] add r0, r5, #0x0 add r2, sp, #0x14 mov r3, #0x0 bl FUN_0224089C _0204DAE2: ldr r0, [sp, #0x0] add r5, r5, #0x1 add r0, #0x8 str r0, [sp, #0x0] cmp r5, #0x8 bge _0204DAF0 b _0204D8AA _0204DAF0: add sp, #0x18 pop {r3-r7, pc} .balign 4 _0204DAF4: .word 0x021C5A68 _0204DAF8: .word 0x000002BE _0204DAFC: .word 0x0000013A _0204DB00: .word 0x0000010A _0204DB04: .word 0x0000012A _0204DB08: .word 0x00000132 _0204DB0C: .word 0x00000122 _0204DB10: .word 0x0000FFFF _0204DB14: .word 0x0000011A thumb_func_start FUN_0204DB18 FUN_0204DB18: ; 0x0204DB18 push {r3-r7, lr} ldr r5, _0204DBC0 ; =0x021C5A68 add r7, r0, #0x0 ldr r0, [r5, #0x0] add r3, r2, #0x0 cmp r0, #0x0 beq _0204DBBC add r2, r0, #0x0 ldrb r4, [r3, #0x4] add r2, #0x62 lsl r1, r7, #0x3 add r2, r2, r1 mov r1, #0x80 tst r1, r4 beq _0204DB3E ldr r1, _0204DBC4 ; =0x000002BB mov r2, #0x1 strb r2, [r0, r1] pop {r3-r7, pc} _0204DB3E: mov r0, #0x4 ldrsb r1, [r2, r0] sub r0, r0, #0x5 cmp r1, r0 bne _0204DB5A ldr r4, _0204DBC8 ; =0x00000132 mov r1, #0x0 mov r0, #0x1 _0204DB4E: ldr r6, [r5, #0x0] add r6, r6, r1 add r1, r1, #0x1 strb r0, [r6, r4] cmp r1, #0x8 blt _0204DB4E _0204DB5A: mov r0, #0x0 strh r0, [r2, #0x0] strh r0, [r2, #0x2] ldrh r1, [r2, #0x0] ldrb r0, [r3, #0x0] add r0, r1, r0 strh r0, [r2, #0x0] ldrb r1, [r3, #0x1] ldrh r0, [r2, #0x0] lsl r4, r1, #0x8 mov r1, #0xff lsl r1, r1, #0x8 and r4, r1 add r0, r0, r4 strh r0, [r2, #0x0] ldrh r4, [r2, #0x2] ldrb r0, [r3, #0x2] add r0, r4, r0 strh r0, [r2, #0x2] ldrb r4, [r3, #0x3] ldrh r0, [r2, #0x2] lsl r4, r4, #0x8 and r1, r4 add r0, r0, r1 strh r0, [r2, #0x2] ldrb r1, [r3, #0x4] mov r0, #0xf ldr r3, _0204DBC0 ; =0x021C5A68 and r0, r1 strb r0, [r2, #0x4] ldr r1, [r3, #0x0] mov r0, #0x1 add r1, r1, r7 add r1, #0x48 strb r0, [r1, #0x0] ldr r1, [r3, #0x0] add r4, r1, r7 ldr r1, _0204DBC8 ; =0x00000132 strb r0, [r4, r1] ldr r0, [r3, #0x0] ldrh r1, [r2, #0x0] ldrh r2, [r2, #0x2] ldr r0, [r0, #0x54] bl FUN_0204A6B4 cmp r0, #0x0 beq _0204DBBC bl ErrorHandling _0204DBBC: pop {r3-r7, pc} nop _0204DBC0: .word 0x021C5A68 _0204DBC4: .word 0x000002BB _0204DBC8: .word 0x00000132 thumb_func_start FUN_0204DBCC FUN_0204DBCC: ; 0x0204DBCC push {r3-r5, lr} ldr r0, _0204DC28 ; =0x021C5A68 ldrb r4, [r2, #0x0] ldr r0, [r0, #0x0] cmp r0, #0x0 beq _0204DC24 bl FUN_02031190 cmp r4, r0 beq _0204DC24 ldr r0, _0204DC28 ; =0x021C5A68 ldr r1, [r0, #0x0] ldr r0, _0204DC2C ; =0x000002BE ldrb r0, [r1, r0] cmp r0, #0x0 beq _0204DC14 add r0, r4, #0x0 bl FUN_0223E554 ldr r0, _0204DC28 ; =0x021C5A68 ldr r3, [r0, #0x0] ldr r0, _0204DC30 ; =0x000002BD ldrb r0, [r3, r0] cmp r0, #0x0 bne _0204DC14 lsl r5, r4, #0x3 add r1, r3, r5 ldr r0, [r3, #0x54] add r3, r3, r5 add r1, #0xa2 add r3, #0xa4 ldrh r1, [r1, #0x0] ldrh r3, [r3, #0x0] mov r2, #0x0 bl FUN_021E5B30 _0204DC14: mov r1, #0x0 add r0, r4, #0x0 add r2, r1, #0x0 bl FUN_0204D43C add r0, r4, #0x0 bl FUN_0202DE78 _0204DC24: pop {r3-r5, pc} nop _0204DC28: .word 0x021C5A68 _0204DC2C: .word 0x000002BE _0204DC30: .word 0x000002BD thumb_func_start FUN_0204DC34 FUN_0204DC34: ; 0x0204DC34 mov r0, #0x5 bx lr thumb_func_start FUN_0204DC38 FUN_0204DC38: ; 0x0204DC38 push {r3-r5, lr} ldrb r1, [r2, #0x0] mov r0, #0xf add r3, r1, #0x0 and r3, r0 ldr r0, _0204DCB0 ; =0x021C5A68 ldr r1, [r0, #0x0] cmp r1, #0x0 beq _0204DCAC ldrb r4, [r2, #0x2] add r1, #0xa2 lsl r0, r3, #0x3 add r1, r1, r0 mov r0, #0x80 tst r0, r4 beq _0204DC5C mov r0, #0x1 b _0204DC5E _0204DC5C: mov r0, #0x0 _0204DC5E: strb r0, [r1, #0x7] mov r0, #0x0 strh r0, [r1, #0x0] strh r0, [r1, #0x2] ldrh r4, [r1, #0x0] ldrb r0, [r2, #0x1] add r0, r4, r0 strh r0, [r1, #0x0] ldrb r4, [r2, #0x2] ldrh r0, [r1, #0x0] lsl r5, r4, #0x8 mov r4, #0x1 lsl r4, r4, #0x8 and r5, r4 add r0, r0, r5 strh r0, [r1, #0x0] ldrh r5, [r1, #0x2] ldrb r0, [r2, #0x3] add r0, r5, r0 strh r0, [r1, #0x2] ldrb r5, [r2, #0x2] ldrh r0, [r1, #0x2] lsl r5, r5, #0x7 and r4, r5 add r0, r0, r4 strh r0, [r1, #0x2] ldrb r0, [r2, #0x0] asr r4, r0, #0x4 mov r0, #0x3 and r4, r0 strb r4, [r1, #0x4] ldrb r2, [r2, #0x0] asr r2, r2, #0x6 and r0, r2 strb r0, [r1, #0x5] lsl r0, r3, #0x18 lsr r0, r0, #0x18 bl FUN_0204D328 _0204DCAC: pop {r3-r5, pc} nop _0204DCB0: .word 0x021C5A68 thumb_func_start FUN_0204DCB4 FUN_0204DCB4: ; 0x0204DCB4 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _0204DD10 ; =0x021C5A68 ldr r0, [r0, #0x0] ldr r0, [r0, #0x54] bl FUN_020377AC bl FUN_02026CC4 add r4, r0, #0x0 ldr r0, _0204DD10 ; =0x021C5A68 ldr r0, [r0, #0x0] ldr r0, [r0, #0x54] bl FUN_020377AC bl FUN_02026CB4 ldr r0, _0204DD10 ; =0x021C5A68 ldr r1, [r0, #0x0] ldr r0, _0204DD14 ; =0x000002BE ldrb r0, [r1, r0] cmp r0, #0x0 beq _0204DD0C bl FUN_02031190 cmp r5, r0 bne _0204DD0C add r0, r4, #0x0 bl FUN_020266B0 add r0, r4, #0x0 bl FUN_020266C8 cmp r0, #0x32 bne _0204DD0C ldr r0, _0204DD10 ; =0x021C5A68 ldr r0, [r0, #0x0] ldr r0, [r0, #0x54] ldr r0, [r0, #0xc] bl FUN_02029FC8 mov r1, #0x25 bl FUN_0202A170 _0204DD0C: pop {r3-r5, pc} nop _0204DD10: .word 0x021C5A68 _0204DD14: .word 0x000002BE thumb_func_start FUN_0204DD18 FUN_0204DD18: ; 0x0204DD18 push {r3-r7, lr} sub sp, #0x10 ldr r4, _0204DE24 ; =0x020F5808 add r6, r3, #0x0 add r5, r0, #0x0 add r3, sp, #0x4 mov r2, #0xc _0204DD26: ldrb r0, [r4, #0x0] add r4, r4, #0x1 strb r0, [r3, #0x0] add r3, r3, #0x1 sub r2, r2, #0x1 bne _0204DD26 ldr r0, _0204DE28 ; =0x021C5A68 ldr r2, _0204DE2C ; =0x00000102 ldr r0, [r0, #0x0] add r3, r0, r5 ldrsb r3, [r3, r2] mov r2, #0x0 mvn r2, r2 cmp r3, r2 beq _0204DD4E lsl r7, r5, #0x2 add r0, r0, r7 ldr r0, [r0, #0x8] cmp r0, #0x0 bne _0204DD54 _0204DD4E: add sp, #0x10 mov r0, #0x0 pop {r3-r7, pc} _0204DD54: cmp r1, #0x0 bne _0204DD5E add sp, #0x10 mov r0, #0x1 pop {r3-r7, pc} _0204DD5E: bl FUN_020553A0 add r4, r0, #0x0 ldr r0, _0204DE28 ; =0x021C5A68 ldr r1, [r0, #0x0] add r0, r7, #0x0 add r0, r1, r0 ldr r0, [r0, #0x8] bl FUN_020552F8 str r0, [sp, #0x0] ldr r0, _0204DE28 ; =0x021C5A68 ldr r0, [r0, #0x0] add r1, r0, r5 ldr r0, _0204DE2C ; =0x00000102 ldrsb r0, [r1, r0] bl FUN_0204F610 ldr r1, [sp, #0x0] cmp r1, r0 beq _0204DDB4 add r0, r4, #0x0 mov r1, #0x80 bl FUN_02058418 ldr r0, _0204DE28 ; =0x021C5A68 ldr r0, [r0, #0x0] add r1, r0, r5 ldr r0, _0204DE2C ; =0x00000102 ldrsb r0, [r1, r0] bl FUN_0204F610 add r1, r0, #0x0 ldr r0, _0204DE28 ; =0x021C5A68 ldr r0, [r0, #0x0] add r0, r0, r7 ldr r0, [r0, #0x8] bl FUN_02055304 add r0, r4, #0x0 mov r1, #0x80 bl FUN_02058410 _0204DDB4: add r0, r4, #0x0 bl FUN_0205AE28 add r0, r4, #0x0 bl FUN_0205AD98 cmp r0, #0x1 bne _0204DE1C add r0, r5, #0x0 bl FUN_0204DCB4 cmp r6, #0x0 beq _0204DDD8 cmp r6, #0x1 beq _0204DDEE cmp r6, #0x2 beq _0204DE06 b _0204DE1C _0204DDD8: ldr r1, _0204DE28 ; =0x021C5A68 add r0, r4, #0x0 ldr r1, [r1, #0x0] add r2, r1, r5 ldr r1, _0204DE2C ; =0x00000102 ldrsb r2, [r2, r1] add r1, sp, #0x4 ldrb r1, [r1, r2] bl FUN_0205ADDC b _0204DE1C _0204DDEE: ldr r1, _0204DE28 ; =0x021C5A68 add r0, r4, #0x0 ldr r1, [r1, #0x0] add r2, r1, r5 ldr r1, _0204DE2C ; =0x00000102 ldrsb r1, [r2, r1] add r2, r1, #0x4 add r1, sp, #0x4 ldrb r1, [r1, r2] bl FUN_0205ADDC b _0204DE1C _0204DE06: ldr r1, _0204DE28 ; =0x021C5A68 add r0, r4, #0x0 ldr r1, [r1, #0x0] add r2, r1, r5 ldr r1, _0204DE2C ; =0x00000102 ldrsb r2, [r2, r1] add r1, sp, #0x4 add r2, #0x8 ldrb r1, [r1, r2] bl FUN_0205ADDC _0204DE1C: mov r0, #0x1 add sp, #0x10 pop {r3-r7, pc} nop _0204DE24: .word 0x020F5808 _0204DE28: .word 0x021C5A68 _0204DE2C: .word 0x00000102 thumb_func_start FUN_0204DE30 FUN_0204DE30: ; 0x0204DE30 push {r4-r7, lr} sub sp, #0x1c add r4, r0, #0x0 ldr r0, _0204E06C ; =0x021C5A68 lsl r1, r4, #0x3 ldr r0, [r0, #0x0] add r2, r0, #0x0 add r2, #0xa2 add r5, r2, r1 ldr r1, _0204E070 ; =0x00000142 add r2, r0, r1 ldrb r1, [r2, r4] cmp r1, #0x0 beq _0204DE54 sub r0, r1, #0x1 add sp, #0x1c strb r0, [r2, r4] pop {r4-r7, pc} _0204DE54: ldrh r2, [r5, #0x0] ldr r1, _0204E074 ; =0x0000FFFF cmp r2, r1 beq _0204DF08 ldrh r2, [r5, #0x2] cmp r2, r1 beq _0204DF08 ldr r1, _0204E078 ; =0x000002BD ldrb r2, [r0, r1] cmp r2, #0x0 bne _0204DF08 add r1, r1, #0x1 ldrb r0, [r0, r1] cmp r0, #0x0 bne _0204DE86 bl FUN_02031190 cmp r4, r0 bne _0204DE86 ldr r0, _0204E06C ; =0x021C5A68 ldr r1, [r0, #0x0] ldr r0, _0204E07C ; =0x000002C1 ldrb r0, [r1, r0] cmp r0, #0x0 beq _0204DF08 _0204DE86: ldr r0, _0204E06C ; =0x021C5A68 ldr r1, [r0, #0x0] lsl r0, r4, #0x2 add r0, r1, r0 ldr r0, [r0, #0x8] str r0, [sp, #0x18] cmp r0, #0x0 bne _0204DE98 b _0204E068 _0204DE98: bl FUN_02055320 ldrh r1, [r5, #0x0] sub r0, r0, r1 str r0, [sp, #0x10] ldr r0, [sp, #0x18] bl FUN_0205532C ldrh r1, [r5, #0x2] sub r7, r0, r1 ldr r0, [sp, #0x18] bl FUN_020552F8 str r0, [sp, #0xc] ldr r0, [sp, #0x10] cmp r0, #0x0 bne _0204DEC2 cmp r7, #0x0 bne _0204DEC2 mov r6, #0x0 b _0204DEEC _0204DEC2: ldr r0, [sp, #0x10] blx FUN_020DE3F0 add r6, r0, #0x0 add r0, r7, #0x0 blx FUN_020DE3F0 cmp r6, r0 ble _0204DEE2 ldr r0, [sp, #0x10] cmp r0, #0x0 ble _0204DEDE mov r6, #0x20 b _0204DEEC _0204DEDE: mov r6, #0x10 b _0204DEEC _0204DEE2: cmp r7, #0x0 ble _0204DEEA mov r6, #0x40 b _0204DEEC _0204DEEA: mov r6, #0x80 _0204DEEC: add r0, r7, #0x0 blx FUN_020DE3F0 ldr r0, [sp, #0x10] blx FUN_020DE3F0 ldrb r3, [r5, #0x5] add r0, r4, #0x0 add r1, r6, #0x0 add r2, r6, #0x0 bl FUN_0204DD18 cmp r0, #0x0 beq _0204DF0A _0204DF08: b _0204E068 _0204DF0A: ldrb r0, [r5, #0x5] mov r7, #0xff str r0, [sp, #0x14] cmp r0, #0x3 bhi _0204DF46 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0204DF20: ; jump table (using 16-bit offset) .short _0204DF28 - _0204DF20 - 2; case 0 .short _0204DF2E - _0204DF20 - 2; case 1 .short _0204DF3C - _0204DF20 - 2; case 2 .short _0204DF42 - _0204DF20 - 2; case 3 _0204DF28: mov r0, #0x5 str r0, [sp, #0x8] b _0204DF46 _0204DF2E: mov r0, #0x4 str r0, [sp, #0x8] mov r0, #0x2 orr r0, r6 lsl r0, r0, #0x10 lsr r6, r0, #0x10 b _0204DF46 _0204DF3C: mov r0, #0x2 str r0, [sp, #0x8] b _0204DF46 _0204DF42: mov r0, #0x1 str r0, [sp, #0x8] _0204DF46: ldr r0, _0204E06C ; =0x021C5A68 ldr r1, [r0, #0x0] mov r0, #0xb lsl r0, r0, #0x6 ldrb r0, [r1, r0] cmp r0, #0x0 beq _0204DF6C bl FUN_02031190 cmp r4, r0 bne _0204DF6C ldr r0, _0204E06C ; =0x021C5A68 ldr r2, [r0, #0x0] mov r0, #0xb lsl r0, r0, #0x6 ldrb r1, [r2, r0] sub r1, r1, #0x1 strb r1, [r2, r0] b _0204E00C _0204DF6C: bl FUN_02030FE0 cmp r0, #0x0 bne _0204DFA0 ldr r0, _0204E06C ; =0x021C5A68 ldr r1, [r0, #0x0] ldr r0, _0204E080 ; =0x000002BE ldrb r0, [r1, r0] cmp r0, #0x0 beq _0204DFA0 bl FUN_02031190 cmp r4, r0 bne _0204DFA0 mov r0, #0x1 str r0, [sp, #0x0] mov r0, #0x0 str r0, [sp, #0x4] ldr r0, [sp, #0x18] ldr r3, [sp, #0x8] add r1, r6, #0x0 add r2, r6, #0x0 bl FUN_02057194 add r7, r0, #0x0 b _0204E00C _0204DFA0: mov r0, #0x2 add r1, r6, #0x0 bic r1, r0 bne _0204DFDE ldrb r0, [r5, #0x7] cmp r0, #0x0 beq _0204DFDE mov r0, #0x3 str r0, [sp, #0x14] mov r0, #0x4 ldrsb r0, [r5, r0] cmp r0, #0x3 bhi _0204DFD2 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0204DFC6: ; jump table (using 16-bit offset) .short _0204DFCE - _0204DFC6 - 2; case 0 .short _0204DFD2 - _0204DFC6 - 2; case 1 .short _0204DFD6 - _0204DFC6 - 2; case 2 .short _0204DFDA - _0204DFC6 - 2; case 3 _0204DFCE: mov r7, #0x1c b _0204E00C _0204DFD2: mov r7, #0x1d b _0204E00C _0204DFD6: mov r7, #0x1e b _0204E00C _0204DFDA: mov r7, #0x1f b _0204E00C _0204DFDE: cmp r1, #0x0 bne _0204DFF6 mov r0, #0x4 ldrsb r0, [r5, r0] ldr r1, [sp, #0xc] cmp r0, r1 beq _0204DFF6 mov r1, #0x24 bl FUN_0205AFDC add r7, r0, #0x0 b _0204E00C _0204DFF6: mov r0, #0x1 str r0, [sp, #0x0] mov r0, #0x0 str r0, [sp, #0x4] ldr r0, [sp, #0x18] ldr r3, [sp, #0x8] add r1, r6, #0x0 add r2, r6, #0x0 bl FUN_02057194 add r7, r0, #0x0 _0204E00C: ldr r0, [sp, #0x18] bl FUN_02057254 cmp r0, #0x0 bne _0204E020 ldr r0, [sp, #0x18] bl FUN_020570C4 cmp r0, #0x0 beq _0204E068 _0204E020: cmp r7, #0xff beq _0204E068 ldr r0, [sp, #0x18] add r1, r7, #0x0 bl FUN_02057260 mov r0, #0x2 bic r6, r0 beq _0204E068 ldr r0, _0204E06C ; =0x021C5A68 ldr r0, [r0, #0x0] add r1, r0, r4 ldr r0, _0204E070 ; =0x00000142 ldrb r0, [r1, r0] cmp r0, #0x0 bne _0204E050 ldr r0, [sp, #0x14] bl FUN_0204D870 ldr r1, _0204E06C ; =0x021C5A68 ldr r1, [r1, #0x0] add r2, r1, r4 ldr r1, _0204E070 ; =0x00000142 strb r0, [r2, r1] _0204E050: ldr r0, _0204E06C ; =0x021C5A68 ldr r1, [r0, #0x0] ldr r0, _0204E070 ; =0x00000142 add r1, r1, r0 ldrb r0, [r1, r4] cmp r0, #0x0 beq _0204E062 sub r0, r0, #0x1 strb r0, [r1, r4] _0204E062: add r0, r4, #0x0 bl FUN_0204DCB4 _0204E068: add sp, #0x1c pop {r4-r7, pc} .balign 4 _0204E06C: .word 0x021C5A68 _0204E070: .word 0x00000142 _0204E074: .word 0x0000FFFF _0204E078: .word 0x000002BD _0204E07C: .word 0x000002C1 _0204E080: .word 0x000002BE thumb_func_start FUN_0204E084 FUN_0204E084: ; 0x0204E084 push {r3-r7, lr} sub sp, #0x8 add r4, r1, #0x0 ldr r1, _0204E16C ; =0x021C5A68 add r5, r0, #0x0 ldr r2, [r1, #0x0] ldr r1, _0204E170 ; =0x0000010A add r2, r2, r1 ldrb r1, [r2, r5] cmp r1, #0x0 bne _0204E0A0 add sp, #0x8 mov r0, #0x0 pop {r3-r7, pc} _0204E0A0: cmp r1, #0xff bne _0204E0AA add sp, #0x8 mov r0, #0x1 pop {r3-r7, pc} _0204E0AA: sub r1, r1, #0x1 strb r1, [r2, r5] cmp r4, #0x1 bne _0204E0B8 add sp, #0x8 mov r0, #0x1 pop {r3-r7, pc} _0204E0B8: bl FUN_0204E544 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_0204E598 str r0, [sp, #0x0] ldr r0, _0204E16C ; =0x021C5A68 ldr r0, [r0, #0x0] add r1, r0, r5 ldr r0, _0204E174 ; =0x00000112 ldrb r0, [r1, r0] bl FUN_02059BF4 add r7, r6, r0 ldr r0, _0204E16C ; =0x021C5A68 ldr r0, [r0, #0x0] add r1, r0, r5 ldr r0, _0204E174 ; =0x00000112 ldrb r0, [r1, r0] bl FUN_02059C00 ldr r1, [sp, #0x0] add r6, r1, r0 ldr r0, _0204E16C ; =0x021C5A68 ldr r0, [r0, #0x0] add r1, r0, r5 ldr r0, _0204E170 ; =0x0000010A ldrb r0, [r1, r0] cmp r0, #0x0 beq _0204E110 add r0, r7, #0x0 add r1, r6, #0x0 add r2, r5, #0x0 bl FUN_0204D7B0 cmp r0, #0x0 beq _0204E110 ldr r1, _0204E16C ; =0x021C5A68 mov r0, #0x1 ldr r1, [r1, #0x0] add r2, r1, r5 ldr r1, _0204E170 ; =0x0000010A strb r0, [r2, r1] _0204E110: ldr r0, _0204E16C ; =0x021C5A68 ldr r1, [r0, #0x0] ldr r0, _0204E170 ; =0x0000010A add r2, r1, r5 ldrb r0, [r2, r0] cmp r0, #0x1 bne _0204E124 add sp, #0x8 mov r0, #0x1 pop {r3-r7, pc} _0204E124: cmp r0, #0x0 bne _0204E13E mov r1, #0x1 add r0, sp, #0x4 strb r1, [r0, #0x0] add r0, r5, #0x0 add r2, sp, #0x4 mov r3, #0x0 bl FUN_0224089C add sp, #0x8 mov r0, #0x1 pop {r3-r7, pc} _0204E13E: add r1, #0x62 lsl r2, r5, #0x3 add r0, r1, r2 strh r7, [r1, r2] strh r6, [r0, #0x2] cmp r4, #0x2 beq _0204E156 cmp r4, #0x4 beq _0204E15C cmp r4, #0x8 beq _0204E162 b _0204E166 _0204E156: mov r1, #0x0 strb r1, [r0, #0x5] b _0204E166 _0204E15C: mov r1, #0x1 strb r1, [r0, #0x5] b _0204E166 _0204E162: mov r1, #0x2 strb r1, [r0, #0x5] _0204E166: mov r0, #0x1 add sp, #0x8 pop {r3-r7, pc} .balign 4 _0204E16C: .word 0x021C5A68 _0204E170: .word 0x0000010A _0204E174: .word 0x00000112 thumb_func_start FUN_0204E178 FUN_0204E178: ; 0x0204E178 push {r3-r7, lr} add r5, r0, #0x0 ldr r0, _0204E1DC ; =0x021C5A68 add r4, r1, #0x0 ldr r1, [r0, #0x0] lsl r0, r5, #0x3 add r1, #0x62 add r6, r1, r0 add r0, r4, #0x0 add r7, r2, #0x0 bl FUN_0204F610 ldr r1, _0204E1DC ; =0x021C5A68 strb r0, [r6, #0x4] ldr r0, [r1, #0x0] add r2, r0, r5 ldr r0, _0204E1E0 ; =0x00000112 cmp r7, #0x0 strb r4, [r2, r0] beq _0204E1B6 ldr r2, [r1, #0x0] mov r3, #0x1 add r2, r2, r5 add r0, #0x18 strb r3, [r2, r0] ldr r0, [r1, #0x0] mov r2, #0x2d add r1, r0, r5 add r0, r2, #0x0 add r0, #0xdd b _0204E1CA _0204E1B6: ldr r2, [r1, #0x0] mov r3, #0x0 add r2, r2, r5 add r0, #0x18 strb r3, [r2, r0] ldr r0, [r1, #0x0] mov r2, #0x1b add r1, r0, r5 add r0, r2, #0x0 add r0, #0xef _0204E1CA: strb r2, [r1, r0] ldr r0, _0204E1DC ; =0x021C5A68 mov r2, #0x1 ldr r0, [r0, #0x0] add r1, r0, r5 ldr r0, _0204E1E4 ; =0x00000132 strb r2, [r1, r0] pop {r3-r7, pc} nop _0204E1DC: .word 0x021C5A68 _0204E1E0: .word 0x00000112 _0204E1E4: .word 0x00000132 thumb_func_start FUN_0204E1E8 FUN_0204E1E8: ; 0x0204E1E8 ldr r1, _0204E1F8 ; =0x021C5A68 mov r2, #0x0 ldr r1, [r1, #0x0] add r1, r1, r0 ldr r0, _0204E1FC ; =0x0000010A strb r2, [r1, r0] bx lr nop _0204E1F8: .word 0x021C5A68 _0204E1FC: .word 0x0000010A thumb_func_start FUN_0204E200 FUN_0204E200: ; 0x0204E200 ldr r1, _0204E210 ; =0x021C5A68 mov r2, #0xff ldr r1, [r1, #0x0] add r1, r1, r0 add r0, r2, #0x0 add r0, #0xb strb r2, [r1, r0] bx lr .balign 4 _0204E210: .word 0x021C5A68 thumb_func_start FUN_0204E214 FUN_0204E214: ; 0x0204E214 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, _0204E24C ; =0x021C5A68 add r4, r1, #0x0 ldr r1, [r0, #0x0] lsl r0, r5, #0x2 add r0, r1, r0 ldr r0, [r0, #0x8] cmp r0, #0x0 beq _0204E248 bl FUN_020553A0 mov r1, #0x80 add r6, r0, #0x0 bl FUN_02058410 mov r1, #0x1 add r0, r6, #0x0 lsl r1, r1, #0x8 bl FUN_02058410 ldr r0, _0204E24C ; =0x021C5A68 ldr r0, [r0, #0x0] add r1, r0, r5 ldr r0, _0204E250 ; =0x00000102 strb r4, [r1, r0] _0204E248: pop {r4-r6, pc} nop _0204E24C: .word 0x021C5A68 _0204E250: .word 0x00000102 thumb_func_start FUN_0204E254 FUN_0204E254: ; 0x0204E254 push {r3-r5, lr} add r4, r0, #0x0 ldr r0, _0204E2A0 ; =0x021C5A68 ldr r1, [r0, #0x0] lsl r0, r4, #0x2 add r0, r1, r0 ldr r0, [r0, #0x8] cmp r0, #0x0 beq _0204E29E add r2, r1, r4 ldr r1, _0204E2A4 ; =0x00000102 ldrsb r2, [r2, r1] mov r1, #0x0 mvn r1, r1 cmp r2, r1 beq _0204E29E bl FUN_020553A0 add r5, r0, #0x0 bl FUN_0205AE50 add r0, r5, #0x0 mov r1, #0x80 bl FUN_02058418 mov r1, #0x1 add r0, r5, #0x0 lsl r1, r1, #0x8 bl FUN_02058418 ldr r0, _0204E2A0 ; =0x021C5A68 mov r2, #0x0 ldr r0, [r0, #0x0] mvn r2, r2 add r1, r0, r4 ldr r0, _0204E2A4 ; =0x00000102 strb r2, [r1, r0] _0204E29E: pop {r3-r5, pc} .balign 4 _0204E2A0: .word 0x021C5A68 _0204E2A4: .word 0x00000102 thumb_func_start FUN_0204E2A8 FUN_0204E2A8: ; 0x0204E2A8 mov r0, #0x4 bx lr thumb_func_start FUN_0204E2AC FUN_0204E2AC: ; 0x0204E2AC ldr r3, _0204E2B0 ; =FUN_0204F7FC bx r3 .balign 4 _0204E2B0: .word FUN_0204F7FC thumb_func_start FUN_0204E2B4 FUN_0204E2B4: ; 0x0204E2B4 ldr r3, _0204E2B8 ; =FUN_0204F7FC bx r3 .balign 4 _0204E2B8: .word FUN_0204F7FC thumb_func_start FUN_0204E2BC FUN_0204E2BC: ; 0x0204E2BC ldr r3, _0204E2C4 ; =FUN_0204F774 mov r0, #0x2 bx r3 nop _0204E2C4: .word FUN_0204F774 thumb_func_start FUN_0204E2C8 FUN_0204E2C8: ; 0x0204E2C8 ldr r3, _0204E2D0 ; =FUN_0204F774 mov r0, #0x20 bx r3 nop _0204E2D0: .word FUN_0204F774 thumb_func_start FUN_0204E2D4 FUN_0204E2D4: ; 0x0204E2D4 ldr r3, _0204E2DC ; =FUN_0204F774 mov r0, #0x1 bx r3 nop _0204E2DC: .word FUN_0204F774 thumb_func_start FUN_0204E2E0 FUN_0204E2E0: ; 0x0204E2E0 push {r3, lr} add r1, sp, #0x0 strb r0, [r1, #0x0] mov r0, #0x1a add r1, sp, #0x0 bl FUN_02030C4C pop {r3, pc} thumb_func_start FUN_0204E2F0 FUN_0204E2F0: ; 0x0204E2F0 ldr r3, _0204E2F8 ; =0x0223E4BD ldrb r0, [r2, #0x0] bx r3 nop _0204E2F8: .word 0x0223E4BD thumb_func_start FUN_0204E2FC FUN_0204E2FC: ; 0x0204E2FC push {r3, lr} bl FUN_02031280 cmp r0, #0x0 beq _0204E30A mov r0, #0x1 pop {r3, pc} _0204E30A: ldr r0, _0204E344 ; =0x021C5A68 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _0204E316 mov r0, #0x0 pop {r3, pc} _0204E316: bl FUN_02031190 bl FUN_02030E7C cmp r0, #0x0 bne _0204E326 mov r0, #0x0 pop {r3, pc} _0204E326: ldr r0, _0204E344 ; =0x021C5A68 ldr r1, [r0, #0x0] ldr r0, _0204E348 ; =0x000002BE ldrb r0, [r1, r0] cmp r0, #0x0 beq _0204E33E bl FUN_0204FE5C cmp r0, #0x0 bne _0204E33E mov r0, #0x0 pop {r3, pc} _0204E33E: mov r0, #0x1 pop {r3, pc} nop _0204E344: .word 0x021C5A68 _0204E348: .word 0x000002BE thumb_func_start FUN_0204E34C FUN_0204E34C: ; 0x0204E34C ldr r1, _0204E358 ; =0x021C5A68 ldr r1, [r1, #0x0] add r0, r1, r0 add r0, #0x48 ldrb r0, [r0, #0x0] bx lr .balign 4 _0204E358: .word 0x021C5A68 thumb_func_start FUN_0204E35C FUN_0204E35C: ; 0x0204E35C push {r4, lr} add r4, r0, #0x0 ldr r0, _0204E39C ; =0x021C5A68 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _0204E36C ldr r0, _0204E3A0 ; =0x0000FFFF pop {r4, pc} _0204E36C: bl FUN_02031190 cmp r4, r0 bne _0204E382 ldr r0, _0204E39C ; =0x021C5A68 ldr r1, [r0, #0x0] lsl r0, r4, #0x3 add r0, r1, r0 add r0, #0xa2 ldrh r0, [r0, #0x0] pop {r4, pc} _0204E382: bl FUN_0204E2FC cmp r0, #0x0 beq _0204E398 ldr r0, _0204E39C ; =0x021C5A68 ldr r1, [r0, #0x0] lsl r0, r4, #0x3 add r0, r1, r0 add r0, #0xa2 ldrh r0, [r0, #0x0] pop {r4, pc} _0204E398: ldr r0, _0204E3A0 ; =0x0000FFFF pop {r4, pc} .balign 4 _0204E39C: .word 0x021C5A68 _0204E3A0: .word 0x0000FFFF thumb_func_start FUN_0204E3A4 FUN_0204E3A4: ; 0x0204E3A4 push {r4, lr} add r4, r0, #0x0 ldr r0, _0204E3E4 ; =0x021C5A68 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _0204E3B4 ldr r0, _0204E3E8 ; =0x0000FFFF pop {r4, pc} _0204E3B4: bl FUN_02031190 cmp r4, r0 bne _0204E3CA ldr r0, _0204E3E4 ; =0x021C5A68 ldr r1, [r0, #0x0] lsl r0, r4, #0x3 add r0, r1, r0 add r0, #0xa4 ldrh r0, [r0, #0x0] pop {r4, pc} _0204E3CA: bl FUN_0204E2FC cmp r0, #0x0 beq _0204E3E0 ldr r0, _0204E3E4 ; =0x021C5A68 ldr r1, [r0, #0x0] lsl r0, r4, #0x3 add r0, r1, r0 add r0, #0xa4 ldrh r0, [r0, #0x0] pop {r4, pc} _0204E3E0: ldr r0, _0204E3E8 ; =0x0000FFFF pop {r4, pc} .balign 4 _0204E3E4: .word 0x021C5A68 _0204E3E8: .word 0x0000FFFF thumb_func_start FUN_0204E3EC FUN_0204E3EC: ; 0x0204E3EC push {r4, lr} add r4, r0, #0x0 ldr r0, _0204E438 ; =0x021C5A68 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _0204E3FC ldr r0, _0204E43C ; =0x0000FFFF pop {r4, pc} _0204E3FC: bl FUN_02031190 cmp r4, r0 bne _0204E412 ldr r0, _0204E438 ; =0x021C5A68 ldr r1, [r0, #0x0] lsl r0, r4, #0x3 add r0, r1, r0 add r0, #0xa2 ldrh r0, [r0, #0x0] pop {r4, pc} _0204E412: bl FUN_0204E2FC cmp r0, #0x0 beq _0204E428 ldr r0, _0204E438 ; =0x021C5A68 ldr r1, [r0, #0x0] add r0, r1, r4 add r0, #0x48 ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _0204E42C _0204E428: ldr r0, _0204E43C ; =0x0000FFFF pop {r4, pc} _0204E42C: lsl r0, r4, #0x3 add r0, r1, r0 add r0, #0xa2 ldrh r0, [r0, #0x0] pop {r4, pc} nop _0204E438: .word 0x021C5A68 _0204E43C: .word 0x0000FFFF thumb_func_start FUN_0204E440 FUN_0204E440: ; 0x0204E440 push {r4, lr} add r4, r0, #0x0 ldr r0, _0204E48C ; =0x021C5A68 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _0204E450 ldr r0, _0204E490 ; =0x0000FFFF pop {r4, pc} _0204E450: bl FUN_02031190 cmp r4, r0 bne _0204E466 ldr r0, _0204E48C ; =0x021C5A68 ldr r1, [r0, #0x0] lsl r0, r4, #0x3 add r0, r1, r0 add r0, #0xa4 ldrh r0, [r0, #0x0] pop {r4, pc} _0204E466: bl FUN_0204E2FC cmp r0, #0x0 beq _0204E47C ldr r0, _0204E48C ; =0x021C5A68 ldr r1, [r0, #0x0] add r0, r1, r4 add r0, #0x48 ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _0204E480 _0204E47C: ldr r0, _0204E490 ; =0x0000FFFF pop {r4, pc} _0204E480: lsl r0, r4, #0x3 add r0, r1, r0 add r0, #0xa4 ldrh r0, [r0, #0x0] pop {r4, pc} nop _0204E48C: .word 0x021C5A68 _0204E490: .word 0x0000FFFF thumb_func_start FUN_0204E494 FUN_0204E494: ; 0x0204E494 ldr r1, _0204E4AC ; =0x021C5A68 ldr r1, [r1, #0x0] cmp r1, #0x0 beq _0204E4A6 lsl r0, r0, #0x3 add r0, r1, r0 add r0, #0xa2 ldrh r0, [r0, #0x0] bx lr _0204E4A6: ldr r0, _0204E4B0 ; =0x0000FFFF bx lr nop _0204E4AC: .word 0x021C5A68 _0204E4B0: .word 0x0000FFFF thumb_func_start FUN_0204E4B4 FUN_0204E4B4: ; 0x0204E4B4 ldr r1, _0204E4CC ; =0x021C5A68 ldr r1, [r1, #0x0] cmp r1, #0x0 beq _0204E4C6 lsl r0, r0, #0x3 add r0, r1, r0 add r0, #0xa4 ldrh r0, [r0, #0x0] bx lr _0204E4C6: ldr r0, _0204E4D0 ; =0x0000FFFF bx lr nop _0204E4CC: .word 0x021C5A68 _0204E4D0: .word 0x0000FFFF thumb_func_start FUN_0204E4D4 FUN_0204E4D4: ; 0x0204E4D4 push {r4, lr} add r4, r0, #0x0 bl FUN_0204E3EC ldr r1, _0204E504 ; =0x0000FFFF cmp r0, r1 bne _0204E4E6 add r0, r1, #0x0 pop {r4, pc} _0204E4E6: ldr r0, _0204E508 ; =0x021C5A68 lsl r4, r4, #0x3 ldr r0, [r0, #0x0] add r1, r0, r4 mov r0, #0xa6 ldrsb r0, [r1, r0] bl FUN_02059BF4 ldr r1, _0204E508 ; =0x021C5A68 ldr r1, [r1, #0x0] add r1, r1, r4 add r1, #0xa2 ldrh r1, [r1, #0x0] add r0, r1, r0 pop {r4, pc} .balign 4 _0204E504: .word 0x0000FFFF _0204E508: .word 0x021C5A68 thumb_func_start FUN_0204E50C FUN_0204E50C: ; 0x0204E50C push {r4, lr} add r4, r0, #0x0 bl FUN_0204E440 ldr r1, _0204E53C ; =0x0000FFFF cmp r0, r1 bne _0204E51E add r0, r1, #0x0 pop {r4, pc} _0204E51E: ldr r0, _0204E540 ; =0x021C5A68 lsl r4, r4, #0x3 ldr r0, [r0, #0x0] add r1, r0, r4 mov r0, #0xa6 ldrsb r0, [r1, r0] bl FUN_02059C00 ldr r1, _0204E540 ; =0x021C5A68 ldr r1, [r1, #0x0] add r1, r1, r4 add r1, #0xa4 ldrh r1, [r1, #0x0] add r0, r1, r0 pop {r4, pc} .balign 4 _0204E53C: .word 0x0000FFFF _0204E540: .word 0x021C5A68 thumb_func_start FUN_0204E544 FUN_0204E544: ; 0x0204E544 push {r4, lr} add r4, r0, #0x0 ldr r0, _0204E590 ; =0x021C5A68 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _0204E554 ldr r0, _0204E594 ; =0x0000FFFF pop {r4, pc} _0204E554: bl FUN_02031190 cmp r4, r0 bne _0204E56A ldr r0, _0204E590 ; =0x021C5A68 ldr r1, [r0, #0x0] lsl r0, r4, #0x3 add r0, r1, r0 add r0, #0x62 ldrh r0, [r0, #0x0] pop {r4, pc} _0204E56A: bl FUN_0204E2FC cmp r0, #0x0 beq _0204E580 ldr r0, _0204E590 ; =0x021C5A68 ldr r1, [r0, #0x0] add r0, r1, r4 add r0, #0x48 ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _0204E584 _0204E580: ldr r0, _0204E594 ; =0x0000FFFF pop {r4, pc} _0204E584: lsl r0, r4, #0x3 add r0, r1, r0 add r0, #0x62 ldrh r0, [r0, #0x0] pop {r4, pc} nop _0204E590: .word 0x021C5A68 _0204E594: .word 0x0000FFFF thumb_func_start FUN_0204E598 FUN_0204E598: ; 0x0204E598 push {r4, lr} add r4, r0, #0x0 ldr r0, _0204E5E4 ; =0x021C5A68 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _0204E5A8 ldr r0, _0204E5E8 ; =0x0000FFFF pop {r4, pc} _0204E5A8: bl FUN_02031190 cmp r4, r0 bne _0204E5BE ldr r0, _0204E5E4 ; =0x021C5A68 ldr r1, [r0, #0x0] lsl r0, r4, #0x3 add r0, r1, r0 add r0, #0x64 ldrh r0, [r0, #0x0] pop {r4, pc} _0204E5BE: bl FUN_0204E2FC cmp r0, #0x0 beq _0204E5D4 ldr r0, _0204E5E4 ; =0x021C5A68 ldr r1, [r0, #0x0] add r0, r1, r4 add r0, #0x48 ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _0204E5D8 _0204E5D4: ldr r0, _0204E5E8 ; =0x0000FFFF pop {r4, pc} _0204E5D8: lsl r0, r4, #0x3 add r0, r1, r0 add r0, #0x64 ldrh r0, [r0, #0x0] pop {r4, pc} nop _0204E5E4: .word 0x021C5A68 _0204E5E8: .word 0x0000FFFF thumb_func_start FUN_0204E5EC FUN_0204E5EC: ; 0x0204E5EC ldr r1, _0204E604 ; =0x021C5A68 ldr r1, [r1, #0x0] cmp r1, #0x0 beq _0204E5FE lsl r0, r0, #0x3 add r0, r1, r0 add r0, #0x62 ldrh r0, [r0, #0x0] bx lr _0204E5FE: ldr r0, _0204E608 ; =0x0000FFFF bx lr nop _0204E604: .word 0x021C5A68 _0204E608: .word 0x0000FFFF thumb_func_start FUN_0204E60C FUN_0204E60C: ; 0x0204E60C ldr r1, _0204E624 ; =0x021C5A68 ldr r1, [r1, #0x0] cmp r1, #0x0 beq _0204E61E lsl r0, r0, #0x3 add r0, r1, r0 add r0, #0x64 ldrh r0, [r0, #0x0] bx lr _0204E61E: ldr r0, _0204E628 ; =0x0000FFFF bx lr nop _0204E624: .word 0x021C5A68 _0204E628: .word 0x0000FFFF thumb_func_start FUN_0204E62C FUN_0204E62C: ; 0x0204E62C push {r4, lr} add r4, r0, #0x0 bl FUN_0204E544 ldr r1, _0204E65C ; =0x0000FFFF cmp r0, r1 bne _0204E63E add r0, r1, #0x0 pop {r4, pc} _0204E63E: ldr r0, _0204E660 ; =0x021C5A68 lsl r4, r4, #0x3 ldr r0, [r0, #0x0] add r1, r0, r4 mov r0, #0x66 ldrsb r0, [r1, r0] bl FUN_02059BF4 ldr r1, _0204E660 ; =0x021C5A68 ldr r1, [r1, #0x0] add r1, r1, r4 add r1, #0x62 ldrh r1, [r1, #0x0] add r0, r1, r0 pop {r4, pc} .balign 4 _0204E65C: .word 0x0000FFFF _0204E660: .word 0x021C5A68 thumb_func_start FUN_0204E664 FUN_0204E664: ; 0x0204E664 push {r4, lr} add r4, r0, #0x0 bl FUN_0204E598 ldr r1, _0204E694 ; =0x0000FFFF cmp r0, r1 bne _0204E676 add r0, r1, #0x0 pop {r4, pc} _0204E676: ldr r0, _0204E698 ; =0x021C5A68 lsl r4, r4, #0x3 ldr r0, [r0, #0x0] add r1, r0, r4 mov r0, #0x66 ldrsb r0, [r1, r0] bl FUN_02059C00 ldr r1, _0204E698 ; =0x021C5A68 ldr r1, [r1, #0x0] add r1, r1, r4 add r1, #0x64 ldrh r1, [r1, #0x0] add r0, r1, r0 pop {r4, pc} .balign 4 _0204E694: .word 0x0000FFFF _0204E698: .word 0x021C5A68 thumb_func_start FUN_0204E69C FUN_0204E69C: ; 0x0204E69C push {r4, lr} add r4, r0, #0x0 bl FUN_0204E2FC cmp r0, #0x0 beq _0204E6B6 ldr r0, _0204E6C8 ; =0x021C5A68 ldr r1, [r0, #0x0] add r0, r1, r4 add r0, #0x48 ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _0204E6BC _0204E6B6: mov r0, #0x0 mvn r0, r0 pop {r4, pc} _0204E6BC: lsl r0, r4, #0x3 add r1, r1, r0 mov r0, #0xa6 ldrsb r0, [r1, r0] pop {r4, pc} nop _0204E6C8: .word 0x021C5A68 thumb_func_start FUN_0204E6CC FUN_0204E6CC: ; 0x0204E6CC push {r4, lr} add r4, r0, #0x0 bl FUN_0204E2FC cmp r0, #0x0 beq _0204E6E6 ldr r0, _0204E6F8 ; =0x021C5A68 ldr r1, [r0, #0x0] add r0, r1, r4 add r0, #0x48 ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _0204E6EC _0204E6E6: mov r0, #0x0 mvn r0, r0 pop {r4, pc} _0204E6EC: lsl r0, r4, #0x3 add r1, r1, r0 mov r0, #0x66 ldrsb r0, [r1, r0] pop {r4, pc} nop _0204E6F8: .word 0x021C5A68 thumb_func_start FUN_0204E6FC FUN_0204E6FC: ; 0x0204E6FC push {r4, lr} add r4, r1, #0x0 ldr r1, _0204E728 ; =0x021C5A68 lsl r0, r0, #0x3 ldr r1, [r1, #0x0] add r1, r1, r0 mov r0, #0x66 ldrsb r0, [r1, r0] bl FUN_0204F610 ldr r2, _0204E728 ; =0x021C5A68 lsl r1, r4, #0x3 ldr r3, [r2, #0x0] add r1, r3, r1 add r1, #0x66 strb r0, [r1, #0x0] ldr r0, [r2, #0x0] mov r3, #0x1 add r1, r0, r4 ldr r0, _0204E72C ; =0x00000132 strb r3, [r1, r0] pop {r4, pc} .balign 4 _0204E728: .word 0x021C5A68 _0204E72C: .word 0x00000132 thumb_func_start FUN_0204E730 FUN_0204E730: ; 0x0204E730 push {r4, lr} add r4, r1, #0x0 ldr r1, _0204E754 ; =0x021C5A68 lsl r0, r0, #0x3 ldr r1, [r1, #0x0] add r1, r1, r0 mov r0, #0xa6 ldrsb r0, [r1, r0] bl FUN_0204F610 ldr r1, _0204E754 ; =0x021C5A68 ldr r2, [r1, #0x0] lsl r1, r4, #0x3 add r1, r2, r1 add r1, #0xa6 strb r0, [r1, #0x0] pop {r4, pc} nop _0204E754: .word 0x021C5A68 thumb_func_start FUN_0204E758 FUN_0204E758: ; 0x0204E758 push {r4, lr} add r2, r0, #0x0 ldr r0, _0204E774 ; =0x021C5A68 add r4, r1, #0x0 ldr r0, [r0, #0x0] add r1, r2, #0x0 ldr r0, [r0, #0x4] bl FUN_02244D40 add r1, r4, #0x0 bl FUN_02244D98 pop {r4, pc} nop _0204E774: .word 0x021C5A68 thumb_func_start FUN_0204E778 FUN_0204E778: ; 0x0204E778 push {r3, lr} add r1, r0, #0x0 ldr r0, _0204E790 ; =0x021C5A68 ldr r0, [r0, #0x0] ldr r0, [r0, #0x4] bl FUN_02244D40 mov r1, #0x0 bl FUN_02244D98 pop {r3, pc} nop _0204E790: .word 0x021C5A68 thumb_func_start FUN_0204E794 FUN_0204E794: ; 0x0204E794 push {r3-r7, lr} sub sp, #0x8 str r1, [sp, #0x0] ldr r1, _0204E7C8 ; =0x021C5A68 add r6, r3, #0x0 ldr r4, [r1, #0x0] lsl r7, r0, #0x3 add r4, #0x62 add r0, r6, #0x0 str r2, [sp, #0x4] add r5, r4, r7 bl FUN_02059BF4 ldr r1, [sp, #0x0] add r0, r1, r0 strh r0, [r4, r7] add r0, r6, #0x0 bl FUN_02059C00 ldr r1, [sp, #0x4] add r0, r1, r0 strh r0, [r5, #0x2] strb r6, [r5, #0x4] add sp, #0x8 pop {r3-r7, pc} nop _0204E7C8: .word 0x021C5A68 thumb_func_start FUN_0204E7CC FUN_0204E7CC: ; 0x0204E7CC push {r3-r7, lr} add r5, r0, #0x0 ldr r0, _0204E848 ; =0x021C5A68 add r6, r1, #0x0 ldr r0, [r0, #0x0] add r7, r2, #0x0 str r3, [sp, #0x0] cmp r0, #0x0 beq _0204E844 add r2, r0, #0x0 add r2, #0xa2 lsl r1, r5, #0x3 add r4, r2, r1 ldr r1, _0204E84C ; =0x000002BD ldrb r1, [r0, r1] cmp r1, #0x0 bne _0204E7FA ldrh r1, [r4, #0x0] ldrh r3, [r4, #0x2] ldr r0, [r0, #0x54] mov r2, #0x0 bl FUN_021E5B30 _0204E7FA: strh r6, [r4, #0x0] ldr r0, [sp, #0x0] strh r7, [r4, #0x2] strb r0, [r4, #0x4] ldr r0, _0204E848 ; =0x021C5A68 ldr r1, [r0, #0x0] lsl r0, r5, #0x2 add r0, r1, r0 ldr r0, [r0, #0x8] cmp r0, #0x0 beq _0204E81A ldr r3, [sp, #0x0] add r1, r6, #0x0 add r2, r7, #0x0 bl FUN_02055514 _0204E81A: ldr r0, _0204E848 ; =0x021C5A68 ldr r1, [r0, #0x0] ldr r0, _0204E84C ; =0x000002BD ldrb r0, [r1, r0] cmp r0, #0x0 bne _0204E832 ldr r0, [r1, #0x54] ldrh r1, [r4, #0x0] ldrh r3, [r4, #0x2] mov r2, #0x0 bl FUN_021E5B30 _0204E832: ldr r0, _0204E848 ; =0x021C5A68 ldr r1, [r0, #0x0] ldr r0, _0204E84C ; =0x000002BD ldrb r0, [r1, r0] cmp r0, #0x0 bne _0204E844 add r0, r5, #0x0 bl FUN_0204F0A8 _0204E844: pop {r3-r7, pc} nop _0204E848: .word 0x021C5A68 _0204E84C: .word 0x000002BD thumb_func_start FUN_0204E850 FUN_0204E850: ; 0x0204E850 push {r3-r4, lr} sub sp, #0x4 mov r2, #0x2 add r1, sp, #0x0 add r4, r0, #0x0 strb r2, [r1, #0x0] strb r4, [r1, #0x1] ldr r1, _0204E8AC ; =0x021C5A68 ldr r1, [r1, #0x0] add r1, r1, r4 add r1, #0xe2 ldrb r1, [r1, #0x0] cmp r1, #0x0 beq _0204E88A bl FUN_0204D830 cmp r0, #0x0 bne _0204E88A add r0, r4, #0x0 bl FUN_0204EE9C cmp r0, #0x0 add r0, sp, #0x0 beq _0204E886 mov r1, #0x3 strb r1, [r0, #0x0] b _0204E88A _0204E886: mov r1, #0x1 strb r1, [r0, #0x0] _0204E88A: mov r0, #0x1d add r1, sp, #0x0 mov r2, #0x2 bl FUN_02030BC4 cmp r0, #0x0 beq _0204E8A8 add r0, sp, #0x0 ldrb r0, [r0, #0x0] cmp r0, #0x2 beq _0204E8A8 add r0, r4, #0x0 mov r1, #0x0 bl FUN_0204EAD8 _0204E8A8: add sp, #0x4 pop {r3-r4, pc} .balign 4 _0204E8AC: .word 0x021C5A68 thumb_func_start FUN_0204E8B0 FUN_0204E8B0: ; 0x0204E8B0 push {r3-r6} ldr r2, _0204E8F8 ; =0x021C5A68 ldr r3, [r2, #0x0] cmp r3, #0x0 bne _0204E8C0 mov r0, #0xff pop {r3-r6} bx lr _0204E8C0: mov r2, #0x0 add r4, r3, #0x0 _0204E8C4: add r5, r3, #0x0 add r5, #0x48 ldrb r5, [r5, #0x0] cmp r5, #0x0 beq _0204E8E8 add r5, r4, #0x0 add r5, #0x64 ldrh r6, [r5, #0x0] add r5, r4, #0x0 add r5, #0x62 ldrh r5, [r5, #0x0] cmp r0, r5 bne _0204E8E8 cmp r1, r6 bne _0204E8E8 add r0, r2, #0x0 pop {r3-r6} bx lr _0204E8E8: add r2, r2, #0x1 add r3, r3, #0x1 add r4, #0x8 cmp r2, #0x8 blt _0204E8C4 mov r0, #0xff pop {r3-r6} bx lr .balign 4 _0204E8F8: .word 0x021C5A68 thumb_func_start FUN_0204E8FC FUN_0204E8FC: ; 0x0204E8FC push {r4, lr} add r4, r2, #0x0 bl FUN_02030FE0 cmp r0, #0x0 beq _0204E962 ldrb r0, [r4, #0x0] cmp r0, #0x1 bne _0204E936 bl FUN_02031190 ldrb r1, [r4, #0x1] cmp r1, r0 bne _0204E936 ldr r1, _0204E964 ; =0x021C5A68 mov r0, #0xae ldr r3, [r1, #0x0] lsl r0, r0, #0x2 ldrb r2, [r3, r0] cmp r2, #0x0 bne _0204E962 mov r2, #0x1 strb r2, [r3, r0] ldr r1, [r1, #0x0] ldr r0, _0204E968 ; =FUN_0204D308 ldr r1, [r1, #0x54] bl FUN_022494C8 pop {r4, pc} _0204E936: ldrb r0, [r4, #0x0] cmp r0, #0x3 bne _0204E962 bl FUN_02031190 ldrb r1, [r4, #0x1] cmp r1, r0 bne _0204E962 ldr r1, _0204E964 ; =0x021C5A68 mov r0, #0xae ldr r3, [r1, #0x0] lsl r0, r0, #0x2 ldrb r2, [r3, r0] cmp r2, #0x0 bne _0204E962 mov r2, #0x1 strb r2, [r3, r0] ldr r1, [r1, #0x0] ldr r0, _0204E968 ; =FUN_0204D308 ldr r1, [r1, #0x54] bl FUN_0224A7C8 _0204E962: pop {r4, pc} .balign 4 _0204E964: .word 0x021C5A68 _0204E968: .word FUN_0204D308 thumb_func_start FUN_0204E96C FUN_0204E96C: ; 0x0204E96C push {r4-r6, lr} ldr r0, _0204EACC ; =0x021C5A68 add r5, r2, #0x0 ldr r0, [r0, #0x0] ldr r0, [r0, #0x54] ldr r0, [r0, #0xc] bl FUN_020462AC add r6, r0, #0x0 ldrb r0, [r5, #0x1] cmp r0, #0x8 blo _0204E988 bl ErrorHandling _0204E988: ldrb r0, [r5, #0x0] cmp r0, #0x4 bne _0204E9AA bl FUN_02031190 ldrb r1, [r5, #0x1] cmp r1, r0 bne _0204E9AA bl FUN_0204F7E4 bl FUN_0223D638 ldr r3, _0204EAD0 ; =FUN_0204E2AC mov r1, #0x48 mov r2, #0x1 bl FUN_0224DCB8 _0204E9AA: ldrb r0, [r5, #0x0] cmp r0, #0x1 bne _0204E9B8 ldrb r0, [r5, #0x1] ldrb r1, [r5, #0x2] bl FUN_0204E730 _0204E9B8: ldrb r0, [r5, #0x0] cmp r0, #0x1 bne _0204EA7C bl FUN_02031190 ldrb r1, [r5, #0x1] cmp r1, r0 bne _0204EA7C ldr r2, _0204EACC ; =0x021C5A68 ldrb r0, [r5, #0x2] ldr r2, [r2, #0x0] ldr r1, _0204EAD4 ; =FUN_0204D308 ldr r2, [r2, #0x54] bl FUN_02247A34 ldr r0, _0204EACC ; =0x021C5A68 ldrb r4, [r5, #0x1] ldr r2, [r0, #0x0] mov r3, #0xf add r1, r2, #0x0 add r1, #0x58 ldrb r1, [r1, #0x0] add r2, #0x58 bic r1, r3 mov r3, #0xf and r3, r4 orr r1, r3 strb r1, [r2, #0x0] ldr r2, [r0, #0x0] mov r3, #0xf0 add r1, r2, #0x0 add r1, #0x58 ldrb r1, [r1, #0x0] add r2, #0x58 bic r1, r3 ldrb r3, [r5, #0x2] lsl r3, r3, #0x1c lsr r3, r3, #0x18 orr r1, r3 strb r1, [r2, #0x0] ldr r3, [r0, #0x0] add r1, r3, #0x0 add r1, #0x59 ldrb r2, [r1, #0x0] mov r1, #0x1 add r3, #0x59 bic r2, r1 strb r2, [r3, #0x0] ldr r3, [r0, #0x0] add r1, r3, #0x0 add r1, #0x59 ldrb r2, [r1, #0x0] mov r1, #0x2 add r3, #0x59 bic r2, r1 strb r2, [r3, #0x0] ldrb r4, [r5, #0x2] ldr r1, [r0, #0x0] add r0, r1, r4 add r0, #0x5a ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _0204EA7C ldr r0, [r1, #0x54] bl FUN_020377AC bl FUN_02026CB4 add r1, r4, #0x0 bl FUN_02026908 add r0, r6, #0x0 bl FUN_0205F688 add r1, r0, #0x0 add r1, r1, #0x1 lsl r1, r1, #0x10 add r0, r6, #0x0 lsr r1, r1, #0x10 bl FUN_0205F698 add r0, r6, #0x0 bl FUN_0205F6A8 add r1, r0, #0x0 add r1, r1, #0x1 lsl r1, r1, #0x10 add r0, r6, #0x0 lsr r1, r1, #0x10 bl FUN_0205F6B8 ldr r0, _0204EACC ; =0x021C5A68 ldrb r1, [r5, #0x2] ldr r2, [r0, #0x0] add r2, #0x5a ldrb r0, [r2, r1] add r0, r0, #0x1 strb r0, [r2, r1] _0204EA7C: ldrb r0, [r5, #0x0] cmp r0, #0x1 bne _0204EA9A ldrb r4, [r5, #0x2] bl FUN_02031190 cmp r4, r0 bne _0204EA9A ldr r2, _0204EACC ; =0x021C5A68 ldrb r1, [r5, #0x1] ldr r2, [r2, #0x0] add r0, r4, #0x0 ldr r2, [r2, #0x54] bl FUN_02248DF8 _0204EA9A: ldrb r0, [r5, #0x0] cmp r0, #0x2 bne _0204EABC bl FUN_02031190 ldrb r1, [r5, #0x1] cmp r1, r0 bne _0204EABC bl FUN_0204F7E4 bl FUN_0223D638 ldr r3, _0204EAD0 ; =FUN_0204E2AC mov r1, #0x2 mov r2, #0x1 bl FUN_0224DCB8 _0204EABC: ldrb r0, [r5, #0x0] cmp r0, #0x1 bne _0204EACA ldrb r0, [r5, #0x1] ldrb r1, [r5, #0x2] bl FUN_0223E4A8 _0204EACA: pop {r4-r6, pc} .balign 4 _0204EACC: .word 0x021C5A68 _0204EAD0: .word FUN_0204E2AC _0204EAD4: .word FUN_0204D308 thumb_func_start FUN_0204EAD8 FUN_0204EAD8: ; 0x0204EAD8 push {r3-r4} ldr r3, _0204EB0C ; =0x021C5A68 ldr r4, [r3, #0x0] add r4, #0xe2 ldrb r2, [r4, r0] cmp r1, r2 beq _0204EB08 strb r1, [r4, r0] ldr r2, [r3, #0x0] lsl r1, r0, #0x3 add r2, r2, r1 mov r4, #0x0 add r2, #0x69 strb r4, [r2, #0x0] ldr r2, [r3, #0x0] mov r4, #0x1 add r2, r2, r0 ldr r0, _0204EB10 ; =0x00000132 strb r4, [r2, r0] ldr r0, [r3, #0x0] mov r2, #0x2 add r0, r0, r1 add r0, #0x67 strb r2, [r0, #0x0] _0204EB08: pop {r3-r4} bx lr .balign 4 _0204EB0C: .word 0x021C5A68 _0204EB10: .word 0x00000132 thumb_func_start FUN_0204EB14 FUN_0204EB14: ; 0x0204EB14 ldr r1, _0204EB3C ; =0x021C5A68 ldr r2, [r1, #0x0] ldr r1, _0204EB40 ; =0x000002C2 ldrb r1, [r2, r1] cmp r1, #0x0 beq _0204EB24 mov r0, #0x0 bx lr _0204EB24: add r1, r2, r0 add r1, #0xea ldrb r1, [r1, #0x0] cmp r1, #0x0 beq _0204EB36 add r0, r2, r0 add r0, #0xe2 ldrb r0, [r0, #0x0] bx lr _0204EB36: mov r0, #0x0 bx lr nop _0204EB3C: .word 0x021C5A68 _0204EB40: .word 0x000002C2 thumb_func_start FUN_0204EB44 FUN_0204EB44: ; 0x0204EB44 push {r3-r7, lr} sub sp, #0x30 ldr r1, _0204EBF8 ; =0x020F5800 add r0, sp, #0x8 ldrh r2, [r1, #0x0] ldr r3, _0204EBFC ; =0x020F5814 strh r2, [r0, #0x0] ldrh r2, [r1, #0x2] strh r2, [r0, #0x2] ldrh r2, [r1, #0x4] ldrh r1, [r1, #0x6] strh r2, [r0, #0x4] strh r1, [r0, #0x6] add r2, sp, #0x20 mov r1, #0x8 _0204EB62: ldrh r0, [r3, #0x0] add r3, r3, #0x2 strh r0, [r2, #0x0] add r2, r2, #0x2 sub r1, r1, #0x1 bne _0204EB62 bl FUN_02033534 bl FUN_02031248 add r6, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x4] str r0, [sp, #0x0] cmp r6, #0x2 bne _0204EB86 add r5, sp, #0x8 b _0204EB88 _0204EB86: add r5, sp, #0x20 _0204EB88: mov r7, #0x0 cmp r6, #0x0 ble _0204EBD4 _0204EB8E: mov r4, #0x0 cmp r6, #0x0 ble _0204EBCC _0204EB94: add r0, r4, #0x0 bl FUN_0204E3EC ldrh r1, [r5, #0x0] cmp r1, r0 bne _0204EBC6 add r0, r4, #0x0 bl FUN_0204E440 ldrh r1, [r5, #0x2] cmp r1, r0 bne _0204EBC6 ldr r0, [sp, #0x4] lsl r1, r4, #0x2 add r0, r0, #0x1 str r0, [sp, #0x4] add r0, sp, #0x10 str r7, [r0, r1] bl FUN_02031190 cmp r4, r0 bne _0204EBCC mov r0, #0x1 str r0, [sp, #0x0] b _0204EBCC _0204EBC6: add r4, r4, #0x1 cmp r4, r6 blt _0204EB94 _0204EBCC: add r7, r7, #0x1 add r5, r5, #0x4 cmp r7, r6 blt _0204EB8E _0204EBD4: ldr r0, [sp, #0x4] cmp r0, r6 bne _0204EBF2 mov r5, #0x0 cmp r6, #0x0 ble _0204EBF2 add r4, sp, #0x10 _0204EBE2: ldr r0, [r4, #0x0] add r1, r5, #0x0 bl FUN_020313B4 add r5, r5, #0x1 add r4, r4, #0x4 cmp r5, r6 blt _0204EBE2 _0204EBF2: ldr r0, [sp, #0x0] add sp, #0x30 pop {r3-r7, pc} .balign 4 _0204EBF8: .word 0x020F5800 _0204EBFC: .word 0x020F5814 thumb_func_start FUN_0204EC00 FUN_0204EC00: ; 0x0204EC00 ldrb r2, [r2, #0x0] cmp r2, #0x3 bne _0204EC14 ldr r1, _0204EC24 ; =0x021C5A68 mov r2, #0x0 ldr r1, [r1, #0x0] add r0, r1, r0 add r0, #0xf2 strb r2, [r0, #0x0] bx lr _0204EC14: ldr r1, _0204EC24 ; =0x021C5A68 ldr r1, [r1, #0x0] add r1, r1, r0 mov r0, #0xad lsl r0, r0, #0x2 strb r2, [r1, r0] bx lr nop _0204EC24: .word 0x021C5A68 thumb_func_start FUN_0204EC28 FUN_0204EC28: ; 0x0204EC28 push {r3-r7, lr} sub sp, #0x8 bl FUN_02033534 bl FUN_02031248 add r7, r0, #0x0 cmp r7, #0x2 bne _0204EC40 ldr r0, _0204ECB4 ; =0x02105E5C str r0, [sp, #0x0] b _0204EC44 _0204EC40: ldr r0, _0204ECB8 ; =0x02105E64 str r0, [sp, #0x0] _0204EC44: mov r1, #0x0 add r0, sp, #0x4 strb r1, [r0, #0x0] cmp r7, #0x0 ble _0204ECAE _0204EC4E: ldr r0, _0204ECBC ; =0x021C5A68 add r6, sp, #0x4 ldr r1, [r0, #0x0] ldrb r0, [r6, #0x0] add r1, r1, r0 mov r0, #0xad lsl r0, r0, #0x2 ldrb r0, [r1, r0] cmp r0, #0x0 beq _0204ECA0 mov r4, #0x0 cmp r7, #0x0 ble _0204ECA0 ldr r5, [sp, #0x0] _0204EC6A: ldrb r0, [r6, #0x0] bl FUN_0204E544 ldrh r1, [r5, #0x0] cmp r1, r0 bne _0204EC98 ldrb r0, [r6, #0x0] bl FUN_0204E598 ldrh r1, [r5, #0x2] cmp r1, r0 bne _0204EC98 ldr r0, _0204ECBC ; =0x021C5A68 ldr r1, [r0, #0x0] ldrb r0, [r6, #0x0] add r1, r1, r0 add r1, #0xf2 mov r0, #0x1 strb r0, [r1, #0x0] mov r0, #0x5f add r1, sp, #0x4 bl FUN_02030C4C _0204EC98: add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, r7 blt _0204EC6A _0204ECA0: add r0, sp, #0x4 ldrb r1, [r0, #0x0] add r1, r1, #0x1 strb r1, [r0, #0x0] ldrb r0, [r0, #0x0] cmp r0, r7 blt _0204EC4E _0204ECAE: add sp, #0x8 pop {r3-r7, pc} nop _0204ECB4: .word 0x02105E5C _0204ECB8: .word 0x02105E64 _0204ECBC: .word 0x021C5A68 thumb_func_start FUN_0204ECC0 FUN_0204ECC0: ; 0x0204ECC0 push {r4, lr} bl FUN_02031190 add r4, r0, #0x0 bl FUN_0204E3EC cmp r0, #0x8 ble _0204ECE0 mov r0, #0x2 bl FUN_0204F6DC mov r0, #0x2 mov r1, #0x24 bl FUN_0205AFDC b _0204ECEE _0204ECE0: mov r0, #0x3 bl FUN_0204F6DC mov r0, #0x3 mov r1, #0x24 bl FUN_0205AFDC _0204ECEE: add r1, r0, #0x0 ldr r0, _0204ED04 ; =0x021C5A68 ldr r2, [r0, #0x0] lsl r0, r4, #0x2 add r0, r2, r0 ldr r0, [r0, #0x8] bl FUN_02057260 bl FUN_0204FB14 pop {r4, pc} .balign 4 _0204ED04: .word 0x021C5A68 thumb_func_start FUN_0204ED08 FUN_0204ED08: ; 0x0204ED08 push {r3-r7, lr} sub sp, #0x8 bl FUN_02033534 bl FUN_02031248 mov r3, #0x0 str r0, [sp, #0x0] cmp r0, #0x0 ble _0204ED3C ldr r0, _0204ED94 ; =0x021C5A68 mov r1, #0x66 add r2, r1, #0x0 ldr r4, [r0, #0x0] sub r2, #0x67 _0204ED26: ldrsb r0, [r4, r1] cmp r0, r2 bne _0204ED32 add sp, #0x8 mov r0, #0x0 pop {r3-r7, pc} _0204ED32: ldr r0, [sp, #0x0] add r3, r3, #0x1 add r4, #0x8 cmp r3, r0 blt _0204ED26 _0204ED3C: ldr r0, [sp, #0x0] mov r5, #0x0 cmp r0, #0x0 ble _0204ED8E add r4, r5, #0x0 _0204ED46: ldr r0, _0204ED94 ; =0x021C5A68 ldr r7, [r0, #0x0] mov r0, #0x4 add r7, #0x62 add r6, r7, r4 ldrsb r0, [r6, r0] bl FUN_0204F610 str r0, [sp, #0x4] bl FUN_02059BF4 ldrh r1, [r7, r4] add r0, r1, r0 strh r0, [r7, r4] ldr r0, [sp, #0x4] bl FUN_02059C00 ldrh r1, [r6, #0x2] add r0, r1, r0 strh r0, [r6, #0x2] mov r0, #0x2 strb r0, [r6, #0x5] ldr r0, _0204ED94 ; =0x021C5A68 mov r1, #0x1 ldr r0, [r0, #0x0] add r2, r0, r5 ldr r0, _0204ED98 ; =0x00000132 strb r1, [r2, r0] add r0, r5, #0x0 bl FUN_0204EAD8 ldr r0, [sp, #0x0] add r5, r5, #0x1 add r4, #0x8 cmp r5, r0 blt _0204ED46 _0204ED8E: mov r0, #0x1 add sp, #0x8 pop {r3-r7, pc} .balign 4 _0204ED94: .word 0x021C5A68 _0204ED98: .word 0x00000132 thumb_func_start FUN_0204ED9C FUN_0204ED9C: ; 0x0204ED9C push {r4, lr} add r4, r0, #0x0 ldr r0, _0204EDE8 ; =0x021C5A68 ldr r1, [r0, #0x0] lsl r0, r4, #0x2 add r1, r1, r0 mov r0, #0x29 lsl r0, r0, #0x4 ldr r0, [r1, r0] cmp r0, #0x0 beq _0204EDE2 bl FUN_02016A18 ldr r2, _0204EDE8 ; =0x021C5A68 lsl r1, r4, #0x2 ldr r3, [r2, #0x0] mov r0, #0x0 add r3, r3, r1 mov r1, #0x29 lsl r1, r1, #0x4 str r0, [r3, r1] ldr r1, [r2, #0x0] mov r3, #0xff add r1, r1, r4 add r1, #0xfa strb r0, [r1, #0x0] mov r0, #0x22 ldr r1, [r2, #0x0] mul r0, r4 add r1, r1, r0 add r0, r3, #0x0 add r0, #0x6b strh r3, [r1, r0] mov r0, #0x1 pop {r4, pc} _0204EDE2: mov r0, #0x0 pop {r4, pc} nop _0204EDE8: .word 0x021C5A68 thumb_func_start FUN_0204EDEC FUN_0204EDEC: ; 0x0204EDEC push {r3-r7, lr} add r7, r0, #0x0 bl FUN_02031190 cmp r7, r0 bne _0204EE90 ldr r0, _0204EE98 ; =0x021C5A68 ldr r2, [r0, #0x0] lsl r0, r7, #0x2 add r1, r2, r0 mov r0, #0x29 lsl r0, r0, #0x4 ldr r0, [r1, r0] cmp r0, #0x0 beq _0204EE96 ldr r0, [r2, #0x54] ldr r0, [r0, #0xc] bl FUN_02029FC8 mov r1, #0x1c bl FUN_0202A170 ldr r0, _0204EE98 ; =0x021C5A68 ldr r1, [r0, #0x0] mov r0, #0xa3 lsl r0, r0, #0x2 ldr r0, [r1, r0] cmp r0, #0x0 beq _0204EE2A bl FUN_02016A18 _0204EE2A: mov r0, #0x9e lsl r0, r0, #0x2 ldr r2, _0204EE98 ; =0x021C5A68 mov r5, #0x4 mov r6, #0x10 add r1, r0, #0x4 _0204EE36: ldr r3, [r2, #0x0] sub r5, r5, #0x1 add r4, r3, r6 ldr r3, [r4, r0] sub r6, r6, #0x4 str r3, [r4, r1] cmp r5, #0x1 bge _0204EE36 ldr r1, _0204EE98 ; =0x021C5A68 mov r0, #0x29 ldr r3, [r1, #0x0] lsl r4, r7, #0x2 add r2, r3, r4 lsl r0, r0, #0x4 ldr r2, [r2, r0] sub r0, #0x14 str r2, [r3, r0] ldr r5, [r1, #0x0] ldr r0, [r5, #0x54] bl FUN_020377AC bl FUN_02026CC4 mov r1, #0x29 add r2, r5, r4 lsl r1, r1, #0x4 ldr r1, [r2, r1] bl FUN_02025C40 ldr r1, _0204EE98 ; =0x021C5A68 mov r3, #0x0 ldr r0, [r1, #0x0] add r2, r0, r4 mov r0, #0x29 lsl r0, r0, #0x4 str r3, [r2, r0] mov r0, #0x22 ldr r1, [r1, #0x0] mul r0, r7 mov r2, #0xff add r1, r1, r0 add r0, r2, #0x0 add r0, #0x6b strh r2, [r1, r0] pop {r3-r7, pc} _0204EE90: add r0, r7, #0x0 bl FUN_0204ED9C _0204EE96: pop {r3-r7, pc} .balign 4 _0204EE98: .word 0x021C5A68 thumb_func_start FUN_0204EE9C FUN_0204EE9C: ; 0x0204EE9C ldr r1, _0204EEB8 ; =0x021C5A68 lsl r0, r0, #0x2 ldr r1, [r1, #0x0] add r1, r1, r0 mov r0, #0x29 lsl r0, r0, #0x4 ldr r0, [r1, r0] cmp r0, #0x0 beq _0204EEB2 mov r0, #0x1 bx lr _0204EEB2: mov r0, #0x0 bx lr nop _0204EEB8: .word 0x021C5A68 thumb_func_start FUN_0204EEBC FUN_0204EEBC: ; 0x0204EEBC push {r3-r7, lr} add r5, r0, #0x0 ldr r0, _0204EF48 ; =0x021C5A68 add r6, r1, #0x0 ldr r1, [r0, #0x0] lsl r0, r5, #0x2 add r1, r1, r0 mov r0, #0x29 lsl r0, r0, #0x4 ldr r0, [r1, r0] cmp r0, #0x0 bne _0204EF44 add r0, r6, #0x0 bl FUN_0202DFA4 add r7, r0, #0x0 beq _0204EF44 mov r0, #0xf lsl r4, r5, #0x2 bl FUN_02023928 mov r3, #0x29 ldr r1, _0204EF48 ; =0x021C5A68 add r2, r0, #0x0 ldr r0, [r1, #0x0] lsl r3, r3, #0x4 add r0, r0, r4 str r2, [r0, r3] ldr r1, [r1, #0x0] add r0, r7, #0x0 add r1, r1, r4 ldr r1, [r1, r3] bl FUN_0202393C ldr r1, _0204EF48 ; =0x021C5A68 mov r2, #0x1 ldr r0, [r1, #0x0] ldr r3, _0204EF4C ; =0x0000016A add r0, r0, r5 add r0, #0xfa strb r2, [r0, #0x0] mov r0, #0x22 add r2, r5, #0x0 mul r2, r0 ldr r0, [r1, #0x0] add r0, r0, r2 strh r5, [r0, r3] ldr r1, [r1, #0x0] sub r3, #0x20 add r1, r1, r3 add r0, r7, #0x0 add r1, r1, r2 bl FUN_0202393C bl FUN_02031190 cmp r6, r0 bne _0204EF40 ldr r0, _0204EF48 ; =0x021C5A68 ldr r0, [r0, #0x0] ldr r0, [r0, #0x54] ldr r0, [r0, #0xc] bl FUN_02026CB4 bl FUN_02026BC8 _0204EF40: mov r0, #0x1 pop {r3-r7, pc} _0204EF44: mov r0, #0x0 pop {r3-r7, pc} .balign 4 _0204EF48: .word 0x021C5A68 _0204EF4C: .word 0x0000016A thumb_func_start FUN_0204EF50 FUN_0204EF50: ; 0x0204EF50 push {r3-r7, lr} ldr r4, _0204EFC4 ; =0x021C5A68 mov r7, #0x29 ldr r6, [r4, #0x0] add r3, r0, #0x0 lsl r7, r7, #0x4 add r5, r6, r7 lsl r0, r3, #0x2 add r2, r1, #0x0 ldr r1, [r5, r0] cmp r1, #0x0 bne _0204EFBE lsl r1, r2, #0x2 add r6, r6, r1 ldr r6, [r6, r7] cmp r6, #0x0 beq _0204EFBE str r6, [r5, r0] ldr r5, [r4, #0x0] mov r6, #0x0 add r1, r5, r1 str r6, [r1, r7] ldr r1, [r4, #0x0] mov r5, #0x1 add r1, r1, r3 add r1, #0xfa strb r5, [r1, #0x0] ldr r1, [r4, #0x0] add r1, r1, r2 add r1, #0xfa strb r6, [r1, #0x0] mov r1, #0x22 ldr r5, [r4, #0x0] mul r1, r3 add r6, r5, r1 ldr r5, _0204EFC8 ; =0x0000016A strh r3, [r6, r5] mov r6, #0x22 mov r5, #0xff mul r6, r2 ldr r3, [r4, #0x0] add r2, r5, #0x0 add r3, r3, r6 add r2, #0x6b strh r5, [r3, r2] ldr r2, [r4, #0x0] add r5, #0x4b add r0, r2, r0 add r2, r2, r5 ldr r0, [r0, r7] add r1, r2, r1 bl FUN_0202393C mov r0, #0x1 pop {r3-r7, pc} _0204EFBE: mov r0, #0x0 pop {r3-r7, pc} nop _0204EFC4: .word 0x021C5A68 _0204EFC8: .word 0x0000016A thumb_func_start FUN_0204EFCC FUN_0204EFCC: ; 0x0204EFCC push {r4, lr} ldr r1, _0204F06C ; =0x021C5A68 add r4, r0, #0x0 ldr r3, [r1, #0x0] ldr r1, _0204F070 ; =0x000002BD ldrb r1, [r3, r1] cmp r1, #0x0 bne _0204F068 lsl r1, r4, #0x2 add r2, r3, r1 ldr r1, [r2, #0x8] cmp r1, #0x0 beq _0204F068 add r3, r3, r4 add r3, #0xfa ldrb r3, [r3, #0x0] cmp r3, #0x3 bhi _0204F068 add r3, r3, r3 add r3, pc ldrh r3, [r3, #0x6] lsl r3, r3, #0x10 asr r3, r3, #0x10 add pc, r3 _0204EFFC: ; jump table (using 16-bit offset) .short _0204F064 - _0204EFFC - 2; case 0 .short _0204F048 - _0204EFFC - 2; case 1 .short _0204F02C - _0204EFFC - 2; case 2 .short _0204F004 - _0204EFFC - 2; case 3 _0204F004: ldr r0, [r2, #0x28] cmp r0, #0x0 bne _0204F01E add r0, r1, #0x0 bl FUN_020553A0 bl FUN_021E5970 ldr r1, _0204F06C ; =0x021C5A68 ldr r2, [r1, #0x0] lsl r1, r4, #0x2 add r1, r2, r1 str r0, [r1, #0x28] _0204F01E: ldr r0, _0204F06C ; =0x021C5A68 mov r1, #0x0 ldr r0, [r0, #0x0] add r0, r0, r4 add r0, #0xfa strb r1, [r0, #0x0] pop {r4, pc} _0204F02C: ldr r0, [r2, #0x28] cmp r0, #0x0 bne _0204F068 add r0, r1, #0x0 bl FUN_020553A0 bl FUN_021E57D4 ldr r1, _0204F06C ; =0x021C5A68 ldr r2, [r1, #0x0] lsl r1, r4, #0x2 add r1, r2, r1 str r0, [r1, #0x28] pop {r4, pc} _0204F048: ldr r0, [r2, #0x28] cmp r0, #0x0 bne _0204F068 add r0, r1, #0x0 bl FUN_020553A0 bl FUN_021E5614 ldr r1, _0204F06C ; =0x021C5A68 ldr r2, [r1, #0x0] lsl r1, r4, #0x2 add r1, r2, r1 str r0, [r1, #0x28] pop {r4, pc} _0204F064: bl FUN_0204CD78 _0204F068: pop {r4, pc} nop _0204F06C: .word 0x021C5A68 _0204F070: .word 0x000002BD thumb_func_start FUN_0204F074 FUN_0204F074: ; 0x0204F074 ldr r1, _0204F088 ; =0x021C5A68 ldr r2, [r1, #0x0] add r2, #0xfa ldrb r1, [r2, r0] cmp r1, #0x1 beq _0204F084 mov r1, #0x2 strb r1, [r2, r0] _0204F084: bx lr nop _0204F088: .word 0x021C5A68 thumb_func_start FUN_0204F08C FUN_0204F08C: ; 0x0204F08C ldr r1, _0204F0A0 ; =0x021C5A68 ldr r2, [r1, #0x0] add r2, #0xfa ldrb r1, [r2, r0] cmp r1, #0x1 beq _0204F09C mov r1, #0x3 strb r1, [r2, r0] _0204F09C: ldr r3, _0204F0A4 ; =FUN_0204CD78 bx r3 .balign 4 _0204F0A0: .word 0x021C5A68 _0204F0A4: .word FUN_0204CD78 thumb_func_start FUN_0204F0A8 FUN_0204F0A8: ; 0x0204F0A8 ldr r1, _0204F0BC ; =0x021C5A68 ldr r2, [r1, #0x0] add r2, #0xfa ldrb r1, [r2, r0] cmp r1, #0x1 beq _0204F0B8 mov r1, #0x0 strb r1, [r2, r0] _0204F0B8: ldr r3, _0204F0C0 ; =FUN_0204CD78 bx r3 .balign 4 _0204F0BC: .word 0x021C5A68 _0204F0C0: .word FUN_0204CD78 thumb_func_start FUN_0204F0C4 FUN_0204F0C4: ; 0x0204F0C4 mov r0, #0x3 bx lr thumb_func_start FUN_0204F0C8 FUN_0204F0C8: ; 0x0204F0C8 push {r3-r4, lr} sub sp, #0x4 add r4, r0, #0x0 add r0, sp, #0x0 strb r4, [r0, #0x1] ldrb r1, [r2, #0x0] cmp r1, #0x0 beq _0204F0E0 cmp r1, #0x3 beq _0204F0F0 add sp, #0x4 pop {r3-r4, pc} _0204F0E0: mov r1, #0x0 strb r1, [r0, #0x0] mov r0, #0x55 add r1, sp, #0x0 bl FUN_02030C4C add sp, #0x4 pop {r3-r4, pc} _0204F0F0: mov r1, #0x3 strb r1, [r0, #0x0] mov r0, #0x55 add r1, sp, #0x0 bl FUN_02030C4C add r0, r4, #0x0 mov r1, #0x0 bl FUN_0204EAD8 add sp, #0x4 pop {r3-r4, pc} thumb_func_start FUN_0204F108 FUN_0204F108: ; 0x0204F108 push {r3, lr} bl FUN_02031190 bl FUN_0204F0A8 bl FUN_0223D648 bl FUN_0224DD94 mov r0, #0x4 bl FUN_0204F774 pop {r3, pc} .balign 4 thumb_func_start FUN_0204F124 FUN_0204F124: ; 0x0204F124 push {r3-r7, lr} add r5, r1, #0x0 add r6, r0, #0x0 ldr r0, [r5, #0x4] mov r4, #0x0 lsl r0, r0, #0x18 lsr r7, r0, #0x18 add r0, r7, #0x0 bl FUN_02030E7C cmp r0, #0x0 bne _0204F14A add r0, r5, #0x0 bl FUN_02016A18 add r0, r6, #0x0 bl FUN_0200CAB4 pop {r3-r7, pc} _0204F14A: ldr r0, [r5, #0x0] add r0, r0, #0x1 str r0, [r5, #0x0] cmp r0, #0x3c ble _0204F156 mov r4, #0x1 _0204F156: cmp r4, #0x0 beq _0204F172 ldr r0, _0204F174 ; =0x021C5A68 mov r1, #0x1 ldr r0, [r0, #0x0] add r0, r0, r7 add r0, #0xea strb r1, [r0, #0x0] add r0, r5, #0x0 bl FUN_02016A18 add r0, r6, #0x0 bl FUN_0200CAB4 _0204F172: pop {r3-r7, pc} .balign 4 _0204F174: .word 0x021C5A68 thumb_func_start FUN_0204F178 FUN_0204F178: ; 0x0204F178 push {r4, lr} add r4, r0, #0x0 mov r0, #0xb mov r1, #0x8 bl FUN_02016998 add r1, r0, #0x0 mov r2, #0x0 str r2, [r1, #0x0] ldr r0, _0204F1A8 ; =0x021C5A68 str r4, [r1, #0x4] ldr r0, [r0, #0x0] add r0, r0, r4 add r0, #0xea strb r2, [r0, #0x0] ldr r0, _0204F1AC ; =FUN_0204F124 mov r2, #0x64 bl FUN_0200CA44 add r0, r4, #0x0 mov r1, #0x0 bl FUN_0204EAD8 pop {r4, pc} .balign 4 _0204F1A8: .word 0x021C5A68 _0204F1AC: .word FUN_0204F124 thumb_func_start FUN_0204F1B0 FUN_0204F1B0: ; 0x0204F1B0 push {r3-r5, lr} add r4, r1, #0x0 mov r1, #0x1 add r5, r0, #0x0 tst r1, r2 beq _0204F1C4 mov r1, #0xb add r0, sp, #0x0 strb r1, [r0, #0x0] b _0204F1F6 _0204F1C4: bl FUN_0204EE9C cmp r0, #0x0 beq _0204F1D4 mov r1, #0xb add r0, sp, #0x0 strb r1, [r0, #0x0] b _0204F1F6 _0204F1D4: cmp r4, #0xff bne _0204F1DC mov r0, #0x0 pop {r3-r5, pc} _0204F1DC: add r0, r4, #0x0 bl FUN_0204EE9C cmp r0, #0x0 bne _0204F1EA mov r0, #0x0 pop {r3-r5, pc} _0204F1EA: mov r1, #0x5 add r0, sp, #0x0 strb r1, [r0, #0x0] add r0, r4, #0x0 bl FUN_0204F178 _0204F1F6: add r0, sp, #0x0 strb r5, [r0, #0x1] strb r4, [r0, #0x2] add r0, r5, #0x0 mov r1, #0x0 bl FUN_0204EAD8 mov r0, #0x55 add r1, sp, #0x0 bl FUN_02030C4C mov r0, #0x1 pop {r3-r5, pc} thumb_func_start FUN_0204F210 FUN_0204F210: ; 0x0204F210 push {r3-r4, lr} sub sp, #0x4 add r4, r0, #0x0 bl FUN_0204EE9C cmp r0, #0x0 beq _0204F226 mov r1, #0xc add r0, sp, #0x0 strb r1, [r0, #0x0] b _0204F22C _0204F226: add sp, #0x4 mov r0, #0x0 pop {r3-r4, pc} _0204F22C: strb r4, [r0, #0x1] mov r0, #0x55 add r1, sp, #0x0 bl FUN_02030C4C mov r0, #0x1 add sp, #0x4 pop {r3-r4, pc} thumb_func_start FUN_0204F23C FUN_0204F23C: ; 0x0204F23C push {r4-r6, lr} sub sp, #0x8 add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_0223E6B8 mov r0, #0x0 bl FUN_0204D628 mov r0, #0x4 bl FUN_0204F74C bl FUN_0223D648 add r6, r0, #0x0 ldrb r0, [r5, #0x1] bl FUN_0202DFA4 add r1, r0, #0x0 add r0, r6, #0x0 bl FUN_0224DDB8 cmp r4, #0x0 beq _0204F29C bl FUN_02031190 ldr r1, _0204F2C8 ; =0x021C5A68 mov r2, #0x0 ldr r1, [r1, #0x0] add r0, r1, r0 add r0, #0xfa strb r2, [r0, #0x0] bl FUN_02031190 bl FUN_0204F0A8 bl FUN_02031190 bl FUN_0204F074 bl FUN_0223D648 ldr r3, _0204F2CC ; =FUN_0204F108 mov r1, #0xa mov r2, #0x1 bl FUN_0224DCB8 b _0204F2AA _0204F29C: bl FUN_0223D648 ldr r3, _0204F2CC ; =FUN_0204F108 mov r1, #0xb mov r2, #0x1 bl FUN_0224DCB8 _0204F2AA: mov r0, #0xff str r0, [sp, #0x0] mov r3, #0x0 ldr r1, _0204F2D0 ; =0x00000424 mov r0, #0x4 mov r2, #0x3c str r3, [sp, #0x4] bl FUN_02004DCC ldr r0, _0204F2D4 ; =0x000005F6 bl FUN_020054C8 add sp, #0x8 pop {r4-r6, pc} nop _0204F2C8: .word 0x021C5A68 _0204F2CC: .word FUN_0204F108 _0204F2D0: .word 0x00000424 _0204F2D4: .word 0x000005F6 thumb_func_start FUN_0204F2D8 FUN_0204F2D8: ; 0x0204F2D8 push {r4-r5, lr} sub sp, #0xc ldr r0, _0204F5E0 ; =0x021C5A68 add r5, r2, #0x0 ldr r0, [r0, #0x0] ldr r0, [r0, #0x54] bl FUN_020377AC bl FUN_02026CB4 add r4, r0, #0x0 ldrb r0, [r5, #0x0] cmp r0, #0x5 bgt _0204F308 cmp r0, #0x0 blt _0204F346 beq _0204F31E cmp r0, #0x3 bne _0204F300 b _0204F4D2 _0204F300: cmp r0, #0x5 beq _0204F370 add sp, #0xc pop {r4-r5, pc} _0204F308: cmp r0, #0xc bgt _0204F346 cmp r0, #0xb blt _0204F346 bne _0204F314 b _0204F48C _0204F314: cmp r0, #0xc bne _0204F31A b _0204F4AE _0204F31A: add sp, #0xc pop {r4-r5, pc} _0204F31E: ldr r1, _0204F5E0 ; =0x021C5A68 ldrb r0, [r5, #0x1] ldr r2, [r1, #0x0] lsl r1, r0, #0x2 add r2, r2, r1 mov r1, #0x29 lsl r1, r1, #0x4 ldr r1, [r2, r1] cmp r1, #0x0 beq _0204F346 bl FUN_0204ED9C ldrb r0, [r5, #0x1] bl FUN_0204F0A8 bl FUN_02031190 ldrb r1, [r5, #0x1] cmp r1, r0 beq _0204F348 _0204F346: b _0204F5DA _0204F348: bl FUN_0204F7E4 bl FUN_0223D648 ldr r3, _0204F5E4 ; =FUN_0204E2B4 mov r1, #0x2 mov r2, #0x1 bl FUN_0224DCB8 mov r0, #0xff str r0, [sp, #0x0] mov r3, #0x0 ldr r1, _0204F5E8 ; =0x00000424 mov r0, #0x4 mov r2, #0x3c str r3, [sp, #0x4] bl FUN_02004DCC add sp, #0xc pop {r4-r5, pc} _0204F370: ldrb r0, [r5, #0x1] bl FUN_0202DFA4 cmp r0, #0x0 bne _0204F384 ldrb r0, [r5, #0x2] bl FUN_0204ED9C add sp, #0xc pop {r4-r5, pc} _0204F384: ldr r0, _0204F5E0 ; =0x021C5A68 ldr r1, [r0, #0x0] ldrb r0, [r5, #0x2] lsl r0, r0, #0x2 add r1, r1, r0 mov r0, #0x29 lsl r0, r0, #0x4 ldr r0, [r1, r0] cmp r0, #0x0 bne _0204F3AC bl FUN_02031190 ldrb r1, [r5, #0x1] cmp r1, r0 beq _0204F3A4 b _0204F5DA _0204F3A4: bl FUN_0204F7FC add sp, #0xc pop {r4-r5, pc} _0204F3AC: ldrb r0, [r5, #0x1] bl FUN_0202DFA4 add r1, r0, #0x0 ldr r0, _0204F5E0 ; =0x021C5A68 ldr r2, [r0, #0x0] ldrb r0, [r5, #0x2] lsl r0, r0, #0x2 add r2, r2, r0 mov r0, #0x29 lsl r0, r0, #0x4 ldr r0, [r2, r0] bl FUN_02023AA4 cmp r0, #0x1 bne _0204F41A ldrb r0, [r5, #0x2] bl FUN_0204ED9C bl FUN_02031190 ldrb r1, [r5, #0x1] cmp r1, r0 bne _0204F3FC add r0, r4, #0x0 bl FUN_02026C00 bl FUN_0204F7E4 bl FUN_0223D648 ldr r3, _0204F5EC ; =FUN_0204E2AC mov r1, #0xd mov r2, #0x1 bl FUN_0224DCB8 ldr r0, _0204F5F0 ; =0x00000625 bl FUN_020054C8 b _0204F410 _0204F3FC: bl FUN_02031190 ldrb r1, [r5, #0x2] cmp r1, r0 bne _0204F410 add r0, r5, #0x0 mov r1, #0x0 add r2, r4, #0x0 bl FUN_0204F23C _0204F410: ldrb r0, [r5, #0x1] bl FUN_022472AC add sp, #0xc pop {r4-r5, pc} _0204F41A: ldrb r0, [r5, #0x1] ldrb r1, [r5, #0x2] bl FUN_0204EF50 cmp r0, #0x0 beq _0204F4B8 bl FUN_02031190 ldrb r1, [r5, #0x1] cmp r1, r0 bne _0204F46C add r0, r4, #0x0 bl FUN_02026970 mov r0, #0x1 bl FUN_0204F74C bl FUN_0223D648 add r4, r0, #0x0 ldrb r0, [r5, #0x2] bl FUN_0202DFA4 add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_0224DDB8 bl FUN_0223D648 ldr r3, _0204F5F4 ; =FUN_0204E2D4 mov r1, #0xc mov r2, #0x1 bl FUN_0224DCB8 ldr r0, _0204F5F8 ; =0x00000425 bl FUN_0200521C ldr r0, _0204F5F0 ; =0x00000625 bl FUN_020054C8 b _0204F480 _0204F46C: bl FUN_02031190 ldrb r1, [r5, #0x2] cmp r1, r0 bne _0204F480 add r0, r5, #0x0 mov r1, #0x1 add r2, r4, #0x0 bl FUN_0204F23C _0204F480: ldrb r0, [r5, #0x1] ldrb r1, [r5, #0x2] bl FUN_02247294 add sp, #0xc pop {r4-r5, pc} _0204F48C: bl FUN_02031190 ldrb r1, [r5, #0x1] cmp r1, r0 bne _0204F4B8 mov r0, #0x2 bl FUN_0204F74C bl FUN_0223D648 ldr r3, _0204F5FC ; =FUN_0204E2BC mov r1, #0x6 mov r2, #0x1 bl FUN_0224DCB8 add sp, #0xc pop {r4-r5, pc} _0204F4AE: bl FUN_02031190 ldrb r1, [r5, #0x1] cmp r1, r0 beq _0204F4BA _0204F4B8: b _0204F5DA _0204F4BA: mov r0, #0x20 bl FUN_0204F74C bl FUN_0223D648 ldr r3, _0204F600 ; =FUN_0204E2C8 mov r1, #0x5 mov r2, #0x1 bl FUN_0224DCB8 add sp, #0xc pop {r4-r5, pc} _0204F4D2: ldr r0, _0204F5E0 ; =0x021C5A68 mov r2, #0x0 ldr r1, [r0, #0x0] ldrb r0, [r5, #0x1] add r0, r1, r0 add r0, #0xfa strb r2, [r0, #0x0] ldrb r0, [r5, #0x1] bl FUN_0204F0A8 bl FUN_02031190 ldrb r1, [r5, #0x1] cmp r1, r0 bne _0204F58C ldr r0, _0204F5E0 ; =0x021C5A68 ldr r0, [r0, #0x0] ldr r0, [r0, #0x54] bl FUN_020377AC bl FUN_02026CB4 add r4, r0, #0x0 bl FUN_020269A0 add r1, sp, #0x8 strb r0, [r1, #0x0] add r0, r4, #0x0 bl FUN_020269D4 ldr r0, _0204F5E0 ; =0x021C5A68 ldr r0, [r0, #0x0] ldr r0, [r0, #0x54] ldr r0, [r0, #0xc] bl FUN_020462AC bl FUN_0205EDF8 ldr r0, _0204F5E0 ; =0x021C5A68 ldrb r1, [r5, #0x1] ldr r0, [r0, #0x0] lsl r1, r1, #0x2 add r2, r0, r1 mov r1, #0x29 lsl r1, r1, #0x4 ldr r1, [r2, r1] cmp r1, #0x0 beq _0204F54A ldr r0, [r0, #0x54] bl FUN_0206189C ldr r0, _0204F5E0 ; =0x021C5A68 ldr r1, _0204F604 ; =0x0000FFFF ldr r3, [r0, #0x0] ldr r0, _0204F608 ; =0x000002B2 ldrh r2, [r3, r0] cmp r2, r1 beq _0204F54A add r1, r2, #0x1 strh r1, [r3, r0] _0204F54A: bl FUN_0204F7E4 ldr r0, _0204F60C ; =0x0000062B bl FUN_020054C8 add r0, r4, #0x0 bl FUN_020269A0 add r1, sp, #0x8 ldrb r1, [r1, #0x0] cmp r1, r0 bne _0204F572 bl FUN_0223D648 ldr r3, _0204F5EC ; =FUN_0204E2AC mov r1, #0x7 mov r2, #0x1 bl FUN_0224DCB8 b _0204F57A _0204F572: mov r0, #0x60 add r1, sp, #0x8 bl FUN_020311D0 _0204F57A: mov r0, #0xff str r0, [sp, #0x0] mov r3, #0x0 ldr r1, _0204F5E8 ; =0x00000424 mov r0, #0x4 mov r2, #0x3c str r3, [sp, #0x4] bl FUN_02004DCC _0204F58C: ldr r0, _0204F5E0 ; =0x021C5A68 ldr r1, [r0, #0x0] ldrb r0, [r5, #0x1] lsl r0, r0, #0x2 add r1, r1, r0 mov r0, #0x29 lsl r0, r0, #0x4 ldr r0, [r1, r0] cmp r0, #0x0 beq _0204F5D4 bl FUN_02031190 bl FUN_0202DFA4 add r1, r0, #0x0 ldr r0, _0204F5E0 ; =0x021C5A68 ldr r2, [r0, #0x0] ldrb r0, [r5, #0x1] lsl r0, r0, #0x2 add r2, r2, r0 mov r0, #0x29 lsl r0, r0, #0x4 ldr r0, [r2, r0] bl FUN_02023AA4 cmp r0, #0x1 bne _0204F5D4 ldrb r0, [r5, #0x1] bl FUN_0202DFA4 add r1, r0, #0x0 ldr r0, _0204F5E0 ; =0x021C5A68 ldr r0, [r0, #0x0] ldr r0, [r0, #0x54] bl FUN_020618B8 _0204F5D4: ldrb r0, [r5, #0x1] bl FUN_0204EDEC _0204F5DA: add sp, #0xc pop {r4-r5, pc} nop _0204F5E0: .word 0x021C5A68 _0204F5E4: .word FUN_0204E2B4 _0204F5E8: .word 0x00000424 _0204F5EC: .word FUN_0204E2AC _0204F5F0: .word 0x00000625 _0204F5F4: .word FUN_0204E2D4 _0204F5F8: .word 0x00000425 _0204F5FC: .word FUN_0204E2BC _0204F600: .word FUN_0204E2C8 _0204F604: .word 0x0000FFFF _0204F608: .word 0x000002B2 _0204F60C: .word 0x0000062B thumb_func_start FUN_0204F610 FUN_0204F610: ; 0x0204F610 push {r3, lr} cmp r0, #0x0 bne _0204F61A mov r0, #0x1 pop {r3, pc} _0204F61A: cmp r0, #0x1 bne _0204F622 mov r0, #0x0 pop {r3, pc} _0204F622: cmp r0, #0x2 bne _0204F62A mov r0, #0x3 pop {r3, pc} _0204F62A: cmp r0, #0x3 bne _0204F632 mov r0, #0x2 pop {r3, pc} _0204F632: bl ErrorHandling mov r0, #0x2 pop {r3, pc} .balign 4 thumb_func_start FUN_0204F63C FUN_0204F63C: ; 0x0204F63C push {r3-r4} ldr r3, _0204F658 ; =0x021C5A68 ldr r2, [r3, #0x0] add r4, r2, r0 ldr r2, _0204F65C ; =0x0000011A strb r1, [r4, r2] ldr r1, [r3, #0x0] mov r4, #0xf add r0, r1, r0 add r2, #0x20 strb r4, [r0, r2] pop {r3-r4} bx lr nop _0204F658: .word 0x021C5A68 _0204F65C: .word 0x0000011A thumb_func_start FUN_0204F660 FUN_0204F660: ; 0x0204F660 ldr r1, _0204F670 ; =0x021C5A68 mov r2, #0x0 ldr r1, [r1, #0x0] add r1, r1, r0 ldr r0, _0204F674 ; =0x0000011A strb r2, [r1, r0] bx lr nop _0204F670: .word 0x021C5A68 _0204F674: .word 0x0000011A thumb_func_start FUN_0204F678 FUN_0204F678: ; 0x0204F678 push {r3-r4} ldr r3, _0204F694 ; =0x021C5A68 ldr r2, [r3, #0x0] add r4, r2, r0 ldr r2, _0204F698 ; =0x00000122 strb r1, [r4, r2] ldr r1, [r3, #0x0] mov r4, #0xf add r0, r1, r0 add r2, #0x18 strb r4, [r0, r2] pop {r3-r4} bx lr nop _0204F694: .word 0x021C5A68 _0204F698: .word 0x00000122 thumb_func_start FUN_0204F69C FUN_0204F69C: ; 0x0204F69C ldr r1, _0204F6AC ; =0x021C5A68 mov r2, #0x0 ldr r1, [r1, #0x0] add r1, r1, r0 ldr r0, _0204F6B0 ; =0x00000122 strb r2, [r1, r0] bx lr nop _0204F6AC: .word 0x021C5A68 _0204F6B0: .word 0x00000122 thumb_func_start FUN_0204F6B4 FUN_0204F6B4: ; 0x0204F6B4 ldr r1, _0204F6C0 ; =0x021C5A68 ldr r1, [r1, #0x0] add r1, r1, r0 ldr r0, _0204F6C4 ; =0x00000142 ldrb r0, [r1, r0] bx lr .balign 4 _0204F6C0: .word 0x021C5A68 _0204F6C4: .word 0x00000142 thumb_func_start FUN_0204F6C8 FUN_0204F6C8: ; 0x0204F6C8 ldr r1, _0204F6D4 ; =0x021C5A68 ldr r1, [r1, #0x0] add r1, r1, r0 ldr r0, _0204F6D8 ; =0x0000013A ldrb r0, [r1, r0] bx lr .balign 4 _0204F6D4: .word 0x021C5A68 _0204F6D8: .word 0x0000013A thumb_func_start FUN_0204F6DC FUN_0204F6DC: ; 0x0204F6DC push {r4, lr} add r4, r0, #0x0 ldr r0, _0204F708 ; =0x021C5A68 add r1, r4, #0x0 ldr r0, [r0, #0x0] ldr r0, [r0, #0x54] ldr r0, [r0, #0x38] bl FUN_02055304 bl FUN_02031190 ldr r1, _0204F708 ; =0x021C5A68 lsl r0, r0, #0x3 ldr r1, [r1, #0x0] add r0, r1, r0 add r0, #0xa6 strb r4, [r0, #0x0] mov r0, #0x0 bl FUN_0204D168 pop {r4, pc} nop _0204F708: .word 0x021C5A68 thumb_func_start FUN_0204F70C FUN_0204F70C: ; 0x0204F70C push {r4, lr} ldr r3, _0204F728 ; =0x021C5A68 lsl r2, r0, #0x3 ldr r4, [r3, #0x0] lsl r0, r0, #0x2 add r2, r4, r2 add r2, #0xa6 strb r1, [r2, #0x0] ldr r2, [r3, #0x0] add r0, r2, r0 ldr r0, [r0, #0x8] bl FUN_02055304 pop {r4, pc} .balign 4 _0204F728: .word 0x021C5A68 thumb_func_start FUN_0204F72C FUN_0204F72C: ; 0x0204F72C push {r3, lr} ldr r1, _0204F748 ; =0x021C5A68 lsl r0, r0, #0x2 ldr r1, [r1, #0x0] add r0, r1, r0 ldr r0, [r0, #0x8] cmp r0, #0x0 beq _0204F742 bl FUN_020552F8 pop {r3, pc} _0204F742: mov r0, #0x0 mvn r0, r0 pop {r3, pc} .balign 4 _0204F748: .word 0x021C5A68 thumb_func_start FUN_0204F74C FUN_0204F74C: ; 0x0204F74C push {r3, lr} cmp r0, #0x0 beq _0204F75C ldr r1, _0204F770 ; =0x021C5A68 ldr r2, [r1, #0x0] ldr r1, [r2, #0x0] orr r0, r1 str r0, [r2, #0x0] _0204F75C: bl FUN_02037760 ldr r0, _0204F770 ; =0x021C5A68 mov r2, #0x0 ldr r1, [r0, #0x0] mov r0, #0xaf lsl r0, r0, #0x2 strb r2, [r1, r0] pop {r3, pc} nop _0204F770: .word 0x021C5A68 thumb_func_start FUN_0204F774 FUN_0204F774: ; 0x0204F774 push {r3-r4, lr} sub sp, #0x4 add r4, r0, #0x0 beq _0204F788 ldr r0, _0204F7D0 ; =0x021C5A68 ldr r2, [r0, #0x0] mvn r0, r4 ldr r1, [r2, #0x0] and r0, r1 str r0, [r2, #0x0] _0204F788: ldr r0, _0204F7D0 ; =0x021C5A68 ldr r0, [r0, #0x0] ldr r0, [r0, #0x0] cmp r0, #0x10 bne _0204F7A0 mov r1, #0x1 add r0, sp, #0x0 strb r1, [r0, #0x0] mov r0, #0x3e add r1, sp, #0x0 bl FUN_020311D0 _0204F7A0: ldr r0, _0204F7D0 ; =0x021C5A68 ldr r0, [r0, #0x0] ldr r0, [r0, #0x0] cmp r0, #0x0 bne _0204F7CC cmp r4, #0x10 beq _0204F7BC bl FUN_02037778 mov r0, #0x1 bl FUN_0204D628 add sp, #0x4 pop {r3-r4, pc} _0204F7BC: bl FUN_02037778 ldr r0, _0204F7D0 ; =0x021C5A68 mov r2, #0x1 ldr r1, [r0, #0x0] mov r0, #0xaf lsl r0, r0, #0x2 strb r2, [r1, r0] _0204F7CC: add sp, #0x4 pop {r3-r4, pc} .balign 4 _0204F7D0: .word 0x021C5A68 thumb_func_start FUN_0204F7D4 FUN_0204F7D4: ; 0x0204F7D4 ldr r0, _0204F7E0 ; =0x021C5A68 mov r1, #0x0 ldr r0, [r0, #0x0] str r1, [r0, #0x0] bx lr nop _0204F7E0: .word 0x021C5A68 thumb_func_start FUN_0204F7E4 FUN_0204F7E4: ; 0x0204F7E4 push {r3, lr} bl FUN_02037760 ldr r0, _0204F7F8 ; =0x021C5A68 mov r2, #0x0 ldr r1, [r0, #0x0] mov r0, #0xaf lsl r0, r0, #0x2 strb r2, [r1, r0] pop {r3, pc} .balign 4 _0204F7F8: .word 0x021C5A68 thumb_func_start FUN_0204F7FC FUN_0204F7FC: ; 0x0204F7FC push {r3, lr} bl FUN_02037778 mov r0, #0x1 bl FUN_0204D628 pop {r3, pc} .balign 4 thumb_func_start FUN_0204F80C FUN_0204F80C: ; 0x0204F80C push {r3, lr} ldr r0, _0204F850 ; =0x021C5A68 ldr r2, [r0, #0x0] ldr r0, _0204F854 ; =0x000002BF ldrb r1, [r2, r0] cmp r1, #0x0 bne _0204F84C sub r0, r0, #0x1 ldrb r0, [r2, r0] cmp r0, #0x0 bne _0204F832 bl FUN_0204F7FC ldr r0, _0204F850 ; =0x021C5A68 mov r2, #0x1 ldr r1, [r0, #0x0] ldr r0, _0204F854 ; =0x000002BF strb r2, [r1, r0] pop {r3, pc} _0204F832: bl FUN_02031190 bl FUN_0223E734 cmp r0, #0x0 beq _0204F84C bl FUN_0204F7FC ldr r0, _0204F850 ; =0x021C5A68 mov r2, #0x1 ldr r1, [r0, #0x0] ldr r0, _0204F854 ; =0x000002BF strb r2, [r1, r0] _0204F84C: pop {r3, pc} nop _0204F850: .word 0x021C5A68 _0204F854: .word 0x000002BF thumb_func_start FUN_0204F858 FUN_0204F858: ; 0x0204F858 push {r3, lr} ldr r0, _0204F884 ; =0x021C5A68 ldr r2, [r0, #0x0] ldr r0, _0204F888 ; =0x000002BF ldrb r1, [r2, r0] cmp r1, #0x0 bne _0204F880 sub r0, r0, #0x1 ldrb r0, [r2, r0] cmp r0, #0x0 beq _0204F880 bl FUN_02031190 bl FUN_0223E734 cmp r0, #0x0 bne _0204F880 mov r0, #0x0 bl FUN_0204D628 _0204F880: pop {r3, pc} nop _0204F884: .word 0x021C5A68 _0204F888: .word 0x000002BF thumb_func_start FUN_0204F88C FUN_0204F88C: ; 0x0204F88C push {r3-r7, lr} sub sp, #0x10 ldr r0, _0204F908 ; =0x021C5A68 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _0204F902 mov r6, #0x0 add r4, r6, #0x0 add r5, r6, #0x0 _0204F89E: ldr r0, _0204F908 ; =0x021C5A68 ldr r0, [r0, #0x0] add r0, r0, r4 ldr r0, [r0, #0x8] cmp r0, #0x0 beq _0204F8F8 bl FUN_02031190 cmp r6, r0 beq _0204F8F8 ldr r0, _0204F908 ; =0x021C5A68 ldr r0, [r0, #0x0] add r0, r0, r4 ldr r0, [r0, #0x8] bl FUN_020553A0 ldr r1, _0204F908 ; =0x021C5A68 str r0, [sp, #0xc] ldr r1, [r1, #0x0] add r1, r1, r5 add r2, r1, #0x0 add r2, #0xa2 ldrh r2, [r2, #0x0] str r2, [sp, #0x8] add r2, r1, #0x0 add r2, #0xa4 ldrh r7, [r2, #0x0] mov r2, #0xa6 ldrsb r1, [r1, r2] str r1, [sp, #0x4] ldr r1, [sp, #0x8] bl FUN_02058B30 ldr r0, [sp, #0xc] add r1, r7, #0x0 bl FUN_02058B50 ldr r0, [sp, #0x4] ldr r1, [sp, #0x8] str r0, [sp, #0x0] ldr r0, [sp, #0xc] mov r2, #0x0 add r3, r7, #0x0 bl FUN_02058E28 _0204F8F8: add r6, r6, #0x1 add r4, r4, #0x4 add r5, #0x8 cmp r6, #0x8 blt _0204F89E _0204F902: add sp, #0x10 pop {r3-r7, pc} nop _0204F908: .word 0x021C5A68 thumb_func_start FUN_0204F90C FUN_0204F90C: ; 0x0204F90C push {r4-r5} mov r3, #0xff mov r4, #0x0 add r0, r3, #0x0 ldr r1, _0204F92C ; =0x021C5A68 add r5, r4, #0x0 add r0, #0x6b _0204F91A: ldr r2, [r1, #0x0] add r4, r4, #0x1 add r2, r2, r5 add r5, #0x22 strh r3, [r2, r0] cmp r4, #0x8 blt _0204F91A pop {r4-r5} bx lr .balign 4 _0204F92C: .word 0x021C5A68 thumb_func_start FUN_0204F930 FUN_0204F930: ; 0x0204F930 push {r3-r5, lr} ldr r0, _0204F9B0 ; =0x021C5A68 mov r2, #0x0 ldr r1, [r0, #0x0] ldr r0, _0204F9B4 ; =0x000002B9 strb r2, [r1, r0] bl FUN_02031190 ldr r1, _0204F9B0 ; =0x021C5A68 lsl r0, r0, #0x2 ldr r1, [r1, #0x0] add r1, r1, r0 mov r0, #0x29 lsl r0, r0, #0x4 ldr r0, [r1, r0] cmp r0, #0x0 beq _0204F96E bl FUN_02031190 ldr r1, _0204F9B0 ; =0x021C5A68 add r3, r0, #0x0 ldr r2, [r1, #0x0] lsl r1, r3, #0x2 add r2, r2, r1 mov r1, #0x29 lsl r1, r1, #0x4 ldr r1, [r2, r1] mov r0, #0x5b bl FUN_020311D0 pop {r3-r5, pc} _0204F96E: mov r0, #0xf bl FUN_02023928 add r4, r0, #0x0 mov r0, #0x14 mov r1, #0xf bl FUN_020219F4 add r5, r0, #0x0 cmp r4, #0x0 bne _0204F988 bl ErrorHandling _0204F988: cmp r5, #0x0 bne _0204F990 bl ErrorHandling _0204F990: add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_0202397C mov r0, #0x5b add r1, r4, #0x0 bl FUN_020311D0 add r0, r5, #0x0 bl FUN_02021A20 add r0, r4, #0x0 bl FUN_02016A18 pop {r3-r5, pc} nop _0204F9B0: .word 0x021C5A68 _0204F9B4: .word 0x000002B9 thumb_func_start FUN_0204F9B8 FUN_0204F9B8: ; 0x0204F9B8 mov r0, #0x20 bx lr thumb_func_start FUN_0204F9BC FUN_0204F9BC: ; 0x0204F9BC push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 add r0, sp, #0x4 strb r5, [r0, #0x0] ldr r0, _0204FA54 ; =0x021C5A68 add r6, r2, #0x0 ldr r2, [r0, #0x0] cmp r2, #0x0 beq _0204FA4C ldr r1, _0204FA58 ; =0x0000014A mov r0, #0x22 add r4, r5, #0x0 mul r4, r0 add r1, r2, r1 add r0, r6, #0x0 add r1, r1, r4 bl FUN_0202393C add r0, r6, #0x0 mov r1, #0xf bl FUN_020239A0 str r0, [sp, #0x0] bl FUN_02021D3C cmp r0, #0x0 beq _0204F9FE ldr r0, _0204FA54 ; =0x021C5A68 ldr r0, [r0, #0x0] add r1, r0, r4 ldr r0, _0204FA5C ; =0x0000016A strh r5, [r1, r0] _0204F9FE: mov r4, #0x0 ldr r6, _0204FA54 ; =0x021C5A68 ldr r7, _0204FA5C ; =0x0000016A add r5, r4, #0x0 _0204FA06: ldr r0, [r6, #0x0] add r1, r0, r5 ldrh r0, [r1, r7] cmp r0, #0xff beq _0204FA26 ldr r0, _0204FA5C ; =0x0000016A strh r4, [r1, r0] mov r0, #0x5c add r1, r0, #0x0 ldr r2, [r6, #0x0] add r1, #0xee add r1, r2, r1 add r1, r1, r5 mov r2, #0x22 bl FUN_02030B3C _0204FA26: add r4, r4, #0x1 add r5, #0x22 cmp r4, #0x8 blt _0204FA06 mov r0, #0x5d add r1, sp, #0x4 mov r2, #0x1 bl FUN_02030BC4 ldr r0, [sp, #0x0] bl FUN_02021A20 ldr r0, _0204FA54 ; =0x021C5A68 mov r2, #0x1 ldr r1, [r0, #0x0] ldr r0, _0204FA60 ; =0x000002C2 add sp, #0x8 strb r2, [r1, r0] pop {r3-r7, pc} _0204FA4C: bl ErrorHandling add sp, #0x8 pop {r3-r7, pc} .balign 4 _0204FA54: .word 0x021C5A68 _0204FA58: .word 0x0000014A _0204FA5C: .word 0x0000016A _0204FA60: .word 0x000002C2 thumb_func_start FUN_0204FA64 FUN_0204FA64: ; 0x0204FA64 ldr r0, _0204FA70 ; =0x021C5A68 ldr r1, [r0, #0x0] ldr r0, _0204FA74 ; =0x0000025A add r0, r1, r0 bx lr nop _0204FA70: .word 0x021C5A68 _0204FA74: .word 0x0000025A thumb_func_start FUN_0204FA78 FUN_0204FA78: ; 0x0204FA78 push {r4-r6, lr} ldr r0, _0204FAC8 ; =0x021C5A68 add r6, r2, #0x0 ldr r1, [r0, #0x0] cmp r1, #0x0 beq _0204FAC4 ldrh r5, [r6, #0x20] lsl r0, r5, #0x2 add r1, r1, r0 mov r0, #0x29 lsl r0, r0, #0x4 ldr r0, [r1, r0] cmp r0, #0x0 beq _0204FA98 bl FUN_02016A18 _0204FA98: mov r0, #0xf lsl r4, r5, #0x2 bl FUN_02023928 ldr r2, _0204FAC8 ; =0x021C5A68 ldr r1, [r2, #0x0] add r3, r1, r4 mov r1, #0x29 lsl r1, r1, #0x4 str r0, [r3, r1] ldr r2, [r2, #0x0] add r0, r6, #0x0 add r2, r2, r4 ldr r1, [r2, r1] bl FUN_0202393C ldr r0, _0204FAC8 ; =0x021C5A68 mov r1, #0x1 ldr r0, [r0, #0x0] add r0, r0, r5 add r0, #0xfa strb r1, [r0, #0x0] _0204FAC4: pop {r4-r6, pc} nop _0204FAC8: .word 0x021C5A68 thumb_func_start FUN_0204FACC FUN_0204FACC: ; 0x0204FACC mov r0, #0x22 bx lr thumb_func_start FUN_0204FAD0 FUN_0204FAD0: ; 0x0204FAD0 push {r4, lr} add r4, r2, #0x0 bl FUN_02031190 ldrb r1, [r4, #0x0] cmp r1, r0 bne _0204FAE8 ldr r0, _0204FAF4 ; =0x021C5A68 mov r2, #0x1 ldr r1, [r0, #0x0] ldr r0, _0204FAF8 ; =0x000002B9 strb r2, [r1, r0] _0204FAE8: ldr r0, _0204FAF4 ; =0x021C5A68 mov r2, #0x0 ldr r1, [r0, #0x0] ldr r0, _0204FAFC ; =0x000002C2 strb r2, [r1, r0] pop {r4, pc} .balign 4 _0204FAF4: .word 0x021C5A68 _0204FAF8: .word 0x000002B9 _0204FAFC: .word 0x000002C2 thumb_func_start FUN_0204FB00 FUN_0204FB00: ; 0x0204FB00 ldr r0, _0204FB0C ; =0x021C5A68 ldr r1, [r0, #0x0] ldr r0, _0204FB10 ; =0x000002B9 ldrb r0, [r1, r0] bx lr nop _0204FB0C: .word 0x021C5A68 _0204FB10: .word 0x000002B9 thumb_func_start FUN_0204FB14 FUN_0204FB14: ; 0x0204FB14 ldr r0, _0204FB24 ; =0x021C5A68 mov r2, #0x8 ldr r1, [r0, #0x0] mov r0, #0xb lsl r0, r0, #0x6 strb r2, [r1, r0] bx lr nop _0204FB24: .word 0x021C5A68 thumb_func_start FUN_0204FB28 FUN_0204FB28: ; 0x0204FB28 push {r3-r5, lr} mov r4, #0x0 bl FUN_02031190 ldr r2, _0204FB9C ; =0x021C5A68 lsl r1, r0, #0x2 ldr r3, [r2, #0x0] add r5, r3, r1 mov r1, #0x29 lsl r1, r1, #0x4 ldr r3, [r5, r1] cmp r3, #0x0 beq _0204FB60 add r4, r3, #0x0 mov r3, #0x0 str r3, [r5, r1] ldr r1, [r2, #0x0] add r1, r1, r0 add r1, #0xfa strb r3, [r1, #0x0] ldr r3, [r2, #0x0] mov r2, #0x22 mul r2, r0 mov r1, #0xff add r0, r1, #0x0 add r2, r3, r2 add r0, #0x6b strh r1, [r2, r0] _0204FB60: mov r5, #0x0 _0204FB62: add r0, r5, #0x0 bl FUN_0204ED9C add r5, r5, #0x1 cmp r5, #0x8 blt _0204FB62 cmp r4, #0x0 beq _0204FB9A ldr r1, _0204FB9C ; =0x021C5A68 mov r0, #0x29 ldr r2, [r1, #0x0] lsl r0, r0, #0x4 str r4, [r2, r0] ldr r0, [r1, #0x0] mov r2, #0x1 add r0, #0xfa strb r2, [r0, #0x0] ldr r2, [r1, #0x0] ldr r1, _0204FBA0 ; =0x0000014A add r0, r4, #0x0 add r1, r2, r1 bl FUN_0202393C ldr r0, _0204FB9C ; =0x021C5A68 mov r2, #0x0 ldr r1, [r0, #0x0] ldr r0, _0204FBA4 ; =0x0000016A strh r2, [r1, r0] _0204FB9A: pop {r3-r5, pc} .balign 4 _0204FB9C: .word 0x021C5A68 _0204FBA0: .word 0x0000014A _0204FBA4: .word 0x0000016A thumb_func_start FUN_0204FBA8 FUN_0204FBA8: ; 0x0204FBA8 bx lr .balign 4 thumb_func_start FUN_0204FBAC FUN_0204FBAC: ; 0x0204FBAC bx lr .balign 4 thumb_func_start FUN_0204FBB0 FUN_0204FBB0: ; 0x0204FBB0 push {r4, lr} ldr r1, _0204FC08 ; =0x021C5A6C add r4, r0, #0x0 ldr r1, [r1, #0x0] cmp r1, #0x0 bne _0204FC04 bl FUN_0208881C mov r0, #0xf mov r1, #0x48 bl FUN_02016998 ldr r1, _0204FC08 ; =0x021C5A6C mov r2, #0x48 str r0, [r1, #0x0] mov r1, #0x0 blx MI_CpuFill8 ldr r0, _0204FC08 ; =0x021C5A6C mov r1, #0x32 ldr r0, [r0, #0x0] mov r2, #0xa strh r1, [r0, #0x3c] ldr r0, _0204FC0C ; =FUN_0205006C mov r1, #0x0 bl FUN_0200CA44 ldr r1, _0204FC08 ; =0x021C5A6C ldr r2, [r1, #0x0] str r0, [r2, #0x38] ldr r0, [r1, #0x0] mov r2, #0x0 str r4, [r0, #0x18] ldr r0, [r1, #0x0] str r2, [r0, #0x44] bl FUN_0204FBA8 ldr r0, _0204FC08 ; =0x021C5A6C ldr r0, [r0, #0x0] add r0, #0x1c bl FUN_020312BC _0204FC04: pop {r4, pc} nop _0204FC08: .word 0x021C5A6C _0204FC0C: .word FUN_0205006C thumb_func_start FUN_0204FC10 FUN_0204FC10: ; 0x0204FC10 push {r4-r6, lr} ldr r0, _0204FC58 ; =0x021C5A6C ldr r0, [r0, #0x0] cmp r0, #0x0 beq _0204FC56 ldr r0, [r0, #0x38] bl FUN_0200CAB4 mov r4, #0x0 ldr r6, _0204FC58 ; =0x021C5A6C add r5, r4, #0x0 _0204FC26: ldr r0, [r6, #0x0] ldr r0, [r0, r5] cmp r0, #0x0 beq _0204FC32 bl FUN_02016A18 _0204FC32: add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, #0x4 blt _0204FC26 ldr r0, _0204FC58 ; =0x021C5A6C ldr r0, [r0, #0x0] ldr r0, [r0, #0x44] cmp r0, #0x0 beq _0204FC48 bl FUN_02016A18 _0204FC48: ldr r0, _0204FC58 ; =0x021C5A6C ldr r0, [r0, #0x0] bl FUN_02016A18 ldr r0, _0204FC58 ; =0x021C5A6C mov r1, #0x0 str r1, [r0, #0x0] _0204FC56: pop {r4-r6, pc} .balign 4 _0204FC58: .word 0x021C5A6C thumb_func_start FUN_0204FC5C FUN_0204FC5C: ; 0x0204FC5C push {r4, lr} ldr r1, _0204FC9C ; =0x021C5A6C add r4, r0, #0x0 ldr r1, [r1, #0x0] cmp r1, #0x0 bne _0204FC9A bl FUN_020377AC bl FUN_02031824 add r0, r4, #0x0 bl FUN_0204FBB0 mov r2, #0x3a mov r0, #0x3 mov r1, #0x21 lsl r2, r2, #0xa bl FUN_0201681C ldr r0, _0204FC9C ; =0x021C5A6C ldr r0, [r0, #0x0] ldr r0, [r0, #0x18] ldr r0, [r0, #0xc] bl FUN_020462AC bl FUN_0205F194 cmp r0, #0x0 bne _0204FC9A bl FUN_02031924 _0204FC9A: pop {r4, pc} .balign 4 _0204FC9C: .word 0x021C5A6C thumb_func_start FUN_0204FCA0 FUN_0204FCA0: ; 0x0204FCA0 push {r3, lr} ldr r0, _0204FCD0 ; =0x021C5A6C mov r2, #0x1 ldr r1, [r0, #0x0] add r1, #0x41 strb r2, [r1, #0x0] ldr r0, [r0, #0x0] ldr r0, [r0, #0x18] ldr r0, [r0, #0xc] bl FUN_02029FC8 mov r1, #0x24 bl FUN_0202A170 ldr r0, _0204FCD0 ; =0x021C5A6C ldr r0, [r0, #0x0] ldr r0, [r0, #0x18] bl FUN_0223E060 ldr r0, _0204FCD4 ; =FUN_020500A4 mov r1, #0x0 bl FUN_02050094 pop {r3, pc} .balign 4 _0204FCD0: .word 0x021C5A6C _0204FCD4: .word FUN_020500A4 thumb_func_start FUN_0204FCD8 FUN_0204FCD8: ; 0x0204FCD8 push {r3, lr} ldr r0, _0204FCEC ; =0x021C5A6C ldr r0, [r0, #0x0] cmp r0, #0x0 beq _0204FCEA ldr r0, _0204FCF0 ; =FUN_02050D54 mov r1, #0x3 bl FUN_02050094 _0204FCEA: pop {r3, pc} .balign 4 _0204FCEC: .word 0x021C5A6C _0204FCF0: .word FUN_02050D54 thumb_func_start FUN_0204FCF4 FUN_0204FCF4: ; 0x0204FCF4 push {r3, lr} bl FUN_02031914 ldr r0, _0204FD04 ; =FUN_020504D8 mov r1, #0x0 bl FUN_02050094 pop {r3, pc} .balign 4 _0204FD04: .word FUN_020504D8 thumb_func_start FUN_0204FD08 FUN_0204FD08: ; 0x0204FD08 push {r3, lr} bl FUN_0202EDD8 cmp r0, #0x0 bne _0204FD1E bl FUN_02245F1C ldr r0, _0204FD20 ; =FUN_020500A4 mov r1, #0x0 bl FUN_02050094 _0204FD1E: pop {r3, pc} .balign 4 _0204FD20: .word FUN_020500A4 thumb_func_start FUN_0204FD24 FUN_0204FD24: ; 0x0204FD24 push {r3, lr} bl FUN_02031934 ldr r0, _0204FD34 ; =FUN_0204FD08 mov r1, #0x0 bl FUN_02050094 pop {r3, pc} .balign 4 _0204FD34: .word FUN_0204FD08 thumb_func_start FUN_0204FD38 FUN_0204FD38: ; 0x0204FD38 push {r3-r7, lr} sub sp, #0x10 ldr r0, _0204FDBC ; =0x021C5A6C add r2, sp, #0x0 ldr r0, [r0, #0x0] ldr r3, _0204FDC0 ; =0x020F5838 ldr r5, [r0, #0x34] add r6, r2, #0x0 ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldr r0, _0204FDC4 ; =FUN_020502AC ldr r4, _0204FDC8 ; =FUN_02050548 ldr r7, _0204FDCC ; =FUN_02050168 cmp r5, r0 bne _0204FD68 ldr r0, _0204FDD0 ; =FUN_0205031C mov r1, #0x0 bl FUN_02050094 add sp, #0x10 mov r0, #0x1 pop {r3-r7, pc} _0204FD68: cmp r4, r5 bne _0204FD7A ldr r0, _0204FDD4 ; =FUN_02050578 mov r1, #0x0 bl FUN_02050094 add sp, #0x10 mov r0, #0x1 pop {r3-r7, pc} _0204FD7A: cmp r7, r5 bne _0204FD8C ldr r0, _0204FDD8 ; =FUN_020505E0 mov r1, #0x0 bl FUN_02050094 add sp, #0x10 mov r0, #0x1 pop {r3-r7, pc} _0204FD8C: ldr r0, _0204FDDC ; =FUN_020504D0 cmp r0, r5 bne _0204FDA0 ldr r0, _0204FDE0 ; =FUN_02050610 mov r1, #0x0 bl FUN_02050094 add sp, #0x10 mov r0, #0x1 pop {r3-r7, pc} _0204FDA0: mov r1, #0x0 _0204FDA2: ldr r0, [r6, #0x0] cmp r5, r0 bne _0204FDAE add sp, #0x10 mov r0, #0x1 pop {r3-r7, pc} _0204FDAE: add r1, r1, #0x1 add r6, r6, #0x4 cmp r1, #0x4 blo _0204FDA2 mov r0, #0x0 add sp, #0x10 pop {r3-r7, pc} .balign 4 _0204FDBC: .word 0x021C5A6C _0204FDC0: .word 0x020F5838 _0204FDC4: .word FUN_020502AC _0204FDC8: .word FUN_02050548 _0204FDCC: .word FUN_02050168 _0204FDD0: .word FUN_0205031C _0204FDD4: .word FUN_02050578 _0204FDD8: .word FUN_020505E0 _0204FDDC: .word FUN_020504D0 _0204FDE0: .word FUN_02050610 thumb_func_start FUN_0204FDE4 FUN_0204FDE4: ; 0x0204FDE4 push {r4, lr} ldr r0, _0204FE38 ; =0x021C5A6C ldr r3, _0204FE3C ; =FUN_0205058C ldr r0, [r0, #0x0] ldr r2, _0204FE40 ; =FUN_020505F4 ldr r4, [r0, #0x34] ldr r0, _0204FE44 ; =FUN_02050330 ldr r1, _0204FE48 ; =FUN_02050624 cmp r4, r0 bne _0204FE04 ldr r0, _0204FE4C ; =FUN_02050338 mov r1, #0x0 bl FUN_02050094 mov r0, #0x1 pop {r4, pc} _0204FE04: cmp r3, r4 bne _0204FE14 ldr r0, _0204FE50 ; =FUN_02050594 mov r1, #0x0 bl FUN_02050094 mov r0, #0x1 pop {r4, pc} _0204FE14: cmp r2, r4 bne _0204FE24 ldr r0, _0204FE54 ; =FUN_020505F8 mov r1, #0x0 bl FUN_02050094 mov r0, #0x1 pop {r4, pc} _0204FE24: cmp r1, r4 bne _0204FE34 ldr r0, _0204FE58 ; =FUN_02050628 mov r1, #0x0 bl FUN_02050094 mov r0, #0x1 pop {r4, pc} _0204FE34: mov r0, #0x0 pop {r4, pc} .balign 4 _0204FE38: .word 0x021C5A6C _0204FE3C: .word FUN_0205058C _0204FE40: .word FUN_020505F4 _0204FE44: .word FUN_02050330 _0204FE48: .word FUN_02050624 _0204FE4C: .word FUN_02050338 _0204FE50: .word FUN_02050594 _0204FE54: .word FUN_020505F8 _0204FE58: .word FUN_02050628 thumb_func_start FUN_0204FE5C FUN_0204FE5C: ; 0x0204FE5C push {r3-r4} sub sp, #0x38 ldr r4, _0204FEA8 ; =0x020F5848 add r3, sp, #0x0 mov r2, #0x7 _0204FE66: ldmia r4!, {r0-r1} stmia r3!, {r0-r1} sub r2, r2, #0x1 bne _0204FE66 ldr r0, _0204FEAC ; =0x021C5A6C ldr r0, [r0, #0x0] ldr r1, [r0, #0x34] cmp r0, #0x0 bne _0204FE80 add sp, #0x38 mov r0, #0x0 pop {r3-r4} bx lr _0204FE80: ldr r0, [sp, #0x0] cmp r0, #0x0 beq _0204FE9E add r2, sp, #0x0 _0204FE88: ldr r0, [r2, #0x0] cmp r1, r0 bne _0204FE96 add sp, #0x38 mov r0, #0x1 pop {r3-r4} bx lr _0204FE96: add r2, r2, #0x4 ldr r0, [r2, #0x0] cmp r0, #0x0 bne _0204FE88 _0204FE9E: mov r0, #0x0 add sp, #0x38 pop {r3-r4} bx lr nop _0204FEA8: .word 0x020F5848 _0204FEAC: .word 0x021C5A6C thumb_func_start FUN_0204FEB0 FUN_0204FEB0: ; 0x0204FEB0 push {r3-r6, lr} sub sp, #0x4 add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 bl FUN_02030F40 cmp r0, #0x0 bne _0204FEE8 add r0, r5, #0x0 bl FUN_020377AC mov r1, #0x0 add r3, r5, #0x0 str r1, [sp, #0x0] add r3, #0xac ldr r3, [r3, #0x0] add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_02031948 add r0, r5, #0x0 bl FUN_0204FBB0 ldr r0, _0204FEEC ; =FUN_02050640 mov r1, #0x0 bl FUN_02050094 _0204FEE8: add sp, #0x4 pop {r3-r6, pc} .balign 4 _0204FEEC: .word FUN_02050640 thumb_func_start FUN_0204FEF0 FUN_0204FEF0: ; 0x0204FEF0 push {r3-r6, lr} sub sp, #0x4 add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 bl FUN_02030F40 cmp r0, #0x0 bne _0204FF28 add r0, r5, #0x0 bl FUN_020377AC mov r1, #0x0 add r3, r5, #0x0 str r1, [sp, #0x0] add r3, #0xac ldr r3, [r3, #0x0] add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_02031990 add r0, r5, #0x0 bl FUN_0204FBB0 ldr r0, _0204FF2C ; =FUN_02050668 mov r1, #0x0 bl FUN_02050094 _0204FF28: add sp, #0x4 pop {r3-r6, pc} .balign 4 _0204FF2C: .word FUN_02050668 thumb_func_start FUN_0204FF30 FUN_0204FF30: ; 0x0204FF30 ldr r1, _0204FF40 ; =0x021C5A6C ldr r3, _0204FF44 ; =FUN_02050094 ldr r1, [r1, #0x0] add r1, #0x3e strb r0, [r1, #0x0] ldr r0, _0204FF48 ; =FUN_02050688 mov r1, #0x0 bx r3 .balign 4 _0204FF40: .word 0x021C5A6C _0204FF44: .word FUN_02050094 _0204FF48: .word FUN_02050688 thumb_func_start FUN_0204FF4C FUN_0204FF4C: ; 0x0204FF4C ldr r3, _0204FF54 ; =FUN_02050094 ldr r0, _0204FF58 ; =FUN_02050BBC mov r1, #0x0 bx r3 .balign 4 _0204FF54: .word FUN_02050094 _0204FF58: .word FUN_02050BBC thumb_func_start FUN_0204FF5C FUN_0204FF5C: ; 0x0204FF5C push {r4-r7, lr} sub sp, #0xc add r4, r0, #0x0 mov r0, #0x0 add r1, r0, #0x0 bl FUN_0200E3BC mov r0, #0x1 mov r1, #0x0 bl FUN_0200E3BC mov r0, #0x1 add r1, r0, #0x0 bl FUN_020334E8 bl FUN_02031810 cmp r0, #0x0 beq _02050014 ldr r0, _02050018 ; =0x021C5A6C ldr r1, [r0, #0x0] cmp r1, #0x0 bne _0204FF9C add r0, r4, #0x0 bl FUN_0204FBB0 ldr r0, _02050018 ; =0x021C5A6C mov r1, #0x1 ldr r0, [r0, #0x0] add r0, #0x42 strb r1, [r0, #0x0] b _0204FFA2 _0204FF9C: mov r0, #0x0 add r1, #0x42 strb r0, [r1, #0x0] _0204FFA2: ldr r0, _02050018 ; =0x021C5A6C mov r1, #0x0 ldr r0, [r0, #0x0] add r0, #0x43 strb r1, [r0, #0x0] bl FUN_02031190 str r0, [sp, #0x8] bl FUN_02031190 bl FUN_0202DFA4 mov r4, #0x0 bl FUN_02030F20 cmp r0, #0x0 ble _0204FFEA ldr r6, _02050018 ; =0x021C5A6C add r5, r4, #0x0 add r7, r4, #0x0 _0204FFCA: ldr r0, [r6, #0x0] ldr r0, [r0, r5] cmp r0, #0x0 bne _0204FFDE ldr r1, _0205001C ; =0x0000066C add r0, r7, #0x0 bl FUN_02016998 ldr r1, [r6, #0x0] str r0, [r1, r5] _0204FFDE: add r5, r5, #0x4 add r4, r4, #0x1 bl FUN_02030F20 cmp r4, r0 blt _0204FFCA _0204FFEA: ldr r0, _02050018 ; =0x021C5A6C mov r3, #0xff ldr r1, [r0, #0x0] ldr r0, [r1, #0x18] str r0, [sp, #0x0] ldr r0, [sp, #0x8] lsl r0, r0, #0x2 ldr r0, [r1, r0] str r0, [sp, #0x4] mov r0, #0x0 add r1, r0, #0x0 add r2, r0, #0x0 bl FUN_02064E90 mov r0, #0x5f bl FUN_02031588 ldr r0, _02050020 ; =FUN_02050C14 mov r1, #0x0 bl FUN_02050094 _02050014: add sp, #0xc pop {r4-r7, pc} .balign 4 _02050018: .word 0x021C5A6C _0205001C: .word 0x0000066C _02050020: .word FUN_02050C14 thumb_func_start FUN_02050024 FUN_02050024: ; 0x02050024 push {r3, lr} ldr r0, _02050040 ; =0x021C5A6C ldr r0, [r0, #0x0] cmp r0, #0x0 beq _0205003E mov r0, #0x0 add r1, r0, #0x0 bl FUN_020334E8 ldr r0, _02050044 ; =FUN_02050DB0 mov r1, #0x5 bl FUN_02050094 _0205003E: pop {r3, pc} .balign 4 _02050040: .word 0x021C5A6C _02050044: .word FUN_02050DB0 thumb_func_start FUN_02050048 FUN_02050048: ; 0x02050048 push {r3, lr} ldr r0, _02050064 ; =0x021C5A6C ldr r0, [r0, #0x0] cmp r0, #0x0 beq _02050060 mov r0, #0x5b bl FUN_02031588 ldr r0, _02050068 ; =FUN_02050D88 mov r1, #0x5 bl FUN_02050094 _02050060: pop {r3, pc} nop _02050064: .word 0x021C5A6C _02050068: .word FUN_02050D88 thumb_func_start FUN_0205006C FUN_0205006C: ; 0x0205006C push {r3, lr} ldr r1, _02050090 ; =0x021C5A6C ldr r2, [r1, #0x0] cmp r2, #0x0 bne _0205007C bl FUN_0200CAB4 pop {r3, pc} _0205007C: ldr r1, [r2, #0x34] cmp r1, #0x0 beq _0205008C add r2, #0x40 ldrb r0, [r2, #0x0] cmp r0, #0x0 bne _0205008C blx r1 _0205008C: pop {r3, pc} nop _02050090: .word 0x021C5A6C thumb_func_start FUN_02050094 FUN_02050094: ; 0x02050094 ldr r2, _020500A0 ; =0x021C5A6C ldr r3, [r2, #0x0] str r0, [r3, #0x34] ldr r0, [r2, #0x0] strh r1, [r0, #0x3c] bx lr .balign 4 _020500A0: .word 0x021C5A6C thumb_func_start FUN_020500A4 FUN_020500A4: ; 0x020500A4 push {r3, lr} ldr r0, _02050108 ; =0x021C5A6C ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3c] cmp r0, #0x0 beq _020500B6 sub r0, r0, #0x1 strh r0, [r1, #0x3c] pop {r3, pc} _020500B6: bl FUN_02030F40 cmp r0, #0x0 beq _02050104 ldr r0, _02050108 ; =0x021C5A6C ldr r0, [r0, #0x0] ldr r0, [r0, #0x18] bl FUN_0223E1E0 bl FUN_0202DBE0 mov r0, #0x0 bl FUN_0204D168 bl FUN_0223EF7C bl FUN_02245FA0 ldr r0, _02050108 ; =0x021C5A6C ldr r0, [r0, #0x0] ldr r0, [r0, #0x18] ldr r0, [r0, #0xc] bl FUN_020462AC bl FUN_0205F194 cmp r0, #0x0 bne _020500F8 ldr r0, _0205010C ; =FUN_02050114 mov r1, #0x0 bl FUN_02050094 pop {r3, pc} _020500F8: bl FUN_0204F80C ldr r0, _02050110 ; =FUN_02050144 mov r1, #0x18 bl FUN_02050094 _02050104: pop {r3, pc} nop _02050108: .word 0x021C5A6C _0205010C: .word FUN_02050114 _02050110: .word FUN_02050144 thumb_func_start FUN_02050114 FUN_02050114: ; 0x02050114 push {r3, lr} ldr r0, _0205013C ; =0x021C5A6C ldr r0, [r0, #0x0] ldr r0, [r0, #0x18] ldr r0, [r0, #0xc] bl FUN_020462AC bl FUN_0205F194 cmp r0, #0x0 beq _0205013A bl FUN_02031880 bl FUN_0204F80C ldr r0, _02050140 ; =FUN_02050168 mov r1, #0x18 bl FUN_02050094 _0205013A: pop {r3, pc} .balign 4 _0205013C: .word 0x021C5A6C _02050140: .word FUN_02050168 thumb_func_start FUN_02050144 FUN_02050144: ; 0x02050144 push {r3, lr} ldr r0, _02050160 ; =0x021C5A6C ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3c] cmp r0, #0x0 beq _02050156 sub r0, r0, #0x1 strh r0, [r1, #0x3c] pop {r3, pc} _02050156: ldr r0, _02050164 ; =FUN_02050168 mov r1, #0x18 bl FUN_02050094 pop {r3, pc} .balign 4 _02050160: .word 0x021C5A6C _02050164: .word FUN_02050168 thumb_func_start FUN_02050168 FUN_02050168: ; 0x02050168 push {r3, lr} bl FUN_0223DFB4 bl FUN_0204F80C bl FUN_020318C4 cmp r0, #0x0 beq _02050198 bl FUN_02031190 cmp r0, #0x0 bne _02050190 bl FUN_02245324 ldr r0, _0205019C ; =FUN_0205024C mov r1, #0x3c bl FUN_02050094 pop {r3, pc} _02050190: ldr r0, _020501A0 ; =FUN_020501A4 mov r1, #0x78 bl FUN_02050094 _02050198: pop {r3, pc} nop _0205019C: .word FUN_0205024C _020501A0: .word FUN_020501A4 thumb_func_start FUN_020501A4 FUN_020501A4: ; 0x020501A4 push {r3, lr} ldr r0, _02050240 ; =0x021C5A6C ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3c] cmp r0, #0x0 beq _020501B4 sub r0, r0, #0x1 strh r0, [r1, #0x3c] _020501B4: bl FUN_0202EE44 cmp r0, #0x0 bne _020501CE bl FUN_020311F0 cmp r0, #0x0 bne _020501CE ldr r0, _02050240 ; =0x021C5A6C ldr r0, [r0, #0x0] ldrh r0, [r0, #0x3c] cmp r0, #0x0 bne _020501DC _020501CE: bl FUN_02031880 ldr r0, _02050244 ; =FUN_020504A4 mov r1, #0x0 bl FUN_02050094 pop {r3, pc} _020501DC: bl FUN_02031190 bl FUN_02030E7C cmp r0, #0x0 beq _0205023C ldr r0, _02050240 ; =0x021C5A6C ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3c] cmp r0, #0x0 beq _02050202 sub r0, r0, #0x1 strh r0, [r1, #0x3c] bl FUN_02030C58 mov r1, #0x42 lsl r1, r1, #0x2 cmp r0, r1 bne _0205023C _02050202: bl FUN_0223E6B8 mov r0, #0x0 bl FUN_0204D040 mov r0, #0x0 add r1, r0, #0x0 add r2, r0, #0x0 add r3, r0, #0x0 bl FUN_022408FC mov r0, #0x0 mov r1, #0x1 bl FUN_0223FCE8 mov r0, #0x0 bl FUN_0202DE78 mov r0, #0x0 add r1, r0, #0x0 add r2, r0, #0x0 bl FUN_0204D43C bl FUN_0204F858 ldr r0, _02050248 ; =FUN_02050350 mov r1, #0xa bl FUN_02050094 _0205023C: pop {r3, pc} nop _02050240: .word 0x021C5A6C _02050244: .word FUN_020504A4 _02050248: .word FUN_02050350 thumb_func_start FUN_0205024C FUN_0205024C: ; 0x0205024C push {r3, lr} bl FUN_0223DFB4 ldr r0, _020502A0 ; =0x021C5A6C ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3c] cmp r0, #0x0 beq _02050260 sub r0, r0, #0x1 strh r0, [r1, #0x3c] _02050260: bl FUN_020311E8 cmp r0, #0x0 bne _02050272 ldr r0, _020502A0 ; =0x021C5A6C ldr r0, [r0, #0x0] ldrh r0, [r0, #0x3c] cmp r0, #0x0 bne _0205029E _02050272: bl FUN_0223E6B8 cmp r0, #0x0 beq _0205027E bl FUN_0204F7FC _0205027E: ldr r0, _020502A4 ; =0x02105E74 bl FUN_0204FBAC mov r0, #0x0 bl FUN_0204D168 bl FUN_0204F930 bl FUN_02245FA0 bl FUN_0223E7FC ldr r0, _020502A8 ; =FUN_020502AC mov r1, #0x0 bl FUN_02050094 _0205029E: pop {r3, pc} .balign 4 _020502A0: .word 0x021C5A6C _020502A4: .word 0x02105E74 _020502A8: .word FUN_020502AC thumb_func_start FUN_020502AC FUN_020502AC: ; 0x020502AC push {r3, lr} bl FUN_0223DFB4 ldr r0, _02050314 ; =0x021C5A6C ldr r0, [r0, #0x0] ldr r0, [r0, #0x18] ldr r0, [r0, #0x10] cmp r0, #0x0 bne _02050310 bl FUN_020311F0 cmp r0, #0x0 bne _020502E2 bl FUN_0202EE24 cmp r0, #0x0 beq _020502E2 bl FUN_02031190 bl FUN_02030E7C cmp r0, #0x0 bne _02050310 bl FUN_02031280 cmp r0, #0x0 bne _02050310 _020502E2: mov r0, #0x0 bl FUN_02245358 bl FUN_0204F90C bl FUN_02247808 mov r0, #0x2b bl FUN_020311DC bl FUN_02031190 mov r1, #0x1 bl FUN_0223FCE8 bl FUN_0223E6B8 bl FUN_020318B4 ldr r0, _02050318 ; =FUN_02050458 mov r1, #0x0 bl FUN_02050094 _02050310: pop {r3, pc} nop _02050314: .word 0x021C5A6C _02050318: .word FUN_02050458 thumb_func_start FUN_0205031C FUN_0205031C: ; 0x0205031C push {r3, lr} bl FUN_0204CC48 ldr r0, _0205032C ; =FUN_02050330 mov r1, #0x0 bl FUN_02050094 pop {r3, pc} .balign 4 _0205032C: .word FUN_02050330 thumb_func_start FUN_02050330 FUN_02050330: ; 0x02050330 ldr r3, _02050334 ; =FUN_0223DFB4 bx r3 .balign 4 _02050334: .word FUN_0223DFB4 + 1 thumb_func_start FUN_02050338 FUN_02050338: ; 0x02050338 push {r3, lr} bl FUN_02245F1C bl FUN_0204CC9C ldr r0, _0205034C ; =FUN_020502AC mov r1, #0x0 bl FUN_02050094 pop {r3, pc} .balign 4 _0205034C: .word FUN_020502AC thumb_func_start FUN_02050350 FUN_02050350: ; 0x02050350 push {r3, lr} ldr r0, _020503A8 ; =0x021C5A6C ldr r0, [r0, #0x0] ldrh r0, [r0, #0x3c] cmp r0, #0x9 bne _02050364 bl FUN_0202DBE0 bl FUN_0223E7FC _02050364: ldr r0, _020503A8 ; =0x021C5A6C ldr r0, [r0, #0x0] ldrh r0, [r0, #0x3c] cmp r0, #0x1 bne _02050374 mov r0, #0x0 bl FUN_0204D198 _02050374: ldr r0, _020503A8 ; =0x021C5A6C ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3c] cmp r0, #0x0 beq _02050384 sub r0, r0, #0x1 strh r0, [r1, #0x3c] pop {r3, pc} _02050384: bl FUN_0202DCF8 cmp r0, #0x0 beq _020503A0 ldr r0, _020503AC ; =0x02105E80 bl FUN_0204FBAC bl FUN_0204F930 ldr r0, _020503B0 ; =FUN_020503B4 mov r1, #0xc8 bl FUN_02050094 pop {r3, pc} _020503A0: bl FUN_02050548 pop {r3, pc} nop _020503A8: .word 0x021C5A6C _020503AC: .word 0x02105E80 _020503B0: .word FUN_020503B4 thumb_func_start FUN_020503B4 FUN_020503B4: ; 0x020503B4 push {r3, lr} bl FUN_0204FB00 cmp r0, #0x0 beq _020503CC bl FUN_0223EF7C ldr r0, _020503E8 ; =FUN_020503F0 mov r1, #0x0 bl FUN_02050094 pop {r3, pc} _020503CC: bl FUN_02050548 ldr r0, _020503EC ; =0x021C5A6C ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3c] cmp r0, #0x0 beq _020503E0 sub r0, r0, #0x1 strh r0, [r1, #0x3c] pop {r3, pc} _020503E0: bl FUN_02050510 pop {r3, pc} nop _020503E8: .word FUN_020503F0 _020503EC: .word 0x021C5A6C thumb_func_start FUN_020503F0 FUN_020503F0: ; 0x020503F0 push {r3, lr} bl FUN_0223F4D8 cmp r0, #0x0 beq _02050412 ldr r0, _02050418 ; =0x02105E94 bl FUN_0204FBAC bl FUN_0223F4F4 bl FUN_02245FA0 ldr r0, _0205041C ; =FUN_02050420 mov r1, #0x0 bl FUN_02050094 pop {r3, pc} _02050412: bl FUN_02050548 pop {r3, pc} .balign 4 _02050418: .word 0x02105E94 _0205041C: .word FUN_02050420 thumb_func_start FUN_02050420 FUN_02050420: ; 0x02050420 push {r3, lr} bl FUN_022461A4 cmp r0, #0x0 beq _0205044A ldr r0, _02050450 ; =0x02105EB0 bl FUN_0204FBAC bl FUN_022461B8 mov r0, #0x1 bl FUN_0204D168 mov r0, #0x1f bl FUN_020311DC ldr r0, _02050454 ; =FUN_02050548 mov r1, #0x0 bl FUN_02050094 pop {r3, pc} _0205044A: bl FUN_02050548 pop {r3, pc} .balign 4 _02050450: .word 0x02105EB0 _02050454: .word FUN_02050548 thumb_func_start FUN_02050458 FUN_02050458: ; 0x02050458 push {r3, lr} bl FUN_02031280 cmp r0, #0x0 beq _02050472 mov r0, #0x0 add r1, r0, #0x0 bl FUN_0204EAD8 ldr r0, _02050474 ; =FUN_02050478 mov r1, #0x1e bl FUN_02050094 _02050472: pop {r3, pc} .balign 4 _02050474: .word FUN_02050478 thumb_func_start FUN_02050478 FUN_02050478: ; 0x02050478 push {r3, lr} ldr r0, _0205049C ; =0x021C5A6C ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3c] cmp r0, #0x0 beq _0205048A sub r0, r0, #0x1 strh r0, [r1, #0x3c] pop {r3, pc} _0205048A: bl FUN_02031190 cmp r0, #0x0 bne _0205049A ldr r0, _020504A0 ; =FUN_020500A4 mov r1, #0x0 bl FUN_02050094 _0205049A: pop {r3, pc} .balign 4 _0205049C: .word 0x021C5A6C _020504A0: .word FUN_020500A4 thumb_func_start FUN_020504A4 FUN_020504A4: ; 0x020504A4 push {r3, lr} ldr r0, _020504C8 ; =0x021C5A6C ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3c] cmp r0, #0x0 beq _020504B6 sub r0, r0, #0x1 strh r0, [r1, #0x3c] pop {r3, pc} _020504B6: bl FUN_02031190 cmp r0, #0x0 bne _020504C6 ldr r0, _020504CC ; =FUN_020500A4 mov r1, #0x0 bl FUN_02050094 _020504C6: pop {r3, pc} .balign 4 _020504C8: .word 0x021C5A6C _020504CC: .word FUN_020500A4 thumb_func_start FUN_020504D0 FUN_020504D0: ; 0x020504D0 ldr r3, _020504D4 ; =FUN_0223DFB4 bx r3 .balign 4 _020504D4: .word FUN_0223DFB4 + 1 thumb_func_start FUN_020504D8 FUN_020504D8: ; 0x020504D8 push {r3, lr} bl FUN_02031190 cmp r0, #0x0 bne _02050506 ldr r0, _02050508 ; =0x021C5A6C ldr r0, [r0, #0x0] ldr r0, [r0, #0x18] bl FUN_0223E1E0 bl FUN_0202DBE0 mov r0, #0x0 bl FUN_0204D168 bl FUN_0223EF7C bl FUN_02245FA0 ldr r0, _0205050C ; =FUN_020504D0 mov r1, #0x0 bl FUN_02050094 _02050506: pop {r3, pc} .balign 4 _02050508: .word 0x021C5A6C _0205050C: .word FUN_020504D0 thumb_func_start FUN_02050510 FUN_02050510: ; 0x02050510 push {r3, lr} bl FUN_02031190 mov r1, #0x1 bl FUN_0223FCE8 bl FUN_02031190 mov r1, #0x1 bl FUN_02247728 bl FUN_0223CACC bl FUN_0204CEF8 bl FUN_0223E6B8 bl FUN_02031880 bl FUN_0204FB28 ldr r0, _02050544 ; =FUN_020504A4 mov r1, #0x0 bl FUN_02050094 pop {r3, pc} .balign 4 _02050544: .word FUN_020504A4 thumb_func_start FUN_02050548 FUN_02050548: ; 0x02050548 push {r3, lr} bl FUN_0223DFB4 bl FUN_0204F80C ldr r0, _02050574 ; =0x021C5A6C ldr r0, [r0, #0x0] ldr r0, [r0, #0x18] ldr r0, [r0, #0x10] cmp r0, #0x0 bne _02050572 bl FUN_0202EE44 cmp r0, #0x0 bne _0205056E bl FUN_020311F0 cmp r0, #0x0 beq _02050572 _0205056E: bl FUN_02050510 _02050572: pop {r3, pc} .balign 4 _02050574: .word 0x021C5A6C thumb_func_start FUN_02050578 FUN_02050578: ; 0x02050578 push {r3, lr} bl FUN_0204CC48 ldr r0, _02050588 ; =FUN_0205058C mov r1, #0x0 bl FUN_02050094 pop {r3, pc} .balign 4 _02050588: .word FUN_0205058C thumb_func_start FUN_0205058C FUN_0205058C: ; 0x0205058C ldr r3, _02050590 ; =0x02247831 bx r3 .balign 4 _02050590: .word 0x02247831 thumb_func_start FUN_02050594 FUN_02050594: ; 0x02050594 push {r3, lr} bl FUN_02245F1C bl FUN_0204CC9C bl FUN_0202EE44 cmp r0, #0x0 bne _020505AE bl FUN_020311F0 cmp r0, #0x0 beq _020505CC _020505AE: bl FUN_022452A4 bl FUN_0204CEF8 bl FUN_0223E6B8 bl FUN_02031880 bl FUN_0204FB28 ldr r0, _020505D8 ; =FUN_020504A4 mov r1, #0x0 bl FUN_02050094 pop {r3, pc} _020505CC: ldr r0, _020505DC ; =FUN_02050548 mov r1, #0x0 bl FUN_02050094 pop {r3, pc} nop _020505D8: .word FUN_020504A4 _020505DC: .word FUN_02050548 thumb_func_start FUN_020505E0 FUN_020505E0: ; 0x020505E0 push {r3, lr} bl FUN_0204CC48 ldr r0, _020505F0 ; =FUN_020505F4 mov r1, #0x0 bl FUN_02050094 pop {r3, pc} .balign 4 _020505F0: .word FUN_020505F4 thumb_func_start FUN_020505F4 FUN_020505F4: ; 0x020505F4 bx lr .balign 4 thumb_func_start FUN_020505F8 FUN_020505F8: ; 0x020505F8 push {r3, lr} bl FUN_02245F1C bl FUN_0204CC9C ldr r0, _0205060C ; =FUN_02050168 mov r1, #0x0 bl FUN_02050094 pop {r3, pc} .balign 4 _0205060C: .word FUN_02050168 thumb_func_start FUN_02050610 FUN_02050610: ; 0x02050610 push {r3, lr} bl FUN_0204CF24 ldr r0, _02050620 ; =FUN_02050624 mov r1, #0x0 bl FUN_02050094 pop {r3, pc} .balign 4 _02050620: .word FUN_02050624 thumb_func_start FUN_02050624 FUN_02050624: ; 0x02050624 bx lr .balign 4 thumb_func_start FUN_02050628 FUN_02050628: ; 0x02050628 push {r3, lr} bl FUN_02245F1C bl FUN_0204CC9C ldr r0, _0205063C ; =FUN_020504D0 mov r1, #0x0 bl FUN_02050094 pop {r3, pc} .balign 4 _0205063C: .word FUN_020504D0 thumb_func_start FUN_02050640 FUN_02050640: ; 0x02050640 push {r3, lr} bl FUN_02031190 bl FUN_02030E7C cmp r0, #0x0 beq _0205065E bl FUN_02240834 bl FUN_0202DBE0 ldr r0, _02050660 ; =FUN_02050664 mov r1, #0x0 bl FUN_02050094 _0205065E: pop {r3, pc} .balign 4 _02050660: .word FUN_02050664 thumb_func_start FUN_02050664 FUN_02050664: ; 0x02050664 bx lr .balign 4 thumb_func_start FUN_02050668 FUN_02050668: ; 0x02050668 push {r3, lr} bl FUN_0202E4C8 cmp r0, #0x0 beq _0205067E bl FUN_022407CC ldr r0, _02050680 ; =FUN_02050684 mov r1, #0x0 bl FUN_02050094 _0205067E: pop {r3, pc} .balign 4 _02050680: .word FUN_02050684 thumb_func_start FUN_02050684 FUN_02050684: ; 0x02050684 bx lr .balign 4 thumb_func_start FUN_02050688 FUN_02050688: ; 0x02050688 push {r3, lr} ldr r0, _020506A0 ; =0x021C5A6C ldr r0, [r0, #0x0] add r0, #0x3e ldrb r0, [r0, #0x0] bl FUN_020319D8 ldr r0, _020506A4 ; =FUN_020506A8 mov r1, #0x0 bl FUN_02050094 pop {r3, pc} .balign 4 _020506A0: .word 0x021C5A6C _020506A4: .word FUN_020506A8 thumb_func_start FUN_020506A8 FUN_020506A8: ; 0x020506A8 push {r3, lr} bl FUN_02031A2C cmp r0, #0x0 beq _020506BE bl FUN_0202DBE0 ldr r0, _020506C0 ; =FUN_020506C4 mov r1, #0x0 bl FUN_02050094 _020506BE: pop {r3, pc} .balign 4 _020506C0: .word FUN_020506C4 thumb_func_start FUN_020506C4 FUN_020506C4: ; 0x020506C4 bx lr .balign 4 thumb_func_start FUN_020506C8 FUN_020506C8: ; 0x020506C8 push {r3, lr} mov r0, #0x62 bl FUN_020315D8 cmp r0, #0x0 beq _02050704 bl FUN_0204D320 add r1, r0, #0x0 mov r0, #0xf bl FUN_02016998 ldr r1, _02050720 ; =0x021C5A6C mov r2, #0x0 ldr r1, [r1, #0x0] ldr r1, [r1, #0x18] bl FUN_0204CB20 bl FUN_0204F80C bl FUN_02030FC8 mov r0, #0x5c bl FUN_02031588 ldr r0, _02050724 ; =FUN_02050728 mov r1, #0x0 bl FUN_02050094 pop {r3, pc} _02050704: ldr r0, _02050720 ; =0x021C5A6C ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3c] cmp r0, #0x0 beq _02050714 sub r0, r0, #0x1 strh r0, [r1, #0x3c] pop {r3, pc} _02050714: mov r0, #0x1e strh r0, [r1, #0x3c] mov r0, #0x62 bl FUN_02031588 pop {r3, pc} .balign 4 _02050720: .word 0x021C5A6C _02050724: .word FUN_02050728 thumb_func_start FUN_02050728 FUN_02050728: ; 0x02050728 push {lr} sub sp, #0xc bl FUN_02031190 cmp r0, #0x0 bne _02050738 bl FUN_0202DDE8 _02050738: mov r0, #0x5c bl FUN_020315D8 cmp r0, #0x0 beq _02050776 mov r0, #0x6 str r0, [sp, #0x0] mov r1, #0x1 str r1, [sp, #0x4] mov r0, #0x4 str r0, [sp, #0x8] mov r0, #0x0 add r2, r1, #0x0 add r3, r0, #0x0 bl FUN_0200E1D0 mov r0, #0x0 bl FUN_0200E388 mov r0, #0x1 bl FUN_0200E388 bl FUN_0204CC9C mov r0, #0x0 bl FUN_0204D168 ldr r0, _0205077C ; =FUN_020507B4 mov r1, #0x1 bl FUN_02050094 _02050776: add sp, #0xc pop {pc} nop _0205077C: .word FUN_020507B4 thumb_func_start FUN_02050780 FUN_02050780: ; 0x02050780 push {r3, lr} ldr r0, _020507AC ; =0x021C5A6C ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3c] cmp r0, #0x0 beq _02050792 sub r0, r0, #0x1 strh r0, [r1, #0x3c] pop {r3, pc} _02050792: mov r0, #0x1e bl FUN_020315D8 cmp r0, #0x0 beq _020507A8 bl FUN_02030FA8 ldr r0, _020507B0 ; =FUN_02050930 mov r1, #0x0 bl FUN_02050094 _020507A8: pop {r3, pc} nop _020507AC: .word 0x021C5A6C _020507B0: .word FUN_02050930 thumb_func_start FUN_020507B4 FUN_020507B4: ; 0x020507B4 push {r3, lr} ldr r0, _020507F0 ; =0x021C5A6C ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3c] cmp r0, #0x0 beq _020507C6 sub r0, r0, #0x1 strh r0, [r1, #0x3c] pop {r3, pc} _020507C6: bl FUN_02031190 cmp r0, #0x0 bne _020507DE bl FUN_0204ED08 cmp r0, #0x0 beq _020507EC mov r0, #0x1e bl FUN_02031588 b _020507E4 _020507DE: mov r0, #0x1e bl FUN_02031588 _020507E4: ldr r0, _020507F4 ; =FUN_02050780 mov r1, #0x14 bl FUN_02050094 _020507EC: pop {r3, pc} nop _020507F0: .word 0x021C5A6C _020507F4: .word FUN_02050780 thumb_func_start FUN_020507F8 FUN_020507F8: ; 0x020507F8 push {r3, lr} mov r0, #0x62 bl FUN_020315D8 cmp r0, #0x0 beq _02050830 bl FUN_0204D320 add r1, r0, #0x0 mov r0, #0xf bl FUN_02016998 ldr r1, _0205084C ; =0x021C5A6C mov r2, #0x0 ldr r1, [r1, #0x0] ldr r1, [r1, #0x18] bl FUN_0204CB20 bl FUN_0204F80C mov r0, #0x5c bl FUN_02031588 ldr r0, _02050850 ; =FUN_02050854 mov r1, #0x0 bl FUN_02050094 pop {r3, pc} _02050830: ldr r0, _0205084C ; =0x021C5A6C ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3c] cmp r0, #0x0 beq _02050840 sub r0, r0, #0x1 strh r0, [r1, #0x3c] pop {r3, pc} _02050840: mov r0, #0x1e strh r0, [r1, #0x3c] mov r0, #0x62 bl FUN_02031588 pop {r3, pc} .balign 4 _0205084C: .word 0x021C5A6C _02050850: .word FUN_02050854 thumb_func_start FUN_02050854 FUN_02050854: ; 0x02050854 push {r3, lr} sub sp, #0x10 bl FUN_02031190 cmp r0, #0x0 bne _02050864 bl FUN_0202DDE8 _02050864: mov r0, #0x5c bl FUN_020315D8 cmp r0, #0x0 beq _020508B0 bl FUN_0204CC9C mov r0, #0x0 bl FUN_0204D168 mov r1, #0x1 add r0, sp, #0xc strb r1, [r0, #0x0] mov r0, #0x5e add r1, sp, #0xc bl FUN_020311D0 mov r0, #0x6 str r0, [sp, #0x0] mov r1, #0x1 str r1, [sp, #0x4] mov r0, #0x4 str r0, [sp, #0x8] mov r0, #0x0 add r2, r1, #0x0 add r3, r0, #0x0 bl FUN_0200E1D0 mov r0, #0x0 bl FUN_0200E388 mov r0, #0x1 bl FUN_0200E388 ldr r0, _020508B4 ; =FUN_02050A14 mov r1, #0x0 bl FUN_02050094 _020508B0: add sp, #0x10 pop {r3, pc} .balign 4 _020508B4: .word FUN_02050A14 thumb_func_start FUN_020508B8 FUN_020508B8: ; 0x020508B8 push {r3-r7, lr} mov r7, #0x0 bl FUN_02030F20 cmp r0, #0x0 ble _02050916 ldr r6, _02050928 ; =0x021C5A6C _020508C6: bl FUN_02031190 cmp r7, r0 beq _0205090C add r0, r7, #0x0 bl FUN_020315FC cmp r0, #0x5e bne _0205090C ldr r0, [r6, #0x0] ldr r0, [r0, #0x18] ldr r0, [r0, #0x10] cmp r0, #0x0 bne _0205090C mov r4, #0x0 add r5, r4, #0x0 _020508E6: ldr r0, [r6, #0x0] ldr r0, [r0, r5] cmp r0, #0x0 beq _020508F8 bl FUN_02016A18 ldr r1, [r6, #0x0] mov r0, #0x0 str r0, [r1, r5] _020508F8: add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, #0x4 blt _020508E6 ldr r0, [r6, #0x0] ldr r1, _0205092C ; =0x0000238E ldr r0, [r0, #0x18] mov r2, #0x0 bl FUN_02038C78 _0205090C: add r7, r7, #0x1 bl FUN_02030F20 cmp r7, r0 blt _020508C6 _02050916: ldr r1, _02050928 ; =0x021C5A6C mov r0, #0x4 ldr r1, [r1, #0x0] ldr r1, [r1, #0x18] ldr r1, [r1, #0x8] bl FUN_020335F0 pop {r3-r7, pc} nop _02050928: .word 0x021C5A6C _0205092C: .word 0x0000238E thumb_func_start FUN_02050930 FUN_02050930: ; 0x02050930 push {r3, lr} bl FUN_0204EB44 cmp r0, #0x0 bne _0205095A ldr r0, _02050960 ; =0x021C5A6C mov r1, #0x0 ldr r0, [r0, #0x0] add r0, #0x43 strb r1, [r0, #0x0] mov r1, #0x1 add r0, sp, #0x0 strb r1, [r0, #0x0] mov r0, #0x5e add r1, sp, #0x0 bl FUN_020311D0 ldr r0, _02050964 ; =FUN_02050A14 mov r1, #0x0 bl FUN_02050094 _0205095A: bl FUN_020508B8 pop {r3, pc} .balign 4 _02050960: .word 0x021C5A6C _02050964: .word FUN_02050A14 thumb_func_start FUN_02050968 FUN_02050968: ; 0x02050968 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 beq _02050986 mov r0, #0xb bl FUN_0206B8AC ldr r1, _020509AC ; =0x021C5A6C ldr r2, [r1, #0x0] str r0, [r2, #0x44] ldr r1, [r1, #0x0] add r0, r4, #0x0 ldr r1, [r1, #0x44] bl FUN_0206BAD0 _02050986: cmp r5, #0x0 beq _02050994 ldr r0, _020509B0 ; =FUN_02050B8C mov r1, #0x3 bl FUN_02050094 pop {r3-r5, pc} _02050994: mov r1, #0x3 add r0, sp, #0x0 strb r1, [r0, #0x0] mov r0, #0x5e add r1, sp, #0x0 bl FUN_020311D0 ldr r0, _020509B4 ; =FUN_02050930 mov r1, #0x0 bl FUN_02050094 pop {r3-r5, pc} .balign 4 _020509AC: .word 0x021C5A6C _020509B0: .word FUN_02050B8C _020509B4: .word FUN_02050930 thumb_func_start FUN_020509B8 FUN_020509B8: ; 0x020509B8 ldr r3, _020509C0 ; =FUN_02050094 ldr r0, _020509C4 ; =FUN_02050930 mov r1, #0x0 bx r3 .balign 4 _020509C0: .word FUN_02050094 _020509C4: .word FUN_02050930 thumb_func_start FUN_020509C8 FUN_020509C8: ; 0x020509C8 push {r3, lr} bl FUN_02031438 cmp r0, #0x0 bne _02050A06 bl FUN_02031190 bl FUN_0204F6B4 cmp r0, #0x0 bne _02050A06 ldr r0, _02050A08 ; =0x021C5A6C ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3c] cmp r0, #0x0 beq _020509EE sub r0, r0, #0x1 strh r0, [r1, #0x3c] pop {r3, pc} _020509EE: bl FUN_0204F7E4 ldr r0, _02050A08 ; =0x021C5A6C ldr r1, _02050A0C ; =FUN_02050968 ldr r0, [r0, #0x0] ldr r0, [r0, #0x18] bl FUN_02051880 ldr r0, _02050A10 ; =FUN_020509B8 mov r1, #0x0 bl FUN_02050094 _02050A06: pop {r3, pc} .balign 4 _02050A08: .word 0x021C5A6C _02050A0C: .word FUN_02050968 _02050A10: .word FUN_020509B8 thumb_func_start FUN_02050A14 FUN_02050A14: ; 0x02050A14 push {r3, lr} ldr r0, _02050A40 ; =0x021C5A6C ldr r0, [r0, #0x0] add r0, #0x43 ldrb r0, [r0, #0x0] cmp r0, #0x0 beq _02050A38 ldr r0, _02050A44 ; =FUN_020509C8 mov r1, #0x5 bl FUN_02050094 mov r1, #0x0 add r0, sp, #0x0 strb r1, [r0, #0x0] mov r0, #0x5e add r1, sp, #0x0 bl FUN_020311D0 _02050A38: bl FUN_020508B8 pop {r3, pc} nop _02050A40: .word 0x021C5A6C _02050A44: .word FUN_020509C8 thumb_func_start FUN_02050A48 FUN_02050A48: ; 0x02050A48 push {r4, lr} add r4, r2, #0x0 bl FUN_02031190 ldrb r1, [r4, #0x0] cmp r1, r0 bne _02050A60 ldr r0, _02050A64 ; =0x021C5A6C mov r1, #0x1 ldr r0, [r0, #0x0] add r0, #0x43 strb r1, [r0, #0x0] _02050A60: pop {r4, pc} nop _02050A64: .word 0x021C5A6C thumb_func_start FUN_02050A68 FUN_02050A68: ; 0x02050A68 ldr r0, _02050A88 ; =0x021C5A6C ldr r0, [r0, #0x0] cmp r0, #0x0 beq _02050A82 ldr r1, [r0, #0x34] ldr r0, _02050A8C ; =FUN_02050A14 cmp r1, r0 beq _02050A7E ldr r0, _02050A90 ; =FUN_02050930 cmp r1, r0 bne _02050A82 _02050A7E: mov r0, #0x1 bx lr _02050A82: mov r0, #0x0 bx lr nop _02050A88: .word 0x021C5A6C _02050A8C: .word FUN_02050A14 _02050A90: .word FUN_02050930 thumb_func_start FUN_02050A94 FUN_02050A94: ; 0x02050A94 push {r4, lr} sub sp, #0x8 ldr r0, _02050B00 ; =0x021C5A6C ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3c] cmp r0, #0x0 beq _02050AAA sub r0, r0, #0x1 strh r0, [r1, #0x3c] add sp, #0x8 pop {r4, pc} _02050AAA: mov r4, #0x5 bl FUN_02033534 cmp r0, #0x2 beq _02050AC0 cmp r0, #0x4 beq _02050ABC cmp r0, #0x5 bne _02050AC2 _02050ABC: mov r4, #0xf b _02050AC2 _02050AC0: mov r4, #0x7 _02050AC2: add r0, sp, #0x0 bl FUN_02033578 ldr r0, _02050B00 ; =0x021C5A6C ldr r0, [r0, #0x0] ldr r1, [r0, #0x44] ldr r0, [r0, #0x18] cmp r1, #0x0 bne _02050ADE add r1, sp, #0x0 add r2, r4, #0x0 bl FUN_0204726C b _02050AF6 _02050ADE: add r2, r4, #0x0 bl FUN_020472B0 ldr r0, _02050B00 ; =0x021C5A6C ldr r0, [r0, #0x0] ldr r0, [r0, #0x44] bl FUN_02016A18 ldr r0, _02050B00 ; =0x021C5A6C mov r1, #0x0 ldr r0, [r0, #0x0] str r1, [r0, #0x44] _02050AF6: bl FUN_0204FC10 add sp, #0x8 pop {r4, pc} nop _02050B00: .word 0x021C5A6C thumb_func_start FUN_02050B04 FUN_02050B04: ; 0x02050B04 push {r3, lr} bl FUN_0202FA48 cmp r0, #0x0 beq _02050B3E ldr r0, _02050B40 ; =0x021C5A6C ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3c] cmp r0, #0x0 beq _02050B1C sub r0, r0, #0x1 strh r0, [r1, #0x3c] _02050B1C: ldr r0, _02050B40 ; =0x021C5A6C ldr r0, [r0, #0x0] ldrh r0, [r0, #0x3c] cmp r0, #0x5a bne _02050B2C mov r0, #0x4 bl FUN_02031588 _02050B2C: mov r0, #0x4 bl FUN_020315D8 cmp r0, #0x0 beq _02050B3E ldr r0, _02050B44 ; =FUN_02050A94 mov r1, #0x0 bl FUN_02050094 _02050B3E: pop {r3, pc} .balign 4 _02050B40: .word 0x021C5A6C _02050B44: .word FUN_02050A94 thumb_func_start FUN_02050B48 FUN_02050B48: ; 0x02050B48 push {r3, lr} ldr r0, _02050B68 ; =0x021C5A6C ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3c] cmp r0, #0x0 beq _02050B5A sub r0, r0, #0x1 strh r0, [r1, #0x3c] pop {r3, pc} _02050B5A: bl FUN_0202FA10 ldr r0, _02050B6C ; =FUN_02050B04 mov r1, #0x78 bl FUN_02050094 pop {r3, pc} .balign 4 _02050B68: .word 0x021C5A6C _02050B6C: .word FUN_02050B04 thumb_func_start FUN_02050B70 FUN_02050B70: ; 0x02050B70 push {r3, lr} mov r0, #0x3 bl FUN_020315D8 cmp r0, #0x0 beq _02050B84 ldr r0, _02050B88 ; =FUN_02050B48 mov r1, #0x2 bl FUN_02050094 _02050B84: pop {r3, pc} nop _02050B88: .word FUN_02050B48 thumb_func_start FUN_02050B8C FUN_02050B8C: ; 0x02050B8C push {r3, lr} ldr r0, _02050BB4 ; =0x021C5A6C ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3c] cmp r0, #0x0 beq _02050B9E sub r0, r0, #0x1 strh r0, [r1, #0x3c] pop {r3, pc} _02050B9E: mov r0, #0x0 bl FUN_0204CCE0 mov r0, #0x3 bl FUN_02031588 ldr r0, _02050BB8 ; =FUN_02050B70 mov r1, #0x0 bl FUN_02050094 pop {r3, pc} .balign 4 _02050BB4: .word 0x021C5A6C _02050BB8: .word FUN_02050B70 thumb_func_start FUN_02050BBC FUN_02050BBC: ; 0x02050BBC push {r3, lr} bl FUN_020319F4 ldr r0, _02050BCC ; =FUN_02050BD0 mov r1, #0x2 bl FUN_02050094 pop {r3, pc} .balign 4 _02050BCC: .word FUN_02050BD0 thumb_func_start FUN_02050BD0 FUN_02050BD0: ; 0x02050BD0 push {r3, lr} bl FUN_0202EE0C cmp r0, #0x0 beq _02050BE2 ldr r0, _02050BE4 ; =FUN_020506A8 mov r1, #0xa bl FUN_02050094 _02050BE2: pop {r3, pc} .balign 4 _02050BE4: .word FUN_020506A8 thumb_func_start FUN_02050BE8 FUN_02050BE8: ; 0x02050BE8 ldr r1, _02050BF4 ; =0x021C5A6C mov r2, #0x1 ldr r1, [r1, #0x0] add r0, r1, r0 strb r2, [r0, #0x10] bx lr .balign 4 _02050BF4: .word 0x021C5A6C thumb_func_start FUN_02050BF8 FUN_02050BF8: ; 0x02050BF8 push {r4, lr} add r4, r0, #0x0 cmp r4, #0x4 blt _02050C04 bl ErrorHandling _02050C04: ldr r0, _02050C10 ; =0x021C5A6C ldr r1, [r0, #0x0] lsl r0, r4, #0x2 ldr r0, [r1, r0] pop {r4, pc} nop _02050C10: .word 0x021C5A6C thumb_func_start FUN_02050C14 FUN_02050C14: ; 0x02050C14 push {r4, lr} bl FUN_02031190 add r4, r0, #0x0 mov r0, #0x5f bl FUN_020315D8 cmp r0, #0x0 beq _02050C3E ldr r1, _02050C40 ; =0x021C5A6C mov r0, #0x58 ldr r2, [r1, #0x0] lsl r1, r4, #0x2 ldr r1, [r2, r1] ldr r2, _02050C44 ; =0x0000066C bl FUN_02030A78 ldr r0, _02050C48 ; =FUN_02050C4C mov r1, #0x0 bl FUN_02050094 _02050C3E: pop {r4, pc} .balign 4 _02050C40: .word 0x021C5A6C _02050C44: .word 0x0000066C _02050C48: .word FUN_02050C4C thumb_func_start FUN_02050C4C FUN_02050C4C: ; 0x02050C4C push {r3-r5, lr} mov r4, #0x0 bl FUN_02030F20 cmp r0, #0x0 ble _02050C6E ldr r5, _02050C80 ; =0x021C5A6C _02050C5A: ldr r0, [r5, #0x0] add r0, r0, r4 ldrb r0, [r0, #0x10] cmp r0, #0x0 beq _02050C7C add r4, r4, #0x1 bl FUN_02030F20 cmp r4, r0 blt _02050C5A _02050C6E: mov r0, #0x61 bl FUN_02031588 ldr r0, _02050C84 ; =FUN_02050CF4 mov r1, #0x0 bl FUN_02050094 _02050C7C: pop {r3-r5, pc} nop _02050C80: .word 0x021C5A6C _02050C84: .word FUN_02050CF4 thumb_func_start FUN_02050C88 FUN_02050C88: ; 0x02050C88 push {r3, lr} bl FUN_0202FA48 cmp r0, #0x0 bne _02050CC2 ldr r0, _02050CC4 ; =0x021C5A6C ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3c] cmp r0, #0x0 beq _02050CA0 sub r0, r0, #0x1 strh r0, [r1, #0x3c] _02050CA0: ldr r0, _02050CC4 ; =0x021C5A6C ldr r0, [r0, #0x0] ldrh r0, [r0, #0x3c] cmp r0, #0x5a bne _02050CB0 mov r0, #0x5 bl FUN_02031588 _02050CB0: mov r0, #0x5 bl FUN_020315D8 cmp r0, #0x0 beq _02050CC2 ldr r0, _02050CC8 ; =FUN_02050D10 mov r1, #0x0 bl FUN_02050094 _02050CC2: pop {r3, pc} .balign 4 _02050CC4: .word 0x021C5A6C _02050CC8: .word FUN_02050D10 thumb_func_start FUN_02050CCC FUN_02050CCC: ; 0x02050CCC push {r3, lr} ldr r0, _02050CEC ; =0x021C5A6C ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3c] cmp r0, #0x0 beq _02050CDE sub r0, r0, #0x1 strh r0, [r1, #0x3c] pop {r3, pc} _02050CDE: bl FUN_0202FA1C ldr r0, _02050CF0 ; =FUN_02050C88 mov r1, #0x78 bl FUN_02050094 pop {r3, pc} .balign 4 _02050CEC: .word 0x021C5A6C _02050CF0: .word FUN_02050C88 thumb_func_start FUN_02050CF4 FUN_02050CF4: ; 0x02050CF4 push {r3, lr} mov r0, #0x61 bl FUN_020315D8 cmp r0, #0x0 beq _02050D08 ldr r0, _02050D0C ; =FUN_02050CCC mov r1, #0x2 bl FUN_02050094 _02050D08: pop {r3, pc} nop _02050D0C: .word FUN_02050CCC thumb_func_start FUN_02050D10 FUN_02050D10: ; 0x02050D10 push {r3, lr} ldr r0, _02050D48 ; =0x021C5A6C ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3c] cmp r0, #0x0 beq _02050D22 sub r0, r0, #0x1 strh r0, [r1, #0x3c] pop {r3, pc} _02050D22: mov r0, #0x62 bl FUN_02031588 ldr r0, _02050D48 ; =0x021C5A6C ldr r0, [r0, #0x0] add r0, #0x42 ldrb r0, [r0, #0x0] cmp r0, #0x0 beq _02050D3E ldr r0, _02050D4C ; =FUN_020506C8 mov r1, #0x1e bl FUN_02050094 pop {r3, pc} _02050D3E: ldr r0, _02050D50 ; =FUN_020507F8 mov r1, #0x1e bl FUN_02050094 pop {r3, pc} .balign 4 _02050D48: .word 0x021C5A6C _02050D4C: .word FUN_020506C8 _02050D50: .word FUN_020507F8 thumb_func_start FUN_02050D54 FUN_02050D54: ; 0x02050D54 push {r3, lr} ldr r0, _02050D84 ; =0x021C5A6C ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3c] cmp r0, #0x0 beq _02050D66 sub r0, r0, #0x1 strh r0, [r1, #0x3c] pop {r3, pc} _02050D66: bl FUN_0223E1A4 bl FUN_02031860 mov r0, #0x21 bl FUN_020168D0 ldr r0, _02050D84 ; =0x021C5A6C mov r1, #0x0 ldr r0, [r0, #0x0] add r0, #0x41 strb r1, [r0, #0x0] bl FUN_0204FC10 pop {r3, pc} .balign 4 _02050D84: .word 0x021C5A6C thumb_func_start FUN_02050D88 FUN_02050D88: ; 0x02050D88 push {r3, lr} mov r0, #0x5b bl FUN_020315D8 cmp r0, #0x0 beq _02050DAA mov r0, #0x0 add r1, r0, #0x0 bl FUN_020334E8 mov r0, #0x1 bl FUN_0204CCE0 ldr r0, _02050DAC ; =FUN_02050DC8 mov r1, #0x5 bl FUN_02050094 _02050DAA: pop {r3, pc} .balign 4 _02050DAC: .word FUN_02050DC8 thumb_func_start FUN_02050DB0 FUN_02050DB0: ; 0x02050DB0 push {r3, lr} mov r0, #0x1 bl FUN_0204CCE0 ldr r0, _02050DC4 ; =FUN_02050DC8 mov r1, #0x5 bl FUN_02050094 pop {r3, pc} nop _02050DC4: .word FUN_02050DC8 thumb_func_start FUN_02050DC8 FUN_02050DC8: ; 0x02050DC8 push {r3, lr} ldr r0, _02050DE8 ; =0x021C5A6C ldr r1, [r0, #0x0] ldrh r0, [r1, #0x3c] cmp r0, #0x0 beq _02050DDA sub r0, r0, #0x1 strh r0, [r1, #0x3c] pop {r3, pc} _02050DDA: bl FUN_02031A08 ldr r0, _02050DEC ; =FUN_0204FC10 mov r1, #0x0 bl FUN_02050094 pop {r3, pc} .balign 4 _02050DE8: .word 0x021C5A6C _02050DEC: .word FUN_0204FC10 thumb_func_start FUN_02050DF0 FUN_02050DF0: ; 0x02050DF0 push {r3, lr} ldr r1, _02050E0C ; =0x021C5A6C ldr r1, [r1, #0x0] cmp r1, #0x0 beq _02050E02 add r1, #0x41 ldrb r1, [r1, #0x0] cmp r1, #0x0 bne _02050E06 _02050E02: mov r0, #0x0 pop {r3, pc} _02050E06: bl FUN_0223E2AC pop {r3, pc} .balign 4 _02050E0C: .word 0x021C5A6C thumb_func_start FUN_02050E10 FUN_02050E10: ; 0x02050E10 push {r3, lr} ldr r0, _02050E28 ; =0x021C5A6C ldr r0, [r0, #0x0] cmp r0, #0x0 beq _02050E26 add r0, #0x41 ldrb r0, [r0, #0x0] cmp r0, #0x0 beq _02050E26 bl FUN_0223E118 _02050E26: pop {r3, pc} .balign 4 _02050E28: .word 0x021C5A6C thumb_func_start FUN_02050E2C FUN_02050E2C: ; 0x02050E2C push {r3, lr} ldr r0, _02050E44 ; =0x021C5A6C ldr r0, [r0, #0x0] cmp r0, #0x0 beq _02050E42 add r0, #0x41 ldrb r0, [r0, #0x0] cmp r0, #0x0 beq _02050E42 bl FUN_0223E154 _02050E42: pop {r3, pc} .balign 4 _02050E44: .word 0x021C5A6C thumb_func_start FUN_02050E48 FUN_02050E48: ; 0x02050E48 push {r3-r7, lr} sub sp, #0x8 add r7, r0, #0x0 add r5, r1, #0x0 ldr r0, [sp, #0x24] mov r1, #0x30 str r2, [sp, #0x0] str r3, [sp, #0x4] ldr r6, [r5, #0xc] bl FUN_020169D8 mov r1, #0x0 mov r2, #0x30 add r4, r0, #0x0 blx MI_CpuFill8 ldr r0, [r5, #0xc] bl FUN_020238F4 add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_0207C2A4 add r0, r6, #0x0 bl FUN_0206BB28 str r0, [r4, #0x1c] add r0, r6, #0x0 bl FUN_02079C70 str r0, [r4, #0x2c] add r0, r6, #0x0 bl LoadPlayerDataAddress str r0, [r4, #0x4] ldr r0, [sp, #0x0] str r0, [r4, #0x0] mov r0, #0x1 strb r0, [r4, #0x11] ldr r0, [sp, #0x4] strb r0, [r4, #0x14] ldr r0, [r4, #0x0] bl FUN_0206B9AC strb r0, [r4, #0x13] mov r0, #0x0 strh r0, [r4, #0x18] ldr r0, [sp, #0x20] strb r0, [r4, #0x12] add r0, r6, #0x0 bl FUN_0202A918 str r0, [r4, #0x20] ldr r1, _02050ECC ; =0x020F5880 add r0, r4, #0x0 bl FUN_0207B000 ldr r1, _02050ED0 ; =0x020FA6E8 add r0, r5, #0x0 add r2, r4, #0x0 bl FUN_020373D4 str r4, [r7, #0x0] add sp, #0x8 pop {r3-r7, pc} nop _02050ECC: .word 0x020F5880 _02050ED0: .word 0x020FA6E8 thumb_func_start FUN_02050ED4 FUN_02050ED4: ; 0x02050ED4 push {r3-r5, lr} add r5, r0, #0x0 add r0, r1, #0x0 mov r1, #0x40 bl FUN_02016998 mov r1, #0x0 mov r2, #0x40 add r4, r0, #0x0 blx MI_CpuFill8 ldr r0, [r5, #0x24] ldr r0, [r0, #0xc] bl LoadPlayerDataAddress str r0, [r4, #0xc] ldr r0, [r5, #0x24] add r0, #0xac ldr r0, [r0, #0x0] str r0, [r4, #0x14] ldr r0, [r5, #0x24] ldr r0, [r0, #0xc] bl FUN_0206BB1C str r0, [r4, #0x0] ldr r0, [r5, #0x24] ldr r0, [r0, #0xc] bl FUN_0206F158 str r0, [r4, #0x4] add r0, r4, #0x0 mov r1, #0x0 add r0, #0x21 strb r1, [r0, #0x0] add r0, r4, #0x0 mov r1, #0x2 add r0, #0x20 strb r1, [r0, #0x0] ldr r0, [r5, #0x24] add r0, #0xac ldr r0, [r0, #0x0] cmp r0, #0x0 beq _02050F64 mov r1, #0x1 bl FUN_02023B0C add r1, r4, #0x0 add r1, #0x32 ldrb r1, [r1, #0x0] mov r2, #0xf lsl r0, r0, #0x18 bic r1, r2 lsr r2, r0, #0x18 mov r0, #0xf and r0, r2 orr r1, r0 add r0, r4, #0x0 add r0, #0x32 strb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x32 ldrb r0, [r0, #0x0] mov r1, #0xf0 bic r0, r1 add r1, r4, #0x0 add r1, #0x32 ldrb r1, [r1, #0x0] lsl r1, r1, #0x1c lsr r1, r1, #0x1c lsl r1, r1, #0x1c lsr r1, r1, #0x18 b _02050F84 _02050F64: add r0, r4, #0x0 add r0, #0x32 ldrb r1, [r0, #0x0] mov r0, #0xf bic r1, r0 mov r0, #0x3 orr r1, r0 add r0, r4, #0x0 add r0, #0x32 strb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x32 ldrb r1, [r0, #0x0] mov r0, #0xf0 bic r1, r0 mov r0, #0x30 _02050F84: orr r1, r0 add r0, r4, #0x0 add r0, #0x32 strb r1, [r0, #0x0] add r0, r4, #0x0 mov r1, #0x64 add r0, #0x33 strb r1, [r0, #0x0] add r0, r5, #0x0 add r0, #0x3c ldrb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x22 strb r1, [r0, #0x0] mov r2, #0x0 _02050FA2: add r0, r5, r2 add r0, #0x3d ldrb r1, [r0, #0x0] add r0, r4, r2 add r0, #0x2c add r2, r2, #0x1 strb r1, [r0, #0x0] cmp r2, #0x6 blt _02050FA2 ldr r0, [r5, #0x24] ldr r1, _02050FC4 ; =0x020F96DC add r2, r4, #0x0 bl FUN_020373D4 str r4, [r5, #0x4] pop {r3-r5, pc} nop _02050FC4: .word 0x020F96DC thumb_func_start FUN_02050FC8 FUN_02050FC8: ; 0x02050FC8 push {r4, lr} add r4, r0, #0x0 add r0, r1, #0x0 bl FUN_0204647C cmp r0, #0x0 beq _02050FDA mov r0, #0x0 pop {r4, pc} _02050FDA: ldr r0, [r4, #0x4] add r1, r4, #0x0 add r0, #0x2c add r1, #0x3d mov r2, #0x6 blx MI_CpuCopy8 ldr r0, [r4, #0x4] add r0, #0x22 ldrb r0, [r0, #0x0] cmp r0, #0x6 beq _02050FFC cmp r0, #0x7 bne _02051002 mov r0, #0x0 str r0, [r4, #0x38] b _02051006 _02050FFC: mov r0, #0x1 str r0, [r4, #0x38] b _02051006 _02051002: mov r0, #0x2 str r0, [r4, #0x38] _02051006: ldr r0, [r4, #0x4] add r0, #0x22 ldrb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x3c strb r1, [r0, #0x0] ldr r0, [r4, #0x4] bl FUN_02016A18 mov r0, #0x0 str r0, [r4, #0x4] mov r0, #0x1 pop {r4, pc} thumb_func_start FUN_02051020 FUN_02051020: ; 0x02051020 push {r4, lr} add r4, r0, #0x0 add r0, r1, #0x0 bl FUN_0204647C cmp r0, #0x0 beq _02051032 mov r0, #0x0 pop {r4, pc} _02051032: ldr r0, [r4, #0x0] ldrb r1, [r0, #0x14] add r0, r4, #0x0 add r0, #0x3c strb r1, [r0, #0x0] ldr r0, [r4, #0x0] bl FUN_02016A18 mov r0, #0x0 str r0, [r4, #0x0] mov r0, #0x1 pop {r4, pc} .balign 4 thumb_func_start FUN_0205104C FUN_0205104C: ; 0x0205104C push {r3, lr} ldr r0, [r0, #0x24] bl FUN_020464A4 cmp r0, #0x0 beq _02051066 mov r0, #0x1 bl FUN_021D7CA4 bl FUN_0204CC9C mov r0, #0x1 pop {r3, pc} _02051066: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0205106C FUN_0205106C: ; 0x0205106C push {r3-r5, lr} bl FUN_02030F20 add r5, r0, #0x0 mov r4, #0x0 cmp r5, #0x0 ble _0205108E _0205107A: add r0, r4, #0x0 bl FUN_020315FC cmp r0, #0x5e bne _02051088 mov r0, #0x1 pop {r3-r5, pc} _02051088: add r4, r4, #0x1 cmp r4, r5 blt _0205107A _0205108E: mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02051094 FUN_02051094: ; 0x02051094 push {r3-r5, lr} sub sp, #0x8 add r5, r0, #0x0 bl FUN_0204652C add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02046528 ldr r1, [r4, #0x34] cmp r1, #0x2c bls _020510AE b _020517B8 _020510AE: add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _020510BA: ; jump table (using 16-bit offset) .short _02051114 - _020510BA - 2; case 0 .short _02051136 - _020510BA - 2; case 1 .short _02051150 - _020510BA - 2; case 2 .short _0205116A - _020510BA - 2; case 3 .short _020511A6 - _020510BA - 2; case 4 .short _020511F6 - _020510BA - 2; case 5 .short _020517B8 - _020510BA - 2; case 6 .short _020511E4 - _020510BA - 2; case 7 .short _0205120C - _020510BA - 2; case 8 .short _02051232 - _020510BA - 2; case 9 .short _0205123E - _020510BA - 2; case 10 .short _0205126A - _020510BA - 2; case 11 .short _02051288 - _020510BA - 2; case 12 .short _0205129C - _020510BA - 2; case 13 .short _020512A8 - _020510BA - 2; case 14 .short _020512CA - _020510BA - 2; case 15 .short _020512E0 - _020510BA - 2; case 16 .short _0205130E - _020510BA - 2; case 17 .short _02051334 - _020510BA - 2; case 18 .short _02051346 - _020510BA - 2; case 19 .short _0205138A - _020510BA - 2; case 20 .short _0205136A - _020510BA - 2; case 21 .short _020513A6 - _020510BA - 2; case 22 .short _020513B6 - _020510BA - 2; case 23 .short _020513D4 - _020510BA - 2; case 24 .short _020513F2 - _020510BA - 2; case 25 .short _02051406 - _020510BA - 2; case 26 .short _02051472 - _020510BA - 2; case 27 .short _020514A8 - _020510BA - 2; case 28 .short _020514BE - _020510BA - 2; case 29 .short _02051508 - _020510BA - 2; case 30 .short _02051540 - _020510BA - 2; case 31 .short _02051566 - _020510BA - 2; case 32 .short _02051686 - _020510BA - 2; case 33 .short _020516B6 - _020510BA - 2; case 34 .short _020516CE - _020510BA - 2; case 35 .short _020515BA - _020510BA - 2; case 36 .short _020515F8 - _020510BA - 2; case 37 .short _02051614 - _020510BA - 2; case 38 .short _020516DE - _020510BA - 2; case 39 .short _020517B8 - _020510BA - 2; case 40 .short _02051702 - _020510BA - 2; case 41 .short _02051744 - _020510BA - 2; case 42 .short _02051766 - _020510BA - 2; case 43 .short _02051798 - _020510BA - 2; case 44 _02051114: add r0, r4, #0x0 add r0, #0x43 ldrb r0, [r0, #0x0] sub r1, r0, #0x1 add r0, r4, #0x0 add r0, #0x43 strb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x43 ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _020511DC mov r0, #0x1 str r0, [r4, #0x34] bl FUN_0204ECC0 b _020517B8 _02051136: ldr r0, [r4, #0x2c] ldr r2, [r4, #0xc] mov r1, #0x1 bl FUN_0200A8E0 ldr r1, [r4, #0xc] add r0, r4, #0x0 bl FUN_020517C0 str r0, [r4, #0x30] mov r0, #0x2 str r0, [r4, #0x34] b _020517B8 _02051150: ldr r0, [r4, #0x30] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_020546C8 cmp r0, #0x0 beq _020511DC mov r0, #0x5d bl FUN_02031588 mov r0, #0x3 str r0, [r4, #0x34] b _020517B8 _0205116A: mov r0, #0x5d bl FUN_020315D8 cmp r0, #0x0 beq _0205118A mov r0, #0x7 str r0, [r4, #0x34] ldr r0, [r4, #0x24] ldr r0, [r0, #0x34] bl FUN_02058768 ldr r1, [r4, #0x50] ldr r2, [r4, #0x8] mov r0, #0x1 blx r2 b _020517B8 _0205118A: ldr r0, _020514A4 ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #0x2 tst r0, r1 beq _020511DC mov r0, #0x4 str r0, [r4, #0x34] mov r0, #0x5c bl FUN_02031588 mov r0, #0x5 add r4, #0x43 strb r0, [r4, #0x0] b _020517B8 _020511A6: mov r0, #0x5d bl FUN_020315D8 cmp r0, #0x0 beq _020511C4 mov r0, #0x7 str r0, [r4, #0x34] ldr r0, [r4, #0x24] ldr r0, [r0, #0x34] bl FUN_02058768 ldr r1, [r4, #0x50] ldr r2, [r4, #0x8] mov r0, #0x1 blx r2 _020511C4: add r0, r4, #0x0 add r0, #0x43 ldrb r0, [r0, #0x0] sub r1, r0, #0x1 add r0, r4, #0x0 add r0, #0x43 strb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x43 ldrb r0, [r0, #0x0] cmp r0, #0x0 beq _020511DE _020511DC: b _020517B8 _020511DE: mov r0, #0x8 str r0, [r4, #0x34] b _020517B8 _020511E4: add r0, r4, #0x0 bl FUN_02051998 add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x8 mov r0, #0x1 pop {r3-r5, pc} _020511F6: add r0, r4, #0x0 bl FUN_02051998 add r0, r4, #0x0 bl FUN_02016A18 bl FUN_0204F7FC add sp, #0x8 mov r0, #0x1 pop {r3-r5, pc} _0205120C: mov r0, #0x5d bl FUN_020315D8 cmp r0, #0x0 beq _02051224 mov r0, #0x5 str r0, [r4, #0x34] ldr r1, [r4, #0x50] ldr r2, [r4, #0x8] mov r0, #0x1 blx r2 b _020517B8 _02051224: ldr r1, [r4, #0x50] ldr r2, [r4, #0x8] mov r0, #0x0 blx r2 mov r0, #0x5 str r0, [r4, #0x34] b _020517B8 _02051232: mov r0, #0xa str r0, [r4, #0x34] mov r0, #0x5 add r4, #0x44 strb r0, [r4, #0x0] b _020517B8 _0205123E: add r1, r4, #0x0 add r1, #0x44 ldrb r1, [r1, #0x0] cmp r1, #0x0 beq _02051256 add r0, r4, #0x0 add r0, #0x44 ldrb r0, [r0, #0x0] add r4, #0x44 sub r0, r0, #0x1 strb r0, [r4, #0x0] b _020517B8 _02051256: ldr r0, [r0, #0x38] bl FUN_020553A0 bl FUN_0205AE28 cmp r0, #0x0 beq _020512FA mov r0, #0xb str r0, [r4, #0x34] b _020517B8 _0205126A: bl FUN_0204ECC0 ldr r0, [r4, #0x2c] ldr r2, [r4, #0xc] mov r1, #0xd bl FUN_0200A8E0 ldr r1, [r4, #0xc] add r0, r4, #0x0 bl FUN_020517C0 str r0, [r4, #0x30] mov r0, #0xc str r0, [r4, #0x34] b _020517B8 _02051288: ldr r0, [r4, #0x30] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_020546C8 cmp r0, #0x0 beq _020512FA mov r0, #0xd str r0, [r4, #0x34] b _020517B8 _0205129C: mov r0, #0x0 bl FUN_021D7CA4 mov r0, #0xe str r0, [r4, #0x34] b _020517B8 _020512A8: add r0, r4, #0x0 add r0, #0x43 ldrb r0, [r0, #0x0] sub r1, r0, #0x1 add r0, r4, #0x0 add r0, #0x43 strb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x43 ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _020512FA bl FUN_0204ECC0 mov r0, #0xf str r0, [r4, #0x34] b _020517B8 _020512CA: add r0, r4, #0x0 mov r1, #0x0 bl FUN_02051810 add r0, r4, #0x0 mov r1, #0xb bl FUN_02050ED4 mov r0, #0x10 str r0, [r4, #0x34] b _020517B8 _020512E0: ldr r1, [r4, #0x24] add r0, r4, #0x0 bl FUN_02050FC8 cmp r0, #0x0 beq _020512FA ldr r0, [r4, #0x38] cmp r0, #0x0 beq _020512FC cmp r0, #0x1 beq _02051302 cmp r0, #0x2 beq _02051308 _020512FA: b _020517B8 _020512FC: mov r0, #0x14 str r0, [r4, #0x34] b _020517B8 _02051302: mov r0, #0x13 str r0, [r4, #0x34] b _020517B8 _02051308: mov r0, #0x11 str r0, [r4, #0x34] b _020517B8 _0205130E: ldr r0, [r4, #0x24] ldr r0, [r0, #0xc] bl FUN_0206BB1C add r2, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0xb str r0, [sp, #0x4] add r3, r4, #0x0 add r3, #0x3c ldrb r3, [r3, #0x0] ldr r1, [r4, #0x24] add r0, r4, #0x0 bl FUN_02050E48 mov r0, #0x12 str r0, [r4, #0x34] b _020517B8 _02051334: ldr r1, [r4, #0x24] add r0, r4, #0x0 bl FUN_02051020 cmp r0, #0x0 beq _02051410 mov r0, #0xf str r0, [r4, #0x34] b _020517B8 _02051346: ldr r0, [r4, #0x24] bl FUN_0204649C add r0, r4, #0x0 add r0, #0x88 ldrb r0, [r0, #0x0] cmp r0, #0x3 beq _02051364 add r0, r4, #0x0 mov r1, #0x5 add r0, #0x43 strb r1, [r0, #0x0] mov r0, #0x15 str r0, [r4, #0x34] b _020517B8 _02051364: mov r0, #0x1a str r0, [r4, #0x34] b _020517B8 _0205136A: add r0, r4, #0x0 add r0, #0x3d bl FUN_02033564 add r0, r4, #0x0 bl FUN_0205104C cmp r0, #0x0 beq _02051410 add r0, r4, #0x0 mov r1, #0x5 add r0, #0x43 strb r1, [r0, #0x0] mov r0, #0x0 str r0, [r4, #0x34] b _020517B8 _0205138A: ldr r0, [r4, #0x24] bl FUN_0204649C add r0, r4, #0x0 add r0, #0x88 ldrb r0, [r0, #0x0] cmp r0, #0x3 beq _020513A0 mov r0, #0x16 str r0, [r4, #0x34] b _020517B8 _020513A0: mov r0, #0x1a str r0, [r4, #0x34] b _020517B8 _020513A6: add r0, r4, #0x0 bl FUN_0205104C cmp r0, #0x0 beq _02051410 mov r0, #0x8 str r0, [r4, #0x34] b _020517B8 _020513B6: add r0, r4, #0x0 add r0, #0x44 ldrb r0, [r0, #0x0] sub r1, r0, #0x1 add r0, r4, #0x0 add r0, #0x44 strb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x44 ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _02051410 mov r0, #0x18 str r0, [r4, #0x34] b _020517B8 _020513D4: bl FUN_0204ECC0 ldr r0, [r4, #0x2c] ldr r2, [r4, #0xc] mov r1, #0x13 bl FUN_0200A8E0 ldr r1, [r4, #0xc] add r0, r4, #0x0 bl FUN_020517C0 str r0, [r4, #0x30] mov r0, #0x19 str r0, [r4, #0x34] b _020517B8 _020513F2: ldr r0, [r4, #0x30] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_020546C8 cmp r0, #0x0 beq _02051410 mov r0, #0xd str r0, [r4, #0x34] b _020517B8 _02051406: add r0, r4, #0x0 bl FUN_0205104C cmp r0, #0x0 bne _02051412 _02051410: b _020517B8 _02051412: bl FUN_0205106C cmp r0, #0x0 beq _02051420 mov r0, #0x5 str r0, [r4, #0x34] b _020517B8 _02051420: ldr r0, [r4, #0x38] cmp r0, #0x0 beq _0205142A mov r1, #0x1 b _0205142C _0205142A: mov r1, #0x0 _0205142C: add r0, r4, #0x0 add r0, #0x82 strb r1, [r0, #0x0] add r1, r4, #0x0 add r1, #0x82 ldrb r1, [r1, #0x0] add r0, r4, #0x0 bl FUN_020519F0 mov r0, #0x0 bl FUN_02031588 ldr r0, [r4, #0x28] ldr r2, [r4, #0x74] mov r1, #0x0 bl FUN_0200ABC0 ldr r0, [r4, #0x2c] ldr r2, [r4, #0xc] mov r1, #0xe bl FUN_0200A8E0 ldr r0, [r4, #0x28] ldr r1, [r4, #0x10] ldr r2, [r4, #0xc] bl FUN_0200B7B8 ldr r1, [r4, #0x10] add r0, r4, #0x0 bl FUN_020517C0 str r0, [r4, #0x30] mov r0, #0x1b str r0, [r4, #0x34] b _020517B8 _02051472: ldr r0, [r4, #0x30] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_020546C8 cmp r0, #0x0 beq _02051574 bl FUN_0205106C cmp r0, #0x0 beq _0205148E mov r0, #0x5 str r0, [r4, #0x34] b _020517B8 _0205148E: mov r0, #0x0 bl FUN_020315D8 cmp r0, #0x0 beq _02051574 add r0, r4, #0x0 bl FUN_02051A38 mov r0, #0x1c str r0, [r4, #0x34] b _020517B8 .balign 4 _020514A4: .word 0x021C48B8 _020514A8: add r0, r4, #0x0 bl FUN_02051A80 cmp r0, #0x0 beq _02051574 mov r0, #0x1 bl FUN_02031588 mov r0, #0x1d str r0, [r4, #0x34] b _020517B8 _020514BE: mov r0, #0x1 bl FUN_020315D8 cmp r0, #0x0 beq _02051574 add r0, r4, #0x0 bl FUN_02051A90 add r1, r4, #0x0 add r1, #0x83 strb r0, [r1, #0x0] add r0, r4, #0x0 add r0, #0x82 ldrb r0, [r0, #0x0] cmp r0, #0x0 beq _02051502 add r0, r4, #0x0 add r0, #0x83 ldrb r0, [r0, #0x0] cmp r0, #0x0 beq _02051502 ldr r0, [r4, #0x2c] ldr r2, [r4, #0xc] mov r1, #0x14 bl FUN_0200A8E0 ldr r1, [r4, #0xc] add r0, r4, #0x0 bl FUN_020517C0 str r0, [r4, #0x30] mov r0, #0x1e str r0, [r4, #0x34] b _020517B8 _02051502: mov r0, #0x2a str r0, [r4, #0x34] b _020517B8 _02051508: ldr r0, [r4, #0x30] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_020546C8 cmp r0, #0x0 beq _02051574 add r0, r4, #0x0 mov r1, #0x0 add r0, #0x89 strb r1, [r0, #0x0] ldr r0, [r4, #0x2c] ldr r2, [r4, #0xc] mov r1, #0x11 bl FUN_0200A8E0 ldr r1, [r4, #0xc] add r0, r4, #0x0 bl FUN_020517C0 str r0, [r4, #0x30] add r0, r4, #0x0 mov r1, #0x0 add r0, #0x84 strb r1, [r0, #0x0] mov r0, #0x1f str r0, [r4, #0x34] b _020517B8 _02051540: ldr r0, [r4, #0x30] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_020546C8 cmp r0, #0x0 beq _02051574 add r0, r4, #0x0 bl FUN_02051AF0 add r1, r4, #0x0 add r1, #0x84 ldrb r1, [r1, #0x0] add r0, r4, #0x0 bl FUN_02051B68 mov r0, #0x20 str r0, [r4, #0x34] b _020517B8 _02051566: add r0, r4, #0x0 bl FUN_02051D54 cmp r0, #0x1 beq _02051576 cmp r0, #0x2 beq _0205158C _02051574: b _020517B8 _02051576: add r0, r4, #0x0 bl FUN_02051E24 mov r0, #0x81 ldrsb r1, [r4, r0] add r0, r4, #0x0 add r0, #0x84 strb r1, [r0, #0x0] mov r0, #0x24 str r0, [r4, #0x34] b _020517B8 _0205158C: add r0, r4, #0x0 bl FUN_02051E24 add r0, r4, #0x0 mov r1, #0xff add r0, #0x84 strb r1, [r0, #0x0] ldr r0, [r4, #0x2c] ldr r2, [r4, #0xc] mov r1, #0xf bl FUN_0200A8E0 ldr r1, [r4, #0xc] add r0, r4, #0x0 bl FUN_020517C0 str r0, [r4, #0x30] mov r0, #0x2 bl FUN_02031588 mov r0, #0x27 str r0, [r4, #0x34] b _020517B8 _020515BA: add r1, r4, #0x0 add r1, #0x84 ldrb r1, [r1, #0x0] ldr r0, [r4, #0x50] bl FUN_0206B9B0 bl FUN_020690E4 add r2, r0, #0x0 ldr r0, [r4, #0x28] mov r1, #0x1 bl FUN_0200AC60 ldr r0, [r4, #0x2c] ldr r2, [r4, #0xc] mov r1, #0x12 bl FUN_0200A8E0 ldr r0, [r4, #0x28] ldr r1, [r4, #0x10] ldr r2, [r4, #0xc] bl FUN_0200B7B8 ldr r1, [r4, #0x10] add r0, r4, #0x0 bl FUN_020517C0 str r0, [r4, #0x30] mov r0, #0x25 str r0, [r4, #0x34] b _020517B8 _020515F8: ldr r0, [r4, #0x30] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_020546C8 cmp r0, #0x0 beq _0205168E add r0, r4, #0x0 mov r1, #0x0 bl FUN_02051C88 mov r0, #0x26 str r0, [r4, #0x34] b _020517B8 _02051614: add r0, r4, #0x0 bl FUN_02051D54 cmp r0, #0x1 beq _02051642 cmp r0, #0x2 bne _0205168E add r0, r4, #0x0 bl FUN_02051E24 ldr r0, [r4, #0x2c] ldr r2, [r4, #0xc] mov r1, #0x11 bl FUN_0200A8E0 ldr r1, [r4, #0xc] add r0, r4, #0x0 bl FUN_020517C0 str r0, [r4, #0x30] mov r0, #0x1f str r0, [r4, #0x34] b _020517B8 _02051642: mov r0, #0x81 ldrsb r0, [r4, r0] cmp r0, #0x1 bne _0205167A add r0, r4, #0x0 bl FUN_02051E24 ldr r0, [r4, #0x2c] ldr r2, [r4, #0xc] mov r1, #0xe bl FUN_0200A8E0 ldr r0, [r4, #0x28] ldr r1, [r4, #0x10] ldr r2, [r4, #0xc] bl FUN_0200B7B8 ldr r1, [r4, #0x10] add r0, r4, #0x0 bl FUN_020517C0 str r0, [r4, #0x30] mov r0, #0x2 bl FUN_02031588 mov r0, #0x27 str r0, [r4, #0x34] b _020517B8 _0205167A: mov r0, #0x0 bl FUN_021D7CA4 mov r0, #0x21 str r0, [r4, #0x34] b _020517B8 _02051686: bl FUN_0200E308 cmp r0, #0x0 bne _02051690 _0205168E: b _020517B8 _02051690: add r0, r4, #0x0 mov r1, #0x0 bl FUN_02051810 mov r0, #0x1 str r0, [sp, #0x0] mov r0, #0xb str r0, [sp, #0x4] add r3, r4, #0x0 add r3, #0x84 ldrb r3, [r3, #0x0] ldr r1, [r4, #0x24] ldr r2, [r4, #0x50] add r0, r4, #0x0 bl FUN_02050E48 mov r0, #0x22 str r0, [r4, #0x34] b _020517B8 _020516B6: ldr r1, [r4, #0x24] add r0, r4, #0x0 bl FUN_02051020 cmp r0, #0x0 beq _020517B8 ldr r0, [r4, #0x24] bl FUN_0204649C mov r0, #0x23 str r0, [r4, #0x34] b _020517B8 _020516CE: add r0, r4, #0x0 bl FUN_0205104C cmp r0, #0x0 beq _020517B8 mov r0, #0x24 str r0, [r4, #0x34] b _020517B8 _020516DE: ldr r0, [r4, #0x30] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_020546C8 cmp r0, #0x0 beq _020517B8 mov r0, #0x2 bl FUN_020315D8 cmp r0, #0x0 beq _020517B8 add r0, r4, #0x0 bl FUN_02051AA4 mov r0, #0x29 str r0, [r4, #0x34] b _020517B8 _02051702: add r0, r4, #0x0 bl FUN_02051AE0 cmp r0, #0x0 beq _020517B8 add r0, r4, #0x0 add r0, #0x84 ldrb r0, [r0, #0x0] cmp r0, #0xff bne _02051722 mov r0, #0x4 bl FUN_02031588 mov r0, #0x2c str r0, [r4, #0x34] b _020517B8 _02051722: add r0, r4, #0x0 add r0, #0x85 ldrb r0, [r0, #0x0] cmp r0, #0xff bne _02051732 mov r0, #0x2a str r0, [r4, #0x34] b _020517B8 _02051732: add r0, r4, #0x0 bl FUN_02051B1C mov r0, #0x5d bl FUN_02031588 mov r0, #0x2 str r0, [r4, #0x34] b _020517B8 _02051744: ldr r0, [r4, #0x2c] ldr r2, [r4, #0xc] mov r1, #0xf bl FUN_0200A8E0 ldr r1, [r4, #0xc] add r0, r4, #0x0 bl FUN_020517C0 str r0, [r4, #0x30] add r0, r4, #0x0 mov r1, #0x0 add r0, #0x43 strb r1, [r0, #0x0] mov r0, #0x2b str r0, [r4, #0x34] b _020517B8 _02051766: ldr r0, [r4, #0x30] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_020546C8 cmp r0, #0x0 beq _020517B8 add r0, r4, #0x0 add r0, #0x43 ldrb r0, [r0, #0x0] add r1, r0, #0x1 add r0, r4, #0x0 add r0, #0x43 strb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x43 ldrb r0, [r0, #0x0] cmp r0, #0x3c bls _020517B8 mov r0, #0x4 bl FUN_02031588 mov r0, #0x2c str r0, [r4, #0x34] b _020517B8 _02051798: mov r0, #0x4 bl FUN_020315D8 cmp r0, #0x0 beq _020517B8 add r0, r4, #0x0 add r0, #0x14 mov r1, #0x0 bl FUN_0200D0E0 mov r0, #0x0 ldr r2, [r4, #0x8] add r1, r0, #0x0 blx r2 mov r0, #0x5 str r0, [r4, #0x34] _020517B8: mov r0, #0x0 add sp, #0x8 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020517C0 FUN_020517C0: ; 0x020517C0 push {r4-r6, lr} add r5, r0, #0x0 add r4, r5, #0x0 add r4, #0x14 add r0, r4, #0x0 add r6, r1, #0x0 bl FUN_02019048 cmp r0, #0x0 bne _020517F2 ldr r0, [r5, #0x24] add r1, r4, #0x0 ldr r0, [r0, #0x8] mov r2, #0x3 bl FUN_020545B8 ldr r0, [r5, #0x24] ldr r0, [r0, #0xc] bl LoadPlayerDataAddress add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_02054608 b _020517F8 _020517F2: add r0, r4, #0x0 bl FUN_0205464C _020517F8: ldr r0, [r5, #0x24] ldr r0, [r0, #0xc] bl LoadPlayerDataAddress add r2, r0, #0x0 add r0, r4, #0x0 add r1, r6, #0x0 mov r3, #0x1 bl FUN_02054658 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02051810 FUN_02051810: ; 0x02051810 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x14 add r4, r1, #0x0 bl FUN_02019048 cmp r0, #0x0 beq _02051846 cmp r4, #0x0 beq _02051836 add r0, r5, #0x0 add r0, #0x14 mov r1, #0x0 bl FUN_0200D0E0 add r0, r5, #0x0 add r0, #0x14 bl FUN_02019570 _02051836: add r0, r5, #0x0 add r0, #0x14 bl FUN_02019178 add r0, r5, #0x0 add r0, #0x14 bl FUN_0201901C _02051846: add r0, r5, #0x0 add r0, #0x54 bl FUN_02019048 cmp r0, #0x0 beq _02051862 add r0, r5, #0x0 add r0, #0x54 bl FUN_02019178 add r0, r5, #0x0 add r0, #0x54 bl FUN_0201901C _02051862: add r0, r5, #0x0 add r0, #0x64 bl FUN_02019048 cmp r0, #0x0 beq _0205187E add r0, r5, #0x0 add r0, #0x64 bl FUN_02019178 add r5, #0x64 add r0, r5, #0x0 bl FUN_0201901C _0205187E: pop {r3-r5, pc} thumb_func_start FUN_02051880 FUN_02051880: ; 0x02051880 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0x10] add r6, r1, #0x0 cmp r0, #0x0 beq _0205188E b _02051992 _0205188E: mov r0, #0xb mov r1, #0x8c bl FUN_020169D8 add r4, r0, #0x0 mov r1, #0x0 mov r2, #0x8c blx MI_CpuFill8 add r0, r4, #0x0 mov r1, #0x5 add r0, #0x43 strb r1, [r0, #0x0] str r5, [r4, #0x24] str r6, [r4, #0x8] mov r0, #0xb bl FUN_0200AA80 str r0, [r4, #0x28] mov r0, #0x0 mov r1, #0x1a mov r2, #0x9 mov r3, #0xb bl FUN_0200A86C str r0, [r4, #0x2c] mov r0, #0xc8 mov r1, #0xb bl FUN_020219F4 str r0, [r4, #0xc] mov r0, #0xc8 mov r1, #0xb bl FUN_020219F4 str r0, [r4, #0x10] add r0, r4, #0x0 add r0, #0x14 bl FUN_0201901C add r0, r4, #0x0 add r0, #0x54 bl FUN_0201901C add r0, r4, #0x0 add r0, #0x64 bl FUN_0201901C mov r0, #0xb bl FUN_02013690 str r0, [r4, #0x78] bl FUN_02033534 add r1, r4, #0x0 add r1, #0x88 strb r0, [r1, #0x0] mov r1, #0x0 str r1, [r4, #0x4c] str r1, [r4, #0x48] add r0, r4, #0x0 str r1, [r4, #0x50] add r0, #0x89 strb r1, [r0, #0x0] bl FUN_02031190 add r1, r4, #0x0 add r1, #0x86 strh r0, [r1, #0x0] add r0, r4, #0x0 add r0, #0x86 ldrh r1, [r0, #0x0] mov r0, #0x1 eor r0, r1 bl FUN_0202DFA4 str r0, [r4, #0x74] add r0, r4, #0x0 add r0, #0x88 ldrb r0, [r0, #0x0] cmp r0, #0x3 beq _02051938 cmp r0, #0x4 beq _0205196E b _02051974 _02051938: bl FUN_02051E54 add r6, r0, #0x0 mov r0, #0xb add r1, r6, #0x0 bl FUN_020169D8 str r0, [r4, #0x4c] mov r0, #0xb add r1, r6, #0x0 bl FUN_020169D8 str r0, [r4, #0x48] mov r0, #0xb bl FUN_0206B8AC mov r1, #0x3 str r0, [r4, #0x50] bl FUN_0206B8CC add r0, r4, #0x0 mov r1, #0x5 add r0, #0x44 strb r1, [r0, #0x0] mov r0, #0x17 str r0, [r4, #0x34] b _02051988 _0205196E: mov r0, #0x9 str r0, [r4, #0x34] b _02051988 _02051974: ldr r0, [r4, #0x24] add r0, #0xac ldr r0, [r0, #0x0] cmp r0, #0x0 beq _02051984 mov r0, #0x9 str r0, [r4, #0x34] b _02051988 _02051984: mov r0, #0x0 str r0, [r4, #0x34] _02051988: ldr r1, _02051994 ; =FUN_02051094 add r0, r5, #0x0 add r2, r4, #0x0 bl FUN_020463CC _02051992: pop {r4-r6, pc} .balign 4 _02051994: .word FUN_02051094 thumb_func_start FUN_02051998 FUN_02051998: ; 0x02051998 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x50] cmp r0, #0x0 beq _020519A6 bl FUN_02016A18 _020519A6: ldr r0, [r4, #0x4c] cmp r0, #0x0 beq _020519B0 bl FUN_02016A18 _020519B0: ldr r0, [r4, #0x48] cmp r0, #0x0 beq _020519BA bl FUN_02016A18 _020519BA: ldr r0, [r4, #0x2c] bl FUN_0200A8B8 ldr r0, [r4, #0x28] bl FUN_0200AB18 ldr r0, [r4, #0xc] bl FUN_02021A20 ldr r0, [r4, #0x10] bl FUN_02021A20 ldr r0, [r4, #0x78] bl FUN_020136C0 add r0, r4, #0x0 mov r1, #0x1 bl FUN_02051810 pop {r4, pc} .balign 4 thumb_func_start FUN_020519E4 FUN_020519E4: ; 0x020519E4 ldr r3, _020519EC ; =FUN_0204652C ldr r0, [r0, #0x10] bx r3 nop _020519EC: .word FUN_0204652C thumb_func_start FUN_020519F0 FUN_020519F0: ; 0x020519F0 push {r3-r7, lr} add r7, r0, #0x0 ldr r0, [r7, #0x24] add r5, r1, #0x0 ldr r0, [r0, #0xc] bl FUN_0206BB1C str r0, [sp, #0x0] ldr r4, [r7, #0x4c] bl FUN_020690C4 add r6, r0, #0x0 lsl r0, r6, #0x1 add r0, r6, r0 str r5, [r4, r0] ldr r0, [r4, r0] cmp r0, #0x0 beq _02051A34 mov r5, #0x0 _02051A16: add r1, r7, r5 add r1, #0x3d ldrb r1, [r1, #0x0] ldr r0, [sp, #0x0] sub r1, r1, #0x1 bl FUN_0206B9B0 add r1, r4, #0x0 add r2, r6, #0x0 blx MI_CpuCopy8 add r5, r5, #0x1 add r4, r4, r6 cmp r5, #0x3 blt _02051A16 _02051A34: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02051A38 FUN_02051A38: ; 0x02051A38 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x89 ldrb r1, [r0, #0x0] mov r0, #0x1 tst r1, r0 bne _02051A7C ldr r4, [r5, #0x4c] bl FUN_02051E54 add r2, r0, #0x0 add r0, r5, #0x0 add r0, #0x86 ldrh r0, [r0, #0x0] cmp r0, #0x0 bne _02051A62 mov r0, #0x6a add r1, r4, #0x0 bl FUN_02030B3C b _02051A6A _02051A62: mov r0, #0x6a add r1, r4, #0x0 bl FUN_02030A78 _02051A6A: cmp r0, #0x0 beq _02051A7C add r1, r5, #0x0 add r1, #0x89 ldrb r2, [r1, #0x0] mov r1, #0x1 add r5, #0x89 orr r1, r2 strb r1, [r5, #0x0] _02051A7C: pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02051A80 FUN_02051A80: ; 0x02051A80 add r0, #0x89 ldrb r0, [r0, #0x0] cmp r0, #0x3 bne _02051A8C mov r0, #0x1 bx lr _02051A8C: mov r0, #0x0 bx lr thumb_func_start FUN_02051A90 FUN_02051A90: ; 0x02051A90 push {r4, lr} add r4, r0, #0x0 bl FUN_020690C4 lsl r1, r0, #0x1 ldr r2, [r4, #0x48] add r0, r0, r1 ldr r0, [r2, r0] pop {r4, pc} .balign 4 thumb_func_start FUN_02051AA4 FUN_02051AA4: ; 0x02051AA4 push {r4, lr} add r4, r0, #0x0 add r0, #0x86 ldrh r0, [r0, #0x0] cmp r0, #0x0 bne _02051ABE add r1, r4, #0x0 mov r0, #0x6b add r1, #0x84 mov r2, #0x1 bl FUN_02030BC4 b _02051ACA _02051ABE: add r1, r4, #0x0 mov r0, #0x6b add r1, #0x84 mov r2, #0x1 bl FUN_02030ADC _02051ACA: cmp r0, #0x0 beq _02051ADC add r1, r4, #0x0 add r1, #0x89 ldrb r2, [r1, #0x0] mov r1, #0x1 add r4, #0x89 orr r1, r2 strb r1, [r4, #0x0] _02051ADC: pop {r4, pc} .balign 4 thumb_func_start FUN_02051AE0 FUN_02051AE0: ; 0x02051AE0 add r0, #0x89 ldrb r0, [r0, #0x0] cmp r0, #0x3 bne _02051AEC mov r0, #0x1 bx lr _02051AEC: mov r0, #0x0 bx lr thumb_func_start FUN_02051AF0 FUN_02051AF0: ; 0x02051AF0 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_020690C4 add r6, r0, #0x0 ldr r0, [r5, #0x50] mov r1, #0x3 bl FUN_0206B8CC mov r4, #0x0 _02051B04: add r1, r4, #0x0 ldr r2, [r5, #0x48] mul r1, r6 ldr r0, [r5, #0x50] add r1, r2, r1 bl FUN_0206B900 add r4, r4, #0x1 cmp r4, #0x3 blt _02051B04 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02051B1C FUN_02051B1C: ; 0x02051B1C push {r4-r6, lr} add r6, r0, #0x0 bl FUN_020690C4 add r4, r0, #0x0 add r0, r6, #0x0 add r0, #0x84 ldrb r0, [r0, #0x0] ldr r2, [r6, #0x48] ldr r3, [r6, #0x4c] add r1, r0, #0x0 mul r1, r4 add r0, r2, r1 add r1, r6, #0x0 add r1, #0x85 ldrb r1, [r1, #0x0] add r2, r1, #0x0 mul r2, r4 add r1, r3, r2 add r2, r4, #0x0 blx MI_CpuCopy8 ldr r0, [r6, #0x50] mov r1, #0x3 bl FUN_0206B8CC mov r5, #0x0 _02051B52: add r1, r5, #0x0 ldr r2, [r6, #0x4c] mul r1, r4 ldr r0, [r6, #0x50] add r1, r2, r1 bl FUN_0206B900 add r5, r5, #0x1 cmp r5, #0x3 blt _02051B52 pop {r4-r6, pc} thumb_func_start FUN_02051B68 FUN_02051B68: ; 0x02051B68 push {r4-r7, lr} sub sp, #0x24 add r5, r0, #0x0 str r0, [sp, #0x20] add r0, #0x54 str r1, [sp, #0x14] str r0, [sp, #0x20] bl FUN_02019048 cmp r0, #0x0 bne _02051C34 ldr r2, _02051C84 ; =0x0000016A mov r0, #0x1 mov r1, #0x1a mov r3, #0x4 bl FUN_0200A86C str r0, [sp, #0x18] bl FUN_020690C4 str r0, [sp, #0x1c] mov r0, #0x9 str r0, [sp, #0x0] mov r1, #0xa str r1, [sp, #0x4] mov r0, #0x8 str r0, [sp, #0x8] mov r0, #0xd str r0, [sp, #0xc] str r1, [sp, #0x10] ldr r0, [r5, #0x24] ldr r1, [sp, #0x20] ldr r0, [r0, #0x8] mov r2, #0x3 mov r3, #0x15 bl FUN_02019064 mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x4 str r0, [sp, #0x4] ldr r0, [r5, #0x24] mov r1, #0x3 ldr r0, [r0, #0x8] mov r2, #0x1 mov r3, #0xb bl FUN_0200CB00 ldr r0, [sp, #0x20] mov r1, #0xf bl FUN_02019620 mov r7, #0x0 add r6, r7, #0x0 add r4, r7, #0x0 _02051BD6: ldr r0, [r5, #0x48] mov r1, #0x5 add r0, r0, r6 mov r2, #0x0 bl FUN_020671BC add r1, r0, #0x0 ldr r0, [sp, #0x18] ldr r2, [r5, #0xc] bl FUN_0200A8E0 str r4, [sp, #0x0] mov r0, #0xff str r0, [sp, #0x4] mov r0, #0x0 str r0, [sp, #0x8] ldr r0, [sp, #0x20] ldr r2, [r5, #0xc] mov r1, #0x0 mov r3, #0x10 bl FUN_0201BD84 ldr r0, [sp, #0x1c] add r7, r7, #0x1 add r6, r6, r0 add r4, #0x10 cmp r7, #0x3 blt _02051BD6 ldr r0, [r5, #0x2c] ldr r2, [r5, #0xc] mov r1, #0x15 bl FUN_0200A8E0 lsl r0, r7, #0x4 str r0, [sp, #0x0] mov r0, #0xff str r0, [sp, #0x4] mov r1, #0x0 str r1, [sp, #0x8] ldr r0, [sp, #0x20] ldr r2, [r5, #0xc] mov r3, #0x10 bl FUN_0201BD84 ldr r0, [sp, #0x18] bl FUN_0200A8B8 _02051C34: mov r0, #0x10 str r0, [sp, #0x0] ldr r0, [sp, #0x20] mov r2, #0x0 ldrb r0, [r0, #0x8] mov r1, #0xf add r3, r2, #0x0 lsl r0, r0, #0x13 lsr r0, r0, #0x10 str r0, [sp, #0x4] ldr r0, [sp, #0x20] bl FUN_020196F4 ldr r3, [sp, #0x14] add r1, r5, #0x0 ldr r0, [r5, #0x78] add r1, #0x54 mov r2, #0x0 lsl r3, r3, #0x4 bl FUN_020136F8 add r0, r5, #0x0 add r0, #0x54 mov r1, #0x0 mov r2, #0x1 mov r3, #0xb bl FUN_0200CCA4 add r1, r5, #0x0 ldr r0, [sp, #0x14] add r1, #0x81 strb r0, [r1, #0x0] add r0, r5, #0x0 mov r1, #0x4 add r0, #0x80 strb r1, [r0, #0x0] ldr r0, [sp, #0x20] str r0, [r5, #0x7c] add sp, #0x24 pop {r4-r7, pc} .balign 4 _02051C84: .word 0x0000016A thumb_func_start FUN_02051C88 FUN_02051C88: ; 0x02051C88 push {r3-r7, lr} sub sp, #0x18 add r5, r0, #0x0 add r7, r5, #0x0 add r7, #0x64 add r0, r7, #0x0 str r1, [sp, #0x14] bl FUN_02019048 cmp r0, #0x0 bne _02051D0A mov r0, #0xb str r0, [sp, #0x0] str r0, [sp, #0x4] mov r0, #0x6 str r0, [sp, #0x8] mov r0, #0xd str r0, [sp, #0xc] mov r0, #0x5a str r0, [sp, #0x10] ldr r0, [r5, #0x24] add r1, r7, #0x0 ldr r0, [r0, #0x8] mov r2, #0x3 mov r3, #0x14 bl FUN_02019064 mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x4 str r0, [sp, #0x4] ldr r0, [r5, #0x24] mov r1, #0x3 ldr r0, [r0, #0x8] mov r2, #0x1 mov r3, #0xb bl FUN_0200CB00 add r0, r7, #0x0 mov r1, #0xf bl FUN_02019620 mov r6, #0x0 add r4, r6, #0x0 _02051CE0: add r1, r6, #0x0 ldr r0, [r5, #0x2c] ldr r2, [r5, #0xc] add r1, #0x16 bl FUN_0200A8E0 str r4, [sp, #0x0] mov r0, #0xff str r0, [sp, #0x4] mov r0, #0x0 str r0, [sp, #0x8] ldr r2, [r5, #0xc] add r0, r7, #0x0 mov r1, #0x0 mov r3, #0x10 bl FUN_0201BD84 add r6, r6, #0x1 add r4, #0x10 cmp r6, #0x3 blt _02051CE0 _02051D0A: add r0, r5, #0x0 mov r1, #0x3 add r0, #0x80 strb r1, [r0, #0x0] add r1, r5, #0x0 ldr r0, [sp, #0x14] str r7, [r5, #0x7c] add r1, #0x81 strb r0, [r1, #0x0] mov r0, #0x10 str r0, [sp, #0x0] ldrb r0, [r7, #0x8] mov r2, #0x0 mov r1, #0xf lsl r0, r0, #0x13 lsr r0, r0, #0x10 str r0, [sp, #0x4] add r0, r7, #0x0 add r3, r2, #0x0 bl FUN_020196F4 ldr r3, [sp, #0x14] ldr r0, [r5, #0x78] ldr r1, [r5, #0x7c] mov r2, #0x0 lsl r3, r3, #0x4 bl FUN_020136F8 ldr r0, [r5, #0x7c] mov r1, #0x0 mov r2, #0x1 mov r3, #0xb bl FUN_0200CCA4 add sp, #0x18 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02051D54 FUN_02051D54: ; 0x02051D54 push {r4, lr} sub sp, #0x8 add r4, r0, #0x0 ldr r0, _02051E1C ; =0x021C48B8 mov r1, #0x40 ldr r0, [r0, #0x48] tst r1, r0 beq _02051D7E mov r0, #0x81 ldrsb r0, [r4, r0] cmp r0, #0x0 bne _02051D74 add r0, r4, #0x0 add r0, #0x80 ldrb r0, [r0, #0x0] b _02051D74 _02051D74: sub r1, r0, #0x1 add r0, r4, #0x0 add r0, #0x81 strb r1, [r0, #0x0] b _02051DE0 _02051D7E: mov r1, #0x80 tst r1, r0 beq _02051DA2 mov r0, #0x81 ldrsb r1, [r4, r0] add r0, r4, #0x0 add r0, #0x80 ldrb r0, [r0, #0x0] sub r0, r0, #0x1 cmp r1, r0 bne _02051D98 mov r1, #0x0 b _02051D9A _02051D98: add r1, r1, #0x1 _02051D9A: add r0, r4, #0x0 add r0, #0x81 strb r1, [r0, #0x0] b _02051DE0 _02051DA2: mov r1, #0x1 tst r1, r0 beq _02051DC8 ldr r0, _02051E20 ; =0x000005DC bl FUN_020054C8 mov r0, #0x81 ldrsb r1, [r4, r0] add r4, #0x80 ldrb r0, [r4, #0x0] sub r0, r0, #0x1 cmp r1, r0 bge _02051DC2 add sp, #0x8 mov r0, #0x1 pop {r4, pc} _02051DC2: add sp, #0x8 mov r0, #0x2 pop {r4, pc} _02051DC8: mov r1, #0x2 tst r0, r1 beq _02051DDA ldr r0, _02051E20 ; =0x000005DC bl FUN_020054C8 add sp, #0x8 mov r0, #0x2 pop {r4, pc} _02051DDA: add sp, #0x8 mov r0, #0x0 pop {r4, pc} _02051DE0: ldr r0, _02051E20 ; =0x000005DC bl FUN_020054C8 ldr r0, [r4, #0x7c] mov r1, #0x10 str r1, [sp, #0x0] ldrb r1, [r0, #0x8] mov r2, #0x0 add r3, r2, #0x0 lsl r1, r1, #0x13 lsr r1, r1, #0x10 str r1, [sp, #0x4] mov r1, #0xf bl FUN_020196F4 mov r3, #0x81 ldrsb r3, [r4, r3] ldr r0, [r4, #0x78] ldr r1, [r4, #0x7c] mov r2, #0x0 lsl r3, r3, #0x4 bl FUN_020136F8 ldr r0, [r4, #0x7c] bl FUN_02019548 mov r0, #0x0 add sp, #0x8 pop {r4, pc} nop _02051E1C: .word 0x021C48B8 _02051E20: .word 0x000005DC thumb_func_start FUN_02051E24 FUN_02051E24: ; 0x02051E24 ldr r3, _02051E2C ; =FUN_0200CCF8 ldr r0, [r0, #0x7c] mov r1, #0x1 bx r3 .balign 4 _02051E2C: .word FUN_0200CCF8 thumb_func_start FUN_02051E30 FUN_02051E30: ; 0x02051E30 push {r4, lr} add r4, r0, #0x0 add r0, r3, #0x0 bl FUN_020519E4 add r1, r0, #0x0 add r1, #0x86 ldrh r1, [r1, #0x0] cmp r1, r4 beq _02051E52 add r1, r0, #0x0 add r1, #0x89 ldrb r2, [r1, #0x0] mov r1, #0x2 add r0, #0x89 orr r1, r2 strb r1, [r0, #0x0] _02051E52: pop {r4, pc} thumb_func_start FUN_02051E54 FUN_02051E54: ; 0x02051E54 push {r3, lr} bl FUN_020690C4 lsl r1, r0, #0x1 add r0, r0, r1 add r0, r0, #0x4 pop {r3, pc} .balign 4 thumb_func_start FUN_02051E64 FUN_02051E64: ; 0x02051E64 push {r4, lr} add r4, r0, #0x0 add r0, r1, #0x0 bl FUN_020519E4 add r1, r0, #0x0 add r1, #0x86 ldrh r1, [r1, #0x0] cmp r1, r4 beq _02051E7C ldr r0, [r0, #0x48] pop {r4, pc} _02051E7C: mov r0, #0x0 pop {r4, pc} thumb_func_start FUN_02051E80 FUN_02051E80: ; 0x02051E80 push {r3-r5, lr} add r5, r0, #0x0 add r0, r3, #0x0 add r4, r2, #0x0 bl FUN_020519E4 add r1, r0, #0x0 add r1, #0x86 ldrh r1, [r1, #0x0] cmp r1, r5 beq _02051EAC ldrb r2, [r4, #0x0] add r1, r0, #0x0 add r1, #0x85 strb r2, [r1, #0x0] add r1, r0, #0x0 add r1, #0x89 ldrb r2, [r1, #0x0] mov r1, #0x2 add r0, #0x89 orr r1, r2 strb r1, [r0, #0x0] _02051EAC: pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02051EB0 FUN_02051EB0: ; 0x02051EB0 push {r4-r6, lr} add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C add r4, r0, #0x0 mov r1, #0x0 ldr r0, [r4, #0x24] add r2, r1, #0x0 bl FUN_02050BF8 add r6, r0, #0x0 ldr r0, [r4, #0x28] cmp r0, #0x7 bls _02051ED6 b _02052036 _02051ED6: add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02051EE2: ; jump table (using 16-bit offset) .short _02051EF2 - _02051EE2 - 2; case 0 .short _02051F7C - _02051EE2 - 2; case 1 .short _02051FCC - _02051EE2 - 2; case 2 .short _02051FDC - _02051EE2 - 2; case 3 .short _02051FEC - _02051EE2 - 2; case 4 .short _02051FFE - _02051EE2 - 2; case 5 .short _0205200C - _02051EE2 - 2; case 6 .short _02052028 - _02051EE2 - 2; case 7 _02051EF2: mov r0, #0x4 bl FUN_0200AA80 str r0, [r4, #0x18] mov r0, #0x0 mov r1, #0x1a mov r2, #0x9 mov r3, #0x4 bl FUN_0200A86C str r0, [r4, #0x1c] mov r0, #0xc8 mov r1, #0x4 bl FUN_020219F4 str r0, [r4, #0x0] mov r0, #0xc8 mov r1, #0x4 bl FUN_020219F4 str r0, [r4, #0x4] ldrb r1, [r6, #0x3] ldr r0, [r4, #0x1c] ldr r2, [r4, #0x0] add r1, r1, #0x2 bl FUN_0200A8E0 ldr r0, [r4, #0x24] bl FUN_0202DFA4 add r2, r0, #0x0 ldr r0, [r4, #0x18] mov r1, #0x0 bl FUN_0200ABC0 ldr r0, [r4, #0x18] ldr r1, [r4, #0x4] ldr r2, [r4, #0x0] bl FUN_0200B7B8 add r1, r4, #0x0 ldr r0, [r5, #0x8] add r1, #0x8 mov r2, #0x3 bl FUN_020545B8 ldr r0, [r5, #0xc] bl LoadPlayerDataAddress add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x8 bl FUN_02054608 ldr r0, [r5, #0xc] bl LoadPlayerDataAddress add r2, r0, #0x0 add r0, r4, #0x0 ldr r1, [r4, #0x4] add r0, #0x8 mov r3, #0x1 bl FUN_02054658 str r0, [r4, #0x20] ldr r0, [r4, #0x28] add r0, r0, #0x1 str r0, [r4, #0x28] b _0205203A _02051F7C: ldr r0, [r4, #0x20] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_020546C8 cmp r0, #0x0 beq _0205203A ldr r0, _02052040 ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #0x1 tst r0, r1 beq _0205203A ldr r0, [r4, #0x1c] bl FUN_0200A8B8 ldr r0, [r4, #0x18] bl FUN_0200AB18 ldr r0, [r4, #0x0] bl FUN_02021A20 ldr r0, [r4, #0x4] bl FUN_02021A20 add r0, r4, #0x0 add r0, #0x8 mov r1, #0x0 bl FUN_0200D0E0 add r0, r4, #0x0 add r0, #0x8 bl FUN_02019178 mov r0, #0x0 bl FUN_021D7CA4 ldr r0, [r4, #0x28] add r0, r0, #0x1 str r0, [r4, #0x28] b _0205203A _02051FCC: bl FUN_0200E308 cmp r0, #0x0 beq _0205203A ldr r0, [r4, #0x28] add r0, r0, #0x1 str r0, [r4, #0x28] b _0205203A _02051FDC: add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02038680 ldr r0, [r4, #0x28] add r0, r0, #0x1 str r0, [r4, #0x28] b _0205203A _02051FEC: add r0, r5, #0x0 bl FUN_0204647C cmp r0, #0x0 bne _0205203A ldr r0, [r4, #0x28] add r0, r0, #0x1 str r0, [r4, #0x28] b _0205203A _02051FFE: add r0, r5, #0x0 bl FUN_0204649C ldr r0, [r4, #0x28] add r0, r0, #0x1 str r0, [r4, #0x28] b _0205203A _0205200C: add r0, r5, #0x0 bl FUN_020464A4 cmp r0, #0x0 bne _0205203A mov r0, #0x1 bl FUN_021D7CA4 bl FUN_0204CC9C ldr r0, [r4, #0x28] add r0, r0, #0x1 str r0, [r4, #0x28] b _0205203A _02052028: bl FUN_0204F7FC add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x1 pop {r4-r6, pc} _02052036: mov r0, #0x1 pop {r4-r6, pc} _0205203A: mov r0, #0x0 pop {r4-r6, pc} nop _02052040: .word 0x021C48B8 thumb_func_start FUN_02052044 FUN_02052044: ; 0x02052044 push {r3-r7, lr} str r0, [sp, #0x0] bl FUN_02031190 add r5, r0, #0x0 bl FUN_0204E4D4 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_0204E50C add r6, r0, #0x0 mov r4, #0x0 bl FUN_02030F20 cmp r0, #0x0 ble _020520A6 _02052066: cmp r4, r5 beq _0205209C add r0, r4, #0x0 bl FUN_0204E3EC cmp r7, r0 bne _0205209C add r0, r4, #0x0 bl FUN_0204E440 cmp r6, r0 bne _0205209C mov r0, #0xb mov r1, #0x2c bl FUN_020169D8 add r2, r0, #0x0 str r4, [r2, #0x24] mov r0, #0x0 str r0, [r2, #0x28] ldr r0, [sp, #0x0] ldr r1, _020520A8 ; =FUN_02051EB0 bl FUN_020463CC bl FUN_02037760 pop {r3-r7, pc} _0205209C: add r4, r4, #0x1 bl FUN_02030F20 cmp r4, r0 blt _02052066 _020520A6: pop {r3-r7, pc} .balign 4 _020520A8: .word FUN_02051EB0 thumb_func_start FUN_020520AC FUN_020520AC: ; 0x020520AC push {r3-r5, lr} add r4, r0, #0x0 bne _020520B6 bl ErrorHandling _020520B6: ldr r0, [r4, #0x78] cmp r0, #0x0 beq _020520C0 mov r0, #0x0 pop {r3-r5, pc} _020520C0: mov r2, #0x2a mov r0, #0x3 mov r1, #0x1f lsl r2, r2, #0x6 bl FUN_02016828 add r0, r4, #0x0 bl FUN_02052110 add r5, r0, #0x0 bne _020520D8 ldr r5, [r4, #0x78] _020520D8: add r0, r4, #0x0 bl FUN_0208881C mov r0, #0x2 bl FUN_02032B6C ldr r1, _020520F4 ; =FUN_02052178 add r0, r5, #0x0 mov r2, #0x28 bl FUN_02052300 add r0, r5, #0x0 pop {r3-r5, pc} nop _020520F4: .word FUN_02052178 thumb_func_start FUN_020520F8 FUN_020520F8: ; 0x020520F8 push {r3, lr} ldr r0, [r0, #0x78] cmp r0, #0x0 beq _02052108 ldr r1, _0205210C ; =FUN_02052348 mov r2, #0x5 bl FUN_02052300 _02052108: pop {r3, pc} nop _0205210C: .word FUN_02052348 thumb_func_start FUN_02052110 FUN_02052110: ; 0x02052110 push {r4-r6, lr} add r5, r0, #0x0 ldr r1, [r5, #0x78] cmp r1, #0x0 beq _0205211E mov r0, #0x0 pop {r4-r6, pc} _0205211E: bl FUN_020377AC add r6, r0, #0x0 bl FUN_02031A7C mov r1, #0x19 mov r0, #0x1f lsl r1, r1, #0x4 bl FUN_02016998 mov r2, #0x19 mov r1, #0x0 lsl r2, r2, #0x4 add r4, r0, #0x0 blx MI_CpuFill8 mov r0, #0x0 str r0, [r4, #0x10] mov r0, #0x28 str r0, [r4, #0x14] ldr r0, _02052174 ; =FUN_02052308 add r1, r4, #0x0 mov r2, #0xa bl FUN_0200CA44 str r0, [r4, #0xc] str r5, [r4, #0x0] str r6, [r4, #0x4] add r0, r6, #0x0 bl FUN_020238F4 str r0, [r4, #0x8] add r0, r4, #0x0 bl FUN_02052E1C mov r0, #0x15 lsl r0, r0, #0x4 add r0, r4, r0 bl FUN_020312BC add r0, r4, #0x0 pop {r4-r6, pc} nop _02052174: .word FUN_02052308 thumb_func_start FUN_02052178 FUN_02052178: ; 0x02052178 push {r4, lr} sub sp, #0x8 add r4, r0, #0x0 bl FUN_0202EDF8 cmp r0, #0x0 beq _020521A4 add r0, sp, #0x0 bl FUN_02013754 add r0, sp, #0x0 bl FUN_02052DE8 add r0, r4, #0x0 add r1, sp, #0x0 bl FUN_02052CD8 ldr r1, _020521A8 ; =FUN_020521AC add r0, r4, #0x0 mov r2, #0x28 bl FUN_02052300 _020521A4: add sp, #0x8 pop {r4, pc} .balign 4 _020521A8: .word FUN_020521AC thumb_func_start FUN_020521AC FUN_020521AC: ; 0x020521AC push {r4, lr} add r4, r0, #0x0 bl FUN_02031B2C cmp r0, #0x0 beq _020521C8 ldr r0, _02052208 ; =0x021C5A70 mov r2, #0x0 str r2, [r0, #0x0] ldr r1, _0205220C ; =FUN_0205225C add r0, r4, #0x0 bl FUN_02052300 pop {r4, pc} _020521C8: ldr r0, [r4, #0x20] cmp r0, #0x0 beq _02052206 mov r0, #0x2 str r0, [r4, #0x28] ldr r0, [r4, #0x20] cmp r0, #0x1 bne _020521EC ldr r0, [r4, #0x30] cmp r0, #0x5 ldr r0, [r4, #0x18] bne _020521E6 bl FUN_020328F4 b _020521FC _020521E6: bl FUN_02031AC8 b _020521FC _020521EC: cmp r0, #0x2 bne _020521FC mov r0, #0x0 bl FUN_02083D48 ldr r0, [r4, #0x18] bl FUN_020328C0 _020521FC: ldr r1, _02052210 ; =FUN_02052380 add r0, r4, #0x0 mov r2, #0xc bl FUN_02052300 _02052206: pop {r4, pc} .balign 4 _02052208: .word 0x021C5A70 _0205220C: .word FUN_0205225C _02052210: .word FUN_02052380 thumb_func_start FUN_02052214 FUN_02052214: ; 0x02052214 push {r4, lr} add r4, r0, #0x0 bl FUN_02031BD0 cmp r0, #0x1 bne _02052230 ldr r0, [r4, #0x0] bl FUN_0208881C ldr r1, _02052234 ; =FUN_020521AC add r0, r4, #0x0 mov r2, #0x2 bl FUN_02052300 _02052230: pop {r4, pc} nop _02052234: .word FUN_020521AC thumb_func_start FUN_02052238 FUN_02052238: ; 0x02052238 push {r3-r5, lr} mov r5, #0x0 mov r4, #0x1 _0205223E: add r0, r4, #0x0 bl FUN_0202DFA4 cmp r0, #0x0 beq _0205224A add r5, r5, #0x1 _0205224A: add r4, r4, #0x1 cmp r4, #0x5 blt _0205223E cmp r5, #0x1 blt _02052258 mov r0, #0x1 pop {r3-r5, pc} _02052258: mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0205225C FUN_0205225C: ; 0x0205225C push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x14] cmp r0, #0x0 ble _0205226C sub r0, r0, #0x1 str r0, [r4, #0x14] pop {r4, pc} _0205226C: ldr r0, _020522C4 ; =0x021C5A70 ldr r1, [r0, #0x0] add r1, r1, #0x1 str r1, [r0, #0x0] bl FUN_020311E8 cmp r0, #0x0 beq _020522A0 bl FUN_02052238 cmp r0, #0x1 bne _020522A0 bl FUN_0202DBE0 mov r0, #0x1 add r1, r0, #0x0 bl FUN_020334E8 mov r0, #0xb bl FUN_02052B74 ldr r1, _020522C8 ; =FUN_020522D0 add r0, r4, #0x0 mov r2, #0x0 bl FUN_02052300 _020522A0: bl FUN_02031B2C cmp r0, #0x0 bne _020522C2 bl FUN_02031B50 add r0, r4, #0x0 bl FUN_02052E1C mov r0, #0x0 bl FUN_02052B74 ldr r1, _020522CC ; =FUN_02052214 add r0, r4, #0x0 mov r2, #0x2 bl FUN_02052300 _020522C2: pop {r4, pc} .balign 4 _020522C4: .word 0x021C5A70 _020522C8: .word FUN_020522D0 _020522CC: .word FUN_02052214 thumb_func_start FUN_020522D0 FUN_020522D0: ; 0x020522D0 push {r4, lr} add r4, r0, #0x0 bl FUN_020311E8 bl FUN_020311E8 cmp r0, #0x0 bne _020522FA bl FUN_02031B50 add r0, r4, #0x0 bl FUN_02052E1C mov r0, #0x0 bl FUN_02052B74 ldr r1, _020522FC ; =FUN_02052214 add r0, r4, #0x0 mov r2, #0x2 bl FUN_02052300 _020522FA: pop {r4, pc} .balign 4 _020522FC: .word FUN_02052214 thumb_func_start FUN_02052300 FUN_02052300: ; 0x02052300 str r1, [r0, #0x10] str r2, [r0, #0x14] bx lr .balign 4 thumb_func_start FUN_02052308 FUN_02052308: ; 0x02052308 push {r3-r7, lr} str r1, [sp, #0x0] cmp r1, #0x0 bne _02052316 bl FUN_0200CAB4 pop {r3-r7, pc} _02052316: mov r7, #0x11 ldr r5, _02052344 ; =0x021C5A7C mov r6, #0x0 add r4, r1, #0x0 lsl r7, r7, #0x4 _02052320: add r0, r6, #0x0 bl FUN_0202EF18 mov r1, #0x11 lsl r1, r1, #0x4 str r0, [r4, r1] ldr r0, [r4, r7] add r6, r6, #0x1 add r4, r4, #0x4 stmia r5!, {r0} cmp r6, #0x10 blt _02052320 ldr r0, [sp, #0x0] ldr r1, [r0, #0x10] cmp r1, #0x0 beq _02052342 blx r1 _02052342: pop {r3-r7, pc} .balign 4 _02052344: .word 0x021C5A7C thumb_func_start FUN_02052348 FUN_02052348: ; 0x02052348 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x14] cmp r0, #0x0 beq _02052358 sub r0, r0, #0x1 str r0, [r4, #0x14] pop {r4, pc} _02052358: bl FUN_02031BF4 ldr r1, _02052368 ; =FUN_0205236C add r0, r4, #0x0 mov r2, #0x0 bl FUN_02052300 pop {r4, pc} .balign 4 _02052368: .word FUN_0205236C thumb_func_start FUN_0205236C FUN_0205236C: ; 0x0205236C push {r4, lr} add r4, r0, #0x0 bl FUN_02030F40 cmp r0, #0x0 bne _0205237E add r0, r4, #0x0 bl FUN_020524A0 _0205237E: pop {r4, pc} thumb_func_start FUN_02052380 FUN_02052380: ; 0x02052380 push {r4, lr} add r4, r0, #0x0 bl FUN_02031AF4 cmp r0, #0x1 bne _0205239C bl FUN_0202DBE0 ldr r1, _020523D4 ; =FUN_02052410 add r0, r4, #0x0 mov r2, #0x3 bl FUN_02052300 pop {r4, pc} _0205239C: bl FUN_020311E8 cmp r0, #0x0 beq _020523B4 mov r2, #0x0 str r2, [r4, #0x20] mov r0, #0x3 str r0, [r4, #0x1c] ldr r1, _020523D8 ; =FUN_0205225C add r0, r4, #0x0 bl FUN_02052300 _020523B4: bl FUN_02031AF4 cmp r0, #0x0 beq _020523D2 ldr r1, _020523DC ; =FUN_020523E0 add r0, r4, #0x0 mov r2, #0x2 bl FUN_02052300 mov r1, #0x0 str r1, [r4, #0x24] mov r0, #0x2 str r0, [r4, #0x1c] str r1, [r4, #0x20] str r1, [r4, #0x44] _020523D2: pop {r4, pc} .balign 4 _020523D4: .word FUN_02052410 _020523D8: .word FUN_0205225C _020523DC: .word FUN_020523E0 thumb_func_start FUN_020523E0 FUN_020523E0: ; 0x020523E0 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_0204646C cmp r0, #0x0 bne _02052408 bl FUN_02031B50 add r0, r4, #0x0 bl FUN_02052E1C mov r0, #0x0 bl FUN_02052B74 ldr r1, _0205240C ; =FUN_02052214 add r0, r4, #0x0 mov r2, #0x2 bl FUN_02052300 _02052408: pop {r4, pc} nop _0205240C: .word FUN_02052214 thumb_func_start FUN_02052410 FUN_02052410: ; 0x02052410 push {r4, lr} add r4, r0, #0x0 bl FUN_02031AF4 cmp r0, #0x1 bne _02052444 bl FUN_02031190 bl FUN_0202DFA4 cmp r0, #0x0 beq _0205246C mov r1, #0x0 str r1, [r4, #0x20] mov r0, #0x1 str r0, [r4, #0x1c] str r1, [r4, #0x44] add r1, r0, #0x0 bl FUN_020334E8 ldr r1, _02052470 ; =FUN_02052478 add r0, r4, #0x0 mov r2, #0x3 bl FUN_02052300 pop {r4, pc} _02052444: bl FUN_02031AF4 cmp r0, #0x0 bne _0205246C bl FUN_02031B50 add r0, r4, #0x0 bl FUN_02052E1C ldr r1, _02052474 ; =FUN_02052214 add r0, r4, #0x0 mov r2, #0x2 bl FUN_02052300 mov r1, #0x0 str r1, [r4, #0x24] mov r0, #0x2 str r0, [r4, #0x1c] str r1, [r4, #0x20] str r1, [r4, #0x44] _0205246C: pop {r4, pc} nop _02052470: .word FUN_02052478 _02052474: .word FUN_02052214 thumb_func_start FUN_02052478 FUN_02052478: ; 0x02052478 push {r4, lr} add r4, r0, #0x0 bl FUN_02031AF4 cmp r0, #0x0 bne _02052498 bl FUN_02031B50 add r0, r4, #0x0 bl FUN_02052E1C ldr r1, _0205249C ; =FUN_02052214 add r0, r4, #0x0 mov r2, #0x2 bl FUN_02052300 _02052498: pop {r4, pc} nop _0205249C: .word FUN_02052214 thumb_func_start FUN_020524A0 FUN_020524A0: ; 0x020524A0 push {r4, lr} add r4, r0, #0x0 beq _020524B8 ldr r0, [r4, #0xc] bl FUN_0200CAB4 add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x1f bl FUN_020168D0 _020524B8: pop {r4, pc} .balign 4 thumb_func_start FUN_020524BC FUN_020524BC: ; 0x020524BC ldr r0, [r0, #0x0] bx lr thumb_func_start FUN_020524C0 FUN_020524C0: ; 0x020524C0 lsl r1, r1, #0x2 add r1, r0, r1 mov r0, #0x11 lsl r0, r0, #0x4 ldr r0, [r1, r0] bx lr thumb_func_start FUN_020524CC FUN_020524CC: ; 0x020524CC push {r4-r6, lr} add r5, r1, #0x0 add r4, r0, #0x0 sub r0, r5, #0x1 bl FUN_0202EF84 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02052E10 cmp r6, #0x0 bne _020524E8 mov r0, #0x5 pop {r4-r6, pc} _020524E8: sub r0, r5, #0x1 lsl r0, r0, #0x2 add r1, r4, r0 mov r0, #0x11 lsl r0, r0, #0x4 ldr r1, [r1, r0] ldr r0, _02052540 ; =0x021C5A70 add r1, #0x50 add r1, #0x30 str r1, [r0, #0x4] ldrb r0, [r1, #0x1c] cmp r0, #0xb bhi _0205253A add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0205250E: ; jump table (using 16-bit offset) .short _02052526 - _0205250E - 2; case 0 .short _0205252A - _0205250E - 2; case 1 .short _0205252E - _0205250E - 2; case 2 .short _02052532 - _0205250E - 2; case 3 .short _02052536 - _0205250E - 2; case 4 .short _02052536 - _0205250E - 2; case 5 .short _02052536 - _0205250E - 2; case 6 .short _02052536 - _0205250E - 2; case 7 .short _02052536 - _0205250E - 2; case 8 .short _0205253A - _0205250E - 2; case 9 .short _0205253A - _0205250E - 2; case 10 .short _02052536 - _0205250E - 2; case 11 _02052526: mov r0, #0x1 pop {r4-r6, pc} _0205252A: mov r0, #0x2 pop {r4-r6, pc} _0205252E: mov r0, #0x3 pop {r4-r6, pc} _02052532: mov r0, #0x4 pop {r4-r6, pc} _02052536: mov r0, #0x5 pop {r4-r6, pc} _0205253A: mov r0, #0x5 pop {r4-r6, pc} nop _02052540: .word 0x021C5A70 thumb_func_start FUN_02052544 FUN_02052544: ; 0x02052544 push {r4-r6, lr} add r6, r1, #0x0 add r4, r0, #0x0 sub r0, r6, #0x1 add r5, r2, #0x0 bl FUN_0202EF84 sub r0, r6, #0x1 lsl r1, r0, #0x2 add r2, r4, r1 mov r1, #0x11 lsl r1, r1, #0x4 ldr r2, [r2, r1] ldr r1, _02052600 ; =0x021C5A70 add r2, #0x50 add r2, #0x30 str r2, [r1, #0x4] ldrb r1, [r2, #0x1c] cmp r1, #0xb bhi _020525F8 add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02052578: ; jump table (using 16-bit offset) .short _020525C6 - _02052578 - 2; case 0 .short _020525DC - _02052578 - 2; case 1 .short _020525AC - _02052578 - 2; case 2 .short _02052590 - _02052578 - 2; case 3 .short _020525F4 - _02052578 - 2; case 4 .short _020525F4 - _02052578 - 2; case 5 .short _020525F4 - _02052578 - 2; case 6 .short _020525F4 - _02052578 - 2; case 7 .short _020525F4 - _02052578 - 2; case 8 .short _020525F8 - _02052578 - 2; case 9 .short _020525F8 - _02052578 - 2; case 10 .short _020525F4 - _02052578 - 2; case 11 _02052590: cmp r5, #0x4 beq _02052598 mov r0, #0x5 pop {r4-r6, pc} _02052598: mov r1, #0x6 str r1, [r4, #0x30] str r0, [r4, #0x18] mov r0, #0x2 str r0, [r4, #0x20] mov r0, #0x0 str r0, [r4, #0x24] str r0, [r4, #0x1c] mov r0, #0x1 pop {r4-r6, pc} _020525AC: cmp r5, #0x3 beq _020525B4 mov r0, #0x5 pop {r4-r6, pc} _020525B4: mov r1, #0x5 str r1, [r4, #0x30] str r0, [r4, #0x18] mov r0, #0x1 str r0, [r4, #0x20] mov r1, #0x0 str r1, [r4, #0x24] str r1, [r4, #0x1c] pop {r4-r6, pc} _020525C6: cmp r5, #0x1 beq _020525CE mov r0, #0x5 pop {r4-r6, pc} _020525CE: str r0, [r4, #0x18] mov r0, #0x1 str r0, [r4, #0x20] mov r1, #0x0 str r1, [r4, #0x24] str r1, [r4, #0x1c] pop {r4-r6, pc} _020525DC: cmp r5, #0x2 beq _020525E4 mov r0, #0x5 pop {r4-r6, pc} _020525E4: str r0, [r4, #0x18] mov r0, #0x2 str r0, [r4, #0x20] mov r0, #0x0 str r0, [r4, #0x24] str r0, [r4, #0x1c] mov r0, #0x1 pop {r4-r6, pc} _020525F4: mov r0, #0x5 pop {r4-r6, pc} _020525F8: bl ErrorHandling mov r0, #0x0 pop {r4-r6, pc} .balign 4 _02052600: .word 0x021C5A70 thumb_func_start FUN_02052604 FUN_02052604: ; 0x02052604 ldr r0, [r0, #0x1c] bx lr thumb_func_start FUN_02052608 FUN_02052608: ; 0x02052608 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x44] cmp r0, #0x0 beq _02052616 mov r0, #0x7 pop {r4, pc} _02052616: bl FUN_02030F20 cmp r0, #0x2 bge _02052622 mov r0, #0x7 pop {r4, pc} _02052622: bl FUN_02031190 cmp r0, #0x0 bne _02052636 bl FUN_02031B2C cmp r0, #0x1 bne _02052642 ldr r0, [r4, #0x40] pop {r4, pc} _02052636: bl FUN_02031AF4 cmp r0, #0x1 bne _02052642 ldr r0, [r4, #0x40] pop {r4, pc} _02052642: mov r0, #0x7 pop {r4, pc} .balign 4 thumb_func_start FUN_02052648 FUN_02052648: ; 0x02052648 push {r4, lr} add r4, r0, #0x0 bl FUN_02031B2C cmp r0, #0x1 bne _02052658 ldr r0, [r4, #0x30] pop {r4, pc} _02052658: mov r0, #0x7 pop {r4, pc} thumb_func_start FUN_0205265C FUN_0205265C: ; 0x0205265C push {r3-r5, lr} add r5, r0, #0x0 add r4, r2, #0x0 add r0, sp, #0x0 strb r4, [r0, #0x2] cmp r1, #0x0 beq _02052670 cmp r1, #0x1 beq _02052688 pop {r3-r5, pc} _02052670: ldr r1, [r5, #0x44] cmp r1, #0x0 bne _020526B0 ldrb r0, [r0, #0x2] add r1, sp, #0x0 add r1, #0x2 str r0, [r5, #0x34] mov r0, #0x63 mov r2, #0x1 bl FUN_02030ADC pop {r3-r5, pc} _02052688: cmp r4, #0x0 bne _020526A0 ldr r1, [r5, #0x30] mov r2, #0x1 strb r1, [r0, #0x1] add r1, sp, #0x0 mov r0, #0x67 add r1, #0x1 bl FUN_02030BC4 str r4, [r5, #0x3c] pop {r3-r5, pc} _020526A0: mov r1, #0x7 strb r1, [r0, #0x0] mov r0, #0x67 add r1, sp, #0x0 mov r2, #0x1 bl FUN_02030BC4 str r4, [r5, #0x3c] _020526B0: pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020526B4 FUN_020526B4: ; 0x020526B4 bx lr .balign 4 thumb_func_start FUN_020526B8 FUN_020526B8: ; 0x020526B8 bx lr .balign 4 thumb_func_start FUN_020526BC FUN_020526BC: ; 0x020526BC push {r4, lr} add r4, r3, #0x0 ldr r0, [r4, #0x78] ldr r1, _020526D4 ; =FUN_020521AC mov r2, #0x2 bl FUN_02052300 ldr r0, [r4, #0x78] bl FUN_02052E1C pop {r4, pc} nop _020526D4: .word FUN_020521AC thumb_func_start FUN_020526D8 FUN_020526D8: ; 0x020526D8 ldr r1, [r3, #0x78] ldr r0, [r1, #0x44] cmp r0, #0x0 bne _020526EA ldrb r0, [r2, #0x0] str r0, [r1, #0x30] ldrb r1, [r2, #0x0] ldr r0, _020526EC ; =0x021C5A70 str r1, [r0, #0x8] _020526EA: bx lr .balign 4 _020526EC: .word 0x021C5A70 thumb_func_start FUN_020526F0 FUN_020526F0: ; 0x020526F0 push {r3, lr} ldr r0, [r3, #0x78] mov r1, #0x1 str r1, [r0, #0x2c] ldrb r1, [r2, #0x0] ldr r0, [r3, #0x78] str r1, [r0, #0x40] ldrb r0, [r2, #0x0] cmp r0, #0x4 bne _02052708 bl FUN_02032888 _02052708: pop {r3, pc} .balign 4 thumb_func_start FUN_0205270C FUN_0205270C: ; 0x0205270C ldr r0, [r3, #0x78] mov r1, #0x1 str r1, [r0, #0x44] bx lr thumb_func_start FUN_02052714 FUN_02052714: ; 0x02052714 ldr r0, [r0, #0x44] bx lr thumb_func_start FUN_02052718 FUN_02052718: ; 0x02052718 push {r4, lr} ldr r0, [r0, #0x30] add r4, r1, #0x0 cmp r0, #0x0 bne _02052730 mov r1, #0x0 mov r0, #0x68 add r2, r1, #0x0 bl FUN_02030ADC add r0, r4, #0x0 pop {r4, pc} _02052730: mov r0, #0x0 pop {r4, pc} thumb_func_start FUN_02052734 FUN_02052734: ; 0x02052734 push {r3-r7, lr} add r5, r0, #0x0 add r6, r2, #0x0 add r4, r3, #0x0 bl FUN_02031190 mov r1, #0x1 eor r0, r1 bl FUN_0202DFA4 add r7, r0, #0x0 ldr r0, _02052784 ; =0x0000066A mov r1, #0x1 strh r1, [r6, r0] bl FUN_02031190 cmp r5, r0 beq _02052780 add r0, r7, #0x0 bl FUN_0202398C add r5, r0, #0x0 add r0, r7, #0x0 bl FUN_020239CC add r1, r0, #0x0 lsl r1, r1, #0x18 add r0, r5, #0x0 lsr r1, r1, #0x18 mov r2, #0x1f bl FUN_0202942C add r4, #0x98 add r1, r0, #0x0 ldr r0, [r4, #0x0] mov r2, #0x4 bl FUN_02028AD4 _02052780: pop {r3-r7, pc} nop _02052784: .word 0x0000066A thumb_func_start FUN_02052788 FUN_02052788: ; 0x02052788 ldr r1, [r1, #0x78] lsl r0, r0, #0x2 add r1, r1, r0 mov r0, #0x62 lsl r0, r0, #0x2 ldr r0, [r1, r0] bx lr .balign 4 thumb_func_start FUN_02052798 FUN_02052798: ; 0x02052798 ldr r1, [r3, #0x78] ldrb r2, [r2, #0x0] add r1, r1, r0 ldr r0, _020527A4 ; =0x00000176 strb r2, [r1, r0] bx lr .balign 4 _020527A4: .word 0x00000176 thumb_func_start FUN_020527A8 FUN_020527A8: ; 0x020527A8 push {r4, lr} add r4, r0, #0x0 bl FUN_02031190 ldr r2, _020527D4 ; =0x00000176 add r1, r4, r0 ldrb r1, [r1, r2] cmp r1, #0x2 bne _020527BE mov r0, #0x1 pop {r4, pc} _020527BE: mov r1, #0x1 eor r0, r1 add r0, r4, r0 ldrb r0, [r0, r2] cmp r0, #0x2 bne _020527CE mov r0, #0x2 pop {r4, pc} _020527CE: mov r0, #0x0 pop {r4, pc} nop _020527D4: .word 0x00000176 thumb_func_start FUN_020527D8 FUN_020527D8: ; 0x020527D8 push {r3, lr} add r1, sp, #0x0 strb r0, [r1, #0x0] mov r0, #0x65 add r1, sp, #0x0 mov r2, #0x1 bl FUN_02030ADC pop {r3, pc} .balign 4 thumb_func_start FUN_020527EC FUN_020527EC: ; 0x020527EC ldr r3, _02052810 ; =0x020F58D4 mov r2, #0x0 _020527F0: ldrh r1, [r3, #0x0] cmp r1, r0 bgt _02052800 add r1, r1, #0x4 cmp r1, r0 ble _02052800 add r0, r2, #0x0 bx lr _02052800: add r2, r2, #0x1 add r3, r3, #0x2 cmp r2, #0xa blt _020527F0 mov r0, #0x0 mvn r0, r0 bx lr nop _02052810: .word 0x020F58D4 thumb_func_start FUN_02052814 FUN_02052814: ; 0x02052814 push {r4-r6, lr} add r4, r1, #0x0 add r6, r0, #0x0 cmp r4, #0x9 ble _02052834 add r0, r4, #0x0 bl FUN_020527EC add r5, r0, #0x0 mov r0, #0x0 mvn r0, r0 cmp r4, r0 bne _02052836 bl ErrorHandling b _02052836 _02052834: add r5, r4, #0x0 _02052836: add r0, r5, #0x0 bl FUN_0202EF84 lsl r1, r5, #0x2 add r2, r6, r1 mov r1, #0x11 lsl r1, r1, #0x4 ldr r5, [r2, r1] add r5, #0x50 add r5, #0x30 cmp r0, #0x0 bne _02052852 mov r0, #0x28 pop {r4-r6, pc} _02052852: cmp r4, #0x9 ble _0205286C sub r4, #0xa lsr r2, r4, #0x1f lsl r1, r4, #0x1e sub r1, r1, r2 mov r0, #0x1e ror r1, r0 add r0, r2, r1 add r0, r5, r0 ldrb r0, [r0, #0x18] asr r4, r0, #0x7 b _02052872 _0205286C: bl FUN_020239CC add r4, r0, #0x0 _02052872: ldrb r0, [r5, #0x1c] cmp r0, #0xb bhi _0205294C add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02052884: ; jump table (using 16-bit offset) .short _0205294C - _02052884 - 2; case 0 .short _020528F8 - _02052884 - 2; case 1 .short _02052914 - _02052884 - 2; case 2 .short _02052930 - _02052884 - 2; case 3 .short _0205289C - _02052884 - 2; case 4 .short _020528A4 - _02052884 - 2; case 5 .short _020528C0 - _02052884 - 2; case 6 .short _020528DC - _02052884 - 2; case 7 .short _020528F8 - _02052884 - 2; case 8 .short _02052914 - _02052884 - 2; case 9 .short _02052930 - _02052884 - 2; case 10 .short _0205289C - _02052884 - 2; case 11 _0205289C: ldr r0, _02052950 ; =0x020F5894 lsl r1, r4, #0x2 ldr r0, [r0, r1] pop {r4-r6, pc} _020528A4: bl FUN_0201B9EC lsr r2, r0, #0x1f lsl r1, r0, #0x1f sub r1, r1, r2 mov r0, #0x1f ror r1, r0 add r0, r2, r1 lsl r2, r0, #0x3 ldr r0, _02052954 ; =0x020F58C4 lsl r1, r4, #0x2 add r0, r0, r2 ldr r0, [r1, r0] pop {r4-r6, pc} _020528C0: bl FUN_0201B9EC lsr r2, r0, #0x1f lsl r1, r0, #0x1e sub r1, r1, r2 mov r0, #0x1e ror r1, r0 add r0, r2, r1 lsl r2, r0, #0x3 ldr r0, _02052958 ; =0x020F5984 lsl r1, r4, #0x2 add r0, r0, r2 ldr r0, [r1, r0] pop {r4-r6, pc} _020528DC: bl FUN_0201B9EC lsr r2, r0, #0x1f lsl r1, r0, #0x1f sub r1, r1, r2 mov r0, #0x1f ror r1, r0 add r0, r2, r1 lsl r2, r0, #0x3 ldr r0, _0205295C ; =0x020F58B4 lsl r1, r4, #0x2 add r0, r0, r2 ldr r0, [r1, r0] pop {r4-r6, pc} _020528F8: bl FUN_0201B9EC lsr r2, r0, #0x1f lsl r1, r0, #0x1e sub r1, r1, r2 mov r0, #0x1e ror r1, r0 add r0, r2, r1 lsl r2, r0, #0x3 ldr r0, _02052960 ; =0x020F5964 lsl r1, r4, #0x2 add r0, r0, r2 ldr r0, [r1, r0] pop {r4-r6, pc} _02052914: bl FUN_0201B9EC lsr r2, r0, #0x1f lsl r1, r0, #0x1e sub r1, r1, r2 mov r0, #0x1e ror r1, r0 add r0, r2, r1 lsl r2, r0, #0x3 ldr r0, _02052964 ; =0x020F59A4 lsl r1, r4, #0x2 add r0, r0, r2 ldr r0, [r1, r0] pop {r4-r6, pc} _02052930: bl FUN_0201B9EC lsr r2, r0, #0x1f lsl r1, r0, #0x1e sub r1, r1, r2 mov r0, #0x1e ror r1, r0 add r0, r2, r1 lsl r2, r0, #0x3 ldr r0, _02052968 ; =0x020F59C4 lsl r1, r4, #0x2 add r0, r0, r2 ldr r0, [r1, r0] pop {r4-r6, pc} _0205294C: mov r0, #0x28 pop {r4-r6, pc} .balign 4 _02052950: .word 0x020F5894 _02052954: .word 0x020F58C4 _02052958: .word 0x020F5984 _0205295C: .word 0x020F58B4 _02052960: .word 0x020F5964 _02052964: .word 0x020F59A4 _02052968: .word 0x020F59C4 thumb_func_start FUN_0205296C FUN_0205296C: ; 0x0205296C push {r3-r7, lr} str r0, [sp, #0x0] bl FUN_02031190 bl FUN_0202E020 lsl r0, r0, #0x18 lsr r7, r0, #0x18 bl FUN_02031190 mov r1, #0x1 eor r0, r1 bl FUN_0202E020 lsl r0, r0, #0x18 lsr r4, r0, #0x18 bl FUN_02031190 bl FUN_0202E044 lsl r0, r0, #0x18 lsr r6, r0, #0x18 bl FUN_02031190 mov r1, #0x1 eor r0, r1 bl FUN_0202E044 lsl r0, r0, #0x18 lsr r5, r0, #0x18 cmp r4, #0x0 bne _020529B0 mov r0, #0xf pop {r3-r7, pc} _020529B0: beq _020529CC ldr r0, [sp, #0x0] mov r1, #0x3 add r2, r4, #0x0 bl FUN_0200B4A0 cmp r5, #0x0 beq _020529CC ldr r0, [sp, #0x0] mov r1, #0x4 add r2, r4, #0x0 add r3, r5, #0x0 bl FUN_0200B4D8 _020529CC: cmp r7, r4 beq _020529E4 cmp r5, #0x0 bne _020529D8 mov r0, #0xd pop {r3-r7, pc} _020529D8: cmp r6, r5 bne _020529E0 mov r0, #0xd pop {r3-r7, pc} _020529E0: mov r0, #0xc pop {r3-r7, pc} _020529E4: cmp r6, r5 beq _020529EC mov r0, #0xe pop {r3-r7, pc} _020529EC: mov r0, #0xf pop {r3-r7, pc} thumb_func_start FUN_020529F0 FUN_020529F0: ; 0x020529F0 push {r3, lr} cmp r0, #0x0 beq _02052A02 lsl r2, r0, #0x3 ldr r0, _02052A0C ; =0x020F5A14 lsl r1, r1, #0x2 add r0, r0, r2 ldr r0, [r1, r0] pop {r3, pc} _02052A02: add r0, r2, #0x0 bl FUN_0205296C pop {r3, pc} nop _02052A0C: .word 0x020F5A14 thumb_func_start FUN_02052A10 FUN_02052A10: ; 0x02052A10 push {r4-r6, lr} add r4, r2, #0x0 add r5, r0, #0x0 add r6, r3, #0x0 cmp r4, #0x0 bne _02052A24 sub r1, r1, #0x1 bl FUN_02052814 pop {r4-r6, pc} _02052A24: sub r0, r1, #0x1 bl FUN_0202EF84 bl FUN_020239CC add r1, r0, #0x0 cmp r4, #0x18 bhi _02052AFA add r0, r4, r4 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02052A40: ; jump table (using 16-bit offset) .short _02052AFA - _02052A40 - 2; case 0 .short _02052A72 - _02052A40 - 2; case 1 .short _02052A7E - _02052A40 - 2; case 2 .short _02052AAA - _02052A40 - 2; case 3 .short _02052AAA - _02052A40 - 2; case 4 .short _02052AAA - _02052A40 - 2; case 5 .short _02052AAA - _02052A40 - 2; case 6 .short _02052AAA - _02052A40 - 2; case 7 .short _02052AAA - _02052A40 - 2; case 8 .short _02052A86 - _02052A40 - 2; case 9 .short _02052AB8 - _02052A40 - 2; case 10 .short _02052AB8 - _02052A40 - 2; case 11 .short _02052AB8 - _02052A40 - 2; case 12 .short _02052AC6 - _02052A40 - 2; case 13 .short _02052AC6 - _02052A40 - 2; case 14 .short _02052AC6 - _02052A40 - 2; case 15 .short _02052AD4 - _02052A40 - 2; case 16 .short _02052AD4 - _02052A40 - 2; case 17 .short _02052AD4 - _02052A40 - 2; case 18 .short _02052A9C - _02052A40 - 2; case 19 .short _02052A9C - _02052A40 - 2; case 20 .short _02052A9C - _02052A40 - 2; case 21 .short _02052AE2 - _02052A40 - 2; case 22 .short _02052AEA - _02052A40 - 2; case 23 .short _02052AF2 - _02052A40 - 2; case 24 _02052A72: ldr r0, [r5, #0x34] add r2, r6, #0x0 sub r0, r0, #0x1 bl FUN_020529F0 pop {r4-r6, pc} _02052A7E: ldr r0, _02052B04 ; =0x020F58AC lsl r1, r1, #0x2 ldr r0, [r0, r1] pop {r4-r6, pc} _02052A86: ldr r0, [r5, #0x34] cmp r0, #0x0 bne _02052A90 mov r0, #0x0 pop {r4-r6, pc} _02052A90: lsl r2, r0, #0x3 ldr r0, _02052B08 ; =0x020F59DC lsl r1, r1, #0x2 add r0, r0, r2 ldr r0, [r1, r0] pop {r4-r6, pc} _02052A9C: sub r4, #0x13 ldr r0, _02052B0C ; =0x020F58E8 lsl r2, r4, #0x3 lsl r1, r1, #0x2 add r0, r0, r2 ldr r0, [r1, r0] pop {r4-r6, pc} _02052AAA: sub r0, r4, #0x3 lsl r2, r0, #0x3 ldr r0, _02052B10 ; =0x020F5A44 lsl r1, r1, #0x2 add r0, r0, r2 ldr r0, [r1, r0] pop {r4-r6, pc} _02052AB8: sub r4, #0xa ldr r0, _02052B14 ; =0x020F5900 lsl r2, r4, #0x3 lsl r1, r1, #0x2 add r0, r0, r2 ldr r0, [r1, r0] pop {r4-r6, pc} _02052AC6: sub r4, #0xd ldr r0, _02052B18 ; =0x020F5918 lsl r2, r4, #0x3 lsl r1, r1, #0x2 add r0, r0, r2 ldr r0, [r1, r0] pop {r4-r6, pc} _02052AD4: sub r4, #0x10 ldr r0, _02052B1C ; =0x020F5930 lsl r2, r4, #0x3 lsl r1, r1, #0x2 add r0, r0, r2 ldr r0, [r1, r0] pop {r4-r6, pc} _02052AE2: ldr r0, _02052B20 ; =0x020F588C lsl r1, r1, #0x2 ldr r0, [r0, r1] pop {r4-r6, pc} _02052AEA: ldr r0, _02052B24 ; =0x020F58A4 lsl r1, r1, #0x2 ldr r0, [r0, r1] pop {r4-r6, pc} _02052AF2: ldr r0, _02052B28 ; =0x020F589C lsl r1, r1, #0x2 ldr r0, [r0, r1] pop {r4-r6, pc} _02052AFA: bl ErrorHandling mov r0, #0x28 pop {r4-r6, pc} nop _02052B04: .word 0x020F58AC _02052B08: .word 0x020F59DC _02052B0C: .word 0x020F58E8 _02052B10: .word 0x020F5A44 _02052B14: .word 0x020F5900 _02052B18: .word 0x020F5918 _02052B1C: .word 0x020F5930 _02052B20: .word 0x020F588C _02052B24: .word 0x020F58A4 _02052B28: .word 0x020F589C thumb_func_start FUN_02052B2C FUN_02052B2C: ; 0x02052B2C push {r3-r7, lr} add r5, r0, #0x0 mov r6, #0x1 _02052B32: add r0, r6, #0x0 sub r4, r6, #0x1 bl FUN_0202DFA4 add r7, r0, #0x0 beq _02052B60 bl FUN_020239BC lsl r1, r4, #0x2 str r0, [r5, r1] add r0, r7, #0x0 bl FUN_02023A28 str r0, [sp, #0x0] add r0, r7, #0x0 bl FUN_020239CC lsl r1, r0, #0x7 ldr r0, [sp, #0x0] orr r1, r0 add r0, r5, r4 strb r1, [r0, #0x18] b _02052B6A _02052B60: lsl r1, r4, #0x2 mov r0, #0x0 str r0, [r5, r1] add r1, r5, r4 strb r0, [r1, #0x18] _02052B6A: add r6, r6, #0x1 cmp r6, #0x5 blt _02052B32 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02052B74 FUN_02052B74: ; 0x02052B74 push {r4, lr} sub sp, #0x20 add r4, r0, #0x0 add r0, sp, #0x0 mov r1, #0x0 mov r2, #0x20 blx MI_CpuFill8 cmp r4, #0xb bhi _02052BFA add r0, r4, r4 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02052B94: ; jump table (using 16-bit offset) .short _02052BFA - _02052B94 - 2; case 0 .short _02052BCA - _02052B94 - 2; case 1 .short _02052BDE - _02052B94 - 2; case 2 .short _02052BF2 - _02052B94 - 2; case 3 .short _02052BFA - _02052B94 - 2; case 4 .short _02052BB6 - _02052B94 - 2; case 5 .short _02052BB6 - _02052B94 - 2; case 6 .short _02052BB6 - _02052B94 - 2; case 7 .short _02052BC0 - _02052B94 - 2; case 8 .short _02052BD4 - _02052B94 - 2; case 9 .short _02052BE8 - _02052B94 - 2; case 10 .short _02052BAC - _02052B94 - 2; case 11 _02052BAC: add r0, sp, #0x0 mov r1, #0x2 bl FUN_02052B2C b _02052BFA _02052BB6: add r0, sp, #0x0 mov r1, #0x2 bl FUN_02052B2C b _02052BFA _02052BC0: add r0, sp, #0x0 mov r1, #0x5 bl FUN_02052B2C b _02052BFA _02052BCA: add r0, sp, #0x0 mov r1, #0x4 bl FUN_02052B2C b _02052BFA _02052BD4: add r0, sp, #0x0 mov r1, #0x5 bl FUN_02052B2C b _02052BFA _02052BDE: add r0, sp, #0x0 mov r1, #0x4 bl FUN_02052B2C b _02052BFA _02052BE8: add r0, sp, #0x0 mov r1, #0x4 bl FUN_02052B2C b _02052BFA _02052BF2: add r0, sp, #0x0 mov r1, #0x4 bl FUN_02052B2C _02052BFA: add r0, sp, #0x0 strb r4, [r0, #0x1c] add r0, sp, #0x0 bl FUN_0202F094 bl FUN_0202F0B8 add sp, #0x20 pop {r4, pc} thumb_func_start FUN_02052C0C FUN_02052C0C: ; 0x02052C0C push {r4-r6, lr} add r5, r0, #0x0 mov r3, #0x0 mov r0, #0x11 add r6, r1, #0x0 add r2, r3, #0x0 add r4, r5, #0x0 lsl r0, r0, #0x4 _02052C1C: ldr r1, [r4, r0] cmp r1, #0x0 beq _02052C24 add r3, r3, #0x1 _02052C24: add r2, r2, #0x1 add r4, r4, #0x4 cmp r2, #0xa blt _02052C1C cmp r3, #0x0 beq _02052C34 mov r0, #0xa4 pop {r4-r6, pc} _02052C34: mov r0, #0x5e lsl r0, r0, #0x2 add r0, r5, r0 bl FUN_0201385C cmp r0, #0x0 bne _02052C46 mov r0, #0xa5 pop {r4-r6, pc} _02052C46: mov r0, #0x5e lsl r0, r0, #0x2 add r0, r5, r0 bl FUN_02013920 cmp r0, #0x4 beq _02052C78 ldr r0, [r5, #0x8] bl FUN_02023A28 add r4, r0, #0x0 ldr r0, [r5, #0x8] bl FUN_020239CC add r1, r4, #0x0 mov r2, #0x2 bl FUN_020536D0 add r2, r0, #0x0 add r0, r6, #0x0 mov r1, #0x0 bl FUN_0200B064 mov r0, #0xa6 pop {r4-r6, pc} _02052C78: mov r0, #0x5e lsl r0, r0, #0x2 add r0, r5, r0 bl FUN_02013924 add r4, r0, #0x0 cmp r4, #0x14 blt _02052C8A mov r4, #0x0 _02052C8A: mov r0, #0x5e lsl r0, r0, #0x2 add r0, r5, r0 mov r1, #0x0 bl FUN_02013918 add r2, r0, #0x0 ldr r0, _02052CB0 ; =0x0000FFFF cmp r2, r0 beq _02052CA6 add r0, r6, #0x0 mov r1, #0x0 bl FUN_0200B518 _02052CA6: ldr r0, _02052CB4 ; =0x020F5A74 lsl r1, r4, #0x2 ldr r0, [r0, r1] pop {r4-r6, pc} nop _02052CB0: .word 0x0000FFFF _02052CB4: .word 0x020F5A74 thumb_func_start FUN_02052CB8 FUN_02052CB8: ; 0x02052CB8 push {r3-r4} mov r3, #0x0 strb r3, [r0, #0x1c] add r4, r0, #0x0 add r2, r3, #0x0 _02052CC2: stmia r4!, {r2} add r1, r0, r3 strb r2, [r1, #0x18] strb r2, [r1, #0x10] add r3, r3, #0x1 strb r2, [r1, #0x14] cmp r3, #0x4 blt _02052CC2 pop {r3-r4} bx lr .balign 4 thumb_func_start FUN_02052CD8 FUN_02052CD8: ; 0x02052CD8 push {r4, lr} add r4, r0, #0x0 mov r0, #0x5e lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_02013960 mov r0, #0x6 mov r1, #0x1 lsl r0, r0, #0x6 str r1, [r4, r0] pop {r4, pc} thumb_func_start FUN_02052CF0 FUN_02052CF0: ; 0x02052CF0 mov r1, #0x6 lsl r1, r1, #0x6 ldr r2, [r0, r1] cmp r2, #0x0 bne _02052CFE mov r0, #0x0 bx lr _02052CFE: mov r2, #0x0 str r2, [r0, r1] sub r1, #0x8 add r0, r0, r1 bx lr thumb_func_start FUN_02052D08 FUN_02052D08: ; 0x02052D08 push {r4-r7, lr} sub sp, #0xc add r6, r2, #0x0 mov r2, #0x9 add r5, r0, #0x0 add r4, r1, #0x0 str r3, [sp, #0x8] mov r0, #0x1 mov r1, #0x1a lsl r2, r2, #0x6 mov r3, #0x4 bl FUN_0200A86C add r7, r0, #0x0 cmp r4, #0x0 bne _02052D30 sub r0, r6, #0x1 bl FUN_0202EF84 b _02052D3C _02052D30: bl FUN_02031190 mov r1, #0x1 eor r0, r1 bl FUN_0202DFA4 _02052D3C: add r4, r0, #0x0 cmp r4, #0x0 beq _02052DE0 add r0, r5, #0x0 mov r1, #0x0 add r2, r4, #0x0 bl FUN_0200ABC0 ldr r2, [sp, #0x8] add r0, r5, #0x0 mov r1, #0x1 bl FUN_0200ABC0 add r0, r4, #0x0 bl FUN_02023A70 add r4, r0, #0x0 cmp r4, #0x1 blt _02052D80 cmp r4, #0x7 bgt _02052D80 sub r0, r4, #0x1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 cmp r0, #0x7 bhs _02052D80 lsl r1, r0, #0x2 ldr r0, _02052DE4 ; =0x020F5948 ldr r1, [r0, r1] cmp r1, #0x0 blt _02052D80 ldr r0, [sp, #0x20] bl FUN_02013C18 _02052D80: cmp r4, #0x7 bhi _02052DB8 add r0, r4, r4 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02052D90: ; jump table (using 16-bit offset) .short _02052DB8 - _02052D90 - 2; case 0 .short _02052DA0 - _02052D90 - 2; case 1 .short _02052DA4 - _02052D90 - 2; case 2 .short _02052DA8 - _02052D90 - 2; case 3 .short _02052DAC - _02052D90 - 2; case 4 .short _02052DB0 - _02052D90 - 2; case 5 .short _02052DB8 - _02052D90 - 2; case 6 .short _02052DB4 - _02052D90 - 2; case 7 _02052DA0: mov r1, #0xd1 b _02052DBA _02052DA4: mov r1, #0xd2 b _02052DBA _02052DA8: mov r1, #0xd3 b _02052DBA _02052DAC: mov r1, #0xd4 b _02052DBA _02052DB0: mov r1, #0xd5 b _02052DBA _02052DB4: mov r1, #0xd6 b _02052DBA _02052DB8: mov r1, #0xd7 _02052DBA: add r0, r7, #0x0 bl FUN_0200A914 add r6, r0, #0x0 mov r0, #0x1 str r0, [sp, #0x0] add r0, r5, #0x0 mov r1, #0x2 add r2, r6, #0x0 mov r3, #0x0 str r4, [sp, #0x4] bl FUN_0200ABB4 add r0, r6, #0x0 bl FUN_02016A18 add r0, r7, #0x0 bl FUN_0200A8B8 _02052DE0: add sp, #0xc pop {r4-r7, pc} .balign 4 _02052DE4: .word 0x020F5948 thumb_func_start FUN_02052DE8 FUN_02052DE8: ; 0x02052DE8 push {r4, lr} sub sp, #0x20 add r4, r0, #0x0 add r0, sp, #0x0 bl FUN_02052CB8 mov r1, #0x0 add r0, sp, #0x0 strb r1, [r0, #0x1c] add r0, r4, #0x0 bl FUN_0202F078 add r0, sp, #0x0 bl FUN_0202F094 bl FUN_0202F0B8 add sp, #0x20 pop {r4, pc} .balign 4 thumb_func_start FUN_02052E10 FUN_02052E10: ; 0x02052E10 mov r1, #0x0 str r1, [r0, #0x30] str r1, [r0, #0x40] str r1, [r0, #0x44] bx lr .balign 4 thumb_func_start FUN_02052E1C FUN_02052E1C: ; 0x02052E1C mov r2, #0x0 str r2, [r0, #0x20] str r2, [r0, #0x24] str r2, [r0, #0x2c] str r2, [r0, #0x30] mov r1, #0x5d str r2, [r0, #0x40] lsl r1, r1, #0x2 strh r2, [r0, r1] add r1, #0xc str r2, [r0, r1] str r2, [r0, #0x44] bx lr .balign 4 thumb_func_start FUN_02052E38 FUN_02052E38: ; 0x02052E38 push {r3-r5, lr} sub sp, #0x8 add r4, r0, #0x0 mov r0, #0x0 bl FUN_02065054 mov r1, #0x61 lsl r1, r1, #0x2 str r0, [r4, r1] mov r0, #0x0 bl FUN_02065054 mov r1, #0x62 lsl r1, r1, #0x2 str r0, [r4, r1] mov r0, #0x0 bl FUN_02065054 mov r1, #0x63 lsl r1, r1, #0x2 str r0, [r4, r1] ldr r0, [r4, #0x8] bl FUN_020239CC add r5, r0, #0x0 ldr r0, [r4, #0x8] bl FUN_02023A28 add r1, r0, #0x0 add r0, r5, #0x0 mov r2, #0x0 bl FUN_020536D0 add r3, r0, #0x0 ldr r0, [r4, #0x0] lsl r3, r3, #0x18 str r0, [sp, #0x0] mov r0, #0x61 lsl r0, r0, #0x2 ldr r0, [r4, r0] lsr r3, r3, #0x18 str r0, [sp, #0x4] mov r0, #0x0 add r1, r0, #0x0 add r2, r0, #0x0 bl FUN_02064E90 bl FUN_02031190 mov r1, #0x1 eor r0, r1 lsl r0, r0, #0x2 add r1, r4, r0 mov r0, #0x62 lsl r0, r0, #0x2 ldr r0, [r1, r0] add sp, #0x8 pop {r3-r5, pc} thumb_func_start FUN_02052EAC FUN_02052EAC: ; 0x02052EAC push {r4, lr} add r4, r0, #0x0 mov r0, #0x62 lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02016A18 mov r0, #0x63 lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02016A18 mov r0, #0x61 lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02016A18 pop {r4, pc} thumb_func_start FUN_02052ED0 FUN_02052ED0: ; 0x02052ED0 mov r1, #0x61 add r2, r0, #0x0 lsl r1, r1, #0x2 ldr r1, [r2, r1] ldr r3, _02052EE0 ; =FUN_02030A78 mov r0, #0x69 ldr r2, _02052EE4 ; =0x0000066C bx r3 .balign 4 _02052EE0: .word FUN_02030A78 _02052EE4: .word 0x0000066C thumb_func_start FUN_02052EE8 FUN_02052EE8: ; 0x02052EE8 push {r3-r5, lr} ldr r1, _02052F58 ; =0x000004E8 add r5, r0, #0x0 mov r0, #0x1f bl FUN_02016998 add r4, r0, #0x0 ldr r2, _02052F58 ; =0x000004E8 mov r0, #0x0 add r1, r4, #0x0 blx MIi_CpuClearFast mov r0, #0x4e str r5, [r4, #0x0] mov r1, #0x1 lsl r0, r0, #0x4 str r1, [r4, r0] ldr r0, _02052F5C ; =FUN_02052FC8 add r1, r4, #0x0 mov r2, #0xb bl FUN_0200CA44 str r0, [r4, #0x4] add r0, r5, #0x0 bl FUN_020524BC ldr r1, _02052F60 ; =0x000004D4 str r0, [r4, r1] ldr r0, [r4, r1] mov r1, #0x9 ldr r0, [r0, #0xc] bl FUN_02022610 ldr r1, _02052F64 ; =0x000004D8 ldr r2, _02052F68 ; =0x00002710 str r0, [r4, r1] sub r0, r1, #0x4 ldr r0, [r4, r0] mov r1, #0x59 ldr r0, [r0, #0x38] str r0, [r4, #0x8] mov r0, #0xb bl FUN_02016828 mov r0, #0x59 bl FUN_02053618 ldr r1, _02052F6C ; =0x000004DC str r0, [r4, r1] add r0, r4, #0x0 bl FUN_02052F8C ldr r0, _02052F70 ; =0x021C5ABC str r4, [r0, #0x0] add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 _02052F58: .word 0x000004E8 _02052F5C: .word FUN_02052FC8 _02052F60: .word 0x000004D4 _02052F64: .word 0x000004D8 _02052F68: .word 0x00002710 _02052F6C: .word 0x000004DC _02052F70: .word 0x021C5ABC thumb_func_start FUN_02052F74 FUN_02052F74: ; 0x02052F74 mov r3, #0x0 mov r1, #0x3 _02052F78: ldrb r2, [r0, #0xd] cmp r2, #0x0 beq _02052F80 strb r1, [r0, #0xc] _02052F80: add r3, r3, #0x1 add r0, #0x18 cmp r3, #0x33 blt _02052F78 bx lr .balign 4 thumb_func_start FUN_02052F8C FUN_02052F8C: ; 0x02052F8C mov r2, #0x0 add r1, r2, #0x0 _02052F90: strb r1, [r0, #0xc] strb r1, [r0, #0xd] strb r1, [r0, #0xe] strb r1, [r0, #0xf] add r2, r2, #0x1 add r0, #0x18 cmp r2, #0x33 blt _02052F90 bx lr .balign 4 thumb_func_start FUN_02052FA4 FUN_02052FA4: ; 0x02052FA4 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x4] bl FUN_0200CAB4 ldr r0, _02052FC4 ; =0x000004DC ldr r0, [r4, r0] bl FUN_0205362C mov r0, #0x59 bl FUN_020168D0 add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} .balign 4 _02052FC4: .word 0x000004DC thumb_func_start FUN_02052FC8 FUN_02052FC8: ; 0x02052FC8 push {r3-r5, lr} ldr r0, _02052FFC ; =0x000004D4 add r5, r1, #0x0 ldr r0, [r5, r0] ldr r4, [r5, #0x0] bl FUN_0204646C cmp r0, #0x0 bne _02052FF8 ldr r3, _02052FFC ; =0x000004D4 add r0, r5, #0x0 ldr r2, [r5, r3] add r3, r3, #0x4 ldr r2, [r2, #0x34] ldr r3, [r5, r3] add r1, r4, #0x0 bl FUN_0205312C ldr r1, _02052FFC ; =0x000004D4 add r0, r5, #0x0 ldr r1, [r5, r1] ldr r1, [r1, #0x34] bl FUN_020531E4 _02052FF8: pop {r3-r5, pc} nop _02052FFC: .word 0x000004D4 thumb_func_start FUN_02053000 FUN_02053000: ; 0x02053000 push {r4-r7, lr} sub sp, #0x14 mov r5, #0x0 str r0, [sp, #0x0] str r3, [sp, #0x4] cmp r2, #0x0 bne _02053034 ldr r0, _02053100 ; =0x020F58D4 lsl r1, r1, #0x1 ldrh r4, [r0, r1] ldr r0, [sp, #0x0] mov r6, #0x3 add r0, #0xc str r0, [sp, #0x0] _0205301C: ldr r0, [sp, #0x0] add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_02053104 add r5, r5, #0x1 add r4, r4, #0x1 cmp r5, #0x4 blt _0205301C add sp, #0x14 mov r0, #0x0 pop {r4-r7, pc} _02053034: add r0, r2, #0x0 str r0, [sp, #0xc] add r0, #0x50 str r0, [sp, #0xc] add r0, #0x30 str r0, [sp, #0xc] ldr r0, [r2, #0x50] mov r2, #0x18 add r3, r1, #0x0 mul r3, r2 ldr r2, [sp, #0x0] add r2, r2, r3 ldr r2, [r2, #0x18] cmp r0, r2 beq _02053078 ldr r0, _02053100 ; =0x020F58D4 lsl r1, r1, #0x1 ldrh r4, [r0, r1] ldr r0, [sp, #0x0] mov r6, #0x3 add r0, #0xc str r0, [sp, #0x0] _02053060: ldr r0, [sp, #0x0] add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_02053104 add r5, r5, #0x1 add r4, r4, #0x1 cmp r5, #0x4 blt _02053060 add sp, #0x14 mov r0, #0x0 pop {r4-r7, pc} _02053078: ldr r0, _02053100 ; =0x020F58D4 lsl r1, r1, #0x1 ldrh r7, [r0, r1] ldr r0, [sp, #0xc] add r6, r5, #0x0 str r0, [sp, #0x8] ldr r0, [sp, #0x0] str r0, [sp, #0x10] add r0, #0xc str r0, [sp, #0x10] _0205308C: mov r0, #0x18 add r1, r7, #0x0 mul r1, r0 ldr r0, [sp, #0x0] add r4, r0, r1 ldrb r0, [r4, #0xd] cmp r0, #0x0 beq _020530A6 cmp r0, #0x2 beq _020530CC cmp r0, #0x4 beq _020530E6 b _020530EA _020530A6: ldr r0, [sp, #0xc] add r1, r0, r6 ldrb r0, [r1, #0x18] cmp r0, #0x0 beq _020530EA mov r0, #0x2 strb r0, [r4, #0xc] ldrb r1, [r1, #0x18] mov r0, #0x7f and r0, r1 strb r0, [r4, #0x14] ldr r1, [sp, #0x8] ldr r0, [sp, #0x4] ldr r1, [r1, #0x0] bl FUN_02025614 strb r0, [r4, #0xe] mov r5, #0x1 b _020530EA _020530CC: ldr r0, [sp, #0xc] add r0, r0, r6 ldrb r0, [r0, #0x18] cmp r0, #0x0 bne _020530E2 ldr r0, [sp, #0x10] add r1, r7, #0x0 mov r2, #0x3 bl FUN_02053104 b _020530EA _020530E2: mov r5, #0x1 b _020530EA _020530E6: mov r0, #0x0 strb r0, [r4, #0xc] _020530EA: ldr r0, [sp, #0x8] add r6, r6, #0x1 add r0, r0, #0x4 add r7, r7, #0x1 str r0, [sp, #0x8] cmp r6, #0x4 blt _0205308C add r0, r5, #0x0 add sp, #0x14 pop {r4-r7, pc} nop _02053100: .word 0x020F58D4 thumb_func_start FUN_02053104 FUN_02053104: ; 0x02053104 push {r4-r6, lr} ldr r6, _02053124 ; =0x021C5ABC mov r4, #0x18 ldr r3, [r6, #0x0] ldr r5, _02053128 ; =0x000004D4 mul r4, r1 ldr r3, [r3, r5] strb r2, [r0, r4] ldr r0, [r6, #0x0] ldr r0, [r0, r5] cmp r3, r0 beq _02053120 bl ErrorHandling _02053120: pop {r4-r6, pc} nop _02053124: .word 0x021C5ABC _02053128: .word 0x000004D4 thumb_func_start FUN_0205312C FUN_0205312C: ; 0x0205312C push {r4-r7, lr} sub sp, #0x14 str r0, [sp, #0x0] add r5, r0, #0x0 str r0, [sp, #0x10] add r0, #0xc str r1, [sp, #0x4] str r3, [sp, #0x8] mov r4, #0x0 str r0, [sp, #0x10] _02053140: ldr r0, [sp, #0x4] add r1, r4, #0x0 bl FUN_020524C0 add r6, r0, #0x0 add r7, r6, #0x0 add r7, #0x50 add r0, r7, #0x0 str r0, [sp, #0xc] add r0, #0x10 str r0, [sp, #0xc] ldrb r0, [r5, #0xd] cmp r0, #0x0 beq _02053166 cmp r0, #0x2 beq _020531A2 cmp r0, #0x4 beq _020531D4 b _020531D8 _02053166: cmp r6, #0x0 beq _020531D8 ldr r0, [sp, #0xc] bl FUN_02023A28 strb r0, [r5, #0x14] ldr r0, [sp, #0xc] bl FUN_020239BC add r1, r0, #0x0 ldr r0, [sp, #0x8] bl FUN_02025614 strb r0, [r5, #0xe] ldr r0, [r7, #0x0] ldr r3, [sp, #0x8] str r0, [r5, #0x18] ldr r0, [sp, #0x0] add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_02053000 cmp r0, #0x0 beq _0205319C mov r0, #0x2 strb r0, [r5, #0xc] b _020531D8 _0205319C: mov r0, #0x1 strb r0, [r5, #0xc] b _020531D8 _020531A2: cmp r6, #0x0 beq _020531AE ldr r1, [r7, #0x0] ldr r0, [r5, #0x18] cmp r1, r0 beq _020531B8 _020531AE: ldr r0, [sp, #0x10] add r1, r4, #0x0 mov r2, #0x3 bl FUN_02053104 _020531B8: ldr r0, [sp, #0x0] ldr r3, [sp, #0x8] add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_02053000 cmp r0, #0x0 beq _020531D8 ldrb r0, [r5, #0x15] cmp r0, #0x1 bne _020531D8 mov r0, #0x3 strb r0, [r5, #0xc] b _020531D8 _020531D4: mov r0, #0x0 strb r0, [r5, #0xc] _020531D8: add r4, r4, #0x1 add r5, #0x18 cmp r4, #0xa blt _02053140 add sp, #0x14 pop {r4-r7, pc} thumb_func_start FUN_020531E4 FUN_020531E4: ; 0x020531E4 push {r3-r7, lr} sub sp, #0x10 str r0, [sp, #0x0] ldr r0, [r0, #0x8] str r1, [sp, #0x4] bl FUN_02055320 str r0, [sp, #0xc] ldr r0, [sp, #0x0] ldr r0, [r0, #0x8] bl FUN_0205532C ldr r4, [sp, #0x0] str r0, [sp, #0x8] add r6, r4, #0x0 mov r7, #0x0 add r6, #0xc _02053206: ldr r0, [sp, #0x4] add r1, r7, #0x1 bl FUN_02058060 add r5, r0, #0x0 bne _02053216 bl ErrorHandling _02053216: ldrb r0, [r4, #0xd] cmp r0, #0x4 bhi _0205330A add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02053228: ; jump table (using 16-bit offset) .short _02053232 - _02053228 - 2; case 0 .short _02053252 - _02053228 - 2; case 1 .short _020532B2 - _02053228 - 2; case 2 .short _020532DA - _02053228 - 2; case 3 .short _02053306 - _02053228 - 2; case 4 _02053232: add r0, r5, #0x0 bl FUN_0205AD98 cmp r0, #0x1 bne _0205330A ldrb r0, [r4, #0xc] sub r0, r0, #0x1 cmp r0, #0x1 bhi _0205330A ldr r2, [sp, #0xc] ldr r3, [sp, #0x8] add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_0205339C b _0205330A _02053252: add r0, r5, #0x0 bl FUN_0205AD98 cmp r0, #0x1 bne _0205330A ldrb r0, [r4, #0xc] cmp r0, #0x3 bne _02053272 mov r0, #0x0 strb r0, [r4, #0xd] strb r0, [r4, #0xc] add r0, r6, #0x0 mov r1, #0x1 bl FUN_0205333C b _0205330A _02053272: add r0, r5, #0x0 bl FUN_0205AE50 add r0, r5, #0x0 mov r1, #0x0 bl FUN_020588EC ldrb r0, [r4, #0xc] cmp r0, #0x1 bne _020532A8 ldrb r0, [r4, #0x15] cmp r0, #0x0 bne _020532A8 add r0, r5, #0x0 mov r1, #0x3 bl FUN_02058E90 add r0, r5, #0x0 mov r1, #0x1 bl FUN_02058534 add r0, r5, #0x0 mov r1, #0x1 bl FUN_0205853C mov r0, #0x1 strb r0, [r4, #0x15] _020532A8: mov r0, #0x2 strb r0, [r4, #0xd] mov r0, #0x0 strb r0, [r4, #0xc] b _0205330A _020532B2: add r0, r5, #0x0 bl FUN_0205AD98 cmp r0, #0x1 bne _0205330A add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_02053478 ldrb r0, [r4, #0xc] cmp r0, #0x3 bne _020532D2 add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_02053444 _020532D2: add r0, r6, #0x0 bl FUN_02053378 b _0205330A _020532DA: add r0, r5, #0x0 bl FUN_0205AD98 cmp r0, #0x1 bne _0205330A add r0, r5, #0x0 bl FUN_0205AE50 mov r0, #0x4 strb r0, [r4, #0xd] mov r0, #0x0 strb r0, [r4, #0xc] strb r0, [r4, #0x15] add r0, r5, #0x0 mov r1, #0x1 bl FUN_0205889C add r0, r5, #0x0 mov r1, #0x0 bl FUN_020588B8 b _0205330A _02053306: mov r0, #0x0 strb r0, [r4, #0xd] _0205330A: add r7, r7, #0x1 add r4, #0x18 add r6, #0x18 cmp r7, #0x32 bge _02053316 b _02053206 _02053316: ldr r0, [sp, #0x0] ldr r0, [r0, #0x8] bl FUN_020553A0 add r1, r0, #0x0 ldr r2, _02053338 ; =0x000004BC ldr r0, [sp, #0x0] add r0, r0, r2 bl FUN_02053478 ldr r1, _02053338 ; =0x000004BC ldr r0, [sp, #0x0] add r0, r0, r1 bl FUN_02053378 add sp, #0x10 pop {r3-r7, pc} .balign 4 _02053338: .word 0x000004BC thumb_func_start FUN_0205333C FUN_0205333C: ; 0x0205333C push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0x10] add r4, r1, #0x0 cmp r0, #0x0 beq _0205335A bl FUN_020646A0 cmp r0, #0x0 beq _02053356 ldr r0, [r5, #0x10] bl FUN_02064520 _02053356: mov r0, #0x0 str r0, [r5, #0x10] _0205335A: cmp r4, #0x0 beq _02053376 ldr r0, [r5, #0x14] cmp r0, #0x0 beq _02053376 bl FUN_020646A0 cmp r0, #0x0 beq _02053372 ldr r0, [r5, #0x14] bl FUN_02064520 _02053372: mov r0, #0x0 str r0, [r5, #0x14] _02053376: pop {r3-r5, pc} thumb_func_start FUN_02053378 FUN_02053378: ; 0x02053378 push {r4, lr} add r4, r0, #0x0 ldrb r1, [r4, #0x4] cmp r1, #0x0 beq _02053398 ldrh r1, [r4, #0x6] sub r1, r1, #0x1 strh r1, [r4, #0x6] ldrh r1, [r4, #0x6] cmp r1, #0x0 bne _02053398 mov r1, #0x0 bl FUN_0205333C mov r0, #0x0 strb r0, [r4, #0x4] _02053398: pop {r4, pc} .balign 4 thumb_func_start FUN_0205339C FUN_0205339C: ; 0x0205339C push {r3-r7, lr} sub sp, #0x10 add r4, r1, #0x0 add r5, r0, #0x0 add r0, r4, #0x0 str r2, [sp, #0x4] str r3, [sp, #0x8] bl FUN_02058AFC add r7, r0, #0x0 add r0, r4, #0x0 bl FUN_02058B04 str r0, [sp, #0xc] add r0, r4, #0x0 bl FUN_02058B0C add r6, r0, #0x0 ldr r0, [sp, #0x4] cmp r7, r0 bne _020533CC ldr r0, [sp, #0x8] cmp r6, r0 beq _0205343C _020533CC: ldr r0, _02053440 ; =0x0000064F bl FUN_020054C8 ldrb r1, [r5, #0x8] add r0, r4, #0x0 bl FUN_02057634 add r0, r5, #0x0 mov r1, #0x0 bl FUN_0205333C mov r0, #0x1 str r0, [sp, #0x0] ldr r2, [sp, #0xc] add r0, r4, #0x0 add r1, r7, #0x0 add r3, r6, #0x0 bl FUN_02058E28 add r0, r4, #0x0 mov r1, #0x1 bl FUN_020584A4 add r0, r4, #0x0 mov r1, #0x44 bl FUN_0205ADDC add r0, r4, #0x0 mov r1, #0x0 bl FUN_0205889C add r0, r4, #0x0 mov r1, #0x1 bl FUN_020588B8 mov r1, #0x1 strb r1, [r5, #0x1] ldrb r0, [r5, #0x2] cmp r0, #0x0 beq _0205343C cmp r0, #0x1 bne _0205342A add r0, r4, #0x0 bl FUN_02249668 str r0, [r5, #0x14] b _02053438 _0205342A: cmp r0, #0x2 blo _02053438 add r0, r4, #0x0 mov r1, #0x2 bl FUN_02249668 str r0, [r5, #0x14] _02053438: mov r0, #0x0 strb r0, [r5, #0x2] _0205343C: add sp, #0x10 pop {r3-r7, pc} .balign 4 _02053440: .word 0x0000064F thumb_func_start FUN_02053444 FUN_02053444: ; 0x02053444 push {r3-r5, lr} add r5, r1, #0x0 add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x43 bl FUN_0205ADDC add r0, r5, #0x0 mov r1, #0x1 bl FUN_020588EC add r0, r5, #0x0 mov r1, #0x0 bl FUN_02058E90 add r0, r4, #0x0 mov r1, #0x1 bl FUN_0205333C mov r0, #0x0 strb r0, [r4, #0x4] strh r0, [r4, #0x6] mov r0, #0x3 strb r0, [r4, #0x1] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02053478 FUN_02053478: ; 0x02053478 push {r4, lr} add r4, r0, #0x0 ldrb r0, [r4, #0x3] cmp r0, #0x1 bne _0205349C ldrb r0, [r4, #0x4] cmp r0, #0x0 bne _0205349C add r0, r1, #0x0 bl FUN_021EDA48 str r0, [r4, #0x10] mov r0, #0x1e strh r0, [r4, #0x6] mov r0, #0x0 strb r0, [r4, #0x3] mov r0, #0x1 strb r0, [r4, #0x4] _0205349C: pop {r4, pc} .balign 4 thumb_func_start FUN_020534A0 FUN_020534A0: ; 0x020534A0 push {r3-r7, lr} add r5, r1, #0x0 add r6, r2, #0x0 add r7, r0, #0x0 cmp r5, r6 bge _020534DA _020534AC: add r0, r7, #0x0 add r1, r5, #0x0 bl FUN_02058060 add r4, r0, #0x0 bne _020534BC bl ErrorHandling _020534BC: add r0, r4, #0x0 mov r1, #0x1 bl FUN_0205889C add r0, r4, #0x0 mov r1, #0x0 bl FUN_020588B8 add r0, r4, #0x0 mov r1, #0x1 bl FUN_020588EC add r5, r5, #0x1 cmp r5, r6 blt _020534AC _020534DA: pop {r3-r7, pc} thumb_func_start FUN_020534DC FUN_020534DC: ; 0x020534DC push {r3-r7, lr} add r5, r1, #0x0 mov r1, #0x0 add r7, r0, #0x0 bl FUN_02058060 add r4, r0, #0x0 bne _020534F0 bl ErrorHandling _020534F0: add r0, r4, #0x0 bl FUN_0205AD98 cmp r0, #0x1 bne _02053596 bl FUN_02031B2C cmp r0, #0x0 bne _0205350A bl FUN_02031AF4 cmp r0, #0x0 beq _0205358C _0205350A: mov r6, #0x0 add r5, #0xc _0205350E: ldrb r0, [r5, #0x1] cmp r0, #0x1 bne _02053578 add r0, r7, #0x0 add r1, r6, #0x1 bl FUN_02058060 add r4, r0, #0x0 bne _02053524 bl ErrorHandling _02053524: ldrb r1, [r5, #0x8] add r0, r4, #0x0 bl FUN_02057634 add r0, r4, #0x0 mov r1, #0x1 bl FUN_020584A4 add r0, r4, #0x0 mov r1, #0x44 bl FUN_0205ADDC add r0, r4, #0x0 mov r1, #0x0 bl FUN_0205889C add r0, r4, #0x0 mov r1, #0x1 bl FUN_020588B8 mov r0, #0x1 strb r0, [r5, #0x1] ldrb r0, [r5, #0x2] cmp r0, #0x0 beq _02053578 cmp r0, #0x1 bne _02053566 add r0, r4, #0x0 mov r1, #0x1 bl FUN_02249668 str r0, [r5, #0x14] b _02053574 _02053566: cmp r0, #0x2 blo _02053574 add r0, r4, #0x0 mov r1, #0x2 bl FUN_02249668 str r0, [r5, #0x14] _02053574: mov r0, #0x0 strb r0, [r5, #0x2] _02053578: add r6, r6, #0x1 add r5, #0x18 cmp r6, #0xa blt _0205350E add r0, r7, #0x0 mov r1, #0xb mov r2, #0x33 bl FUN_020534A0 pop {r3-r7, pc} _0205358C: add r0, r7, #0x0 mov r1, #0x1 mov r2, #0x33 bl FUN_020534A0 _02053596: pop {r3-r7, pc} thumb_func_start FUN_02053598 FUN_02053598: ; 0x02053598 push {r4, lr} add r4, r0, #0x0 mov r0, #0x8 mov r1, #0x59 bl FUN_020219F4 str r0, [r4, #0x0] mov r1, #0x0 add r0, r4, #0x0 str r1, [r4, #0x4] add r0, #0x14 str r1, [r4, #0x8] bl FUN_0201373C mov r0, #0x0 str r0, [r4, #0x10] str r0, [r4, #0xc] pop {r4, pc} thumb_func_start FUN_020535BC FUN_020535BC: ; 0x020535BC push {r4-r6, lr} add r6, r0, #0x0 mov r4, #0x0 add r5, r6, #0x0 _020535C4: add r0, r5, #0x0 bl FUN_02053598 add r4, r4, #0x1 add r5, #0x1c cmp r4, #0x1e blt _020535C4 mov r0, #0xd2 mov r1, #0x0 lsl r0, r0, #0x2 str r1, [r6, r0] add r0, r0, #0x4 str r1, [r6, r0] pop {r4-r6, pc} thumb_func_start FUN_020535E0 FUN_020535E0: ; 0x020535E0 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_02016A18 ldr r0, [r4, #0x4] cmp r0, #0x0 beq _020535F4 bl FUN_02021A20 _020535F4: ldr r0, [r4, #0x8] cmp r0, #0x0 beq _020535FE bl FUN_02021A20 _020535FE: pop {r4, pc} thumb_func_start FUN_02053600 FUN_02053600: ; 0x02053600 push {r3-r5, lr} add r5, r0, #0x0 mov r4, #0x0 _02053606: add r0, r5, #0x0 bl FUN_020535E0 add r4, r4, #0x1 add r5, #0x1c cmp r4, #0x1e blt _02053606 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02053618 FUN_02053618: ; 0x02053618 push {r4, lr} mov r1, #0x35 lsl r1, r1, #0x4 bl FUN_02016998 add r4, r0, #0x0 bl FUN_020535BC add r0, r4, #0x0 pop {r4, pc} thumb_func_start FUN_0205362C FUN_0205362C: ; 0x0205362C push {r4, lr} add r4, r0, #0x0 bl FUN_02053600 add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} thumb_func_start FUN_0205363C FUN_0205363C: ; 0x0205363C push {r3-r7, lr} add r7, r2, #0x0 lsl r0, r0, #0x1d ldr r2, _02053670 ; =0x020F5AC4 lsr r0, r0, #0x19 add r5, r2, r0 lsl r2, r1, #0x3 mov r1, #0xc ldr r0, _02053674 ; =0x020F5B44 mul r1, r2 mov r4, #0x0 add r6, r0, r1 _02053654: ldr r3, [r5, #0x0] mov r2, #0xc mul r2, r3 add r2, r6, r2 ldr r2, [r2, #0x4] add r0, r7, #0x0 add r1, r4, #0x0 bl FUN_0200B064 add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, #0x4 blt _02053654 pop {r3-r7, pc} .balign 4 _02053670: .word 0x020F5AC4 _02053674: .word 0x020F5B44 thumb_func_start FUN_02053678 FUN_02053678: ; 0x02053678 lsl r0, r0, #0x1d lsr r3, r0, #0x19 ldr r0, _02053694 ; =0x020F5AC4 lsl r2, r2, #0x2 add r0, r0, r3 ldr r0, [r2, r0] lsl r1, r1, #0x3 add r1, r1, r0 mov r0, #0xc add r2, r1, #0x0 mul r2, r0 ldr r0, _02053698 ; =0x020F5B44 ldr r0, [r0, r2] bx lr .balign 4 _02053694: .word 0x020F5AC4 _02053698: .word 0x020F5B44 thumb_func_start FUN_0205369C FUN_0205369C: ; 0x0205369C push {r3-r4} lsl r4, r0, #0x3 mov r0, #0xc ldr r2, _020536C4 ; =0x020F5B44 mul r0, r4 mov r3, #0x0 add r2, r2, r0 _020536AA: ldr r0, [r2, #0x0] cmp r1, r0 bne _020536B6 add r0, r3, r4 pop {r3-r4} bx lr _020536B6: add r3, r3, #0x1 add r2, #0xc cmp r3, #0x8 blt _020536AA mov r0, #0x0 pop {r3-r4} bx lr .balign 4 _020536C4: .word 0x020F5B44 thumb_func_start FUN_020536C8 FUN_020536C8: ; 0x020536C8 ldr r3, _020536CC ; =FUN_0205369C bx r3 .balign 4 _020536CC: .word FUN_0205369C thumb_func_start FUN_020536D0 FUN_020536D0: ; 0x020536D0 push {r4, lr} add r4, r2, #0x0 bl FUN_0205369C cmp r4, #0x0 beq _020536FE cmp r4, #0x1 beq _020536EE cmp r4, #0x2 bne _020536F8 mov r1, #0xc mul r1, r0 ldr r0, _02053700 ; =0x020F5B48 ldr r0, [r0, r1] pop {r4, pc} _020536EE: mov r1, #0xc mul r1, r0 ldr r0, _02053704 ; =0x020F5B4C ldr r0, [r0, r1] pop {r4, pc} _020536F8: bl ErrorHandling mov r0, #0x0 _020536FE: pop {r4, pc} .balign 4 _02053700: .word 0x020F5B48 _02053704: .word 0x020F5B4C thumb_func_start FUN_02053708 FUN_02053708: ; 0x02053708 push {r3-r6, lr} sub sp, #0x4 add r5, r0, #0x0 mov r0, #0x56 mov r1, #0x7 add r2, sp, #0x0 add r3, r5, #0x0 bl FUN_02006C08 mov r1, #0x9 add r4, r0, #0x0 add r0, r5, #0x0 lsl r1, r1, #0x6 bl FUN_02016998 add r5, r0, #0x0 ldr r0, [sp, #0x0] mov r2, #0x0 ldr r3, [r0, #0xc] mov r0, #0x1 add r6, r5, #0x0 lsl r0, r0, #0x8 _02053734: ldrh r1, [r3, #0x0] add r2, r2, #0x1 add r3, r3, #0x2 strh r1, [r6, #0x0] add r6, r6, #0x2 cmp r2, r0 blt _02053734 add r0, r4, #0x0 bl FUN_02016A18 add r0, r5, #0x0 add sp, #0x4 pop {r3-r6, pc} .balign 4 thumb_func_start FUN_02053750 FUN_02053750: ; 0x02053750 push {r3-r7, lr} sub sp, #0x18 add r4, r1, #0x0 add r5, r0, #0x0 ldr r0, [r4, #0x4] cmp r0, #0x0 beq _02053762 bl FUN_0201FDEC _02053762: mov r1, #0x6 lsl r1, r1, #0x6 ldr r0, [r4, r1] cmp r0, #0x5 bls _0205376E b _020538B2 _0205376E: add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0205377A: ; jump table (using 16-bit offset) .short _02053786 - _0205377A - 2; case 0 .short _020537AA - _0205377A - 2; case 1 .short _020537DA - _0205377A - 2; case 2 .short _0205385C - _0205377A - 2; case 3 .short _02053872 - _0205377A - 2; case 4 .short _020538A2 - _0205377A - 2; case 5 _02053786: ldr r0, [r4, #0x0] ldr r0, [r0, #0x38] bl FUN_020553A0 bl FUN_02058914 ldr r0, [r4, #0x0] mov r1, #0x0 ldr r0, [r0, #0x38] bl FUN_0205537C mov r0, #0x6 lsl r0, r0, #0x6 ldr r1, [r4, r0] add sp, #0x18 add r1, r1, #0x1 str r1, [r4, r0] pop {r3-r7, pc} _020537AA: sub r1, #0x24 add r0, r4, #0x0 add r1, r4, r1 mov r2, #0x0 bl FUN_02053F38 mov r1, #0x5b lsl r1, r1, #0x2 add r0, r4, #0x0 add r1, r4, r1 mov r2, #0x1 bl FUN_02053F38 mov r0, #0x5f mov r1, #0x2 lsl r0, r0, #0x2 str r1, [r4, r0] add r1, r0, #0x4 ldr r1, [r4, r1] add r0, r0, #0x4 add r1, r1, #0x1 add sp, #0x18 str r1, [r4, r0] pop {r3-r7, pc} _020537DA: mov r0, #0x0 str r0, [sp, #0xc] sub r0, r1, #0x4 ldr r0, [r4, r0] cmp r0, #0x0 ble _02053810 sub r1, #0x24 add r7, r4, r1 add r6, r4, #0x0 add r5, sp, #0x10 _020537EE: mov r1, #0x5a lsl r1, r1, #0x2 ldr r1, [r6, r1] add r0, r7, #0x0 blx r1 stmia r5!, {r0} ldr r0, [sp, #0xc] add r7, #0x10 add r0, r0, #0x1 str r0, [sp, #0xc] mov r0, #0x5f lsl r0, r0, #0x2 ldr r1, [r4, r0] ldr r0, [sp, #0xc] add r6, #0x10 cmp r0, r1 blt _020537EE _02053810: ldr r0, [sp, #0x10] cmp r0, #0x2 bne _0205382E mov r0, #0x6 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] mov r0, #0x4 str r0, [sp, #0x8] mov r0, #0x0 add r1, r0, #0x0 add r2, r0, #0x0 add r3, r0, #0x0 bl FUN_0200E1D0 _0205382E: mov r0, #0x5f lsl r0, r0, #0x2 ldr r2, [r4, r0] mov r3, #0x0 cmp r2, #0x0 ble _0205384A add r1, sp, #0x10 _0205383C: ldr r0, [r1, #0x0] cmp r0, #0x0 bne _0205384A add r3, r3, #0x1 add r1, r1, #0x4 cmp r3, r2 blt _0205383C _0205384A: cmp r3, r2 bne _020538B2 mov r0, #0x6 lsl r0, r0, #0x6 ldr r1, [r4, r0] add sp, #0x18 add r1, r1, #0x1 str r1, [r4, r0] pop {r3-r7, pc} _0205385C: bl FUN_0200E308 cmp r0, #0x0 beq _020538B2 mov r0, #0x6 lsl r0, r0, #0x6 ldr r1, [r4, r0] add sp, #0x18 add r1, r1, #0x1 str r1, [r4, r0] pop {r3-r7, pc} _02053872: sub r0, r1, #0x4 ldr r0, [r4, r0] mov r6, #0x0 cmp r0, #0x0 ble _02053894 sub r1, #0x24 mov r7, #0x5f add r5, r4, r1 lsl r7, r7, #0x2 _02053884: add r0, r5, #0x0 bl FUN_02054070 ldr r0, [r4, r7] add r6, r6, #0x1 add r5, #0x10 cmp r6, r0 blt _02053884 _02053894: mov r0, #0x6 lsl r0, r0, #0x6 ldr r1, [r4, r0] add sp, #0x18 add r1, r1, #0x1 str r1, [r4, r0] pop {r3-r7, pc} _020538A2: add r1, #0x8 ldr r0, [r4, r1] mov r2, #0x1 str r2, [r0, #0x0] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02053D3C _020538B2: add sp, #0x18 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020538B8 FUN_020538B8: ; 0x020538B8 push {r3-r5, lr} sub sp, #0x10 add r5, r0, #0x0 add r4, r1, #0x0 mov r1, #0x0 add r0, sp, #0xc strh r1, [r0, #0x0] mov r0, #0x6 lsl r0, r0, #0x6 ldr r0, [r4, r0] cmp r0, #0x5 beq _020538D6 ldr r0, [r4, #0x4] bl FUN_0201FDEC _020538D6: mov r1, #0x6 lsl r1, r1, #0x6 ldr r0, [r4, r1] cmp r0, #0x5 bls _020538E2 b _020539EA _020538E2: add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _020538EE: ; jump table (using 16-bit offset) .short _020538FA - _020538EE - 2; case 0 .short _02053912 - _020538EE - 2; case 1 .short _0205396E - _020538EE - 2; case 2 .short _020539A2 - _020538EE - 2; case 3 .short _020539C4 - _020538EE - 2; case 4 .short _020539DA - _020538EE - 2; case 5 _020538FA: ldr r0, [r4, #0x0] mov r1, #0x0 ldr r0, [r0, #0x38] bl FUN_0205537C mov r0, #0x6 lsl r0, r0, #0x6 ldr r1, [r4, r0] add sp, #0x10 add r1, r1, #0x1 str r1, [r4, r0] pop {r3-r5, pc} _02053912: mov r0, #0x4 add r1, sp, #0xc mov r2, #0x2 mov r3, #0x0 bl FUN_02017FB4 mov r0, #0x1 mov r1, #0x0 bl FUN_0201E74C mov r0, #0x2 mov r1, #0x0 bl FUN_0201E74C mov r1, #0x57 lsl r1, r1, #0x2 add r0, r4, #0x0 add r1, r4, r1 mov r2, #0x2 bl FUN_02053F38 mov r0, #0x6 str r0, [sp, #0x0] mov r1, #0x1 str r1, [sp, #0x4] mov r0, #0x4 str r0, [sp, #0x8] mov r0, #0x0 add r2, r1, #0x0 add r3, r0, #0x0 bl FUN_0200E1D0 ldr r0, _020539F0 ; =0x0000062F bl FUN_020054C8 mov r0, #0x5f mov r1, #0x1 lsl r0, r0, #0x2 str r1, [r4, r0] add r1, r0, #0x4 ldr r1, [r4, r1] add r0, r0, #0x4 add r1, r1, #0x1 add sp, #0x10 str r1, [r4, r0] pop {r3-r5, pc} _0205396E: add r0, r1, #0x0 sub r1, #0x18 sub r0, #0x24 ldr r1, [r4, r1] add r0, r4, r0 blx r1 cmp r0, #0x0 bne _020539EA bl FUN_0200E308 cmp r0, #0x0 beq _020539EA ldr r0, _020539F4 ; =0x00000631 bl FUN_020054C8 mov r0, #0x6 lsl r0, r0, #0x6 ldr r1, [r4, r0] add sp, #0x10 add r1, r1, #0x1 str r1, [r4, r0] mov r1, #0xfe mvn r1, r1 add r0, r0, #0x4 str r1, [r4, r0] pop {r3-r5, pc} _020539A2: add r0, r1, #0x4 ldr r2, [r4, r0] add r2, #0x10 str r2, [r4, r0] ldr r0, [r4, r0] cmp r0, #0x0 ble _020539EA ldr r0, [r4, r1] add r0, r0, #0x1 str r0, [r4, r1] ldr r0, [r4, #0x0] mov r1, #0x1 ldr r0, [r0, #0x38] bl FUN_0205537C add sp, #0x10 pop {r3-r5, pc} _020539C4: sub r1, #0x24 add r0, r4, r1 bl FUN_02054070 mov r0, #0x6 lsl r0, r0, #0x6 ldr r1, [r4, r0] add sp, #0x10 add r1, r1, #0x1 str r1, [r4, r0] pop {r3-r5, pc} _020539DA: add r1, #0x8 ldr r0, [r4, r1] mov r2, #0x1 str r2, [r0, #0x0] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02053D3C _020539EA: add sp, #0x10 pop {r3-r5, pc} nop _020539F0: .word 0x0000062F _020539F4: .word 0x00000631 thumb_func_start FUN_020539F8 FUN_020539F8: ; 0x020539F8 push {r4-r5, lr} sub sp, #0xc add r5, r0, #0x0 mov r0, #0x6 add r4, r1, #0x0 lsl r0, r0, #0x6 ldr r0, [r4, r0] cmp r0, #0x6 beq _02053A10 ldr r0, [r4, #0x4] bl FUN_0201FDEC _02053A10: mov r1, #0x6 lsl r1, r1, #0x6 ldr r0, [r4, r1] cmp r0, #0x6 bls _02053A1C b _02053B30 _02053A1C: add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02053A28: ; jump table (using 16-bit offset) .short _02053A36 - _02053A28 - 2; case 0 .short _02053A4E - _02053A28 - 2; case 1 .short _02053A78 - _02053A28 - 2; case 2 .short _02053AA0 - _02053A28 - 2; case 3 .short _02053AE2 - _02053A28 - 2; case 4 .short _02053B00 - _02053A28 - 2; case 5 .short _02053B16 - _02053A28 - 2; case 6 _02053A36: ldr r0, [r4, #0x0] mov r1, #0x0 ldr r0, [r0, #0x38] bl FUN_0205537C mov r0, #0x6 lsl r0, r0, #0x6 ldr r1, [r4, r0] add sp, #0xc add r1, r1, #0x1 str r1, [r4, r0] pop {r4-r5, pc} _02053A4E: sub r1, #0x24 add r0, r4, #0x0 add r1, r4, r1 mov r2, #0x3 bl FUN_02053F38 mov r0, #0x63 lsl r0, r0, #0x4 bl FUN_020054C8 mov r0, #0x5f mov r1, #0x1 lsl r0, r0, #0x2 str r1, [r4, r0] add r1, r0, #0x4 ldr r1, [r4, r1] add r0, r0, #0x4 add r1, r1, #0x1 add sp, #0xc str r1, [r4, r0] pop {r4-r5, pc} _02053A78: add r0, r1, #0x4 ldr r2, [r4, r0] sub r2, #0x20 str r2, [r4, r0] ldr r1, [r4, r0] mov r0, #0xfe mvn r0, r0 cmp r1, r0 bge _02053B30 mov r0, #0x1 mov r1, #0x0 bl FUN_0201E74C mov r0, #0x6 lsl r0, r0, #0x6 ldr r1, [r4, r0] add sp, #0xc add r1, r1, #0x1 str r1, [r4, r0] pop {r4-r5, pc} _02053AA0: add r0, r1, #0x0 sub r1, #0x18 sub r0, #0x24 ldr r1, [r4, r1] add r0, r4, r0 blx r1 add r5, r0, #0x0 cmp r5, #0x2 bne _02053AD0 mov r1, #0x61 mov r0, #0x0 lsl r1, r1, #0x2 str r0, [r4, r1] mov r1, #0x6 str r1, [sp, #0x0] mov r1, #0x1 str r1, [sp, #0x4] mov r1, #0x4 str r1, [sp, #0x8] ldr r3, _02053B34 ; =0x00007FFF add r1, r0, #0x0 add r2, r0, #0x0 bl FUN_0200E1D0 _02053AD0: cmp r5, #0x0 bne _02053B30 mov r0, #0x6 lsl r0, r0, #0x6 ldr r1, [r4, r0] add sp, #0xc add r1, r1, #0x1 str r1, [r4, r0] pop {r4-r5, pc} _02053AE2: bl FUN_0200E308 cmp r0, #0x0 beq _02053B30 mov r0, #0x61 mov r1, #0x0 lsl r0, r0, #0x2 str r1, [r4, r0] sub r1, r0, #0x4 ldr r1, [r4, r1] sub r0, r0, #0x4 add r1, r1, #0x1 add sp, #0xc str r1, [r4, r0] pop {r4-r5, pc} _02053B00: sub r1, #0x24 add r0, r4, r1 bl FUN_02054070 mov r0, #0x6 lsl r0, r0, #0x6 ldr r1, [r4, r0] add sp, #0xc add r1, r1, #0x1 str r1, [r4, r0] pop {r4-r5, pc} _02053B16: mov r0, #0x2 mov r1, #0x0 bl FUN_0201E74C mov r0, #0x62 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x1 str r1, [r0, #0x0] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02053D3C _02053B30: add sp, #0xc pop {r4-r5, pc} .balign 4 _02053B34: .word 0x00007FFF thumb_func_start FUN_02053B38 FUN_02053B38: ; 0x02053B38 push {r4-r5, lr} sub sp, #0xc add r5, r0, #0x0 mov r0, #0x6 add r4, r1, #0x0 lsl r0, r0, #0x6 ldr r0, [r4, r0] cmp r0, #0x6 beq _02053B50 ldr r0, [r4, #0x4] bl FUN_0201FDEC _02053B50: mov r1, #0x6 lsl r1, r1, #0x6 ldr r0, [r4, r1] cmp r0, #0x6 bls _02053B5C b _02053C8C _02053B5C: add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02053B68: ; jump table (using 16-bit offset) .short _02053B76 - _02053B68 - 2; case 0 .short _02053BB2 - _02053B68 - 2; case 1 .short _02053BD6 - _02053B68 - 2; case 2 .short _02053BF2 - _02053B68 - 2; case 3 .short _02053C22 - _02053B68 - 2; case 4 .short _02053C66 - _02053B68 - 2; case 5 .short _02053C7C - _02053B68 - 2; case 6 _02053B76: ldr r0, [r4, #0x0] mov r1, #0x0 ldr r0, [r0, #0x38] bl FUN_0205537C mov r1, #0x57 lsl r1, r1, #0x2 add r0, r4, #0x0 add r1, r4, r1 mov r2, #0x4 bl FUN_02053F38 mov r1, #0x5b lsl r1, r1, #0x2 add r0, r4, #0x0 add r1, r4, r1 mov r2, #0x5 bl FUN_02053F38 mov r0, #0x5f mov r1, #0x2 lsl r0, r0, #0x2 str r1, [r4, r0] add r1, r0, #0x4 ldr r1, [r4, r1] add r0, r0, #0x4 add r1, r1, #0x1 add sp, #0xc str r1, [r4, r0] pop {r4-r5, pc} _02053BB2: mov r0, #0x6 str r0, [sp, #0x0] mov r1, #0x1 str r1, [sp, #0x4] mov r0, #0x4 str r0, [sp, #0x8] ldr r3, _02053C90 ; =0x00007FFF mov r0, #0x0 add r2, r1, #0x0 bl FUN_0200E1D0 mov r0, #0x6 lsl r0, r0, #0x6 ldr r1, [r4, r0] add sp, #0xc add r1, r1, #0x1 str r1, [r4, r0] pop {r4-r5, pc} _02053BD6: bl FUN_0200E308 cmp r0, #0x0 beq _02053C8C ldr r0, _02053C94 ; =0x00000632 bl FUN_020054C8 mov r0, #0x6 lsl r0, r0, #0x6 ldr r1, [r4, r0] add sp, #0xc add r1, r1, #0x1 str r1, [r4, r0] pop {r4-r5, pc} _02053BF2: add r0, r1, #0x0 sub r1, #0x18 sub r0, #0x24 ldr r1, [r4, r1] add r0, r4, r0 blx r1 cmp r0, #0x0 bne _02053C8C ldr r0, [r4, #0x0] mov r1, #0x1 ldr r0, [r0, #0x38] bl FUN_0205537C mov r0, #0x61 mov r1, #0x6 lsl r0, r0, #0x2 str r1, [r4, r0] sub r1, r0, #0x4 ldr r1, [r4, r1] sub r0, r0, #0x4 add r1, r1, #0x1 add sp, #0xc str r1, [r4, r0] pop {r4-r5, pc} _02053C22: add r0, r1, #0x0 sub r1, #0x8 sub r0, #0x14 ldr r1, [r4, r1] add r0, r4, r0 blx r1 add r5, r0, #0x0 mov r0, #0x61 lsl r0, r0, #0x2 ldr r1, [r4, r0] cmp r1, #0x0 bgt _02053C50 bne _02053C54 sub r0, #0x28 add r0, r4, r0 bl FUN_02054070 mov r0, #0x61 lsl r0, r0, #0x2 ldr r1, [r4, r0] sub r1, r1, #0x1 str r1, [r4, r0] b _02053C54 _02053C50: sub r1, r1, #0x1 str r1, [r4, r0] _02053C54: cmp r5, #0x0 bne _02053C8C mov r0, #0x6 lsl r0, r0, #0x6 ldr r1, [r4, r0] add sp, #0xc add r1, r1, #0x1 str r1, [r4, r0] pop {r4-r5, pc} _02053C66: sub r1, #0x14 add r0, r4, r1 bl FUN_02054070 mov r0, #0x6 lsl r0, r0, #0x6 ldr r1, [r4, r0] add sp, #0xc add r1, r1, #0x1 str r1, [r4, r0] pop {r4-r5, pc} _02053C7C: add r1, #0x8 ldr r0, [r4, r1] mov r2, #0x1 str r2, [r0, #0x0] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02053D3C _02053C8C: add sp, #0xc pop {r4-r5, pc} .balign 4 _02053C90: .word 0x00007FFF _02053C94: .word 0x00000632 thumb_func_start FUN_02053C98 FUN_02053C98: ; 0x02053C98 push {r3-r5, lr} add r3, r1, #0x0 add r4, r0, #0x0 add r5, r2, #0x0 cmp r3, #0x3 bhi _02053CEE add r1, r3, r3 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02053CB0: ; jump table (using 16-bit offset) .short _02053CB8 - _02053CB0 - 2; case 0 .short _02053CC6 - _02053CB0 - 2; case 1 .short _02053CD4 - _02053CB0 - 2; case 2 .short _02053CE2 - _02053CB0 - 2; case 3 _02053CB8: ldr r2, _02053CF8 ; =0x020F5C04 ldr r0, _02053CFC ; =FUN_02053750 ldrb r2, [r2, r3] add r1, r4, #0x0 bl FUN_02053D0C b _02053CEE _02053CC6: ldr r2, _02053CF8 ; =0x020F5C04 ldr r0, _02053D00 ; =FUN_020538B8 ldrb r2, [r2, r3] add r1, r4, #0x0 bl FUN_02053D0C b _02053CEE _02053CD4: ldr r2, _02053CF8 ; =0x020F5C04 ldr r0, _02053D04 ; =FUN_020539F8 ldrb r2, [r2, r3] add r1, r4, #0x0 bl FUN_02053D0C b _02053CEE _02053CE2: ldr r2, _02053CF8 ; =0x020F5C04 ldr r0, _02053D08 ; =FUN_02053B38 ldrb r2, [r2, r3] add r1, r4, #0x0 bl FUN_02053D0C _02053CEE: mov r1, #0x62 lsl r1, r1, #0x2 str r5, [r0, r1] str r4, [r0, #0x0] pop {r3-r5, pc} .balign 4 _02053CF8: .word 0x020F5C04 _02053CFC: .word FUN_02053750 _02053D00: .word FUN_020538B8 _02053D04: .word FUN_020539F8 _02053D08: .word FUN_02053B38 thumb_func_start FUN_02053D0C FUN_02053D0C: ; 0x02053D0C push {r4-r6, lr} add r5, r1, #0x0 mov r1, #0x63 add r6, r2, #0x0 lsl r1, r1, #0x2 mov r2, #0x5 mov r3, #0x4 bl FUN_020061E8 bl FUN_0201B6C8 add r4, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_020238F4 bl FUN_020239CC add r1, r0, #0x0 add r0, r4, #0x4 add r2, r6, #0x0 bl FUN_02053D50 add r0, r4, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02053D3C FUN_02053D3C: ; 0x02053D3C push {r4, lr} add r4, r0, #0x0 add r0, r1, #0x4 bl FUN_02053D68 add r0, r4, #0x0 bl FUN_0200621C pop {r4, pc} .balign 4 thumb_func_start FUN_02053D50 FUN_02053D50: ; 0x02053D50 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 bl FUN_02053D70 add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_02053D94 pop {r4-r6, pc} thumb_func_start FUN_02053D68 FUN_02053D68: ; 0x02053D68 ldr r3, _02053D6C ; =FUN_02053EF0 bx r3 .balign 4 _02053D6C: .word FUN_02053EF0 thumb_func_start FUN_02053D70 FUN_02053D70: ; 0x02053D70 push {r4, lr} add r4, r0, #0x0 add r1, r4, #0x0 mov r0, #0x2 add r1, #0x30 mov r2, #0x4 bl FUN_02008C9C str r0, [r4, #0x0] mov r0, #0x10 mov r1, #0x1 bl FUN_0201E6E4 mov r0, #0x10 mov r1, #0x1 bl FUN_0201E74C pop {r4, pc} thumb_func_start FUN_02053D94 FUN_02053D94: ; 0x02053D94 push {r3-r7, lr} sub sp, #0x18 add r5, r0, #0x0 str r1, [sp, #0x10] add r7, r2, #0x0 mov r6, #0x0 add r4, r5, #0x0 _02053DA2: mov r0, #0x2 add r1, r6, #0x0 mov r2, #0x4 bl FUN_02008DEC str r0, [r4, #0x8] add r6, r6, #0x1 add r4, r4, #0x4 cmp r6, #0x4 blt _02053DA2 ldr r0, [sp, #0x10] add r1, r5, #0x0 lsl r0, r0, #0x2 str r0, [sp, #0x14] ldr r3, _02053E78 ; =0x02105EC8 ldr r2, [sp, #0x14] ldr r0, [r5, #0x8] ldr r2, [r3, r2] add r1, #0x18 bl FUN_02053E8C str r0, [r5, #0x20] ldr r1, [r5, #0x18] mov r6, #0x0 ldr r0, [r1, #0x8] cmp r0, #0x0 ble _02053DF0 add r4, r6, #0x0 _02053DDA: ldr r0, [r1, #0x0] add r1, r7, #0x0 ldr r0, [r0, r4] bl FUN_02009630 ldr r1, [r5, #0x18] add r6, r6, #0x1 ldr r0, [r1, #0x8] add r4, r4, #0x4 cmp r6, r0 blt _02053DDA _02053DF0: ldr r3, _02053E7C ; =0x02105ED0 ldr r2, [sp, #0x14] add r1, r5, #0x0 ldr r0, [r5, #0xc] ldr r2, [r3, r2] add r1, #0x1c bl FUN_02053E8C str r0, [r5, #0x24] ldr r1, [r5, #0x1c] mov r6, #0x0 ldr r0, [r1, #0x8] cmp r0, #0x0 ble _02053E24 add r4, r6, #0x0 _02053E0E: ldr r0, [r1, #0x0] add r1, r7, #0x0 ldr r0, [r0, r4] bl FUN_02009630 ldr r1, [r5, #0x1c] add r6, r6, #0x1 ldr r0, [r1, #0x8] add r4, r4, #0x4 cmp r6, r0 blt _02053E0E _02053E24: ldr r0, [r5, #0x10] ldr r2, _02053E80 ; =0x02105F48 mov r1, #0x0 bl FUN_02053E8C str r0, [r5, #0x28] ldr r0, [r5, #0x14] ldr r2, _02053E84 ; =0x02105F64 mov r1, #0x0 bl FUN_02053E8C str r0, [r5, #0x2c] ldr r0, [r5, #0x18] bl FUN_02009B44 ldr r0, [r5, #0x1c] bl FUN_02009DAC ldr r1, _02053E88 ; =0x02105F80 mov r0, #0x4 bl FUN_020161A4 ldr r1, [r5, #0x10] add r4, r0, #0x0 str r1, [sp, #0x0] ldr r1, [r5, #0x14] str r1, [sp, #0x4] mov r1, #0x0 str r1, [sp, #0x8] str r1, [sp, #0xc] ldr r2, [r5, #0x8] ldr r3, [r5, #0xc] mov r1, #0x4 bl FUN_02008BE0 str r0, [r5, #0x4] add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x18 pop {r3-r7, pc} nop _02053E78: .word 0x02105EC8 _02053E7C: .word 0x02105ED0 _02053E80: .word 0x02105F48 _02053E84: .word 0x02105F64 _02053E88: .word 0x02105F80 thumb_func_start FUN_02053E8C FUN_02053E8C: ; 0x02053E8C push {r3-r7, lr} add r7, r0, #0x0 add r5, r1, #0x0 add r6, r2, #0x0 bl FUN_0200965C add r1, r0, #0x0 mov r0, #0x4 bl FUN_020169D8 add r4, r0, #0x0 mov r0, #0x4 add r1, r6, #0x0 bl FUN_020161A4 add r6, r0, #0x0 add r1, r4, #0x0 mov r2, #0x4 bl FUN_02009668 add r0, r6, #0x0 bl FUN_02016A18 cmp r5, #0x0 beq _02053ED0 add r0, r4, #0x0 bl FUN_020096CC mov r1, #0x4 bl FUN_02009424 str r0, [r5, #0x0] add r2, r0, #0x0 b _02053ED2 _02053ED0: mov r2, #0x0 _02053ED2: add r0, r7, #0x0 add r1, r4, #0x0 mov r3, #0x4 bl FUN_020093A8 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_020096B4 add r0, r4, #0x0 bl FUN_02016A18 add r0, r5, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02053EF0 FUN_02053EF0: ; 0x02053EF0 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_0201FD58 mov r0, #0x0 str r0, [r5, #0x0] ldr r0, [r5, #0x4] bl FUN_02008C80 mov r0, #0x0 str r0, [r5, #0x4] ldr r0, [r5, #0x18] bl FUN_02009C30 ldr r0, [r5, #0x1c] bl FUN_02009E28 mov r6, #0x0 add r4, r5, #0x0 _02053F18: ldr r0, [r4, #0x18] bl FUN_02009448 add r6, r6, #0x1 add r4, r4, #0x4 cmp r6, #0x2 blt _02053F18 mov r4, #0x0 _02053F28: ldr r0, [r5, #0x8] bl FUN_02008E2C add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, #0x4 blt _02053F28 pop {r4-r6, pc} thumb_func_start FUN_02053F38 FUN_02053F38: ; 0x02053F38 push {r3-r5, lr} add r5, r1, #0x0 mov r4, #0x10 mov r3, #0x0 _02053F40: strb r3, [r5, #0x0] add r5, r5, #0x1 sub r4, r4, #0x1 bne _02053F40 cmp r2, #0x5 bhi _02053FB6 add r2, r2, r2 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _02053F58: ; jump table (using 16-bit offset) .short _02053F64 - _02053F58 - 2; case 0 .short _02053F72 - _02053F58 - 2; case 1 .short _02053F80 - _02053F58 - 2; case 2 .short _02053F8E - _02053F58 - 2; case 3 .short _02053F9C - _02053F58 - 2; case 4 .short _02053FAA - _02053F58 - 2; case 5 _02053F64: ldr r2, _02053FC0 ; =FUN_02054088 str r2, [r1, #0x4] ldr r2, _02053FC4 ; =FUN_020540C8 str r2, [r1, #0x8] ldr r2, _02053FC8 ; =FUN_020540E8 str r2, [r1, #0xc] b _02053FB6 _02053F72: ldr r2, _02053FCC ; =FUN_02054168 str r2, [r1, #0x4] ldr r2, _02053FD0 ; =FUN_020541A4 str r2, [r1, #0x8] ldr r2, _02053FD4 ; =FUN_020541C4 str r2, [r1, #0xc] b _02053FB6 _02053F80: ldr r2, _02053FD8 ; =FUN_020541E8 str r2, [r1, #0x4] ldr r2, _02053FDC ; =FUN_02054228 str r2, [r1, #0x8] ldr r2, _02053FE0 ; =FUN_02054248 str r2, [r1, #0xc] b _02053FB6 _02053F8E: ldr r2, _02053FE4 ; =FUN_020542A4 str r2, [r1, #0x4] ldr r2, _02053FE8 ; =FUN_020542E8 str r2, [r1, #0x8] ldr r2, _02053FEC ; =FUN_02054308 str r2, [r1, #0xc] b _02053FB6 _02053F9C: ldr r2, _02053FF0 ; =FUN_020543D8 str r2, [r1, #0x4] ldr r2, _02053FF4 ; =FUN_0205442C str r2, [r1, #0x8] ldr r2, _02053FF8 ; =FUN_0205444C str r2, [r1, #0xc] b _02053FB6 _02053FAA: ldr r2, _02053FFC ; =FUN_02054508 str r2, [r1, #0x4] ldr r2, _02054000 ; =FUN_0205454C str r2, [r1, #0x8] ldr r2, _02054004 ; =FUN_0205456C str r2, [r1, #0xc] _02053FB6: ldr r2, [r1, #0x4] add r0, r0, #0x4 blx r2 pop {r3-r5, pc} nop _02053FC0: .word FUN_02054088 _02053FC4: .word FUN_020540C8 _02053FC8: .word FUN_020540E8 _02053FCC: .word FUN_02054168 _02053FD0: .word FUN_020541A4 _02053FD4: .word FUN_020541C4 _02053FD8: .word FUN_020541E8 _02053FDC: .word FUN_02054228 _02053FE0: .word FUN_02054248 _02053FE4: .word FUN_020542A4 _02053FE8: .word FUN_020542E8 _02053FEC: .word FUN_02054308 _02053FF0: .word FUN_020543D8 _02053FF4: .word FUN_0205442C _02053FF8: .word FUN_0205444C _02053FFC: .word FUN_02054508 _02054000: .word FUN_0205454C _02054004: .word FUN_0205456C thumb_func_start FUN_02054008 FUN_02054008: ; 0x02054008 push {r3-r7, lr} sub sp, #0x30 add r5, r0, #0x0 add r7, sp, #0x0 add r6, r3, #0x0 mov r0, #0x0 add r4, r1, #0x0 add r3, r7, #0x0 add r1, r0, #0x0 stmia r3!, {r0-r1} stmia r3!, {r0-r1} stmia r3!, {r0-r1} stmia r3!, {r0-r1} stmia r3!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r5, #0x0] add r3, sp, #0x8 str r0, [sp, #0x0] ldr r0, [r5, #0x4] ldr r1, [r0, #0x0] mov r0, #0x24 mul r0, r4 add r0, r1, r0 str r0, [sp, #0x4] ldmia r2!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r2, #0x0] add r2, sp, #0x14 str r0, [r3, #0x0] ldr r3, _0205406C ; =0x020F5C08 ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldr r0, [r3, #0x0] str r0, [r2, #0x0] ldr r0, [sp, #0x48] str r6, [sp, #0x24] str r0, [sp, #0x28] mov r0, #0x4 str r0, [sp, #0x2c] add r0, r7, #0x0 bl FUN_0201FE94 add r4, r0, #0x0 bne _02054064 bl ErrorHandling _02054064: add r0, r4, #0x0 add sp, #0x30 pop {r3-r7, pc} nop _0205406C: .word 0x020F5C08 thumb_func_start FUN_02054070 FUN_02054070: ; 0x02054070 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x8] blx r1 mov r1, #0x10 mov r0, #0x0 _0205407C: strb r0, [r4, #0x0] add r4, r4, #0x1 sub r1, r1, #0x1 bne _0205407C pop {r4, pc} .balign 4 thumb_func_start FUN_02054088 FUN_02054088: ; 0x02054088 push {r3-r5, lr} add r4, r0, #0x0 add r5, r1, #0x0 mov r0, #0x4 mov r1, #0x14 bl FUN_02016998 str r0, [r5, #0x0] mov r2, #0x14 mov r1, #0x0 _0205409C: strb r1, [r0, #0x0] add r0, r0, #0x1 sub r2, r2, #0x1 bne _0205409C ldr r5, [r5, #0x0] mov r0, #0x7 lsl r0, r0, #0x10 str r0, [r5, #0x0] mov r0, #0x45 lsl r0, r0, #0xc str r0, [r5, #0x4] mov r0, #0x1 mov r1, #0x0 str r0, [sp, #0x0] add r0, r4, #0x0 add r2, r5, #0x0 add r3, r1, #0x0 bl FUN_02054008 str r0, [r5, #0xc] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020540C8 FUN_020540C8: ; 0x020540C8 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x0 beq _020540E4 ldr r0, [r0, #0xc] bl FUN_0201FFC8 ldr r1, [r4, #0x0] mov r0, #0x4 bl FUN_02016A8C mov r0, #0x0 str r0, [r4, #0x0] _020540E4: pop {r4, pc} .balign 4 thumb_func_start FUN_020540E8 FUN_020540E8: ; 0x020540E8 push {r3-r6, lr} sub sp, #0xc ldr r4, [r0, #0x0] mov r2, #0x2 ldr r0, [r4, #0x10] lsl r2, r2, #0xe cmp r0, r2 bgt _0205415E add r6, r4, #0x0 ldmia r6!, {r0-r1} add r5, sp, #0x0 add r3, r5, #0x0 stmia r5!, {r0-r1} ldr r0, [r6, #0x0] lsr r2, r2, #0x4 str r0, [r5, #0x0] ldr r0, [r4, #0x10] ldr r1, [sp, #0x4] asr r0, r0, #0x4 lsl r5, r0, #0x2 ldr r0, _02054164 ; =0x020FFA38 ldrsh r5, [r0, r5] asr r0, r5, #0x1f lsr r6, r5, #0x10 lsl r0, r0, #0x10 orr r0, r6 lsl r6, r5, #0x10 mov r5, #0x0 add r2, r6, r2 adc r0, r5 lsl r0, r0, #0x14 lsr r2, r2, #0xc orr r2, r0 sub r0, r1, r2 str r0, [sp, #0x4] ldr r0, [r4, #0xc] add r1, r3, #0x0 bl FUN_02020044 mov r1, #0x2 ldr r0, [r4, #0x10] lsl r1, r1, #0xa add r0, r0, r1 str r0, [r4, #0x10] ldr r0, [r4, #0xc] lsl r1, r1, #0x1 bl FUN_020201E4 mov r0, #0x2 ldr r1, [r4, #0x10] lsl r0, r0, #0xe cmp r1, r0 bne _02054158 add sp, #0xc mov r0, #0x2 pop {r3-r6, pc} _02054158: add sp, #0xc mov r0, #0x1 pop {r3-r6, pc} _0205415E: mov r0, #0x0 add sp, #0xc pop {r3-r6, pc} .balign 4 _02054164: .word 0x020FFA38 thumb_func_start FUN_02054168 FUN_02054168: ; 0x02054168 push {r3-r5, lr} add r4, r0, #0x0 add r5, r1, #0x0 mov r0, #0x4 mov r1, #0x14 bl FUN_02016998 str r0, [r5, #0x0] mov r2, #0x14 mov r1, #0x0 _0205417C: strb r1, [r0, #0x0] add r0, r0, #0x1 sub r2, r2, #0x1 bne _0205417C ldr r5, [r5, #0x0] mov r0, #0x7 lsl r0, r0, #0x10 str r0, [r5, #0x0] mov r0, #0x6 lsl r0, r0, #0x10 mov r1, #0x1 str r0, [r5, #0x4] add r0, r4, #0x0 add r2, r5, #0x0 add r3, r1, #0x0 str r1, [sp, #0x0] bl FUN_02054008 str r0, [r5, #0xc] pop {r3-r5, pc} thumb_func_start FUN_020541A4 FUN_020541A4: ; 0x020541A4 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x0 beq _020541C0 ldr r0, [r0, #0xc] bl FUN_0201FFC8 ldr r1, [r4, #0x0] mov r0, #0x4 bl FUN_02016A8C mov r0, #0x0 str r0, [r4, #0x0] _020541C0: pop {r4, pc} .balign 4 thumb_func_start FUN_020541C4 FUN_020541C4: ; 0x020541C4 push {r4, lr} ldr r4, [r0, #0x0] ldr r0, [r4, #0x10] cmp r0, #0x7 bge _020541E2 mov r1, #0x1 ldr r0, [r4, #0xc] lsl r1, r1, #0xc bl FUN_020201E4 ldr r0, [r4, #0x10] add r0, r0, #0x1 str r0, [r4, #0x10] mov r0, #0x1 pop {r4, pc} _020541E2: mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_020541E8 FUN_020541E8: ; 0x020541E8 push {r3-r5, lr} add r4, r0, #0x0 add r5, r1, #0x0 mov r0, #0x4 mov r1, #0x14 bl FUN_02016998 str r0, [r5, #0x0] mov r2, #0x14 mov r1, #0x0 _020541FC: strb r1, [r0, #0x0] add r0, r0, #0x1 sub r2, r2, #0x1 bne _020541FC ldr r5, [r5, #0x0] mov r0, #0x7 lsl r0, r0, #0x10 str r0, [r5, #0x0] mov r0, #0x3 lsl r0, r0, #0x12 str r0, [r5, #0x4] mov r0, #0x1 mov r1, #0x0 str r0, [sp, #0x0] add r0, r4, #0x0 add r2, r5, #0x0 add r3, r1, #0x0 bl FUN_02054008 str r0, [r5, #0xc] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02054228 FUN_02054228: ; 0x02054228 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x0 beq _02054244 ldr r0, [r0, #0xc] bl FUN_0201FFC8 ldr r1, [r4, #0x0] mov r0, #0x4 bl FUN_02016A8C mov r0, #0x0 str r0, [r4, #0x0] _02054244: pop {r4, pc} .balign 4 thumb_func_start FUN_02054248 FUN_02054248: ; 0x02054248 push {r4, lr} ldr r4, [r0, #0x0] mov r0, #0x2 ldr r1, [r4, #0x4] lsl r0, r0, #0xe add r0, r1, r0 str r0, [r4, #0x4] ldr r0, [r4, #0xc] add r1, r4, #0x0 bl FUN_02020044 mov r1, #0x1 ldr r0, [r4, #0xc] lsl r1, r1, #0xc bl FUN_020201E4 ldr r0, [r4, #0x10] ldr r1, [r4, #0x4] cmp r0, #0x0 bne _02054284 mov r0, #0x6 lsl r0, r0, #0x12 cmp r1, r0 blt _0205429A ldr r0, _020542A0 ; =0xFFFE0000 str r0, [r4, #0x4] ldr r0, [r4, #0x10] add r0, r0, #0x1 str r0, [r4, #0x10] b _0205429A _02054284: mov r0, #0x45 lsl r0, r0, #0xc cmp r1, r0 blt _0205429A str r0, [r4, #0x4] ldr r0, [r4, #0xc] add r1, r4, #0x0 bl FUN_02020044 mov r0, #0x0 pop {r4, pc} _0205429A: mov r0, #0x1 pop {r4, pc} nop _020542A0: .word 0xFFFE0000 thumb_func_start FUN_020542A4 FUN_020542A4: ; 0x020542A4 push {r3-r5, lr} add r4, r0, #0x0 add r5, r1, #0x0 mov r0, #0x4 mov r1, #0x18 bl FUN_02016998 str r0, [r5, #0x0] mov r2, #0x18 mov r1, #0x0 _020542B8: strb r1, [r0, #0x0] add r0, r0, #0x1 sub r2, r2, #0x1 bne _020542B8 ldr r5, [r5, #0x0] mov r0, #0x7 lsl r0, r0, #0x10 str r0, [r5, #0x0] mov r0, #0x45 lsl r0, r0, #0xc str r0, [r5, #0x4] mov r0, #0x1 mov r1, #0x0 str r0, [sp, #0x0] add r0, r4, #0x0 add r2, r5, #0x0 add r3, r1, #0x0 bl FUN_02054008 mov r1, #0x1 str r0, [r5, #0xc] bl FUN_02020130 pop {r3-r5, pc} thumb_func_start FUN_020542E8 FUN_020542E8: ; 0x020542E8 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x0 beq _02054304 ldr r0, [r0, #0xc] bl FUN_0201FFC8 ldr r1, [r4, #0x0] mov r0, #0x4 bl FUN_02016A8C mov r0, #0x0 str r0, [r4, #0x0] _02054304: pop {r4, pc} .balign 4 thumb_func_start FUN_02054308 FUN_02054308: ; 0x02054308 push {r3-r5, lr} ldr r4, [r0, #0x0] mov r5, #0x1 ldr r0, [r4, #0x10] cmp r0, #0x4 bhi _020543CC add r1, r0, r0 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02054320: ; jump table (using 16-bit offset) .short _0205432A - _02054320 - 2; case 0 .short _02054348 - _02054320 - 2; case 1 .short _02054376 - _02054320 - 2; case 2 .short _020543A2 - _02054320 - 2; case 3 .short _020543CA - _02054320 - 2; case 4 _0205432A: ldr r1, [r4, #0x14] ldr r0, _020543D0 ; =0x00000333 add r1, r1, r0 str r1, [r4, #0x14] ldr r0, [r4, #0xc] bl FUN_020201E4 ldr r1, [r4, #0x14] lsl r0, r5, #0xd cmp r1, r0 blt _020543CC ldr r0, [r4, #0x10] add r0, r0, #0x1 str r0, [r4, #0x10] b _020543CC _02054348: ldr r1, [r4, #0x4] ldr r0, _020543D4 ; =0xFFFE0000 cmp r1, r0 ble _02054368 lsl r0, r5, #0xf sub r0, r1, r0 str r0, [r4, #0x4] ldr r0, [r4, #0xc] add r1, r4, #0x0 bl FUN_02020044 ldr r0, [r4, #0xc] ldr r1, [r4, #0x14] bl FUN_020201E4 b _020543CC _02054368: mov r0, #0x6 lsl r0, r0, #0x12 str r0, [r4, #0x4] ldr r0, [r4, #0x10] add r0, r0, #0x1 str r0, [r4, #0x10] b _020543CC _02054376: ldr r1, [r4, #0x4] lsl r0, r5, #0xf sub r0, r1, r0 str r0, [r4, #0x4] ldr r0, [r4, #0xc] add r1, r4, #0x0 bl FUN_02020044 ldr r0, [r4, #0xc] ldr r1, [r4, #0x14] bl FUN_020201E4 mov r0, #0x4b ldr r1, [r4, #0x4] lsl r0, r0, #0xe cmp r1, r0 bge _020543CC ldr r0, [r4, #0x10] mov r5, #0x2 add r0, r0, #0x1 str r0, [r4, #0x10] b _020543CC _020543A2: mov r1, #0x3 ldr r2, [r4, #0x4] lsl r1, r1, #0x12 cmp r2, r1 ble _020543C4 lsl r0, r5, #0xf sub r0, r2, r0 str r0, [r4, #0x4] ldr r0, [r4, #0xc] add r1, r4, #0x0 bl FUN_02020044 ldr r0, [r4, #0xc] ldr r1, [r4, #0x14] bl FUN_020201E4 b _020543CC _020543C4: add r0, r0, #0x1 str r0, [r4, #0x10] b _020543CC _020543CA: mov r5, #0x0 _020543CC: add r0, r5, #0x0 pop {r3-r5, pc} .balign 4 _020543D0: .word 0x00000333 _020543D4: .word 0xFFFE0000 thumb_func_start FUN_020543D8 FUN_020543D8: ; 0x020543D8 push {r3-r5, lr} add r4, r0, #0x0 add r5, r1, #0x0 mov r0, #0x4 mov r1, #0x18 bl FUN_02016998 str r0, [r5, #0x0] mov r2, #0x18 mov r1, #0x0 _020543EC: strb r1, [r0, #0x0] add r0, r0, #0x1 sub r2, r2, #0x1 bne _020543EC ldr r5, [r5, #0x0] mov r0, #0x7 lsl r0, r0, #0x10 str r0, [r5, #0x0] mov r0, #0x45 lsl r0, r0, #0xc str r0, [r5, #0x4] mov r0, #0x1 mov r1, #0x0 str r0, [sp, #0x0] add r0, r4, #0x0 add r2, r5, #0x0 add r3, r1, #0x0 bl FUN_02054008 mov r1, #0x1 str r0, [r5, #0xc] bl FUN_02020130 mov r0, #0x2 lsl r0, r0, #0xc str r0, [r5, #0x14] ldr r0, [r5, #0xc] mov r1, #0x0 bl FUN_020200A0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0205442C FUN_0205442C: ; 0x0205442C push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x0 beq _02054448 ldr r0, [r0, #0xc] bl FUN_0201FFC8 ldr r1, [r4, #0x0] mov r0, #0x4 bl FUN_02016A8C mov r0, #0x0 str r0, [r4, #0x0] _02054448: pop {r4, pc} .balign 4 thumb_func_start FUN_0205444C FUN_0205444C: ; 0x0205444C push {r4-r7, lr} sub sp, #0xc ldr r4, [r0, #0x0] mov r5, #0x1 ldr r0, [r4, #0x10] cmp r0, #0x3 bhi _020544F8 add r1, r0, r0 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02054466: ; jump table (using 16-bit offset) .short _0205446E - _02054466 - 2; case 0 .short _0205447E - _02054466 - 2; case 1 .short _020544DA - _02054466 - 2; case 2 .short _020544F6 - _02054466 - 2; case 3 _0205446E: ldr r0, [r4, #0xc] add r1, r5, #0x0 bl FUN_020200A0 ldr r0, [r4, #0x10] add r0, r0, #0x1 str r0, [r4, #0x10] b _020544F8 _0205447E: ldr r2, [r4, #0x14] lsl r1, r5, #0xf cmp r2, r1 bgt _020544D4 add r6, r4, #0x0 ldmia r6!, {r0-r1} add r3, sp, #0x0 add r2, r3, #0x0 stmia r3!, {r0-r1} ldr r0, [r6, #0x0] mov r7, #0x0 str r0, [r3, #0x0] ldr r0, [r4, #0x14] ldr r6, [sp, #0x4] asr r0, r0, #0x4 lsl r1, r0, #0x2 ldr r0, _02054500 ; =0x020FFA38 ldrsh r0, [r0, r1] asr r3, r0, #0x1f lsr r1, r0, #0xf lsl r3, r3, #0x11 orr r3, r1 lsl r1, r0, #0x11 lsl r0, r5, #0xb add r0, r1, r0 adc r3, r7 lsl r1, r3, #0x14 lsr r0, r0, #0xc orr r0, r1 sub r0, r6, r0 str r0, [sp, #0x4] ldr r0, [r4, #0xc] add r1, r2, #0x0 bl FUN_02020044 ldr r0, [r4, #0x14] lsl r1, r5, #0xc add r0, r0, r1 str r0, [r4, #0x14] ldr r0, [r4, #0xc] bl FUN_020201E4 b _020544F8 _020544D4: add r0, r0, #0x1 str r0, [r4, #0x10] b _020544F8 _020544DA: ldr r1, [r4, #0x14] ldr r0, _02054504 ; =0x00000666 sub r1, r1, r0 str r1, [r4, #0x14] ldr r0, [r4, #0xc] bl FUN_020201E4 ldr r0, [r4, #0x14] cmp r0, #0x0 bgt _020544F8 ldr r0, [r4, #0x10] add r0, r0, #0x1 str r0, [r4, #0x10] b _020544F8 _020544F6: mov r5, #0x0 _020544F8: add r0, r5, #0x0 add sp, #0xc pop {r4-r7, pc} nop _02054500: .word 0x020FFA38 _02054504: .word 0x00000666 thumb_func_start FUN_02054508 FUN_02054508: ; 0x02054508 push {r3-r5, lr} add r4, r0, #0x0 add r5, r1, #0x0 mov r0, #0x4 mov r1, #0x14 bl FUN_02016998 str r0, [r5, #0x0] mov r2, #0x14 mov r1, #0x0 _0205451C: strb r1, [r0, #0x0] add r0, r0, #0x1 sub r2, r2, #0x1 bne _0205451C ldr r5, [r5, #0x0] mov r0, #0x7 lsl r0, r0, #0x10 str r0, [r5, #0x0] mov r0, #0x6 lsl r0, r0, #0x10 mov r1, #0x1 str r0, [r5, #0x4] add r0, r4, #0x0 add r2, r5, #0x0 add r3, r1, #0x0 str r1, [sp, #0x0] bl FUN_02054008 mov r1, #0x1 str r0, [r5, #0xc] bl FUN_02020130 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0205454C FUN_0205454C: ; 0x0205454C push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x0 beq _02054568 ldr r0, [r0, #0xc] bl FUN_0201FFC8 ldr r1, [r4, #0x0] mov r0, #0x4 bl FUN_02016A8C mov r0, #0x0 str r0, [r4, #0x0] _02054568: pop {r4, pc} .balign 4 thumb_func_start FUN_0205456C FUN_0205456C: ; 0x0205456C push {r4, lr} ldr r4, [r0, #0x0] ldr r0, [r4, #0x10] cmp r0, #0x8 bge _0205458A mov r1, #0x1 ldr r0, [r4, #0xc] lsl r1, r1, #0xc bl FUN_020201E4 ldr r0, [r4, #0x10] add r0, r0, #0x1 str r0, [r4, #0x10] mov r0, #0x1 pop {r4, pc} _0205458A: mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02054590 FUN_02054590: ; 0x02054590 push {r4, lr} add r4, r0, #0x0 cmp r1, #0x1 bne _0205459C bl FUN_0201BD5C _0205459C: mov r1, #0x1a add r0, r4, #0x0 lsl r1, r1, #0x4 mov r2, #0x4 bl FUN_02002ED0 mov r1, #0x6 add r0, r4, #0x0 lsl r1, r1, #0x6 mov r2, #0x4 bl FUN_02002EEC pop {r4, pc} .balign 4 thumb_func_start FUN_020545B8 FUN_020545B8: ; 0x020545B8 push {lr} sub sp, #0x14 cmp r2, #0x3 bne _020545E0 mov r2, #0x13 str r2, [sp, #0x0] mov r2, #0x1b str r2, [sp, #0x4] mov r2, #0x4 str r2, [sp, #0x8] mov r2, #0xc str r2, [sp, #0xc] ldr r2, _02054604 ; =0x0000032D mov r3, #0x2 str r2, [sp, #0x10] mov r2, #0x3 bl FUN_02019064 add sp, #0x14 pop {pc} _020545E0: mov r2, #0x13 str r2, [sp, #0x0] mov r2, #0x1b str r2, [sp, #0x4] mov r2, #0x4 str r2, [sp, #0x8] mov r2, #0xc str r2, [sp, #0xc] mov r2, #0x65 lsl r2, r2, #0x2 str r2, [sp, #0x10] mov r2, #0x7 mov r3, #0x2 bl FUN_02019064 add sp, #0x14 pop {pc} nop _02054604: .word 0x0000032D thumb_func_start FUN_02054608 FUN_02054608: ; 0x02054608 push {r4-r6, lr} sub sp, #0x8 add r4, r1, #0x0 add r5, r0, #0x0 bl FUN_0201AB08 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02025084 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x4 str r0, [sp, #0x4] ldr r0, [r5, #0x0] ldr r2, _02054648 ; =0x000003E2 add r1, r6, #0x0 mov r3, #0xa bl FUN_0200CD68 add r0, r5, #0x0 bl FUN_0205464C ldr r2, _02054648 ; =0x000003E2 add r0, r5, #0x0 mov r1, #0x0 mov r3, #0xa bl FUN_0200D0BC add sp, #0x8 pop {r4-r6, pc} .balign 4 _02054648: .word 0x000003E2 thumb_func_start FUN_0205464C FUN_0205464C: ; 0x0205464C ldr r3, _02054654 ; =FUN_02019620 mov r1, #0xf bx r3 nop _02054654: .word FUN_02019620 thumb_func_start FUN_02054658 FUN_02054658: ; 0x02054658 push {r3-r6, lr} sub sp, #0xc add r5, r0, #0x0 add r0, r3, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 bl FUN_02002B60 mov r0, #0x0 bl FUN_02002B7C mov r0, #0x0 bl FUN_02002BB8 add r0, r6, #0x0 bl FUN_02024FF4 mov r3, #0x0 str r3, [sp, #0x0] str r0, [sp, #0x4] add r0, r5, #0x0 mov r1, #0x1 add r2, r4, #0x0 str r3, [sp, #0x8] bl FUN_0201BD84 add sp, #0xc pop {r3-r6, pc} thumb_func_start FUN_02054690 FUN_02054690: ; 0x02054690 push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 add r0, sp, #0x10 ldrb r0, [r0, #0x10] add r6, r1, #0x0 add r7, r2, #0x0 add r4, r3, #0x0 bl FUN_02002B60 ldr r0, [sp, #0x24] bl FUN_02002B7C mov r0, #0x0 bl FUN_02002BB8 mov r3, #0x0 str r3, [sp, #0x0] str r4, [sp, #0x4] add r0, r5, #0x0 add r1, r7, #0x0 add r2, r6, #0x0 str r3, [sp, #0x8] bl FUN_0201BD84 add sp, #0xc pop {r4-r7, pc} .balign 4 thumb_func_start FUN_020546C8 FUN_020546C8: ; 0x020546C8 push {r3, lr} bl FUN_0201BD70 cmp r0, #0x0 bne _020546D6 mov r0, #0x1 b _020546D8 _020546D6: mov r0, #0x0 _020546D8: lsl r0, r0, #0x18 lsr r0, r0, #0x18 pop {r3, pc} .balign 4 thumb_func_start FUN_020546E0 FUN_020546E0: ; 0x020546E0 push {r4-r5, lr} sub sp, #0x14 cmp r2, #0x1 bhi _020546EE mov r4, #0x9 mov r5, #0x14 b _020546F2 _020546EE: mov r4, #0x2 mov r5, #0x1b _020546F2: cmp r3, #0x3 bne _0205471A mov r2, #0x13 str r2, [sp, #0x0] lsl r2, r5, #0x18 lsr r2, r2, #0x18 str r2, [sp, #0x4] mov r2, #0x4 str r2, [sp, #0x8] mov r2, #0x9 str r2, [sp, #0xc] ldr r2, _02054740 ; =0x0000032D lsl r3, r4, #0x18 str r2, [sp, #0x10] mov r2, #0x3 lsr r3, r3, #0x18 bl FUN_02019064 add sp, #0x14 pop {r4-r5, pc} _0205471A: mov r2, #0x13 str r2, [sp, #0x0] lsl r2, r5, #0x18 lsr r2, r2, #0x18 str r2, [sp, #0x4] mov r2, #0x4 str r2, [sp, #0x8] mov r2, #0x9 str r2, [sp, #0xc] mov r2, #0x65 lsl r2, r2, #0x2 lsl r3, r4, #0x18 str r2, [sp, #0x10] mov r2, #0x7 lsr r3, r3, #0x18 bl FUN_02019064 add sp, #0x14 pop {r4-r5, pc} .balign 4 _02054740: .word 0x0000032D thumb_func_start FUN_02054744 FUN_02054744: ; 0x02054744 push {r3-r6, lr} sub sp, #0xc add r4, r1, #0x0 add r5, r0, #0x0 add r6, r2, #0x0 bl FUN_0201AB08 add r1, r0, #0x0 lsl r0, r4, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] str r6, [sp, #0x4] mov r0, #0x4 str r0, [sp, #0x8] ldr r0, [r5, #0x0] ldr r2, _02054788 ; =0x00000399 mov r3, #0x9 bl FUN_0200D300 add r0, r5, #0x0 mov r1, #0xf bl FUN_02019620 lsl r0, r4, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] ldr r2, _02054788 ; =0x00000399 add r0, r5, #0x0 mov r1, #0x0 mov r3, #0x9 bl FUN_0200D6F8 add sp, #0xc pop {r3-r6, pc} .balign 4 _02054788: .word 0x00000399 thumb_func_start FUN_0205478C FUN_0205478C: ; 0x0205478C cmp r0, #0x2 bne _02054794 mov r0, #0x1 bx lr _02054794: mov r0, #0x0 bx lr thumb_func_start FUN_02054798 FUN_02054798: ; 0x02054798 cmp r0, #0x3 bne _020547A0 mov r0, #0x1 bx lr _020547A0: mov r0, #0x0 bx lr thumb_func_start FUN_020547A4 FUN_020547A4: ; 0x020547A4 cmp r0, #0x80 bne _020547AC mov r0, #0x1 bx lr _020547AC: mov r0, #0x0 bx lr thumb_func_start FUN_020547B0 FUN_020547B0: ; 0x020547B0 cmp r0, #0x69 bne _020547B8 mov r0, #0x1 bx lr _020547B8: mov r0, #0x0 bx lr thumb_func_start FUN_020547BC FUN_020547BC: ; 0x020547BC cmp r0, #0x62 bne _020547C4 mov r0, #0x1 bx lr _020547C4: mov r0, #0x0 bx lr thumb_func_start FUN_020547C8 FUN_020547C8: ; 0x020547C8 cmp r0, #0x63 bne _020547D0 mov r0, #0x1 bx lr _020547D0: mov r0, #0x0 bx lr thumb_func_start FUN_020547D4 FUN_020547D4: ; 0x020547D4 cmp r0, #0x64 bne _020547DC mov r0, #0x1 bx lr _020547DC: mov r0, #0x0 bx lr thumb_func_start FUN_020547E0 FUN_020547E0: ; 0x020547E0 cmp r0, #0x65 bne _020547E8 mov r0, #0x1 bx lr _020547E8: mov r0, #0x0 bx lr thumb_func_start FUN_020547EC FUN_020547EC: ; 0x020547EC cmp r0, #0x6c bne _020547F4 mov r0, #0x1 bx lr _020547F4: mov r0, #0x0 bx lr thumb_func_start FUN_020547F8 FUN_020547F8: ; 0x020547F8 cmp r0, #0x6d bne _02054800 mov r0, #0x1 bx lr _02054800: mov r0, #0x0 bx lr thumb_func_start FUN_02054804 FUN_02054804: ; 0x02054804 cmp r0, #0x6e bne _0205480C mov r0, #0x1 bx lr _0205480C: mov r0, #0x0 bx lr thumb_func_start FUN_02054810 FUN_02054810: ; 0x02054810 cmp r0, #0x6f bne _02054818 mov r0, #0x1 bx lr _02054818: mov r0, #0x0 bx lr thumb_func_start FUN_0205481C FUN_0205481C: ; 0x0205481C ldr r1, _0205482C ; =0x020F5C14 ldrb r1, [r1, r0] mov r0, #0x1 tst r1, r0 bne _02054828 mov r0, #0x0 _02054828: bx lr nop _0205482C: .word 0x020F5C14 thumb_func_start FUN_02054830 FUN_02054830: ; 0x02054830 cmp r0, #0x21 bne _02054838 mov r0, #0x1 bx lr _02054838: mov r0, #0x0 bx lr thumb_func_start FUN_0205483C FUN_0205483C: ; 0x0205483C cmp r0, #0x17 bne _02054844 mov r0, #0x1 bx lr _02054844: mov r0, #0x0 bx lr thumb_func_start FUN_02054848 FUN_02054848: ; 0x02054848 cmp r0, #0x3a bne _02054850 mov r0, #0x1 bx lr _02054850: mov r0, #0x0 bx lr thumb_func_start FUN_02054854 FUN_02054854: ; 0x02054854 cmp r0, #0x3b bne _0205485C mov r0, #0x1 bx lr _0205485C: mov r0, #0x0 bx lr thumb_func_start FUN_02054860 FUN_02054860: ; 0x02054860 cmp r0, #0x39 bne _02054868 mov r0, #0x1 bx lr _02054868: mov r0, #0x0 bx lr thumb_func_start FUN_0205486C FUN_0205486C: ; 0x0205486C cmp r0, #0x38 bne _02054874 mov r0, #0x1 bx lr _02054874: mov r0, #0x0 bx lr thumb_func_start FUN_02054878 FUN_02054878: ; 0x02054878 cmp r0, #0x83 bne _02054880 mov r0, #0x1 bx lr _02054880: mov r0, #0x0 bx lr thumb_func_start FUN_02054884 FUN_02054884: ; 0x02054884 cmp r0, #0x85 bne _0205488C mov r0, #0x1 bx lr _0205488C: mov r0, #0x0 bx lr thumb_func_start FUN_02054890 FUN_02054890: ; 0x02054890 cmp r0, #0x56 bne _02054898 mov r0, #0x1 bx lr _02054898: mov r0, #0x0 bx lr thumb_func_start FUN_0205489C FUN_0205489C: ; 0x0205489C cmp r0, #0x57 bne _020548A4 mov r0, #0x1 bx lr _020548A4: mov r0, #0x0 bx lr thumb_func_start FUN_020548A8 FUN_020548A8: ; 0x020548A8 cmp r0, #0x58 bne _020548B0 mov r0, #0x1 bx lr _020548B0: mov r0, #0x0 bx lr thumb_func_start FUN_020548B4 FUN_020548B4: ; 0x020548B4 cmp r0, #0x59 bne _020548BC mov r0, #0x1 bx lr _020548BC: mov r0, #0x0 bx lr thumb_func_start FUN_020548C0 FUN_020548C0: ; 0x020548C0 cmp r0, #0x6a bne _020548C8 mov r0, #0x1 bx lr _020548C8: mov r0, #0x0 bx lr thumb_func_start FUN_020548CC FUN_020548CC: ; 0x020548CC cmp r0, #0x6b bne _020548D4 mov r0, #0x1 bx lr _020548D4: mov r0, #0x0 bx lr thumb_func_start FUN_020548D8 FUN_020548D8: ; 0x020548D8 cmp r0, #0x5e bne _020548E0 mov r0, #0x1 bx lr _020548E0: mov r0, #0x0 bx lr thumb_func_start FUN_020548E4 FUN_020548E4: ; 0x020548E4 cmp r0, #0x5f bne _020548EC mov r0, #0x1 bx lr _020548EC: mov r0, #0x0 bx lr thumb_func_start FUN_020548F0 FUN_020548F0: ; 0x020548F0 cmp r0, #0x20 bne _020548F8 mov r0, #0x1 bx lr _020548F8: mov r0, #0x0 bx lr thumb_func_start FUN_020548FC FUN_020548FC: ; 0x020548FC cmp r0, #0x4b bne _02054904 mov r0, #0x1 bx lr _02054904: mov r0, #0x0 bx lr thumb_func_start FUN_02054908 FUN_02054908: ; 0x02054908 cmp r0, #0x4c bne _02054910 mov r0, #0x1 bx lr _02054910: mov r0, #0x0 bx lr thumb_func_start FUN_02054914 FUN_02054914: ; 0x02054914 cmp r0, #0xe0 bne _0205491C mov r0, #0x1 bx lr _0205491C: mov r0, #0x0 bx lr thumb_func_start FUN_02054920 FUN_02054920: ; 0x02054920 cmp r0, #0xea bne _02054928 mov r0, #0x1 bx lr _02054928: mov r0, #0x0 bx lr thumb_func_start FUN_0205492C FUN_0205492C: ; 0x0205492C cmp r0, #0xe1 bne _02054934 mov r0, #0x1 bx lr _02054934: mov r0, #0x0 bx lr thumb_func_start FUN_02054938 FUN_02054938: ; 0x02054938 cmp r0, #0xe2 bne _02054940 mov r0, #0x1 bx lr _02054940: mov r0, #0x0 bx lr thumb_func_start FUN_02054944 FUN_02054944: ; 0x02054944 cmp r0, #0xe4 bne _0205494C mov r0, #0x1 bx lr _0205494C: mov r0, #0x0 bx lr thumb_func_start FUN_02054950 FUN_02054950: ; 0x02054950 cmp r0, #0xe5 bne _02054958 mov r0, #0x1 bx lr _02054958: mov r0, #0x0 bx lr thumb_func_start FUN_0205495C FUN_0205495C: ; 0x0205495C cmp r0, #0xeb bne _02054964 mov r0, #0x1 bx lr _02054964: mov r0, #0x0 bx lr thumb_func_start FUN_02054968 FUN_02054968: ; 0x02054968 cmp r0, #0xec bne _02054970 mov r0, #0x1 bx lr _02054970: mov r0, #0x0 bx lr thumb_func_start FUN_02054974 FUN_02054974: ; 0x02054974 cmp r0, #0xa4 beq _0205497C cmp r0, #0xa5 bne _02054980 _0205497C: mov r0, #0x1 bx lr _02054980: mov r0, #0x0 bx lr thumb_func_start FUN_02054984 FUN_02054984: ; 0x02054984 cmp r0, #0xa5 bne _0205498C mov r0, #0x1 bx lr _0205498C: mov r0, #0x0 bx lr thumb_func_start FUN_02054990 FUN_02054990: ; 0x02054990 cmp r0, #0xa6 beq _02054998 cmp r0, #0xa7 bne _0205499C _02054998: mov r0, #0x1 bx lr _0205499C: mov r0, #0x0 bx lr thumb_func_start FUN_020549A0 FUN_020549A0: ; 0x020549A0 cmp r0, #0xa7 bne _020549A8 mov r0, #0x1 bx lr _020549A8: mov r0, #0x0 bx lr thumb_func_start FUN_020549AC FUN_020549AC: ; 0x020549AC add r0, #0x5f lsl r0, r0, #0x18 lsr r0, r0, #0x18 mov r3, #0x0 cmp r0, #0x7 bhi _020549C6 mov r1, #0x1 add r2, r1, #0x0 lsl r2, r0 mov r0, #0x87 tst r0, r2 beq _020549C6 add r3, r1, #0x0 _020549C6: add r0, r3, #0x0 bx lr .balign 4 thumb_func_start FUN_020549CC FUN_020549CC: ; 0x020549CC cmp r0, #0xa8 bne _020549D4 mov r0, #0x1 bx lr _020549D4: mov r0, #0x0 bx lr thumb_func_start FUN_020549D8 FUN_020549D8: ; 0x020549D8 cmp r0, #0xa1 bne _020549E0 mov r0, #0x1 bx lr _020549E0: mov r0, #0x0 bx lr thumb_func_start FUN_020549E4 FUN_020549E4: ; 0x020549E4 cmp r0, #0xa2 bne _020549EC mov r0, #0x1 bx lr _020549EC: mov r0, #0x0 bx lr thumb_func_start FUN_020549F0 FUN_020549F0: ; 0x020549F0 cmp r0, #0xa3 bne _020549F8 mov r0, #0x1 bx lr _020549F8: mov r0, #0x0 bx lr thumb_func_start FUN_020549FC FUN_020549FC: ; 0x020549FC cmp r0, #0xd9 beq _02054A04 cmp r0, #0xda bne _02054A08 _02054A04: mov r0, #0x1 bx lr _02054A08: mov r0, #0x0 bx lr thumb_func_start FUN_02054A0C FUN_02054A0C: ; 0x02054A0C cmp r0, #0xd9 bne _02054A14 mov r0, #0x1 bx lr _02054A14: mov r0, #0x0 bx lr thumb_func_start FUN_02054A18 FUN_02054A18: ; 0x02054A18 cmp r0, #0xda bne _02054A20 mov r0, #0x1 bx lr _02054A20: mov r0, #0x0 bx lr thumb_func_start FUN_02054A24 FUN_02054A24: ; 0x02054A24 cmp r0, #0xd7 bne _02054A2C mov r0, #0x1 bx lr _02054A2C: mov r0, #0x0 bx lr thumb_func_start FUN_02054A30 FUN_02054A30: ; 0x02054A30 cmp r0, #0xd8 bne _02054A38 mov r0, #0x1 bx lr _02054A38: mov r0, #0x0 bx lr thumb_func_start FUN_02054A3C FUN_02054A3C: ; 0x02054A3C cmp r0, #0x8 bne _02054A44 mov r0, #0x1 bx lr _02054A44: mov r0, #0x0 bx lr thumb_func_start FUN_02054A48 FUN_02054A48: ; 0x02054A48 cmp r0, #0x13 bne _02054A50 mov r0, #0x1 bx lr _02054A50: mov r0, #0x0 bx lr thumb_func_start FUN_02054A54 FUN_02054A54: ; 0x02054A54 cmp r0, #0xdb bne _02054A5C mov r0, #0x1 bx lr _02054A5C: mov r0, #0x0 bx lr thumb_func_start FUN_02054A60 FUN_02054A60: ; 0x02054A60 add r0, #0xce lsl r0, r0, #0x18 lsr r0, r0, #0x18 mov r3, #0x0 cmp r0, #0x17 bhi _02054A7A mov r1, #0x1 add r2, r1, #0x0 lsl r2, r0 ldr r0, _02054A80 ; =0x0080000D tst r0, r2 beq _02054A7A add r3, r1, #0x0 _02054A7A: add r0, r3, #0x0 bx lr nop _02054A80: .word 0x0080000D thumb_func_start FUN_02054A84 FUN_02054A84: ; 0x02054A84 add r0, #0xcd lsl r0, r0, #0x18 lsr r0, r0, #0x18 mov r3, #0x0 cmp r0, #0x16 bhi _02054A9E mov r1, #0x1 add r2, r1, #0x0 lsl r2, r0 ldr r0, _02054AA4 ; =0x00400019 tst r0, r2 beq _02054A9E add r3, r1, #0x0 _02054A9E: add r0, r3, #0x0 bx lr nop _02054AA4: .word 0x00400019 thumb_func_start FUN_02054AA8 FUN_02054AA8: ; 0x02054AA8 add r0, #0xcf lsl r0, r0, #0x18 lsr r0, r0, #0x18 mov r3, #0x0 cmp r0, #0x19 bhi _02054AC2 mov r1, #0x1 add r2, r1, #0x0 lsl r2, r0 ldr r0, _02054AC8 ; =0x02000051 tst r0, r2 beq _02054AC2 add r3, r1, #0x0 _02054AC2: add r0, r3, #0x0 bx lr nop _02054AC8: .word 0x02000051 thumb_func_start FUN_02054ACC FUN_02054ACC: ; 0x02054ACC add r0, #0xd0 lsl r0, r0, #0x18 lsr r0, r0, #0x18 mov r3, #0x0 cmp r0, #0x1a bhi _02054AE6 mov r1, #0x1 add r2, r1, #0x0 lsl r2, r0 ldr r0, _02054AEC ; =0x04000051 tst r0, r2 beq _02054AE6 add r3, r1, #0x0 _02054AE6: add r0, r3, #0x0 bx lr nop _02054AEC: .word 0x04000051 thumb_func_start FUN_02054AF0 FUN_02054AF0: ; 0x02054AF0 cmp r0, #0x16 bne _02054AF8 mov r0, #0x1 bx lr _02054AF8: mov r0, #0x0 bx lr thumb_func_start FUN_02054AFC FUN_02054AFC: ; 0x02054AFC ldr r1, _02054B10 ; =0x020F5C14 ldrb r1, [r1, r0] mov r0, #0x2 tst r0, r1 beq _02054B0A mov r0, #0x1 bx lr _02054B0A: mov r0, #0x0 bx lr nop _02054B10: .word 0x020F5C14 thumb_func_start FUN_02054B14 FUN_02054B14: ; 0x02054B14 cmp r0, #0x86 bne _02054B1C mov r0, #0x1 bx lr _02054B1C: mov r0, #0x0 bx lr thumb_func_start FUN_02054B20 FUN_02054B20: ; 0x02054B20 cmp r0, #0x16 beq _02054B28 cmp r0, #0x10 bne _02054B2C _02054B28: mov r0, #0x1 bx lr _02054B2C: mov r0, #0x0 bx lr thumb_func_start FUN_02054B30 FUN_02054B30: ; 0x02054B30 cmp r0, #0x40 bne _02054B38 mov r0, #0x1 bx lr _02054B38: mov r0, #0x0 bx lr thumb_func_start FUN_02054B3C FUN_02054B3C: ; 0x02054B3C cmp r0, #0x41 bne _02054B44 mov r0, #0x1 bx lr _02054B44: mov r0, #0x0 bx lr thumb_func_start FUN_02054B48 FUN_02054B48: ; 0x02054B48 cmp r0, #0x42 bne _02054B50 mov r0, #0x1 bx lr _02054B50: mov r0, #0x0 bx lr thumb_func_start FUN_02054B54 FUN_02054B54: ; 0x02054B54 cmp r0, #0x43 bne _02054B5C mov r0, #0x1 bx lr _02054B5C: mov r0, #0x0 bx lr thumb_func_start FUN_02054B60 FUN_02054B60: ; 0x02054B60 cmp r0, #0x67 bne _02054B68 mov r0, #0x1 bx lr _02054B68: mov r0, #0x0 bx lr thumb_func_start FUN_02054B6C FUN_02054B6C: ; 0x02054B6C cmp r0, #0x70 bne _02054B74 mov r0, #0x1 bx lr _02054B74: mov r0, #0x0 bx lr thumb_func_start FUN_02054B78 FUN_02054B78: ; 0x02054B78 add r0, #0x8f lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r0, #0xc bhi _02054B86 mov r0, #0x1 bx lr _02054B86: mov r0, #0x0 bx lr .balign 4 thumb_func_start FUN_02054B8C FUN_02054B8C: ; 0x02054B8C add r0, #0x8d lsl r0, r0, #0x18 lsr r0, r0, #0x18 mov r3, #0x0 cmp r0, #0x9 bhi _02054BA6 mov r1, #0x1 add r2, r1, #0x0 lsl r2, r0 ldr r0, _02054BAC ; =0x00000221 tst r0, r2 beq _02054BA6 add r3, r1, #0x0 _02054BA6: add r0, r3, #0x0 bx lr nop _02054BAC: .word 0x00000221 thumb_func_start FUN_02054BB0 FUN_02054BB0: ; 0x02054BB0 add r0, #0x8c lsl r0, r0, #0x18 lsr r0, r0, #0x18 mov r3, #0x0 cmp r0, #0x9 bhi _02054BCA mov r1, #0x1 add r2, r1, #0x0 lsl r2, r0 ldr r0, _02054BD0 ; =0x00000221 tst r0, r2 beq _02054BCA add r3, r1, #0x0 _02054BCA: add r0, r3, #0x0 bx lr nop _02054BD0: .word 0x00000221 thumb_func_start FUN_02054BD4 FUN_02054BD4: ; 0x02054BD4 cmp r0, #0x75 bne _02054BDC mov r0, #0x1 bx lr _02054BDC: mov r0, #0x0 bx lr thumb_func_start FUN_02054BE0 FUN_02054BE0: ; 0x02054BE0 add r0, #0x8a lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r0, #0x3 bhi _02054BEE mov r0, #0x1 bx lr _02054BEE: mov r0, #0x0 bx lr .balign 4 thumb_func_start FUN_02054BF4 FUN_02054BF4: ; 0x02054BF4 add r0, #0x86 lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r0, #0x3 bhi _02054C02 mov r0, #0x1 bx lr _02054C02: mov r0, #0x0 bx lr .balign 4 thumb_func_start FUN_02054C08 FUN_02054C08: ; 0x02054C08 cmp r0, #0xff bne _02054C10 mov r0, #0x1 bx lr _02054C10: mov r0, #0x0 bx lr thumb_func_start FUN_02054C14 FUN_02054C14: ; 0x02054C14 push {r4, lr} mov r1, #0xa add r4, r0, #0x0 blx _u32_div_f cmp r0, #0x0 bne _02054C26 mov r0, #0x1 pop {r4, pc} _02054C26: add r0, r4, #0x0 mov r1, #0x64 blx _u32_div_f cmp r0, #0x0 bne _02054C36 mov r0, #0x2 pop {r4, pc} _02054C36: mov r1, #0xfa add r0, r4, #0x0 lsl r1, r1, #0x2 blx _u32_div_f cmp r0, #0x0 bne _02054C48 mov r0, #0x3 pop {r4, pc} _02054C48: ldr r1, _02054C9C ; =0x00002710 add r0, r4, #0x0 blx _u32_div_f cmp r0, #0x0 bne _02054C58 mov r0, #0x4 pop {r4, pc} _02054C58: ldr r1, _02054CA0 ; =0x000186A0 add r0, r4, #0x0 blx _u32_div_f cmp r0, #0x0 bne _02054C68 mov r0, #0x5 pop {r4, pc} _02054C68: ldr r1, _02054CA4 ; =0x000F4240 add r0, r4, #0x0 blx _u32_div_f cmp r0, #0x0 bne _02054C78 mov r0, #0x6 pop {r4, pc} _02054C78: ldr r1, _02054CA8 ; =0x00989680 add r0, r4, #0x0 blx _u32_div_f cmp r0, #0x0 bne _02054C88 mov r0, #0x7 pop {r4, pc} _02054C88: ldr r1, _02054CAC ; =0x05F5E100 add r0, r4, #0x0 blx _u32_div_f cmp r0, #0x0 bne _02054C98 mov r0, #0x8 pop {r4, pc} _02054C98: mov r0, #0x1 pop {r4, pc} .balign 4 _02054C9C: .word 0x00002710 _02054CA0: .word 0x000186A0 _02054CA4: .word 0x000F4240 _02054CA8: .word 0x00989680 _02054CAC: .word 0x05F5E100 thumb_func_start FUN_02054CB0 FUN_02054CB0: ; 0x02054CB0 mov r1, #0x52 lsl r1, r1, #0x2 cmp r0, r1 blo _02054CC2 add r1, #0x63 cmp r0, r1 bhi _02054CC2 mov r0, #0x1 bx lr _02054CC2: mov r0, #0x0 bx lr .balign 4 thumb_func_start FUN_02054CC8 FUN_02054CC8: ; 0x02054CC8 cmp r0, #0xe bhi _02054CD0 mov r0, #0x6 bx lr _02054CD0: cmp r0, #0x18 bhi _02054CD8 mov r0, #0x7 bx lr _02054CD8: cmp r0, #0x27 bhi _02054CE0 mov r0, #0x8 bx lr _02054CE0: cmp r0, #0x3b bhi _02054CE8 mov r0, #0x9 bx lr _02054CE8: cmp r0, #0x59 bhi _02054CF0 mov r0, #0xa bx lr _02054CF0: cmp r0, #0x72 bhi _02054CF8 mov r0, #0xb bx lr _02054CF8: cmp r0, #0x86 bhi _02054D00 mov r0, #0xc bx lr _02054D00: cmp r0, #0x90 bhi _02054D08 mov r0, #0xd bx lr _02054D08: cmp r0, #0x95 bhi _02054D10 mov r0, #0xe bx lr _02054D10: cmp r1, #0x0 beq _02054D18 mov r0, #0x4 bx lr _02054D18: mov r0, #0x5 bx lr thumb_func_start FUN_02054D1C FUN_02054D1C: ; 0x02054D1C cmp r0, #0x27 bhi _02054D24 mov r0, #0x13 bx lr _02054D24: cmp r0, #0x3b bhi _02054D2C mov r0, #0x14 bx lr _02054D2C: cmp r0, #0x59 bhi _02054D34 mov r0, #0x15 bx lr _02054D34: cmp r0, #0x77 bhi _02054D3C mov r0, #0x16 bx lr _02054D3C: cmp r0, #0x95 bhi _02054D44 mov r0, #0x17 bx lr _02054D44: cmp r0, #0xbd bhi _02054D4C mov r0, #0x18 bx lr _02054D4C: cmp r0, #0xe5 bhi _02054D54 mov r0, #0x19 bx lr _02054D54: ldr r2, _02054DE8 ; =0x0000010D cmp r0, r2 bhi _02054D5E mov r0, #0x1a bx lr _02054D5E: add r3, r2, #0x0 add r3, #0x28 cmp r0, r3 bhi _02054D6A mov r0, #0x1b bx lr _02054D6A: add r3, r2, #0x0 add r3, #0x50 cmp r0, r3 bhi _02054D76 mov r0, #0x1c bx lr _02054D76: add r3, r2, #0x0 add r3, #0x6e cmp r0, r3 bhi _02054D82 mov r0, #0x1d bx lr _02054D82: add r3, r2, #0x0 add r3, #0x8c cmp r0, r3 bhi _02054D8E mov r0, #0x1e bx lr _02054D8E: add r3, r2, #0x0 add r3, #0xa0 cmp r0, r3 bhi _02054DA2 cmp r1, #0x0 beq _02054D9E mov r0, #0x20 bx lr _02054D9E: mov r0, #0x1f bx lr _02054DA2: add r3, r2, #0x0 add r3, #0xb4 cmp r0, r3 bhi _02054DAE mov r0, #0x21 bx lr _02054DAE: add r3, r2, #0x0 add r3, #0xbe cmp r0, r3 bhi _02054DBA mov r0, #0x22 bx lr _02054DBA: add r3, r2, #0x0 add r3, #0xc8 cmp r0, r3 bhi _02054DC6 mov r0, #0x23 bx lr _02054DC6: add r3, r2, #0x0 add r3, #0xce cmp r0, r3 bhi _02054DD2 mov r0, #0x24 bx lr _02054DD2: add r2, #0xd4 cmp r0, r2 bhi _02054DDC mov r0, #0x25 bx lr _02054DDC: cmp r1, #0x0 beq _02054DE4 mov r0, #0x27 bx lr _02054DE4: mov r0, #0x26 bx lr .balign 4 _02054DE8: .word 0x0000010D thumb_func_start FUN_02054DEC FUN_02054DEC: ; 0x02054DEC push {r3-r7, lr} add r6, r0, #0x0 bl FUN_0206BB1C bl FUN_0206B9AC lsl r0, r0, #0x10 lsr r5, r0, #0x10 ldr r4, _02054E2C ; =0x00000000 beq _02054E28 mov r7, #0x4c _02054E02: add r0, r6, #0x0 bl FUN_0206BB1C add r1, r4, #0x0 bl FUN_0206B9B0 add r1, r7, #0x0 mov r2, #0x0 bl FUN_020671BC cmp r0, #0x0 bne _02054E1E add r0, r4, #0x0 pop {r3-r7, pc} _02054E1E: add r0, r4, #0x1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, r5 blo _02054E02 _02054E28: mov r0, #0x0 pop {r3-r7, pc} .balign 4 _02054E2C: .word 0x00000000 thumb_func_start FUN_02054E30 FUN_02054E30: ; 0x02054E30 push {r3-r7, lr} sub sp, #0x10 mov r7, #0x0 bl FUN_0206BB1C str r0, [sp, #0x0] bl FUN_0206B9AC add r4, r0, #0x0 add r6, r7, #0x0 cmp r4, #0x0 ble _02054E64 add r5, sp, #0x4 _02054E4A: ldr r0, [sp, #0x0] add r1, r6, #0x0 bl FUN_0206B9B0 mov r1, #0x5 mov r2, #0x0 bl FUN_020671BC strh r0, [r5, #0x0] add r6, r6, #0x1 add r5, r5, #0x2 cmp r6, r4 blt _02054E4A _02054E64: ldr r2, _02054E9C ; =0x020F5D14 mov r6, #0x0 _02054E68: mov r1, #0x0 cmp r4, #0x0 ble _02054E84 ldrh r5, [r2, #0x0] add r3, sp, #0x4 _02054E72: ldrh r0, [r3, #0x0] cmp r0, r5 bne _02054E7C add r7, r7, #0x1 b _02054E84 _02054E7C: add r1, r1, #0x1 add r3, r3, #0x2 cmp r1, r4 blt _02054E72 _02054E84: add r6, r6, #0x1 add r2, r2, #0x2 cmp r6, #0x3 blt _02054E68 cmp r7, #0x3 bne _02054E96 add sp, #0x10 mov r0, #0x1 pop {r3-r7, pc} _02054E96: mov r0, #0x0 add sp, #0x10 pop {r3-r7, pc} .balign 4 _02054E9C: .word 0x020F5D14 thumb_func_start FUN_02054EA0 FUN_02054EA0: ; 0x02054EA0 push {r4-r5, lr} sub sp, #0xc add r4, r0, #0x0 bl FUN_02046528 add r0, r4, #0x0 bl FUN_0204652C add r4, r0, #0x0 mov r0, #0x2 lsl r0, r0, #0xe str r0, [sp, #0x0] str r0, [sp, #0x8] ldrh r0, [r4, #0xe] ldr r5, [r4, #0x4] bl FUN_0201B93C asr r1, r0, #0x1f asr r3, r5, #0x1f add r2, r5, #0x0 blx FUN_020EBC30 mov r2, #0x2 mov r3, #0x0 lsl r2, r2, #0xa add r2, r0, r2 adc r1, r3 lsl r0, r1, #0x14 lsr r1, r2, #0xc orr r1, r0 str r1, [sp, #0x0] ldrh r0, [r4, #0xe] ldr r5, [r4, #0x8] bl FUN_0201B93C asr r1, r0, #0x1f asr r3, r5, #0x1f add r2, r5, #0x0 blx FUN_020EBC30 mov r2, #0x2 mov r3, #0x0 lsl r2, r2, #0xa add r2, r0, r2 adc r1, r3 lsl r0, r1, #0x14 lsr r1, r2, #0xc orr r1, r0 str r1, [sp, #0x8] str r3, [sp, #0x4] ldr r0, [r4, #0x0] add r1, sp, #0x0 bl FUN_02058BB4 ldrh r1, [r4, #0xe] ldrh r0, [r4, #0x10] add r0, r1, r0 strh r0, [r4, #0xe] mov r0, #0x5a ldrh r1, [r4, #0xe] lsl r0, r0, #0x2 cmp r1, r0 blo _02054F28 mov r0, #0x0 strh r0, [r4, #0xe] ldrh r0, [r4, #0xc] sub r0, r0, #0x1 strh r0, [r4, #0xc] _02054F28: ldrh r0, [r4, #0xc] cmp r0, #0x0 bne _02054F4A mov r0, #0x0 str r0, [sp, #0x8] str r0, [sp, #0x4] str r0, [sp, #0x0] ldr r0, [r4, #0x0] add r1, sp, #0x0 bl FUN_02058BB4 add r0, r4, #0x0 bl FUN_02016A18 add sp, #0xc mov r0, #0x1 pop {r4-r5, pc} _02054F4A: mov r0, #0x0 add sp, #0xc pop {r4-r5, pc} thumb_func_start FUN_02054F50 FUN_02054F50: ; 0x02054F50 push {r3-r7, lr} add r5, r1, #0x0 add r6, r2, #0x0 add r7, r3, #0x0 bl FUN_02046528 str r0, [sp, #0x0] mov r0, #0xb mov r1, #0x14 bl FUN_020169D8 mov r1, #0x0 mov r2, #0x14 add r4, r0, #0x0 blx MI_CpuFill8 add r0, sp, #0x8 ldrh r0, [r0, #0x10] cmp r0, #0x0 beq _02054F8A lsl r0, r0, #0xc blx FUN_020EB534 add r1, r0, #0x0 mov r0, #0x3f lsl r0, r0, #0x18 blx FUN_020EA980 b _02054F98 _02054F8A: lsl r0, r0, #0xc blx FUN_020EB534 mov r1, #0x3f lsl r1, r1, #0x18 blx FUN_020EB7B0 _02054F98: blx FUN_020EB4C0 str r0, [r4, #0x4] add r0, sp, #0x8 ldrh r0, [r0, #0x14] cmp r0, #0x0 beq _02054FB8 lsl r0, r0, #0xc blx FUN_020EB534 add r1, r0, #0x0 mov r0, #0x3f lsl r0, r0, #0x18 blx FUN_020EA980 b _02054FC6 _02054FB8: lsl r0, r0, #0xc blx FUN_020EB534 mov r1, #0x3f lsl r1, r1, #0x18 blx FUN_020EB7B0 _02054FC6: blx FUN_020EB4C0 str r0, [r4, #0x8] strh r6, [r4, #0xc] strh r7, [r4, #0x10] ldr r0, [sp, #0x0] str r5, [r4, #0x0] ldr r0, [r0, #0x10] ldr r1, _02054FE0 ; =FUN_02054EA0 add r2, r4, #0x0 bl FUN_0204640C pop {r3-r7, pc} .balign 4 _02054FE0: .word FUN_02054EA0 thumb_func_start FUN_02054FE4 FUN_02054FE4: ; 0x02054FE4 push {r4, lr} add r4, r0, #0x0 bl FUN_02046528 add r0, r4, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldrb r1, [r4, #0x9] ldr r0, [r4, #0x0] bl FUN_0205889C ldrb r1, [r4, #0x8] add r0, r1, #0x1 strb r0, [r4, #0x8] ldrh r0, [r4, #0x6] cmp r1, r0 blt _02055028 ldrb r1, [r4, #0x9] mov r0, #0x1 eor r0, r1 strb r0, [r4, #0x9] mov r0, #0x0 strb r0, [r4, #0x8] ldrh r1, [r4, #0x4] sub r0, r1, #0x1 strh r0, [r4, #0x4] cmp r1, #0x0 bne _02055028 add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x1 pop {r4, pc} _02055028: mov r0, #0x0 pop {r4, pc} thumb_func_start FUN_0205502C FUN_0205502C: ; 0x0205502C push {r3-r7, lr} add r5, r1, #0x0 add r6, r2, #0x0 add r7, r3, #0x0 bl FUN_02046528 str r0, [sp, #0x0] mov r0, #0xb mov r1, #0xc bl FUN_020169D8 add r4, r0, #0x0 mov r1, #0x0 mov r2, #0xc blx MI_CpuFill8 strh r6, [r4, #0x4] strh r7, [r4, #0x6] str r5, [r4, #0x0] mov r0, #0x0 strb r0, [r4, #0x9] ldr r0, [sp, #0x0] ldr r1, _02055064 ; =FUN_02054FE4 ldr r0, [r0, #0x10] add r2, r4, #0x0 bl FUN_0204640C pop {r3-r7, pc} .balign 4 _02055064: .word FUN_02054FE4 thumb_func_start FUN_02055068 FUN_02055068: ; 0x02055068 push {r4-r7, lr} sub sp, #0xc add r7, r0, #0x0 add r5, r1, #0x0 add r4, r2, #0x0 str r3, [sp, #0x8] bl FUN_0205517C ldr r1, [sp, #0x20] ldr r2, [sp, #0x24] ldr r3, [sp, #0x28] add r6, r0, #0x0 bl FUN_0205519C ldr r0, [sp, #0x20] ldr r1, [sp, #0x24] bl FUN_020555A0 add r2, r0, #0x0 str r5, [sp, #0x0] ldr r3, [sp, #0x8] add r0, r6, #0x0 add r1, r7, #0x0 str r4, [sp, #0x4] bl FUN_02055208 add r0, r6, #0x0 add sp, #0xc pop {r4-r7, pc} .balign 4 thumb_func_start FUN_020550A4 FUN_020550A4: ; 0x020550A4 push {r3-r7, lr} add r4, r1, #0x0 add r7, r0, #0x0 add r6, r2, #0x0 bl FUN_0205517C add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_020554C8 str r0, [sp, #0x0] ldr r1, [sp, #0x0] add r0, r5, #0x0 add r2, r6, #0x0 add r3, r4, #0x0 bl FUN_0205519C add r0, r7, #0x0 bl FUN_020552E4 add r4, r0, #0x0 ldr r0, [sp, #0x0] add r1, r6, #0x0 bl FUN_020555A0 add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_02058454 mov r1, #0x9 add r0, r4, #0x0 lsl r1, r1, #0xa bl FUN_02058410 mov r1, #0x6 add r0, r4, #0x0 lsl r1, r1, #0x6 bl FUN_02058418 add r0, r4, #0x0 mov r1, #0x1 bl FUN_02058AC8 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0205539C add r0, r5, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02055108 FUN_02055108: ; 0x02055108 push {r3-r7, lr} add r5, r0, #0x0 bl FUN_020553A0 add r4, r0, #0x0 bne _02055118 bl ErrorHandling _02055118: add r0, r4, #0x0 bl FUN_02058578 add r0, r5, #0x0 bl FUN_021EDBC8 add r0, r5, #0x0 bl FUN_020553C4 cmp r0, #0x2 bne _0205515C add r0, r5, #0x0 bl FUN_02055320 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_0205532C add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_020552F8 add r3, r0, #0x0 mov r0, #0x1 str r0, [sp, #0x0] add r0, r4, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 bl FUN_0224ABAC add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_02055450 _0205515C: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02055160 FUN_02055160: ; 0x02055160 ldr r3, _02055164 ; =FUN_02016A18 bx r3 .balign 4 _02055164: .word FUN_02016A18 thumb_func_start FUN_02055168 FUN_02055168: ; 0x02055168 push {r4, lr} add r4, r0, #0x0 bl FUN_020553A0 bl FUN_02057654 add r0, r4, #0x0 bl FUN_02055160 pop {r4, pc} thumb_func_start FUN_0205517C FUN_0205517C: ; 0x0205517C push {r4, lr} mov r0, #0xb mov r1, #0x3c bl FUN_02016998 add r4, r0, #0x0 bne _0205518E bl ErrorHandling _0205518E: add r0, r4, #0x0 mov r1, #0x0 mov r2, #0x3c blx FUN_020DF4A4 add r0, r4, #0x0 pop {r4, pc} thumb_func_start FUN_0205519C FUN_0205519C: ; 0x0205519C push {r4-r6, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r1, r3, #0x0 add r6, r2, #0x0 bl FUN_02055458 add r0, r5, #0x0 mov r1, #0x0 bl FUN_0205536C add r0, r5, #0x0 mov r1, #0x0 bl FUN_02055374 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_020553A8 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_020553E4 add r0, r5, #0x0 mov r1, #0x0 bl FUN_020553DC add r0, r5, #0x0 bl FUN_02055410 mov r1, #0x0 add r0, r5, #0x0 mvn r1, r1 bl FUN_0205542C mov r1, #0x0 add r0, r5, #0x0 mvn r1, r1 bl FUN_02055434 add r0, r5, #0x0 mov r1, #0xff bl FUN_02055460 add r0, r5, #0x0 mov r1, #0x1 bl FUN_020556C8 add r0, r5, #0x0 mov r1, #0x1 bl FUN_0205574C pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02055208 FUN_02055208: ; 0x02055208 push {r4-r5, lr} sub sp, #0xc add r4, r0, #0x0 str r2, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] add r0, r1, #0x0 ldr r1, [sp, #0x18] ldr r2, [sp, #0x1c] bl FUN_0205753C add r5, r0, #0x0 bne _02055228 bl ErrorHandling _02055228: add r0, r5, #0x0 mov r1, #0xff bl FUN_02058444 add r0, r5, #0x0 mov r1, #0x0 bl FUN_02058484 add r0, r5, #0x0 mov r1, #0x0 bl FUN_0205848C add r0, r5, #0x0 mov r1, #0x0 bl FUN_02058494 mov r1, #0x0 add r0, r5, #0x0 add r2, r1, #0x0 bl FUN_020584EC add r0, r5, #0x0 mov r1, #0x0 mov r2, #0x1 bl FUN_020584EC add r0, r5, #0x0 mov r1, #0x0 mov r2, #0x2 bl FUN_020584EC mov r1, #0x0 add r0, r5, #0x0 mvn r1, r1 bl FUN_02058534 mov r1, #0x0 add r0, r5, #0x0 mvn r1, r1 bl FUN_0205853C mov r1, #0x9 add r0, r5, #0x0 lsl r1, r1, #0xa bl FUN_02058410 mov r1, #0x6 add r0, r5, #0x0 lsl r1, r1, #0x6 bl FUN_02058418 add r0, r5, #0x0 mov r1, #0x1 bl FUN_02058AC8 add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_0205539C add sp, #0xc pop {r4-r5, pc} .balign 4 thumb_func_start FUN_020552A4 FUN_020552A4: ; 0x020552A4 push {r3-r7, lr} sub sp, #0x8 mov r1, #0x0 str r1, [sp, #0x4] str r1, [sp, #0x0] add r1, sp, #0x0 add r2, sp, #0x4 mov r3, #0x1 add r5, r0, #0x0 bl FUN_020580F4 cmp r0, #0x0 beq _020552DE add r4, sp, #0x0 add r6, sp, #0x4 mov r7, #0x1 _020552C4: ldr r0, [sp, #0x0] bl FUN_02058480 cmp r0, #0x1 beq _020552DE add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 add r3, r7, #0x0 bl FUN_020580F4 cmp r0, #0x0 bne _020552C4 _020552DE: ldr r0, [sp, #0x0] add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_020552E4 FUN_020552E4: ; 0x020552E4 push {r4, lr} bl FUN_020552A4 add r4, r0, #0x0 bne _020552F2 bl ErrorHandling _020552F2: add r0, r4, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_020552F8 FUN_020552F8: ; 0x020552F8 push {r3, lr} bl FUN_020553A0 bl FUN_020584C4 pop {r3, pc} thumb_func_start FUN_02055304 FUN_02055304: ; 0x02055304 push {r4, lr} add r4, r1, #0x0 bl FUN_020553A0 add r1, r4, #0x0 bl FUN_020584AC pop {r4, pc} thumb_func_start FUN_02055314 FUN_02055314: ; 0x02055314 push {r3, lr} bl FUN_020553A0 bl FUN_020584D4 pop {r3, pc} thumb_func_start FUN_02055320 FUN_02055320: ; 0x02055320 push {r3, lr} bl FUN_020553A0 bl FUN_02058B2C pop {r3, pc} thumb_func_start FUN_0205532C FUN_0205532C: ; 0x0205532C push {r3, lr} bl FUN_020553A0 bl FUN_02058B4C pop {r3, pc} thumb_func_start FUN_02055338 FUN_02055338: ; 0x02055338 push {r3, lr} bl FUN_020553A0 bl FUN_02058B14 pop {r3, pc} thumb_func_start FUN_02055344 FUN_02055344: ; 0x02055344 push {r3, lr} bl FUN_020553A0 bl FUN_02058B24 pop {r3, pc} thumb_func_start FUN_02055350 FUN_02055350: ; 0x02055350 push {r4, lr} add r4, r1, #0x0 bl FUN_020553A0 add r1, r4, #0x0 bl FUN_02058B5C pop {r4, pc} thumb_func_start FUN_02055360 FUN_02055360: ; 0x02055360 push {r3, lr} bl FUN_020553A4 bl FUN_02058B7C pop {r3, pc} thumb_func_start FUN_0205536C FUN_0205536C: ; 0x0205536C str r1, [r0, #0x10] bx lr thumb_func_start FUN_02055370 FUN_02055370: ; 0x02055370 ldr r0, [r0, #0x10] bx lr thumb_func_start FUN_02055374 FUN_02055374: ; 0x02055374 str r1, [r0, #0x14] bx lr thumb_func_start FUN_02055378 FUN_02055378: ; 0x02055378 ldr r0, [r0, #0x14] bx lr thumb_func_start FUN_0205537C FUN_0205537C: ; 0x0205537C push {r4, lr} add r4, r1, #0x0 bl FUN_020553A0 cmp r4, #0x1 bne _02055392 mov r1, #0x2 lsl r1, r1, #0x8 bl FUN_02058418 pop {r4, pc} _02055392: mov r1, #0x2 lsl r1, r1, #0x8 bl FUN_02058410 pop {r4, pc} thumb_func_start FUN_0205539C FUN_0205539C: ; 0x0205539C str r1, [r0, #0x2c] bx lr thumb_func_start FUN_020553A0 FUN_020553A0: ; 0x020553A0 ldr r0, [r0, #0x2c] bx lr thumb_func_start FUN_020553A4 FUN_020553A4: ; 0x020553A4 ldr r0, [r0, #0x2c] bx lr thumb_func_start FUN_020553A8 FUN_020553A8: ; 0x020553A8 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x3 blt _020553B6 bl ErrorHandling _020553B6: add r0, r5, #0x0 add r1, r4, #0x0 str r4, [r5, #0x18] bl FUN_020554DC pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020553C4 FUN_020553C4: ; 0x020553C4 push {r4, lr} add r4, r0, #0x0 bne _020553CE bl ErrorHandling _020553CE: ldr r0, [r4, #0x18] pop {r4, pc} .balign 4 thumb_func_start FUN_020553D4 FUN_020553D4: ; 0x020553D4 ldr r2, [r0, #0x4] orr r1, r2 str r1, [r0, #0x4] bx lr thumb_func_start FUN_020553DC FUN_020553DC: ; 0x020553DC str r1, [r0, #0x4] bx lr thumb_func_start FUN_020553E0 FUN_020553E0: ; 0x020553E0 ldr r0, [r0, #0x4] bx lr thumb_func_start FUN_020553E4 FUN_020553E4: ; 0x020553E4 str r1, [r0, #0x1c] bx lr thumb_func_start FUN_020553E8 FUN_020553E8: ; 0x020553E8 ldr r0, [r0, #0x1c] bx lr thumb_func_start FUN_020553EC FUN_020553EC: ; 0x020553EC ldr r2, [r0, #0x0] orr r1, r2 str r1, [r0, #0x0] bx lr thumb_func_start FUN_020553F4 FUN_020553F4: ; 0x020553F4 ldr r2, [r0, #0x0] mvn r1, r1 and r1, r2 str r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02055400 FUN_02055400: ; 0x02055400 ldr r0, [r0, #0x0] and r0, r1 bx lr .balign 4 thumb_func_start FUN_02055408 FUN_02055408: ; 0x02055408 ldr r0, [r0, #0x20] bx lr thumb_func_start FUN_0205540C FUN_0205540C: ; 0x0205540C str r1, [r0, #0x20] bx lr thumb_func_start FUN_02055410 FUN_02055410: ; 0x02055410 ldr r3, _02055418 ; =FUN_020556F4 mov r1, #0x0 str r1, [r0, #0x20] bx r3 .balign 4 _02055418: .word FUN_020556F4 thumb_func_start FUN_0205541C FUN_0205541C: ; 0x0205541C ldr r3, [r0, #0x20] add r1, r3, r1 str r1, [r0, #0x20] cmp r1, r2 ble _02055428 str r2, [r0, #0x20] _02055428: ldr r0, [r0, #0x20] bx lr thumb_func_start FUN_0205542C FUN_0205542C: ; 0x0205542C str r1, [r0, #0x24] bx lr thumb_func_start FUN_02055430 FUN_02055430: ; 0x02055430 ldr r0, [r0, #0x24] bx lr thumb_func_start FUN_02055434 FUN_02055434: ; 0x02055434 str r1, [r0, #0x28] bx lr thumb_func_start FUN_02055438 FUN_02055438: ; 0x02055438 ldr r0, [r0, #0x28] bx lr thumb_func_start FUN_0205543C FUN_0205543C: ; 0x0205543C push {r3-r5, lr} add r5, r0, #0x0 add r4, r2, #0x0 bl FUN_0205542C add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02055434 pop {r3-r5, pc} thumb_func_start FUN_02055450 FUN_02055450: ; 0x02055450 str r1, [r0, #0x30] bx lr thumb_func_start FUN_02055454 FUN_02055454: ; 0x02055454 ldr r0, [r0, #0x30] bx lr thumb_func_start FUN_02055458 FUN_02055458: ; 0x02055458 str r1, [r0, #0x34] bx lr thumb_func_start FUN_0205545C FUN_0205545C: ; 0x0205545C ldr r0, [r0, #0x34] bx lr thumb_func_start FUN_02055460 FUN_02055460: ; 0x02055460 str r1, [r0, #0x8] bx lr thumb_func_start FUN_02055464 FUN_02055464: ; 0x02055464 ldr r0, [r0, #0x8] bx lr thumb_func_start FUN_02055468 FUN_02055468: ; 0x02055468 mov r1, #0x0 strh r1, [r0, #0x0] strh r1, [r0, #0x2] str r1, [r0, #0x4] bx lr .balign 4 thumb_func_start FUN_02055474 FUN_02055474: ; 0x02055474 cmp r0, #0x0 beq _02055482 ldrh r0, [r0, #0x2] cmp r0, #0x1 bne _02055482 mov r0, #0x1 bx lr _02055482: mov r0, #0x0 bx lr .balign 4 thumb_func_start FUN_02055488 FUN_02055488: ; 0x02055488 cmp r1, #0x1 bne _02055492 mov r1, #0x1 strh r1, [r0, #0x2] bx lr _02055492: mov r1, #0x0 strh r1, [r0, #0x2] bx lr thumb_func_start FUN_02055498 FUN_02055498: ; 0x02055498 cmp r0, #0x0 bne _020554A0 mov r0, #0x0 bx lr _020554A0: ldrh r0, [r0, #0x0] bx lr thumb_func_start FUN_020554A4 FUN_020554A4: ; 0x020554A4 cmp r0, #0x0 beq _020554AA strh r1, [r0, #0x0] _020554AA: bx lr thumb_func_start FUN_020554AC FUN_020554AC: ; 0x020554AC push {r4, lr} add r4, r1, #0x0 bl FUN_0205545C add r1, r4, #0x0 bl FUN_020554A4 pop {r4, pc} thumb_func_start FUN_020554BC FUN_020554BC: ; 0x020554BC push {r3, lr} bl FUN_0205545C bl FUN_02055498 pop {r3, pc} thumb_func_start FUN_020554C8 FUN_020554C8: ; 0x020554C8 cmp r0, #0x0 beq _020554D0 ldr r0, [r0, #0x4] bx lr _020554D0: mov r0, #0x0 bx lr thumb_func_start FUN_020554D4 FUN_020554D4: ; 0x020554D4 cmp r0, #0x0 beq _020554DA str r1, [r0, #0x4] _020554DA: bx lr thumb_func_start FUN_020554DC FUN_020554DC: ; 0x020554DC push {r4, lr} add r4, r1, #0x0 bl FUN_0205545C add r1, r4, #0x0 bl FUN_020554D4 pop {r4, pc} thumb_func_start FUN_020554EC FUN_020554EC: ; 0x020554EC push {r4-r6, lr} add r4, r1, #0x0 add r6, r2, #0x0 add r5, r0, #0x0 bl FUN_020553A0 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_02058DBC add r0, r5, #0x0 mov r1, #0x0 bl FUN_0205536C add r0, r5, #0x0 mov r1, #0x0 bl FUN_02055374 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02055514 FUN_02055514: ; 0x02055514 push {r3-r7, lr} add r6, r1, #0x0 add r7, r2, #0x0 add r5, r0, #0x0 add r4, r3, #0x0 bl FUN_020553A0 add r1, r6, #0x0 mov r2, #0x0 add r3, r7, #0x0 str r4, [sp, #0x0] bl FUN_02058E28 add r0, r5, #0x0 mov r1, #0x0 bl FUN_0205536C add r0, r5, #0x0 mov r1, #0x0 bl FUN_02055374 pop {r3-r7, pc} thumb_func_start FUN_02055540 FUN_02055540: ; 0x02055540 push {r4-r5, lr} sub sp, #0xc add r5, r1, #0x0 bl FUN_020553A0 add r4, r0, #0x0 add r1, sp, #0x0 bl FUN_02058B5C add r0, r4, #0x0 add r1, sp, #0x0 str r5, [sp, #0x4] bl FUN_02058B6C add sp, #0xc pop {r4-r5, pc} thumb_func_start FUN_02055560 FUN_02055560: ; 0x02055560 push {r4, lr} add r4, r1, #0x0 bl FUN_020553A0 cmp r4, #0x1 bne _02055574 mov r1, #0x0 bl FUN_02058960 pop {r4, pc} _02055574: mov r1, #0x1 bl FUN_02058960 pop {r4, pc} thumb_func_start FUN_0205557C FUN_0205557C: ; 0x0205557C push {r3-r5, lr} add r5, r1, #0x0 bl FUN_020553A0 add r4, r0, #0x0 cmp r5, #0x1 bne _02055598 mov r1, #0x0 bl FUN_02058960 add r0, r4, #0x0 bl FUN_02059D1C pop {r3-r5, pc} _02055598: mov r1, #0x1 bl FUN_02058960 pop {r3-r5, pc} thumb_func_start FUN_020555A0 FUN_020555A0: ; 0x020555A0 push {r3, lr} cmp r1, #0x0 bne _020555F2 cmp r0, #0x9 bhi _0205563E add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _020555B6: ; jump table (using 16-bit offset) .short _020555CA - _020555B6 - 2; case 0 .short _020555CE - _020555B6 - 2; case 1 .short _020555D2 - _020555B6 - 2; case 2 .short _020555D6 - _020555B6 - 2; case 3 .short _020555DA - _020555B6 - 2; case 4 .short _020555DE - _020555B6 - 2; case 5 .short _020555E2 - _020555B6 - 2; case 6 .short _020555E6 - _020555B6 - 2; case 7 .short _020555EA - _020555B6 - 2; case 8 .short _020555EE - _020555B6 - 2; case 9 _020555CA: mov r0, #0x0 pop {r3, pc} _020555CE: mov r0, #0x15 pop {r3, pc} _020555D2: mov r0, #0xb2 pop {r3, pc} _020555D6: mov r0, #0xb0 pop {r3, pc} _020555DA: mov r0, #0xb4 pop {r3, pc} _020555DE: mov r0, #0xba pop {r3, pc} _020555E2: mov r0, #0xbc pop {r3, pc} _020555E6: mov r0, #0xc4 pop {r3, pc} _020555EA: mov r0, #0xc6 pop {r3, pc} _020555EE: mov r0, #0xc8 pop {r3, pc} _020555F2: cmp r0, #0x9 bhi _0205563E add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02055602: ; jump table (using 16-bit offset) .short _02055616 - _02055602 - 2; case 0 .short _0205561A - _02055602 - 2; case 1 .short _0205561E - _02055602 - 2; case 2 .short _02055622 - _02055602 - 2; case 3 .short _02055626 - _02055602 - 2; case 4 .short _0205562A - _02055602 - 2; case 5 .short _0205562E - _02055602 - 2; case 6 .short _02055632 - _02055602 - 2; case 7 .short _02055636 - _02055602 - 2; case 8 .short _0205563A - _02055602 - 2; case 9 _02055616: mov r0, #0x61 pop {r3, pc} _0205561A: mov r0, #0x62 pop {r3, pc} _0205561E: mov r0, #0xb3 pop {r3, pc} _02055622: mov r0, #0xb1 pop {r3, pc} _02055626: mov r0, #0xb5 pop {r3, pc} _0205562A: mov r0, #0xbb pop {r3, pc} _0205562E: mov r0, #0xbd pop {r3, pc} _02055632: mov r0, #0xc5 pop {r3, pc} _02055636: mov r0, #0xc7 pop {r3, pc} _0205563A: mov r0, #0xc9 pop {r3, pc} _0205563E: bl ErrorHandling mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_02055648 FUN_02055648: ; 0x02055648 push {r3, lr} cmp r0, #0x9 bhi _02055690 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0205565A: ; jump table (using 16-bit offset) .short _0205566E - _0205565A - 2; case 0 .short _02055672 - _0205565A - 2; case 1 .short _02055676 - _0205565A - 2; case 2 .short _02055690 - _0205565A - 2; case 3 .short _0205567A - _0205565A - 2; case 4 .short _02055690 - _0205565A - 2; case 5 .short _0205567E - _0205565A - 2; case 6 .short _02055682 - _0205565A - 2; case 7 .short _02055686 - _0205565A - 2; case 8 .short _0205568A - _0205565A - 2; case 9 _0205566E: mov r0, #0x1 pop {r3, pc} _02055672: mov r0, #0x2 pop {r3, pc} _02055676: mov r0, #0x4 pop {r3, pc} _0205567A: mov r0, #0x10 pop {r3, pc} _0205567E: mov r0, #0x20 pop {r3, pc} _02055682: mov r0, #0x40 pop {r3, pc} _02055686: mov r0, #0x80 pop {r3, pc} _0205568A: mov r0, #0x1 lsl r0, r0, #0x8 pop {r3, pc} _02055690: bl ErrorHandling mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_02055698 FUN_02055698: ; 0x02055698 ldr r0, [r0, #0x38] bx lr thumb_func_start FUN_0205569C FUN_0205569C: ; 0x0205569C push {r3, lr} cmp r1, #0x1 bne _020556AA mov r1, #0x1 bl FUN_020553EC pop {r3, pc} _020556AA: mov r1, #0x1 bl FUN_020553F4 pop {r3, pc} .balign 4 thumb_func_start FUN_020556B4 FUN_020556B4: ; 0x020556B4 push {r3, lr} mov r1, #0x1 bl FUN_02055400 cmp r0, #0x0 beq _020556C4 mov r0, #0x1 pop {r3, pc} _020556C4: mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_020556C8 FUN_020556C8: ; 0x020556C8 push {r3, lr} cmp r1, #0x1 bne _020556D6 mov r1, #0x2 bl FUN_020553EC pop {r3, pc} _020556D6: mov r1, #0x2 bl FUN_020553F4 pop {r3, pc} .balign 4 thumb_func_start FUN_020556E0 FUN_020556E0: ; 0x020556E0 push {r3, lr} mov r1, #0x2 bl FUN_02055400 cmp r0, #0x0 beq _020556F0 mov r0, #0x1 pop {r3, pc} _020556F0: mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_020556F4 FUN_020556F4: ; 0x020556F4 push {r3, lr} cmp r1, #0x1 bne _02055702 mov r1, #0x4 bl FUN_020553EC pop {r3, pc} _02055702: mov r1, #0x4 bl FUN_020553F4 pop {r3, pc} .balign 4 thumb_func_start FUN_0205570C FUN_0205570C: ; 0x0205570C push {r3, lr} mov r1, #0x4 bl FUN_02055400 cmp r0, #0x0 beq _0205571C mov r0, #0x1 pop {r3, pc} _0205571C: mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_02055720 FUN_02055720: ; 0x02055720 push {r3, lr} cmp r1, #0x1 bne _0205572E mov r1, #0x8 bl FUN_020553EC pop {r3, pc} _0205572E: mov r1, #0x8 bl FUN_020553F4 pop {r3, pc} .balign 4 thumb_func_start FUN_02055738 FUN_02055738: ; 0x02055738 push {r3, lr} mov r1, #0x8 bl FUN_02055400 cmp r0, #0x0 beq _02055748 mov r0, #0x1 pop {r3, pc} _02055748: mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_0205574C FUN_0205574C: ; 0x0205574C push {r3, lr} cmp r1, #0x1 bne _0205575A mov r1, #0x10 bl FUN_020553EC pop {r3, pc} _0205575A: mov r1, #0x10 bl FUN_020553F4 pop {r3, pc} .balign 4 thumb_func_start FUN_02055764 FUN_02055764: ; 0x02055764 push {r3, lr} mov r1, #0x10 bl FUN_02055400 cmp r0, #0x0 beq _02055774 mov r0, #0x1 pop {r3, pc} _02055774: mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_02055778 FUN_02055778: ; 0x02055778 push {r3, lr} cmp r1, #0x1 bne _02055786 mov r1, #0x20 bl FUN_020553EC pop {r3, pc} _02055786: mov r1, #0x20 bl FUN_020553F4 pop {r3, pc} .balign 4 thumb_func_start FUN_02055790 FUN_02055790: ; 0x02055790 push {r3, lr} mov r1, #0x20 bl FUN_02055400 cmp r0, #0x0 beq _020557A0 mov r0, #0x1 pop {r3, pc} _020557A0: mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_020557A4 FUN_020557A4: ; 0x020557A4 ldr r3, _020557AC ; =FUN_020553EC mov r1, #0x40 bx r3 nop _020557AC: .word FUN_020553EC thumb_func_start FUN_020557B0 FUN_020557B0: ; 0x020557B0 ldr r3, _020557B8 ; =FUN_020553F4 mov r1, #0x40 bx r3 nop _020557B8: .word FUN_020553F4 thumb_func_start FUN_020557BC FUN_020557BC: ; 0x020557BC push {r3, lr} mov r1, #0x40 bl FUN_02055400 cmp r0, #0x0 beq _020557CC mov r0, #0x1 pop {r3, pc} _020557CC: mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_020557D0 FUN_020557D0: ; 0x020557D0 push {r3, lr} cmp r1, #0x1 bne _020557DE mov r1, #0x80 bl FUN_020553EC pop {r3, pc} _020557DE: mov r1, #0x80 bl FUN_020553F4 pop {r3, pc} .balign 4 thumb_func_start FUN_020557E8 FUN_020557E8: ; 0x020557E8 ldr r3, _020557F0 ; =FUN_02055400 mov r1, #0x80 bx r3 nop _020557F0: .word FUN_02055400 thumb_func_start FUN_020557F4 FUN_020557F4: ; 0x020557F4 push {r3-r7, lr} add r7, r1, #0x0 mov r1, #0x0 add r4, r2, #0x0 mvn r1, r1 add r5, r0, #0x0 add r6, r3, #0x0 cmp r4, r1 bne _02055812 add r2, sp, #0x8 ldrh r2, [r2, #0x10] add r1, r6, #0x0 bl FUN_02057060 add r4, r0, #0x0 _02055812: add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_020563F0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_020558A0 cmp r0, #0x0 beq _02055896 add r3, sp, #0x8 ldrh r3, [r3, #0x10] add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_02055900 add r0, r5, #0x0 bl FUN_021E5FE0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02055BD4 cmp r0, #0x1 bne _0205584E add r0, r5, #0x0 bl FUN_021E7138 pop {r3-r7, pc} _0205584E: add r0, r5, #0x0 bl FUN_020553C4 cmp r0, #0x0 bne _02055878 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_020561D0 cmp r0, #0x0 beq _0205586C add r0, r5, #0x0 bl FUN_021E7138 b _02055878 _0205586C: ldr r0, [sp, #0x1c] cmp r0, #0x1 bne _02055878 add r0, r5, #0x0 bl FUN_021E70F0 _02055878: add r0, sp, #0x8 ldrh r0, [r0, #0x10] add r1, r7, #0x0 add r2, r4, #0x0 str r0, [sp, #0x0] add r0, r5, #0x0 add r3, r6, #0x0 bl FUN_02056110 add r0, r5, #0x0 bl FUN_02055928 add r0, r5, #0x0 bl FUN_02055968 _02055896: pop {r3-r7, pc} thumb_func_start FUN_02055898 FUN_02055898: ; 0x02055898 ldr r3, _0205589C ; =FUN_020558A0 bx r3 .balign 4 _0205589C: .word FUN_020558A0 thumb_func_start FUN_020558A0 FUN_020558A0: ; 0x020558A0 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_020553A0 add r6, r0, #0x0 bl FUN_0205AD98 cmp r0, #0x1 bne _020558B8 mov r0, #0x1 pop {r4-r6, pc} _020558B8: mov r0, #0x0 mvn r0, r0 cmp r4, r0 bne _020558C4 mov r0, #0x0 pop {r4-r6, pc} _020558C4: add r0, r6, #0x0 bl FUN_020586F0 bl FUN_020570F0 cmp r0, #0x1 bne _020558FA add r0, r5, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 bl FUN_02056B74 cmp r0, #0x0 bne _020558E4 mov r0, #0x1 pop {r4-r6, pc} _020558E4: cmp r0, #0x20 bne _020558F6 add r0, r5, #0x0 bl FUN_020553C4 cmp r0, #0x2 bne _020558F6 mov r0, #0x1 pop {r4-r6, pc} _020558F6: mov r0, #0x0 pop {r4-r6, pc} _020558FA: mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02055900 FUN_02055900: ; 0x02055900 push {r4-r6, lr} add r6, r3, #0x0 add r5, r0, #0x0 add r0, r6, #0x0 bl FUN_02057028 add r4, r0, #0x0 add r0, r6, #0x0 bl FUN_02057044 add r2, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0205543C add r0, r5, #0x0 bl FUN_020557B0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02055928 FUN_02055928: ; 0x02055928 push {r4, lr} add r4, r0, #0x0 bl FUN_020557BC cmp r0, #0x1 bne _02055964 add r0, r4, #0x0 bl FUN_02055370 cmp r0, #0x1 bne _02055964 add r0, r4, #0x0 mov r1, #0x0 bl FUN_020556C8 add r0, r4, #0x0 bl FUN_02055764 cmp r0, #0x1 bne _02055964 add r0, r4, #0x0 mov r1, #0x0 bl FUN_0205574C add r0, r4, #0x0 bl FUN_020553A0 mov r1, #0x0 bl FUN_02058A18 _02055964: pop {r4, pc} .balign 4 thumb_func_start FUN_02055968 FUN_02055968: ; 0x02055968 push {r4-r6, lr} add r4, r0, #0x0 bl FUN_02055370 cmp r0, #0x1 bne _02055A20 add r0, r4, #0x0 bl FUN_020553A0 add r4, r0, #0x0 bl FUN_02058720 lsl r0, r0, #0x18 lsr r5, r0, #0x18 add r0, r4, #0x0 bl FUN_020586F0 bl FUN_0205B020 add r1, r0, #0x0 mov r0, #0x0 mvn r0, r0 cmp r1, r0 bne _0205599C add r6, r5, #0x0 b _020559A6 _0205599C: add r0, r4, #0x0 bl FUN_02059C90 lsl r0, r0, #0x18 lsr r6, r0, #0x18 _020559A6: add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_02059B2C cmp r0, #0x1 bne _020559B8 ldr r0, _02055A24 ; =0x0000061F bl FUN_020054C8 _020559B8: add r0, r5, #0x0 bl FUN_02054AF0 cmp r0, #0x1 bne _020559C8 ldr r0, _02055A28 ; =0x00000641 bl FUN_020054C8 _020559C8: add r0, r5, #0x0 bl FUN_0205483C cmp r0, #0x1 bne _020559D8 ldr r0, _02055A2C ; =0x00000642 bl FUN_020054C8 _020559D8: add r0, r5, #0x0 bl FUN_02054830 add r0, r5, #0x0 bl FUN_02054974 cmp r0, #0x1 bne _020559F8 add r0, r5, #0x0 bl FUN_02054984 cmp r0, #0x1 beq _020559F8 ldr r0, _02055A30 ; =0x00000655 bl FUN_020054C8 _020559F8: add r0, r4, #0x0 bl FUN_020586F0 bl FUN_020570F0 cmp r0, #0x0 bne _02055A20 add r0, r5, #0x0 bl FUN_02054798 cmp r0, #0x1 beq _02055A1A add r0, r6, #0x0 bl FUN_02054798 cmp r0, #0x1 bne _02055A20 _02055A1A: ldr r0, _02055A34 ; =0x00000653 bl FUN_020054C8 _02055A20: pop {r4-r6, pc} nop _02055A24: .word 0x0000061F _02055A28: .word 0x00000641 _02055A2C: .word 0x00000642 _02055A30: .word 0x00000655 _02055A34: .word 0x00000653 thumb_func_start FUN_02055A38 FUN_02055A38: ; 0x02055A38 push {r3-r7, lr} add r5, r0, #0x0 bl FUN_02055370 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02055378 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_020553A0 add r7, r0, #0x0 add r0, r5, #0x0 mov r1, #0x0 bl FUN_02055374 mov r1, #0x0 add r0, r5, #0x0 mvn r1, r1 bl FUN_02055BEC cmp r0, #0x0 beq _02055A76 cmp r0, #0x5 beq _02055A76 add r0, r5, #0x0 mov r1, #0x2 bl FUN_02055374 pop {r3-r7, pc} _02055A76: add r0, r7, #0x0 bl FUN_0205AD98 cmp r0, #0x0 bne _02055AC2 cmp r6, #0x0 beq _02055B10 cmp r6, #0x1 beq _02055A8E cmp r6, #0x2 beq _02055AB8 pop {r3-r7, pc} _02055A8E: add r0, r7, #0x0 bl FUN_020586F0 bl FUN_020570F0 cmp r0, #0x1 beq _02055B10 cmp r4, #0x0 beq _02055AA4 cmp r4, #0x3 bne _02055AAE _02055AA4: add r0, r5, #0x0 mov r1, #0x1 bl FUN_02055374 pop {r3-r7, pc} _02055AAE: add r0, r5, #0x0 mov r1, #0x2 bl FUN_02055374 pop {r3-r7, pc} _02055AB8: add r0, r5, #0x0 mov r1, #0x2 bl FUN_02055374 pop {r3-r7, pc} _02055AC2: add r0, r7, #0x0 bl FUN_0205AE28 cmp r0, #0x1 bne _02055B10 cmp r6, #0x0 beq _02055B10 cmp r6, #0x1 beq _02055ADA cmp r6, #0x2 beq _02055AF6 pop {r3-r7, pc} _02055ADA: cmp r4, #0x0 beq _02055B10 cmp r4, #0x3 bne _02055AEC add r0, r5, #0x0 mov r1, #0x0 bl FUN_02055374 pop {r3-r7, pc} _02055AEC: add r0, r5, #0x0 mov r1, #0x3 bl FUN_02055374 pop {r3-r7, pc} _02055AF6: cmp r4, #0x0 beq _02055B10 cmp r4, #0x3 bne _02055B08 add r0, r5, #0x0 mov r1, #0x0 bl FUN_02055374 pop {r3-r7, pc} _02055B08: add r0, r5, #0x0 mov r1, #0x3 bl FUN_02055374 _02055B10: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02055B14 FUN_02055B14: ; 0x02055B14 push {r4, lr} add r4, r0, #0x0 mov r1, #0x0 bl FUN_0205536C add r0, r4, #0x0 mov r1, #0x0 bl FUN_02055374 add r0, r4, #0x0 bl FUN_02055410 pop {r4, pc} .balign 4 thumb_func_start FUN_02055B30 FUN_02055B30: ; 0x02055B30 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02055370 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02055378 cmp r4, #0x0 bne _02055B48 mov r0, #0x1 pop {r3-r5, pc} _02055B48: cmp r4, #0x2 bne _02055B50 mov r0, #0x1 pop {r3-r5, pc} _02055B50: cmp r4, #0x1 bne _02055B86 cmp r0, #0x0 beq _02055B5C cmp r0, #0x3 bne _02055B60 _02055B5C: mov r0, #0x1 pop {r3-r5, pc} _02055B60: add r0, r5, #0x0 bl FUN_020553A0 add r4, r0, #0x0 bl FUN_0205AD98 cmp r0, #0x1 bne _02055B74 mov r0, #0x1 pop {r3-r5, pc} _02055B74: add r0, r4, #0x0 bl FUN_020586F0 bl FUN_020570F0 cmp r0, #0x1 bne _02055B86 mov r0, #0x1 pop {r3-r5, pc} _02055B86: mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02055B8C FUN_02055B8C: ; 0x02055B8C push {r3-r5, lr} add r5, r1, #0x0 add r4, r0, #0x0 mov r1, #0x0 bl FUN_0205536C add r0, r4, #0x0 mov r1, #0x0 bl FUN_02055374 add r0, r4, #0x0 bl FUN_020553A0 add r4, r0, #0x0 add r1, r5, #0x0 bl FUN_020584AC add r0, r4, #0x0 mov r1, #0x0 bl FUN_02058544 add r0, r4, #0x0 bl FUN_02059C60 add r0, r4, #0x0 bl FUN_0205AE80 add r0, r5, #0x0 mov r1, #0x0 bl FUN_0205AFDC add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_0205ADDC pop {r3-r5, pc} thumb_func_start FUN_02055BD4 FUN_02055BD4: ; 0x02055BD4 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_02055BEC add r1, r0, #0x0 add r0, r5, #0x0 add r2, r4, #0x0 bl FUN_02055C4C pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02055BEC FUN_02055BEC: ; 0x02055BEC push {r3-r7, lr} add r5, r0, #0x0 add r6, r1, #0x0 mov r4, #0x0 bl FUN_020553A0 bl FUN_02058720 add r7, r0, #0x0 add r0, r5, #0x0 add r1, r7, #0x0 add r2, r6, #0x0 bl FUN_0205733C cmp r0, #0x1 bne _02055C10 mov r0, #0x5 pop {r3-r7, pc} _02055C10: add r0, r5, #0x0 bl FUN_020556E0 cmp r0, #0x1 bne _02055C1E add r0, r4, #0x0 pop {r3-r7, pc} _02055C1E: lsl r0, r7, #0x18 ldr r5, _02055C44 ; =0x020F5D34 lsr r6, r0, #0x18 _02055C24: ldr r1, [r5, #0x0] add r0, r6, #0x0 blx r1 cmp r0, #0x1 bne _02055C36 ldr r0, _02055C48 ; =0x020F5D38 lsl r1, r4, #0x3 ldr r0, [r0, r1] pop {r3-r7, pc} _02055C36: add r5, #0x8 ldr r0, [r5, #0x0] add r4, r4, #0x1 cmp r0, #0x0 bne _02055C24 mov r0, #0x0 pop {r3-r7, pc} .balign 4 _02055C44: .word 0x020F5D34 _02055C48: .word 0x020F5D38 thumb_func_start FUN_02055C4C FUN_02055C4C: ; 0x02055C4C push {r3, lr} add r3, r1, #0x0 add r1, r2, #0x0 ldr r2, _02055C68 ; =0x020F5D1C lsl r3, r3, #0x2 ldr r2, [r2, r3] blx r2 cmp r0, #0x1 bne _02055C62 mov r0, #0x1 pop {r3, pc} _02055C62: mov r0, #0x0 pop {r3, pc} nop _02055C68: .word 0x020F5D1C thumb_func_start FUN_02055C6C FUN_02055C6C: ; 0x02055C6C push {r3, lr} bl FUN_02055FFC mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_02055C78 FUN_02055C78: ; 0x02055C78 push {r3-r7, lr} add r5, r0, #0x0 bl FUN_020553A0 add r4, r0, #0x0 bl FUN_020584D4 add r6, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02056040 add r7, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_02056B74 str r0, [sp, #0x0] add r0, r5, #0x0 mov r1, #0x1 bl FUN_0205569C ldr r0, [sp, #0x0] cmp r0, #0x0 beq _02055D28 add r0, r5, #0x0 bl FUN_02055FFC cmp r7, #0x1 beq _02055CCA add r0, r5, #0x0 mov r1, #0x1 bl FUN_020556C8 add r0, r5, #0x0 mov r1, #0x0 bl FUN_0205536C mov r0, #0x0 pop {r3-r7, pc} _02055CCA: add r0, r6, #0x0 bl FUN_02059E74 add r6, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_02056B74 cmp r0, #0x0 beq _02055CE4 mov r0, #0x0 pop {r3-r7, pc} _02055CE4: mov r1, #0x6 add r0, r4, #0x0 lsl r1, r1, #0x6 bl FUN_02058410 add r0, r6, #0x0 mov r1, #0x8 bl FUN_0205AFDC add r2, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02056B5C add r0, r5, #0x0 mov r1, #0x1 bl FUN_020556C8 add r0, r5, #0x0 mov r1, #0x1 bl FUN_0205569C mov r1, #0x0 mvn r1, r1 add r0, r5, #0x0 add r2, r1, #0x0 bl FUN_0205543C add r0, r5, #0x0 mov r1, #0x1 bl FUN_0205536C mov r0, #0x1 pop {r3-r7, pc} _02055D28: add r0, r5, #0x0 add r1, r7, #0x0 bl FUN_020560A0 cmp r0, #0x0 bne _02055D8E add r0, r5, #0x0 bl FUN_02055FFC add r0, r6, #0x0 bl FUN_02059E74 add r6, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_02056B74 cmp r0, #0x0 beq _02055D54 mov r0, #0x0 pop {r3-r7, pc} _02055D54: mov r1, #0x6 add r0, r4, #0x0 lsl r1, r1, #0x6 bl FUN_02058410 add r0, r6, #0x0 mov r1, #0x8 bl FUN_0205AFDC add r2, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02056B5C add r0, r5, #0x0 mov r1, #0x1 bl FUN_020556C8 add r0, r5, #0x0 mov r1, #0x1 bl FUN_0205569C mov r1, #0x0 mvn r1, r1 add r0, r5, #0x0 add r2, r1, #0x0 bl FUN_0205543C b _02055DA0 _02055D8E: mov r1, #0x6 add r0, r4, #0x0 lsl r1, r1, #0x6 bl FUN_02058410 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_020560D0 _02055DA0: add r0, r5, #0x0 mov r1, #0x1 bl FUN_0205536C mov r0, #0x1 pop {r3-r7, pc} thumb_func_start FUN_02055DAC FUN_02055DAC: ; 0x02055DAC push {r3-r7, lr} add r5, r0, #0x0 add r7, r1, #0x0 bl FUN_020553A0 add r6, r0, #0x0 bl FUN_020584D4 add r4, r0, #0x0 ldr r0, _02055EF4 ; =0x00000654 bl FUN_020054C8 cmp r4, #0x0 bne _02055E62 add r0, r5, #0x0 bl FUN_020553C4 cmp r0, #0x1 bne _02055DFE add r0, r5, #0x0 bl FUN_02055408 cmp r0, #0x3 blt _02055DFE cmp r7, #0x0 bne _02055DFE add r0, r4, #0x0 mov r1, #0x15 bl FUN_0205AFDC add r2, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02056B5C add r0, r5, #0x0 mov r1, #0x1 bl FUN_0205536C mov r0, #0x1 pop {r3-r7, pc} _02055DFE: add r0, r4, #0x0 bl FUN_02059E74 add r4, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 bl FUN_02056B74 cmp r0, #0x0 beq _02055E18 mov r0, #0x0 pop {r3-r7, pc} _02055E18: mov r1, #0x6 add r0, r6, #0x0 lsl r1, r1, #0x6 bl FUN_02058410 add r0, r4, #0x0 mov r1, #0x8 bl FUN_0205AFDC add r2, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02056B5C add r0, r5, #0x0 bl FUN_02055410 add r0, r5, #0x0 mov r1, #0x1 bl FUN_0205569C add r0, r5, #0x0 mov r1, #0x1 bl FUN_0205536C add r0, r5, #0x0 mov r1, #0x1 bl FUN_02055778 mov r1, #0x0 mvn r1, r1 add r0, r5, #0x0 add r2, r1, #0x0 bl FUN_0205543C mov r0, #0x1 pop {r3-r7, pc} _02055E62: cmp r4, #0x1 bne _02055EF0 add r0, r5, #0x0 bl FUN_02055790 cmp r0, #0x0 bne _02055EAC add r0, r4, #0x0 mov r1, #0x15 bl FUN_0205AFDC add r2, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02056B5C add r0, r5, #0x0 mov r1, #0x1 bl FUN_0205536C add r0, r5, #0x0 bl FUN_020554BC cmp r0, #0x1 bne _02055E9C add r0, r5, #0x0 mov r1, #0x3 bl FUN_0205540C _02055E9C: mov r1, #0x0 mvn r1, r1 add r0, r5, #0x0 add r2, r1, #0x0 bl FUN_0205543C mov r0, #0x1 pop {r3-r7, pc} _02055EAC: mov r1, #0x6 add r0, r6, #0x0 lsl r1, r1, #0x6 bl FUN_02058410 add r0, r4, #0x0 mov r1, #0x8 bl FUN_0205AFDC add r2, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02056B5C add r0, r5, #0x0 mov r1, #0x1 bl FUN_0205569C add r0, r5, #0x0 mov r1, #0x1 bl FUN_0205536C add r0, r5, #0x0 mov r1, #0x1 bl FUN_02055778 mov r1, #0x0 mvn r1, r1 add r0, r5, #0x0 add r2, r1, #0x0 bl FUN_0205543C mov r0, #0x1 pop {r3-r7, pc} _02055EF0: mov r0, #0x0 pop {r3-r7, pc} .balign 4 _02055EF4: .word 0x00000654 thumb_func_start FUN_02055EF8 FUN_02055EF8: ; 0x02055EF8 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_020553A0 add r4, r0, #0x0 bl FUN_020584D4 add r0, r5, #0x0 bl FUN_020554BC cmp r0, #0x1 bne _02055F22 ldr r0, _02055F40 ; =0x00000656 bl FUN_020054C8 add r0, r5, #0x0 add r1, r4, #0x0 mov r2, #0x5f bl FUN_02056B5C b _02055F2C _02055F22: add r0, r5, #0x0 add r1, r4, #0x0 mov r2, #0x5d bl FUN_02056B5C _02055F2C: add r0, r5, #0x0 mov r1, #0x1 bl FUN_0205569C add r0, r5, #0x0 mov r1, #0x1 bl FUN_020557D0 mov r0, #0x1 pop {r3-r5, pc} .balign 4 _02055F40: .word 0x00000656 thumb_func_start FUN_02055F44 FUN_02055F44: ; 0x02055F44 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_020553A0 add r4, r0, #0x0 bl FUN_020584D4 add r0, r5, #0x0 bl FUN_020554BC cmp r0, #0x1 bne _02055F6E ldr r0, _02055F8C ; =0x00000656 bl FUN_020054C8 add r0, r5, #0x0 add r1, r4, #0x0 mov r2, #0x5e bl FUN_02056B5C b _02055F78 _02055F6E: add r0, r5, #0x0 add r1, r4, #0x0 mov r2, #0x5c bl FUN_02056B5C _02055F78: add r0, r5, #0x0 mov r1, #0x1 bl FUN_0205569C add r0, r5, #0x0 mov r1, #0x1 bl FUN_020557D0 mov r0, #0x1 pop {r3-r5, pc} .balign 4 _02055F8C: .word 0x00000656 thumb_func_start FUN_02055F90 FUN_02055F90: ; 0x02055F90 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_020553A0 add r4, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 mov r2, #0x1 bl FUN_02056B74 cmp r0, #0x0 bne _02055FCE mov r0, #0x1 mov r1, #0x14 bl FUN_0205AFDC add r2, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02056B5C add r0, r5, #0x0 mov r1, #0x1 bl FUN_0205536C add r0, r5, #0x0 mov r1, #0x3 bl FUN_0205540C mov r0, #0x1 pop {r3-r5, pc} _02055FCE: mov r0, #0x1 add r1, r0, #0x0 bl FUN_0205AFDC add r2, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02056B5C add r0, r5, #0x0 bl FUN_02055410 add r0, r5, #0x0 mov r1, #0x0 bl FUN_0205536C add r0, r5, #0x0 mov r1, #0x0 bl FUN_020556F4 mov r0, #0x1 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02055FFC FUN_02055FFC: ; 0x02055FFC push {r4, lr} add r4, r0, #0x0 bl FUN_020556B4 cmp r0, #0x1 bne _0205603E add r0, r4, #0x0 bl FUN_020553A0 mov r1, #0x6 lsl r1, r1, #0x6 bl FUN_02058418 add r0, r4, #0x0 bl FUN_020557E8 cmp r0, #0x0 bne _02056026 add r0, r4, #0x0 bl FUN_02055410 _02056026: add r0, r4, #0x0 mov r1, #0x0 bl FUN_0205569C add r0, r4, #0x0 mov r1, #0x0 bl FUN_020557D0 add r0, r4, #0x0 mov r1, #0x0 bl FUN_02055778 _0205603E: pop {r4, pc} thumb_func_start FUN_02056040 FUN_02056040: ; 0x02056040 push {r4-r6, lr} sub sp, #0x18 add r5, r1, #0x0 bl FUN_020553A0 add r4, r0, #0x0 bl FUN_02058738 add r6, r0, #0x0 add r0, r4, #0x0 add r1, sp, #0xc bl FUN_02058B5C add r4, sp, #0xc add r3, sp, #0x0 ldmia r4!, {r0-r1} add r2, r3, #0x0 stmia r3!, {r0-r1} ldr r0, [r4, #0x0] add r1, r2, #0x0 mov r2, #0x1 str r0, [r3, #0x0] add r0, r5, #0x0 lsl r2, r2, #0xe bl FUN_02059E28 add r0, r6, #0x0 add r1, sp, #0x0 bl FUN_02059E9C cmp r0, #0x0 beq _02056088 ldr r1, [sp, #0x4] ldr r0, [sp, #0x10] cmp r0, r1 bne _0205608E _02056088: add sp, #0x18 mov r0, #0x0 pop {r4-r6, pc} _0205608E: cmp r0, r1 ble _02056098 add sp, #0x18 mov r0, #0x2 pop {r4-r6, pc} _02056098: mov r0, #0x1 add sp, #0x18 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_020560A0 FUN_020560A0: ; 0x020560A0 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_02055408 add r1, r0, #0x0 cmp r4, #0x1 bne _020560B8 sub r1, r1, #0x1 bpl _020560C4 mov r0, #0x0 pop {r3-r5, pc} _020560B8: cmp r4, #0x2 bne _020560C4 add r1, r1, #0x1 cmp r1, #0x3 ble _020560C4 mov r1, #0x3 _020560C4: add r0, r5, #0x0 bl FUN_0205540C mov r0, #0x1 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020560D0 FUN_020560D0: ; 0x020560D0 push {r3-r7, lr} add r5, r0, #0x0 add r6, r1, #0x0 bl FUN_020553A0 add r7, r0, #0x0 add r0, r5, #0x0 mov r4, #0x10 bl FUN_02055408 cmp r0, #0x1 beq _020560F2 cmp r0, #0x2 beq _020560F6 cmp r0, #0x3 beq _020560FA b _020560FC _020560F2: mov r4, #0x50 b _020560FC _020560F6: mov r4, #0x14 b _020560FC _020560FA: mov r4, #0x14 _020560FC: add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_0205AFDC add r2, r0, #0x0 add r0, r5, #0x0 add r1, r7, #0x0 bl FUN_02056B5C pop {r3-r7, pc} thumb_func_start FUN_02056110 FUN_02056110: ; 0x02056110 push {r4-r7, lr} sub sp, #0xc add r6, r0, #0x0 add r7, r1, #0x0 str r2, [sp, #0x8] add r5, r3, #0x0 bl FUN_020553C4 add r4, r0, #0x0 add r0, r6, #0x0 bl FUN_020553A0 add r1, r0, #0x0 cmp r4, #0x0 beq _02056136 cmp r4, #0x1 beq _0205614C cmp r4, #0x2 bne _02056162 _02056136: str r5, [sp, #0x0] add r0, sp, #0x10 ldrh r0, [r0, #0x10] ldr r3, [sp, #0x8] add r2, r7, #0x0 str r0, [sp, #0x4] add r0, r6, #0x0 bl FUN_0205616C add sp, #0xc pop {r4-r7, pc} _0205614C: str r5, [sp, #0x0] add r0, sp, #0x10 ldrh r0, [r0, #0x10] ldr r3, [sp, #0x8] add r2, r7, #0x0 str r0, [sp, #0x4] add r0, r6, #0x0 bl FUN_020563A8 add sp, #0xc pop {r4-r7, pc} _02056162: bl ErrorHandling add sp, #0xc pop {r4-r7, pc} .balign 4 thumb_func_start FUN_0205616C FUN_0205616C: ; 0x0205616C push {r3-r6, lr} sub sp, #0x4 add r6, r3, #0x0 add r4, r1, #0x0 add r1, r6, #0x0 add r5, r0, #0x0 bl FUN_020561D0 cmp r0, #0x0 beq _0205618C cmp r0, #0x1 beq _020561A2 cmp r0, #0x2 beq _020561B8 add sp, #0x4 pop {r3-r6, pc} _0205618C: add r3, sp, #0x8 ldrh r0, [r3, #0x14] add r1, r4, #0x0 add r2, r6, #0x0 str r0, [sp, #0x0] ldrh r3, [r3, #0x10] add r0, r5, #0x0 bl FUN_02056288 add sp, #0x4 pop {r3-r6, pc} _020561A2: add r3, sp, #0x8 ldrh r0, [r3, #0x14] add r1, r4, #0x0 add r2, r6, #0x0 str r0, [sp, #0x0] ldrh r3, [r3, #0x10] add r0, r5, #0x0 bl FUN_020562A8 add sp, #0x4 pop {r3-r6, pc} _020561B8: add r3, sp, #0x8 ldrh r0, [r3, #0x14] add r1, r4, #0x0 add r2, r6, #0x0 str r0, [sp, #0x0] ldrh r3, [r3, #0x10] add r0, r5, #0x0 bl FUN_02056384 add sp, #0x4 pop {r3-r6, pc} .balign 4 thumb_func_start FUN_020561D0 FUN_020561D0: ; 0x020561D0 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02056244 add r4, r0, #0x0 bl FUN_020561EC add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_0205536C add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020561EC FUN_020561EC: ; 0x020561EC push {r3, lr} cmp r0, #0x0 beq _020561FC cmp r0, #0x1 beq _02056200 cmp r0, #0x2 beq _02056204 b _02056208 _020561FC: mov r0, #0x0 pop {r3, pc} _02056200: mov r0, #0x1 pop {r3, pc} _02056204: mov r0, #0x2 pop {r3, pc} _02056208: bl ErrorHandling mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_02056210 FUN_02056210: ; 0x02056210 push {r3-r5, lr} add r5, r1, #0x0 add r0, r5, #0x0 add r4, r2, #0x0 bl FUN_020549F0 cmp r0, #0x1 bne _02056224 mov r0, #0x4 pop {r3-r5, pc} _02056224: add r0, r5, #0x0 bl FUN_020549E4 cmp r0, #0x1 bne _02056232 mov r0, #0x8 pop {r3-r5, pc} _02056232: add r0, r5, #0x0 bl FUN_020549D8 cmp r0, #0x1 bne _0205623E mov r4, #0xc _0205623E: add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02056244 FUN_02056244: ; 0x02056244 push {r3-r5, lr} add r4, r1, #0x0 mov r1, #0x0 mvn r1, r1 add r5, r0, #0x0 cmp r4, r1 bne _0205625C mov r1, #0x0 bl FUN_0205536C mov r0, #0x0 pop {r3-r5, pc} _0205625C: bl FUN_020552F8 cmp r0, r4 beq _0205627A add r0, r5, #0x0 bl FUN_02055370 cmp r0, #0x1 beq _0205627A add r0, r5, #0x0 mov r1, #0x2 bl FUN_0205536C mov r0, #0x2 pop {r3-r5, pc} _0205627A: add r0, r5, #0x0 mov r1, #0x1 bl FUN_0205536C mov r0, #0x1 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02056288 FUN_02056288: ; 0x02056288 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_020584C4 mov r1, #0x0 bl FUN_0205AFDC add r2, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02056B5C pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020562A8 FUN_020562A8: ; 0x020562A8 push {r3-r7, lr} add r5, r0, #0x0 add r6, r1, #0x0 str r2, [sp, #0x0] bl FUN_02056B74 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_020553C4 cmp r0, #0x2 beq _0205632A mov r0, #0x4 tst r0, r4 beq _020562CA mov r7, #0x38 b _0205636C _020562CA: cmp r4, #0x0 beq _020562E6 mov r0, #0x8 mov r7, #0x1c tst r0, r4 bne _020562DC ldr r0, _02056380 ; =0x00000601 bl FUN_020054C8 _020562DC: ldr r1, [sp, #0x0] add r0, r6, #0x0 bl FUN_020584CC b _0205636C _020562E6: add r0, r5, #0x0 mov r4, #0xc bl FUN_0205545C bl FUN_02055474 cmp r0, #0x1 bne _02056306 add r1, sp, #0x8 ldrh r1, [r1, #0x10] add r0, r5, #0x0 bl FUN_02057114 cmp r0, #0x1 bne _02056306 mov r4, #0x58 _02056306: add r0, r6, #0x0 bl FUN_02058720 add r1, r0, #0x0 lsl r1, r1, #0x18 add r0, r6, #0x0 lsr r1, r1, #0x18 add r2, r4, #0x0 bl FUN_02056210 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_020572D4 add r0, r5, #0x0 bl FUN_020557A4 b _0205636C _0205632A: cmp r4, #0x0 beq _02056332 cmp r4, #0x20 bne _02056356 _02056332: add r0, r6, #0x0 bl FUN_02058720 add r1, r0, #0x0 lsl r1, r1, #0x18 add r0, r6, #0x0 lsr r1, r1, #0x18 mov r2, #0xc bl FUN_02056210 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_020572D4 add r0, r5, #0x0 bl FUN_020557A4 b _0205636C _02056356: mov r0, #0x8 mov r7, #0x1c tst r0, r4 bne _02056364 ldr r0, _02056380 ; =0x00000601 bl FUN_020054C8 _02056364: ldr r1, [sp, #0x0] add r0, r6, #0x0 bl FUN_020584CC _0205636C: ldr r0, [sp, #0x0] add r1, r7, #0x0 bl FUN_0205AFDC add r2, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02056B5C pop {r3-r7, pc} .balign 4 _02056380: .word 0x00000601 thumb_func_start FUN_02056384 FUN_02056384: ; 0x02056384 push {r4-r6, lr} add r6, r2, #0x0 add r5, r0, #0x0 add r4, r1, #0x0 add r0, r6, #0x0 mov r1, #0x28 bl FUN_0205AFDC add r2, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02056B5C add r0, r4, #0x0 add r1, r6, #0x0 bl FUN_020584CC pop {r4-r6, pc} thumb_func_start FUN_020563A8 FUN_020563A8: ; 0x020563A8 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 add r7, r3, #0x0 bl FUN_020554BC cmp r0, #0x1 add r0, sp, #0x10 bne _020563D6 ldrh r1, [r0, #0x10] add r2, r6, #0x0 add r3, r7, #0x0 str r1, [sp, #0x0] ldrh r0, [r0, #0x14] add r1, r4, #0x0 str r0, [sp, #0x4] add r0, r5, #0x0 bl FUN_020567E4 add sp, #0x8 pop {r3-r7, pc} _020563D6: ldrh r1, [r0, #0x10] add r2, r6, #0x0 add r3, r7, #0x0 str r1, [sp, #0x0] ldrh r0, [r0, #0x14] add r1, r4, #0x0 str r0, [sp, #0x4] add r0, r5, #0x0 bl FUN_020564C8 add sp, #0x8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020563F0 FUN_020563F0: ; 0x020563F0 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_020553C4 cmp r0, #0x1 bne _0205642C mov r0, #0x2 tst r0, r4 beq _0205642C add r0, r5, #0x0 mov r4, #0x1 bl FUN_020554BC cmp r0, #0x1 bne _02056412 mov r4, #0x0 _02056412: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_020554AC cmp r4, #0x0 bne _02056426 ldr r0, _02056430 ; =0x0000061C bl FUN_020054C8 pop {r3-r5, pc} _02056426: ldr r0, _02056434 ; =0x00000619 bl FUN_020054C8 _0205642C: pop {r3-r5, pc} nop _02056430: .word 0x0000061C _02056434: .word 0x00000619 thumb_func_start FUN_02056438 FUN_02056438: ; 0x02056438 push {r3-r5, lr} add r5, r1, #0x0 mov r4, #0x4c bl FUN_02055408 cmp r0, #0x1 beq _02056450 cmp r0, #0x2 beq _02056454 cmp r0, #0x3 beq _02056458 b _0205645A _02056450: mov r4, #0x10 b _0205645A _02056454: mov r4, #0x50 b _0205645A _02056458: mov r4, #0x14 _0205645A: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0205AFDC pop {r3-r5, pc} thumb_func_start FUN_02056464 FUN_02056464: ; 0x02056464 push {r3-r5, lr} add r5, r0, #0x0 mov r1, #0x1 mov r2, #0x3 bl FUN_0205541C add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0205570C cmp r0, #0x0 bne _02056488 cmp r4, #0x2 blt _02056488 add r0, r5, #0x0 mov r1, #0x1 bl FUN_020556F4 _02056488: cmp r4, #0x3 bne _02056490 mov r0, #0x1 pop {r3-r5, pc} _02056490: mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02056494 FUN_02056494: ; 0x02056494 push {r4-r6, lr} add r5, r0, #0x0 mov r6, #0x1 bl FUN_02055408 sub r4, r0, #0x1 bpl _020564A6 mov r4, #0x0 add r6, r4, #0x0 _020564A6: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0205540C add r0, r5, #0x0 bl FUN_0205570C cmp r0, #0x1 bne _020564C4 cmp r4, #0x0 bne _020564C4 add r0, r5, #0x0 mov r1, #0x0 bl FUN_020556F4 _020564C4: add r0, r6, #0x0 pop {r4-r6, pc} thumb_func_start FUN_020564C8 FUN_020564C8: ; 0x020564C8 push {r3-r7, lr} sub sp, #0x8 add r7, r1, #0x0 add r1, r3, #0x0 add r6, r0, #0x0 str r3, [sp, #0x4] ldr r5, [sp, #0x20] ldr r4, [sp, #0x24] bl FUN_0205653C cmp r0, #0x3 bhi _02056538 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _020564EC: ; jump table (using 16-bit offset) .short _020564F4 - _020564EC - 2; case 0 .short _02056506 - _020564EC - 2; case 1 .short _02056518 - _020564EC - 2; case 2 .short _0205652A - _020564EC - 2; case 3 _020564F4: ldr r2, [sp, #0x4] add r0, r6, #0x0 add r1, r7, #0x0 add r3, r5, #0x0 str r4, [sp, #0x0] bl FUN_020565F0 add sp, #0x8 pop {r3-r7, pc} _02056506: ldr r2, [sp, #0x4] add r0, r6, #0x0 add r1, r7, #0x0 add r3, r5, #0x0 str r4, [sp, #0x0] bl FUN_02056614 add sp, #0x8 pop {r3-r7, pc} _02056518: ldr r2, [sp, #0x4] add r0, r6, #0x0 add r1, r7, #0x0 add r3, r5, #0x0 str r4, [sp, #0x0] bl FUN_02056704 add sp, #0x8 pop {r3-r7, pc} _0205652A: ldr r2, [sp, #0x4] add r0, r6, #0x0 add r1, r7, #0x0 add r3, r5, #0x0 str r4, [sp, #0x0] bl FUN_02056740 _02056538: add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_0205653C FUN_0205653C: ; 0x0205653C push {r3-r5, lr} add r5, r0, #0x0 bl FUN_0205658C add r4, r0, #0x0 bl FUN_02056558 add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_0205536C add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02056558 FUN_02056558: ; 0x02056558 push {r3, lr} cmp r0, #0x3 bhi _02056582 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0205656A: ; jump table (using 16-bit offset) .short _02056572 - _0205656A - 2; case 0 .short _02056576 - _0205656A - 2; case 1 .short _0205657A - _0205656A - 2; case 2 .short _0205657E - _0205656A - 2; case 3 _02056572: mov r0, #0x0 pop {r3, pc} _02056576: mov r0, #0x1 pop {r3, pc} _0205657A: mov r0, #0x2 pop {r3, pc} _0205657E: mov r0, #0x1 pop {r3, pc} _02056582: bl ErrorHandling mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0205658C FUN_0205658C: ; 0x0205658C push {r4-r6, lr} add r4, r1, #0x0 mov r1, #0x0 mvn r1, r1 add r5, r0, #0x0 cmp r4, r1 bne _020565BA bl FUN_0205570C cmp r0, #0x1 bne _020565AE add r0, r5, #0x0 mov r1, #0x1 bl FUN_0205536C mov r0, #0x3 pop {r4-r6, pc} _020565AE: add r0, r5, #0x0 mov r1, #0x0 bl FUN_0205536C mov r0, #0x0 pop {r4-r6, pc} _020565BA: bl FUN_020552F8 add r6, r0, #0x0 add r0, r5, #0x0 mov r1, #0x0 bl FUN_020556F4 cmp r6, r4 beq _020565E2 add r0, r5, #0x0 bl FUN_02055370 cmp r0, #0x1 beq _020565E2 add r0, r5, #0x0 mov r1, #0x2 bl FUN_0205536C mov r0, #0x2 pop {r4-r6, pc} _020565E2: add r0, r5, #0x0 mov r1, #0x1 bl FUN_0205536C mov r0, #0x1 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_020565F0 FUN_020565F0: ; 0x020565F0 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_020584C4 mov r1, #0x0 bl FUN_0205AFDC add r2, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02056B5C add r0, r5, #0x0 bl FUN_02055410 pop {r3-r5, pc} thumb_func_start FUN_02056614 FUN_02056614: ; 0x02056614 push {r3-r7, lr} add r5, r0, #0x0 add r6, r1, #0x0 str r2, [sp, #0x0] bl FUN_02056B74 add r4, r0, #0x0 mov r0, #0x4 tst r0, r4 beq _02056638 add r0, r5, #0x0 mov r7, #0x38 bl FUN_020572D4 add r0, r5, #0x0 bl FUN_020557A4 b _020566EA _02056638: mov r0, #0x10 tst r0, r4 beq _02056656 add r0, r5, #0x0 mov r7, #0x50 bl FUN_020572D4 add r0, r5, #0x0 bl FUN_020557A4 add r0, r5, #0x0 mov r1, #0x1 bl FUN_0205569C b _020566EA _02056656: mov r0, #0x40 tst r0, r4 beq _02056680 add r0, r6, #0x0 mov r7, #0x0 bl FUN_020584D4 str r0, [sp, #0x0] ldr r1, [sp, #0x0] add r0, r6, #0x0 bl FUN_020584CC add r0, r5, #0x0 bl FUN_02055410 sub r1, r7, #0x1 add r0, r5, #0x0 add r2, r1, #0x0 bl FUN_0205543C b _020566EA _02056680: cmp r4, #0x0 beq _020566D4 ldr r2, [sp, #0x0] add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_020572EC cmp r0, #0x0 bne _020566B0 mov r0, #0x8 mov r7, #0x1c tst r0, r4 bne _020566A0 ldr r0, _02056700 ; =0x00000601 bl FUN_020054C8 _020566A0: ldr r1, [sp, #0x0] add r0, r6, #0x0 bl FUN_020584CC add r0, r5, #0x0 bl FUN_02055410 b _020566EA _020566B0: add r0, r6, #0x0 mov r7, #0x0 bl FUN_020584D4 str r0, [sp, #0x0] ldr r1, [sp, #0x0] add r0, r6, #0x0 bl FUN_020584CC add r0, r5, #0x0 bl FUN_02055410 sub r1, r7, #0x1 add r0, r5, #0x0 add r2, r1, #0x0 bl FUN_0205543C b _020566EA _020566D4: add r0, r5, #0x0 mov r7, #0x50 bl FUN_020572D4 add r0, r5, #0x0 bl FUN_020557A4 add r0, r5, #0x0 mov r1, #0x2 bl FUN_0205540C _020566EA: ldr r0, [sp, #0x0] add r1, r7, #0x0 bl FUN_0205AFDC add r2, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02056B5C pop {r3-r7, pc} nop _02056700: .word 0x00000601 thumb_func_start FUN_02056704 FUN_02056704: ; 0x02056704 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 bl FUN_02055410 add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_020572EC cmp r0, #0x1 beq _0205673E add r0, r6, #0x0 mov r1, #0x28 bl FUN_0205AFDC add r2, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02056B5C add r0, r4, #0x0 add r1, r6, #0x0 bl FUN_020584CC add r0, r5, #0x0 bl FUN_02055410 _0205673E: pop {r4-r6, pc} thumb_func_start FUN_02056740 FUN_02056740: ; 0x02056740 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 add r7, r1, #0x0 bl FUN_02056494 str r0, [sp, #0x0] add r0, r5, #0x0 bl FUN_02055314 add r6, r0, #0x0 add r0, r5, #0x0 add r1, r7, #0x0 add r2, r6, #0x0 bl FUN_02056B74 add r4, r0, #0x0 mov r0, #0x4 tst r0, r4 beq _02056774 add r0, r6, #0x0 mov r1, #0x38 bl FUN_0205AFDC str r0, [sp, #0x4] b _020567C4 _02056774: mov r0, #0x40 tst r0, r4 beq _0205678C add r0, r6, #0x0 mov r1, #0x0 bl FUN_0205AFDC str r0, [sp, #0x4] add r0, r5, #0x0 bl FUN_02055410 b _020567C4 _0205678C: cmp r4, #0x0 beq _020567BA mov r0, #0x0 str r0, [sp, #0x0] add r0, r6, #0x0 mov r1, #0x1c bl FUN_0205AFDC str r0, [sp, #0x4] mov r0, #0x8 tst r0, r4 bne _020567AA ldr r0, _020567E0 ; =0x00000601 bl FUN_020054C8 _020567AA: add r0, r7, #0x0 add r1, r6, #0x0 bl FUN_020584CC add r0, r5, #0x0 bl FUN_02055410 b _020567C4 _020567BA: add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02056438 str r0, [sp, #0x4] _020567C4: ldr r0, [sp, #0x0] cmp r0, #0x0 bne _020567D2 add r0, r5, #0x0 mov r1, #0x0 bl FUN_020556F4 _020567D2: ldr r2, [sp, #0x4] add r0, r5, #0x0 add r1, r7, #0x0 bl FUN_02056B5C add sp, #0x8 pop {r3-r7, pc} .balign 4 _020567E0: .word 0x00000601 thumb_func_start FUN_020567E4 FUN_020567E4: ; 0x020567E4 push {r3-r7, lr} sub sp, #0x8 add r7, r1, #0x0 add r1, r3, #0x0 add r6, r0, #0x0 str r3, [sp, #0x4] ldr r5, [sp, #0x20] ldr r4, [sp, #0x24] bl FUN_02056858 cmp r0, #0x3 bhi _02056854 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02056808: ; jump table (using 16-bit offset) .short _02056810 - _02056808 - 2; case 0 .short _02056822 - _02056808 - 2; case 1 .short _02056834 - _02056808 - 2; case 2 .short _02056846 - _02056808 - 2; case 3 _02056810: ldr r2, [sp, #0x4] add r0, r6, #0x0 add r1, r7, #0x0 add r3, r5, #0x0 str r4, [sp, #0x0] bl FUN_02056914 add sp, #0x8 pop {r3-r7, pc} _02056822: ldr r2, [sp, #0x4] add r0, r6, #0x0 add r1, r7, #0x0 add r3, r5, #0x0 str r4, [sp, #0x0] bl FUN_02056938 add sp, #0x8 pop {r3-r7, pc} _02056834: ldr r2, [sp, #0x4] add r0, r6, #0x0 add r1, r7, #0x0 add r3, r5, #0x0 str r4, [sp, #0x0] bl FUN_02056A7C add sp, #0x8 pop {r3-r7, pc} _02056846: ldr r2, [sp, #0x4] add r0, r6, #0x0 add r1, r7, #0x0 add r3, r5, #0x0 str r4, [sp, #0x0] bl FUN_02056AB8 _02056854: add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_02056858 FUN_02056858: ; 0x02056858 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_020568A8 add r4, r0, #0x0 bl FUN_02056874 add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_0205536C add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02056874 FUN_02056874: ; 0x02056874 push {r3, lr} cmp r0, #0x3 bhi _0205689E add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02056886: ; jump table (using 16-bit offset) .short _0205688E - _02056886 - 2; case 0 .short _02056892 - _02056886 - 2; case 1 .short _02056896 - _02056886 - 2; case 2 .short _0205689A - _02056886 - 2; case 3 _0205688E: mov r0, #0x0 pop {r3, pc} _02056892: mov r0, #0x1 pop {r3, pc} _02056896: mov r0, #0x2 pop {r3, pc} _0205689A: mov r0, #0x1 pop {r3, pc} _0205689E: bl ErrorHandling mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_020568A8 FUN_020568A8: ; 0x020568A8 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_02055408 add r6, r0, #0x0 mov r0, #0x0 mvn r0, r0 cmp r4, r0 bne _020568D8 cmp r6, #0x2 bge _020568CC add r0, r5, #0x0 mov r1, #0x0 bl FUN_0205536C mov r0, #0x0 pop {r4-r6, pc} _020568CC: add r0, r5, #0x0 mov r1, #0x1 bl FUN_0205536C mov r0, #0x3 pop {r4-r6, pc} _020568D8: add r0, r5, #0x0 bl FUN_020552F8 cmp r0, r4 beq _02056908 add r0, r5, #0x0 bl FUN_02055370 cmp r0, #0x1 beq _02056908 cmp r6, #0x2 bge _020568FC add r0, r5, #0x0 mov r1, #0x2 bl FUN_0205536C mov r0, #0x2 pop {r4-r6, pc} _020568FC: add r0, r5, #0x0 mov r1, #0x1 bl FUN_0205536C mov r0, #0x3 pop {r4-r6, pc} _02056908: add r0, r5, #0x0 mov r1, #0x1 bl FUN_0205536C mov r0, #0x1 pop {r4-r6, pc} thumb_func_start FUN_02056914 FUN_02056914: ; 0x02056914 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_020584C4 mov r1, #0x0 bl FUN_0205AFDC add r2, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02056B5C add r0, r5, #0x0 bl FUN_02055410 pop {r3-r5, pc} thumb_func_start FUN_02056938 FUN_02056938: ; 0x02056938 push {r3-r7, lr} add r5, r0, #0x0 add r6, r1, #0x0 add r7, r2, #0x0 bl FUN_02056B74 add r4, r0, #0x0 mov r0, #0x4 tst r0, r4 beq _0205696A add r0, r7, #0x0 mov r1, #0x38 bl FUN_0205AFDC str r0, [sp, #0x0] add r0, r5, #0x0 bl FUN_02056464 add r0, r5, #0x0 bl FUN_020572D4 add r0, r5, #0x0 bl FUN_020557A4 b _02056A6C _0205696A: mov r0, #0x10 tst r0, r4 beq _020569BA add r0, r5, #0x0 bl FUN_02055408 cmp r0, #0x3 blt _02056994 add r0, r5, #0x0 add r1, r7, #0x0 bl FUN_02056438 str r0, [sp, #0x0] add r0, r5, #0x0 bl FUN_020557A4 add r0, r5, #0x0 mov r1, #0x1 bl FUN_0205569C b _02056A6C _02056994: add r0, r7, #0x0 mov r1, #0x1c bl FUN_0205AFDC str r0, [sp, #0x0] mov r0, #0x8 tst r0, r4 bne _020569AA ldr r0, _02056A78 ; =0x00000601 bl FUN_020054C8 _020569AA: add r0, r6, #0x0 add r1, r7, #0x0 bl FUN_020584CC add r0, r5, #0x0 bl FUN_02055410 b _02056A6C _020569BA: mov r0, #0x40 tst r0, r4 beq _020569EC add r0, r6, #0x0 bl FUN_020584D4 add r4, r0, #0x0 mov r1, #0x0 bl FUN_0205AFDC str r0, [sp, #0x0] add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_020584CC add r0, r5, #0x0 bl FUN_02055410 mov r1, #0x0 mvn r1, r1 add r0, r5, #0x0 add r2, r1, #0x0 bl FUN_0205543C b _02056A6C _020569EC: cmp r4, #0x0 beq _02056A50 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 bl FUN_020572EC cmp r0, #0x0 bne _02056A24 add r0, r7, #0x0 mov r1, #0x1c bl FUN_0205AFDC str r0, [sp, #0x0] mov r0, #0x8 tst r0, r4 bne _02056A14 ldr r0, _02056A78 ; =0x00000601 bl FUN_020054C8 _02056A14: add r0, r6, #0x0 add r1, r7, #0x0 bl FUN_020584CC add r0, r5, #0x0 bl FUN_02055410 b _02056A6C _02056A24: add r0, r6, #0x0 bl FUN_020584D4 add r4, r0, #0x0 mov r1, #0x0 bl FUN_0205AFDC str r0, [sp, #0x0] add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_020584CC add r0, r5, #0x0 bl FUN_02055410 mov r1, #0x0 mvn r1, r1 add r0, r5, #0x0 add r2, r1, #0x0 bl FUN_0205543C b _02056A6C _02056A50: add r0, r5, #0x0 add r1, r7, #0x0 bl FUN_02056438 str r0, [sp, #0x0] add r0, r5, #0x0 bl FUN_02056464 add r0, r5, #0x0 bl FUN_020572D4 add r0, r5, #0x0 bl FUN_020557A4 _02056A6C: ldr r2, [sp, #0x0] add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02056B5C pop {r3-r7, pc} .balign 4 _02056A78: .word 0x00000601 thumb_func_start FUN_02056A7C FUN_02056A7C: ; 0x02056A7C push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 bl FUN_02055410 add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_020572EC cmp r0, #0x1 beq _02056AB6 add r0, r6, #0x0 mov r1, #0x28 bl FUN_0205AFDC add r2, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02056B5C add r0, r4, #0x0 add r1, r6, #0x0 bl FUN_020584CC add r0, r5, #0x0 bl FUN_02055410 _02056AB6: pop {r4-r6, pc} thumb_func_start FUN_02056AB8 FUN_02056AB8: ; 0x02056AB8 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 add r7, r1, #0x0 bl FUN_02056494 str r0, [sp, #0x0] add r0, r5, #0x0 bl FUN_02055314 add r6, r0, #0x0 add r0, r5, #0x0 add r1, r7, #0x0 add r2, r6, #0x0 bl FUN_02056B74 add r4, r0, #0x0 mov r0, #0x4 tst r0, r4 beq _02056AEC add r0, r6, #0x0 mov r1, #0x38 bl FUN_0205AFDC str r0, [sp, #0x4] b _02056B3C _02056AEC: mov r0, #0x40 tst r0, r4 beq _02056B04 add r0, r6, #0x0 mov r1, #0x0 bl FUN_0205AFDC str r0, [sp, #0x4] add r0, r5, #0x0 bl FUN_02055410 b _02056B3C _02056B04: cmp r4, #0x0 beq _02056B32 mov r0, #0x0 str r0, [sp, #0x0] add r0, r6, #0x0 mov r1, #0x1c bl FUN_0205AFDC str r0, [sp, #0x4] mov r0, #0x8 tst r0, r4 bne _02056B22 ldr r0, _02056B58 ; =0x00000601 bl FUN_020054C8 _02056B22: add r0, r7, #0x0 add r1, r6, #0x0 bl FUN_020584CC add r0, r5, #0x0 bl FUN_02055410 b _02056B3C _02056B32: add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02056438 str r0, [sp, #0x4] _02056B3C: ldr r0, [sp, #0x0] cmp r0, #0x0 bne _02056B4A add r0, r5, #0x0 mov r1, #0x0 bl FUN_020556F4 _02056B4A: ldr r2, [sp, #0x4] add r0, r5, #0x0 add r1, r7, #0x0 bl FUN_02056B5C add sp, #0x8 pop {r3-r7, pc} .balign 4 _02056B58: .word 0x00000601 thumb_func_start FUN_02056B5C FUN_02056B5C: ; 0x02056B5C push {r3-r5, lr} add r4, r2, #0x0 add r5, r1, #0x0 add r1, r4, #0x0 bl FUN_02055460 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0205ADDC pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02056B74 FUN_02056B74: ; 0x02056B74 push {r3-r7, lr} add r5, r0, #0x0 add r6, r1, #0x0 add r7, r2, #0x0 mov r4, #0x0 bl FUN_02056C0C mov r1, #0xa str r0, [sp, #0x0] tst r0, r1 beq _02056BA0 mov r0, #0x1 orr r4, r0 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 bl FUN_02056D58 cmp r0, #0x0 beq _02056BA0 mov r0, #0x8 orr r4, r0 _02056BA0: ldr r0, [sp, #0x0] mov r1, #0x4 tst r0, r1 beq _02056BAC mov r0, #0x2 orr r4, r0 _02056BAC: add r0, r5, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 bl FUN_02056CCC cmp r0, #0x0 beq _02056BBE mov r0, #0x4 orr r4, r0 _02056BBE: add r0, r5, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 bl FUN_02056E04 cmp r0, #0x1 bne _02056BD0 mov r0, #0x10 orr r4, r0 _02056BD0: add r0, r5, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 bl FUN_02056E6C cmp r0, #0x1 bne _02056BE2 mov r0, #0x20 orr r4, r0 _02056BE2: add r0, r5, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 bl FUN_02056EC8 cmp r0, #0x1 bne _02056BF4 mov r0, #0x41 orr r4, r0 _02056BF4: add r0, r5, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 bl FUN_02056F78 cmp r0, #0x1 bne _02056C06 mov r0, #0x1 orr r4, r0 _02056C06: add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02056C0C FUN_02056C0C: ; 0x02056C0C push {r3-r7, lr} sub sp, #0x28 add r5, r1, #0x0 str r2, [sp, #0x4] add r0, r5, #0x0 bl FUN_02058B2C add r7, r0, #0x0 ldr r0, [sp, #0x4] bl FUN_02059BF4 str r0, [sp, #0x14] add r0, r5, #0x0 bl FUN_02058B3C str r0, [sp, #0x8] add r0, r5, #0x0 bl FUN_02058B4C str r0, [sp, #0xc] ldr r0, [sp, #0x4] bl FUN_02059C00 str r0, [sp, #0x10] add r0, r5, #0x0 add r1, sp, #0x1c bl FUN_02058B5C ldr r1, [sp, #0x14] ldr r6, [sp, #0xc] ldr r3, [sp, #0x10] ldr r2, [sp, #0x8] add r0, r5, #0x0 add r1, r7, r1 add r3, r6, r3 mov r4, #0x0 bl FUN_02059A08 cmp r0, #0x1 bne _02056C60 mov r0, #0x1 orr r4, r0 _02056C60: add r0, r5, #0x0 bl FUN_02058738 ldr r2, [sp, #0x14] add r1, sp, #0x18 str r1, [sp, #0x0] ldr r6, [sp, #0xc] ldr r3, [sp, #0x10] add r1, sp, #0x1c add r2, r7, r2 add r3, r6, r3 bl FUN_0204A7C8 cmp r0, #0x1 bne _02056C90 mov r0, #0x2 orr r4, r0 add r1, sp, #0x18 mov r0, #0x0 ldrsb r0, [r1, r0] cmp r0, #0x0 beq _02056C90 mov r0, #0x8 orr r4, r0 _02056C90: ldr r3, [sp, #0xc] ldr r2, [sp, #0x10] ldr r1, [sp, #0x14] add r2, r3, r2 ldr r3, [sp, #0x4] add r0, r5, #0x0 add r1, r7, r1 bl FUN_02059A60 cmp r0, #0x1 bne _02056CAA mov r0, #0x2 orr r4, r0 _02056CAA: add r0, r5, #0x0 ldr r1, [sp, #0x14] ldr r5, [sp, #0xc] ldr r3, [sp, #0x10] ldr r2, [sp, #0x8] add r1, r7, r1 add r3, r5, r3 bl FUN_0205995C cmp r0, #0x1 bne _02056CC4 mov r0, #0x4 orr r4, r0 _02056CC4: add r0, r4, #0x0 add sp, #0x28 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02056CCC FUN_02056CCC: ; 0x02056CCC push {r3-r7, lr} mov r0, #0x0 add r4, r2, #0x0 mvn r0, r0 add r5, r1, #0x0 cmp r4, r0 beq _02056D54 add r0, r5, #0x0 bl FUN_02058738 str r0, [sp, #0x0] add r0, r5, #0x0 bl FUN_02058B2C add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02059BF4 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02058B4C add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02059C00 add r2, r0, #0x0 ldr r0, [sp, #0x0] add r1, r6, r7 add r2, r5, r2 bl FUN_0204A6E0 cmp r4, #0x3 bhi _02056D54 add r1, r4, r4 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02056D1C: ; jump table (using 16-bit offset) .short _02056D24 - _02056D1C - 2; case 0 .short _02056D30 - _02056D1C - 2; case 1 .short _02056D3C - _02056D1C - 2; case 2 .short _02056D48 - _02056D1C - 2; case 3 _02056D24: bl FUN_02054848 cmp r0, #0x1 bne _02056D54 mov r0, #0x1 pop {r3-r7, pc} _02056D30: bl FUN_02054854 cmp r0, #0x1 bne _02056D54 mov r0, #0x1 pop {r3-r7, pc} _02056D3C: bl FUN_02054860 cmp r0, #0x1 bne _02056D54 mov r0, #0x1 pop {r3-r7, pc} _02056D48: bl FUN_0205486C cmp r0, #0x1 bne _02056D54 mov r0, #0x1 pop {r3-r7, pc} _02056D54: mov r0, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02056D58 FUN_02056D58: ; 0x02056D58 push {r3-r7, lr} mov r0, #0x0 add r4, r2, #0x0 mvn r0, r0 add r5, r1, #0x0 cmp r4, r0 beq _02056E00 add r0, r5, #0x0 bl FUN_02058738 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02058B2C add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02058B4C str r0, [sp, #0x0] ldr r2, [sp, #0x0] add r0, r7, #0x0 add r1, r6, #0x0 bl FUN_0204A6E0 add r5, r0, #0x0 cmp r4, #0x3 bhi _02056DD8 add r1, r4, r4 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02056D9A: ; jump table (using 16-bit offset) .short _02056DA2 - _02056D9A - 2; case 0 .short _02056DAE - _02056D9A - 2; case 1 .short _02056DBC - _02056D9A - 2; case 2 .short _02056DCA - _02056D9A - 2; case 3 _02056DA2: bl FUN_020547D4 cmp r0, #0x1 bne _02056DAE mov r0, #0x1 pop {r3-r7, pc} _02056DAE: add r0, r5, #0x0 bl FUN_020547E0 cmp r0, #0x1 bne _02056DBC mov r0, #0x1 pop {r3-r7, pc} _02056DBC: add r0, r5, #0x0 bl FUN_020547C8 cmp r0, #0x1 bne _02056DCA mov r0, #0x1 pop {r3-r7, pc} _02056DCA: add r0, r5, #0x0 bl FUN_020547BC cmp r0, #0x1 bne _02056DD8 mov r0, #0x1 pop {r3-r7, pc} _02056DD8: add r0, r4, #0x0 bl FUN_02059BF4 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02059C00 add r3, r0, #0x0 ldr r2, [sp, #0x0] add r0, r7, #0x0 add r1, r6, r5 add r2, r2, r3 bl FUN_0204A6E0 bl FUN_020547B0 cmp r0, #0x1 bne _02056E00 mov r0, #0x1 pop {r3-r7, pc} _02056E00: mov r0, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02056E04 FUN_02056E04: ; 0x02056E04 push {r3-r7, lr} mov r0, #0x0 add r5, r2, #0x0 mvn r0, r0 add r4, r1, #0x0 cmp r5, r0 beq _02056E68 add r0, r4, #0x0 bl FUN_02058738 str r0, [sp, #0x0] add r0, r4, #0x0 bl FUN_02058B2C add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02059BF4 add r7, r0, #0x0 add r0, r4, #0x0 bl FUN_02058B4C add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02059C00 add r2, r0, #0x0 ldr r0, [sp, #0x0] add r1, r6, r7 add r2, r4, r2 bl FUN_0204A6E0 add r4, r0, #0x0 cmp r5, #0x3 bne _02056E56 bl FUN_02054A24 cmp r0, #0x0 beq _02056E56 mov r0, #0x1 pop {r3-r7, pc} _02056E56: cmp r5, #0x2 bne _02056E68 add r0, r4, #0x0 bl FUN_02054A30 cmp r0, #0x0 beq _02056E68 mov r0, #0x1 pop {r3-r7, pc} _02056E68: mov r0, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02056E6C FUN_02056E6C: ; 0x02056E6C push {r3-r7, lr} sub sp, #0x8 mov r0, #0x0 add r4, r2, #0x0 mvn r0, r0 add r5, r1, #0x0 cmp r4, r0 beq _02056EC2 add r0, r5, #0x0 bl FUN_02058738 str r0, [sp, #0x0] add r0, r5, #0x0 bl FUN_02058B2C add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02059BF4 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02058B4C str r0, [sp, #0x4] add r0, r4, #0x0 bl FUN_02059C00 add r3, r0, #0x0 ldr r2, [sp, #0x4] ldr r0, [sp, #0x0] add r1, r6, r7 add r2, r2, r3 bl FUN_0204A6E0 add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_02059AC4 cmp r0, #0x0 beq _02056EC2 add sp, #0x8 mov r0, #0x1 pop {r3-r7, pc} _02056EC2: mov r0, #0x0 add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_02056EC8 FUN_02056EC8: ; 0x02056EC8 push {r4-r7, lr} sub sp, #0xc str r0, [sp, #0x0] mov r0, #0x0 add r4, r2, #0x0 mvn r0, r0 add r5, r1, #0x0 cmp r4, r0 beq _02056F72 add r0, r5, #0x0 bl FUN_02058738 str r0, [sp, #0x4] add r0, r5, #0x0 bl FUN_02058B2C add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02059BF4 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02058B4C str r0, [sp, #0x8] add r0, r4, #0x0 bl FUN_02059C00 add r2, r0, #0x0 ldr r3, [sp, #0x8] ldr r0, [sp, #0x4] add r1, r6, r7 add r2, r3, r2 bl FUN_0204A6E0 add r6, r0, #0x0 ldr r0, [sp, #0x0] bl FUN_020553C4 cmp r0, #0x1 bne _02056F54 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02059BB4 cmp r0, #0x1 bne _02056F36 cmp r4, #0x1 bls _02056F30 add sp, #0xc mov r0, #0x1 pop {r4-r7, pc} _02056F30: add sp, #0xc mov r0, #0x0 pop {r4-r7, pc} _02056F36: add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02059BD4 cmp r0, #0x1 bne _02056F72 sub r0, r4, #0x2 cmp r0, #0x1 bls _02056F4E add sp, #0xc mov r0, #0x1 pop {r4-r7, pc} _02056F4E: add sp, #0xc mov r0, #0x0 pop {r4-r7, pc} _02056F54: add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02059BB4 cmp r0, #0x1 beq _02056F6C add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02059BD4 cmp r0, #0x1 bne _02056F72 _02056F6C: add sp, #0xc mov r0, #0x1 pop {r4-r7, pc} _02056F72: mov r0, #0x0 add sp, #0xc pop {r4-r7, pc} thumb_func_start FUN_02056F78 FUN_02056F78: ; 0x02056F78 push {r3-r7, lr} sub sp, #0x8 add r5, r1, #0x0 mov r1, #0x0 add r4, r2, #0x0 mvn r1, r1 cmp r4, r1 beq _0205701A bl FUN_020553C4 cmp r0, #0x1 bne _0205701A add r0, r5, #0x0 bl FUN_02058738 str r0, [sp, #0x0] add r0, r5, #0x0 bl FUN_02058B2C add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02059BF4 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02058B4C str r0, [sp, #0x4] add r0, r4, #0x0 bl FUN_02059C00 add r3, r0, #0x0 ldr r2, [sp, #0x4] ldr r0, [sp, #0x0] add r1, r6, r7 add r2, r2, r3 bl FUN_0204A6E0 add r4, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02059AC4 cmp r0, #0x0 beq _02056FD8 add sp, #0x8 mov r0, #0x1 pop {r3-r7, pc} _02056FD8: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02059B2C cmp r0, #0x0 beq _02056FEA add sp, #0x8 mov r0, #0x1 pop {r3-r7, pc} _02056FEA: add r0, r4, #0x0 bl FUN_02054798 cmp r0, #0x0 beq _02056FFA add sp, #0x8 mov r0, #0x1 pop {r3-r7, pc} _02056FFA: add r0, r4, #0x0 bl FUN_02054974 cmp r0, #0x0 beq _0205700A add sp, #0x8 mov r0, #0x1 pop {r3-r7, pc} _0205700A: add r0, r4, #0x0 bl FUN_02054990 cmp r0, #0x0 beq _0205701A add sp, #0x8 mov r0, #0x1 pop {r3-r7, pc} _0205701A: mov r0, #0x0 add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_02057020 FUN_02057020: ; 0x02057020 ldr r3, _02057024 ; =FUN_02057060 bx r3 .balign 4 _02057024: .word FUN_02057060 thumb_func_start FUN_02057028 FUN_02057028: ; 0x02057028 mov r1, #0x20 tst r1, r0 beq _02057032 mov r0, #0x2 bx lr _02057032: mov r1, #0x10 tst r0, r1 beq _0205703C mov r1, #0x3 b _0205703E _0205703C: sub r1, #0x11 _0205703E: add r0, r1, #0x0 bx lr .balign 4 thumb_func_start FUN_02057044 FUN_02057044: ; 0x02057044 mov r1, #0x40 tst r1, r0 beq _0205704E mov r0, #0x0 bx lr _0205704E: mov r1, #0x80 tst r0, r1 beq _02057058 mov r1, #0x1 b _0205705A _02057058: sub r1, #0x81 _0205705A: add r0, r1, #0x0 bx lr .balign 4 thumb_func_start FUN_02057060 FUN_02057060: ; 0x02057060 push {r3-r7, lr} add r5, r2, #0x0 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02057028 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02057044 mov r1, #0x0 mvn r1, r1 add r5, r0, #0x0 cmp r4, r1 beq _020570C0 cmp r5, r1 bne _02057086 add r0, r4, #0x0 pop {r3-r7, pc} _02057086: add r0, r6, #0x0 bl FUN_02055314 add r7, r0, #0x0 add r0, r6, #0x0 bl FUN_02055430 str r0, [sp, #0x0] add r0, r6, #0x0 bl FUN_02055438 mov r1, #0x0 mvn r1, r1 cmp r7, r1 beq _020570BE ldr r1, [sp, #0x0] cmp r4, r1 bne _020570B2 cmp r5, r0 bne _020570B2 add r0, r7, #0x0 pop {r3-r7, pc} _020570B2: cmp r5, r0 beq _020570BA add r0, r5, #0x0 pop {r3-r7, pc} _020570BA: add r0, r4, #0x0 pop {r3-r7, pc} _020570BE: add r0, r5, #0x0 _020570C0: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020570C4 FUN_020570C4: ; 0x020570C4 push {r4, lr} bl FUN_020553A0 add r4, r0, #0x0 bl FUN_0205AD98 cmp r0, #0x1 bne _020570D8 mov r0, #0x1 pop {r4, pc} _020570D8: add r0, r4, #0x0 bl FUN_020586F0 bl FUN_020570F0 cmp r0, #0x1 bne _020570EA mov r0, #0x1 pop {r4, pc} _020570EA: mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_020570F0 FUN_020570F0: ; 0x020570F0 sub r0, #0x1c cmp r0, #0x3 bhi _0205710E add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02057102: ; jump table (using 16-bit offset) .short _0205710A - _02057102 - 2; case 0 .short _0205710A - _02057102 - 2; case 1 .short _0205710A - _02057102 - 2; case 2 .short _0205710A - _02057102 - 2; case 3 _0205710A: mov r0, #0x1 bx lr _0205710E: mov r0, #0x0 bx lr .balign 4 thumb_func_start FUN_02057114 FUN_02057114: ; 0x02057114 mov r0, #0x2 tst r0, r1 beq _0205711E mov r0, #0x1 bx lr _0205711E: mov r0, #0x0 bx lr .balign 4 thumb_func_start FUN_02057124 FUN_02057124: ; 0x02057124 push {r3, lr} bl FUN_02055464 sub r0, #0x58 cmp r0, #0x3 bhi _02057148 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0205713C: ; jump table (using 16-bit offset) .short _02057144 - _0205713C - 2; case 0 .short _02057144 - _0205713C - 2; case 1 .short _02057144 - _0205713C - 2; case 2 .short _02057144 - _0205713C - 2; case 3 _02057144: mov r0, #0x1 pop {r3, pc} _02057148: mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_0205714C FUN_0205714C: ; 0x0205714C push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_020553C4 cmp r0, #0x0 beq _02057162 cmp r0, #0x1 beq _02057172 cmp r0, #0x2 bne _02057188 _02057162: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02056244 bl FUN_020561EC add r4, r0, #0x0 b _0205718E _02057172: add r0, r5, #0x0 bl FUN_020554BC add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_020568A8 bl FUN_02056874 add r4, r0, #0x0 b _0205718E _02057188: mov r4, #0x0 bl ErrorHandling _0205718E: add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02057194 FUN_02057194: ; 0x02057194 push {r3-r7, lr} add r5, r0, #0x0 add r7, r2, #0x0 add r6, r3, #0x0 bl FUN_02057060 str r0, [sp, #0x0] ldr r1, [sp, #0x0] add r0, r5, #0x0 bl FUN_0205714C add r4, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0205536C cmp r4, #0x0 bne _020571C6 add r0, r5, #0x0 bl FUN_020552F8 mov r1, #0x0 bl FUN_0205AFDC pop {r3-r7, pc} _020571C6: cmp r4, #0x2 bne _020571D4 ldr r0, [sp, #0x0] mov r1, #0x28 bl FUN_0205AFDC pop {r3-r7, pc} _020571D4: add r0, r5, #0x0 bl FUN_020553A0 ldr r0, [sp, #0x1c] mov r4, #0x4 add r1, r0, #0x0 tst r1, r4 beq _020571E8 mov r4, #0x38 b _02057244 _020571E8: cmp r0, #0x0 beq _020571FC mov r1, #0x8 mov r4, #0x1c tst r0, r1 bne _02057244 ldr r0, _02057250 ; =0x00000601 bl FUN_020054C8 b _02057244 _020571FC: cmp r6, #0x5 bhi _0205722E add r0, r6, r6 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0205720C: ; jump table (using 16-bit offset) .short _02057218 - _0205720C - 2; case 0 .short _0205721A - _0205720C - 2; case 1 .short _0205721E - _0205720C - 2; case 2 .short _02057222 - _0205720C - 2; case 3 .short _02057226 - _0205720C - 2; case 4 .short _0205722A - _0205720C - 2; case 5 _02057218: b _02057230 _0205721A: mov r4, #0x8 b _02057230 _0205721E: mov r4, #0xc b _02057230 _02057222: mov r4, #0x4c b _02057230 _02057226: mov r4, #0x10 b _02057230 _0205722A: mov r4, #0x14 b _02057230 _0205722E: mov r4, #0x4 _02057230: ldr r0, [sp, #0x18] cmp r0, #0x1 bne _02057244 add r0, r5, #0x0 add r1, r7, #0x0 bl FUN_02057114 cmp r0, #0x1 bne _02057244 mov r4, #0x58 _02057244: ldr r0, [sp, #0x0] add r1, r4, #0x0 bl FUN_0205AFDC pop {r3-r7, pc} nop _02057250: .word 0x00000601 thumb_func_start FUN_02057254 FUN_02057254: ; 0x02057254 push {r3, lr} bl FUN_020553A0 bl FUN_0205AD98 pop {r3, pc} thumb_func_start FUN_02057260 FUN_02057260: ; 0x02057260 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_020553A0 add r1, r0, #0x0 add r0, r5, #0x0 add r2, r4, #0x0 bl FUN_02056B5C pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02057278 FUN_02057278: ; 0x02057278 push {r4, lr} add r4, r1, #0x0 bl FUN_020553A0 add r1, r4, #0x0 bl FUN_02059C90 pop {r4, pc} thumb_func_start FUN_02057288 FUN_02057288: ; 0x02057288 push {r3-r7, lr} add r5, r1, #0x0 str r0, [sp, #0x0] add r4, r2, #0x0 add r7, r3, #0x0 bl FUN_02055320 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02059BF4 add r0, r6, r0 str r0, [r4, #0x0] ldr r0, [sp, #0x0] bl FUN_0205532C add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02059C00 add r0, r4, r0 str r0, [r7, #0x0] pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020572B8 FUN_020572B8: ; 0x020572B8 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 bl FUN_020552F8 add r1, r0, #0x0 add r0, r5, #0x0 add r2, r4, #0x0 add r3, r6, #0x0 bl FUN_02057288 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_020572D4 FUN_020572D4: ; 0x020572D4 push {r3, lr} bl FUN_020553A0 bl FUN_02058738 ldr r0, [r0, #0xc] bl FUN_02029FC8 mov r1, #0x5 bl FUN_0202A0E8 pop {r3, pc} thumb_func_start FUN_020572EC FUN_020572EC: ; 0x020572EC push {r4-r6, lr} mov r0, #0x0 add r4, r2, #0x0 mvn r0, r0 add r5, r1, #0x0 cmp r4, r0 beq _02057336 add r0, r5, #0x0 bl FUN_02058720 lsl r0, r0, #0x18 lsr r6, r0, #0x18 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02059BB4 cmp r0, #0x1 bne _0205731C cmp r4, #0x1 bls _02057318 mov r0, #0x1 pop {r4-r6, pc} _02057318: mov r0, #0x0 pop {r4-r6, pc} _0205731C: add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02059BD4 cmp r0, #0x1 bne _02057336 sub r0, r4, #0x2 cmp r0, #0x1 bls _02057332 mov r0, #0x1 pop {r4-r6, pc} _02057332: mov r0, #0x0 pop {r4-r6, pc} _02057336: mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0205733C FUN_0205733C: ; 0x0205733C push {r3-r5, lr} add r4, r1, #0x0 mov r1, #0x0 mvn r1, r1 add r5, r0, #0x0 cmp r2, r1 beq _0205734E mov r0, #0x0 pop {r3-r5, pc} _0205734E: bl FUN_020553C4 cmp r0, #0x1 beq _0205735A mov r0, #0x0 pop {r3-r5, pc} _0205735A: add r0, r5, #0x0 bl FUN_02055738 cmp r0, #0x0 bne _02057368 mov r0, #0x0 pop {r3-r5, pc} _02057368: add r0, r5, #0x0 bl FUN_020553A0 add r1, r4, #0x0 bl FUN_02059B94 cmp r0, #0x1 bne _0205737C mov r0, #0x1 pop {r3-r5, pc} _0205737C: mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02057380 FUN_02057380: ; 0x02057380 push {r3-r7, lr} add r5, r1, #0x0 add r6, r0, #0x0 add r0, r5, #0x0 add r7, r2, #0x0 bl FUN_02057444 add r4, r0, #0x0 add r1, r6, #0x0 bl FUN_020583E0 add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_02058364 add r0, r4, #0x0 add r1, r7, #0x0 bl FUN_02058398 add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020573AC FUN_020573AC: ; 0x020573AC push {r4, lr} add r4, r0, #0x0 bl FUN_020583CC add r1, r0, #0x0 mov r0, #0xb bl FUN_02016A8C mov r0, #0xb add r1, r4, #0x0 bl FUN_02016A8C pop {r4, pc} .balign 4 thumb_func_start FUN_020573C8 FUN_020573C8: ; 0x020573C8 push {r3-r7, lr} sub sp, #0x8 str r0, [sp, #0x0] add r5, r2, #0x0 str r3, [sp, #0x4] ldr r7, [sp, #0x20] bl FUN_02058368 add r6, r0, #0x0 ldr r0, [sp, #0x0] bl FUN_020583CC add r4, r0, #0x0 cmp r6, #0x0 beq _02057430 _020573E6: add r0, r4, #0x0 bl FUN_02058830 cmp r0, #0x1 bne _02057426 ldr r2, [sp, #0x4] add r0, r4, #0x0 add r1, r5, #0x0 add r3, r7, #0x0 bl FUN_02057F90 cmp r0, #0x0 beq _02057408 cmp r0, #0x1 beq _02057426 cmp r0, #0x2 b _02057426 _02057408: add r0, r4, #0x0 bl FUN_02058450 cmp r5, r0 beq _02057426 mov r1, #0x1 add r0, r4, #0x0 lsl r1, r1, #0xa bl FUN_0205842C cmp r0, #0x0 bne _02057426 add r0, r4, #0x0 bl FUN_02057654 _02057426: mov r0, #0x4a lsl r0, r0, #0x2 add r4, r4, r0 sub r6, r6, #0x1 bne _020573E6 _02057430: ldr r0, [sp, #0x0] bl FUN_020583A0 add r1, r0, #0x0 ldr r0, [sp, #0x0] bl FUN_021F2AF4 add sp, #0x8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02057444 FUN_02057444: ; 0x02057444 push {r4-r6, lr} mov r1, #0x4b add r4, r0, #0x0 mov r0, #0xb lsl r1, r1, #0x2 bl FUN_02016998 add r5, r0, #0x0 bne _0205745A bl ErrorHandling _0205745A: mov r2, #0x4b add r0, r5, #0x0 mov r1, #0x0 lsl r2, r2, #0x2 blx FUN_020DF4A4 mov r0, #0x4a lsl r0, r0, #0x2 add r6, r4, #0x0 mul r6, r0 mov r0, #0xb add r1, r6, #0x0 bl FUN_02016998 add r4, r0, #0x0 bne _0205747E bl ErrorHandling _0205747E: add r0, r4, #0x0 mov r1, #0x0 add r2, r6, #0x0 blx FUN_020DF4A4 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_020583B4 add r0, r5, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02057494 FUN_02057494: ; 0x02057494 push {r3-r7, lr} add r6, r1, #0x0 add r5, r0, #0x0 add r0, r6, #0x0 add r7, r2, #0x0 bl FUN_02058BFC add r4, r0, #0x0 add r0, r6, #0x0 bl FUN_02058CE0 cmp r0, #0x0 bne _020574C8 add r0, r5, #0x0 add r1, r4, #0x0 add r2, r7, #0x0 bl FUN_02057C98 add r4, r0, #0x0 beq _020574E8 add r1, r6, #0x0 add r2, r7, #0x0 bl FUN_02058214 add r0, r4, #0x0 pop {r3-r7, pc} _020574C8: add r0, r6, #0x0 bl FUN_02058CFC add r2, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02058010 add r4, r0, #0x0 beq _020574E8 add r1, r7, #0x0 add r2, r6, #0x0 bl FUN_02058258 add r0, r4, #0x0 pop {r3-r7, pc} _020574E8: add r0, r5, #0x0 bl FUN_02057C64 add r4, r0, #0x0 beq _0205753A add r0, r5, #0x0 bl FUN_020583E8 add r2, r0, #0x0 add r0, r4, #0x0 add r1, r6, #0x0 bl FUN_02057D2C add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_02057E90 add r0, r4, #0x0 add r1, r7, #0x0 bl FUN_0205844C add r0, r4, #0x0 bl FUN_020581A4 add r0, r4, #0x0 bl FUN_020581B4 add r0, r4, #0x0 mov r1, #0x4 bl FUN_02058410 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02057CF0 add r0, r5, #0x0 bl FUN_02058360 bl FUN_0205836C add r0, r4, #0x0 _0205753A: pop {r3-r7, pc} thumb_func_start FUN_0205753C FUN_0205753C: ; 0x0205753C push {r3-r7, lr} sub sp, #0x20 add r5, r0, #0x0 add r4, r1, #0x0 add r0, sp, #0x0 mov r1, #0x0 add r6, r2, #0x0 add r7, r3, #0x0 bl FUN_02058BF8 ldr r1, [sp, #0x38] add r0, sp, #0x0 bl FUN_02058C00 ldr r1, [sp, #0x3c] add r0, sp, #0x0 bl FUN_02058C08 add r0, sp, #0x0 mov r1, #0x0 bl FUN_02058C10 add r0, sp, #0x0 mov r1, #0x0 bl FUN_02058C18 add r0, sp, #0x0 mov r1, #0x0 bl FUN_02058C20 add r0, sp, #0x0 add r1, r7, #0x0 bl FUN_02058C28 mov r1, #0x0 add r0, sp, #0x0 add r2, r1, #0x0 bl FUN_02058C34 add r0, sp, #0x0 mov r1, #0x0 mov r2, #0x1 bl FUN_02058C34 add r0, sp, #0x0 mov r1, #0x0 mov r2, #0x2 bl FUN_02058C34 add r0, sp, #0x0 mov r1, #0x0 bl FUN_02058C7C add r0, sp, #0x0 mov r1, #0x0 bl FUN_02058C88 add r0, sp, #0x0 add r1, r4, #0x0 bl FUN_02058C94 add r0, sp, #0x0 add r1, r6, #0x0 bl FUN_02058CA4 add r0, sp, #0x0 mov r1, #0x0 bl FUN_02058C9C ldr r2, [sp, #0x40] add r0, r5, #0x0 add r1, sp, #0x0 bl FUN_02057494 add sp, #0x20 pop {r3-r7, pc} thumb_func_start FUN_020575D4 FUN_020575D4: ; 0x020575D4 push {r3-r7, lr} add r5, r0, #0x0 add r0, r1, #0x0 add r1, r2, #0x0 ldr r2, [sp, #0x18] add r7, r3, #0x0 mov r4, #0x0 bl FUN_02058CAC str r0, [sp, #0x0] cmp r0, #0x0 beq _02057610 bl FUN_02058C1C add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_020583E8 lsl r1, r6, #0x10 lsr r1, r1, #0x10 bl FUN_02039528 cmp r0, #0x0 bne _02057610 ldr r1, [sp, #0x0] add r0, r5, #0x0 add r2, r7, #0x0 bl FUN_02057494 add r4, r0, #0x0 _02057610: add r0, r4, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02057614 FUN_02057614: ; 0x02057614 push {r4, lr} add r4, r0, #0x0 bl FUN_02058454 add r0, r4, #0x0 bl FUN_02058148 mov r1, #0x1 add r0, r4, #0x0 lsl r1, r1, #0xe bl FUN_02058418 add r0, r4, #0x0 bl FUN_020581B4 pop {r4, pc} thumb_func_start FUN_02057634 FUN_02057634: ; 0x02057634 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_02058934 cmp r0, #0x1 bne _02057648 add r0, r5, #0x0 bl FUN_020576A8 _02057648: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02057614 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02057654 FUN_02057654: ; 0x02057654 push {r4, lr} add r4, r0, #0x0 bl FUN_02058578 bl FUN_020587E0 cmp r0, #0x1 bne _0205766A add r0, r4, #0x0 bl FUN_020586B4 _0205766A: add r0, r4, #0x0 bl FUN_02058660 add r0, r4, #0x0 bl FUN_02058564 add r0, r4, #0x0 bl FUN_02058580 bl FUN_02058374 add r0, r4, #0x0 bl FUN_02057F80 pop {r4, pc} thumb_func_start FUN_02057688 FUN_02057688: ; 0x02057688 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02058490 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02058738 lsl r1, r5, #0x10 lsr r1, r1, #0x10 bl FUN_0203953C add r0, r4, #0x0 bl FUN_02057654 pop {r3-r5, pc} thumb_func_start FUN_020576A8 FUN_020576A8: ; 0x020576A8 push {r4, lr} add r4, r0, #0x0 bl FUN_02058578 bl FUN_020587E0 cmp r0, #0x1 bne _020576D6 mov r1, #0x1 add r0, r4, #0x0 lsl r1, r1, #0xe bl FUN_02058424 cmp r0, #0x0 beq _020576CC add r0, r4, #0x0 bl FUN_020586B4 _020576CC: mov r1, #0x1 add r0, r4, #0x0 lsl r1, r1, #0xe bl FUN_02058418 _020576D6: ldr r1, _02057708 ; =0x0000FFFF add r0, r4, #0x0 bl FUN_02058454 ldr r1, _0205770C ; =FUN_02058ED8 add r0, r4, #0x0 bl FUN_02058684 ldr r1, _02057710 ; =FUN_02058EDC add r0, r4, #0x0 bl FUN_02058698 ldr r1, _02057710 ; =FUN_02058EDC add r0, r4, #0x0 bl FUN_020586AC ldr r1, _02057714 ; =FUN_02058EE0 add r0, r4, #0x0 bl FUN_020586C0 ldr r1, _02057718 ; =FUN_02058EE4 add r0, r4, #0x0 bl FUN_020586D4 pop {r4, pc} .balign 4 _02057708: .word 0x0000FFFF _0205770C: .word FUN_02058ED8 _02057710: .word FUN_02058EDC _02057714: .word FUN_02058EE0 _02057718: .word FUN_02058EE4 thumb_func_start FUN_0205771C FUN_0205771C: ; 0x0205771C push {r3-r7, lr} add r5, r0, #0x0 mov r4, #0x0 bl FUN_02058368 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_020583CC mov r7, #0x4a add r5, r0, #0x0 lsl r7, r7, #0x2 _02057734: add r0, r5, #0x0 mov r1, #0x1 bl FUN_02058424 cmp r0, #0x0 beq _02057746 add r0, r5, #0x0 bl FUN_02057654 _02057746: add r4, r4, #0x1 add r5, r5, r7 cmp r4, r6 blt _02057734 pop {r3-r7, pc} thumb_func_start FUN_02057750 FUN_02057750: ; 0x02057750 push {r3-r7, lr} add r5, r0, #0x0 bl FUN_020587E0 cmp r0, #0x1 beq _02057760 bl ErrorHandling _02057760: add r0, r5, #0x0 mov r4, #0x0 bl FUN_02058368 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_020583CC mov r7, #0x4a add r5, r0, #0x0 lsl r7, r7, #0x2 _02057776: add r0, r5, #0x0 mov r1, #0x1 bl FUN_02058424 cmp r0, #0x0 beq _0205779C mov r1, #0x1 add r0, r5, #0x0 lsl r1, r1, #0xe bl FUN_02058424 cmp r0, #0x0 beq _0205779C add r0, r5, #0x0 bl FUN_020586C8 add r0, r5, #0x0 bl FUN_0205816C _0205779C: add r4, r4, #0x1 add r5, r5, r7 cmp r4, r6 blt _02057776 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020577A8 FUN_020577A8: ; 0x020577A8 push {r3-r7, lr} add r5, r0, #0x0 bl FUN_020587E0 cmp r0, #0x1 beq _020577B8 bl ErrorHandling _020577B8: add r0, r5, #0x0 mov r4, #0x0 bl FUN_02058368 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_020583CC mov r7, #0x4a add r5, r0, #0x0 lsl r7, r7, #0x2 _020577CE: add r0, r5, #0x0 bl FUN_02058830 cmp r0, #0x1 bne _020577F6 add r0, r5, #0x0 bl FUN_02058884 cmp r0, #0x1 bne _020577EA add r0, r5, #0x0 bl FUN_020586DC b _020577F0 _020577EA: add r0, r5, #0x0 bl FUN_020581B4 _020577F0: add r0, r5, #0x0 bl FUN_02058148 _020577F6: add r4, r4, #0x1 add r5, r5, r7 cmp r4, r6 blt _020577CE pop {r3-r7, pc} thumb_func_start FUN_02057800 FUN_02057800: ; 0x02057800 push {r3-r7, lr} sub sp, #0x8 add r7, r0, #0x0 add r6, r1, #0x0 mov r0, #0x0 add r5, r2, #0x0 add r4, r3, #0x0 str r0, [sp, #0x4] add r0, r6, #0x0 add r1, sp, #0x0 add r2, sp, #0x4 mov r3, #0x1 bl FUN_020580F4 cmp r0, #0x0 beq _02057846 _02057820: ldr r1, [sp, #0x0] add r0, r7, #0x0 add r2, r5, #0x0 bl FUN_02057894 sub r4, r4, #0x1 add r5, #0x50 cmp r4, #0x0 bgt _02057836 bl ErrorHandling _02057836: add r0, r6, #0x0 add r1, sp, #0x0 add r2, sp, #0x4 mov r3, #0x1 bl FUN_020580F4 cmp r0, #0x0 bne _02057820 _02057846: cmp r4, #0x0 beq _02057856 mov r2, #0x50 add r0, r5, #0x0 mov r1, #0x0 mul r2, r4 blx FUN_020DF4A4 _02057856: add sp, #0x8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0205785C FUN_0205785C: ; 0x0205785C push {r3-r7, lr} add r6, r0, #0x0 add r5, r1, #0x0 add r7, r2, #0x0 beq _02057892 _02057866: ldr r1, [r5, #0x0] mov r0, #0x1 tst r0, r1 beq _0205788C add r0, r6, #0x0 bl FUN_02057C64 add r4, r0, #0x0 bne _0205787C bl ErrorHandling _0205787C: add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_020579C4 add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_02057AEC _0205788C: add r5, #0x50 sub r7, r7, #0x1 bne _02057866 _02057892: pop {r3-r7, pc} thumb_func_start FUN_02057894 FUN_02057894: ; 0x02057894 push {r3-r6, lr} sub sp, #0xc add r5, r1, #0x0 add r6, r0, #0x0 add r4, r2, #0x0 add r0, r5, #0x0 bl FUN_0205840C str r0, [r4, #0x0] add r0, r5, #0x0 bl FUN_02058440 str r0, [r4, #0x4] add r0, r5, #0x0 bl FUN_02058448 strb r0, [r4, #0x8] add r0, r5, #0x0 bl FUN_02058450 strh r0, [r4, #0x10] add r0, r5, #0x0 bl FUN_02058458 strh r0, [r4, #0x12] add r0, r5, #0x0 bl FUN_02058480 strb r0, [r4, #0x9] add r0, r5, #0x0 bl FUN_02058488 strh r0, [r4, #0x14] add r0, r5, #0x0 bl FUN_02058490 strh r0, [r4, #0x16] add r0, r5, #0x0 bl FUN_02058498 strh r0, [r4, #0x18] add r0, r5, #0x0 bl FUN_020584A0 strb r0, [r4, #0xc] add r0, r5, #0x0 bl FUN_020584C4 strb r0, [r4, #0xd] add r0, r5, #0x0 bl FUN_020584D4 strb r0, [r4, #0xe] add r0, r5, #0x0 mov r1, #0x0 bl FUN_02058510 strh r0, [r4, #0x1a] add r0, r5, #0x0 mov r1, #0x1 bl FUN_02058510 strh r0, [r4, #0x1c] add r0, r5, #0x0 mov r1, #0x2 bl FUN_02058510 strh r0, [r4, #0x1e] add r0, r5, #0x0 bl FUN_02058538 strb r0, [r4, #0xa] add r0, r5, #0x0 bl FUN_02058540 strb r0, [r4, #0xb] add r0, r5, #0x0 bl FUN_02058AFC strh r0, [r4, #0x20] add r0, r5, #0x0 bl FUN_02058B04 strh r0, [r4, #0x22] add r0, r5, #0x0 bl FUN_02058B0C strh r0, [r4, #0x24] add r0, r5, #0x0 bl FUN_02058B2C strh r0, [r4, #0x26] add r0, r5, #0x0 bl FUN_02058B3C strh r0, [r4, #0x28] add r0, r5, #0x0 bl FUN_02058B4C strh r0, [r4, #0x2a] mov r0, #0x26 mov r1, #0x2a ldrsh r0, [r4, r0] ldrsh r1, [r4, r1] add r2, sp, #0x0 bl FUN_02059E60 add r0, r5, #0x0 bl FUN_02058B80 str r0, [sp, #0x4] add r0, r5, #0x0 bl FUN_02058AE4 add r2, r0, #0x0 add r0, r6, #0x0 add r1, sp, #0x0 bl FUN_02059EC8 cmp r0, #0x0 bne _0205798E add r0, r5, #0x0 bl FUN_02058B80 b _02057990 _0205798E: ldr r0, [sp, #0x4] _02057990: str r0, [r4, #0x2c] add r0, r5, #0x0 bl FUN_020585B0 add r3, r4, #0x0 add r3, #0x30 mov r2, #0x10 _0205799E: ldrb r1, [r0, #0x0] add r0, r0, #0x1 strb r1, [r3, #0x0] add r3, r3, #0x1 sub r2, r2, #0x1 bne _0205799E add r0, r5, #0x0 bl FUN_020585D8 add r4, #0x40 mov r2, #0x10 _020579B4: ldrb r1, [r0, #0x0] add r0, r0, #0x1 strb r1, [r4, #0x0] add r4, r4, #0x1 sub r2, r2, #0x1 bne _020579B4 add sp, #0xc pop {r3-r6, pc} thumb_func_start FUN_020579C4 FUN_020579C4: ; 0x020579C4 push {r4-r5, lr} sub sp, #0xc add r4, r1, #0x0 ldr r1, [r4, #0x0] add r5, r0, #0x0 bl FUN_02058408 ldr r1, [r4, #0x4] add r0, r5, #0x0 bl FUN_0205843C ldrb r1, [r4, #0x8] add r0, r5, #0x0 bl FUN_02058444 ldrh r1, [r4, #0x10] add r0, r5, #0x0 bl FUN_0205844C ldrh r1, [r4, #0x12] add r0, r5, #0x0 bl FUN_02058454 ldrb r1, [r4, #0x9] add r0, r5, #0x0 bl FUN_0205847C ldrh r1, [r4, #0x14] add r0, r5, #0x0 bl FUN_02058484 ldrh r1, [r4, #0x16] add r0, r5, #0x0 bl FUN_0205848C ldrh r1, [r4, #0x18] add r0, r5, #0x0 bl FUN_02058494 mov r1, #0xc ldrsb r1, [r4, r1] add r0, r5, #0x0 bl FUN_0205849C mov r1, #0xd ldrsb r1, [r4, r1] add r0, r5, #0x0 bl FUN_020584A4 mov r1, #0xe ldrsb r1, [r4, r1] add r0, r5, #0x0 bl FUN_020584CC mov r1, #0x1a ldrsh r1, [r4, r1] add r0, r5, #0x0 mov r2, #0x0 bl FUN_020584EC mov r1, #0x1c ldrsh r1, [r4, r1] add r0, r5, #0x0 mov r2, #0x1 bl FUN_020584EC mov r1, #0x1e ldrsh r1, [r4, r1] add r0, r5, #0x0 mov r2, #0x2 bl FUN_020584EC mov r1, #0xa ldrsb r1, [r4, r1] add r0, r5, #0x0 bl FUN_02058534 mov r1, #0xb ldrsb r1, [r4, r1] add r0, r5, #0x0 bl FUN_0205853C mov r1, #0x20 ldrsh r1, [r4, r1] add r0, r5, #0x0 bl FUN_02058B00 mov r1, #0x22 ldrsh r1, [r4, r1] add r0, r5, #0x0 bl FUN_02058B08 mov r1, #0x24 ldrsh r1, [r4, r1] add r0, r5, #0x0 bl FUN_02058B10 mov r1, #0x26 ldrsh r1, [r4, r1] add r0, r5, #0x0 bl FUN_02058B30 mov r1, #0x28 ldrsh r1, [r4, r1] add r0, r5, #0x0 bl FUN_02058B40 mov r1, #0x2a ldrsh r1, [r4, r1] add r0, r5, #0x0 bl FUN_02058B50 add r1, sp, #0x0 mov r0, #0x0 str r0, [r1, #0x0] str r0, [r1, #0x4] str r0, [r1, #0x8] ldr r0, [r4, #0x2c] str r0, [sp, #0x4] add r0, r5, #0x0 bl FUN_02058B6C add r0, r5, #0x0 bl FUN_020585B0 add r3, r4, #0x0 add r3, #0x30 mov r2, #0x10 _02057AC4: ldrb r1, [r3, #0x0] add r3, r3, #0x1 strb r1, [r0, #0x0] add r0, r0, #0x1 sub r2, r2, #0x1 bne _02057AC4 add r0, r5, #0x0 bl FUN_020585D8 add r4, #0x40 mov r2, #0x10 _02057ADA: ldrb r1, [r4, #0x0] add r4, r4, #0x1 strb r1, [r0, #0x0] add r0, r0, #0x1 sub r2, r2, #0x1 bne _02057ADA add sp, #0xc pop {r4-r5, pc} .balign 4 thumb_func_start FUN_02057AEC FUN_02057AEC: ; 0x02057AEC push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02057B34 add r0, r4, #0x0 bl FUN_02057B54 add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_02058570 add r0, r4, #0x0 bl FUN_02057EE0 add r0, r4, #0x0 bl FUN_0205AE80 add r0, r4, #0x0 bl FUN_020581B4 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02057CF0 add r0, r4, #0x0 bl FUN_0205866C add r0, r5, #0x0 bl FUN_02058360 bl FUN_0205836C pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02057B34 FUN_02057B34: ; 0x02057B34 push {r4, lr} mov r1, #0x5 add r4, r0, #0x0 bl FUN_02058410 ldr r1, _02057B50 ; =0x00EF4248 add r0, r4, #0x0 bl FUN_02058418 add r0, r4, #0x0 bl FUN_0205815C pop {r4, pc} nop _02057B50: .word 0x00EF4248 thumb_func_start FUN_02057B54 FUN_02057B54: ; 0x02057B54 push {r3-r4, lr} sub sp, #0xc add r4, r0, #0x0 add r1, sp, #0x0 bl FUN_02058B5C add r0, r4, #0x0 bl FUN_02058B2C add r1, r0, #0x0 mov r0, #0x2 lsl r2, r1, #0x10 lsl r0, r0, #0xe add r0, r2, r0 str r0, [sp, #0x0] add r0, r4, #0x0 bl FUN_02058B18 add r0, r4, #0x0 bl FUN_02058B3C add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_02058B20 add r0, r4, #0x0 bl FUN_02058B4C add r1, r0, #0x0 mov r0, #0x2 lsl r2, r1, #0x10 lsl r0, r0, #0xe add r0, r2, r0 str r0, [sp, #0x8] add r0, r4, #0x0 bl FUN_02058B28 add r0, r4, #0x0 add r1, sp, #0x0 bl FUN_02058B6C add sp, #0xc pop {r3-r4, pc} .balign 4 thumb_func_start FUN_02057BAC FUN_02057BAC: ; 0x02057BAC push {r3-r7, lr} sub sp, #0x8 add r5, r2, #0x0 add r7, r0, #0x0 add r4, r3, #0x0 str r1, [sp, #0x0] cmp r5, #0x0 bne _02057BC0 bl ErrorHandling _02057BC0: lsl r0, r5, #0x5 str r0, [sp, #0x4] ldr r1, [sp, #0x4] mov r0, #0xb bl FUN_020169D8 add r6, r0, #0x0 bne _02057BD4 bl ErrorHandling _02057BD4: ldr r2, [sp, #0x4] add r0, r6, #0x0 add r1, r4, #0x0 blx FUN_020DF438 mov r0, #0xb mov r1, #0x14 bl FUN_020169D8 add r4, r0, #0x0 bne _02057BEE bl ErrorHandling _02057BEE: ldr r0, [sp, #0x0] str r0, [r4, #0x0] str r5, [r4, #0x4] mov r0, #0x0 str r0, [r4, #0x8] str r7, [r4, #0xc] add r0, r4, #0x0 str r6, [r4, #0x10] bl FUN_02057C08 add sp, #0x8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02057C08 FUN_02057C08: ; 0x02057C08 push {r3-r7, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_020583E8 add r6, r5, #0x0 ldr r4, [r5, #0x10] add r7, r0, #0x0 add r6, #0x8 _02057C1A: add r0, r4, #0x0 bl FUN_02058CE0 cmp r0, #0x1 beq _02057C30 ldrh r1, [r4, #0x8] add r0, r7, #0x0 bl FUN_02039528 cmp r0, #0x0 bne _02057C42 _02057C30: ldr r0, [r5, #0xc] ldr r2, [r5, #0x0] add r1, r4, #0x0 bl FUN_02057494 cmp r0, #0x0 bne _02057C42 bl ErrorHandling _02057C42: ldr r0, [r6, #0x0] add r4, #0x20 add r0, r0, #0x1 str r0, [r6, #0x0] ldr r1, [r5, #0x8] ldr r0, [r5, #0x4] cmp r1, r0 blt _02057C1A ldr r1, [r5, #0x10] mov r0, #0xb bl FUN_02016A8C mov r0, #0xb add r1, r5, #0x0 bl FUN_02016A8C pop {r3-r7, pc} thumb_func_start FUN_02057C64 FUN_02057C64: ; 0x02057C64 push {r3-r7, lr} add r5, r0, #0x0 mov r4, #0x0 bl FUN_02058368 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_020583CC mov r7, #0x4a add r5, r0, #0x0 lsl r7, r7, #0x2 _02057C7C: add r0, r5, #0x0 mov r1, #0x1 bl FUN_02058424 cmp r0, #0x0 bne _02057C8C add r0, r5, #0x0 pop {r3-r7, pc} _02057C8C: add r4, r4, #0x1 add r5, r5, r7 cmp r4, r6 blt _02057C7C mov r0, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02057C98 FUN_02057C98: ; 0x02057C98 push {r3-r7, lr} sub sp, #0x8 add r5, r1, #0x0 mov r1, #0x0 add r4, r2, #0x0 str r1, [sp, #0x4] add r1, sp, #0x0 add r2, sp, #0x4 mov r3, #0x1 add r6, r0, #0x0 bl FUN_020580F4 cmp r0, #0x1 bne _02057CEA add r7, sp, #0x0 _02057CB6: ldr r0, [sp, #0x0] bl FUN_020589CC cmp r0, #0x1 bne _02057CDA ldr r0, [sp, #0x0] bl FUN_02058448 cmp r5, r0 bne _02057CDA ldr r0, [sp, #0x0] bl FUN_02058750 cmp r4, r0 bne _02057CDA ldr r0, [sp, #0x0] add sp, #0x8 pop {r3-r7, pc} _02057CDA: add r0, r6, #0x0 add r1, r7, #0x0 add r2, sp, #0x4 mov r3, #0x1 bl FUN_020580F4 cmp r0, #0x1 beq _02057CB6 _02057CEA: mov r0, #0x0 add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_02057CF0 FUN_02057CF0: ; 0x02057CF0 push {r3-r5, lr} add r4, r1, #0x0 bl FUN_0205839C add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02058480 cmp r0, #0x30 beq _02057D08 cmp r0, #0x32 bne _02057D0A _02057D08: add r5, r5, #0x2 _02057D0A: ldr r0, _02057D28 ; =FUN_0205832C add r1, r4, #0x0 add r2, r5, #0x0 bl FUN_0200CA44 add r5, r0, #0x0 bne _02057D1C bl ErrorHandling _02057D1C: add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_02058554 pop {r3-r5, pc} nop _02057D28: .word FUN_0205832C thumb_func_start FUN_02057D2C FUN_02057D2C: ; 0x02057D2C push {r4-r6, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r0, r4, #0x0 add r6, r2, #0x0 bl FUN_02058BFC add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_02058444 add r0, r4, #0x0 bl FUN_02058C04 add r1, r0, #0x0 add r0, r6, #0x0 bl FUN_02058170 add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_02058454 add r0, r4, #0x0 bl FUN_02058C0C add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_0205847C add r0, r4, #0x0 bl FUN_02058C14 add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_02058484 add r0, r4, #0x0 bl FUN_02058C1C add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_0205848C add r0, r4, #0x0 bl FUN_02058C24 add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_02058494 add r0, r4, #0x0 bl FUN_02058C2C add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_0205849C add r0, r4, #0x0 mov r1, #0x0 bl FUN_02058C58 add r1, r0, #0x0 add r0, r5, #0x0 mov r2, #0x0 bl FUN_020584EC add r0, r4, #0x0 mov r1, #0x1 bl FUN_02058C58 add r1, r0, #0x0 add r0, r5, #0x0 mov r2, #0x1 bl FUN_020584EC add r0, r4, #0x0 mov r1, #0x2 bl FUN_02058C58 add r1, r0, #0x0 add r0, r5, #0x0 mov r2, #0x2 bl FUN_020584EC add r0, r4, #0x0 bl FUN_02058C80 add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_02058534 add r0, r4, #0x0 bl FUN_02058C8C add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_0205853C add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02057DFC pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02057DFC FUN_02057DFC: ; 0x02057DFC push {r3-r6, lr} sub sp, #0xc add r6, r1, #0x0 add r4, r0, #0x0 add r0, r6, #0x0 bl FUN_02058C98 add r5, r0, #0x0 mov r0, #0x2 lsl r1, r5, #0x10 lsl r0, r0, #0xe add r0, r1, r0 str r0, [sp, #0x0] add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_02058B00 add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_02058B18 add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_02058B30 add r0, r6, #0x0 bl FUN_02058CA0 asr r1, r0, #0x3 str r0, [sp, #0x4] asr r0, r1, #0xb lsr r0, r0, #0x14 add r0, r1, r0 asr r5, r0, #0xc add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_02058B08 add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_02058B20 add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_02058B40 add r0, r6, #0x0 bl FUN_02058CA8 add r5, r0, #0x0 mov r0, #0x2 lsl r1, r5, #0x10 lsl r0, r0, #0xe add r0, r1, r0 str r0, [sp, #0x8] add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_02058B10 add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_02058B28 add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_02058B50 add r0, r4, #0x0 add r1, sp, #0x0 bl FUN_02058B6C add sp, #0xc pop {r3-r6, pc} .balign 4 thumb_func_start FUN_02057E90 FUN_02057E90: ; 0x02057E90 push {r3-r5, lr} add r4, r1, #0x0 ldr r1, _02057EDC ; =0x00001801 add r5, r0, #0x0 bl FUN_02058410 add r0, r5, #0x0 bl FUN_020581F8 cmp r0, #0x1 bne _02057EAE add r0, r5, #0x0 mov r1, #0x1 bl FUN_020589B0 _02057EAE: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02058570 add r0, r5, #0x0 bl FUN_020584A0 add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_020584A4 add r0, r5, #0x0 bl FUN_020584A0 add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_020584CC add r0, r5, #0x0 bl FUN_0205AE80 pop {r3-r5, pc} nop _02057EDC: .word 0x00001801 thumb_func_start FUN_02057EE0 FUN_02057EE0: ; 0x02057EE0 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02058480 bl FUN_02058D14 add r4, r0, #0x0 bl FUN_02058D2C add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_02058630 add r0, r4, #0x0 bl FUN_02058D30 add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_02058644 add r0, r4, #0x0 bl FUN_02058D34 add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_02058658 pop {r3-r5, pc} thumb_func_start FUN_02057F18 FUN_02057F18: ; 0x02057F18 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02058458 mov r1, #0x2 lsl r1, r1, #0xc cmp r0, r1 bne _02057F2C ldr r5, _02057F7C ; =0x021F9080 b _02057F32 _02057F2C: bl FUN_02058D4C add r5, r0, #0x0 _02057F32: add r0, r5, #0x0 bl FUN_02058D38 add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_02058684 add r0, r5, #0x0 bl FUN_02058D3C add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_02058698 add r0, r5, #0x0 bl FUN_02058D40 add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_020586AC add r0, r5, #0x0 bl FUN_02058D44 add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_020586C0 add r0, r5, #0x0 bl FUN_02058D48 add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_020586D4 pop {r3-r5, pc} nop _02057F7C: .word 0x021F9080 thumb_func_start FUN_02057F80 FUN_02057F80: ; 0x02057F80 ldr r3, _02057F8C ; =FUN_020DF4A4 mov r2, #0x4a mov r1, #0x0 lsl r2, r2, #0x2 bx r3 nop _02057F8C: .word FUN_020DF4A4 thumb_func_start FUN_02057F90 FUN_02057F90: ; 0x02057F90 push {r3-r7, lr} add r6, r2, #0x0 add r5, r0, #0x0 add r4, r3, #0x0 str r1, [sp, #0x0] cmp r6, #0x0 beq _0205800A _02057F9E: add r0, r4, #0x0 bl FUN_02058BFC add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02058448 cmp r7, r0 bne _02058002 add r0, r4, #0x0 bl FUN_02058CE0 cmp r0, #0x1 bne _02057FE8 add r0, r4, #0x0 bl FUN_02058CFC add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_020589CC cmp r0, #0x1 bne _02057FDA add r0, r5, #0x0 bl FUN_02058750 cmp r7, r0 bne _02058002 mov r0, #0x1 pop {r3-r7, pc} _02057FDA: add r0, r5, #0x0 bl FUN_02058450 cmp r7, r0 bne _02058002 mov r0, #0x2 pop {r3-r7, pc} _02057FE8: add r0, r5, #0x0 bl FUN_020589CC cmp r0, #0x1 bne _02058002 add r0, r5, #0x0 bl FUN_02058750 ldr r1, [sp, #0x0] cmp r1, r0 bne _02058002 mov r0, #0x2 pop {r3-r7, pc} _02058002: sub r6, r6, #0x1 add r4, #0x20 cmp r6, #0x0 bne _02057F9E _0205800A: mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02058010 FUN_02058010: ; 0x02058010 push {r3-r7, lr} sub sp, #0x8 add r5, r1, #0x0 mov r1, #0x0 add r4, r2, #0x0 str r1, [sp, #0x4] add r1, sp, #0x0 add r2, sp, #0x4 mov r3, #0x1 add r6, r0, #0x0 bl FUN_020580F4 cmp r0, #0x1 bne _02058058 add r7, sp, #0x0 _0205802E: ldr r0, [sp, #0x0] bl FUN_02058448 cmp r5, r0 bne _02058048 ldr r0, [sp, #0x0] bl FUN_02058450 cmp r4, r0 bne _02058048 ldr r0, [sp, #0x0] add sp, #0x8 pop {r3-r7, pc} _02058048: add r0, r6, #0x0 add r1, r7, #0x0 add r2, sp, #0x4 mov r3, #0x1 bl FUN_020580F4 cmp r0, #0x1 beq _0205802E _02058058: mov r0, #0x0 add sp, #0x8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02058060 FUN_02058060: ; 0x02058060 push {r3-r7, lr} add r5, r0, #0x0 add r6, r1, #0x0 cmp r5, #0x0 bne _0205806E bl ErrorHandling _0205806E: add r0, r5, #0x0 bl FUN_02058368 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_020583C4 mov r7, #0x4a add r5, r0, #0x0 lsl r7, r7, #0x2 _02058082: add r0, r5, #0x0 mov r1, #0x1 bl FUN_0205842C cmp r0, #0x1 bne _020580A6 add r0, r5, #0x0 bl FUN_020589CC cmp r0, #0x0 bne _020580A6 add r0, r5, #0x0 bl FUN_02058448 cmp r6, r0 bne _020580A6 add r0, r5, #0x0 pop {r3-r7, pc} _020580A6: sub r4, r4, #0x1 add r5, r5, r7 cmp r4, #0x0 bgt _02058082 mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020580B4 FUN_020580B4: ; 0x020580B4 push {r3-r7, lr} add r5, r0, #0x0 add r6, r1, #0x0 bl FUN_02058368 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_020583C4 mov r7, #0x4a add r5, r0, #0x0 lsl r7, r7, #0x2 _020580CC: add r0, r5, #0x0 mov r1, #0x1 bl FUN_0205842C cmp r0, #0x1 bne _020580E6 add r0, r5, #0x0 bl FUN_02058480 cmp r6, r0 bne _020580E6 add r0, r5, #0x0 pop {r3-r7, pc} _020580E6: sub r4, r4, #0x1 add r5, r5, r7 cmp r4, #0x0 bgt _020580CC mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020580F4 FUN_020580F4: ; 0x020580F4 push {r3-r7, lr} add r5, r2, #0x0 add r4, r0, #0x0 str r1, [sp, #0x0] add r6, r3, #0x0 bl FUN_02058368 add r7, r0, #0x0 ldr r0, [r5, #0x0] cmp r0, r7 blt _0205810E mov r0, #0x0 pop {r3-r7, pc} _0205810E: add r0, r4, #0x0 bl FUN_020583C4 mov r1, #0x4a ldr r2, [r5, #0x0] lsl r1, r1, #0x2 mul r1, r2 add r4, r0, r1 _0205811E: ldr r0, [r5, #0x0] add r1, r6, #0x0 add r0, r0, #0x1 str r0, [r5, #0x0] add r0, r4, #0x0 bl FUN_02058424 cmp r6, r0 bne _02058138 ldr r0, [sp, #0x0] str r4, [r0, #0x0] mov r0, #0x1 pop {r3-r7, pc} _02058138: mov r0, #0x4a lsl r0, r0, #0x2 add r4, r4, r0 ldr r0, [r5, #0x0] cmp r0, r7 blt _0205811E mov r0, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02058148 FUN_02058148: ; 0x02058148 push {r4, lr} add r4, r0, #0x0 mov r1, #0x4 bl FUN_02058410 add r0, r4, #0x0 bl FUN_0205815C pop {r4, pc} .balign 4 thumb_func_start FUN_0205815C FUN_0205815C: ; 0x0205815C ldr r3, _02058164 ; =FUN_02058418 ldr r1, _02058168 ; =0x05108000 bx r3 nop _02058164: .word FUN_02058418 _02058168: .word 0x05108000 thumb_func_start FUN_0205816C FUN_0205816C: ; 0x0205816C bx lr .balign 4 thumb_func_start FUN_02058170 FUN_02058170: ; 0x02058170 push {r3, lr} cmp r1, #0x65 blt _02058186 cmp r1, #0x75 bgt _02058186 sub r1, #0x65 lsl r1, r1, #0x10 lsr r1, r1, #0x10 bl FUN_02039504 add r1, r0, #0x0 _02058186: add r0, r1, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0205818C FUN_0205818C: ; 0x0205818C push {r4, lr} mov r1, #0x1 lsl r1, r1, #0xc add r4, r0, #0x0 bl FUN_02058424 cmp r0, #0x0 beq _020581A2 add r0, r4, #0x0 bl FUN_02059D1C _020581A2: pop {r4, pc} thumb_func_start FUN_020581A4 FUN_020581A4: ; 0x020581A4 push {r4, lr} add r4, r0, #0x0 bl FUN_02057EE0 add r0, r4, #0x0 bl FUN_02058EE8 pop {r4, pc} thumb_func_start FUN_020581B4 FUN_020581B4: ; 0x020581B4 push {r4, lr} add r4, r0, #0x0 bl FUN_02058578 bl FUN_020587E0 cmp r0, #0x0 beq _020581F6 add r0, r4, #0x0 bl FUN_0205818C add r0, r4, #0x0 mov r1, #0x0 bl FUN_02058544 add r0, r4, #0x0 mov r1, #0x0 bl FUN_021F2E0C add r0, r4, #0x0 bl FUN_02058884 cmp r0, #0x0 bne _020581F6 add r0, r4, #0x0 bl FUN_02057F18 add r0, r4, #0x0 bl FUN_0205868C add r0, r4, #0x0 bl FUN_02058878 _020581F6: pop {r4, pc} thumb_func_start FUN_020581F8 FUN_020581F8: ; 0x020581F8 push {r3, lr} bl FUN_02058498 lsl r0, r0, #0x10 lsr r1, r0, #0x10 ldr r0, _02058210 ; =0x0000FFFF cmp r1, r0 bne _0205820C mov r0, #0x1 pop {r3, pc} _0205820C: mov r0, #0x0 pop {r3, pc} .balign 4 _02058210: .word 0x0000FFFF thumb_func_start FUN_02058214 FUN_02058214: ; 0x02058214 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 bl FUN_020589CC cmp r0, #0x1 beq _02058228 bl ErrorHandling _02058228: add r0, r5, #0x0 mov r1, #0x0 bl FUN_020589B0 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_0205844C add r0, r4, #0x0 bl FUN_02058C24 add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_02058494 add r0, r4, #0x0 bl FUN_02058C1C add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_0205848C pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02058258 FUN_02058258: ; 0x02058258 push {r4-r6, lr} add r6, r2, #0x0 add r5, r0, #0x0 add r0, r6, #0x0 add r4, r1, #0x0 bl FUN_02058CE0 cmp r0, #0x1 beq _0205826E bl ErrorHandling _0205826E: add r0, r5, #0x0 mov r1, #0x1 bl FUN_020589B0 add r0, r6, #0x0 bl FUN_02058C24 add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_02058494 add r0, r6, #0x0 bl FUN_02058CFC add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_0205848C add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0205844C pop {r4-r6, pc} thumb_func_start FUN_0205829C FUN_0205829C: ; 0x0205829C push {r4, lr} add r4, r1, #0x0 bl FUN_02058744 add r0, r0, r4 pop {r4, pc} thumb_func_start FUN_020582A8 FUN_020582A8: ; 0x020582A8 push {r4-r6, lr} add r6, r1, #0x0 mov r1, #0x1 add r5, r0, #0x0 add r4, r2, #0x0 bl FUN_0205842C cmp r0, #0x0 bne _020582BE mov r0, #0x0 pop {r4-r6, pc} _020582BE: add r0, r5, #0x0 bl FUN_02058448 cmp r6, r0 beq _020582CC mov r0, #0x0 pop {r4-r6, pc} _020582CC: add r0, r5, #0x0 bl FUN_02058450 cmp r4, r0 beq _020582F2 add r0, r5, #0x0 bl FUN_020589CC cmp r0, #0x0 bne _020582E4 mov r0, #0x0 pop {r4-r6, pc} _020582E4: add r0, r5, #0x0 bl FUN_02058750 cmp r4, r0 beq _020582F2 mov r0, #0x0 pop {r4-r6, pc} _020582F2: mov r0, #0x1 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_020582F8 FUN_020582F8: ; 0x020582F8 push {r3-r7, lr} add r4, r1, #0x0 mov r1, #0x1 add r5, r0, #0x0 add r6, r2, #0x0 add r7, r3, #0x0 bl FUN_0205842C cmp r0, #0x0 bne _02058310 mov r0, #0x0 pop {r3-r7, pc} _02058310: add r0, r5, #0x0 bl FUN_0205845C cmp r0, r4 beq _0205831E mov r0, #0x0 pop {r3-r7, pc} _0205831E: add r0, r5, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 bl FUN_020582A8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0205832C FUN_0205832C: ; 0x0205832C push {r4, lr} add r4, r1, #0x0 add r0, r4, #0x0 bl FUN_02058EF8 add r0, r4, #0x0 bl FUN_02058830 cmp r0, #0x0 beq _02058346 add r0, r4, #0x0 bl FUN_02058348 _02058346: pop {r4, pc} thumb_func_start FUN_02058348 FUN_02058348: ; 0x02058348 push {r4, lr} add r4, r0, #0x0 bl FUN_02058578 bl FUN_020587E0 cmp r0, #0x1 bne _0205835E add r0, r4, #0x0 bl FUN_021F1D8C _0205835E: pop {r4, pc} thumb_func_start FUN_02058360 FUN_02058360: ; 0x02058360 bx lr .balign 4 thumb_func_start FUN_02058364 FUN_02058364: ; 0x02058364 str r1, [r0, #0x4] bx lr thumb_func_start FUN_02058368 FUN_02058368: ; 0x02058368 ldr r0, [r0, #0x4] bx lr thumb_func_start FUN_0205836C FUN_0205836C: ; 0x0205836C ldr r1, [r0, #0x8] add r1, r1, #0x1 str r1, [r0, #0x8] bx lr thumb_func_start FUN_02058374 FUN_02058374: ; 0x02058374 ldr r1, [r0, #0x8] sub r1, r1, #0x1 str r1, [r0, #0x8] bx lr thumb_func_start FUN_0205837C FUN_0205837C: ; 0x0205837C ldr r2, [r0, #0x0] orr r1, r2 str r1, [r0, #0x0] bx lr thumb_func_start FUN_02058384 FUN_02058384: ; 0x02058384 ldr r2, [r0, #0x0] mvn r1, r1 and r1, r2 str r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02058390 FUN_02058390: ; 0x02058390 ldr r0, [r0, #0x0] and r0, r1 bx lr .balign 4 thumb_func_start FUN_02058398 FUN_02058398: ; 0x02058398 str r1, [r0, #0xc] bx lr thumb_func_start FUN_0205839C FUN_0205839C: ; 0x0205839C ldr r0, [r0, #0xc] bx lr thumb_func_start FUN_020583A0 FUN_020583A0: ; 0x020583A0 add r0, #0x18 bx lr thumb_func_start FUN_020583A4 FUN_020583A4: ; 0x020583A4 mov r2, #0x12 lsl r2, r2, #0x4 str r1, [r0, r2] bx lr thumb_func_start FUN_020583AC FUN_020583AC: ; 0x020583AC mov r1, #0x12 lsl r1, r1, #0x4 ldr r0, [r0, r1] bx lr thumb_func_start FUN_020583B4 FUN_020583B4: ; 0x020583B4 mov r2, #0x49 lsl r2, r2, #0x2 str r1, [r0, r2] bx lr thumb_func_start FUN_020583BC FUN_020583BC: ; 0x020583BC mov r1, #0x49 lsl r1, r1, #0x2 ldr r0, [r0, r1] bx lr thumb_func_start FUN_020583C4 FUN_020583C4: ; 0x020583C4 mov r1, #0x49 lsl r1, r1, #0x2 ldr r0, [r0, r1] bx lr thumb_func_start FUN_020583CC FUN_020583CC: ; 0x020583CC mov r1, #0x49 lsl r1, r1, #0x2 ldr r0, [r0, r1] bx lr thumb_func_start FUN_020583D4 FUN_020583D4: ; 0x020583D4 mov r1, #0x4a ldr r2, [r0, #0x0] lsl r1, r1, #0x2 add r1, r2, r1 str r1, [r0, #0x0] bx lr thumb_func_start FUN_020583E0 FUN_020583E0: ; 0x020583E0 mov r2, #0x4a lsl r2, r2, #0x2 str r1, [r0, r2] bx lr thumb_func_start FUN_020583E8 FUN_020583E8: ; 0x020583E8 mov r1, #0x4a lsl r1, r1, #0x2 ldr r0, [r0, r1] bx lr thumb_func_start FUN_020583F0 FUN_020583F0: ; 0x020583F0 str r1, [r0, #0x14] bx lr thumb_func_start FUN_020583F4 FUN_020583F4: ; 0x020583F4 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x14] cmp r0, #0x0 bne _02058402 bl ErrorHandling _02058402: ldr r0, [r4, #0x14] pop {r4, pc} .balign 4 thumb_func_start FUN_02058408 FUN_02058408: ; 0x02058408 str r1, [r0, #0x0] bx lr thumb_func_start FUN_0205840C FUN_0205840C: ; 0x0205840C ldr r0, [r0, #0x0] bx lr thumb_func_start FUN_02058410 FUN_02058410: ; 0x02058410 ldr r2, [r0, #0x0] orr r1, r2 str r1, [r0, #0x0] bx lr thumb_func_start FUN_02058418 FUN_02058418: ; 0x02058418 ldr r2, [r0, #0x0] mvn r1, r1 and r1, r2 str r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02058424 FUN_02058424: ; 0x02058424 ldr r0, [r0, #0x0] and r0, r1 bx lr .balign 4 thumb_func_start FUN_0205842C FUN_0205842C: ; 0x0205842C ldr r0, [r0, #0x0] tst r0, r1 beq _02058436 mov r0, #0x1 bx lr _02058436: mov r0, #0x0 bx lr .balign 4 thumb_func_start FUN_0205843C FUN_0205843C: ; 0x0205843C str r1, [r0, #0x4] bx lr thumb_func_start FUN_02058440 FUN_02058440: ; 0x02058440 ldr r0, [r0, #0x4] bx lr thumb_func_start FUN_02058444 FUN_02058444: ; 0x02058444 str r1, [r0, #0x8] bx lr thumb_func_start FUN_02058448 FUN_02058448: ; 0x02058448 ldr r0, [r0, #0x8] bx lr thumb_func_start FUN_0205844C FUN_0205844C: ; 0x0205844C str r1, [r0, #0xc] bx lr thumb_func_start FUN_02058450 FUN_02058450: ; 0x02058450 ldr r0, [r0, #0xc] bx lr thumb_func_start FUN_02058454 FUN_02058454: ; 0x02058454 str r1, [r0, #0x10] bx lr thumb_func_start FUN_02058458 FUN_02058458: ; 0x02058458 ldr r0, [r0, #0x10] bx lr thumb_func_start FUN_0205845C FUN_0205845C: ; 0x0205845C push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02058458 add r4, r0, #0x0 bl FUN_0205C334 cmp r0, #0x1 bne _02058476 add r0, r5, #0x0 bl FUN_0205C340 add r4, r0, #0x0 _02058476: add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0205847C FUN_0205847C: ; 0x0205847C str r1, [r0, #0x14] bx lr thumb_func_start FUN_02058480 FUN_02058480: ; 0x02058480 ldr r0, [r0, #0x14] bx lr thumb_func_start FUN_02058484 FUN_02058484: ; 0x02058484 str r1, [r0, #0x18] bx lr thumb_func_start FUN_02058488 FUN_02058488: ; 0x02058488 ldr r0, [r0, #0x18] bx lr thumb_func_start FUN_0205848C FUN_0205848C: ; 0x0205848C str r1, [r0, #0x1c] bx lr thumb_func_start FUN_02058490 FUN_02058490: ; 0x02058490 ldr r0, [r0, #0x1c] bx lr thumb_func_start FUN_02058494 FUN_02058494: ; 0x02058494 str r1, [r0, #0x20] bx lr thumb_func_start FUN_02058498 FUN_02058498: ; 0x02058498 ldr r0, [r0, #0x20] bx lr thumb_func_start FUN_0205849C FUN_0205849C: ; 0x0205849C str r1, [r0, #0x24] bx lr thumb_func_start FUN_020584A0 FUN_020584A0: ; 0x020584A0 ldr r0, [r0, #0x24] bx lr thumb_func_start FUN_020584A4 FUN_020584A4: ; 0x020584A4 ldr r2, [r0, #0x28] str r2, [r0, #0x30] str r1, [r0, #0x28] bx lr thumb_func_start FUN_020584AC FUN_020584AC: ; 0x020584AC push {r3-r5, lr} add r4, r1, #0x0 mov r1, #0x80 add r5, r0, #0x0 bl FUN_02058424 cmp r0, #0x0 bne _020584C2 ldr r0, [r5, #0x28] str r0, [r5, #0x30] str r4, [r5, #0x28] _020584C2: pop {r3-r5, pc} thumb_func_start FUN_020584C4 FUN_020584C4: ; 0x020584C4 ldr r0, [r0, #0x28] bx lr thumb_func_start FUN_020584C8 FUN_020584C8: ; 0x020584C8 ldr r0, [r0, #0x30] bx lr thumb_func_start FUN_020584CC FUN_020584CC: ; 0x020584CC ldr r2, [r0, #0x2c] str r2, [r0, #0x34] str r1, [r0, #0x2c] bx lr thumb_func_start FUN_020584D4 FUN_020584D4: ; 0x020584D4 ldr r0, [r0, #0x2c] bx lr thumb_func_start FUN_020584D8 FUN_020584D8: ; 0x020584D8 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_020584AC add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_020584CC pop {r3-r5, pc} thumb_func_start FUN_020584EC FUN_020584EC: ; 0x020584EC push {r3, lr} cmp r2, #0x0 beq _020584FC cmp r2, #0x1 beq _02058500 cmp r2, #0x2 beq _02058504 b _02058508 _020584FC: str r1, [r0, #0x38] pop {r3, pc} _02058500: str r1, [r0, #0x3c] pop {r3, pc} _02058504: str r1, [r0, #0x40] pop {r3, pc} _02058508: bl ErrorHandling pop {r3, pc} .balign 4 thumb_func_start FUN_02058510 FUN_02058510: ; 0x02058510 push {r3, lr} cmp r1, #0x0 beq _02058520 cmp r1, #0x1 beq _02058524 cmp r1, #0x2 beq _02058528 b _0205852C _02058520: ldr r0, [r0, #0x38] pop {r3, pc} _02058524: ldr r0, [r0, #0x3c] pop {r3, pc} _02058528: ldr r0, [r0, #0x40] pop {r3, pc} _0205852C: bl ErrorHandling mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_02058534 FUN_02058534: ; 0x02058534 str r1, [r0, #0x44] bx lr thumb_func_start FUN_02058538 FUN_02058538: ; 0x02058538 ldr r0, [r0, #0x44] bx lr thumb_func_start FUN_0205853C FUN_0205853C: ; 0x0205853C str r1, [r0, #0x48] bx lr thumb_func_start FUN_02058540 FUN_02058540: ; 0x02058540 ldr r0, [r0, #0x48] bx lr thumb_func_start FUN_02058544 FUN_02058544: ; 0x02058544 add r0, #0xa0 str r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_0205854C FUN_0205854C: ; 0x0205854C add r0, #0xa0 ldr r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02058554 FUN_02058554: ; 0x02058554 add r0, #0xb0 str r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_0205855C FUN_0205855C: ; 0x0205855C add r0, #0xb0 ldr r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02058564 FUN_02058564: ; 0x02058564 push {r3, lr} bl FUN_0205855C bl FUN_0200CAB4 pop {r3, pc} thumb_func_start FUN_02058570 FUN_02058570: ; 0x02058570 add r0, #0xb4 str r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02058578 FUN_02058578: ; 0x02058578 add r0, #0xb4 ldr r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02058580 FUN_02058580: ; 0x02058580 ldr r3, _02058588 ; =FUN_02058360 add r0, #0xb4 ldr r0, [r0, #0x0] bx r3 .balign 4 _02058588: .word FUN_02058360 thumb_func_start FUN_0205858C FUN_0205858C: ; 0x0205858C push {r3-r5, lr} add r5, r1, #0x0 add r4, r0, #0x0 cmp r5, #0x10 ble _0205859A bl ErrorHandling _0205859A: add r0, r4, #0x0 bl FUN_020585B0 mov r1, #0x0 add r2, r5, #0x0 add r4, r0, #0x0 blx FUN_020DF4A4 add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020585B0 FUN_020585B0: ; 0x020585B0 add r0, #0xd8 bx lr thumb_func_start FUN_020585B4 FUN_020585B4: ; 0x020585B4 push {r3-r5, lr} add r5, r1, #0x0 add r4, r0, #0x0 cmp r5, #0x10 ble _020585C2 bl ErrorHandling _020585C2: add r0, r4, #0x0 bl FUN_020585D8 mov r1, #0x0 add r2, r5, #0x0 add r4, r0, #0x0 blx FUN_020DF4A4 add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020585D8 FUN_020585D8: ; 0x020585D8 add r0, #0xe8 bx lr thumb_func_start FUN_020585DC FUN_020585DC: ; 0x020585DC push {r3-r5, lr} add r5, r1, #0x0 add r4, r0, #0x0 cmp r5, #0x10 ble _020585EA bl ErrorHandling _020585EA: add r0, r4, #0x0 bl FUN_02058600 mov r1, #0x0 add r2, r5, #0x0 add r4, r0, #0x0 blx FUN_020DF4A4 add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02058600 FUN_02058600: ; 0x02058600 add r0, #0xf8 bx lr thumb_func_start FUN_02058604 FUN_02058604: ; 0x02058604 push {r3-r5, lr} add r5, r1, #0x0 add r4, r0, #0x0 cmp r5, #0x20 ble _02058612 bl ErrorHandling _02058612: add r0, r4, #0x0 bl FUN_02058628 mov r1, #0x0 add r2, r5, #0x0 add r4, r0, #0x0 blx FUN_020DF4A4 add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02058628 FUN_02058628: ; 0x02058628 mov r1, #0x42 lsl r1, r1, #0x2 add r0, r0, r1 bx lr thumb_func_start FUN_02058630 FUN_02058630: ; 0x02058630 add r0, #0xb8 str r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02058638 FUN_02058638: ; 0x02058638 push {r3, lr} add r1, r0, #0x0 add r1, #0xb8 ldr r1, [r1, #0x0] blx r1 pop {r3, pc} thumb_func_start FUN_02058644 FUN_02058644: ; 0x02058644 add r0, #0xbc str r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_0205864C FUN_0205864C: ; 0x0205864C push {r3, lr} add r1, r0, #0x0 add r1, #0xbc ldr r1, [r1, #0x0] blx r1 pop {r3, pc} thumb_func_start FUN_02058658 FUN_02058658: ; 0x02058658 add r0, #0xc0 str r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02058660 FUN_02058660: ; 0x02058660 push {r3, lr} add r1, r0, #0x0 add r1, #0xc0 ldr r1, [r1, #0x0] blx r1 pop {r3, pc} thumb_func_start FUN_0205866C FUN_0205866C: ; 0x0205866C push {r4, lr} add r4, r0, #0x0 bl FUN_02058480 bl FUN_02058D14 add r1, r0, #0x0 ldr r1, [r1, #0x10] add r0, r4, #0x0 blx r1 pop {r4, pc} .balign 4 thumb_func_start FUN_02058684 FUN_02058684: ; 0x02058684 add r0, #0xc4 str r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_0205868C FUN_0205868C: ; 0x0205868C push {r3, lr} add r1, r0, #0x0 add r1, #0xc4 ldr r1, [r1, #0x0] blx r1 pop {r3, pc} thumb_func_start FUN_02058698 FUN_02058698: ; 0x02058698 add r0, #0xc8 str r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_020586A0 FUN_020586A0: ; 0x020586A0 push {r3, lr} add r1, r0, #0x0 add r1, #0xc8 ldr r1, [r1, #0x0] blx r1 pop {r3, pc} thumb_func_start FUN_020586AC FUN_020586AC: ; 0x020586AC add r0, #0xcc str r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_020586B4 FUN_020586B4: ; 0x020586B4 push {r3, lr} add r1, r0, #0x0 add r1, #0xcc ldr r1, [r1, #0x0] blx r1 pop {r3, pc} thumb_func_start FUN_020586C0 FUN_020586C0: ; 0x020586C0 add r0, #0xd0 str r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_020586C8 FUN_020586C8: ; 0x020586C8 push {r3, lr} add r1, r0, #0x0 add r1, #0xd0 ldr r1, [r1, #0x0] blx r1 pop {r3, pc} thumb_func_start FUN_020586D4 FUN_020586D4: ; 0x020586D4 add r0, #0xd4 str r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_020586DC FUN_020586DC: ; 0x020586DC push {r3, lr} add r1, r0, #0x0 add r1, #0xd4 ldr r1, [r1, #0x0] blx r1 pop {r3, pc} thumb_func_start FUN_020586E8 FUN_020586E8: ; 0x020586E8 add r0, #0xa4 str r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_020586F0 FUN_020586F0: ; 0x020586F0 add r0, #0xa4 ldr r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_020586F8 FUN_020586F8: ; 0x020586F8 add r0, #0xa8 str r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02058700 FUN_02058700: ; 0x02058700 add r1, r0, #0x0 add r1, #0xa8 ldr r1, [r1, #0x0] add r0, #0xa8 add r1, r1, #0x1 str r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02058710 FUN_02058710: ; 0x02058710 add r0, #0xa8 ldr r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02058718 FUN_02058718: ; 0x02058718 add r0, #0xac strh r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02058720 FUN_02058720: ; 0x02058720 add r0, #0xac ldrh r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02058728 FUN_02058728: ; 0x02058728 add r0, #0xae strh r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02058730 FUN_02058730: ; 0x02058730 add r0, #0xae ldrh r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02058738 FUN_02058738: ; 0x02058738 push {r3, lr} bl FUN_02058580 bl FUN_020583E8 pop {r3, pc} thumb_func_start FUN_02058744 FUN_02058744: ; 0x02058744 push {r3, lr} bl FUN_02058578 bl FUN_0205839C pop {r3, pc} thumb_func_start FUN_02058750 FUN_02058750: ; 0x02058750 push {r4, lr} add r4, r0, #0x0 bl FUN_020589CC cmp r0, #0x1 beq _02058760 bl ErrorHandling _02058760: add r0, r4, #0x0 bl FUN_02058490 pop {r4, pc} thumb_func_start FUN_02058768 FUN_02058768: ; 0x02058768 ldr r3, _02058770 ; =FUN_0205837C mov r1, #0x6 bx r3 nop _02058770: .word FUN_0205837C thumb_func_start FUN_02058774 FUN_02058774: ; 0x02058774 ldr r3, _0205877C ; =FUN_02058384 mov r1, #0x6 bx r3 nop _0205877C: .word FUN_02058384 thumb_func_start FUN_02058780 FUN_02058780: ; 0x02058780 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02058368 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_020583CC mov r6, #0x4a add r5, r0, #0x0 lsl r6, r6, #0x2 _02058796: add r0, r5, #0x0 bl FUN_02058830 cmp r0, #0x0 beq _020587A6 add r0, r5, #0x0 bl FUN_02058908 _020587A6: add r5, r5, r6 sub r4, r4, #0x1 bne _02058796 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_020587B0 FUN_020587B0: ; 0x020587B0 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02058368 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_020583CC mov r6, #0x4a add r5, r0, #0x0 lsl r6, r6, #0x2 _020587C6: add r0, r5, #0x0 bl FUN_02058830 cmp r0, #0x0 beq _020587D6 add r0, r5, #0x0 bl FUN_02058914 _020587D6: add r5, r5, r6 sub r4, r4, #0x1 bne _020587C6 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_020587E0 FUN_020587E0: ; 0x020587E0 push {r3, lr} mov r1, #0x1 bl FUN_02058390 cmp r0, #0x0 beq _020587F0 mov r0, #0x1 pop {r3, pc} _020587F0: mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_020587F4 FUN_020587F4: ; 0x020587F4 push {r4, lr} add r4, r1, #0x0 bl FUN_02058578 add r1, r4, #0x0 bl FUN_02058390 pop {r4, pc} thumb_func_start FUN_02058804 FUN_02058804: ; 0x02058804 push {r3, lr} cmp r1, #0x0 bne _02058812 mov r1, #0x8 bl FUN_0205837C pop {r3, pc} _02058812: mov r1, #0x8 bl FUN_02058384 pop {r3, pc} .balign 4 thumb_func_start FUN_0205881C FUN_0205881C: ; 0x0205881C push {r3, lr} mov r1, #0x8 bl FUN_02058390 cmp r0, #0x0 bne _0205882C mov r0, #0x1 pop {r3, pc} _0205882C: mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_02058830 FUN_02058830: ; 0x02058830 ldr r3, _02058838 ; =FUN_0205842C mov r1, #0x1 bx r3 nop _02058838: .word FUN_0205842C thumb_func_start FUN_0205883C FUN_0205883C: ; 0x0205883C ldr r3, _02058844 ; =FUN_02058410 mov r1, #0x2 bx r3 nop _02058844: .word FUN_02058410 thumb_func_start FUN_02058848 FUN_02058848: ; 0x02058848 ldr r3, _02058850 ; =FUN_02058418 mov r1, #0x2 bx r3 nop _02058850: .word FUN_02058418 thumb_func_start FUN_02058854 FUN_02058854: ; 0x02058854 ldr r3, _0205885C ; =FUN_0205842C mov r1, #0x2 bx r3 nop _0205885C: .word FUN_0205842C thumb_func_start FUN_02058860 FUN_02058860: ; 0x02058860 ldr r3, _02058868 ; =FUN_02058410 mov r1, #0x4 bx r3 nop _02058868: .word FUN_02058410 thumb_func_start FUN_0205886C FUN_0205886C: ; 0x0205886C ldr r3, _02058874 ; =FUN_02058418 mov r1, #0x8 bx r3 nop _02058874: .word FUN_02058418 thumb_func_start FUN_02058878 FUN_02058878: ; 0x02058878 ldr r3, _02058880 ; =FUN_02058410 mov r1, #0x1 lsl r1, r1, #0xe bx r3 .balign 4 _02058880: .word FUN_02058410 thumb_func_start FUN_02058884 FUN_02058884: ; 0x02058884 ldr r3, _0205888C ; =FUN_0205842C mov r1, #0x1 lsl r1, r1, #0xe bx r3 .balign 4 _0205888C: .word FUN_0205842C thumb_func_start FUN_02058890 FUN_02058890: ; 0x02058890 ldr r3, _02058898 ; =FUN_0205842C mov r1, #0x2 lsl r1, r1, #0x8 bx r3 .balign 4 _02058898: .word FUN_0205842C thumb_func_start FUN_0205889C FUN_0205889C: ; 0x0205889C push {r3, lr} cmp r1, #0x1 bne _020588AC mov r1, #0x2 lsl r1, r1, #0x8 bl FUN_02058410 pop {r3, pc} _020588AC: mov r1, #0x2 lsl r1, r1, #0x8 bl FUN_02058418 pop {r3, pc} .balign 4 thumb_func_start FUN_020588B8 FUN_020588B8: ; 0x020588B8 push {r3, lr} cmp r1, #0x1 bne _020588C8 mov r1, #0x1 lsl r1, r1, #0x12 bl FUN_02058418 pop {r3, pc} _020588C8: mov r1, #0x1 lsl r1, r1, #0x12 bl FUN_02058410 pop {r3, pc} .balign 4 thumb_func_start FUN_020588D4 FUN_020588D4: ; 0x020588D4 push {r3, lr} mov r1, #0x2 lsl r1, r1, #0x12 bl FUN_0205842C cmp r0, #0x1 beq _020588E6 mov r0, #0x1 pop {r3, pc} _020588E6: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_020588EC FUN_020588EC: ; 0x020588EC push {r3, lr} cmp r1, #0x1 bne _020588FC mov r1, #0x2 lsl r1, r1, #0x12 bl FUN_02058410 pop {r3, pc} _020588FC: mov r1, #0x2 lsl r1, r1, #0x12 bl FUN_02058418 pop {r3, pc} .balign 4 thumb_func_start FUN_02058908 FUN_02058908: ; 0x02058908 ldr r3, _02058910 ; =FUN_02058410 mov r1, #0x40 bx r3 nop _02058910: .word FUN_02058410 thumb_func_start FUN_02058914 FUN_02058914: ; 0x02058914 ldr r3, _0205891C ; =FUN_02058418 mov r1, #0x40 bx r3 nop _0205891C: .word FUN_02058418 thumb_func_start FUN_02058920 FUN_02058920: ; 0x02058920 push {r3, lr} mov r1, #0x40 bl FUN_0205842C cmp r0, #0x1 bne _02058930 mov r0, #0x1 pop {r3, pc} _02058930: mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_02058934 FUN_02058934: ; 0x02058934 push {r4, lr} add r4, r0, #0x0 bl FUN_02058578 bl FUN_020587E0 cmp r0, #0x0 bne _02058948 mov r0, #0x0 pop {r4, pc} _02058948: mov r1, #0x1 add r0, r4, #0x0 lsl r1, r1, #0xe bl FUN_02058424 cmp r0, #0x0 beq _0205895A mov r0, #0x1 pop {r4, pc} _0205895A: mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02058960 FUN_02058960: ; 0x02058960 push {r3, lr} cmp r1, #0x1 bne _02058970 mov r1, #0x2 lsl r1, r1, #0x16 bl FUN_02058410 pop {r3, pc} _02058970: mov r1, #0x2 lsl r1, r1, #0x16 bl FUN_02058418 pop {r3, pc} .balign 4 thumb_func_start FUN_0205897C FUN_0205897C: ; 0x0205897C push {r3, lr} mov r1, #0x2 lsl r1, r1, #0x16 bl FUN_02058424 cmp r0, #0x0 beq _0205898E mov r0, #0x1 pop {r3, pc} _0205898E: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_02058994 FUN_02058994: ; 0x02058994 push {r3, lr} cmp r1, #0x1 bne _020589A4 mov r1, #0x1 lsl r1, r1, #0xa bl FUN_02058410 pop {r3, pc} _020589A4: mov r1, #0x1 lsl r1, r1, #0xa bl FUN_02058418 pop {r3, pc} .balign 4 thumb_func_start FUN_020589B0 FUN_020589B0: ; 0x020589B0 push {r3, lr} cmp r1, #0x1 bne _020589C0 mov r1, #0x2 lsl r1, r1, #0x18 bl FUN_02058410 pop {r3, pc} _020589C0: mov r1, #0x2 lsl r1, r1, #0x18 bl FUN_02058418 pop {r3, pc} .balign 4 thumb_func_start FUN_020589CC FUN_020589CC: ; 0x020589CC push {r3, lr} mov r1, #0x2 lsl r1, r1, #0x18 bl FUN_02058424 cmp r0, #0x0 beq _020589DE mov r0, #0x1 pop {r3, pc} _020589DE: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_020589E4 FUN_020589E4: ; 0x020589E4 push {r3, lr} cmp r1, #0x1 bne _020589F4 mov r1, #0x1 lsl r1, r1, #0x1a bl FUN_02058410 pop {r3, pc} _020589F4: mov r1, #0x1 lsl r1, r1, #0x1a bl FUN_02058418 pop {r3, pc} .balign 4 thumb_func_start FUN_02058A00 FUN_02058A00: ; 0x02058A00 push {r3, lr} mov r1, #0x1 lsl r1, r1, #0x1a bl FUN_02058424 cmp r0, #0x0 beq _02058A12 mov r0, #0x1 pop {r3, pc} _02058A12: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_02058A18 FUN_02058A18: ; 0x02058A18 push {r3, lr} cmp r1, #0x1 bne _02058A28 mov r1, #0x2 lsl r1, r1, #0x1a bl FUN_02058410 pop {r3, pc} _02058A28: mov r1, #0x2 lsl r1, r1, #0x1a bl FUN_02058418 pop {r3, pc} .balign 4 thumb_func_start FUN_02058A34 FUN_02058A34: ; 0x02058A34 push {r3, lr} mov r1, #0x2 lsl r1, r1, #0x1a bl FUN_02058424 cmp r0, #0x0 beq _02058A46 mov r0, #0x1 pop {r3, pc} _02058A46: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_02058A4C FUN_02058A4C: ; 0x02058A4C push {r3, lr} cmp r1, #0x1 bne _02058A5C mov r1, #0x1 lsl r1, r1, #0x1c bl FUN_02058410 pop {r3, pc} _02058A5C: mov r1, #0x1 lsl r1, r1, #0x1c bl FUN_02058418 pop {r3, pc} .balign 4 thumb_func_start FUN_02058A68 FUN_02058A68: ; 0x02058A68 push {r3, lr} mov r1, #0x1 lsl r1, r1, #0x1c bl FUN_02058424 cmp r0, #0x0 beq _02058A7A mov r0, #0x1 pop {r3, pc} _02058A7A: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_02058A80 FUN_02058A80: ; 0x02058A80 push {r3, lr} cmp r1, #0x1 bne _02058A90 mov r1, #0x1 lsl r1, r1, #0x18 bl FUN_02058410 pop {r3, pc} _02058A90: mov r1, #0x1 lsl r1, r1, #0x18 bl FUN_02058418 pop {r3, pc} .balign 4 thumb_func_start FUN_02058A9C FUN_02058A9C: ; 0x02058A9C push {r3, lr} mov r1, #0x1 lsl r1, r1, #0x18 bl FUN_02058424 cmp r0, #0x0 beq _02058AAE mov r0, #0x1 pop {r3, pc} _02058AAE: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_02058AB4 FUN_02058AB4: ; 0x02058AB4 push {r3, lr} mov r1, #0x10 bl FUN_02058424 cmp r0, #0x0 beq _02058AC4 mov r0, #0x1 pop {r3, pc} _02058AC4: mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_02058AC8 FUN_02058AC8: ; 0x02058AC8 push {r3, lr} cmp r1, #0x1 bne _02058AD8 mov r1, #0x2 lsl r1, r1, #0x1c bl FUN_02058410 pop {r3, pc} _02058AD8: mov r1, #0x2 lsl r1, r1, #0x1c bl FUN_02058418 pop {r3, pc} .balign 4 thumb_func_start FUN_02058AE4 FUN_02058AE4: ; 0x02058AE4 push {r3, lr} mov r1, #0x2 lsl r1, r1, #0x1c bl FUN_02058424 cmp r0, #0x0 beq _02058AF6 mov r0, #0x1 pop {r3, pc} _02058AF6: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_02058AFC FUN_02058AFC: ; 0x02058AFC ldr r0, [r0, #0x4c] bx lr thumb_func_start FUN_02058B00 FUN_02058B00: ; 0x02058B00 str r1, [r0, #0x4c] bx lr thumb_func_start FUN_02058B04 FUN_02058B04: ; 0x02058B04 ldr r0, [r0, #0x50] bx lr thumb_func_start FUN_02058B08 FUN_02058B08: ; 0x02058B08 str r1, [r0, #0x50] bx lr thumb_func_start FUN_02058B0C FUN_02058B0C: ; 0x02058B0C ldr r0, [r0, #0x54] bx lr thumb_func_start FUN_02058B10 FUN_02058B10: ; 0x02058B10 str r1, [r0, #0x54] bx lr thumb_func_start FUN_02058B14 FUN_02058B14: ; 0x02058B14 ldr r0, [r0, #0x58] bx lr thumb_func_start FUN_02058B18 FUN_02058B18: ; 0x02058B18 str r1, [r0, #0x58] bx lr thumb_func_start FUN_02058B1C FUN_02058B1C: ; 0x02058B1C ldr r0, [r0, #0x5c] bx lr thumb_func_start FUN_02058B20 FUN_02058B20: ; 0x02058B20 str r1, [r0, #0x5c] bx lr thumb_func_start FUN_02058B24 FUN_02058B24: ; 0x02058B24 ldr r0, [r0, #0x60] bx lr thumb_func_start FUN_02058B28 FUN_02058B28: ; 0x02058B28 str r1, [r0, #0x60] bx lr thumb_func_start FUN_02058B2C FUN_02058B2C: ; 0x02058B2C ldr r0, [r0, #0x64] bx lr thumb_func_start FUN_02058B30 FUN_02058B30: ; 0x02058B30 str r1, [r0, #0x64] bx lr thumb_func_start FUN_02058B34 FUN_02058B34: ; 0x02058B34 ldr r2, [r0, #0x64] add r1, r2, r1 str r1, [r0, #0x64] bx lr thumb_func_start FUN_02058B3C FUN_02058B3C: ; 0x02058B3C ldr r0, [r0, #0x68] bx lr thumb_func_start FUN_02058B40 FUN_02058B40: ; 0x02058B40 str r1, [r0, #0x68] bx lr thumb_func_start FUN_02058B44 FUN_02058B44: ; 0x02058B44 ldr r2, [r0, #0x68] add r1, r2, r1 str r1, [r0, #0x68] bx lr thumb_func_start FUN_02058B4C FUN_02058B4C: ; 0x02058B4C ldr r0, [r0, #0x6c] bx lr thumb_func_start FUN_02058B50 FUN_02058B50: ; 0x02058B50 str r1, [r0, #0x6c] bx lr thumb_func_start FUN_02058B54 FUN_02058B54: ; 0x02058B54 ldr r2, [r0, #0x6c] add r1, r2, r1 str r1, [r0, #0x6c] bx lr thumb_func_start FUN_02058B5C FUN_02058B5C: ; 0x02058B5C add r2, r0, #0x0 add r2, #0x70 add r3, r1, #0x0 ldmia r2!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r2, #0x0] str r0, [r3, #0x0] bx lr thumb_func_start FUN_02058B6C FUN_02058B6C: ; 0x02058B6C add r3, r1, #0x0 add r2, r0, #0x0 ldmia r3!, {r0-r1} add r2, #0x70 stmia r2!, {r0-r1} ldr r0, [r3, #0x0] str r0, [r2, #0x0] bx lr thumb_func_start FUN_02058B7C FUN_02058B7C: ; 0x02058B7C add r0, #0x70 bx lr thumb_func_start FUN_02058B80 FUN_02058B80: ; 0x02058B80 ldr r0, [r0, #0x74] bx lr thumb_func_start FUN_02058B84 FUN_02058B84: ; 0x02058B84 add r2, r0, #0x0 add r2, #0x7c add r3, r1, #0x0 ldmia r2!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r2, #0x0] str r0, [r3, #0x0] bx lr thumb_func_start FUN_02058B94 FUN_02058B94: ; 0x02058B94 add r3, r1, #0x0 add r2, r0, #0x0 ldmia r3!, {r0-r1} add r2, #0x7c stmia r2!, {r0-r1} ldr r0, [r3, #0x0] str r0, [r2, #0x0] bx lr thumb_func_start FUN_02058BA4 FUN_02058BA4: ; 0x02058BA4 add r2, r0, #0x0 add r2, #0x88 add r3, r1, #0x0 ldmia r2!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r2, #0x0] str r0, [r3, #0x0] bx lr thumb_func_start FUN_02058BB4 FUN_02058BB4: ; 0x02058BB4 add r3, r1, #0x0 add r2, r0, #0x0 ldmia r3!, {r0-r1} add r2, #0x88 stmia r2!, {r0-r1} ldr r0, [r3, #0x0] str r0, [r2, #0x0] bx lr thumb_func_start FUN_02058BC4 FUN_02058BC4: ; 0x02058BC4 add r2, r0, #0x0 add r2, #0x94 add r3, r1, #0x0 ldmia r2!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r2, #0x0] str r0, [r3, #0x0] bx lr thumb_func_start FUN_02058BD4 FUN_02058BD4: ; 0x02058BD4 add r3, r1, #0x0 add r2, r0, #0x0 ldmia r3!, {r0-r1} add r2, #0x94 stmia r2!, {r0-r1} ldr r0, [r3, #0x0] str r0, [r2, #0x0] bx lr thumb_func_start FUN_02058BE4 FUN_02058BE4: ; 0x02058BE4 push {r3, lr} bl FUN_02058B80 asr r1, r0, #0x3 asr r0, r1, #0xb lsr r0, r0, #0x14 add r0, r1, r0 asr r0, r0, #0xc pop {r3, pc} .balign 4 thumb_func_start FUN_02058BF8 FUN_02058BF8: ; 0x02058BF8 strh r1, [r0, #0x0] bx lr thumb_func_start FUN_02058BFC FUN_02058BFC: ; 0x02058BFC ldrh r0, [r0, #0x0] bx lr thumb_func_start FUN_02058C00 FUN_02058C00: ; 0x02058C00 strh r1, [r0, #0x2] bx lr thumb_func_start FUN_02058C04 FUN_02058C04: ; 0x02058C04 ldrh r0, [r0, #0x2] bx lr thumb_func_start FUN_02058C08 FUN_02058C08: ; 0x02058C08 strh r1, [r0, #0x4] bx lr thumb_func_start FUN_02058C0C FUN_02058C0C: ; 0x02058C0C ldrh r0, [r0, #0x4] bx lr thumb_func_start FUN_02058C10 FUN_02058C10: ; 0x02058C10 strh r1, [r0, #0x6] bx lr thumb_func_start FUN_02058C14 FUN_02058C14: ; 0x02058C14 ldrh r0, [r0, #0x6] bx lr thumb_func_start FUN_02058C18 FUN_02058C18: ; 0x02058C18 strh r1, [r0, #0x8] bx lr thumb_func_start FUN_02058C1C FUN_02058C1C: ; 0x02058C1C ldrh r0, [r0, #0x8] bx lr thumb_func_start FUN_02058C20 FUN_02058C20: ; 0x02058C20 strh r1, [r0, #0xa] bx lr thumb_func_start FUN_02058C24 FUN_02058C24: ; 0x02058C24 ldrh r0, [r0, #0xa] bx lr thumb_func_start FUN_02058C28 FUN_02058C28: ; 0x02058C28 strh r1, [r0, #0xc] bx lr thumb_func_start FUN_02058C2C FUN_02058C2C: ; 0x02058C2C mov r1, #0xc ldrsh r0, [r0, r1] bx lr .balign 4 thumb_func_start FUN_02058C34 FUN_02058C34: ; 0x02058C34 push {r3, lr} cmp r2, #0x0 beq _02058C44 cmp r2, #0x1 beq _02058C48 cmp r2, #0x2 beq _02058C4C b _02058C50 _02058C44: strh r1, [r0, #0xe] pop {r3, pc} _02058C48: strh r1, [r0, #0x10] pop {r3, pc} _02058C4C: strh r1, [r0, #0x12] pop {r3, pc} _02058C50: bl ErrorHandling pop {r3, pc} .balign 4 thumb_func_start FUN_02058C58 FUN_02058C58: ; 0x02058C58 push {r3, lr} cmp r1, #0x0 beq _02058C68 cmp r1, #0x1 beq _02058C6C cmp r1, #0x2 beq _02058C70 b _02058C74 _02058C68: ldrh r0, [r0, #0xe] pop {r3, pc} _02058C6C: ldrh r0, [r0, #0x10] pop {r3, pc} _02058C70: ldrh r0, [r0, #0x12] pop {r3, pc} _02058C74: bl ErrorHandling mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_02058C7C FUN_02058C7C: ; 0x02058C7C strh r1, [r0, #0x14] bx lr thumb_func_start FUN_02058C80 FUN_02058C80: ; 0x02058C80 mov r1, #0x14 ldrsh r0, [r0, r1] bx lr .balign 4 thumb_func_start FUN_02058C88 FUN_02058C88: ; 0x02058C88 strh r1, [r0, #0x16] bx lr thumb_func_start FUN_02058C8C FUN_02058C8C: ; 0x02058C8C mov r1, #0x16 ldrsh r0, [r0, r1] bx lr .balign 4 thumb_func_start FUN_02058C94 FUN_02058C94: ; 0x02058C94 strh r1, [r0, #0x18] bx lr thumb_func_start FUN_02058C98 FUN_02058C98: ; 0x02058C98 ldrh r0, [r0, #0x18] bx lr thumb_func_start FUN_02058C9C FUN_02058C9C: ; 0x02058C9C str r1, [r0, #0x1c] bx lr thumb_func_start FUN_02058CA0 FUN_02058CA0: ; 0x02058CA0 ldr r0, [r0, #0x1c] bx lr thumb_func_start FUN_02058CA4 FUN_02058CA4: ; 0x02058CA4 strh r1, [r0, #0x1a] bx lr thumb_func_start FUN_02058CA8 FUN_02058CA8: ; 0x02058CA8 ldrh r0, [r0, #0x1a] bx lr thumb_func_start FUN_02058CAC FUN_02058CAC: ; 0x02058CAC push {r3-r7, lr} add r6, r0, #0x0 add r7, r1, #0x0 str r2, [sp, #0x0] mov r4, #0x0 add r5, r2, #0x0 _02058CB8: add r0, r5, #0x0 bl FUN_02058CE0 cmp r0, #0x0 bne _02058CD4 add r0, r5, #0x0 bl FUN_02058BFC cmp r6, r0 bne _02058CD4 ldr r0, [sp, #0x0] lsl r1, r4, #0x5 add r0, r0, r1 pop {r3-r7, pc} _02058CD4: add r4, r4, #0x1 add r5, #0x20 cmp r4, r7 blt _02058CB8 mov r0, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02058CE0 FUN_02058CE0: ; 0x02058CE0 push {r3, lr} bl FUN_02058C24 lsl r0, r0, #0x10 lsr r1, r0, #0x10 ldr r0, _02058CF8 ; =0x0000FFFF cmp r1, r0 bne _02058CF4 mov r0, #0x1 pop {r3, pc} _02058CF4: mov r0, #0x0 pop {r3, pc} .balign 4 _02058CF8: .word 0x0000FFFF thumb_func_start FUN_02058CFC FUN_02058CFC: ; 0x02058CFC push {r4, lr} add r4, r0, #0x0 bl FUN_02058CE0 cmp r0, #0x1 beq _02058D0C bl ErrorHandling _02058D0C: add r0, r4, #0x0 bl FUN_02058C1C pop {r4, pc} thumb_func_start FUN_02058D14 FUN_02058D14: ; 0x02058D14 push {r4, lr} add r4, r0, #0x0 cmp r4, #0x37 blo _02058D20 bl ErrorHandling _02058D20: ldr r0, _02058D28 ; =0x020F6364 lsl r1, r4, #0x2 ldr r0, [r0, r1] pop {r4, pc} .balign 4 _02058D28: .word 0x020F6364 thumb_func_start FUN_02058D2C FUN_02058D2C: ; 0x02058D2C ldr r0, [r0, #0x4] bx lr thumb_func_start FUN_02058D30 FUN_02058D30: ; 0x02058D30 ldr r0, [r0, #0x8] bx lr thumb_func_start FUN_02058D34 FUN_02058D34: ; 0x02058D34 ldr r0, [r0, #0xc] bx lr thumb_func_start FUN_02058D38 FUN_02058D38: ; 0x02058D38 ldr r0, [r0, #0x0] bx lr thumb_func_start FUN_02058D3C FUN_02058D3C: ; 0x02058D3C ldr r0, [r0, #0x4] bx lr thumb_func_start FUN_02058D40 FUN_02058D40: ; 0x02058D40 ldr r0, [r0, #0x8] bx lr thumb_func_start FUN_02058D44 FUN_02058D44: ; 0x02058D44 ldr r0, [r0, #0xc] bx lr thumb_func_start FUN_02058D48 FUN_02058D48: ; 0x02058D48 ldr r0, [r0, #0x10] bx lr thumb_func_start FUN_02058D4C FUN_02058D4C: ; 0x02058D4C push {r3, lr} ldr r3, _02058D6C ; =0x021F9494 ldr r1, _02058D70 ; =0x0000FFFF _02058D52: ldr r2, [r3, #0x0] cmp r2, r0 bne _02058D5C ldr r0, [r3, #0x4] pop {r3, pc} _02058D5C: add r3, #0x8 ldr r2, [r3, #0x0] cmp r2, r1 bne _02058D52 bl ErrorHandling mov r0, #0x0 pop {r3, pc} .balign 4 _02058D6C: .word 0x021F9494 _02058D70: .word 0x0000FFFF thumb_func_start FUN_02058D74 FUN_02058D74: ; 0x02058D74 push {r3-r7, lr} add r5, r0, #0x0 add r6, r1, #0x0 add r7, r2, #0x0 bl FUN_02058368 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_020583CC add r5, r0, #0x0 _02058D8A: add r0, r5, #0x0 mov r1, #0x1 bl FUN_02058424 cmp r0, #0x0 beq _02058DAE add r0, r5, #0x0 bl FUN_02058B2C cmp r6, r0 bne _02058DAE add r0, r5, #0x0 bl FUN_02058B4C cmp r7, r0 bne _02058DAE add r0, r5, #0x0 pop {r3-r7, pc} _02058DAE: mov r0, #0x4a lsl r0, r0, #0x2 add r5, r5, r0 sub r4, r4, #0x1 bne _02058D8A mov r0, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02058DBC FUN_02058DBC: ; 0x02058DBC push {r4-r6, lr} add r4, r1, #0x0 ldr r1, [r4, #0x0] add r6, r2, #0x0 asr r2, r1, #0x4 asr r1, r2, #0xb lsr r1, r1, #0x14 add r1, r2, r1 asr r1, r1, #0xc add r5, r0, #0x0 bl FUN_02058B30 ldr r1, [r4, #0x4] add r0, r5, #0x0 asr r2, r1, #0x3 asr r1, r2, #0xb lsr r1, r1, #0x14 add r1, r2, r1 asr r1, r1, #0xc bl FUN_02058B40 ldr r1, [r4, #0x8] add r0, r5, #0x0 asr r2, r1, #0x4 asr r1, r2, #0xb lsr r1, r1, #0x14 add r1, r2, r1 asr r1, r1, #0xc bl FUN_02058B50 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02058B6C add r0, r5, #0x0 bl FUN_02059C60 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_020584A4 add r0, r5, #0x0 bl FUN_0205AE80 add r0, r5, #0x0 mov r1, #0x4 bl FUN_02058410 add r0, r5, #0x0 mov r1, #0xa bl FUN_02058418 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02058E28 FUN_02058E28: ; 0x02058E28 push {r3-r6, lr} sub sp, #0xc add r4, r2, #0x0 mov r2, #0x2 add r6, r3, #0x0 lsl r3, r1, #0x10 lsl r2, r2, #0xe add r2, r3, r2 add r5, r0, #0x0 str r2, [sp, #0x0] bl FUN_02058B30 lsl r0, r4, #0xf str r0, [sp, #0x4] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02058B40 mov r0, #0x2 lsl r1, r6, #0x10 lsl r0, r0, #0xe add r0, r1, r0 str r0, [sp, #0x8] add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02058B50 add r0, r5, #0x0 add r1, sp, #0x0 bl FUN_02058B6C add r0, r5, #0x0 bl FUN_02059C60 ldr r1, [sp, #0x20] add r0, r5, #0x0 bl FUN_020584A4 add r0, r5, #0x0 mov r1, #0x4 bl FUN_02058410 add r0, r5, #0x0 mov r1, #0xa bl FUN_02058418 add r0, r5, #0x0 bl FUN_0205AE80 add sp, #0xc pop {r3-r6, pc} .balign 4 thumb_func_start FUN_02058E90 FUN_02058E90: ; 0x02058E90 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_02058660 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0205847C add r0, r5, #0x0 bl FUN_02057EE0 add r0, r5, #0x0 bl FUN_02058EE8 pop {r3-r5, pc} thumb_func_start FUN_02058EB0 FUN_02058EB0: ; 0x02058EB0 push {r4, lr} add r4, r0, #0x0 bl FUN_02058444 add r0, r4, #0x0 bl FUN_02058860 add r0, r4, #0x0 bl FUN_0205815C pop {r4, pc} .balign 4 thumb_func_start FUN_02058EC8 FUN_02058EC8: ; 0x02058EC8 bx lr .balign 4 thumb_func_start FUN_02058ECC FUN_02058ECC: ; 0x02058ECC bx lr .balign 4 thumb_func_start FUN_02058ED0 FUN_02058ED0: ; 0x02058ED0 bx lr .balign 4 thumb_func_start FUN_02058ED4 FUN_02058ED4: ; 0x02058ED4 bx lr .balign 4 thumb_func_start FUN_02058ED8 FUN_02058ED8: ; 0x02058ED8 bx lr .balign 4 thumb_func_start FUN_02058EDC FUN_02058EDC: ; 0x02058EDC bx lr .balign 4 thumb_func_start FUN_02058EE0 FUN_02058EE0: ; 0x02058EE0 bx lr .balign 4 thumb_func_start FUN_02058EE4 FUN_02058EE4: ; 0x02058EE4 bx lr .balign 4 thumb_func_start FUN_02058EE8 FUN_02058EE8: ; 0x02058EE8 push {r4, lr} add r4, r0, #0x0 bl FUN_02058638 add r0, r4, #0x0 bl FUN_0205BEF8 pop {r4, pc} thumb_func_start FUN_02058EF8 FUN_02058EF8: ; 0x02058EF8 push {r4, lr} mov r1, #0x2 add r4, r0, #0x0 bl FUN_020587F4 cmp r0, #0x0 bne _02058F5C add r0, r4, #0x0 bl FUN_02058F94 add r0, r4, #0x0 bl FUN_02058FAC add r0, r4, #0x0 bl FUN_02058FD0 add r0, r4, #0x0 mov r1, #0x10 bl FUN_02058424 cmp r0, #0x0 beq _02058F2C add r0, r4, #0x0 bl FUN_0205B058 b _02058F50 _02058F2C: add r0, r4, #0x0 bl FUN_02058920 cmp r0, #0x0 bne _02058F50 add r0, r4, #0x0 bl FUN_02058F60 cmp r0, #0x1 bne _02058F50 add r0, r4, #0x0 bl FUN_0205BF00 cmp r0, #0x0 bne _02058F50 add r0, r4, #0x0 bl FUN_0205864C _02058F50: add r0, r4, #0x0 bl FUN_02058FF4 add r0, r4, #0x0 bl FUN_0205902C _02058F5C: pop {r4, pc} .balign 4 thumb_func_start FUN_02058F60 FUN_02058F60: ; 0x02058F60 push {r4, lr} add r4, r0, #0x0 bl FUN_02058854 cmp r0, #0x1 bne _02058F70 mov r0, #0x1 pop {r4, pc} _02058F70: mov r1, #0x6 add r0, r4, #0x0 lsl r1, r1, #0xa bl FUN_02058424 cmp r0, #0x0 bne _02058F82 mov r0, #0x1 pop {r4, pc} _02058F82: add r0, r4, #0x0 bl FUN_02058480 cmp r0, #0x32 bne _02058F90 mov r0, #0x1 pop {r4, pc} _02058F90: mov r0, #0x0 pop {r4, pc} thumb_func_start FUN_02058F94 FUN_02058F94: ; 0x02058F94 push {r4, lr} mov r1, #0x1 lsl r1, r1, #0xc add r4, r0, #0x0 bl FUN_02058424 cmp r0, #0x0 beq _02058FAA add r0, r4, #0x0 bl FUN_02059D1C _02058FAA: pop {r4, pc} thumb_func_start FUN_02058FAC FUN_02058FAC: ; 0x02058FAC push {r4, lr} mov r1, #0x2 lsl r1, r1, #0xa add r4, r0, #0x0 bl FUN_02058424 cmp r0, #0x0 beq _02058FCC add r0, r4, #0x0 bl FUN_02059DB4 cmp r0, #0x1 bne _02058FCC add r0, r4, #0x0 bl FUN_02058860 _02058FCC: pop {r4, pc} .balign 4 thumb_func_start FUN_02058FD0 FUN_02058FD0: ; 0x02058FD0 push {r4, lr} mov r1, #0x4 add r4, r0, #0x0 bl FUN_02058424 cmp r0, #0x0 beq _02058FE4 add r0, r4, #0x0 bl FUN_02059064 _02058FE4: ldr r1, _02058FF0 ; =0x00010004 add r0, r4, #0x0 bl FUN_02058418 pop {r4, pc} nop _02058FF0: .word 0x00010004 thumb_func_start FUN_02058FF4 FUN_02058FF4: ; 0x02058FF4 push {r4, lr} mov r1, #0x1 lsl r1, r1, #0x10 add r4, r0, #0x0 bl FUN_02058424 cmp r0, #0x0 beq _0205900C add r0, r4, #0x0 bl FUN_020591A8 b _0205901E _0205900C: add r0, r4, #0x0 mov r1, #0x4 bl FUN_02058424 cmp r0, #0x0 beq _0205901E add r0, r4, #0x0 bl FUN_020590F4 _0205901E: ldr r1, _02059028 ; =0x00010004 add r0, r4, #0x0 bl FUN_02058418 pop {r4, pc} .balign 4 _02059028: .word 0x00010004 thumb_func_start FUN_0205902C FUN_0205902C: ; 0x0205902C push {r4, lr} mov r1, #0x2 lsl r1, r1, #0x10 add r4, r0, #0x0 bl FUN_02058424 cmp r0, #0x0 beq _02059044 add r0, r4, #0x0 bl FUN_0205928C b _02059056 _02059044: add r0, r4, #0x0 mov r1, #0x8 bl FUN_02058424 cmp r0, #0x0 beq _02059056 add r0, r4, #0x0 bl FUN_02059214 _02059056: ldr r1, _02059060 ; =0x00020008 add r0, r4, #0x0 bl FUN_02058418 pop {r4, pc} .balign 4 _02059060: .word 0x00020008 thumb_func_start FUN_02059064 FUN_02059064: ; 0x02059064 push {r3-r7, lr} add r5, r0, #0x0 bl FUN_02059DB4 add r0, r5, #0x0 bl FUN_02058934 cmp r0, #0x1 bne _020590F2 add r0, r5, #0x0 bl FUN_02058720 lsl r0, r0, #0x18 lsr r6, r0, #0x18 add r0, r5, #0x0 bl FUN_02058730 lsl r0, r0, #0x18 lsr r4, r0, #0x18 add r0, r5, #0x0 bl FUN_021F1DC8 add r7, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 add r3, r7, #0x0 bl FUN_02059838 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 add r3, r7, #0x0 bl FUN_0205941C add r0, r5, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 add r3, r7, #0x0 bl FUN_020594C0 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 add r3, r7, #0x0 bl FUN_02059500 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 add r3, r7, #0x0 bl FUN_0205931C add r0, r5, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 add r3, r7, #0x0 bl FUN_02059678 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 add r3, r7, #0x0 bl FUN_020596A8 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 add r3, r7, #0x0 bl FUN_020597A8 _020590F2: pop {r3-r7, pc} thumb_func_start FUN_020590F4 FUN_020590F4: ; 0x020590F4 push {r3-r7, lr} add r5, r0, #0x0 bl FUN_02059DB4 add r0, r5, #0x0 bl FUN_02058934 cmp r0, #0x1 bne _020591A6 add r0, r5, #0x0 bl FUN_02058720 lsl r0, r0, #0x18 lsr r6, r0, #0x18 add r0, r5, #0x0 bl FUN_02058730 lsl r0, r0, #0x18 lsr r4, r0, #0x18 add r0, r5, #0x0 bl FUN_021F1DC8 add r7, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 add r3, r7, #0x0 bl FUN_02059838 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 add r3, r7, #0x0 bl FUN_02059434 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 add r3, r7, #0x0 bl FUN_0205944C add r0, r5, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 add r3, r7, #0x0 bl FUN_020594C0 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 add r3, r7, #0x0 bl FUN_02059508 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 add r3, r7, #0x0 bl FUN_02059690 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 add r3, r7, #0x0 bl FUN_020596C0 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 add r3, r7, #0x0 bl FUN_020596D8 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 add r3, r7, #0x0 bl FUN_02059740 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 add r3, r7, #0x0 bl FUN_020597A8 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 add r3, r7, #0x0 bl FUN_02059870 _020591A6: pop {r3-r7, pc} thumb_func_start FUN_020591A8 FUN_020591A8: ; 0x020591A8 push {r3-r7, lr} add r5, r0, #0x0 bl FUN_02059DB4 add r0, r5, #0x0 bl FUN_02058934 cmp r0, #0x1 bne _02059212 add r0, r5, #0x0 bl FUN_02058720 lsl r0, r0, #0x18 lsr r6, r0, #0x18 add r0, r5, #0x0 bl FUN_02058730 lsl r0, r0, #0x18 lsr r4, r0, #0x18 add r0, r5, #0x0 bl FUN_021F1DC8 add r7, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 add r3, r7, #0x0 bl FUN_02059838 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 add r3, r7, #0x0 bl FUN_02059508 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 add r3, r7, #0x0 bl FUN_020597A8 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 add r3, r7, #0x0 bl FUN_020594F4 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 add r3, r7, #0x0 bl FUN_02059870 _02059212: pop {r3-r7, pc} thumb_func_start FUN_02059214 FUN_02059214: ; 0x02059214 push {r3-r7, lr} add r5, r0, #0x0 bl FUN_02059DB4 add r0, r5, #0x0 bl FUN_02058934 cmp r0, #0x1 bne _0205928A add r0, r5, #0x0 bl FUN_02058720 lsl r0, r0, #0x18 lsr r6, r0, #0x18 add r0, r5, #0x0 bl FUN_02058730 lsl r0, r0, #0x18 lsr r4, r0, #0x18 add r0, r5, #0x0 bl FUN_021F1DC8 add r7, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 add r3, r7, #0x0 bl FUN_0205931C add r0, r5, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 add r3, r7, #0x0 bl FUN_0205970C add r0, r5, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 add r3, r7, #0x0 bl FUN_02059774 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 add r3, r7, #0x0 bl FUN_020594C0 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 add r3, r7, #0x0 bl FUN_02059804 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 add r3, r7, #0x0 bl FUN_020595A4 _0205928A: pop {r3-r7, pc} thumb_func_start FUN_0205928C FUN_0205928C: ; 0x0205928C push {r3-r7, lr} add r5, r0, #0x0 bl FUN_02059DB4 add r0, r5, #0x0 bl FUN_02058934 cmp r0, #0x1 bne _0205931A add r0, r5, #0x0 bl FUN_02058720 lsl r0, r0, #0x18 lsr r6, r0, #0x18 add r0, r5, #0x0 bl FUN_02058730 lsl r0, r0, #0x18 lsr r4, r0, #0x18 add r0, r5, #0x0 bl FUN_021F1DC8 add r7, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 add r3, r7, #0x0 bl FUN_0205931C add r0, r5, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 add r3, r7, #0x0 bl FUN_0205970C add r0, r5, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 add r3, r7, #0x0 bl FUN_02059774 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 add r3, r7, #0x0 bl FUN_020594C0 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 add r3, r7, #0x0 bl FUN_02059804 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 add r3, r7, #0x0 bl FUN_020595A4 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 add r3, r7, #0x0 bl FUN_02059434 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 add r3, r7, #0x0 bl FUN_0205962C _0205931A: pop {r3-r7, pc} thumb_func_start FUN_0205931C FUN_0205931C: ; 0x0205931C push {r3-r5, lr} sub sp, #0x48 add r4, r0, #0x0 add r5, r1, #0x0 bl FUN_02058A34 cmp r0, #0x0 bne _020593F4 add r0, r5, #0x0 bl FUN_02054984 cmp r0, #0x1 beq _02059340 add r0, r5, #0x0 bl FUN_020549A0 cmp r0, #0x1 bne _0205935A _02059340: ldr r5, _02059408 ; =0x020F65FC add r3, sp, #0x3c ldmia r5!, {r0-r1} add r2, r3, #0x0 stmia r3!, {r0-r1} ldr r0, [r5, #0x0] add r1, r2, #0x0 str r0, [r3, #0x0] add r0, r4, #0x0 bl FUN_02058BD4 add sp, #0x48 pop {r3-r5, pc} _0205935A: add r0, r5, #0x0 bl FUN_02054974 cmp r0, #0x1 beq _0205936E add r0, r5, #0x0 bl FUN_02054990 cmp r0, #0x1 bne _02059388 _0205936E: ldr r5, _0205940C ; =0x020F6608 add r3, sp, #0x30 ldmia r5!, {r0-r1} add r2, r3, #0x0 stmia r3!, {r0-r1} ldr r0, [r5, #0x0] add r1, r2, #0x0 str r0, [r3, #0x0] add r0, r4, #0x0 bl FUN_02058BD4 add sp, #0x48 pop {r3-r5, pc} _02059388: add r0, r5, #0x0 bl FUN_020549F0 cmp r0, #0x1 bne _020593AC ldr r5, _02059410 ; =0x020F65E4 add r3, sp, #0x24 ldmia r5!, {r0-r1} add r2, r3, #0x0 stmia r3!, {r0-r1} ldr r0, [r5, #0x0] add r1, r2, #0x0 str r0, [r3, #0x0] add r0, r4, #0x0 bl FUN_02058BD4 add sp, #0x48 pop {r3-r5, pc} _020593AC: add r0, r5, #0x0 bl FUN_020549E4 cmp r0, #0x1 bne _020593D0 ldr r5, _02059414 ; =0x020F65F0 add r3, sp, #0x18 ldmia r5!, {r0-r1} add r2, r3, #0x0 stmia r3!, {r0-r1} ldr r0, [r5, #0x0] add r1, r2, #0x0 str r0, [r3, #0x0] add r0, r4, #0x0 bl FUN_02058BD4 add sp, #0x48 pop {r3-r5, pc} _020593D0: add r0, r5, #0x0 bl FUN_020549D8 cmp r0, #0x1 bne _020593F4 ldr r5, _02059418 ; =0x020F6614 add r3, sp, #0xc ldmia r5!, {r0-r1} add r2, r3, #0x0 stmia r3!, {r0-r1} ldr r0, [r5, #0x0] add r1, r2, #0x0 str r0, [r3, #0x0] add r0, r4, #0x0 bl FUN_02058BD4 add sp, #0x48 pop {r3-r5, pc} _020593F4: add r1, sp, #0x0 mov r0, #0x0 str r0, [r1, #0x0] str r0, [r1, #0x4] str r0, [r1, #0x8] add r0, r4, #0x0 bl FUN_02058BD4 add sp, #0x48 pop {r3-r5, pc} .balign 4 _02059408: .word 0x020F65FC _0205940C: .word 0x020F6608 _02059410: .word 0x020F65E4 _02059414: .word 0x020F65F0 _02059418: .word 0x020F6614 thumb_func_start FUN_0205941C FUN_0205941C: ; 0x0205941C push {r4, lr} add r4, r0, #0x0 add r0, r1, #0x0 bl FUN_0205478C cmp r0, #0x1 bne _02059432 add r0, r4, #0x0 mov r1, #0x0 bl FUN_0224B568 _02059432: pop {r4, pc} thumb_func_start FUN_02059434 FUN_02059434: ; 0x02059434 push {r4, lr} add r4, r0, #0x0 add r0, r1, #0x0 bl FUN_0205478C cmp r0, #0x1 bne _0205944A add r0, r4, #0x0 mov r1, #0x1 bl FUN_0224B568 _0205944A: pop {r4, pc} thumb_func_start FUN_0205944C FUN_0205944C: ; 0x0205944C push {r4-r6, lr} add r6, r3, #0x0 ldr r1, [r6, #0x4] add r5, r0, #0x0 lsl r1, r1, #0x16 add r4, r2, #0x0 lsr r1, r1, #0x1c beq _020594BC add r1, r4, #0x0 bl FUN_02059AF8 cmp r0, #0x1 bne _02059484 ldr r0, [r6, #0x4] lsl r0, r0, #0x16 lsr r0, r0, #0x1c cmp r0, #0x1 bne _02059478 add r0, r5, #0x0 bl FUN_02249E6C pop {r4-r6, pc} _02059478: cmp r0, #0x2 bne _020594BC add r0, r5, #0x0 bl FUN_02249E78 pop {r4-r6, pc} _02059484: add r0, r4, #0x0 bl FUN_020549E4 cmp r0, #0x1 beq _020594A2 add r0, r4, #0x0 bl FUN_020549F0 cmp r0, #0x1 beq _020594A2 add r0, r4, #0x0 bl FUN_020549D8 cmp r0, #0x0 beq _020594AA _020594A2: add r0, r5, #0x0 bl FUN_02249E90 pop {r4-r6, pc} _020594AA: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02059B60 cmp r0, #0x1 bne _020594BC add r0, r5, #0x0 bl FUN_02249E84 _020594BC: pop {r4-r6, pc} .balign 4 thumb_func_start FUN_020594C0 FUN_020594C0: ; 0x020594C0 push {r4, lr} add r4, r0, #0x0 add r0, r1, #0x0 bl FUN_0205483C cmp r0, #0x1 bne _020594EA add r0, r4, #0x0 bl FUN_02058A00 cmp r0, #0x0 bne _020594F2 add r0, r4, #0x0 mov r1, #0x1 bl FUN_0224B9E0 add r0, r4, #0x0 mov r1, #0x1 bl FUN_020589E4 pop {r4, pc} _020594EA: add r0, r4, #0x0 mov r1, #0x0 bl FUN_020589E4 _020594F2: pop {r4, pc} thumb_func_start FUN_020594F4 FUN_020594F4: ; 0x020594F4 ldr r3, _020594FC ; =FUN_020589E4 mov r1, #0x0 bx r3 nop _020594FC: .word FUN_020589E4 thumb_func_start FUN_02059500 FUN_02059500: ; 0x02059500 push {r3, lr} bl FUN_02059508 pop {r3, pc} thumb_func_start FUN_02059508 FUN_02059508: ; 0x02059508 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r6, r3, #0x0 bl FUN_02058578 bl FUN_0205881C cmp r0, #0x0 beq _020595A2 ldr r0, [r6, #0x4] lsl r0, r0, #0x1a lsr r0, r0, #0x1e beq _020595A2 add r0, r4, #0x0 bl FUN_0205478C cmp r0, #0x1 beq _02059578 add r0, r4, #0x0 bl FUN_02054798 cmp r0, #0x1 beq _02059578 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02059AC4 cmp r0, #0x1 beq _02059578 add r0, r4, #0x0 bl FUN_02054AF0 cmp r0, #0x1 beq _02059578 add r0, r4, #0x0 bl FUN_0205483C cmp r0, #0x1 beq _02059578 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02059B2C cmp r0, #0x1 beq _02059578 add r0, r4, #0x0 bl FUN_02054974 cmp r0, #0x1 beq _02059578 add r0, r4, #0x0 bl FUN_02054990 cmp r0, #0x1 bne _02059584 _02059578: mov r1, #0x1 add r0, r5, #0x0 lsl r1, r1, #0x14 bl FUN_02058410 pop {r4-r6, pc} _02059584: mov r1, #0x2 add r0, r5, #0x0 lsl r1, r1, #0xe bl FUN_02058424 cmp r0, #0x0 bne _020595A2 add r0, r5, #0x0 bl FUN_02249508 mov r1, #0x2 add r0, r5, #0x0 lsl r1, r1, #0xe bl FUN_02058410 _020595A2: pop {r4-r6, pc} thumb_func_start FUN_020595A4 FUN_020595A4: ; 0x020595A4 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r6, r3, #0x0 bl FUN_02058578 bl FUN_0205881C cmp r0, #0x0 beq _0205962A ldr r0, [r6, #0x4] lsl r0, r0, #0x1a lsr r0, r0, #0x1e beq _0205962A add r0, r4, #0x0 bl FUN_0205478C cmp r0, #0x1 beq _02059614 add r0, r4, #0x0 bl FUN_02054798 cmp r0, #0x1 beq _02059614 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02059AC4 cmp r0, #0x1 beq _02059614 add r0, r4, #0x0 bl FUN_02054AF0 cmp r0, #0x1 beq _02059614 add r0, r4, #0x0 bl FUN_0205483C cmp r0, #0x1 beq _02059614 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02059B2C cmp r0, #0x1 beq _02059614 add r0, r4, #0x0 bl FUN_02054974 cmp r0, #0x1 beq _02059614 add r0, r4, #0x0 bl FUN_02054990 cmp r0, #0x1 bne _02059620 _02059614: mov r1, #0x1 add r0, r5, #0x0 lsl r1, r1, #0x14 bl FUN_02058410 pop {r4-r6, pc} _02059620: mov r1, #0x1 add r0, r5, #0x0 lsl r1, r1, #0x14 bl FUN_02058418 _0205962A: pop {r4-r6, pc} thumb_func_start FUN_0205962C FUN_0205962C: ; 0x0205962C push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_02059AC4 cmp r0, #0x1 beq _02059674 add r0, r4, #0x0 bl FUN_0205483C cmp r0, #0x1 beq _02059674 add r0, r4, #0x0 bl FUN_020548F0 cmp r0, #0x1 beq _02059674 add r0, r4, #0x0 bl FUN_02054974 cmp r0, #0x1 beq _02059674 add r0, r4, #0x0 bl FUN_02054990 cmp r0, #0x1 beq _02059674 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02059B2C cmp r0, #0x1 beq _02059674 add r0, r5, #0x0 bl FUN_0224BBEC _02059674: pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02059678 FUN_02059678: ; 0x02059678 push {r4, lr} add r4, r0, #0x0 add r0, r1, #0x0 bl FUN_02054798 cmp r0, #0x1 bne _0205968E add r0, r4, #0x0 mov r1, #0x0 bl FUN_0224BD90 _0205968E: pop {r4, pc} thumb_func_start FUN_02059690 FUN_02059690: ; 0x02059690 push {r4, lr} add r4, r0, #0x0 add r0, r1, #0x0 bl FUN_02054798 cmp r0, #0x1 bne _020596A6 add r0, r4, #0x0 mov r1, #0x1 bl FUN_0224BD90 _020596A6: pop {r4, pc} thumb_func_start FUN_020596A8 FUN_020596A8: ; 0x020596A8 push {r4, lr} add r4, r0, #0x0 add r0, r1, #0x0 bl FUN_02054990 cmp r0, #0x1 bne _020596BE add r0, r4, #0x0 mov r1, #0x0 bl FUN_0224C038 _020596BE: pop {r4, pc} thumb_func_start FUN_020596C0 FUN_020596C0: ; 0x020596C0 push {r4, lr} add r4, r0, #0x0 add r0, r1, #0x0 bl FUN_02054990 cmp r0, #0x1 bne _020596D6 add r0, r4, #0x0 mov r1, #0x1 bl FUN_0224C038 _020596D6: pop {r4, pc} thumb_func_start FUN_020596D8 FUN_020596D8: ; 0x020596D8 push {r4-r6, lr} add r5, r0, #0x0 add r0, r2, #0x0 bl FUN_02054AF0 cmp r0, #0x1 bne _02059708 add r0, r5, #0x0 bl FUN_02058B14 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02058B1C add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02058B24 add r3, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_0224B124 _02059708: pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0205970C FUN_0205970C: ; 0x0205970C push {r4-r6, lr} add r5, r0, #0x0 add r0, r1, #0x0 bl FUN_02054AF0 cmp r0, #0x1 bne _0205973C add r0, r5, #0x0 bl FUN_02058B2C add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02058B3C add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02058B4C add r3, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_0224B124 _0205973C: pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02059740 FUN_02059740: ; 0x02059740 push {r4-r6, lr} add r5, r0, #0x0 add r0, r2, #0x0 bl FUN_02054974 cmp r0, #0x1 bne _02059770 add r0, r5, #0x0 bl FUN_02058B14 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02058B1C add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02058B24 add r3, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_0224B2C4 _02059770: pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02059774 FUN_02059774: ; 0x02059774 push {r4-r6, lr} add r5, r0, #0x0 add r0, r1, #0x0 bl FUN_02054974 cmp r0, #0x1 bne _020597A4 add r0, r5, #0x0 bl FUN_02058B2C add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02058B3C add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02058B4C add r3, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_0224B2C4 _020597A4: pop {r4-r6, pc} .balign 4 thumb_func_start FUN_020597A8 FUN_020597A8: ; 0x020597A8 push {r4-r6, lr} add r6, r1, #0x0 ldr r1, [r3, #0x4] add r5, r0, #0x0 lsl r1, r1, #0x14 lsr r1, r1, #0x1e beq _02059802 mov r1, #0x1 bl FUN_02059C90 lsl r0, r0, #0x18 lsr r4, r0, #0x18 add r0, r5, #0x0 bl FUN_02058A9C cmp r0, #0x0 bne _02059802 add r0, r4, #0x0 bl FUN_02054B20 cmp r0, #0x1 beq _020597DE add r0, r6, #0x0 bl FUN_02054B20 cmp r0, #0x1 bne _02059802 _020597DE: add r0, r5, #0x0 mov r1, #0x1 bl FUN_02058A80 add r0, r4, #0x0 bl FUN_02054AF0 cmp r0, #0x1 bne _020597FA add r0, r5, #0x0 mov r1, #0x0 bl FUN_022497E8 pop {r4-r6, pc} _020597FA: add r0, r5, #0x0 mov r1, #0x1 bl FUN_022497E8 _02059802: pop {r4-r6, pc} thumb_func_start FUN_02059804 FUN_02059804: ; 0x02059804 push {r4, lr} ldr r1, [r3, #0x4] add r4, r0, #0x0 lsl r1, r1, #0x14 lsr r1, r1, #0x1e beq _02059834 bl FUN_02058A9C cmp r0, #0x0 beq _02059834 add r0, r4, #0x0 mov r1, #0x1 bl FUN_02059C90 lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_02054B20 cmp r0, #0x0 bne _02059834 add r0, r4, #0x0 mov r1, #0x0 bl FUN_02058A80 _02059834: pop {r4, pc} .balign 4 thumb_func_start FUN_02059838 FUN_02059838: ; 0x02059838 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02054B6C cmp r0, #0x1 bne _02059852 add r0, r5, #0x0 mov r1, #0x1 bl FUN_02058A4C pop {r3-r5, pc} _02059852: add r0, r5, #0x0 bl FUN_02058A68 cmp r0, #0x1 bne _0205986E add r0, r4, #0x0 bl FUN_02054B78 cmp r0, #0x0 bne _0205986E add r0, r5, #0x0 mov r1, #0x0 bl FUN_02058A4C _0205986E: pop {r3-r5, pc} thumb_func_start FUN_02059870 FUN_02059870: ; 0x02059870 bx lr .balign 4 thumb_func_start FUN_02059874 FUN_02059874: ; 0x02059874 push {r3-r7, lr} sub sp, #0x10 ldr r7, [sp, #0x28] add r5, r2, #0x0 str r1, [sp, #0x4] str r3, [sp, #0x8] add r2, r3, #0x0 add r1, r5, #0x0 add r3, r7, #0x0 add r6, r0, #0x0 mov r4, #0x0 bl FUN_02059A08 cmp r0, #0x1 bne _02059896 mov r0, #0x1 orr r4, r0 _02059896: add r0, r6, #0x0 bl FUN_02058738 add r1, sp, #0xc str r1, [sp, #0x0] ldr r1, [sp, #0x4] add r2, r5, #0x0 add r3, r7, #0x0 bl FUN_0204A770 cmp r0, #0x1 bne _020598C0 mov r0, #0x2 orr r4, r0 add r1, sp, #0xc mov r0, #0x0 ldrsb r0, [r1, r0] cmp r0, #0x0 beq _020598C0 mov r0, #0x8 orr r4, r0 _020598C0: ldr r3, [sp, #0x2c] add r0, r6, #0x0 add r1, r5, #0x0 add r2, r7, #0x0 bl FUN_02059A60 cmp r0, #0x1 bne _020598D4 mov r0, #0x2 orr r4, r0 _020598D4: ldr r2, [sp, #0x8] add r0, r6, #0x0 add r1, r5, #0x0 add r3, r7, #0x0 bl FUN_0205995C cmp r0, #0x1 bne _020598E8 mov r0, #0x4 orr r4, r0 _020598E8: add r0, r4, #0x0 add sp, #0x10 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020598F0 FUN_020598F0: ; 0x020598F0 push {r4-r7, lr} sub sp, #0x14 add r6, r1, #0x0 add r1, sp, #0x8 add r5, r0, #0x0 add r7, r2, #0x0 add r4, r3, #0x0 bl FUN_02058B5C ldr r0, [sp, #0x28] str r4, [sp, #0x0] str r0, [sp, #0x4] add r0, r5, #0x0 add r1, sp, #0x8 add r2, r6, #0x0 add r3, r7, #0x0 bl FUN_02059874 add sp, #0x14 pop {r4-r7, pc} thumb_func_start FUN_02059918 FUN_02059918: ; 0x02059918 push {r4-r7, lr} sub sp, #0xc add r4, r1, #0x0 add r5, r0, #0x0 bl FUN_02058B2C add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02059BF4 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02058B3C str r0, [sp, #0x4] add r0, r5, #0x0 bl FUN_02058B4C str r0, [sp, #0x8] add r0, r4, #0x0 bl FUN_02059C00 str r4, [sp, #0x0] add r3, r0, #0x0 ldr r4, [sp, #0x8] ldr r2, [sp, #0x4] add r0, r5, #0x0 add r1, r6, r7 add r3, r4, r3 bl FUN_020598F0 add sp, #0xc pop {r4-r7, pc} .balign 4 thumb_func_start FUN_0205995C FUN_0205995C: ; 0x0205995C push {r4-r7, lr} sub sp, #0xc str r0, [sp, #0x0] add r5, r1, #0x0 add r4, r2, #0x0 add r6, r3, #0x0 bl FUN_02058578 add r7, r0, #0x0 bl FUN_020583BC str r0, [sp, #0x8] add r0, r7, #0x0 bl FUN_02058368 str r0, [sp, #0x4] _0205997C: ldr r0, [sp, #0x8] ldr r1, [sp, #0x0] cmp r0, r1 beq _020599F4 mov r1, #0x1 bl FUN_02058424 cmp r0, #0x0 beq _020599F4 mov r1, #0x1 ldr r0, [sp, #0x8] lsl r1, r1, #0x12 bl FUN_02058424 cmp r0, #0x0 bne _020599F4 ldr r0, [sp, #0x8] bl FUN_02058B2C add r7, r0, #0x0 ldr r0, [sp, #0x8] bl FUN_02058B4C cmp r7, r5 bne _020599C8 cmp r0, r6 bne _020599C8 ldr r0, [sp, #0x8] bl FUN_02058B3C sub r0, r0, r4 bpl _020599BE neg r0, r0 _020599BE: cmp r0, #0x2 bge _020599C8 add sp, #0xc mov r0, #0x1 pop {r4-r7, pc} _020599C8: ldr r0, [sp, #0x8] bl FUN_02058B14 add r7, r0, #0x0 ldr r0, [sp, #0x8] bl FUN_02058B24 cmp r7, r5 bne _020599F4 cmp r0, r6 bne _020599F4 ldr r0, [sp, #0x8] bl FUN_02058B3C sub r0, r0, r4 bpl _020599EA neg r0, r0 _020599EA: cmp r0, #0x2 bge _020599F4 add sp, #0xc mov r0, #0x1 pop {r4-r7, pc} _020599F4: add r0, sp, #0x8 bl FUN_020583D4 ldr r0, [sp, #0x4] sub r0, r0, #0x1 str r0, [sp, #0x4] bne _0205997C mov r0, #0x0 add sp, #0xc pop {r4-r7, pc} thumb_func_start FUN_02059A08 FUN_02059A08: ; 0x02059A08 push {r3-r7, lr} add r6, r0, #0x0 add r5, r1, #0x0 add r4, r3, #0x0 bl FUN_02058AFC add r7, r0, #0x0 add r0, r6, #0x0 bl FUN_02058538 mov r1, #0x0 mvn r1, r1 cmp r0, r1 beq _02059A34 add r1, r7, r0 sub r0, r7, r0 cmp r0, r5 bgt _02059A30 cmp r1, r5 bge _02059A34 _02059A30: mov r0, #0x1 pop {r3-r7, pc} _02059A34: add r0, r6, #0x0 bl FUN_02058B0C add r5, r0, #0x0 add r0, r6, #0x0 bl FUN_02058540 mov r1, #0x0 mvn r1, r1 cmp r0, r1 beq _02059A5A add r1, r5, r0 sub r0, r5, r0 cmp r0, r4 bgt _02059A56 cmp r1, r4 bge _02059A5A _02059A56: mov r0, #0x1 pop {r3-r7, pc} _02059A5A: mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02059A60 FUN_02059A60: ; 0x02059A60 push {r3-r7, lr} add r4, r0, #0x0 add r6, r1, #0x0 add r7, r2, #0x0 add r5, r3, #0x0 bl FUN_02058738 str r0, [sp, #0x0] add r0, r4, #0x0 bl FUN_02058720 lsl r0, r0, #0x18 lsr r4, r0, #0x18 ldr r0, [sp, #0x0] add r1, r6, #0x0 add r2, r7, #0x0 bl FUN_0204A6E0 add r6, r0, #0x0 mov r0, #0x0 mvn r0, r0 cmp r5, r0 bne _02059A92 bl ErrorHandling _02059A92: cmp r5, #0x4 blt _02059A9A bl ErrorHandling _02059A9A: ldr r1, _02059ABC ; =0x020F6630 lsl r5, r5, #0x2 ldr r1, [r1, r5] add r0, r4, #0x0 blx r1 cmp r0, #0x1 beq _02059AB4 ldr r1, _02059AC0 ; =0x020F6640 add r0, r6, #0x0 ldr r1, [r1, r5] blx r1 cmp r0, #0x1 bne _02059AB8 _02059AB4: mov r0, #0x1 pop {r3-r7, pc} _02059AB8: mov r0, #0x0 pop {r3-r7, pc} .balign 4 _02059ABC: .word 0x020F6630 _02059AC0: .word 0x020F6640 thumb_func_start FUN_02059AC4 FUN_02059AC4: ; 0x02059AC4 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 lsl r0, r4, #0x18 lsr r0, r0, #0x18 bl FUN_02054B8C cmp r0, #0x0 beq _02059AE4 add r0, r5, #0x0 bl FUN_02058A68 cmp r0, #0x0 bne _02059AF4 mov r0, #0x1 pop {r3-r5, pc} _02059AE4: lsl r0, r4, #0x18 lsr r0, r0, #0x18 bl FUN_0205481C cmp r0, #0x0 beq _02059AF4 mov r0, #0x1 pop {r3-r5, pc} _02059AF4: mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02059AF8 FUN_02059AF8: ; 0x02059AF8 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 lsl r0, r4, #0x18 lsr r0, r0, #0x18 bl FUN_02054BB0 cmp r0, #0x0 beq _02059B18 add r0, r5, #0x0 bl FUN_02058A68 cmp r0, #0x0 bne _02059B28 mov r0, #0x1 pop {r3-r5, pc} _02059B18: lsl r0, r4, #0x18 lsr r0, r0, #0x18 bl FUN_02054830 cmp r0, #0x0 beq _02059B28 mov r0, #0x1 pop {r3-r5, pc} _02059B28: mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02059B2C FUN_02059B2C: ; 0x02059B2C push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 lsl r0, r4, #0x18 lsr r0, r0, #0x18 bl FUN_02054BD4 cmp r0, #0x0 beq _02059B4C add r0, r5, #0x0 bl FUN_02058A68 cmp r0, #0x0 bne _02059B5C mov r0, #0x1 pop {r3-r5, pc} _02059B4C: lsl r0, r4, #0x18 lsr r0, r0, #0x18 bl FUN_020549AC cmp r0, #0x0 beq _02059B5C mov r0, #0x1 pop {r3-r5, pc} _02059B5C: mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02059B60 FUN_02059B60: ; 0x02059B60 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 lsl r0, r4, #0x18 lsr r0, r0, #0x18 bl FUN_02054BD4 cmp r0, #0x0 beq _02059B80 add r0, r5, #0x0 bl FUN_02058A68 cmp r0, #0x0 bne _02059B90 mov r0, #0x1 pop {r3-r5, pc} _02059B80: lsl r0, r4, #0x18 lsr r0, r0, #0x18 bl FUN_020549CC cmp r0, #0x0 beq _02059B90 mov r0, #0x1 pop {r3-r5, pc} _02059B90: mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02059B94 FUN_02059B94: ; 0x02059B94 push {r4, lr} add r4, r1, #0x0 bl FUN_02058A68 cmp r0, #0x1 bne _02059BB0 lsl r0, r4, #0x18 lsr r0, r0, #0x18 bl FUN_02054B78 cmp r0, #0x1 bne _02059BB0 mov r0, #0x1 pop {r4, pc} _02059BB0: mov r0, #0x0 pop {r4, pc} thumb_func_start FUN_02059BB4 FUN_02059BB4: ; 0x02059BB4 push {r4, lr} add r4, r1, #0x0 bl FUN_02058A68 cmp r0, #0x1 bne _02059BD0 lsl r0, r4, #0x18 lsr r0, r0, #0x18 bl FUN_02054BE0 cmp r0, #0x1 bne _02059BD0 mov r0, #0x1 pop {r4, pc} _02059BD0: mov r0, #0x0 pop {r4, pc} thumb_func_start FUN_02059BD4 FUN_02059BD4: ; 0x02059BD4 push {r4, lr} add r4, r1, #0x0 bl FUN_02058A68 cmp r0, #0x1 bne _02059BF0 lsl r0, r4, #0x18 lsr r0, r0, #0x18 bl FUN_02054BF4 cmp r0, #0x1 bne _02059BF0 mov r0, #0x1 pop {r4, pc} _02059BF0: mov r0, #0x0 pop {r4, pc} thumb_func_start FUN_02059BF4 FUN_02059BF4: ; 0x02059BF4 lsl r1, r0, #0x2 ldr r0, _02059BFC ; =0x020F6620 ldr r0, [r0, r1] bx lr .balign 4 _02059BFC: .word 0x020F6620 thumb_func_start FUN_02059C00 FUN_02059C00: ; 0x02059C00 lsl r1, r0, #0x2 ldr r0, _02059C08 ; =0x020F6650 ldr r0, [r0, r1] bx lr .balign 4 _02059C08: .word 0x020F6650 thumb_func_start FUN_02059C0C FUN_02059C0C: ; 0x02059C0C push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_02058B2C add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_02058B18 add r0, r5, #0x0 bl FUN_02058B3C add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_02058B20 add r0, r5, #0x0 bl FUN_02058B4C add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_02058B28 add r0, r4, #0x0 bl FUN_02059BF4 add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_02058B34 add r0, r5, #0x0 mov r1, #0x0 bl FUN_02058B44 add r0, r4, #0x0 bl FUN_02059C00 add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_02058B54 pop {r3-r5, pc} thumb_func_start FUN_02059C60 FUN_02059C60: ; 0x02059C60 push {r4, lr} add r4, r0, #0x0 bl FUN_02058B2C add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_02058B18 add r0, r4, #0x0 bl FUN_02058B3C add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_02058B20 add r0, r4, #0x0 bl FUN_02058B4C add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_02058B28 pop {r4, pc} .balign 4 thumb_func_start FUN_02059C90 FUN_02059C90: ; 0x02059C90 push {r3-r7, lr} add r5, r1, #0x0 add r4, r0, #0x0 bl FUN_02058B2C add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02059BF4 add r7, r0, #0x0 add r0, r4, #0x0 bl FUN_02058B4C str r0, [sp, #0x0] add r0, r5, #0x0 bl FUN_02059C00 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02058738 ldr r2, [sp, #0x0] add r1, r6, r7 add r2, r2, r5 bl FUN_0204A6E0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02059CC8 FUN_02059CC8: ; 0x02059CC8 push {r3-r6, lr} sub sp, #0xc add r5, r1, #0x0 add r1, sp, #0x0 add r6, r0, #0x0 add r4, r2, #0x0 bl FUN_02058B5C cmp r5, #0x3 bhi _02059D0E add r0, r5, r5 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02059CE8: ; jump table (using 16-bit offset) .short _02059CF0 - _02059CE8 - 2; case 0 .short _02059CF8 - _02059CE8 - 2; case 1 .short _02059D00 - _02059CE8 - 2; case 2 .short _02059D08 - _02059CE8 - 2; case 3 _02059CF0: ldr r0, [sp, #0x8] sub r0, r0, r4 str r0, [sp, #0x8] b _02059D0E _02059CF8: ldr r0, [sp, #0x8] add r0, r0, r4 str r0, [sp, #0x8] b _02059D0E _02059D00: ldr r0, [sp, #0x0] sub r0, r0, r4 str r0, [sp, #0x0] b _02059D0E _02059D08: ldr r0, [sp, #0x0] add r0, r0, r4 str r0, [sp, #0x0] _02059D0E: add r0, r6, #0x0 add r1, sp, #0x0 bl FUN_02058B6C add sp, #0xc pop {r3-r6, pc} .balign 4 thumb_func_start FUN_02059D1C FUN_02059D1C: ; 0x02059D1C push {r3-r5, lr} sub sp, #0x18 add r1, sp, #0xc add r5, r0, #0x0 bl FUN_02058B5C add r3, sp, #0xc ldmia r3!, {r0-r1} add r2, sp, #0x0 stmia r2!, {r0-r1} ldr r0, [r3, #0x0] str r0, [r2, #0x0] add r0, r5, #0x0 bl FUN_0205897C cmp r0, #0x1 bne _02059D4E mov r1, #0x1 add r0, r5, #0x0 lsl r1, r1, #0xc bl FUN_02058418 add sp, #0x18 mov r0, #0x0 pop {r3-r5, pc} _02059D4E: add r0, r5, #0x0 bl FUN_02058AE4 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02058738 add r1, sp, #0x0 add r2, r4, #0x0 bl FUN_02059EC8 add r4, r0, #0x0 cmp r4, #0x1 bne _02059DA2 ldr r0, [sp, #0x4] add r1, sp, #0xc str r0, [sp, #0x10] add r0, r5, #0x0 bl FUN_02058B6C add r0, r5, #0x0 bl FUN_02058B3C add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_02058B20 ldr r1, [sp, #0x10] add r0, r5, #0x0 asr r2, r1, #0x3 asr r1, r2, #0xb lsr r1, r1, #0x14 add r1, r2, r1 asr r1, r1, #0xc bl FUN_02058B40 mov r1, #0x1 add r0, r5, #0x0 lsl r1, r1, #0xc bl FUN_02058418 b _02059DAC _02059DA2: mov r1, #0x1 add r0, r5, #0x0 lsl r1, r1, #0xc bl FUN_02058410 _02059DAC: add r0, r4, #0x0 add sp, #0x18 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02059DB4 FUN_02059DB4: ; 0x02059DB4 push {r3-r7, lr} add r5, r0, #0x0 bl FUN_02058B14 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02058B24 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02058738 add r1, r4, #0x0 add r2, r6, #0x0 add r7, r0, #0x0 bl FUN_0204A6E0 add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_02058728 add r0, r5, #0x0 bl FUN_02058B2C add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02058B4C add r2, r0, #0x0 add r0, r7, #0x0 add r1, r4, #0x0 bl FUN_0204A6E0 add r4, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02058718 add r0, r4, #0x0 bl FUN_02054C08 cmp r0, #0x1 bne _02059E18 mov r1, #0x2 add r0, r5, #0x0 lsl r1, r1, #0xa bl FUN_02058410 mov r0, #0x0 pop {r3-r7, pc} _02059E18: mov r1, #0x2 add r0, r5, #0x0 lsl r1, r1, #0xa bl FUN_02058418 mov r0, #0x1 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02059E28 FUN_02059E28: ; 0x02059E28 cmp r0, #0x3 bhi _02059E5E add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02059E38: ; jump table (using 16-bit offset) .short _02059E40 - _02059E38 - 2; case 0 .short _02059E48 - _02059E38 - 2; case 1 .short _02059E50 - _02059E38 - 2; case 2 .short _02059E58 - _02059E38 - 2; case 3 _02059E40: ldr r0, [r1, #0x8] sub r0, r0, r2 str r0, [r1, #0x8] bx lr _02059E48: ldr r0, [r1, #0x8] add r0, r0, r2 str r0, [r1, #0x8] bx lr _02059E50: ldr r0, [r1, #0x0] sub r0, r0, r2 str r0, [r1, #0x0] bx lr _02059E58: ldr r0, [r1, #0x0] add r0, r0, r2 str r0, [r1, #0x0] _02059E5E: bx lr thumb_func_start FUN_02059E60 FUN_02059E60: ; 0x02059E60 lsl r3, r0, #0x10 mov r0, #0x2 lsl r0, r0, #0xe add r3, r3, r0 lsl r1, r1, #0x10 str r3, [r2, #0x0] add r0, r1, r0 str r0, [r2, #0x8] bx lr .balign 4 thumb_func_start FUN_02059E74 FUN_02059E74: ; 0x02059E74 lsl r1, r0, #0x2 ldr r0, _02059E7C ; =0x020F6660 ldr r0, [r0, r1] bx lr .balign 4 _02059E7C: .word 0x020F6660 thumb_func_start FUN_02059E80 FUN_02059E80: ; 0x02059E80 cmp r0, r2 ble _02059E88 mov r0, #0x2 bx lr _02059E88: cmp r0, r2 bge _02059E90 mov r0, #0x3 bx lr _02059E90: cmp r1, r3 bgt _02059E98 mov r0, #0x1 bx lr _02059E98: mov r0, #0x0 bx lr thumb_func_start FUN_02059E9C FUN_02059E9C: ; 0x02059E9C push {r4, lr} sub sp, #0x8 add r4, r1, #0x0 add r1, sp, #0x4 str r1, [sp, #0x0] ldr r1, [r4, #0x4] ldr r2, [r4, #0x0] ldr r3, [r4, #0x8] bl FUN_0204A708 add r1, sp, #0x4 ldrb r1, [r1, #0x0] cmp r1, #0x0 bne _02059EBE add sp, #0x8 mov r0, #0x0 pop {r4, pc} _02059EBE: str r0, [r4, #0x4] mov r0, #0x1 add sp, #0x8 pop {r4, pc} .balign 4 thumb_func_start FUN_02059EC8 FUN_02059EC8: ; 0x02059EC8 push {r3-r5, lr} sub sp, #0x8 add r5, r1, #0x0 add r1, sp, #0x4 str r1, [sp, #0x0] add r4, r2, #0x0 ldr r1, [r5, #0x4] ldr r2, [r5, #0x0] ldr r3, [r5, #0x8] bl FUN_0204A708 add r1, sp, #0x4 ldrb r1, [r1, #0x0] cmp r1, #0x0 bne _02059EEC add sp, #0x8 mov r0, #0x0 pop {r3-r5, pc} _02059EEC: cmp r1, #0x2 bne _02059EFA cmp r4, #0x0 bne _02059EFA add sp, #0x8 mov r0, #0x0 pop {r3-r5, pc} _02059EFA: str r0, [r5, #0x4] mov r0, #0x1 add sp, #0x8 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02059F04 FUN_02059F04: ; 0x02059F04 push {r4-r6, lr} add r6, r1, #0x0 mov r1, #0x8 add r5, r0, #0x0 bl FUN_0205858C add r4, r0, #0x0 mov r1, #0x0 ldr r0, _02059F30 ; =0x020F693C mvn r1, r1 bl FUN_0205AAB0 strh r0, [r4, #0x2] add r0, r5, #0x0 mov r1, #0x0 str r6, [r4, #0x4] bl FUN_02058544 add r0, r5, #0x0 bl FUN_02058848 pop {r4-r6, pc} .balign 4 _02059F30: .word 0x020F693C thumb_func_start FUN_02059F34 FUN_02059F34: ; 0x02059F34 ldr r3, _02059F3C ; =FUN_02059F04 mov r1, #0x0 bx r3 nop _02059F3C: .word FUN_02059F04 thumb_func_start FUN_02059F40 FUN_02059F40: ; 0x02059F40 ldr r3, _02059F48 ; =FUN_02059F04 mov r1, #0x1 bx r3 nop _02059F48: .word FUN_02059F04 thumb_func_start FUN_02059F4C FUN_02059F4C: ; 0x02059F4C ldr r3, _02059F54 ; =FUN_02059F04 mov r1, #0x2 bx r3 nop _02059F54: .word FUN_02059F04 thumb_func_start FUN_02059F58 FUN_02059F58: ; 0x02059F58 ldr r3, _02059F60 ; =FUN_02059F04 mov r1, #0x3 bx r3 nop _02059F60: .word FUN_02059F04 thumb_func_start FUN_02059F64 FUN_02059F64: ; 0x02059F64 ldr r3, _02059F6C ; =FUN_02059F04 mov r1, #0x4 bx r3 nop _02059F6C: .word FUN_02059F04 thumb_func_start FUN_02059F70 FUN_02059F70: ; 0x02059F70 ldr r3, _02059F78 ; =FUN_02059F04 mov r1, #0x5 bx r3 nop _02059F78: .word FUN_02059F04 thumb_func_start FUN_02059F7C FUN_02059F7C: ; 0x02059F7C ldr r3, _02059F84 ; =FUN_02059F04 mov r1, #0x6 bx r3 nop _02059F84: .word FUN_02059F04 thumb_func_start FUN_02059F88 FUN_02059F88: ; 0x02059F88 ldr r3, _02059F90 ; =FUN_02059F04 mov r1, #0x7 bx r3 nop _02059F90: .word FUN_02059F04 thumb_func_start FUN_02059F94 FUN_02059F94: ; 0x02059F94 ldr r3, _02059F9C ; =FUN_02059F04 mov r1, #0x8 bx r3 nop _02059F9C: .word FUN_02059F04 thumb_func_start FUN_02059FA0 FUN_02059FA0: ; 0x02059FA0 ldr r3, _02059FA8 ; =FUN_02059F04 mov r1, #0x9 bx r3 nop _02059FA8: .word FUN_02059F04 thumb_func_start FUN_02059FAC FUN_02059FAC: ; 0x02059FAC ldr r3, _02059FB4 ; =FUN_02059F04 mov r1, #0xa bx r3 nop _02059FB4: .word FUN_02059F04 thumb_func_start FUN_02059FB8 FUN_02059FB8: ; 0x02059FB8 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_020585B0 add r4, r0, #0x0 mov r2, #0x0 ldr r1, [r4, #0x4] add r0, r5, #0x0 mvn r2, r2 bl FUN_0205ABEC mov r2, #0x0 add r1, r0, #0x0 mvn r2, r2 cmp r1, r2 beq _02059FE0 add r0, r5, #0x0 bl FUN_020584AC b _0205A010 _02059FE0: ldrh r0, [r4, #0x0] cmp r0, #0x0 bne _0205A010 mov r0, #0x2 ldrsh r1, [r4, r0] sub r1, r1, #0x1 strh r1, [r4, #0x2] ldrsh r0, [r4, r0] cmp r0, #0x0 bgt _0205A010 ldr r0, _0205A018 ; =0x020F693C add r1, r2, #0x0 bl FUN_0205AAB0 strh r0, [r4, #0x2] mov r1, #0x0 ldr r0, [r4, #0x4] mvn r1, r1 bl FUN_0205AAD4 add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_020584AC _0205A010: add r0, r5, #0x0 bl FUN_02059C60 pop {r3-r5, pc} .balign 4 _0205A018: .word 0x020F693C thumb_func_start FUN_0205A01C FUN_0205A01C: ; 0x0205A01C bx lr .balign 4 thumb_func_start FUN_0205A020 FUN_0205A020: ; 0x0205A020 push {r3, lr} mov r1, #0xc mov r2, #0xb mov r3, #0x0 bl FUN_0205A050 pop {r3, pc} .balign 4 thumb_func_start FUN_0205A030 FUN_0205A030: ; 0x0205A030 push {r3, lr} mov r1, #0xc add r2, r1, #0x0 mov r3, #0x0 bl FUN_0205A050 pop {r3, pc} .balign 4 thumb_func_start FUN_0205A040 FUN_0205A040: ; 0x0205A040 push {r3, lr} mov r1, #0xc mov r2, #0xd mov r3, #0x0 bl FUN_0205A050 pop {r3, pc} .balign 4 thumb_func_start FUN_0205A050 FUN_0205A050: ; 0x0205A050 push {r3-r7, lr} add r4, r1, #0x0 add r7, r3, #0x0 mov r1, #0x10 add r5, r0, #0x0 add r6, r2, #0x0 bl FUN_0205858C str r7, [r0, #0x4] str r4, [r0, #0x8] str r6, [r0, #0xc] add r0, r5, #0x0 mov r1, #0x0 bl FUN_02058544 add r0, r5, #0x0 bl FUN_02058848 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0205A078 FUN_0205A078: ; 0x0205A078 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_020585B0 add r4, r0, #0x0 mov r0, #0x0 ldrsh r0, [r4, r0] cmp r0, #0x4 bhi _0205A16E add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0205A096: ; jump table (using 16-bit offset) .short _0205A0A0 - _0205A096 - 2; case 0 .short _0205A0CA - _0205A096 - 2; case 1 .short _0205A0E8 - _0205A096 - 2; case 2 .short _0205A0FE - _0205A096 - 2; case 3 .short _0205A15A - _0205A096 - 2; case 4 _0205A0A0: add r0, r5, #0x0 bl FUN_02058848 add r0, r5, #0x0 bl FUN_0205886C add r0, r5, #0x0 bl FUN_020584C4 mov r1, #0x0 bl FUN_0205AFDC add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_0205AE0C mov r0, #0x0 ldrsh r0, [r4, r0] add r0, r0, #0x1 strh r0, [r4, #0x0] pop {r4-r6, pc} _0205A0CA: add r0, r5, #0x0 bl FUN_0205B080 cmp r0, #0x0 beq _0205A16E mov r1, #0x0 ldr r0, _0205A170 ; =0x020F693C mvn r1, r1 bl FUN_0205AAB0 strh r0, [r4, #0x2] mov r0, #0x0 ldrsh r0, [r4, r0] add r0, r0, #0x1 strh r0, [r4, #0x0] _0205A0E8: mov r0, #0x2 ldrsh r1, [r4, r0] sub r1, r1, #0x1 strh r1, [r4, #0x2] ldrsh r0, [r4, r0] cmp r0, #0x0 bne _0205A16E mov r0, #0x0 ldrsh r0, [r4, r0] add r0, r0, #0x1 strh r0, [r4, #0x0] _0205A0FE: mov r1, #0x0 ldr r0, [r4, #0xc] mvn r1, r1 bl FUN_0205AAD4 add r6, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_020584D8 ldr r0, [r4, #0x4] cmp r0, #0x1 bne _0205A12A add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_0205A270 cmp r0, #0x0 bne _0205A12A mov r0, #0x0 strh r0, [r4, #0x0] pop {r4-r6, pc} _0205A12A: add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02059918 cmp r0, #0x0 beq _0205A13C mov r0, #0x0 strh r0, [r4, #0x0] pop {r4-r6, pc} _0205A13C: ldr r1, [r4, #0x8] add r0, r6, #0x0 bl FUN_0205AFDC add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_0205AE0C add r0, r5, #0x0 bl FUN_0205883C mov r0, #0x0 ldrsh r0, [r4, r0] add r0, r0, #0x1 strh r0, [r4, #0x0] _0205A15A: add r0, r5, #0x0 bl FUN_0205B080 cmp r0, #0x0 beq _0205A16E add r0, r5, #0x0 bl FUN_02058848 mov r0, #0x0 strh r0, [r4, #0x0] _0205A16E: pop {r4-r6, pc} .balign 4 _0205A170: .word 0x020F693C thumb_func_start FUN_0205A174 FUN_0205A174: ; 0x0205A174 push {r3-r7, lr} sub sp, #0x8 str r0, [sp, #0x0] add r4, r1, #0x0 bl FUN_02058AFC add r6, r0, #0x0 ldr r0, [sp, #0x0] bl FUN_02058B0C add r5, r0, #0x0 ldr r0, [sp, #0x0] bl FUN_02058538 add r7, r0, #0x0 ldr r0, [sp, #0x0] bl FUN_02058540 str r0, [sp, #0x4] ldr r0, [sp, #0x0] bl FUN_02058480 cmp r0, #0xd bhi _0205A268 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0205A1B0: ; jump table (using 16-bit offset) .short _0205A268 - _0205A1B0 - 2; case 0 .short _0205A268 - _0205A1B0 - 2; case 1 .short _0205A268 - _0205A1B0 - 2; case 2 .short _0205A268 - _0205A1B0 - 2; case 3 .short _0205A268 - _0205A1B0 - 2; case 4 .short _0205A268 - _0205A1B0 - 2; case 5 .short _0205A1CC - _0205A1B0 - 2; case 6 .short _0205A1DE - _0205A1B0 - 2; case 7 .short _0205A1F0 - _0205A1B0 - 2; case 8 .short _0205A202 - _0205A1B0 - 2; case 9 .short _0205A214 - _0205A1B0 - 2; case 10 .short _0205A22A - _0205A1B0 - 2; case 11 .short _0205A240 - _0205A1B0 - 2; case 12 .short _0205A254 - _0205A1B0 - 2; case 13 _0205A1CC: sub r0, r6, r7 str r0, [r4, #0x0] ldr r0, [sp, #0x4] str r6, [r4, #0x8] sub r0, r5, r0 str r0, [r4, #0x4] add sp, #0x8 str r5, [r4, #0xc] pop {r3-r7, pc} _0205A1DE: str r6, [r4, #0x0] add r0, r6, r7 str r0, [r4, #0x8] ldr r0, [sp, #0x4] add sp, #0x8 sub r0, r5, r0 str r0, [r4, #0x4] str r5, [r4, #0xc] pop {r3-r7, pc} _0205A1F0: sub r0, r6, r7 str r0, [r4, #0x0] ldr r0, [sp, #0x4] str r6, [r4, #0x8] str r5, [r4, #0x4] add r0, r5, r0 add sp, #0x8 str r0, [r4, #0xc] pop {r3-r7, pc} _0205A202: str r6, [r4, #0x0] add r0, r6, r7 str r0, [r4, #0x8] ldr r0, [sp, #0x4] str r5, [r4, #0x4] add r0, r5, r0 add sp, #0x8 str r0, [r4, #0xc] pop {r3-r7, pc} _0205A214: sub r0, r6, r7 str r0, [r4, #0x0] ldr r0, [sp, #0x4] str r6, [r4, #0x8] sub r0, r5, r0 str r0, [r4, #0x4] ldr r0, [sp, #0x4] add sp, #0x8 add r0, r5, r0 str r0, [r4, #0xc] pop {r3-r7, pc} _0205A22A: str r6, [r4, #0x0] add r0, r6, r7 str r0, [r4, #0x8] ldr r0, [sp, #0x4] sub r0, r5, r0 str r0, [r4, #0x4] ldr r0, [sp, #0x4] add sp, #0x8 add r0, r5, r0 str r0, [r4, #0xc] pop {r3-r7, pc} _0205A240: sub r0, r6, r7 str r0, [r4, #0x0] add r0, r6, r7 str r0, [r4, #0x8] ldr r0, [sp, #0x4] add sp, #0x8 sub r0, r5, r0 str r0, [r4, #0x4] str r5, [r4, #0xc] pop {r3-r7, pc} _0205A254: sub r0, r6, r7 str r0, [r4, #0x0] add r0, r6, r7 str r0, [r4, #0x8] ldr r0, [sp, #0x4] str r5, [r4, #0x4] add r0, r5, r0 add sp, #0x8 str r0, [r4, #0xc] pop {r3-r7, pc} _0205A268: bl ErrorHandling add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_0205A270 FUN_0205A270: ; 0x0205A270 push {r4-r6, lr} sub sp, #0x10 add r6, r1, #0x0 add r5, r0, #0x0 add r1, sp, #0x0 bl FUN_0205A174 add r0, r5, #0x0 bl FUN_02058B2C add r4, r0, #0x0 add r0, r6, #0x0 bl FUN_02059BF4 add r4, r4, r0 add r0, r5, #0x0 bl FUN_02058B4C add r5, r0, #0x0 add r0, r6, #0x0 bl FUN_02059C00 add r1, r5, r0 ldr r0, [sp, #0x0] cmp r0, r4 bgt _0205A2AA ldr r0, [sp, #0x8] cmp r0, r4 bge _0205A2B0 _0205A2AA: add sp, #0x10 mov r0, #0x0 pop {r4-r6, pc} _0205A2B0: ldr r0, [sp, #0x4] cmp r0, r1 bgt _0205A2BC ldr r0, [sp, #0xc] cmp r0, r1 bge _0205A2C2 _0205A2BC: add sp, #0x10 mov r0, #0x0 pop {r4-r6, pc} _0205A2C2: mov r0, #0x1 add sp, #0x10 pop {r4-r6, pc} thumb_func_start FUN_0205A2C8 FUN_0205A2C8: ; 0x0205A2C8 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 mov r1, #0x8 bl FUN_0205858C str r4, [r0, #0x0] add r0, r5, #0x0 mov r1, #0x0 bl FUN_02058544 add r0, r5, #0x0 bl FUN_02058848 add r0, r5, #0x0 bl FUN_02059C60 pop {r3-r5, pc} thumb_func_start FUN_0205A2EC FUN_0205A2EC: ; 0x0205A2EC push {r3-r5, lr} add r5, r0, #0x0 bl FUN_020585B0 add r4, r0, #0x0 ldr r0, [r4, #0x4] cmp r0, #0x0 beq _0205A300 cmp r0, #0x1 pop {r3-r5, pc} _0205A300: ldr r1, [r4, #0x0] add r0, r5, #0x0 bl FUN_020584AC ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] pop {r3-r5, pc} thumb_func_start FUN_0205A310 FUN_0205A310: ; 0x0205A310 ldr r3, _0205A318 ; =FUN_0205A2C8 mov r1, #0x0 bx r3 nop _0205A318: .word FUN_0205A2C8 thumb_func_start FUN_0205A31C FUN_0205A31C: ; 0x0205A31C ldr r3, _0205A324 ; =FUN_0205A2C8 mov r1, #0x1 bx r3 nop _0205A324: .word FUN_0205A2C8 thumb_func_start FUN_0205A328 FUN_0205A328: ; 0x0205A328 ldr r3, _0205A330 ; =FUN_0205A2C8 mov r1, #0x2 bx r3 nop _0205A330: .word FUN_0205A2C8 thumb_func_start FUN_0205A334 FUN_0205A334: ; 0x0205A334 ldr r3, _0205A33C ; =FUN_0205A2C8 mov r1, #0x3 bx r3 nop _0205A33C: .word FUN_0205A2C8 thumb_func_start FUN_0205A340 FUN_0205A340: ; 0x0205A340 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 mov r1, #0x8 bl FUN_0205858C strb r4, [r0, #0x0] add r0, r5, #0x0 mov r1, #0x0 bl FUN_02058544 add r0, r5, #0x0 bl FUN_02058848 add r0, r5, #0x0 bl FUN_02059C60 pop {r3-r5, pc} thumb_func_start FUN_0205A364 FUN_0205A364: ; 0x0205A364 ldr r3, _0205A36C ; =FUN_0205A340 mov r1, #0x2 bx r3 nop _0205A36C: .word FUN_0205A340 thumb_func_start FUN_0205A370 FUN_0205A370: ; 0x0205A370 ldr r3, _0205A378 ; =FUN_0205A340 mov r1, #0x3 bx r3 nop _0205A378: .word FUN_0205A340 thumb_func_start FUN_0205A37C FUN_0205A37C: ; 0x0205A37C push {r3-r7, lr} add r5, r0, #0x0 bl FUN_020585B0 ldr r6, _0205A39C ; =0x020F6754 add r4, r0, #0x0 mov r7, #0x2 _0205A38A: ldrsb r2, [r4, r7] add r0, r5, #0x0 add r1, r4, #0x0 lsl r2, r2, #0x2 ldr r2, [r6, r2] blx r2 cmp r0, #0x1 beq _0205A38A pop {r3-r7, pc} .balign 4 _0205A39C: .word 0x020F6754 thumb_func_start FUN_0205A3A0 FUN_0205A3A0: ; 0x0205A3A0 push {r3-r5, lr} add r4, r1, #0x0 mov r1, #0x26 add r2, r1, #0x0 sub r2, #0x27 add r5, r0, #0x0 bl FUN_0205ABEC mov r1, #0x0 mvn r1, r1 cmp r0, r1 bne _0205A3BE add r0, r5, #0x0 bl FUN_020584C4 _0205A3BE: mov r1, #0x0 bl FUN_0205AFDC add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_0205AE0C mov r0, #0x1 strb r0, [r4, #0x2] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0205A3D4 FUN_0205A3D4: ; 0x0205A3D4 push {r4, lr} add r4, r1, #0x0 bl FUN_0205B080 cmp r0, #0x0 bne _0205A3E4 mov r0, #0x0 pop {r4, pc} _0205A3E4: mov r0, #0x0 str r0, [r4, #0x4] mov r0, #0x2 strb r0, [r4, #0x2] mov r0, #0x1 pop {r4, pc} thumb_func_start FUN_0205A3F0 FUN_0205A3F0: ; 0x0205A3F0 push {r4, lr} add r4, r1, #0x0 ldr r1, [r4, #0x4] cmp r1, #0x0 beq _0205A414 mov r1, #0x26 add r2, r1, #0x0 sub r2, #0x27 bl FUN_0205ABEC mov r1, #0x0 mvn r1, r1 cmp r0, r1 beq _0205A414 mov r0, #0x0 strb r0, [r4, #0x2] mov r0, #0x1 pop {r4, pc} _0205A414: ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] cmp r0, #0x18 bge _0205A422 mov r0, #0x0 pop {r4, pc} _0205A422: mov r0, #0x3 strb r0, [r4, #0x2] mov r0, #0x1 pop {r4, pc} .balign 4 thumb_func_start FUN_0205A42C FUN_0205A42C: ; 0x0205A42C push {r3-r7, lr} sub sp, #0x28 ldr r3, _0205A4BC ; =0x020F68D8 add r2, sp, #0x14 add r7, r0, #0x0 add r6, r1, #0x0 ldmia r3!, {r0-r1} add r5, r2, #0x0 stmia r2!, {r0-r1} ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldr r0, [r3, #0x0] ldr r4, _0205A4C0 ; =0x020F68EC str r0, [r2, #0x0] add r3, sp, #0x0 ldmia r4!, {r0-r1} add r2, r3, #0x0 stmia r3!, {r0-r1} ldmia r4!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r4, #0x0] str r0, [r3, #0x0] mov r0, #0x0 ldrsb r0, [r6, r0] cmp r0, #0x2 beq _0205A462 add r5, r2, #0x0 _0205A462: add r0, r7, #0x0 bl FUN_020584C4 mov r4, #0x0 ldr r2, [r5, #0x0] sub r1, r4, #0x1 cmp r2, r1 beq _0205A486 add r1, r5, #0x0 sub r2, r4, #0x1 _0205A476: ldr r3, [r1, #0x0] cmp r0, r3 beq _0205A486 add r1, r1, #0x4 ldr r3, [r1, #0x0] add r4, r4, #0x1 cmp r3, r2 bne _0205A476 _0205A486: lsl r0, r4, #0x2 ldr r1, [r5, r0] mov r0, #0x0 mvn r0, r0 cmp r1, r0 bne _0205A496 bl ErrorHandling _0205A496: add r4, r4, #0x1 lsl r0, r4, #0x2 ldr r1, [r5, r0] mov r0, #0x0 mvn r0, r0 cmp r1, r0 bne _0205A4A6 mov r4, #0x0 _0205A4A6: lsl r1, r4, #0x2 ldr r1, [r5, r1] add r0, r7, #0x0 bl FUN_020584AC mov r0, #0x0 strb r0, [r6, #0x2] mov r0, #0x1 add sp, #0x28 pop {r3-r7, pc} nop _0205A4BC: .word 0x020F68D8 _0205A4C0: .word 0x020F68EC thumb_func_start FUN_0205A4C4 FUN_0205A4C4: ; 0x0205A4C4 ldr r3, _0205A4CC ; =FUN_0205A340 mov r1, #0x3 bx r3 nop _0205A4CC: .word FUN_0205A340 thumb_func_start FUN_0205A4D0 FUN_0205A4D0: ; 0x0205A4D0 push {r3-r7, lr} add r5, r0, #0x0 bl FUN_020585B0 ldr r6, _0205A4F0 ; =0x020F6724 add r4, r0, #0x0 mov r7, #0x2 _0205A4DE: ldrsb r2, [r4, r7] add r0, r5, #0x0 add r1, r4, #0x0 lsl r2, r2, #0x2 ldr r2, [r6, r2] blx r2 cmp r0, #0x1 beq _0205A4DE pop {r3-r7, pc} .balign 4 _0205A4F0: .word 0x020F6724 thumb_func_start FUN_0205A4F4 FUN_0205A4F4: ; 0x0205A4F4 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_020584C4 mov r1, #0x0 bl FUN_0205AFDC add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_0205AE0C mov r0, #0x1 strb r0, [r4, #0x2] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0205A514 FUN_0205A514: ; 0x0205A514 push {r4, lr} add r4, r1, #0x0 bl FUN_0205B080 cmp r0, #0x0 bne _0205A524 mov r0, #0x0 pop {r4, pc} _0205A524: mov r0, #0x0 str r0, [r4, #0x4] mov r0, #0x2 strb r0, [r4, #0x2] mov r0, #0x1 pop {r4, pc} thumb_func_start FUN_0205A530 FUN_0205A530: ; 0x0205A530 ldr r0, [r1, #0x4] add r0, r0, #0x1 str r0, [r1, #0x4] cmp r0, #0x18 bge _0205A53E mov r0, #0x0 bx lr _0205A53E: mov r0, #0x3 strb r0, [r1, #0x2] mov r0, #0x1 bx lr .balign 4 thumb_func_start FUN_0205A548 FUN_0205A548: ; 0x0205A548 push {r3-r7, lr} sub sp, #0x28 ldr r3, _0205A5F4 ; =0x020F6900 add r2, sp, #0x14 add r7, r0, #0x0 add r6, r1, #0x0 ldmia r3!, {r0-r1} add r5, r2, #0x0 stmia r2!, {r0-r1} ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldr r0, [r3, #0x0] ldr r3, _0205A5F8 ; =0x020F6928 str r0, [r2, #0x0] add r2, sp, #0x0 ldmia r3!, {r0-r1} add r4, r2, #0x0 stmia r2!, {r0-r1} ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldr r0, [r3, #0x0] str r0, [r2, #0x0] mov r0, #0x0 ldrsb r0, [r6, r0] cmp r0, #0x2 beq _0205A57E add r5, r4, #0x0 _0205A57E: add r0, r7, #0x0 bl FUN_020584C4 mov r4, #0x0 ldr r2, [r5, #0x0] sub r1, r4, #0x1 cmp r2, r1 beq _0205A5A2 add r1, r5, #0x0 sub r2, r4, #0x1 _0205A592: ldr r3, [r1, #0x0] cmp r0, r3 beq _0205A5A2 add r1, r1, #0x4 ldr r3, [r1, #0x0] add r4, r4, #0x1 cmp r3, r2 bne _0205A592 _0205A5A2: lsl r0, r4, #0x2 ldr r1, [r5, r0] mov r0, #0x0 mvn r0, r0 cmp r1, r0 bne _0205A5B2 bl ErrorHandling _0205A5B2: add r4, r4, #0x1 lsl r0, r4, #0x2 ldr r1, [r5, r0] mov r0, #0x0 mvn r0, r0 cmp r1, r0 bne _0205A5C2 mov r4, #0x0 _0205A5C2: lsl r1, r4, #0x2 ldr r1, [r5, r1] add r0, r7, #0x0 bl FUN_020584AC add r0, r7, #0x0 bl FUN_020584C4 add r4, r0, #0x0 add r0, r7, #0x0 bl FUN_020584A0 cmp r4, r0 bne _0205A5E8 mov r0, #0x0 ldrsb r0, [r6, r0] bl FUN_02059E74 strb r0, [r6, #0x0] _0205A5E8: mov r0, #0x0 strb r0, [r6, #0x2] mov r0, #0x1 add sp, #0x28 pop {r3-r7, pc} nop _0205A5F4: .word 0x020F6900 _0205A5F8: .word 0x020F6928 thumb_func_start FUN_0205A5FC FUN_0205A5FC: ; 0x0205A5FC push {r3-r5, lr} add r5, r0, #0x0 mov r1, #0x8 bl FUN_0205858C add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0205ACE0 cmp r0, #0x1 bne _0205A61A add r0, r5, #0x0 add r1, r4, #0x4 bl FUN_0205ACF4 _0205A61A: pop {r3-r5, pc} thumb_func_start FUN_0205A61C FUN_0205A61C: ; 0x0205A61C push {r3-r7, lr} add r5, r0, #0x0 bl FUN_020585B0 ldr r6, _0205A63C ; =0x020F66CC add r4, r0, #0x0 mov r7, #0x0 _0205A62A: ldrsh r2, [r4, r7] add r0, r5, #0x0 add r1, r4, #0x0 lsl r2, r2, #0x2 ldr r2, [r6, r2] blx r2 cmp r0, #0x1 beq _0205A62A pop {r3-r7, pc} .balign 4 _0205A63C: .word 0x020F66CC thumb_func_start FUN_0205A640 FUN_0205A640: ; 0x0205A640 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_020584A0 mov r1, #0x2 ldrsh r1, [r4, r1] add r6, r0, #0x0 cmp r1, #0x1 bne _0205A65A bl FUN_02059E74 add r6, r0, #0x0 _0205A65A: add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_020584CC add r0, r5, #0x0 bl FUN_0205ACE0 cmp r0, #0x0 bne _0205A674 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_020584AC _0205A674: mov r0, #0x1 strh r0, [r4, #0x0] pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0205A67C FUN_0205A67C: ; 0x0205A67C push {r3-r7, lr} add r4, r1, #0x0 mov r1, #0x2 ldrsh r1, [r4, r1] add r5, r0, #0x0 cmp r1, #0x0 beq _0205A6DA bl FUN_02058AFC add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02058B0C add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02058B2C str r0, [sp, #0x0] add r0, r5, #0x0 bl FUN_02058B4C ldr r1, [sp, #0x0] cmp r6, r1 bne _0205A6DA cmp r7, r0 bne _0205A6DA add r0, r5, #0x0 bl FUN_020584D4 bl FUN_02059E74 add r6, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_020584CC add r0, r5, #0x0 bl FUN_0205ACE0 cmp r0, #0x0 bne _0205A6D6 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_020584AC _0205A6D6: mov r0, #0x0 strh r0, [r4, #0x2] _0205A6DA: add r0, r5, #0x0 bl FUN_020584D4 add r6, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02059918 mov r1, #0x1 add r2, r0, #0x0 tst r2, r1 beq _0205A704 add r0, r6, #0x0 strh r1, [r4, #0x2] bl FUN_02059E74 add r6, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02059918 _0205A704: mov r1, #0xc cmp r0, #0x0 beq _0205A70C mov r1, #0x20 _0205A70C: add r0, r6, #0x0 bl FUN_0205AFDC add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_0205AE0C add r0, r5, #0x0 bl FUN_0205ACE0 cmp r0, #0x1 bne _0205A72C add r0, r5, #0x0 add r1, r4, #0x4 bl FUN_0205AD0C _0205A72C: add r0, r5, #0x0 bl FUN_0205883C mov r0, #0x2 strh r0, [r4, #0x0] mov r0, #0x1 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0205A73C FUN_0205A73C: ; 0x0205A73C push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_0205B080 cmp r0, #0x1 bne _0205A766 add r0, r5, #0x0 bl FUN_02058848 add r0, r5, #0x0 bl FUN_0205ACE0 cmp r0, #0x1 bne _0205A762 add r0, r5, #0x0 add r1, r4, #0x4 bl FUN_0205AD88 _0205A762: mov r0, #0x0 strh r0, [r4, #0x0] _0205A766: mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0205A76C FUN_0205A76C: ; 0x0205A76C push {r3-r7, lr} add r6, r1, #0x0 mov r1, #0x10 add r5, r0, #0x0 add r7, r2, #0x0 str r3, [sp, #0x0] bl FUN_0205858C add r4, r0, #0x0 strh r6, [r4, #0x4] ldr r0, [sp, #0x0] strh r7, [r4, #0x6] str r0, [r4, #0x8] add r0, r5, #0x0 bl FUN_0205ACE0 cmp r0, #0x1 bne _0205A79A add r4, #0xc add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0205ACF4 _0205A79A: pop {r3-r7, pc} thumb_func_start FUN_0205A79C FUN_0205A79C: ; 0x0205A79C push {r3, lr} mov r1, #0x2 mov r2, #0x0 mov r3, #0xe bl FUN_0205A76C pop {r3, pc} .balign 4 thumb_func_start FUN_0205A7AC FUN_0205A7AC: ; 0x0205A7AC push {r3, lr} mov r1, #0x2 mov r2, #0x0 mov r3, #0xf bl FUN_0205A76C pop {r3, pc} .balign 4 thumb_func_start FUN_0205A7BC FUN_0205A7BC: ; 0x0205A7BC push {r3, lr} mov r1, #0x2 mov r2, #0x1 mov r3, #0x10 bl FUN_0205A76C pop {r3, pc} .balign 4 thumb_func_start FUN_0205A7CC FUN_0205A7CC: ; 0x0205A7CC push {r3, lr} mov r1, #0x2 mov r2, #0x1 mov r3, #0x11 bl FUN_0205A76C pop {r3, pc} .balign 4 thumb_func_start FUN_0205A7DC FUN_0205A7DC: ; 0x0205A7DC push {r3, lr} mov r1, #0x2 mov r2, #0x0 mov r3, #0x12 bl FUN_0205A76C pop {r3, pc} .balign 4 thumb_func_start FUN_0205A7EC FUN_0205A7EC: ; 0x0205A7EC push {r3, lr} mov r1, #0x2 mov r2, #0x0 mov r3, #0x13 bl FUN_0205A76C pop {r3, pc} .balign 4 thumb_func_start FUN_0205A7FC FUN_0205A7FC: ; 0x0205A7FC push {r3, lr} mov r1, #0x2 mov r2, #0x1 mov r3, #0x14 bl FUN_0205A76C pop {r3, pc} .balign 4 thumb_func_start FUN_0205A80C FUN_0205A80C: ; 0x0205A80C push {r3, lr} mov r1, #0x2 mov r2, #0x1 mov r3, #0x15 bl FUN_0205A76C pop {r3, pc} .balign 4 thumb_func_start FUN_0205A81C FUN_0205A81C: ; 0x0205A81C push {r3, lr} mov r1, #0x2 mov r2, #0x1 mov r3, #0x16 bl FUN_0205A76C pop {r3, pc} .balign 4 thumb_func_start FUN_0205A82C FUN_0205A82C: ; 0x0205A82C push {r3, lr} mov r1, #0x2 mov r2, #0x1 mov r3, #0x17 bl FUN_0205A76C pop {r3, pc} .balign 4 thumb_func_start FUN_0205A83C FUN_0205A83C: ; 0x0205A83C push {r3, lr} mov r1, #0x2 mov r2, #0x0 mov r3, #0x18 bl FUN_0205A76C pop {r3, pc} .balign 4 thumb_func_start FUN_0205A84C FUN_0205A84C: ; 0x0205A84C push {r3, lr} mov r1, #0x2 mov r2, #0x0 mov r3, #0x19 bl FUN_0205A76C pop {r3, pc} .balign 4 thumb_func_start FUN_0205A85C FUN_0205A85C: ; 0x0205A85C push {r3, lr} mov r1, #0x2 mov r2, #0x1 mov r3, #0x1a bl FUN_0205A76C pop {r3, pc} .balign 4 thumb_func_start FUN_0205A86C FUN_0205A86C: ; 0x0205A86C push {r3, lr} mov r1, #0x2 mov r2, #0x1 mov r3, #0x1b bl FUN_0205A76C pop {r3, pc} .balign 4 thumb_func_start FUN_0205A87C FUN_0205A87C: ; 0x0205A87C push {r3, lr} mov r1, #0x2 mov r2, #0x0 mov r3, #0x1c bl FUN_0205A76C pop {r3, pc} .balign 4 thumb_func_start FUN_0205A88C FUN_0205A88C: ; 0x0205A88C push {r3, lr} mov r1, #0x2 mov r2, #0x0 mov r3, #0x1d bl FUN_0205A76C pop {r3, pc} .balign 4 thumb_func_start FUN_0205A89C FUN_0205A89C: ; 0x0205A89C push {r3, lr} mov r1, #0x2 mov r2, #0x1 mov r3, #0x1e bl FUN_0205A76C pop {r3, pc} .balign 4 thumb_func_start FUN_0205A8AC FUN_0205A8AC: ; 0x0205A8AC push {r3, lr} mov r1, #0x2 mov r2, #0x1 mov r3, #0x1f bl FUN_0205A76C pop {r3, pc} .balign 4 thumb_func_start FUN_0205A8BC FUN_0205A8BC: ; 0x0205A8BC push {r3, lr} mov r1, #0x2 mov r2, #0x0 mov r3, #0x20 bl FUN_0205A76C pop {r3, pc} .balign 4 thumb_func_start FUN_0205A8CC FUN_0205A8CC: ; 0x0205A8CC push {r3, lr} mov r1, #0x2 mov r2, #0x0 mov r3, #0x21 bl FUN_0205A76C pop {r3, pc} .balign 4 thumb_func_start FUN_0205A8DC FUN_0205A8DC: ; 0x0205A8DC push {r3, lr} mov r1, #0x2 mov r2, #0x1 mov r3, #0x22 bl FUN_0205A76C pop {r3, pc} .balign 4 thumb_func_start FUN_0205A8EC FUN_0205A8EC: ; 0x0205A8EC push {r3, lr} mov r1, #0x2 mov r2, #0x1 mov r3, #0x23 bl FUN_0205A76C pop {r3, pc} .balign 4 thumb_func_start FUN_0205A8FC FUN_0205A8FC: ; 0x0205A8FC push {r3, lr} mov r1, #0x2 mov r2, #0x0 mov r3, #0x24 bl FUN_0205A76C pop {r3, pc} .balign 4 thumb_func_start FUN_0205A90C FUN_0205A90C: ; 0x0205A90C push {r3, lr} mov r1, #0x2 mov r2, #0x0 mov r3, #0x25 bl FUN_0205A76C pop {r3, pc} .balign 4 thumb_func_start FUN_0205A91C FUN_0205A91C: ; 0x0205A91C push {r3-r7, lr} add r5, r0, #0x0 bl FUN_020585B0 ldr r6, _0205A93C ; =0x020F6670 add r4, r0, #0x0 mov r7, #0x0 _0205A92A: ldrsh r2, [r4, r7] add r0, r5, #0x0 add r1, r4, #0x0 lsl r2, r2, #0x2 ldr r2, [r6, r2] blx r2 cmp r0, #0x1 beq _0205A92A pop {r3-r7, pc} .balign 4 _0205A93C: .word 0x020F6670 thumb_func_start FUN_0205A940 FUN_0205A940: ; 0x0205A940 push {r3-r7, lr} add r4, r1, #0x0 mov r1, #0x2 ldrsh r2, [r4, r1] mov r1, #0x4 ldrsh r1, [r4, r1] add r5, r0, #0x0 cmp r2, r1 bne _0205A98C mov r1, #0x6 ldrsh r1, [r4, r1] cmp r1, #0x0 bne _0205A974 bl FUN_02058AFC add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02058B2C cmp r6, r0 bne _0205A98C mov r0, #0x2 ldrsh r0, [r4, r0] add r0, r0, #0x1 strh r0, [r4, #0x2] b _0205A98C _0205A974: bl FUN_02058B0C add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02058B4C cmp r6, r0 bne _0205A98C mov r0, #0x2 ldrsh r0, [r4, r0] add r0, r0, #0x1 strh r0, [r4, #0x2] _0205A98C: mov r0, #0x2 ldrsh r0, [r4, r0] cmp r0, #0x3 bne _0205A9C0 add r0, r5, #0x0 bl FUN_02058AFC add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02058B0C add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02058B2C str r0, [sp, #0x0] add r0, r5, #0x0 bl FUN_02058B4C ldr r1, [sp, #0x0] cmp r6, r1 bne _0205A9C0 cmp r7, r0 bne _0205A9C0 mov r0, #0x0 strh r0, [r4, #0x2] _0205A9C0: ldr r0, [r4, #0x8] bl FUN_0205AAFC add r7, r0, #0x0 mov r0, #0x2 ldrsh r0, [r4, r0] lsl r0, r0, #0x2 ldr r6, [r7, r0] add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_020584CC add r0, r5, #0x0 bl FUN_0205ACE0 cmp r0, #0x0 bne _0205A9EA add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_020584AC _0205A9EA: add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02059918 mov r1, #0x1 tst r1, r0 beq _0205AA28 mov r0, #0x2 ldrsh r1, [r4, r0] add r1, r1, #0x1 strh r1, [r4, #0x2] ldrsh r0, [r4, r0] lsl r0, r0, #0x2 ldr r6, [r7, r0] add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_020584CC add r0, r5, #0x0 bl FUN_0205ACE0 cmp r0, #0x0 bne _0205AA20 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_020584AC _0205AA20: add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02059918 _0205AA28: mov r1, #0xc cmp r0, #0x0 beq _0205AA30 mov r1, #0x20 _0205AA30: add r0, r6, #0x0 bl FUN_0205AFDC add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_0205AE0C add r0, r5, #0x0 bl FUN_0205ACE0 cmp r0, #0x1 bne _0205AA52 add r1, r4, #0x0 add r0, r5, #0x0 add r1, #0xc bl FUN_0205AD0C _0205AA52: add r0, r5, #0x0 bl FUN_0205883C mov r0, #0x1 strh r0, [r4, #0x0] pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0205AA60 FUN_0205AA60: ; 0x0205AA60 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_0205B080 cmp r0, #0x1 bne _0205AA8C add r0, r5, #0x0 bl FUN_02058848 add r0, r5, #0x0 bl FUN_0205ACE0 cmp r0, #0x1 bne _0205AA88 add r1, r4, #0x0 add r0, r5, #0x0 add r1, #0xc bl FUN_0205AD88 _0205AA88: mov r0, #0x0 strh r0, [r4, #0x0] _0205AA8C: mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0205AA90 FUN_0205AA90: ; 0x0205AA90 push {r4, lr} ldr r2, [r0, #0x0] mov r4, #0x0 cmp r1, r2 beq _0205AAA4 _0205AA9A: add r0, r0, #0x4 ldr r2, [r0, #0x0] add r4, r4, #0x1 cmp r1, r2 bne _0205AA9A _0205AAA4: cmp r4, #0x0 bne _0205AAAC bl ErrorHandling _0205AAAC: add r0, r4, #0x0 pop {r4, pc} thumb_func_start FUN_0205AAB0 FUN_0205AAB0: ; 0x0205AAB0 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_0201B9EC add r6, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0205AA90 add r1, r0, #0x0 add r0, r6, #0x0 blx _s32_div_f lsl r0, r1, #0x2 ldr r0, [r5, r0] pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0205AAD4 FUN_0205AAD4: ; 0x0205AAD4 push {r4-r6, lr} add r5, r1, #0x0 bl FUN_0205AAFC add r4, r0, #0x0 bl FUN_0201B9EC add r6, r0, #0x0 add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_0205AA90 add r1, r0, #0x0 add r0, r6, #0x0 blx _s32_div_f lsl r0, r1, #0x2 ldr r0, [r4, r0] pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0205AAFC FUN_0205AAFC: ; 0x0205AAFC push {r3, lr} ldr r1, _0205AB1C ; =0x020F69BC mov r2, #0x0 _0205AB02: cmp r2, r0 bne _0205AB0A ldr r0, [r1, #0x4] pop {r3, pc} _0205AB0A: add r1, #0x8 ldr r2, [r1, #0x0] cmp r2, #0x27 bne _0205AB02 bl ErrorHandling mov r0, #0x0 pop {r3, pc} nop _0205AB1C: .word 0x020F69BC thumb_func_start FUN_0205AB20 FUN_0205AB20: ; 0x0205AB20 push {r3-r7, lr} add r5, r0, #0x0 bl FUN_02058488 cmp r0, #0x1 beq _0205AB36 cmp r0, #0x2 beq _0205AB36 mov r0, #0x0 mvn r0, r0 pop {r3-r7, pc} _0205AB36: add r0, r5, #0x0 bl FUN_02058738 bl FUN_02055698 add r6, r0, #0x0 bl FUN_02057124 cmp r0, #0x0 bne _0205AB50 mov r0, #0x0 mvn r0, r0 pop {r3-r7, pc} _0205AB50: add r0, r5, #0x0 mov r4, #0x0 bl FUN_02058480 ldr r1, _0205ABE8 ; =0x020F6984 _0205AB5A: lsl r2, r4, #0x2 ldr r2, [r1, r2] add r4, r4, #0x1 cmp r2, r0 beq _0205AB68 cmp r2, #0xff bne _0205AB5A _0205AB68: cmp r0, r2 beq _0205AB72 mov r0, #0x0 mvn r0, r0 pop {r3-r7, pc} _0205AB72: add r0, r6, #0x0 bl FUN_020553A0 bl FUN_02058BE4 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02058BE4 cmp r4, r0 beq _0205AB8E mov r0, #0x0 mvn r0, r0 pop {r3-r7, pc} _0205AB8E: add r0, r6, #0x0 bl FUN_02055320 add r7, r0, #0x0 add r0, r6, #0x0 bl FUN_0205532C add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x0 bl FUN_02058510 str r0, [sp, #0x0] add r0, r5, #0x0 bl FUN_02058B2C add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02058B4C add r3, r0, #0x0 ldr r0, [sp, #0x0] ldr r5, [sp, #0x0] sub r2, r6, r0 add r1, r6, r0 sub r5, r3, r5 add r0, r3, r0 cmp r5, r4 bgt _0205ABE2 cmp r0, r4 blt _0205ABE2 cmp r2, r7 bgt _0205ABE2 cmp r1, r7 blt _0205ABE2 add r1, r3, #0x0 add r0, r6, #0x0 add r2, r7, #0x0 add r3, r4, #0x0 bl FUN_02059E80 pop {r3-r7, pc} _0205ABE2: mov r0, #0x0 mvn r0, r0 pop {r3-r7, pc} .balign 4 _0205ABE8: .word 0x020F6984 thumb_func_start FUN_0205ABEC FUN_0205ABEC: ; 0x0205ABEC push {r4-r7, lr} sub sp, #0x14 str r0, [sp, #0x0] add r4, r2, #0x0 add r0, r1, #0x0 bl FUN_0205AAFC add r1, r4, #0x0 add r5, r0, #0x0 bl FUN_0205AA90 add r4, r0, #0x0 cmp r4, #0x1 bne _0205AC10 mov r0, #0x0 add sp, #0x14 mvn r0, r0 pop {r4-r7, pc} _0205AC10: ldr r0, [sp, #0x0] bl FUN_0205AB20 mov r1, #0x0 mvn r1, r1 cmp r0, r1 beq _0205ACDA mov r2, #0x0 add r3, r5, #0x0 _0205AC22: ldr r1, [r3, #0x0] cmp r0, r1 beq _0205ACDA add r2, r2, #0x1 add r3, r3, #0x4 cmp r2, r4 blt _0205AC22 mov r7, #0x0 mvn r7, r7 ldr r0, [sp, #0x0] add r6, r7, #0x0 bl FUN_02058B2C str r0, [sp, #0x8] ldr r0, [sp, #0x0] bl FUN_02058B4C str r0, [sp, #0x4] ldr r0, [sp, #0x0] bl FUN_02058738 bl FUN_02055698 str r0, [sp, #0xc] bl FUN_02055320 str r0, [sp, #0x10] ldr r0, [sp, #0xc] bl FUN_0205532C ldr r2, [sp, #0x8] ldr r1, [sp, #0x10] cmp r2, r1 ble _0205AC6A mov r7, #0x2 b _0205AC70 _0205AC6A: cmp r2, r1 bge _0205AC70 mov r7, #0x3 _0205AC70: ldr r1, [sp, #0x4] cmp r1, r0 ble _0205AC7A mov r6, #0x0 b _0205AC80 _0205AC7A: cmp r1, r0 bge _0205AC80 mov r6, #0x1 _0205AC80: mov r0, #0x0 sub r1, r0, #0x1 cmp r7, r1 bne _0205AC9E _0205AC88: ldr r1, [r5, #0x0] cmp r6, r1 bne _0205AC94 add sp, #0x14 add r0, r6, #0x0 pop {r4-r7, pc} _0205AC94: add r0, r0, #0x1 add r5, r5, #0x4 cmp r0, r4 blt _0205AC88 b _0205ACD6 _0205AC9E: cmp r6, r1 bne _0205ACB8 _0205ACA2: ldr r1, [r5, #0x0] cmp r7, r1 bne _0205ACAE add sp, #0x14 add r0, r7, #0x0 pop {r4-r7, pc} _0205ACAE: add r0, r0, #0x1 add r5, r5, #0x4 cmp r0, r4 blt _0205ACA2 b _0205ACD6 _0205ACB8: ldr r1, [r5, #0x0] cmp r7, r1 bne _0205ACC4 add sp, #0x14 add r0, r7, #0x0 pop {r4-r7, pc} _0205ACC4: cmp r6, r1 bne _0205ACCE add sp, #0x14 add r0, r6, #0x0 pop {r4-r7, pc} _0205ACCE: add r0, r0, #0x1 add r5, r5, #0x4 cmp r0, r4 blt _0205ACB8 _0205ACD6: mov r0, #0x0 mvn r0, r0 _0205ACDA: add sp, #0x14 pop {r4-r7, pc} .balign 4 thumb_func_start FUN_0205ACE0 FUN_0205ACE0: ; 0x0205ACE0 push {r3, lr} bl FUN_02058488 sub r0, r0, #0x7 cmp r0, #0x1 bhi _0205ACF0 mov r0, #0x1 pop {r3, pc} _0205ACF0: mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_0205ACF4 FUN_0205ACF4: ; 0x0205ACF4 push {r4, lr} add r4, r1, #0x0 bl FUN_02058488 cmp r0, #0x7 bne _0205AD06 mov r0, #0x0 strb r0, [r4, #0x1] pop {r4, pc} _0205AD06: mov r0, #0x1 strb r0, [r4, #0x1] pop {r4, pc} thumb_func_start FUN_0205AD0C FUN_0205AD0C: ; 0x0205AD0C push {r3-r7, lr} add r7, r0, #0x0 add r5, r1, #0x0 bl FUN_020584C4 mov r4, #0x0 add r6, r0, #0x0 add r1, r4, #0x0 ldr r0, _0205AD84 ; =0x020F6964 mov r2, #0x1 b _0205AD26 _0205AD22: add r1, r1, #0x4 add r4, r4, #0x1 _0205AD26: cmp r4, #0x4 bge _0205AD36 ldrsb r3, [r5, r2] lsl r3, r3, #0x4 add r3, r0, r3 ldr r3, [r1, r3] cmp r6, r3 bne _0205AD22 _0205AD36: cmp r4, #0x4 blt _0205AD3E bl ErrorHandling _0205AD3E: add r0, r4, #0x1 lsr r2, r0, #0x1f lsl r1, r0, #0x1e sub r1, r1, r2 mov r0, #0x1e ror r1, r0 strb r6, [r5, #0x0] mov r0, #0x1 add r1, r2, r1 ldrsb r0, [r5, r0] lsl r1, r1, #0x2 lsl r2, r0, #0x4 ldr r0, _0205AD84 ; =0x020F6964 add r0, r0, r2 ldr r4, [r1, r0] add r0, r7, #0x0 mov r1, #0x80 bl FUN_02058424 cmp r0, #0x0 beq _0205AD6C mov r0, #0x1 b _0205AD6E _0205AD6C: mov r0, #0x0 _0205AD6E: strb r0, [r5, #0x2] add r0, r7, #0x0 add r1, r4, #0x0 bl FUN_020584AC add r0, r7, #0x0 mov r1, #0x80 bl FUN_02058410 pop {r3-r7, pc} nop _0205AD84: .word 0x020F6964 thumb_func_start FUN_0205AD88 FUN_0205AD88: ; 0x0205AD88 push {r3, lr} ldrb r1, [r1, #0x2] cmp r1, #0x0 bne _0205AD96 mov r1, #0x80 bl FUN_02058418 _0205AD96: pop {r3, pc} thumb_func_start FUN_0205AD98 FUN_0205AD98: ; 0x0205AD98 push {r4, lr} mov r1, #0x1 add r4, r0, #0x0 bl FUN_0205842C cmp r0, #0x0 bne _0205ADAA mov r0, #0x0 pop {r4, pc} _0205ADAA: add r0, r4, #0x0 mov r1, #0x2 bl FUN_0205842C cmp r0, #0x1 bne _0205ADBA mov r0, #0x0 pop {r4, pc} _0205ADBA: add r0, r4, #0x0 mov r1, #0x10 bl FUN_0205842C cmp r0, #0x1 bne _0205ADD6 add r0, r4, #0x0 mov r1, #0x20 bl FUN_0205842C cmp r0, #0x0 bne _0205ADD6 mov r0, #0x0 pop {r4, pc} _0205ADD6: mov r0, #0x1 pop {r4, pc} .balign 4 thumb_func_start FUN_0205ADDC FUN_0205ADDC: ; 0x0205ADDC push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x69 blt _0205ADEA bl ErrorHandling _0205ADEA: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_020586E8 add r0, r5, #0x0 mov r1, #0x0 bl FUN_020586F8 add r0, r5, #0x0 mov r1, #0x10 bl FUN_02058410 add r0, r5, #0x0 mov r1, #0x20 bl FUN_02058418 pop {r3-r5, pc} thumb_func_start FUN_0205AE0C FUN_0205AE0C: ; 0x0205AE0C push {r4, lr} add r4, r0, #0x0 bl FUN_020586E8 add r0, r4, #0x0 mov r1, #0x0 bl FUN_020586F8 add r0, r4, #0x0 mov r1, #0x20 bl FUN_02058418 pop {r4, pc} .balign 4 thumb_func_start FUN_0205AE28 FUN_0205AE28: ; 0x0205AE28 push {r4, lr} mov r1, #0x10 add r4, r0, #0x0 bl FUN_0205842C cmp r0, #0x0 bne _0205AE3A mov r0, #0x1 pop {r4, pc} _0205AE3A: add r0, r4, #0x0 mov r1, #0x20 bl FUN_0205842C cmp r0, #0x0 beq _0205AE4A mov r0, #0x1 pop {r4, pc} _0205AE4A: mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_0205AE50 FUN_0205AE50: ; 0x0205AE50 push {r4, lr} mov r1, #0x10 add r4, r0, #0x0 bl FUN_0205842C cmp r0, #0x0 bne _0205AE62 mov r0, #0x1 pop {r4, pc} _0205AE62: add r0, r4, #0x0 mov r1, #0x20 bl FUN_0205842C cmp r0, #0x0 bne _0205AE72 mov r0, #0x0 pop {r4, pc} _0205AE72: add r0, r4, #0x0 mov r1, #0x30 bl FUN_02058418 mov r0, #0x1 pop {r4, pc} .balign 4 thumb_func_start FUN_0205AE80 FUN_0205AE80: ; 0x0205AE80 push {r4, lr} add r4, r0, #0x0 mov r1, #0x10 bl FUN_02058418 add r0, r4, #0x0 mov r1, #0x20 bl FUN_02058410 add r0, r4, #0x0 mov r1, #0xff bl FUN_020586E8 add r0, r4, #0x0 mov r1, #0x0 bl FUN_020586F8 pop {r4, pc} thumb_func_start FUN_0205AEA4 FUN_0205AEA4: ; 0x0205AEA4 push {r3-r7, lr} add r5, r0, #0x0 add r6, r1, #0x0 mov r0, #0x4 mov r1, #0x14 bl FUN_020169D8 add r4, r0, #0x0 bne _0205AEBA bl ErrorHandling _0205AEBA: add r2, r4, #0x0 mov r1, #0x14 mov r0, #0x0 _0205AEC0: strb r0, [r2, #0x0] add r2, r2, #0x1 sub r1, r1, #0x1 bne _0205AEC0 add r0, r5, #0x0 bl FUN_02058578 bl FUN_0205839C sub r2, r0, #0x1 ldr r0, _0205AEEC ; =FUN_0205AF2C add r1, r4, #0x0 bl FUN_0200CA44 add r7, r0, #0x0 bne _0205AEE4 bl ErrorHandling _0205AEE4: str r5, [r4, #0xc] str r6, [r4, #0x10] add r0, r7, #0x0 pop {r3-r7, pc} .balign 4 _0205AEEC: .word FUN_0205AF2C thumb_func_start FUN_0205AEF0 FUN_0205AEF0: ; 0x0205AEF0 push {r3, lr} bl FUN_0201B6C8 ldr r0, [r0, #0x4] pop {r3, pc} .balign 4 thumb_func_start FUN_0205AEFC FUN_0205AEFC: ; 0x0205AEFC push {r3-r5, lr} add r5, r0, #0x0 bl FUN_0201B6C8 add r4, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_0205AE28 cmp r0, #0x1 beq _0205AF14 bl ErrorHandling _0205AF14: ldr r0, [r4, #0xc] bl FUN_0205AE50 mov r0, #0x4 add r1, r4, #0x0 bl FUN_02016A8C add r0, r5, #0x0 bl FUN_0200CAB4 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0205AF2C FUN_0205AF2C: ; 0x0205AF2C push {r3-r5, lr} ldr r4, _0205AF44 ; =0x020F6C54 add r5, r1, #0x0 _0205AF32: ldr r1, [r5, #0x0] add r0, r5, #0x0 lsl r1, r1, #0x2 ldr r1, [r4, r1] blx r1 cmp r0, #0x1 beq _0205AF32 pop {r3-r5, pc} nop _0205AF44: .word 0x020F6C54 thumb_func_start FUN_0205AF48 FUN_0205AF48: ; 0x0205AF48 mov r1, #0x0 str r1, [r0, #0x8] mov r1, #0x1 str r1, [r0, #0x0] add r0, r1, #0x0 bx lr thumb_func_start FUN_0205AF54 FUN_0205AF54: ; 0x0205AF54 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_0205AD98 cmp r0, #0x0 bne _0205AF66 mov r0, #0x0 pop {r4, pc} _0205AF66: mov r0, #0x2 str r0, [r4, #0x0] mov r0, #0x1 pop {r4, pc} .balign 4 thumb_func_start FUN_0205AF70 FUN_0205AF70: ; 0x0205AF70 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x10] ldr r0, [r4, #0xc] ldrh r1, [r1, #0x0] bl FUN_0205ADDC mov r0, #0x3 str r0, [r4, #0x0] mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_0205AF88 FUN_0205AF88: ; 0x0205AF88 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_0205AE28 cmp r0, #0x0 bne _0205AF9A mov r0, #0x0 pop {r4, pc} _0205AF9A: mov r0, #0x4 str r0, [r4, #0x0] mov r0, #0x1 pop {r4, pc} .balign 4 thumb_func_start FUN_0205AFA4 FUN_0205AFA4: ; 0x0205AFA4 ldr r1, [r0, #0x8] ldr r3, [r0, #0x10] add r2, r1, #0x1 str r2, [r0, #0x8] ldrh r1, [r3, #0x2] cmp r2, r1 bge _0205AFBA mov r1, #0x1 str r1, [r0, #0x0] add r0, r1, #0x0 bx lr _0205AFBA: add r1, r3, #0x4 str r1, [r0, #0x10] ldrh r1, [r3, #0x4] cmp r1, #0xfe beq _0205AFCC mov r1, #0x0 str r1, [r0, #0x0] mov r0, #0x1 bx lr _0205AFCC: mov r1, #0x1 str r1, [r0, #0x4] mov r1, #0x5 str r1, [r0, #0x0] mov r0, #0x0 bx lr thumb_func_start FUN_0205AFD8 FUN_0205AFD8: ; 0x0205AFD8 mov r0, #0x0 bx lr thumb_func_start FUN_0205AFDC FUN_0205AFDC: ; 0x0205AFDC push {r3-r7, lr} add r7, r0, #0x0 add r4, r1, #0x0 cmp r7, #0x4 blt _0205AFEA bl ErrorHandling _0205AFEA: ldr r3, _0205B01C ; =0x020F6308 ldr r6, [r3, #0x0] cmp r6, #0x0 beq _0205B014 mov r1, #0x0 _0205AFF4: add r2, r1, #0x0 add r5, r6, #0x0 _0205AFF8: ldr r0, [r5, #0x0] cmp r4, r0 bne _0205B004 lsl r0, r7, #0x2 ldr r0, [r6, r0] pop {r3-r7, pc} _0205B004: add r2, r2, #0x1 add r5, r5, #0x4 cmp r2, #0x4 blt _0205AFF8 add r3, r3, #0x4 ldr r6, [r3, #0x0] cmp r6, #0x0 bne _0205AFF4 _0205B014: bl ErrorHandling add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 _0205B01C: .word 0x020F6308 thumb_func_start FUN_0205B020 FUN_0205B020: ; 0x0205B020 push {r4-r5} ldr r4, _0205B054 ; =0x020F6308 ldr r5, [r4, #0x0] cmp r5, #0x0 beq _0205B04A mov r2, #0x0 _0205B02C: add r3, r2, #0x0 _0205B02E: ldr r1, [r5, #0x0] cmp r0, r1 bne _0205B03A add r0, r3, #0x0 pop {r4-r5} bx lr _0205B03A: add r3, r3, #0x1 add r5, r5, #0x4 cmp r3, #0x4 blt _0205B02E add r4, r4, #0x4 ldr r5, [r4, #0x0] cmp r5, #0x0 bne _0205B02C _0205B04A: mov r0, #0x0 mvn r0, r0 pop {r4-r5} bx lr nop _0205B054: .word 0x020F6308 thumb_func_start FUN_0205B058 FUN_0205B058: ; 0x0205B058 push {r3-r5, lr} add r5, r0, #0x0 _0205B05C: add r0, r5, #0x0 bl FUN_020586F0 add r4, r0, #0x0 cmp r4, #0xff beq _0205B07C add r0, r5, #0x0 bl FUN_02058710 add r2, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0205B0B4 cmp r0, #0x0 bne _0205B05C _0205B07C: pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0205B080 FUN_0205B080: ; 0x0205B080 push {r4, lr} add r4, r0, #0x0 bl FUN_0205B058 add r0, r4, #0x0 mov r1, #0x20 bl FUN_0205842C cmp r0, #0x0 bne _0205B098 mov r0, #0x0 pop {r4, pc} _0205B098: add r0, r4, #0x0 mov r1, #0x20 bl FUN_02058418 add r0, r4, #0x0 mov r1, #0xff bl FUN_020586E8 add r0, r4, #0x0 mov r1, #0x0 bl FUN_020586F8 mov r0, #0x1 pop {r4, pc} thumb_func_start FUN_0205B0B4 FUN_0205B0B4: ; 0x0205B0B4 push {r3, lr} lsl r3, r1, #0x2 ldr r1, _0205B0C4 ; =0x020F6440 ldr r3, [r1, r3] lsl r1, r2, #0x2 ldr r1, [r3, r1] blx r1 pop {r3, pc} .balign 4 _0205B0C4: .word 0x020F6440 thumb_func_start FUN_0205B0C8 FUN_0205B0C8: ; 0x0205B0C8 push {r3, lr} mov r1, #0x20 bl FUN_02058410 mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_0205B0D4 FUN_0205B0D4: ; 0x0205B0D4 push {r4, lr} add r4, r0, #0x0 bl FUN_020584AC add r0, r4, #0x0 mov r1, #0x0 bl FUN_02058544 add r0, r4, #0x0 bl FUN_02059C60 add r0, r4, #0x0 bl FUN_02058700 pop {r4, pc} .balign 4 thumb_func_start FUN_0205B0F4 FUN_0205B0F4: ; 0x0205B0F4 push {r3, lr} mov r1, #0x0 bl FUN_0205B0D4 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205B100 FUN_0205B100: ; 0x0205B100 push {r3, lr} mov r1, #0x1 bl FUN_0205B0D4 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205B10C FUN_0205B10C: ; 0x0205B10C push {r3, lr} mov r1, #0x2 bl FUN_0205B0D4 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205B118 FUN_0205B118: ; 0x0205B118 push {r3, lr} mov r1, #0x3 bl FUN_0205B0D4 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205B124 FUN_0205B124: ; 0x0205B124 push {r3-r7, lr} add r4, r1, #0x0 mov r1, #0xc add r5, r0, #0x0 add r6, r2, #0x0 add r7, r3, #0x0 bl FUN_020585DC add r1, sp, #0x8 ldrh r1, [r1, #0x10] strh r1, [r0, #0x0] strh r7, [r0, #0x2] str r4, [r0, #0x4] str r6, [r0, #0x8] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02059C0C add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_020584D8 add r1, sp, #0x8 ldrh r1, [r1, #0x10] add r0, r5, #0x0 bl FUN_02058544 add r0, r5, #0x0 mov r1, #0x4 bl FUN_02058410 add r0, r5, #0x0 bl FUN_02058700 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0205B16C FUN_0205B16C: ; 0x0205B16C push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02058600 add r4, r0, #0x0 ldr r1, [r4, #0x4] ldr r2, [r4, #0x8] add r0, r5, #0x0 bl FUN_02059CC8 add r0, r5, #0x0 bl FUN_02059D1C mov r0, #0x2 ldrsh r1, [r4, r0] sub r1, r1, #0x1 strh r1, [r4, #0x2] ldrsh r0, [r4, r0] cmp r0, #0x0 ble _0205B198 mov r0, #0x0 pop {r3-r5, pc} _0205B198: add r0, r5, #0x0 mov r1, #0x28 bl FUN_02058410 add r0, r5, #0x0 bl FUN_02059C60 add r0, r5, #0x0 bl FUN_020586A0 add r0, r5, #0x0 mov r1, #0x0 bl FUN_02058544 add r0, r5, #0x0 bl FUN_02058700 mov r0, #0x1 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0205B1C0 FUN_0205B1C0: ; 0x0205B1C0 push {r3, lr} mov r2, #0x1 str r2, [sp, #0x0] mov r1, #0x0 lsl r2, r2, #0xb mov r3, #0x20 bl FUN_0205B124 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205B1D4 FUN_0205B1D4: ; 0x0205B1D4 push {r3, lr} mov r1, #0x1 lsl r2, r1, #0xb mov r3, #0x20 str r1, [sp, #0x0] bl FUN_0205B124 mov r0, #0x1 pop {r3, pc} .balign 4 thumb_func_start FUN_0205B1E8 FUN_0205B1E8: ; 0x0205B1E8 push {r3, lr} mov r1, #0x1 str r1, [sp, #0x0] mov r1, #0x2 lsl r2, r1, #0xa mov r3, #0x20 bl FUN_0205B124 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205B1FC FUN_0205B1FC: ; 0x0205B1FC push {r3, lr} mov r2, #0x1 str r2, [sp, #0x0] mov r1, #0x3 lsl r2, r2, #0xb mov r3, #0x20 bl FUN_0205B124 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205B210 FUN_0205B210: ; 0x0205B210 push {r3, lr} mov r2, #0x2 str r2, [sp, #0x0] mov r1, #0x0 lsl r2, r2, #0xb mov r3, #0x10 bl FUN_0205B124 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205B224 FUN_0205B224: ; 0x0205B224 push {r3, lr} mov r1, #0x2 str r1, [sp, #0x0] mov r1, #0x1 lsl r2, r1, #0xc mov r3, #0x10 bl FUN_0205B124 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205B238 FUN_0205B238: ; 0x0205B238 push {r3, lr} mov r1, #0x2 lsl r2, r1, #0xb mov r3, #0x10 str r1, [sp, #0x0] bl FUN_0205B124 mov r0, #0x1 pop {r3, pc} .balign 4 thumb_func_start FUN_0205B24C FUN_0205B24C: ; 0x0205B24C push {r3, lr} mov r2, #0x2 str r2, [sp, #0x0] mov r1, #0x3 lsl r2, r2, #0xb mov r3, #0x10 bl FUN_0205B124 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205B260 FUN_0205B260: ; 0x0205B260 push {r3, lr} mov r1, #0x3 mov r2, #0x2 str r1, [sp, #0x0] mov r1, #0x0 lsl r2, r2, #0xc mov r3, #0x8 bl FUN_0205B124 mov r0, #0x1 pop {r3, pc} .balign 4 thumb_func_start FUN_0205B278 FUN_0205B278: ; 0x0205B278 push {r3, lr} mov r1, #0x3 str r1, [sp, #0x0] mov r1, #0x1 lsl r2, r1, #0xd mov r3, #0x8 bl FUN_0205B124 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205B28C FUN_0205B28C: ; 0x0205B28C push {r3, lr} mov r1, #0x3 str r1, [sp, #0x0] mov r1, #0x2 lsl r2, r1, #0xc mov r3, #0x8 bl FUN_0205B124 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205B2A0 FUN_0205B2A0: ; 0x0205B2A0 push {r3, lr} mov r2, #0x2 mov r1, #0x3 lsl r2, r2, #0xc mov r3, #0x8 str r1, [sp, #0x0] bl FUN_0205B124 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205B2B4 FUN_0205B2B4: ; 0x0205B2B4 push {r3, lr} mov r3, #0x4 mov r1, #0x0 lsl r2, r3, #0xc str r3, [sp, #0x0] bl FUN_0205B124 mov r0, #0x1 pop {r3, pc} .balign 4 thumb_func_start FUN_0205B2C8 FUN_0205B2C8: ; 0x0205B2C8 push {r3, lr} mov r1, #0x1 mov r3, #0x4 lsl r2, r1, #0xe str r3, [sp, #0x0] bl FUN_0205B124 mov r0, #0x1 pop {r3, pc} .balign 4 thumb_func_start FUN_0205B2DC FUN_0205B2DC: ; 0x0205B2DC push {r3, lr} mov r1, #0x2 mov r3, #0x4 lsl r2, r1, #0xd str r3, [sp, #0x0] bl FUN_0205B124 mov r0, #0x1 pop {r3, pc} .balign 4 thumb_func_start FUN_0205B2F0 FUN_0205B2F0: ; 0x0205B2F0 push {r3, lr} mov r3, #0x4 mov r1, #0x3 lsl r2, r3, #0xc str r3, [sp, #0x0] bl FUN_0205B124 mov r0, #0x1 pop {r3, pc} .balign 4 thumb_func_start FUN_0205B304 FUN_0205B304: ; 0x0205B304 push {r3, lr} mov r1, #0x5 mov r2, #0x2 str r1, [sp, #0x0] mov r1, #0x0 lsl r2, r2, #0xe mov r3, #0x2 bl FUN_0205B124 mov r0, #0x1 pop {r3, pc} .balign 4 thumb_func_start FUN_0205B31C FUN_0205B31C: ; 0x0205B31C push {r3, lr} mov r1, #0x5 str r1, [sp, #0x0] mov r1, #0x1 lsl r2, r1, #0xf mov r3, #0x2 bl FUN_0205B124 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205B330 FUN_0205B330: ; 0x0205B330 push {r3, lr} mov r1, #0x5 str r1, [sp, #0x0] mov r1, #0x2 lsl r2, r1, #0xe add r3, r1, #0x0 bl FUN_0205B124 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205B344 FUN_0205B344: ; 0x0205B344 push {r3, lr} mov r1, #0x5 mov r2, #0x2 str r1, [sp, #0x0] mov r1, #0x3 lsl r2, r2, #0xe mov r3, #0x2 bl FUN_0205B124 mov r0, #0x1 pop {r3, pc} .balign 4 thumb_func_start FUN_0205B35C FUN_0205B35C: ; 0x0205B35C push {r3, lr} mov r2, #0x1 mov r1, #0x0 lsl r2, r2, #0x10 mov r3, #0x1 str r1, [sp, #0x0] bl FUN_0205B124 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205B370 FUN_0205B370: ; 0x0205B370 push {r3, lr} mov r1, #0x0 str r1, [sp, #0x0] mov r1, #0x1 lsl r2, r1, #0x10 add r3, r1, #0x0 bl FUN_0205B124 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205B384 FUN_0205B384: ; 0x0205B384 push {r3, lr} mov r1, #0x0 str r1, [sp, #0x0] mov r1, #0x2 lsl r2, r1, #0xf mov r3, #0x1 bl FUN_0205B124 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205B398 FUN_0205B398: ; 0x0205B398 push {r3, lr} mov r1, #0x0 mov r2, #0x1 str r1, [sp, #0x0] mov r1, #0x3 lsl r2, r2, #0x10 mov r3, #0x1 bl FUN_0205B124 mov r0, #0x1 pop {r3, pc} .balign 4 thumb_func_start FUN_0205B3B0 FUN_0205B3B0: ; 0x0205B3B0 push {r3, lr} mov r1, #0x9 mov r2, #0x1 str r1, [sp, #0x0] mov r1, #0x0 lsl r2, r2, #0xe mov r3, #0x4 bl FUN_0205B124 mov r0, #0x1 pop {r3, pc} .balign 4 thumb_func_start FUN_0205B3C8 FUN_0205B3C8: ; 0x0205B3C8 push {r3, lr} mov r1, #0x9 str r1, [sp, #0x0] mov r1, #0x1 lsl r2, r1, #0xe mov r3, #0x4 bl FUN_0205B124 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205B3DC FUN_0205B3DC: ; 0x0205B3DC push {r3, lr} mov r1, #0x9 str r1, [sp, #0x0] mov r1, #0x2 lsl r2, r1, #0xd mov r3, #0x4 bl FUN_0205B124 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205B3F0 FUN_0205B3F0: ; 0x0205B3F0 push {r3, lr} mov r1, #0x9 mov r2, #0x1 str r1, [sp, #0x0] mov r1, #0x3 lsl r2, r2, #0xe mov r3, #0x4 bl FUN_0205B124 mov r0, #0x1 pop {r3, pc} .balign 4 thumb_func_start FUN_0205B408 FUN_0205B408: ; 0x0205B408 push {r3-r7, lr} add r7, r1, #0x0 add r6, r2, #0x0 add r4, r3, #0x0 mov r1, #0xc add r5, r0, #0x0 bl FUN_020585DC strh r4, [r0, #0x0] add r1, r6, #0x1 strh r1, [r0, #0x2] add r0, r5, #0x0 add r1, r7, #0x0 bl FUN_020584AC add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02058544 add r0, r5, #0x0 bl FUN_02059C60 add r0, r5, #0x0 bl FUN_02058700 pop {r3-r7, pc} thumb_func_start FUN_0205B43C FUN_0205B43C: ; 0x0205B43C push {r4, lr} add r4, r0, #0x0 bl FUN_02058600 mov r1, #0x2 ldrsh r2, [r0, r1] sub r2, r2, #0x1 strh r2, [r0, #0x2] ldrsh r0, [r0, r1] cmp r0, #0x0 ble _0205B456 mov r0, #0x0 pop {r4, pc} _0205B456: add r0, r4, #0x0 mov r1, #0x20 bl FUN_02058410 add r0, r4, #0x0 mov r1, #0x0 bl FUN_02058544 add r0, r4, #0x0 bl FUN_02058700 mov r0, #0x1 pop {r4, pc} thumb_func_start FUN_0205B470 FUN_0205B470: ; 0x0205B470 push {r3, lr} mov r1, #0x0 mov r2, #0x20 mov r3, #0x1 bl FUN_0205B408 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205B480 FUN_0205B480: ; 0x0205B480 push {r3, lr} mov r1, #0x1 mov r2, #0x20 add r3, r1, #0x0 bl FUN_0205B408 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205B490 FUN_0205B490: ; 0x0205B490 push {r3, lr} mov r1, #0x2 mov r2, #0x20 mov r3, #0x1 bl FUN_0205B408 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205B4A0 FUN_0205B4A0: ; 0x0205B4A0 push {r3, lr} mov r1, #0x3 mov r2, #0x20 mov r3, #0x1 bl FUN_0205B408 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205B4B0 FUN_0205B4B0: ; 0x0205B4B0 push {r3, lr} mov r1, #0x0 mov r2, #0x10 mov r3, #0x2 bl FUN_0205B408 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205B4C0 FUN_0205B4C0: ; 0x0205B4C0 push {r3, lr} mov r1, #0x1 mov r2, #0x10 mov r3, #0x2 bl FUN_0205B408 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205B4D0 FUN_0205B4D0: ; 0x0205B4D0 push {r3, lr} mov r1, #0x2 mov r2, #0x10 add r3, r1, #0x0 bl FUN_0205B408 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205B4E0 FUN_0205B4E0: ; 0x0205B4E0 push {r3, lr} mov r1, #0x3 mov r2, #0x10 mov r3, #0x2 bl FUN_0205B408 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205B4F0 FUN_0205B4F0: ; 0x0205B4F0 push {r3, lr} mov r1, #0x0 mov r2, #0x8 mov r3, #0x3 bl FUN_0205B408 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205B500 FUN_0205B500: ; 0x0205B500 push {r3, lr} mov r1, #0x1 mov r2, #0x8 mov r3, #0x3 bl FUN_0205B408 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205B510 FUN_0205B510: ; 0x0205B510 push {r3, lr} mov r1, #0x2 mov r2, #0x8 mov r3, #0x3 bl FUN_0205B408 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205B520 FUN_0205B520: ; 0x0205B520 push {r3, lr} mov r1, #0x3 mov r2, #0x8 add r3, r1, #0x0 bl FUN_0205B408 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205B530 FUN_0205B530: ; 0x0205B530 push {r3, lr} mov r2, #0x4 mov r1, #0x0 add r3, r2, #0x0 bl FUN_0205B408 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205B540 FUN_0205B540: ; 0x0205B540 push {r3, lr} mov r2, #0x4 mov r1, #0x1 add r3, r2, #0x0 bl FUN_0205B408 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205B550 FUN_0205B550: ; 0x0205B550 push {r3, lr} mov r2, #0x4 mov r1, #0x2 add r3, r2, #0x0 bl FUN_0205B408 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205B560 FUN_0205B560: ; 0x0205B560 push {r3, lr} mov r2, #0x4 mov r1, #0x3 add r3, r2, #0x0 bl FUN_0205B408 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205B570 FUN_0205B570: ; 0x0205B570 push {r3, lr} mov r1, #0x0 mov r2, #0x2 mov r3, #0x5 bl FUN_0205B408 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205B580 FUN_0205B580: ; 0x0205B580 push {r3, lr} mov r1, #0x1 mov r2, #0x2 mov r3, #0x5 bl FUN_0205B408 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205B590 FUN_0205B590: ; 0x0205B590 push {r3, lr} mov r1, #0x2 add r2, r1, #0x0 mov r3, #0x5 bl FUN_0205B408 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205B5A0 FUN_0205B5A0: ; 0x0205B5A0 push {r3, lr} mov r1, #0x3 mov r2, #0x2 mov r3, #0x5 bl FUN_0205B408 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205B5B0 FUN_0205B5B0: ; 0x0205B5B0 push {r3-r7, lr} add r4, r1, #0x0 mov r1, #0x10 add r5, r0, #0x0 add r6, r2, #0x0 add r7, r3, #0x0 bl FUN_020585DC strb r4, [r0, #0xc] str r6, [r0, #0x0] strb r7, [r0, #0xd] add r2, sp, #0x8 ldrh r1, [r2, #0x10] strb r1, [r0, #0xe] mov r1, #0x14 ldrsh r1, [r2, r1] cmp r6, #0x0 strb r1, [r0, #0xf] ldrh r1, [r2, #0x18] strh r1, [r0, #0x8] bne _0205B5E2 add r0, r5, #0x0 bl FUN_02059C60 b _0205B5EA _0205B5E2: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02059C0C _0205B5EA: ldr r1, _0205B614 ; =0x00010004 add r0, r5, #0x0 bl FUN_02058410 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_020584D8 add r1, sp, #0x8 ldrh r1, [r1, #0x10] add r0, r5, #0x0 bl FUN_02058544 add r0, r5, #0x0 bl FUN_02058700 ldr r0, _0205B618 ; =0x0000060B bl FUN_020054C8 pop {r3-r7, pc} nop _0205B614: .word 0x00010004 _0205B618: .word 0x0000060B thumb_func_start FUN_0205B61C FUN_0205B61C: ; 0x0205B61C push {r3-r5, lr} sub sp, #0x18 add r5, r0, #0x0 bl FUN_02058600 add r4, r0, #0x0 ldr r2, [r4, #0x0] cmp r2, #0x0 beq _0205B66C mov r1, #0xc ldrsb r1, [r4, r1] add r0, r5, #0x0 bl FUN_02059CC8 add r0, r5, #0x0 bl FUN_02059D1C mov r0, #0x1 ldr r1, [r4, #0x4] lsl r0, r0, #0x10 cmp r1, r0 blt _0205B65E mov r0, #0x0 str r0, [r4, #0x4] mov r1, #0xc ldrsb r1, [r4, r1] add r0, r5, #0x0 bl FUN_02059C0C add r0, r5, #0x0 mov r1, #0x4 bl FUN_02058410 _0205B65E: ldr r1, [r4, #0x0] cmp r1, #0x0 bge _0205B666 neg r1, r1 _0205B666: ldr r0, [r4, #0x4] add r0, r0, r1 str r0, [r4, #0x4] _0205B66C: ldrh r1, [r4, #0xa] ldrh r0, [r4, #0x8] add r0, r1, r0 strh r0, [r4, #0xa] mov r0, #0xf ldrh r1, [r4, #0xa] lsl r0, r0, #0x8 cmp r1, r0 bls _0205B680 strh r0, [r4, #0xa] _0205B680: mov r1, #0xf ldrsb r1, [r4, r1] ldrh r0, [r4, #0xa] lsl r2, r1, #0x2 ldr r1, _0205B6F8 ; =0x02105F9C lsr r0, r0, #0x8 lsl r0, r0, #0x10 ldr r2, [r1, r2] mov r1, #0x0 str r1, [sp, #0xc] lsr r0, r0, #0xe ldr r0, [r2, r0] str r0, [sp, #0x10] str r1, [sp, #0x14] add r0, r5, #0x0 add r1, sp, #0xc bl FUN_02058B94 mov r0, #0xd ldrsb r1, [r4, r0] sub r1, r1, #0x1 strb r1, [r4, #0xd] ldrsb r0, [r4, r0] cmp r0, #0x0 ble _0205B6B8 add sp, #0x18 mov r0, #0x0 pop {r3-r5, pc} _0205B6B8: add r1, sp, #0x0 mov r0, #0x0 str r0, [r1, #0x0] str r0, [r1, #0x4] str r0, [r1, #0x8] add r0, r5, #0x0 bl FUN_02058B94 ldr r1, _0205B6FC ; =0x00020028 add r0, r5, #0x0 bl FUN_02058410 add r0, r5, #0x0 bl FUN_02059C60 add r0, r5, #0x0 bl FUN_020586A0 add r0, r5, #0x0 mov r1, #0x0 bl FUN_02058544 add r0, r5, #0x0 bl FUN_02058700 ldr r0, _0205B700 ; =0x00000647 bl FUN_020054C8 mov r0, #0x1 add sp, #0x18 pop {r3-r5, pc} nop _0205B6F8: .word 0x02105F9C _0205B6FC: .word 0x00020028 _0205B700: .word 0x00000647 thumb_func_start FUN_0205B704 FUN_0205B704: ; 0x0205B704 push {lr} sub sp, #0xc mov r2, #0x2 str r2, [sp, #0x0] mov r1, #0x0 str r1, [sp, #0x4] add r2, #0xfe str r2, [sp, #0x8] add r2, r1, #0x0 mov r3, #0x10 bl FUN_0205B5B0 mov r0, #0x1 add sp, #0xc pop {pc} .balign 4 thumb_func_start FUN_0205B724 FUN_0205B724: ; 0x0205B724 push {lr} sub sp, #0xc mov r1, #0x2 str r1, [sp, #0x0] mov r2, #0x0 str r2, [sp, #0x4] add r1, #0xfe str r1, [sp, #0x8] mov r1, #0x1 mov r3, #0x10 bl FUN_0205B5B0 mov r0, #0x1 add sp, #0xc pop {pc} .balign 4 thumb_func_start FUN_0205B744 FUN_0205B744: ; 0x0205B744 push {lr} sub sp, #0xc mov r1, #0x2 add r3, r1, #0x0 str r1, [sp, #0x0] mov r2, #0x0 str r2, [sp, #0x4] add r3, #0xfe str r3, [sp, #0x8] mov r3, #0x10 bl FUN_0205B5B0 mov r0, #0x1 add sp, #0xc pop {pc} .balign 4 thumb_func_start FUN_0205B764 FUN_0205B764: ; 0x0205B764 push {lr} sub sp, #0xc mov r1, #0x2 str r1, [sp, #0x0] mov r2, #0x0 str r2, [sp, #0x4] add r1, #0xfe str r1, [sp, #0x8] mov r1, #0x3 mov r3, #0x10 bl FUN_0205B5B0 mov r0, #0x1 add sp, #0xc pop {pc} .balign 4 thumb_func_start FUN_0205B784 FUN_0205B784: ; 0x0205B784 push {lr} sub sp, #0xc mov r1, #0x3 str r1, [sp, #0x0] mov r1, #0x0 mov r2, #0x2 str r1, [sp, #0x4] lsl r2, r2, #0x8 str r2, [sp, #0x8] add r2, r1, #0x0 mov r3, #0x8 bl FUN_0205B5B0 mov r0, #0x1 add sp, #0xc pop {pc} thumb_func_start FUN_0205B7A4 FUN_0205B7A4: ; 0x0205B7A4 push {lr} sub sp, #0xc mov r1, #0x3 str r1, [sp, #0x0] mov r2, #0x0 mov r1, #0x2 str r2, [sp, #0x4] lsl r1, r1, #0x8 str r1, [sp, #0x8] mov r1, #0x1 mov r3, #0x8 bl FUN_0205B5B0 mov r0, #0x1 add sp, #0xc pop {pc} thumb_func_start FUN_0205B7C4 FUN_0205B7C4: ; 0x0205B7C4 push {lr} sub sp, #0xc mov r1, #0x3 str r1, [sp, #0x0] mov r2, #0x0 mov r1, #0x2 str r2, [sp, #0x4] lsl r1, r1, #0x8 str r1, [sp, #0x8] mov r1, #0x2 mov r3, #0x8 bl FUN_0205B5B0 mov r0, #0x1 add sp, #0xc pop {pc} thumb_func_start FUN_0205B7E4 FUN_0205B7E4: ; 0x0205B7E4 push {lr} sub sp, #0xc mov r1, #0x3 mov r3, #0x2 str r1, [sp, #0x0] mov r2, #0x0 str r2, [sp, #0x4] lsl r3, r3, #0x8 str r3, [sp, #0x8] mov r3, #0x8 bl FUN_0205B5B0 mov r0, #0x1 add sp, #0xc pop {pc} .balign 4 thumb_func_start FUN_0205B804 FUN_0205B804: ; 0x0205B804 push {lr} sub sp, #0xc mov r1, #0x3 str r1, [sp, #0x0] mov r1, #0x0 mov r2, #0x2 str r1, [sp, #0x4] lsl r2, r2, #0x8 str r2, [sp, #0x8] lsl r2, r2, #0x4 mov r3, #0x8 bl FUN_0205B5B0 mov r0, #0x1 add sp, #0xc pop {pc} thumb_func_start FUN_0205B824 FUN_0205B824: ; 0x0205B824 push {lr} sub sp, #0xc mov r1, #0x3 str r1, [sp, #0x0] mov r1, #0x0 str r1, [sp, #0x4] mov r1, #0x2 lsl r1, r1, #0x8 str r1, [sp, #0x8] mov r1, #0x1 lsl r2, r1, #0xd mov r3, #0x8 bl FUN_0205B5B0 mov r0, #0x1 add sp, #0xc pop {pc} .balign 4 thumb_func_start FUN_0205B848 FUN_0205B848: ; 0x0205B848 push {lr} sub sp, #0xc mov r1, #0x3 str r1, [sp, #0x0] mov r1, #0x0 str r1, [sp, #0x4] mov r1, #0x2 lsl r1, r1, #0x8 str r1, [sp, #0x8] mov r1, #0x2 lsl r2, r1, #0xc mov r3, #0x8 bl FUN_0205B5B0 mov r0, #0x1 add sp, #0xc pop {pc} .balign 4 thumb_func_start FUN_0205B86C FUN_0205B86C: ; 0x0205B86C push {lr} sub sp, #0xc mov r1, #0x3 str r1, [sp, #0x0] mov r2, #0x0 str r2, [sp, #0x4] mov r2, #0x2 lsl r2, r2, #0x8 str r2, [sp, #0x8] lsl r2, r2, #0x4 mov r3, #0x8 bl FUN_0205B5B0 mov r0, #0x1 add sp, #0xc pop {pc} thumb_func_start FUN_0205B88C FUN_0205B88C: ; 0x0205B88C push {lr} sub sp, #0xc mov r2, #0x3 str r2, [sp, #0x0] mov r1, #0x0 str r1, [sp, #0x4] add r2, #0xfd str r2, [sp, #0x8] mov r2, #0x2 lsl r2, r2, #0xc mov r3, #0x10 bl FUN_0205B5B0 mov r0, #0x1 add sp, #0xc pop {pc} thumb_func_start FUN_0205B8AC FUN_0205B8AC: ; 0x0205B8AC push {lr} sub sp, #0xc mov r2, #0x3 str r2, [sp, #0x0] mov r1, #0x0 str r1, [sp, #0x4] add r2, #0xfd mov r1, #0x1 str r2, [sp, #0x8] lsl r2, r1, #0xd mov r3, #0x10 bl FUN_0205B5B0 mov r0, #0x1 add sp, #0xc pop {pc} thumb_func_start FUN_0205B8CC FUN_0205B8CC: ; 0x0205B8CC push {lr} sub sp, #0xc mov r2, #0x3 str r2, [sp, #0x0] mov r1, #0x0 str r1, [sp, #0x4] add r2, #0xfd mov r1, #0x2 str r2, [sp, #0x8] lsl r2, r1, #0xc mov r3, #0x10 bl FUN_0205B5B0 mov r0, #0x1 add sp, #0xc pop {pc} thumb_func_start FUN_0205B8EC FUN_0205B8EC: ; 0x0205B8EC push {lr} sub sp, #0xc mov r1, #0x3 str r1, [sp, #0x0] mov r2, #0x0 str r2, [sp, #0x4] add r2, r1, #0x0 add r2, #0xfd str r2, [sp, #0x8] mov r2, #0x2 lsl r2, r2, #0xc mov r3, #0x10 bl FUN_0205B5B0 mov r0, #0x1 add sp, #0xc pop {pc} .balign 4 thumb_func_start FUN_0205B910 FUN_0205B910: ; 0x0205B910 push {lr} sub sp, #0xc mov r1, #0xa str r1, [sp, #0x0] mov r1, #0x0 str r1, [sp, #0x4] mov r1, #0xf0 str r1, [sp, #0x8] mov r1, #0x2 lsl r2, r1, #0xb mov r3, #0x10 bl FUN_0205B5B0 mov r0, #0x1 add sp, #0xc pop {pc} thumb_func_start FUN_0205B930 FUN_0205B930: ; 0x0205B930 push {lr} sub sp, #0xc mov r1, #0xa str r1, [sp, #0x0] mov r1, #0x0 str r1, [sp, #0x4] mov r1, #0xf0 mov r2, #0x1 str r1, [sp, #0x8] mov r1, #0x3 lsl r2, r2, #0xc mov r3, #0x10 bl FUN_0205B5B0 mov r0, #0x1 add sp, #0xc pop {pc} .balign 4 thumb_func_start FUN_0205B954 FUN_0205B954: ; 0x0205B954 push {lr} sub sp, #0xc mov r1, #0xb str r1, [sp, #0x0] mov r1, #0x0 str r1, [sp, #0x4] mov r1, #0x5 lsl r1, r1, #0x6 str r1, [sp, #0x8] mov r1, #0x2 lsl r2, r1, #0xd mov r3, #0xc bl FUN_0205B5B0 mov r0, #0x1 add sp, #0xc pop {pc} .balign 4 thumb_func_start FUN_0205B978 FUN_0205B978: ; 0x0205B978 push {lr} sub sp, #0xc mov r1, #0xb str r1, [sp, #0x0] mov r1, #0x0 str r1, [sp, #0x4] mov r1, #0x5 lsl r1, r1, #0x6 mov r2, #0x1 str r1, [sp, #0x8] mov r1, #0x3 lsl r2, r2, #0xe mov r3, #0xc bl FUN_0205B5B0 mov r0, #0x1 add sp, #0xc pop {pc} thumb_func_start FUN_0205B99C FUN_0205B99C: ; 0x0205B99C push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 mov r1, #0x4 bl FUN_020585DC str r4, [r0, #0x0] add r0, r5, #0x0 bl FUN_02058700 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0205B9B4 FUN_0205B9B4: ; 0x0205B9B4 push {r4, lr} add r4, r0, #0x0 bl FUN_02058600 ldr r1, [r0, #0x0] cmp r1, #0x0 beq _0205B9CA sub r1, r1, #0x1 str r1, [r0, #0x0] mov r0, #0x0 pop {r4, pc} _0205B9CA: add r0, r4, #0x0 bl FUN_02058700 mov r0, #0x1 pop {r4, pc} thumb_func_start FUN_0205B9D4 FUN_0205B9D4: ; 0x0205B9D4 push {r3, lr} mov r1, #0x1 bl FUN_0205B99C mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205B9E0 FUN_0205B9E0: ; 0x0205B9E0 push {r3, lr} mov r1, #0x2 bl FUN_0205B99C mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205B9EC FUN_0205B9EC: ; 0x0205B9EC push {r3, lr} mov r1, #0x4 bl FUN_0205B99C mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205B9F8 FUN_0205B9F8: ; 0x0205B9F8 push {r3, lr} mov r1, #0x8 bl FUN_0205B99C mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205BA04 FUN_0205BA04: ; 0x0205BA04 push {r3, lr} mov r1, #0xf bl FUN_0205B99C mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205BA10 FUN_0205BA10: ; 0x0205BA10 push {r3, lr} mov r1, #0x10 bl FUN_0205B99C mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205BA1C FUN_0205BA1C: ; 0x0205BA1C push {r3, lr} mov r1, #0x20 bl FUN_0205B99C mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205BA28 FUN_0205BA28: ; 0x0205BA28 push {r4, lr} mov r1, #0x8 add r4, r0, #0x0 bl FUN_020585DC mov r1, #0x1 lsl r1, r1, #0x10 str r1, [r0, #0x4] add r0, r4, #0x0 mov r1, #0x0 bl FUN_02058544 add r0, r4, #0x0 bl FUN_02058700 mov r0, #0x1 pop {r4, pc} .balign 4 thumb_func_start FUN_0205BA4C FUN_0205BA4C: ; 0x0205BA4C push {r4-r5, lr} sub sp, #0xc add r5, r0, #0x0 bl FUN_02058600 add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, [r4, #0x4] add r0, r1, r0 str r0, [r4, #0x0] add r1, sp, #0x0 mov r0, #0x0 str r0, [r1, #0x0] str r0, [r1, #0x4] str r0, [r1, #0x8] ldr r0, [r4, #0x0] str r0, [sp, #0x4] add r0, r5, #0x0 bl FUN_02058B94 ldr r1, [r4, #0x0] asr r0, r1, #0xe lsr r0, r0, #0x11 add r0, r1, r0 asr r0, r0, #0xf cmp r0, #0x28 bge _0205BA88 add sp, #0xc mov r0, #0x0 pop {r4-r5, pc} _0205BA88: add r0, r5, #0x0 bl FUN_02058700 mov r0, #0x1 add sp, #0xc pop {r4-r5, pc} thumb_func_start FUN_0205BA94 FUN_0205BA94: ; 0x0205BA94 push {r4, lr} mov r1, #0x8 add r4, r0, #0x0 bl FUN_020585DC mov r1, #0x5 lsl r1, r1, #0x12 str r1, [r0, #0x0] ldr r1, _0205BABC ; =0xFFFF0000 str r1, [r0, #0x4] add r0, r4, #0x0 mov r1, #0x0 bl FUN_02058544 add r0, r4, #0x0 bl FUN_02058700 mov r0, #0x1 pop {r4, pc} nop _0205BABC: .word 0xFFFF0000 thumb_func_start FUN_0205BAC0 FUN_0205BAC0: ; 0x0205BAC0 push {r4-r5, lr} sub sp, #0xc add r5, r0, #0x0 bl FUN_02058600 add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, [r4, #0x4] add r0, r1, r0 str r0, [r4, #0x0] bpl _0205BADA mov r0, #0x0 str r0, [r4, #0x0] _0205BADA: add r1, sp, #0x0 mov r0, #0x0 str r0, [r1, #0x0] str r0, [r1, #0x4] str r0, [r1, #0x8] ldr r0, [r4, #0x0] str r0, [sp, #0x4] add r0, r5, #0x0 bl FUN_02058B94 ldr r0, [r4, #0x0] cmp r0, #0x0 ble _0205BAFA add sp, #0xc mov r0, #0x0 pop {r4-r5, pc} _0205BAFA: add r0, r5, #0x0 bl FUN_02058700 mov r0, #0x1 add sp, #0xc pop {r4-r5, pc} .balign 4 thumb_func_start FUN_0205BB08 FUN_0205BB08: ; 0x0205BB08 push {r4, lr} mov r1, #0x2 add r4, r0, #0x0 lsl r1, r1, #0x8 bl FUN_02058410 add r0, r4, #0x0 bl FUN_02058700 mov r0, #0x1 pop {r4, pc} .balign 4 thumb_func_start FUN_0205BB20 FUN_0205BB20: ; 0x0205BB20 push {r4, lr} mov r1, #0x2 add r4, r0, #0x0 lsl r1, r1, #0x8 bl FUN_02058418 add r0, r4, #0x0 bl FUN_02058700 mov r0, #0x1 pop {r4, pc} .balign 4 thumb_func_start FUN_0205BB38 FUN_0205BB38: ; 0x0205BB38 push {r4, lr} add r4, r0, #0x0 mov r1, #0x80 bl FUN_02058410 add r0, r4, #0x0 bl FUN_02058700 mov r0, #0x1 pop {r4, pc} thumb_func_start FUN_0205BB4C FUN_0205BB4C: ; 0x0205BB4C push {r4, lr} add r4, r0, #0x0 mov r1, #0x80 bl FUN_02058418 add r0, r4, #0x0 bl FUN_02058700 mov r0, #0x1 pop {r4, pc} thumb_func_start FUN_0205BB60 FUN_0205BB60: ; 0x0205BB60 push {r4, lr} mov r1, #0x1 add r4, r0, #0x0 lsl r1, r1, #0x8 bl FUN_02058410 add r0, r4, #0x0 bl FUN_02058700 mov r0, #0x1 pop {r4, pc} .balign 4 thumb_func_start FUN_0205BB78 FUN_0205BB78: ; 0x0205BB78 push {r4, lr} mov r1, #0x1 add r4, r0, #0x0 lsl r1, r1, #0x8 bl FUN_02058418 add r0, r4, #0x0 bl FUN_02058700 mov r0, #0x1 pop {r4, pc} .balign 4 thumb_func_start FUN_0205BB90 FUN_0205BB90: ; 0x0205BB90 push {r4-r6, lr} add r6, r1, #0x0 mov r1, #0x8 add r5, r0, #0x0 bl FUN_020585DC add r4, r0, #0x0 str r6, [r4, #0x0] add r0, r5, #0x0 add r1, r6, #0x0 mov r2, #0x1 bl FUN_021E7AC0 str r0, [r4, #0x4] add r0, r5, #0x0 bl FUN_02058700 pop {r4-r6, pc} thumb_func_start FUN_0205BBB4 FUN_0205BBB4: ; 0x0205BBB4 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02058600 add r4, r0, #0x0 ldr r0, [r4, #0x4] bl FUN_021E799C cmp r0, #0x1 bne _0205BBD8 ldr r0, [r4, #0x4] bl FUN_02064520 add r0, r5, #0x0 bl FUN_02058700 mov r0, #0x1 pop {r3-r5, pc} _0205BBD8: mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0205BBDC FUN_0205BBDC: ; 0x0205BBDC push {r3, lr} mov r1, #0x0 bl FUN_0205BB90 mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_0205BBE8 FUN_0205BBE8: ; 0x0205BBE8 push {r3, lr} mov r1, #0x1 bl FUN_0205BB90 mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_0205BBF4 FUN_0205BBF4: ; 0x0205BBF4 push {r3-r7, lr} add r4, r1, #0x0 mov r1, #0x8 add r5, r0, #0x0 add r7, r2, #0x0 add r6, r3, #0x0 bl FUN_020585DC strh r4, [r0, #0x0] strh r6, [r0, #0x2] strh r7, [r0, #0x4] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02059C0C add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_020584D8 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02058544 add r0, r5, #0x0 mov r1, #0x4 bl FUN_02058410 add r0, r5, #0x0 bl FUN_02058700 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0205BC34 FUN_0205BC34: ; 0x0205BC34 push {r4-r6, lr} add r5, r0, #0x0 add r6, r1, #0x0 bl FUN_02058600 add r4, r0, #0x0 mov r2, #0x6 ldrsh r2, [r4, r2] mov r1, #0x0 ldrsh r1, [r4, r1] lsl r2, r2, #0x2 ldr r2, [r6, r2] add r0, r5, #0x0 bl FUN_02059CC8 add r0, r5, #0x0 bl FUN_02059D1C mov r0, #0x6 ldrsh r1, [r4, r0] add r1, r1, #0x1 strh r1, [r4, #0x6] ldrsh r1, [r4, r0] mov r0, #0x4 ldrsh r0, [r4, r0] cmp r1, r0 bge _0205BC6E mov r0, #0x0 pop {r4-r6, pc} _0205BC6E: add r0, r5, #0x0 mov r1, #0x28 bl FUN_02058410 add r0, r5, #0x0 bl FUN_02059C60 add r0, r5, #0x0 bl FUN_020586A0 add r0, r5, #0x0 mov r1, #0x0 bl FUN_02058544 add r0, r5, #0x0 bl FUN_02058700 mov r0, #0x1 pop {r4-r6, pc} thumb_func_start FUN_0205BC94 FUN_0205BC94: ; 0x0205BC94 push {r3, lr} mov r2, #0x6 mov r1, #0x0 add r3, r2, #0x0 bl FUN_0205BBF4 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205BCA4 FUN_0205BCA4: ; 0x0205BCA4 push {r3, lr} mov r2, #0x6 mov r1, #0x1 add r3, r2, #0x0 bl FUN_0205BBF4 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205BCB4 FUN_0205BCB4: ; 0x0205BCB4 push {r3, lr} mov r2, #0x6 mov r1, #0x2 add r3, r2, #0x0 bl FUN_0205BBF4 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205BCC4 FUN_0205BCC4: ; 0x0205BCC4 push {r3, lr} mov r2, #0x6 mov r1, #0x3 add r3, r2, #0x0 bl FUN_0205BBF4 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205BCD4 FUN_0205BCD4: ; 0x0205BCD4 push {r3, lr} ldr r1, _0205BCE8 ; =0x020F6C6C bl FUN_0205BC34 cmp r0, #0x1 bne _0205BCE4 mov r0, #0x1 pop {r3, pc} _0205BCE4: mov r0, #0x0 pop {r3, pc} .balign 4 _0205BCE8: .word 0x020F6C6C thumb_func_start FUN_0205BCEC FUN_0205BCEC: ; 0x0205BCEC push {r3, lr} mov r1, #0x0 mov r2, #0x3 mov r3, #0x7 bl FUN_0205BBF4 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205BCFC FUN_0205BCFC: ; 0x0205BCFC push {r3, lr} mov r1, #0x1 mov r2, #0x3 mov r3, #0x7 bl FUN_0205BBF4 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205BD0C FUN_0205BD0C: ; 0x0205BD0C push {r3, lr} mov r1, #0x2 mov r2, #0x3 mov r3, #0x7 bl FUN_0205BBF4 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205BD1C FUN_0205BD1C: ; 0x0205BD1C push {r3, lr} mov r1, #0x3 add r2, r1, #0x0 mov r3, #0x7 bl FUN_0205BBF4 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205BD2C FUN_0205BD2C: ; 0x0205BD2C push {r3, lr} ldr r1, _0205BD40 ; =0x020F6C48 bl FUN_0205BC34 cmp r0, #0x1 bne _0205BD3C mov r0, #0x1 pop {r3, pc} _0205BD3C: mov r0, #0x0 pop {r3, pc} .balign 4 _0205BD40: .word 0x020F6C48 thumb_func_start FUN_0205BD44 FUN_0205BD44: ; 0x0205BD44 push {r3, lr} mov r1, #0x0 mov r2, #0x7 mov r3, #0x8 bl FUN_0205BBF4 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205BD54 FUN_0205BD54: ; 0x0205BD54 push {r3, lr} mov r1, #0x1 mov r2, #0x7 mov r3, #0x8 bl FUN_0205BBF4 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205BD64 FUN_0205BD64: ; 0x0205BD64 push {r3, lr} mov r1, #0x2 mov r2, #0x7 mov r3, #0x8 bl FUN_0205BBF4 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205BD74 FUN_0205BD74: ; 0x0205BD74 push {r3, lr} mov r1, #0x3 mov r2, #0x7 mov r3, #0x8 bl FUN_0205BBF4 mov r0, #0x1 pop {r3, pc} thumb_func_start FUN_0205BD84 FUN_0205BD84: ; 0x0205BD84 push {r3, lr} ldr r1, _0205BD98 ; =0x020F6C84 bl FUN_0205BC34 cmp r0, #0x1 bne _0205BD94 mov r0, #0x1 pop {r3, pc} _0205BD94: mov r0, #0x0 pop {r3, pc} .balign 4 _0205BD98: .word 0x020F6C84 thumb_func_start FUN_0205BD9C FUN_0205BD9C: ; 0x0205BD9C push {r4, lr} add r4, r0, #0x0 mov r1, #0x4 bl FUN_020585DC add r0, r4, #0x0 mov r1, #0x9 bl FUN_02058544 add r0, r4, #0x0 bl FUN_02058700 mov r0, #0x0 pop {r4, pc} thumb_func_start FUN_0205BDB8 FUN_0205BDB8: ; 0x0205BDB8 push {r4, lr} add r4, r0, #0x0 bl FUN_02058600 ldr r1, [r0, #0x0] add r1, r1, #0x1 str r1, [r0, #0x0] cmp r1, #0x8 blt _0205BDE0 add r0, r4, #0x0 mov r1, #0x1 bl FUN_020584AC add r0, r4, #0x0 mov r1, #0x0 bl FUN_02058544 add r0, r4, #0x0 bl FUN_02058700 _0205BDE0: mov r0, #0x0 pop {r4, pc} thumb_func_start FUN_0205BDE4 FUN_0205BDE4: ; 0x0205BDE4 push {r3-r4, lr} sub sp, #0xc add r4, r0, #0x0 mov r1, #0x4 bl FUN_020585DC add r0, r4, #0x0 bl FUN_0205EB20 cmp r0, #0x0 beq _0205BDFE bl FUN_02064520 _0205BDFE: add r1, sp, #0x0 mov r0, #0x0 str r0, [r1, #0x0] str r0, [r1, #0x4] str r0, [r1, #0x8] add r0, r4, #0x0 bl FUN_02058B94 add r0, r4, #0x0 bl FUN_0224D2E0 ldr r1, _0205BE34 ; =0x00010004 add r0, r4, #0x0 bl FUN_02058410 mov r1, #0x1 add r0, r4, #0x0 lsl r1, r1, #0x14 bl FUN_02058418 add r0, r4, #0x0 bl FUN_02058700 mov r0, #0x0 add sp, #0xc pop {r3-r4, pc} nop _0205BE34: .word 0x00010004 thumb_func_start FUN_0205BE38 FUN_0205BE38: ; 0x0205BE38 push {r4-r5, lr} sub sp, #0xc add r5, r0, #0x0 bl FUN_02058600 add r4, r0, #0x0 ldr r0, _0205BE98 ; =0x02105F9C add r1, sp, #0x0 ldr r2, [r0, #0x0] mov r0, #0x0 str r0, [r1, #0x0] str r0, [r1, #0x4] str r0, [r1, #0x8] ldr r0, [r4, #0x0] lsl r0, r0, #0x2 ldr r0, [r2, r0] str r0, [sp, #0x4] add r0, r5, #0x0 bl FUN_02058B94 ldr r0, [r4, #0x0] add r0, r0, #0x2 str r0, [r4, #0x0] cmp r0, #0x10 bhs _0205BE70 add sp, #0xc mov r0, #0x0 pop {r4-r5, pc} _0205BE70: mov r0, #0x0 str r0, [sp, #0x4] add r0, r5, #0x0 add r1, sp, #0x0 bl FUN_02058B94 ldr r1, _0205BE9C ; =0x00020028 add r0, r5, #0x0 bl FUN_02058410 add r0, r5, #0x0 bl FUN_0205EB2C add r0, r5, #0x0 bl FUN_02058700 mov r0, #0x1 add sp, #0xc pop {r4-r5, pc} nop _0205BE98: .word 0x02105F9C _0205BE9C: .word 0x00020028 thumb_func_start FUN_0205BEA0 FUN_0205BEA0: ; 0x0205BEA0 push {r4, lr} add r4, r0, #0x0 mov r1, #0x4 bl FUN_020585DC add r0, r4, #0x0 mov r1, #0x0 bl FUN_02058544 add r0, r4, #0x0 bl FUN_02058700 mov r0, #0x0 pop {r4, pc} thumb_func_start FUN_0205BEBC FUN_0205BEBC: ; 0x0205BEBC push {r4, lr} add r4, r0, #0x0 mov r1, #0x4 bl FUN_020585DC add r0, r4, #0x0 mov r1, #0x1 bl FUN_02058544 add r0, r4, #0x0 bl FUN_02058700 mov r0, #0x0 pop {r4, pc} thumb_func_start FUN_0205BED8 FUN_0205BED8: ; 0x0205BED8 push {r4, lr} add r4, r0, #0x0 bl FUN_02058600 ldr r1, [r0, #0x0] add r1, r1, #0x1 str r1, [r0, #0x0] cmp r1, #0x15 bhs _0205BEEE mov r0, #0x0 pop {r4, pc} _0205BEEE: add r0, r4, #0x0 bl FUN_02058700 mov r0, #0x1 pop {r4, pc} thumb_func_start FUN_0205BEF8 FUN_0205BEF8: ; 0x0205BEF8 ldr r3, _0205BEFC ; =FUN_0205BF24 bx r3 .balign 4 _0205BEFC: .word FUN_0205BF24 thumb_func_start FUN_0205BF00 FUN_0205BF00: ; 0x0205BF00 push {r4, lr} add r4, r0, #0x0 bl FUN_0205BF40 cmp r0, #0x0 bne _0205BF10 mov r0, #0x0 pop {r4, pc} _0205BF10: add r0, r4, #0x0 bl FUN_0205BF5C cmp r0, #0x0 beq _0205BF1E mov r0, #0x1 pop {r4, pc} _0205BF1E: mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_0205BF24 FUN_0205BF24: ; 0x0205BF24 push {r4, lr} add r4, r0, #0x0 bl FUN_02058488 add r1, r0, #0x0 lsl r2, r1, #0x2 ldr r1, _0205BF3C ; =0x020F7118 add r0, r4, #0x0 ldr r1, [r1, r2] blx r1 pop {r4, pc} nop _0205BF3C: .word 0x020F7118 thumb_func_start FUN_0205BF40 FUN_0205BF40: ; 0x0205BF40 push {r4, lr} add r4, r0, #0x0 bl FUN_02058488 add r1, r0, #0x0 lsl r2, r1, #0x2 ldr r1, _0205BF58 ; =0x020F7148 add r0, r4, #0x0 ldr r1, [r1, r2] blx r1 pop {r4, pc} nop _0205BF58: .word 0x020F7148 thumb_func_start FUN_0205BF5C FUN_0205BF5C: ; 0x0205BF5C push {r4, lr} add r4, r0, #0x0 bl FUN_02058488 add r1, r0, #0x0 lsl r2, r1, #0x2 ldr r1, _0205BF74 ; =0x020F7178 add r0, r4, #0x0 ldr r1, [r1, r2] blx r1 pop {r4, pc} nop _0205BF74: .word 0x020F7178 thumb_func_start FUN_0205BF78 FUN_0205BF78: ; 0x0205BF78 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02058B2C add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02058B14 cmp r5, r0 beq _0205BF90 mov r0, #0x1 pop {r3-r5, pc} _0205BF90: add r0, r4, #0x0 bl FUN_02058B4C add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02058B24 cmp r5, r0 beq _0205BFA6 mov r0, #0x1 pop {r3-r5, pc} _0205BFA6: mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0205BFAC FUN_0205BFAC: ; 0x0205BFAC push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02058B2C add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02058B14 cmp r5, r0 beq _0205BFC4 mov r0, #0x0 pop {r3-r5, pc} _0205BFC4: add r0, r4, #0x0 bl FUN_02058B4C add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02058B24 cmp r5, r0 bne _0205BFDA mov r0, #0x1 pop {r3-r5, pc} _0205BFDA: mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0205BFE0 FUN_0205BFE0: ; 0x0205BFE0 bx lr .balign 4 thumb_func_start FUN_0205BFE4 FUN_0205BFE4: ; 0x0205BFE4 mov r0, #0x0 bx lr thumb_func_start FUN_0205BFE8 FUN_0205BFE8: ; 0x0205BFE8 mov r0, #0x0 bx lr thumb_func_start FUN_0205BFEC FUN_0205BFEC: ; 0x0205BFEC push {r3-r5, lr} add r5, r0, #0x0 mov r1, #0x9 bl FUN_020585B4 add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x1 bl FUN_02058510 strb r0, [r4, #0x3] pop {r3-r5, pc} thumb_func_start FUN_0205C004 FUN_0205C004: ; 0x0205C004 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_020585D8 add r4, r0, #0x0 ldrb r0, [r4, #0x0] cmp r0, #0x3 bhi _0205C07C add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0205C020: ; jump table (using 16-bit offset) .short _0205C028 - _0205C020 - 2; case 0 .short _0205C03A - _0205C020 - 2; case 1 .short _0205C062 - _0205C020 - 2; case 2 .short _0205C078 - _0205C020 - 2; case 3 _0205C028: add r0, r5, #0x0 bl FUN_0205BF78 cmp r0, #0x1 bne _0205C07C ldrb r0, [r4, #0x0] add r0, r0, #0x1 strb r0, [r4, #0x0] b _0205C07C _0205C03A: add r0, r5, #0x0 bl FUN_0205BFAC cmp r0, #0x0 beq _0205C07C mov r0, #0x2 ldrsb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, #0x2] ldrsb r1, [r4, r0] mov r0, #0x3 ldrsb r0, [r4, r0] cmp r1, r0 bge _0205C05C mov r0, #0x0 strb r0, [r4, #0x0] b _0205C07C _0205C05C: ldrb r0, [r4, #0x0] add r0, r0, #0x1 strb r0, [r4, #0x0] _0205C062: add r0, r5, #0x0 bl FUN_02058854 cmp r0, #0x1 beq _0205C07C ldrb r0, [r4, #0x0] add r0, r0, #0x1 strb r0, [r4, #0x0] mov r0, #0x0 strb r0, [r4, #0x2] strb r0, [r4, #0x1] _0205C078: mov r0, #0x1 pop {r3-r5, pc} _0205C07C: mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0205C080 FUN_0205C080: ; 0x0205C080 push {r4-r6, lr} sub sp, #0x20 add r5, r0, #0x0 bl FUN_020585D8 add r4, r0, #0x0 ldrb r0, [r4, #0x1] cmp r0, #0x3 bhi _0205C15E add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0205C09E: ; jump table (using 16-bit offset) .short _0205C0A6 - _0205C09E - 2; case 0 .short _0205C0C8 - _0205C09E - 2; case 1 .short _0205C0FA - _0205C09E - 2; case 2 .short _0205C110 - _0205C09E - 2; case 3 _0205C0A6: ldr r3, _0205C164 ; =0x020F70D8 add r2, sp, #0x10 ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldmia r3!, {r0-r1} stmia r2!, {r0-r1} add r0, r5, #0x0 bl FUN_020584C4 strb r0, [r4, #0x4] lsl r1, r0, #0x2 add r0, sp, #0x10 ldr r0, [r0, r1] strb r0, [r4, #0x5] ldrb r0, [r4, #0x1] add r0, r0, #0x1 strb r0, [r4, #0x1] _0205C0C8: ldr r6, _0205C168 ; =0x020F70E8 add r3, sp, #0x0 add r2, r3, #0x0 ldmia r6!, {r0-r1} stmia r3!, {r0-r1} ldmia r6!, {r0-r1} stmia r3!, {r0-r1} mov r0, #0x5 ldrsb r0, [r4, r0] lsl r3, r0, #0x3 mov r0, #0x6 ldrsb r0, [r4, r0] lsl r1, r0, #0x2 add r0, r2, r3 ldr r0, [r1, r0] mov r1, #0x0 bl FUN_0205AFDC add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_0205AE0C ldrb r0, [r4, #0x1] add r0, r0, #0x1 strb r0, [r4, #0x1] _0205C0FA: add r0, r5, #0x0 bl FUN_0205B080 cmp r0, #0x0 bne _0205C10A add sp, #0x20 mov r0, #0x1 pop {r4-r6, pc} _0205C10A: ldrb r0, [r4, #0x1] add r0, r0, #0x1 strb r0, [r4, #0x1] _0205C110: mov r0, #0x8 ldrsb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, #0x8] ldrsb r0, [r4, r0] cmp r0, #0x8 bge _0205C124 add sp, #0x20 mov r0, #0x1 pop {r4-r6, pc} _0205C124: mov r0, #0x0 strb r0, [r4, #0x8] mov r0, #0x7 ldrsb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, #0x7] ldrsb r0, [r4, r0] cmp r0, #0x4 bge _0205C148 mov r0, #0x6 ldrsb r0, [r4, r0] add sp, #0x20 add r1, r0, #0x1 mov r0, #0x1 and r1, r0 strb r1, [r4, #0x6] strb r0, [r4, #0x1] pop {r4-r6, pc} _0205C148: mov r1, #0x4 ldrsb r1, [r4, r1] add r0, r5, #0x0 bl FUN_020584AC ldrb r0, [r4, #0x1] add r0, r0, #0x1 strb r0, [r4, #0x1] mov r0, #0x0 strb r0, [r4, #0x7] strb r0, [r4, #0x0] _0205C15E: mov r0, #0x0 add sp, #0x20 pop {r4-r6, pc} .balign 4 _0205C164: .word 0x020F70D8 _0205C168: .word 0x020F70E8 thumb_func_start FUN_0205C16C FUN_0205C16C: ; 0x0205C16C push {r3-r5, lr} add r5, r0, #0x0 mov r1, #0x9 bl FUN_020585B4 add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x1 bl FUN_02058510 strb r0, [r4, #0x3] add r0, r5, #0x0 bl FUN_02058488 cmp r0, #0x5 beq _0205C190 mov r0, #0x1 b _0205C192 _0205C190: mov r0, #0x0 _0205C192: strb r0, [r4, #0x5] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0205C198 FUN_0205C198: ; 0x0205C198 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_020585D8 add r4, r0, #0x0 ldrb r0, [r4, #0x0] cmp r0, #0x3 bhi _0205C210 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0205C1B4: ; jump table (using 16-bit offset) .short _0205C1BC - _0205C1B4 - 2; case 0 .short _0205C1CE - _0205C1B4 - 2; case 1 .short _0205C1F6 - _0205C1B4 - 2; case 2 .short _0205C20C - _0205C1B4 - 2; case 3 _0205C1BC: add r0, r5, #0x0 bl FUN_0205BF78 cmp r0, #0x1 bne _0205C210 ldrb r0, [r4, #0x0] add r0, r0, #0x1 strb r0, [r4, #0x0] b _0205C210 _0205C1CE: add r0, r5, #0x0 bl FUN_0205BFAC cmp r0, #0x0 beq _0205C210 mov r0, #0x2 ldrsb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, #0x2] ldrsb r1, [r4, r0] mov r0, #0x3 ldrsb r0, [r4, r0] cmp r1, r0 bge _0205C1F0 mov r0, #0x0 strb r0, [r4, #0x0] b _0205C210 _0205C1F0: ldrb r0, [r4, #0x0] add r0, r0, #0x1 strb r0, [r4, #0x0] _0205C1F6: add r0, r5, #0x0 bl FUN_02058854 cmp r0, #0x1 beq _0205C210 ldrb r0, [r4, #0x0] add r0, r0, #0x1 strb r0, [r4, #0x0] mov r0, #0x0 strb r0, [r4, #0x2] strb r0, [r4, #0x1] _0205C20C: mov r0, #0x1 pop {r3-r5, pc} _0205C210: mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0205C214 FUN_0205C214: ; 0x0205C214 push {r3-r7, lr} sub sp, #0x20 ldr r3, _0205C330 ; =0x020F70F8 add r2, sp, #0x0 add r7, r0, #0x0 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} add r0, r7, #0x0 bl FUN_020585D8 add r4, r0, #0x0 ldrb r0, [r4, #0x1] cmp r0, #0x3 bhi _0205C32A add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0205C248: ; jump table (using 16-bit offset) .short _0205C250 - _0205C248 - 2; case 0 .short _0205C296 - _0205C248 - 2; case 1 .short _0205C2BC - _0205C248 - 2; case 2 .short _0205C2D2 - _0205C248 - 2; case 3 _0205C250: add r0, r7, #0x0 bl FUN_020584C4 mov r5, #0x0 add r6, r0, #0x0 add r1, r5, #0x0 add r0, sp, #0x0 mov r2, #0x5 b _0205C266 _0205C262: add r1, r1, #0x4 add r5, r5, #0x1 _0205C266: cmp r5, #0x4 bge _0205C276 ldrsb r3, [r4, r2] lsl r3, r3, #0x4 add r3, r0, r3 ldr r3, [r1, r3] cmp r6, r3 bne _0205C262 _0205C276: cmp r5, #0x4 blt _0205C27E bl ErrorHandling _0205C27E: add r0, r5, #0x1 lsr r2, r0, #0x1f lsl r1, r0, #0x1e sub r1, r1, r2 mov r0, #0x1e ror r1, r0 strb r6, [r4, #0x4] add r0, r2, r1 strb r0, [r4, #0x6] ldrb r0, [r4, #0x1] add r0, r0, #0x1 strb r0, [r4, #0x1] _0205C296: mov r0, #0x5 ldrsb r0, [r4, r0] add r2, sp, #0x0 lsl r3, r0, #0x4 mov r0, #0x6 ldrsb r0, [r4, r0] lsl r1, r0, #0x2 add r0, r2, r3 ldr r0, [r1, r0] mov r1, #0x0 bl FUN_0205AFDC add r1, r0, #0x0 add r0, r7, #0x0 bl FUN_0205AE0C ldrb r0, [r4, #0x1] add r0, r0, #0x1 strb r0, [r4, #0x1] _0205C2BC: add r0, r7, #0x0 bl FUN_0205B080 cmp r0, #0x0 bne _0205C2CC add sp, #0x20 mov r0, #0x1 pop {r3-r7, pc} _0205C2CC: ldrb r0, [r4, #0x1] add r0, r0, #0x1 strb r0, [r4, #0x1] _0205C2D2: mov r0, #0x8 ldrsb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, #0x8] ldrsb r0, [r4, r0] cmp r0, #0x8 bge _0205C2E6 add sp, #0x20 mov r0, #0x1 pop {r3-r7, pc} _0205C2E6: mov r0, #0x0 strb r0, [r4, #0x8] mov r0, #0x7 ldrsb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, #0x7] ldrsb r0, [r4, r0] cmp r0, #0x4 bge _0205C314 mov r0, #0x6 ldrsb r0, [r4, r0] add sp, #0x20 add r0, r0, #0x1 lsr r2, r0, #0x1f lsl r1, r0, #0x1e sub r1, r1, r2 mov r0, #0x1e ror r1, r0 add r0, r2, r1 strb r0, [r4, #0x6] mov r0, #0x1 strb r0, [r4, #0x1] pop {r3-r7, pc} _0205C314: mov r1, #0x4 ldrsb r1, [r4, r1] add r0, r7, #0x0 bl FUN_020584AC ldrb r0, [r4, #0x1] add r0, r0, #0x1 strb r0, [r4, #0x1] mov r0, #0x0 strb r0, [r4, #0x7] strb r0, [r4, #0x0] _0205C32A: mov r0, #0x0 add sp, #0x20 pop {r3-r7, pc} .balign 4 _0205C330: .word 0x020F70F8 thumb_func_start FUN_0205C334 FUN_0205C334: ; 0x0205C334 cmp r0, #0x64 bne _0205C33C mov r0, #0x1 bx lr _0205C33C: mov r0, #0x0 bx lr thumb_func_start FUN_0205C340 FUN_0205C340: ; 0x0205C340 push {r4, lr} add r4, r0, #0x0 bl FUN_020585B0 ldrh r0, [r0, #0x0] cmp r0, #0x0 bne _0205C352 ldr r0, _0205C370 ; =0x0000FFFF pop {r4, pc} _0205C352: add r0, r4, #0x0 bl FUN_02058934 cmp r0, #0x1 bne _0205C36C add r0, r4, #0x0 bl FUN_02058628 ldr r1, [r0, #0x4] cmp r1, #0x0 beq _0205C36C ldr r0, [r0, #0x0] pop {r4, pc} _0205C36C: ldr r0, _0205C370 ; =0x0000FFFF pop {r4, pc} .balign 4 _0205C370: .word 0x0000FFFF thumb_func_start FUN_0205C374 FUN_0205C374: ; 0x0205C374 push {r3, lr} bl FUN_020585B0 mov r1, #0x1 strh r1, [r0, #0x2] pop {r3, pc} thumb_func_start FUN_0205C380 FUN_0205C380: ; 0x0205C380 push {r3, lr} mov r1, #0x4 bl FUN_0205858C mov r1, #0x0 strh r1, [r0, #0x0] pop {r3, pc} .balign 4 thumb_func_start FUN_0205C390 FUN_0205C390: ; 0x0205C390 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_020585B0 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02058738 add r1, r5, #0x0 bl FUN_0204B5FC strh r0, [r4, #0x0] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0205C3AC FUN_0205C3AC: ; 0x0205C3AC bx lr .balign 4 thumb_func_start FUN_0205C3B0 FUN_0205C3B0: ; 0x0205C3B0 push {r4, lr} mov r1, #0x18 add r4, r0, #0x0 bl FUN_02058604 ldr r1, _0205C3CC ; =0x0000FFFF str r1, [r0, #0x0] mov r1, #0x0 str r1, [r0, #0x4] add r0, r4, #0x0 bl FUN_0224A310 pop {r4, pc} nop _0205C3CC: .word 0x0000FFFF thumb_func_start FUN_0205C3D0 FUN_0205C3D0: ; 0x0205C3D0 push {r3-r7, lr} add r5, r0, #0x0 bl FUN_020585B0 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02058628 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02058738 add r1, r5, #0x0 bl FUN_0204B5FC add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_021F2E28 cmp r0, #0x1 beq _0205C488 ldr r0, [r4, #0x4] cmp r6, r0 beq _0205C454 add r1, r4, #0x0 ldr r2, [r4, #0x0] add r0, r5, #0x0 add r1, #0x8 bl FUN_021F2094 add r0, r5, #0x0 bl FUN_02058738 add r1, r5, #0x0 bl FUN_0204B61C add r1, r6, #0x0 bl FUN_0205C53C ldr r1, _0205C48C ; =0x0000FFFF str r0, [r4, #0x0] cmp r0, r1 ldr r0, [r4, #0x4] beq _0205C440 cmp r0, #0x0 beq _0205C432 add r0, r5, #0x0 bl FUN_0224A528 _0205C432: add r1, r4, #0x0 ldr r2, [r4, #0x0] add r0, r5, #0x0 add r1, #0x8 bl FUN_021F1F78 b _0205C450 _0205C440: cmp r0, #0x0 beq _0205C450 ldrh r0, [r7, #0x2] cmp r0, #0x0 bne _0205C450 add r0, r5, #0x0 bl FUN_0224A528 _0205C450: mov r0, #0x0 strh r0, [r7, #0x2] _0205C454: add r0, r5, #0x0 str r6, [r4, #0x4] bl FUN_021F2E28 cmp r0, #0x1 beq _0205C488 ldr r1, [r4, #0x8] cmp r1, #0x0 beq _0205C488 add r0, r5, #0x0 bl FUN_021F2F48 add r0, r5, #0x0 bl FUN_021F1DFC cmp r0, #0x0 bne _0205C480 mov r1, #0x1 ldr r0, [r4, #0x8] lsl r1, r1, #0xc bl FUN_0201F854 _0205C480: ldr r1, [r4, #0x8] add r0, r5, #0x0 bl FUN_021F2F6C _0205C488: pop {r3-r7, pc} nop _0205C48C: .word 0x0000FFFF thumb_func_start FUN_0205C490 FUN_0205C490: ; 0x0205C490 push {r4, lr} add r4, r0, #0x0 bl FUN_02058628 add r2, r0, #0x0 add r1, r2, #0x0 ldr r2, [r2, #0x0] add r0, r4, #0x0 add r1, #0x8 bl FUN_021F2094 pop {r4, pc} thumb_func_start FUN_0205C4A8 FUN_0205C4A8: ; 0x0205C4A8 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02058628 add r4, r0, #0x0 ldr r0, [r4, #0x8] cmp r0, #0x0 beq _0205C4C0 add r1, r4, #0x0 add r1, #0xc bl FUN_021F20D8 _0205C4C0: add r1, r4, #0x0 ldr r2, [r4, #0x0] add r0, r5, #0x0 add r1, #0x8 bl FUN_021F2094 mov r1, #0x2 add r0, r5, #0x0 lsl r1, r1, #0x14 bl FUN_02058410 pop {r3-r5, pc} thumb_func_start FUN_0205C4D8 FUN_0205C4D8: ; 0x0205C4D8 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02058628 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_021F2E28 cmp r0, #0x1 beq _0205C536 ldr r0, [r4, #0x8] cmp r0, #0x0 bne _0205C516 ldr r2, [r4, #0x0] ldr r0, _0205C538 ; =0x0000FFFF cmp r2, r0 beq _0205C506 add r1, r4, #0x0 add r0, r5, #0x0 add r1, #0x8 bl FUN_021F1F78 b _0205C510 _0205C506: mov r1, #0x2 add r0, r5, #0x0 lsl r1, r1, #0x14 bl FUN_02058418 _0205C510: add r0, r5, #0x0 bl FUN_0224A310 _0205C516: ldr r0, [r4, #0x8] cmp r0, #0x0 beq _0205C536 add r1, r4, #0x0 add r1, #0xc bl FUN_021F20F8 ldr r1, [r4, #0x8] add r0, r5, #0x0 bl FUN_021F2F48 mov r1, #0x2 add r0, r5, #0x0 lsl r1, r1, #0x14 bl FUN_02058418 _0205C536: pop {r3-r5, pc} .balign 4 _0205C538: .word 0x0000FFFF thumb_func_start FUN_0205C53C FUN_0205C53C: ; 0x0205C53C push {r3, lr} cmp r1, #0x0 beq _0205C548 cmp r1, #0x1 beq _0205C54C b _0205C550 _0205C548: ldr r0, _0205C590 ; =0x0000FFFF pop {r3, pc} _0205C54C: ldr r0, _0205C590 ; =0x0000FFFF pop {r3, pc} _0205C550: sub r2, r0, #0x1 mov r0, #0xc ldr r3, _0205C594 ; =0x021F9194 mul r0, r2 add r2, r3, r0 cmp r1, #0x5 bhi _0205C588 add r0, r1, r1 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0205C56A: ; jump table (using 16-bit offset) .short _0205C588 - _0205C56A - 2; case 0 .short _0205C588 - _0205C56A - 2; case 1 .short _0205C576 - _0205C56A - 2; case 2 .short _0205C57C - _0205C56A - 2; case 3 .short _0205C580 - _0205C56A - 2; case 4 .short _0205C584 - _0205C56A - 2; case 5 _0205C576: mov r0, #0x1 lsl r0, r0, #0xc pop {r3, pc} _0205C57C: ldr r0, [r2, #0x0] pop {r3, pc} _0205C580: ldr r0, [r2, #0x4] pop {r3, pc} _0205C584: ldr r0, [r2, #0x8] pop {r3, pc} _0205C588: bl ErrorHandling ldr r0, _0205C590 ; =0x0000FFFF pop {r3, pc} .balign 4 _0205C590: .word 0x0000FFFF _0205C594: .word 0x021F9194 thumb_func_start FUN_0205C598 FUN_0205C598: ; 0x0205C598 push {r3-r7, lr} sub sp, #0x58 add r5, r0, #0x0 ldr r7, [r5, #0x38] add r4, r1, #0x0 ldr r6, [r5, #0x34] add r1, sp, #0x40 str r1, [sp, #0x0] add r1, r6, #0x0 add r2, r7, #0x0 mov r3, #0x0 bl FUN_0205C6BC cmp r0, #0x0 bne _0205C5BC add sp, #0x58 mov r0, #0x0 pop {r3-r7, pc} _0205C5BC: ldr r0, [sp, #0x50] cmp r0, #0x0 bne _0205C642 ldr r1, _0205C6B8 ; =0x00000F0A ldr r2, [sp, #0x54] add r0, r5, #0x0 bl FUN_02038C78 cmp r4, #0x0 beq _0205C5E4 add r0, sp, #0x28 str r0, [sp, #0x0] ldr r3, [sp, #0x54] add r0, r5, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 bl FUN_0205C6BC cmp r0, #0x0 bne _0205C604 _0205C5E4: ldr r0, [sp, #0x48] str r0, [sp, #0x0] ldr r0, [sp, #0x4c] str r0, [sp, #0x4] mov r0, #0x0 str r0, [sp, #0x8] str r0, [sp, #0xc] ldr r1, [sp, #0x54] ldr r2, [sp, #0x40] ldr r3, [sp, #0x44] add r0, r5, #0x0 bl FUN_02038CA8 add sp, #0x58 mov r0, #0x1 pop {r3-r7, pc} _0205C604: ldr r0, [sp, #0x48] str r0, [sp, #0x0] ldr r0, [sp, #0x4c] str r0, [sp, #0x4] mov r0, #0x2 str r0, [sp, #0x8] mov r0, #0x0 str r0, [sp, #0xc] ldr r1, [sp, #0x54] ldr r2, [sp, #0x40] ldr r3, [sp, #0x44] add r0, r5, #0x0 bl FUN_02038CA8 ldr r0, [sp, #0x30] str r0, [sp, #0x0] ldr r0, [sp, #0x34] str r0, [sp, #0x4] mov r0, #0x2 str r0, [sp, #0x8] mov r0, #0x1 str r0, [sp, #0xc] ldr r1, [sp, #0x3c] ldr r2, [sp, #0x28] ldr r3, [sp, #0x2c] add r0, r5, #0x0 bl FUN_02038CA8 add sp, #0x58 mov r0, #0x1 pop {r3-r7, pc} _0205C642: cmp r0, #0x1 bne _0205C6AE cmp r4, #0x0 bne _0205C650 add sp, #0x58 mov r0, #0x0 pop {r3-r7, pc} _0205C650: ldr r2, [sp, #0x54] ldr r3, [sp, #0x4c] add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_0205C9F0 add r1, r0, #0x0 ldr r2, [sp, #0x40] ldr r3, [sp, #0x44] add r0, sp, #0x10 bl FUN_0205C73C ldr r1, _0205C6B8 ; =0x00000F0A ldr r2, [sp, #0x54] add r0, r5, #0x0 bl FUN_02038C78 ldr r0, [sp, #0x48] str r0, [sp, #0x0] ldr r0, [sp, #0x4c] str r0, [sp, #0x4] mov r0, #0x1 str r0, [sp, #0x8] mov r0, #0x0 str r0, [sp, #0xc] ldr r1, [sp, #0x54] ldr r2, [sp, #0x40] ldr r3, [sp, #0x44] add r0, r5, #0x0 bl FUN_02038CA8 ldr r0, [sp, #0x18] str r0, [sp, #0x0] ldr r0, [sp, #0x1c] str r0, [sp, #0x4] mov r0, #0x1 str r0, [sp, #0x8] str r0, [sp, #0xc] ldr r1, [sp, #0x24] ldr r2, [sp, #0x10] ldr r3, [sp, #0x14] add r0, r5, #0x0 bl FUN_02038CA8 add sp, #0x58 mov r0, #0x1 pop {r3-r7, pc} _0205C6AE: bl ErrorHandling mov r0, #0x0 add sp, #0x58 pop {r3-r7, pc} .balign 4 _0205C6B8: .word 0x00000F0A thumb_func_start FUN_0205C6BC FUN_0205C6BC: ; 0x0205C6BC push {r3-r7, lr} sub sp, #0x10 add r6, r0, #0x0 mov r0, #0x0 add r5, r1, #0x0 add r7, r2, #0x0 add r4, r3, #0x0 str r0, [sp, #0xc] str r0, [sp, #0x4] add r0, r5, #0x0 add r1, sp, #0x4 add r2, sp, #0xc mov r3, #0x1 bl FUN_020580F4 cmp r0, #0x0 beq _0205C734 _0205C6DE: cmp r4, #0x0 beq _0205C6E8 ldr r0, [sp, #0x4] cmp r4, r0 beq _0205C724 _0205C6E8: ldr r0, [sp, #0x4] add r1, r7, #0x0 add r2, sp, #0x8 bl FUN_0205C794 mov r1, #0x0 mvn r1, r1 str r0, [sp, #0x0] cmp r0, r1 beq _0205C724 ldr r0, [sp, #0x4] bl FUN_0205C9D8 add r1, r0, #0x0 lsl r1, r1, #0x10 add r0, r6, #0x0 lsr r1, r1, #0x10 bl FUN_02039640 cmp r0, #0x0 bne _0205C724 ldr r0, [sp, #0x28] ldr r1, [sp, #0x4] ldr r2, [sp, #0x0] ldr r3, [sp, #0x8] bl FUN_0205C73C add sp, #0x10 mov r0, #0x1 pop {r3-r7, pc} _0205C724: add r0, r5, #0x0 add r1, sp, #0x4 add r2, sp, #0xc mov r3, #0x1 bl FUN_020580F4 cmp r0, #0x0 bne _0205C6DE _0205C734: mov r0, #0x0 add sp, #0x10 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0205C73C FUN_0205C73C: ; 0x0205C73C push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 str r2, [r5, #0x0] str r3, [r5, #0x4] add r0, r4, #0x0 bl FUN_02058498 str r0, [r5, #0x8] lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_020395F4 str r0, [r5, #0xc] lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_0203962C str r0, [r5, #0x10] str r4, [r5, #0x14] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0205C768 FUN_0205C768: ; 0x0205C768 push {r3, lr} bl FUN_02058488 cmp r0, #0x8 bhi _0205C792 add r1, r0, r0 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0205C77E: ; jump table (using 16-bit offset) .short _0205C792 - _0205C77E - 2; case 0 .short _0205C792 - _0205C77E - 2; case 1 .short _0205C792 - _0205C77E - 2; case 2 .short _0205C792 - _0205C77E - 2; case 3 .short _0205C790 - _0205C77E - 2; case 4 .short _0205C790 - _0205C77E - 2; case 5 .short _0205C790 - _0205C77E - 2; case 6 .short _0205C790 - _0205C77E - 2; case 7 .short _0205C790 - _0205C77E - 2; case 8 _0205C790: mov r0, #0x1 _0205C792: pop {r3, pc} thumb_func_start FUN_0205C794 FUN_0205C794: ; 0x0205C794 push {r4-r7, lr} sub sp, #0x14 add r5, r0, #0x0 add r4, r1, #0x0 str r2, [sp, #0x8] bl FUN_0205C768 cmp r0, #0x1 bne _0205C802 add r0, r4, #0x0 bl FUN_02055320 add r7, r0, #0x0 add r0, r4, #0x0 bl FUN_0205532C add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_020584C4 add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x0 bl FUN_02058510 add r2, r0, #0x0 str r6, [sp, #0x0] mov r0, #0x0 str r0, [sp, #0x4] add r0, r5, #0x0 add r1, r4, #0x0 add r3, r7, #0x0 bl FUN_0205C86C add r6, r0, #0x0 mov r0, #0x0 mvn r0, r0 cmp r6, r0 beq _0205C7FA add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_0205C938 cmp r0, #0x0 bne _0205C7FA ldr r0, [sp, #0x8] add sp, #0x14 str r4, [r0, #0x0] add r0, r6, #0x0 pop {r4-r7, pc} _0205C7FA: mov r0, #0x0 add sp, #0x14 mvn r0, r0 pop {r4-r7, pc} _0205C802: cmp r0, #0x2 bne _0205C864 add r0, r4, #0x0 bl FUN_02055320 str r0, [sp, #0x10] add r0, r4, #0x0 bl FUN_0205532C add r7, r0, #0x0 add r0, r5, #0x0 mov r1, #0x0 bl FUN_02058510 str r0, [sp, #0xc] mov r4, #0x0 _0205C822: str r7, [sp, #0x0] mov r0, #0x0 str r0, [sp, #0x4] ldr r2, [sp, #0xc] ldr r3, [sp, #0x10] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0205C86C add r6, r0, #0x0 mov r0, #0x0 mvn r0, r0 cmp r6, r0 beq _0205C856 add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_0205C938 cmp r0, #0x0 bne _0205C856 ldr r0, [sp, #0x8] add sp, #0x14 str r4, [r0, #0x0] add r0, r6, #0x0 pop {r4-r7, pc} _0205C856: add r4, r4, #0x1 cmp r4, #0x4 blt _0205C822 mov r0, #0x0 add sp, #0x14 mvn r0, r0 pop {r4-r7, pc} _0205C864: mov r0, #0x0 mvn r0, r0 add sp, #0x14 pop {r4-r7, pc} thumb_func_start FUN_0205C86C FUN_0205C86C: ; 0x0205C86C push {r3-r5, lr} add r4, r1, #0x0 ldr r1, [sp, #0x14] lsl r5, r4, #0x2 ldr r4, _0205C884 ; =0x020F71A8 str r1, [sp, #0x0] add r1, r2, #0x0 add r2, r3, #0x0 ldr r3, [sp, #0x10] ldr r4, [r4, r5] blx r4 pop {r3-r5, pc} .balign 4 _0205C884: .word 0x020F71A8 thumb_func_start FUN_0205C888 FUN_0205C888: ; 0x0205C888 push {r3-r7, lr} add r7, r0, #0x0 add r5, r1, #0x0 add r6, r2, #0x0 add r4, r3, #0x0 bl FUN_02058B2C cmp r0, r6 bne _0205C8AE add r0, r7, #0x0 bl FUN_02058B4C cmp r4, r0 bge _0205C8AE sub r1, r0, r5 cmp r4, r1 blt _0205C8AE sub r0, r0, r4 pop {r3-r7, pc} _0205C8AE: mov r0, #0x0 mvn r0, r0 pop {r3-r7, pc} thumb_func_start FUN_0205C8B4 FUN_0205C8B4: ; 0x0205C8B4 push {r3-r7, lr} add r7, r0, #0x0 add r5, r1, #0x0 add r6, r2, #0x0 add r4, r3, #0x0 bl FUN_02058B2C cmp r0, r6 bne _0205C8DA add r0, r7, #0x0 bl FUN_02058B4C cmp r4, r0 ble _0205C8DA add r1, r0, r5 cmp r4, r1 bgt _0205C8DA sub r0, r4, r0 pop {r3-r7, pc} _0205C8DA: mov r0, #0x0 mvn r0, r0 pop {r3-r7, pc} thumb_func_start FUN_0205C8E0 FUN_0205C8E0: ; 0x0205C8E0 push {r3-r7, lr} add r7, r0, #0x0 add r5, r1, #0x0 add r4, r2, #0x0 add r6, r3, #0x0 bl FUN_02058B4C cmp r0, r6 bne _0205C906 add r0, r7, #0x0 bl FUN_02058B2C cmp r4, r0 bge _0205C906 sub r1, r0, r5 cmp r4, r1 blt _0205C906 sub r0, r0, r4 pop {r3-r7, pc} _0205C906: mov r0, #0x0 mvn r0, r0 pop {r3-r7, pc} thumb_func_start FUN_0205C90C FUN_0205C90C: ; 0x0205C90C push {r3-r7, lr} add r7, r0, #0x0 add r5, r1, #0x0 add r4, r2, #0x0 add r6, r3, #0x0 bl FUN_02058B4C cmp r0, r6 bne _0205C932 add r0, r7, #0x0 bl FUN_02058B2C cmp r4, r0 ble _0205C932 add r1, r0, r5 cmp r4, r1 bgt _0205C932 sub r0, r4, r0 pop {r3-r7, pc} _0205C932: mov r0, #0x0 mvn r0, r0 pop {r3-r7, pc} thumb_func_start FUN_0205C938 FUN_0205C938: ; 0x0205C938 push {r3-r7, lr} sub sp, #0x18 add r5, r1, #0x0 str r0, [sp, #0x4] str r2, [sp, #0x8] cmp r2, #0x0 bne _0205C94C add sp, #0x18 mov r0, #0x1 pop {r3-r7, pc} _0205C94C: bl FUN_02058B2C add r4, r0, #0x0 ldr r0, [sp, #0x4] bl FUN_02058B4C add r7, r0, #0x0 ldr r0, [sp, #0x4] bl FUN_02058B3C str r0, [sp, #0xc] add r0, r5, #0x0 bl FUN_02059BF4 add r6, r4, r0 add r0, r5, #0x0 bl FUN_02059C00 add r4, r7, r0 ldr r0, [sp, #0x8] mov r7, #0x0 sub r0, r0, #0x1 str r0, [sp, #0x10] cmp r0, #0x0 ble _0205C9B4 mov r0, #0x1 str r0, [sp, #0x14] _0205C982: ldr r0, [sp, #0x4] ldr r2, [sp, #0xc] add r1, r6, #0x0 add r3, r4, #0x0 str r5, [sp, #0x0] bl FUN_020598F0 ldr r1, [sp, #0x14] bic r0, r1 beq _0205C99C add sp, #0x18 mov r0, #0x1 pop {r3-r7, pc} _0205C99C: add r0, r5, #0x0 bl FUN_02059BF4 add r6, r6, r0 add r0, r5, #0x0 bl FUN_02059C00 add r4, r4, r0 ldr r0, [sp, #0x10] add r7, r7, #0x1 cmp r7, r0 blt _0205C982 _0205C9B4: ldr r0, [sp, #0x4] ldr r2, [sp, #0xc] add r1, r6, #0x0 add r3, r4, #0x0 str r5, [sp, #0x0] bl FUN_020598F0 mov r1, #0x1 bic r0, r1 cmp r0, #0x4 bne _0205C9D0 add sp, #0x18 mov r0, #0x0 pop {r3-r7, pc} _0205C9D0: mov r0, #0x1 add sp, #0x18 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0205C9D8 FUN_0205C9D8: ; 0x0205C9D8 push {r3, lr} bl FUN_02058498 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_020395F4 pop {r3, pc} thumb_func_start FUN_0205C9E8 FUN_0205C9E8: ; 0x0205C9E8 ldr r3, _0205C9EC ; =FUN_0205C9D8 bx r3 .balign 4 _0205C9EC: .word FUN_0205C9D8 thumb_func_start FUN_0205C9F0 FUN_0205C9F0: ; 0x0205C9F0 push {r3-r7, lr} sub sp, #0x8 add r5, r1, #0x0 mov r0, #0x0 add r4, r2, #0x0 add r6, r3, #0x0 str r0, [sp, #0x4] add r0, r5, #0x0 add r1, sp, #0x0 add r2, sp, #0x4 mov r3, #0x1 bl FUN_020580F4 cmp r0, #0x0 beq _0205CA40 add r7, sp, #0x0 _0205CA10: ldr r0, [sp, #0x0] cmp r0, r4 beq _0205CA30 bl FUN_0205C768 sub r0, r0, #0x1 cmp r0, #0x1 bhi _0205CA30 ldr r0, [sp, #0x0] bl FUN_0205C9D8 cmp r6, r0 bne _0205CA30 ldr r0, [sp, #0x0] add sp, #0x8 pop {r3-r7, pc} _0205CA30: add r0, r5, #0x0 add r1, r7, #0x0 add r2, sp, #0x4 mov r3, #0x1 bl FUN_020580F4 cmp r0, #0x0 bne _0205CA10 _0205CA40: bl ErrorHandling mov r0, #0x0 add sp, #0x8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0205CA4C FUN_0205CA4C: ; 0x0205CA4C push {r3-r4, lr} sub sp, #0xc ldr r4, [sp, #0x18] str r4, [sp, #0x0] ldr r4, [sp, #0x1c] str r4, [sp, #0x4] ldr r4, [sp, #0x20] str r4, [sp, #0x8] bl FUN_0205CA80 add sp, #0xc pop {r3-r4, pc} thumb_func_start FUN_0205CA64 FUN_0205CA64: ; 0x0205CA64 push {r4, lr} add r4, r0, #0x0 bne _0205CA6E bl ErrorHandling _0205CA6E: add r0, r4, #0x0 bl FUN_0205CAD4 pop {r4, pc} .balign 4 thumb_func_start FUN_0205CA78 FUN_0205CA78: ; 0x0205CA78 ldr r3, _0205CA7C ; =FUN_0205CAE0 bx r3 .balign 4 _0205CA7C: .word FUN_0205CAE0 thumb_func_start FUN_0205CA80 FUN_0205CA80: ; 0x0205CA80 push {r3-r7, lr} add r5, r0, #0x0 add r6, r1, #0x0 mov r0, #0x4 mov r1, #0x2c add r7, r2, #0x0 str r3, [sp, #0x0] bl FUN_020169D8 add r4, r0, #0x0 bne _0205CA9A bl ErrorHandling _0205CA9A: add r0, r4, #0x0 mov r1, #0x0 mov r2, #0x2c blx FUN_020DF4A4 ldr r0, [sp, #0x0] str r7, [r4, #0x8] str r0, [r4, #0xc] ldr r0, [sp, #0x18] add r1, r4, #0x0 str r0, [r4, #0x10] ldr r0, [sp, #0x1c] mov r2, #0xff str r0, [r4, #0x14] ldr r0, [sp, #0x20] str r0, [r4, #0x18] str r5, [r4, #0x24] ldr r0, _0205CAD0 ; =FUN_0205CAF8 str r6, [r4, #0x28] bl FUN_0200CA44 add r4, r0, #0x0 bne _0205CACC bl ErrorHandling _0205CACC: add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 _0205CAD0: .word FUN_0205CAF8 thumb_func_start FUN_0205CAD4 FUN_0205CAD4: ; 0x0205CAD4 push {r3, lr} bl FUN_0201B6C8 ldr r0, [r0, #0x4] pop {r3, pc} .balign 4 thumb_func_start FUN_0205CAE0 FUN_0205CAE0: ; 0x0205CAE0 push {r4, lr} add r4, r0, #0x0 bl FUN_0201B6C8 add r1, r0, #0x0 mov r0, #0x4 bl FUN_02016A8C add r0, r4, #0x0 bl FUN_0200CAB4 pop {r4, pc} thumb_func_start FUN_0205CAF8 FUN_0205CAF8: ; 0x0205CAF8 push {r3-r5, lr} ldr r4, _0205CB10 ; =0x020F71B8 add r5, r1, #0x0 _0205CAFE: ldr r1, [r5, #0x0] add r0, r5, #0x0 lsl r1, r1, #0x2 ldr r1, [r4, r1] blx r1 cmp r0, #0x1 beq _0205CAFE pop {r3-r5, pc} nop _0205CB10: .word 0x020F71B8 thumb_func_start FUN_0205CB14 FUN_0205CB14: ; 0x0205CB14 push {r3-r5, lr} add r5, r0, #0x0 ldr r4, [r5, #0x24] add r0, r4, #0x0 bl FUN_02058854 cmp r0, #0x1 bne _0205CB2A add r0, r4, #0x0 bl FUN_02058914 _0205CB2A: mov r0, #0x1 str r0, [r5, #0x0] pop {r3-r5, pc} thumb_func_start FUN_0205CB30 FUN_0205CB30: ; 0x0205CB30 push {r3-r5, lr} add r4, r0, #0x0 ldr r5, [r4, #0x24] add r0, r5, #0x0 bl FUN_02058854 cmp r0, #0x1 bne _0205CB44 mov r0, #0x0 pop {r3-r5, pc} _0205CB44: ldr r0, [r4, #0x24] ldr r1, [r4, #0x8] bl FUN_021F1EC0 add r0, r5, #0x0 mov r1, #0x40 bl FUN_02058410 mov r0, #0x2 str r0, [r4, #0x0] mov r0, #0x1 pop {r3-r5, pc} thumb_func_start FUN_0205CB5C FUN_0205CB5C: ; 0x0205CB5C push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x28] bl FUN_020553A0 bl FUN_0205AE28 cmp r0, #0x0 bne _0205CB72 mov r0, #0x0 pop {r4, pc} _0205CB72: ldr r0, [r4, #0x24] bl FUN_02058480 sub r0, #0x33 cmp r0, #0x3 bhi _0205CB9A add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0205CB8A: ; jump table (using 16-bit offset) .short _0205CB92 - _0205CB8A - 2; case 0 .short _0205CB92 - _0205CB8A - 2; case 1 .short _0205CB92 - _0205CB8A - 2; case 2 .short _0205CB92 - _0205CB8A - 2; case 3 _0205CB92: mov r0, #0x7 str r0, [r4, #0x0] mov r0, #0x1 pop {r4, pc} _0205CB9A: mov r0, #0x3 str r0, [r4, #0x0] mov r0, #0x1 pop {r4, pc} .balign 4 thumb_func_start FUN_0205CBA4 FUN_0205CBA4: ; 0x0205CBA4 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x24] bl FUN_0205AD98 cmp r0, #0x0 bne _0205CBB6 mov r0, #0x0 pop {r4, pc} _0205CBB6: mov r0, #0x0 ldr r1, [r4, #0x8] mvn r0, r0 cmp r1, r0 bne _0205CBC4 bl ErrorHandling _0205CBC4: ldr r0, [r4, #0x8] mov r1, #0x0 bl FUN_0205AFDC add r1, r0, #0x0 ldr r0, [r4, #0x24] bl FUN_0205ADDC mov r0, #0x4 str r0, [r4, #0x0] mov r0, #0x0 pop {r4, pc} thumb_func_start FUN_0205CBDC FUN_0205CBDC: ; 0x0205CBDC push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x24] bl FUN_0205AE28 cmp r0, #0x0 bne _0205CBEE mov r0, #0x0 pop {r4, pc} _0205CBEE: mov r0, #0x5 str r0, [r4, #0x0] mov r0, #0x1 pop {r4, pc} .balign 4 thumb_func_start FUN_0205CBF8 FUN_0205CBF8: ; 0x0205CBF8 push {r4, lr} add r4, r0, #0x0 mov r1, #0x0 ldr r0, [r4, #0x24] add r2, r1, #0x0 bl FUN_021E7AC0 str r0, [r4, #0x20] mov r0, #0x6 str r0, [r4, #0x0] mov r0, #0x0 pop {r4, pc} thumb_func_start FUN_0205CC10 FUN_0205CC10: ; 0x0205CC10 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x20] bl FUN_021E799C cmp r0, #0x1 bne _0205CC28 ldr r0, [r4, #0x20] bl FUN_02064520 mov r0, #0x9 str r0, [r4, #0x0] _0205CC28: mov r0, #0x0 pop {r4, pc} thumb_func_start FUN_0205CC2C FUN_0205CC2C: ; 0x0205CC2C push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x24] mov r1, #0x65 bl FUN_0205ADDC mov r0, #0x8 str r0, [r4, #0x0] mov r0, #0x0 pop {r4, pc} thumb_func_start FUN_0205CC40 FUN_0205CC40: ; 0x0205CC40 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x24] bl FUN_0205AE28 cmp r0, #0x1 bne _0205CC52 mov r0, #0x9 str r0, [r4, #0x0] _0205CC52: mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_0205CC58 FUN_0205CC58: ; 0x0205CC58 ldr r1, [r0, #0x1c] add r1, r1, #0x1 str r1, [r0, #0x1c] cmp r1, #0x1e blt _0205CC6A mov r1, #0x0 str r1, [r0, #0x1c] mov r1, #0xa str r1, [r0, #0x0] _0205CC6A: mov r0, #0x0 bx lr .balign 4 thumb_func_start FUN_0205CC70 FUN_0205CC70: ; 0x0205CC70 ldr r1, [r0, #0xc] cmp r1, #0x1 bgt _0205CC7E mov r1, #0xd str r1, [r0, #0x0] mov r0, #0x1 bx lr _0205CC7E: mov r1, #0xb str r1, [r0, #0x0] mov r0, #0x1 bx lr .balign 4 thumb_func_start FUN_0205CC88 FUN_0205CC88: ; 0x0205CC88 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x24] bl FUN_0205AD98 cmp r0, #0x1 bne _0205CCAA ldr r0, [r4, #0x8] mov r1, #0xc bl FUN_0205AFDC add r1, r0, #0x0 ldr r0, [r4, #0x24] bl FUN_0205ADDC mov r0, #0xc str r0, [r4, #0x0] _0205CCAA: mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_0205CCB0 FUN_0205CCB0: ; 0x0205CCB0 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x24] bl FUN_0205AE28 cmp r0, #0x0 bne _0205CCC2 mov r0, #0x0 pop {r4, pc} _0205CCC2: ldr r0, [r4, #0xc] sub r0, r0, #0x1 str r0, [r4, #0xc] mov r0, #0xa str r0, [r4, #0x0] mov r0, #0x1 pop {r4, pc} thumb_func_start FUN_0205CCD0 FUN_0205CCD0: ; 0x0205CCD0 ldr r1, [r0, #0x1c] add r1, r1, #0x1 str r1, [r0, #0x1c] cmp r1, #0x8 bge _0205CCDE mov r0, #0x0 bx lr _0205CCDE: mov r1, #0x0 str r1, [r0, #0x1c] mov r1, #0xe str r1, [r0, #0x0] mov r0, #0x1 bx lr .balign 4 thumb_func_start FUN_0205CCEC FUN_0205CCEC: ; 0x0205CCEC push {r3-r7, lr} add r5, r0, #0x0 ldr r0, [r5, #0x28] bl FUN_020553A0 add r4, r0, #0x0 bl FUN_02058B2C add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02058B4C add r7, r0, #0x0 ldr r0, [r5, #0x24] bl FUN_02058B2C str r0, [sp, #0x0] ldr r0, [r5, #0x24] bl FUN_02058B4C add r3, r0, #0x0 ldr r2, [sp, #0x0] add r0, r6, #0x0 add r1, r7, #0x0 bl FUN_02059E80 add r6, r0, #0x0 ldr r0, [r5, #0x28] bl FUN_020552F8 cmp r6, r0 beq _0205CD60 ldr r0, [r5, #0x18] cmp r0, #0x0 beq _0205CD38 ldr r0, [r5, #0x14] cmp r0, #0x2 bne _0205CD60 _0205CD38: add r0, r4, #0x0 bl FUN_0205AD98 cmp r0, #0x1 bne _0205CD64 add r0, r4, #0x0 mov r1, #0x80 bl FUN_02058418 add r0, r6, #0x0 mov r1, #0x0 bl FUN_0205AFDC add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_0205ADDC mov r0, #0xf str r0, [r5, #0x0] b _0205CD64 _0205CD60: mov r0, #0x10 str r0, [r5, #0x0] _0205CD64: mov r0, #0x0 pop {r3-r7, pc} thumb_func_start FUN_0205CD68 FUN_0205CD68: ; 0x0205CD68 push {r3-r5, lr} add r4, r0, #0x0 ldr r0, [r4, #0x28] bl FUN_020553A0 add r5, r0, #0x0 bl FUN_0205AE28 cmp r0, #0x0 bne _0205CD80 mov r0, #0x0 pop {r3-r5, pc} _0205CD80: add r0, r5, #0x0 bl FUN_0205AE50 mov r0, #0x10 str r0, [r4, #0x0] mov r0, #0x1 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0205CD90 FUN_0205CD90: ; 0x0205CD90 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x24] bl FUN_0205AE50 ldr r0, [r4, #0x24] mov r1, #0x0 bl FUN_02058E90 mov r0, #0x11 str r0, [r4, #0x0] mov r0, #0x1 pop {r4, pc} .balign 4 thumb_func_start FUN_0205CDAC FUN_0205CDAC: ; 0x0205CDAC mov r1, #0x1 str r1, [r0, #0x4] mov r0, #0x0 bx lr thumb_func_start FUN_0205CDB4 FUN_0205CDB4: ; 0x0205CDB4 push {r4, lr} add r4, r0, #0x0 bl FUN_020377AC bl FUN_02024ED8 bl FUN_020254B4 add r1, r0, #0x0 beq _0205CDD2 lsl r2, r1, #0x2 ldr r1, _0205CDD4 ; =0x020F7220 add r0, r4, #0x0 ldr r1, [r1, r2] blx r1 _0205CDD2: pop {r4, pc} .balign 4 _0205CDD4: .word 0x020F7220 thumb_func_start FUN_0205CDD8 FUN_0205CDD8: ; 0x0205CDD8 push {r4, lr} add r4, r0, #0x0 bl FUN_020377AC bl FUN_02024ED8 bl FUN_020254B4 cmp r0, #0x0 beq _0205CDFA lsl r1, r0, #0x2 ldr r0, _0205CDFC ; =0x020F7200 ldr r1, [r0, r1] cmp r1, #0x0 beq _0205CDFA add r0, r4, #0x0 blx r1 _0205CDFA: pop {r4, pc} .balign 4 _0205CDFC: .word 0x020F7200 thumb_func_start FUN_0205CE00 FUN_0205CE00: ; 0x0205CE00 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 add r4, r1, #0x0 add r7, r2, #0x0 str r3, [sp, #0x4] bl FUN_020377AC bl FUN_02024ED8 bl FUN_020254B4 cmp r0, #0x0 bne _0205CE22 add sp, #0x8 mov r0, #0x0 pop {r3-r7, pc} _0205CE22: lsl r1, r0, #0x2 ldr r0, _0205CE44 ; =0x020F7240 ldr r6, [r0, r1] cmp r6, #0x0 beq _0205CE3E ldr r0, [sp, #0x20] ldr r3, [sp, #0x4] str r0, [sp, #0x0] add r0, r5, #0x0 add r1, r4, #0x0 add r2, r7, #0x0 blx r6 add sp, #0x8 pop {r3-r7, pc} _0205CE3E: mov r0, #0x0 add sp, #0x8 pop {r3-r7, pc} .balign 4 _0205CE44: .word 0x020F7240 thumb_func_start FUN_0205CE48 FUN_0205CE48: ; 0x0205CE48 cmp r0, #0x0 bne _0205CE58 mov r0, #0xc add r2, r1, #0x0 mul r2, r0 ldr r0, _0205CE74 ; =0x020F7260 ldr r0, [r0, r2] bx lr _0205CE58: cmp r0, #0x1 bne _0205CE68 mov r0, #0xc add r2, r1, #0x0 mul r2, r0 ldr r0, _0205CE78 ; =0x020F7264 ldr r0, [r0, r2] bx lr _0205CE68: mov r0, #0xc add r2, r1, #0x0 mul r2, r0 ldr r0, _0205CE7C ; =0x020F7268 ldr r0, [r0, r2] bx lr .balign 4 _0205CE74: .word 0x020F7260 _0205CE78: .word 0x020F7264 _0205CE7C: .word 0x020F7268 thumb_func_start FUN_0205CE80 FUN_0205CE80: ; 0x0205CE80 push {r3-r7, lr} add r4, r0, #0x0 add r5, r1, #0x0 str r4, [r5, #0x18] ldr r0, [r4, #0x1c] ldr r0, [r0, #0x0] str r0, [r5, #0x0] ldr r0, [r4, #0xc] bl FUN_020462AC bl FUN_0205ED3C str r0, [r5, #0x4] ldr r0, [r4, #0x38] bl FUN_020553C4 str r0, [r5, #0x8] ldr r0, [r4, #0x38] bl FUN_02055320 add r6, r0, #0x0 ldr r0, [r4, #0x38] bl FUN_0205532C add r7, r0, #0x0 add r0, r4, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 bl FUN_0204A6E0 strh r0, [r5, #0xe] ldr r0, [r4, #0x38] bl FUN_020552F8 cmp r0, #0x3 bhi _0205CEEA add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0205CED4: ; jump table (using 16-bit offset) .short _0205CEDC - _0205CED4 - 2; case 0 .short _0205CEE0 - _0205CED4 - 2; case 1 .short _0205CEE8 - _0205CED4 - 2; case 2 .short _0205CEE4 - _0205CED4 - 2; case 3 _0205CEDC: sub r7, r7, #0x1 b _0205CEEA _0205CEE0: add r7, r7, #0x1 b _0205CEEA _0205CEE4: add r6, r6, #0x1 b _0205CEEA _0205CEE8: sub r6, r6, #0x1 _0205CEEA: add r0, r4, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 bl FUN_0204A6E0 strh r0, [r5, #0xc] add r0, r4, #0x0 add r1, sp, #0x0 bl FUN_02037024 ldr r1, [sp, #0x0] add r0, r4, #0x0 bl FUN_0204B6C4 strh r0, [r5, #0x10] ldr r0, [r4, #0x38] str r0, [r5, #0x14] pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0205CF10 FUN_0205CF10: ; 0x0205CF10 push {r3-r7, lr} add r5, r0, #0x0 add r4, r1, #0x0 mov r0, #0x20 mov r1, #0xc add r6, r2, #0x0 add r7, r3, #0x0 bl FUN_02016998 str r5, [r0, #0x0] strh r4, [r0, #0x4] strh r6, [r0, #0x6] strh r7, [r0, #0x8] add r1, sp, #0x8 ldrh r1, [r1, #0x10] strh r1, [r0, #0xa] pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0205CF34 FUN_0205CF34: ; 0x0205CF34 push {r3-r7, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] add r6, r2, #0x0 bl FUN_02046528 add r7, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_0204652C add r4, r0, #0x0 add r0, r7, #0x0 bl FUN_0204649C mov r0, #0x72 mov r2, #0x0 ldr r1, _0205CF74 ; =FUN_0205CFA0 lsl r0, r0, #0x2 str r1, [r4, r0] str r2, [sp, #0x0] ldrh r1, [r5, #0x4] add r0, r6, #0x0 add r3, r2, #0x0 bl FUN_0205CF10 mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] mov r0, #0xa strh r0, [r4, #0x2a] pop {r3-r7, pc} nop _0205CF74: .word FUN_0205CFA0 thumb_func_start FUN_0205CF78 FUN_0205CF78: ; 0x0205CF78 push {r3-r4, lr} sub sp, #0x4 mov r2, #0x0 add r4, r0, #0x0 str r2, [sp, #0x0] add r0, r1, #0x0 ldrh r1, [r4, #0x28] add r3, r2, #0x0 bl FUN_0205CF10 add r2, r0, #0x0 ldr r0, [r4, #0x0] ldr r1, _0205CF9C ; =FUN_0205CFA0 bl FUN_020463CC add sp, #0x4 pop {r3-r4, pc} nop _0205CF9C: .word FUN_0205CFA0 thumb_func_start FUN_0205CFA0 FUN_0205CFA0: ; 0x0205CFA0 push {r3-r7, lr} add r7, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r7, #0x0 bl FUN_0204652C add r4, r0, #0x0 add r0, r7, #0x0 bl FUN_02046530 add r6, r0, #0x0 ldr r0, [r6, #0x0] cmp r0, #0x0 beq _0205CFC6 cmp r0, #0x1 beq _0205D016 b _0205D020 _0205CFC6: add r0, r5, #0x0 add r1, sp, #0x0 bl FUN_02037024 ldr r1, [r4, #0x0] ldr r2, [sp, #0x0] lsl r1, r1, #0x10 add r0, r7, #0x0 lsr r1, r1, #0x10 mov r3, #0x0 bl FUN_02038CD8 add r0, r5, #0x0 mov r1, #0x29 bl FUN_02039438 ldrh r1, [r4, #0x4] strh r1, [r0, #0x0] add r0, r5, #0x0 mov r1, #0x2a bl FUN_02039438 ldrh r1, [r4, #0x6] strh r1, [r0, #0x0] add r0, r5, #0x0 mov r1, #0x2b bl FUN_02039438 ldrh r1, [r4, #0x8] strh r1, [r0, #0x0] add r0, r5, #0x0 mov r1, #0x2c bl FUN_02039438 ldrh r1, [r4, #0xa] strh r1, [r0, #0x0] ldr r0, [r6, #0x0] add r0, r0, #0x1 str r0, [r6, #0x0] b _0205D020 _0205D016: add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x1 pop {r3-r7, pc} _0205D020: mov r0, #0x0 pop {r3-r7, pc} thumb_func_start FUN_0205D024 FUN_0205D024: ; 0x0205D024 push {r3-r7, lr} add r6, r0, #0x0 ldr r0, [r6, #0x0] bl FUN_02046528 add r5, r0, #0x0 ldr r0, [r6, #0x0] bl FUN_0204652C add r7, r0, #0x0 mov r0, #0xb mov r1, #0x40 bl FUN_02016998 mov r1, #0x0 mov r2, #0x40 add r4, r0, #0x0 blx FUN_020DF4A4 ldr r0, [r5, #0xc] bl FUN_0206BB1C str r0, [r4, #0x0] ldr r0, [r5, #0xc] bl FUN_0206F158 str r0, [r4, #0x4] ldr r0, [r5, #0xc] bl FUN_02025838 str r0, [r4, #0x8] ldr r0, [r5, #0xc] bl LoadPlayerDataAddress str r0, [r4, #0xc] ldr r0, [r5, #0xc] bl FUN_02022504 str r0, [r4, #0x10] mov r0, #0x7a lsl r0, r0, #0x2 add r0, r7, r0 str r0, [r4, #0x18] add r0, r4, #0x0 mov r1, #0x0 add r0, #0x21 strb r1, [r0, #0x0] add r0, r4, #0x0 mov r1, #0x5 add r0, #0x20 strb r1, [r0, #0x0] str r5, [r4, #0x1c] ldrh r0, [r6, #0x4] add r2, r4, #0x0 strh r0, [r4, #0x24] add r0, r4, #0x0 ldrb r1, [r6, #0x6] add r0, #0x22 strb r1, [r0, #0x0] ldr r1, _0205D0B4 ; =0x020F96DC add r0, r5, #0x0 bl FUN_020373D4 mov r0, #0x7e lsl r0, r0, #0x2 str r4, [r7, r0] ldr r1, _0205D0B8 ; =FUN_02035E50 add r0, r7, #0x0 bl FUN_02035D04 pop {r3-r7, pc} nop _0205D0B4: .word 0x020F96DC _0205D0B8: .word FUN_02035E50 thumb_func_start FUN_0205D0BC FUN_0205D0BC: ; 0x0205D0BC push {r3-r5, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_02046528 add r5, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_0204652C add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02037EB8 mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] ldr r1, _0205D0E8 ; =FUN_02036A78 add r0, r4, #0x0 bl FUN_02035D04 pop {r3-r5, pc} nop _0205D0E8: .word FUN_02036A78 thumb_func_start FUN_0205D0EC FUN_0205D0EC: ; 0x0205D0EC push {r3, lr} ldr r1, _0205D0F8 ; =FUN_0205D0FC bl FUN_0205DD04 mov r0, #0x1 pop {r3, pc} .balign 4 _0205D0F8: .word FUN_0205D0FC thumb_func_start FUN_0205D0FC FUN_0205D0FC: ; 0x0205D0FC ldr r3, _0205D100 ; =FUN_02037EB8 bx r3 .balign 4 _0205D100: .word FUN_02037EB8 thumb_func_start FUN_0205D104 FUN_0205D104: ; 0x0205D104 push {r3-r5, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_02046528 add r5, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_0204652C add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0204649C mov r0, #0x72 ldr r1, _0205D140 ; =FUN_02049844 lsl r0, r0, #0x2 str r1, [r4, r0] add r0, r5, #0x0 bl FUN_0204976C mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] mov r0, #0xa strh r0, [r4, #0x2a] mov r0, #0x0 add r5, #0x8c str r0, [r5, #0x0] pop {r3-r5, pc} nop _0205D140: .word FUN_02049844 thumb_func_start FUN_0205D144 FUN_0205D144: ; 0x0205D144 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_0204976C add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0x34] bl FUN_02058780 ldr r0, [r5, #0x0] ldr r1, _0205D16C ; =FUN_02049844 add r2, r4, #0x0 bl FUN_020463CC ldr r1, [r5, #0x0] mov r0, #0x0 add r1, #0x8c str r0, [r1, #0x0] pop {r3-r5, pc} .balign 4 _0205D16C: .word FUN_02049844 thumb_func_start FUN_0205D170 FUN_0205D170: ; 0x0205D170 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_02034824 cmp r0, #0x0 bne _0205D184 mov r0, #0x0 mvn r0, r0 pop {r3-r5, pc} _0205D184: ldr r0, [r5, #0x0] bl FUN_02034908 cmp r0, #0x0 bne _0205D194 mov r0, #0x0 mvn r0, r0 pop {r3-r5, pc} _0205D194: ldr r0, [r5, #0x14] bl FUN_02055738 cmp r0, #0x1 bne _0205D1A4 mov r0, #0x0 mvn r0, r0 pop {r3-r5, pc} _0205D1A4: ldr r0, [r5, #0x18] ldr r0, [r0, #0xc] bl FUN_020462AC bl FUN_0205F214 cmp r0, #0x1 beq _0205D1C4 ldr r0, [r5, #0x18] ldr r0, [r0, #0xc] bl FUN_020462AC bl FUN_0205F244 cmp r0, #0x1 bne _0205D1CA _0205D1C4: mov r0, #0x0 mvn r0, r0 pop {r3-r5, pc} _0205D1CA: ldr r0, [r5, #0x14] bl FUN_020553C4 cmp r0, #0x2 bne _0205D1DA mov r0, #0x0 mvn r0, r0 pop {r3-r5, pc} _0205D1DA: ldrh r0, [r5, #0xe] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_02054B78 cmp r0, #0x1 bne _0205D1EE mov r0, #0x0 mvn r0, r0 pop {r3-r5, pc} _0205D1EE: ldr r0, [r5, #0x18] ldr r0, [r0, #0x38] bl FUN_02055320 lsl r0, r0, #0x10 lsr r4, r0, #0x10 ldr r0, [r5, #0x18] ldr r0, [r0, #0x38] bl FUN_0205532C lsl r0, r0, #0x10 lsr r2, r0, #0x10 ldr r0, [r5, #0x18] add r1, r4, #0x0 bl FUN_02034D44 cmp r0, #0x0 bne _0205D218 mov r0, #0x0 mvn r0, r0 pop {r3-r5, pc} _0205D218: mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0205D21C FUN_0205D21C: ; 0x0205D21C push {r3-r5, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_02046528 add r5, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_0204652C add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0204649C mov r0, #0x72 ldr r1, _0205D24C ; =FUN_0205D264 lsl r0, r0, #0x2 str r1, [r4, r0] mov r1, #0x0 add r0, #0x30 str r1, [r4, r0] mov r0, #0xa strh r0, [r4, #0x2a] pop {r3-r5, pc} nop _0205D24C: .word FUN_0205D264 thumb_func_start FUN_0205D250 FUN_0205D250: ; 0x0205D250 push {r3, lr} ldr r0, [r0, #0x0] ldr r1, _0205D260 ; =FUN_0205D264 mov r2, #0x0 bl FUN_020463CC mov r0, #0x0 pop {r3, pc} .balign 4 _0205D260: .word FUN_0205D264 thumb_func_start FUN_0205D264 FUN_0205D264: ; 0x0205D264 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02046528 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02046530 add r5, r0, #0x0 ldr r0, [r5, #0x0] cmp r0, #0x3 bhi _0205D324 add r1, r0, r0 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0205D288: ; jump table (using 16-bit offset) .short _0205D290 - _0205D288 - 2; case 0 .short _0205D296 - _0205D288 - 2; case 1 .short _0205D314 - _0205D288 - 2; case 2 .short _0205D31A - _0205D288 - 2; case 3 _0205D290: add r0, r0, #0x1 str r0, [r5, #0x0] b _0205D324 _0205D296: ldr r0, [r4, #0x38] bl FUN_020553C4 cmp r0, #0x1 bne _0205D2D6 ldr r0, [r4, #0x38] bl FUN_020553A0 bl FUN_02058914 ldr r0, [r4, #0x38] mov r1, #0x1 bl FUN_021E5FD8 ldr r0, [r4, #0x38] bl FUN_021E5FE0 add r0, r4, #0x0 mov r1, #0x0 bl FUN_0204AB20 ldr r1, [r4, #0x1c] add r0, r4, #0x0 ldr r1, [r1, #0x0] bl FUN_0204AB58 add r1, r0, #0x0 add r0, r4, #0x0 mov r2, #0x1 bl FUN_0204ABDC b _0205D30C _0205D2D6: mov r1, #0x12 add r0, r4, #0x0 lsl r1, r1, #0x6 bl FUN_0204AB20 mov r1, #0x12 add r0, r4, #0x0 lsl r1, r1, #0x6 mov r2, #0x1 bl FUN_0204ABDC ldr r0, [r4, #0x38] bl FUN_020553A0 bl FUN_02058914 ldr r0, [r4, #0x38] mov r1, #0x2 bl FUN_021E5FD8 ldr r0, [r4, #0x38] bl FUN_021E5FE0 add r4, #0x90 ldr r0, [r4, #0x0] bl FUN_0205DD40 _0205D30C: ldr r0, [r5, #0x0] add r0, r0, #0x1 str r0, [r5, #0x0] b _0205D324 _0205D314: add r0, r0, #0x1 str r0, [r5, #0x0] b _0205D324 _0205D31A: ldr r0, [r4, #0x34] bl FUN_020587B0 mov r0, #0x1 pop {r3-r5, pc} _0205D324: mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0205D328 FUN_0205D328: ; 0x0205D328 push {r3-r5, lr} add r4, r0, #0x0 ldr r0, [r4, #0x4] cmp r0, #0x1 bne _0205D336 mov r0, #0x2 pop {r3-r5, pc} _0205D336: ldr r0, [r4, #0x14] bl FUN_02055738 cmp r0, #0x1 bne _0205D344 mov r0, #0x1 pop {r3-r5, pc} _0205D344: ldr r0, [r4, #0x14] bl FUN_020553A0 ldrh r1, [r4, #0xe] add r5, r0, #0x0 bl FUN_02059BB4 cmp r0, #0x1 beq _0205D362 ldrh r1, [r4, #0xe] add r0, r5, #0x0 bl FUN_02059BD4 cmp r0, #0x1 bne _0205D366 _0205D362: mov r0, #0x1 pop {r3-r5, pc} _0205D366: ldrh r0, [r4, #0xe] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_02054798 cmp r0, #0x1 beq _0205D390 ldrh r0, [r4, #0xe] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_02054974 cmp r0, #0x1 beq _0205D390 ldrh r0, [r4, #0xe] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_02054990 cmp r0, #0x1 bne _0205D396 _0205D390: mov r0, #0x0 mvn r0, r0 pop {r3-r5, pc} _0205D396: ldr r0, [r4, #0x0] bl FUN_020348B4 cmp r0, #0x0 bne _0205D3A6 mov r0, #0x0 mvn r0, r0 pop {r3-r5, pc} _0205D3A6: ldr r0, [r4, #0x8] cmp r0, #0x2 bne _0205D3B2 mov r0, #0x0 mvn r0, r0 pop {r3-r5, pc} _0205D3B2: mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0205D3B8 FUN_0205D3B8: ; 0x0205D3B8 push {r3-r5, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_02046528 add r5, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_0204652C add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x0 bl FUN_02037944 ldr r1, _0205D3E0 ; =FUN_02036B90 add r0, r4, #0x0 bl FUN_02035D04 pop {r3-r5, pc} nop _0205D3E0: .word FUN_02036B90 thumb_func_start FUN_0205D3E4 FUN_0205D3E4: ; 0x0205D3E4 push {r3, lr} ldr r1, _0205D3F0 ; =FUN_0205D3F4 bl FUN_0205DD04 mov r0, #0x1 pop {r3, pc} .balign 4 _0205D3F0: .word FUN_0205D3F4 thumb_func_start FUN_0205D3F4 FUN_0205D3F4: ; 0x0205D3F4 push {r3, lr} mov r1, #0x0 bl FUN_02037944 mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_0205D400 FUN_0205D400: ; 0x0205D400 push {r3-r7, lr} add r6, r0, #0x0 ldr r0, [r6, #0x0] bl FUN_02046528 add r5, r0, #0x0 ldr r0, [r6, #0x0] bl FUN_0204652C add r7, r0, #0x0 mov r0, #0xb mov r1, #0x40 bl FUN_02016998 mov r1, #0x0 mov r2, #0x40 add r4, r0, #0x0 blx FUN_020DF4A4 ldr r0, [r5, #0xc] bl FUN_0206BB1C str r0, [r4, #0x0] ldr r0, [r5, #0xc] bl FUN_0206F158 str r0, [r4, #0x4] ldr r0, [r5, #0xc] bl FUN_02025838 str r0, [r4, #0x8] ldr r0, [r5, #0xc] bl LoadPlayerDataAddress str r0, [r4, #0xc] mov r0, #0x7a lsl r0, r0, #0x2 add r0, r7, r0 str r0, [r4, #0x18] add r0, r4, #0x0 mov r1, #0x0 add r0, #0x21 strb r1, [r0, #0x0] add r0, r4, #0x0 mov r1, #0x6 add r0, #0x20 strb r1, [r0, #0x0] str r5, [r4, #0x1c] ldrh r0, [r6, #0x4] strh r0, [r4, #0x24] add r0, r4, #0x0 ldrb r1, [r6, #0x6] add r0, #0x22 strb r1, [r0, #0x0] ldrh r0, [r6, #0x4] bl FUN_0206EA30 strh r0, [r4, #0x26] ldr r1, _0205D490 ; =0x020F96DC add r0, r5, #0x0 add r2, r4, #0x0 bl FUN_020373D4 mov r0, #0x7e lsl r0, r0, #0x2 str r4, [r7, r0] ldr r1, _0205D494 ; =FUN_02035E50 add r0, r7, #0x0 bl FUN_02035D04 pop {r3-r7, pc} nop _0205D490: .word 0x020F96DC _0205D494: .word FUN_02035E50 thumb_func_start FUN_0205D498 FUN_0205D498: ; 0x0205D498 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_02046528 add r6, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_0204652C add r4, r0, #0x0 ldrh r0, [r5, #0x4] bl FUN_0206EAB8 add r2, r0, #0x0 add r0, r6, #0x0 mov r1, #0x3 mov r3, #0xb bl FUN_02037F58 add r6, r0, #0x0 ldrh r0, [r5, #0x4] mov r1, #0x3 mov r2, #0x0 bl FUN_02036BC4 mov r1, #0x7f lsl r1, r1, #0x2 str r0, [r4, r1] sub r0, r1, #0x4 str r6, [r4, r0] ldr r1, _0205D4E0 ; =FUN_02036BDC add r0, r4, #0x0 bl FUN_02035D04 pop {r4-r6, pc} nop _0205D4E0: .word FUN_02036BDC thumb_func_start FUN_0205D4E4 FUN_0205D4E4: ; 0x0205D4E4 mov r0, #0x0 bx lr thumb_func_start FUN_0205D4E8 FUN_0205D4E8: ; 0x0205D4E8 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] add r4, r1, #0x0 bl FUN_02046528 ldr r0, [r5, #0x0] bl FUN_0204652C ldrh r1, [r4, #0x10] mov r0, #0x1 tst r0, r1 beq _0205D50E ldr r2, _0205D518 ; =0x00000AF1 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0205CF34 pop {r3-r5, pc} _0205D50E: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0205D024 pop {r3-r5, pc} .balign 4 _0205D518: .word 0x00000AF1 thumb_func_start FUN_0205D51C FUN_0205D51C: ; 0x0205D51C ldrh r1, [r0, #0x10] mov r0, #0x1 tst r1, r0 bne _0205D526 mov r0, #0x0 _0205D526: bx lr thumb_func_start FUN_0205D528 FUN_0205D528: ; 0x0205D528 push {r3-r5, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_02046528 add r5, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_0204652C add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0xb bl FUN_02037FC4 mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] ldr r1, _0205D554 ; =FUN_02036D94 add r0, r4, #0x0 bl FUN_02035D04 pop {r3-r5, pc} .balign 4 _0205D554: .word FUN_02036D94 thumb_func_start FUN_0205D558 FUN_0205D558: ; 0x0205D558 push {r3, lr} ldr r1, _0205D564 ; =FUN_0205D568 bl FUN_0205DD04 mov r0, #0x1 pop {r3, pc} .balign 4 _0205D564: .word FUN_0205D568 thumb_func_start FUN_0205D568 FUN_0205D568: ; 0x0205D568 ldr r3, _0205D570 ; =FUN_02037FC4 mov r1, #0xb bx r3 nop _0205D570: .word FUN_02037FC4 thumb_func_start FUN_0205D574 FUN_0205D574: ; 0x0205D574 push {r3-r5, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_02046528 add r5, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_0204652C add r4, r0, #0x0 ldr r1, [r5, #0xc] add r0, r5, #0x0 bl FUN_0203846C mov r0, #0x7e mov r1, #0x0 lsl r0, r0, #0x2 str r1, [r4, r0] ldr r1, _0205D5A4 ; =FUN_02036DD4 add r0, r4, #0x0 bl FUN_02035D04 pop {r3-r5, pc} nop _0205D5A4: .word FUN_02036DD4 thumb_func_start FUN_0205D5A8 FUN_0205D5A8: ; 0x0205D5A8 push {r3, lr} ldr r1, _0205D5B4 ; =FUN_0205D5B8 bl FUN_0205DD04 mov r0, #0x1 pop {r3, pc} .balign 4 _0205D5B4: .word FUN_0205D5B8 thumb_func_start FUN_0205D5B8 FUN_0205D5B8: ; 0x0205D5B8 push {r3, lr} ldr r1, [r0, #0xc] bl FUN_0203846C mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_0205D5C4 FUN_0205D5C4: ; 0x0205D5C4 push {r4-r6, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_02046528 add r6, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_0204652C add r5, r0, #0x0 mov r0, #0xb mov r1, #0x4 bl FUN_020169D8 add r4, r0, #0x0 mov r0, #0x0 str r0, [r4, #0x0] add r0, r6, #0x0 bl FUN_0204649C mov r0, #0x72 ldr r1, _0205D600 ; =FUN_0205E30C lsl r0, r0, #0x2 str r1, [r5, r0] add r0, #0x30 str r4, [r5, r0] mov r0, #0xa strh r0, [r5, #0x2a] pop {r4-r6, pc} nop _0205D600: .word FUN_0205E30C thumb_func_start FUN_0205D604 FUN_0205D604: ; 0x0205D604 push {r4, lr} add r4, r0, #0x0 mov r0, #0xb mov r1, #0x4 bl FUN_020169D8 add r2, r0, #0x0 mov r0, #0x0 str r0, [r2, #0x0] ldr r0, [r4, #0x0] ldr r1, _0205D624 ; =FUN_0205E30C bl FUN_020463CC mov r0, #0x0 pop {r4, pc} nop _0205D624: .word FUN_0205E30C thumb_func_start FUN_0205D628 FUN_0205D628: ; 0x0205D628 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x4] cmp r0, #0x1 bne _0205D636 mov r0, #0x2 pop {r4, pc} _0205D636: ldr r0, [r4, #0x18] ldr r0, [r0, #0x38] bl FUN_020553C4 cmp r0, #0x1 bne _0205D648 mov r0, #0x0 mvn r0, r0 pop {r4, pc} _0205D648: ldrh r0, [r4, #0xe] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_0205478C cmp r0, #0x0 beq _0205D65A mov r0, #0x0 pop {r4, pc} _0205D65A: mov r0, #0x0 mvn r0, r0 pop {r4, pc} thumb_func_start FUN_0205D660 FUN_0205D660: ; 0x0205D660 ldr r3, _0205D668 ; =FUN_0205CF34 ldr r2, _0205D66C ; =0x00000AF2 bx r3 nop _0205D668: .word FUN_0205CF34 _0205D66C: .word 0x00000AF2 thumb_func_start FUN_0205D670 FUN_0205D670: ; 0x0205D670 push {r3, lr} ldr r1, _0205D67C ; =0x00000AF2 bl FUN_0205CF78 mov r0, #0x0 pop {r3, pc} .balign 4 _0205D67C: .word 0x00000AF2 thumb_func_start FUN_0205D680 FUN_0205D680: ; 0x0205D680 ldr r1, [r0, #0x4] cmp r1, #0x1 bne _0205D68A mov r0, #0x2 bx lr _0205D68A: ldrh r1, [r0, #0x10] mov r0, #0x4 tst r1, r0 beq _0205D696 mov r0, #0x0 bx lr _0205D696: sub r0, r0, #0x5 bx lr .balign 4 thumb_func_start FUN_0205D69C FUN_0205D69C: ; 0x0205D69C ldr r3, _0205D6A4 ; =FUN_0205CF34 ldr r2, _0205D6A8 ; =0x00000AF3 bx r3 nop _0205D6A4: .word FUN_0205CF34 _0205D6A8: .word 0x00000AF3 thumb_func_start FUN_0205D6AC FUN_0205D6AC: ; 0x0205D6AC ldrh r1, [r0, #0x10] mov r0, #0x2 tst r1, r0 beq _0205D6B8 mov r0, #0x0 bx lr _0205D6B8: sub r0, r0, #0x3 bx lr thumb_func_start FUN_0205D6BC FUN_0205D6BC: ; 0x0205D6BC push {r3-r7, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_02046528 add r6, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_0204652C add r4, r0, #0x0 add r0, r6, #0x0 bl FUN_0204649C bl FUN_021F57EC str r0, [sp, #0x0] ldr r1, [sp, #0x0] mov r0, #0xb bl FUN_020169D8 ldr r2, [sp, #0x0] mov r1, #0x0 add r7, r0, #0x0 blx FUN_020DF4A4 mov r0, #0x72 ldr r1, _0205D710 ; =0x021F57F1 lsl r0, r0, #0x2 str r1, [r4, r0] add r0, #0x30 str r7, [r4, r0] mov r0, #0xa strh r0, [r4, #0x2a] ldr r0, [r6, #0xc] bl FUN_0206F158 ldrh r1, [r5, #0x4] mov r2, #0x1 mov r3, #0xb bl FUN_0206EDD4 pop {r3-r7, pc} .balign 4 _0205D710: .word 0x021F57F1 thumb_func_start FUN_0205D714 FUN_0205D714: ; 0x0205D714 ldr r3, _0205D71C ; =FUN_0205CF34 ldr r2, _0205D720 ; =0x000022F6 bx r3 nop _0205D71C: .word FUN_0205CF34 _0205D720: .word 0x000022F6 thumb_func_start FUN_0205D724 FUN_0205D724: ; 0x0205D724 push {r3, lr} ldr r1, _0205D730 ; =0x000022F6 bl FUN_0205CF78 mov r0, #0x0 pop {r3, pc} .balign 4 _0205D730: .word 0x000022F6 thumb_func_start FUN_0205D734 FUN_0205D734: ; 0x0205D734 push {r3, lr} ldr r0, [r0, #0x0] bl FUN_02034908 cmp r0, #0x0 beq _0205D744 mov r0, #0x0 pop {r3, pc} _0205D744: mov r0, #0x0 mvn r0, r0 pop {r3, pc} .balign 4 thumb_func_start FUN_0205D74C FUN_0205D74C: ; 0x0205D74C push {r3-r5, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_02046528 add r5, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_0204652C add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0204649C mov r0, #0x72 ldr r1, _0205D784 ; =0x021F5C71 lsl r0, r0, #0x2 str r1, [r4, r0] add r0, r5, #0x0 mov r1, #0xb mov r2, #0x0 bl FUN_021F5C44 mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] mov r0, #0xa strh r0, [r4, #0x2a] pop {r3-r5, pc} .balign 4 _0205D784: .word 0x021F5C71 thumb_func_start FUN_0205D788 FUN_0205D788: ; 0x0205D788 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] mov r1, #0x4 mov r2, #0x0 bl FUN_021F5C44 add r2, r0, #0x0 ldr r0, [r4, #0x0] ldr r1, _0205D7A4 ; =0x021F5C71 bl FUN_020463CC mov r0, #0x0 pop {r4, pc} .balign 4 _0205D7A4: .word 0x021F5C71 thumb_func_start FUN_0205D7A8 FUN_0205D7A8: ; 0x0205D7A8 push {r3-r5, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_02046528 add r5, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_0204652C add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0204649C mov r0, #0x72 ldr r1, _0205D7E0 ; =0x021F5C71 lsl r0, r0, #0x2 str r1, [r4, r0] add r0, r5, #0x0 mov r1, #0xb mov r2, #0x1 bl FUN_021F5C44 mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] mov r0, #0xa strh r0, [r4, #0x2a] pop {r3-r5, pc} .balign 4 _0205D7E0: .word 0x021F5C71 thumb_func_start FUN_0205D7E4 FUN_0205D7E4: ; 0x0205D7E4 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] mov r1, #0x4 mov r2, #0x1 bl FUN_021F5C44 add r2, r0, #0x0 ldr r0, [r4, #0x0] ldr r1, _0205D800 ; =0x021F5C71 bl FUN_020463CC mov r0, #0x0 pop {r4, pc} .balign 4 _0205D800: .word 0x021F5C71 thumb_func_start FUN_0205D804 FUN_0205D804: ; 0x0205D804 push {r3-r5, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_02046528 add r5, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_0204652C add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0204649C mov r0, #0x72 ldr r1, _0205D83C ; =0x021F5C71 lsl r0, r0, #0x2 str r1, [r4, r0] add r0, r5, #0x0 mov r1, #0xb mov r2, #0x2 bl FUN_021F5C44 mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] mov r0, #0xa strh r0, [r4, #0x2a] pop {r3-r5, pc} .balign 4 _0205D83C: .word 0x021F5C71 thumb_func_start FUN_0205D840 FUN_0205D840: ; 0x0205D840 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] mov r1, #0x4 mov r2, #0x2 bl FUN_021F5C44 add r2, r0, #0x0 ldr r0, [r4, #0x0] ldr r1, _0205D85C ; =0x021F5C71 bl FUN_020463CC mov r0, #0x0 pop {r4, pc} .balign 4 _0205D85C: .word 0x021F5C71 thumb_func_start FUN_0205D860 FUN_0205D860: ; 0x0205D860 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x4] cmp r0, #0x1 bne _0205D86E mov r0, #0x2 pop {r4, pc} _0205D86E: ldrh r0, [r4, #0xc] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_0205481C cmp r0, #0x1 bne _0205D8B0 ldrh r0, [r4, #0xe] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_02054B78 cmp r0, #0x1 beq _0205D898 ldrh r0, [r4, #0xe] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_02054B6C cmp r0, #0x1 bne _0205D8AC _0205D898: ldr r0, [r4, #0x14] bl FUN_020553A0 bl FUN_02058A68 cmp r0, #0x1 bne _0205D8AC mov r0, #0x0 mvn r0, r0 pop {r4, pc} _0205D8AC: mov r0, #0x0 pop {r4, pc} _0205D8B0: mov r0, #0x0 mvn r0, r0 pop {r4, pc} .balign 4 thumb_func_start FUN_0205D8B8 FUN_0205D8B8: ; 0x0205D8B8 push {r3-r5, lr} add r5, r0, #0x0 mov r0, #0xb mov r1, #0x18 bl FUN_02016998 add r4, r0, #0x0 mov r0, #0x0 strh r0, [r4, #0x16] mov r0, #0x80 mov r1, #0xb bl FUN_020219F4 str r0, [r4, #0x10] ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_0206F158 bl FUN_0206EBC4 add r2, r0, #0x0 ldr r0, [r5, #0x0] lsl r2, r2, #0x10 ldr r0, [r0, #0xc] ldr r1, [r4, #0x10] lsr r2, r2, #0x10 mov r3, #0xb bl FUN_0206E3F8 ldr r0, [r5, #0x0] ldr r1, _0205D900 ; =FUN_0205D904 add r2, r4, #0x0 bl FUN_020463CC mov r0, #0x0 pop {r3-r5, pc} .balign 4 _0205D900: .word FUN_0205D904 thumb_func_start FUN_0205D904 FUN_0205D904: ; 0x0205D904 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldrh r0, [r4, #0x16] cmp r0, #0x0 beq _0205D926 cmp r0, #0x1 beq _0205D95C cmp r0, #0x2 beq _0205D984 b _0205D9A0 _0205D926: ldr r0, [r5, #0x34] bl FUN_02058780 ldr r0, [r5, #0x8] add r1, r4, #0x0 mov r2, #0x3 bl FUN_020545B8 ldr r0, [r5, #0xc] bl LoadPlayerDataAddress add r5, r0, #0x0 add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_02054608 ldr r1, [r4, #0x10] add r0, r4, #0x0 add r2, r5, #0x0 mov r3, #0x1 bl FUN_02054658 strh r0, [r4, #0x14] ldrh r0, [r4, #0x16] add r0, r0, #0x1 strh r0, [r4, #0x16] b _0205D9A0 _0205D95C: ldrh r0, [r4, #0x14] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_020546C8 cmp r0, #0x1 bne _0205D9A0 ldr r0, _0205D9A4 ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #0xf3 tst r0, r1 beq _0205D9A0 add r0, r4, #0x0 mov r1, #0x0 bl FUN_0200D0E0 ldrh r0, [r4, #0x16] add r0, r0, #0x1 strh r0, [r4, #0x16] b _0205D9A0 _0205D984: ldr r0, [r5, #0x34] bl FUN_020587B0 add r0, r4, #0x0 bl FUN_02019178 ldr r0, [r4, #0x10] bl FUN_02021A20 add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x1 pop {r3-r5, pc} _0205D9A0: mov r0, #0x0 pop {r3-r5, pc} .balign 4 _0205D9A4: .word 0x021C48B8 thumb_func_start FUN_0205D9A8 FUN_0205D9A8: ; 0x0205D9A8 push {r3-r7, lr} add r6, r0, #0x0 ldr r0, [r6, #0x0] bl FUN_02046528 add r5, r0, #0x0 ldr r0, [r6, #0x0] bl FUN_0204652C add r7, r0, #0x0 mov r0, #0xb mov r1, #0x40 bl FUN_02016998 mov r1, #0x0 mov r2, #0x40 add r4, r0, #0x0 blx FUN_020DF4A4 ldr r0, [r5, #0xc] bl FUN_0206BB1C str r0, [r4, #0x0] ldr r0, [r5, #0xc] bl FUN_0206F158 str r0, [r4, #0x4] ldr r0, [r5, #0xc] bl FUN_02025838 str r0, [r4, #0x8] ldr r0, [r5, #0xc] bl LoadPlayerDataAddress str r0, [r4, #0xc] ldr r0, [r5, #0xc] bl FUN_02022504 str r0, [r4, #0x10] mov r0, #0x7a lsl r0, r0, #0x2 add r0, r7, r0 str r0, [r4, #0x18] add r0, r4, #0x0 mov r1, #0x0 add r0, #0x21 strb r1, [r0, #0x0] add r0, r4, #0x0 mov r1, #0x10 add r0, #0x20 strb r1, [r0, #0x0] ldrh r0, [r6, #0x4] add r2, r4, #0x0 strh r0, [r4, #0x24] add r0, r4, #0x0 ldrb r1, [r6, #0x6] add r0, #0x22 strb r1, [r0, #0x0] ldr r1, _0205DA34 ; =0x020F96DC add r0, r5, #0x0 bl FUN_020373D4 mov r0, #0x7e lsl r0, r0, #0x2 str r4, [r7, r0] ldr r1, _0205DA38 ; =FUN_02035E50 add r0, r7, #0x0 bl FUN_02035D04 pop {r3-r7, pc} .balign 4 _0205DA34: .word 0x020F96DC _0205DA38: .word FUN_02035E50 thumb_func_start FUN_0205DA3C FUN_0205DA3C: ; 0x0205DA3C push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_02046528 add r6, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_0204652C add r4, r0, #0x0 add r0, r6, #0x0 bl FUN_0204649C mov r0, #0x72 ldr r1, _0205DA7C ; =FUN_0205DAAC lsl r0, r0, #0x2 str r1, [r4, r0] mov r1, #0x0 add r0, #0x30 str r1, [r4, r0] mov r0, #0xa strh r0, [r4, #0x2a] ldr r0, [r6, #0xc] bl FUN_0206F158 ldrh r1, [r5, #0x4] mov r2, #0x1 mov r3, #0xb bl FUN_0206EDD4 pop {r4-r6, pc} nop _0205DA7C: .word FUN_0205DAAC thumb_func_start FUN_0205DA80 FUN_0205DA80: ; 0x0205DA80 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x4] cmp r0, #0x1 bne _0205DA8E mov r0, #0x2 pop {r4, pc} _0205DA8E: ldr r0, [r4, #0x0] bl FUN_02034930 cmp r0, #0x1 bne _0205DAA6 ldr r0, [r4, #0x0] bl FUN_0203487C cmp r0, #0x1 bne _0205DAA6 mov r0, #0x0 pop {r4, pc} _0205DAA6: mov r0, #0x0 mvn r0, r0 pop {r4, pc} thumb_func_start FUN_0205DAAC FUN_0205DAAC: ; 0x0205DAAC push {r4, lr} add r4, r0, #0x0 bl FUN_02046528 mov r1, #0xb bl FUN_0224C700 add r2, r0, #0x0 ldr r1, _0205DAC8 ; =0x0224C721 add r0, r4, #0x0 bl FUN_020463EC mov r0, #0x0 pop {r4, pc} .balign 4 _0205DAC8: .word 0x0224C721 thumb_func_start FUN_0205DACC FUN_0205DACC: ; 0x0205DACC ldr r3, _0205DAD4 ; =FUN_0205CF34 ldr r2, _0205DAD8 ; =0x000007F7 bx r3 nop _0205DAD4: .word FUN_0205CF34 _0205DAD8: .word 0x000007F7 thumb_func_start FUN_0205DADC FUN_0205DADC: ; 0x0205DADC push {r3, lr} ldr r1, _0205DAE8 ; =0x000007F7 bl FUN_0205CF78 mov r0, #0x0 pop {r3, pc} .balign 4 _0205DAE8: .word 0x000007F7 thumb_func_start FUN_0205DAEC FUN_0205DAEC: ; 0x0205DAEC push {r3-r5, lr} add r4, r0, #0x0 ldr r0, [r4, #0x18] ldr r0, [r0, #0xc] bl FUN_020462AC add r5, r0, #0x0 bl FUN_0205ED0C cmp r0, #0x0 bne _0205DB08 mov r0, #0x0 mvn r0, r0 pop {r3-r5, pc} _0205DB08: add r0, r5, #0x0 mov r1, #0x2 bl FUN_0205F4A0 cmp r0, #0x0 bne _0205DB1A mov r0, #0x0 mvn r0, r0 pop {r3-r5, pc} _0205DB1A: ldr r0, [r4, #0x18] ldr r0, [r0, #0xc] bl FUN_02024DA0 bl FUN_02024CA4 cmp r0, #0x0 bne _0205DB30 mov r0, #0x0 mvn r0, r0 pop {r3-r5, pc} _0205DB30: ldr r0, [r4, #0x0] bl FUN_020349D8 cmp r0, #0x0 beq _0205DB3E mov r0, #0x0 pop {r3-r5, pc} _0205DB3E: mov r0, #0x0 mvn r0, r0 pop {r3-r5, pc} thumb_func_start FUN_0205DB44 FUN_0205DB44: ; 0x0205DB44 push {r3-r7, lr} add r5, r0, #0x0 bl FUN_02060144 cmp r0, #0x1 bne _0205DB54 mov r0, #0x0 pop {r3-r7, pc} _0205DB54: ldr r0, [r5, #0xc] bl FUN_020462AC bl FUN_0205F244 cmp r0, #0x1 bne _0205DB66 mov r0, #0x0 pop {r3-r7, pc} _0205DB66: ldr r0, [r5, #0xc] bl FUN_0206F158 bl FUN_0206EBC4 lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r1, #0x6 mov r2, #0xb str r0, [sp, #0x0] bl FUN_0206E7B8 lsl r0, r0, #0x10 lsr r4, r0, #0x10 mov r0, #0x2 add r1, r4, #0x0 bl FUN_0205CE48 add r6, r0, #0x0 mov r0, #0x1 add r1, r4, #0x0 bl FUN_0205CE48 add r7, r0, #0x0 bne _0205DB9C mov r0, #0x0 pop {r3-r7, pc} _0205DB9C: mov r0, #0xb mov r1, #0x2c bl FUN_02016998 add r4, r0, #0x0 mov r1, #0x0 mov r2, #0x2c blx FUN_020DF4A4 str r5, [r4, #0x0] ldr r0, [sp, #0x0] add r1, r4, #0x4 strh r0, [r4, #0x28] add r0, r5, #0x0 bl FUN_0205CE80 mov r5, #0x0 cmp r6, #0x0 bne _0205DBCA add r0, r4, #0x0 blx r7 add r5, r0, #0x0 b _0205DBE0 _0205DBCA: add r0, r4, #0x4 blx r6 add r1, r0, #0x0 bne _0205DBDA add r0, r4, #0x0 blx r7 add r5, r0, #0x0 b _0205DBE0 _0205DBDA: add r0, r4, #0x0 bl FUN_0205DBF0 _0205DBE0: cmp r5, #0x0 bne _0205DBEA add r0, r4, #0x0 bl FUN_02016A18 _0205DBEA: mov r0, #0x1 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0205DBF0 FUN_0205DBF0: ; 0x0205DBF0 push {r3-r6, lr} sub sp, #0x4 add r5, r0, #0x0 add r6, r1, #0x0 mov r0, #0xb mov r1, #0x18 bl FUN_02016998 add r4, r0, #0x0 mov r0, #0x0 strh r0, [r4, #0x16] mov r0, #0x80 mov r1, #0xb bl FUN_020219F4 str r0, [r4, #0x10] ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_020238F4 mov r1, #0xb str r1, [sp, #0x0] ldrh r2, [r5, #0x28] ldr r1, [r4, #0x10] add r3, r6, #0x0 bl FUN_0206E51C ldr r0, [r5, #0x0] ldr r1, _0205DC34 ; =FUN_0205D904 add r2, r4, #0x0 bl FUN_020463CC add sp, #0x4 pop {r3-r6, pc} .balign 4 _0205DC34: .word FUN_0205D904 thumb_func_start FUN_0205DC38 FUN_0205DC38: ; 0x0205DC38 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C add r4, r0, #0x0 add r0, #0x2a ldrb r0, [r0, #0x0] cmp r0, #0x4 bhi _0205DCFA add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0205DC5E: ; jump table (using 16-bit offset) .short _0205DC68 - _0205DC5E - 2; case 0 .short _0205DC7C - _0205DC5E - 2; case 1 .short _0205DC94 - _0205DC5E - 2; case 2 .short _0205DCC4 - _0205DC5E - 2; case 3 .short _0205DCE2 - _0205DC5E - 2; case 4 _0205DC68: ldr r0, [r5, #0x34] bl FUN_02058780 mov r0, #0x0 bl FUN_021D7CA4 mov r0, #0x1 add r4, #0x2a strb r0, [r4, #0x0] b _0205DCFA _0205DC7C: bl FUN_0200E308 cmp r0, #0x0 beq _0205DCFA ldr r1, [r4, #0x20] add r0, r5, #0x0 blx r1 str r0, [r4, #0x24] mov r0, #0x2 add r4, #0x2a strb r0, [r4, #0x0] b _0205DCFA _0205DC94: add r0, r5, #0x0 bl FUN_0204647C cmp r0, #0x0 bne _0205DCFA ldr r0, [r4, #0x24] cmp r0, #0x0 beq _0205DCB6 ldr r2, [r4, #0x20] ldr r1, _0205DD00 ; =FUN_0205D568 cmp r2, r1 bne _0205DCB2 bl FUN_02087E14 b _0205DCB6 _0205DCB2: bl FUN_02016A18 _0205DCB6: add r0, r5, #0x0 bl FUN_0204649C mov r0, #0x3 add r4, #0x2a strb r0, [r4, #0x0] b _0205DCFA _0205DCC4: add r0, r5, #0x0 bl FUN_020464A4 cmp r0, #0x0 beq _0205DCFA ldr r0, [r5, #0x34] bl FUN_02058780 mov r0, #0x1 bl FUN_021D7CA4 mov r0, #0x4 add r4, #0x2a strb r0, [r4, #0x0] b _0205DCFA _0205DCE2: bl FUN_0200E308 cmp r0, #0x0 beq _0205DCFA ldr r0, [r5, #0x34] bl FUN_020587B0 add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x1 pop {r3-r5, pc} _0205DCFA: mov r0, #0x0 pop {r3-r5, pc} nop _0205DD00: .word FUN_0205D568 thumb_func_start FUN_0205DD04 FUN_0205DD04: ; 0x0205DD04 add r2, r0, #0x0 str r1, [r2, #0x20] ldr r3, _0205DD10 ; =FUN_020463CC ldr r0, [r2, #0x0] ldr r1, _0205DD14 ; =FUN_0205DC38 bx r3 .balign 4 _0205DD10: .word FUN_020463CC _0205DD14: .word FUN_0205DC38 thumb_func_start FUN_0205DD18 FUN_0205DD18: ; 0x0205DD18 push {r4, lr} mov r1, #0xd4 bl FUN_02016998 add r4, r0, #0x0 mov r0, #0x1 lsl r0, r0, #0x10 add r3, r4, #0x0 lsr r1, r0, #0x1 add r2, r0, #0x0 add r3, #0xbc bl FUN_0201B7DC add r0, r4, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_0205DD38 FUN_0205DD38: ; 0x0205DD38 ldr r3, _0205DD3C ; =FUN_02016A18 bx r3 .balign 4 _0205DD3C: .word FUN_02016A18 thumb_func_start FUN_0205DD40 FUN_0205DD40: ; 0x0205DD40 push {r4, lr} add r4, r0, #0x0 mov r1, #0x0 str r1, [r4, #0x4] str r1, [r4, #0x0] str r1, [r4, #0x8] str r1, [r4, #0xc] str r1, [r4, #0x10] add r0, #0xd0 strb r1, [r0, #0x0] mov r0, #0x1 str r0, [r4, #0x14] add r0, r4, #0x0 add r0, #0x1c mov r2, #0xa0 str r1, [r4, #0x18] blx MI_CpuFill8 mov r3, #0x0 add r2, r3, #0x0 mov r0, #0x28 _0205DD6A: add r1, r3, #0x0 mul r1, r0 add r1, r4, r1 str r2, [r1, #0x28] add r1, r3, #0x1 lsl r1, r1, #0x18 lsr r3, r1, #0x18 cmp r3, #0x4 blo _0205DD6A pop {r4, pc} .balign 4 thumb_func_start FUN_0205DD80 FUN_0205DD80: ; 0x0205DD80 push {r4-r7, lr} sub sp, #0x2c str r1, [sp, #0x10] ldr r1, _0205DECC ; =0x020F7374 str r2, [sp, #0x14] ldrb r2, [r1, #0x4] str r0, [sp, #0xc] add r0, sp, #0x28 strb r2, [r0, #0x0] ldrb r2, [r1, #0x5] str r3, [sp, #0x18] strb r2, [r0, #0x1] ldrb r2, [r1, #0x6] ldrb r1, [r1, #0x7] strb r2, [r0, #0x2] strb r1, [r0, #0x3] ldr r0, [sp, #0xc] ldr r0, [r0, #0x38] bl FUN_02055360 str r0, [sp, #0x1c] ldr r0, [sp, #0x18] mov r5, #0x0 str r0, [sp, #0x24] add r0, #0x1c str r5, [sp, #0x20] str r0, [sp, #0x24] _0205DDB6: add r0, sp, #0x28 ldrb r4, [r0, r5] cmp r4, #0x0 bne _0205DDC2 bl ErrorHandling _0205DDC2: cmp r4, #0x1 bhi _0205DDCA mov r6, #0x0 b _0205DDF2 _0205DDCA: bl FUN_0201B9EC add r6, r0, #0x0 ldr r0, _0205DED0 ; =0x0000FFFF add r1, r4, #0x0 blx _s32_div_f add r1, r0, #0x0 add r1, r1, #0x1 lsl r1, r1, #0x10 add r0, r6, #0x0 lsr r1, r1, #0x10 blx _s32_div_f lsl r0, r0, #0x10 lsr r6, r0, #0x10 cmp r6, r4 blo _0205DDF2 bl ErrorHandling _0205DDF2: lsl r1, r5, #0x1 mov r0, #0x9 sub r0, r0, r1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 lsl r0, r6, #0x18 lsr r6, r0, #0x18 add r0, r6, #0x0 add r1, r4, #0x0 blx _s32_div_f lsl r0, r0, #0x18 lsr r0, r0, #0x18 bne _0205DE1C add r0, r6, #0x0 add r1, r4, #0x0 blx _s32_div_f add r1, r5, r1 add r0, r5, #0x0 b _0205DE5C _0205DE1C: cmp r0, #0x1 bne _0205DE30 add r0, r6, #0x0 add r1, r4, #0x0 blx _s32_div_f add r0, r5, r4 add r1, r5, r1 sub r0, r0, #0x1 b _0205DE5C _0205DE30: lsl r7, r4, #0x1 cmp r6, r7 bge _0205DE3A bl ErrorHandling _0205DE3A: sub r0, r6, r7 lsl r0, r0, #0x18 lsr r1, r0, #0x18 lsr r3, r1, #0x1f lsl r2, r1, #0x1f lsr r0, r1, #0x1 add r0, r5, r0 sub r2, r2, r3 mov r1, #0x1f ror r2, r1 add r0, r0, #0x1 add r1, r3, r2 bne _0205DE58 add r1, r5, #0x0 b _0205DE5C _0205DE58: add r1, r5, r4 sub r1, r1, #0x1 _0205DE5C: lsl r1, r1, #0x18 lsr r1, r1, #0x18 lsl r0, r0, #0x18 str r1, [sp, #0x0] lsr r0, r0, #0x18 str r0, [sp, #0x4] mov r0, #0x28 add r1, r5, #0x0 mul r1, r0 ldr r0, [sp, #0x24] ldr r2, [sp, #0x10] add r0, r0, r1 str r0, [sp, #0x8] ldr r1, [sp, #0x1c] ldr r0, [sp, #0xc] ldr r1, [r1, #0x4] ldr r3, [sp, #0x14] bl FUN_0205E12C cmp r0, #0x0 beq _0205DE90 ldr r0, [sp, #0x20] add r0, r0, #0x1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x20] _0205DE90: add r0, r5, #0x1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 cmp r5, #0x4 blo _0205DDB6 ldr r0, [sp, #0x20] cmp r0, #0x0 bne _0205DEBE ldr r0, [sp, #0x18] bl FUN_0205DD40 ldr r0, [sp, #0xc] add r1, r0, #0x0 ldr r1, [r1, #0x1c] ldr r1, [r1, #0x0] bl FUN_0204AB58 add r1, r0, #0x0 ldr r0, [sp, #0xc] mov r2, #0x1 bl FUN_0204ABDC b _0205DEC4 _0205DEBE: ldr r0, [sp, #0x18] mov r1, #0x1 str r1, [r0, #0x10] _0205DEC4: ldr r0, [sp, #0x18] ldr r0, [r0, #0x10] add sp, #0x2c pop {r4-r7, pc} .balign 4 _0205DECC: .word 0x020F7374 _0205DED0: .word 0x0000FFFF thumb_func_start FUN_0205DED4 FUN_0205DED4: ; 0x0205DED4 push {r3-r7, lr} sub sp, #0x8 str r0, [sp, #0x0] str r1, [sp, #0x4] add r6, r2, #0x0 mov r4, #0x0 _0205DEE0: mov r0, #0x28 mul r0, r4 add r5, r6, r0 ldr r0, [r5, #0x28] cmp r0, #0x0 beq _0205DF36 ldr r1, [sp, #0x4] add r0, r4, #0x0 bl FUN_0205E2A0 str r0, [r5, #0x2c] cmp r0, #0x0 bne _0205DF24 bl FUN_0201B9EC mov r1, #0x29 lsl r1, r1, #0x4 blx _s32_div_f lsl r0, r0, #0x10 lsr r7, r0, #0x10 cmp r7, #0x64 blo _0205DF12 bl ErrorHandling _0205DF12: cmp r7, #0x32 bhs _0205DF1A mov r0, #0x0 b _0205DF1C _0205DF1A: mov r0, #0x1 _0205DF1C: str r0, [r5, #0x24] mov r0, #0x0 str r0, [r5, #0x30] b _0205DF36 _0205DF24: ldr r0, [r6, #0x0] str r0, [r5, #0x24] ldr r0, [sp, #0x0] add r0, #0x90 ldr r0, [r0, #0x0] ldr r0, [r0, #0x4] bl FUN_0205E40C str r0, [r5, #0x30] _0205DF36: add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #0x4 blo _0205DEE0 add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_0205DF44 FUN_0205DF44: ; 0x0205DF44 push {r3-r7, lr} add r5, r0, #0x0 add r7, r1, #0x0 mov r6, #0x0 _0205DF4C: mov r0, #0x28 mul r0, r6 add r4, r7, r0 ldr r0, [r4, #0x28] cmp r0, #0x0 beq _0205DF8C ldr r0, [r4, #0x30] ldr r1, [r4, #0x1c] ldr r2, [r4, #0x20] cmp r0, #0x0 beq _0205DF6E add r0, r5, #0x0 mov r3, #0x2 bl FUN_0224B818 str r0, [r4, #0x34] b _0205DF90 _0205DF6E: ldr r0, [r4, #0x24] cmp r0, #0x0 bne _0205DF80 add r0, r5, #0x0 mov r3, #0x0 bl FUN_0224B818 str r0, [r4, #0x34] b _0205DF90 _0205DF80: add r0, r5, #0x0 mov r3, #0x1 bl FUN_0224B818 str r0, [r4, #0x34] b _0205DF90 _0205DF8C: mov r0, #0x0 str r0, [r4, #0x34] _0205DF90: add r0, r6, #0x1 lsl r0, r0, #0x18 lsr r6, r0, #0x18 cmp r6, #0x4 blo _0205DF4C pop {r3-r7, pc} thumb_func_start FUN_0205DF9C FUN_0205DF9C: ; 0x0205DF9C push {r3-r7, lr} mov r4, #0x0 add r7, r0, #0x0 add r6, r4, #0x0 _0205DFA4: mov r0, #0x28 mul r0, r6 add r5, r7, r0 ldr r0, [r5, #0x34] cmp r0, #0x0 beq _0205DFCA bl FUN_0224B86C cmp r0, #0x0 beq _0205DFD0 ldr r0, [r5, #0x34] bl FUN_02064520 mov r0, #0x0 str r0, [r5, #0x34] add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 b _0205DFD0 _0205DFCA: add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 _0205DFD0: add r0, r6, #0x1 lsl r0, r0, #0x18 lsr r6, r0, #0x18 cmp r6, #0x4 blo _0205DFA4 cmp r4, #0x4 blo _0205DFE2 mov r0, #0x1 pop {r3-r7, pc} _0205DFE2: mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0205DFE8 FUN_0205DFE8: ; 0x0205DFE8 push {r3-r7, lr} sub sp, #0x8 ldr r7, [sp, #0x24] add r6, r0, #0x0 mov r12, r1 ldr r0, [sp, #0x28] mov r1, #0x0 add r4, r3, #0x0 str r1, [r7, #0x0] str r2, [sp, #0x0] str r1, [r0, #0x0] str r0, [sp, #0x28] add r0, r4, #0x0 add r1, r6, #0x0 mov r2, r12 add r3, sp, #0x4 ldr r5, [sp, #0x20] bl FUN_0205E1B8 cmp r0, #0x0 bne _0205E018 add sp, #0x8 mov r0, #0x0 pop {r3-r7, pc} _0205E018: mov r0, #0x1 str r0, [r4, #0x18] add r0, sp, #0x4 ldrb r1, [r0, #0x0] mov r0, #0x28 mul r0, r1 add r0, r4, r0 ldr r1, [r0, #0x2c] ldr r6, [r0, #0x24] ldr r0, [r4, #0x14] cmp r0, #0x0 bne _0205E062 cmp r1, #0x0 beq _0205E05E add r0, r4, #0x4 bl FUN_0205E4D8 str r6, [r5, #0x0] mov r0, #0x1 str r0, [r7, #0x0] ldr r0, [sp, #0x0] add r1, r4, #0x0 bl FUN_0205E1F0 add r0, sp, #0x4 ldrb r1, [r0, #0x0] mov r0, #0x28 mul r0, r1 add r0, r4, r0 ldr r1, [r0, #0x30] ldr r0, [sp, #0x28] add sp, #0x8 str r1, [r0, #0x0] mov r0, #0x1 pop {r3-r7, pc} _0205E05E: str r6, [r5, #0x0] b _0205E074 _0205E062: str r6, [r5, #0x0] mov r0, #0x0 str r0, [r4, #0x14] ldr r0, [sp, #0x0] bl FUN_0205E258 add r1, r4, #0x0 add r1, #0xd0 strb r0, [r1, #0x0] _0205E074: ldr r0, [r5, #0x0] str r0, [r4, #0x0] mov r0, #0x1 add sp, #0x8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0205E080 FUN_0205E080: ; 0x0205E080 push {r4-r6, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r6, r2, #0x0 cmp r4, #0x0 bne _0205E090 bl ErrorHandling _0205E090: str r4, [r5, #0x8] str r6, [r5, #0xc] pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0205E098 FUN_0205E098: ; 0x0205E098 ldr r3, [r0, #0x8] str r3, [r1, #0x0] ldr r0, [r0, #0xc] str r0, [r2, #0x0] bx lr .balign 4 thumb_func_start FUN_0205E0A4 FUN_0205E0A4: ; 0x0205E0A4 ldr r0, [r0, #0x18] bx lr thumb_func_start FUN_0205E0A8 FUN_0205E0A8: ; 0x0205E0A8 push {r3-r7, lr} add r7, r0, #0x0 add r0, #0x90 ldr r0, [r0, #0x0] ldr r0, [r0, #0x10] cmp r0, #0x0 beq _0205E126 ldr r0, [r7, #0x10] cmp r0, #0x0 bne _0205E126 mov r6, #0x0 add r5, r6, #0x0 _0205E0C0: add r0, r7, #0x0 add r0, #0x90 ldr r1, [r0, #0x0] add r0, r1, #0x0 add r0, #0x1c add r4, r0, r5 add r0, r4, #0x0 add r0, #0x1c add r1, #0xbc bl FUN_0201B76C ldr r1, [r4, #0xc] cmp r1, #0x0 beq _0205E0E4 cmp r0, #0x0 bne _0205E0E4 mov r0, #0x0 str r0, [r4, #0xc] _0205E0E4: add r6, r6, #0x1 add r5, #0x28 cmp r6, #0x4 blt _0205E0C0 add r0, r7, #0x0 add r0, #0x90 ldr r0, [r0, #0x0] mov r2, #0x0 add r3, r0, #0x0 add r4, r2, #0x0 add r3, #0x1c _0205E0FA: ldr r1, [r3, #0xc] cmp r1, #0x0 bne _0205E102 add r2, r2, #0x1 _0205E102: add r4, r4, #0x1 add r3, #0x28 cmp r4, #0x4 blt _0205E0FA cmp r2, #0x4 bne _0205E126 bl FUN_0205DD40 ldr r1, [r7, #0x1c] add r0, r7, #0x0 ldr r1, [r1, #0x0] bl FUN_0204AB58 add r1, r0, #0x0 add r0, r7, #0x0 mov r2, #0x1 bl FUN_0204ABDC _0205E126: pop {r3-r7, pc} thumb_func_start FUN_0205E128 FUN_0205E128: ; 0x0205E128 ldr r0, [r0, #0x10] bx lr thumb_func_start FUN_0205E12C FUN_0205E12C: ; 0x0205E12C push {r4-r7, lr} sub sp, #0xc str r1, [sp, #0x4] add r1, sp, #0x10 sub r4, r2, #0x4 ldrb r2, [r1, #0x10] ldrb r1, [r1, #0x14] ldr r5, [sp, #0x28] add r4, r4, r2 sub r2, r3, #0x4 add r6, r2, r1 str r4, [r5, #0x0] add r1, r4, #0x0 add r2, r6, #0x0 add r7, r0, #0x0 str r6, [r5, #0x4] bl FUN_0204A6E0 bl FUN_0205478C cmp r0, #0x0 beq _0205E1AE lsl r0, r4, #0x10 str r0, [r5, #0x1c] lsl r0, r6, #0x10 str r0, [r5, #0x24] add r0, sp, #0x8 str r0, [sp, #0x0] ldr r2, [r5, #0x1c] ldr r3, [r5, #0x24] add r0, r7, #0x0 mov r1, #0x0 bl FUN_0204A708 ldr r1, [sp, #0x4] str r0, [r5, #0x20] cmp r1, r0 beq _0205E180 mov r0, #0x0 add sp, #0xc str r0, [r5, #0xc] pop {r4-r7, pc} _0205E180: asr r1, r4, #0x4 asr r2, r6, #0x4 lsr r1, r1, #0x1b lsr r2, r2, #0x1b add r1, r4, r1 add r2, r6, r2 ldr r0, [r7, #0x28] asr r1, r1, #0x5 asr r2, r2, #0x5 bl FUN_0203451C ldr r1, [r7, #0x1c] ldr r1, [r1, #0x0] cmp r1, r0 beq _0205E1A6 mov r0, #0x0 add sp, #0xc str r0, [r5, #0xc] pop {r4-r7, pc} _0205E1A6: mov r0, #0x1 add sp, #0xc str r0, [r5, #0xc] pop {r4-r7, pc} _0205E1AE: mov r0, #0x0 str r0, [r5, #0xc] add sp, #0xc pop {r4-r7, pc} .balign 4 thumb_func_start FUN_0205E1B8 FUN_0205E1B8: ; 0x0205E1B8 push {r4-r7} mov r5, #0x0 mov r6, #0x28 _0205E1BE: add r4, r5, #0x0 mul r4, r6 add r4, r0, r4 ldr r7, [r4, #0x28] cmp r7, #0x0 beq _0205E1DE ldr r7, [r4, #0x1c] cmp r1, r7 bne _0205E1DE ldr r4, [r4, #0x20] cmp r2, r4 bne _0205E1DE strb r5, [r3, #0x0] mov r0, #0x1 pop {r4-r7} bx lr _0205E1DE: add r4, r5, #0x1 lsl r4, r4, #0x18 lsr r5, r4, #0x18 cmp r5, #0x4 blo _0205E1BE mov r0, #0x0 pop {r4-r7} bx lr .balign 4 thumb_func_start FUN_0205E1F0 FUN_0205E1F0: ; 0x0205E1F0 push {r4-r6, lr} ldr r0, [r0, #0xc] add r5, r1, #0x0 bl FUN_0202A9B0 bl FUN_0202A9AC add r3, r5, #0x0 add r3, #0xd0 ldrb r3, [r3, #0x0] add r4, r0, #0x0 add r1, r4, #0x2 lsl r6, r3, #0x2 ldrh r3, [r1, r6] ldr r2, [r5, #0x4] cmp r3, r2 bge _0205E256 strh r2, [r1, r6] add r1, r5, #0x0 add r1, #0xd0 ldrb r1, [r1, #0x0] ldr r2, [r5, #0x8] lsl r1, r1, #0x2 strh r2, [r4, r1] bl FUN_02245844 add r0, r5, #0x0 add r0, #0xd0 ldrb r0, [r0, #0x0] ldr r2, [r5, #0x4] lsl r0, r0, #0x2 add r0, r4, r0 ldrh r0, [r0, #0x2] cmp r0, r2 bgt _0205E256 mov r1, #0x0 mov r3, #0x2 _0205E23A: sub r0, r3, r1 lsl r6, r0, #0x2 add r6, r4, r6 ldrh r6, [r6, #0x2] cmp r2, r6 bne _0205E24C add r5, #0xd0 strb r0, [r5, #0x0] pop {r4-r6, pc} _0205E24C: add r1, r1, #0x1 cmp r1, #0x3 blt _0205E23A bl ErrorHandling _0205E256: pop {r4-r6, pc} thumb_func_start FUN_0205E258 FUN_0205E258: ; 0x0205E258 push {r3, lr} ldr r0, [r0, #0xc] bl FUN_0202A9B0 bl FUN_0202A9AC mov r2, #0x0 _0205E266: lsl r1, r2, #0x2 ldrh r1, [r0, r1] cmp r1, #0x0 bne _0205E272 add r0, r2, #0x0 pop {r3, pc} _0205E272: add r1, r2, #0x1 lsl r1, r1, #0x18 lsr r2, r1, #0x18 cmp r2, #0x3 blo _0205E266 ldrh r2, [r0, #0x2] ldrh r1, [r0, #0x6] cmp r2, r1 blo _0205E288 mov r1, #0x1 b _0205E28A _0205E288: mov r1, #0x0 _0205E28A: lsl r1, r1, #0x18 lsr r2, r1, #0x18 lsl r1, r2, #0x2 add r1, r0, r1 ldrh r1, [r1, #0x2] ldrh r0, [r0, #0xa] cmp r1, r0 blo _0205E29C mov r2, #0x2 _0205E29C: add r0, r2, #0x0 pop {r3, pc} thumb_func_start FUN_0205E2A0 FUN_0205E2A0: ; 0x0205E2A0 push {r3-r7, lr} sub sp, #0x8 ldr r3, _0205E308 ; =0x020F7374 add r5, r0, #0x0 ldrb r4, [r3, #0x0] add r2, sp, #0x0 add r0, sp, #0x4 strb r4, [r2, #0x4] ldrb r4, [r3, #0x1] add r7, sp, #0x0 cmp r1, #0x1 strb r4, [r2, #0x5] ldrb r4, [r3, #0x2] strb r4, [r2, #0x6] ldrb r4, [r3, #0x3] strb r4, [r2, #0x7] ldrb r4, [r3, #0x8] strb r4, [r2, #0x0] ldrb r4, [r3, #0x9] strb r4, [r2, #0x1] ldrb r4, [r3, #0xa] strb r4, [r2, #0x2] ldrb r3, [r3, #0xb] strb r3, [r2, #0x3] bne _0205E2D6 add r6, r0, #0x0 b _0205E2DC _0205E2D6: cmp r1, #0x4 bne _0205E2DC add r6, r7, #0x0 _0205E2DC: bl FUN_0201B9EC mov r1, #0x29 lsl r1, r1, #0x4 blx _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, #0x64 blo _0205E2F4 bl ErrorHandling _0205E2F4: ldrb r0, [r6, r5] cmp r4, r0 bge _0205E300 add sp, #0x8 mov r0, #0x1 pop {r3-r7, pc} _0205E300: mov r0, #0x0 add sp, #0x8 pop {r3-r7, pc} nop _0205E308: .word 0x020F7374 thumb_func_start FUN_0205E30C FUN_0205E30C: ; 0x0205E30C push {r3-r7, lr} add r7, r0, #0x0 bl FUN_02046528 add r4, r0, #0x0 add r0, r7, #0x0 bl FUN_0204652C add r5, r0, #0x0 ldr r1, [r5, #0x0] cmp r1, #0x4 bhi _0205E3FC add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0205E330: ; jump table (using 16-bit offset) .short _0205E33A - _0205E330 - 2; case 0 .short _0205E3C0 - _0205E330 - 2; case 1 .short _0205E3CC - _0205E330 - 2; case 2 .short _0205E3EC - _0205E330 - 2; case 3 .short _0205E3DE - _0205E330 - 2; case 4 _0205E33A: ldr r0, [r4, #0x34] bl FUN_02058780 ldr r0, [r4, #0xc] bl FUN_0202A9B0 bl FUN_0202AB40 add r6, r0, #0x0 ldrb r0, [r6, #0x0] cmp r0, #0x32 bhs _0205E374 mov r2, #0x0 ldr r1, _0205E400 ; =0x0000230A add r0, r7, #0x0 add r3, r2, #0x0 bl FUN_02038CD8 add r0, r4, #0x0 mov r1, #0x29 bl FUN_02039438 ldrb r2, [r6, #0x0] mov r1, #0x32 sub r1, r1, r2 strh r1, [r0, #0x0] mov r0, #0x4 str r0, [r5, #0x0] b _0205E3FC _0205E374: mov r0, #0x0 strb r0, [r6, #0x0] ldr r0, [r4, #0x38] bl FUN_02055320 add r6, r0, #0x0 ldr r0, [r4, #0x38] bl FUN_0205532C add r3, r4, #0x0 add r3, #0x90 add r2, r0, #0x0 ldr r3, [r3, #0x0] add r0, r4, #0x0 add r1, r6, #0x0 bl FUN_0205DD80 add r0, r4, #0x0 add r0, #0x90 ldr r2, [r0, #0x0] ldr r0, [r2, #0x10] cmp r0, #0x0 beq _0205E3BA add r0, r4, #0x0 mov r1, #0x1 bl FUN_0205DED4 add r0, r4, #0x0 add r4, #0x90 ldr r1, [r4, #0x0] bl FUN_0205DF44 mov r0, #0x1 str r0, [r5, #0x0] b _0205E3FC _0205E3BA: mov r0, #0x3 str r0, [r5, #0x0] b _0205E3FC _0205E3C0: ldr r0, _0205E404 ; =0x0000047E bl FUN_0200521C mov r0, #0x2 str r0, [r5, #0x0] b _0205E3FC _0205E3CC: add r4, #0x90 ldr r0, [r4, #0x0] bl FUN_0205DF9C cmp r0, #0x0 beq _0205E3FC mov r0, #0x4 str r0, [r5, #0x0] b _0205E3FC _0205E3DE: bl FUN_02016A18 ldr r0, [r4, #0x34] bl FUN_020587B0 mov r0, #0x1 pop {r3-r7, pc} _0205E3EC: mov r2, #0x0 ldr r1, _0205E408 ; =0x0000230B add r0, r7, #0x0 add r3, r2, #0x0 bl FUN_02038CD8 mov r0, #0x4 str r0, [r5, #0x0] _0205E3FC: mov r0, #0x0 pop {r3-r7, pc} .balign 4 _0205E400: .word 0x0000230A _0205E404: .word 0x0000047E _0205E408: .word 0x0000230B thumb_func_start FUN_0205E40C FUN_0205E40C: ; 0x0205E40C push {r3-r5, lr} cmp r0, #0x0 bne _0205E416 mov r0, #0x0 pop {r3-r5, pc} _0205E416: add r2, r0, #0x0 mov r1, #0xc8 ldr r0, _0205E478 ; =0x00002008 mul r2, r1 sub r5, r0, r2 cmp r5, #0xc8 bge _0205E426 add r5, r1, #0x0 _0205E426: lsl r0, r5, #0x10 lsr r0, r0, #0x10 bne _0205E430 bl ErrorHandling _0205E430: lsl r0, r5, #0x10 lsr r0, r0, #0x10 cmp r0, #0x1 bhi _0205E43C mov r4, #0x0 b _0205E46A _0205E43C: bl FUN_0201B9EC add r4, r0, #0x0 lsl r1, r5, #0x10 ldr r0, _0205E47C ; =0x0000FFFF lsr r1, r1, #0x10 blx _s32_div_f add r1, r0, #0x0 add r1, r1, #0x1 lsl r1, r1, #0x10 add r0, r4, #0x0 lsr r1, r1, #0x10 blx _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 lsl r0, r5, #0x10 lsr r0, r0, #0x10 cmp r4, r0 blo _0205E46A bl ErrorHandling _0205E46A: cmp r4, #0x0 bne _0205E472 mov r0, #0x1 pop {r3-r5, pc} _0205E472: mov r0, #0x0 pop {r3-r5, pc} nop _0205E478: .word 0x00002008 _0205E47C: .word 0x0000FFFF thumb_func_start FUN_0205E480 FUN_0205E480: ; 0x0205E480 push {r4, lr} add r4, r0, #0x0 add r0, #0x90 ldr r0, [r0, #0x0] add r0, r0, #0x4 bl FUN_0205E4D8 add r0, r4, #0x0 add r4, #0x90 ldr r1, [r4, #0x0] bl FUN_0205E1F0 pop {r4, pc} .balign 4 thumb_func_start FUN_0205E49C FUN_0205E49C: ; 0x0205E49C add r0, #0x90 ldr r0, [r0, #0x0] ldr r0, [r0, #0x4] bx lr thumb_func_start FUN_0205E4A4 FUN_0205E4A4: ; 0x0205E4A4 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_0206F158 ldr r1, _0205E4D4 ; =0x000001AF mov r2, #0x1 mov r3, #0x4 bl FUN_0206EE50 cmp r0, #0x1 bne _0205E4D0 ldr r0, [r4, #0xc] bl FUN_0202A9B0 bl FUN_0202AB40 ldrb r1, [r0, #0x0] cmp r1, #0x32 bhs _0205E4D0 add r1, r1, #0x1 strb r1, [r0, #0x0] _0205E4D0: pop {r4, pc} nop _0205E4D4: .word 0x000001AF thumb_func_start FUN_0205E4D8 FUN_0205E4D8: ; 0x0205E4D8 ldr r1, [r0, #0x0] add r2, r1, #0x1 ldr r1, _0205E4E8 ; =0x000003E7 str r2, [r0, #0x0] cmp r2, r1 ble _0205E4E6 str r1, [r0, #0x0] _0205E4E6: bx lr .balign 4 _0205E4E8: .word 0x000003E7 thumb_func_start FUN_0205E4EC FUN_0205E4EC: ; 0x0205E4EC push {r4, lr} add r4, r0, #0x0 mov r1, #0x8 bl FUN_0205858C add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_0205E5B4 add r0, r4, #0x0 mov r1, #0x0 bl FUN_02058544 add r0, r4, #0x0 bl FUN_02058848 add r0, r4, #0x0 mov r1, #0x0 bl FUN_020588B8 pop {r4, pc} .balign 4 thumb_func_start FUN_0205E518 FUN_0205E518: ; 0x0205E518 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_020585B0 add r4, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0205E5B4 cmp r0, #0x0 beq _0205E548 add r0, r5, #0x0 mov r1, #0x0 bl FUN_020588B8 ldr r6, _0205E54C ; =0x020F7388 _0205E538: ldrb r2, [r4, #0x0] add r0, r5, #0x0 add r1, r4, #0x0 lsl r2, r2, #0x2 ldr r2, [r6, r2] blx r2 cmp r0, #0x1 beq _0205E538 _0205E548: pop {r4-r6, pc} nop _0205E54C: .word 0x020F7388 thumb_func_start FUN_0205E550 FUN_0205E550: ; 0x0205E550 bx lr .balign 4 thumb_func_start FUN_0205E554 FUN_0205E554: ; 0x0205E554 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_02058848 add r0, r5, #0x0 bl FUN_0205886C add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0205E608 cmp r0, #0x1 bne _0205E592 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0205E63C add r0, r5, #0x0 bl FUN_0205E698 cmp r0, #0x1 bne _0205E592 add r0, r5, #0x0 bl FUN_0205883C ldrb r0, [r4, #0x0] add r0, r0, #0x1 strb r0, [r4, #0x0] mov r0, #0x1 pop {r3-r5, pc} _0205E592: mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0205E598 FUN_0205E598: ; 0x0205E598 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_0205B080 cmp r0, #0x1 bne _0205E5B0 add r0, r5, #0x0 bl FUN_02058848 mov r0, #0x0 strb r0, [r4, #0x0] _0205E5B0: mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0205E5B4 FUN_0205E5B4: ; 0x0205E5B4 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_02058578 bl FUN_020552A4 cmp r0, #0x0 bne _0205E5CC mov r0, #0x0 strb r0, [r4, #0x1] pop {r3-r5, pc} _0205E5CC: ldrb r0, [r4, #0x1] cmp r0, #0x0 bne _0205E5DA add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0205E5E0 _0205E5DA: mov r0, #0x1 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0205E5E0 FUN_0205E5E0: ; 0x0205E5E0 push {r3-r5, lr} add r5, r1, #0x0 bl FUN_02058738 bl FUN_02055698 mov r1, #0x1 add r4, r0, #0x0 strb r1, [r5, #0x1] bl FUN_02055320 strh r0, [r5, #0x2] add r0, r4, #0x0 bl FUN_0205532C strh r0, [r5, #0x4] mov r0, #0xff strh r0, [r5, #0x6] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0205E608 FUN_0205E608: ; 0x0205E608 push {r4-r6, lr} add r5, r1, #0x0 bl FUN_02058738 bl FUN_02055698 add r6, r0, #0x0 beq _0205E638 bl FUN_02055320 add r4, r0, #0x0 add r0, r6, #0x0 bl FUN_0205532C mov r1, #0x2 ldrsh r1, [r5, r1] cmp r4, r1 bne _0205E634 mov r1, #0x4 ldrsh r1, [r5, r1] cmp r0, r1 beq _0205E638 _0205E634: mov r0, #0x1 pop {r4-r6, pc} _0205E638: mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_0205E63C FUN_0205E63C: ; 0x0205E63C push {r3-r5, lr} add r5, r1, #0x0 bl FUN_02058738 bl FUN_02055698 add r4, r0, #0x0 bl FUN_02055320 strh r0, [r5, #0x2] add r0, r4, #0x0 bl FUN_0205532C strh r0, [r5, #0x4] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0205E65C FUN_0205E65C: ; 0x0205E65C push {r3, lr} bl FUN_02058738 bl FUN_02055698 bl FUN_02055464 add r1, r0, #0x0 sub r1, #0x58 cmp r1, #0x3 bhi _0205E694 add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0205E67E: ; jump table (using 16-bit offset) .short _0205E686 - _0205E67E - 2; case 0 .short _0205E68A - _0205E67E - 2; case 1 .short _0205E68E - _0205E67E - 2; case 2 .short _0205E692 - _0205E67E - 2; case 3 _0205E686: mov r0, #0x10 pop {r3, pc} _0205E68A: mov r0, #0x11 pop {r3, pc} _0205E68E: mov r0, #0x12 pop {r3, pc} _0205E692: mov r0, #0x13 _0205E694: pop {r3, pc} .balign 4 thumb_func_start FUN_0205E698 FUN_0205E698: ; 0x0205E698 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 bl FUN_02058738 bl FUN_02055698 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02058B2C str r0, [sp, #0x0] add r0, r5, #0x0 bl FUN_02058B4C add r7, r0, #0x0 add r0, r4, #0x0 bl FUN_02055338 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02055344 add r4, r0, #0x0 ldr r0, [sp, #0x0] cmp r0, r6 bne _0205E6D2 cmp r7, r4 beq _0205E6FA _0205E6D2: add r0, r5, #0x0 bl FUN_0205E65C str r0, [sp, #0x4] ldr r0, [sp, #0x0] add r1, r7, #0x0 add r2, r6, #0x0 add r3, r4, #0x0 bl FUN_02059E80 ldr r1, [sp, #0x4] bl FUN_0205AFDC add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_0205AE0C add sp, #0x8 mov r0, #0x1 pop {r3-r7, pc} _0205E6FA: mov r0, #0x0 add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_0205E700 FUN_0205E700: ; 0x0205E700 push {r3-r5, lr} mov r1, #0xc add r5, r0, #0x0 bl FUN_0205858C add r4, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0205E854 add r0, r5, #0x0 mov r1, #0x0 bl FUN_02058544 add r0, r5, #0x0 bl FUN_02058848 mov r0, #0x0 strb r0, [r4, #0x1] pop {r3-r5, pc} thumb_func_start FUN_0205E728 FUN_0205E728: ; 0x0205E728 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_020585B0 add r4, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0205E854 cmp r0, #0x0 beq _0205E750 ldr r6, _0205E754 ; =0x020F7390 _0205E740: ldrb r2, [r4, #0x0] add r0, r5, #0x0 add r1, r4, #0x0 lsl r2, r2, #0x2 ldr r2, [r6, r2] blx r2 cmp r0, #0x1 beq _0205E740 _0205E750: pop {r4-r6, pc} nop _0205E754: .word 0x020F7390 thumb_func_start FUN_0205E758 FUN_0205E758: ; 0x0205E758 bx lr .balign 4 thumb_func_start FUN_0205E75C FUN_0205E75C: ; 0x0205E75C push {r3, lr} bl FUN_020585B0 mov r1, #0x0 strb r1, [r0, #0x1] pop {r3, pc} thumb_func_start FUN_0205E768 FUN_0205E768: ; 0x0205E768 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_02058848 add r0, r5, #0x0 bl FUN_0205886C add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0205E8F4 cmp r0, #0x1 bne _0205E7A0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0205E940 cmp r0, #0x1 bne _0205E7A0 add r0, r5, #0x0 bl FUN_0205883C ldrb r0, [r4, #0x0] add r0, r0, #0x1 strb r0, [r4, #0x0] mov r0, #0x1 pop {r3-r5, pc} _0205E7A0: mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0205E7A4 FUN_0205E7A4: ; 0x0205E7A4 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_0205B080 cmp r0, #0x0 bne _0205E7B6 mov r0, #0x0 pop {r3-r5, pc} _0205E7B6: add r0, r5, #0x0 bl FUN_02058848 mov r0, #0x0 strb r0, [r4, #0x0] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0205E7C4 FUN_0205E7C4: ; 0x0205E7C4 push {r4-r7, lr} sub sp, #0xc mov r1, #0x0 add r4, r0, #0x0 str r1, [sp, #0x8] bl FUN_02058488 str r0, [sp, #0x0] add r0, r4, #0x0 bl FUN_02058450 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_0205C9E8 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02058578 ldr r1, [sp, #0x0] add r7, r0, #0x0 cmp r1, #0x8 bhi _0205E84C add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0205E7FE: ; jump table (using 16-bit offset) .short _0205E84C - _0205E7FE - 2; case 0 .short _0205E810 - _0205E7FE - 2; case 1 .short _0205E810 - _0205E7FE - 2; case 2 .short _0205E810 - _0205E7FE - 2; case 3 .short _0205E810 - _0205E7FE - 2; case 4 .short _0205E810 - _0205E7FE - 2; case 5 .short _0205E810 - _0205E7FE - 2; case 6 .short _0205E810 - _0205E7FE - 2; case 7 .short _0205E810 - _0205E7FE - 2; case 8 _0205E810: add r1, sp, #0x4 add r2, sp, #0x8 mov r3, #0x1 bl FUN_020580F4 cmp r0, #0x1 bne _0205E84C _0205E81E: ldr r0, [sp, #0x4] cmp r4, r0 beq _0205E83C bl FUN_02058450 cmp r6, r0 bne _0205E83C ldr r0, [sp, #0x4] bl FUN_0205C9E8 cmp r5, r0 bne _0205E83C ldr r0, [sp, #0x4] add sp, #0xc pop {r4-r7, pc} _0205E83C: add r0, r7, #0x0 add r1, sp, #0x4 add r2, sp, #0x8 mov r3, #0x1 bl FUN_020580F4 cmp r0, #0x1 beq _0205E81E _0205E84C: mov r0, #0x0 add sp, #0xc pop {r4-r7, pc} .balign 4 thumb_func_start FUN_0205E854 FUN_0205E854: ; 0x0205E854 push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 str r1, [sp, #0x0] bl FUN_02058578 add r4, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x8] add r0, r5, #0x0 bl FUN_02058450 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_0205C9E8 add r6, r0, #0x0 add r0, r4, #0x0 add r1, sp, #0x4 add r2, sp, #0x8 mov r3, #0x1 bl FUN_020580F4 cmp r0, #0x1 bne _0205E8C6 _0205E886: ldr r0, [sp, #0x4] cmp r5, r0 beq _0205E8B6 bl FUN_02058450 cmp r7, r0 bne _0205E8B6 ldr r0, [sp, #0x4] bl FUN_0205C9E8 cmp r6, r0 bne _0205E8B6 ldr r0, [sp, #0x0] ldrb r0, [r0, #0x1] cmp r0, #0x0 bne _0205E8B0 ldr r1, [sp, #0x0] ldr r2, [sp, #0x4] add r0, r5, #0x0 bl FUN_0205E8D0 _0205E8B0: add sp, #0xc mov r0, #0x1 pop {r4-r7, pc} _0205E8B6: add r0, r4, #0x0 add r1, sp, #0x4 add r2, sp, #0x8 mov r3, #0x1 bl FUN_020580F4 cmp r0, #0x1 beq _0205E886 _0205E8C6: ldr r1, [sp, #0x0] mov r0, #0x0 strb r0, [r1, #0x1] add sp, #0xc pop {r4-r7, pc} thumb_func_start FUN_0205E8D0 FUN_0205E8D0: ; 0x0205E8D0 push {r3-r5, lr} add r5, r1, #0x0 mov r0, #0x1 add r4, r2, #0x0 strb r0, [r5, #0x1] add r0, r4, #0x0 bl FUN_02058B2C strh r0, [r5, #0x2] add r0, r4, #0x0 bl FUN_02058B4C strh r0, [r5, #0x4] mov r0, #0xff strh r0, [r5, #0x6] str r4, [r5, #0x8] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0205E8F4 FUN_0205E8F4: ; 0x0205E8F4 push {r3-r7, lr} add r6, r0, #0x0 ldr r5, [r1, #0x8] bl FUN_02058B2C add r4, r0, #0x0 add r0, r6, #0x0 bl FUN_02058B4C add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02058B14 add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_02058B24 cmp r4, r7 bne _0205E91E cmp r6, r0 beq _0205E93A _0205E91E: add r0, r5, #0x0 bl FUN_02058854 cmp r0, #0x1 beq _0205E936 mov r1, #0x61 add r0, r5, #0x0 lsl r1, r1, #0x6 bl FUN_02058424 cmp r0, #0x0 bne _0205E93A _0205E936: mov r0, #0x1 pop {r3-r7, pc} _0205E93A: mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0205E940 FUN_0205E940: ; 0x0205E940 push {r4-r7, lr} sub sp, #0xc str r0, [sp, #0x0] add r5, r1, #0x0 bl FUN_02058B2C add r4, r0, #0x0 ldr r0, [sp, #0x0] bl FUN_02058B4C add r6, r0, #0x0 ldr r0, [r5, #0x8] bl FUN_02058B2C str r0, [sp, #0x8] ldr r0, [r5, #0x8] bl FUN_02058B4C add r7, r0, #0x0 ldr r0, [r5, #0x8] bl FUN_02058B14 str r0, [sp, #0x4] ldr r0, [r5, #0x8] bl FUN_02058B24 add r3, r0, #0x0 ldr r0, [sp, #0x8] cmp r4, r0 bne _0205E986 cmp r6, r7 bne _0205E986 add sp, #0xc mov r0, #0x0 pop {r4-r7, pc} _0205E986: ldr r2, [sp, #0x4] add r0, r4, #0x0 add r1, r6, #0x0 bl FUN_02059E80 add r5, r0, #0x0 bl FUN_02059BF4 add r4, r4, r0 add r0, r5, #0x0 bl FUN_02059C00 add r1, r6, r0 ldr r0, [sp, #0x8] cmp r4, r0 bne _0205E9AA cmp r1, r7 beq _0205E9C0 _0205E9AA: add r0, r5, #0x0 mov r1, #0xc bl FUN_0205AFDC add r1, r0, #0x0 ldr r0, [sp, #0x0] bl FUN_0205AE0C add sp, #0xc mov r0, #0x1 pop {r4-r7, pc} _0205E9C0: mov r0, #0x0 add sp, #0xc pop {r4-r7, pc} .balign 4 thumb_func_start FUN_0205E9C8 FUN_0205E9C8: ; 0x0205E9C8 push {r4-r5, lr} sub sp, #0xc add r5, r1, #0x0 add r4, r0, #0x0 mov r1, #0x8 bl FUN_0205858C strb r5, [r0, #0x1] add r0, r4, #0x0 mov r1, #0x0 bl FUN_02058544 add r0, r4, #0x0 bl FUN_02058848 mov r1, #0x1 add r0, r4, #0x0 lsl r1, r1, #0x14 bl FUN_02058410 ldr r5, _0205EA0C ; =0x020F7398 add r3, sp, #0x0 ldmia r5!, {r0-r1} add r2, r3, #0x0 stmia r3!, {r0-r1} ldr r0, [r5, #0x0] add r1, r2, #0x0 str r0, [r3, #0x0] add r0, r4, #0x0 bl FUN_02058B94 add sp, #0xc pop {r4-r5, pc} nop _0205EA0C: .word 0x020F7398 thumb_func_start FUN_0205EA10 FUN_0205EA10: ; 0x0205EA10 ldr r3, _0205EA18 ; =FUN_0205E9C8 mov r1, #0x0 bx r3 nop _0205EA18: .word FUN_0205E9C8 thumb_func_start FUN_0205EA1C FUN_0205EA1C: ; 0x0205EA1C ldr r3, _0205EA24 ; =FUN_0205E9C8 mov r1, #0x1 bx r3 nop _0205EA24: .word FUN_0205E9C8 thumb_func_start FUN_0205EA28 FUN_0205EA28: ; 0x0205EA28 ldr r3, _0205EA30 ; =FUN_0205E9C8 mov r1, #0x2 bx r3 nop _0205EA30: .word FUN_0205E9C8 thumb_func_start FUN_0205EA34 FUN_0205EA34: ; 0x0205EA34 ldr r3, _0205EA3C ; =FUN_0205E9C8 mov r1, #0x3 bx r3 nop _0205EA3C: .word FUN_0205E9C8 thumb_func_start FUN_0205EA40 FUN_0205EA40: ; 0x0205EA40 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_020585B0 ldr r6, _0205EA60 ; =0x020F7380 add r4, r0, #0x0 _0205EA4C: ldrb r2, [r4, #0x0] add r0, r5, #0x0 add r1, r4, #0x0 lsl r2, r2, #0x2 ldr r2, [r6, r2] blx r2 cmp r0, #0x1 beq _0205EA4C pop {r4-r6, pc} nop _0205EA60: .word 0x020F7380 thumb_func_start FUN_0205EA64 FUN_0205EA64: ; 0x0205EA64 push {r3, lr} bl FUN_0205EB20 cmp r0, #0x0 beq _0205EA72 bl FUN_021E4DE4 _0205EA72: pop {r3, pc} thumb_func_start FUN_0205EA74 FUN_0205EA74: ; 0x0205EA74 push {r4-r5, lr} sub sp, #0xc add r4, r0, #0x0 bl FUN_020585B0 add r5, r0, #0x0 mov r1, #0x0 strb r1, [r5, #0x0] add r0, r4, #0x0 bl FUN_0205EB14 ldrb r0, [r5, #0x2] cmp r0, #0x0 bne _0205EAA6 ldr r5, _0205EAAC ; =0x020F73A4 add r3, sp, #0x0 ldmia r5!, {r0-r1} add r2, r3, #0x0 stmia r3!, {r0-r1} ldr r0, [r5, #0x0] add r1, r2, #0x0 str r0, [r3, #0x0] add r0, r4, #0x0 bl FUN_02058B94 _0205EAA6: add sp, #0xc pop {r4-r5, pc} nop _0205EAAC: .word 0x020F73A4 thumb_func_start FUN_0205EAB0 FUN_0205EAB0: ; 0x0205EAB0 push {r3-r5, lr} add r4, r1, #0x0 ldrb r1, [r4, #0x2] add r5, r0, #0x0 cmp r1, #0x0 bne _0205EACA ldrb r1, [r4, #0x1] bl FUN_0224CECC add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_0205EB14 _0205EACA: add r0, r5, #0x0 bl FUN_02058848 add r0, r5, #0x0 bl FUN_0205886C ldrb r0, [r4, #0x0] add r0, r0, #0x1 strb r0, [r4, #0x0] mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0205EAE0 FUN_0205EAE0: ; 0x0205EAE0 push {r3-r5, lr} add r4, r1, #0x0 ldrb r1, [r4, #0x2] add r5, r0, #0x0 cmp r1, #0x0 bne _0205EB0E bl FUN_0205EB20 cmp r0, #0x0 bne _0205EB0E add r0, r5, #0x0 bl FUN_02058934 cmp r0, #0x1 bne _0205EB0E ldrb r1, [r4, #0x1] add r0, r5, #0x0 bl FUN_0224CECC add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_0205EB14 _0205EB0E: mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0205EB14 FUN_0205EB14: ; 0x0205EB14 push {r4, lr} add r4, r1, #0x0 bl FUN_020585B0 str r4, [r0, #0x4] pop {r4, pc} thumb_func_start FUN_0205EB20 FUN_0205EB20: ; 0x0205EB20 push {r3, lr} bl FUN_020585B0 ldr r0, [r0, #0x4] pop {r3, pc} .balign 4 thumb_func_start FUN_0205EB2C FUN_0205EB2C: ; 0x0205EB2C push {r3, lr} bl FUN_020585B0 mov r1, #0x1 strb r1, [r0, #0x2] pop {r3, pc} thumb_func_start FUN_0205EB38 FUN_0205EB38: ; 0x0205EB38 push {r4-r7, lr} sub sp, #0x24 ldr r3, _0205EBE0 ; =0x020F73B0 add r2, sp, #0xc add r4, r0, #0x0 ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldmia r3!, {r0-r1} stmia r2!, {r0-r1} mov r1, #0x5b add r0, r4, #0x0 lsl r1, r1, #0x2 bl FUN_02016998 mov r2, #0x5b add r7, r0, #0x0 mov r1, #0x0 lsl r2, r2, #0x2 blx MI_CpuFill8 add r0, r7, #0x0 add r1, sp, #0xc mov r2, #0x2 mov r3, #0xb bl FUN_021D959C mov r0, #0x2 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] ldr r0, _0205EBE4 ; =0x000034D8 mov r2, #0x0 str r0, [sp, #0x8] add r0, r7, #0x0 mov r1, #0x55 add r3, r2, #0x0 bl FUN_021D967C ldr r0, _0205EBE4 ; =0x000034D8 mov r1, #0x55 str r0, [sp, #0x0] add r0, r7, #0x0 mov r2, #0x2 mov r3, #0x0 bl FUN_021D96F4 ldr r0, _0205EBE4 ; =0x000034D8 mov r1, #0x55 str r0, [sp, #0x0] add r0, r7, #0x0 mov r2, #0x3 mov r3, #0x0 bl FUN_021D9708 mov r2, #0x1 ldr r0, _0205EBE4 ; =0x000034D8 str r2, [sp, #0x0] str r0, [sp, #0x4] add r0, r7, #0x0 mov r1, #0x55 mov r3, #0x0 bl FUN_021D971C ldr r4, _0205EBE8 ; =0x020F73C8 mov r6, #0x0 add r5, r7, #0x0 _0205EBC0: add r0, r7, #0x0 add r1, r4, #0x0 bl FUN_021D9820 mov r1, #0x59 lsl r1, r1, #0x2 str r0, [r5, r1] add r6, r6, #0x1 add r4, #0x34 add r5, r5, #0x4 cmp r6, #0x2 blo _0205EBC0 add r0, r7, #0x0 add sp, #0x24 pop {r4-r7, pc} nop _0205EBE0: .word 0x020F73B0 _0205EBE4: .word 0x000034D8 _0205EBE8: .word 0x020F73C8 thumb_func_start FUN_0205EBEC FUN_0205EBEC: ; 0x0205EBEC push {r3-r7, lr} add r7, r0, #0x0 mov r6, #0x59 mov r4, #0x0 add r5, r7, #0x0 lsl r6, r6, #0x2 _0205EBF8: ldr r0, [r5, r6] cmp r0, #0x0 beq _0205EC02 bl FUN_0200C3DC _0205EC02: add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, #0x2 blt _0205EBF8 add r0, r7, #0x0 bl FUN_021D99F8 add r0, r7, #0x0 bl FUN_02016A18 pop {r3-r7, pc} thumb_func_start FUN_0205EC18 FUN_0205EC18: ; 0x0205EC18 push {r3-r7, lr} mov r7, #0x1 mov r6, #0x59 str r0, [sp, #0x0] mov r4, #0x0 add r5, r0, #0x0 lsl r7, r7, #0xc lsl r6, r6, #0x2 _0205EC28: ldr r0, [r5, r6] cmp r0, #0x0 beq _0205EC36 ldr r0, [r0, #0x0] add r1, r7, #0x0 bl FUN_020201E4 _0205EC36: add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, #0x2 blt _0205EC28 ldr r0, [sp, #0x0] ldr r0, [r0, #0x0] bl FUN_0201FDEC pop {r3-r7, pc} thumb_func_start FUN_0205EC48 FUN_0205EC48: ; 0x0205EC48 push {r4-r6, lr} add r5, r0, #0x0 mov r0, #0x59 lsl r0, r0, #0x2 ldr r0, [r5, r0] add r4, r1, #0x0 add r6, r3, #0x0 bl FUN_0200C714 mov r0, #0x5a lsl r0, r0, #0x2 ldr r0, [r5, r0] add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_0200C714 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0205EC6C FUN_0205EC6C: ; 0x0205EC6C push {r3, lr} cmp r1, #0x2 bhs _0205EC82 lsl r1, r1, #0x2 add r1, r0, r1 mov r0, #0x59 lsl r0, r0, #0x2 ldr r0, [r1, r0] add r1, r2, #0x0 bl FUN_0200C644 _0205EC82: pop {r3, pc} thumb_func_start FUN_0205EC84 FUN_0205EC84: ; 0x0205EC84 ldr r3, _0205EC88 ; =FUN_020462E4 bx r3 .balign 4 _0205EC88: .word FUN_020462E4 thumb_func_start FUN_0205EC8C FUN_0205EC8C: ; 0x0205EC8C ldr r3, _0205EC90 ; =FUN_0204630C bx r3 .balign 4 _0205EC90: .word FUN_0204630C thumb_func_start FUN_0205EC94 FUN_0205EC94: ; 0x0205EC94 ldr r3, _0205EC98 ; =FUN_020462B8 bx r3 .balign 4 _0205EC98: .word FUN_020462B8 thumb_func_start FUN_0205EC9C FUN_0205EC9C: ; 0x0205EC9C push {r3, lr} cmp r1, #0x0 beq _0205ECB6 cmp r1, #0x1 beq _0205ECAC cmp r1, #0x2 beq _0205ECC0 b _0205ECCA _0205ECAC: lsl r1, r2, #0x10 lsr r1, r1, #0x10 bl FUN_0205EC84 b _0205ECCE _0205ECB6: lsl r1, r2, #0x10 lsr r1, r1, #0x10 bl FUN_0205EC8C b _0205ECCE _0205ECC0: lsl r1, r2, #0x10 lsr r1, r1, #0x10 bl FUN_0205EC94 pop {r3, pc} _0205ECCA: bl ErrorHandling _0205ECCE: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0205ECD4 FUN_0205ECD4: ; 0x0205ECD4 ldr r3, _0205ECDC ; =FUN_0205EC84 mov r1, #0x96 lsl r1, r1, #0x4 bx r3 .balign 4 _0205ECDC: .word FUN_0205EC84 thumb_func_start FUN_0205ECE0 FUN_0205ECE0: ; 0x0205ECE0 ldr r3, _0205ECE8 ; =FUN_0205EC94 mov r1, #0x96 lsl r1, r1, #0x4 bx r3 .balign 4 _0205ECE8: .word FUN_0205EC94 thumb_func_start FUN_0205ECEC FUN_0205ECEC: ; 0x0205ECEC ldr r3, _0205ECF4 ; =FUN_0205EC94 ldr r1, _0205ECF8 ; =0x0000098D bx r3 nop _0205ECF4: .word FUN_0205EC94 _0205ECF8: .word 0x0000098D thumb_func_start FUN_0205ECFC FUN_0205ECFC: ; 0x0205ECFC ldr r3, _0205ED04 ; =FUN_0205EC84 ldr r1, _0205ED08 ; =0x00000964 bx r3 nop _0205ED04: .word FUN_0205EC84 _0205ED08: .word 0x00000964 thumb_func_start FUN_0205ED0C FUN_0205ED0C: ; 0x0205ED0C ldr r3, _0205ED14 ; =FUN_0205EC94 ldr r1, _0205ED18 ; =0x00000964 bx r3 nop _0205ED14: .word FUN_0205EC94 _0205ED18: .word 0x00000964 thumb_func_start FUN_0205ED1C FUN_0205ED1C: ; 0x0205ED1C ldr r3, _0205ED24 ; =FUN_0205EC84 ldr r1, _0205ED28 ; =0x00000961 bx r3 nop _0205ED24: .word FUN_0205EC84 _0205ED28: .word 0x00000961 thumb_func_start FUN_0205ED2C FUN_0205ED2C: ; 0x0205ED2C ldr r3, _0205ED34 ; =FUN_0205EC8C ldr r1, _0205ED38 ; =0x00000961 bx r3 nop _0205ED34: .word FUN_0205EC8C _0205ED38: .word 0x00000961 thumb_func_start FUN_0205ED3C FUN_0205ED3C: ; 0x0205ED3C ldr r3, _0205ED44 ; =FUN_0205EC94 ldr r1, _0205ED48 ; =0x00000961 bx r3 nop _0205ED44: .word FUN_0205EC94 _0205ED48: .word 0x00000961 thumb_func_start FUN_0205ED4C FUN_0205ED4C: ; 0x0205ED4C ldr r3, _0205ED54 ; =FUN_0205EC84 ldr r1, _0205ED58 ; =0x00000965 bx r3 nop _0205ED54: .word FUN_0205EC84 _0205ED58: .word 0x00000965 thumb_func_start FUN_0205ED5C FUN_0205ED5C: ; 0x0205ED5C ldr r3, _0205ED64 ; =FUN_0205EC8C ldr r1, _0205ED68 ; =0x00000965 bx r3 nop _0205ED64: .word FUN_0205EC8C _0205ED68: .word 0x00000965 thumb_func_start FUN_0205ED6C FUN_0205ED6C: ; 0x0205ED6C ldr r3, _0205ED74 ; =FUN_0205EC94 ldr r1, _0205ED78 ; =0x00000965 bx r3 nop _0205ED74: .word FUN_0205EC94 _0205ED78: .word 0x00000965 thumb_func_start FUN_0205ED7C FUN_0205ED7C: ; 0x0205ED7C ldr r3, _0205ED84 ; =FUN_0205EC84 ldr r1, _0205ED88 ; =0x0000096D bx r3 nop _0205ED84: .word FUN_0205EC84 _0205ED88: .word 0x0000096D thumb_func_start FUN_0205ED8C FUN_0205ED8C: ; 0x0205ED8C ldr r3, _0205ED94 ; =FUN_0205EC8C ldr r1, _0205ED98 ; =0x0000096D bx r3 nop _0205ED94: .word FUN_0205EC8C _0205ED98: .word 0x0000096D thumb_func_start FUN_0205ED9C FUN_0205ED9C: ; 0x0205ED9C ldr r3, _0205EDA4 ; =FUN_0205EC94 ldr r1, _0205EDA8 ; =0x0000096D bx r3 nop _0205EDA4: .word FUN_0205EC94 _0205EDA8: .word 0x0000096D thumb_func_start FUN_0205EDAC FUN_0205EDAC: ; 0x0205EDAC ldr r3, _0205EDB4 ; =FUN_0205EC84 ldr r1, _0205EDB8 ; =0x0000096E bx r3 nop _0205EDB4: .word FUN_0205EC84 _0205EDB8: .word 0x0000096E thumb_func_start FUN_0205EDBC FUN_0205EDBC: ; 0x0205EDBC ldr r3, _0205EDC4 ; =FUN_0205EC84 ldr r1, _0205EDC8 ; =0x0000096F bx r3 nop _0205EDC4: .word FUN_0205EC84 _0205EDC8: .word 0x0000096F thumb_func_start FUN_0205EDCC FUN_0205EDCC: ; 0x0205EDCC ldr r3, _0205EDD4 ; =FUN_0205EC84 mov r1, #0x97 lsl r1, r1, #0x4 bx r3 .balign 4 _0205EDD4: .word FUN_0205EC84 thumb_func_start FUN_0205EDD8 FUN_0205EDD8: ; 0x0205EDD8 ldr r3, _0205EDE0 ; =FUN_0205EC84 ldr r1, _0205EDE4 ; =0x00000971 bx r3 nop _0205EDE0: .word FUN_0205EC84 _0205EDE4: .word 0x00000971 thumb_func_start FUN_0205EDE8 FUN_0205EDE8: ; 0x0205EDE8 ldr r3, _0205EDF0 ; =FUN_0205EC84 ldr r1, _0205EDF4 ; =0x00000972 bx r3 nop _0205EDF0: .word FUN_0205EC84 _0205EDF4: .word 0x00000972 thumb_func_start FUN_0205EDF8 FUN_0205EDF8: ; 0x0205EDF8 ldr r3, _0205EE00 ; =FUN_0205EC84 ldr r1, _0205EE04 ; =0x00000973 bx r3 nop _0205EE00: .word FUN_0205EC84 _0205EE04: .word 0x00000973 thumb_func_start FUN_0205EE08 FUN_0205EE08: ; 0x0205EE08 push {r3, lr} cmp r1, #0x4 bhi _0205EE4A add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0205EE1A: ; jump table (using 16-bit offset) .short _0205EE24 - _0205EE1A - 2; case 0 .short _0205EE2C - _0205EE1A - 2; case 1 .short _0205EE34 - _0205EE1A - 2; case 2 .short _0205EE3C - _0205EE1A - 2; case 3 .short _0205EE44 - _0205EE1A - 2; case 4 _0205EE24: ldr r1, _0205EE4C ; =0x00000968 bl FUN_0205EC84 pop {r3, pc} _0205EE2C: ldr r1, _0205EE50 ; =0x00000969 bl FUN_0205EC84 pop {r3, pc} _0205EE34: ldr r1, _0205EE54 ; =0x0000096A bl FUN_0205EC84 pop {r3, pc} _0205EE3C: ldr r1, _0205EE58 ; =0x0000096B bl FUN_0205EC84 pop {r3, pc} _0205EE44: ldr r1, _0205EE5C ; =0x0000096C bl FUN_0205EC84 _0205EE4A: pop {r3, pc} .balign 4 _0205EE4C: .word 0x00000968 _0205EE50: .word 0x00000969 _0205EE54: .word 0x0000096A _0205EE58: .word 0x0000096B _0205EE5C: .word 0x0000096C thumb_func_start FUN_0205EE60 FUN_0205EE60: ; 0x0205EE60 push {r3, lr} cmp r1, #0x4 bhi _0205EEA2 add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0205EE72: ; jump table (using 16-bit offset) .short _0205EE7C - _0205EE72 - 2; case 0 .short _0205EE84 - _0205EE72 - 2; case 1 .short _0205EE8C - _0205EE72 - 2; case 2 .short _0205EE94 - _0205EE72 - 2; case 3 .short _0205EE9C - _0205EE72 - 2; case 4 _0205EE7C: ldr r1, _0205EEA4 ; =0x00000968 bl FUN_0205EC94 pop {r3, pc} _0205EE84: ldr r1, _0205EEA8 ; =0x00000969 bl FUN_0205EC94 pop {r3, pc} _0205EE8C: ldr r1, _0205EEAC ; =0x0000096A bl FUN_0205EC94 pop {r3, pc} _0205EE94: ldr r1, _0205EEB0 ; =0x0000096B bl FUN_0205EC94 pop {r3, pc} _0205EE9C: ldr r1, _0205EEB4 ; =0x0000096C bl FUN_0205EC94 _0205EEA2: pop {r3, pc} .balign 4 _0205EEA4: .word 0x00000968 _0205EEA8: .word 0x00000969 _0205EEAC: .word 0x0000096A _0205EEB0: .word 0x0000096B _0205EEB4: .word 0x0000096C thumb_func_start FUN_0205EEB8 FUN_0205EEB8: ; 0x0205EEB8 push {r3, lr} mov r2, #0x0 cmp r1, #0x5 bhi _0205EF0A add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0205EECC: ; jump table (using 16-bit offset) .short _0205EF0A - _0205EECC - 2; case 0 .short _0205EED8 - _0205EECC - 2; case 1 .short _0205EEE2 - _0205EECC - 2; case 2 .short _0205EEEE - _0205EECC - 2; case 3 .short _0205EEF8 - _0205EECC - 2; case 4 .short _0205EF02 - _0205EECC - 2; case 5 _0205EED8: ldr r1, _0205EF10 ; =0x0000097F bl FUN_0205EC94 add r2, r0, #0x0 b _0205EF0A _0205EEE2: mov r1, #0x26 lsl r1, r1, #0x6 bl FUN_0205EC94 add r2, r0, #0x0 b _0205EF0A _0205EEEE: ldr r1, _0205EF14 ; =0x00000981 bl FUN_0205EC94 add r2, r0, #0x0 b _0205EF0A _0205EEF8: ldr r1, _0205EF18 ; =0x00000982 bl FUN_0205EC94 add r2, r0, #0x0 b _0205EF0A _0205EF02: ldr r1, _0205EF1C ; =0x00000983 bl FUN_0205EC94 add r2, r0, #0x0 _0205EF0A: add r0, r2, #0x0 pop {r3, pc} nop _0205EF10: .word 0x0000097F _0205EF14: .word 0x00000981 _0205EF18: .word 0x00000982 _0205EF1C: .word 0x00000983 thumb_func_start FUN_0205EF20 FUN_0205EF20: ; 0x0205EF20 push {r4-r6, lr} add r4, r1, #0x0 ldr r1, _0205F0E4 ; =0x00000132 add r6, r0, #0x0 mov r5, #0x0 cmp r4, r1 bgt _0205EF7E blt _0205EF32 b _0205F036 _0205EF32: cmp r4, #0xc9 bgt _0205EF60 blt _0205EF3A b _0205F084 _0205EF3A: cmp r4, #0x4b bgt _0205EF58 add r1, r4, #0x0 sub r1, #0x48 bmi _0205EF5E add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0205EF50: ; jump table (using 16-bit offset) .short _0205F06A - _0205EF50 - 2; case 0 .short _0205F06A - _0205EF50 - 2; case 1 .short _0205F06A - _0205EF50 - 2; case 2 .short _0205F06A - _0205EF50 - 2; case 3 _0205EF58: cmp r4, #0xb9 bne _0205EF5E b _0205F0D2 _0205EF5E: b _0205F0E0 _0205EF60: add r2, r1, #0x0 sub r2, #0x32 cmp r4, r2 bgt _0205EF76 sub r1, #0x32 cmp r4, r1 blt _0205EF70 b _0205F09E _0205EF70: cmp r4, #0xfb beq _0205F018 b _0205F0E0 _0205EF76: sub r0, r1, #0x1 cmp r4, r0 beq _0205F036 b _0205F0E0 _0205EF7E: add r2, r1, #0x0 add r2, #0x5d cmp r4, r2 bgt _0205EFC8 add r2, r1, #0x0 add r2, #0x5d cmp r4, r2 blt _0205EF90 b _0205F0B8 _0205EF90: add r2, r1, #0x1 cmp r4, r2 bgt _0205EF9E add r0, r2, #0x0 cmp r4, r0 beq _0205F036 b _0205F0E0 _0205EF9E: add r1, r1, #0x2 sub r1, r4, r1 cmp r1, #0xa bhi _0205EFD6 add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0205EFB2: ; jump table (using 16-bit offset) .short _0205F036 - _0205EFB2 - 2; case 0 .short _0205F036 - _0205EFB2 - 2; case 1 .short _0205F036 - _0205EFB2 - 2; case 2 .short _0205F0E0 - _0205EFB2 - 2; case 3 .short _0205EFFC - _0205EFB2 - 2; case 4 .short _0205F0E0 - _0205EFB2 - 2; case 5 .short _0205EFE0 - _0205EFB2 - 2; case 6 .short _0205F0E0 - _0205EFB2 - 2; case 7 .short _0205EFEE - _0205EFB2 - 2; case 8 .short _0205F0E0 - _0205EFB2 - 2; case 9 .short _0205F00A - _0205EFB2 - 2; case 10 _0205EFC8: ldr r0, _0205F0E8 ; =0x000001EE cmp r4, r0 bgt _0205EFD8 bge _0205F036 sub r0, #0x48 cmp r4, r0 beq _0205F026 _0205EFD6: b _0205F0E0 _0205EFD8: add r0, r0, #0x3 cmp r4, r0 beq _0205F036 b _0205F0E0 _0205EFE0: ldr r1, _0205F0EC ; =0x00000984 bl FUN_0205EC94 cmp r0, #0x1 bne _0205F0E0 ldr r5, _0205F0F0 ; =0x0000042E b _0205F0E0 _0205EFEE: ldr r1, _0205F0EC ; =0x00000984 bl FUN_0205EC94 cmp r0, #0x1 bne _0205F0E0 ldr r5, _0205F0F4 ; =0x00000429 b _0205F0E0 _0205EFFC: ldr r1, _0205F0F8 ; =0x0000098E bl FUN_0205EC94 cmp r0, #0x1 bne _0205F0E0 ldr r5, _0205F0F0 ; =0x0000042E b _0205F0E0 _0205F00A: ldr r1, _0205F0FC ; =0x0000098F bl FUN_0205EC94 cmp r0, #0x1 bne _0205F0E0 ldr r5, _0205F0F0 ; =0x0000042E b _0205F0E0 _0205F018: ldr r1, _0205F100 ; =0x00000995 bl FUN_0205EC94 cmp r0, #0x1 bne _0205F0E0 ldr r5, _0205F104 ; =0x0000042D b _0205F0E0 _0205F026: ldr r1, _0205F108 ; =0x00000993 add r0, r6, #0x0 bl FUN_0205EC94 cmp r0, #0x1 bne _0205F0E0 ldr r5, _0205F10C ; =0x0000044A b _0205F0E0 _0205F036: ldr r1, _0205F110 ; =0x00000985 add r0, r6, #0x0 bl FUN_0205EC94 cmp r0, #0x1 bne _0205F054 bl FUN_0201277C cmp r0, #0x0 bne _0205F050 mov r5, #0xfe lsl r5, r5, #0x2 b _0205F0E0 _0205F050: ldr r5, _0205F114 ; =0x00000415 b _0205F0E0 _0205F054: ldr r0, _0205F118 ; =0x00000131 cmp r4, r0 bne _0205F0E0 ldr r1, _0205F11C ; =0x00000986 add r0, r6, #0x0 bl FUN_0205EC94 cmp r0, #0x1 bne _0205F0E0 ldr r5, _0205F120 ; =0x0000042B b _0205F0E0 _0205F06A: ldr r1, _0205F124 ; =0x00000987 bl FUN_0205EC94 cmp r0, #0x1 bne _0205F0E0 bl FUN_0201277C cmp r0, #0x0 bne _0205F080 ldr r5, _0205F128 ; =0x000003F5 b _0205F0E0 _0205F080: ldr r5, _0205F12C ; =0x00000412 b _0205F0E0 _0205F084: ldr r1, _0205F130 ; =0x00000988 bl FUN_0205EC94 cmp r0, #0x1 bne _0205F0E0 bl FUN_0201277C cmp r0, #0x0 bne _0205F09A ldr r5, _0205F134 ; =0x000003FF b _0205F0E0 _0205F09A: ldr r5, _0205F138 ; =0x0000041C b _0205F0E0 _0205F09E: ldr r1, _0205F13C ; =0x00000989 bl FUN_0205EC94 cmp r0, #0x1 bne _0205F0E0 bl FUN_0201277C cmp r0, #0x0 bne _0205F0B4 ldr r5, _0205F140 ; =0x000003EE b _0205F0E0 _0205F0B4: ldr r5, _0205F144 ; =0x0000040B b _0205F0E0 _0205F0B8: ldr r1, _0205F148 ; =0x0000098A bl FUN_0205EC94 cmp r0, #0x1 bne _0205F0E0 bl FUN_0201277C cmp r0, #0x0 bne _0205F0CE ldr r5, _0205F140 ; =0x000003EE b _0205F0E0 _0205F0CE: ldr r5, _0205F144 ; =0x0000040B b _0205F0E0 _0205F0D2: ldr r1, _0205F14C ; =0x0000098B add r0, r6, #0x0 bl FUN_0205EC94 cmp r0, #0x1 bne _0205F0E0 ldr r5, _0205F150 ; =0x000003E9 _0205F0E0: add r0, r5, #0x0 pop {r4-r6, pc} .balign 4 _0205F0E4: .word 0x00000132 _0205F0E8: .word 0x000001EE _0205F0EC: .word 0x00000984 _0205F0F0: .word 0x0000042E _0205F0F4: .word 0x00000429 _0205F0F8: .word 0x0000098E _0205F0FC: .word 0x0000098F _0205F100: .word 0x00000995 _0205F104: .word 0x0000042D _0205F108: .word 0x00000993 _0205F10C: .word 0x0000044A _0205F110: .word 0x00000985 _0205F114: .word 0x00000415 _0205F118: .word 0x00000131 _0205F11C: .word 0x00000986 _0205F120: .word 0x0000042B _0205F124: .word 0x00000987 _0205F128: .word 0x000003F5 _0205F12C: .word 0x00000412 _0205F130: .word 0x00000988 _0205F134: .word 0x000003FF _0205F138: .word 0x0000041C _0205F13C: .word 0x00000989 _0205F140: .word 0x000003EE _0205F144: .word 0x0000040B _0205F148: .word 0x0000098A _0205F14C: .word 0x0000098B _0205F150: .word 0x000003E9 thumb_func_start FUN_0205F154 FUN_0205F154: ; 0x0205F154 ldr r3, _0205F15C ; =FUN_0205EC84 ldr r1, _0205F160 ; =0x00000966 bx r3 nop _0205F15C: .word FUN_0205EC84 _0205F160: .word 0x00000966 thumb_func_start FUN_0205F164 FUN_0205F164: ; 0x0205F164 ldr r3, _0205F16C ; =FUN_0205EC8C ldr r1, _0205F170 ; =0x00000966 bx r3 nop _0205F16C: .word FUN_0205EC8C _0205F170: .word 0x00000966 thumb_func_start FUN_0205F174 FUN_0205F174: ; 0x0205F174 ldr r3, _0205F17C ; =FUN_0205EC94 ldr r1, _0205F180 ; =0x00000966 bx r3 nop _0205F17C: .word FUN_0205EC94 _0205F180: .word 0x00000966 thumb_func_start FUN_0205F184 FUN_0205F184: ; 0x0205F184 ldr r3, _0205F18C ; =FUN_0205EC94 ldr r1, _0205F190 ; =0x00000978 bx r3 nop _0205F18C: .word FUN_0205EC94 _0205F190: .word 0x00000978 thumb_func_start FUN_0205F194 FUN_0205F194: ; 0x0205F194 ldr r3, _0205F19C ; =FUN_0205EC94 ldr r1, _0205F1A0 ; =0x00000992 bx r3 nop _0205F19C: .word FUN_0205EC94 _0205F1A0: .word 0x00000992 thumb_func_start FUN_0205F1A4 FUN_0205F1A4: ; 0x0205F1A4 ldr r3, _0205F1AC ; =FUN_0205EC94 ldr r1, _0205F1B0 ; =0x0000097D bx r3 nop _0205F1AC: .word FUN_0205EC94 _0205F1B0: .word 0x0000097D thumb_func_start FUN_0205F1B4 FUN_0205F1B4: ; 0x0205F1B4 ldr r3, _0205F1BC ; =FUN_0205EC94 ldr r1, _0205F1C0 ; =0x0000097E bx r3 nop _0205F1BC: .word FUN_0205EC94 _0205F1C0: .word 0x0000097E thumb_func_start FUN_0205F1C4 FUN_0205F1C4: ; 0x0205F1C4 ldr r3, _0205F1CC ; =FUN_0205EC84 ldr r1, _0205F1D0 ; =0x0000097C bx r3 nop _0205F1CC: .word FUN_0205EC84 _0205F1D0: .word 0x0000097C thumb_func_start FUN_0205F1D4 FUN_0205F1D4: ; 0x0205F1D4 ldr r3, _0205F1DC ; =FUN_0205EC8C ldr r1, _0205F1E0 ; =0x0000097C bx r3 nop _0205F1DC: .word FUN_0205EC8C _0205F1E0: .word 0x0000097C thumb_func_start FUN_0205F1E4 FUN_0205F1E4: ; 0x0205F1E4 ldr r3, _0205F1EC ; =FUN_0205EC94 ldr r1, _0205F1F0 ; =0x0000097C bx r3 nop _0205F1EC: .word FUN_0205EC94 _0205F1F0: .word 0x0000097C thumb_func_start FUN_0205F1F4 FUN_0205F1F4: ; 0x0205F1F4 ldr r3, _0205F1FC ; =FUN_0205EC84 ldr r1, _0205F200 ; =0x00000967 bx r3 nop _0205F1FC: .word FUN_0205EC84 _0205F200: .word 0x00000967 thumb_func_start FUN_0205F204 FUN_0205F204: ; 0x0205F204 ldr r3, _0205F20C ; =FUN_0205EC8C ldr r1, _0205F210 ; =0x00000967 bx r3 nop _0205F20C: .word FUN_0205EC8C _0205F210: .word 0x00000967 thumb_func_start FUN_0205F214 FUN_0205F214: ; 0x0205F214 ldr r3, _0205F21C ; =FUN_0205EC94 ldr r1, _0205F220 ; =0x00000967 bx r3 nop _0205F21C: .word FUN_0205EC94 _0205F220: .word 0x00000967 thumb_func_start FUN_0205F224 FUN_0205F224: ; 0x0205F224 ldr r3, _0205F22C ; =FUN_0205EC84 ldr r1, _0205F230 ; =0x00000979 bx r3 nop _0205F22C: .word FUN_0205EC84 _0205F230: .word 0x00000979 thumb_func_start FUN_0205F234 FUN_0205F234: ; 0x0205F234 ldr r3, _0205F23C ; =FUN_0205EC8C ldr r1, _0205F240 ; =0x00000979 bx r3 nop _0205F23C: .word FUN_0205EC8C _0205F240: .word 0x00000979 thumb_func_start FUN_0205F244 FUN_0205F244: ; 0x0205F244 ldr r3, _0205F24C ; =FUN_0205EC94 ldr r1, _0205F250 ; =0x00000979 bx r3 nop _0205F24C: .word FUN_0205EC94 _0205F250: .word 0x00000979 thumb_func_start FUN_0205F254 FUN_0205F254: ; 0x0205F254 ldr r3, _0205F25C ; =FUN_0205EC8C ldr r1, _0205F260 ; =0x00000994 bx r3 nop _0205F25C: .word FUN_0205EC8C _0205F260: .word 0x00000994 thumb_func_start FUN_0205F264 FUN_0205F264: ; 0x0205F264 ldr r3, _0205F26C ; =FUN_0205EC9C ldr r2, _0205F270 ; =0x00000962 bx r3 nop _0205F26C: .word FUN_0205EC9C _0205F270: .word 0x00000962 thumb_func_start FUN_0205F274 FUN_0205F274: ; 0x0205F274 ldr r3, _0205F27C ; =FUN_0205EC84 ldr r1, _0205F280 ; =0x0000097A bx r3 nop _0205F27C: .word FUN_0205EC84 _0205F280: .word 0x0000097A thumb_func_start FUN_0205F284 FUN_0205F284: ; 0x0205F284 ldr r3, _0205F28C ; =FUN_0205EC8C ldr r1, _0205F290 ; =0x0000097A bx r3 nop _0205F28C: .word FUN_0205EC8C _0205F290: .word 0x0000097A thumb_func_start FUN_0205F294 FUN_0205F294: ; 0x0205F294 ldr r3, _0205F29C ; =FUN_0205EC94 ldr r1, _0205F2A0 ; =0x0000097A bx r3 nop _0205F29C: .word FUN_0205EC94 _0205F2A0: .word 0x0000097A thumb_func_start FUN_0205F2A4 FUN_0205F2A4: ; 0x0205F2A4 ldr r3, _0205F2AC ; =FUN_0205EC84 ldr r1, _0205F2B0 ; =0x0000097B bx r3 nop _0205F2AC: .word FUN_0205EC84 _0205F2B0: .word 0x0000097B thumb_func_start FUN_0205F2B4 FUN_0205F2B4: ; 0x0205F2B4 ldr r3, _0205F2BC ; =FUN_0205EC8C ldr r1, _0205F2C0 ; =0x0000097B bx r3 nop _0205F2BC: .word FUN_0205EC8C _0205F2C0: .word 0x0000097B thumb_func_start FUN_0205F2C4 FUN_0205F2C4: ; 0x0205F2C4 ldr r3, _0205F2CC ; =FUN_0205EC94 ldr r1, _0205F2D0 ; =0x0000097B bx r3 nop _0205F2CC: .word FUN_0205EC94 _0205F2D0: .word 0x0000097B thumb_func_start FUN_0205F2D4 FUN_0205F2D4: ; 0x0205F2D4 ldr r3, _0205F2DC ; =FUN_0205EC9C ldr r2, _0205F2E0 ; =0x00000963 bx r3 nop _0205F2DC: .word FUN_0205EC9C _0205F2E0: .word 0x00000963 thumb_func_start FUN_0205F2E4 FUN_0205F2E4: ; 0x0205F2E4 push {r4-r6, lr} add r4, r2, #0x0 add r5, r0, #0x0 add r6, r1, #0x0 cmp r4, #0x45 blo _0205F2F4 bl ErrorHandling _0205F2F4: mov r2, #0x9b lsl r2, r2, #0x4 add r0, r5, #0x0 add r1, r6, #0x0 add r2, r4, r2 bl FUN_0205EC9C pop {r4-r6, pc} thumb_func_start FUN_0205F304 FUN_0205F304: ; 0x0205F304 ldr r3, _0205F30C ; =FUN_0205EC84 ldr r1, _0205F310 ; =0x0000098C bx r3 nop _0205F30C: .word FUN_0205EC84 _0205F310: .word 0x0000098C thumb_func_start FUN_0205F314 FUN_0205F314: ; 0x0205F314 push {r3-r5, lr} add r5, r1, #0x0 add r4, r2, #0x0 bl FUN_02046380 mov r1, #0x1 lsl r1, r1, #0xe cmp r5, r1 blo _0205F32C lsl r1, r1, #0x1 cmp r5, r1 bls _0205F334 _0205F32C: bl ErrorHandling mov r0, #0x0 pop {r3-r5, pc} _0205F334: cmp r0, #0x0 bne _0205F33C mov r0, #0x0 pop {r3-r5, pc} _0205F33C: strh r4, [r0, #0x0] mov r0, #0x1 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0205F344 FUN_0205F344: ; 0x0205F344 push {r3, lr} bl FUN_02046380 cmp r0, #0x0 bne _0205F352 mov r0, #0x0 pop {r3, pc} _0205F352: ldrh r0, [r0, #0x0] pop {r3, pc} .balign 4 thumb_func_start FUN_0205F358 FUN_0205F358: ; 0x0205F358 ldr r3, _0205F360 ; =FUN_0205F314 add r2, r1, #0x0 ldr r1, _0205F364 ; =0x0000403F bx r3 .balign 4 _0205F360: .word FUN_0205F314 _0205F364: .word 0x0000403F thumb_func_start FUN_0205F368 FUN_0205F368: ; 0x0205F368 ldr r3, _0205F370 ; =FUN_0205F344 ldr r1, _0205F374 ; =0x0000403F bx r3 nop _0205F370: .word FUN_0205F344 _0205F374: .word 0x0000403F thumb_func_start FUN_0205F378 FUN_0205F378: ; 0x0205F378 ldr r3, _0205F380 ; =FUN_0205F314 add r2, r1, #0x0 ldr r1, _0205F384 ; =0x00004030 bx r3 .balign 4 _0205F380: .word FUN_0205F314 _0205F384: .word 0x00004030 thumb_func_start FUN_0205F388 FUN_0205F388: ; 0x0205F388 ldr r3, _0205F390 ; =FUN_0205F344 ldr r1, _0205F394 ; =0x00004030 bx r3 nop _0205F390: .word FUN_0205F344 _0205F394: .word 0x00004030 thumb_func_start FUN_0205F398 FUN_0205F398: ; 0x0205F398 push {r3, lr} ldr r1, _0205F3B8 ; =0x00004030 bl FUN_0205F344 ldr r2, _0205F3BC ; =0x00000183 cmp r0, r2 bne _0205F3AA add r2, r2, #0x3 b _0205F3B2 _0205F3AA: add r1, r2, #0x3 cmp r0, r1 bne _0205F3B2 add r2, r2, #0x6 _0205F3B2: add r0, r2, #0x0 pop {r3, pc} nop _0205F3B8: .word 0x00004030 _0205F3BC: .word 0x00000183 thumb_func_start FUN_0205F3C0 FUN_0205F3C0: ; 0x0205F3C0 push {r3, lr} ldr r1, _0205F3E0 ; =0x00004030 bl FUN_0205F344 ldr r2, _0205F3E4 ; =0x00000183 cmp r0, r2 bne _0205F3D2 add r2, r2, #0x6 b _0205F3DA _0205F3D2: add r1, r2, #0x3 cmp r0, r1 beq _0205F3DA add r2, r2, #0x3 _0205F3DA: add r0, r2, #0x0 pop {r3, pc} nop _0205F3E0: .word 0x00004030 _0205F3E4: .word 0x00000183 thumb_func_start FUN_0205F3E8 FUN_0205F3E8: ; 0x0205F3E8 ldr r3, _0205F3F0 ; =FUN_0205F344 ldr r1, _0205F3F4 ; =0x00004035 bx r3 nop _0205F3F0: .word FUN_0205F344 _0205F3F4: .word 0x00004035 thumb_func_start FUN_0205F3F8 FUN_0205F3F8: ; 0x0205F3F8 ldr r3, _0205F400 ; =FUN_0205F314 add r2, r1, #0x0 ldr r1, _0205F404 ; =0x00004035 bx r3 .balign 4 _0205F400: .word FUN_0205F314 _0205F404: .word 0x00004035 thumb_func_start FUN_0205F408 FUN_0205F408: ; 0x0205F408 push {r4, lr} add r4, r0, #0x0 bl FUN_0205ED8C add r0, r4, #0x0 mov r1, #0x0 bl FUN_0205F44C pop {r4, pc} .balign 4 thumb_func_start FUN_0205F41C FUN_0205F41C: ; 0x0205F41C ldr r3, _0205F424 ; =FUN_0205F344 ldr r1, _0205F428 ; =0x00004033 bx r3 nop _0205F424: .word FUN_0205F344 _0205F428: .word 0x00004033 thumb_func_start FUN_0205F42C FUN_0205F42C: ; 0x0205F42C ldr r3, _0205F434 ; =FUN_0205F314 add r2, r1, #0x0 ldr r1, _0205F438 ; =0x00004033 bx r3 .balign 4 _0205F434: .word FUN_0205F314 _0205F438: .word 0x00004033 thumb_func_start FUN_0205F43C FUN_0205F43C: ; 0x0205F43C ldr r3, _0205F444 ; =FUN_0205F344 ldr r1, _0205F448 ; =0x00004034 bx r3 nop _0205F444: .word FUN_0205F344 _0205F448: .word 0x00004034 thumb_func_start FUN_0205F44C FUN_0205F44C: ; 0x0205F44C ldr r3, _0205F454 ; =FUN_0205F314 add r2, r1, #0x0 ldr r1, _0205F458 ; =0x00004034 bx r3 .balign 4 _0205F454: .word FUN_0205F314 _0205F458: .word 0x00004034 thumb_func_start FUN_0205F45C FUN_0205F45C: ; 0x0205F45C push {r4, lr} add r4, r0, #0x0 bmi _0205F466 cmp r4, #0x3 blo _0205F46A _0205F466: bl ErrorHandling _0205F46A: ldr r0, _0205F474 ; =0x020F7430 lsl r1, r4, #0x1 ldrh r0, [r0, r1] pop {r4, pc} nop _0205F474: .word 0x020F7430 thumb_func_start FUN_0205F478 FUN_0205F478: ; 0x0205F478 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0205F45C add r2, r0, #0x0 ldr r1, _0205F49C ; =0x00004043 lsl r2, r2, #0x10 add r1, r4, r1 lsl r1, r1, #0x10 add r0, r5, #0x0 lsr r1, r1, #0x10 lsr r2, r2, #0x10 bl FUN_0205F314 pop {r3-r5, pc} nop _0205F49C: .word 0x00004043 thumb_func_start FUN_0205F4A0 FUN_0205F4A0: ; 0x0205F4A0 push {r3-r5, lr} add r4, r1, #0x0 ldr r1, _0205F4C4 ; =0x00004043 add r1, r4, r1 lsl r1, r1, #0x10 lsr r1, r1, #0x10 bl FUN_0205F344 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0205F45C cmp r5, r0 bne _0205F4C0 mov r0, #0x1 pop {r3-r5, pc} _0205F4C0: mov r0, #0x0 pop {r3-r5, pc} .balign 4 _0205F4C4: .word 0x00004043 thumb_func_start FUN_0205F4C8 FUN_0205F4C8: ; 0x0205F4C8 push {r4, lr} add r4, r0, #0x0 bmi _0205F4D2 cmp r4, #0x4 blt _0205F4D6 _0205F4D2: bl ErrorHandling _0205F4D6: ldr r0, _0205F4E0 ; =0x020F7436 lsl r1, r4, #0x1 ldrh r0, [r0, r1] pop {r4, pc} nop _0205F4E0: .word 0x020F7436 thumb_func_start FUN_0205F4E4 FUN_0205F4E4: ; 0x0205F4E4 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0205F4C8 add r2, r0, #0x0 ldr r1, _0205F508 ; =0x00004036 lsl r2, r2, #0x10 add r1, r4, r1 lsl r1, r1, #0x10 add r0, r5, #0x0 lsr r1, r1, #0x10 lsr r2, r2, #0x10 bl FUN_0205F314 pop {r3-r5, pc} nop _0205F508: .word 0x00004036 thumb_func_start FUN_0205F50C FUN_0205F50C: ; 0x0205F50C ldr r2, _0205F51C ; =0x00004036 ldr r3, _0205F520 ; =FUN_0205F314 add r1, r1, r2 lsl r1, r1, #0x10 lsr r1, r1, #0x10 mov r2, #0x0 bx r3 nop _0205F51C: .word 0x00004036 _0205F520: .word FUN_0205F314 thumb_func_start FUN_0205F524 FUN_0205F524: ; 0x0205F524 push {r3-r5, lr} add r4, r1, #0x0 ldr r1, _0205F548 ; =0x00004036 add r1, r4, r1 lsl r1, r1, #0x10 lsr r1, r1, #0x10 bl FUN_0205F344 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0205F4C8 cmp r5, r0 bne _0205F544 mov r0, #0x1 pop {r3-r5, pc} _0205F544: mov r0, #0x0 pop {r3-r5, pc} .balign 4 _0205F548: .word 0x00004036 thumb_func_start FUN_0205F54C FUN_0205F54C: ; 0x0205F54C ldr r3, _0205F554 ; =FUN_0205F314 ldr r1, _0205F558 ; =0x0000403A mov r2, #0x0 bx r3 .balign 4 _0205F554: .word FUN_0205F314 _0205F558: .word 0x0000403A thumb_func_start FUN_0205F55C FUN_0205F55C: ; 0x0205F55C ldr r3, _0205F564 ; =FUN_0205F344 ldr r1, _0205F568 ; =0x0000403A bx r3 nop _0205F564: .word FUN_0205F344 _0205F568: .word 0x0000403A thumb_func_start FUN_0205F56C FUN_0205F56C: ; 0x0205F56C push {r4, lr} ldr r1, _0205F58C ; =0x0000403A add r4, r0, #0x0 bl FUN_0205F344 ldr r2, _0205F590 ; =0x00002710 cmp r0, r2 bhs _0205F582 add r0, r0, #0x1 lsl r0, r0, #0x10 lsr r2, r0, #0x10 _0205F582: ldr r1, _0205F58C ; =0x0000403A add r0, r4, #0x0 bl FUN_0205F314 pop {r4, pc} .balign 4 _0205F58C: .word 0x0000403A _0205F590: .word 0x00002710 thumb_func_start FUN_0205F594 FUN_0205F594: ; 0x0205F594 ldr r3, _0205F59C ; =FUN_0205F344 ldr r1, _0205F5A0 ; =0x0000403B bx r3 nop _0205F59C: .word FUN_0205F344 _0205F5A0: .word 0x0000403B thumb_func_start FUN_0205F5A4 FUN_0205F5A4: ; 0x0205F5A4 ldr r3, _0205F5AC ; =FUN_0205F314 add r2, r1, #0x0 ldr r1, _0205F5B0 ; =0x0000403B bx r3 .balign 4 _0205F5AC: .word FUN_0205F314 _0205F5B0: .word 0x0000403B thumb_func_start FUN_0205F5B4 FUN_0205F5B4: ; 0x0205F5B4 push {r3-r5, lr} add r4, r1, #0x0 lsl r2, r4, #0x10 ldr r1, _0205F5D4 ; =0x0000403C lsr r2, r2, #0x10 add r5, r0, #0x0 bl FUN_0205F314 lsr r2, r4, #0x10 lsl r2, r2, #0x10 ldr r1, _0205F5D4 ; =0x0000403C add r0, r5, #0x0 lsr r2, r2, #0x10 bl FUN_0205F314 pop {r3-r5, pc} .balign 4 _0205F5D4: .word 0x0000403C thumb_func_start FUN_0205F5D8 FUN_0205F5D8: ; 0x0205F5D8 push {r3-r5, lr} ldr r1, _0205F5F4 ; =0x0000403C add r5, r0, #0x0 bl FUN_0205F344 add r4, r0, #0x0 ldr r1, _0205F5F8 ; =0x0000403D add r0, r5, #0x0 bl FUN_0205F344 lsl r0, r0, #0x10 orr r0, r4 pop {r3-r5, pc} nop _0205F5F4: .word 0x0000403C _0205F5F8: .word 0x0000403D thumb_func_start FUN_0205F5FC FUN_0205F5FC: ; 0x0205F5FC push {r3-r5, lr} add r5, r0, #0x0 bl FUN_0201B9EC add r4, r0, #0x0 bl FUN_0201B9EC add r1, r0, #0x0 lsl r1, r1, #0x10 add r0, r5, #0x0 orr r1, r4 bl FUN_0205F5B4 pop {r3-r5, pc} thumb_func_start FUN_0205F618 FUN_0205F618: ; 0x0205F618 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_020462AC add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0202881C bl FUN_020287A4 add r2, r0, #0x0 ldr r1, _0205F640 ; =0x41C64E6D add r0, r4, #0x0 mul r2, r1 ldr r1, _0205F644 ; =0x00003039 add r1, r2, r1 bl FUN_0205F5B4 pop {r3-r5, pc} nop _0205F640: .word 0x41C64E6D _0205F644: .word 0x00003039 thumb_func_start FUN_0205F648 FUN_0205F648: ; 0x0205F648 ldr r3, _0205F650 ; =FUN_0205F344 ldr r1, _0205F654 ; =0x00004041 bx r3 nop _0205F650: .word FUN_0205F344 _0205F654: .word 0x00004041 thumb_func_start FUN_0205F658 FUN_0205F658: ; 0x0205F658 ldr r3, _0205F660 ; =FUN_0205F314 add r2, r1, #0x0 ldr r1, _0205F664 ; =0x00004041 bx r3 .balign 4 _0205F660: .word FUN_0205F314 _0205F664: .word 0x00004041 thumb_func_start FUN_0205F668 FUN_0205F668: ; 0x0205F668 push {r4, lr} bl FUN_020462AC add r4, r0, #0x0 bl FUN_0201B9EC mov r1, #0x62 blx _s32_div_f add r1, r1, #0x2 lsl r1, r1, #0x10 add r0, r4, #0x0 lsr r1, r1, #0x10 bl FUN_0205F658 pop {r4, pc} thumb_func_start FUN_0205F688 FUN_0205F688: ; 0x0205F688 ldr r3, _0205F690 ; =FUN_0205F344 ldr r1, _0205F694 ; =0x0000403E bx r3 nop _0205F690: .word FUN_0205F344 _0205F694: .word 0x0000403E thumb_func_start FUN_0205F698 FUN_0205F698: ; 0x0205F698 ldr r3, _0205F6A0 ; =FUN_0205F314 add r2, r1, #0x0 ldr r1, _0205F6A4 ; =0x0000403E bx r3 .balign 4 _0205F6A0: .word FUN_0205F314 _0205F6A4: .word 0x0000403E thumb_func_start FUN_0205F6A8 FUN_0205F6A8: ; 0x0205F6A8 ldr r3, _0205F6B0 ; =FUN_0205F344 ldr r1, _0205F6B4 ; =0x00004049 bx r3 nop _0205F6B0: .word FUN_0205F344 _0205F6B4: .word 0x00004049 thumb_func_start FUN_0205F6B8 FUN_0205F6B8: ; 0x0205F6B8 ldr r3, _0205F6C0 ; =FUN_0205F314 add r2, r1, #0x0 ldr r1, _0205F6C4 ; =0x00004049 bx r3 .balign 4 _0205F6C0: .word FUN_0205F314 _0205F6C4: .word 0x00004049 thumb_func_start FUN_0205F6C8 FUN_0205F6C8: ; 0x0205F6C8 ldr r3, _0205F6D0 ; =FUN_0205F344 ldr r1, _0205F6D4 ; =0x00004040 bx r3 nop _0205F6D0: .word FUN_0205F344 _0205F6D4: .word 0x00004040 thumb_func_start FUN_0205F6D8 FUN_0205F6D8: ; 0x0205F6D8 ldr r3, _0205F6E0 ; =FUN_0205F314 add r2, r1, #0x0 ldr r1, _0205F6E4 ; =0x00004040 bx r3 .balign 4 _0205F6E0: .word FUN_0205F314 _0205F6E4: .word 0x00004040 thumb_func_start FUN_0205F6E8 FUN_0205F6E8: ; 0x0205F6E8 push {r4, lr} ldr r1, _0205F708 ; =0x00004042 add r4, r0, #0x0 bl FUN_0205F344 ldr r2, _0205F70C ; =0x00002710 cmp r0, r2 bhs _0205F6FE add r0, r0, #0x1 lsl r0, r0, #0x10 lsr r2, r0, #0x10 _0205F6FE: ldr r1, _0205F708 ; =0x00004042 add r0, r4, #0x0 bl FUN_0205F314 pop {r4, pc} .balign 4 _0205F708: .word 0x00004042 _0205F70C: .word 0x00002710 thumb_func_start FUN_0205F710 FUN_0205F710: ; 0x0205F710 ldr r3, _0205F718 ; =FUN_0205F344 ldr r1, _0205F71C ; =0x00004042 bx r3 nop _0205F718: .word FUN_0205F344 _0205F71C: .word 0x00004042 thumb_func_start FUN_0205F720 FUN_0205F720: ; 0x0205F720 ldr r3, _0205F728 ; =FUN_0205F344 ldr r1, _0205F72C ; =0x00004046 bx r3 nop _0205F728: .word FUN_0205F344 _0205F72C: .word 0x00004046 thumb_func_start FUN_0205F730 FUN_0205F730: ; 0x0205F730 ldr r3, _0205F738 ; =FUN_0205F314 add r2, r1, #0x0 ldr r1, _0205F73C ; =0x00004046 bx r3 .balign 4 _0205F738: .word FUN_0205F314 _0205F73C: .word 0x00004046 thumb_func_start FUN_0205F740 FUN_0205F740: ; 0x0205F740 ldr r3, _0205F748 ; =FUN_0205F344 ldr r1, _0205F74C ; =0x00004047 bx r3 nop _0205F748: .word FUN_0205F344 _0205F74C: .word 0x00004047 thumb_func_start FUN_0205F750 FUN_0205F750: ; 0x0205F750 ldr r3, _0205F758 ; =FUN_0205F314 add r2, r1, #0x0 ldr r1, _0205F75C ; =0x00004047 bx r3 .balign 4 _0205F758: .word FUN_0205F314 _0205F75C: .word 0x00004047 thumb_func_start FUN_0205F760 FUN_0205F760: ; 0x0205F760 ldr r3, _0205F768 ; =FUN_0205F344 ldr r1, _0205F76C ; =0x00004048 bx r3 nop _0205F768: .word FUN_0205F344 _0205F76C: .word 0x00004048 thumb_func_start FUN_0205F770 FUN_0205F770: ; 0x0205F770 ldr r3, _0205F778 ; =FUN_0205F314 add r2, r1, #0x0 ldr r1, _0205F77C ; =0x00004048 bx r3 .balign 4 _0205F778: .word FUN_0205F314 _0205F77C: .word 0x00004048 thumb_func_start FUN_0205F780 FUN_0205F780: ; 0x0205F780 ldr r3, _0205F788 ; =FUN_0205F344 ldr r1, _0205F78C ; =0x0000404A bx r3 nop _0205F788: .word FUN_0205F344 _0205F78C: .word 0x0000404A thumb_func_start FUN_0205F790 FUN_0205F790: ; 0x0205F790 ldr r3, _0205F798 ; =FUN_0205F314 add r2, r1, #0x0 ldr r1, _0205F79C ; =0x0000404A bx r3 .balign 4 _0205F798: .word FUN_0205F314 _0205F79C: .word 0x0000404A thumb_func_start FUN_0205F7A0 FUN_0205F7A0: ; 0x0205F7A0 push {r3-r7, lr} sub sp, #0x10 str r0, [sp, #0x0] ldr r0, [r0, #0xc] add r5, r1, #0x0 str r2, [sp, #0x4] bl FUN_020462AC add r7, r0, #0x0 ldr r0, [sp, #0x0] ldr r0, [r0, #0xc] bl FUN_02034E30 bl FUN_02034DCC mov r2, #0x5 str r0, [sp, #0xc] add r0, r5, #0x0 mov r1, #0x0 lsl r2, r2, #0x6 blx FUN_020DF4A4 ldr r0, [sp, #0x0] ldr r0, [r0, #0x38] bl FUN_02055320 add r4, r0, #0x0 ldr r0, [sp, #0x0] ldr r0, [r0, #0x38] bl FUN_0205532C add r6, r0, #0x0 ldr r0, [sp, #0x0] asr r1, r4, #0x4 asr r2, r6, #0x4 lsr r1, r1, #0x1b lsr r2, r2, #0x1b add r1, r4, r1 add r2, r6, r2 ldr r0, [r0, #0x28] asr r1, r1, #0x5 asr r2, r2, #0x5 bl FUN_0203451C bl FUN_02034908 cmp r0, #0x0 beq _0205F806 str r4, [r5, #0x0] str r6, [r5, #0x4] b _0205F812 _0205F806: ldr r0, [sp, #0xc] ldr r0, [r0, #0x8] str r0, [r5, #0x0] ldr r0, [sp, #0xc] ldr r0, [r0, #0xc] str r0, [r5, #0x4] _0205F812: ldr r0, [sp, #0x0] bl FUN_020377AC bl FUN_020238F4 bl FUN_020239CC str r0, [r5, #0xc] ldr r0, [sp, #0x0] ldr r0, [r0, #0xc] bl FUN_02034E30 bl FUN_02034E0C str r0, [sp, #0x8] ldr r0, [r0, #0x0] mov r1, #0x6 add r0, r0, #0x4 blx _s32_div_f mov r6, #0x0 add r4, r5, #0x0 _0205F83E: ldr r0, [sp, #0x8] lsl r2, r1, #0x2 add r0, r0, r2 ldrb r2, [r0, #0x6] str r2, [r4, #0x20] ldrb r2, [r0, #0x7] str r2, [r4, #0x24] ldrb r2, [r0, #0x9] strh r2, [r4, #0x2a] ldrb r0, [r0, #0x8] cmp r0, #0x3 bls _0205F85A mov r0, #0x4 b _0205F85A _0205F85A: strh r0, [r4, #0x28] add r0, r1, #0x5 mov r1, #0x6 blx _s32_div_f add r6, r6, #0x1 add r4, #0xc cmp r6, #0x5 blt _0205F83E mov r6, #0x4f mov r4, #0x0 lsl r6, r6, #0x2 _0205F872: add r0, r7, #0x0 add r1, r4, #0x0 bl FUN_0205F524 cmp r0, #0x0 beq _0205F888 mov r0, #0x1 ldrh r1, [r5, r6] lsl r0, r4 orr r0, r1 strh r0, [r5, r6] _0205F888: add r4, r4, #0x1 cmp r4, #0x4 blt _0205F872 ldr r6, _0205F8C0 ; =0x020F7440 mov r4, #0x0 _0205F892: ldrb r2, [r6, #0x0] add r0, r7, #0x0 mov r1, #0x2 bl FUN_0205F2E4 mov r1, #0x49 add r2, r5, r4 lsl r1, r1, #0x2 add r4, r4, #0x1 add r6, r6, #0x1 strb r0, [r2, r1] cmp r4, #0x14 blt _0205F892 ldr r0, [sp, #0x0] ldr r2, _0205F8C4 ; =0x02105FA8 add r1, r5, #0x0 bl FUN_0205F8CC ldr r1, _0205F8C8 ; =0x00000139 ldr r0, [sp, #0x4] strb r0, [r5, r1] add sp, #0x10 pop {r3-r7, pc} .balign 4 _0205F8C0: .word 0x020F7440 _0205F8C4: .word 0x02105FA8 _0205F8C8: .word 0x00000139 thumb_func_start FUN_0205F8CC FUN_0205F8CC: ; 0x0205F8CC push {r3-r7, lr} sub sp, #0x70 add r7, r0, #0x0 ldr r0, [r7, #0xc] add r5, r1, #0x0 add r4, r2, #0x0 bl FUN_020462AC str r0, [sp, #0x0] add r0, sp, #0x28 blx FS_InitFile add r0, sp, #0x28 add r1, r4, #0x0 blx FS_OpenFile cmp r0, #0x0 bne _0205F8F8 bl ErrorHandling add sp, #0x70 pop {r3-r7, pc} _0205F8F8: add r0, sp, #0x28 add r1, sp, #0x24 mov r2, #0x4 blx FS_ReadFile cmp r0, #0x0 bge _0205F90A bl ErrorHandling _0205F90A: mov r0, #0xb mov r1, #0x4 bl FUN_020169D8 mov r1, #0x0 mov r2, #0x4 add r6, r0, #0x0 blx MI_CpuFill8 ldr r1, [sp, #0x24] ldr r0, _0205FA28 ; =0x0000013A mov r4, #0x0 strb r1, [r5, r0] ldr r0, [sp, #0x24] cmp r0, #0x0 ble _0205FA16 mov r0, #0xc str r0, [sp, #0x10] mov r0, #0x3 str r0, [sp, #0xc] mov r0, #0xc str r0, [sp, #0x8] mov r0, #0x3 str r0, [sp, #0x4] mov r0, #0xc0 str r0, [sp, #0x20] mov r0, #0x30 str r0, [sp, #0x1c] mov r0, #0xc0 str r0, [sp, #0x18] mov r0, #0x30 add r5, #0x5c str r0, [sp, #0x14] _0205F94C: add r0, sp, #0x28 add r1, r6, #0x0 mov r2, #0x4 blx FS_ReadFile ldrb r0, [r6, #0x0] cmp r0, #0x1 beq _0205F962 cmp r0, #0x2 beq _0205F98C b _0205F9B2 _0205F962: ldrb r2, [r6, #0x1] ldr r0, [sp, #0x0] mov r1, #0x2 bl FUN_0205F2E4 lsl r0, r0, #0x18 lsr r0, r0, #0x18 lsl r0, r0, #0x1e ldrb r1, [r5, r4] ldr r2, [sp, #0x8] lsr r0, r0, #0x1c bic r1, r2 orr r0, r1 strb r0, [r5, r4] ldrb r1, [r5, r4] ldr r0, [sp, #0x4] bic r1, r0 mov r0, #0x1 orr r0, r1 strb r0, [r5, r4] b _0205F9B2 _0205F98C: ldrb r1, [r6, #0x1] add r0, r7, #0x0 bl FUN_02039528 lsl r0, r0, #0x18 lsr r0, r0, #0x18 lsl r0, r0, #0x1e ldrb r1, [r5, r4] ldr r2, [sp, #0x10] lsr r0, r0, #0x1c bic r1, r2 orr r0, r1 strb r0, [r5, r4] ldrb r1, [r5, r4] ldr r0, [sp, #0xc] bic r1, r0 mov r0, #0x1 orr r0, r1 strb r0, [r5, r4] _0205F9B2: ldrb r0, [r6, #0x2] cmp r0, #0x1 beq _0205F9BE cmp r0, #0x2 beq _0205F9E8 b _0205FA0E _0205F9BE: ldrb r2, [r6, #0x3] ldr r0, [sp, #0x0] mov r1, #0x2 bl FUN_0205F2E4 lsl r0, r0, #0x18 lsr r0, r0, #0x18 lsl r0, r0, #0x1e ldrb r1, [r5, r4] ldr r2, [sp, #0x18] lsr r0, r0, #0x18 bic r1, r2 orr r0, r1 strb r0, [r5, r4] ldrb r1, [r5, r4] ldr r0, [sp, #0x14] bic r1, r0 mov r0, #0x10 orr r0, r1 strb r0, [r5, r4] b _0205FA0E _0205F9E8: ldrb r1, [r6, #0x3] add r0, r7, #0x0 bl FUN_02039528 lsl r0, r0, #0x18 lsr r0, r0, #0x18 lsl r0, r0, #0x1e ldrb r1, [r5, r4] ldr r2, [sp, #0x20] lsr r0, r0, #0x18 bic r1, r2 orr r0, r1 strb r0, [r5, r4] ldrb r1, [r5, r4] ldr r0, [sp, #0x1c] bic r1, r0 mov r0, #0x10 orr r0, r1 strb r0, [r5, r4] _0205FA0E: ldr r0, [sp, #0x24] add r4, r4, #0x1 cmp r4, r0 blt _0205F94C _0205FA16: add r0, sp, #0x28 blx FS_CloseFile add r0, r6, #0x0 bl FUN_02016A18 add sp, #0x70 pop {r3-r7, pc} nop _0205FA28: .word 0x0000013A thumb_func_start FUN_0205FA2C FUN_0205FA2C: ; 0x0205FA2C push {r3-r7, lr} add r5, r0, #0x0 add r7, r1, #0x0 add r0, r2, #0x0 mov r1, #0x40 bl FUN_020169D8 ldr r6, [r7, #0xc] mov r1, #0x0 mov r2, #0x40 add r4, r0, #0x0 blx MI_CpuFill8 add r0, r6, #0x0 bl LoadPlayerDataAddress str r0, [r4, #0xc] add r0, r6, #0x0 bl FUN_0206BB1C str r0, [r4, #0x0] add r0, r6, #0x0 bl FUN_0206F158 str r0, [r4, #0x4] add r0, r4, #0x0 mov r1, #0x0 add r0, #0x21 strb r1, [r0, #0x0] add r0, r4, #0x0 ldrb r2, [r5, #0x8] add r0, #0x20 strb r2, [r0, #0x0] add r0, r4, #0x0 add r0, #0x32 ldrb r0, [r0, #0x0] mov r2, #0xf ldrb r3, [r5, #0xa] bic r0, r2 mov r2, #0xf and r2, r3 orr r2, r0 add r0, r4, #0x0 add r0, #0x32 strb r2, [r0, #0x0] add r0, r4, #0x0 add r0, #0x32 ldrb r0, [r0, #0x0] mov r2, #0xf0 bic r0, r2 ldrb r2, [r5, #0xb] lsl r2, r2, #0x1c lsr r2, r2, #0x18 orr r2, r0 add r0, r4, #0x0 add r0, #0x32 strb r2, [r0, #0x0] add r0, r4, #0x0 ldrb r2, [r5, #0xc] add r0, #0x33 strb r2, [r0, #0x0] add r0, r4, #0x0 ldrb r2, [r5, #0xd] add r0, #0x22 strb r2, [r0, #0x0] _0205FAAE: add r0, r5, r1 ldrb r2, [r0, #0xe] add r0, r4, r1 add r0, #0x2c strb r2, [r0, #0x0] add r0, r1, #0x1 lsl r0, r0, #0x18 lsr r1, r0, #0x18 cmp r1, #0x6 blo _0205FAAE ldr r1, _0205FAD4 ; =0x020F96DC add r0, r7, #0x0 add r2, r4, #0x0 bl FUN_020373D4 ldr r0, [r5, #0x14] str r4, [r0, #0x0] mov r0, #0x1 pop {r3-r7, pc} .balign 4 _0205FAD4: .word 0x020F96DC thumb_func_start FUN_0205FAD8 FUN_0205FAD8: ; 0x0205FAD8 push {r3-r5, lr} add r5, r0, #0x0 add r0, r1, #0x0 bl FUN_0204647C cmp r0, #0x0 beq _0205FAEA mov r0, #0x1 pop {r3-r5, pc} _0205FAEA: ldr r0, [r5, #0x14] ldr r4, [r0, #0x0] add r0, r4, #0x0 add r0, #0x22 ldrb r0, [r0, #0x0] cmp r0, #0x6 beq _0205FB04 cmp r0, #0x7 bne _0205FB0C mov r0, #0x0 str r0, [r5, #0x0] mov r0, #0x4 pop {r3-r5, pc} _0205FB04: mov r0, #0x1 str r0, [r5, #0x0] mov r0, #0x4 pop {r3-r5, pc} _0205FB0C: add r0, r4, #0x0 add r1, r5, #0x0 add r0, #0x2c add r1, #0xe mov r2, #0x6 blx MI_CpuCopy8 add r0, r4, #0x0 add r0, #0x22 ldrb r0, [r0, #0x0] strb r0, [r5, #0xd] add r0, r4, #0x0 bl FUN_02016A18 ldr r0, [r5, #0x14] mov r1, #0x0 str r1, [r0, #0x0] mov r0, #0x2 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0205FB34 FUN_0205FB34: ; 0x0205FB34 push {r3-r7, lr} add r7, r1, #0x0 add r6, r0, #0x0 ldr r5, [r7, #0xc] add r0, r2, #0x0 mov r1, #0x30 bl FUN_020169D8 mov r1, #0x0 mov r2, #0x30 add r4, r0, #0x0 blx MI_CpuFill8 add r0, r5, #0x0 bl LoadPlayerDataAddress str r0, [r4, #0x4] add r0, r5, #0x0 bl FUN_0206BB1C str r0, [r4, #0x0] add r0, r5, #0x0 bl FUN_0206BB28 str r0, [r4, #0x1c] add r0, r5, #0x0 bl FUN_02079C70 str r0, [r4, #0x2c] mov r0, #0x1 strb r0, [r4, #0x11] ldrb r0, [r6, #0xd] strb r0, [r4, #0x14] ldr r0, [r4, #0x0] bl FUN_0206B9AC strb r0, [r4, #0x13] mov r0, #0x0 strh r0, [r4, #0x18] ldrb r0, [r6, #0x9] strb r0, [r4, #0x12] add r0, r5, #0x0 bl FUN_0202A918 str r0, [r4, #0x20] ldr r1, _0205FBB8 ; =0x020F7454 add r0, r4, #0x0 bl FUN_0207B000 add r0, r5, #0x0 bl FUN_020238F4 add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_0207C2A4 ldr r1, _0205FBBC ; =0x020FA6E8 add r0, r7, #0x0 add r2, r4, #0x0 bl FUN_020373D4 ldr r0, [r6, #0x14] str r4, [r0, #0x0] mov r0, #0x3 pop {r3-r7, pc} nop _0205FBB8: .word 0x020F7454 _0205FBBC: .word 0x020FA6E8 thumb_func_start FUN_0205FBC0 FUN_0205FBC0: ; 0x0205FBC0 push {r4, lr} add r4, r0, #0x0 add r0, r1, #0x0 bl FUN_0204647C cmp r0, #0x0 beq _0205FBD2 mov r0, #0x3 pop {r4, pc} _0205FBD2: ldr r0, [r4, #0x14] ldr r0, [r0, #0x0] ldrb r1, [r0, #0x14] strb r1, [r4, #0xd] bl FUN_02016A18 ldr r1, [r4, #0x14] mov r0, #0x0 str r0, [r1, #0x0] pop {r4, pc} .balign 4 thumb_func_start FUN_0205FBE8 FUN_0205FBE8: ; 0x0205FBE8 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldr r1, [r4, #0x4] cmp r1, #0x4 bhi _0205FC4A add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0205FC0C: ; jump table (using 16-bit offset) .short _0205FC16 - _0205FC0C - 2; case 0 .short _0205FC22 - _0205FC0C - 2; case 1 .short _0205FC2C - _0205FC0C - 2; case 2 .short _0205FC38 - _0205FC0C - 2; case 3 .short _0205FC42 - _0205FC0C - 2; case 4 _0205FC16: add r1, r5, #0x0 mov r2, #0xb bl FUN_0205FA2C str r0, [r4, #0x4] b _0205FC4A _0205FC22: add r1, r5, #0x0 bl FUN_0205FAD8 str r0, [r4, #0x4] b _0205FC4A _0205FC2C: add r1, r5, #0x0 mov r2, #0xb bl FUN_0205FB34 str r0, [r4, #0x4] b _0205FC4A _0205FC38: add r1, r5, #0x0 bl FUN_0205FBC0 str r0, [r4, #0x4] b _0205FC4A _0205FC42: bl FUN_02016A18 mov r0, #0x1 pop {r3-r5, pc} _0205FC4A: mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0205FC50 FUN_0205FC50: ; 0x0205FC50 push {r3-r7, lr} add r5, r1, #0x0 add r6, r2, #0x0 add r7, r3, #0x0 bl FUN_02046528 str r0, [sp, #0x0] mov r0, #0xb mov r1, #0x18 bl FUN_02016998 add r4, r0, #0x0 mov r1, #0x0 mov r2, #0x18 blx MI_CpuFill8 strb r6, [r4, #0x8] strb r7, [r4, #0x9] add r0, sp, #0x8 ldrb r1, [r0, #0x10] add r2, r4, #0x0 strb r1, [r4, #0xa] ldrb r1, [r0, #0x14] strb r1, [r4, #0xb] ldrb r1, [r0, #0x18] strb r1, [r4, #0xc] ldrb r0, [r0, #0x1c] ldr r1, _0205FC98 ; =FUN_0205FBE8 strb r0, [r4, #0xd] ldr r0, [sp, #0x0] str r5, [r4, #0x14] ldr r0, [r0, #0x10] bl FUN_0204640C pop {r3-r7, pc} nop _0205FC98: .word FUN_0205FBE8 thumb_func_start FUN_0205FC9C FUN_0205FC9C: ; 0x0205FC9C push {r3-r5, lr} add r5, r1, #0x0 add r4, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_0203384C cmp r0, #0x0 beq _0205FCBC ldrh r1, [r4, #0x12] ldrh r2, [r4, #0x14] add r0, r5, #0x0 bl FUN_02038790 str r0, [r4, #0x8] mov r0, #0x1 pop {r3-r5, pc} _0205FCBC: mov r0, #0x1 str r0, [r4, #0x0] mov r0, #0x2 pop {r3-r5, pc} thumb_func_start FUN_0205FCC4 FUN_0205FCC4: ; 0x0205FCC4 push {r4, lr} add r4, r0, #0x0 add r0, r1, #0x0 bl FUN_0204647C cmp r0, #0x0 beq _0205FCD6 mov r0, #0x1 pop {r4, pc} _0205FCD6: ldr r0, [r4, #0x8] ldr r0, [r0, #0x20] str r0, [r4, #0x0] ldr r0, [r4, #0x8] bl FUN_02016A18 mov r0, #0x2 pop {r4, pc} .balign 4 thumb_func_start FUN_0205FCE8 FUN_0205FCE8: ; 0x0205FCE8 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldr r1, [r4, #0x4] cmp r1, #0x0 beq _0205FD0A cmp r1, #0x1 beq _0205FD14 cmp r1, #0x2 beq _0205FD1E b _0205FD34 _0205FD0A: add r1, r5, #0x0 bl FUN_0205FC9C str r0, [r4, #0x4] b _0205FD34 _0205FD14: add r1, r5, #0x0 bl FUN_0205FCC4 str r0, [r4, #0x4] b _0205FD34 _0205FD1E: ldrh r1, [r4, #0x10] add r0, r5, #0x0 bl FUN_020394B8 ldr r1, [r4, #0x0] strh r1, [r0, #0x0] add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x1 pop {r3-r5, pc} _0205FD34: mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0205FD38 FUN_0205FD38: ; 0x0205FD38 push {r3-r7, lr} add r5, r1, #0x0 add r6, r2, #0x0 add r7, r3, #0x0 bl FUN_02046528 str r0, [sp, #0x0] mov r0, #0xb mov r1, #0x18 bl FUN_02016998 add r4, r0, #0x0 mov r1, #0x0 mov r2, #0x18 blx MI_CpuFill8 strh r5, [r4, #0x12] strh r7, [r4, #0x14] ldr r0, [sp, #0x0] strh r6, [r4, #0x10] ldr r0, [r0, #0x10] ldr r1, _0205FD6C ; =FUN_0205FCE8 add r2, r4, #0x0 bl FUN_0204640C pop {r3-r7, pc} .balign 4 _0205FD6C: .word FUN_0205FCE8 thumb_func_start FUN_0205FD70 FUN_0205FD70: ; 0x0205FD70 push {r3-r7, lr} add r4, r0, #0x0 bl FUN_02046528 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C add r5, r0, #0x0 bl FUN_02031190 mov r1, #0x1 sub r0, r1, r0 bl FUN_020316E0 add r7, r0, #0x0 bne _0205FD96 mov r0, #0x0 pop {r3-r7, pc} _0205FD96: ldrh r1, [r5, #0x2] add r0, r6, #0x0 bl FUN_020394B8 add r4, r0, #0x0 ldrh r0, [r5, #0x0] cmp r0, #0x0 beq _0205FDB0 cmp r0, #0x1 beq _0205FDBC cmp r0, #0x2 beq _0205FDC8 b _0205FDD2 _0205FDB0: add r0, r6, #0x0 add r1, r7, #0x0 bl FUN_02244660 strh r0, [r4, #0x0] b _0205FDD2 _0205FDBC: add r0, r6, #0x0 add r1, r7, #0x0 bl FUN_022446BC strh r0, [r4, #0x0] b _0205FDD2 _0205FDC8: add r0, r6, #0x0 add r1, r7, #0x0 bl FUN_022446E0 strh r0, [r4, #0x0] _0205FDD2: add r0, r5, #0x0 bl FUN_02016A18 mov r0, #0x1 pop {r3-r7, pc} thumb_func_start FUN_0205FDDC FUN_0205FDDC: ; 0x0205FDDC push {r3-r7, lr} add r5, r1, #0x0 add r6, r2, #0x0 bl FUN_02046528 add r7, r0, #0x0 mov r0, #0xb mov r1, #0x4 bl FUN_02016998 add r4, r0, #0x0 mov r1, #0x0 mov r2, #0x4 blx MI_CpuFill8 strh r5, [r4, #0x0] strh r6, [r4, #0x2] ldr r0, [r7, #0x10] ldr r1, _0205FE0C ; =FUN_0205FD70 add r2, r4, #0x0 bl FUN_0204640C pop {r3-r7, pc} nop _0205FE0C: .word FUN_0205FD70 thumb_func_start FUN_0205FE10 FUN_0205FE10: ; 0x0205FE10 push {r4-r7, lr} sub sp, #0x14 str r0, [sp, #0x0] bl FUN_02029FC8 mov r1, #0x35 bl FUN_0202A150 lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x10] cmp r0, #0x14 bhs _0205FE30 add sp, #0x14 mov r0, #0x0 pop {r4-r7, pc} _0205FE30: ldr r0, [sp, #0x0] bl FUN_0202A8D8 mov r1, #0xd mov r2, #0x0 add r4, r0, #0x0 bl FUN_0202A578 lsl r0, r0, #0x18 mov r1, #0x0 lsr r7, r0, #0x18 add r0, r4, #0x0 add r2, r1, #0x0 bl FUN_0202A578 lsl r0, r0, #0x18 lsr r6, r0, #0x18 add r0, r4, #0x0 mov r1, #0x1 mov r2, #0x0 bl FUN_0202A578 lsl r0, r0, #0x18 lsr r5, r0, #0x18 add r0, r4, #0x0 mov r1, #0xe mov r2, #0x0 bl FUN_0202A578 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0xc] add r0, r4, #0x0 mov r1, #0x2 mov r2, #0x0 bl FUN_0202A578 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x8] add r0, r4, #0x0 mov r1, #0x3 mov r2, #0x0 bl FUN_0202A578 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x4] cmp r7, #0x0 beq _0205FEA2 cmp r6, #0x0 beq _0205FEA2 cmp r5, #0x0 beq _0205FEA2 add sp, #0x14 mov r0, #0x0 pop {r4-r7, pc} _0205FEA2: ldr r0, [sp, #0x0] bl FUN_02026CC4 cmp r7, #0x0 bne _0205FEDC mov r1, #0x55 bl FUN_02025D94 cmp r0, #0x0 beq _0205FEC6 add r0, r4, #0x0 mov r1, #0xd mov r2, #0x1 bl FUN_0202A578 add sp, #0x14 mov r0, #0x1 pop {r4-r7, pc} _0205FEC6: ldr r0, [sp, #0xc] cmp r0, #0x0 bne _0205FED6 add r0, r4, #0x0 mov r1, #0xe mov r2, #0x1 bl FUN_0202A578 _0205FED6: add sp, #0x14 mov r0, #0x4 pop {r4-r7, pc} _0205FEDC: ldr r1, [sp, #0x10] cmp r1, #0x32 bhs _0205FEE8 add sp, #0x14 mov r0, #0x0 pop {r4-r7, pc} _0205FEE8: cmp r6, #0x0 bne _0205FF1C mov r1, #0x56 bl FUN_02025D94 cmp r0, #0x0 beq _0205FF06 add r0, r4, #0x0 mov r1, #0x0 mov r2, #0x1 bl FUN_0202A578 add sp, #0x14 mov r0, #0x2 pop {r4-r7, pc} _0205FF06: ldr r0, [sp, #0x8] cmp r0, #0x0 bne _0205FF16 add r0, r4, #0x0 mov r1, #0x2 mov r2, #0x1 bl FUN_0202A578 _0205FF16: add sp, #0x14 mov r0, #0x4 pop {r4-r7, pc} _0205FF1C: cmp r1, #0x64 blo _0205FF24 cmp r5, #0x0 beq _0205FF2A _0205FF24: add sp, #0x14 mov r0, #0x0 pop {r4-r7, pc} _0205FF2A: mov r1, #0x57 bl FUN_02025D94 cmp r0, #0x0 beq _0205FF44 mov r1, #0x1 add r0, r4, #0x0 add r2, r1, #0x0 bl FUN_0202A578 add sp, #0x14 mov r0, #0x3 pop {r4-r7, pc} _0205FF44: ldr r0, [sp, #0x4] cmp r0, #0x0 bne _0205FF54 add r0, r4, #0x0 mov r1, #0x3 mov r2, #0x1 bl FUN_0202A578 _0205FF54: mov r0, #0x4 add sp, #0x14 pop {r4-r7, pc} .balign 4 thumb_func_start FUN_0205FF5C FUN_0205FF5C: ; 0x0205FF5C push {r4-r7, lr} sub sp, #0xc add r4, r0, #0x0 bl FUN_02029FC8 mov r1, #0x35 bl FUN_0202A150 lsl r0, r0, #0x10 lsr r7, r0, #0x10 cmp r7, #0x14 bhs _0205FF7A add sp, #0xc mov r0, #0x0 pop {r4-r7, pc} _0205FF7A: add r0, r4, #0x0 bl FUN_0202A8D8 mov r1, #0xd mov r2, #0x0 str r0, [sp, #0x8] bl FUN_0202A578 lsl r0, r0, #0x18 lsr r6, r0, #0x18 mov r1, #0x0 ldr r0, [sp, #0x8] add r2, r1, #0x0 bl FUN_0202A578 lsl r0, r0, #0x18 lsr r4, r0, #0x18 ldr r0, [sp, #0x8] mov r1, #0x1 mov r2, #0x0 bl FUN_0202A578 lsl r0, r0, #0x18 lsr r5, r0, #0x18 ldr r0, [sp, #0x8] mov r1, #0xe mov r2, #0x0 bl FUN_0202A578 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x4] ldr r0, [sp, #0x8] mov r1, #0x2 mov r2, #0x0 bl FUN_0202A578 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] ldr r0, [sp, #0x8] mov r1, #0x3 mov r2, #0x0 bl FUN_0202A578 lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r6, #0x0 beq _0205FFEA cmp r4, #0x0 beq _0205FFEA cmp r5, #0x0 beq _0205FFEA add sp, #0xc mov r0, #0x0 pop {r4-r7, pc} _0205FFEA: cmp r6, #0x0 bne _02060000 ldr r0, [sp, #0x4] cmp r0, #0x0 beq _0205FFFA add sp, #0xc mov r0, #0x4 pop {r4-r7, pc} _0205FFFA: add sp, #0xc mov r0, #0x1 pop {r4-r7, pc} _02060000: cmp r7, #0x32 bhs _0206000A add sp, #0xc mov r0, #0x0 pop {r4-r7, pc} _0206000A: cmp r4, #0x0 bne _02060020 ldr r0, [sp, #0x0] cmp r0, #0x0 beq _0206001A add sp, #0xc mov r0, #0x5 pop {r4-r7, pc} _0206001A: add sp, #0xc mov r0, #0x2 pop {r4-r7, pc} _02060020: cmp r7, #0x64 bhs _0206002A add sp, #0xc mov r0, #0x0 pop {r4-r7, pc} _0206002A: cmp r5, #0x0 beq _02060034 add sp, #0xc mov r0, #0x0 pop {r4-r7, pc} _02060034: cmp r0, #0x0 beq _0206003E add sp, #0xc mov r0, #0x6 pop {r4-r7, pc} _0206003E: mov r0, #0x3 add sp, #0xc pop {r4-r7, pc} thumb_func_start FUN_02060044 FUN_02060044: ; 0x02060044 add r0, #0xa8 ldr r0, [r0, #0x0] ldr r2, [r1, #0x0] ldrh r3, [r0, #0x24] add r2, r3, r2 strh r2, [r0, #0x24] ldrh r3, [r0, #0x28] ldr r2, [r1, #0x4] add r2, r3, r2 strh r2, [r0, #0x28] ldrh r2, [r0, #0x26] ldr r1, [r1, #0x8] add r1, r2, r1 strh r1, [r0, #0x26] bx lr .balign 4 thumb_func_start FUN_02060064 FUN_02060064: ; 0x02060064 ldr r1, _0206006C ; =0x02E90EDD mul r1, r0 add r0, r1, #0x1 bx lr .balign 4 _0206006C: .word 0x02E90EDD thumb_func_start FUN_02060070 FUN_02060070: ; 0x02060070 ldr r1, _02060078 ; =0x5D588B65 mul r1, r0 add r0, r1, #0x1 bx lr .balign 4 _02060078: .word 0x5D588B65 thumb_func_start FUN_0206007C FUN_0206007C: ; 0x0206007C push {r3-r5, lr} add r5, r0, #0x0 bl FUN_0202881C bl FUN_020287A4 bl FUN_02060070 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0202A8D8 add r1, r4, #0x0 bl FUN_0202A5CC add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020600A0 FUN_020600A0: ; 0x020600A0 push {r3-r6, lr} sub sp, #0x4 add r5, r0, #0x0 bl FUN_0202A8D8 add r6, r0, #0x0 bl FUN_0202A5D0 bl FUN_02060070 add r4, r0, #0x0 add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_0202A5CC add r0, r4, #0x0 bl FUN_02060064 str r0, [sp, #0x0] add r0, r5, #0x0 bl FUN_0202A8CC mov r1, #0xa add r2, sp, #0x0 bl FUN_0202A2C4 ldr r0, [sp, #0x0] add sp, #0x4 pop {r3-r6, pc} .balign 4 thumb_func_start FUN_020600DC FUN_020600DC: ; 0x020600DC push {r3-r6, lr} sub sp, #0x4 add r6, r0, #0x0 bl FUN_0202A8D8 add r4, r0, #0x0 add r0, r6, #0x0 bl FUN_0202A8CC add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0202A5D0 bl FUN_02060064 mov r1, #0x0 str r0, [sp, #0x0] add r0, r5, #0x0 add r2, r1, #0x0 bl FUN_0202A240 add r1, r0, #0x0 lsl r1, r1, #0x10 add r0, r4, #0x0 lsr r1, r1, #0x10 mov r2, #0x0 bl FUN_0202A538 mov r1, #0x18 add r5, r0, #0x0 mul r5, r1 mov r4, #0x0 cmp r5, #0x0 ble _0206012E ldr r0, [sp, #0x0] _02060122: bl FUN_02060064 add r4, r4, #0x1 str r0, [sp, #0x0] cmp r4, r5 blt _02060122 _0206012E: add r0, r6, #0x0 bl FUN_0202A8CC mov r1, #0xa add r2, sp, #0x0 bl FUN_0202A2C4 ldr r0, [sp, #0x0] add sp, #0x4 pop {r3-r6, pc} .balign 4 thumb_func_start FUN_02060144 FUN_02060144: ; 0x02060144 ldr r0, [r0, #0x1c] ldr r1, [r0, #0x0] ldr r0, _02060158 ; =0x000001ED cmp r1, r0 bne _02060152 mov r0, #0x1 bx lr _02060152: mov r0, #0x0 bx lr nop _02060158: .word 0x000001ED thumb_func_start FUN_0206015C FUN_0206015C: ; 0x0206015C push {r3-r5, lr} add r5, r0, #0x0 mov r0, #0xb mov r1, #0x10 bl FUN_020169D8 add r4, r0, #0x0 mov r0, #0xb bl FUN_02244DB0 str r0, [r4, #0x0] mov r0, #0xb add r1, r5, #0x0 bl FUN_02245114 str r0, [r4, #0x4] mov r0, #0x0 strb r0, [r4, #0xc] strb r0, [r4, #0xd] ldr r0, [r5, #0x10] ldr r1, _02060190 ; =FUN_02060194 add r2, r4, #0x0 bl FUN_0204640C pop {r3-r5, pc} nop _02060190: .word FUN_02060194 thumb_func_start FUN_02060194 FUN_02060194: ; 0x02060194 push {r3-r7, lr} sub sp, #0x10 add r5, r0, #0x0 bl FUN_02046528 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldrb r0, [r4, #0xc] cmp r0, #0x8 bls _020601B0 b _02060332 _020601B0: add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _020601BC: ; jump table (using 16-bit offset) .short _020601CE - _020601BC - 2; case 0 .short _020601F2 - _020601BC - 2; case 1 .short _020601FE - _020601BC - 2; case 2 .short _02060226 - _020601BC - 2; case 3 .short _02060232 - _020601BC - 2; case 4 .short _020602A2 - _020601BC - 2; case 5 .short _020602F0 - _020601BC - 2; case 6 .short _020602FC - _020601BC - 2; case 7 .short _02060312 - _020601BC - 2; case 8 _020601CE: add r0, r6, #0x0 mov r1, #0x1 bl FUN_0206367C ldrb r0, [r4, #0xd] ldr r1, [r4, #0x4] bl FUN_02245198 ldr r0, [r4, #0x4] bl FUN_022451F0 str r0, [r4, #0x8] add r0, r5, #0x0 bl FUN_0204AFC8 mov r0, #0x1 strb r0, [r4, #0xc] b _02060332 _020601F2: add r0, r5, #0x0 bl FUN_0204AF3C mov r0, #0x2 strb r0, [r4, #0xc] b _02060332 _020601FE: ldr r0, [r6, #0xc] bl FUN_020462AC ldrb r1, [r4, #0xd] cmp r1, #0x0 bne _02060210 bl FUN_0205F1C4 b _02060218 _02060210: cmp r1, #0x5 bne _02060218 bl FUN_0205F1D4 _02060218: ldr r1, [r4, #0x8] add r0, r5, #0x0 bl FUN_02049160 mov r0, #0x3 strb r0, [r4, #0xc] b _02060332 _02060226: add r0, r5, #0x0 bl FUN_0204AF84 mov r0, #0x4 strb r0, [r4, #0xc] b _02060332 _02060232: ldr r0, [r6, #0x38] bl FUN_020553A0 ldrb r1, [r4, #0xd] add r7, r0, #0x0 add r1, r1, #0x1 strb r1, [r4, #0xd] ldrb r1, [r4, #0xd] cmp r1, #0x5 bhi _02060290 add r0, r6, #0x0 bl FUN_02245088 add r6, r0, #0x0 add r0, r7, #0x0 mov r1, #0x1 bl FUN_0205889C ldr r0, [r4, #0x0] add r1, r6, #0x0 bl FUN_02244DC4 ldr r0, [r4, #0x0] bl FUN_02244EF8 mov r0, #0x0 strb r0, [r4, #0xe] ldr r0, _02060338 ; =0x00000679 bl FUN_020054C8 mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x6 str r0, [sp, #0x4] mov r0, #0x1 str r0, [sp, #0x8] mov r0, #0xb str r0, [sp, #0xc] ldr r3, _0206033C ; =0x0000FFFF add r0, r5, #0x0 mov r1, #0x3 mov r2, #0x11 bl FUN_0204C1B4 mov r0, #0x5 strb r0, [r4, #0xc] b _02060332 _02060290: mov r1, #0x0 bl FUN_0205889C add r0, r5, #0x0 bl FUN_0204B00C mov r0, #0x8 strb r0, [r4, #0xc] b _02060332 _020602A2: ldrb r0, [r4, #0xe] add r0, r0, #0x1 strb r0, [r4, #0xe] ldrb r0, [r4, #0xe] cmp r0, #0x3c bhs _020602B8 ldr r0, _02060340 ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #0x1 tst r0, r1 beq _02060332 _020602B8: ldrb r0, [r4, #0xd] ldr r1, [r4, #0x4] bl FUN_02245198 ldr r0, [r4, #0x4] bl FUN_022451F0 str r0, [r4, #0x8] ldr r0, _02060338 ; =0x00000679 bl FUN_020054C8 mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x6 str r0, [sp, #0x4] mov r0, #0x1 str r0, [sp, #0x8] mov r0, #0xb str r0, [sp, #0xc] ldr r3, _0206033C ; =0x0000FFFF add r0, r5, #0x0 mov r1, #0x3 mov r2, #0x10 bl FUN_0204C1B4 mov r0, #0x6 strb r0, [r4, #0xc] b _02060332 _020602F0: ldr r0, [r4, #0x0] bl FUN_02244F18 mov r0, #0x7 strb r0, [r4, #0xc] b _02060332 _020602FC: ldr r0, [r4, #0x0] bl FUN_02244F24 cmp r0, #0x0 beq _02060332 ldr r0, [r4, #0x0] bl FUN_02244F2C mov r0, #0x1 strb r0, [r4, #0xc] b _02060332 _02060312: add r0, r6, #0x0 mov r1, #0x0 bl FUN_0206367C ldr r0, [r4, #0x4] bl FUN_02245190 ldr r0, [r4, #0x0] bl FUN_02244DBC add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x10 mov r0, #0x1 pop {r3-r7, pc} _02060332: mov r0, #0x0 add sp, #0x10 pop {r3-r7, pc} .balign 4 _02060338: .word 0x00000679 _0206033C: .word 0x0000FFFF _02060340: .word 0x021C48B8 thumb_func_start FUN_02060344 FUN_02060344: ; 0x02060344 push {r3-r7, lr} add r5, r0, #0x0 str r1, [sp, #0x0] cmp r1, #0x0 ble _020603AE bl FUN_02029ABC bl FUN_02029ACC add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_020238F4 add r7, r0, #0x0 ldr r0, [sp, #0x0] mov r1, #0xa add r6, r0, #0x0 mov r5, #0x0 mul r6, r1 _0206036A: add r0, r7, #0x0 add r1, r5, #0x0 bl FUN_020239D0 cmp r0, #0x0 beq _020603A4 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02029AD0 add r1, r0, #0x0 cmp r1, #0x0 ble _0206038C cmp r1, #0xc8 bge _0206038C sub r1, r1, r6 b _02060396 _0206038C: cmp r1, #0xc8 blt _02060394 bl ErrorHandling _02060394: mov r1, #0x0 _02060396: cmp r1, #0x0 bge _0206039C mov r1, #0x0 _0206039C: add r0, r5, #0x0 add r2, r4, #0x0 bl FUN_02029AD8 _020603A4: add r0, r5, #0x1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 cmp r5, #0x8 blo _0206036A _020603AE: pop {r3-r7, pc} thumb_func_start FUN_020603B0 FUN_020603B0: ; 0x020603B0 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_0202AA38 add r2, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02060588 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020603C8 FUN_020603C8: ; 0x020603C8 push {r3-r5, lr} add r4, r0, #0x0 mov r5, #0x0 _020603CE: add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_0202AA74 cmp r0, #0x0 beq _020603E2 add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_020603B0 _020603E2: add r0, r5, #0x1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 cmp r5, #0x3 blo _020603CE pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020603F0 FUN_020603F0: ; 0x020603F0 push {r4-r6, lr} add r5, r0, #0x0 mov r4, #0x0 _020603F6: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0202AA74 cmp r0, #0x0 beq _02060430 bl FUN_0201B9EC lsl r0, r0, #0x4 lsr r6, r0, #0x10 cmp r6, #0x10 blo _02060412 bl ErrorHandling _02060412: cmp r6, #0x0 bne _02060420 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_020603B0 b _02060430 _02060420: add r0, r5, #0x0 bl FUN_0202AA38 add r2, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_020605D8 _02060430: add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #0x3 blo _020603F6 pop {r4-r6, pc} thumb_func_start FUN_0206043C FUN_0206043C: ; 0x0206043C push {r4, lr} add r4, r0, #0x0 cmp r4, #0x1d blo _02060448 bl ErrorHandling _02060448: ldr r0, _02060450 ; =0x020F7460 lsl r1, r4, #0x2 ldr r0, [r0, r1] pop {r4, pc} .balign 4 _02060450: .word 0x020F7460 thumb_func_start FUN_02060454 FUN_02060454: ; 0x02060454 push {r3-r5, lr} add r4, r0, #0x0 mov r5, #0x0 _0206045A: add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_0202AA74 cmp r0, #0x0 beq _0206046A mov r0, #0x1 pop {r3-r5, pc} _0206046A: add r0, r5, #0x1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 cmp r5, #0x3 blo _0206045A mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02060478 FUN_02060478: ; 0x02060478 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_02060454 cmp r0, #0x0 beq _0206048E add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0202AA20 _0206048E: pop {r3-r5, pc} thumb_func_start FUN_02060490 FUN_02060490: ; 0x02060490 push {r3-r7, lr} sub sp, #0x20 add r5, r1, #0x0 str r0, [sp, #0x10] bl FUN_0202A9B0 add r1, r5, #0x0 str r0, [sp, #0x14] bl FUN_0202AAA0 add r4, r0, #0x0 cmp r5, #0x0 beq _020604B4 cmp r5, #0x1 beq _020604BA cmp r5, #0x2 beq _020604C2 b _020604C8 _020604B4: ldr r7, _02060580 ; =0x000001E1 mov r6, #0x32 b _020604D0 _020604BA: mov r7, #0x7a lsl r7, r7, #0x2 mov r6, #0x32 b _020604D0 _020604C2: ldr r7, _02060584 ; =0x000001EB mov r6, #0x28 b _020604D0 _020604C8: bl ErrorHandling add sp, #0x20 pop {r3-r7, pc} _020604D0: add r0, r4, #0x0 mov r1, #0x4 add r2, r7, #0x0 bl FUN_0202AAFC add r0, r4, #0x0 mov r1, #0x6 add r2, r6, #0x0 bl FUN_0202AAFC ldr r0, [sp, #0x10] bl FUN_020238F4 str r0, [sp, #0x18] mov r0, #0x4 bl FUN_020669C0 str r0, [sp, #0x1c] bl FUN_02066978 ldr r0, [sp, #0x18] bl FUN_020239C0 mov r1, #0x0 str r1, [sp, #0x0] str r1, [sp, #0x4] mov r1, #0x1 str r1, [sp, #0x8] str r0, [sp, #0xc] ldr r0, [sp, #0x1c] add r1, r7, #0x0 add r2, r6, #0x0 mov r3, #0x20 bl FUN_02066ACC add r0, r4, #0x0 mov r1, #0x7 mov r2, #0x0 bl FUN_0202AAFC add r0, r4, #0x0 mov r1, #0x8 mov r2, #0x1 bl FUN_0202AAFC ldr r0, [sp, #0x1c] mov r1, #0xae mov r2, #0x0 bl FUN_020671BC add r2, r0, #0x0 add r0, r4, #0x0 mov r1, #0x2 bl FUN_0202AAFC mov r1, #0x0 ldr r0, [sp, #0x1c] add r2, r1, #0x0 bl FUN_020671BC add r2, r0, #0x0 add r0, r4, #0x0 mov r1, #0x3 bl FUN_0202AAFC ldr r0, [sp, #0x1c] mov r1, #0xa3 mov r2, #0x0 bl FUN_020671BC add r2, r0, #0x0 add r0, r4, #0x0 mov r1, #0x5 bl FUN_0202AAFC ldr r0, [sp, #0x1c] bl FUN_02016A18 ldr r0, [sp, #0x14] bl FUN_0202AA38 add r2, r0, #0x0 ldr r0, [sp, #0x14] add r1, r5, #0x0 bl FUN_02060588 add sp, #0x20 pop {r3-r7, pc} .balign 4 _02060580: .word 0x000001E1 _02060584: .word 0x000001EB thumb_func_start FUN_02060588 FUN_02060588: ; 0x02060588 push {r3-r7, lr} sub sp, #0x8 str r0, [sp, #0x0] str r1, [sp, #0x4] add r6, r2, #0x0 bl FUN_0202AA40 ldr r7, _020605D0 ; =0x020F7460 lsl r0, r0, #0x2 ldr r4, [r7, r0] _0206059C: bl FUN_0201B9EC ldr r1, _020605D4 ; =0x000008D4 blx _s32_div_f lsl r0, r0, #0x10 lsr r5, r0, #0x10 cmp r5, #0x1d blo _020605B2 bl ErrorHandling _020605B2: lsl r0, r5, #0x18 lsr r2, r0, #0x18 lsl r0, r2, #0x2 ldr r3, [r7, r0] cmp r3, r6 beq _0206059C cmp r3, r4 beq _0206059C ldr r0, [sp, #0x0] ldr r1, [sp, #0x4] bl FUN_02060688 add sp, #0x8 pop {r3-r7, pc} nop _020605D0: .word 0x020F7460 _020605D4: .word 0x000008D4 thumb_func_start FUN_020605D8 FUN_020605D8: ; 0x020605D8 push {r3-r7, lr} sub sp, #0x8 str r0, [sp, #0x0] str r1, [sp, #0x4] add r7, r2, #0x0 bl FUN_0202AA40 mov r1, #0xc ldr r2, _0206067C ; =0x020F74D4 mul r1, r0 ldrh r0, [r2, r1] add r4, r2, r1 cmp r0, #0x1 bne _0206061E ldrh r0, [r4, #0x2] lsl r0, r0, #0x18 lsr r2, r0, #0x18 ldr r0, _02060680 ; =0x020F7460 lsl r1, r2, #0x2 ldr r3, [r0, r1] cmp r3, r7 bne _02060612 ldr r0, [sp, #0x0] ldr r1, [sp, #0x4] add r2, r7, #0x0 bl FUN_02060588 add sp, #0x8 pop {r3-r7, pc} _02060612: ldr r0, [sp, #0x0] ldr r1, [sp, #0x4] bl FUN_02060688 add sp, #0x8 pop {r3-r7, pc} _0206061E: ldrh r5, [r4, #0x0] cmp r5, #0x0 bne _02060628 bl ErrorHandling _02060628: cmp r5, #0x1 bhi _02060630 mov r6, #0x0 b _02060658 _02060630: bl FUN_0201B9EC add r6, r0, #0x0 ldr r0, _02060684 ; =0x0000FFFF add r1, r5, #0x0 blx _s32_div_f add r1, r0, #0x0 add r1, r1, #0x1 lsl r1, r1, #0x10 add r0, r6, #0x0 lsr r1, r1, #0x10 blx _s32_div_f lsl r0, r0, #0x10 lsr r6, r0, #0x10 cmp r6, r5 blo _02060658 bl ErrorHandling _02060658: lsl r0, r6, #0x18 lsr r0, r0, #0x17 add r0, r4, r0 ldrh r0, [r0, #0x2] lsl r0, r0, #0x18 lsr r2, r0, #0x18 ldr r0, _02060680 ; =0x020F7460 lsl r1, r2, #0x2 ldr r3, [r0, r1] cmp r3, r7 beq _0206061E ldr r0, [sp, #0x0] ldr r1, [sp, #0x4] bl FUN_02060688 add sp, #0x8 pop {r3-r7, pc} nop _0206067C: .word 0x020F74D4 _02060680: .word 0x020F7460 _02060684: .word 0x0000FFFF thumb_func_start FUN_02060688 FUN_02060688: ; 0x02060688 push {r3-r7, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 add r7, r3, #0x0 bl FUN_0202AAA0 str r0, [sp, #0x0] add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_0202AA58 ldr r0, [sp, #0x0] mov r1, #0x1 add r2, r7, #0x0 bl FUN_0202AAFC pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020606B0 FUN_020606B0: ; 0x020606B0 push {r4, lr} add r4, r0, #0x0 bl FUN_02046528 add r0, r4, #0x0 bl FUN_0204652C add r2, r0, #0x0 ldr r1, _020606CC ; =0x020F7630 add r0, r4, #0x0 add r2, #0xc bl FUN_02046500 pop {r4, pc} .balign 4 _020606CC: .word 0x020F7630 thumb_func_start FUN_020606D0 FUN_020606D0: ; 0x020606D0 push {r4-r6, lr} sub sp, #0x8 add r5, r0, #0x0 bl FUN_02046528 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldr r0, [r4, #0x4] cmp r0, #0x6 bhi _0206078A add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _020606F6: ; jump table (using 16-bit offset) .short _02060704 - _020606F6 - 2; case 0 .short _0206072C - _020606F6 - 2; case 1 .short _0206073A - _020606F6 - 2; case 2 .short _02060748 - _020606F6 - 2; case 3 .short _02060756 - _020606F6 - 2; case 4 .short _02060764 - _020606F6 - 2; case 5 .short _02060772 - _020606F6 - 2; case 6 _02060704: ldr r0, [r4, #0x24] add r3, r4, #0x0 str r0, [sp, #0x0] ldr r0, [r4, #0x28] add r3, #0xc str r0, [sp, #0x4] ldr r1, [r4, #0x0] ldr r2, [r4, #0x8] add r0, r6, #0x0 bl FUN_0224891C ldr r1, [r4, #0x0] ldr r2, [r4, #0x8] add r0, r6, #0x0 bl FUN_022488FC ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _0206078A _0206072C: add r0, r5, #0x0 bl FUN_0204AFC8 ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _0206078A _0206073A: add r0, r5, #0x0 bl FUN_0204AF3C ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _0206078A _02060748: add r0, r5, #0x0 bl FUN_020606B0 ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _0206078A _02060756: add r0, r5, #0x0 bl FUN_0204AF84 ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _0206078A _02060764: add r0, r5, #0x0 bl FUN_0204B00C ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _0206078A _02060772: ldr r0, [r4, #0x24] bl FUN_02016A18 ldr r0, [r4, #0x28] bl FUN_02016A18 add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x8 mov r0, #0x1 pop {r4-r6, pc} _0206078A: mov r0, #0x0 add sp, #0x8 pop {r4-r6, pc} thumb_func_start FUN_02060790 FUN_02060790: ; 0x02060790 push {r3-r7, lr} add r7, r0, #0x0 add r5, r1, #0x0 add r0, r3, #0x0 mov r1, #0x2c add r6, r2, #0x0 str r3, [sp, #0x0] bl FUN_02016998 mov r1, #0x0 mov r2, #0x2c add r4, r0, #0x0 blx FUN_020DF4A4 mov r0, #0x0 str r0, [r4, #0x4] str r5, [r4, #0x0] ldr r0, [sp, #0x0] str r6, [r4, #0x8] bl FUN_020669C0 str r0, [r4, #0x24] ldr r0, [sp, #0x0] bl FUN_020669C0 str r0, [r4, #0x28] ldr r1, _020607D0 ; =FUN_020606D0 add r0, r7, #0x0 add r2, r4, #0x0 bl FUN_0204640C pop {r3-r7, pc} .balign 4 _020607D0: .word FUN_020606D0 thumb_func_start FUN_020607D4 FUN_020607D4: ; 0x020607D4 push {r3-r7, lr} sub sp, #0x28 add r5, r0, #0x0 add r6, r1, #0x0 mov r0, #0xb mov r1, #0x80 add r7, r2, #0x0 str r3, [sp, #0xc] bl FUN_020169D8 add r4, r0, #0x0 strb r6, [r4, #0x1] strb r7, [r4, #0x4] ldr r0, [sp, #0xc] add r2, r4, #0x0 str r0, [r4, #0x18] ldr r0, [sp, #0x40] add r2, #0x34 str r0, [r4, #0x1c] ldr r0, [sp, #0x44] mov r7, #0x9 str r0, [r4, #0x20] ldr r3, [r5, #0x40] _02060802: ldmia r3!, {r0-r1} stmia r2!, {r0-r1} sub r7, r7, #0x1 bne _02060802 mov r7, #0x0 sub r0, r7, #0x1 str r0, [r4, #0x10] strb r7, [r4, #0x5] mov r0, #0x40 add r1, r7, #0x0 add r2, r7, #0x0 str r7, [r4, #0x8] bl FUN_0200433C cmp r6, #0x3 bne _0206085C mov r0, #0x22 str r0, [sp, #0x14] ldr r0, [r5, #0x38] bl FUN_02055320 add r6, r0, #0x0 ldr r0, [r5, #0x38] bl FUN_0205532C add r1, r0, #0x0 mov r0, #0x3 str r0, [sp, #0x0] mov r0, #0x6 str r0, [sp, #0x4] add r0, sp, #0x18 mov r2, #0x1 str r0, [sp, #0x8] add r0, r6, #0x0 sub r3, r2, #0x4 bl FUN_0204A840 mov r0, #0x19 lsl r0, r0, #0x10 str r0, [sp, #0x10] mov r0, #0xe lsl r0, r0, #0x10 mov r7, #0x1 str r0, [r4, #0x10] b _02060892 _0206085C: cmp r6, #0x2 bne _02060892 ldr r0, _02060918 ; =0x000001C1 str r0, [sp, #0x14] ldr r0, [r5, #0x38] bl FUN_02055320 add r6, r0, #0x0 ldr r0, [r5, #0x38] bl FUN_0205532C add r1, r0, #0x0 mov r0, #0x6 str r0, [sp, #0x0] mov r2, #0x3 str r2, [sp, #0x4] add r0, sp, #0x18 str r0, [sp, #0x8] add r0, r6, #0x0 sub r2, r2, #0x5 mov r3, #0x2 bl FUN_0204A840 mov r0, #0x3 lsl r0, r0, #0x12 mov r7, #0x1 str r0, [sp, #0x10] _02060892: cmp r7, #0x0 beq _02060906 add r3, r4, #0x0 ldr r1, [sp, #0x14] add r0, r5, #0x0 add r2, sp, #0x18 add r3, #0x30 bl FUN_0204A8C4 cmp r0, #0x0 beq _020608F8 ldr r0, [sp, #0x10] add r1, r4, #0x0 str r0, [r4, #0xc] mov r0, #0x0 str r0, [r4, #0x14] strb r0, [r4, #0x3] mov r0, #0x1 lsl r0, r0, #0xa str r0, [r4, #0x7c] ldr r0, [r5, #0x38] add r1, #0x24 bl FUN_02055350 ldr r0, [r5, #0x20] bl FUN_0201EC88 add r0, r4, #0x0 ldr r1, [r5, #0x20] add r0, #0x24 bl FUN_0201EC68 mov r0, #0x0 ldr r1, [r4, #0x10] mvn r0, r0 cmp r1, r0 beq _020608EC mov r0, #0x0 strb r0, [r4, #0x2] mov r0, #0x1 strb r0, [r4, #0x0] add r0, r5, #0x0 bl FUN_02060BDC b _020608F0 _020608EC: mov r0, #0x0 strb r0, [r4, #0x0] _020608F0: ldr r0, _0206091C ; =0x000006DD bl FUN_020054C8 b _0206090A _020608F8: bl ErrorHandling add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x28 pop {r3-r7, pc} _02060906: mov r0, #0x2 strb r0, [r4, #0x0] _0206090A: ldr r0, [r5, #0x10] ldr r1, _02060920 ; =FUN_020609A0 add r2, r4, #0x0 bl FUN_0204640C add sp, #0x28 pop {r3-r7, pc} .balign 4 _02060918: .word 0x000001C1 _0206091C: .word 0x000006DD _02060920: .word FUN_020609A0 thumb_func_start FUN_02060924 FUN_02060924: ; 0x02060924 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 mov r0, #0xb mov r1, #0x8 add r6, r2, #0x0 bl FUN_020169D8 add r2, r0, #0x0 str r6, [r2, #0x4] strb r4, [r2, #0x0] ldr r0, [r5, #0x10] ldr r1, _02060944 ; =FUN_02060948 bl FUN_0204640C pop {r4-r6, pc} .balign 4 _02060944: .word FUN_02060948 thumb_func_start FUN_02060948 FUN_02060948: ; 0x02060948 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02046528 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0204652C add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_02046530 add r5, r0, #0x0 ldr r0, [r5, #0x0] cmp r0, #0x0 beq _02060972 cmp r0, #0x1 beq _0206097C cmp r0, #0x2 beq _0206098A b _02060994 _02060972: add r0, r4, #0x0 add r1, r6, #0x0 bl FUN_0203888C b _02060994 _0206097C: add r0, r4, #0x0 bl FUN_0204647C cmp r0, #0x0 beq _02060994 mov r0, #0x0 pop {r4-r6, pc} _0206098A: add r0, r6, #0x0 bl FUN_02016A18 mov r0, #0x1 pop {r4-r6, pc} _02060994: ldr r0, [r5, #0x0] add r0, r0, #0x1 str r0, [r5, #0x0] mov r0, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_020609A0 FUN_020609A0: ; 0x020609A0 push {r3-r6, lr} sub sp, #0xc add r6, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r6, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldrb r1, [r4, #0x0] cmp r1, #0x7 bhi _020609E4 add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _020609C6: ; jump table (using 16-bit offset) .short _020609D6 - _020609C6 - 2; case 0 .short _020609EC - _020609C6 - 2; case 1 .short _02060A4E - _020609C6 - 2; case 2 .short _02060A74 - _020609C6 - 2; case 3 .short _02060AB4 - _020609C6 - 2; case 4 .short _02060AC6 - _020609C6 - 2; case 5 .short _02060AE2 - _020609C6 - 2; case 6 .short _02060AF6 - _020609C6 - 2; case 7 _020609D6: bl FUN_02060C80 add r0, r4, #0x0 bl FUN_02060B0C cmp r0, #0x0 bne _020609E6 _020609E4: b _02060B00 _020609E6: mov r0, #0x2 strb r0, [r4, #0x0] b _02060B00 _020609EC: bl FUN_02060C80 add r0, r4, #0x0 bl FUN_02060B0C add r6, r0, #0x0 ldrb r0, [r4, #0x2] cmp r0, #0x0 bne _02060A2C add r0, r4, #0x0 add r1, r4, #0x0 add r0, #0x10 add r1, #0x14 add r2, r4, #0x2 bl FUN_02060BC8 cmp r0, #0x0 beq _02060B00 ldr r0, [r5, #0x50] mov r1, #0x1 mov r2, #0x0 bl FUN_021DA4EC ldr r0, [r5, #0x50] mov r1, #0x2 mov r2, #0x0 bl FUN_021DA4EC ldr r0, _02060B08 ; =0x000006DE bl FUN_020054C8 b _02060B00 _02060A2C: ldr r0, [r5, #0x50] mov r1, #0x1 bl FUN_021DA58C cmp r0, #0x0 beq _02060B00 ldr r0, [r5, #0x50] mov r1, #0x2 bl FUN_021DA58C cmp r0, #0x0 beq _02060B00 cmp r6, #0x0 beq _02060B00 mov r0, #0x2 strb r0, [r4, #0x0] b _02060B00 _02060A4E: mov r0, #0x6 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] mov r0, #0xb str r0, [sp, #0x8] mov r0, #0x0 add r1, r0, #0x0 add r2, r0, #0x0 add r3, r0, #0x0 bl FUN_0200E1D0 mov r0, #0x0 mov r1, #0x6 bl FUN_020053CC mov r0, #0x3 strb r0, [r4, #0x0] b _02060B00 _02060A74: bl FUN_0200E308 cmp r0, #0x0 beq _02060A84 bl FUN_02005404 cmp r0, #0x0 beq _02060A8A _02060A84: add sp, #0xc mov r0, #0x0 pop {r3-r6, pc} _02060A8A: mov r0, #0x0 ldr r1, [r4, #0x10] mvn r0, r0 cmp r1, r0 beq _02060AA8 ldr r0, [r5, #0x4c] ldr r1, [r5, #0x50] mov r2, #0x1 bl FUN_021DA54C ldr r0, [r5, #0x4c] ldr r1, [r5, #0x50] mov r2, #0x2 bl FUN_021DA54C _02060AA8: add r0, r6, #0x0 bl FUN_0204AF3C mov r0, #0x4 strb r0, [r4, #0x0] b _02060B00 _02060AB4: ldrb r1, [r4, #0x1] add r2, r4, #0x0 add r0, r5, #0x0 add r2, #0x34 bl FUN_02060924 mov r0, #0x5 strb r0, [r4, #0x0] b _02060B00 _02060AC6: ldr r0, [r4, #0x20] mov r2, #0x0 str r0, [sp, #0x0] ldrb r0, [r4, #0x4] mvn r2, r2 str r0, [sp, #0x4] ldr r1, [r4, #0x18] ldr r3, [r4, #0x1c] add r0, r6, #0x0 bl FUN_020491A8 mov r0, #0x6 strb r0, [r4, #0x0] b _02060B00 _02060AE2: ldr r1, [r4, #0x18] add r0, r5, #0x0 bl FUN_0204AD8C add r0, r6, #0x0 bl FUN_0204B0E8 mov r0, #0x7 strb r0, [r4, #0x0] b _02060B00 _02060AF6: bl FUN_02016A18 add sp, #0xc mov r0, #0x1 pop {r3-r6, pc} _02060B00: mov r0, #0x0 add sp, #0xc pop {r3-r6, pc} nop _02060B08: .word 0x000006DE thumb_func_start FUN_02060B0C FUN_02060B0C: ; 0x02060B0C push {r3-r4, lr} sub sp, #0xc add r4, r0, #0x0 ldr r1, [r4, #0x30] add r0, sp, #0x0 bl FUN_021E7EA0 ldrb r0, [r4, #0x1] cmp r0, #0x3 bhi _02060B7C add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02060B2C: ; jump table (using 16-bit offset) .short _02060B34 - _02060B2C - 2; case 0 .short _02060B6A - _02060B2C - 2; case 1 .short _02060B58 - _02060B2C - 2; case 2 .short _02060B46 - _02060B2C - 2; case 3 _02060B34: ldr r1, [sp, #0x8] ldr r0, [r4, #0x7c] add r0, r1, r0 str r0, [sp, #0x8] ldr r1, [r4, #0x2c] ldr r0, [r4, #0x7c] add r0, r1, r0 str r0, [r4, #0x2c] b _02060B86 _02060B46: ldr r1, [sp, #0x8] ldr r0, [r4, #0x7c] sub r0, r1, r0 str r0, [sp, #0x8] ldr r1, [r4, #0x2c] ldr r0, [r4, #0x7c] sub r0, r1, r0 str r0, [r4, #0x2c] b _02060B86 _02060B58: ldr r1, [sp, #0x0] ldr r0, [r4, #0x7c] add r0, r1, r0 str r0, [sp, #0x0] ldr r1, [r4, #0x24] ldr r0, [r4, #0x7c] add r0, r1, r0 str r0, [r4, #0x24] b _02060B86 _02060B6A: ldr r1, [sp, #0x0] ldr r0, [r4, #0x7c] sub r0, r1, r0 str r0, [sp, #0x0] ldr r1, [r4, #0x24] ldr r0, [r4, #0x7c] sub r0, r1, r0 str r0, [r4, #0x24] b _02060B86 _02060B7C: bl ErrorHandling add sp, #0xc mov r0, #0x1 pop {r3-r4, pc} _02060B86: mov r0, #0x1 ldr r1, [r4, #0x7c] lsl r0, r0, #0xc cmp r1, r0 bge _02060BA6 ldrb r1, [r4, #0x3] add r1, r1, #0x1 strb r1, [r4, #0x3] ldrb r1, [r4, #0x3] cmp r1, #0x18 blo _02060BA6 ldr r1, [r4, #0x7c] add r0, r1, r0 str r0, [r4, #0x7c] mov r0, #0x0 strb r0, [r4, #0x3] _02060BA6: ldr r0, [r4, #0x30] add r1, sp, #0x0 bl FUN_021E7EB0 ldr r1, [r4, #0x14] ldr r0, [r4, #0x7c] add r1, r1, r0 str r1, [r4, #0x14] ldr r0, [r4, #0xc] cmp r0, r1 bgt _02060BC2 add sp, #0xc mov r0, #0x1 pop {r3-r4, pc} _02060BC2: mov r0, #0x0 add sp, #0xc pop {r3-r4, pc} thumb_func_start FUN_02060BC8 FUN_02060BC8: ; 0x02060BC8 ldr r3, [r0, #0x0] ldr r0, [r1, #0x0] cmp r3, r0 bgt _02060BD6 mov r0, #0x1 strb r0, [r2, #0x0] bx lr _02060BD6: mov r0, #0x0 bx lr .balign 4 thumb_func_start FUN_02060BDC FUN_02060BDC: ; 0x02060BDC push {r4-r7, lr} sub sp, #0x34 add r5, r0, #0x0 ldr r0, _02060C7C ; =0x020F7640 mov r6, #0x0 ldr r2, [r0, #0x0] ldr r1, [r0, #0x4] str r2, [sp, #0x2c] str r1, [sp, #0x30] ldr r1, [r0, #0x8] ldr r0, [r0, #0xc] str r1, [sp, #0x24] str r0, [sp, #0x28] _02060BF6: lsl r7, r6, #0x2 add r0, sp, #0x2c ldr r4, [r0, r7] mov r2, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 add r3, r2, #0x0 bl FUN_0204A9F0 cmp r0, #0x0 beq _02060C6A ldr r1, [r5, #0x2c] add r0, r4, #0x0 bl FUN_021F4BD0 ldr r0, [r0, #0x0] blx FUN_020BC13C ldrh r1, [r0, #0xe] add r2, sp, #0x20 mov r3, #0x0 add r1, r0, r1 ldr r1, [r1, #0xc] add r0, r0, r1 str r0, [sp, #0x18] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0204A9F0 cmp r0, #0x0 bne _02060C38 bl ErrorHandling _02060C38: ldr r0, [sp, #0x20] bl FUN_021E7EC8 str r0, [sp, #0x1c] ldr r0, [r5, #0x2c] bl FUN_021F4C88 ldr r1, [sp, #0x1c] add r2, sp, #0x24 str r1, [sp, #0x0] ldr r1, [sp, #0x18] ldr r2, [r2, r7] str r1, [sp, #0x4] str r0, [sp, #0x8] mov r0, #0x1 str r0, [sp, #0xc] str r0, [sp, #0x10] mov r0, #0x0 str r0, [sp, #0x14] ldr r0, [r5, #0x4c] ldr r1, [r5, #0x50] add r3, r4, #0x0 bl FUN_021DA464 b _02060C6E _02060C6A: bl ErrorHandling _02060C6E: add r0, r6, #0x1 lsl r0, r0, #0x18 lsr r6, r0, #0x18 cmp r6, #0x2 blo _02060BF6 add sp, #0x34 pop {r4-r7, pc} .balign 4 _02060C7C: .word 0x020F7640 thumb_func_start FUN_02060C80 FUN_02060C80: ; 0x02060C80 push {r3, lr} ldrb r1, [r0, #0x1] cmp r1, #0x2 beq _02060CA8 cmp r1, #0x3 bne _02060CC4 mov r2, #0x2 ldr r1, [r0, #0x8] lsl r2, r2, #0x10 cmp r1, r2 bge _02060CC8 ldr r3, [r0, #0x24] lsr r1, r2, #0x5 add r1, r3, r1 str r1, [r0, #0x24] ldr r3, [r0, #0x8] lsr r1, r2, #0x5 add r1, r3, r1 str r1, [r0, #0x8] pop {r3, pc} _02060CA8: mov r1, #0x3 ldr r2, [r0, #0x8] lsl r1, r1, #0x10 cmp r2, r1 bge _02060CC8 mov r1, #0x2 ldr r2, [r0, #0x2c] lsl r1, r1, #0xa add r2, r2, r1 str r2, [r0, #0x2c] ldr r2, [r0, #0x8] add r1, r2, r1 str r1, [r0, #0x8] pop {r3, pc} _02060CC4: bl ErrorHandling _02060CC8: pop {r3, pc} .balign 4 thumb_func_start FUN_02060CCC FUN_02060CCC: ; 0x02060CCC push {r4-r6, lr} add r5, r0, #0x0 cmp r5, #0x0 ble _02060CD8 cmp r5, #0x5 blt _02060CDC _02060CD8: bl ErrorHandling _02060CDC: sub r1, r5, #0x1 ldr r6, _02060CF4 ; =0x020F767C mov r0, #0xc add r4, r1, #0x0 mul r4, r0 ldr r0, [r6, r4] cmp r0, r5 beq _02060CF0 bl ErrorHandling _02060CF0: add r0, r6, r4 pop {r4-r6, pc} .balign 4 _02060CF4: .word 0x020F767C thumb_func_start FUN_02060CF8 FUN_02060CF8: ; 0x02060CF8 push {r3-r5, lr} add r5, r0, #0x0 add r0, r1, #0x0 bl FUN_02248B6C add r4, r0, #0x0 cmp r4, #0x0 ble _02060D0E ldrh r0, [r5, #0x6] cmp r4, r0 blt _02060D12 _02060D0E: bl ErrorHandling _02060D12: sub r0, r4, #0x1 ldr r1, [r5, #0x8] lsl r0, r0, #0x3 add r0, r1, r0 pop {r3-r5, pc} thumb_func_start FUN_02060D1C FUN_02060D1C: ; 0x02060D1C push {r3-r7, lr} add r6, r1, #0x0 add r7, r2, #0x0 add r5, r3, #0x0 bl FUN_02060CCC ldrh r2, [r0, #0x4] ldr r1, [sp, #0x18] strh r2, [r1, #0x0] add r1, r5, #0x0 bl FUN_02060CF8 ldr r4, [r0, #0x0] cmp r4, #0x0 bne _02060D3E bl ErrorHandling _02060D3E: add r0, r6, #0x0 add r1, r7, #0x0 add r2, r5, #0x0 blx r4 pop {r3-r7, pc} thumb_func_start FUN_02060D48 FUN_02060D48: ; 0x02060D48 push {r3-r5, lr} add r4, r2, #0x0 add r5, r1, #0x0 bl FUN_02060CCC add r1, r4, #0x0 bl FUN_02060CF8 ldr r1, [r0, #0x0] cmp r1, #0x0 bne _02060D62 mov r0, #0x0 pop {r3-r5, pc} _02060D62: ldr r2, [r0, #0x4] cmp r2, #0x0 bne _02060D6C mov r0, #0x1 pop {r3-r5, pc} _02060D6C: add r0, r5, #0x0 add r1, r4, #0x0 blx r2 pop {r3-r5, pc} thumb_func_start FUN_02060D74 FUN_02060D74: ; 0x02060D74 push {r4-r6, lr} ldr r0, [r0, #0xc] add r5, r1, #0x0 add r4, r2, #0x0 add r6, r3, #0x0 bl FUN_02022504 add r1, r5, #0x0 add r2, r4, #0x0 add r3, r6, #0x0 bl FUN_0202B4B0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02060D90 FUN_02060D90: ; 0x02060D90 push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 add r6, r1, #0x0 add r7, r2, #0x0 mov r0, #0x40 mov r1, #0x4 str r3, [sp, #0x8] bl FUN_020219F4 add r1, r7, #0x0 add r4, r0, #0x0 bl FUN_02021E28 ldr r0, [sp, #0x24] ldr r3, [sp, #0x8] str r0, [sp, #0x0] ldr r0, [sp, #0x20] add r1, r6, #0x0 str r0, [sp, #0x4] add r0, r5, #0x0 add r2, r4, #0x0 bl FUN_0200ABB4 add r0, r4, #0x0 bl FUN_02021A20 add sp, #0xc pop {r4-r7, pc} .balign 4 thumb_func_start FUN_02060DCC FUN_02060DCC: ; 0x02060DCC push {r4-r7, lr} sub sp, #0xc add r6, r2, #0x0 add r5, r0, #0x0 add r0, r6, #0x0 add r4, r1, #0x0 bl FUN_02248B5C add r7, r0, #0x0 add r0, r6, #0x0 bl FUN_02248B54 str r0, [sp, #0x8] add r0, r6, #0x0 bl FUN_02248B58 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] ldr r3, [sp, #0x8] add r0, r5, #0x0 add r1, r4, #0x0 add r2, r7, #0x0 bl FUN_02060D90 add sp, #0xc pop {r4-r7, pc} .balign 4 thumb_func_start FUN_02060E04 FUN_02060E04: ; 0x02060E04 push {r4-r6, lr} add r3, r0, #0x0 add r5, r1, #0x0 mov r0, #0x40 add r1, r3, #0x0 add r6, r2, #0x0 bl FUN_020219F4 add r4, r0, #0x0 add r0, r6, #0x0 mov r1, #0x76 add r2, r4, #0x0 bl FUN_020671BC add r0, r4, #0x0 add r1, r5, #0x0 mov r2, #0xb bl FUN_02021EF0 add r0, r4, #0x0 bl FUN_02021A20 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02060E34 FUN_02060E34: ; 0x02060E34 push {r3-r7, lr} add r4, r1, #0x0 add r6, r2, #0x0 add r5, r0, #0x0 mov r1, #0x5 mov r2, #0x0 add r7, r3, #0x0 bl FUN_020671BC strh r0, [r4, #0x0] add r0, r5, #0x0 mov r1, #0x6f mov r2, #0x0 bl FUN_020671BC strb r0, [r6, #0x0] add r0, r5, #0x0 mov r1, #0xc mov r2, #0x0 bl FUN_020671BC strb r0, [r7, #0x0] add r0, r5, #0x0 mov r1, #0x79 mov r2, #0x0 bl FUN_020671BC ldr r1, [sp, #0x18] strb r0, [r1, #0x0] pop {r3-r7, pc} thumb_func_start FUN_02060E70 FUN_02060E70: ; 0x02060E70 push {r4-r6, lr} sub sp, #0x20 add r5, r0, #0x0 add r4, r1, #0x0 add r0, r2, #0x0 mov r1, #0x4 add r2, sp, #0x8 add r6, r3, #0x0 bl FUN_0200A99C add r0, sp, #0x20 ldrb r0, [r0, #0x10] add r1, r4, #0x0 add r2, sp, #0x8 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] add r0, r5, #0x0 add r3, r6, #0x0 bl FUN_02060D90 add sp, #0x20 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02060EA0 FUN_02060EA0: ; 0x02060EA0 push {r3-r5, lr} sub sp, #0x20 add r5, r0, #0x0 add r4, r1, #0x0 add r0, r2, #0x0 mov r1, #0x4 add r2, sp, #0x8 bl FUN_0200A99C mov r0, #0x2 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] add r0, r5, #0x0 add r1, r4, #0x0 add r2, sp, #0x8 mov r3, #0x0 bl FUN_02060D90 add sp, #0x20 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02060ECC FUN_02060ECC: ; 0x02060ECC push {r3-r7, lr} add r5, r1, #0x0 add r6, r0, #0x0 add r4, r2, #0x0 add r0, r5, #0x0 mov r1, #0x4d mov r2, #0x0 add r7, r3, #0x0 bl FUN_020671BC strb r0, [r4, #0x0] ldrb r0, [r4, #0x0] cmp r0, #0x0 beq _02060F0C mov r0, #0x40 add r1, r6, #0x0 bl FUN_020219F4 add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x76 add r2, r4, #0x0 bl FUN_020671BC add r0, r4, #0x0 add r1, r7, #0x0 mov r2, #0xb bl FUN_02021EF0 add r0, r4, #0x0 bl FUN_02021A20 _02060F0C: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02060F10 FUN_02060F10: ; 0x02060F10 push {r3-r7, lr} add r7, r1, #0x0 add r5, r2, #0x0 add r6, r3, #0x0 bl FUN_0202B838 add r4, r0, #0x0 mov r0, #0x1 strb r0, [r4, #0x0] add r0, r4, #0x6 str r0, [sp, #0x0] add r0, r7, #0x0 add r1, r4, #0x2 add r2, r4, #0x4 add r3, r4, #0x5 bl FUN_02060E34 strb r5, [r4, #0x8] ldr r0, [sp, #0x18] strb r6, [r4, #0x7] strb r0, [r4, #0x9] pop {r3-r7, pc} thumb_func_start FUN_02060F3C FUN_02060F3C: ; 0x02060F3C push {r3-r6, lr} sub sp, #0x4 add r5, r1, #0x0 add r6, r2, #0x0 bl FUN_0202B844 add r4, r0, #0x0 mov r0, #0x1 strb r0, [r4, #0x0] mov r0, #0x0 strb r0, [r4, #0x1f] add r0, r5, #0x0 bl FUN_02068854 strb r0, [r4, #0x1e] add r0, r4, #0x6 str r0, [sp, #0x0] add r0, r5, #0x0 add r1, r4, #0x2 add r2, r4, #0x4 add r3, r4, #0x5 bl FUN_02060E34 add r0, r5, #0x0 mov r1, #0x4d mov r2, #0x0 bl FUN_020671BC strb r0, [r4, #0x7] add r2, r4, #0x7 add r4, #0x8 add r0, r6, #0x0 add r1, r5, #0x0 add r3, r4, #0x0 bl FUN_02060ECC add sp, #0x4 pop {r3-r6, pc} thumb_func_start FUN_02060F88 FUN_02060F88: ; 0x02060F88 push {r4, lr} add r4, r1, #0x0 bl FUN_0202B844 mov r1, #0x2 strb r1, [r0, #0x1f] add r0, #0x20 strb r4, [r0, #0x0] pop {r4, pc} .balign 4 thumb_func_start FUN_02060F9C FUN_02060F9C: ; 0x02060F9C push {r4, lr} add r4, r1, #0x0 bl FUN_0202B844 mov r1, #0x1 strb r1, [r0, #0x1f] strh r4, [r0, #0x22] pop {r4, pc} thumb_func_start FUN_02060FAC FUN_02060FAC: ; 0x02060FAC push {r4, lr} add r4, r1, #0x0 bl FUN_0202B850 mov r1, #0x1 strb r1, [r0, #0x0] strb r4, [r0, #0x1] pop {r4, pc} thumb_func_start FUN_02060FBC FUN_02060FBC: ; 0x02060FBC push {r3-r5, lr} add r5, r1, #0x0 add r4, r2, #0x0 bl FUN_0202B85C mov r1, #0x1 strb r1, [r0, #0x0] strb r5, [r0, #0x1] strh r4, [r0, #0x2] pop {r3-r5, pc} thumb_func_start FUN_02060FD0 FUN_02060FD0: ; 0x02060FD0 push {r3, lr} bl FUN_0202B868 mov r1, #0x1 strb r1, [r0, #0x0] mov r1, #0x0 strb r1, [r0, #0x7] pop {r3, pc} thumb_func_start FUN_02060FE0 FUN_02060FE0: ; 0x02060FE0 push {r3-r5, lr} add r5, r1, #0x0 bl FUN_0202B868 add r4, r0, #0x0 ldrb r0, [r4, #0x7] cmp r0, #0x0 bne _02061000 add r0, r4, #0x6 str r0, [sp, #0x0] add r0, r5, #0x0 add r1, r4, #0x2 add r2, r4, #0x4 add r3, r4, #0x5 bl FUN_02060E34 _02061000: ldrb r0, [r4, #0x7] add r0, r0, #0x1 strb r0, [r4, #0x7] pop {r3-r5, pc} thumb_func_start FUN_02061008 FUN_02061008: ; 0x02061008 push {r4, lr} mov r1, #0x24 bl FUN_02016998 add r4, r0, #0x0 mov r0, #0x0 add r1, r4, #0x0 mov r2, #0x24 blx MIi_CpuClearFast add r0, r4, #0x0 pop {r4, pc} thumb_func_start FUN_02061020 FUN_02061020: ; 0x02061020 ldr r3, _02061024 ; =FUN_02016A18 bx r3 .balign 4 _02061024: .word FUN_02016A18 thumb_func_start FUN_02061028 FUN_02061028: ; 0x02061028 push {r3-r7, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 mov r0, #0x0 add r1, r5, #0x0 mov r2, #0x24 add r7, r3, #0x0 blx MIi_CpuClear32 str r6, [r5, #0x0] add r0, r5, #0x0 add r2, r5, #0x0 add r3, r5, #0x0 strh r7, [r5, #0x4] add r0, #0xa str r0, [sp, #0x0] add r0, r4, #0x0 add r1, r5, #0x6 add r2, #0x8 add r3, #0x9 bl FUN_02060E34 add r0, r4, #0x0 mov r1, #0x9a mov r2, #0x0 bl FUN_020671BC strh r0, [r5, #0x22] ldrh r0, [r5, #0x22] cmp r0, #0x0 bne _0206106C bl ErrorHandling _0206106C: add r2, r5, #0x0 add r5, #0xc ldr r0, [sp, #0x18] add r1, r4, #0x0 add r2, #0xb add r3, r5, #0x0 bl FUN_02060ECC pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02061080 FUN_02061080: ; 0x02061080 push {r3-r7, lr} sub sp, #0x28 add r7, sp, #0x0 add r5, r2, #0x0 add r6, r0, #0x0 add r3, r1, #0x0 add r4, r7, #0x0 mov r2, #0x4 _02061090: ldmia r3!, {r0-r1} stmia r4!, {r0-r1} sub r2, r2, #0x1 bne _02061090 ldr r0, [r3, #0x0] str r0, [r4, #0x0] str r5, [sp, #0x0] add r0, sp, #0x0 ldrh r0, [r0, #0x4] cmp r0, #0x0 beq _020610F0 ldrh r1, [r7, #0x4] ldr r0, _020610F4 ; =0x000003E7 cmp r1, r0 bls _020610B0 strh r0, [r7, #0x4] _020610B0: cmp r5, #0x6 bhi _020610F0 add r0, r5, r5 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _020610C0: ; jump table (using 16-bit offset) .short _020610F0 - _020610C0 - 2; case 0 .short _020610DE - _020610C0 - 2; case 1 .short _020610F0 - _020610C0 - 2; case 2 .short _020610F0 - _020610C0 - 2; case 3 .short _020610CE - _020610C0 - 2; case 4 .short _020610DE - _020610C0 - 2; case 5 .short _020610DE - _020610C0 - 2; case 6 _020610CE: add r0, r6, #0x0 mov r1, #0x2 mov r2, #0x1 add r3, r7, #0x0 bl FUN_02060D74 add sp, #0x28 pop {r3-r7, pc} _020610DE: ldrh r0, [r7, #0x4] cmp r0, #0x2 bls _020610F0 mov r1, #0x2 add r0, r6, #0x0 add r2, r1, #0x0 add r3, r7, #0x0 bl FUN_02060D74 _020610F0: add sp, #0x28 pop {r3-r7, pc} .balign 4 _020610F4: .word 0x000003E7 thumb_func_start FUN_020610F8 FUN_020610F8: ; 0x020610F8 push {r4-r6, lr} sub sp, #0x8 add r6, r2, #0x0 add r0, r6, #0x0 add r5, r1, #0x0 bl FUN_02248B60 add r4, r0, #0x0 ldrb r0, [r4, #0xb] cmp r0, #0x0 beq _02061166 add r0, r5, #0x0 mov r1, #0x0 add r2, r6, #0x0 bl FUN_02060DCC ldrb r0, [r4, #0x9] mov r1, #0x1 str r0, [sp, #0x0] ldrb r0, [r4, #0xa] str r0, [sp, #0x4] ldrh r2, [r4, #0x6] ldrb r3, [r4, #0x8] add r0, r5, #0x0 bl FUN_02060E70 ldrh r2, [r4, #0x22] add r0, r5, #0x0 mov r1, #0x2 bl FUN_0200AE38 mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] mov r1, #0x3 ldrh r2, [r4, #0x4] add r0, r5, #0x0 add r3, r1, #0x0 bl FUN_0200AD38 ldrb r0, [r4, #0x9] add r2, r4, #0x0 mov r1, #0x4 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] ldrb r3, [r4, #0x8] add r0, r5, #0x0 add r2, #0xc bl FUN_02060D90 add sp, #0x8 mov r0, #0x0 pop {r4-r6, pc} _02061166: add r0, r5, #0x0 mov r1, #0x0 add r2, r6, #0x0 bl FUN_02060DCC ldrb r0, [r4, #0x9] mov r1, #0x1 str r0, [sp, #0x0] ldrb r0, [r4, #0xa] str r0, [sp, #0x4] ldrh r2, [r4, #0x6] ldrb r3, [r4, #0x8] add r0, r5, #0x0 bl FUN_02060E70 ldrh r2, [r4, #0x22] add r0, r5, #0x0 mov r1, #0x2 bl FUN_0200AE38 mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] mov r1, #0x3 ldrh r2, [r4, #0x4] add r0, r5, #0x0 add r3, r1, #0x0 bl FUN_0200AD38 mov r0, #0x1 add sp, #0x8 pop {r4-r6, pc} thumb_func_start FUN_020611A8 FUN_020611A8: ; 0x020611A8 push {r4-r6, lr} sub sp, #0x8 add r6, r2, #0x0 add r5, r1, #0x0 add r0, r6, #0x0 bl FUN_02248B60 add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x0 add r2, r6, #0x0 bl FUN_02060DCC mov r0, #0x0 str r0, [sp, #0x0] mov r1, #0x1 str r1, [sp, #0x4] ldrh r2, [r4, #0x4] add r0, r5, #0x0 mov r3, #0x3 bl FUN_0200AD38 ldr r0, [r4, #0x0] cmp r0, #0x1 bne _020611E0 add sp, #0x8 mov r0, #0x2 pop {r4-r6, pc} _020611E0: mov r0, #0x3 add sp, #0x8 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_020611E8 FUN_020611E8: ; 0x020611E8 push {r3-r5, lr} ldr r0, [r0, #0xc] add r5, r1, #0x0 bl FUN_02024DA0 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02248B60 add r1, r0, #0x0 ldrh r1, [r1, #0x6] add r0, r4, #0x0 bl FUN_020245F0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02061208 FUN_02061208: ; 0x02061208 push {r4-r7, lr} sub sp, #0x2c add r5, r1, #0x0 add r7, r0, #0x0 add r4, r2, #0x0 add r6, sp, #0x4 cmp r5, #0x0 beq _02061228 add r0, r6, #0x4 str r0, [sp, #0x0] add r0, r3, #0x0 add r1, r6, #0x0 add r2, r6, #0x2 add r3, r6, #0x3 bl FUN_02060E34 _02061228: strh r4, [r6, #0x6] add r0, r7, #0x0 mov r1, #0x2 mov r2, #0x3 add r3, r6, #0x0 str r5, [r6, #0x8] bl FUN_02060D74 add sp, #0x2c pop {r4-r7, pc} thumb_func_start FUN_0206123C FUN_0206123C: ; 0x0206123C push {r4-r6, lr} sub sp, #0x8 add r6, r2, #0x0 add r5, r1, #0x0 add r0, r6, #0x0 bl FUN_02248B60 add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x0 add r2, r6, #0x0 bl FUN_02060DCC ldr r0, [r4, #0x8] cmp r0, #0x0 beq _02061280 ldrh r2, [r4, #0x6] add r0, r5, #0x0 mov r1, #0x1 bl FUN_0200AE38 ldrb r0, [r4, #0x3] mov r1, #0x2 str r0, [sp, #0x0] ldrb r0, [r4, #0x4] str r0, [sp, #0x4] ldrh r2, [r4, #0x0] ldrb r3, [r4, #0x2] add r0, r5, #0x0 bl FUN_02060E70 add sp, #0x8 mov r0, #0x4 pop {r4-r6, pc} _02061280: mov r0, #0x5 add sp, #0x8 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02061288 FUN_02061288: ; 0x02061288 push {r3-r5, lr} add r5, r0, #0x0 add r0, r1, #0x0 bl FUN_02248B60 add r4, r0, #0x0 ldr r0, [r4, #0x8] cmp r0, #0x0 bne _0206129E mov r0, #0x1 pop {r3-r5, pc} _0206129E: ldr r0, [r5, #0xc] bl FUN_02024DA0 ldrh r1, [r4, #0x0] bl FUN_020245F0 pop {r3-r5, pc} thumb_func_start FUN_020612AC FUN_020612AC: ; 0x020612AC push {r4-r6, lr} sub sp, #0x28 add r5, r0, #0x0 ldr r0, [r5, #0xc] add r4, r1, #0x0 bl FUN_0202881C add r6, r0, #0x0 mov r0, #0x0 add r1, sp, #0x0 mov r2, #0x28 blx MIi_CpuClearFast add r0, r6, #0x0 mov r1, #0x1 mov r2, #0x0 bl FUN_020287A8 add r1, r0, #0x0 add r0, sp, #0x0 mov r2, #0xb bl StringCopyN add r0, r5, #0x0 mov r1, #0x2 add r2, r4, #0x0 add r3, sp, #0x0 bl FUN_02060D74 add sp, #0x28 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_020612EC FUN_020612EC: ; 0x020612EC ldr r3, _020612F4 ; =FUN_020612AC mov r1, #0x14 bx r3 nop _020612F4: .word FUN_020612AC thumb_func_start FUN_020612F8 FUN_020612F8: ; 0x020612F8 ldr r3, _02061300 ; =FUN_020612AC mov r1, #0x4 bx r3 nop _02061300: .word FUN_020612AC thumb_func_start FUN_02061304 FUN_02061304: ; 0x02061304 push {r4-r6, lr} sub sp, #0x8 add r4, r2, #0x0 add r0, r4, #0x0 add r5, r1, #0x0 bl FUN_02248B60 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02248B58 str r0, [sp, #0x0] mov r1, #0x1 add r0, r5, #0x0 add r2, r6, #0x0 mov r3, #0x0 str r1, [sp, #0x4] bl FUN_02060D90 add r0, r5, #0x0 mov r1, #0x0 add r2, r4, #0x0 bl FUN_02060DCC mov r0, #0x6 add sp, #0x8 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0206133C FUN_0206133C: ; 0x0206133C push {r4-r6, lr} sub sp, #0x8 add r4, r2, #0x0 add r0, r4, #0x0 add r5, r1, #0x0 bl FUN_02248B60 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02248B58 str r0, [sp, #0x0] mov r1, #0x1 add r0, r5, #0x0 add r2, r6, #0x0 mov r3, #0x0 str r1, [sp, #0x4] bl FUN_02060D90 add r0, r5, #0x0 mov r1, #0x0 add r2, r4, #0x0 bl FUN_02060DCC mov r0, #0x20 add sp, #0x8 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02061374 FUN_02061374: ; 0x02061374 push {r4, lr} sub sp, #0x28 add r4, r0, #0x0 add r0, sp, #0x0 strh r1, [r0, #0x0] ldr r0, [r4, #0x1c] ldr r0, [r0, #0x0] bl FUN_02034824 add r1, sp, #0x0 strh r0, [r1, #0x2] add r0, r4, #0x0 mov r1, #0x2 mov r2, #0x6 add r3, sp, #0x0 bl FUN_02060D74 add sp, #0x28 pop {r4, pc} .balign 4 thumb_func_start FUN_0206139C FUN_0206139C: ; 0x0206139C push {r4-r6, lr} add r6, r2, #0x0 add r0, r6, #0x0 add r5, r1, #0x0 bl FUN_02248B60 add r4, r0, #0x0 ldrh r2, [r4, #0x2] add r0, r5, #0x0 mov r1, #0x0 bl FUN_0200AFF4 add r0, r5, #0x0 mov r1, #0x1 add r2, r6, #0x0 bl FUN_02060DCC ldrh r2, [r4, #0x0] add r0, r5, #0x0 mov r1, #0x2 bl FUN_0200AE38 mov r0, #0xa pop {r4-r6, pc} thumb_func_start FUN_020613CC FUN_020613CC: ; 0x020613CC push {r3-r4, lr} sub sp, #0x2c add r4, r0, #0x0 add r0, sp, #0x8 add r2, sp, #0x4 add r3, sp, #0x4 str r0, [sp, #0x0] add r0, r1, #0x0 add r1, sp, #0x4 add r2, #0x2 add r3, #0x3 bl FUN_02060E34 ldr r0, [r4, #0x1c] ldr r0, [r0, #0x0] bl FUN_02034824 add r1, sp, #0x4 strh r0, [r1, #0x6] add r0, r4, #0x0 mov r1, #0x2 mov r2, #0x8 add r3, sp, #0x4 bl FUN_02060D74 add sp, #0x2c pop {r3-r4, pc} .balign 4 thumb_func_start FUN_02061404 FUN_02061404: ; 0x02061404 push {r4-r6, lr} sub sp, #0x8 add r6, r2, #0x0 add r0, r6, #0x0 add r5, r1, #0x0 bl FUN_02248B60 add r4, r0, #0x0 ldrh r2, [r4, #0x6] add r0, r5, #0x0 mov r1, #0x1 bl FUN_0200AFF4 add r0, r5, #0x0 mov r1, #0x0 add r2, r6, #0x0 bl FUN_02060DCC ldrb r0, [r4, #0x3] mov r1, #0x2 str r0, [sp, #0x0] ldrb r0, [r4, #0x4] str r0, [sp, #0x4] ldrh r2, [r4, #0x0] ldrb r3, [r4, #0x2] add r0, r5, #0x0 bl FUN_02060E70 mov r0, #0xc add sp, #0x8 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02061444 FUN_02061444: ; 0x02061444 push {r3-r5, lr} add r5, r0, #0x0 add r0, r1, #0x0 bl FUN_02248B60 add r4, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_02024DA0 ldrh r1, [r4, #0x0] bl FUN_020245F0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02061460 FUN_02061460: ; 0x02061460 push {r4-r5, lr} sub sp, #0x2c add r5, r0, #0x0 add r4, r1, #0x0 add r0, sp, #0x8 add r2, sp, #0x4 add r3, sp, #0x4 str r0, [sp, #0x0] add r0, r4, #0x0 add r1, sp, #0x4 add r2, #0x2 add r3, #0x3 bl FUN_02060E34 add r1, sp, #0x8 mov r0, #0x4 add r1, #0x2 add r2, r4, #0x0 bl FUN_02060E04 add r0, r5, #0x0 mov r1, #0x2 mov r2, #0xa add r3, sp, #0x4 bl FUN_02060D74 add sp, #0x2c pop {r4-r5, pc} thumb_func_start FUN_02061498 FUN_02061498: ; 0x02061498 push {r4-r6, lr} sub sp, #0x8 add r6, r2, #0x0 add r5, r1, #0x0 add r0, r6, #0x0 bl FUN_02248B60 add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x0 add r2, r6, #0x0 bl FUN_02060DCC ldrb r0, [r4, #0x3] mov r1, #0x1 str r0, [sp, #0x0] ldrb r0, [r4, #0x4] str r0, [sp, #0x4] ldrh r2, [r4, #0x0] ldrb r3, [r4, #0x2] add r0, r5, #0x0 bl FUN_02060E70 ldrb r0, [r4, #0x3] mov r1, #0x2 add r2, r4, #0x6 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] ldrb r3, [r4, #0x2] add r0, r5, #0x0 bl FUN_02060D90 bl FUN_0201B9EC ldr r1, _020614F8 ; =0x00003334 blx _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, #0x5 blo _020614F0 bl ErrorHandling _020614F0: add r4, #0x11 add r0, r4, #0x0 add sp, #0x8 pop {r4-r6, pc} .balign 4 _020614F8: .word 0x00003334 thumb_func_start FUN_020614FC FUN_020614FC: ; 0x020614FC push {r3-r5, lr} ldr r0, [r0, #0xc] add r5, r1, #0x0 bl FUN_02024DA0 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02248B60 add r1, r0, #0x0 ldrh r1, [r1, #0x0] add r0, r4, #0x0 bl FUN_020245F0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0206151C FUN_0206151C: ; 0x0206151C push {r3, lr} sub sp, #0x28 add r3, sp, #0x0 strh r1, [r3, #0x0] strh r2, [r3, #0x2] mov r1, #0x2 mov r2, #0xd add r3, sp, #0x0 bl FUN_02060D74 add sp, #0x28 pop {r3, pc} thumb_func_start FUN_02061534 FUN_02061534: ; 0x02061534 push {r4-r6, lr} sub sp, #0x8 add r6, r2, #0x0 add r5, r1, #0x0 add r0, r6, #0x0 bl FUN_02248B60 add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x0 add r2, r6, #0x0 bl FUN_02060DCC ldrh r2, [r4, #0x0] add r0, r5, #0x0 mov r1, #0x1 bl FUN_0200B164 mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] ldrh r2, [r4, #0x2] add r0, r5, #0x0 mov r1, #0x2 mov r3, #0x3 bl FUN_0200AD38 mov r0, #0x18 add sp, #0x8 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02061574 FUN_02061574: ; 0x02061574 push {r3-r5, lr} sub sp, #0x28 add r5, r0, #0x0 ldr r0, [r5, #0xc] add r4, sp, #0x0 bl FUN_02022504 bl FUN_0202B868 ldrb r1, [r0, #0x7] cmp r1, #0x0 beq _020615AC ldrh r1, [r0, #0x2] mov r2, #0xf add r3, r4, #0x0 strh r1, [r4, #0x0] ldrb r1, [r0, #0x4] strb r1, [r4, #0x2] ldrb r1, [r0, #0x5] strb r1, [r4, #0x3] ldrb r1, [r0, #0x6] strb r1, [r4, #0x4] ldrb r0, [r0, #0x7] mov r1, #0x2 strb r0, [r4, #0x5] add r0, r5, #0x0 bl FUN_02060D74 _020615AC: add sp, #0x28 pop {r3-r5, pc} thumb_func_start FUN_020615B0 FUN_020615B0: ; 0x020615B0 push {r4-r6, lr} sub sp, #0x8 add r6, r2, #0x0 add r5, r1, #0x0 add r0, r6, #0x0 bl FUN_02248B60 add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x0 add r2, r6, #0x0 bl FUN_02060DCC ldrb r0, [r4, #0x3] mov r1, #0x1 str r0, [sp, #0x0] ldrb r0, [r4, #0x4] str r0, [sp, #0x4] ldrh r2, [r4, #0x0] ldrb r3, [r4, #0x2] add r0, r5, #0x0 bl FUN_02060E70 mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] mov r1, #0x2 ldrb r2, [r4, #0x5] add r0, r5, #0x0 add r3, r1, #0x0 bl FUN_0200AD38 mov r0, #0x1a add sp, #0x8 pop {r4-r6, pc} thumb_func_start FUN_020615F8 FUN_020615F8: ; 0x020615F8 push {r3-r5, lr} ldr r0, [r0, #0xc] add r5, r1, #0x0 bl FUN_02024DA0 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02248B60 add r1, r0, #0x0 ldrh r1, [r1, #0x0] add r0, r4, #0x0 bl FUN_020245F0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02061618 FUN_02061618: ; 0x02061618 push {r4-r5, lr} sub sp, #0x2c add r5, r0, #0x0 add r4, r2, #0x0 add r0, sp, #0x8 add r2, sp, #0x4 add r3, sp, #0x4 str r0, [sp, #0x0] add r0, r1, #0x0 add r1, sp, #0x4 add r2, #0x2 add r3, #0x3 bl FUN_02060E34 add r0, sp, #0x4 strh r4, [r0, #0x6] add r0, r5, #0x0 mov r1, #0x2 mov r2, #0x11 add r3, sp, #0x4 bl FUN_0202B4B0 add sp, #0x2c pop {r4-r5, pc} thumb_func_start FUN_02061648 FUN_02061648: ; 0x02061648 push {r4-r6, lr} sub sp, #0x8 add r6, r2, #0x0 add r5, r1, #0x0 add r0, r6, #0x0 bl FUN_02248B60 add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x0 add r2, r6, #0x0 bl FUN_02060DCC ldrb r0, [r4, #0x3] mov r1, #0x1 str r0, [sp, #0x0] ldrb r0, [r4, #0x4] str r0, [sp, #0x4] ldrh r2, [r4, #0x0] ldrb r3, [r4, #0x2] add r0, r5, #0x0 bl FUN_02060E70 ldrh r2, [r4, #0x6] add r0, r5, #0x0 mov r1, #0x2 bl FUN_0200AE38 mov r0, #0x1d add sp, #0x8 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02061688 FUN_02061688: ; 0x02061688 push {r3-r5, lr} add r5, r0, #0x0 add r0, r1, #0x0 bl FUN_02248B60 add r4, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_02024DA0 ldrh r1, [r4, #0x0] bl FUN_020245F0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020616A4 FUN_020616A4: ; 0x020616A4 push {r3-r5, lr} sub sp, #0x28 add r4, sp, #0x0 strh r1, [r4, #0x0] strb r2, [r4, #0x2] add r5, sp, #0x0 strh r3, [r4, #0x4] cmp r2, #0x5 bne _020616C4 mov r1, #0x3 mov r2, #0x6 add r3, r5, #0x0 bl FUN_02060D74 add sp, #0x28 pop {r3-r5, pc} _020616C4: cmp r2, #0x4 bne _020616D6 mov r1, #0x2 mov r2, #0x12 add r3, r5, #0x0 bl FUN_02060D74 add sp, #0x28 pop {r3-r5, pc} _020616D6: cmp r2, #0x0 bne _020616E4 mov r1, #0x2 mov r2, #0x13 add r3, r5, #0x0 bl FUN_02060D74 _020616E4: add sp, #0x28 pop {r3-r5, pc} thumb_func_start FUN_020616E8 FUN_020616E8: ; 0x020616E8 push {r4-r6, lr} sub sp, #0x8 add r6, r2, #0x0 add r5, r1, #0x0 add r0, r6, #0x0 bl FUN_02248B60 add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x0 add r2, r6, #0x0 bl FUN_02060DCC ldrh r2, [r4, #0x0] add r0, r5, #0x0 mov r1, #0x1 bl FUN_0200AE38 mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] mov r1, #0x2 ldrh r2, [r4, #0x4] add r0, r5, #0x0 add r3, r1, #0x0 bl FUN_0200AD38 mov r0, #0x1e add sp, #0x8 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02061728 FUN_02061728: ; 0x02061728 push {r4-r6, lr} add r6, r2, #0x0 add r5, r1, #0x0 add r0, r6, #0x0 bl FUN_02248B60 add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x0 add r2, r6, #0x0 bl FUN_02060DCC ldrh r2, [r4, #0x0] add r0, r5, #0x0 mov r1, #0x1 bl FUN_0200AE38 mov r0, #0x1f pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02061750 FUN_02061750: ; 0x02061750 push {r4-r6, lr} sub sp, #0x8 add r6, r2, #0x0 add r5, r1, #0x0 add r0, r6, #0x0 bl FUN_02248B60 add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x0 add r2, r6, #0x0 bl FUN_02060DCC ldrh r0, [r4, #0x0] mov r1, #0x4 sub r0, #0x95 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_020852E8 add r4, r0, #0x0 mov r1, #0x1 str r1, [sp, #0x0] mov r0, #0x2 str r0, [sp, #0x4] add r0, r5, #0x0 add r2, r4, #0x0 mov r3, #0x0 bl FUN_0200ABB4 add r0, r4, #0x0 bl FUN_02021A20 mov r0, #0x5 add sp, #0x8 pop {r4-r6, pc} thumb_func_start FUN_02061798 FUN_02061798: ; 0x02061798 push {r4-r5, lr} sub sp, #0x2c add r5, r0, #0x0 add r0, sp, #0x4 add r4, r1, #0x0 strb r2, [r0, #0x6] bl FUN_0201BA60 mov r1, #0x3 blx _u32_div_f add r0, sp, #0x4 strb r1, [r0, #0x5] add r0, sp, #0x8 add r2, sp, #0x4 add r3, sp, #0x4 str r0, [sp, #0x0] add r0, r4, #0x0 add r1, sp, #0x4 add r2, #0x2 add r3, #0x3 bl FUN_02060E34 add r0, r5, #0x0 mov r1, #0x2 mov r2, #0x15 add r3, sp, #0x4 bl FUN_0202B4B0 add sp, #0x2c pop {r4-r5, pc} .balign 4 thumb_func_start FUN_020617D8 FUN_020617D8: ; 0x020617D8 push {r4-r6, lr} sub sp, #0x8 add r6, r2, #0x0 add r5, r1, #0x0 add r0, r6, #0x0 bl FUN_02248B60 add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x0 add r2, r6, #0x0 bl FUN_02060DCC ldrb r2, [r4, #0x6] add r0, r5, #0x0 mov r1, #0x1 bl FUN_0200B534 ldrb r0, [r4, #0x3] mov r1, #0x2 str r0, [sp, #0x0] ldrb r0, [r4, #0x4] str r0, [sp, #0x4] ldrh r2, [r4, #0x0] ldrb r3, [r4, #0x2] add r0, r5, #0x0 bl FUN_02060E70 bl FUN_0201B9EC ldr r1, _02061830 ; =0x00005556 blx _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, #0x3 blo _02061826 bl ErrorHandling _02061826: add r4, #0x21 add r0, r4, #0x0 add sp, #0x8 pop {r4-r6, pc} nop _02061830: .word 0x00005556 thumb_func_start FUN_02061834 FUN_02061834: ; 0x02061834 push {r3-r5, lr} add r5, r0, #0x0 add r0, r1, #0x0 bl FUN_02248B60 add r4, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_02024DA0 ldrh r1, [r4, #0x0] bl FUN_020245F0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02061850 FUN_02061850: ; 0x02061850 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_02023924 str r0, [r5, #0x0] add r0, r4, #0x0 add r1, r5, #0x4 bl FUN_0202393C pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02061868 FUN_02061868: ; 0x02061868 push {r4-r6, lr} add r6, r2, #0x0 add r0, r6, #0x0 add r5, r1, #0x0 bl FUN_02248B60 add r4, r0, #0x0 bl FUN_02023924 ldr r1, [r4, #0x0] cmp r1, r0 beq _02061884 bl ErrorHandling _02061884: add r0, r5, #0x0 mov r1, #0x0 add r2, r6, #0x0 bl FUN_02060DCC add r0, r5, #0x0 mov r1, #0x1 add r2, r4, #0x4 bl FUN_0200ABC0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0206189C FUN_0206189C: ; 0x0206189C push {r4, lr} sub sp, #0x28 add r4, r0, #0x0 add r0, sp, #0x0 bl FUN_02061850 add r0, r4, #0x0 mov r1, #0x2 mov r2, #0x16 add r3, sp, #0x0 bl FUN_02060D74 add sp, #0x28 pop {r4, pc} thumb_func_start FUN_020618B8 FUN_020618B8: ; 0x020618B8 push {r4, lr} sub sp, #0x28 add r4, r0, #0x0 add r0, sp, #0x0 bl FUN_02061850 add r0, r4, #0x0 mov r1, #0x2 mov r2, #0x17 add r3, sp, #0x0 bl FUN_02060D74 add sp, #0x28 pop {r4, pc} thumb_func_start FUN_020618D4 FUN_020618D4: ; 0x020618D4 push {r3, lr} bl FUN_02061868 mov r0, #0x24 pop {r3, pc} .balign 4 thumb_func_start FUN_020618E0 FUN_020618E0: ; 0x020618E0 push {r3, lr} bl FUN_02061868 mov r0, #0x25 pop {r3, pc} .balign 4 thumb_func_start FUN_020618EC FUN_020618EC: ; 0x020618EC push {r3, lr} ldr r0, [r0, #0xc] bl FUN_0206F158 mov r1, #0x6b lsl r1, r1, #0x2 mov r2, #0x1 mov r3, #0x20 bl FUN_0206EE50 pop {r3, pc} .balign 4 thumb_func_start FUN_02061904 FUN_02061904: ; 0x02061904 push {r3-r6, lr} sub sp, #0x2c add r6, r0, #0x0 add r0, sp, #0x8 add r5, r1, #0x0 add r4, r3, #0x0 add r0, #0x2 add r1, sp, #0x4 add r3, sp, #0x8 str r0, [sp, #0x0] add r0, r2, #0x0 add r1, #0x2 add r2, sp, #0x8 add r3, #0x1 bl FUN_02060E34 add r0, sp, #0x4 strh r5, [r0, #0x0] strb r4, [r0, #0x7] add r0, r6, #0x0 mov r1, #0x3 mov r2, #0x1 add r3, sp, #0x4 bl FUN_02060D74 add sp, #0x2c pop {r3-r6, pc} .balign 4 thumb_func_start FUN_0206193C FUN_0206193C: ; 0x0206193C push {r4-r6, lr} sub sp, #0x8 add r6, r2, #0x0 add r5, r1, #0x0 add r0, r6, #0x0 bl FUN_02248B60 add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x0 add r2, r6, #0x0 bl FUN_02060DCC ldrb r0, [r4, #0x5] mov r1, #0x1 str r0, [sp, #0x0] ldrb r0, [r4, #0x6] str r0, [sp, #0x4] ldrh r2, [r4, #0x2] ldrb r3, [r4, #0x4] add r0, r5, #0x0 bl FUN_02060E70 mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] ldrh r2, [r4, #0x0] add r0, r5, #0x0 mov r1, #0x2 mov r3, #0x4 bl FUN_0200AD38 ldrb r0, [r4, #0x7] cmp r0, #0x0 bne _0206198A add sp, #0x8 mov r0, #0x1 pop {r4-r6, pc} _0206198A: mov r0, #0x0 add sp, #0x8 pop {r4-r6, pc} thumb_func_start FUN_02061990 FUN_02061990: ; 0x02061990 push {r3-r5, lr} add r5, r0, #0x0 add r0, r1, #0x0 bl FUN_02248B60 add r4, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_02024DA0 ldrh r1, [r4, #0x2] bl FUN_020245F0 cmp r0, #0x0 bne _020619B0 mov r0, #0x0 pop {r3-r5, pc} _020619B0: ldr r0, [r5, #0xc] bl FUN_020462AC mov r1, #0x2 mov r2, #0x11 bl FUN_0205F2E4 pop {r3-r5, pc} thumb_func_start FUN_020619C0 FUN_020619C0: ; 0x020619C0 push {r4-r5, lr} sub sp, #0x2c add r5, r0, #0x0 add r0, sp, #0x8 str r0, [sp, #0x0] add r0, r2, #0x0 add r2, sp, #0x4 add r3, sp, #0x4 add r4, r1, #0x0 add r1, sp, #0x4 add r2, #0x2 add r3, #0x3 bl FUN_02060E34 mov r1, #0x3 add r0, r5, #0x0 add r2, r1, #0x0 add r3, sp, #0x4 str r4, [sp, #0xc] bl FUN_02060D74 add sp, #0x2c pop {r4-r5, pc} .balign 4 thumb_func_start FUN_020619F0 FUN_020619F0: ; 0x020619F0 push {r4-r6, lr} sub sp, #0x8 add r6, r2, #0x0 add r5, r1, #0x0 add r0, r6, #0x0 bl FUN_02248B60 add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x0 add r2, r6, #0x0 bl FUN_02060DCC ldrb r0, [r4, #0x3] mov r1, #0x1 str r0, [sp, #0x0] ldrb r0, [r4, #0x4] str r0, [sp, #0x4] ldrh r2, [r4, #0x0] ldrb r3, [r4, #0x2] add r0, r5, #0x0 bl FUN_02060E70 mov r0, #0xfa ldr r1, [r4, #0x8] lsl r0, r0, #0x2 mul r0, r1 mov r1, #0xfe blx _u32_div_f add r0, r0, #0x5 mov r1, #0xa blx _u32_div_f mov r1, #0xa add r4, r0, #0x0 blx _u32_div_f add r2, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] add r0, r5, #0x0 mov r1, #0x2 mov r3, #0x3 bl FUN_0200AD38 add r0, r4, #0x0 mov r1, #0xa blx _u32_div_f mov r0, #0x0 add r2, r1, #0x0 str r0, [sp, #0x0] mov r3, #0x1 add r0, r5, #0x0 mov r1, #0x3 str r3, [sp, #0x4] bl FUN_0200AD38 mov r0, #0x2 add sp, #0x8 pop {r4-r6, pc} thumb_func_start FUN_02061A70 FUN_02061A70: ; 0x02061A70 push {r3-r5, lr} add r5, r0, #0x0 add r0, r1, #0x0 bl FUN_02248B60 add r4, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_02024DA0 ldrh r1, [r4, #0x0] bl FUN_020245F0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02061A8C FUN_02061A8C: ; 0x02061A8C push {r3-r5, lr} sub sp, #0x28 mov r4, #0xfa lsl r4, r4, #0x2 add r4, r1, r4 add r5, sp, #0x0 cmp r2, r4 blo _02061AAC str r1, [r5, #0x0] str r2, [r5, #0x4] str r3, [r5, #0x8] mov r1, #0x3 mov r2, #0x4 add r3, r5, #0x0 bl FUN_02060D74 _02061AAC: add sp, #0x28 pop {r3-r5, pc} thumb_func_start FUN_02061AB0 FUN_02061AB0: ; 0x02061AB0 push {r4-r6, lr} sub sp, #0x8 add r6, r2, #0x0 add r5, r1, #0x0 add r0, r6, #0x0 bl FUN_02248B60 add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x0 add r2, r6, #0x0 bl FUN_02060DCC mov r0, #0x0 str r0, [sp, #0x0] mov r1, #0x1 str r1, [sp, #0x4] ldr r2, [r4, #0x8] add r0, r5, #0x0 mov r3, #0xa bl FUN_0200AD38 mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] ldr r2, [r4, #0x0] add r0, r5, #0x0 mov r1, #0x2 mov r3, #0x6 bl FUN_0200AD38 mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] ldr r2, [r4, #0x4] add r0, r5, #0x0 mov r1, #0x3 mov r3, #0x6 bl FUN_0200AD38 mov r0, #0x3 add sp, #0x8 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02061B0C FUN_02061B0C: ; 0x02061B0C push {r3, lr} sub sp, #0x28 add r3, sp, #0x0 strh r1, [r3, #0x0] strh r2, [r3, #0x2] mov r1, #0x3 mov r2, #0x8 add r3, sp, #0x0 bl FUN_02060D74 add sp, #0x28 pop {r3, pc} thumb_func_start FUN_02061B24 FUN_02061B24: ; 0x02061B24 push {r4-r6, lr} sub sp, #0x8 add r6, r2, #0x0 add r5, r1, #0x0 add r0, r6, #0x0 bl FUN_02248B60 add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x0 add r2, r6, #0x0 bl FUN_02060DCC ldrh r2, [r4, #0x0] add r0, r5, #0x0 mov r1, #0x1 bl FUN_0200B1D4 mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] ldrh r2, [r4, #0x2] add r0, r5, #0x0 mov r1, #0x2 mov r3, #0x3 bl FUN_0200AD38 mov r0, #0x7 add sp, #0x8 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02061B64 FUN_02061B64: ; 0x02061B64 push {r3, lr} sub sp, #0x28 add r2, sp, #0x0 add r3, sp, #0x0 strh r1, [r2, #0x0] cmp r1, #0x1 bls _02061B7A mov r1, #0x3 mov r2, #0x9 bl FUN_02060D74 _02061B7A: add sp, #0x28 pop {r3, pc} .balign 4 thumb_func_start FUN_02061B80 FUN_02061B80: ; 0x02061B80 push {r4-r6, lr} sub sp, #0x8 add r6, r2, #0x0 add r5, r1, #0x0 add r0, r6, #0x0 bl FUN_02248B60 add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x0 add r2, r6, #0x0 bl FUN_02060DCC mov r0, #0x0 str r0, [sp, #0x0] mov r1, #0x1 str r1, [sp, #0x4] ldrh r2, [r4, #0x0] add r0, r5, #0x0 mov r3, #0x3 bl FUN_0200AD38 mov r0, #0x8 add sp, #0x8 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02061BB4 FUN_02061BB4: ; 0x02061BB4 push {r3, lr} ldr r0, [r0, #0xc] bl FUN_0206F158 mov r1, #0x6b lsl r1, r1, #0x2 mov r2, #0x1 mov r3, #0x20 bl FUN_0206EE50 pop {r3, pc} .balign 4 thumb_func_start FUN_02061BCC FUN_02061BCC: ; 0x02061BCC push {r3-r5, lr} sub sp, #0x28 add r5, r0, #0x0 ldr r0, [r5, #0xc] add r4, r1, #0x0 bl FUN_02022504 bl FUN_0202B85C ldrh r2, [r0, #0x0] add r1, sp, #0x0 add r3, sp, #0x0 strh r2, [r1, #0x0] ldrh r2, [r0, #0x2] strh r2, [r1, #0x2] mov r2, #0x0 strb r2, [r0, #0x0] strh r4, [r1, #0x4] add r0, r5, #0x0 mov r1, #0x1 mov r2, #0x2 bl FUN_02060D74 add sp, #0x28 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02061C00 FUN_02061C00: ; 0x02061C00 push {r4-r6, lr} sub sp, #0x8 add r6, r2, #0x0 add r0, r6, #0x0 add r5, r1, #0x0 bl FUN_02248B60 mov r1, #0x0 add r4, r0, #0x0 str r1, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] ldrh r2, [r4, #0x2] add r0, r5, #0x0 mov r3, #0x4 bl FUN_0200AD38 add r0, r5, #0x0 mov r1, #0x1 add r2, r6, #0x0 bl FUN_02060DCC ldrh r2, [r4, #0x4] add r0, r5, #0x0 mov r1, #0x2 bl FUN_0200B518 ldrb r0, [r4, #0x1] cmp r0, #0x1 bne _02061C42 add sp, #0x8 mov r0, #0x8 pop {r4-r6, pc} _02061C42: mov r0, #0x9 add sp, #0x8 pop {r4-r6, pc} thumb_func_start FUN_02061C48 FUN_02061C48: ; 0x02061C48 push {r3, lr} ldr r0, [r0, #0xc] bl FUN_020462AC mov r1, #0x2 mov r2, #0x11 bl FUN_0205F2E4 pop {r3, pc} .balign 4 thumb_func_start FUN_02061C5C FUN_02061C5C: ; 0x02061C5C push {r3-r6, lr} sub sp, #0x2c add r5, r0, #0x0 ldr r0, [r5, #0xc] add r4, r1, #0x0 bl FUN_0206BB1C bl FUN_0204A20C add r1, sp, #0x8 add r2, sp, #0x4 add r3, sp, #0x4 str r1, [sp, #0x0] add r1, sp, #0x4 add r2, #0x2 add r3, #0x3 add r6, r0, #0x0 bl FUN_02060E34 add r2, sp, #0x8 add r3, sp, #0x8 mov r0, #0x20 add r1, r6, #0x0 add r2, #0x1 add r3, #0x2 bl FUN_02060ECC add r0, sp, #0x4 strh r4, [r0, #0x1c] add r0, r5, #0x0 mov r1, #0x1 mov r2, #0x4 add r3, sp, #0x4 bl FUN_02060D74 add sp, #0x2c pop {r3-r6, pc} .balign 4 thumb_func_start FUN_02061CA8 FUN_02061CA8: ; 0x02061CA8 push {r4-r6, lr} sub sp, #0x8 add r6, r2, #0x0 add r0, r6, #0x0 add r5, r1, #0x0 bl FUN_02248B60 add r4, r0, #0x0 ldrb r0, [r4, #0x5] cmp r0, #0x0 beq _02061D00 add r0, r5, #0x0 mov r1, #0x0 add r2, r6, #0x0 bl FUN_02060DCC ldrb r0, [r4, #0x3] mov r1, #0x1 str r0, [sp, #0x0] ldrb r0, [r4, #0x4] str r0, [sp, #0x4] ldrh r2, [r4, #0x0] ldrb r3, [r4, #0x2] add r0, r5, #0x0 bl FUN_02060E70 ldrb r0, [r4, #0x3] mov r1, #0x2 add r2, r4, #0x6 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] ldrb r3, [r4, #0x2] add r0, r5, #0x0 bl FUN_02060D90 ldrh r2, [r4, #0x1c] add r0, r5, #0x0 mov r1, #0x3 bl FUN_0200B518 add sp, #0x8 mov r0, #0xa pop {r4-r6, pc} _02061D00: add r0, r5, #0x0 mov r1, #0x0 add r2, r6, #0x0 bl FUN_02060DCC ldrb r0, [r4, #0x3] mov r1, #0x1 str r0, [sp, #0x0] ldrb r0, [r4, #0x4] str r0, [sp, #0x4] ldrh r2, [r4, #0x0] ldrb r3, [r4, #0x2] add r0, r5, #0x0 bl FUN_02060E70 ldrh r2, [r4, #0x1c] add r0, r5, #0x0 mov r1, #0x3 bl FUN_0200B518 mov r0, #0xb add sp, #0x8 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02061D30 FUN_02061D30: ; 0x02061D30 push {r3-r5, lr} add r5, r0, #0x0 add r0, r1, #0x0 bl FUN_02248B60 add r4, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_02024DA0 ldrh r1, [r4, #0x0] bl FUN_020245F0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02061D4C FUN_02061D4C: ; 0x02061D4C push {r3-r5, lr} sub sp, #0x28 add r5, r0, #0x0 ldr r0, [r5, #0x4] add r4, r1, #0x0 ldr r0, [r0, #0x14] bl FUN_02252538 str r0, [sp, #0x0] add r0, sp, #0x0 strh r4, [r0, #0x4] add r0, r5, #0x0 mov r1, #0x1 mov r2, #0x6 add r3, sp, #0x0 bl FUN_02060D74 add sp, #0x28 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02061D74 FUN_02061D74: ; 0x02061D74 push {r4-r6, lr} add r6, r2, #0x0 add r5, r1, #0x0 add r0, r6, #0x0 bl FUN_02248B60 add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x0 add r2, r6, #0x0 bl FUN_02060DCC ldr r2, [r4, #0x0] add r0, r5, #0x0 mov r1, #0x1 bl FUN_0200B02C ldrh r2, [r4, #0x4] add r0, r5, #0x0 mov r1, #0x2 bl FUN_0200B518 mov r0, #0x10 pop {r4-r6, pc} thumb_func_start FUN_02061DA4 FUN_02061DA4: ; 0x02061DA4 push {r3-r5, lr} sub sp, #0x28 add r5, r0, #0x0 ldr r0, [r5, #0xc] add r4, r1, #0x0 bl FUN_02022504 bl FUN_0202B838 ldrh r2, [r0, #0x0] add r1, sp, #0x0 add r3, sp, #0x0 strh r2, [r1, #0x0] ldrh r2, [r0, #0x2] strh r2, [r1, #0x2] ldrh r2, [r0, #0x4] strh r2, [r1, #0x4] ldrh r2, [r0, #0x6] strh r2, [r1, #0x6] ldrh r2, [r0, #0x8] strh r2, [r1, #0x8] mov r2, #0x0 strb r2, [r0, #0x0] strh r4, [r1, #0xa] add r0, r5, #0x0 mov r1, #0x1 mov r2, #0x7 bl FUN_02060D74 add sp, #0x28 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02061DE4 FUN_02061DE4: ; 0x02061DE4 push {r4-r6, lr} sub sp, #0x8 add r6, r2, #0x0 add r0, r6, #0x0 add r5, r1, #0x0 bl FUN_02248B60 add r4, r0, #0x0 ldrb r0, [r4, #0x5] mov r1, #0x0 str r0, [sp, #0x0] ldrb r0, [r4, #0x6] str r0, [sp, #0x4] ldrh r2, [r4, #0x2] ldrb r3, [r4, #0x4] add r0, r5, #0x0 bl FUN_02060E70 ldrb r0, [r4, #0x8] bl FUN_02083298 add r2, r0, #0x0 add r0, r5, #0x0 mov r1, #0x1 bl FUN_0200B2AC ldrb r0, [r4, #0x7] bl FUN_02083268 add r2, r0, #0x0 add r0, r5, #0x0 mov r1, #0x2 bl FUN_0200B278 mov r0, #0x0 str r0, [sp, #0x0] mov r3, #0x1 str r3, [sp, #0x4] ldrb r2, [r4, #0x9] add r0, r5, #0x0 mov r1, #0x3 bl FUN_0200AD38 add r0, r5, #0x0 mov r1, #0x4 add r2, r6, #0x0 bl FUN_02060DCC ldrh r2, [r4, #0xa] add r0, r5, #0x0 mov r1, #0x5 bl FUN_0200B518 ldrb r0, [r4, #0x9] cmp r0, #0x1 bne _02061E5A add sp, #0x8 mov r0, #0x12 pop {r4-r6, pc} _02061E5A: mov r0, #0x11 add sp, #0x8 pop {r4-r6, pc} thumb_func_start FUN_02061E60 FUN_02061E60: ; 0x02061E60 push {r3-r5, lr} add r5, r0, #0x0 add r0, r1, #0x0 bl FUN_02248B60 add r4, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_02024DA0 ldrh r1, [r4, #0x2] bl FUN_020245F0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02061E7C FUN_02061E7C: ; 0x02061E7C push {r4, lr} sub sp, #0x28 add r4, r0, #0x0 add r0, sp, #0x0 strh r1, [r0, #0x2] ldr r0, [r4, #0xc] bl FUN_02027E24 mov r1, #0x0 bl FUN_02027008 bl FUN_020275D8 add r1, sp, #0x0 strh r0, [r1, #0x0] add r0, r4, #0x0 mov r1, #0x1 mov r2, #0x9 add r3, sp, #0x0 bl FUN_02060D74 add sp, #0x28 pop {r4, pc} .balign 4 thumb_func_start FUN_02061EAC FUN_02061EAC: ; 0x02061EAC push {r4-r6, lr} add r6, r2, #0x0 add r5, r1, #0x0 add r0, r6, #0x0 bl FUN_02248B60 add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x0 add r2, r6, #0x0 bl FUN_02060DCC ldrh r2, [r4, #0x0] add r0, r5, #0x0 mov r1, #0x1 bl FUN_02060EA0 ldrh r2, [r4, #0x2] add r0, r5, #0x0 mov r1, #0x2 bl FUN_0200B518 mov r0, #0x14 pop {r4-r6, pc} thumb_func_start FUN_02061EDC FUN_02061EDC: ; 0x02061EDC push {r3-r5, lr} add r5, r0, #0x0 add r0, r1, #0x0 bl FUN_02248B60 add r4, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_02024DA0 ldrh r1, [r4, #0x0] bl FUN_020245F0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02061EF8 FUN_02061EF8: ; 0x02061EF8 push {r3, lr} sub sp, #0x28 str r1, [sp, #0x0] mov r1, #0x1 mov r2, #0xa add r3, sp, #0x0 bl FUN_02060D74 add sp, #0x28 pop {r3, pc} thumb_func_start FUN_02061F0C FUN_02061F0C: ; 0x02061F0C push {r4-r6, lr} add r6, r2, #0x0 add r5, r1, #0x0 add r0, r6, #0x0 bl FUN_02248B60 add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x0 add r2, r6, #0x0 bl FUN_02060DCC ldr r0, [r4, #0x0] add r0, #0x14 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02061F2C FUN_02061F2C: ; 0x02061F2C push {r3-r5, lr} sub sp, #0x28 add r5, r0, #0x0 ldr r0, [r5, #0xc] add r4, r1, #0x0 bl FUN_02022504 bl FUN_0202B850 ldrb r2, [r0, #0x0] add r1, sp, #0x0 add r3, sp, #0x0 strb r2, [r1, #0x0] ldrb r2, [r0, #0x1] strb r2, [r1, #0x1] strh r4, [r1, #0x2] mov r1, #0x0 strb r1, [r0, #0x0] add r0, r5, #0x0 mov r1, #0x1 mov r2, #0xb bl FUN_02060D74 add sp, #0x28 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02061F60 FUN_02061F60: ; 0x02061F60 push {r3-r7, lr} add r7, r2, #0x0 add r0, r7, #0x0 add r5, r1, #0x0 bl FUN_02248B60 add r6, r0, #0x0 ldrb r4, [r6, #0x1] add r0, r5, #0x0 mov r1, #0x0 add r2, r7, #0x0 bl FUN_02060DCC add r0, r5, #0x0 mov r1, #0x1 add r2, r4, #0x0 bl FUN_0200B628 ldrh r2, [r6, #0x2] add r0, r5, #0x0 mov r1, #0x2 bl FUN_0200B518 sub r4, #0x19 cmp r4, #0x3 bhi _02061FB8 add r0, r4, r4 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02061FA0: ; jump table (using 16-bit offset) .short _02061FA8 - _02061FA0 - 2; case 0 .short _02061FAC - _02061FA0 - 2; case 1 .short _02061FB0 - _02061FA0 - 2; case 2 .short _02061FB4 - _02061FA0 - 2; case 3 _02061FA8: mov r0, #0x27 pop {r3-r7, pc} _02061FAC: mov r0, #0x28 pop {r3-r7, pc} _02061FB0: mov r0, #0x29 pop {r3-r7, pc} _02061FB4: mov r0, #0x2a pop {r3-r7, pc} _02061FB8: mov r0, #0x26 pop {r3-r7, pc} thumb_func_start FUN_02061FBC FUN_02061FBC: ; 0x02061FBC push {r4-r6, lr} sub sp, #0x28 add r5, r0, #0x0 ldr r0, [r5, #0xc] add r4, r1, #0x0 bl FUN_02022504 bl FUN_0202B844 add r6, r0, #0x0 add r3, sp, #0x0 mov r2, #0x12 _02061FD4: ldrh r1, [r6, #0x0] add r6, r6, #0x2 strh r1, [r3, #0x0] add r3, r3, #0x2 sub r2, r2, #0x1 bne _02061FD4 add r1, sp, #0x0 strh r4, [r1, #0x24] mov r1, #0x0 strb r1, [r0, #0x0] add r0, r5, #0x0 mov r1, #0x1 mov r2, #0xd add r3, sp, #0x0 bl FUN_02060D74 add sp, #0x28 pop {r4-r6, pc} thumb_func_start FUN_02061FF8 FUN_02061FF8: ; 0x02061FF8 push {r4-r6, lr} sub sp, #0x8 add r6, r2, #0x0 add r5, r1, #0x0 add r0, r6, #0x0 bl FUN_02248B60 add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x0 add r2, r6, #0x0 bl FUN_02060DCC ldrb r0, [r4, #0x5] mov r1, #0x1 str r0, [sp, #0x0] ldrb r0, [r4, #0x6] str r0, [sp, #0x4] ldrh r2, [r4, #0x2] ldrb r3, [r4, #0x4] add r0, r5, #0x0 bl FUN_02060E70 ldrb r2, [r4, #0x1e] add r0, r5, #0x0 mov r1, #0x2 bl FUN_0200AE04 ldrh r2, [r4, #0x24] add r0, r5, #0x0 mov r1, #0x5 bl FUN_0200B518 ldrb r0, [r4, #0x1f] cmp r0, #0x0 beq _0206204A cmp r0, #0x1 beq _02062062 cmp r0, #0x2 beq _02062050 b _02062072 _0206204A: add sp, #0x8 mov r0, #0x2d pop {r4-r6, pc} _02062050: add r4, #0x20 ldrb r2, [r4, #0x0] add r0, r5, #0x0 mov r1, #0x3 bl FUN_0200B660 add sp, #0x8 mov r0, #0x2c pop {r4-r6, pc} _02062062: ldrh r2, [r4, #0x22] add r0, r5, #0x0 mov r1, #0x3 bl FUN_0200AE38 add sp, #0x8 mov r0, #0x2e pop {r4-r6, pc} _02062072: mov r0, #0x2d add sp, #0x8 pop {r4-r6, pc} thumb_func_start FUN_02062078 FUN_02062078: ; 0x02062078 push {r3-r7, lr} mov r6, #0x0 ldr r5, _0206209C ; =0x020F7650 add r7, r0, #0x0 add r4, r6, #0x0 _02062082: ldrb r1, [r5, #0x0] add r0, r7, #0x0 bl FUN_02028828 cmp r0, #0x0 beq _02062090 add r4, r4, #0x1 _02062090: add r6, r6, #0x1 add r5, r5, #0x1 cmp r6, #0x5 blo _02062082 add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 _0206209C: .word 0x020F7650 thumb_func_start FUN_020620A0 FUN_020620A0: ; 0x020620A0 push {r3-r7, lr} sub sp, #0x10 str r0, [sp, #0x4] ldr r0, [r0, #0xc] str r1, [sp, #0x8] bl FUN_0202881C add r7, r0, #0x0 bl FUN_02062078 add r4, r0, #0x0 cmp r4, #0x0 bgt _020620BE bl ErrorHandling _020620BE: cmp r4, #0x1 ble _020620D0 bl FUN_0201BA60 add r1, r4, #0x0 blx _u32_div_f add r5, r1, #0x0 b _020620D2 _020620D0: mov r5, #0x0 _020620D2: ldr r4, _02062154 ; =0x020F7650 mov r6, #0x0 _020620D6: ldrb r1, [r4, #0x0] add r0, r7, #0x0 bl FUN_02028828 cmp r0, #0x0 beq _020620F0 cmp r5, #0x0 bne _020620EE ldr r0, _02062154 ; =0x020F7650 ldrb r0, [r0, r6] str r0, [sp, #0xc] b _020620F8 _020620EE: sub r5, r5, #0x1 _020620F0: add r6, r6, #0x1 add r4, r4, #0x1 cmp r6, #0x5 blo _020620D6 _020620F8: cmp r5, #0x0 beq _02062100 bl ErrorHandling _02062100: bl FUN_0201B9EC mov r1, #0xf1 lsl r1, r1, #0x4 blx _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, #0x11 blo _02062118 bl ErrorHandling _02062118: cmp r4, #0x9 blt _0206211E add r4, r4, #0x1 _0206211E: mov r0, #0x1 str r0, [sp, #0x0] ldr r1, [sp, #0x4] ldr r0, [sp, #0x8] ldr r1, [r1, #0xc] ldr r2, [sp, #0xc] mov r3, #0x0 bl FUN_0200B708 mov r0, #0x0 str r0, [sp, #0x0] ldr r1, [sp, #0x4] ldr r0, [sp, #0x8] ldr r1, [r1, #0xc] ldr r2, [sp, #0xc] mov r3, #0x1 bl FUN_0200B708 ldr r0, [sp, #0x8] mov r1, #0x2 add r2, r4, #0x0 bl FUN_0200AF18 mov r0, #0x0 add sp, #0x10 pop {r3-r7, pc} nop _02062154: .word 0x020F7650 thumb_func_start FUN_02062158 FUN_02062158: ; 0x02062158 push {r3, lr} ldr r0, [r0, #0xc] bl FUN_0202881C bl FUN_02062078 cmp r0, #0x0 beq _0206216C mov r0, #0x1 pop {r3, pc} _0206216C: mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_02062170 FUN_02062170: ; 0x02062170 push {r3-r7, lr} add r6, r0, #0x0 add r7, r1, #0x0 bl FUN_0201B9EC ldr r1, _02062234 ; =0x00003334 blx _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, #0x5 blo _0206218C bl ErrorHandling _0206218C: ldr r0, _02062238 ; =0x02105FBC lsl r1, r4, #0x1 ldrh r5, [r0, r1] add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_02034FE4 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02034824 add r2, r0, #0x0 add r0, r7, #0x0 mov r1, #0x0 bl FUN_0200AFF4 cmp r4, #0xb bhi _0206222C add r0, r4, r4 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _020621BC: ; jump table (using 16-bit offset) .short _020621D4 - _020621BC - 2; case 0 .short _0206220C - _020621BC - 2; case 1 .short _02062210 - _020621BC - 2; case 2 .short _02062214 - _020621BC - 2; case 3 .short _02062224 - _020621BC - 2; case 4 .short _02062218 - _020621BC - 2; case 5 .short _0206221C - _020621BC - 2; case 6 .short _02062220 - _020621BC - 2; case 7 .short _0206222C - _020621BC - 2; case 8 .short _0206222C - _020621BC - 2; case 9 .short _0206222C - _020621BC - 2; case 10 .short _02062228 - _020621BC - 2; case 11 _020621D4: bl FUN_0201B9EC lsl r0, r0, #0x2 lsr r4, r0, #0x10 cmp r4, #0x4 blo _020621E4 bl ErrorHandling _020621E4: cmp r4, #0x3 bhi _0206220C add r0, r4, r4 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _020621F4: ; jump table (using 16-bit offset) .short _020621FC - _020621F4 - 2; case 0 .short _02062200 - _020621F4 - 2; case 1 .short _02062204 - _020621F4 - 2; case 2 .short _02062208 - _020621F4 - 2; case 3 _020621FC: mov r0, #0x1 pop {r3-r7, pc} _02062200: mov r0, #0x2 pop {r3-r7, pc} _02062204: mov r0, #0x3 pop {r3-r7, pc} _02062208: mov r0, #0x4 pop {r3-r7, pc} _0206220C: mov r0, #0x5 pop {r3-r7, pc} _02062210: mov r0, #0x6 pop {r3-r7, pc} _02062214: mov r0, #0x7 pop {r3-r7, pc} _02062218: mov r0, #0x8 pop {r3-r7, pc} _0206221C: mov r0, #0x9 pop {r3-r7, pc} _02062220: mov r0, #0xa pop {r3-r7, pc} _02062224: mov r0, #0xb pop {r3-r7, pc} _02062228: mov r0, #0xc pop {r3-r7, pc} _0206222C: bl ErrorHandling mov r0, #0x1 pop {r3-r7, pc} .balign 4 _02062234: .word 0x00003334 _02062238: .word 0x02105FBC thumb_func_start FUN_0206223C FUN_0206223C: ; 0x0206223C mov r0, #0x1 bx lr thumb_func_start FUN_02062240 FUN_02062240: ; 0x02062240 push {r3-r4, lr} sub sp, #0x4 ldr r0, [r0, #0xc] add r4, r1, #0x0 bl FUN_0202A9B0 mov r1, #0x2 bl FUN_0202A990 add r1, sp, #0x0 add r1, #0x2 add r2, sp, #0x0 bl FUN_02245910 add r0, sp, #0x0 ldrh r0, [r0, #0x2] bl FUN_02034824 add r2, r0, #0x0 add r0, r4, #0x0 mov r1, #0x0 bl FUN_0200AFF4 add r2, sp, #0x0 ldrh r2, [r2, #0x0] add r0, r4, #0x0 mov r1, #0x1 bl FUN_02060EA0 mov r0, #0x1c add sp, #0x4 pop {r3-r4, pc} thumb_func_start FUN_02062280 FUN_02062280: ; 0x02062280 push {r3, lr} ldr r0, [r0, #0xc] bl FUN_0202A9B0 bl FUN_0202AA14 pop {r3, pc} .balign 4 thumb_func_start FUN_02062290 FUN_02062290: ; 0x02062290 push {r3-r4} ldr r4, _020622BC ; =0x020F78A4 mov r3, #0x0 _02062296: ldrb r2, [r4, #0x0] cmp r0, r2 bne _020622AE ldrb r2, [r4, #0x1] cmp r1, r2 bne _020622AE lsl r0, r3, #0x1 add r1, r3, r0 ldr r0, _020622C0 ; =0x020F78A6 ldrb r0, [r0, r1] pop {r3-r4} bx lr _020622AE: add r3, r3, #0x1 add r4, r4, #0x3 cmp r3, #0x6e blo _02062296 mov r0, #0x3 pop {r3-r4} bx lr .balign 4 _020622BC: .word 0x020F78A4 _020622C0: .word 0x020F78A6 thumb_func_start FUN_020622C4 FUN_020622C4: ; 0x020622C4 push {r4-r6, lr} add r6, r1, #0x0 bl FUN_0201B9EC mov r1, #0xf1 lsl r1, r1, #0x4 blx _s32_div_f lsl r0, r0, #0x10 lsr r5, r0, #0x10 cmp r5, #0x11 blo _020622E0 bl ErrorHandling _020622E0: cmp r5, #0x9 blt _020622E6 add r5, r5, #0x1 _020622E6: bl FUN_0201B9EC mov r1, #0xf1 lsl r1, r1, #0x4 blx _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, #0x11 blo _020622FE bl ErrorHandling _020622FE: cmp r4, #0x9 blt _02062304 add r4, r4, #0x1 _02062304: add r0, r6, #0x0 mov r1, #0x0 add r2, r5, #0x0 bl FUN_0200AF18 add r0, r6, #0x0 mov r1, #0x1 add r2, r4, #0x0 bl FUN_0200AF18 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02062290 cmp r0, #0x3 bhi _0206233C add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02062330: ; jump table (using 16-bit offset) .short _02062344 - _02062330 - 2; case 0 .short _02062340 - _02062330 - 2; case 1 .short _02062338 - _02062330 - 2; case 2 .short _0206233C - _02062330 - 2; case 3 _02062338: mov r0, #0x1e pop {r4-r6, pc} _0206233C: mov r0, #0x1f pop {r4-r6, pc} _02062340: mov r0, #0x20 pop {r4-r6, pc} _02062344: mov r0, #0x21 pop {r4-r6, pc} thumb_func_start FUN_02062348 FUN_02062348: ; 0x02062348 mov r0, #0x1 bx lr thumb_func_start FUN_0206234C FUN_0206234C: ; 0x0206234C push {r3-r7, lr} sub sp, #0x88 ldr r0, [r0, #0xc] bl FUN_020462AC ldr r4, _020623E8 ; =0x020F7658 add r7, r0, #0x0 mov r6, #0x0 add r5, sp, #0x0 _0206235E: ldrh r2, [r4, #0x0] add r0, r7, #0x0 mov r1, #0x2 bl FUN_0205F2E4 strb r0, [r5, #0x0] add r6, r6, #0x1 add r4, r4, #0x2 add r5, r5, #0x1 cmp r6, #0x12 blo _0206235E mov r3, #0x0 add r2, sp, #0x10 ldr r0, _020623EC ; =0x020F79EE add r4, r3, #0x0 add r1, r3, #0x0 add r2, #0x2 add r6, sp, #0x0 _02062382: lsl r5, r1, #0x1 ldrh r5, [r0, r5] ldrb r5, [r6, r5] cmp r5, #0x0 beq _02062392 strb r3, [r2, #0x0] add r2, r2, #0x1 add r4, r4, #0x1 _02062392: add r3, r3, #0x1 add r1, r1, #0x2 cmp r3, #0x76 blo _02062382 lsl r0, r4, #0x10 lsr r0, r0, #0x10 bne _020623A4 bl ErrorHandling _020623A4: lsl r0, r4, #0x10 lsr r0, r0, #0x10 cmp r0, #0x1 bhi _020623B0 mov r5, #0x0 b _020623DE _020623B0: bl FUN_0201B9EC add r5, r0, #0x0 lsl r1, r4, #0x10 ldr r0, _020623F0 ; =0x0000FFFF lsr r1, r1, #0x10 blx _s32_div_f add r1, r0, #0x0 add r1, r1, #0x1 lsl r1, r1, #0x10 add r0, r5, #0x0 lsr r1, r1, #0x10 blx _s32_div_f lsl r0, r0, #0x10 lsr r5, r0, #0x10 lsl r0, r4, #0x10 lsr r0, r0, #0x10 cmp r5, r0 blo _020623DE bl ErrorHandling _020623DE: add r0, sp, #0x10 add r0, #0x2 ldrb r0, [r0, r5] add sp, #0x88 pop {r3-r7, pc} .balign 4 _020623E8: .word 0x020F7658 _020623EC: .word 0x020F79EE _020623F0: .word 0x0000FFFF thumb_func_start FUN_020623F4 FUN_020623F4: ; 0x020623F4 push {r4-r6, lr} add r4, r0, #0x0 ldr r0, [r4, #0xc] add r5, r1, #0x0 bl FUN_02024ECC add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_0206234C add r4, r0, #0x0 lsl r0, r4, #0x1 add r0, r0, #0x1 lsl r1, r0, #0x1 ldr r0, _0206245C ; =0x020F79EE ldrh r0, [r0, r1] bl FUN_02034824 add r2, r0, #0x0 add r0, r5, #0x0 mov r1, #0x0 bl FUN_0200AFF4 add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_02025238 cmp r0, #0x5 bhi _02062456 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0206243A: ; jump table (using 16-bit offset) .short _02062456 - _0206243A - 2; case 0 .short _02062456 - _0206243A - 2; case 1 .short _02062452 - _0206243A - 2; case 2 .short _0206244E - _0206243A - 2; case 3 .short _0206244A - _0206243A - 2; case 4 .short _02062446 - _0206243A - 2; case 5 _02062446: mov r0, #0x23 pop {r4-r6, pc} _0206244A: mov r0, #0x24 pop {r4-r6, pc} _0206244E: mov r0, #0x25 pop {r4-r6, pc} _02062452: mov r0, #0x26 pop {r4-r6, pc} _02062456: mov r0, #0x27 pop {r4-r6, pc} nop _0206245C: .word 0x020F79EE thumb_func_start FUN_02062460 FUN_02062460: ; 0x02062460 push {r3, lr} ldr r0, [r0, #0xc] bl FUN_020462AC mov r1, #0x2 mov r2, #0x9 bl FUN_0205F2E4 pop {r3, pc} .balign 4 thumb_func_start FUN_02062474 FUN_02062474: ; 0x02062474 push {r3-r6, lr} sub sp, #0xc mov r0, #0x4 add r6, r1, #0x0 str r0, [sp, #0x0] add r0, sp, #0x8 mov r1, #0x7e mov r2, #0x2 mov r3, #0x0 bl FUN_02006548 ldr r0, [sp, #0x8] lsl r0, r0, #0x10 lsr r4, r0, #0x10 bne _02062496 bl ErrorHandling _02062496: cmp r4, #0x1 bhi _0206249E mov r5, #0x0 b _020624C6 _0206249E: bl FUN_0201B9EC add r5, r0, #0x0 ldr r0, _02062504 ; =0x0000FFFF add r1, r4, #0x0 blx _s32_div_f add r1, r0, #0x0 add r1, r1, #0x1 lsl r1, r1, #0x10 add r0, r5, #0x0 lsr r1, r1, #0x10 blx _s32_div_f lsl r0, r0, #0x10 lsr r5, r0, #0x10 cmp r5, r4 blo _020624C6 bl ErrorHandling _020624C6: lsl r4, r5, #0x2 add r0, sp, #0x4 mov r2, #0x2 add r0, #0x2 mov r1, #0x7e add r3, r4, #0x4 str r2, [sp, #0x0] bl FUN_02006548 mov r2, #0x2 add r0, sp, #0x4 mov r1, #0x7e add r3, r4, #0x6 str r2, [sp, #0x0] bl FUN_02006548 add r2, sp, #0x4 ldrh r2, [r2, #0x2] add r0, r6, #0x0 mov r1, #0x0 bl FUN_02060EA0 add r2, sp, #0x4 ldrh r2, [r2, #0x0] add r0, r6, #0x0 mov r1, #0x1 bl FUN_0200AE38 mov r0, #0x2a add sp, #0xc pop {r3-r6, pc} .balign 4 _02062504: .word 0x0000FFFF thumb_func_start FUN_02062508 FUN_02062508: ; 0x02062508 mov r0, #0x1 bx lr thumb_func_start FUN_0206250C FUN_0206250C: ; 0x0206250C push {r4-r6, lr} mov r4, #0x0 add r6, r0, #0x0 add r5, r4, #0x0 _02062514: add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_02027098 cmp r0, #0x1 bne _02062522 add r5, r5, #0x1 _02062522: add r4, r4, #0x1 cmp r4, #0xb blt _02062514 add r0, r5, #0x0 pop {r4-r6, pc} thumb_func_start FUN_0206252C FUN_0206252C: ; 0x0206252C push {r4-r7, lr} sub sp, #0xc ldr r0, [r0, #0xc] add r7, r1, #0x0 bl FUN_02027E24 add r6, r0, #0x0 bl FUN_0206250C add r4, r0, #0x0 cmp r4, #0x1 ble _02062552 bl FUN_0201BA60 add r1, r4, #0x0 blx _u32_div_f add r5, r1, #0x0 b _02062554 _02062552: mov r5, #0x0 _02062554: mov r4, #0x0 _02062556: add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_02027098 cmp r0, #0x1 bne _0206256C cmp r5, #0x0 bne _0206256A str r4, [sp, #0x8] b _02062572 _0206256A: sub r5, r5, #0x1 _0206256C: add r4, r4, #0x1 cmp r4, #0xb blt _02062556 _02062572: cmp r4, #0xb blt _0206257A bl ErrorHandling _0206257A: ldr r1, [sp, #0x8] add r0, r6, #0x0 bl FUN_02027008 add r5, r0, #0x0 mov r0, #0x8 mov r1, #0x4 bl FUN_020219F4 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0202763C add r6, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02027608 add r0, r5, #0x0 bl FUN_020276A8 mov r1, #0x1 str r1, [sp, #0x0] str r0, [sp, #0x4] add r0, r7, #0x0 mov r1, #0x0 add r2, r4, #0x0 add r3, r6, #0x0 bl FUN_0200ABB4 add r0, r4, #0x0 bl FUN_02021A20 add r0, r5, #0x0 bl FUN_0202769C add r2, r0, #0x0 add r0, r7, #0x0 mov r1, #0x1 bl FUN_0200B518 mov r0, #0x32 add sp, #0xc pop {r4-r7, pc} .balign 4 thumb_func_start FUN_020625D4 FUN_020625D4: ; 0x020625D4 push {r3, lr} ldr r0, [r0, #0xc] bl FUN_02027E24 bl FUN_0206250C cmp r0, #0x0 beq _020625E8 mov r0, #0x1 pop {r3, pc} _020625E8: mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_020625EC FUN_020625EC: ; 0x020625EC push {r3-r7, lr} add r7, r0, #0x0 add r5, r1, #0x0 str r2, [sp, #0x0] mov r0, #0x3 mov r1, #0x50 lsl r2, r0, #0xd ldr r6, [r5, #0xc] bl FUN_0201681C mov r1, #0x2d mov r0, #0x50 lsl r1, r1, #0x4 bl FUN_02016998 mov r2, #0x2d mov r1, #0x0 lsl r2, r2, #0x4 add r4, r0, #0x0 blx MI_CpuFill8 mov r0, #0x50 str r0, [r4, #0x0] ldr r0, [sp, #0x0] mov r1, #0x3 blx _s32_div_f strb r1, [r4, #0x16] ldr r0, [sp, #0x0] mov r1, #0x3 blx _s32_div_f strb r0, [r4, #0x17] ldrb r0, [r4, #0x16] bl FUN_0202B870 strb r0, [r4, #0x18] ldrb r0, [r4, #0x16] bl FUN_0202B87C strb r0, [r4, #0x19] add r0, r4, #0x0 add r0, #0xcc str r5, [r0, #0x0] add r0, r4, #0x0 ldr r1, [r5, #0x8] add r0, #0xd0 str r1, [r0, #0x0] add r0, r6, #0x0 bl FUN_0202B8E4 mov r1, #0x2a lsl r1, r1, #0x4 str r0, [r4, r1] add r0, r6, #0x0 bl LoadPlayerDataAddress bl FUN_02024FF4 strh r0, [r4, #0x1a] add r0, r6, #0x0 bl LoadPlayerDataAddress bl FUN_02025084 strh r0, [r4, #0x1c] str r4, [r7, #0x8] mov r0, #0x1 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02062678 FUN_02062678: ; 0x02062678 push {r3-r7, lr} sub sp, #0x8 ldr r4, [r0, #0x8] mov r0, #0x0 str r0, [sp, #0x4] ldrb r0, [r4, #0x18] cmp r0, #0x0 ble _020626FE ldr r0, [sp, #0x4] str r0, [sp, #0x0] _0206268C: mov r0, #0xb lsl r0, r0, #0x6 ldr r2, [r4, r0] ldr r0, [sp, #0x0] mov r6, #0x0 add r1, r2, r0 ldr r0, [r2, r0] add r7, r6, #0x0 cmp r0, #0x0 ble _020626EC add r5, r6, #0x0 _020626A2: add r0, r1, #0x4 add r1, r0, r5 ldrb r0, [r1, #0x6] mov r12, r0 cmp r0, #0xff beq _020626D6 ldrh r0, [r1, #0x4] cmp r0, #0x0 bne _020626D6 ldrb r2, [r4, #0x17] ldrb r3, [r4, #0x19] mov r1, #0xd mul r1, r2 add r2, r3, r1 ldr r1, [sp, #0x4] mov r0, #0x2a add r1, r1, r2 mov r2, r12 lsl r0, r0, #0x4 sub r2, r2, r6 lsl r2, r2, #0x18 ldr r0, [r4, r0] lsr r2, r2, #0x18 bl FUN_0202B8F0 add r6, r6, #0x1 _020626D6: mov r0, #0xb lsl r0, r0, #0x6 ldr r0, [r4, r0] ldr r1, [sp, #0x0] ldr r2, [sp, #0x0] add r1, r1, r0 ldr r0, [r2, r0] add r7, r7, #0x1 add r5, #0x8 cmp r7, r0 blt _020626A2 _020626EC: ldr r0, [sp, #0x0] ldrb r1, [r4, #0x18] add r0, #0x3c str r0, [sp, #0x0] ldr r0, [sp, #0x4] add r0, r0, #0x1 str r0, [sp, #0x4] cmp r0, r1 blt _0206268C _020626FE: add r0, r4, #0x0 ldr r5, [r4, #0x0] bl FUN_02016A18 mov r2, #0x2d add r0, r4, #0x0 mov r1, #0x0 lsl r2, r2, #0x4 blx MI_CpuFill8 add r0, r5, #0x0 bl FUN_020168D0 mov r0, #0xc add sp, #0x8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02062720 FUN_02062720: ; 0x02062720 push {r4, lr} add r4, r0, #0x0 bl FUN_02062A70 add r0, r4, #0x0 bl FUN_02062C80 add r0, r4, #0x0 bl FUN_02062DB0 add r0, r4, #0x0 bl FUN_02062F3C mov r0, #0x2 pop {r4, pc} .balign 4 thumb_func_start FUN_02062740 FUN_02062740: ; 0x02062740 push {r4, lr} add r4, r0, #0x0 bl FUN_02062FFC add r0, r4, #0x0 bl FUN_02062EC4 add r0, r4, #0x0 bl FUN_02062D38 add r0, r4, #0x0 bl FUN_02062C4C mov r0, #0xb pop {r4, pc} .balign 4 thumb_func_start FUN_02062760 FUN_02062760: ; 0x02062760 push {r3, lr} ldrh r1, [r0, #0x22] ldrh r2, [r0, #0x24] bl FUN_02063028 mov r0, #0x3 pop {r3, pc} .balign 4 thumb_func_start FUN_02062770 FUN_02062770: ; 0x02062770 push {r4, lr} add r4, r0, #0x0 add r0, #0xc0 ldr r0, [r0, #0x0] bl FUN_02001204 ldr r1, _020627C8 ; =0x021C48B8 ldr r3, [r1, #0x48] mov r1, #0x2 tst r1, r3 beq _02062790 add r0, r4, #0x0 bl FUN_02063178 mov r0, #0xa pop {r4, pc} _02062790: mov r2, #0x1 add r1, r3, #0x0 tst r1, r2 bne _0206279C mov r0, #0x3 pop {r4, pc} _0206279C: sub r1, r2, #0x3 cmp r0, r1 beq _020627AE sub r1, r2, #0x2 cmp r0, r1 beq _020627AE ldr r1, _020627CC ; =0x0000FFFF cmp r0, r1 bne _020627B8 _020627AE: add r0, r4, #0x0 bl FUN_02063178 mov r0, #0xa pop {r4, pc} _020627B8: strb r0, [r4, #0x1f] mov r0, #0x0 strh r0, [r4, #0x28] add r0, r4, #0x0 bl FUN_02063178 mov r0, #0x4 pop {r4, pc} .balign 4 _020627C8: .word 0x021C48B8 _020627CC: .word 0x0000FFFF thumb_func_start FUN_020627D0 FUN_020627D0: ; 0x020627D0 push {r3, lr} ldrh r1, [r0, #0x28] bl FUN_02063430 mov r0, #0x5 pop {r3, pc} thumb_func_start FUN_020627DC FUN_020627DC: ; 0x020627DC push {r3, lr} ldr r1, _02062804 ; =0x021C48B8 ldr r2, [r1, #0x48] mov r1, #0x3 tst r1, r2 beq _020627F0 bl FUN_020634DC mov r0, #0x2 pop {r3, pc} _020627F0: mov r1, #0x4 tst r1, r2 beq _020627FE bl FUN_02063238 mov r0, #0x6 pop {r3, pc} _020627FE: mov r0, #0x5 pop {r3, pc} nop _02062804: .word 0x021C48B8 thumb_func_start FUN_02062808 FUN_02062808: ; 0x02062808 push {r4, lr} ldr r1, _020628B8 ; =0x021C48B8 mov r2, #0x2 ldr r1, [r1, #0x48] add r4, r0, #0x0 tst r2, r1 beq _0206281E bl FUN_02063264 mov r0, #0x5 pop {r4, pc} _0206281E: mov r0, #0x1 tst r0, r1 beq _0206285C mov r0, #0x0 str r0, [r4, #0xc] mov r0, #0xb lsl r0, r0, #0x6 ldrb r2, [r4, #0x1f] mov r1, #0x3c ldr r3, [r4, r0] mul r1, r2 add r1, r3, r1 add r3, r1, #0x4 ldrh r1, [r4, #0x28] add r2, r4, r1 add r1, r0, #0x0 add r1, #0x8 ldrb r1, [r2, r1] lsl r1, r1, #0x3 add r2, r3, r1 add r1, r0, #0x4 str r2, [r4, r1] add r0, r0, #0x4 ldr r0, [r4, r0] ldrb r0, [r0, #0x6] cmp r0, #0xff bne _02062858 mov r0, #0x8 pop {r4, pc} _02062858: mov r0, #0x7 pop {r4, pc} _0206285C: mov r0, #0x40 tst r0, r1 beq _02062882 ldrh r0, [r4, #0x28] cmp r0, #0x0 beq _02062882 sub r0, r0, #0x1 strh r0, [r4, #0x28] ldrh r2, [r4, #0x28] mov r0, #0xa6 lsl r0, r0, #0x2 lsl r2, r2, #0x4 add r2, #0x10 lsl r2, r2, #0x10 ldr r0, [r4, r0] mov r1, #0x7e asr r2, r2, #0x10 bl FUN_0200C714 _02062882: ldr r0, _020628B8 ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #0x80 tst r0, r1 beq _020628B4 add r0, r4, #0x0 add r0, #0x21 ldrb r0, [r0, #0x0] ldrh r1, [r4, #0x28] sub r0, r0, #0x1 cmp r1, r0 bge _020628B4 add r0, r1, #0x1 strh r0, [r4, #0x28] ldrh r2, [r4, #0x28] mov r0, #0xa6 lsl r0, r0, #0x2 lsl r2, r2, #0x4 add r2, #0x10 lsl r2, r2, #0x10 ldr r0, [r4, r0] mov r1, #0x7e asr r2, r2, #0x10 bl FUN_0200C714 _020628B4: mov r0, #0x6 pop {r4, pc} .balign 4 _020628B8: .word 0x021C48B8 thumb_func_start FUN_020628BC FUN_020628BC: ; 0x020628BC push {r3-r4, lr} sub sp, #0x4 add r4, r0, #0x0 ldr r0, [r4, #0x0] ldr r1, _020628E0 ; =0x020F7BC8 str r0, [sp, #0x0] add r0, r4, #0x0 add r0, #0xd0 ldr r0, [r0, #0x0] ldr r2, _020628E4 ; =0x000003D9 mov r3, #0xb bl FUN_02002198 add r4, #0xc8 str r0, [r4, #0x0] add sp, #0x4 pop {r3-r4, pc} nop _020628E0: .word 0x020F7BC8 _020628E4: .word 0x000003D9 thumb_func_start FUN_020628E8 FUN_020628E8: ; 0x020628E8 push {r4, lr} sub sp, #0x10 add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x3 bgt _0206290C cmp r1, #0x0 blt _020629CE add r2, r1, r1 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _02062904: ; jump table (using 16-bit offset) .short _02062912 - _02062904 - 2; case 0 .short _0206294E - _02062904 - 2; case 1 .short _02062966 - _02062904 - 2; case 2 .short _0206298C - _02062904 - 2; case 3 _0206290C: cmp r1, #0xff beq _020629B2 b _020629CE _02062912: add r0, #0xe4 mov r1, #0xff bl FUN_02019620 mov r3, #0x0 str r3, [sp, #0x0] ldrh r0, [r4, #0x1a] add r2, r4, #0x0 add r2, #0x98 str r0, [sp, #0x4] ldr r0, _020629D4 ; =0x0001020F mov r1, #0x1 str r0, [sp, #0x8] str r3, [sp, #0xc] add r0, r4, #0x0 ldr r2, [r2, #0x0] add r0, #0xe4 bl FUN_0201BDE0 strb r0, [r4, #0x1e] mov r0, #0xa6 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x2 bl FUN_0200C66C ldr r0, [r4, #0xc] add r0, r0, #0x1 str r0, [r4, #0xc] b _020629CE _0206294E: ldrb r0, [r4, #0x1e] bl FUN_0201BD70 cmp r0, #0x0 bne _020629CE add r0, r4, #0x0 bl FUN_020628BC ldr r0, [r4, #0xc] add r0, r0, #0x1 str r0, [r4, #0xc] b _020629CE _02062966: add r0, #0xc8 ldr r0, [r0, #0x0] ldr r1, [r4, #0x0] bl FUN_020021AC cmp r0, #0x0 beq _0206297E mov r1, #0x1 mvn r1, r1 cmp r0, r1 beq _02062986 b _020629CE _0206297E: ldr r0, [r4, #0xc] add r0, r0, #0x1 str r0, [r4, #0xc] b _020629CE _02062986: mov r0, #0xff str r0, [r4, #0xc] b _020629CE _0206298C: mov r1, #0xb1 lsl r1, r1, #0x2 ldr r1, [r4, r1] mov r2, #0x0 strh r2, [r1, #0x4] mov r1, #0x1 bl FUN_020632A4 mov r0, #0xa6 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x1 bl FUN_0200C66C mov r0, #0x0 str r0, [r4, #0xc] add sp, #0x10 mov r0, #0x6 pop {r4, pc} _020629B2: add r0, r4, #0x0 bl FUN_02063208 mov r0, #0xa6 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x1 bl FUN_0200C66C mov r0, #0x0 str r0, [r4, #0xc] add sp, #0x10 mov r0, #0x6 pop {r4, pc} _020629CE: mov r0, #0x7 add sp, #0x10 pop {r4, pc} .balign 4 _020629D4: .word 0x0001020F thumb_func_start FUN_020629D8 FUN_020629D8: ; 0x020629D8 push {r4, lr} sub sp, #0x10 add r4, r0, #0x0 ldr r1, [r4, #0xc] cmp r1, #0x0 beq _020629EE cmp r1, #0x1 beq _02062A2A cmp r1, #0x2 beq _02062A3C b _02062A60 _020629EE: add r0, #0xe4 mov r1, #0xff bl FUN_02019620 mov r3, #0x0 str r3, [sp, #0x0] ldrh r0, [r4, #0x1a] add r2, r4, #0x0 add r2, #0x9c str r0, [sp, #0x4] ldr r0, _02062A68 ; =0x0001020F mov r1, #0x1 str r0, [sp, #0x8] str r3, [sp, #0xc] add r0, r4, #0x0 ldr r2, [r2, #0x0] add r0, #0xe4 bl FUN_0201BDE0 strb r0, [r4, #0x1e] mov r0, #0xa6 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x2 bl FUN_0200C66C ldr r0, [r4, #0xc] add r0, r0, #0x1 str r0, [r4, #0xc] b _02062A60 _02062A2A: ldrb r0, [r4, #0x1e] bl FUN_0201BD70 cmp r0, #0x0 bne _02062A60 ldr r0, [r4, #0xc] add r0, r0, #0x1 str r0, [r4, #0xc] b _02062A60 _02062A3C: ldr r1, _02062A6C ; =0x021C48B8 ldr r2, [r1, #0x48] mov r1, #0x3 tst r1, r2 beq _02062A60 bl FUN_02063208 mov r0, #0xa6 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x1 bl FUN_0200C66C mov r0, #0x0 str r0, [r4, #0xc] add sp, #0x10 mov r0, #0x6 pop {r4, pc} _02062A60: mov r0, #0x8 add sp, #0x10 pop {r4, pc} nop _02062A68: .word 0x0001020F _02062A6C: .word 0x021C48B8 thumb_func_start FUN_02062A70 FUN_02062A70: ; 0x02062A70 push {r4-r7, lr} sub sp, #0x14 add r4, r0, #0x0 ldrb r2, [r4, #0x18] add r5, r1, #0x0 mov r1, #0x3c ldr r0, [r4, #0x0] mul r1, r2 bl FUN_02016998 mov r1, #0xb lsl r1, r1, #0x6 str r0, [r4, r1] ldr r0, [r4, r1] ldrb r3, [r4, #0x18] mov r2, #0x3c mov r1, #0x0 mul r2, r3 blx MI_CpuFill8 ldrb r1, [r4, #0x16] ldr r2, [r4, #0x0] add r0, r5, #0x0 bl FUN_0202BD6C mov r1, #0xa9 lsl r1, r1, #0x2 str r0, [r4, r1] mov r0, #0x0 str r0, [sp, #0x10] ldrb r0, [r4, #0x18] cmp r0, #0x0 bgt _02062AB4 b _02062C48 _02062AB4: ldr r0, [sp, #0x10] str r4, [sp, #0x8] str r0, [sp, #0x4] add r5, r0, #0x0 _02062ABC: ldrb r2, [r4, #0x17] ldrb r3, [r4, #0x19] mov r1, #0xd mul r1, r2 mov r0, #0x2a add r2, r3, r1 ldr r1, [sp, #0x10] lsl r0, r0, #0x4 add r1, r1, r2 ldr r0, [r4, r0] ldr r2, [r4, #0x0] bl FUN_0202BDF0 mov r1, #0xaa mov r3, #0x0 ldr r2, [sp, #0x8] lsl r1, r1, #0x2 str r0, [r2, r1] add r0, r2, #0x0 ldr r0, [r0, r1] mov r12, r3 str r0, [sp, #0xc] ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02062B22 sub r0, r1, #0x4 ldr r0, [r4, r0] add r3, r1, #0x0 add r2, r0, #0x4 ldr r0, [sp, #0x4] add r3, #0x18 add r2, r2, r0 add r0, r1, #0x0 add r0, #0x18 ldr r0, [r4, r0] add r0, r0, r5 str r2, [r0, #0x4] add r0, r1, #0x0 add r0, #0x18 ldr r0, [r4, r0] mov r2, #0x1 add r0, r0, r5 strh r2, [r0, #0x8] ldr r3, [r4, r3] mov r0, #0xff add r3, r3, r5 add r1, #0x18 strb r0, [r3, #0xa] ldr r0, [r4, r1] str r2, [r0, r5] b _02062C2C _02062B22: add r2, r3, #0x0 cmp r0, #0x0 ble _02062BE4 ldr r0, [sp, #0xc] str r0, [sp, #0x0] add r7, r0, #0x4 _02062B2E: mov r0, r12 cmp r0, #0x0 bne _02062BA8 mov r0, #0xa9 lsl r0, r0, #0x2 ldr r0, [r4, r0] ldr r1, [sp, #0x4] add r1, r1, r0 ldr r6, [r1, #0x8] ldr r1, [sp, #0x0] ldr r1, [r1, #0x8] cmp r6, r1 blo _02062BA8 add r6, r0, #0x4 ldr r0, [sp, #0x4] lsl r1, r3, #0x3 add r0, r6, r0 mov r6, #0xb lsl r6, r6, #0x6 ldr r6, [r4, r6] add r3, r3, #0x1 add r6, r5, r6 add r6, r1, r6 str r0, [r6, #0x4] mov r0, #0xb lsl r0, r0, #0x6 ldr r0, [r4, r0] add r0, r5, r0 add r6, r1, r0 mov r0, #0x1 strh r0, [r6, #0x8] mov r0, #0xb lsl r0, r0, #0x6 ldr r0, [r4, r0] lsl r6, r3, #0x3 add r0, r5, r0 add r1, r1, r0 mov r0, #0xff strb r0, [r1, #0xa] mov r0, #0xb lsl r0, r0, #0x6 ldr r0, [r4, r0] add r0, r5, r0 add r0, r6, r0 str r7, [r0, #0x4] mov r0, #0xb lsl r0, r0, #0x6 ldr r0, [r4, r0] add r0, r5, r0 add r1, r6, r0 mov r0, #0x1 strh r0, [r1, #0x8] mov r0, #0xb lsl r0, r0, #0x6 ldr r0, [r4, r0] add r0, r5, r0 add r0, r6, r0 strb r2, [r0, #0xa] mov r0, #0x1 mov r12, r0 b _02062BD0 _02062BA8: mov r0, #0xb lsl r0, r0, #0x6 ldr r0, [r4, r0] lsl r6, r3, #0x3 add r0, r5, r0 add r0, r6, r0 str r7, [r0, #0x4] mov r0, #0xb lsl r0, r0, #0x6 ldr r0, [r4, r0] add r0, r5, r0 add r1, r6, r0 mov r0, #0x1 strh r0, [r1, #0x8] mov r0, #0xb lsl r0, r0, #0x6 ldr r0, [r4, r0] add r0, r5, r0 add r0, r6, r0 strb r2, [r0, #0xa] _02062BD0: ldr r0, [sp, #0x0] add r2, r2, #0x1 add r0, #0xc str r0, [sp, #0x0] ldr r0, [sp, #0xc] add r3, r3, #0x1 ldr r0, [r0, #0x0] add r7, #0xc cmp r2, r0 blt _02062B2E _02062BE4: mov r0, r12 cmp r0, #0x0 bne _02062C1E mov r0, #0xa9 lsl r0, r0, #0x2 ldr r1, [r4, r0] lsl r2, r3, #0x3 add r3, r1, #0x4 ldr r1, [sp, #0x4] add r1, r3, r1 add r3, r0, #0x0 add r3, #0x1c ldr r3, [r4, r3] add r3, r3, r5 add r3, r2, r3 str r1, [r3, #0x4] add r3, r0, #0x0 add r3, #0x1c ldr r3, [r4, r3] mov r1, #0x1 add r3, r3, r5 add r3, r2, r3 strh r1, [r3, #0x8] add r0, #0x1c ldr r0, [r4, r0] mov r1, #0xff add r0, r0, r5 add r0, r2, r0 strb r1, [r0, #0xa] _02062C1E: ldr r0, [sp, #0xc] ldr r0, [r0, #0x0] add r1, r0, #0x1 mov r0, #0xb lsl r0, r0, #0x6 ldr r0, [r4, r0] str r1, [r0, r5] _02062C2C: ldr r0, [sp, #0x8] ldrb r1, [r4, #0x18] add r0, r0, #0x4 str r0, [sp, #0x8] ldr r0, [sp, #0x4] add r5, #0x3c add r0, #0xc str r0, [sp, #0x4] ldr r0, [sp, #0x10] add r0, r0, #0x1 str r0, [sp, #0x10] cmp r0, r1 bge _02062C48 b _02062ABC _02062C48: add sp, #0x14 pop {r4-r7, pc} thumb_func_start FUN_02062C4C FUN_02062C4C: ; 0x02062C4C push {r3-r7, lr} add r6, r0, #0x0 ldrb r0, [r6, #0x18] mov r4, #0x0 add r0, r0, #0x1 cmp r0, #0x0 ble _02062C72 mov r7, #0xa9 add r5, r6, #0x0 lsl r7, r7, #0x2 _02062C60: ldr r0, [r5, r7] bl FUN_0202BE6C ldrb r0, [r6, #0x18] add r4, r4, #0x1 add r5, r5, #0x4 add r0, r0, #0x1 cmp r4, r0 blt _02062C60 _02062C72: mov r0, #0xb lsl r0, r0, #0x6 ldr r0, [r6, r0] bl FUN_02016A18 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02062C80 FUN_02062C80: ; 0x02062C80 push {r4-r6, lr} add r5, r0, #0x0 ldr r2, _02062D34 ; =0x000001E1 ldr r3, [r5, #0x0] mov r0, #0x0 mov r1, #0x1a bl FUN_0200A86C str r0, [r5, #0x2c] ldr r2, [r5, #0x0] mov r0, #0x2 mov r1, #0x4c bl FUN_0200AA90 str r0, [r5, #0x30] ldr r1, [r5, #0x0] mov r0, #0x4c bl FUN_020219F4 str r0, [r5, #0x34] ldr r0, [r5, #0x2c] mov r1, #0xd bl FUN_0200A914 str r0, [r5, #0x38] ldr r0, [r5, #0x2c] mov r1, #0x16 bl FUN_0200A914 str r0, [r5, #0x3c] ldr r0, [r5, #0x2c] mov r1, #0x24 bl FUN_0200A914 str r0, [r5, #0x40] ldr r0, [r5, #0x2c] mov r1, #0xe bl FUN_0200A914 str r0, [r5, #0x44] ldrb r0, [r5, #0x18] mov r4, #0x0 cmp r0, #0x0 ble _02062CFE add r6, r5, #0x0 _02062CDA: ldrb r1, [r5, #0x19] ldr r0, [r5, #0x2c] add r1, r1, r4 bl FUN_0200A914 str r0, [r6, #0x64] ldrb r1, [r5, #0x19] ldr r0, [r5, #0x2c] add r1, #0x17 add r1, r1, r4 bl FUN_0200A914 str r0, [r6, #0x7c] ldrb r0, [r5, #0x18] add r4, r4, #0x1 add r6, r6, #0x4 cmp r4, r0 blt _02062CDA _02062CFE: mov r4, #0x0 add r6, r5, #0x0 _02062D02: add r1, r4, #0x0 ldr r0, [r5, #0x2c] add r1, #0xf bl FUN_0200A914 str r0, [r6, #0x48] add r4, r4, #0x1 add r6, r6, #0x4 cmp r4, #0x7 blt _02062D02 mov r4, #0x0 add r6, r5, #0x0 _02062D1A: add r1, r4, #0x0 ldr r0, [r5, #0x2c] add r1, #0x25 bl FUN_0200A914 add r1, r6, #0x0 add r1, #0x94 add r4, r4, #0x1 add r6, r6, #0x4 str r0, [r1, #0x0] cmp r4, #0x3 blt _02062D1A pop {r4-r6, pc} .balign 4 _02062D34: .word 0x000001E1 thumb_func_start FUN_02062D38 FUN_02062D38: ; 0x02062D38 push {r4-r6, lr} add r6, r0, #0x0 mov r4, #0x0 add r5, r6, #0x0 _02062D40: add r0, r5, #0x0 add r0, #0x94 ldr r0, [r0, #0x0] bl FUN_02021A20 add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, #0x3 blt _02062D40 mov r5, #0x0 add r4, r6, #0x0 _02062D56: ldr r0, [r4, #0x48] bl FUN_02021A20 add r5, r5, #0x1 add r4, r4, #0x4 cmp r5, #0x7 blt _02062D56 ldrb r0, [r6, #0x18] mov r5, #0x0 cmp r0, #0x0 ble _02062D84 add r4, r6, #0x0 _02062D6E: ldr r0, [r4, #0x64] bl FUN_02021A20 ldr r0, [r4, #0x7c] bl FUN_02021A20 ldrb r0, [r6, #0x18] add r5, r5, #0x1 add r4, r4, #0x4 cmp r5, r0 blt _02062D6E _02062D84: ldr r0, [r6, #0x44] bl FUN_02021A20 ldr r0, [r6, #0x40] bl FUN_02021A20 ldr r0, [r6, #0x3c] bl FUN_02021A20 ldr r0, [r6, #0x38] bl FUN_02021A20 ldr r0, [r6, #0x34] bl FUN_02021A20 ldr r0, [r6, #0x30] bl FUN_0200AB18 ldr r0, [r6, #0x2c] bl FUN_0200A8B8 pop {r4-r6, pc} thumb_func_start FUN_02062DB0 FUN_02062DB0: ; 0x02062DB0 push {r3-r4, lr} sub sp, #0x14 add r4, r0, #0x0 mov r1, #0xad ldr r3, [r4, #0x0] mov r0, #0x1 lsl r1, r1, #0x6 mov r2, #0x0 bl FUN_02017F18 mov r2, #0x0 str r2, [sp, #0x0] mov r0, #0x20 str r0, [sp, #0x4] str r0, [sp, #0x8] mov r0, #0x11 str r0, [sp, #0xc] add r0, r4, #0x0 add r0, #0xd0 ldr r0, [r0, #0x0] mov r1, #0x1 add r3, r2, #0x0 bl FUN_02018540 add r0, r4, #0x0 add r0, #0xd0 ldr r0, [r0, #0x0] mov r1, #0x1 bl FUN_0201AC68 mov r0, #0x1 add r1, r0, #0x0 bl FUN_0201797C add r0, r4, #0x0 add r0, #0xd0 ldr r0, [r0, #0x0] mov r1, #0x0 bl FUN_02018884 strh r0, [r4, #0x10] add r0, r4, #0x0 add r0, #0xd0 ldr r0, [r0, #0x0] mov r1, #0x1 bl FUN_02018884 strh r0, [r4, #0x12] mov r0, #0x0 mov r1, #0x2 bl FUN_020178BC mov r0, #0x1 add r1, r0, #0x0 bl FUN_020178BC ldrh r0, [r4, #0x1c] ldr r2, _02062EB8 ; =0x000003E2 mov r1, #0x3 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] ldr r0, [r4, #0x0] mov r3, #0xa str r0, [sp, #0x4] add r0, r4, #0x0 add r0, #0xd0 ldr r0, [r0, #0x0] bl FUN_0200CD68 mov r0, #0x0 str r0, [sp, #0x0] ldr r0, [r4, #0x0] ldr r2, _02062EBC ; =0x000003D9 str r0, [sp, #0x4] add r0, r4, #0x0 add r0, #0xd0 ldr r0, [r0, #0x0] mov r1, #0x3 mov r3, #0xb bl FUN_0200CB00 mov r0, #0x0 str r0, [sp, #0x0] ldr r0, [r4, #0x0] ldr r2, _02062EBC ; =0x000003D9 str r0, [sp, #0x4] add r0, r4, #0x0 add r0, #0xd0 ldr r0, [r0, #0x0] mov r1, #0x1 mov r3, #0xb bl FUN_0200CB00 mov r1, #0x1a ldr r2, [r4, #0x0] mov r0, #0x0 lsl r1, r1, #0x4 bl FUN_02002ED0 mov r1, #0x6 ldr r2, [r4, #0x0] mov r0, #0x0 lsl r1, r1, #0x6 bl FUN_02002EEC mov r0, #0x13 str r0, [sp, #0x0] mov r0, #0x1b str r0, [sp, #0x4] mov r0, #0x4 str r0, [sp, #0x8] mov r0, #0xc str r0, [sp, #0xc] ldr r0, _02062EC0 ; =0x0000036D add r1, r4, #0x0 str r0, [sp, #0x10] add r0, r4, #0x0 add r0, #0xd0 ldr r0, [r0, #0x0] add r1, #0xe4 mov r2, #0x3 mov r3, #0x2 bl FUN_02019064 add r4, #0xe4 add r0, r4, #0x0 mov r1, #0xff bl FUN_02019620 add sp, #0x14 pop {r3-r4, pc} .balign 4 _02062EB8: .word 0x000003E2 _02062EBC: .word 0x000003D9 _02062EC0: .word 0x0000036D thumb_func_start FUN_02062EC4 FUN_02062EC4: ; 0x02062EC4 push {r4, lr} sub sp, #0x10 add r4, r0, #0x0 add r0, #0xe4 mov r1, #0x1 bl FUN_0200D0E0 add r0, r4, #0x0 add r0, #0xe4 bl FUN_02019570 add r0, r4, #0x0 add r0, #0xe4 bl FUN_02019178 mov r1, #0xad ldr r3, [r4, #0x0] mov r0, #0x1 lsl r1, r1, #0x6 mov r2, #0x0 bl FUN_02017F18 mov r2, #0x0 str r2, [sp, #0x0] mov r0, #0x20 str r0, [sp, #0x4] str r0, [sp, #0x8] mov r0, #0x11 str r0, [sp, #0xc] add r0, r4, #0x0 add r0, #0xd0 ldr r0, [r0, #0x0] mov r1, #0x1 add r3, r2, #0x0 bl FUN_02018540 add r0, r4, #0x0 add r0, #0xd0 ldr r0, [r0, #0x0] mov r1, #0x1 bl FUN_0201AC68 mov r0, #0x1 mov r1, #0x0 bl FUN_0201797C ldrh r1, [r4, #0x10] mov r0, #0x0 lsl r1, r1, #0x18 lsr r1, r1, #0x18 bl FUN_020178BC ldrh r1, [r4, #0x12] mov r0, #0x1 lsl r1, r1, #0x18 lsr r1, r1, #0x18 bl FUN_020178BC add sp, #0x10 pop {r4, pc} thumb_func_start FUN_02062F3C FUN_02062F3C: ; 0x02062F3C push {r4-r7, lr} sub sp, #0x24 ldr r4, _02062FF0 ; =0x020F7BDC add r3, sp, #0xc add r6, r0, #0x0 add r2, r3, #0x0 ldmia r4!, {r0-r1} stmia r3!, {r0-r1} ldmia r4!, {r0-r1} stmia r3!, {r0-r1} ldmia r4!, {r0-r1} stmia r3!, {r0-r1} mov r0, #0x4d lsl r0, r0, #0x2 add r1, r2, #0x0 ldr r3, [r6, #0x0] add r0, r6, r0 mov r2, #0x2 bl FUN_021D959C mov r0, #0x3 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] ldr r0, _02062FF4 ; =0x000034D8 mov r2, #0x0 str r0, [sp, #0x8] mov r0, #0x4d lsl r0, r0, #0x2 add r0, r6, r0 mov r1, #0x82 add r3, r2, #0x0 bl FUN_021D967C ldr r0, _02062FF4 ; =0x000034D8 mov r1, #0x82 str r0, [sp, #0x0] mov r0, #0x4d lsl r0, r0, #0x2 add r0, r6, r0 mov r2, #0x2 mov r3, #0x0 bl FUN_021D96F4 ldr r0, _02062FF4 ; =0x000034D8 mov r1, #0x82 str r0, [sp, #0x0] mov r0, #0x4d lsl r0, r0, #0x2 add r0, r6, r0 mov r2, #0x3 mov r3, #0x0 bl FUN_021D9708 mov r2, #0x1 ldr r0, _02062FF4 ; =0x000034D8 str r2, [sp, #0x0] str r0, [sp, #0x4] mov r0, #0x4d lsl r0, r0, #0x2 add r0, r6, r0 mov r1, #0x82 mov r3, #0x0 bl FUN_021D971C ldr r4, _02062FF8 ; =0x020F7C7C mov r7, #0x0 add r5, r6, #0x0 _02062FC4: mov r0, #0x4d lsl r0, r0, #0x2 add r0, r6, r0 add r1, r4, #0x0 bl FUN_021D9820 mov r1, #0xa6 lsl r1, r1, #0x2 str r0, [r5, r1] add r7, r7, #0x1 add r4, #0x34 add r5, r5, #0x4 cmp r7, #0x2 blt _02062FC4 add r0, r1, #0x4 ldr r0, [r6, r0] mov r1, #0x0 bl FUN_0200C644 add sp, #0x24 pop {r4-r7, pc} nop _02062FF0: .word 0x020F7BDC _02062FF4: .word 0x000034D8 _02062FF8: .word 0x020F7C7C thumb_func_start FUN_02062FFC FUN_02062FFC: ; 0x02062FFC push {r3-r7, lr} add r7, r0, #0x0 mov r6, #0xa6 mov r4, #0x0 add r5, r7, #0x0 lsl r6, r6, #0x2 _02063008: ldr r0, [r5, r6] cmp r0, #0x0 beq _02063012 bl FUN_0200C3DC _02063012: add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, #0x2 blt _02063008 mov r0, #0x4d lsl r0, r0, #0x2 add r0, r7, r0 bl FUN_021D99F8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02063028 FUN_02063028: ; 0x02063028 push {r4-r7, lr} sub sp, #0x1c str r1, [sp, #0x14] add r5, r0, #0x0 str r2, [sp, #0x18] ldrb r0, [r5, #0x18] ldr r1, [r5, #0x0] add r7, r0, #0x1 add r0, r7, #0x0 bl FUN_02012838 add r1, r5, #0x0 add r1, #0xc4 str r0, [r1, #0x0] mov r2, #0x1 add r1, r5, #0x0 str r2, [sp, #0x0] mov r0, #0x18 str r0, [sp, #0x4] lsl r0, r7, #0x19 lsr r0, r0, #0x18 str r0, [sp, #0x8] mov r0, #0xd str r0, [sp, #0xc] add r0, r5, #0x0 str r2, [sp, #0x10] add r0, #0xd0 ldr r0, [r0, #0x0] add r1, #0xd4 mov r3, #0x4 bl FUN_02019064 add r0, r5, #0x0 add r0, #0xd4 mov r1, #0xff bl FUN_02019620 ldrb r0, [r5, #0x18] mov r6, #0x0 cmp r0, #0x0 ble _02063094 add r4, r5, #0x0 _0206307C: add r0, r5, #0x0 add r0, #0xc4 ldr r0, [r0, #0x0] ldr r1, [r4, #0x64] add r2, r6, #0x0 bl FUN_020128A0 ldrb r0, [r5, #0x18] add r6, r6, #0x1 add r4, r4, #0x4 cmp r6, r0 blt _0206307C _02063094: add r0, r5, #0x0 add r0, #0xc4 ldr r0, [r0, #0x0] ldr r1, [r5, #0x38] ldr r2, _02063160 ; =0x0000FFFF bl FUN_020128A0 add r1, r5, #0x0 ldr r0, _02063164 ; =0x020F7C2C add r1, #0xa0 mov r2, #0x20 blx MI_CpuCopy8 add r1, r5, #0x0 add r0, r5, #0x0 add r1, #0xd4 add r0, #0xac str r1, [r0, #0x0] add r0, r5, #0x0 add r0, #0xc4 ldr r1, [r0, #0x0] add r0, r5, #0x0 add r0, #0xa0 str r1, [r0, #0x0] add r0, r5, #0x0 add r0, #0xbc str r5, [r0, #0x0] add r0, r5, #0x0 add r0, #0xb0 strh r7, [r0, #0x0] add r0, r5, #0x0 add r0, #0xb7 ldrb r1, [r0, #0x0] mov r0, #0xf bic r1, r0 add r0, r5, #0x0 add r0, #0xb7 strb r1, [r0, #0x0] add r0, r5, #0x0 ldr r1, _02063168 ; =FUN_020631C8 add r0, #0xa4 str r1, [r0, #0x0] add r0, r5, #0x0 mov r1, #0x0 add r0, #0xa8 str r1, [r0, #0x0] ldr r3, [r5, #0x0] add r0, r5, #0x0 lsl r3, r3, #0x18 ldr r1, [sp, #0x14] ldr r2, [sp, #0x18] add r0, #0xa0 lsr r3, r3, #0x18 bl FUN_020010A8 add r1, r5, #0x0 add r1, #0xc0 str r0, [r1, #0x0] add r0, r5, #0x0 ldr r2, _0206316C ; =0x000003D9 add r0, #0xd4 mov r1, #0x0 mov r3, #0xb bl FUN_0200CCA4 add r0, r5, #0x0 ldr r2, _02063170 ; =0x000003E2 add r0, #0xe4 mov r1, #0x1 mov r3, #0xa bl FUN_0200D0BC add r0, r5, #0x0 add r0, #0xe4 mov r1, #0xff bl FUN_02019620 mov r3, #0x0 str r3, [sp, #0x0] ldr r0, _02063174 ; =0x0001020F str r3, [sp, #0x4] str r0, [sp, #0x8] str r3, [sp, #0xc] add r0, r5, #0x0 ldr r2, [r5, #0x3c] add r0, #0xe4 mov r1, #0x1 bl FUN_0201BDE0 mov r0, #0xa6 lsl r0, r0, #0x2 ldr r0, [r5, r0] mov r1, #0x1 bl FUN_0200C644 add r5, #0xd0 ldr r0, [r5, #0x0] mov r1, #0x3 bl FUN_0201AC68 add sp, #0x1c pop {r4-r7, pc} .balign 4 _02063160: .word 0x0000FFFF _02063164: .word 0x020F7C2C _02063168: .word FUN_020631C8 _0206316C: .word 0x000003D9 _02063170: .word 0x000003E2 _02063174: .word 0x0001020F thumb_func_start FUN_02063178 FUN_02063178: ; 0x02063178 push {r4, lr} add r4, r0, #0x0 add r0, #0xc0 add r1, r4, #0x0 add r2, r4, #0x0 ldr r0, [r0, #0x0] add r1, #0x22 add r2, #0x24 bl FUN_02001300 add r0, r4, #0x0 add r0, #0xc4 ldr r0, [r0, #0x0] bl FUN_02012870 add r0, r4, #0x0 add r0, #0xd4 bl FUN_02019570 add r0, r4, #0x0 add r0, #0xd4 mov r1, #0x0 bl FUN_0200CCF8 add r0, r4, #0x0 add r0, #0xd4 bl FUN_02019178 mov r0, #0xa6 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 bl FUN_0200C644 add r4, #0xd0 ldr r0, [r4, #0x0] mov r1, #0x3 bl FUN_0201AC68 pop {r4, pc} thumb_func_start FUN_020631C8 FUN_020631C8: ; 0x020631C8 push {r3-r5, lr} mov r1, #0x13 add r5, r0, #0x0 bl FUN_02001470 add r1, sp, #0x0 add r4, r0, #0x0 add r0, r5, #0x0 add r1, #0x2 add r2, sp, #0x0 bl FUN_02001448 add r0, r5, #0x0 mov r1, #0x2 bl FUN_02001470 add r2, sp, #0x0 ldrh r3, [r2, #0x0] ldrh r2, [r2, #0x2] mov r0, #0xa6 lsl r0, r0, #0x2 add r2, r3, r2 lsl r2, r2, #0x4 add r2, #0x10 lsl r2, r2, #0x10 ldr r0, [r4, r0] mov r1, #0x7e asr r2, r2, #0x10 bl FUN_0200C714 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02063208 FUN_02063208: ; 0x02063208 push {r4, lr} sub sp, #0x10 add r4, r0, #0x0 add r0, #0xe4 mov r1, #0xff bl FUN_02019620 mov r3, #0x0 str r3, [sp, #0x0] ldr r0, _02063234 ; =0x0001020F str r3, [sp, #0x4] str r0, [sp, #0x8] add r0, r4, #0x0 str r3, [sp, #0xc] add r4, #0x94 ldr r2, [r4, #0x0] add r0, #0xe4 mov r1, #0x1 bl FUN_0201BDE0 add sp, #0x10 pop {r4, pc} .balign 4 _02063234: .word 0x0001020F thumb_func_start FUN_02063238 FUN_02063238: ; 0x02063238 push {r4, lr} add r4, r0, #0x0 bl FUN_02063208 ldrh r2, [r4, #0x28] mov r0, #0xa6 lsl r0, r0, #0x2 lsl r2, r2, #0x4 add r2, #0x10 lsl r2, r2, #0x10 ldr r0, [r4, r0] mov r1, #0x7e asr r2, r2, #0x10 bl FUN_0200C714 mov r0, #0xa6 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x1 bl FUN_0200C644 pop {r4, pc} thumb_func_start FUN_02063264 FUN_02063264: ; 0x02063264 push {r4, lr} sub sp, #0x10 add r4, r0, #0x0 add r0, #0xe4 mov r1, #0xff bl FUN_02019620 mov r3, #0x0 str r3, [sp, #0x0] ldr r0, _020632A0 ; =0x0001020F str r3, [sp, #0x4] str r0, [sp, #0x8] str r3, [sp, #0xc] ldrb r2, [r4, #0x1f] add r0, r4, #0x0 add r0, #0xe4 lsl r2, r2, #0x2 add r2, r4, r2 ldr r2, [r2, #0x7c] mov r1, #0x1 bl FUN_0201BDE0 mov r0, #0xa6 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 bl FUN_0200C644 add sp, #0x10 pop {r4, pc} .balign 4 _020632A0: .word 0x0001020F thumb_func_start FUN_020632A4 FUN_020632A4: ; 0x020632A4 push {r4-r7, lr} sub sp, #0x34 str r1, [sp, #0x10] mov r1, #0xb add r4, r0, #0x0 lsl r1, r1, #0x6 ldr r1, [r4, r1] ldrb r0, [r4, #0x1f] str r1, [sp, #0x24] mov r1, #0x3c mul r1, r0 str r1, [sp, #0x28] ldrb r1, [r4, #0x16] lsl r0, r0, #0x3 lsl r2, r1, #0x2 ldr r1, _02063428 ; =0x020F7BD0 ldr r1, [r1, r2] add r0, r1, r0 str r0, [sp, #0x14] add r0, r4, #0x0 add r0, #0xd4 mov r1, #0xff bl FUN_02019620 mov r0, #0x1 str r0, [sp, #0x1c] mov r0, #0x0 add r1, r0, #0x0 str r1, [sp, #0x20] ldr r2, [sp, #0x24] ldr r1, [sp, #0x28] str r0, [sp, #0x18] ldr r1, [r2, r1] cmp r1, #0x0 ble _020633EA ldr r1, [sp, #0x28] add r7, r2, r1 add r1, r0, #0x0 str r1, [sp, #0x30] add r1, r4, #0x0 str r1, [sp, #0x2c] add r1, #0xd4 str r1, [sp, #0x2c] _020632FA: ldrh r1, [r7, #0x8] cmp r1, #0x0 beq _020633D6 ldr r1, [r7, #0x4] ldr r5, [r1, #0x4] ldr r1, [sp, #0x14] ldr r1, [r1, #0x0] cmp r5, r1 bls _0206330E add r5, r1, #0x0 _0206330E: cmp r5, r0 bge _02063318 ldr r0, [sp, #0x1c] add r0, r0, #0x1 str r0, [sp, #0x1c] _02063318: mov r0, #0x1 str r0, [sp, #0x0] str r0, [sp, #0x4] ldr r0, [r4, #0x30] ldr r2, [sp, #0x1c] mov r1, #0x0 mov r3, #0x1 bl FUN_0200AD38 mov r0, #0x1 str r0, [sp, #0x0] mov r0, #0x2 str r0, [sp, #0x4] ldr r2, [r7, #0x4] ldr r0, [r4, #0x30] ldr r2, [r2, #0x8] mov r1, #0x1 mov r3, #0x2 bl FUN_0200ABB4 ldr r0, [r4, #0x30] ldr r1, [r4, #0x34] ldr r2, [r4, #0x44] bl FUN_0200B7B8 ldr r0, [sp, #0x30] mov r1, #0x0 str r0, [sp, #0x0] mov r0, #0xff str r0, [sp, #0x4] ldr r0, _0206342C ; =0x0001020F mov r3, #0x8 str r0, [sp, #0x8] mov r0, #0x0 str r0, [sp, #0xc] ldr r0, [sp, #0x2c] ldr r2, [r4, #0x34] bl FUN_0201BDE0 mov r0, #0x1 str r0, [sp, #0x0] str r0, [sp, #0x4] ldr r3, [sp, #0x14] ldr r0, [r4, #0x30] ldrh r3, [r3, #0x4] mov r1, #0x0 add r2, r5, #0x0 bl FUN_0200AD38 ldr r2, [sp, #0x14] ldr r0, [r4, #0x30] ldrh r2, [r2, #0x6] ldr r1, [r4, #0x34] lsl r2, r2, #0x2 add r2, r4, r2 ldr r2, [r2, #0xc] bl FUN_0200B7B8 mov r0, #0x0 ldr r1, [r4, #0x34] add r2, r0, #0x0 bl FUN_02002E14 mov r12, r0 ldr r0, [sp, #0x30] mov r3, #0xb8 str r0, [sp, #0x0] mov r0, #0xff str r0, [sp, #0x4] ldr r0, _0206342C ; =0x0001020F mov r6, r12 str r0, [sp, #0x8] mov r0, #0x0 str r0, [sp, #0xc] ldr r0, [sp, #0x2c] ldr r2, [r4, #0x34] mov r1, #0x0 sub r3, r3, r6 bl FUN_0201BDE0 ldr r0, [sp, #0x18] ldr r1, [sp, #0x20] add r2, r4, r0 mov r0, #0xb2 lsl r0, r0, #0x2 strb r1, [r2, r0] ldr r1, [sp, #0x30] add r0, r5, #0x0 add r1, #0x10 str r1, [sp, #0x30] ldr r1, [sp, #0x18] add r1, r1, #0x1 str r1, [sp, #0x18] cmp r1, #0x6 bge _020633EA _020633D6: ldr r1, [sp, #0x20] ldr r2, [sp, #0x24] add r1, r1, #0x1 str r1, [sp, #0x20] ldr r1, [sp, #0x28] add r7, #0x8 ldr r2, [r2, r1] ldr r1, [sp, #0x20] cmp r1, r2 blt _020632FA _020633EA: add r0, r4, #0x0 add r0, #0xd4 bl FUN_020191D0 add r1, r4, #0x0 ldr r0, [sp, #0x18] add r1, #0x21 strb r0, [r1, #0x0] ldrh r1, [r4, #0x28] cmp r1, #0x0 beq _0206340E add r0, r4, #0x0 add r0, #0x21 ldrb r0, [r0, #0x0] cmp r1, r0 blt _0206340E sub r0, r1, #0x1 strh r0, [r4, #0x28] _0206340E: ldr r0, [sp, #0x10] cmp r0, #0x0 beq _0206341E add r0, r4, #0x0 bl FUN_02063238 add sp, #0x34 pop {r4-r7, pc} _0206341E: add r0, r4, #0x0 bl FUN_02063264 add sp, #0x34 pop {r4-r7, pc} .balign 4 _02063428: .word 0x020F7BD0 _0206342C: .word 0x0001020F thumb_func_start FUN_02063430 FUN_02063430: ; 0x02063430 push {r3-r4, lr} sub sp, #0x14 mov r2, #0x1 add r4, r0, #0x0 str r2, [sp, #0x0] mov r0, #0x18 str r0, [sp, #0x4] mov r0, #0xc str r0, [sp, #0x8] mov r0, #0xd str r0, [sp, #0xc] add r0, r4, #0x0 add r1, r4, #0x0 str r2, [sp, #0x10] add r0, #0xd0 ldr r0, [r0, #0x0] add r1, #0xd4 mov r3, #0x4 bl FUN_02019064 add r0, r4, #0x0 ldr r2, _020634D0 ; =0x000003D9 add r0, #0xd4 mov r1, #0x1 mov r3, #0xb bl FUN_0200CCA4 add r0, r4, #0x0 mov r1, #0x0 bl FUN_020632A4 mov r0, #0xa7 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x1 bl FUN_0200C644 mov r0, #0xe str r0, [sp, #0x0] mov r3, #0x8 add r1, r4, #0x0 str r3, [sp, #0x4] mov r0, #0x2 str r0, [sp, #0x8] mov r0, #0xd str r0, [sp, #0xc] ldr r0, _020634D4 ; =0x00000345 add r1, #0xf4 str r0, [sp, #0x10] add r0, r4, #0x0 add r0, #0xd0 ldr r0, [r0, #0x0] mov r2, #0x3 bl FUN_02019064 add r0, r4, #0x0 add r0, #0xf4 mov r1, #0x0 bl FUN_02019620 mov r1, #0x0 str r1, [sp, #0x0] ldr r0, _020634D8 ; =0x00010200 str r1, [sp, #0x4] str r0, [sp, #0x8] str r1, [sp, #0xc] add r0, r4, #0x0 ldr r2, [r4, #0x40] add r0, #0xf4 add r3, r1, #0x0 bl FUN_0201BDE0 add r4, #0xd0 ldr r0, [r4, #0x0] mov r1, #0x3 bl FUN_0201AC68 add sp, #0x14 pop {r3-r4, pc} nop _020634D0: .word 0x000003D9 _020634D4: .word 0x00000345 _020634D8: .word 0x00010200 thumb_func_start FUN_020634DC FUN_020634DC: ; 0x020634DC push {r4, lr} add r4, r0, #0x0 add r0, #0xd4 bl FUN_02019570 add r0, r4, #0x0 add r0, #0xd4 mov r1, #0x0 bl FUN_0200CCF8 add r0, r4, #0x0 add r0, #0xd4 bl FUN_02019178 add r0, r4, #0x0 add r0, #0xf4 bl FUN_02019570 add r0, r4, #0x0 add r0, #0xf4 bl FUN_02019178 mov r0, #0xa6 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 bl FUN_0200C644 mov r0, #0xa7 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 bl FUN_0200C644 pop {r4, pc} .balign 4 thumb_func_start FUN_02063524 FUN_02063524: ; 0x02063524 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldr r2, [r4, #0x0] ldr r1, [r4, #0x8] cmp r2, #0xc bls _02063540 b _02063646 _02063540: add r2, r2, r2 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _0206354C: ; jump table (using 16-bit offset) .short _02063566 - _0206354C - 2; case 0 .short _02063572 - _0206354C - 2; case 1 .short _0206357E - _0206354C - 2; case 2 .short _02063594 - _0206354C - 2; case 3 .short _020635AA - _0206354C - 2; case 4 .short _020635C0 - _0206354C - 2; case 5 .short _020635D6 - _0206354C - 2; case 6 .short _020635EC - _0206354C - 2; case 7 .short _02063602 - _0206354C - 2; case 8 .short _02063618 - _0206354C - 2; case 9 .short _0206362C - _0206354C - 2; case 10 .short _02063636 - _0206354C - 2; case 11 .short _0206363E - _0206354C - 2; case 12 _02063566: ldrh r2, [r4, #0x4] add r1, r5, #0x0 bl FUN_020625EC str r0, [r4, #0x0] b _02063646 _02063572: add r0, r1, #0x0 ldr r1, [r5, #0xc] bl FUN_02062720 str r0, [r4, #0x0] b _02063646 _0206357E: add r0, r1, #0x0 bl FUN_02062760 str r0, [r4, #0x0] mov r0, #0x4d ldr r1, [r4, #0x8] lsl r0, r0, #0x2 ldr r0, [r1, r0] bl FUN_0201FDEC b _02063646 _02063594: add r0, r1, #0x0 bl FUN_02062770 str r0, [r4, #0x0] mov r0, #0x4d ldr r1, [r4, #0x8] lsl r0, r0, #0x2 ldr r0, [r1, r0] bl FUN_0201FDEC b _02063646 _020635AA: add r0, r1, #0x0 bl FUN_020627D0 str r0, [r4, #0x0] mov r0, #0x4d ldr r1, [r4, #0x8] lsl r0, r0, #0x2 ldr r0, [r1, r0] bl FUN_0201FDEC b _02063646 _020635C0: add r0, r1, #0x0 bl FUN_020627DC str r0, [r4, #0x0] mov r0, #0x4d ldr r1, [r4, #0x8] lsl r0, r0, #0x2 ldr r0, [r1, r0] bl FUN_0201FDEC b _02063646 _020635D6: add r0, r1, #0x0 bl FUN_02062808 str r0, [r4, #0x0] mov r0, #0x4d ldr r1, [r4, #0x8] lsl r0, r0, #0x2 ldr r0, [r1, r0] bl FUN_0201FDEC b _02063646 _020635EC: add r0, r1, #0x0 bl FUN_020628E8 str r0, [r4, #0x0] mov r0, #0x4d ldr r1, [r4, #0x8] lsl r0, r0, #0x2 ldr r0, [r1, r0] bl FUN_0201FDEC b _02063646 _02063602: add r0, r1, #0x0 bl FUN_020629D8 str r0, [r4, #0x0] mov r0, #0x4d ldr r1, [r4, #0x8] lsl r0, r0, #0x2 ldr r0, [r1, r0] bl FUN_0201FDEC b _02063646 _02063618: ldr r0, _0206364C ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #0x1 tst r0, r1 bne _02063626 mov r0, #0x0 pop {r3-r5, pc} _02063626: mov r0, #0xa str r0, [r4, #0x0] b _02063646 _0206362C: add r0, r1, #0x0 bl FUN_02062740 str r0, [r4, #0x0] b _02063646 _02063636: bl FUN_02062678 str r0, [r4, #0x0] b _02063646 _0206363E: bl FUN_02016A18 mov r0, #0x1 pop {r3-r5, pc} _02063646: mov r0, #0x0 pop {r3-r5, pc} nop _0206364C: .word 0x021C48B8 thumb_func_start FUN_02063650 FUN_02063650: ; 0x02063650 push {r3-r5, lr} add r5, r1, #0x0 bl FUN_02046528 add r4, r0, #0x0 mov r0, #0xb mov r1, #0xc bl FUN_02016998 add r2, r0, #0x0 mov r0, #0x0 str r0, [r2, #0x0] strh r5, [r2, #0x4] str r0, [r2, #0x8] ldr r0, [r4, #0x10] ldr r1, _02063678 ; =FUN_02063524 bl FUN_0204640C pop {r3-r5, pc} nop _02063678: .word FUN_02063524 thumb_func_start FUN_0206367C FUN_0206367C: ; 0x0206367C add r0, #0xb4 str r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02063684 FUN_02063684: ; 0x02063684 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02063818 ldr r0, [r5, #0xc] bl FUN_020462AC mov r1, #0x0 bl FUN_0205F264 ldr r1, [r5, #0x1c] add r0, r5, #0x0 ldr r1, [r1, #0x0] bl FUN_02034F88 ldr r0, [r5, #0xc] bl FUN_0202A9B0 mov r1, #0x0 bl FUN_0202AB68 add r0, r5, #0x0 mov r1, #0x0 add r0, #0x74 strh r1, [r0, #0x0] ldr r0, [r5, #0xc] bl FUN_020462AC bl FUN_0205F214 cmp r0, #0x0 bne _020636DA ldr r0, [r5, #0xc] bl FUN_0202A9B0 ldr r1, [r5, #0x1c] add r4, r0, #0x0 ldr r1, [r1, #0x0] bl FUN_02060478 add r0, r4, #0x0 bl FUN_020603F0 _020636DA: pop {r3-r5, pc} thumb_func_start FUN_020636DC FUN_020636DC: ; 0x020636DC push {r3-r5, lr} add r5, r0, #0x0 add r1, r5, #0x0 add r1, #0xb4 ldr r1, [r1, #0x0] cmp r1, #0x1 beq _020637A6 bl FUN_02063818 cmp r0, #0x0 bne _020636F8 add r0, r5, #0x0 bl FUN_0206384C _020636F8: ldr r0, [r5, #0xc] bl FUN_020462AC bl FUN_0205F254 ldr r0, [r5, #0xc] bl FUN_020462AC mov r1, #0x0 bl FUN_0205F264 ldr r1, [r5, #0x1c] add r0, r5, #0x0 ldr r1, [r1, #0x0] bl FUN_02034F88 ldr r0, [r5, #0xc] bl FUN_0202A9B0 mov r1, #0x0 bl FUN_0202AB68 add r0, r5, #0x0 mov r1, #0x0 add r0, #0x74 strh r1, [r0, #0x0] ldr r0, [r5, #0xc] bl FUN_0202A9B0 ldr r1, [r5, #0x1c] ldr r1, [r1, #0x0] bl FUN_02060478 ldr r0, [r5, #0x1c] ldr r0, [r0, #0x0] bl FUN_02034930 cmp r0, #0x0 bne _02063758 ldr r0, [r5, #0xc] bl FUN_020462AC add r4, r0, #0x0 bl FUN_0205F284 add r0, r4, #0x0 bl FUN_0205F2B4 _02063758: ldr r0, [r5, #0xc] bl FUN_02034E30 bl FUN_02034E20 add r4, r0, #0x0 ldr r0, [r4, #0x4] cmp r0, #0x1 bne _0206377C ldr r0, [r5, #0x1c] ldr r0, [r0, #0x0] bl FUN_020348B4 cmp r0, #0x0 bne _0206377C mov r0, #0x0 str r0, [r4, #0x4] b _02063786 _0206377C: ldr r0, [r4, #0x4] cmp r0, #0x2 bne _02063786 mov r0, #0x0 str r0, [r4, #0x4] _02063786: ldr r0, [r5, #0x1c] ldr r0, [r0, #0x0] bl FUN_02034908 cmp r0, #0x0 beq _020637A6 ldr r0, [r5, #0xc] bl FUN_02034E30 bl FUN_02034E0C ldr r2, [r5, #0x1c] ldr r1, [r2, #0x8] ldr r2, [r2, #0xc] bl FUN_0204AE04 _020637A6: pop {r3-r5, pc} thumb_func_start FUN_020637A8 FUN_020637A8: ; 0x020637A8 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_020462AC bl FUN_0205F204 ldr r0, [r4, #0xc] bl FUN_0202A9B0 bl FUN_020603C8 pop {r4, pc} .balign 4 thumb_func_start FUN_020637C4 FUN_020637C4: ; 0x020637C4 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_020462AC bl FUN_0205F204 ldr r0, [r4, #0xc] bl FUN_0202A9B0 bl FUN_020603C8 pop {r4, pc} .balign 4 thumb_func_start FUN_020637E0 FUN_020637E0: ; 0x020637E0 push {r3, lr} ldr r0, [r0, #0xc] bl FUN_020462AC bl FUN_0205F204 pop {r3, pc} .balign 4 thumb_func_start FUN_020637F0 FUN_020637F0: ; 0x020637F0 push {r4, lr} ldr r0, [r0, #0xc] bl FUN_020462AC add r4, r0, #0x0 bl FUN_0205ED2C add r0, r4, #0x0 mov r1, #0x0 bl FUN_0205F358 pop {r4, pc} thumb_func_start FUN_02063808 FUN_02063808: ; 0x02063808 push {r3, lr} ldr r0, [r0, #0xc] bl FUN_0202A9B0 bl FUN_020603C8 pop {r3, pc} .balign 4 thumb_func_start FUN_02063818 FUN_02063818: ; 0x02063818 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x1c] ldr r0, [r0, #0x0] bl FUN_02034F1C add r1, r0, #0x0 beq _02063846 add r0, r4, #0x0 bl FUN_02034FC0 cmp r0, #0x0 bne _02063846 add r0, r4, #0x0 ldr r1, [r4, #0x1c] add r0, #0x98 ldr r0, [r0, #0x0] ldr r1, [r1, #0x0] mov r2, #0x20 bl FUN_020299C0 mov r0, #0x1 pop {r4, pc} _02063846: mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_0206384C FUN_0206384C: ; 0x0206384C push {r3-r6, lr} sub sp, #0x4 add r5, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_02034E30 bl FUN_02034DC8 ldr r1, [r5, #0x1c] ldr r6, [r0, #0x0] ldr r4, [r1, #0x0] cmp r6, r4 beq _02063882 ldr r0, [r5, #0xc] bl FUN_020238F4 mov r1, #0x20 add r5, #0x98 str r1, [sp, #0x0] ldr r1, [r5, #0x0] add r2, r4, #0x0 add r3, r6, #0x0 bl FUN_02029880 add sp, #0x4 mov r0, #0x1 pop {r3-r6, pc} _02063882: mov r0, #0x0 add sp, #0x4 pop {r3-r6, pc} thumb_func_start FUN_02063888 FUN_02063888: ; 0x02063888 push {r4-r6, lr} add r5, r1, #0x0 mov r1, #0x18 add r4, r2, #0x0 add r6, r3, #0x0 bl FUN_020169D8 add r3, r0, #0x0 mov r2, #0x18 mov r1, #0x0 _0206389C: strb r1, [r3, #0x0] add r3, r3, #0x1 sub r2, r2, #0x1 bne _0206389C str r5, [r0, #0x0] str r4, [r0, #0x10] strh r6, [r0, #0x8] add r2, sp, #0x0 mov r1, #0x10 ldrsh r1, [r2, r1] strh r1, [r0, #0xa] mov r1, #0x14 ldrsh r1, [r2, r1] strh r1, [r0, #0xc] pop {r4-r6, pc} .balign 4 thumb_func_start FUN_020638BC FUN_020638BC: ; 0x020638BC push {r3-r6, lr} sub sp, #0x1c add r5, r0, #0x0 bl FUN_02046528 add r0, r5, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldr r0, [r4, #0x4] cmp r0, #0x0 beq _020638DA cmp r0, #0x1 beq _020638F8 b _02063942 _020638DA: ldr r0, [r4, #0x0] ldr r0, [r0, #0x38] bl FUN_020553E8 add r3, r0, #0x0 ldr r0, [r4, #0x0] ldr r2, [r4, #0x10] mov r1, #0x1 bl FUN_0224666C str r0, [r4, #0x14] ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _02063942 _020638F8: ldr r0, [r4, #0x14] bl FUN_022466A0 cmp r0, #0x0 beq _02063942 ldr r0, [r4, #0x14] bl FUN_022466AC mov r1, #0xa mov r2, #0xc ldrh r0, [r4, #0x8] ldrsh r1, [r4, r1] ldrsh r2, [r4, r2] bl FUN_02034F40 lsl r0, r0, #0x10 lsr r6, r0, #0x10 bne _02063920 bl ErrorHandling _02063920: add r0, r6, #0x0 add r1, sp, #0x8 bl FUN_02034E90 ldr r0, [sp, #0x14] mov r2, #0x1 str r0, [sp, #0x0] str r2, [sp, #0x4] ldr r1, [sp, #0x8] ldr r3, [sp, #0x10] add r0, r5, #0x0 sub r2, r2, #0x2 bl FUN_020492BC add r0, r4, #0x0 bl FUN_02016A18 _02063942: mov r0, #0x0 add sp, #0x1c pop {r3-r6, pc} thumb_func_start FUN_02063948 FUN_02063948: ; 0x02063948 cmp r0, #0x0 bne _02063954 ldr r0, _0206395C ; =0x020F7CE4 lsl r1, r1, #0x3 ldr r0, [r0, r1] bx lr _02063954: ldr r0, _02063960 ; =0x020F7CE8 lsl r1, r1, #0x3 ldr r0, [r0, r1] bx lr .balign 4 _0206395C: .word 0x020F7CE4 _02063960: .word 0x020F7CE8 thumb_func_start FUN_02063964 FUN_02063964: ; 0x02063964 push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 add r4, r1, #0x0 str r5, [r4, #0x4] ldr r1, [r5, #0x1c] ldr r1, [r1, #0x0] str r1, [r4, #0x0] mov r1, #0x0 strh r1, [r4, #0xc] add r1, sp, #0x8 bl FUN_02037024 ldr r0, [sp, #0x8] str r0, [r4, #0x8] ldr r0, [sp, #0x8] cmp r0, #0x0 beq _020639B6 bl FUN_02058458 cmp r0, #0x54 beq _0206399A cmp r0, #0x55 beq _020639A4 cmp r0, #0x56 beq _020639AE b _020639B6 _0206399A: ldrh r1, [r4, #0xc] mov r0, #0x8 orr r0, r1 strh r0, [r4, #0xc] b _020639B6 _020639A4: ldrh r1, [r4, #0xc] mov r0, #0x20 orr r0, r1 strh r0, [r4, #0xc] b _020639B6 _020639AE: ldrh r1, [r4, #0xc] mov r0, #0x1 orr r0, r1 strh r0, [r4, #0xc] _020639B6: ldr r0, [r5, #0x38] bl FUN_02055320 str r0, [sp, #0x4] ldr r0, [r5, #0x38] bl FUN_0205532C add r2, r0, #0x0 ldr r1, [sp, #0x4] str r2, [sp, #0x0] add r0, r5, #0x0 bl FUN_0204A6E0 add r7, r0, #0x0 ldr r0, [r5, #0x38] add r1, sp, #0x4 add r2, sp, #0x0 bl FUN_020572B8 ldr r1, [sp, #0x4] ldr r2, [sp, #0x0] add r0, r5, #0x0 bl FUN_0204A6E0 add r6, r0, #0x0 ldr r0, [r5, #0x38] add r1, r7, #0x0 add r2, r6, #0x0 bl FUN_021E643C cmp r0, #0x0 beq _020639FE ldrh r1, [r4, #0xc] mov r0, #0x4 orr r0, r1 strh r0, [r4, #0xc] _020639FE: ldr r0, [r5, #0x38] bl FUN_020552F8 add r1, r0, #0x0 add r0, r6, #0x0 bl FUN_021E69BC cmp r0, #0x0 beq _02063A18 ldrh r1, [r4, #0xc] mov r0, #0x80 orr r0, r1 strh r0, [r4, #0xc] _02063A18: lsl r0, r6, #0x18 lsr r0, r0, #0x18 bl FUN_02054A48 cmp r0, #0x0 beq _02063A2C ldrh r1, [r4, #0xc] mov r0, #0x40 orr r0, r1 strh r0, [r4, #0xc] _02063A2C: ldr r0, [r5, #0xc] bl FUN_02034E30 bl FUN_02034DEC cmp r0, #0xe beq _02063A42 cmp r0, #0x10 beq _02063A4E add sp, #0xc pop {r4-r7, pc} _02063A42: ldrh r1, [r4, #0xc] mov r0, #0x10 add sp, #0xc orr r0, r1 strh r0, [r4, #0xc] pop {r4-r7, pc} _02063A4E: ldrh r1, [r4, #0xc] mov r0, #0x1 lsl r0, r0, #0x8 orr r0, r1 strh r0, [r4, #0xc] add sp, #0xc pop {r4-r7, pc} thumb_func_start FUN_02063A5C FUN_02063A5C: ; 0x02063A5C push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 mov r0, #0x20 mov r1, #0x10 bl FUN_02016998 ldr r1, _02063A7C ; =0x19740205 str r1, [r0, #0x0] ldr r1, [r4, #0x8] str r1, [r0, #0x4] ldr r2, [r5, #0x0] ldr r1, [r5, #0x4] str r2, [r0, #0x8] str r1, [r0, #0xc] pop {r3-r5, pc} .balign 4 _02063A7C: .word 0x19740205 thumb_func_start FUN_02063A80 FUN_02063A80: ; 0x02063A80 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x0] ldr r0, _02063A98 ; =0x19740205 cmp r1, r0 beq _02063A90 bl ErrorHandling _02063A90: add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} .balign 4 _02063A98: .word 0x19740205 thumb_func_start FUN_02063A9C FUN_02063A9C: ; 0x02063A9C push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x4] ldr r0, [r1, #0x6c] sub r0, r0, #0x2 cmp r0, #0x1 bhi _02063AAE mov r0, #0x1 pop {r4, pc} _02063AAE: ldr r0, [r1, #0xc] bl FUN_020238F4 mov r1, #0x1 bl FUN_020239D0 cmp r0, #0x0 bne _02063AC2 mov r0, #0x2 pop {r4, pc} _02063AC2: ldrh r1, [r4, #0xc] mov r0, #0x1 tst r1, r0 beq _02063ACC mov r0, #0x0 _02063ACC: pop {r4, pc} .balign 4 thumb_func_start FUN_02063AD0 FUN_02063AD0: ; 0x02063AD0 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] add r6, r1, #0x0 bl FUN_0204652C add r4, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02063A5C add r5, r0, #0x0 ldr r0, [r6, #0x4] bl FUN_0204649C mov r0, #0x72 ldr r1, _02063B00 ; =FUN_02063B04 lsl r0, r0, #0x2 str r1, [r4, r0] add r0, #0x30 str r5, [r4, r0] mov r0, #0xa strh r0, [r4, #0x2a] pop {r4-r6, pc} .balign 4 _02063B00: .word FUN_02063B04 thumb_func_start FUN_02063B04 FUN_02063B04: ; 0x02063B04 push {r3-r6, lr} sub sp, #0x4 add r5, r0, #0x0 bl FUN_0204652C add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02046528 add r6, r0, #0x0 ldr r1, _02063B3C ; =0x00002718 ldr r2, [r4, #0x4] add r0, r5, #0x0 bl FUN_02038D10 mov r2, #0x0 str r2, [sp, #0x0] ldrh r1, [r4, #0xc] add r0, r6, #0x0 add r3, r2, #0x0 bl FUN_020395BC add r0, r4, #0x0 bl FUN_02063A80 mov r0, #0x0 add sp, #0x4 pop {r3-r6, pc} .balign 4 _02063B3C: .word 0x00002718 thumb_func_start FUN_02063B40 FUN_02063B40: ; 0x02063B40 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x4] ldr r0, [r1, #0x6c] sub r0, r0, #0x2 cmp r0, #0x1 bhi _02063B52 mov r0, #0x1 pop {r4, pc} _02063B52: ldr r0, [r1, #0xc] bl FUN_020238F4 mov r1, #0x2 bl FUN_020239D0 cmp r0, #0x0 bne _02063B66 mov r0, #0x2 pop {r4, pc} _02063B66: ldr r0, [r4, #0x0] bl FUN_02034898 cmp r0, #0x0 bne _02063B74 mov r0, #0x1 pop {r4, pc} _02063B74: ldr r0, [r4, #0x4] ldr r0, [r0, #0xc] bl FUN_020462AC bl FUN_0205ED3C cmp r0, #0x1 bne _02063B88 mov r0, #0x3 pop {r4, pc} _02063B88: ldr r0, [r4, #0x4] ldr r0, [r0, #0xc] bl FUN_020462AC bl FUN_0205F214 cmp r0, #0x1 beq _02063BA8 ldr r0, [r4, #0x4] ldr r0, [r0, #0xc] bl FUN_020462AC bl FUN_0205F244 cmp r0, #0x1 bne _02063BAC _02063BA8: mov r0, #0x1 b _02063BAE _02063BAC: mov r0, #0x0 _02063BAE: cmp r0, #0x1 bne _02063BB6 mov r0, #0x1 pop {r4, pc} _02063BB6: mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02063BBC FUN_02063BBC: ; 0x02063BBC push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_02046528 add r6, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_0204652C add r4, r0, #0x0 mov r0, #0xb mov r1, #0x4 bl FUN_02016998 ldrh r1, [r5, #0x4] str r1, [r0, #0x0] mov r1, #0x7f lsl r1, r1, #0x2 str r0, [r4, r1] mov r0, #0xb sub r1, #0xbc bl FUN_02016998 mov r1, #0x7e lsl r1, r1, #0x2 str r0, [r4, r1] ldr r1, [r4, r1] add r0, r6, #0x0 mov r2, #0x1 bl FUN_0205F7A0 mov r1, #0x7e lsl r1, r1, #0x2 ldr r1, [r4, r1] add r0, r6, #0x0 bl FUN_02037E90 ldr r1, _02063C10 ; =FUN_02036AB8 add r0, r4, #0x0 bl FUN_02035D04 pop {r4-r6, pc} .balign 4 _02063C10: .word FUN_02036AB8 thumb_func_start FUN_02063C14 FUN_02063C14: ; 0x02063C14 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x4] ldr r0, [r1, #0x6c] sub r0, r0, #0x2 cmp r0, #0x1 bhi _02063C26 mov r0, #0x1 pop {r4, pc} _02063C26: ldr r0, [r1, #0xc] bl FUN_020238F4 mov r1, #0x4 bl FUN_020239D0 cmp r0, #0x0 bne _02063C3A mov r0, #0x2 pop {r4, pc} _02063C3A: ldr r0, [r4, #0x4] ldr r0, [r0, #0x38] bl FUN_020553C4 cmp r0, #0x2 bne _02063C4A mov r0, #0x4 pop {r4, pc} _02063C4A: ldrh r1, [r4, #0xc] mov r0, #0x4 tst r0, r1 bne _02063C56 mov r0, #0x1 pop {r4, pc} _02063C56: ldr r0, [r4, #0x4] ldr r0, [r0, #0xc] bl FUN_020462AC bl FUN_0205ED3C cmp r0, #0x1 bne _02063C6A mov r0, #0x3 pop {r4, pc} _02063C6A: mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02063C70 FUN_02063C70: ; 0x02063C70 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] add r6, r1, #0x0 bl FUN_0204652C add r4, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02063A5C add r5, r0, #0x0 ldr r0, [r6, #0x4] bl FUN_0204649C mov r0, #0x72 ldr r1, _02063CA0 ; =FUN_02063CA4 lsl r0, r0, #0x2 str r1, [r4, r0] add r0, #0x30 str r5, [r4, r0] mov r0, #0xa strh r0, [r4, #0x2a] pop {r4-r6, pc} .balign 4 _02063CA0: .word FUN_02063CA4 thumb_func_start FUN_02063CA4 FUN_02063CA4: ; 0x02063CA4 push {r3-r6, lr} sub sp, #0x4 add r5, r0, #0x0 bl FUN_0204652C add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02046528 add r6, r0, #0x0 ldr r1, _02063CDC ; =0x0000271C add r0, r5, #0x0 mov r2, #0x0 bl FUN_02038D10 mov r2, #0x0 str r2, [sp, #0x0] ldrh r1, [r4, #0xc] add r0, r6, #0x0 add r3, r2, #0x0 bl FUN_020395BC add r0, r4, #0x0 bl FUN_02063A80 mov r0, #0x0 add sp, #0x4 pop {r3-r6, pc} .balign 4 _02063CDC: .word 0x0000271C thumb_func_start FUN_02063CE0 FUN_02063CE0: ; 0x02063CE0 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x4] ldr r0, [r1, #0x6c] sub r0, r0, #0x2 cmp r0, #0x1 bhi _02063CF2 mov r0, #0x1 pop {r4, pc} _02063CF2: ldr r0, [r1, #0xc] bl FUN_020238F4 mov r1, #0x5 bl FUN_020239D0 cmp r0, #0x0 bne _02063D06 mov r0, #0x2 pop {r4, pc} _02063D06: ldrh r1, [r4, #0xc] mov r0, #0x8 tst r0, r1 beq _02063D12 mov r0, #0x0 pop {r4, pc} _02063D12: mov r0, #0x1 pop {r4, pc} .balign 4 thumb_func_start FUN_02063D18 FUN_02063D18: ; 0x02063D18 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] add r6, r1, #0x0 bl FUN_0204652C add r4, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02063A5C add r5, r0, #0x0 ldr r0, [r6, #0x4] bl FUN_0204649C mov r0, #0x72 ldr r1, _02063D48 ; =FUN_02063D4C lsl r0, r0, #0x2 str r1, [r4, r0] add r0, #0x30 str r5, [r4, r0] mov r0, #0xa strh r0, [r4, #0x2a] pop {r4-r6, pc} .balign 4 _02063D48: .word FUN_02063D4C thumb_func_start FUN_02063D4C FUN_02063D4C: ; 0x02063D4C push {r3-r6, lr} sub sp, #0x4 add r5, r0, #0x0 bl FUN_0204652C add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02046528 add r6, r0, #0x0 ldr r1, _02063D84 ; =0x0000271A ldr r2, [r4, #0x4] add r0, r5, #0x0 bl FUN_02038D10 mov r2, #0x0 str r2, [sp, #0x0] ldrh r1, [r4, #0xc] add r0, r6, #0x0 add r3, r2, #0x0 bl FUN_020395BC add r0, r4, #0x0 bl FUN_02063A80 mov r0, #0x0 add sp, #0x4 pop {r3-r6, pc} .balign 4 _02063D84: .word 0x0000271A thumb_func_start FUN_02063D88 FUN_02063D88: ; 0x02063D88 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x4] ldr r0, [r1, #0x6c] sub r0, r0, #0x2 cmp r0, #0x1 bhi _02063D9A mov r0, #0x1 pop {r4, pc} _02063D9A: ldr r0, [r1, #0xc] bl FUN_020238F4 mov r1, #0x3 bl FUN_020239D0 cmp r0, #0x0 bne _02063DAE mov r0, #0x2 pop {r4, pc} _02063DAE: ldrh r1, [r4, #0xc] mov r0, #0x10 tst r0, r1 beq _02063DBA mov r0, #0x0 pop {r4, pc} _02063DBA: mov r0, #0x1 pop {r4, pc} .balign 4 thumb_func_start FUN_02063DC0 FUN_02063DC0: ; 0x02063DC0 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] add r6, r1, #0x0 bl FUN_0204652C add r4, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02063A5C add r5, r0, #0x0 ldr r0, [r6, #0x4] bl FUN_0204649C mov r0, #0x72 ldr r1, _02063DF0 ; =FUN_02063DF4 lsl r0, r0, #0x2 str r1, [r4, r0] add r0, #0x30 str r5, [r4, r0] mov r0, #0xa strh r0, [r4, #0x2a] pop {r4-r6, pc} .balign 4 _02063DF0: .word FUN_02063DF4 thumb_func_start FUN_02063DF4 FUN_02063DF4: ; 0x02063DF4 push {r3-r6, lr} sub sp, #0x4 add r5, r0, #0x0 bl FUN_0204652C add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02046528 add r6, r0, #0x0 ldr r1, _02063E2C ; =0x0000271E add r0, r5, #0x0 mov r2, #0x0 bl FUN_02038D10 mov r2, #0x0 str r2, [sp, #0x0] ldrh r1, [r4, #0xc] add r0, r6, #0x0 add r3, r2, #0x0 bl FUN_020395BC add r0, r4, #0x0 bl FUN_02063A80 mov r0, #0x0 add sp, #0x4 pop {r3-r6, pc} .balign 4 _02063E2C: .word 0x0000271E thumb_func_start FUN_02063E30 FUN_02063E30: ; 0x02063E30 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x4] ldr r0, [r1, #0x6c] sub r0, r0, #0x2 cmp r0, #0x1 bhi _02063E42 mov r0, #0x1 pop {r4, pc} _02063E42: ldr r0, [r1, #0xc] bl FUN_020238F4 mov r1, #0x0 bl FUN_020239D0 cmp r0, #0x0 bne _02063E56 mov r0, #0x2 pop {r4, pc} _02063E56: ldrh r1, [r4, #0xc] mov r0, #0x20 tst r0, r1 beq _02063E62 mov r0, #0x0 pop {r4, pc} _02063E62: mov r0, #0x1 pop {r4, pc} .balign 4 thumb_func_start FUN_02063E68 FUN_02063E68: ; 0x02063E68 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] add r6, r1, #0x0 bl FUN_0204652C add r4, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02063A5C add r5, r0, #0x0 ldr r0, [r6, #0x4] bl FUN_0204649C mov r0, #0x72 ldr r1, _02063E98 ; =FUN_02063E9C lsl r0, r0, #0x2 str r1, [r4, r0] add r0, #0x30 str r5, [r4, r0] mov r0, #0xa strh r0, [r4, #0x2a] pop {r4-r6, pc} .balign 4 _02063E98: .word FUN_02063E9C thumb_func_start FUN_02063E9C FUN_02063E9C: ; 0x02063E9C push {r3-r6, lr} sub sp, #0x4 add r5, r0, #0x0 bl FUN_0204652C add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02046528 add r6, r0, #0x0 ldr r1, _02063ED4 ; =0x00002719 ldr r2, [r4, #0x4] add r0, r5, #0x0 bl FUN_02038D10 mov r2, #0x0 str r2, [sp, #0x0] ldrh r1, [r4, #0xc] add r0, r6, #0x0 add r3, r2, #0x0 bl FUN_020395BC add r0, r4, #0x0 bl FUN_02063A80 mov r0, #0x0 add sp, #0x4 pop {r3-r6, pc} .balign 4 _02063ED4: .word 0x00002719 thumb_func_start FUN_02063ED8 FUN_02063ED8: ; 0x02063ED8 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x4] ldr r0, [r1, #0x6c] sub r0, r0, #0x2 cmp r0, #0x1 bhi _02063EEA mov r0, #0x1 pop {r4, pc} _02063EEA: ldr r0, [r1, #0xc] bl FUN_020238F4 mov r1, #0x7 bl FUN_020239D0 cmp r0, #0x0 bne _02063EFE mov r0, #0x2 pop {r4, pc} _02063EFE: ldrh r1, [r4, #0xc] mov r0, #0x40 tst r0, r1 beq _02063F0A mov r0, #0x0 pop {r4, pc} _02063F0A: mov r0, #0x1 pop {r4, pc} .balign 4 thumb_func_start FUN_02063F10 FUN_02063F10: ; 0x02063F10 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] add r6, r1, #0x0 bl FUN_0204652C add r4, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02063A5C add r5, r0, #0x0 ldr r0, [r6, #0x4] bl FUN_0204649C mov r0, #0x72 ldr r1, _02063F40 ; =FUN_02063F44 lsl r0, r0, #0x2 str r1, [r4, r0] add r0, #0x30 str r5, [r4, r0] mov r0, #0xa strh r0, [r4, #0x2a] pop {r4-r6, pc} .balign 4 _02063F40: .word FUN_02063F44 thumb_func_start FUN_02063F44 FUN_02063F44: ; 0x02063F44 push {r3-r6, lr} sub sp, #0x4 add r5, r0, #0x0 bl FUN_0204652C add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02046528 add r6, r0, #0x0 ldr r1, _02063F7C ; =0x0000271D add r0, r5, #0x0 mov r2, #0x0 bl FUN_02038D10 mov r2, #0x0 str r2, [sp, #0x0] ldrh r1, [r4, #0xc] add r0, r6, #0x0 add r3, r2, #0x0 bl FUN_020395BC add r0, r4, #0x0 bl FUN_02063A80 mov r0, #0x0 add sp, #0x4 pop {r3-r6, pc} .balign 4 _02063F7C: .word 0x0000271D thumb_func_start FUN_02063F80 FUN_02063F80: ; 0x02063F80 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x4] ldr r0, [r1, #0x6c] sub r0, r0, #0x2 cmp r0, #0x1 bhi _02063F92 mov r0, #0x1 pop {r4, pc} _02063F92: ldr r0, [r1, #0xc] bl FUN_020238F4 mov r1, #0x6 bl FUN_020239D0 cmp r0, #0x0 bne _02063FA6 mov r0, #0x2 pop {r4, pc} _02063FA6: ldrh r1, [r4, #0xc] mov r0, #0x80 tst r0, r1 bne _02063FB2 mov r0, #0x1 pop {r4, pc} _02063FB2: ldr r0, [r4, #0x4] ldr r0, [r0, #0xc] bl FUN_020462AC bl FUN_0205ED3C cmp r0, #0x1 bne _02063FC6 mov r0, #0x3 pop {r4, pc} _02063FC6: mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02063FCC FUN_02063FCC: ; 0x02063FCC push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] add r6, r1, #0x0 bl FUN_0204652C add r4, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02063A5C add r5, r0, #0x0 ldr r0, [r6, #0x4] bl FUN_0204649C mov r0, #0x72 ldr r1, _02063FFC ; =FUN_02064000 lsl r0, r0, #0x2 str r1, [r4, r0] add r0, #0x30 str r5, [r4, r0] mov r0, #0xa strh r0, [r4, #0x2a] pop {r4-r6, pc} .balign 4 _02063FFC: .word FUN_02064000 thumb_func_start FUN_02064000 FUN_02064000: ; 0x02064000 push {r3-r6, lr} sub sp, #0x4 add r5, r0, #0x0 bl FUN_0204652C add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02046528 add r6, r0, #0x0 ldr r1, _02064038 ; =0x0000271B add r0, r5, #0x0 mov r2, #0x0 bl FUN_02038D10 mov r2, #0x0 str r2, [sp, #0x0] ldrh r1, [r4, #0xc] add r0, r6, #0x0 add r3, r2, #0x0 bl FUN_020395BC add r0, r4, #0x0 bl FUN_02063A80 mov r0, #0x0 add sp, #0x4 pop {r3-r6, pc} .balign 4 _02064038: .word 0x0000271B thumb_func_start FUN_0206403C FUN_0206403C: ; 0x0206403C ldr r1, [r0, #0x4] ldr r1, [r1, #0x6c] sub r1, r1, #0x2 cmp r1, #0x1 bhi _0206404A mov r0, #0x1 bx lr _0206404A: ldrh r1, [r0, #0xc] mov r0, #0x1 lsl r0, r0, #0x8 tst r0, r1 beq _02064058 mov r0, #0x0 bx lr _02064058: mov r0, #0x1 bx lr thumb_func_start FUN_0206405C FUN_0206405C: ; 0x0206405C push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] add r6, r1, #0x0 bl FUN_0204652C add r4, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02063A5C add r5, r0, #0x0 ldr r0, [r6, #0x4] bl FUN_0204649C mov r0, #0x72 ldr r1, _0206408C ; =FUN_02064090 lsl r0, r0, #0x2 str r1, [r4, r0] add r0, #0x30 str r5, [r4, r0] mov r0, #0xa strh r0, [r4, #0x2a] pop {r4-r6, pc} .balign 4 _0206408C: .word FUN_02064090 thumb_func_start FUN_02064090 FUN_02064090: ; 0x02064090 push {r3-r6, lr} sub sp, #0x4 add r5, r0, #0x0 bl FUN_0204652C add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02046528 add r6, r0, #0x0 ldr r1, _020640C8 ; =0x0000271F add r0, r5, #0x0 mov r2, #0x0 bl FUN_02038D10 mov r2, #0x0 str r2, [sp, #0x0] ldrh r1, [r4, #0xc] add r0, r6, #0x0 add r3, r2, #0x0 bl FUN_020395BC add r0, r4, #0x0 bl FUN_02063A80 mov r0, #0x0 add sp, #0x4 pop {r3-r6, pc} .balign 4 _020640C8: .word 0x0000271F thumb_func_start FUN_020640CC FUN_020640CC: ; 0x020640CC push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x4] ldr r0, [r0, #0x6c] sub r0, r0, #0x2 cmp r0, #0x1 bhi _020640DE mov r0, #0x1 pop {r4, pc} _020640DE: ldr r0, [r4, #0x0] bl FUN_020348E4 cmp r0, #0x0 bne _020640EC mov r0, #0x1 pop {r4, pc} _020640EC: ldr r0, [r4, #0x4] ldr r0, [r0, #0xc] bl FUN_020462AC bl FUN_0205ED3C cmp r0, #0x1 bne _02064100 mov r0, #0x3 pop {r4, pc} _02064100: ldr r0, [r4, #0x4] ldr r0, [r0, #0xc] bl FUN_020462AC bl FUN_0205F214 cmp r0, #0x1 beq _02064120 ldr r0, [r4, #0x4] ldr r0, [r0, #0xc] bl FUN_020462AC bl FUN_0205F244 cmp r0, #0x1 bne _02064124 _02064120: mov r0, #0x1 b _02064126 _02064124: mov r0, #0x0 _02064126: cmp r0, #0x1 bne _0206412E mov r0, #0x1 pop {r4, pc} _0206412E: mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02064134 FUN_02064134: ; 0x02064134 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_02046528 add r6, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_0204652C add r4, r0, #0x0 add r0, r6, #0x0 bl FUN_0204649C ldrh r1, [r5, #0x4] ldr r2, [r6, #0xc] mov r0, #0xb lsl r1, r1, #0x18 lsr r1, r1, #0x18 bl FUN_0206439C mov r1, #0x72 ldr r2, _02064170 ; =FUN_02064174 lsl r1, r1, #0x2 str r2, [r4, r1] add r1, #0x30 str r0, [r4, r1] mov r0, #0xa strh r0, [r4, #0x2a] pop {r4-r6, pc} nop _02064170: .word FUN_02064174 thumb_func_start FUN_02064174 FUN_02064174: ; 0x02064174 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02046528 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldr r1, [r4, #0x0] add r0, r6, #0x0 mov r2, #0x4 bl FUN_0224CB30 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_02016A18 ldr r1, _020641A8 ; =0x0224CB55 add r0, r5, #0x0 add r2, r6, #0x0 bl FUN_020463EC mov r0, #0x0 pop {r4-r6, pc} nop _020641A8: .word 0x0224CB55 thumb_func_start FUN_020641AC FUN_020641AC: ; 0x020641AC push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x4] ldr r0, [r0, #0x6c] sub r0, r0, #0x2 cmp r0, #0x1 bhi _020641BE mov r0, #0x1 pop {r4, pc} _020641BE: ldr r0, [r4, #0x0] bl FUN_02034930 cmp r0, #0x1 bne _020641D2 ldr r0, [r4, #0x0] bl FUN_0203487C cmp r0, #0x1 beq _020641D6 _020641D2: mov r0, #0x1 pop {r4, pc} _020641D6: ldr r0, [r4, #0x4] ldr r0, [r0, #0xc] bl FUN_020462AC bl FUN_0205ED3C cmp r0, #0x1 bne _020641EA mov r0, #0x3 pop {r4, pc} _020641EA: mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_020641F0 FUN_020641F0: ; 0x020641F0 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_02046528 add r6, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_0204652C add r4, r0, #0x0 add r0, r6, #0x0 bl FUN_0204649C ldrh r1, [r5, #0x4] ldr r2, [r6, #0xc] mov r0, #0xb lsl r1, r1, #0x18 lsr r1, r1, #0x18 bl FUN_0206439C mov r1, #0x72 ldr r2, _0206422C ; =FUN_02064230 lsl r1, r1, #0x2 str r2, [r4, r1] add r1, #0x30 str r0, [r4, r1] mov r0, #0xa strh r0, [r4, #0x2a] pop {r4-r6, pc} nop _0206422C: .word FUN_02064230 thumb_func_start FUN_02064230 FUN_02064230: ; 0x02064230 push {r3-r7, lr} add r5, r0, #0x0 bl FUN_02046528 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0204652C add r6, r0, #0x0 ldr r1, [r6, #0x0] add r0, r4, #0x0 mov r2, #0xb bl FUN_0224CA88 ldr r1, [r4, #0x1c] add r7, r0, #0x0 ldr r1, [r1, #0x0] mov r0, #0xa lsl r1, r1, #0x10 lsr r1, r1, #0x10 mov r2, #0x4 bl FUN_0202914C add r4, #0x98 add r1, r0, #0x0 ldr r0, [r4, #0x0] mov r2, #0x1 bl FUN_02028AD4 add r0, r6, #0x0 bl FUN_02016A18 ldr r1, _02064280 ; =0x0224CAAD add r0, r5, #0x0 add r2, r7, #0x0 bl FUN_020463EC mov r0, #0x0 pop {r3-r7, pc} nop _02064280: .word 0x0224CAAD thumb_func_start FUN_02064284 FUN_02064284: ; 0x02064284 push {r3, lr} ldr r1, [r0, #0x4] ldr r0, [r1, #0x6c] sub r0, r0, #0x2 cmp r0, #0x1 bhi _02064294 mov r0, #0x1 pop {r3, pc} _02064294: ldr r0, [r1, #0xc] bl FUN_020462AC bl FUN_0205F244 cmp r0, #0x1 bne _020642A6 mov r0, #0x1 b _020642A8 _020642A6: mov r0, #0x0 _020642A8: cmp r0, #0x1 bne _020642B0 mov r0, #0x1 pop {r3, pc} _020642B0: mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_020642B4 FUN_020642B4: ; 0x020642B4 push {r4-r6, lr} add r6, r0, #0x0 ldr r0, [r6, #0x0] bl FUN_02046528 add r5, r0, #0x0 ldr r0, [r6, #0x0] bl FUN_0204652C ldrh r1, [r6, #0x4] add r4, r0, #0x0 ldr r2, [r5, #0xc] lsl r1, r1, #0x18 mov r0, #0xb lsr r1, r1, #0x18 bl FUN_0206439C add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_0204649C mov r0, #0x72 ldr r1, _0206430C ; =0x021F6361 lsl r0, r0, #0x2 str r1, [r4, r0] add r0, #0x30 str r6, [r4, r0] mov r0, #0xa strh r0, [r4, #0x2a] ldr r1, [r5, #0x1c] mov r0, #0xb ldr r1, [r1, #0x0] add r2, r0, #0x0 lsl r1, r1, #0x10 lsr r1, r1, #0x10 bl FUN_0202914C add r5, #0x98 add r1, r0, #0x0 ldr r0, [r5, #0x0] mov r2, #0x1 bl FUN_02028AD4 pop {r4-r6, pc} .balign 4 _0206430C: .word 0x021F6361 thumb_func_start FUN_02064310 FUN_02064310: ; 0x02064310 ldr r0, [r0, #0x4] ldr r0, [r0, #0x6c] sub r0, r0, #0x2 cmp r0, #0x1 bhi _0206431E mov r0, #0x1 bx lr _0206431E: mov r0, #0x0 bx lr .balign 4 thumb_func_start FUN_02064324 FUN_02064324: ; 0x02064324 push {r3-r7, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] add r6, r1, #0x0 bl FUN_02046528 add r7, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_0204652C add r4, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02063A5C add r5, r0, #0x0 add r0, r7, #0x0 bl FUN_0204649C mov r0, #0x72 ldr r1, _0206435C ; =FUN_02064360 lsl r0, r0, #0x2 str r1, [r4, r0] add r0, #0x30 str r5, [r4, r0] mov r0, #0xa strh r0, [r4, #0x2a] pop {r3-r7, pc} .balign 4 _0206435C: .word FUN_02064360 thumb_func_start FUN_02064360 FUN_02064360: ; 0x02064360 push {r3-r6, lr} sub sp, #0x4 add r5, r0, #0x0 bl FUN_0204652C add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02046528 add r6, r0, #0x0 ldr r1, _02064398 ; =0x000022C4 add r0, r5, #0x0 mov r2, #0x0 bl FUN_02038D10 mov r2, #0x0 str r2, [sp, #0x0] ldrh r1, [r4, #0xc] add r0, r6, #0x0 add r3, r2, #0x0 bl FUN_020395BC add r0, r4, #0x0 bl FUN_02063A80 mov r0, #0x0 add sp, #0x4 pop {r3-r6, pc} .balign 4 _02064398: .word 0x000022C4 thumb_func_start FUN_0206439C FUN_0206439C: ; 0x0206439C push {r4-r6, lr} add r5, r1, #0x0 add r6, r2, #0x0 mov r1, #0x8 bl FUN_020169D8 add r4, r0, #0x0 add r0, r6, #0x0 bl FUN_0206BB1C add r1, r5, #0x0 bl FUN_0206B9B0 str r0, [r4, #0x0] mov r0, #0x0 str r0, [r4, #0x4] add r0, r4, #0x0 pop {r4-r6, pc} thumb_func_start FUN_020643C0 FUN_020643C0: ; 0x020643C0 push {r4-r6, lr} add r5, r0, #0x0 add r6, r1, #0x0 bl FUN_020645DC add r4, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_0206460C str r0, [r4, #0xc] str r6, [r4, #0x0] str r5, [r4, #0x8] add r0, r4, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_020643E0 FUN_020643E0: ; 0x020643E0 push {r4, lr} add r4, r0, #0x0 bl FUN_02064630 add r0, r4, #0x0 bl FUN_02064600 pop {r4, pc} thumb_func_start FUN_020643F0 FUN_020643F0: ; 0x020643F0 push {r4, lr} add r4, r0, #0x0 bl FUN_02064558 add r0, r4, #0x0 bl FUN_020643E0 pop {r4, pc} thumb_func_start FUN_02064400 FUN_02064400: ; 0x02064400 push {r4-r7, lr} sub sp, #0xc str r0, [sp, #0x0] add r7, r1, #0x0 str r2, [sp, #0x4] str r3, [sp, #0x8] mov r4, #0x0 bl FUN_02064698 add r6, r0, #0x0 ldr r0, [sp, #0x0] bl FUN_0206469C add r5, r0, #0x0 _0206441C: add r0, r5, #0x0 bl FUN_020646A0 cmp r0, #0x0 beq _0206442E add r4, r4, #0x1 add r5, #0xc8 cmp r4, r6 blt _0206441C _0206442E: cmp r4, r6 blt _02064438 add sp, #0xc mov r0, #0x0 pop {r4-r7, pc} _02064438: add r0, r5, #0x0 bl FUN_020646AC ldr r1, [sp, #0x8] add r0, r5, #0x0 bl FUN_02064750 ldr r1, [sp, #0x20] add r0, r5, #0x0 bl FUN_02064758 ldr r1, [sp, #0x0] add r0, r5, #0x0 bl FUN_02064768 ldr r1, [sp, #0x4] add r0, r5, #0x0 bl FUN_0206476C ldr r1, [r7, #0x0] add r0, r5, #0x0 bl FUN_0206473C ldr r1, [r7, #0x4] add r0, r5, #0x0 bl FUN_020646B8 ldr r1, [r7, #0x8] add r0, r5, #0x0 bl FUN_0206470C ldr r1, [r7, #0xc] add r0, r5, #0x0 bl FUN_020646D4 ldr r1, [r7, #0x10] add r0, r5, #0x0 bl FUN_020646F0 ldr r1, [r7, #0x14] add r0, r5, #0x0 bl FUN_02064728 ldr r1, [r7, #0x18] add r0, r5, #0x0 bl FUN_02064730 ldr r1, [sp, #0x24] add r0, r5, #0x0 bl FUN_020645B0 add r4, r0, #0x0 bne _020644AE add r0, r5, #0x0 bl FUN_02064640 add sp, #0xc mov r0, #0x0 pop {r4-r7, pc} _020644AE: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02064760 add r0, r5, #0x0 bl FUN_020646C0 cmp r0, #0x0 bne _020644D2 add r0, r4, #0x0 bl FUN_0200CAB4 add r0, r5, #0x0 bl FUN_02064640 add sp, #0xc mov r0, #0x0 pop {r4-r7, pc} _020644D2: ldr r0, [sp, #0x0] ldr r0, [r0, #0x4] add r1, r0, #0x1 ldr r0, [sp, #0x0] str r1, [r0, #0x4] add r0, r5, #0x0 add sp, #0xc pop {r4-r7, pc} .balign 4 thumb_func_start FUN_020644E4 FUN_020644E4: ; 0x020644E4 push {r4-r7, lr} sub sp, #0x24 add r5, r1, #0x0 add r6, r0, #0x0 add r4, sp, #0x8 ldmia r5!, {r0-r1} add r7, r4, #0x0 stmia r4!, {r0-r1} ldmia r5!, {r0-r1} stmia r4!, {r0-r1} ldr r0, [r5, #0x0] add r1, r7, #0x0 str r0, [r4, #0x0] ldr r0, _02064518 ; =FUN_0206479C str r0, [sp, #0x1c] ldr r0, _0206451C ; =FUN_020647A0 str r0, [sp, #0x20] ldr r0, [sp, #0x38] str r0, [sp, #0x0] ldr r0, [sp, #0x3c] str r0, [sp, #0x4] add r0, r6, #0x0 bl FUN_02064400 add sp, #0x24 pop {r4-r7, pc} .balign 4 _02064518: .word FUN_0206479C _0206451C: .word FUN_020647A0 thumb_func_start FUN_02064520 FUN_02064520: ; 0x02064520 push {r4, lr} add r4, r0, #0x0 bne _0206452A bl ErrorHandling _0206452A: add r0, r4, #0x0 bl FUN_020646A0 cmp r0, #0x0 beq _02064556 add r0, r4, #0x0 bl FUN_02064714 ldr r1, [r4, #0x14] ldr r0, [r1, #0x4] sub r0, r0, #0x1 str r0, [r1, #0x4] add r0, r4, #0x0 bl FUN_02064764 cmp r0, #0x0 beq _02064550 bl FUN_0200CAB4 _02064550: add r0, r4, #0x0 bl FUN_02064640 _02064556: pop {r4, pc} thumb_func_start FUN_02064558 FUN_02064558: ; 0x02064558 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02064698 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0206469C add r5, r0, #0x0 _0206456A: add r0, r5, #0x0 bl FUN_020646A0 cmp r0, #0x1 bne _0206457A add r0, r5, #0x0 bl FUN_02064520 _0206457A: add r5, #0xc8 sub r4, r4, #0x1 bne _0206456A pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02064584 FUN_02064584: ; 0x02064584 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02064698 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0206469C add r5, r0, #0x0 _02064596: add r0, r5, #0x0 bl FUN_020646A0 cmp r0, #0x1 bne _020645A6 add r0, r5, #0x0 bl FUN_020646F8 _020645A6: add r5, #0xc8 sub r4, r4, #0x1 bne _02064596 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020645B0 FUN_020645B0: ; 0x020645B0 push {r4, lr} add r3, r0, #0x0 add r2, r1, #0x0 ldr r0, _020645CC ; =FUN_020645D0 add r1, r3, #0x0 bl FUN_0200CA44 add r4, r0, #0x0 bne _020645C6 bl ErrorHandling _020645C6: add r0, r4, #0x0 pop {r4, pc} nop _020645CC: .word FUN_020645D0 thumb_func_start FUN_020645D0 FUN_020645D0: ; 0x020645D0 ldr r3, _020645D8 ; =FUN_020646DC add r0, r1, #0x0 bx r3 nop _020645D8: .word FUN_020646DC thumb_func_start FUN_020645DC FUN_020645DC: ; 0x020645DC push {r4, lr} mov r1, #0x10 bl FUN_02016998 add r4, r0, #0x0 bne _020645EC bl ErrorHandling _020645EC: add r2, r4, #0x0 mov r1, #0x10 mov r0, #0x0 _020645F2: strb r0, [r2, #0x0] add r2, r2, #0x1 sub r1, r1, #0x1 bne _020645F2 add r0, r4, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02064600 FUN_02064600: ; 0x02064600 ldr r3, _02064608 ; =FUN_02016A8C add r1, r0, #0x0 ldr r0, [r1, #0x8] bx r3 .balign 4 _02064608: .word FUN_02016A8C thumb_func_start FUN_0206460C FUN_0206460C: ; 0x0206460C push {r3-r5, lr} mov r2, #0xc8 add r5, r1, #0x0 mul r5, r2 add r1, r5, #0x0 bl FUN_02016998 add r4, r0, #0x0 bne _02064622 bl ErrorHandling _02064622: add r0, r4, #0x0 mov r1, #0x0 add r2, r5, #0x0 blx FUN_020DF4A4 add r0, r4, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02064630 FUN_02064630: ; 0x02064630 ldr r3, _0206463C ; =FUN_02016A8C add r1, r0, #0x0 ldr r0, [r1, #0x8] ldr r1, [r1, #0xc] bx r3 nop _0206463C: .word FUN_02016A8C thumb_func_start FUN_02064640 FUN_02064640: ; 0x02064640 push {r4, lr} mov r1, #0x0 mov r2, #0xc8 add r4, r0, #0x0 blx FUN_020DF4A4 ldr r1, _02064680 ; =FUN_0206478C add r0, r4, #0x0 bl FUN_020646B8 ldr r1, _02064684 ; =FUN_02064798 add r0, r4, #0x0 bl FUN_0206470C ldr r1, _02064688 ; =FUN_02064790 add r0, r4, #0x0 bl FUN_020646D4 ldr r1, _0206468C ; =FUN_02064794 add r0, r4, #0x0 bl FUN_020646F0 ldr r1, _02064690 ; =FUN_0206479C add r0, r4, #0x0 bl FUN_02064728 ldr r1, _02064694 ; =FUN_020647A0 add r0, r4, #0x0 bl FUN_02064730 pop {r4, pc} nop _02064680: .word FUN_0206478C _02064684: .word FUN_02064798 _02064688: .word FUN_02064790 _0206468C: .word FUN_02064794 _02064690: .word FUN_0206479C _02064694: .word FUN_020647A0 thumb_func_start FUN_02064698 FUN_02064698: ; 0x02064698 ldr r0, [r0, #0x0] bx lr thumb_func_start FUN_0206469C FUN_0206469C: ; 0x0206469C ldr r0, [r0, #0xc] bx lr thumb_func_start FUN_020646A0 FUN_020646A0: ; 0x020646A0 ldr r1, [r0, #0x0] mov r0, #0x1 tst r1, r0 bne _020646AA mov r0, #0x0 _020646AA: bx lr thumb_func_start FUN_020646AC FUN_020646AC: ; 0x020646AC ldr r2, [r0, #0x0] mov r1, #0x1 orr r1, r2 str r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_020646B8 FUN_020646B8: ; 0x020646B8 add r0, #0xb0 str r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_020646C0 FUN_020646C0: ; 0x020646C0 push {r4, lr} add r4, r0, #0x0 bl FUN_02064738 add r1, r0, #0x0 add r0, r4, #0x0 add r4, #0xb0 ldr r2, [r4, #0x0] blx r2 pop {r4, pc} thumb_func_start FUN_020646D4 FUN_020646D4: ; 0x020646D4 add r0, #0xb4 str r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_020646DC FUN_020646DC: ; 0x020646DC push {r4, lr} add r4, r0, #0x0 bl FUN_02064738 add r1, r0, #0x0 add r0, r4, #0x0 add r4, #0xb4 ldr r2, [r4, #0x0] blx r2 pop {r4, pc} thumb_func_start FUN_020646F0 FUN_020646F0: ; 0x020646F0 add r0, #0xb8 str r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_020646F8 FUN_020646F8: ; 0x020646F8 push {r4, lr} add r4, r0, #0x0 bl FUN_02064738 add r1, r0, #0x0 add r0, r4, #0x0 add r4, #0xb8 ldr r2, [r4, #0x0] blx r2 pop {r4, pc} thumb_func_start FUN_0206470C FUN_0206470C: ; 0x0206470C add r0, #0xbc str r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02064714 FUN_02064714: ; 0x02064714 push {r4, lr} add r4, r0, #0x0 bl FUN_02064738 add r1, r0, #0x0 add r0, r4, #0x0 add r4, #0xbc ldr r2, [r4, #0x0] blx r2 pop {r4, pc} thumb_func_start FUN_02064728 FUN_02064728: ; 0x02064728 add r0, #0xc0 str r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02064730 FUN_02064730: ; 0x02064730 add r0, #0xc4 str r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02064738 FUN_02064738: ; 0x02064738 add r0, #0x30 bx lr thumb_func_start FUN_0206473C FUN_0206473C: ; 0x0206473C push {r4, lr} add r4, r1, #0x0 bl FUN_02064738 mov r1, #0x0 add r2, r4, #0x0 blx FUN_020DF4A4 pop {r4, pc} .balign 4 thumb_func_start FUN_02064750 FUN_02064750: ; 0x02064750 str r1, [r0, #0x4] bx lr thumb_func_start FUN_02064754 FUN_02064754: ; 0x02064754 ldr r0, [r0, #0x4] bx lr thumb_func_start FUN_02064758 FUN_02064758: ; 0x02064758 str r1, [r0, #0xc] bx lr thumb_func_start FUN_0206475C FUN_0206475C: ; 0x0206475C ldr r0, [r0, #0xc] bx lr thumb_func_start FUN_02064760 FUN_02064760: ; 0x02064760 str r1, [r0, #0x10] bx lr thumb_func_start FUN_02064764 FUN_02064764: ; 0x02064764 ldr r0, [r0, #0x10] bx lr thumb_func_start FUN_02064768 FUN_02064768: ; 0x02064768 str r1, [r0, #0x14] bx lr thumb_func_start FUN_0206476C FUN_0206476C: ; 0x0206476C add r3, r1, #0x0 add r2, r0, #0x0 ldmia r3!, {r0-r1} add r2, #0x24 stmia r2!, {r0-r1} ldr r0, [r3, #0x0] str r0, [r2, #0x0] bx lr thumb_func_start FUN_0206477C FUN_0206477C: ; 0x0206477C add r2, r0, #0x0 add r2, #0x24 add r3, r1, #0x0 ldmia r2!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r2, #0x0] str r0, [r3, #0x0] bx lr thumb_func_start FUN_0206478C FUN_0206478C: ; 0x0206478C mov r0, #0x1 bx lr thumb_func_start FUN_02064790 FUN_02064790: ; 0x02064790 bx lr .balign 4 thumb_func_start FUN_02064794 FUN_02064794: ; 0x02064794 bx lr .balign 4 thumb_func_start FUN_02064798 FUN_02064798: ; 0x02064798 bx lr .balign 4 thumb_func_start FUN_0206479C FUN_0206479C: ; 0x0206479C bx lr .balign 4 thumb_func_start FUN_020647A0 FUN_020647A0: ; 0x020647A0 bx lr .balign 4 thumb_func_start FUN_020647A4 FUN_020647A4: ; 0x020647A4 push {r3-r7, lr} sub sp, #0x30 add r4, r0, #0x0 bl FUN_020377AC bl FUN_02024ED8 mov r1, #0x7 bl FUN_020254A0 ldrh r1, [r0, #0x2] ldrh r0, [r0, #0x0] ldr r3, _0206485C ; =0x020F7D70 mov r7, #0x18 add r2, r1, #0x0 mul r2, r7 add r6, r3, r2 lsl r0, r0, #0x2 ldr r5, [r6, r0] ldr r0, [r6, #0x14] cmp r0, #0x0 beq _0206480A ldr r3, _02064860 ; =0x020F7D64 add r2, sp, #0x24 ldmia r3!, {r0-r1} mov r12, r2 stmia r2!, {r0-r1} ldr r0, [r3, #0x0] add r7, #0xea str r0, [r2, #0x0] str r5, [sp, #0x28] mov r0, #0x0 str r0, [sp, #0x0] ldr r0, [r4, #0x4c] add r2, r7, #0x0 str r0, [sp, #0x4] add r0, r4, #0x0 add r0, #0xa0 ldr r0, [r0, #0x0] ldr r1, [r4, #0x2c] mov r3, r12 bl FUN_021E7FBC add r0, r4, #0x0 add r0, #0xa0 ldr r0, [r0, #0x0] ldr r1, _02064864 ; =0x00000102 bl FUN_021E7ED8 str r0, [sp, #0x14] b _0206482C _0206480A: ldr r0, _02064868 ; =0x020F7D4C add r1, sp, #0xc ldr r2, [r0, #0x8] ldr r0, [r0, #0xc] str r2, [sp, #0xc] str r0, [sp, #0x10] mov r0, #0x0 str r0, [sp, #0x0] add r0, r4, #0x0 mov r2, #0x2 add r3, sp, #0x14 bl FUN_0204AA5C cmp r0, #0x0 bne _0206482C bl ErrorHandling _0206482C: ldr r1, [sp, #0x14] add r0, sp, #0x18 bl FUN_021E7EA0 ldr r0, [sp, #0x14] add r1, sp, #0x18 str r5, [sp, #0x1c] bl FUN_021E7EB0 mov r0, #0x2 str r0, [sp, #0x0] str r5, [sp, #0x4] add r4, #0x9c ldr r0, [r4, #0x0] mov r3, #0x3 str r0, [sp, #0x8] ldr r1, [r6, #0x8] ldr r2, [r6, #0xc] mov r0, #0x0 bl FUN_021F44D8 add sp, #0x30 pop {r3-r7, pc} nop _0206485C: .word 0x020F7D70 _02064860: .word 0x020F7D64 _02064864: .word 0x00000102 _02064868: .word 0x020F7D4C thumb_func_start FUN_0206486C FUN_0206486C: ; 0x0206486C push {r3-r5, lr} add r4, r0, #0x0 bl FUN_020377AC bl FUN_02024ED8 add r5, r0, #0x0 mov r1, #0x7 bl FUN_02025490 add r0, r5, #0x0 mov r1, #0x7 bl FUN_020254A0 mov r3, #0x1 str r3, [r0, #0x4] mov r2, #0x0 str r2, [r0, #0x8] ldr r4, [r4, #0x1c] ldr r5, _020649A8 ; =0x00000123 ldr r1, [r4, #0x0] cmp r1, r5 bgt _020648C4 bge _020648D6 add r5, r1, #0x0 sub r5, #0xb0 cmp r5, #0x9 bhi _020649A0 add r5, r5, r5 add r5, pc ldrh r5, [r5, #0x6] lsl r5, r5, #0x10 asr r5, r5, #0x10 add pc, r5 _020648B0: ; jump table (using 16-bit offset) .short _02064910 - _020648B0 - 2; case 0 .short _020649A0 - _020648B0 - 2; case 1 .short _02064928 - _020648B0 - 2; case 2 .short _020649A0 - _020648B0 - 2; case 3 .short _02064940 - _020648B0 - 2; case 4 .short _020649A0 - _020648B0 - 2; case 5 .short _02064958 - _020648B0 - 2; case 6 .short _020649A0 - _020648B0 - 2; case 7 .short _02064970 - _020648B0 - 2; case 8 .short _02064988 - _020648B0 - 2; case 9 _020648C4: ldr r2, _020649AC ; =0x00000125 cmp r1, r2 bgt _020648CE beq _020648E8 b _020649A0 _020648CE: add r2, r2, #0x1 cmp r1, r2 beq _020648FC b _020649A0 _020648D6: ldr r1, [r4, #0xc] cmp r1, #0x1a bne _020648E0 strh r2, [r0, #0x0] b _020648E2 _020648E0: strh r3, [r0, #0x0] _020648E2: mov r1, #0x0 strh r1, [r0, #0x2] pop {r3-r5, pc} _020648E8: ldr r1, [r4, #0xc] cmp r1, #0x30 bne _020648F2 mov r1, #0x0 b _020648F4 _020648F2: mov r1, #0x1 _020648F4: strh r1, [r0, #0x0] mov r1, #0x1 strh r1, [r0, #0x2] pop {r3-r5, pc} _020648FC: ldr r1, [r4, #0xc] cmp r1, #0xf bne _02064906 mov r1, #0x0 b _02064908 _02064906: mov r1, #0x1 _02064908: strh r1, [r0, #0x0] mov r1, #0x2 strh r1, [r0, #0x2] pop {r3-r5, pc} _02064910: ldr r1, [r4, #0xc] cmp r1, #0xf bne _0206491A strh r2, [r0, #0x0] b _0206491E _0206491A: strh r3, [r0, #0x0] str r2, [r0, #0x4] _0206491E: mov r1, #0x3 strh r1, [r0, #0x2] mov r1, #0x1 str r1, [r0, #0x8] pop {r3-r5, pc} _02064928: ldr r1, [r4, #0xc] cmp r1, #0xf bne _02064932 strh r2, [r0, #0x0] b _02064936 _02064932: strh r3, [r0, #0x0] str r2, [r0, #0x4] _02064936: mov r1, #0x4 strh r1, [r0, #0x2] mov r1, #0x1 str r1, [r0, #0x8] pop {r3-r5, pc} _02064940: ldr r1, [r4, #0xc] cmp r1, #0xf bne _0206494A strh r2, [r0, #0x0] b _0206494E _0206494A: strh r3, [r0, #0x0] str r2, [r0, #0x4] _0206494E: mov r1, #0x5 strh r1, [r0, #0x2] mov r1, #0x1 str r1, [r0, #0x8] pop {r3-r5, pc} _02064958: ldr r1, [r4, #0xc] cmp r1, #0xf bne _02064962 strh r2, [r0, #0x0] b _02064966 _02064962: strh r3, [r0, #0x0] str r2, [r0, #0x4] _02064966: mov r1, #0x6 strh r1, [r0, #0x2] mov r1, #0x1 str r1, [r0, #0x8] pop {r3-r5, pc} _02064970: ldr r1, [r4, #0xc] cmp r1, #0x17 bne _0206497A strh r2, [r0, #0x0] b _0206497E _0206497A: strh r3, [r0, #0x0] str r2, [r0, #0x4] _0206497E: mov r1, #0x7 strh r1, [r0, #0x2] mov r1, #0x1 str r1, [r0, #0x8] pop {r3-r5, pc} _02064988: ldr r1, [r4, #0xc] cmp r1, #0x12 bne _02064992 strh r2, [r0, #0x0] b _02064996 _02064992: strh r3, [r0, #0x0] str r2, [r0, #0x4] _02064996: mov r1, #0x8 strh r1, [r0, #0x2] mov r1, #0x1 str r1, [r0, #0x8] pop {r3-r5, pc} _020649A0: bl ErrorHandling pop {r3-r5, pc} nop _020649A8: .word 0x00000123 _020649AC: .word 0x00000125 thumb_func_start FUN_020649B0 FUN_020649B0: ; 0x020649B0 push {r3, lr} bl FUN_020377AC bl FUN_02024ED8 mov r1, #0x7 bl FUN_020254A0 ldr r0, [r0, #0x4] cmp r0, #0x0 beq _020649CA mov r0, #0x1 b _020649CC _020649CA: mov r0, #0x0 _020649CC: lsl r0, r0, #0x18 lsr r0, r0, #0x18 pop {r3, pc} .balign 4 thumb_func_start FUN_020649D4 FUN_020649D4: ; 0x020649D4 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_020377AC bl FUN_02024ED8 mov r1, #0x7 bl FUN_020254A0 add r4, r0, #0x0 ldrh r1, [r4, #0x2] mov r0, #0x18 add r2, r1, #0x0 mul r2, r0 ldr r0, _02064A58 ; =0x020F7D80 ldr r0, [r0, r2] cmp r0, #0x0 beq _020649FE ldrh r0, [r4, #0x0] cmp r0, #0x1 beq _02064A54 _020649FE: mov r0, #0xb mov r1, #0x10 bl FUN_020169D8 add r2, r0, #0x0 mov r0, #0x0 str r0, [r2, #0x0] ldrh r1, [r4, #0x2] mov r0, #0x18 add r3, r1, #0x0 ldr r1, _02064A5C ; =0x020F7D84 mul r3, r0 ldr r1, [r1, r3] str r1, [r2, #0x8] ldr r1, [r4, #0x8] str r1, [r2, #0xc] ldrh r1, [r4, #0x0] cmp r1, #0x0 ldrh r1, [r4, #0x2] bne _02064A3E add r3, r1, #0x0 mul r3, r0 ldr r0, _02064A60 ; =0x020F7D74 ldr r1, _02064A64 ; =FUN_02064A70 ldr r0, [r0, r3] str r0, [r2, #0x4] ldr r0, [r5, #0x10] bl FUN_0204640C mov r0, #0x1 strh r0, [r4, #0x0] pop {r3-r5, pc} _02064A3E: add r3, r1, #0x0 mul r3, r0 ldr r0, _02064A68 ; =0x020F7D70 ldr r1, _02064A6C ; =FUN_02064B70 ldr r0, [r0, r3] str r0, [r2, #0x4] ldr r0, [r5, #0x10] bl FUN_0204640C mov r0, #0x0 strh r0, [r4, #0x0] _02064A54: pop {r3-r5, pc} nop _02064A58: .word 0x020F7D80 _02064A5C: .word 0x020F7D84 _02064A60: .word 0x020F7D74 _02064A64: .word FUN_02064A70 _02064A68: .word 0x020F7D70 _02064A6C: .word FUN_02064B70 thumb_func_start FUN_02064A70 FUN_02064A70: ; 0x02064A70 push {r4-r5, lr} sub sp, #0x1c add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldr r1, [r4, #0x0] cmp r1, #0x3 bhi _02064B5C add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02064A96: ; jump table (using 16-bit offset) .short _02064A9E - _02064A96 - 2; case 0 .short _02064AB4 - _02064A96 - 2; case 1 .short _02064B2E - _02064A96 - 2; case 2 .short _02064B52 - _02064A96 - 2; case 3 _02064A9E: ldr r0, [r5, #0x38] mov r1, #0x0 bl FUN_02055560 ldr r0, [r4, #0xc] bl FUN_02064C64 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02064B5C _02064AB4: ldr r0, [r4, #0x8] cmp r0, #0x0 beq _02064ACA add r0, r5, #0x0 add r0, #0xa0 ldr r0, [r0, #0x0] ldr r1, _02064B64 ; =0x00000102 bl FUN_021E7ED8 str r0, [sp, #0xc] b _02064AEC _02064ACA: ldr r0, _02064B68 ; =0x020F7D4C add r1, sp, #0x4 ldr r2, [r0, #0x0] ldr r0, [r0, #0x4] str r2, [sp, #0x4] str r0, [sp, #0x8] mov r0, #0x0 str r0, [sp, #0x0] add r0, r5, #0x0 mov r2, #0x2 add r3, sp, #0xc bl FUN_0204AA5C cmp r0, #0x0 bne _02064AEC bl ErrorHandling _02064AEC: ldr r1, [sp, #0xc] add r0, sp, #0x10 bl FUN_021E7EA0 ldr r0, [r4, #0xc] cmp r0, #0x0 bne _02064AFE mov r1, #0x1 b _02064B00 _02064AFE: mov r1, #0x2 _02064B00: ldr r0, [sp, #0x14] lsl r1, r1, #0xc add r1, r0, r1 str r1, [sp, #0x14] ldr r0, [r4, #0x4] cmp r1, r0 blt _02064B1C str r0, [sp, #0x14] ldr r0, [r4, #0xc] bl FUN_02064C84 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] _02064B1C: ldr r0, [r5, #0x38] ldr r1, [sp, #0x14] bl FUN_02055540 ldr r0, [sp, #0xc] add r1, sp, #0x10 bl FUN_021E7EB0 b _02064B5C _02064B2E: add r2, r5, #0x0 add r2, #0x9c ldr r1, [r4, #0x4] ldr r2, [r2, #0x0] mov r0, #0x0 bl FUN_021F4594 ldr r0, [r5, #0x38] mov r1, #0x1 bl FUN_0205557C ldr r0, _02064B6C ; =0x0000061A bl FUN_020054C8 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02064B5C _02064B52: bl FUN_02016A18 add sp, #0x1c mov r0, #0x1 pop {r4-r5, pc} _02064B5C: mov r0, #0x0 add sp, #0x1c pop {r4-r5, pc} nop _02064B64: .word 0x00000102 _02064B68: .word 0x020F7D4C _02064B6C: .word 0x0000061A thumb_func_start FUN_02064B70 FUN_02064B70: ; 0x02064B70 push {r4-r5, lr} sub sp, #0x1c add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldr r1, [r4, #0x0] cmp r1, #0x3 bhi _02064C52 add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02064B96: ; jump table (using 16-bit offset) .short _02064B9E - _02064B96 - 2; case 0 .short _02064BB4 - _02064B96 - 2; case 1 .short _02064C24 - _02064B96 - 2; case 2 .short _02064C48 - _02064B96 - 2; case 3 _02064B9E: ldr r0, [r5, #0x38] mov r1, #0x0 bl FUN_02055560 ldr r0, [r4, #0xc] bl FUN_02064C64 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02064C52 _02064BB4: ldr r0, [r4, #0x8] cmp r0, #0x0 beq _02064BCA add r0, r5, #0x0 add r0, #0xa0 ldr r0, [r0, #0x0] ldr r1, _02064C58 ; =0x00000102 bl FUN_021E7ED8 str r0, [sp, #0xc] b _02064BEC _02064BCA: ldr r0, _02064C5C ; =0x020F7D4C add r1, sp, #0x4 ldr r2, [r0, #0x10] ldr r0, [r0, #0x14] str r2, [sp, #0x4] str r0, [sp, #0x8] mov r0, #0x0 str r0, [sp, #0x0] add r0, r5, #0x0 mov r2, #0x2 add r3, sp, #0xc bl FUN_0204AA5C cmp r0, #0x0 bne _02064BEC bl ErrorHandling _02064BEC: ldr r1, [sp, #0xc] add r0, sp, #0x10 bl FUN_021E7EA0 mov r0, #0x1 ldr r1, [sp, #0x14] lsl r0, r0, #0xc sub r1, r1, r0 str r1, [sp, #0x14] ldr r0, [r4, #0x4] cmp r1, r0 bgt _02064C12 str r0, [sp, #0x14] ldr r0, [r4, #0xc] bl FUN_02064C84 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] _02064C12: ldr r0, [r5, #0x38] ldr r1, [sp, #0x14] bl FUN_02055540 ldr r0, [sp, #0xc] add r1, sp, #0x10 bl FUN_021E7EB0 b _02064C52 _02064C24: add r2, r5, #0x0 add r2, #0x9c ldr r1, [r4, #0x4] ldr r2, [r2, #0x0] mov r0, #0x0 bl FUN_021F4594 ldr r0, [r5, #0x38] mov r1, #0x1 bl FUN_0205557C ldr r0, _02064C60 ; =0x0000061A bl FUN_020054C8 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _02064C52 _02064C48: bl FUN_02016A18 add sp, #0x1c mov r0, #0x1 pop {r4-r5, pc} _02064C52: mov r0, #0x0 add sp, #0x1c pop {r4-r5, pc} .balign 4 _02064C58: .word 0x00000102 _02064C5C: .word 0x020F7D4C _02064C60: .word 0x0000061A thumb_func_start FUN_02064C64 FUN_02064C64: ; 0x02064C64 push {r3, lr} cmp r0, #0x0 bne _02064C72 ldr r0, _02064C7C ; =0x00000611 bl FUN_020054C8 pop {r3, pc} _02064C72: ldr r0, _02064C80 ; =0x00000614 bl FUN_020054C8 pop {r3, pc} nop _02064C7C: .word 0x00000611 _02064C80: .word 0x00000614 thumb_func_start FUN_02064C84 FUN_02064C84: ; 0x02064C84 push {r3, lr} cmp r0, #0x0 bne _02064C94 ldr r0, _02064CA0 ; =0x00000611 mov r1, #0x0 bl FUN_020054F0 pop {r3, pc} _02064C94: ldr r0, _02064CA4 ; =0x00000614 mov r1, #0x0 bl FUN_020054F0 pop {r3, pc} nop _02064CA0: .word 0x00000611 _02064CA4: .word 0x00000614 thumb_func_start FUN_02064CA8 FUN_02064CA8: ; 0x02064CA8 push {r4, lr} bl FUN_020377AC bl FUN_02024ED8 add r4, r0, #0x0 mov r1, #0x1 bl FUN_02025490 add r0, r4, #0x0 mov r1, #0x1 bl FUN_020254A0 mov r1, #0x1 strb r1, [r0, #0x0] pop {r4, pc} thumb_func_start FUN_02064CC8 FUN_02064CC8: ; 0x02064CC8 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_020377AC bl FUN_02024ED8 add r4, r0, #0x0 mov r1, #0x2 bl FUN_02025490 add r0, r4, #0x0 mov r1, #0x2 bl FUN_020254A0 add r4, r0, #0x0 ldr r0, [r5, #0x1c] ldr r0, [r0, #0xc] cmp r0, #0x16 bne _02064D08 ldr r0, [r5, #0xc] bl FUN_020462AC bl FUN_0205ECEC cmp r0, #0x0 beq _02064D02 mov r0, #0x0 strb r0, [r4, #0x0] pop {r3-r5, pc} _02064D02: mov r0, #0x1 strb r0, [r4, #0x0] pop {r3-r5, pc} _02064D08: mov r0, #0x1 strb r0, [r4, #0x0] pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02064D10 FUN_02064D10: ; 0x02064D10 push {r4-r6, lr} bl FUN_020377AC bl FUN_02024ED8 add r4, r0, #0x0 mov r1, #0x3 bl FUN_02025490 add r0, r4, #0x0 mov r1, #0x3 bl FUN_020254A0 ldr r5, _02064D48 ; =0x020F7E54 add r6, r0, #0x0 mov r4, #0x0 _02064D30: ldrb r1, [r5, #0x0] lsl r0, r4, #0x18 lsr r0, r0, #0x18 add r2, r6, #0x0 bl FUN_02064DEC add r4, r4, #0x1 add r5, r5, #0x1 cmp r4, #0x18 blt _02064D30 pop {r4-r6, pc} nop _02064D48: .word 0x020F7E54 thumb_func_start FUN_02064D4C FUN_02064D4C: ; 0x02064D4C push {r4-r6, lr} bl FUN_020377AC bl FUN_02024ED8 add r4, r0, #0x0 mov r1, #0x4 bl FUN_02025490 add r0, r4, #0x0 mov r1, #0x4 bl FUN_020254A0 ldr r5, _02064D84 ; =0x020F7E48 add r6, r0, #0x0 mov r4, #0x0 _02064D6C: ldrb r1, [r5, #0x0] lsl r0, r4, #0x18 lsr r0, r0, #0x18 add r2, r6, #0x0 bl FUN_02064DEC add r4, r4, #0x1 add r5, r5, #0x1 cmp r4, #0xc blt _02064D6C pop {r4-r6, pc} nop _02064D84: .word 0x020F7E48 thumb_func_start FUN_02064D88 FUN_02064D88: ; 0x02064D88 push {r3-r7, lr} add r5, r1, #0x0 add r7, r0, #0x0 cmp r5, #0x3 blo _02064D96 bl ErrorHandling _02064D96: add r0, r7, #0x0 bl FUN_020377AC bl FUN_02024ED8 add r4, r0, #0x0 mov r1, #0x5 bl FUN_02025490 add r0, r4, #0x0 mov r1, #0x5 bl FUN_020254A0 add r4, r0, #0x0 str r5, [r4, #0x4] cmp r5, #0x0 beq _02064DC2 cmp r5, #0x1 beq _02064DCA cmp r5, #0x2 beq _02064DD2 b _02064DDA _02064DC2: mov r0, #0x2 str r0, [r4, #0x0] mov r6, #0xe b _02064DDE _02064DCA: mov r0, #0x1 str r0, [r4, #0x0] mov r6, #0x15 b _02064DDE _02064DD2: mov r0, #0x0 str r0, [r4, #0x0] mov r6, #0x19 b _02064DDE _02064DDA: bl ErrorHandling _02064DDE: ldr r0, [r7, #0x1c] ldr r0, [r0, #0xc] cmp r0, r6 bne _02064DEA mov r0, #0x0 str r0, [r4, #0x0] _02064DEA: pop {r3-r7, pc} thumb_func_start FUN_02064DEC FUN_02064DEC: ; 0x02064DEC push {r4-r6, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r6, r2, #0x0 cmp r4, #0x1 bls _02064DFC bl ErrorHandling _02064DFC: mov r0, #0x0 mvn r0, r0 mov r1, #0x20 ldr r2, [r6, #0x0] sub r1, r1, r5 add r3, r0, #0x0 lsr r3, r1 add r1, r2, #0x0 and r1, r3 add r3, r5, #0x1 lsl r0, r3 and r2, r0 add r0, r4, #0x0 lsl r0, r5 orr r0, r2 orr r0, r1 str r0, [r6, #0x0] pop {r4-r6, pc} thumb_func_start FUN_02064E20 FUN_02064E20: ; 0x02064E20 push {r4, lr} bl FUN_020377AC bl FUN_02024ED8 add r4, r0, #0x0 bl FUN_020254B4 cmp r0, #0x6 beq _02064E48 add r0, r4, #0x0 mov r1, #0x6 bl FUN_02025490 add r0, r4, #0x0 mov r1, #0x6 bl FUN_020254A0 mov r1, #0x2 strh r1, [r0, #0x0] _02064E48: pop {r4, pc} .balign 4 thumb_func_start FUN_02064E4C FUN_02064E4C: ; 0x02064E4C push {r4, lr} add r4, r2, #0x0 bl FUN_0200A8E0 mov r0, #0x0 add r1, r4, #0x0 add r2, r0, #0x0 bl FUN_02002E14 pop {r4, pc} thumb_func_start FUN_02064E60 FUN_02064E60: ; 0x02064E60 push {r4-r6, lr} add r6, r2, #0x0 add r5, r0, #0x0 add r3, r1, #0x0 ldr r2, _02064E8C ; =0x0000017E mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02034824 add r1, r0, #0x0 add r0, r4, #0x0 add r2, r6, #0x0 bl FUN_02064E4C add r0, r4, #0x0 bl FUN_0200A8B8 pop {r4-r6, pc} .balign 4 _02064E8C: .word 0x0000017E thumb_func_start FUN_02064E90 FUN_02064E90: ; 0x02064E90 push {r3-r7, lr} sub sp, #0xa0 str r0, [sp, #0x10] ldr r6, [sp, #0xb8] str r1, [sp, #0x14] str r2, [sp, #0x18] add r0, r6, #0x0 str r3, [sp, #0x1c] ldr r5, [sp, #0xbc] bl FUN_020377AC str r0, [sp, #0x20] bl FUN_020238F4 add r7, r0, #0x0 ldr r0, [sp, #0x20] bl FUN_02029FC8 add r4, r0, #0x0 ldr r0, [sp, #0x1c] strb r0, [r5, #0x5] add r0, r6, #0x0 bl FUN_02065078 str r0, [sp, #0x24] add r0, r7, #0x0 bl FUN_02023A70 str r0, [sp, #0x0] str r5, [sp, #0x4] ldr r0, [sp, #0x10] ldr r2, [sp, #0x24] ldr r3, [sp, #0x18] mov r1, #0xa bl FUN_02065154 add r0, r7, #0x0 bl FUN_020239C0 str r0, [sp, #0x28] add r0, r7, #0x0 bl FUN_020239CC str r0, [sp, #0x2c] add r0, r7, #0x0 bl FUN_0202398C str r0, [sp, #0x30] add r0, r7, #0x0 bl FUN_02023A10 str r0, [sp, #0x34] ldr r0, [r6, #0xc] bl FUN_02024DA0 bl FUN_02024440 str r0, [sp, #0x38] ldr r0, [r6, #0xc] bl FUN_02024DA0 bl FUN_02024D64 str r0, [sp, #0x3c] add r0, r4, #0x0 bl FUN_0202A1B8 ldr r1, [sp, #0x38] ldr r2, [sp, #0x30] str r1, [sp, #0x0] ldr r1, [sp, #0x3c] ldr r3, [sp, #0x34] str r1, [sp, #0x4] str r0, [sp, #0x8] ldr r1, [sp, #0x2c] ldr r0, [sp, #0x28] lsl r1, r1, #0x18 lsr r1, r1, #0x18 str r5, [sp, #0xc] bl FUN_02065178 ldr r0, [sp, #0x20] bl FUN_02023918 str r0, [sp, #0x40] add r0, r6, #0x0 add r1, sp, #0x90 add r2, sp, #0x74 bl FUN_0204B2F0 add r0, r6, #0x0 add r1, sp, #0x80 add r2, sp, #0x74 bl FUN_0204B30C ldr r0, [r6, #0xc] bl FUN_020462AC bl FUN_0205ED0C add r1, sp, #0x74 str r1, [sp, #0x0] ldr r1, [sp, #0x14] lsl r0, r0, #0x18 str r1, [sp, #0x4] ldr r1, [sp, #0x40] str r5, [sp, #0x8] lsr r0, r0, #0x18 add r2, sp, #0x90 add r3, sp, #0x80 bl FUN_020651BC ldr r0, [r6, #0xc] bl FUN_02029ABC str r0, [sp, #0x44] add r0, r4, #0x0 mov r1, #0x20 bl FUN_0202A150 str r0, [sp, #0x48] add r0, r4, #0x0 mov r1, #0x19 bl FUN_0202A150 str r0, [sp, #0x4c] add r0, r4, #0x0 mov r1, #0x14 bl FUN_0202A150 str r0, [sp, #0x50] add r0, r4, #0x0 mov r1, #0x18 bl FUN_0202A150 str r0, [sp, #0x54] add r0, r4, #0x0 mov r1, #0x40 bl FUN_0202A150 str r0, [sp, #0x58] add r0, r4, #0x0 mov r1, #0x13 bl FUN_0202A150 ldr r1, [sp, #0x58] add r1, r1, r0 ldr r0, [sp, #0x54] add r1, r0, r1 ldr r0, [sp, #0x50] add r1, r0, r1 ldr r0, [sp, #0x4c] add r0, r0, r1 str r0, [sp, #0x5c] add r0, r4, #0x0 mov r1, #0x15 bl FUN_0202A150 str r0, [sp, #0x60] add r0, r4, #0x0 mov r1, #0x1a bl FUN_0202A150 str r0, [sp, #0x64] add r0, r4, #0x0 mov r1, #0x16 bl FUN_0202A150 str r0, [sp, #0x68] add r0, r4, #0x0 mov r1, #0x1b bl FUN_0202A150 str r0, [sp, #0x6c] add r0, r4, #0x0 mov r1, #0x13 bl FUN_0202A150 str r0, [sp, #0x70] add r0, r4, #0x0 mov r1, #0x18 bl FUN_0202A150 add r4, r0, #0x0 ldr r0, [sp, #0x44] bl FUN_02029AC8 str r0, [sp, #0x0] ldr r1, [sp, #0x48] ldr r0, [sp, #0x5c] ldr r2, [sp, #0x60] add r0, r1, r0 ldr r1, [sp, #0x64] ldr r3, [sp, #0x68] add r1, r2, r1 ldr r2, [sp, #0x6c] str r5, [sp, #0x4] add r2, r3, r2 ldr r3, [sp, #0x70] add r3, r3, r4 bl FUN_02065260 add r0, r7, #0x0 add r1, r6, #0x0 add r2, r5, #0x0 bl FUN_020652AC mov r3, #0x0 ldr r0, _0206504C ; =0x0000066C add r2, r3, #0x0 _02065034: ldrb r1, [r5, r2] add r2, r2, #0x1 eor r3, r1 cmp r2, r0 blo _02065034 ldr r0, _02065050 ; =0x00000668 mov r1, #0x0 strh r3, [r5, r0] add r0, r0, #0x2 strh r1, [r5, r0] add sp, #0xa0 pop {r3-r7, pc} .balign 4 _0206504C: .word 0x0000066C _02065050: .word 0x00000668 thumb_func_start FUN_02065054 FUN_02065054: ; 0x02065054 push {r4, lr} ldr r1, _0206506C ; =0x0000066C bl FUN_02016998 ldr r2, _0206506C ; =0x0000066C mov r1, #0x0 add r4, r0, #0x0 blx FUN_020DF4A4 add r0, r4, #0x0 pop {r4, pc} nop _0206506C: .word 0x0000066C thumb_func_start FUN_02065070 FUN_02065070: ; 0x02065070 ldr r3, _02065074 ; =FUN_02016A18 bx r3 .balign 4 _02065074: .word FUN_02016A18 thumb_func_start FUN_02065078 FUN_02065078: ; 0x02065078 push {r3-r7, lr} bl FUN_020377AC add r7, r0, #0x0 bl FUN_02029FC8 add r6, r0, #0x0 add r0, r7, #0x0 bl FUN_020462AC add r5, r0, #0x0 add r0, r7, #0x0 bl FUN_02026CB4 str r0, [sp, #0x0] add r0, r5, #0x0 mov r4, #0x0 bl FUN_0205ED0C cmp r0, #0x0 beq _020650A8 add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 _020650A8: add r0, r7, #0x0 bl FUN_02024DA0 bl FUN_020244EC cmp r0, #0x0 beq _020650BC add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 _020650BC: add r0, r6, #0x0 mov r1, #0x35 bl FUN_0202A150 cmp r0, #0x64 bhs _020650F8 add r0, r6, #0x0 mov r1, #0x37 bl FUN_0202A150 cmp r0, #0x64 bhs _020650F8 add r0, r6, #0x0 mov r1, #0x39 bl FUN_0202A150 cmp r0, #0x64 bhs _020650F8 add r0, r6, #0x0 mov r1, #0x3b bl FUN_0202A150 cmp r0, #0x64 bhs _020650F8 add r0, r6, #0x0 mov r1, #0x3d bl FUN_0202A150 cmp r0, #0x64 blo _020650FE _020650F8: add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 _020650FE: add r0, r5, #0x0 mov r1, #0x0 bl FUN_0205EE60 cmp r0, #0x0 bne _0206513A add r0, r5, #0x0 mov r1, #0x1 bl FUN_0205EE60 cmp r0, #0x0 bne _0206513A add r0, r5, #0x0 mov r1, #0x3 bl FUN_0205EE60 cmp r0, #0x0 bne _0206513A add r0, r5, #0x0 mov r1, #0x4 bl FUN_0205EE60 cmp r0, #0x0 bne _0206513A add r0, r5, #0x0 mov r1, #0x2 bl FUN_0205EE60 cmp r0, #0x0 beq _02065140 _0206513A: add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 _02065140: ldr r0, [sp, #0x0] bl FUN_020268D4 cmp r0, #0x1 bne _02065150 add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 _02065150: add r0, r4, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02065154 FUN_02065154: ; 0x02065154 push {r3-r6} ldr r5, [sp, #0x14] mov r6, #0x1 ldrb r4, [r5, #0x4] bic r4, r6 mov r6, #0x1 and r0, r6 orr r0, r4 strb r0, [r5, #0x4] strb r1, [r5, #0x0] strb r2, [r5, #0x3] add r0, sp, #0x0 ldrb r0, [r0, #0x10] strb r0, [r5, #0x1] strb r3, [r5, #0x2] pop {r3-r6} bx lr .balign 4 thumb_func_start FUN_02065178 FUN_02065178: ; 0x02065178 push {r4-r6, lr} ldr r4, [sp, #0x1c] add r6, r1, #0x0 strh r0, [r4, #0x28] ldrb r0, [r4, #0x4] add r1, r2, #0x0 mov r2, #0x4 bic r0, r2 lsl r2, r6, #0x1f lsr r2, r2, #0x1d orr r0, r2 strb r0, [r4, #0x4] add r0, r4, #0x0 add r0, #0x8 mov r2, #0x8 add r5, r3, #0x0 bl StringCopyN ldr r0, [sp, #0x10] str r5, [r4, #0x1c] str r0, [r4, #0x20] ldrb r0, [r4, #0x4] mov r1, #0x8 bic r0, r1 ldr r1, [sp, #0x14] lsl r1, r1, #0x18 lsr r1, r1, #0x18 lsl r1, r1, #0x1f lsr r1, r1, #0x1c orr r0, r1 strb r0, [r4, #0x4] ldr r0, [sp, #0x18] str r0, [r4, #0x24] pop {r4-r6, pc} thumb_func_start FUN_020651BC FUN_020651BC: ; 0x020651BC push {r3-r7, lr} sub sp, #0x8 ldr r4, [sp, #0x28] str r0, [sp, #0x0] str r1, [sp, #0x4] add r0, r1, #0x0 add r5, r2, #0x0 add r6, r3, #0x0 ldr r7, [sp, #0x20] bl FUN_02029EBC strh r0, [r4, #0x2a] ldr r0, [sp, #0x4] bl FUN_02029EC0 add r1, r4, #0x0 add r1, #0x2e strb r0, [r1, #0x0] add r0, r4, #0x0 ldr r1, [r5, #0x0] add r0, #0x2f strb r1, [r0, #0x0] add r0, r4, #0x0 ldr r1, [r5, #0x4] add r0, #0x30 strb r1, [r0, #0x0] add r0, r4, #0x0 ldr r1, [r5, #0x8] add r0, #0x31 strb r1, [r0, #0x0] ldr r0, [sp, #0x0] cmp r0, #0x0 beq _0206521E add r0, r4, #0x0 ldr r1, [r6, #0x0] add r0, #0x32 strb r1, [r0, #0x0] add r0, r4, #0x0 ldr r1, [r6, #0x4] add r0, #0x33 strb r1, [r0, #0x0] add r0, r4, #0x0 ldr r1, [r6, #0x8] add r0, #0x34 strb r1, [r0, #0x0] ldr r0, [r7, #0x0] strh r0, [r4, #0x2c] ldr r1, [r7, #0x4] b _02065234 _0206521E: add r0, r4, #0x0 mov r1, #0x0 add r0, #0x32 strb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x33 strb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x34 strb r1, [r0, #0x0] strh r1, [r4, #0x2c] _02065234: add r0, r4, #0x0 add r0, #0x35 strb r1, [r0, #0x0] ldrb r2, [r4, #0x4] mov r0, #0x2 bic r2, r0 add r0, sp, #0x10 ldrb r0, [r0, #0x14] lsl r1, r0, #0x1f lsr r1, r1, #0x1e orr r1, r2 strb r1, [r4, #0x4] cmp r0, #0x0 beq _02065258 ldr r0, [sp, #0x4] add sp, #0x8 str r0, [r4, #0x18] pop {r3-r7, pc} _02065258: mov r0, #0x0 str r0, [r4, #0x18] add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_02065260 FUN_02065260: ; 0x02065260 push {r3-r5, lr} ldr r4, [sp, #0x14] ldr r5, _020652A0 ; =0x000F423F str r0, [r4, #0x38] cmp r0, r5 bls _0206526E str r5, [r4, #0x38] _0206526E: str r1, [r4, #0x3c] str r2, [r4, #0x40] ldr r1, [r4, #0x3c] ldr r0, _020652A4 ; =0x0000270F cmp r1, r0 bls _0206527C str r0, [r4, #0x3c] _0206527C: ldr r1, [r4, #0x40] ldr r0, _020652A4 ; =0x0000270F cmp r1, r0 bls _02065286 str r0, [r4, #0x40] _02065286: ldr r0, _020652A8 ; =0x0001869F str r3, [r4, #0x44] cmp r3, r0 bls _02065290 str r0, [r4, #0x44] _02065290: add r4, #0x68 mov r2, #0x6 ldr r0, [sp, #0x10] add r1, r4, #0x0 lsl r2, r2, #0x8 blx MI_CpuCopy8 pop {r3-r5, pc} .balign 4 _020652A0: .word 0x000F423F _020652A4: .word 0x0000270F _020652A8: .word 0x0001869F thumb_func_start FUN_020652AC FUN_020652AC: ; 0x020652AC push {r4-r7, lr} sub sp, #0xc str r0, [sp, #0x0] ldr r0, [r1, #0xc] add r5, r2, #0x0 bl FUN_02029ABC bl FUN_02029ACC str r0, [sp, #0x4] mov r0, #0x1 mov r4, #0x0 add r5, #0x48 str r0, [sp, #0x8] add r7, r0, #0x0 _020652CA: ldr r0, [sp, #0x0] add r1, r4, #0x0 bl FUN_020239D0 cmp r0, #0x0 beq _020652E6 lsl r0, r4, #0x2 ldr r2, [r5, r0] mov r1, #0x1 bic r2, r7 orr r1, r2 add r6, r5, r0 str r1, [r5, r0] b _020652F2 _020652E6: lsl r2, r4, #0x2 ldr r1, [r5, r2] ldr r0, [sp, #0x8] add r6, r5, r2 bic r1, r0 str r1, [r5, r2] _020652F2: ldr r1, [sp, #0x4] add r0, r4, #0x0 bl FUN_02029AD0 ldr r2, [r6, #0x0] mov r1, #0x1 and r1, r2 lsl r0, r0, #0x1 orr r0, r1 str r0, [r6, #0x0] add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #0x8 blo _020652CA add sp, #0xc pop {r4-r7, pc} thumb_func_start FUN_02065314 FUN_02065314: ; 0x02065314 push {r4-r6, lr} ldr r0, [r0, #0xc] add r5, r1, #0x0 bl FUN_02029ABC bl FUN_02029ACC add r6, r0, #0x0 mov r4, #0x0 _02065326: lsl r1, r4, #0x2 add r1, r5, r1 ldr r1, [r1, #0x48] add r0, r4, #0x0 asr r1, r1, #0x1 add r2, r6, #0x0 bl FUN_02029AD8 add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #0x8 blo _02065326 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02065344 FUN_02065344: ; 0x02065344 push {r3-r5, lr} add r5, r0, #0x0 mov r0, #0xb mov r1, #0x8 bl FUN_020169D8 add r4, r0, #0x0 mov r0, #0x0 str r0, [r4, #0x0] ldr r0, [r5, #0x78] bl FUN_02052E38 str r0, [r4, #0x4] ldr r0, [r5, #0x10] ldr r1, _0206536C ; =FUN_02065370 add r2, r4, #0x0 bl FUN_0204640C pop {r3-r5, pc} nop _0206536C: .word FUN_02065370 thumb_func_start FUN_02065370 FUN_02065370: ; 0x02065370 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02046528 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0204652C add r5, r0, #0x0 ldr r0, [r5, #0x0] cmp r0, #0xa bgt _0206539A bge _020653BA cmp r0, #0x1 bgt _020653E2 cmp r0, #0x0 blt _020653E2 beq _020653A0 cmp r0, #0x1 beq _020653AA b _020653E2 _0206539A: cmp r0, #0xb beq _020653C8 b _020653E2 _020653A0: ldr r0, [r4, #0x78] bl FUN_02052ED0 mov r0, #0x1 str r0, [r5, #0x0] _020653AA: ldr r1, [r5, #0x4] ldr r0, _020653E8 ; =0x0000066A ldrh r0, [r1, r0] cmp r0, #0x0 beq _020653E2 mov r0, #0xa str r0, [r5, #0x0] b _020653E2 _020653BA: ldr r1, [r5, #0x4] add r0, r4, #0x0 bl FUN_02038680 mov r0, #0xb str r0, [r5, #0x0] b _020653E2 _020653C8: add r0, r4, #0x0 bl FUN_0204647C cmp r0, #0x0 bne _020653E2 ldr r0, [r4, #0x78] bl FUN_02052EAC add r0, r5, #0x0 bl FUN_02016A18 mov r0, #0x1 pop {r3-r5, pc} _020653E2: mov r0, #0x0 pop {r3-r5, pc} nop _020653E8: .word 0x0000066A thumb_func_start FUN_020653EC FUN_020653EC: ; 0x020653EC push {r4-r6, lr} mov r2, #0x5 add r5, r0, #0x0 add r6, r1, #0x0 mov r0, #0x3 mov r1, #0x2b lsl r2, r2, #0xc bl FUN_0201681C mov r1, #0x6e mov r0, #0x2b lsl r1, r1, #0x2 bl FUN_02016998 mov r2, #0x6e mov r1, #0x0 lsl r2, r2, #0x2 add r4, r0, #0x0 blx MI_CpuFill8 add r0, r5, #0x0 str r6, [r4, #0x4] bl FUN_020377AC mov r1, #0x5b lsl r1, r1, #0x2 str r5, [r4, r1] mov r1, #0x2b str r1, [r4, #0x0] mov r1, #0x0 strb r1, [r4, #0x19] mov r1, #0xff add r6, r0, #0x0 strb r1, [r4, #0x1a] bl LoadPlayerDataAddress bl FUN_02024FF4 strb r0, [r4, #0x16] add r0, r6, #0x0 bl LoadPlayerDataAddress bl FUN_02025084 strh r0, [r4, #0x14] add r0, r4, #0x0 ldr r2, [r4, #0x0] add r0, #0x1c mov r1, #0x14 bl FUN_02066010 ldr r2, [r4, #0x0] add r0, r4, #0x0 add r1, r6, #0x0 bl FUN_02066070 add r0, r4, #0x0 bl FUN_02066270 ldr r0, _02065470 ; =FUN_020654B0 add r1, r4, #0x0 mov r2, #0x0 bl FUN_0200CA44 str r0, [r4, #0x8] pop {r4-r6, pc} .balign 4 _02065470: .word FUN_020654B0 thumb_func_start FUN_02065474 FUN_02065474: ; 0x02065474 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x8] bl FUN_0200CAB4 ldr r0, [r4, #0x4] mov r1, #0x1 str r1, [r0, #0x0] add r0, r4, #0x0 bl FUN_020662E4 add r0, r4, #0x0 add r0, #0x1c mov r1, #0x14 bl FUN_02066044 add r0, r4, #0x0 bl FUN_02016A18 ldr r0, [r4, #0x0] bl FUN_020168D0 pop {r4, pc} .balign 4 thumb_func_start FUN_020654A4 FUN_020654A4: ; 0x020654A4 ldr r3, _020654AC ; =FUN_02065474 add r0, r1, #0x0 bx r3 nop _020654AC: .word FUN_02065474 thumb_func_start FUN_020654B0 FUN_020654B0: ; 0x020654B0 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02066334 add r0, r4, #0x0 bl FUN_02065AF4 ldr r1, _020654CC ; =FUN_020654D0 add r0, r5, #0x0 bl FUN_0201B6C4 pop {r3-r5, pc} .balign 4 _020654CC: .word FUN_020654D0 thumb_func_start FUN_020654D0 FUN_020654D0: ; 0x020654D0 push {r3-r5, lr} mov r0, #0x16 add r5, r1, #0x0 lsl r0, r0, #0x4 ldr r0, [r5, r0] bl FUN_02001204 add r4, r0, #0x0 mov r0, #0x69 lsl r0, r0, #0x2 ldr r0, [r5, r0] cmp r0, #0x0 beq _020654EE bl FUN_0205EC18 _020654EE: ldr r0, _02065544 ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #0x2 tst r0, r1 beq _0206550A ldr r1, _02065548 ; =FUN_02065658 ldr r2, _0206554C ; =FUN_020654A4 add r0, r5, #0x0 bl FUN_02065FE4 ldr r0, _02065550 ; =0x000005DC bl FUN_020054C8 pop {r3-r5, pc} _0206550A: mov r0, #0x1 tst r0, r1 beq _02065542 ldr r0, _02065550 ; =0x000005DC bl FUN_020054C8 mov r1, #0x1 mvn r1, r1 cmp r4, r1 beq _0206552A add r0, r1, #0x1 cmp r4, r0 beq _0206552A lsr r0, r1, #0x10 cmp r4, r0 bne _02065536 _0206552A: ldr r1, _02065548 ; =FUN_02065658 ldr r2, _0206554C ; =FUN_020654A4 add r0, r5, #0x0 bl FUN_02065FE4 pop {r3-r5, pc} _02065536: ldr r1, _02065548 ; =FUN_02065658 ldr r2, _02065554 ; =FUN_02065558 add r0, r5, #0x0 strb r4, [r5, #0x18] bl FUN_02065FE4 _02065542: pop {r3-r5, pc} .balign 4 _02065544: .word 0x021C48B8 _02065548: .word FUN_02065658 _0206554C: .word FUN_020654A4 _02065550: .word 0x000005DC _02065554: .word FUN_02065558 thumb_func_start FUN_02065558 FUN_02065558: ; 0x02065558 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 ldrh r0, [r4, #0x10] cmp r0, #0x0 beq _0206556A cmp r0, #0x1 beq _02065592 pop {r3-r5, pc} _0206556A: add r0, r4, #0x0 bl FUN_02066334 mov r1, #0x0 add r0, r4, #0x0 add r2, r1, #0x0 bl FUN_02065DD8 mov r0, #0x1 str r0, [sp, #0x0] mov r1, #0x0 ldrb r2, [r4, #0x16] add r0, r4, #0x0 add r3, r1, #0x0 bl FUN_02066404 ldrh r0, [r4, #0x10] add r0, r0, #0x1 strh r0, [r4, #0x10] pop {r3-r5, pc} _02065592: add r0, r4, #0x0 bl FUN_020664F4 cmp r0, #0x0 beq _020655A8 ldr r1, _020655AC ; =FUN_020655B0 add r0, r5, #0x0 bl FUN_0201B6C4 mov r0, #0x0 strh r0, [r4, #0x10] _020655A8: pop {r3-r5, pc} nop _020655AC: .word FUN_020655B0 thumb_func_start FUN_020655B0 FUN_020655B0: ; 0x020655B0 push {r4-r6, lr} add r6, r0, #0x0 mov r0, #0x16 add r4, r1, #0x0 lsl r0, r0, #0x4 ldr r0, [r4, r0] bl FUN_02001204 add r5, r0, #0x0 ldr r0, _02065638 ; =0x021C48B8 mov r1, #0x2 ldr r0, [r0, #0x48] tst r1, r0 beq _020655DE ldr r1, _0206563C ; =FUN_02065674 ldr r2, _02065640 ; =FUN_020654B0 add r0, r4, #0x0 bl FUN_02065FE4 ldr r0, _02065644 ; =0x000005DC bl FUN_020054C8 pop {r4-r6, pc} _020655DE: mov r1, #0x1 tst r0, r1 beq _02065634 ldr r0, _02065644 ; =0x000005DC bl FUN_020054C8 add r0, r5, #0x2 cmp r0, #0x5 bhi _0206562C add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _020655FC: ; jump table (using 16-bit offset) .short _02065608 - _020655FC - 2; case 0 .short _02065608 - _020655FC - 2; case 1 .short _0206562C - _020655FC - 2; case 2 .short _02065614 - _020655FC - 2; case 3 .short _02065620 - _020655FC - 2; case 4 .short _02065608 - _020655FC - 2; case 5 _02065608: ldr r1, _0206563C ; =FUN_02065674 ldr r2, _02065640 ; =FUN_020654B0 add r0, r4, #0x0 bl FUN_02065FE4 pop {r4-r6, pc} _02065614: ldr r1, _02065648 ; =FUN_02065710 add r0, r4, #0x0 mov r2, #0x0 bl FUN_02065FE4 pop {r4-r6, pc} _02065620: ldr r1, _0206564C ; =FUN_02065894 ldr r2, _02065650 ; =FUN_02065938 add r0, r4, #0x0 bl FUN_02065FE4 pop {r4-r6, pc} _0206562C: ldr r1, _02065654 ; =FUN_02065690 add r0, r6, #0x0 bl FUN_0201B6C4 _02065634: pop {r4-r6, pc} nop _02065638: .word 0x021C48B8 _0206563C: .word FUN_02065674 _02065640: .word FUN_020654B0 _02065644: .word 0x000005DC _02065648: .word FUN_02065710 _0206564C: .word FUN_02065894 _02065650: .word FUN_02065938 _02065654: .word FUN_02065690 thumb_func_start FUN_02065658 FUN_02065658: ; 0x02065658 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02065EF8 add r0, r4, #0x0 bl FUN_020663D4 ldr r1, [r4, #0xc] add r0, r5, #0x0 bl FUN_0201B6C4 pop {r3-r5, pc} thumb_func_start FUN_02065674 FUN_02065674: ; 0x02065674 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_02065F8C add r0, r4, #0x0 bl FUN_020663D4 ldr r1, [r4, #0xc] add r0, r5, #0x0 bl FUN_0201B6C4 pop {r3-r5, pc} thumb_func_start FUN_02065690 FUN_02065690: ; 0x02065690 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 ldrh r0, [r4, #0x10] cmp r0, #0x3 bhi _02065704 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _020656A8: ; jump table (using 16-bit offset) .short _020656B0 - _020656A8 - 2; case 0 .short _020656C6 - _020656A8 - 2; case 1 .short _020656D2 - _020656A8 - 2; case 2 .short _020656DE - _020656A8 - 2; case 3 _020656B0: add r0, r4, #0x0 mov r1, #0x0 bl FUN_02066578 cmp r0, #0x0 beq _0206570A add r0, r4, #0x0 mov r1, #0x1 bl FUN_02066634 b _02065704 _020656C6: add r0, r4, #0x0 bl FUN_02066728 cmp r0, #0x0 bne _02065704 pop {r3-r5, pc} _020656D2: add r0, r4, #0x0 bl FUN_020665C0 cmp r0, #0x0 bne _02065704 pop {r3-r5, pc} _020656DE: add r0, r4, #0x0 mov r1, #0x1 bl FUN_02066578 cmp r0, #0x0 beq _0206570A add r0, r4, #0x0 bl FUN_02066334 add r0, r4, #0x0 bl FUN_02065AF4 mov r0, #0x0 strh r0, [r4, #0x10] ldr r1, _0206570C ; =FUN_020654D0 add r0, r5, #0x0 bl FUN_0201B6C4 pop {r3-r5, pc} _02065704: ldrh r0, [r4, #0x10] add r0, r0, #0x1 strh r0, [r4, #0x10] _0206570A: pop {r3-r5, pc} .balign 4 _0206570C: .word FUN_020654D0 thumb_func_start FUN_02065710 FUN_02065710: ; 0x02065710 push {r3-r4, lr} sub sp, #0x4 add r4, r1, #0x0 ldrh r0, [r4, #0x10] cmp r0, #0x5 bhi _020657DA add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02065728: ; jump table (using 16-bit offset) .short _02065734 - _02065728 - 2; case 0 .short _02065744 - _02065728 - 2; case 1 .short _02065756 - _02065728 - 2; case 2 .short _02065780 - _02065728 - 2; case 3 .short _02065798 - _02065728 - 2; case 4 .short _020657AA - _02065728 - 2; case 5 _02065734: mov r1, #0x1 str r1, [sp, #0x0] ldrb r2, [r4, #0x16] add r0, r4, #0x0 mov r3, #0x0 bl FUN_02066404 b _020657DA _02065744: add r0, r4, #0x0 bl FUN_020664F4 cmp r0, #0x0 beq _020657E0 add r0, r4, #0x0 bl FUN_02066520 b _020657DA _02065756: add r0, r4, #0x0 bl FUN_0206654C cmp r0, #0x0 blt _020657E0 beq _02065778 mov r3, #0x0 str r3, [sp, #0x0] ldrb r2, [r4, #0x16] add r0, r4, #0x0 mov r1, #0x2 bl FUN_02066404 mov r0, #0x4 add sp, #0x4 strh r0, [r4, #0x10] pop {r3-r4, pc} _02065778: mov r0, #0x3 add sp, #0x4 strh r0, [r4, #0x10] pop {r3-r4, pc} _02065780: add r0, r4, #0x0 bl FUN_020664D8 ldr r1, _020657E4 ; =FUN_02065674 ldr r2, _020657E8 ; =FUN_020654B0 add r0, r4, #0x0 bl FUN_02065FE4 mov r0, #0x0 add sp, #0x4 strh r0, [r4, #0x10] pop {r3-r4, pc} _02065798: add r0, r4, #0x0 bl FUN_020664F4 cmp r0, #0x0 beq _020657E0 add r0, r4, #0x0 bl FUN_02066520 b _020657DA _020657AA: add r0, r4, #0x0 bl FUN_0206654C cmp r0, #0x0 blt _020657E0 beq _020657C2 ldr r1, _020657EC ; =FUN_020659B8 add r0, r4, #0x0 mov r2, #0x0 bl FUN_02065FE4 b _020657CC _020657C2: ldr r1, _020657F0 ; =FUN_020657F4 ldr r2, _020657E4 ; =FUN_02065674 add r0, r4, #0x0 bl FUN_02065FE4 _020657CC: add r0, r4, #0x0 bl FUN_020664D8 mov r0, #0x0 add sp, #0x4 strh r0, [r4, #0x10] pop {r3-r4, pc} _020657DA: ldrh r0, [r4, #0x10] add r0, r0, #0x1 strh r0, [r4, #0x10] _020657E0: add sp, #0x4 pop {r3-r4, pc} .balign 4 _020657E4: .word FUN_02065674 _020657E8: .word FUN_020654B0 _020657EC: .word FUN_020659B8 _020657F0: .word FUN_020657F4 thumb_func_start FUN_020657F4 FUN_020657F4: ; 0x020657F4 push {r3-r4, lr} sub sp, #0x4 add r4, r1, #0x0 ldrh r0, [r4, #0x10] cmp r0, #0x0 beq _0206580A cmp r0, #0x1 beq _0206584E cmp r0, #0x2 beq _0206585C b _0206587E _0206580A: ldr r0, [r4, #0xc] cmp r0, #0x0 bne _02065820 add r0, r4, #0x0 bl FUN_02066334 add r0, r4, #0x0 mov r1, #0x0 mov r2, #0x1 bl FUN_02065DD8 _02065820: add r0, r4, #0x0 bl FUN_020661A0 cmp r0, #0x0 beq _0206583C mov r0, #0x1 str r0, [sp, #0x0] ldrb r2, [r4, #0x16] add r0, r4, #0x0 mov r1, #0x3 mov r3, #0x0 bl FUN_02066404 b _0206587E _0206583C: mov r0, #0x1 str r0, [sp, #0x0] ldrb r2, [r4, #0x16] add r0, r4, #0x0 mov r1, #0x4 mov r3, #0x0 bl FUN_02066404 b _0206587E _0206584E: add r0, r4, #0x0 bl FUN_020664F4 cmp r0, #0x0 bne _0206587E add sp, #0x4 pop {r3-r4, pc} _0206585C: ldr r0, _02065888 ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #0x3 tst r0, r1 beq _02065884 add r0, r4, #0x0 bl FUN_020664D8 ldr r1, _0206588C ; =FUN_02065674 ldr r2, _02065890 ; =FUN_020654B0 add r0, r4, #0x0 bl FUN_02065FE4 mov r0, #0x0 add sp, #0x4 strh r0, [r4, #0x10] pop {r3-r4, pc} _0206587E: ldrh r0, [r4, #0x10] add r0, r0, #0x1 strh r0, [r4, #0x10] _02065884: add sp, #0x4 pop {r3-r4, pc} .balign 4 _02065888: .word 0x021C48B8 _0206588C: .word FUN_02065674 _02065890: .word FUN_020654B0 thumb_func_start FUN_02065894 FUN_02065894: ; 0x02065894 push {r3-r5, lr} add r4, r1, #0x0 ldrh r0, [r4, #0x10] cmp r0, #0x3 bhi _0206592C add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _020658AA: ; jump table (using 16-bit offset) .short _020658B2 - _020658AA - 2; case 0 .short _020658C8 - _020658AA - 2; case 1 .short _020658D6 - _020658AA - 2; case 2 .short _020658E2 - _020658AA - 2; case 3 _020658B2: add r0, r4, #0x0 mov r1, #0x0 bl FUN_02066578 cmp r0, #0x0 beq _02065932 add r0, r4, #0x0 mov r1, #0x1 bl FUN_02066634 b _0206592C _020658C8: add r0, r4, #0x0 mov r1, #0xe bl FUN_02066664 cmp r0, #0x0 bne _0206592C pop {r3-r5, pc} _020658D6: add r0, r4, #0x0 bl FUN_020665C0 cmp r0, #0x0 bne _0206592C pop {r3-r5, pc} _020658E2: add r0, r4, #0x0 mov r1, #0x1 bl FUN_02066578 cmp r0, #0x0 beq _02065932 mov r0, #0x6d lsl r0, r0, #0x2 ldr r0, [r4, r0] add r1, r0, #0x0 add r1, #0x22 ldrb r5, [r1, #0x0] bl FUN_02016A18 cmp r5, #0x7 bne _02065912 ldr r1, [r4, #0xc] add r0, r4, #0x0 mov r2, #0x0 bl FUN_02065FE4 mov r0, #0x0 strh r0, [r4, #0x10] pop {r3-r5, pc} _02065912: add r0, r4, #0x0 add r1, r5, #0x0 mov r2, #0x0 bl FUN_020661F8 ldr r1, _02065934 ; =FUN_020654B0 add r0, r4, #0x0 mov r2, #0x0 bl FUN_02065FE4 mov r0, #0x0 strh r0, [r4, #0x10] pop {r3-r5, pc} _0206592C: ldrh r0, [r4, #0x10] add r0, r0, #0x1 strh r0, [r4, #0x10] _02065932: pop {r3-r5, pc} .balign 4 _02065934: .word FUN_020654B0 thumb_func_start FUN_02065938 FUN_02065938: ; 0x02065938 push {r3-r4, lr} sub sp, #0x4 add r4, r1, #0x0 ldrh r0, [r4, #0x10] cmp r0, #0x0 beq _0206594E cmp r0, #0x1 beq _02065970 cmp r0, #0x2 beq _0206597E b _020659A0 _0206594E: add r0, r4, #0x0 bl FUN_02066334 add r0, r4, #0x0 mov r1, #0x0 mov r2, #0x2 bl FUN_02065DD8 mov r0, #0x1 str r0, [sp, #0x0] ldrb r2, [r4, #0x16] add r0, r4, #0x0 mov r1, #0x5 mov r3, #0x0 bl FUN_02066404 b _020659A0 _02065970: add r0, r4, #0x0 bl FUN_020664F4 cmp r0, #0x0 bne _020659A0 add sp, #0x4 pop {r3-r4, pc} _0206597E: ldr r0, _020659AC ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #0x3 tst r0, r1 beq _020659A6 add r0, r4, #0x0 bl FUN_020664D8 ldr r1, _020659B0 ; =FUN_02065674 ldr r2, _020659B4 ; =FUN_020654B0 add r0, r4, #0x0 bl FUN_02065FE4 mov r0, #0x0 add sp, #0x4 strh r0, [r4, #0x10] pop {r3-r4, pc} _020659A0: ldrh r0, [r4, #0x10] add r0, r0, #0x1 strh r0, [r4, #0x10] _020659A6: add sp, #0x4 pop {r3-r4, pc} nop _020659AC: .word 0x021C48B8 _020659B0: .word FUN_02065674 _020659B4: .word FUN_020654B0 thumb_func_start FUN_020659B8 FUN_020659B8: ; 0x020659B8 push {r4-r6, lr} add r4, r1, #0x0 ldrh r0, [r4, #0x10] cmp r0, #0x5 bls _020659C4 b _02065AE0 _020659C4: add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _020659D0: ; jump table (using 16-bit offset) .short _020659DC - _020659D0 - 2; case 0 .short _02065A24 - _020659D0 - 2; case 1 .short _02065A68 - _020659D0 - 2; case 2 .short _02065A86 - _020659D0 - 2; case 3 .short _02065AB8 - _020659D0 - 2; case 4 .short _02065AC4 - _020659D0 - 2; case 5 _020659DC: add r0, r4, #0x0 mov r1, #0x0 bl FUN_02066578 cmp r0, #0x0 beq _02065AE6 add r0, r4, #0x0 mov r1, #0x1 bl FUN_02066634 mov r0, #0x1b lsl r0, r0, #0x4 ldrb r2, [r4, #0x18] mov r1, #0xc ldr r0, [r4, r0] mul r1, r2 add r1, r4, r1 ldrh r1, [r1, #0x22] ldr r2, [r4, #0x0] bl FUN_0206EEF8 cmp r0, #0x0 ldr r1, _02065AE8 ; =0x0000013B beq _02065A1A ldrb r2, [r4, r1] mov r0, #0xc0 bic r2, r0 mov r0, #0x40 orr r0, r2 strb r0, [r4, r1] b _02065AE0 _02065A1A: ldrb r2, [r4, r1] mov r0, #0xc0 bic r2, r0 strb r2, [r4, r1] b _02065AE0 _02065A24: add r0, r4, #0x0 mov r1, #0x9 bl FUN_02066664 cmp r0, #0x0 beq _02065AE6 mov r0, #0x6d lsl r0, r0, #0x2 ldr r0, [r4, r0] add r1, r0, #0x0 add r1, #0x22 ldrb r5, [r1, #0x0] add r1, r0, #0x0 add r1, #0x23 ldrb r6, [r1, #0x0] bl FUN_02016A18 cmp r6, #0x6 bne _02065A4E cmp r5, #0x7 bne _02065A58 _02065A4E: ldr r0, _02065AEC ; =FUN_020657F4 str r0, [r4, #0xc] mov r0, #0x4 strh r0, [r4, #0x10] pop {r4-r6, pc} _02065A58: strb r5, [r4, #0x17] ldrb r1, [r4, #0x18] mov r0, #0xc mov r2, #0x0 mul r0, r1 add r0, r4, r0 strb r2, [r0, #0x1d] b _02065AE0 _02065A68: add r0, r4, #0x0 bl FUN_02066728 cmp r0, #0x0 beq _02065AE6 cmp r0, #0x1 bne _02065A80 ldr r0, _02065AEC ; =FUN_020657F4 str r0, [r4, #0xc] mov r0, #0x4 strh r0, [r4, #0x10] pop {r4-r6, pc} _02065A80: ldr r0, _02065AF0 ; =FUN_020654B0 str r0, [r4, #0xc] b _02065AE0 _02065A86: add r0, r4, #0x0 mov r1, #0xb bl FUN_02066664 cmp r0, #0x0 beq _02065AE6 mov r0, #0x6d lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02016A18 ldr r2, _02065AE8 ; =0x0000013B ldrb r1, [r4, #0x17] ldrb r2, [r4, r2] add r0, r4, #0x0 lsl r2, r2, #0x18 lsr r2, r2, #0x1e bl FUN_020661F8 ldr r1, _02065AE8 ; =0x0000013B mov r0, #0xc0 ldrb r2, [r4, r1] bic r2, r0 strb r2, [r4, r1] b _02065AE0 _02065AB8: add r0, r4, #0x0 bl FUN_020665C0 cmp r0, #0x0 bne _02065AE0 pop {r4-r6, pc} _02065AC4: add r0, r4, #0x0 mov r1, #0x1 bl FUN_02066578 cmp r0, #0x0 beq _02065AE6 ldr r1, [r4, #0xc] add r0, r4, #0x0 mov r2, #0x0 bl FUN_02065FE4 mov r0, #0x0 strh r0, [r4, #0x10] pop {r4-r6, pc} _02065AE0: ldrh r0, [r4, #0x10] add r0, r0, #0x1 strh r0, [r4, #0x10] _02065AE6: pop {r4-r6, pc} .balign 4 _02065AE8: .word 0x0000013B _02065AEC: .word FUN_020657F4 _02065AF0: .word FUN_020654B0 thumb_func_start FUN_02065AF4 FUN_02065AF4: ; 0x02065AF4 push {r3-r7, lr} sub sp, #0x10 add r5, r0, #0x0 ldr r0, [r5, #0x0] mov r6, #0x0 bl FUN_0205EB38 mov r1, #0x69 lsl r1, r1, #0x2 str r0, [r5, r1] ldr r0, [r5, r1] mov r1, #0xc8 mov r2, #0xa mov r3, #0x8a bl FUN_0205EC48 mov r0, #0x69 lsl r0, r0, #0x2 ldr r0, [r5, r0] add r1, r6, #0x0 mov r2, #0x1 bl FUN_0205EC6C mov r0, #0x69 lsl r0, r0, #0x2 mov r1, #0x1 ldr r0, [r5, r0] add r2, r1, #0x0 bl FUN_0205EC6C mov r1, #0x17 lsl r1, r1, #0x4 ldr r0, [r5, r1] add r1, r1, #0x4 ldr r2, _02065CD8 ; =0x020F7E7C add r1, r5, r1 bl FUN_02019150 mov r1, #0x17 lsl r1, r1, #0x4 ldr r0, [r5, r1] add r1, #0x24 ldr r2, _02065CDC ; =0x020F7E84 add r1, r5, r1 bl FUN_02019150 mov r0, #0x5d lsl r0, r0, #0x2 add r0, r5, r0 mov r1, #0xff bl FUN_02019620 mov r0, #0x65 lsl r0, r0, #0x2 add r0, r5, r0 mov r1, #0xff bl FUN_02019620 ldrb r0, [r5, #0x1b] ldr r1, [r5, #0x0] add r0, r0, #0x1 bl FUN_02012838 mov r1, #0x59 lsl r1, r1, #0x2 add r7, r5, #0x0 str r0, [r5, r1] add r4, r6, #0x0 add r7, #0x1c _02065B7E: mov r0, #0xc mul r0, r4 add r2, r7, r0 ldrb r0, [r2, #0x1] cmp r0, #0x0 beq _02065B9E mov r0, #0x59 lsl r0, r0, #0x2 ldr r1, [r2, #0x8] ldrb r2, [r2, #0x0] ldr r0, [r5, r0] bl FUN_020128A0 add r0, r6, #0x1 lsl r0, r0, #0x18 lsr r6, r0, #0x18 _02065B9E: add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #0x14 blo _02065B7E mov r1, #0x59 lsl r1, r1, #0x2 ldr r0, [r5, r1] sub r1, #0x4c ldr r1, [r5, r1] ldr r2, _02065CE0 ; =0x0000FFFF bl FUN_020128A0 add r0, r6, #0x1 lsl r0, r0, #0x18 mov r1, #0x5 lsr r6, r0, #0x18 lsl r1, r1, #0x6 ldr r0, _02065CE4 ; =0x020F7E8C add r1, r5, r1 mov r2, #0x20 blx MI_CpuCopy8 mov r1, #0x5d lsl r1, r1, #0x2 add r0, r1, #0x0 add r2, r5, r1 sub r0, #0x28 str r2, [r5, r0] add r0, r1, #0x0 sub r0, #0x10 ldr r2, [r5, r0] add r0, r1, #0x0 sub r0, #0x34 str r2, [r5, r0] add r0, r1, #0x0 sub r0, #0x18 str r5, [r5, r0] add r0, r1, #0x0 sub r0, #0x24 strh r6, [r5, r0] add r0, r1, #0x0 sub r0, #0x1d ldrb r2, [r5, r0] mov r0, #0xf bic r2, r0 mov r0, #0x6 orr r2, r0 add r0, r1, #0x0 sub r0, #0x1d strb r2, [r5, r0] add r0, r1, #0x0 ldr r2, _02065CE8 ; =FUN_02065D4C sub r0, #0x30 str r2, [r5, r0] add r0, r1, #0x0 ldr r2, _02065CEC ; =FUN_02065CFC sub r0, #0x2c str r2, [r5, r0] add r0, r1, #0x0 sub r0, #0x39 ldrb r0, [r5, r0] lsl r0, r0, #0x1a lsr r0, r0, #0x1e beq _02065C64 add r0, r1, #0x0 sub r0, #0x38 ldrh r0, [r5, r0] cmp r0, #0x0 bne _02065C48 add r0, r1, #0x0 sub r0, #0x36 ldrh r2, [r5, r0] cmp r2, #0x0 beq _02065C5A sub r0, r6, #0x1 cmp r2, r0 blt _02065C5A add r0, r1, #0x0 sub r0, #0x36 ldrh r0, [r5, r0] sub r1, #0x36 sub r0, r0, #0x1 strh r0, [r5, r1] b _02065C5A _02065C48: add r0, r0, #0x7 cmp r0, r6 blt _02065C5A add r0, r1, #0x0 sub r0, #0x38 ldrh r0, [r5, r0] sub r1, #0x38 sub r0, r0, #0x1 strh r0, [r5, r1] _02065C5A: ldr r1, _02065CF0 ; =0x0000013B mov r0, #0x30 ldrb r2, [r5, r1] bic r2, r0 strb r2, [r5, r1] _02065C64: mov r2, #0x5 lsl r2, r2, #0x6 sub r1, r2, #0x4 add r0, r5, r2 sub r2, r2, #0x2 ldr r3, [r5, #0x0] ldrh r1, [r5, r1] lsl r3, r3, #0x18 ldrh r2, [r5, r2] lsr r3, r3, #0x18 bl FUN_020010A8 mov r1, #0x16 lsl r1, r1, #0x4 str r0, [r5, r1] add r1, #0x14 add r0, r5, r1 ldr r2, _02065CF4 ; =0x000003D9 mov r1, #0x0 mov r3, #0xb bl FUN_0200CCA4 mov r1, #0x0 str r1, [sp, #0x0] mov r2, #0x65 ldr r0, _02065CF8 ; =0x0001020F str r1, [sp, #0x4] str r0, [sp, #0x8] lsl r2, r2, #0x2 add r0, r5, r2 str r1, [sp, #0xc] sub r2, #0x78 ldr r2, [r5, r2] mov r3, #0x2 bl FUN_0201BDE0 mov r0, #0x65 lsl r0, r0, #0x2 ldr r2, _02065CF4 ; =0x000003D9 add r0, r5, r0 mov r1, #0x0 mov r3, #0xb bl FUN_0200CCA4 mov r0, #0x17 lsl r0, r0, #0x4 ldr r0, [r5, r0] mov r1, #0x3 bl FUN_0201AC68 ldr r1, _02065CF0 ; =0x0000013B mov r0, #0xf ldrb r2, [r5, r1] bic r2, r0 strb r2, [r5, r1] add sp, #0x10 pop {r3-r7, pc} nop _02065CD8: .word 0x020F7E7C _02065CDC: .word 0x020F7E84 _02065CE0: .word 0x0000FFFF _02065CE4: .word 0x020F7E8C _02065CE8: .word FUN_02065D4C _02065CEC: .word FUN_02065CFC _02065CF0: .word 0x0000013B _02065CF4: .word 0x000003D9 _02065CF8: .word 0x0001020F thumb_func_start FUN_02065CFC FUN_02065CFC: ; 0x02065CFC push {r3-r5, lr} add r4, r1, #0x0 mov r1, #0x13 add r5, r0, #0x0 bl FUN_02001470 ldr r1, _02065D48 ; =0x0000FFFF cmp r4, r1 bne _02065D1C add r0, r5, #0x0 mov r1, #0x1 mov r2, #0xf mov r3, #0x2 bl FUN_020013E8 pop {r3-r5, pc} _02065D1C: mov r1, #0xc mul r1, r4 add r0, r0, r1 add r0, #0x20 ldrb r0, [r0, #0x0] cmp r0, #0x0 beq _02065D38 add r0, r5, #0x0 mov r1, #0x3 mov r2, #0xf mov r3, #0x4 bl FUN_020013E8 pop {r3-r5, pc} _02065D38: add r0, r5, #0x0 mov r1, #0x7 mov r2, #0xf mov r3, #0x8 bl FUN_020013E8 pop {r3-r5, pc} nop _02065D48: .word 0x0000FFFF thumb_func_start FUN_02065D4C FUN_02065D4C: ; 0x02065D4C push {r3-r6, lr} sub sp, #0x4 mov r1, #0x13 add r4, r0, #0x0 add r6, r2, #0x0 bl FUN_02001470 add r1, sp, #0x0 add r5, r0, #0x0 add r0, r4, #0x0 add r1, #0x2 add r2, sp, #0x0 bl FUN_02001448 add r0, r4, #0x0 mov r1, #0x2 bl FUN_02001470 lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r6, #0x0 bne _02065D7E ldr r0, _02065DD4 ; =0x000005DC bl FUN_020054C8 _02065D7E: add r0, sp, #0x0 ldrh r0, [r0, #0x2] cmp r0, #0x0 bne _02065D96 mov r0, #0x69 lsl r0, r0, #0x2 mov r1, #0x0 ldr r0, [r5, r0] add r2, r1, #0x0 bl FUN_0205EC6C b _02065DA4 _02065D96: mov r0, #0x69 lsl r0, r0, #0x2 ldr r0, [r5, r0] mov r1, #0x0 mov r2, #0x1 bl FUN_0205EC6C _02065DA4: add r0, sp, #0x0 ldrh r1, [r0, #0x2] sub r0, r4, #0x7 cmp r1, r0 bge _02065DC0 mov r0, #0x69 lsl r0, r0, #0x2 mov r1, #0x1 ldr r0, [r5, r0] add r2, r1, #0x0 bl FUN_0205EC6C add sp, #0x4 pop {r3-r6, pc} _02065DC0: mov r0, #0x69 lsl r0, r0, #0x2 ldr r0, [r5, r0] mov r1, #0x1 mov r2, #0x0 bl FUN_0205EC6C add sp, #0x4 pop {r3-r6, pc} nop _02065DD4: .word 0x000005DC thumb_func_start FUN_02065DD8 FUN_02065DD8: ; 0x02065DD8 push {r3-r7, lr} sub sp, #0x8 str r1, [sp, #0x0] add r5, r0, #0x0 str r2, [sp, #0x4] ldr r1, [r5, #0x0] mov r0, #0x4 bl FUN_02012838 mov r1, #0x59 lsl r1, r1, #0x2 str r0, [r5, r1] add r0, r1, #0x0 add r0, #0xc add r1, #0x10 ldr r0, [r5, r0] ldr r2, _02065EC8 ; =0x020F7E74 add r1, r5, r1 bl FUN_02019150 mov r0, #0x5d lsl r0, r0, #0x2 add r0, r5, r0 mov r1, #0xff bl FUN_02019620 mov r7, #0x43 ldr r6, _02065ECC ; =0x020F7EAC mov r4, #0x0 lsl r7, r7, #0x2 _02065E14: lsl r2, r4, #0x3 add r3, r6, r2 mov r0, #0x59 lsl r0, r0, #0x2 ldr r0, [r5, r0] ldr r1, [r5, r7] ldr r2, [r6, r2] ldr r3, [r3, #0x4] bl FUN_02012880 add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #0x4 blo _02065E14 mov r1, #0x5 lsl r1, r1, #0x6 ldr r0, _02065ED0 ; =0x020F7E8C add r1, r5, r1 mov r2, #0x20 blx MI_CpuCopy8 mov r0, #0x5d lsl r0, r0, #0x2 add r1, r0, #0x0 add r2, r5, r0 sub r1, #0x28 str r2, [r5, r1] add r1, r0, #0x0 sub r1, #0x10 ldr r2, [r5, r1] add r1, r0, #0x0 sub r1, #0x34 str r2, [r5, r1] add r1, r0, #0x0 sub r1, #0x18 str r5, [r5, r1] add r1, r0, #0x0 mov r2, #0x4 sub r1, #0x24 strh r2, [r5, r1] add r1, r0, #0x0 sub r1, #0x22 strh r2, [r5, r1] add r1, r0, #0x0 sub r1, #0x1a ldrh r2, [r5, r1] ldr r1, _02065ED4 ; =0xFFFFFE7F and r2, r1 add r1, r0, #0x0 sub r1, #0x1a strh r2, [r5, r1] add r1, r0, #0x0 sub r0, #0x34 ldr r2, _02065ED8 ; =FUN_02065EE4 sub r1, #0x30 str r2, [r5, r1] ldr r3, [r5, #0x0] ldr r1, [sp, #0x0] lsl r3, r3, #0x18 ldr r2, [sp, #0x4] add r0, r5, r0 lsr r3, r3, #0x18 bl FUN_020010A8 mov r1, #0x16 lsl r1, r1, #0x4 str r0, [r5, r1] add r1, #0x14 add r0, r5, r1 ldr r2, _02065EDC ; =0x000003D9 mov r1, #0x0 mov r3, #0xb bl FUN_0200CCA4 mov r0, #0x17 lsl r0, r0, #0x4 ldr r0, [r5, r0] mov r1, #0x3 bl FUN_0201AC68 ldr r1, _02065EE0 ; =0x0000013B mov r0, #0xf ldrb r2, [r5, r1] bic r2, r0 mov r0, #0x1 orr r0, r2 strb r0, [r5, r1] add sp, #0x8 pop {r3-r7, pc} .balign 4 _02065EC8: .word 0x020F7E74 _02065ECC: .word 0x020F7EAC _02065ED0: .word 0x020F7E8C _02065ED4: .word 0xFFFFFE7F _02065ED8: .word FUN_02065EE4 _02065EDC: .word 0x000003D9 _02065EE0: .word 0x0000013B thumb_func_start FUN_02065EE4 FUN_02065EE4: ; 0x02065EE4 push {r3, lr} cmp r2, #0x0 bne _02065EF0 ldr r0, _02065EF4 ; =0x000005DC bl FUN_020054C8 _02065EF0: pop {r3, pc} nop _02065EF4: .word 0x000005DC thumb_func_start FUN_02065EF8 FUN_02065EF8: ; 0x02065EF8 push {r3-r4, lr} sub sp, #0x4 add r4, r0, #0x0 mov r0, #0x16 lsl r0, r0, #0x4 add r1, sp, #0x0 ldr r0, [r4, r0] add r1, #0x2 add r2, sp, #0x0 bl FUN_02001300 mov r0, #0x59 lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02012870 mov r0, #0x65 lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_02019570 mov r0, #0x65 lsl r0, r0, #0x2 add r0, r4, r0 mov r1, #0x0 bl FUN_0200CCF8 mov r0, #0x65 lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_02019178 mov r0, #0x5d lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_02019570 mov r0, #0x5d lsl r0, r0, #0x2 add r0, r4, r0 mov r1, #0x0 bl FUN_0200CCF8 mov r0, #0x5d lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_02019178 add r0, sp, #0x0 mov r1, #0x4f ldrh r2, [r0, #0x2] lsl r1, r1, #0x2 strh r2, [r4, r1] ldrh r2, [r0, #0x0] add r0, r1, #0x2 add r1, #0x68 strh r2, [r4, r0] ldr r0, [r4, r1] cmp r0, #0x0 beq _02065F7C bl FUN_0205EBEC mov r0, #0x69 mov r1, #0x0 lsl r0, r0, #0x2 str r1, [r4, r0] _02065F7C: mov r0, #0x17 lsl r0, r0, #0x4 ldr r0, [r4, r0] mov r1, #0x3 bl FUN_0201AC68 add sp, #0x4 pop {r3-r4, pc} thumb_func_start FUN_02065F8C FUN_02065F8C: ; 0x02065F8C push {r3-r4, lr} sub sp, #0x4 add r4, r0, #0x0 mov r0, #0x5d lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_02019570 mov r0, #0x5d lsl r0, r0, #0x2 add r0, r4, r0 mov r1, #0x0 bl FUN_0200CCF8 mov r0, #0x16 lsl r0, r0, #0x4 add r1, sp, #0x0 ldr r0, [r4, r0] add r1, #0x2 add r2, sp, #0x0 bl FUN_02001300 mov r0, #0x59 lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02012870 mov r0, #0x5d lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_02019178 add r0, r4, #0x0 bl FUN_020664D8 mov r0, #0x17 lsl r0, r0, #0x4 ldr r0, [r4, r0] mov r1, #0x3 bl FUN_0201AC68 add sp, #0x4 pop {r3-r4, pc} .balign 4 thumb_func_start FUN_02065FE4 FUN_02065FE4: ; 0x02065FE4 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0x8] add r4, r2, #0x0 bl FUN_0201B6C4 mov r0, #0x0 strh r0, [r5, #0x10] str r4, [r5, #0xc] pop {r3-r5, pc} thumb_func_start FUN_02065FF8 FUN_02065FF8: ; 0x02065FF8 push {r3, lr} strb r1, [r0, #0x0] mov r1, #0x0 strb r1, [r0, #0x1] strb r1, [r0, #0x2] strb r1, [r0, #0x3] ldr r0, [r0, #0x8] cmp r0, #0x0 beq _0206600E bl FUN_02021A4C _0206600E: pop {r3, pc} thumb_func_start FUN_02066010 FUN_02066010: ; 0x02066010 push {r3-r7, lr} add r6, r1, #0x0 add r5, r0, #0x0 add r7, r2, #0x0 mov r4, #0x0 cmp r6, #0x0 bls _02066040 _0206601E: mov r0, #0x8 add r1, r7, #0x0 bl FUN_020219F4 mov r1, #0xc mul r1, r4 add r1, r5, r1 str r0, [r1, #0x8] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02065FF8 add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, r6 blo _0206601E _02066040: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02066044 FUN_02066044: ; 0x02066044 push {r3-r7, lr} add r5, r0, #0x0 add r6, r1, #0x0 ldr r4, _0206606C ; =0x00000000 beq _0206606A mov r7, #0xc _02066050: add r0, r4, #0x0 mul r0, r7 add r0, r5, r0 ldr r0, [r0, #0x8] cmp r0, #0x0 beq _02066060 bl FUN_02021A20 _02066060: add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, r6 blo _02066050 _0206606A: pop {r3-r7, pc} .balign 4 _0206606C: .word 0x00000000 thumb_func_start FUN_02066070 FUN_02066070: ; 0x02066070 push {r4-r7, lr} sub sp, #0x14 add r4, r1, #0x0 add r6, r0, #0x0 add r0, r4, #0x0 add r5, r2, #0x0 bl FUN_02025838 mov r1, #0x6b lsl r1, r1, #0x2 str r0, [sp, #0x4] str r0, [r6, r1] add r0, r4, #0x0 bl FUN_0206F158 mov r1, #0x1b lsl r1, r1, #0x4 str r0, [r6, r1] add r0, r5, #0x0 bl FUN_020256BC add r7, r0, #0x0 add r0, r6, #0x0 str r0, [sp, #0x10] add r0, #0x1b str r0, [sp, #0x10] add r0, r6, #0x0 str r0, [sp, #0x8] add r0, #0x1c mov r4, #0x0 str r0, [sp, #0x8] _020660AE: ldr r0, [sp, #0x4] mov r1, #0x0 add r2, r4, #0x0 add r3, r7, #0x0 bl FUN_020258D4 mov r0, #0xc mul r0, r4 ldr r1, [sp, #0x8] str r0, [sp, #0xc] add r5, r1, r0 ldrb r1, [r6, #0x19] mov r0, #0xc add r2, r1, #0x0 mul r2, r0 ldr r0, [sp, #0x8] add r1, r4, #0x0 add r0, r0, r2 str r0, [sp, #0x0] add r0, r5, #0x0 bl FUN_02065FF8 ldr r1, [sp, #0x8] ldr r0, [sp, #0xc] strb r4, [r1, r0] add r0, r7, #0x0 bl FUN_020256AC cmp r0, #0x0 beq _02066134 mov r0, #0x1 strb r0, [r5, #0x1] add r0, r7, #0x0 bl FUN_020257C8 strb r0, [r5, #0x4] add r0, r7, #0x0 bl FUN_020257CC strb r0, [r5, #0x5] ldrb r0, [r5, #0x5] bl FUN_0206EAD8 strh r0, [r5, #0x6] add r0, r7, #0x0 bl FUN_020257C4 add r1, r0, #0x0 ldr r0, [r5, #0x8] bl FUN_02021E28 ldrb r0, [r6, #0x19] strb r0, [r5, #0x2] ldrb r1, [r5, #0x0] ldr r0, [sp, #0x0] strb r1, [r0, #0x3] ldrb r0, [r5, #0x0] strb r0, [r6, #0x19] ldr r0, [sp, #0x10] ldrb r0, [r0, #0x0] add r1, r0, #0x1 ldr r0, [sp, #0x10] strb r1, [r0, #0x0] ldrb r0, [r6, #0x1a] cmp r0, #0xff bne _02066134 strb r4, [r6, #0x1a] _02066134: add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #0x14 blo _020660AE ldrb r1, [r6, #0x19] ldrb r3, [r6, #0x1a] mov r0, #0xc add r2, r1, #0x0 mul r2, r0 add r1, r6, r2 strb r3, [r1, #0x1f] ldrb r1, [r6, #0x1a] ldrb r2, [r6, #0x19] mul r0, r1 add r0, r6, r0 strb r2, [r0, #0x1e] add r0, r7, #0x0 bl FUN_02016A18 add sp, #0x14 pop {r4-r7, pc} thumb_func_start FUN_02066160 FUN_02066160: ; 0x02066160 push {r3-r6} add r2, r1, #0x0 mov r3, #0xc add r1, r0, #0x0 mul r2, r3 add r1, #0x1c add r1, r1, r2 ldrb r4, [r1, #0x2] ldrb r6, [r1, #0x3] add r5, r4, #0x0 mul r5, r3 add r4, r0, r5 strb r6, [r4, #0x1f] ldrb r4, [r1, #0x2] ldrb r1, [r1, #0x3] mul r3, r1 add r1, r0, r3 strb r4, [r1, #0x1e] add r1, r0, r2 mov r3, #0x0 strb r3, [r1, #0x1d] ldr r2, _0206619C ; =0x0000013B mov r1, #0x30 ldrb r3, [r0, r2] bic r3, r1 mov r1, #0x10 orr r1, r3 strb r1, [r0, r2] pop {r3-r6} bx lr .balign 4 _0206619C: .word 0x0000013B thumb_func_start FUN_020661A0 FUN_020661A0: ; 0x020661A0 push {r4-r6, lr} add r5, r0, #0x0 ldrb r1, [r5, #0x18] add r2, r5, #0x0 mov r0, #0xc add r2, #0x1c mul r0, r1 add r4, r2, r0 mov r0, #0x1b lsl r0, r0, #0x4 ldrh r1, [r4, #0x6] ldr r0, [r5, r0] ldr r3, [r5, #0x0] mov r2, #0x1 bl FUN_0206ED24 add r6, r0, #0x0 beq _020661D4 mov r0, #0x1b lsl r0, r0, #0x4 ldrh r1, [r4, #0x6] ldr r0, [r5, r0] ldr r3, [r5, #0x0] mov r2, #0x1 bl FUN_0206ED38 _020661D4: mov r0, #0x6b lsl r0, r0, #0x2 ldrb r2, [r5, #0x18] ldr r0, [r5, r0] mov r1, #0x0 bl FUN_02025878 ldrb r1, [r5, #0x18] add r0, r5, #0x0 bl FUN_02066160 ldrb r1, [r5, #0x18] add r0, r4, #0x0 bl FUN_02065FF8 add r0, r6, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_020661F8 FUN_020661F8: ; 0x020661F8 push {r3-r7, lr} add r5, r0, #0x0 add r7, r1, #0x0 ldrb r1, [r5, #0x18] add r6, r2, #0x0 add r2, r5, #0x0 mov r0, #0xc add r2, #0x1c mul r0, r1 add r4, r2, r0 ldrb r0, [r4, #0x1] cmp r0, #0x0 beq _0206626E mov r0, #0x5b lsl r0, r0, #0x2 ldr r0, [r5, r0] bl FUN_020377AC bl FUN_0206BB1C add r1, r7, #0x0 bl FUN_0206B9B0 add r2, r0, #0x0 mov r0, #0x6b lsl r0, r0, #0x2 ldrb r1, [r5, #0x18] ldr r0, [r5, r0] ldr r3, [r5, #0x0] bl FUN_020856A0 cmp r6, #0x0 beq _0206625E mov r0, #0x1b lsl r0, r0, #0x4 ldrh r1, [r4, #0x6] ldr r0, [r5, r0] ldr r3, [r5, #0x0] mov r2, #0x1 bl FUN_0206ED24 cmp r0, #0x0 beq _0206625E mov r0, #0x1b lsl r0, r0, #0x4 ldrh r1, [r4, #0x6] ldr r0, [r5, r0] ldr r3, [r5, #0x0] mov r2, #0x1 bl FUN_0206ED38 _0206625E: ldrb r1, [r5, #0x18] add r0, r5, #0x0 bl FUN_02066160 ldrb r1, [r5, #0x18] add r0, r4, #0x0 bl FUN_02065FF8 _0206626E: pop {r3-r7, pc} thumb_func_start FUN_02066270 FUN_02066270: ; 0x02066270 push {r3-r7, lr} add r6, r0, #0x0 mov r2, #0x5a ldr r3, [r6, #0x0] mov r0, #0x1 mov r1, #0x1a lsl r2, r2, #0x2 bl FUN_0200A86C mov r1, #0x43 lsl r1, r1, #0x2 str r0, [r6, r1] ldr r2, [r6, #0x0] mov r0, #0x1 mov r1, #0x80 bl FUN_0200AA90 mov r1, #0x11 lsl r1, r1, #0x4 str r0, [r6, r1] ldr r1, [r6, #0x0] mov r0, #0x80 bl FUN_020219F4 mov r1, #0x45 lsl r1, r1, #0x2 str r0, [r6, r1] sub r1, #0x8 ldr r0, [r6, r1] mov r1, #0x4 bl FUN_0200A914 mov r1, #0x46 lsl r1, r1, #0x2 str r0, [r6, r1] sub r1, #0xc ldr r0, [r6, r1] mov r1, #0x0 bl FUN_0200A914 mov r1, #0x47 lsl r1, r1, #0x2 str r0, [r6, r1] mov r4, #0x0 add r5, r6, #0x0 add r7, r1, #0x4 _020662CC: mov r0, #0x43 lsl r0, r0, #0x2 ldr r0, [r6, r0] add r1, r4, #0x6 bl FUN_0200A914 str r0, [r5, r7] add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, #0x6 blt _020662CC pop {r3-r7, pc} thumb_func_start FUN_020662E4 FUN_020662E4: ; 0x020662E4 push {r3-r7, lr} add r6, r0, #0x0 mov r7, #0x12 mov r4, #0x0 add r5, r6, #0x0 lsl r7, r7, #0x4 _020662F0: ldr r0, [r5, r7] bl FUN_02021A20 add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, #0x6 blt _020662F0 mov r0, #0x47 lsl r0, r0, #0x2 ldr r0, [r6, r0] bl FUN_02021A20 mov r0, #0x46 lsl r0, r0, #0x2 ldr r0, [r6, r0] bl FUN_02021A20 mov r0, #0x45 lsl r0, r0, #0x2 ldr r0, [r6, r0] bl FUN_02021A20 mov r0, #0x11 lsl r0, r0, #0x4 ldr r0, [r6, r0] bl FUN_0200AB18 mov r0, #0x43 lsl r0, r0, #0x2 ldr r0, [r6, r0] bl FUN_0200A8B8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02066334 FUN_02066334: ; 0x02066334 push {r3-r4, lr} sub sp, #0x14 add r4, r0, #0x0 mov r0, #0x5b lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_020377A8 mov r1, #0x17 lsl r1, r1, #0x4 str r0, [r4, r1] ldrh r0, [r4, #0x14] ldr r2, _020663C8 ; =0x000003E2 mov r3, #0xa lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] ldr r0, [r4, #0x0] str r0, [sp, #0x4] ldr r0, [r4, r1] mov r1, #0x3 bl FUN_0200CD68 mov r0, #0x0 str r0, [sp, #0x0] ldr r0, [r4, #0x0] ldr r2, _020663CC ; =0x000003D9 str r0, [sp, #0x4] mov r0, #0x17 lsl r0, r0, #0x4 ldr r0, [r4, r0] mov r1, #0x3 mov r3, #0xb bl FUN_0200CB00 mov r1, #0x1a ldr r2, [r4, #0x0] mov r0, #0x0 lsl r1, r1, #0x4 bl FUN_02002ED0 mov r1, #0x6 ldr r2, [r4, #0x0] mov r0, #0x0 lsl r1, r1, #0x6 bl FUN_02002EEC mov r0, #0x13 str r0, [sp, #0x0] mov r0, #0x1b str r0, [sp, #0x4] mov r0, #0x4 str r0, [sp, #0x8] mov r0, #0xc str r0, [sp, #0xc] ldr r0, _020663D0 ; =0x0000036D mov r1, #0x17 lsl r1, r1, #0x4 str r0, [sp, #0x10] ldr r0, [r4, r1] add r1, #0x14 add r1, r4, r1 mov r2, #0x3 mov r3, #0x2 bl FUN_02019064 mov r0, #0x61 lsl r0, r0, #0x2 add r0, r4, r0 mov r1, #0x0 bl FUN_02019620 add sp, #0x14 pop {r3-r4, pc} .balign 4 _020663C8: .word 0x000003E2 _020663CC: .word 0x000003D9 _020663D0: .word 0x0000036D thumb_func_start FUN_020663D4 FUN_020663D4: ; 0x020663D4 push {r4, lr} add r4, r0, #0x0 mov r0, #0x61 lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_02019570 mov r0, #0x61 lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_02019178 mov r0, #0x61 lsl r0, r0, #0x2 add r0, r4, r0 mov r1, #0x0 mov r2, #0x10 blx MI_CpuFill8 mov r0, #0x17 mov r1, #0x0 lsl r0, r0, #0x4 str r1, [r4, r0] pop {r4, pc} thumb_func_start FUN_02066404 FUN_02066404: ; 0x02066404 push {r3-r7, lr} sub sp, #0x10 add r5, r0, #0x0 ldr r0, [sp, #0x28] add r4, r1, #0x0 add r6, r2, #0x0 add r7, r3, #0x0 cmp r0, #0x0 beq _02066426 mov r0, #0x61 lsl r0, r0, #0x2 ldr r2, _020664CC ; =0x000003E2 add r0, r5, r0 mov r1, #0x1 mov r3, #0xa bl FUN_0200D0BC _02066426: mov r1, #0xd8 str r1, [sp, #0x0] mov r0, #0x20 mov r2, #0x0 add r1, #0xac str r0, [sp, #0x4] add r0, r5, r1 mov r1, #0xff add r3, r2, #0x0 bl FUN_020196F4 mov r0, #0x1 bl FUN_02002B60 mov r0, #0x0 bl FUN_02002B7C cmp r4, #0x0 bne _02066494 mov r0, #0x45 lsl r0, r0, #0x2 ldr r0, [r5, r0] bl FUN_02021A4C mov r0, #0x1 str r0, [sp, #0x0] mov r0, #0x2 str r0, [sp, #0x4] mov r0, #0x11 lsl r0, r0, #0x4 ldrb r3, [r5, #0x18] mov r2, #0xc ldr r0, [r5, r0] mul r2, r3 add r2, r5, r2 ldr r2, [r2, #0x24] mov r1, #0x0 mov r3, #0x2 bl FUN_0200ABB4 mov r2, #0x11 lsl r2, r2, #0x4 lsl r3, r4, #0x2 add r1, r2, #0x4 ldr r0, [r5, r2] add r3, r5, r3 add r2, #0x10 ldr r1, [r5, r1] ldr r2, [r3, r2] bl FUN_0200B7B8 mov r0, #0x45 lsl r0, r0, #0x2 ldr r2, [r5, r0] b _0206649E _02066494: lsl r0, r4, #0x2 add r1, r5, r0 mov r0, #0x12 lsl r0, r0, #0x4 ldr r2, [r1, r0] _0206649E: mov r3, #0x0 str r3, [sp, #0x0] ldr r0, _020664D0 ; =0x0001020F str r6, [sp, #0x4] str r0, [sp, #0x8] mov r0, #0x61 lsl r0, r0, #0x2 add r0, r5, r0 mov r1, #0x1 str r3, [sp, #0xc] bl FUN_0201BDE0 mov r1, #0x4e lsl r1, r1, #0x2 strb r0, [r5, r1] add r1, #0x4c add r0, r5, r1 bl FUN_020191D0 ldr r0, _020664D4 ; =0x00000139 strb r7, [r5, r0] add sp, #0x10 pop {r3-r7, pc} .balign 4 _020664CC: .word 0x000003E2 _020664D0: .word 0x0001020F _020664D4: .word 0x00000139 thumb_func_start FUN_020664D8 FUN_020664D8: ; 0x020664D8 push {r4, lr} add r4, r0, #0x0 mov r0, #0x61 lsl r0, r0, #0x2 add r0, r4, r0 mov r1, #0x1 bl FUN_0200D0E0 mov r0, #0x61 lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_02019570 pop {r4, pc} thumb_func_start FUN_020664F4 FUN_020664F4: ; 0x020664F4 push {r4, lr} add r4, r0, #0x0 mov r0, #0x4e lsl r0, r0, #0x2 ldrb r0, [r4, r0] bl FUN_0201BD70 cmp r0, #0x0 beq _0206650A mov r0, #0x0 pop {r4, pc} _0206650A: ldr r0, _0206651C ; =0x00000139 ldrb r0, [r4, r0] cmp r0, #0x0 beq _02066518 add r0, r4, #0x0 bl FUN_020664D8 _02066518: mov r0, #0x1 pop {r4, pc} .balign 4 _0206651C: .word 0x00000139 thumb_func_start FUN_02066520 FUN_02066520: ; 0x02066520 push {r3-r4, lr} sub sp, #0x4 add r4, r0, #0x0 ldr r0, [r4, #0x0] ldr r1, _02066544 ; =0x020F7E6C str r0, [sp, #0x0] mov r0, #0x17 lsl r0, r0, #0x4 ldr r0, [r4, r0] ldr r2, _02066548 ; =0x000003D9 mov r3, #0xb bl FUN_02002198 mov r1, #0x5a lsl r1, r1, #0x2 str r0, [r4, r1] add sp, #0x4 pop {r3-r4, pc} .balign 4 _02066544: .word 0x020F7E6C _02066548: .word 0x000003D9 thumb_func_start FUN_0206654C FUN_0206654C: ; 0x0206654C push {r3, lr} add r1, r0, #0x0 mov r0, #0x5a lsl r0, r0, #0x2 ldr r0, [r1, r0] ldr r1, [r1, #0x0] bl FUN_020021AC cmp r0, #0x0 beq _0206656A mov r1, #0x1 mvn r1, r1 cmp r0, r1 beq _0206656E b _02066572 _0206656A: mov r0, #0x1 pop {r3, pc} _0206656E: mov r0, #0x0 pop {r3, pc} _02066572: add r0, r1, #0x1 pop {r3, pc} .balign 4 thumb_func_start FUN_02066578 FUN_02066578: ; 0x02066578 push {r3-r4, lr} sub sp, #0xc add r4, r0, #0x0 ldrh r0, [r4, #0x12] cmp r0, #0x0 beq _0206658A cmp r0, #0x1 beq _020665A8 b _020665BA _0206658A: mov r0, #0x6 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] ldr r0, [r4, #0x0] add r2, r1, #0x0 str r0, [sp, #0x8] mov r0, #0x0 add r3, r0, #0x0 bl FUN_0200E1D0 ldrh r0, [r4, #0x12] add r0, r0, #0x1 strh r0, [r4, #0x12] b _020665BA _020665A8: bl FUN_0200E308 cmp r0, #0x0 beq _020665BA mov r0, #0x0 strh r0, [r4, #0x12] add sp, #0xc mov r0, #0x1 pop {r3-r4, pc} _020665BA: mov r0, #0x0 add sp, #0xc pop {r3-r4, pc} thumb_func_start FUN_020665C0 FUN_020665C0: ; 0x020665C0 push {r4, lr} add r4, r0, #0x0 ldrh r0, [r4, #0x12] cmp r0, #0x0 beq _020665D4 cmp r0, #0x1 beq _020665E6 cmp r0, #0x2 beq _02066614 b _0206662E _020665D4: mov r0, #0x5b lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_0204649C ldrh r0, [r4, #0x12] add r0, r0, #0x1 strh r0, [r4, #0x12] b _0206662E _020665E6: mov r0, #0x5b lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_020464A4 cmp r0, #0x0 beq _0206662E mov r0, #0x5b lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x5a bl FUN_0224C678 mov r0, #0x5b lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x5a bl FUN_0224C6E8 ldrh r0, [r4, #0x12] add r0, r0, #0x1 strh r0, [r4, #0x12] b _0206662E _02066614: mov r0, #0x5b lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x5a ldr r0, [r0, #0x50] bl FUN_021DA58C cmp r0, #0x0 beq _0206662E mov r0, #0x0 strh r0, [r4, #0x12] mov r0, #0x1 pop {r4, pc} _0206662E: mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02066634 FUN_02066634: ; 0x02066634 push {r3-r5, lr} add r5, r0, #0x0 mov r0, #0x5b lsl r0, r0, #0x2 add r4, r1, #0x0 ldr r0, [r5, r0] mov r1, #0x5a bl FUN_021DAF98 cmp r4, #0x0 bne _02066652 add r0, r5, #0x0 bl FUN_02065EF8 b _02066658 _02066652: add r0, r5, #0x0 bl FUN_02065F8C _02066658: add r0, r5, #0x0 bl FUN_020663D4 mov r0, #0x1 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02066664 FUN_02066664: ; 0x02066664 push {r4-r6, lr} add r5, r0, #0x0 ldrh r0, [r5, #0x12] add r6, r1, #0x0 cmp r0, #0x0 beq _02066676 cmp r0, #0x1 beq _02066708 b _0206671E _02066676: ldr r0, [r5, #0x0] mov r1, #0x40 bl FUN_02016998 mov r1, #0x0 mov r2, #0x40 add r4, r0, #0x0 blx MI_CpuFill8 mov r0, #0x5b lsl r0, r0, #0x2 ldr r0, [r5, r0] bl FUN_020377AC bl FUN_0206BB1C str r0, [r4, #0x0] mov r0, #0x5b lsl r0, r0, #0x2 ldr r0, [r5, r0] bl FUN_020377AC bl FUN_0206F158 str r0, [r4, #0x4] mov r0, #0x5b lsl r0, r0, #0x2 ldr r0, [r5, r0] bl FUN_020377AC bl LoadPlayerDataAddress str r0, [r4, #0xc] mov r0, #0x5b lsl r0, r0, #0x2 ldr r0, [r5, r0] ldr r0, [r0, #0xc] bl FUN_02025838 str r0, [r4, #0x8] add r0, r4, #0x0 mov r1, #0x0 add r0, #0x21 strb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x20 strb r6, [r0, #0x0] ldrb r1, [r5, #0x18] mov r0, #0xc mul r0, r1 add r0, r5, r0 ldrh r0, [r0, #0x22] cmp r6, #0xb strh r0, [r4, #0x24] bne _020666EC ldrb r1, [r5, #0x17] add r0, r4, #0x0 add r0, #0x22 strb r1, [r0, #0x0] _020666EC: mov r0, #0x5b lsl r0, r0, #0x2 ldr r0, [r5, r0] ldr r1, _02066724 ; =0x020F96DC add r2, r4, #0x0 bl FUN_020373D4 mov r0, #0x6d lsl r0, r0, #0x2 str r4, [r5, r0] ldrh r0, [r5, #0x12] add r0, r0, #0x1 strh r0, [r5, #0x12] b _0206671E _02066708: mov r0, #0x5b lsl r0, r0, #0x2 ldr r0, [r5, r0] bl FUN_0204647C cmp r0, #0x0 bne _0206671E mov r0, #0x0 strh r0, [r5, #0x12] mov r0, #0x1 pop {r4-r6, pc} _0206671E: mov r0, #0x0 pop {r4-r6, pc} nop _02066724: .word 0x020F96DC thumb_func_start FUN_02066728 FUN_02066728: ; 0x02066728 push {r3-r5, lr} add r4, r0, #0x0 ldrh r0, [r4, #0x12] cmp r0, #0x0 beq _02066738 cmp r0, #0x1 beq _0206677A b _020667D0 _02066738: ldrb r2, [r4, #0x18] mov r0, #0xc mul r0, r2 add r3, r4, r0 ldrb r0, [r3, #0x1d] cmp r0, #0x0 beq _02066756 mov r0, #0x5b lsl r0, r0, #0x2 ldr r0, [r4, r0] ldr r3, [r4, #0x0] mov r1, #0x0 bl FUN_02037F58 b _0206676C _02066756: ldr r0, [r4, #0x0] add r3, #0x21 str r0, [sp, #0x0] mov r0, #0x5b lsl r0, r0, #0x2 ldrb r2, [r4, #0x17] ldrb r3, [r3, #0x0] ldr r0, [r4, r0] mov r1, #0x0 bl FUN_02037F2C _0206676C: mov r1, #0x6a lsl r1, r1, #0x2 str r0, [r4, r1] ldrh r0, [r4, #0x12] add r0, r0, #0x1 strh r0, [r4, #0x12] b _020667D0 _0206677A: mov r0, #0x5b lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_0204647C cmp r0, #0x0 bne _020667D0 mov r0, #0x6a lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_020855E4 cmp r0, #0x0 beq _020667BC ldrb r0, [r4, #0x18] mov r2, #0xc mov r3, #0x1 add r1, r0, #0x0 mul r1, r2 add r0, r4, r1 strb r3, [r0, #0x1d] ldrb r3, [r4, #0x18] mov r0, #0x6a lsl r0, r0, #0x2 mul r2, r3 add r2, r4, r2 ldrb r2, [r2, #0x1c] ldr r0, [r4, r0] mov r1, #0x0 bl FUN_020855E8 mov r5, #0x2 b _020667BE _020667BC: mov r5, #0x1 _020667BE: mov r0, #0x6a lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_0208562C mov r0, #0x0 strh r0, [r4, #0x12] add r0, r5, #0x0 pop {r3-r5, pc} _020667D0: mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_020667D4 FUN_020667D4: ; 0x020667D4 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldr r1, [r4, #0x4] cmp r1, #0x0 beq _020667F2 cmp r1, #0x1 beq _02066802 b _02066814 _020667F2: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_020653EC ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _02066814 _02066802: ldr r1, [r4, #0x0] cmp r1, #0x0 bne _0206680C mov r0, #0x0 pop {r3-r5, pc} _0206680C: bl FUN_02016A18 mov r0, #0x1 pop {r3-r5, pc} _02066814: mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02066818 FUN_02066818: ; 0x02066818 push {r4, lr} bl FUN_02046528 add r4, r0, #0x0 mov r0, #0xb mov r1, #0x8 bl FUN_020169D8 add r2, r0, #0x0 mov r0, #0x0 str r0, [r2, #0x0] str r0, [r2, #0x4] ldr r0, [r4, #0x10] ldr r1, _0206683C ; =FUN_020667D4 bl FUN_0204640C pop {r4, pc} nop _0206683C: .word FUN_020667D4 thumb_func_start FUN_02066840 FUN_02066840: ; 0x02066840 push {r4-r7, lr} sub sp, #0xc add r6, r0, #0x0 str r1, [sp, #0x0] add r7, r2, #0x0 bl FUN_020238F4 add r4, r0, #0x0 add r0, r6, #0x0 bl FUN_02029AFC add r5, r0, #0x0 add r0, r6, #0x0 bl FUN_0202A8D8 str r0, [sp, #0x4] add r0, r7, #0x0 mov r1, #0x0 mov r2, #0xe4 blx MI_CpuFill8 add r0, r4, #0x0 bl FUN_0202398C add r1, r7, #0x0 add r1, #0xa8 mov r2, #0x10 blx MI_CpuCopy8 add r0, r4, #0x0 bl FUN_020239BC add r1, r7, #0x0 add r1, #0xbc str r0, [r1, #0x0] ldr r0, _02066970 ; =0x020ECAC0 ldrb r1, [r0, #0x0] add r0, r7, #0x0 add r0, #0xb8 strb r1, [r0, #0x0] ldr r0, _02066974 ; =0x020ECAC4 ldrb r1, [r0, #0x0] add r0, r7, #0x0 add r0, #0xb9 strb r1, [r0, #0x0] add r0, r5, #0x0 bl FUN_02029B38 add r1, r7, #0x0 add r1, #0xba strb r0, [r1, #0x0] add r0, r5, #0x0 bl FUN_02029B3C add r1, r7, #0x0 add r1, #0xbb strb r0, [r1, #0x0] add r0, r4, #0x0 bl FUN_020239CC add r1, r7, #0x0 add r1, #0xc8 lsl r0, r0, #0x18 lsr r0, r0, #0x18 lsl r0, r0, #0x1f ldrb r1, [r1, #0x0] mov r2, #0x2 lsr r0, r0, #0x1e bic r1, r2 orr r1, r0 add r0, r7, #0x0 add r0, #0xc8 strb r1, [r0, #0x0] add r0, r4, #0x0 bl FUN_02023A28 add r1, r0, #0x0 add r0, r7, #0x0 add r0, #0xc8 ldrb r0, [r0, #0x0] mov r2, #0x1 lsl r0, r0, #0x1e lsr r0, r0, #0x1f bl FUN_020536D0 add r1, r7, #0x0 add r1, #0xc9 strb r0, [r1, #0x0] add r0, r7, #0x0 mov r4, #0x0 str r0, [sp, #0x8] add r0, #0xca add r5, r4, #0x0 str r0, [sp, #0x8] _020668FC: add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_0202A5F4 ldr r1, [sp, #0x8] mov r2, #0x8 add r1, r1, r5 blx MI_CpuCopy8 add r4, r4, #0x1 add r5, #0x8 cmp r4, #0x3 blt _020668FC add r0, r6, #0x0 mov r1, #0x3 bl FUN_0202A5F4 add r1, r7, #0x0 add r1, #0xc0 mov r2, #0x8 blx MI_CpuCopy8 ldr r0, [sp, #0x0] cmp r0, #0x0 bne _02066956 ldr r0, [sp, #0x4] mov r1, #0x7 mov r2, #0x0 bl FUN_0202A578 add r1, r7, #0x0 add r1, #0xe2 strh r0, [r1, #0x0] add r0, r7, #0x0 add r0, #0xe2 ldrh r0, [r0, #0x0] cmp r0, #0x0 beq _0206696C ldr r0, [sp, #0x4] ldr r1, [sp, #0x0] add r2, r7, #0x0 bl FUN_0202A498 add sp, #0xc pop {r4-r7, pc} _02066956: ldr r0, [sp, #0x4] bl FUN_0202A520 add r1, r7, #0x0 add r1, #0xe2 strh r0, [r1, #0x0] ldr r0, [sp, #0x4] ldr r1, [sp, #0x0] add r2, r7, #0x0 bl FUN_0202A498 _0206696C: add sp, #0xc pop {r4-r7, pc} .balign 4 _02066970: .word 0x020ECAC0 _02066974: .word 0x020ECAC4 thumb_func_start FUN_02066978 FUN_02066978: ; 0x02066978 push {r4, lr} add r4, r0, #0x0 mov r0, #0x0 add r1, r4, #0x0 mov r2, #0xec blx MIi_CpuClearFast add r0, r4, #0x0 ldrh r2, [r4, #0x6] add r0, #0x8 mov r1, #0x80 bl FUN_0206A3A4 add r0, r4, #0x0 ldr r2, [r4, #0x0] add r0, #0x88 mov r1, #0x64 bl FUN_0206A3A4 pop {r4, pc} thumb_func_start FUN_020669A0 FUN_020669A0: ; 0x020669A0 push {r4, lr} add r4, r0, #0x0 mov r0, #0x0 add r1, r4, #0x0 mov r2, #0x88 blx MIi_CpuClearFast add r0, r4, #0x0 ldrh r2, [r4, #0x6] add r0, #0x8 mov r1, #0x80 bl FUN_0206A3A4 pop {r4, pc} thumb_func_start FUN_020669BC FUN_020669BC: ; 0x020669BC mov r0, #0xec bx lr thumb_func_start FUN_020669C0 FUN_020669C0: ; 0x020669C0 push {r4, lr} mov r1, #0xec bl FUN_02016998 add r4, r0, #0x0 bl FUN_02066978 add r0, r4, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_020669D4 FUN_020669D4: ; 0x020669D4 push {r3-r5, lr} add r5, r0, #0x0 ldrh r0, [r5, #0x4] mov r4, #0x0 lsl r1, r0, #0x1f lsr r1, r1, #0x1f bne _02066A1A lsl r0, r0, #0x1e mov r4, #0x1 lsr r0, r0, #0x1f beq _020669EE bl ErrorHandling _020669EE: ldrh r1, [r5, #0x4] mov r0, #0x1 bic r1, r0 mov r0, #0x1 orr r0, r1 strh r0, [r5, #0x4] ldrh r1, [r5, #0x4] mov r0, #0x2 orr r0, r1 strh r0, [r5, #0x4] add r0, r5, #0x0 ldr r2, [r5, #0x0] add r0, #0x88 mov r1, #0x64 bl FUN_0206A3D0 add r0, r5, #0x0 ldrh r2, [r5, #0x6] add r0, #0x8 mov r1, #0x80 bl FUN_0206A3D0 _02066A1A: add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02066A20 FUN_02066A20: ; 0x02066A20 push {r3-r5, lr} add r5, r0, #0x0 ldrh r2, [r5, #0x4] mov r4, #0x0 lsl r0, r2, #0x1f lsr r0, r0, #0x1f cmp r0, #0x1 bne _02066A68 cmp r1, #0x1 bne _02066A68 mov r0, #0x1 bic r2, r0 strh r2, [r5, #0x4] ldrh r1, [r5, #0x4] mov r0, #0x2 mov r4, #0x1 bic r1, r0 strh r1, [r5, #0x4] add r0, r5, #0x0 ldr r2, [r5, #0x0] add r0, #0x88 mov r1, #0x64 bl FUN_0206A3A4 add r0, r5, #0x0 add r0, #0x8 mov r1, #0x80 bl FUN_0206A3F8 strh r0, [r5, #0x6] add r0, r5, #0x0 ldrh r2, [r5, #0x6] add r0, #0x8 mov r1, #0x80 bl FUN_0206A3A4 _02066A68: add r0, r4, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02066A6C FUN_02066A6C: ; 0x02066A6C push {r4, lr} add r2, r0, #0x0 ldrh r1, [r2, #0x4] mov r4, #0x0 lsl r0, r1, #0x1e lsr r0, r0, #0x1f bne _02066A8E mov r0, #0x2 orr r0, r1 strh r0, [r2, #0x4] add r0, r2, #0x0 ldrh r2, [r2, #0x6] add r0, #0x8 mov r1, #0x80 mov r4, #0x1 bl FUN_0206A3D0 _02066A8E: add r0, r4, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02066A94 FUN_02066A94: ; 0x02066A94 push {r3-r5, lr} add r5, r0, #0x0 ldrh r2, [r5, #0x4] mov r4, #0x0 lsl r0, r2, #0x1e lsr r0, r0, #0x1f cmp r0, #0x1 bne _02066AC8 cmp r1, #0x1 bne _02066AC8 mov r0, #0x2 bic r2, r0 add r0, r5, #0x0 strh r2, [r5, #0x4] add r0, #0x8 mov r1, #0x80 mov r4, #0x1 bl FUN_0206A3F8 strh r0, [r5, #0x6] add r0, r5, #0x0 ldrh r2, [r5, #0x6] add r0, #0x8 mov r1, #0x80 bl FUN_0206A3A4 _02066AC8: add r0, r4, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02066ACC FUN_02066ACC: ; 0x02066ACC push {r0-r3} push {r3-r6, lr} sub sp, #0x2c add r5, r0, #0x0 add r4, r1, #0x0 add r6, r3, #0x0 bl FUN_02066978 ldr r0, [sp, #0x50] add r1, r4, #0x0 str r0, [sp, #0x0] ldr r0, [sp, #0x54] add r3, r6, #0x0 str r0, [sp, #0x4] ldr r0, [sp, #0x58] str r0, [sp, #0x8] ldr r0, [sp, #0x5c] str r0, [sp, #0xc] ldr r2, [sp, #0x48] add r0, r5, #0x0 bl FUN_02066B64 add r0, r5, #0x0 add r0, #0x88 mov r1, #0x64 mov r2, #0x0 bl FUN_0206A3A4 add r0, r5, #0x0 ldr r2, [r5, #0x0] add r0, #0x88 mov r1, #0x64 bl FUN_0206A3A4 add r0, r5, #0x0 mov r1, #0xa0 add r2, sp, #0x48 bl FUN_02067830 mov r0, #0x0 bl FUN_020256BC add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0xa9 add r2, r4, #0x0 bl FUN_02067830 add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x0 str r0, [sp, #0x10] add r0, r5, #0x0 mov r1, #0xa1 add r2, sp, #0x10 bl FUN_02067830 mov r0, #0x0 add r1, sp, #0x14 mov r2, #0x18 blx MIi_CpuClearFast add r0, r5, #0x0 mov r1, #0xaa add r2, sp, #0x14 bl FUN_02067830 add r0, r5, #0x0 bl FUN_02066ED8 add sp, #0x2c pop {r3-r6} pop {r3} add sp, #0x10 bx r3 thumb_func_start FUN_02066B64 FUN_02066B64: ; 0x02066B64 push {r0-r3} push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 bl FUN_020669A0 add r0, r5, #0x0 bl FUN_02066A6C str r0, [sp, #0x0] ldr r0, [sp, #0x30] cmp r0, #0x0 bne _02066B8E bl FUN_0201B9EC add r4, r0, #0x0 bl FUN_0201B9EC lsl r0, r0, #0x10 orr r0, r4 str r0, [sp, #0x34] _02066B8E: add r0, r5, #0x0 mov r1, #0x0 add r2, sp, #0x34 bl FUN_02067960 ldr r0, [sp, #0x38] cmp r0, #0x2 bne _02066BD6 ldr r7, _02066D84 ; =0xFFFF0000 add r6, r7, #0x0 _02066BA2: bl FUN_0201B9EC add r4, r0, #0x0 bl FUN_0201B9EC ldr r1, [sp, #0x34] lsl r0, r0, #0x10 add r3, r4, #0x0 orr r3, r0 lsl r0, r1, #0x10 lsr r2, r0, #0x10 add r0, r1, #0x0 and r0, r7 lsr r1, r0, #0x10 add r0, r3, #0x0 str r3, [sp, #0x3c] and r0, r6 lsl r3, r3, #0x10 lsr r0, r0, #0x10 lsr r3, r3, #0x10 eor r0, r3 eor r0, r1 eor r0, r2 cmp r0, #0x8 blo _02066BA2 b _02066BDE _02066BD6: cmp r0, #0x1 beq _02066BDE mov r0, #0x0 str r0, [sp, #0x3c] _02066BDE: add r0, r5, #0x0 mov r1, #0x7 add r2, sp, #0x3c bl FUN_02067960 ldr r2, _02066D88 ; =0x020ECAC4 add r0, r5, #0x0 mov r1, #0xc bl FUN_02067960 add r0, r5, #0x0 mov r1, #0x5 add r2, sp, #0x24 bl FUN_02067960 add r0, r5, #0x0 mov r1, #0xb2 mov r2, #0x0 bl FUN_02067960 ldr r0, [sp, #0x24] ldr r1, [sp, #0x28] bl FUN_02068758 str r0, [sp, #0x8] add r0, r5, #0x0 mov r1, #0x8 add r2, sp, #0x8 bl FUN_02067960 ldr r0, [sp, #0x24] mov r1, #0x14 bl FUN_02068678 str r0, [sp, #0x8] add r0, r5, #0x0 mov r1, #0x9 add r2, sp, #0x8 bl FUN_02067960 add r0, r5, #0x0 mov r1, #0x9b add r2, sp, #0x28 bl FUN_02067960 ldr r2, _02066D8C ; =0x020ECAC0 add r0, r5, #0x0 mov r1, #0x79 bl FUN_02067960 mov r0, #0x4 str r0, [sp, #0x8] add r0, r5, #0x0 mov r1, #0x9a add r2, sp, #0x8 bl FUN_02067960 ldr r0, [sp, #0x2c] cmp r0, #0x20 bge _02066C94 add r0, r5, #0x0 mov r1, #0x46 add r2, sp, #0x2c bl FUN_02067960 add r0, r5, #0x0 mov r1, #0x47 add r2, sp, #0x2c bl FUN_02067960 add r0, r5, #0x0 mov r1, #0x48 add r2, sp, #0x2c bl FUN_02067960 add r0, r5, #0x0 mov r1, #0x49 add r2, sp, #0x2c bl FUN_02067960 add r0, r5, #0x0 mov r1, #0x4a add r2, sp, #0x2c bl FUN_02067960 add r0, r5, #0x0 mov r1, #0x4b add r2, sp, #0x2c bl FUN_02067960 b _02066D18 _02066C94: bl FUN_0201B9EC mov r1, #0x1f str r0, [sp, #0x8] and r0, r1 str r0, [sp, #0x4] add r0, r5, #0x0 mov r1, #0x46 add r2, sp, #0x4 bl FUN_02067960 mov r0, #0x3e ldr r1, [sp, #0x8] lsl r0, r0, #0x4 and r0, r1 lsr r0, r0, #0x5 str r0, [sp, #0x4] add r0, r5, #0x0 mov r1, #0x47 add r2, sp, #0x4 bl FUN_02067960 mov r0, #0x1f ldr r1, [sp, #0x8] lsl r0, r0, #0xa and r0, r1 lsr r0, r0, #0xa str r0, [sp, #0x4] add r0, r5, #0x0 mov r1, #0x48 add r2, sp, #0x4 bl FUN_02067960 bl FUN_0201B9EC mov r1, #0x1f str r0, [sp, #0x8] and r0, r1 str r0, [sp, #0x4] add r0, r5, #0x0 mov r1, #0x49 add r2, sp, #0x4 bl FUN_02067960 mov r0, #0x3e ldr r1, [sp, #0x8] lsl r0, r0, #0x4 and r0, r1 lsr r0, r0, #0x5 str r0, [sp, #0x4] add r0, r5, #0x0 mov r1, #0x4a add r2, sp, #0x4 bl FUN_02067960 mov r0, #0x1f ldr r1, [sp, #0x8] lsl r0, r0, #0xa and r0, r1 lsr r0, r0, #0xa str r0, [sp, #0x4] add r0, r5, #0x0 mov r1, #0x4b add r2, sp, #0x4 bl FUN_02067960 _02066D18: ldr r0, [sp, #0x24] mov r1, #0x18 bl FUN_02068678 str r0, [sp, #0x8] ldr r0, [sp, #0x24] mov r1, #0x19 bl FUN_02068678 str r0, [sp, #0x4] cmp r0, #0x0 beq _02066D50 ldr r1, [sp, #0x34] mov r0, #0x1 tst r0, r1 beq _02066D44 add r0, r5, #0x0 mov r1, #0xa add r2, sp, #0x4 bl FUN_02067960 b _02066D5A _02066D44: add r0, r5, #0x0 mov r1, #0xa add r2, sp, #0x8 bl FUN_02067960 b _02066D5A _02066D50: add r0, r5, #0x0 mov r1, #0xa add r2, sp, #0x8 bl FUN_02067960 _02066D5A: add r0, r5, #0x0 bl FUN_020689E8 str r0, [sp, #0x8] add r0, r5, #0x0 mov r1, #0x6f add r2, sp, #0x8 bl FUN_02067960 add r0, r5, #0x0 bl FUN_020695F4 ldr r1, [sp, #0x0] add r0, r5, #0x0 bl FUN_02066A94 add sp, #0xc pop {r4-r7} pop {r3} add sp, #0x10 bx r3 .balign 4 _02066D84: .word 0xFFFF0000 _02066D88: .word 0x020ECAC4 _02066D8C: .word 0x020ECAC0 thumb_func_start FUN_02066D90 FUN_02066D90: ; 0x02066D90 push {r3-r7, lr} sub sp, #0x18 str r2, [sp, #0x10] str r3, [sp, #0x14] ldr r4, [sp, #0x30] add r6, r0, #0x0 add r7, r1, #0x0 _02066D9E: bl FUN_0201B9EC add r5, r0, #0x0 bl FUN_0201B9EC lsl r0, r0, #0x10 orr r5, r0 add r0, r5, #0x0 bl FUN_02068884 cmp r4, r0 bne _02066D9E mov r0, #0x1 str r0, [sp, #0x0] str r5, [sp, #0x4] mov r0, #0x0 str r0, [sp, #0x8] str r0, [sp, #0xc] ldr r2, [sp, #0x10] ldr r3, [sp, #0x14] add r0, r6, #0x0 add r1, r7, #0x0 bl FUN_02066ACC add sp, #0x18 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02066DD4 FUN_02066DD4: ; 0x02066DD4 push {r4-r7, lr} sub sp, #0x24 str r1, [sp, #0x14] str r2, [sp, #0x18] str r3, [sp, #0x1c] str r0, [sp, #0x10] add r0, sp, #0x28 ldrb r0, [r0, #0x18] ldr r6, [sp, #0x38] ldr r7, [sp, #0x3c] cmp r0, #0x0 beq _02066E4C cmp r0, #0x1d bhs _02066E4C sub r0, r0, #0x1 str r0, [sp, #0x20] _02066DF4: bl FUN_0201B9EC add r4, r0, #0x0 bl FUN_0201B9EC lsl r0, r0, #0x10 orr r4, r0 mov r3, #0x3 lsl r3, r3, #0x10 and r3, r4 mov r0, #0x3 add r2, r4, #0x0 and r2, r0 lsl r0, r0, #0x8 and r0, r4 lsr r1, r0, #0x6 mov r0, #0x3 lsl r0, r0, #0x18 and r0, r4 lsr r0, r0, #0x12 lsr r3, r3, #0xc orr r0, r3 orr r0, r1 orr r0, r2 mov r1, #0x1c blx _u32_div_f lsl r0, r1, #0x10 lsr r5, r0, #0x10 add r0, r4, #0x0 bl FUN_02068884 cmp r7, r0 bne _02066DF4 ldr r0, [sp, #0x14] add r1, r4, #0x0 bl FUN_02068A20 cmp r6, r0 bne _02066DF4 ldr r0, [sp, #0x20] cmp r5, r0 bne _02066DF4 b _02066E58 _02066E4C: ldr r0, [sp, #0x14] add r1, r6, #0x0 add r2, r7, #0x0 bl FUN_02066E74 add r4, r0, #0x0 _02066E58: mov r0, #0x1 str r0, [sp, #0x0] str r4, [sp, #0x4] mov r0, #0x0 str r0, [sp, #0x8] str r0, [sp, #0xc] ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] ldr r2, [sp, #0x18] ldr r3, [sp, #0x1c] bl FUN_02066ACC add sp, #0x24 pop {r4-r7, pc} thumb_func_start FUN_02066E74 FUN_02066E74: ; 0x02066E74 push {r3-r5, lr} add r5, r1, #0x0 mov r1, #0x12 add r4, r2, #0x0 bl FUN_02068678 lsl r0, r0, #0x18 lsr r0, r0, #0x18 beq _02066EA0 cmp r0, #0xfe beq _02066EA0 cmp r0, #0xff beq _02066EA0 cmp r5, #0x0 bne _02066EA0 mov r1, #0x19 blx _s32_div_f add r1, r0, #0x1 mov r0, #0x19 mul r0, r1 add r4, r0, r4 _02066EA0: add r0, r4, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02066EA4 FUN_02066EA4: ; 0x02066EA4 push {r0-r3} push {r4, lr} sub sp, #0x10 mov r3, #0x1 str r3, [sp, #0x0] ldr r3, [sp, #0x28] add r4, r0, #0x0 str r3, [sp, #0x4] mov r3, #0x0 str r3, [sp, #0x8] str r3, [sp, #0xc] bl FUN_02066ACC add r0, r4, #0x0 mov r1, #0xae add r2, sp, #0x24 bl FUN_02067830 add r0, r4, #0x0 bl FUN_02066ED8 add sp, #0x10 pop {r4} pop {r3} add sp, #0x10 bx r3 thumb_func_start FUN_02066ED8 FUN_02066ED8: ; 0x02066ED8 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_020669D4 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_020687C0 str r0, [sp, #0x0] add r0, r5, #0x0 mov r1, #0xa0 add r2, sp, #0x0 bl FUN_02067830 add r0, r5, #0x0 bl FUN_02066F04 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02066A20 pop {r3-r5, pc} thumb_func_start FUN_02066F04 FUN_02066F04: ; 0x02066F04 push {r3-r7, lr} sub sp, #0x58 add r5, r0, #0x0 bl FUN_020669D4 str r0, [sp, #0x0] add r0, r5, #0x0 mov r1, #0xa0 mov r2, #0x0 bl FUN_020671BC add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0xa3 mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0x2c] add r0, r5, #0x0 mov r1, #0xa2 mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0x54] add r0, r5, #0x0 mov r1, #0x46 mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0x30] add r0, r5, #0x0 mov r1, #0xd mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0x34] add r0, r5, #0x0 mov r1, #0x47 mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0x28] add r0, r5, #0x0 mov r1, #0xe mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0x14] add r0, r5, #0x0 mov r1, #0x48 mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0x24] add r0, r5, #0x0 mov r1, #0xf mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0x10] add r0, r5, #0x0 mov r1, #0x49 mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0x20] add r0, r5, #0x0 mov r1, #0x10 mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0xc] add r0, r5, #0x0 mov r1, #0x4a mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0x1c] add r0, r5, #0x0 mov r1, #0x11 mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0x8] add r0, r5, #0x0 mov r1, #0x4b mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0x18] add r0, r5, #0x0 mov r1, #0x12 mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0x4] add r0, r5, #0x0 mov r1, #0x70 mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0x38] add r0, r5, #0x0 mov r1, #0x5 mov r2, #0x0 bl FUN_020671BC add r7, r0, #0x0 mov r0, #0x0 mov r1, #0x2c bl FUN_02016998 add r6, r0, #0x0 ldr r1, [sp, #0x38] add r0, r7, #0x0 add r2, r6, #0x0 bl FUN_0206A380 mov r0, #0x49 lsl r0, r0, #0x2 cmp r7, r0 bne _02066FFC mov r0, #0x1 b _0206701E _02066FFC: ldr r0, [sp, #0x34] asr r0, r0, #0x1 lsr r1, r0, #0x1e ldr r0, [sp, #0x34] add r1, r0, r1 asr r0, r1, #0x2 ldrb r1, [r6, #0x0] lsl r2, r1, #0x1 ldr r1, [sp, #0x30] add r1, r1, r2 add r0, r0, r1 mul r0, r4 mov r1, #0x64 blx _s32_div_f add r0, r4, r0 add r0, #0xa _0206701E: str r0, [sp, #0x50] add r0, r5, #0x0 mov r1, #0xa3 add r2, sp, #0x50 bl FUN_02067830 ldr r0, [sp, #0x14] asr r0, r0, #0x1 lsr r1, r0, #0x1e ldr r0, [sp, #0x14] add r1, r0, r1 asr r0, r1, #0x2 ldrb r1, [r6, #0x1] lsl r2, r1, #0x1 ldr r1, [sp, #0x28] add r1, r1, r2 add r0, r0, r1 mul r0, r4 mov r1, #0x64 blx _s32_div_f add r0, r0, #0x5 str r0, [sp, #0x4c] add r0, r5, #0x0 bl FUN_02068854 ldr r1, [sp, #0x4c] mov r2, #0x1 lsl r1, r1, #0x10 lsr r1, r1, #0x10 bl FUN_02068894 str r0, [sp, #0x4c] add r0, r5, #0x0 mov r1, #0xa4 add r2, sp, #0x4c bl FUN_02067830 ldr r0, [sp, #0x10] asr r0, r0, #0x1 lsr r1, r0, #0x1e ldr r0, [sp, #0x10] add r1, r0, r1 asr r0, r1, #0x2 ldrb r1, [r6, #0x2] lsl r2, r1, #0x1 ldr r1, [sp, #0x24] add r1, r1, r2 add r0, r0, r1 mul r0, r4 mov r1, #0x64 blx _s32_div_f add r0, r0, #0x5 str r0, [sp, #0x48] add r0, r5, #0x0 bl FUN_02068854 ldr r1, [sp, #0x48] mov r2, #0x2 lsl r1, r1, #0x10 lsr r1, r1, #0x10 bl FUN_02068894 str r0, [sp, #0x48] add r0, r5, #0x0 mov r1, #0xa5 add r2, sp, #0x48 bl FUN_02067830 ldr r0, [sp, #0xc] asr r0, r0, #0x1 lsr r1, r0, #0x1e ldr r0, [sp, #0xc] add r1, r0, r1 asr r0, r1, #0x2 ldrb r1, [r6, #0x3] lsl r2, r1, #0x1 ldr r1, [sp, #0x20] add r1, r1, r2 add r0, r0, r1 mul r0, r4 mov r1, #0x64 blx _s32_div_f add r0, r0, #0x5 str r0, [sp, #0x44] add r0, r5, #0x0 bl FUN_02068854 ldr r1, [sp, #0x44] mov r2, #0x3 lsl r1, r1, #0x10 lsr r1, r1, #0x10 bl FUN_02068894 str r0, [sp, #0x44] add r0, r5, #0x0 mov r1, #0xa6 add r2, sp, #0x44 bl FUN_02067830 ldr r0, [sp, #0x8] asr r0, r0, #0x1 lsr r1, r0, #0x1e ldr r0, [sp, #0x8] add r1, r0, r1 asr r0, r1, #0x2 ldrb r1, [r6, #0x4] lsl r2, r1, #0x1 ldr r1, [sp, #0x1c] add r1, r1, r2 add r0, r0, r1 mul r0, r4 mov r1, #0x64 blx _s32_div_f add r0, r0, #0x5 str r0, [sp, #0x40] add r0, r5, #0x0 bl FUN_02068854 ldr r1, [sp, #0x40] mov r2, #0x4 lsl r1, r1, #0x10 lsr r1, r1, #0x10 bl FUN_02068894 str r0, [sp, #0x40] add r0, r5, #0x0 mov r1, #0xa7 add r2, sp, #0x40 bl FUN_02067830 ldr r0, [sp, #0x4] asr r0, r0, #0x1 lsr r1, r0, #0x1e ldr r0, [sp, #0x4] add r1, r0, r1 asr r0, r1, #0x2 ldrb r1, [r6, #0x5] lsl r2, r1, #0x1 ldr r1, [sp, #0x18] add r1, r1, r2 add r0, r0, r1 mul r0, r4 mov r1, #0x64 blx _s32_div_f add r0, r0, #0x5 str r0, [sp, #0x3c] add r0, r5, #0x0 bl FUN_02068854 ldr r1, [sp, #0x3c] mov r2, #0x5 lsl r1, r1, #0x10 lsr r1, r1, #0x10 bl FUN_02068894 str r0, [sp, #0x3c] add r0, r5, #0x0 mov r1, #0xa8 add r2, sp, #0x3c bl FUN_02067830 add r0, r6, #0x0 bl FUN_02016A18 ldr r1, [sp, #0x54] cmp r1, #0x0 bne _0206717C ldr r0, [sp, #0x2c] cmp r0, #0x0 bne _020671A0 _0206717C: mov r0, #0x49 lsl r0, r0, #0x2 cmp r7, r0 bne _0206718A mov r0, #0x1 str r0, [sp, #0x54] b _020671A0 _0206718A: cmp r1, #0x0 bne _02067194 ldr r0, [sp, #0x50] str r0, [sp, #0x54] b _020671A0 _02067194: ldr r1, [sp, #0x50] ldr r0, [sp, #0x2c] ldr r2, [sp, #0x54] sub r0, r1, r0 add r0, r2, r0 str r0, [sp, #0x54] _020671A0: ldr r0, [sp, #0x54] cmp r0, #0x0 beq _020671B0 add r0, r5, #0x0 mov r1, #0xa2 add r2, sp, #0x54 bl FUN_02067830 _020671B0: ldr r1, [sp, #0x0] add r0, r5, #0x0 bl FUN_02066A20 add sp, #0x58 pop {r3-r7, pc} thumb_func_start FUN_020671BC FUN_020671BC: ; 0x020671BC push {r4-r6, lr} add r5, r0, #0x0 ldrh r0, [r5, #0x4] add r4, r1, #0x0 add r6, r2, #0x0 lsl r0, r0, #0x1f lsr r0, r0, #0x1f bne _02067204 add r0, r5, #0x0 ldr r2, [r5, #0x0] add r0, #0x88 mov r1, #0x64 bl FUN_0206A3D0 add r0, r5, #0x0 ldrh r2, [r5, #0x6] add r0, #0x8 mov r1, #0x80 bl FUN_0206A3D0 add r0, r5, #0x0 add r0, #0x8 mov r1, #0x80 bl FUN_0206A3F8 ldrh r1, [r5, #0x6] cmp r0, r1 beq _02067204 cmp r0, r1 beq _020671FC bl ErrorHandling _020671FC: ldrh r1, [r5, #0x4] mov r0, #0x4 orr r0, r1 strh r0, [r5, #0x4] _02067204: add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_02067234 add r4, r0, #0x0 ldrh r0, [r5, #0x4] lsl r0, r0, #0x1f lsr r0, r0, #0x1f bne _02067230 add r0, r5, #0x0 ldr r2, [r5, #0x0] add r0, #0x88 mov r1, #0x64 bl FUN_0206A3A4 add r0, r5, #0x0 ldrh r2, [r5, #0x6] add r0, #0x8 mov r1, #0x80 bl FUN_0206A3A4 _02067230: add r0, r4, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02067234 FUN_02067234: ; 0x02067234 push {r3, lr} add r3, r1, #0x0 sub r3, #0x9f cmp r3, #0xb bhi _020672B6 add r3, r3, r3 add r3, pc ldrh r3, [r3, #0x6] lsl r3, r3, #0x10 asr r3, r3, #0x10 add pc, r3 _0206724A: ; jump table (using 16-bit offset) .short _02067262 - _0206724A - 2; case 0 .short _02067268 - _0206724A - 2; case 1 .short _0206726E - _0206724A - 2; case 2 .short _02067274 - _0206724A - 2; case 3 .short _0206727A - _0206724A - 2; case 4 .short _02067280 - _0206724A - 2; case 5 .short _02067286 - _0206724A - 2; case 6 .short _0206728C - _0206724A - 2; case 7 .short _02067292 - _0206724A - 2; case 8 .short _02067298 - _0206724A - 2; case 9 .short _0206729E - _0206724A - 2; case 10 .short _020672AA - _0206724A - 2; case 11 _02067262: add r0, #0x88 ldr r0, [r0, #0x0] pop {r3, pc} _02067268: add r0, #0x8c ldrb r0, [r0, #0x0] pop {r3, pc} _0206726E: add r0, #0x8d ldrb r0, [r0, #0x0] pop {r3, pc} _02067274: add r0, #0x8e ldrh r0, [r0, #0x0] pop {r3, pc} _0206727A: add r0, #0x90 ldrh r0, [r0, #0x0] pop {r3, pc} _02067280: add r0, #0x92 ldrh r0, [r0, #0x0] pop {r3, pc} _02067286: add r0, #0x94 ldrh r0, [r0, #0x0] pop {r3, pc} _0206728C: add r0, #0x96 ldrh r0, [r0, #0x0] pop {r3, pc} _02067292: add r0, #0x98 ldrh r0, [r0, #0x0] pop {r3, pc} _02067298: add r0, #0x9a ldrh r0, [r0, #0x0] pop {r3, pc} _0206729E: add r0, #0x9c add r1, r2, #0x0 bl FUN_020256D0 mov r0, #0x1 pop {r3, pc} _020672AA: add r0, #0xd4 add r1, r2, #0x0 bl FUN_02029C74 mov r0, #0x1 pop {r3, pc} _020672B6: bl FUN_0206731C pop {r3, pc} thumb_func_start FUN_020672BC FUN_020672BC: ; 0x020672BC push {r4-r6, lr} add r5, r0, #0x0 ldrh r0, [r5, #0x4] add r4, r1, #0x0 add r6, r2, #0x0 lsl r0, r0, #0x1e lsr r0, r0, #0x1f bne _020672F8 ldrh r2, [r5, #0x6] add r0, r5, #0x0 add r0, #0x8 mov r1, #0x80 bl FUN_0206A3D0 add r0, r5, #0x0 add r0, #0x8 mov r1, #0x80 bl FUN_0206A3F8 ldrh r1, [r5, #0x6] cmp r0, r1 beq _020672F8 cmp r0, r1 beq _020672F0 bl ErrorHandling _020672F0: ldrh r1, [r5, #0x4] mov r0, #0x4 orr r0, r1 strh r0, [r5, #0x4] _020672F8: add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_0206731C add r4, r0, #0x0 ldrh r0, [r5, #0x4] lsl r0, r0, #0x1e lsr r0, r0, #0x1f bne _02067318 ldrh r2, [r5, #0x6] add r0, r5, #0x0 add r0, #0x8 mov r1, #0x80 bl FUN_0206A3A4 _02067318: add r0, r4, #0x0 pop {r4-r6, pc} thumb_func_start FUN_0206731C FUN_0206731C: ; 0x0206731C push {r4-r7, lr} sub sp, #0xc str r1, [sp, #0x4] add r1, r0, #0x0 mov r4, #0x0 str r2, [sp, #0x8] ldr r1, [r1, #0x0] str r0, [sp, #0x0] add r2, r4, #0x0 bl FUN_0206A418 add r5, r0, #0x0 ldr r0, [sp, #0x0] mov r2, #0x1 add r1, r0, #0x0 ldr r1, [r1, #0x0] bl FUN_0206A418 add r6, r0, #0x0 ldr r0, [sp, #0x0] mov r2, #0x2 add r1, r0, #0x0 ldr r1, [r1, #0x0] bl FUN_0206A418 add r7, r0, #0x0 ldr r0, [sp, #0x0] mov r2, #0x3 add r1, r0, #0x0 ldr r1, [r1, #0x0] bl FUN_0206A418 add r1, r0, #0x0 ldr r0, [sp, #0x4] cmp r0, #0xb2 bls _02067366 b _020674D8 _02067366: add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02067372: ; jump table (using 16-bit offset) .short _020674DC - _02067372 - 2; case 0 .short _020674E2 - _02067372 - 2; case 1 .short _020674EC - _02067372 - 2; case 2 .short _020674F6 - _02067372 - 2; case 3 .short _02067500 - _02067372 - 2; case 4 .short _0206754C - _02067372 - 2; case 5 .short _0206755E - _02067372 - 2; case 6 .short _02067562 - _02067372 - 2; case 7 .short _02067566 - _02067372 - 2; case 8 .short _0206756A - _02067372 - 2; case 9 .short _0206756E - _02067372 - 2; case 10 .short _02067572 - _02067372 - 2; case 11 .short _02067576 - _02067372 - 2; case 12 .short _0206757A - _02067372 - 2; case 13 .short _0206757E - _02067372 - 2; case 14 .short _02067582 - _02067372 - 2; case 15 .short _02067586 - _02067372 - 2; case 16 .short _0206758A - _02067372 - 2; case 17 .short _0206758E - _02067372 - 2; case 18 .short _02067592 - _02067372 - 2; case 19 .short _02067596 - _02067372 - 2; case 20 .short _0206759A - _02067372 - 2; case 21 .short _0206759E - _02067372 - 2; case 22 .short _020675A2 - _02067372 - 2; case 23 .short _020675A6 - _02067372 - 2; case 24 .short _020675AA - _02067372 - 2; case 25 .short _020675AA - _02067372 - 2; case 26 .short _020675AA - _02067372 - 2; case 27 .short _020675AA - _02067372 - 2; case 28 .short _020675AA - _02067372 - 2; case 29 .short _020675AA - _02067372 - 2; case 30 .short _020675AA - _02067372 - 2; case 31 .short _020675AA - _02067372 - 2; case 32 .short _020675AA - _02067372 - 2; case 33 .short _020675AA - _02067372 - 2; case 34 .short _020675AA - _02067372 - 2; case 35 .short _020675AA - _02067372 - 2; case 36 .short _020675AA - _02067372 - 2; case 37 .short _020675AA - _02067372 - 2; case 38 .short _020675AA - _02067372 - 2; case 39 .short _020675AA - _02067372 - 2; case 40 .short _020675AA - _02067372 - 2; case 41 .short _020675AA - _02067372 - 2; case 42 .short _020675AA - _02067372 - 2; case 43 .short _020675AA - _02067372 - 2; case 44 .short _020675AA - _02067372 - 2; case 45 .short _020675AA - _02067372 - 2; case 46 .short _020675AA - _02067372 - 2; case 47 .short _020675AA - _02067372 - 2; case 48 .short _020675AA - _02067372 - 2; case 49 .short _020675AA - _02067372 - 2; case 50 .short _020675AA - _02067372 - 2; case 51 .short _020675AA - _02067372 - 2; case 52 .short _020675AA - _02067372 - 2; case 53 .short _020675D0 - _02067372 - 2; case 54 .short _020675D0 - _02067372 - 2; case 55 .short _020675D0 - _02067372 - 2; case 56 .short _020675D0 - _02067372 - 2; case 57 .short _020675DC - _02067372 - 2; case 58 .short _020675DC - _02067372 - 2; case 59 .short _020675DC - _02067372 - 2; case 60 .short _020675DC - _02067372 - 2; case 61 .short _020675E8 - _02067372 - 2; case 62 .short _020675E8 - _02067372 - 2; case 63 .short _020675E8 - _02067372 - 2; case 64 .short _020675E8 - _02067372 - 2; case 65 .short _020675F4 - _02067372 - 2; case 66 .short _020675F4 - _02067372 - 2; case 67 .short _020675F4 - _02067372 - 2; case 68 .short _020675F4 - _02067372 - 2; case 69 .short _0206760C - _02067372 - 2; case 70 .short _02067614 - _02067372 - 2; case 71 .short _0206761C - _02067372 - 2; case 72 .short _02067624 - _02067372 - 2; case 73 .short _0206762C - _02067372 - 2; case 74 .short _02067634 - _02067372 - 2; case 75 .short _0206763C - _02067372 - 2; case 76 .short _0206764E - _02067372 - 2; case 77 .short _02067654 - _02067372 - 2; case 78 .short _02067654 - _02067372 - 2; case 79 .short _02067654 - _02067372 - 2; case 80 .short _02067654 - _02067372 - 2; case 81 .short _02067654 - _02067372 - 2; case 82 .short _02067654 - _02067372 - 2; case 83 .short _02067654 - _02067372 - 2; case 84 .short _02067654 - _02067372 - 2; case 85 .short _02067654 - _02067372 - 2; case 86 .short _02067654 - _02067372 - 2; case 87 .short _02067654 - _02067372 - 2; case 88 .short _02067654 - _02067372 - 2; case 89 .short _02067654 - _02067372 - 2; case 90 .short _02067654 - _02067372 - 2; case 91 .short _02067654 - _02067372 - 2; case 92 .short _02067654 - _02067372 - 2; case 93 .short _02067654 - _02067372 - 2; case 94 .short _02067654 - _02067372 - 2; case 95 .short _02067654 - _02067372 - 2; case 96 .short _02067654 - _02067372 - 2; case 97 .short _02067654 - _02067372 - 2; case 98 .short _02067654 - _02067372 - 2; case 99 .short _02067654 - _02067372 - 2; case 100 .short _02067654 - _02067372 - 2; case 101 .short _02067654 - _02067372 - 2; case 102 .short _02067654 - _02067372 - 2; case 103 .short _02067654 - _02067372 - 2; case 104 .short _02067654 - _02067372 - 2; case 105 .short _02067654 - _02067372 - 2; case 106 .short _02067654 - _02067372 - 2; case 107 .short _02067654 - _02067372 - 2; case 108 .short _02067654 - _02067372 - 2; case 109 .short _0206767C - _02067372 - 2; case 110 .short _02067684 - _02067372 - 2; case 111 .short _0206768C - _02067372 - 2; case 112 .short _02067694 - _02067372 - 2; case 113 .short _02067698 - _02067372 - 2; case 114 .short _020674D8 - _02067372 - 2; case 115 .short _0206769C - _02067372 - 2; case 116 .short _020674D8 - _02067372 - 2; case 117 .short _020676D0 - _02067372 - 2; case 118 .short _020676CC - _02067372 - 2; case 119 .short _020676FE - _02067372 - 2; case 120 .short _02067702 - _02067372 - 2; case 121 .short _02067706 - _02067372 - 2; case 122 .short _02067706 - _02067372 - 2; case 123 .short _02067706 - _02067372 - 2; case 124 .short _02067706 - _02067372 - 2; case 125 .short _02067706 - _02067372 - 2; case 126 .short _02067706 - _02067372 - 2; case 127 .short _02067706 - _02067372 - 2; case 128 .short _02067706 - _02067372 - 2; case 129 .short _02067706 - _02067372 - 2; case 130 .short _02067706 - _02067372 - 2; case 131 .short _02067706 - _02067372 - 2; case 132 .short _02067706 - _02067372 - 2; case 133 .short _02067706 - _02067372 - 2; case 134 .short _02067706 - _02067372 - 2; case 135 .short _02067706 - _02067372 - 2; case 136 .short _02067706 - _02067372 - 2; case 137 .short _02067706 - _02067372 - 2; case 138 .short _02067706 - _02067372 - 2; case 139 .short _02067706 - _02067372 - 2; case 140 .short _02067706 - _02067372 - 2; case 141 .short _02067706 - _02067372 - 2; case 142 .short _0206772C - _02067372 - 2; case 143 .short _02067746 - _02067372 - 2; case 144 .short _0206774E - _02067372 - 2; case 145 .short _02067752 - _02067372 - 2; case 146 .short _02067756 - _02067372 - 2; case 147 .short _0206775A - _02067372 - 2; case 148 .short _0206775E - _02067372 - 2; case 149 .short _02067762 - _02067372 - 2; case 150 .short _02067766 - _02067372 - 2; case 151 .short _0206776A - _02067372 - 2; case 152 .short _0206776E - _02067372 - 2; case 153 .short _02067772 - _02067372 - 2; case 154 .short _02067776 - _02067372 - 2; case 155 .short _0206777E - _02067372 - 2; case 156 .short _02067786 - _02067372 - 2; case 157 .short _0206778A - _02067372 - 2; case 158 .short _020674D8 - _02067372 - 2; case 159 .short _02067540 - _02067372 - 2; case 160 .short _020674D8 - _02067372 - 2; case 161 .short _020674D8 - _02067372 - 2; case 162 .short _020674D8 - _02067372 - 2; case 163 .short _020674D8 - _02067372 - 2; case 164 .short _020674D8 - _02067372 - 2; case 165 .short _020674D8 - _02067372 - 2; case 166 .short _020674D8 - _02067372 - 2; case 167 .short _020674D8 - _02067372 - 2; case 168 .short _020674D8 - _02067372 - 2; case 169 .short _020674D8 - _02067372 - 2; case 170 .short _02067506 - _02067372 - 2; case 171 .short _02067510 - _02067372 - 2; case 172 .short _02067522 - _02067372 - 2; case 173 .short _0206778E - _02067372 - 2; case 174 .short _020677C0 - _02067372 - 2; case 175 .short _020677D8 - _02067372 - 2; case 176 .short _020677D8 - _02067372 - 2; case 177 .short _02067810 - _02067372 - 2; case 178 _020674D8: mov r4, #0x0 b _0206781A _020674DC: ldr r0, [sp, #0x0] ldr r4, [r0, #0x0] b _0206781A _020674E2: ldr r0, [sp, #0x0] ldrh r0, [r0, #0x4] lsl r0, r0, #0x1f lsr r4, r0, #0x1f b _0206781A _020674EC: ldr r0, [sp, #0x0] ldrh r0, [r0, #0x4] lsl r0, r0, #0x1e lsr r4, r0, #0x1f b _0206781A _020674F6: ldr r0, [sp, #0x0] ldrh r0, [r0, #0x4] lsl r0, r0, #0x1d lsr r4, r0, #0x1f b _0206781A _02067500: ldr r0, [sp, #0x0] ldrh r4, [r0, #0x6] b _0206781A _02067506: ldrh r0, [r5, #0x0] cmp r0, #0x0 beq _0206753A mov r4, #0x1 b _0206781A _02067510: ldr r0, [sp, #0x0] ldrh r0, [r0, #0x4] lsl r0, r0, #0x1d lsr r4, r0, #0x1f bne _0206753A ldr r0, [r6, #0x10] lsl r0, r0, #0x1 lsr r4, r0, #0x1f b _0206781A _02067522: ldrh r4, [r5, #0x0] cmp r4, #0x0 beq _0206753A ldr r0, [r6, #0x10] lsl r0, r0, #0x1 lsr r0, r0, #0x1f bne _0206753C ldr r0, [sp, #0x0] ldrh r0, [r0, #0x4] lsl r0, r0, #0x1d lsr r0, r0, #0x1f bne _0206753C _0206753A: b _0206781A _0206753C: ldr r4, _02067820 ; =0x000001EE b _0206781A _02067540: ldrh r0, [r5, #0x0] ldr r1, [r5, #0x8] bl FUN_02068800 add r4, r0, #0x0 b _0206781A _0206754C: ldr r0, [sp, #0x0] ldrh r0, [r0, #0x4] lsl r0, r0, #0x1d lsr r0, r0, #0x1f beq _0206755A ldr r4, _02067820 ; =0x000001EE b _0206781A _0206755A: ldrh r4, [r5, #0x0] b _0206781A _0206755E: ldrh r4, [r5, #0x2] b _0206781A _02067562: ldr r4, [r5, #0x4] b _0206781A _02067566: ldr r4, [r5, #0x8] b _0206781A _0206756A: ldrb r4, [r5, #0xc] b _0206781A _0206756E: ldrb r4, [r5, #0xd] b _0206781A _02067572: ldrb r4, [r5, #0xe] b _0206781A _02067576: ldrb r4, [r5, #0xf] b _0206781A _0206757A: ldrb r4, [r5, #0x10] b _0206781A _0206757E: ldrb r4, [r5, #0x11] b _0206781A _02067582: ldrb r4, [r5, #0x12] b _0206781A _02067586: ldrb r4, [r5, #0x13] b _0206781A _0206758A: ldrb r4, [r5, #0x14] b _0206781A _0206758E: ldrb r4, [r5, #0x15] b _0206781A _02067592: ldrb r4, [r5, #0x16] b _0206781A _02067596: ldrb r4, [r5, #0x17] b _0206781A _0206759A: ldrb r4, [r5, #0x18] b _0206781A _0206759E: ldrb r4, [r5, #0x19] b _0206781A _020675A2: ldrb r4, [r5, #0x1a] b _0206781A _020675A6: ldrb r4, [r5, #0x1b] b _0206781A _020675AA: ldr r2, [sp, #0x4] mov r0, #0x1 sub r2, #0x19 add r1, r4, #0x0 str r2, [sp, #0x4] blx FUN_020EBC50 ldr r2, [r5, #0x1c] add r3, r4, #0x0 and r3, r1 and r2, r0 mov r1, #0x0 mov r0, #0x0 eor r1, r3 eor r0, r2 orr r0, r1 beq _02067676 mov r4, #0x1 b _0206781A _020675D0: ldr r0, [sp, #0x4] sub r0, #0x36 str r0, [sp, #0x4] lsl r0, r0, #0x1 ldrh r4, [r6, r0] b _0206781A _020675DC: ldr r0, [sp, #0x4] sub r0, #0x3a str r0, [sp, #0x4] add r0, r6, r0 ldrb r4, [r0, #0x8] b _0206781A _020675E8: ldr r0, [sp, #0x4] sub r0, #0x3e str r0, [sp, #0x4] add r0, r6, r0 ldrb r4, [r0, #0xc] b _0206781A _020675F4: ldr r0, [sp, #0x4] sub r0, #0x42 str r0, [sp, #0x4] ldr r1, [sp, #0x4] lsl r0, r0, #0x1 add r1, r6, r1 ldrh r0, [r6, r0] ldrb r1, [r1, #0xc] bl FUN_0206AB30 add r4, r0, #0x0 b _0206781A _0206760C: ldr r0, [r6, #0x10] lsl r0, r0, #0x1b lsr r4, r0, #0x1b b _0206781A _02067614: ldr r0, [r6, #0x10] lsl r0, r0, #0x16 lsr r4, r0, #0x1b b _0206781A _0206761C: ldr r0, [r6, #0x10] lsl r0, r0, #0x11 lsr r4, r0, #0x1b b _0206781A _02067624: ldr r0, [r6, #0x10] lsl r0, r0, #0xc lsr r4, r0, #0x1b b _0206781A _0206762C: ldr r0, [r6, #0x10] lsl r0, r0, #0x7 lsr r4, r0, #0x1b b _0206781A _02067634: ldr r0, [r6, #0x10] lsl r0, r0, #0x2 lsr r4, r0, #0x1b b _0206781A _0206763C: ldr r0, [sp, #0x0] ldrh r0, [r0, #0x4] lsl r0, r0, #0x1d lsr r4, r0, #0x1f bne _02067676 ldr r0, [r6, #0x10] lsl r0, r0, #0x1 lsr r4, r0, #0x1f b _0206781A _0206764E: ldr r0, [r6, #0x10] lsr r4, r0, #0x1f b _0206781A _02067654: ldr r2, [sp, #0x4] mov r0, #0x1 sub r2, #0x4e add r1, r4, #0x0 str r2, [sp, #0x4] blx FUN_020EBC50 ldr r2, [r6, #0x14] add r3, r4, #0x0 and r3, r1 and r2, r0 mov r1, #0x0 mov r0, #0x0 eor r1, r3 eor r0, r2 orr r0, r1 bne _02067678 _02067676: b _0206781A _02067678: mov r4, #0x1 b _0206781A _0206767C: ldrb r0, [r6, #0x18] lsl r0, r0, #0x1f lsr r4, r0, #0x1f b _0206781A _02067684: ldrb r0, [r6, #0x18] lsl r0, r0, #0x1d lsr r4, r0, #0x1e b _0206781A _0206768C: ldrb r0, [r6, #0x18] lsl r0, r0, #0x18 lsr r4, r0, #0x1b b _0206781A _02067694: ldrb r4, [r6, #0x19] b _0206781A _02067698: ldrh r4, [r6, #0x1a] b _0206781A _0206769C: ldr r0, [sp, #0x0] ldrh r0, [r0, #0x4] lsl r0, r0, #0x1d lsr r0, r0, #0x1f beq _020676B2 ldr r0, _02067824 ; =0x000001EF ldr r2, [sp, #0x8] add r1, r4, #0x0 bl FUN_0200A99C b _0206781A _020676B2: ldr r1, [sp, #0x8] _020676B4: ldrh r0, [r7, #0x0] add r4, r4, #0x1 add r7, r7, #0x2 strh r0, [r1, #0x0] add r1, r1, #0x2 cmp r4, #0xa blo _020676B4 ldr r2, _02067828 ; =0x0000FFFF ldr r0, [sp, #0x8] lsl r1, r4, #0x1 strh r2, [r0, r1] b _0206781A _020676CC: ldr r0, [r6, #0x10] lsr r4, r0, #0x1f _020676D0: ldr r0, [sp, #0x0] ldrh r0, [r0, #0x4] lsl r0, r0, #0x1d lsr r0, r0, #0x1f beq _020676F4 ldr r0, _02067824 ; =0x000001EF mov r1, #0x0 bl FUN_0200AA50 add r5, r0, #0x0 ldr r0, [sp, #0x8] add r1, r5, #0x0 bl FUN_02021A74 add r0, r5, #0x0 bl FUN_02021A20 b _0206781A _020676F4: ldr r0, [sp, #0x8] add r1, r7, #0x0 bl FUN_02021E28 b _0206781A _020676FE: ldrb r4, [r7, #0x16] b _0206781A _02067702: ldrb r4, [r7, #0x17] b _0206781A _02067706: ldr r2, [sp, #0x4] mov r0, #0x1 sub r2, #0x7a add r1, r4, #0x0 str r2, [sp, #0x4] blx FUN_020EBC50 ldr r3, [r7, #0x18] ldr r2, [r7, #0x1c] and r3, r0 and r2, r1 mov r1, #0x0 mov r0, #0x0 eor r1, r2 eor r0, r3 orr r0, r1 beq _0206781A mov r4, #0x1 b _0206781A _0206772C: ldr r2, [sp, #0x8] _0206772E: ldrh r0, [r1, #0x0] add r4, r4, #0x1 add r1, r1, #0x2 strh r0, [r2, #0x0] add r2, r2, #0x2 cmp r4, #0x7 blo _0206772E ldr r2, _02067828 ; =0x0000FFFF ldr r0, [sp, #0x8] lsl r1, r4, #0x1 strh r2, [r0, r1] b _0206781A _02067746: ldr r0, [sp, #0x8] bl FUN_02021E28 b _0206781A _0206774E: ldrb r4, [r1, #0x10] b _0206781A _02067752: ldrb r4, [r1, #0x11] b _0206781A _02067756: ldrb r4, [r1, #0x12] b _0206781A _0206775A: ldrb r4, [r1, #0x13] b _0206781A _0206775E: ldrb r4, [r1, #0x14] b _0206781A _02067762: ldrb r4, [r1, #0x15] b _0206781A _02067766: ldrh r4, [r1, #0x16] b _0206781A _0206776A: ldrh r4, [r1, #0x18] b _0206781A _0206776E: ldrb r4, [r1, #0x1a] b _0206781A _02067772: ldrb r4, [r1, #0x1b] b _0206781A _02067776: ldrb r0, [r1, #0x1c] lsl r0, r0, #0x19 lsr r4, r0, #0x19 b _0206781A _0206777E: ldrb r0, [r1, #0x1c] lsl r0, r0, #0x18 lsr r4, r0, #0x1f b _0206781A _02067786: ldrb r4, [r1, #0x1d] b _0206781A _0206778A: ldrh r4, [r1, #0x1e] b _0206781A _0206778E: ldr r4, [r6, #0x10] lsl r0, r4, #0x2 lsr r0, r0, #0x1b lsl r5, r0, #0x19 lsl r0, r4, #0x7 lsr r0, r0, #0x1b lsl r3, r0, #0x14 lsl r0, r4, #0xc lsr r0, r0, #0x1b lsl r2, r0, #0xf lsl r0, r4, #0x11 lsr r0, r0, #0x1b lsl r1, r0, #0xa lsl r0, r4, #0x1b lsl r4, r4, #0x16 lsr r4, r4, #0x1b lsr r0, r0, #0x1b lsl r4, r4, #0x5 orr r0, r4 orr r0, r1 orr r0, r2 orr r0, r3 add r4, r5, #0x0 orr r4, r0 b _0206781A _020677C0: ldrh r0, [r5, #0x0] cmp r0, #0x1d beq _020677CA cmp r0, #0x20 bne _020677D4 _020677CA: ldr r0, [r6, #0x10] lsr r0, r0, #0x1f bne _020677D4 mov r4, #0x0 b _0206781A _020677D4: mov r4, #0x1 b _0206781A _020677D8: ldrh r0, [r5, #0x0] ldr r1, _0206782C ; =0x000001ED cmp r0, r1 bne _020677FC ldrb r1, [r5, #0xd] cmp r1, #0x79 bne _020677FC ldrh r0, [r5, #0x2] mov r1, #0x1 add r2, r4, #0x0 bl FUN_0206E7B8 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_02069F24 add r4, r0, #0x0 b _0206781A _020677FC: ldrb r1, [r6, #0x18] ldr r2, [sp, #0x4] lsl r1, r1, #0x18 sub r2, #0xaa lsr r1, r1, #0x1b str r2, [sp, #0x4] bl FUN_02068654 add r4, r0, #0x0 b _0206781A _02067810: ldrh r0, [r5, #0x0] ldr r2, [sp, #0x8] add r1, r4, #0x0 bl FUN_0200A99C _0206781A: add r0, r4, #0x0 add sp, #0xc pop {r4-r7, pc} .balign 4 _02067820: .word 0x000001EE _02067824: .word 0x000001EF _02067828: .word 0x0000FFFF _0206782C: .word 0x000001ED thumb_func_start FUN_02067830 FUN_02067830: ; 0x02067830 push {r4-r6, lr} add r5, r0, #0x0 ldrh r0, [r5, #0x4] add r4, r1, #0x0 add r6, r2, #0x0 lsl r0, r0, #0x1f lsr r0, r0, #0x1f bne _02067886 add r0, r5, #0x0 ldr r2, [r5, #0x0] add r0, #0x88 mov r1, #0x64 bl FUN_0206A3D0 add r0, r5, #0x0 ldrh r2, [r5, #0x6] add r0, #0x8 mov r1, #0x80 bl FUN_0206A3D0 add r0, r5, #0x0 add r0, #0x8 mov r1, #0x80 bl FUN_0206A3F8 ldrh r1, [r5, #0x6] cmp r0, r1 beq _02067886 cmp r0, r1 beq _02067870 bl ErrorHandling _02067870: ldrh r1, [r5, #0x4] mov r0, #0x4 orr r0, r1 strh r0, [r5, #0x4] ldrh r2, [r5, #0x6] add r0, r5, #0x0 add r0, #0x8 mov r1, #0x80 bl FUN_0206A3A4 pop {r4-r6, pc} _02067886: add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_020678C0 ldrh r0, [r5, #0x4] lsl r0, r0, #0x1f lsr r0, r0, #0x1f bne _020678BC add r0, r5, #0x0 ldr r2, [r5, #0x0] add r0, #0x88 mov r1, #0x64 bl FUN_0206A3A4 add r0, r5, #0x0 add r0, #0x8 mov r1, #0x80 bl FUN_0206A3F8 strh r0, [r5, #0x6] add r0, r5, #0x0 ldrh r2, [r5, #0x6] add r0, #0x8 mov r1, #0x80 bl FUN_0206A3A4 _020678BC: pop {r4-r6, pc} .balign 4 thumb_func_start FUN_020678C0 FUN_020678C0: ; 0x020678C0 push {r3, lr} add r3, r0, #0x0 add r0, r1, #0x0 sub r0, #0x9f cmp r0, #0xb bhi _02067958 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _020678D8: ; jump table (using 16-bit offset) .short _020678F0 - _020678D8 - 2; case 0 .short _020678F8 - _020678D8 - 2; case 1 .short _02067900 - _020678D8 - 2; case 2 .short _02067908 - _020678D8 - 2; case 3 .short _02067910 - _020678D8 - 2; case 4 .short _02067918 - _020678D8 - 2; case 5 .short _02067920 - _020678D8 - 2; case 6 .short _02067928 - _020678D8 - 2; case 7 .short _02067930 - _020678D8 - 2; case 8 .short _02067938 - _020678D8 - 2; case 9 .short _02067940 - _020678D8 - 2; case 10 .short _0206794C - _020678D8 - 2; case 11 _020678F0: ldr r0, [r2, #0x0] add r3, #0x88 str r0, [r3, #0x0] pop {r3, pc} _020678F8: ldrb r0, [r2, #0x0] add r3, #0x8c strb r0, [r3, #0x0] pop {r3, pc} _02067900: ldrb r0, [r2, #0x0] add r3, #0x8d strb r0, [r3, #0x0] pop {r3, pc} _02067908: ldrh r0, [r2, #0x0] add r3, #0x8e strh r0, [r3, #0x0] pop {r3, pc} _02067910: ldrh r0, [r2, #0x0] add r3, #0x90 strh r0, [r3, #0x0] pop {r3, pc} _02067918: ldrh r0, [r2, #0x0] add r3, #0x92 strh r0, [r3, #0x0] pop {r3, pc} _02067920: ldrh r0, [r2, #0x0] add r3, #0x94 strh r0, [r3, #0x0] pop {r3, pc} _02067928: ldrh r0, [r2, #0x0] add r3, #0x96 strh r0, [r3, #0x0] pop {r3, pc} _02067930: ldrh r0, [r2, #0x0] add r3, #0x98 strh r0, [r3, #0x0] pop {r3, pc} _02067938: ldrh r0, [r2, #0x0] add r3, #0x9a strh r0, [r3, #0x0] pop {r3, pc} _02067940: add r3, #0x9c add r0, r2, #0x0 add r1, r3, #0x0 bl FUN_020256D0 pop {r3, pc} _0206794C: add r3, #0xd4 add r0, r2, #0x0 add r1, r3, #0x0 bl FUN_02029C74 pop {r3, pc} _02067958: add r0, r3, #0x0 bl FUN_020679D8 pop {r3, pc} thumb_func_start FUN_02067960 FUN_02067960: ; 0x02067960 push {r4-r6, lr} add r5, r0, #0x0 ldrh r0, [r5, #0x4] add r4, r1, #0x0 add r6, r2, #0x0 lsl r0, r0, #0x1e lsr r0, r0, #0x1f bne _020679AA ldrh r2, [r5, #0x6] add r0, r5, #0x0 add r0, #0x8 mov r1, #0x80 bl FUN_0206A3D0 add r0, r5, #0x0 add r0, #0x8 mov r1, #0x80 bl FUN_0206A3F8 ldrh r1, [r5, #0x6] cmp r0, r1 beq _020679AA cmp r0, r1 beq _02067994 bl ErrorHandling _02067994: ldrh r1, [r5, #0x4] mov r0, #0x4 orr r0, r1 strh r0, [r5, #0x4] ldrh r2, [r5, #0x6] add r0, r5, #0x0 add r0, #0x8 mov r1, #0x80 bl FUN_0206A3A4 pop {r4-r6, pc} _020679AA: add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_020679D8 ldrh r0, [r5, #0x4] lsl r0, r0, #0x1e lsr r0, r0, #0x1f bne _020679D4 add r0, r5, #0x0 add r0, #0x8 mov r1, #0x80 bl FUN_0206A3F8 strh r0, [r5, #0x6] add r0, r5, #0x0 ldrh r2, [r5, #0x6] add r0, #0x8 mov r1, #0x80 bl FUN_0206A3A4 _020679D4: pop {r4-r6, pc} .balign 4 thumb_func_start FUN_020679D8 FUN_020679D8: ; 0x020679D8 push {r4-r7, lr} sub sp, #0x4c str r1, [sp, #0x4] add r1, r0, #0x0 add r4, r2, #0x0 ldr r1, [r1, #0x0] str r0, [sp, #0x0] mov r2, #0x0 bl FUN_0206A418 add r7, r0, #0x0 ldr r0, [sp, #0x0] mov r2, #0x1 add r1, r0, #0x0 ldr r1, [r1, #0x0] bl FUN_0206A418 add r5, r0, #0x0 ldr r0, [sp, #0x0] mov r2, #0x2 add r1, r0, #0x0 ldr r1, [r1, #0x0] bl FUN_0206A418 add r6, r0, #0x0 ldr r0, [sp, #0x0] mov r2, #0x3 add r1, r0, #0x0 ldr r1, [r1, #0x0] bl FUN_0206A418 add r1, r0, #0x0 ldr r0, [sp, #0x4] cmp r0, #0xb2 bls _02067A20 b _02067FF6 _02067A20: add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02067A2C: ; jump table (using 16-bit offset) .short _02067B92 - _02067A2C - 2; case 0 .short _02067B9C - _02067A2C - 2; case 1 .short _02067BBA - _02067A2C - 2; case 2 .short _02067BD6 - _02067A2C - 2; case 3 .short _02067BEE - _02067A2C - 2; case 4 .short _02067BF8 - _02067A2C - 2; case 5 .short _02067C00 - _02067A2C - 2; case 6 .short _02067C08 - _02067A2C - 2; case 7 .short _02067C10 - _02067A2C - 2; case 8 .short _02067C18 - _02067A2C - 2; case 9 .short _02067C20 - _02067A2C - 2; case 10 .short _02067C28 - _02067A2C - 2; case 11 .short _02067C30 - _02067A2C - 2; case 12 .short _02067C38 - _02067A2C - 2; case 13 .short _02067C40 - _02067A2C - 2; case 14 .short _02067C48 - _02067A2C - 2; case 15 .short _02067C50 - _02067A2C - 2; case 16 .short _02067C58 - _02067A2C - 2; case 17 .short _02067C60 - _02067A2C - 2; case 18 .short _02067C68 - _02067A2C - 2; case 19 .short _02067C70 - _02067A2C - 2; case 20 .short _02067C78 - _02067A2C - 2; case 21 .short _02067C80 - _02067A2C - 2; case 22 .short _02067C88 - _02067A2C - 2; case 23 .short _02067C90 - _02067A2C - 2; case 24 .short _02067C98 - _02067A2C - 2; case 25 .short _02067C98 - _02067A2C - 2; case 26 .short _02067C98 - _02067A2C - 2; case 27 .short _02067C98 - _02067A2C - 2; case 28 .short _02067C98 - _02067A2C - 2; case 29 .short _02067C98 - _02067A2C - 2; case 30 .short _02067C98 - _02067A2C - 2; case 31 .short _02067C98 - _02067A2C - 2; case 32 .short _02067C98 - _02067A2C - 2; case 33 .short _02067C98 - _02067A2C - 2; case 34 .short _02067C98 - _02067A2C - 2; case 35 .short _02067C98 - _02067A2C - 2; case 36 .short _02067C98 - _02067A2C - 2; case 37 .short _02067C98 - _02067A2C - 2; case 38 .short _02067C98 - _02067A2C - 2; case 39 .short _02067C98 - _02067A2C - 2; case 40 .short _02067C98 - _02067A2C - 2; case 41 .short _02067C98 - _02067A2C - 2; case 42 .short _02067C98 - _02067A2C - 2; case 43 .short _02067C98 - _02067A2C - 2; case 44 .short _02067C98 - _02067A2C - 2; case 45 .short _02067C98 - _02067A2C - 2; case 46 .short _02067C98 - _02067A2C - 2; case 47 .short _02067C98 - _02067A2C - 2; case 48 .short _02067C98 - _02067A2C - 2; case 49 .short _02067C98 - _02067A2C - 2; case 50 .short _02067C98 - _02067A2C - 2; case 51 .short _02067C98 - _02067A2C - 2; case 52 .short _02067C98 - _02067A2C - 2; case 53 .short _02067CC6 - _02067A2C - 2; case 54 .short _02067CC6 - _02067A2C - 2; case 55 .short _02067CC6 - _02067A2C - 2; case 56 .short _02067CC6 - _02067A2C - 2; case 57 .short _02067CD6 - _02067A2C - 2; case 58 .short _02067CD6 - _02067A2C - 2; case 59 .short _02067CD6 - _02067A2C - 2; case 60 .short _02067CD6 - _02067A2C - 2; case 61 .short _02067CE6 - _02067A2C - 2; case 62 .short _02067CE6 - _02067A2C - 2; case 63 .short _02067CE6 - _02067A2C - 2; case 64 .short _02067CE6 - _02067A2C - 2; case 65 .short _02067FF6 - _02067A2C - 2; case 66 .short _02067FF6 - _02067A2C - 2; case 67 .short _02067FF6 - _02067A2C - 2; case 68 .short _02067FF6 - _02067A2C - 2; case 69 .short _02067CF6 - _02067A2C - 2; case 70 .short _02067D0A - _02067A2C - 2; case 71 .short _02067D1E - _02067A2C - 2; case 72 .short _02067D32 - _02067A2C - 2; case 73 .short _02067D46 - _02067A2C - 2; case 74 .short _02067D5A - _02067A2C - 2; case 75 .short _02067D6E - _02067A2C - 2; case 76 .short _02067D82 - _02067A2C - 2; case 77 .short _02067D94 - _02067A2C - 2; case 78 .short _02067D94 - _02067A2C - 2; case 79 .short _02067D94 - _02067A2C - 2; case 80 .short _02067D94 - _02067A2C - 2; case 81 .short _02067D94 - _02067A2C - 2; case 82 .short _02067D94 - _02067A2C - 2; case 83 .short _02067D94 - _02067A2C - 2; case 84 .short _02067D94 - _02067A2C - 2; case 85 .short _02067D94 - _02067A2C - 2; case 86 .short _02067D94 - _02067A2C - 2; case 87 .short _02067D94 - _02067A2C - 2; case 88 .short _02067D94 - _02067A2C - 2; case 89 .short _02067D94 - _02067A2C - 2; case 90 .short _02067D94 - _02067A2C - 2; case 91 .short _02067D94 - _02067A2C - 2; case 92 .short _02067D94 - _02067A2C - 2; case 93 .short _02067D94 - _02067A2C - 2; case 94 .short _02067D94 - _02067A2C - 2; case 95 .short _02067D94 - _02067A2C - 2; case 96 .short _02067D94 - _02067A2C - 2; case 97 .short _02067D94 - _02067A2C - 2; case 98 .short _02067D94 - _02067A2C - 2; case 99 .short _02067D94 - _02067A2C - 2; case 100 .short _02067D94 - _02067A2C - 2; case 101 .short _02067D94 - _02067A2C - 2; case 102 .short _02067D94 - _02067A2C - 2; case 103 .short _02067D94 - _02067A2C - 2; case 104 .short _02067D94 - _02067A2C - 2; case 105 .short _02067D94 - _02067A2C - 2; case 106 .short _02067D94 - _02067A2C - 2; case 107 .short _02067D94 - _02067A2C - 2; case 108 .short _02067D94 - _02067A2C - 2; case 109 .short _02067DC2 - _02067A2C - 2; case 110 .short _02067DD6 - _02067A2C - 2; case 111 .short _02067DEA - _02067A2C - 2; case 112 .short _02067DFE - _02067A2C - 2; case 113 .short _02067E06 - _02067A2C - 2; case 114 .short _02067FF6 - _02067A2C - 2; case 115 .short _02067E2C - _02067A2C - 2; case 116 .short _02067E0E - _02067A2C - 2; case 117 .short _02067E6C - _02067A2C - 2; case 118 .short _02067E40 - _02067A2C - 2; case 119 .short _02067E7A - _02067A2C - 2; case 120 .short _02067E82 - _02067A2C - 2; case 121 .short _02067E8A - _02067A2C - 2; case 122 .short _02067E8A - _02067A2C - 2; case 123 .short _02067E8A - _02067A2C - 2; case 124 .short _02067E8A - _02067A2C - 2; case 125 .short _02067E8A - _02067A2C - 2; case 126 .short _02067E8A - _02067A2C - 2; case 127 .short _02067E8A - _02067A2C - 2; case 128 .short _02067E8A - _02067A2C - 2; case 129 .short _02067E8A - _02067A2C - 2; case 130 .short _02067E8A - _02067A2C - 2; case 131 .short _02067E8A - _02067A2C - 2; case 132 .short _02067E8A - _02067A2C - 2; case 133 .short _02067E8A - _02067A2C - 2; case 134 .short _02067E8A - _02067A2C - 2; case 135 .short _02067E8A - _02067A2C - 2; case 136 .short _02067E8A - _02067A2C - 2; case 137 .short _02067E8A - _02067A2C - 2; case 138 .short _02067E8A - _02067A2C - 2; case 139 .short _02067E8A - _02067A2C - 2; case 140 .short _02067E8A - _02067A2C - 2; case 141 .short _02067E8A - _02067A2C - 2; case 142 .short _02067ECE - _02067A2C - 2; case 143 .short _02067EE2 - _02067A2C - 2; case 144 .short _02067EEE - _02067A2C - 2; case 145 .short _02067EF6 - _02067A2C - 2; case 146 .short _02067EFE - _02067A2C - 2; case 147 .short _02067F06 - _02067A2C - 2; case 148 .short _02067F0E - _02067A2C - 2; case 149 .short _02067F16 - _02067A2C - 2; case 150 .short _02067F1E - _02067A2C - 2; case 151 .short _02067F26 - _02067A2C - 2; case 152 .short _02067F2E - _02067A2C - 2; case 153 .short _02067F36 - _02067A2C - 2; case 154 .short _02067F3E - _02067A2C - 2; case 155 .short _02067F52 - _02067A2C - 2; case 156 .short _02067F66 - _02067A2C - 2; case 157 .short _02067F6E - _02067A2C - 2; case 158 .short _02067FF6 - _02067A2C - 2; case 159 .short _02067FF6 - _02067A2C - 2; case 160 .short _02067FF6 - _02067A2C - 2; case 161 .short _02067FF6 - _02067A2C - 2; case 162 .short _02067FF6 - _02067A2C - 2; case 163 .short _02067FF6 - _02067A2C - 2; case 164 .short _02067FF6 - _02067A2C - 2; case 165 .short _02067FF6 - _02067A2C - 2; case 166 .short _02067FF6 - _02067A2C - 2; case 167 .short _02067FF6 - _02067A2C - 2; case 168 .short _02067FF6 - _02067A2C - 2; case 169 .short _02067FF6 - _02067A2C - 2; case 170 .short _02067FF6 - _02067A2C - 2; case 171 .short _02067FF6 - _02067A2C - 2; case 172 .short _02067FF6 - _02067A2C - 2; case 173 .short _02067F76 - _02067A2C - 2; case 174 .short _02067FF6 - _02067A2C - 2; case 175 .short _02067FF6 - _02067A2C - 2; case 176 .short _02067FF6 - _02067A2C - 2; case 177 .short _02067FDE - _02067A2C - 2; case 178 _02067B92: ldr r0, [sp, #0x0] ldr r1, [r4, #0x0] add sp, #0x4c str r1, [r0, #0x0] pop {r4-r7, pc} _02067B9C: bl ErrorHandling ldr r0, [sp, #0x0] ldrb r1, [r4, #0x0] ldrh r2, [r0, #0x4] mov r0, #0x1 bic r2, r0 mov r0, #0x1 and r0, r1 add r1, r2, #0x0 orr r1, r0 ldr r0, [sp, #0x0] add sp, #0x4c strh r1, [r0, #0x4] pop {r4-r7, pc} _02067BBA: bl ErrorHandling ldr r0, [sp, #0x0] ldrh r1, [r0, #0x4] mov r0, #0x2 bic r1, r0 ldrb r0, [r4, #0x0] lsl r0, r0, #0x1f lsr r0, r0, #0x1e orr r1, r0 ldr r0, [sp, #0x0] add sp, #0x4c strh r1, [r0, #0x4] pop {r4-r7, pc} _02067BD6: ldr r0, [sp, #0x0] ldrh r1, [r0, #0x4] mov r0, #0x4 bic r1, r0 ldrb r0, [r4, #0x0] lsl r0, r0, #0x1f lsr r0, r0, #0x1d orr r1, r0 ldr r0, [sp, #0x0] add sp, #0x4c strh r1, [r0, #0x4] pop {r4-r7, pc} _02067BEE: ldrh r1, [r4, #0x0] ldr r0, [sp, #0x0] add sp, #0x4c strh r1, [r0, #0x6] pop {r4-r7, pc} _02067BF8: ldrh r0, [r4, #0x0] add sp, #0x4c strh r0, [r7, #0x0] pop {r4-r7, pc} _02067C00: ldrh r0, [r4, #0x0] add sp, #0x4c strh r0, [r7, #0x2] pop {r4-r7, pc} _02067C08: ldr r0, [r4, #0x0] add sp, #0x4c str r0, [r7, #0x4] pop {r4-r7, pc} _02067C10: ldr r0, [r4, #0x0] add sp, #0x4c str r0, [r7, #0x8] pop {r4-r7, pc} _02067C18: ldrb r0, [r4, #0x0] add sp, #0x4c strb r0, [r7, #0xc] pop {r4-r7, pc} _02067C20: ldrb r0, [r4, #0x0] add sp, #0x4c strb r0, [r7, #0xd] pop {r4-r7, pc} _02067C28: ldrb r0, [r4, #0x0] add sp, #0x4c strb r0, [r7, #0xe] pop {r4-r7, pc} _02067C30: ldrb r0, [r4, #0x0] add sp, #0x4c strb r0, [r7, #0xf] pop {r4-r7, pc} _02067C38: ldrb r0, [r4, #0x0] add sp, #0x4c strb r0, [r7, #0x10] pop {r4-r7, pc} _02067C40: ldrb r0, [r4, #0x0] add sp, #0x4c strb r0, [r7, #0x11] pop {r4-r7, pc} _02067C48: ldrb r0, [r4, #0x0] add sp, #0x4c strb r0, [r7, #0x12] pop {r4-r7, pc} _02067C50: ldrb r0, [r4, #0x0] add sp, #0x4c strb r0, [r7, #0x13] pop {r4-r7, pc} _02067C58: ldrb r0, [r4, #0x0] add sp, #0x4c strb r0, [r7, #0x14] pop {r4-r7, pc} _02067C60: ldrb r0, [r4, #0x0] add sp, #0x4c strb r0, [r7, #0x15] pop {r4-r7, pc} _02067C68: ldrb r0, [r4, #0x0] add sp, #0x4c strb r0, [r7, #0x16] pop {r4-r7, pc} _02067C70: ldrb r0, [r4, #0x0] add sp, #0x4c strb r0, [r7, #0x17] pop {r4-r7, pc} _02067C78: ldrb r0, [r4, #0x0] add sp, #0x4c strb r0, [r7, #0x18] pop {r4-r7, pc} _02067C80: ldrb r0, [r4, #0x0] add sp, #0x4c strb r0, [r7, #0x19] pop {r4-r7, pc} _02067C88: ldrb r0, [r4, #0x0] add sp, #0x4c strb r0, [r7, #0x1a] pop {r4-r7, pc} _02067C90: ldrb r0, [r4, #0x0] add sp, #0x4c strb r0, [r7, #0x1b] pop {r4-r7, pc} _02067C98: ldrb r4, [r4, #0x0] ldr r2, [sp, #0x4] mov r1, #0x0 sub r2, #0x19 add r0, r4, #0x0 str r2, [sp, #0x4] blx FUN_020EBC50 cmp r4, #0x0 beq _02067CB6 ldr r1, [r7, #0x1c] add sp, #0x4c orr r0, r1 str r0, [r7, #0x1c] pop {r4-r7, pc} _02067CB6: mov r1, #0x0 sub r1, r1, #0x1 ldr r2, [r7, #0x1c] eor r0, r1 and r0, r2 add sp, #0x4c str r0, [r7, #0x1c] pop {r4-r7, pc} _02067CC6: ldr r0, [sp, #0x4] ldrh r1, [r4, #0x0] sub r0, #0x36 str r0, [sp, #0x4] lsl r0, r0, #0x1 add sp, #0x4c strh r1, [r5, r0] pop {r4-r7, pc} _02067CD6: ldr r0, [sp, #0x4] ldrb r1, [r4, #0x0] sub r0, #0x3a str r0, [sp, #0x4] add r0, r5, r0 strb r1, [r0, #0x8] add sp, #0x4c pop {r4-r7, pc} _02067CE6: ldr r0, [sp, #0x4] ldrb r1, [r4, #0x0] sub r0, #0x3e str r0, [sp, #0x4] add r0, r5, r0 strb r1, [r0, #0xc] add sp, #0x4c pop {r4-r7, pc} _02067CF6: ldr r2, [r5, #0x10] mov r0, #0x1f bic r2, r0 ldrb r1, [r4, #0x0] mov r0, #0x1f add sp, #0x4c and r0, r1 orr r0, r2 str r0, [r5, #0x10] pop {r4-r7, pc} _02067D0A: ldr r1, [r5, #0x10] ldr r0, _02067FFC ; =0xFFFFFC1F add sp, #0x4c and r1, r0 ldrb r0, [r4, #0x0] lsl r0, r0, #0x1b lsr r0, r0, #0x16 orr r0, r1 str r0, [r5, #0x10] pop {r4-r7, pc} _02067D1E: ldr r1, [r5, #0x10] ldr r0, _02068000 ; =0xFFFF83FF add sp, #0x4c and r1, r0 ldrb r0, [r4, #0x0] lsl r0, r0, #0x1b lsr r0, r0, #0x11 orr r0, r1 str r0, [r5, #0x10] pop {r4-r7, pc} _02067D32: ldr r1, [r5, #0x10] ldr r0, _02068004 ; =0xFFF07FFF add sp, #0x4c and r1, r0 ldrb r0, [r4, #0x0] lsl r0, r0, #0x1b lsr r0, r0, #0xc orr r0, r1 str r0, [r5, #0x10] pop {r4-r7, pc} _02067D46: ldr r1, [r5, #0x10] ldr r0, _02068008 ; =0xFE0FFFFF add sp, #0x4c and r1, r0 ldrb r0, [r4, #0x0] lsl r0, r0, #0x1b lsr r0, r0, #0x7 orr r0, r1 str r0, [r5, #0x10] pop {r4-r7, pc} _02067D5A: ldr r1, [r5, #0x10] ldr r0, _0206800C ; =0xC1FFFFFF add sp, #0x4c and r1, r0 ldrb r0, [r4, #0x0] lsl r0, r0, #0x1b lsr r0, r0, #0x2 orr r0, r1 str r0, [r5, #0x10] pop {r4-r7, pc} _02067D6E: ldr r1, [r5, #0x10] ldr r0, _02068010 ; =0xBFFFFFFF add sp, #0x4c and r1, r0 ldrb r0, [r4, #0x0] lsl r0, r0, #0x1f lsr r0, r0, #0x1 orr r0, r1 str r0, [r5, #0x10] pop {r4-r7, pc} _02067D82: ldr r1, [r5, #0x10] ldr r0, _02068014 ; =0x7FFFFFFF add sp, #0x4c and r1, r0 ldrb r0, [r4, #0x0] lsl r0, r0, #0x1f orr r0, r1 str r0, [r5, #0x10] pop {r4-r7, pc} _02067D94: ldrb r4, [r4, #0x0] ldr r2, [sp, #0x4] mov r1, #0x0 sub r2, #0x4e add r0, r4, #0x0 str r2, [sp, #0x4] blx FUN_020EBC50 cmp r4, #0x0 beq _02067DB2 ldr r1, [r5, #0x14] add sp, #0x4c orr r0, r1 str r0, [r5, #0x14] pop {r4-r7, pc} _02067DB2: mov r1, #0x0 sub r1, r1, #0x1 ldr r2, [r5, #0x14] eor r0, r1 and r0, r2 add sp, #0x4c str r0, [r5, #0x14] pop {r4-r7, pc} _02067DC2: ldrb r2, [r5, #0x18] ldrb r1, [r4, #0x0] mov r0, #0x1 bic r2, r0 mov r0, #0x1 and r0, r1 orr r0, r2 add sp, #0x4c strb r0, [r5, #0x18] pop {r4-r7, pc} _02067DD6: ldrb r1, [r5, #0x18] mov r0, #0x6 add sp, #0x4c bic r1, r0 ldrb r0, [r4, #0x0] lsl r0, r0, #0x1e lsr r0, r0, #0x1d orr r0, r1 strb r0, [r5, #0x18] pop {r4-r7, pc} _02067DEA: ldrb r1, [r5, #0x18] mov r0, #0xf8 add sp, #0x4c bic r1, r0 ldrb r0, [r4, #0x0] lsl r0, r0, #0x1b lsr r0, r0, #0x18 orr r0, r1 strb r0, [r5, #0x18] pop {r4-r7, pc} _02067DFE: ldrb r0, [r4, #0x0] add sp, #0x4c strb r0, [r5, #0x19] pop {r4-r7, pc} _02067E06: ldrh r0, [r4, #0x0] add sp, #0x4c strh r0, [r5, #0x1a] pop {r4-r7, pc} _02067E0E: ldrh r0, [r7, #0x0] mov r1, #0x0 add r2, sp, #0x34 bl FUN_0200A99C add r0, sp, #0x34 add r1, r4, #0x0 bl StringNotEqual ldr r2, [r5, #0x10] ldr r1, _02068014 ; =0x7FFFFFFF lsl r0, r0, #0x1f and r1, r2 orr r0, r1 str r0, [r5, #0x10] _02067E2C: mov r1, #0x0 _02067E2E: ldrh r0, [r4, #0x0] add r1, r1, #0x1 add r4, r4, #0x2 strh r0, [r6, #0x0] add r6, r6, #0x2 cmp r1, #0xb blo _02067E2E add sp, #0x4c pop {r4-r7, pc} _02067E40: ldrh r0, [r7, #0x0] add r2, sp, #0x1c mov r1, #0x0 add r2, #0x2 bl FUN_0200A99C add r0, r4, #0x0 add r1, sp, #0x8 mov r2, #0xb bl FUN_02021EF0 add r0, sp, #0x1c add r0, #0x2 add r1, sp, #0x8 bl StringNotEqual ldr r2, [r5, #0x10] ldr r1, _02068014 ; =0x7FFFFFFF lsl r0, r0, #0x1f and r1, r2 orr r0, r1 str r0, [r5, #0x10] _02067E6C: add r0, r4, #0x0 add r1, r6, #0x0 mov r2, #0xb bl FUN_02021EF0 add sp, #0x4c pop {r4-r7, pc} _02067E7A: ldrb r0, [r4, #0x0] add sp, #0x4c strb r0, [r6, #0x16] pop {r4-r7, pc} _02067E82: ldrb r0, [r4, #0x0] add sp, #0x4c strb r0, [r6, #0x17] pop {r4-r7, pc} _02067E8A: ldrb r4, [r4, #0x0] ldr r2, [sp, #0x4] mov r1, #0x0 sub r2, #0x7a add r0, r4, #0x0 str r2, [sp, #0x4] blx FUN_020EBC50 cmp r4, #0x0 beq _02067EB2 add r4, r6, #0x0 add r4, #0x18 ldr r3, [r6, #0x18] ldr r2, [r4, #0x4] orr r0, r3 orr r1, r2 str r0, [r6, #0x18] add sp, #0x4c str r1, [r4, #0x4] pop {r4-r7, pc} _02067EB2: add r4, r6, #0x0 mov r5, #0x0 mvn r5, r5 add r4, #0x18 ldr r3, [r6, #0x18] eor r0, r5 ldr r2, [r4, #0x4] eor r1, r5 and r0, r3 and r1, r2 str r0, [r6, #0x18] add sp, #0x4c str r1, [r4, #0x4] pop {r4-r7, pc} _02067ECE: mov r2, #0x0 _02067ED0: ldrh r0, [r4, #0x0] add r2, r2, #0x1 add r4, r4, #0x2 strh r0, [r1, #0x0] add r1, r1, #0x2 cmp r2, #0x8 blo _02067ED0 add sp, #0x4c pop {r4-r7, pc} _02067EE2: add r0, r4, #0x0 mov r2, #0x8 bl FUN_02021EF0 add sp, #0x4c pop {r4-r7, pc} _02067EEE: ldrb r0, [r4, #0x0] add sp, #0x4c strb r0, [r1, #0x10] pop {r4-r7, pc} _02067EF6: ldrb r0, [r4, #0x0] add sp, #0x4c strb r0, [r1, #0x11] pop {r4-r7, pc} _02067EFE: ldrb r0, [r4, #0x0] add sp, #0x4c strb r0, [r1, #0x12] pop {r4-r7, pc} _02067F06: ldrb r0, [r4, #0x0] add sp, #0x4c strb r0, [r1, #0x13] pop {r4-r7, pc} _02067F0E: ldrb r0, [r4, #0x0] add sp, #0x4c strb r0, [r1, #0x14] pop {r4-r7, pc} _02067F16: ldrb r0, [r4, #0x0] add sp, #0x4c strb r0, [r1, #0x15] pop {r4-r7, pc} _02067F1E: ldrh r0, [r4, #0x0] add sp, #0x4c strh r0, [r1, #0x16] pop {r4-r7, pc} _02067F26: ldrh r0, [r4, #0x0] add sp, #0x4c strh r0, [r1, #0x18] pop {r4-r7, pc} _02067F2E: ldrb r0, [r4, #0x0] add sp, #0x4c strb r0, [r1, #0x1a] pop {r4-r7, pc} _02067F36: ldrb r0, [r4, #0x0] add sp, #0x4c strb r0, [r1, #0x1b] pop {r4-r7, pc} _02067F3E: ldrb r3, [r1, #0x1c] ldrb r2, [r4, #0x0] mov r0, #0x7f bic r3, r0 mov r0, #0x7f and r0, r2 orr r0, r3 strb r0, [r1, #0x1c] add sp, #0x4c pop {r4-r7, pc} _02067F52: ldrb r2, [r1, #0x1c] mov r0, #0x80 add sp, #0x4c bic r2, r0 ldrb r0, [r4, #0x0] lsl r0, r0, #0x1f lsr r0, r0, #0x18 orr r0, r2 strb r0, [r1, #0x1c] pop {r4-r7, pc} _02067F66: ldrb r0, [r4, #0x0] add sp, #0x4c strb r0, [r1, #0x1d] pop {r4-r7, pc} _02067F6E: ldrh r0, [r4, #0x0] add sp, #0x4c strh r0, [r1, #0x1e] pop {r4-r7, pc} _02067F76: ldr r2, [r5, #0x10] mov r0, #0x1f bic r2, r0 ldr r1, [r4, #0x0] mov r0, #0x1f and r1, r0 and r0, r1 add r1, r2, #0x0 orr r1, r0 ldr r0, _02067FFC ; =0xFFFFFC1F str r1, [r5, #0x10] and r1, r0 ldr r0, [r4, #0x0] add sp, #0x4c lsr r0, r0, #0x5 lsl r0, r0, #0x1b lsr r0, r0, #0x16 orr r1, r0 ldr r0, _02068000 ; =0xFFFF83FF str r1, [r5, #0x10] and r1, r0 ldr r0, [r4, #0x0] lsr r0, r0, #0xa lsl r0, r0, #0x1b lsr r0, r0, #0x11 orr r1, r0 ldr r0, _02068004 ; =0xFFF07FFF str r1, [r5, #0x10] and r1, r0 ldr r0, [r4, #0x0] lsr r0, r0, #0xf lsl r0, r0, #0x1b lsr r0, r0, #0xc orr r1, r0 ldr r0, _02068008 ; =0xFE0FFFFF str r1, [r5, #0x10] and r1, r0 ldr r0, [r4, #0x0] lsr r0, r0, #0x14 lsl r0, r0, #0x1b lsr r0, r0, #0x7 orr r1, r0 ldr r0, _0206800C ; =0xC1FFFFFF str r1, [r5, #0x10] and r1, r0 ldr r0, [r4, #0x0] lsr r0, r0, #0x19 lsl r0, r0, #0x1b lsr r0, r0, #0x2 orr r0, r1 str r0, [r5, #0x10] pop {r4-r7, pc} _02067FDE: ldrh r0, [r7, #0x0] mov r1, #0x0 bl FUN_0200AA50 add r4, r0, #0x0 add r1, r6, #0x0 mov r2, #0xb bl FUN_02021EF0 add r0, r4, #0x0 bl FUN_02021A20 _02067FF6: add sp, #0x4c pop {r4-r7, pc} nop _02067FFC: .word 0xFFFFFC1F _02068000: .word 0xFFFF83FF _02068004: .word 0xFFF07FFF _02068008: .word 0xFE0FFFFF _0206800C: .word 0xC1FFFFFF _02068010: .word 0xBFFFFFFF _02068014: .word 0x7FFFFFFF thumb_func_start FUN_02068018 FUN_02068018: ; 0x02068018 push {r4-r6, lr} add r5, r0, #0x0 ldrh r0, [r5, #0x4] add r4, r1, #0x0 add r6, r2, #0x0 lsl r0, r0, #0x1f lsr r0, r0, #0x1f bne _02068066 add r0, r5, #0x0 ldr r2, [r5, #0x0] add r0, #0x88 mov r1, #0x64 bl FUN_0206A3D0 add r0, r5, #0x0 ldrh r2, [r5, #0x6] add r0, #0x8 mov r1, #0x80 bl FUN_0206A3D0 add r0, r5, #0x0 add r0, #0x8 mov r1, #0x80 bl FUN_0206A3F8 ldrh r1, [r5, #0x6] cmp r0, r1 beq _02068066 cmp r0, r1 beq _02068058 bl ErrorHandling _02068058: ldrh r2, [r5, #0x6] add r0, r5, #0x0 add r0, #0x8 mov r1, #0x80 bl FUN_0206A3A4 pop {r4-r6, pc} _02068066: add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_020680A0 ldrh r0, [r5, #0x4] lsl r0, r0, #0x1f lsr r0, r0, #0x1f bne _0206809C add r0, r5, #0x0 ldr r2, [r5, #0x0] add r0, #0x88 mov r1, #0x64 bl FUN_0206A3A4 add r0, r5, #0x0 add r0, #0x8 mov r1, #0x80 bl FUN_0206A3F8 strh r0, [r5, #0x6] add r0, r5, #0x0 ldrh r2, [r5, #0x6] add r0, #0x8 mov r1, #0x80 bl FUN_0206A3A4 _0206809C: pop {r4-r6, pc} .balign 4 thumb_func_start FUN_020680A0 FUN_020680A0: ; 0x020680A0 push {r3, lr} add r3, r1, #0x0 sub r3, #0x9f cmp r3, #0xa bhi _020680F8 add r3, r3, r3 add r3, pc ldrh r3, [r3, #0x6] lsl r3, r3, #0x10 asr r3, r3, #0x10 add pc, r3 _020680B6: ; jump table (using 16-bit offset) .short _020680F2 - _020680B6 - 2; case 0 .short _020680F2 - _020680B6 - 2; case 1 .short _020680F2 - _020680B6 - 2; case 2 .short _020680CC - _020680B6 - 2; case 3 .short _020680F2 - _020680B6 - 2; case 4 .short _020680F2 - _020680B6 - 2; case 5 .short _020680F2 - _020680B6 - 2; case 6 .short _020680F2 - _020680B6 - 2; case 7 .short _020680F2 - _020680B6 - 2; case 8 .short _020680F2 - _020680B6 - 2; case 9 .short _020680F2 - _020680B6 - 2; case 10 _020680CC: add r1, r0, #0x0 add r1, #0x90 ldrh r3, [r1, #0x0] add r1, r0, #0x0 add r1, #0x8e ldrh r1, [r1, #0x0] add r1, r1, r2 cmp r1, r3 ble _020680E4 add r0, #0x8e strh r3, [r0, #0x0] pop {r3, pc} _020680E4: add r1, r0, #0x0 add r1, #0x8e ldrh r1, [r1, #0x0] add r0, #0x8e add r1, r1, r2 strh r1, [r0, #0x0] pop {r3, pc} _020680F2: bl ErrorHandling pop {r3, pc} _020680F8: bl FUN_02068100 pop {r3, pc} .balign 4 thumb_func_start FUN_02068100 FUN_02068100: ; 0x02068100 push {r4-r7, lr} sub sp, #0xc add r7, r1, #0x0 add r1, r0, #0x0 add r6, r2, #0x0 ldr r1, [r1, #0x0] str r0, [sp, #0x0] mov r2, #0x0 bl FUN_0206A418 add r4, r0, #0x0 ldr r0, [sp, #0x0] mov r2, #0x1 add r1, r0, #0x0 ldr r1, [r1, #0x0] bl FUN_0206A418 add r5, r0, #0x0 ldr r0, [sp, #0x0] mov r2, #0x2 add r1, r0, #0x0 ldr r1, [r1, #0x0] bl FUN_0206A418 ldr r0, [sp, #0x0] mov r2, #0x3 add r1, r0, #0x0 ldr r1, [r1, #0x0] bl FUN_0206A418 cmp r7, #0xb2 bls _02068142 b _02068500 _02068142: add r0, r7, r7 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0206814E: ; jump table (using 16-bit offset) .short _02068500 - _0206814E - 2; case 0 .short _02068500 - _0206814E - 2; case 1 .short _02068500 - _0206814E - 2; case 2 .short _02068500 - _0206814E - 2; case 3 .short _02068500 - _0206814E - 2; case 4 .short _02068500 - _0206814E - 2; case 5 .short _02068500 - _0206814E - 2; case 6 .short _02068500 - _0206814E - 2; case 7 .short _020682B4 - _0206814E - 2; case 8 .short _020682D8 - _0206814E - 2; case 9 .short _02068500 - _0206814E - 2; case 10 .short _02068500 - _0206814E - 2; case 11 .short _02068500 - _0206814E - 2; case 12 .short _020682EE - _0206814E - 2; case 13 .short _020682F8 - _0206814E - 2; case 14 .short _02068302 - _0206814E - 2; case 15 .short _0206830C - _0206814E - 2; case 16 .short _02068316 - _0206814E - 2; case 17 .short _02068320 - _0206814E - 2; case 18 .short _0206832A - _0206814E - 2; case 19 .short _02068340 - _0206814E - 2; case 20 .short _02068356 - _0206814E - 2; case 21 .short _0206836C - _0206814E - 2; case 22 .short _02068382 - _0206814E - 2; case 23 .short _02068398 - _0206814E - 2; case 24 .short _02068500 - _0206814E - 2; case 25 .short _02068500 - _0206814E - 2; case 26 .short _02068500 - _0206814E - 2; case 27 .short _02068500 - _0206814E - 2; case 28 .short _02068500 - _0206814E - 2; case 29 .short _02068500 - _0206814E - 2; case 30 .short _02068500 - _0206814E - 2; case 31 .short _02068500 - _0206814E - 2; case 32 .short _02068500 - _0206814E - 2; case 33 .short _02068500 - _0206814E - 2; case 34 .short _02068500 - _0206814E - 2; case 35 .short _02068500 - _0206814E - 2; case 36 .short _02068500 - _0206814E - 2; case 37 .short _02068500 - _0206814E - 2; case 38 .short _02068500 - _0206814E - 2; case 39 .short _02068500 - _0206814E - 2; case 40 .short _02068500 - _0206814E - 2; case 41 .short _02068500 - _0206814E - 2; case 42 .short _02068500 - _0206814E - 2; case 43 .short _02068500 - _0206814E - 2; case 44 .short _02068500 - _0206814E - 2; case 45 .short _02068500 - _0206814E - 2; case 46 .short _02068500 - _0206814E - 2; case 47 .short _02068500 - _0206814E - 2; case 48 .short _02068500 - _0206814E - 2; case 49 .short _02068500 - _0206814E - 2; case 50 .short _02068500 - _0206814E - 2; case 51 .short _02068500 - _0206814E - 2; case 52 .short _02068500 - _0206814E - 2; case 53 .short _02068500 - _0206814E - 2; case 54 .short _02068500 - _0206814E - 2; case 55 .short _02068500 - _0206814E - 2; case 56 .short _02068500 - _0206814E - 2; case 57 .short _020683AE - _0206814E - 2; case 58 .short _020683AE - _0206814E - 2; case 59 .short _020683AE - _0206814E - 2; case 60 .short _020683AE - _0206814E - 2; case 61 .short _020683EA - _0206814E - 2; case 62 .short _020683EA - _0206814E - 2; case 63 .short _020683EA - _0206814E - 2; case 64 .short _020683EA - _0206814E - 2; case 65 .short _02068504 - _0206814E - 2; case 66 .short _02068504 - _0206814E - 2; case 67 .short _02068504 - _0206814E - 2; case 68 .short _02068504 - _0206814E - 2; case 69 .short _02068404 - _0206814E - 2; case 70 .short _0206842E - _0206814E - 2; case 71 .short _02068458 - _0206814E - 2; case 72 .short _02068482 - _0206814E - 2; case 73 .short _020684AC - _0206814E - 2; case 74 .short _020684D6 - _0206814E - 2; case 75 .short _02068500 - _0206814E - 2; case 76 .short _02068500 - _0206814E - 2; case 77 .short _02068500 - _0206814E - 2; case 78 .short _02068500 - _0206814E - 2; case 79 .short _02068500 - _0206814E - 2; case 80 .short _02068500 - _0206814E - 2; case 81 .short _02068500 - _0206814E - 2; case 82 .short _02068500 - _0206814E - 2; case 83 .short _02068500 - _0206814E - 2; case 84 .short _02068500 - _0206814E - 2; case 85 .short _02068500 - _0206814E - 2; case 86 .short _02068500 - _0206814E - 2; case 87 .short _02068500 - _0206814E - 2; case 88 .short _02068500 - _0206814E - 2; case 89 .short _02068500 - _0206814E - 2; case 90 .short _02068500 - _0206814E - 2; case 91 .short _02068500 - _0206814E - 2; case 92 .short _02068500 - _0206814E - 2; case 93 .short _02068500 - _0206814E - 2; case 94 .short _02068500 - _0206814E - 2; case 95 .short _02068500 - _0206814E - 2; case 96 .short _02068500 - _0206814E - 2; case 97 .short _02068500 - _0206814E - 2; case 98 .short _02068500 - _0206814E - 2; case 99 .short _02068500 - _0206814E - 2; case 100 .short _02068500 - _0206814E - 2; case 101 .short _02068500 - _0206814E - 2; case 102 .short _02068500 - _0206814E - 2; case 103 .short _02068500 - _0206814E - 2; case 104 .short _02068500 - _0206814E - 2; case 105 .short _02068500 - _0206814E - 2; case 106 .short _02068500 - _0206814E - 2; case 107 .short _02068500 - _0206814E - 2; case 108 .short _02068500 - _0206814E - 2; case 109 .short _02068500 - _0206814E - 2; case 110 .short _02068500 - _0206814E - 2; case 111 .short _02068500 - _0206814E - 2; case 112 .short _02068500 - _0206814E - 2; case 113 .short _02068500 - _0206814E - 2; case 114 .short _02068500 - _0206814E - 2; case 115 .short _02068500 - _0206814E - 2; case 116 .short _02068500 - _0206814E - 2; case 117 .short _02068500 - _0206814E - 2; case 118 .short _02068500 - _0206814E - 2; case 119 .short _02068500 - _0206814E - 2; case 120 .short _02068500 - _0206814E - 2; case 121 .short _02068500 - _0206814E - 2; case 122 .short _02068500 - _0206814E - 2; case 123 .short _02068500 - _0206814E - 2; case 124 .short _02068500 - _0206814E - 2; case 125 .short _02068500 - _0206814E - 2; case 126 .short _02068500 - _0206814E - 2; case 127 .short _02068500 - _0206814E - 2; case 128 .short _02068500 - _0206814E - 2; case 129 .short _02068500 - _0206814E - 2; case 130 .short _02068500 - _0206814E - 2; case 131 .short _02068500 - _0206814E - 2; case 132 .short _02068500 - _0206814E - 2; case 133 .short _02068500 - _0206814E - 2; case 134 .short _02068500 - _0206814E - 2; case 135 .short _02068500 - _0206814E - 2; case 136 .short _02068500 - _0206814E - 2; case 137 .short _02068500 - _0206814E - 2; case 138 .short _02068500 - _0206814E - 2; case 139 .short _02068500 - _0206814E - 2; case 140 .short _02068500 - _0206814E - 2; case 141 .short _02068500 - _0206814E - 2; case 142 .short _02068500 - _0206814E - 2; case 143 .short _02068500 - _0206814E - 2; case 144 .short _02068500 - _0206814E - 2; case 145 .short _02068500 - _0206814E - 2; case 146 .short _02068500 - _0206814E - 2; case 147 .short _02068500 - _0206814E - 2; case 148 .short _02068500 - _0206814E - 2; case 149 .short _02068500 - _0206814E - 2; case 150 .short _02068500 - _0206814E - 2; case 151 .short _02068500 - _0206814E - 2; case 152 .short _02068500 - _0206814E - 2; case 153 .short _02068500 - _0206814E - 2; case 154 .short _02068500 - _0206814E - 2; case 155 .short _02068500 - _0206814E - 2; case 156 .short _02068500 - _0206814E - 2; case 157 .short _02068500 - _0206814E - 2; case 158 .short _02068500 - _0206814E - 2; case 159 .short _02068500 - _0206814E - 2; case 160 .short _02068500 - _0206814E - 2; case 161 .short _02068500 - _0206814E - 2; case 162 .short _02068500 - _0206814E - 2; case 163 .short _02068500 - _0206814E - 2; case 164 .short _02068500 - _0206814E - 2; case 165 .short _02068500 - _0206814E - 2; case 166 .short _02068500 - _0206814E - 2; case 167 .short _02068500 - _0206814E - 2; case 168 .short _02068500 - _0206814E - 2; case 169 .short _02068500 - _0206814E - 2; case 170 .short _02068500 - _0206814E - 2; case 171 .short _02068500 - _0206814E - 2; case 172 .short _02068500 - _0206814E - 2; case 173 .short _02068500 - _0206814E - 2; case 174 .short _02068500 - _0206814E - 2; case 175 .short _02068500 - _0206814E - 2; case 176 .short _02068500 - _0206814E - 2; case 177 .short _02068500 - _0206814E - 2; case 178 _020682B4: ldrh r0, [r4, #0x0] mov r1, #0x64 bl FUN_02068758 ldr r1, [r4, #0x8] add r1, r1, r6 cmp r1, r0 bls _020682D2 ldrh r0, [r4, #0x0] mov r1, #0x64 bl FUN_02068758 add sp, #0xc str r0, [r4, #0x8] pop {r4-r7, pc} _020682D2: add sp, #0xc str r1, [r4, #0x8] pop {r4-r7, pc} _020682D8: ldrb r0, [r4, #0xc] add r0, r0, r6 cmp r0, #0xff ble _020682E8 mov r0, #0xff add sp, #0xc strb r0, [r4, #0xc] pop {r4-r7, pc} _020682E8: add sp, #0xc strb r0, [r4, #0xc] pop {r4-r7, pc} _020682EE: ldrb r0, [r4, #0x10] add sp, #0xc add r0, r0, r6 strb r0, [r4, #0x10] pop {r4-r7, pc} _020682F8: ldrb r0, [r4, #0x11] add sp, #0xc add r0, r0, r6 strb r0, [r4, #0x11] pop {r4-r7, pc} _02068302: ldrb r0, [r4, #0x12] add sp, #0xc add r0, r0, r6 strb r0, [r4, #0x12] pop {r4-r7, pc} _0206830C: ldrb r0, [r4, #0x13] add sp, #0xc add r0, r0, r6 strb r0, [r4, #0x13] pop {r4-r7, pc} _02068316: ldrb r0, [r4, #0x14] add sp, #0xc add r0, r0, r6 strb r0, [r4, #0x14] pop {r4-r7, pc} _02068320: ldrb r0, [r4, #0x15] add sp, #0xc add r0, r0, r6 strb r0, [r4, #0x15] pop {r4-r7, pc} _0206832A: ldrb r0, [r4, #0x16] add r0, r0, r6 cmp r0, #0xff ble _0206833A mov r0, #0xff add sp, #0xc strb r0, [r4, #0x16] pop {r4-r7, pc} _0206833A: add sp, #0xc strb r0, [r4, #0x16] pop {r4-r7, pc} _02068340: ldrb r0, [r4, #0x17] add r0, r0, r6 cmp r0, #0xff ble _02068350 mov r0, #0xff add sp, #0xc strb r0, [r4, #0x17] pop {r4-r7, pc} _02068350: add sp, #0xc strb r0, [r4, #0x17] pop {r4-r7, pc} _02068356: ldrb r0, [r4, #0x18] add r0, r0, r6 cmp r0, #0xff ble _02068366 mov r0, #0xff add sp, #0xc strb r0, [r4, #0x18] pop {r4-r7, pc} _02068366: add sp, #0xc strb r0, [r4, #0x18] pop {r4-r7, pc} _0206836C: ldrb r0, [r4, #0x19] add r0, r0, r6 cmp r0, #0xff ble _0206837C mov r0, #0xff add sp, #0xc strb r0, [r4, #0x19] pop {r4-r7, pc} _0206837C: add sp, #0xc strb r0, [r4, #0x19] pop {r4-r7, pc} _02068382: ldrb r0, [r4, #0x1a] add r0, r0, r6 cmp r0, #0xff ble _02068392 mov r0, #0xff add sp, #0xc strb r0, [r4, #0x1a] pop {r4-r7, pc} _02068392: add sp, #0xc strb r0, [r4, #0x1a] pop {r4-r7, pc} _02068398: ldrb r0, [r4, #0x1b] add r0, r0, r6 cmp r0, #0xff ble _020683A8 mov r0, #0xff add sp, #0xc strb r0, [r4, #0x1b] pop {r4-r7, pc} _020683A8: add sp, #0xc strb r0, [r4, #0x1b] pop {r4-r7, pc} _020683AE: add r0, r5, #0x0 str r0, [sp, #0x4] add r0, #0xc str r0, [sp, #0x4] sub r7, #0x3a ldr r1, [sp, #0x4] lsl r0, r7, #0x1 str r0, [sp, #0x8] add r4, r5, #0x0 ldrh r0, [r5, r0] ldrb r1, [r1, r7] add r4, #0x8 bl FUN_0206AB30 ldrb r1, [r4, r7] add r1, r6, r1 cmp r1, r0 ble _020683E4 ldr r0, [sp, #0x8] ldr r1, [sp, #0x4] ldrh r0, [r5, r0] ldrb r1, [r1, r7] bl FUN_0206AB30 add sp, #0xc strb r0, [r4, r7] pop {r4-r7, pc} _020683E4: add sp, #0xc strb r1, [r4, r7] pop {r4-r7, pc} _020683EA: add r5, #0xc sub r7, #0x3e ldrb r0, [r5, r7] add r0, r6, r0 cmp r0, #0x3 ble _020683FE mov r0, #0x3 add sp, #0xc strb r0, [r5, r7] pop {r4-r7, pc} _020683FE: add sp, #0xc strb r0, [r5, r7] pop {r4-r7, pc} _02068404: ldr r1, [r5, #0x10] lsl r0, r1, #0x1b lsr r0, r0, #0x1b add r2, r0, r6 cmp r2, #0x1f bls _0206841E mov r0, #0x1f bic r1, r0 mov r0, #0x1f orr r0, r1 add sp, #0xc str r0, [r5, #0x10] pop {r4-r7, pc} _0206841E: mov r0, #0x1f bic r1, r0 mov r0, #0x1f and r0, r2 orr r0, r1 add sp, #0xc str r0, [r5, #0x10] pop {r4-r7, pc} _0206842E: ldr r1, [r5, #0x10] lsl r0, r1, #0x16 lsr r0, r0, #0x1b add r2, r0, r6 cmp r2, #0x1f ldr r0, _02068508 ; =0xFFFFFC1F bls _0206844A and r1, r0 mov r0, #0x3e lsl r0, r0, #0x4 orr r0, r1 add sp, #0xc str r0, [r5, #0x10] pop {r4-r7, pc} _0206844A: and r1, r0 lsl r0, r2, #0x1b lsr r0, r0, #0x16 orr r0, r1 add sp, #0xc str r0, [r5, #0x10] pop {r4-r7, pc} _02068458: ldr r1, [r5, #0x10] lsl r0, r1, #0x11 lsr r0, r0, #0x1b add r2, r0, r6 cmp r2, #0x1f ldr r0, _0206850C ; =0xFFFF83FF bls _02068474 and r1, r0 mov r0, #0x1f lsl r0, r0, #0xa orr r0, r1 add sp, #0xc str r0, [r5, #0x10] pop {r4-r7, pc} _02068474: and r1, r0 lsl r0, r2, #0x1b lsr r0, r0, #0x11 orr r0, r1 add sp, #0xc str r0, [r5, #0x10] pop {r4-r7, pc} _02068482: ldr r1, [r5, #0x10] lsl r0, r1, #0xc lsr r0, r0, #0x1b add r2, r0, r6 cmp r2, #0x1f ldr r0, _02068510 ; =0xFFF07FFF bls _0206849E and r1, r0 mov r0, #0x3e lsl r0, r0, #0xe orr r0, r1 add sp, #0xc str r0, [r5, #0x10] pop {r4-r7, pc} _0206849E: and r1, r0 lsl r0, r2, #0x1b lsr r0, r0, #0xc orr r0, r1 add sp, #0xc str r0, [r5, #0x10] pop {r4-r7, pc} _020684AC: ldr r1, [r5, #0x10] lsl r0, r1, #0x7 lsr r0, r0, #0x1b add r2, r0, r6 cmp r2, #0x1f ldr r0, _02068514 ; =0xFE0FFFFF bls _020684C8 and r1, r0 mov r0, #0x1f lsl r0, r0, #0x14 orr r0, r1 add sp, #0xc str r0, [r5, #0x10] pop {r4-r7, pc} _020684C8: and r1, r0 lsl r0, r2, #0x1b lsr r0, r0, #0x7 orr r0, r1 add sp, #0xc str r0, [r5, #0x10] pop {r4-r7, pc} _020684D6: ldr r1, [r5, #0x10] lsl r0, r1, #0x2 lsr r0, r0, #0x1b add r2, r0, r6 cmp r2, #0x1f ldr r0, _02068518 ; =0xC1FFFFFF bls _020684F2 and r1, r0 mov r0, #0x3e lsl r0, r0, #0x18 orr r0, r1 add sp, #0xc str r0, [r5, #0x10] pop {r4-r7, pc} _020684F2: and r1, r0 lsl r0, r2, #0x1b lsr r0, r0, #0x2 orr r0, r1 add sp, #0xc str r0, [r5, #0x10] pop {r4-r7, pc} _02068500: bl ErrorHandling _02068504: add sp, #0xc pop {r4-r7, pc} .balign 4 _02068508: .word 0xFFFFFC1F _0206850C: .word 0xFFFF83FF _02068510: .word 0xFFF07FFF _02068514: .word 0xFE0FFFFF _02068518: .word 0xC1FFFFFF thumb_func_start FUN_0206851C FUN_0206851C: ; 0x0206851C push {r3-r5, lr} add r5, r0, #0x0 add r0, r1, #0x0 mov r1, #0x2c bl FUN_02016998 add r4, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0206A370 add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02068538 FUN_02068538: ; 0x02068538 push {r4-r6, lr} add r4, r0, #0x0 add r6, r1, #0x0 cmp r4, #0x0 bne _02068546 bl ErrorHandling _02068546: cmp r6, #0x20 bhi _0206863A add r0, r6, r6 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02068556: ; jump table (using 16-bit offset) .short _02068598 - _02068556 - 2; case 0 .short _0206859C - _02068556 - 2; case 1 .short _020685A0 - _02068556 - 2; case 2 .short _020685A4 - _02068556 - 2; case 3 .short _020685A8 - _02068556 - 2; case 4 .short _020685AC - _02068556 - 2; case 5 .short _020685B0 - _02068556 - 2; case 6 .short _020685B4 - _02068556 - 2; case 7 .short _020685B8 - _02068556 - 2; case 8 .short _020685BC - _02068556 - 2; case 9 .short _020685C0 - _02068556 - 2; case 10 .short _020685C8 - _02068556 - 2; case 11 .short _020685D0 - _02068556 - 2; case 12 .short _020685D8 - _02068556 - 2; case 13 .short _020685E0 - _02068556 - 2; case 14 .short _020685E8 - _02068556 - 2; case 15 .short _020685F0 - _02068556 - 2; case 16 .short _020685F4 - _02068556 - 2; case 17 .short _020685F8 - _02068556 - 2; case 18 .short _020685FC - _02068556 - 2; case 19 .short _02068600 - _02068556 - 2; case 20 .short _02068604 - _02068556 - 2; case 21 .short _02068608 - _02068556 - 2; case 22 .short _0206860C - _02068556 - 2; case 23 .short _02068610 - _02068556 - 2; case 24 .short _02068614 - _02068556 - 2; case 25 .short _02068618 - _02068556 - 2; case 26 .short _0206861C - _02068556 - 2; case 27 .short _02068624 - _02068556 - 2; case 28 .short _0206862C - _02068556 - 2; case 29 .short _02068630 - _02068556 - 2; case 30 .short _02068634 - _02068556 - 2; case 31 .short _02068638 - _02068556 - 2; case 32 _02068598: ldrb r5, [r4, #0x0] b _0206863A _0206859C: ldrb r5, [r4, #0x1] b _0206863A _020685A0: ldrb r5, [r4, #0x2] b _0206863A _020685A4: ldrb r5, [r4, #0x3] b _0206863A _020685A8: ldrb r5, [r4, #0x4] b _0206863A _020685AC: ldrb r5, [r4, #0x5] b _0206863A _020685B0: ldrb r5, [r4, #0x6] b _0206863A _020685B4: ldrb r5, [r4, #0x7] b _0206863A _020685B8: ldrb r5, [r4, #0x8] b _0206863A _020685BC: ldrb r5, [r4, #0x9] b _0206863A _020685C0: ldrh r0, [r4, #0xa] lsl r0, r0, #0x1e lsr r5, r0, #0x1e b _0206863A _020685C8: ldrh r0, [r4, #0xa] lsl r0, r0, #0x1c lsr r5, r0, #0x1e b _0206863A _020685D0: ldrh r0, [r4, #0xa] lsl r0, r0, #0x1a lsr r5, r0, #0x1e b _0206863A _020685D8: ldrh r0, [r4, #0xa] lsl r0, r0, #0x18 lsr r5, r0, #0x1e b _0206863A _020685E0: ldrh r0, [r4, #0xa] lsl r0, r0, #0x16 lsr r5, r0, #0x1e b _0206863A _020685E8: ldrh r0, [r4, #0xa] lsl r0, r0, #0x14 lsr r5, r0, #0x1e b _0206863A _020685F0: ldrh r5, [r4, #0xc] b _0206863A _020685F4: ldrh r5, [r4, #0xe] b _0206863A _020685F8: ldrb r5, [r4, #0x10] b _0206863A _020685FC: ldrb r5, [r4, #0x11] b _0206863A _02068600: ldrb r5, [r4, #0x12] b _0206863A _02068604: ldrb r5, [r4, #0x13] b _0206863A _02068608: ldrb r5, [r4, #0x14] b _0206863A _0206860C: ldrb r5, [r4, #0x15] b _0206863A _02068610: ldrb r5, [r4, #0x16] b _0206863A _02068614: ldrb r5, [r4, #0x17] b _0206863A _02068618: ldrb r5, [r4, #0x18] b _0206863A _0206861C: ldrb r0, [r4, #0x19] lsl r0, r0, #0x19 lsr r5, r0, #0x19 b _0206863A _02068624: ldrb r0, [r4, #0x19] lsl r0, r0, #0x18 lsr r5, r0, #0x1f b _0206863A _0206862C: ldr r5, [r4, #0x1c] b _0206863A _02068630: ldr r5, [r4, #0x20] b _0206863A _02068634: ldr r5, [r4, #0x24] b _0206863A _02068638: ldr r5, [r4, #0x28] _0206863A: add r0, r5, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02068640 FUN_02068640: ; 0x02068640 push {r4, lr} add r4, r0, #0x0 bne _0206864A bl ErrorHandling _0206864A: add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} .balign 4 thumb_func_start FUN_02068654 FUN_02068654: ; 0x02068654 push {r3-r5, lr} add r4, r2, #0x0 bl FUN_0206A8FC mov r1, #0x0 bl FUN_0206851C add r5, r0, #0x0 add r1, r4, #0x0 bl FUN_02068538 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02068640 add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02068678 FUN_02068678: ; 0x02068678 push {r3-r5, lr} add r4, r1, #0x0 mov r1, #0x0 bl FUN_0206851C add r5, r0, #0x0 add r1, r4, #0x0 bl FUN_02068538 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02068640 add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02068698 FUN_02068698: ; 0x02068698 push {r3-r7, lr} add r5, r0, #0x0 bl FUN_020669D4 str r0, [sp, #0x0] add r0, r5, #0x0 mov r1, #0x5 mov r2, #0x0 bl FUN_020671BC lsl r0, r0, #0x10 lsr r6, r0, #0x10 add r0, r5, #0x0 mov r1, #0xa0 mov r2, #0x0 bl FUN_020671BC lsl r0, r0, #0x18 lsr r7, r0, #0x18 add r0, r6, #0x0 add r1, r7, #0x0 bl FUN_02068758 add r4, r0, #0x0 add r0, r6, #0x0 add r1, r7, #0x1 bl FUN_02068758 add r6, r0, #0x0 add r0, r5, #0x0 mov r1, #0x8 mov r2, #0x0 bl FUN_020671BC add r7, r0, #0x0 ldr r1, [sp, #0x0] add r0, r5, #0x0 bl FUN_02066A20 sub r1, r7, r4 mov r0, #0x64 mul r0, r1 sub r1, r6, r4 blx _u32_div_f lsl r0, r0, #0x18 lsr r0, r0, #0x18 pop {r3-r7, pc} thumb_func_start FUN_020686F8 FUN_020686F8: ; 0x020686F8 ldr r3, _020686FC ; =FUN_02068700 bx r3 .balign 4 _020686FC: .word FUN_02068700 thumb_func_start FUN_02068700 FUN_02068700: ; 0x02068700 push {r4-r6, lr} mov r1, #0x5 mov r2, #0x0 add r4, r0, #0x0 bl FUN_020672BC lsl r0, r0, #0x10 lsr r6, r0, #0x10 add r0, r4, #0x0 bl FUN_020687C8 add r0, r0, #0x1 lsl r0, r0, #0x10 lsr r5, r0, #0x10 add r0, r4, #0x0 mov r1, #0x8 mov r2, #0x0 bl FUN_020672BC add r4, r0, #0x0 add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_02068758 sub r0, r0, r4 pop {r4-r6, pc} thumb_func_start FUN_02068734 FUN_02068734: ; 0x02068734 push {r3-r5, lr} add r5, r0, #0x0 mov r1, #0x5 mov r2, #0x0 bl FUN_020671BC add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0xa0 mov r2, #0x0 bl FUN_020671BC add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_02068758 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02068758 FUN_02068758: ; 0x02068758 push {r4, lr} add r4, r1, #0x0 mov r1, #0x15 bl FUN_02068678 add r1, r4, #0x0 bl FUN_02068788 pop {r4, pc} .balign 4 thumb_func_start FUN_0206876C FUN_0206876C: ; 0x0206876C push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x8 blt _0206877A bl ErrorHandling _0206877A: add r0, r4, #0x0 mov r1, #0x3 add r2, r5, #0x0 bl FUN_020064F0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02068788 FUN_02068788: ; 0x02068788 push {r4-r6, lr} add r6, r0, #0x0 add r5, r1, #0x0 cmp r6, #0x8 blt _02068796 bl ErrorHandling _02068796: cmp r5, #0x65 ble _0206879E bl ErrorHandling _0206879E: mov r1, #0x65 mov r0, #0x0 lsl r1, r1, #0x2 bl FUN_02016998 add r4, r0, #0x0 add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_0206876C lsl r0, r5, #0x2 ldr r5, [r4, r0] add r0, r4, #0x0 bl FUN_02016A18 add r0, r5, #0x0 pop {r4-r6, pc} thumb_func_start FUN_020687C0 FUN_020687C0: ; 0x020687C0 ldr r3, _020687C4 ; =FUN_020687C8 bx r3 .balign 4 _020687C4: .word FUN_020687C8 thumb_func_start FUN_020687C8 FUN_020687C8: ; 0x020687C8 push {r3-r7, lr} add r5, r0, #0x0 bl FUN_02066A6C add r6, r0, #0x0 add r0, r5, #0x0 mov r1, #0x5 mov r2, #0x0 bl FUN_020672BC add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x8 mov r2, #0x0 bl FUN_020672BC add r7, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02066A94 lsl r0, r4, #0x10 lsr r0, r0, #0x10 add r1, r7, #0x0 bl FUN_02068800 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02068800 FUN_02068800: ; 0x02068800 push {r4-r6, lr} add r4, r1, #0x0 add r5, r0, #0x0 mov r1, #0x0 bl FUN_0206851C add r6, r0, #0x0 add r1, r5, #0x0 add r2, r4, #0x0 bl FUN_02068824 add r4, r0, #0x0 add r0, r6, #0x0 bl FUN_02068640 add r0, r4, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02068824 FUN_02068824: ; 0x02068824 push {r4, lr} mov r1, #0x15 add r4, r2, #0x0 bl FUN_02068538 ldr r1, _0206884C ; =0x021C5AC0 bl FUN_0206876C ldr r2, _02068850 ; =0x021C5AC4 mov r1, #0x1 _02068838: ldr r0, [r2, #0x0] cmp r0, r4 bhi _02068846 add r1, r1, #0x1 add r2, r2, #0x4 cmp r1, #0x65 blt _02068838 _02068846: sub r0, r1, #0x1 pop {r4, pc} nop _0206884C: .word 0x021C5AC0 _02068850: .word 0x021C5AC4 thumb_func_start FUN_02068854 FUN_02068854: ; 0x02068854 ldr r3, _02068858 ; =FUN_0206885C bx r3 .balign 4 _02068858: .word FUN_0206885C thumb_func_start FUN_0206885C FUN_0206885C: ; 0x0206885C push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02066A6C mov r1, #0x0 add r4, r0, #0x0 add r0, r5, #0x0 add r2, r1, #0x0 bl FUN_020672BC add r6, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02066A94 add r0, r6, #0x0 bl FUN_02068884 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02068884 FUN_02068884: ; 0x02068884 push {r3, lr} mov r1, #0x19 blx _u32_div_f lsl r0, r1, #0x18 lsr r0, r0, #0x18 pop {r3, pc} .balign 4 thumb_func_start FUN_02068894 FUN_02068894: ; 0x02068894 push {r3, lr} cmp r2, #0x1 blo _0206889E cmp r2, #0x5 bls _020688A2 _0206889E: add r0, r1, #0x0 pop {r3, pc} _020688A2: lsl r3, r0, #0x2 add r3, r0, r3 ldr r0, _020688E4 ; =0x020F7F93 sub r2, r2, #0x1 add r0, r0, r3 ldrsb r2, [r2, r0] mov r0, #0x0 mvn r0, r0 cmp r2, r0 beq _020688CE cmp r2, #0x1 bne _020688E0 mov r0, #0x6e mul r0, r1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r1, #0x64 blx _s32_div_f lsl r0, r0, #0x10 lsr r1, r0, #0x10 b _020688E0 _020688CE: mov r0, #0x5a mul r0, r1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r1, #0x64 blx _s32_div_f lsl r0, r0, #0x10 lsr r1, r0, #0x10 _020688E0: add r0, r1, #0x0 pop {r3, pc} .balign 4 _020688E4: .word 0x020F7F93 thumb_func_start FUN_020688E8 FUN_020688E8: ; 0x020688E8 push {r3-r7, lr} sub sp, #0x8 add r6, r1, #0x0 add r5, r0, #0x0 str r2, [sp, #0x0] cmp r6, #0x5 bne _02068900 bl FUN_0201B9EC mov r1, #0x1 tst r0, r1 bne _020689D4 _02068900: add r0, r5, #0x0 mov r1, #0xad mov r2, #0x0 bl FUN_020671BC lsl r0, r0, #0x10 lsr r1, r0, #0x10 beq _020689D4 ldr r0, _020689D8 ; =0x000001EE cmp r1, r0 beq _020689D4 add r0, r5, #0x0 mov r1, #0x6 mov r2, #0x0 bl FUN_020671BC lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r1, #0x1 mov r2, #0x0 bl FUN_0206E7B8 lsl r0, r0, #0x18 mov r4, #0x0 lsr r7, r0, #0x18 add r0, r5, #0x0 mov r1, #0x9 add r2, r4, #0x0 bl FUN_020671BC add r1, sp, #0x4 strh r0, [r1, #0x0] add r0, r4, #0x0 ldrsh r1, [r1, r0] cmp r1, #0x64 blt _0206894E add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 _0206894E: cmp r1, #0xc8 blt _02068958 add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 _02068958: lsl r0, r6, #0x1 add r1, r6, r0 ldr r0, _020689DC ; =0x020F7ED4 add r0, r0, r1 ldrsb r4, [r4, r0] cmp r4, #0x0 ble _0206897A add r0, r5, #0x0 mov r1, #0x9a mov r2, #0x0 bl FUN_020671BC cmp r0, #0xb bne _0206897A add r0, r4, #0x1 lsl r0, r0, #0x18 asr r4, r0, #0x18 _0206897A: cmp r4, #0x0 ble _02068994 add r0, r5, #0x0 mov r1, #0x97 mov r2, #0x0 bl FUN_020671BC ldr r1, [sp, #0x0] cmp r1, r0 bne _02068994 add r0, r4, #0x1 lsl r0, r0, #0x18 asr r4, r0, #0x18 _02068994: cmp r4, #0x0 ble _020689AA cmp r7, #0x34 bne _020689AA mov r0, #0x96 mul r0, r4 mov r1, #0x64 blx _s32_div_f lsl r0, r0, #0x18 asr r4, r0, #0x18 _020689AA: add r0, sp, #0x4 mov r1, #0x0 ldrsh r2, [r0, r1] add r2, r2, r4 strh r2, [r0, #0x0] ldrsh r2, [r0, r1] cmp r2, #0x0 bge _020689BC strh r1, [r0, #0x0] _020689BC: add r1, sp, #0x4 mov r0, #0x0 ldrsh r0, [r1, r0] cmp r0, #0xff ble _020689CA mov r0, #0xff strh r0, [r1, #0x0] _020689CA: add r0, r5, #0x0 mov r1, #0x9 add r2, sp, #0x4 bl FUN_02067830 _020689D4: add sp, #0x8 pop {r3-r7, pc} .balign 4 _020689D8: .word 0x000001EE _020689DC: .word 0x020F7ED4 thumb_func_start FUN_020689E0 FUN_020689E0: ; 0x020689E0 ldr r3, _020689E4 ; =FUN_020689E8 bx r3 .balign 4 _020689E4: .word FUN_020689E8 thumb_func_start FUN_020689E8 FUN_020689E8: ; 0x020689E8 push {r3-r7, lr} add r5, r0, #0x0 bl FUN_02066A6C add r6, r0, #0x0 add r0, r5, #0x0 mov r1, #0x5 mov r2, #0x0 bl FUN_020672BC lsl r0, r0, #0x10 mov r1, #0x0 lsr r4, r0, #0x10 add r0, r5, #0x0 add r2, r1, #0x0 bl FUN_020672BC add r7, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02066A94 add r0, r4, #0x0 add r1, r7, #0x0 bl FUN_02068A20 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02068A20 FUN_02068A20: ; 0x02068A20 push {r4-r6, lr} add r4, r1, #0x0 add r5, r0, #0x0 mov r1, #0x0 bl FUN_0206851C add r6, r0, #0x0 add r1, r5, #0x0 add r2, r4, #0x0 bl FUN_02068A44 add r4, r0, #0x0 add r0, r6, #0x0 bl FUN_02068640 add r0, r4, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02068A44 FUN_02068A44: ; 0x02068A44 push {r4, lr} mov r1, #0x12 add r4, r2, #0x0 bl FUN_02068538 lsl r0, r0, #0x18 lsr r1, r0, #0x18 beq _02068A5E cmp r1, #0xfe beq _02068A62 cmp r1, #0xff beq _02068A66 b _02068A6A _02068A5E: mov r0, #0x0 pop {r4, pc} _02068A62: mov r0, #0x1 pop {r4, pc} _02068A66: mov r0, #0x2 pop {r4, pc} _02068A6A: lsl r0, r4, #0x18 lsr r0, r0, #0x18 cmp r1, r0 bls _02068A76 mov r0, #0x1 b _02068A78 _02068A76: mov r0, #0x0 _02068A78: lsl r0, r0, #0x18 lsr r0, r0, #0x18 pop {r4, pc} .balign 4 thumb_func_start FUN_02068A80 FUN_02068A80: ; 0x02068A80 ldr r3, _02068A84 ; =FUN_02068A88 bx r3 .balign 4 _02068A84: .word FUN_02068A88 thumb_func_start FUN_02068A88 FUN_02068A88: ; 0x02068A88 push {r3-r5, lr} mov r1, #0x7 mov r2, #0x0 add r5, r0, #0x0 bl FUN_020672BC mov r1, #0x0 add r4, r0, #0x0 add r0, r5, #0x0 add r2, r1, #0x0 bl FUN_020672BC add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_02068AAC pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02068AAC FUN_02068AAC: ; 0x02068AAC ldr r3, _02068AD4 ; =0xFFFF0000 lsl r2, r1, #0x10 and r1, r3 and r3, r0 lsl r0, r0, #0x10 lsr r3, r3, #0x10 lsr r0, r0, #0x10 lsr r1, r1, #0x10 eor r0, r3 lsr r2, r2, #0x10 eor r0, r1 eor r0, r2 cmp r0, #0x8 bhs _02068ACC mov r0, #0x1 b _02068ACE _02068ACC: mov r0, #0x0 _02068ACE: lsl r0, r0, #0x18 lsr r0, r0, #0x18 bx lr .balign 4 _02068AD4: .word 0xFFFF0000 thumb_func_start FUN_02068AD8 FUN_02068AD8: ; 0x02068AD8 push {r3-r7, lr} add r7, r0, #0x0 ldr r0, _02068B64 ; =0xFFFF0000 and r0, r7 lsr r1, r0, #0x10 lsl r0, r7, #0x10 lsr r0, r0, #0x10 eor r0, r1 lsr r7, r0, #0x3 bl FUN_0201B9EC mov r1, #0x7 and r0, r1 lsl r0, r0, #0x10 lsr r6, r0, #0x10 bl FUN_0201B9EC mov r1, #0x7 and r0, r1 lsl r0, r0, #0x10 lsr r5, r0, #0x10 mov r4, #0x0 _02068B04: add r0, r4, #0x0 bl FUN_0206A92C tst r0, r7 beq _02068B34 bl FUN_0201B9EC mov r1, #0x1 tst r0, r1 beq _02068B26 add r0, r4, #0x3 bl FUN_0206A92C orr r0, r6 lsl r0, r0, #0x10 lsr r6, r0, #0x10 b _02068B56 _02068B26: add r0, r4, #0x3 bl FUN_0206A92C orr r0, r5 lsl r0, r0, #0x10 lsr r5, r0, #0x10 b _02068B56 _02068B34: bl FUN_0201B9EC mov r1, #0x1 tst r0, r1 beq _02068B56 add r0, r4, #0x3 bl FUN_0206A92C orr r0, r6 lsl r0, r0, #0x10 lsr r6, r0, #0x10 add r0, r4, #0x3 bl FUN_0206A92C orr r0, r5 lsl r0, r0, #0x10 lsr r5, r0, #0x10 _02068B56: add r4, r4, #0x1 cmp r4, #0xd blt _02068B04 lsl r0, r5, #0x10 orr r0, r6 pop {r3-r7, pc} nop _02068B64: .word 0xFFFF0000 thumb_func_start FUN_02068B68 FUN_02068B68: ; 0x02068B68 ldr r3, _02068B6C ; =FUN_02068B70 bx r3 .balign 4 _02068B6C: .word FUN_02068B70 thumb_func_start FUN_02068B70 FUN_02068B70: ; 0x02068B70 push {r4-r7, lr} sub sp, #0x1c add r5, r1, #0x0 str r0, [sp, #0xc] add r0, r5, #0x0 str r2, [sp, #0x10] bl FUN_02066A6C str r0, [sp, #0x18] add r0, r5, #0x0 mov r1, #0xad mov r2, #0x0 bl FUN_020672BC lsl r0, r0, #0x10 lsr r4, r0, #0x10 add r0, r5, #0x0 bl FUN_020689E8 str r0, [sp, #0x14] add r0, r5, #0x0 bl FUN_02068A88 mov r1, #0x0 add r7, r0, #0x0 add r0, r5, #0x0 add r2, r1, #0x0 bl FUN_020672BC add r6, r0, #0x0 ldr r0, _02068BF8 ; =0x000001EE cmp r4, r0 bne _02068BCA add r0, r5, #0x0 mov r1, #0x5 mov r2, #0x0 bl FUN_020672BC ldr r1, _02068BFC ; =0x000001EA cmp r0, r1 bne _02068BC6 mov r0, #0x1 b _02068BD8 _02068BC6: mov r0, #0x0 b _02068BD8 _02068BCA: add r0, r5, #0x0 mov r1, #0x70 mov r2, #0x0 bl FUN_020672BC lsl r0, r0, #0x18 lsr r0, r0, #0x18 _02068BD8: str r7, [sp, #0x0] str r0, [sp, #0x4] str r6, [sp, #0x8] ldr r0, [sp, #0xc] ldr r2, [sp, #0x14] ldr r3, [sp, #0x10] add r1, r4, #0x0 bl FUN_02068C00 ldr r1, [sp, #0x18] add r0, r5, #0x0 bl FUN_02066A94 add sp, #0x1c pop {r4-r7, pc} nop _02068BF8: .word 0x000001EE _02068BFC: .word 0x000001EA thumb_func_start FUN_02068C00 FUN_02068C00: ; 0x02068C00 push {r4-r7} add r7, r2, #0x0 add r5, r3, #0x0 add r4, r0, #0x0 add r0, r1, #0x0 ldr r3, [sp, #0x10] ldr r2, [sp, #0x14] mov r1, #0x0 strh r1, [r4, #0x6] strb r1, [r4, #0x8] str r1, [r4, #0xc] ldr r1, _02068E0C ; =0x000001A5 cmp r0, r1 bgt _02068C68 bge _02068D1E add r6, r1, #0x0 sub r6, #0x46 cmp r0, r6 bgt _02068C36 sub r1, #0x46 cmp r0, r1 blt _02068C2E b _02068D58 _02068C2E: cmp r0, #0xc9 bne _02068C34 b _02068D90 _02068C34: b _02068DD4 _02068C36: add r6, r1, #0x0 sub r6, #0x23 cmp r0, r6 bgt _02068C48 sub r1, #0x23 cmp r0, r1 bne _02068C46 b _02068D76 _02068C46: b _02068DD4 _02068C48: add r6, r1, #0x0 sub r6, #0x8 cmp r0, r6 bgt _02068C66 add r6, r1, #0x0 sub r6, #0x9 cmp r0, r6 blt _02068C66 add r6, r1, #0x0 sub r6, #0x9 cmp r0, r6 beq _02068CAA sub r1, #0x8 cmp r0, r1 beq _02068CC8 _02068C66: b _02068DD4 _02068C68: add r6, r1, #0x0 add r6, #0x48 cmp r0, r6 bgt _02068C8E add r6, r1, #0x0 add r6, #0x48 cmp r0, r6 bge _02068D3A add r6, r1, #0x2 cmp r0, r6 bgt _02068C8C add r6, r1, #0x1 cmp r0, r6 blt _02068C8C beq _02068CE6 add r1, r1, #0x2 cmp r0, r1 beq _02068D02 _02068C8C: b _02068DD4 _02068C8E: add r6, r1, #0x0 add r6, #0x49 cmp r0, r6 bgt _02068CA0 add r1, #0x49 cmp r0, r1 bne _02068C9E b _02068DAC _02068C9E: b _02068DD4 _02068CA0: add r1, #0x4a cmp r0, r1 bne _02068CA8 b _02068DC4 _02068CA8: b _02068DD4 _02068CAA: cmp r2, #0x2 bls _02068CB0 mov r2, #0x0 _02068CB0: mov r0, #0x75 strh r0, [r4, #0x0] lsr r0, r5, #0x1 lsl r1, r2, #0x1 add r0, #0x48 add r0, r0, r1 add r3, #0x92 strh r0, [r4, #0x2] add r0, r3, r1 strh r0, [r4, #0x4] pop {r4-r7} bx lr _02068CC8: cmp r2, #0x2 bls _02068CCE mov r2, #0x0 _02068CCE: mov r0, #0x75 strh r0, [r4, #0x0] lsr r0, r5, #0x1 lsl r1, r2, #0x1 add r0, #0x4e add r0, r0, r1 add r3, #0x98 strh r0, [r4, #0x2] add r0, r3, r1 strh r0, [r4, #0x4] pop {r4-r7} bx lr _02068CE6: cmp r2, #0x1 bls _02068CEC mov r2, #0x0 _02068CEC: mov r0, #0x75 add r5, #0x54 strh r0, [r4, #0x0] add r0, r5, r2 strh r0, [r4, #0x2] add r3, #0x9e lsl r0, r2, #0x1 add r0, r3, r0 strh r0, [r4, #0x4] pop {r4-r7} bx lr _02068D02: cmp r2, #0x1 bls _02068D08 mov r2, #0x0 _02068D08: mov r0, #0x75 add r5, #0x58 strh r0, [r4, #0x0] add r0, r5, r2 strh r0, [r4, #0x2] add r3, #0xa2 lsl r0, r2, #0x1 add r0, r3, r0 strh r0, [r4, #0x4] pop {r4-r7} bx lr _02068D1E: cmp r2, #0x1 bls _02068D24 mov r2, #0x0 _02068D24: mov r0, #0x75 add r5, #0x5c strh r0, [r4, #0x0] add r0, r5, r2 strh r0, [r4, #0x2] lsl r0, r3, #0x1 add r0, #0xa6 add r0, r2, r0 strh r0, [r4, #0x4] pop {r4-r7} bx lr _02068D3A: cmp r2, #0x11 bls _02068D40 mov r2, #0x0 _02068D40: mov r0, #0x75 strh r0, [r4, #0x0] lsr r0, r5, #0x1 lsl r1, r2, #0x1 add r0, #0x60 add r0, r0, r1 add r3, #0xaa strh r0, [r4, #0x2] add r0, r3, r1 strh r0, [r4, #0x4] pop {r4-r7} bx lr _02068D58: cmp r2, #0x3 bls _02068D5E mov r2, #0x0 _02068D5E: mov r0, #0x75 strh r0, [r4, #0x0] lsl r0, r5, #0x1 add r0, #0x40 add r0, r2, r0 strh r0, [r4, #0x2] lsl r0, r3, #0x2 add r0, #0x8a add r0, r2, r0 strh r0, [r4, #0x4] pop {r4-r7} bx lr _02068D76: cmp r2, #0x3 bls _02068D7C mov r2, #0x0 _02068D7C: mov r0, #0x75 strh r0, [r4, #0x0] lsr r1, r5, #0x1 lsl r0, r2, #0x1 add r0, r1, r0 strh r0, [r4, #0x2] add r3, #0x86 strh r3, [r4, #0x4] pop {r4-r7} bx lr _02068D90: cmp r2, #0x1c blo _02068D96 mov r2, #0x0 _02068D96: mov r0, #0x75 lsr r1, r5, #0x1 strh r0, [r4, #0x0] add r1, #0x8 lsl r0, r2, #0x1 add r0, r1, r0 strh r0, [r4, #0x2] add r3, #0x88 strh r3, [r4, #0x4] pop {r4-r7} bx lr _02068DAC: cmp r2, #0x1 bls _02068DB2 mov r2, #0x0 _02068DB2: mov r0, #0x75 strh r0, [r4, #0x0] add r0, r2, #0x0 add r0, #0x84 strh r0, [r4, #0x2] add r2, #0xce strh r2, [r4, #0x4] pop {r4-r7} bx lr _02068DC4: mov r0, #0x75 strh r0, [r4, #0x0] mov r0, #0x84 strh r0, [r4, #0x2] mov r0, #0xce strh r0, [r4, #0x4] pop {r4-r7} bx lr _02068DD4: mov r1, #0x4 strh r1, [r4, #0x0] cmp r7, #0x1 beq _02068DE0 mov r2, #0x1 b _02068DE2 _02068DE0: mov r2, #0x0 _02068DE2: mov r1, #0x6 mul r1, r0 add r6, r5, r1 add r2, r6, r2 add r1, r1, #0x4 strh r2, [r4, #0x2] add r1, r3, r1 strh r1, [r4, #0x4] ldr r1, _02068E10 ; =0x00000147 cmp r0, r1 bne _02068E06 cmp r5, #0x2 bne _02068E06 strh r1, [r4, #0x6] mov r0, #0x0 strb r0, [r4, #0x8] ldr r0, [sp, #0x18] str r0, [r4, #0xc] _02068E06: pop {r4-r7} bx lr nop _02068E0C: .word 0x000001A5 _02068E10: .word 0x00000147 thumb_func_start FUN_02068E14 FUN_02068E14: ; 0x02068E14 ldr r3, _02068E18 ; =FUN_02068E1C bx r3 .balign 4 _02068E18: .word FUN_02068E1C thumb_func_start FUN_02068E1C FUN_02068E1C: ; 0x02068E1C push {r3-r7, lr} sub sp, #0x8 add r7, r1, #0x0 mov r1, #0xad mov r2, #0x0 add r5, r0, #0x0 bl FUN_020672BC lsl r0, r0, #0x10 lsr r4, r0, #0x10 add r0, r5, #0x0 bl FUN_020689E8 mov r1, #0x0 str r0, [sp, #0x4] add r0, r5, #0x0 add r2, r1, #0x0 bl FUN_020672BC add r6, r0, #0x0 ldr r0, _02068E80 ; =0x000001EE cmp r4, r0 bne _02068E62 add r0, r5, #0x0 mov r1, #0x5 mov r2, #0x0 bl FUN_020672BC ldr r1, _02068E84 ; =0x000001EA cmp r0, r1 bne _02068E5E mov r3, #0x1 b _02068E70 _02068E5E: mov r3, #0x0 b _02068E70 _02068E62: add r0, r5, #0x0 mov r1, #0x70 mov r2, #0x0 bl FUN_020672BC lsl r0, r0, #0x18 lsr r3, r0, #0x18 _02068E70: str r6, [sp, #0x0] ldr r1, [sp, #0x4] add r0, r4, #0x0 add r2, r7, #0x0 bl FUN_02068E88 add sp, #0x8 pop {r3-r7, pc} .balign 4 _02068E80: .word 0x000001EE _02068E84: .word 0x000001EA thumb_func_start FUN_02068E88 FUN_02068E88: ; 0x02068E88 push {r3-r5, lr} ldr r4, _02068FDC ; =0x000001A5 cmp r0, r4 bgt _02068ED6 bge _02068F54 add r5, r4, #0x0 sub r5, #0x46 cmp r0, r5 bgt _02068EA6 sub r4, #0x46 cmp r0, r4 bge _02068F74 cmp r0, #0xc9 beq _02068F94 b _02068FB8 _02068EA6: add r5, r4, #0x0 sub r5, #0x23 cmp r0, r5 bgt _02068EB6 sub r4, #0x23 cmp r0, r4 beq _02068F84 b _02068FB8 _02068EB6: add r5, r4, #0x0 sub r5, #0x8 cmp r0, r5 bgt _02068FB8 add r5, r4, #0x0 sub r5, #0x9 cmp r0, r5 blt _02068FB8 add r5, r4, #0x0 sub r5, #0x9 cmp r0, r5 beq _02068F14 sub r4, #0x8 cmp r0, r4 beq _02068F26 b _02068FB8 _02068ED6: add r5, r4, #0x0 add r5, #0x48 cmp r0, r5 bgt _02068EFC add r5, r4, #0x0 add r5, #0x48 cmp r0, r5 bge _02068F62 add r5, r4, #0x2 cmp r0, r5 bgt _02068FB8 add r5, r4, #0x1 cmp r0, r5 blt _02068FB8 beq _02068F38 add r4, r4, #0x2 cmp r0, r4 beq _02068F46 b _02068FB8 _02068EFC: add r5, r4, #0x0 add r5, #0x49 cmp r0, r5 bgt _02068F0C add r4, #0x49 cmp r0, r4 beq _02068FA6 b _02068FB8 _02068F0C: add r4, #0x4a cmp r0, r4 beq _02068FB2 b _02068FB8 _02068F14: cmp r3, #0x2 bls _02068F1A mov r3, #0x0 _02068F1A: lsr r1, r2, #0x1 add r1, #0x48 lsl r0, r3, #0x1 mov r4, #0x79 add r3, r1, r0 b _02068FCA _02068F26: cmp r3, #0x2 bls _02068F2C mov r3, #0x0 _02068F2C: lsr r1, r2, #0x1 add r1, #0x4e lsl r0, r3, #0x1 mov r4, #0x79 add r3, r1, r0 b _02068FCA _02068F38: cmp r3, #0x1 bls _02068F3E mov r3, #0x0 _02068F3E: add r2, #0x54 mov r4, #0x79 add r3, r2, r3 b _02068FCA _02068F46: cmp r3, #0x1 bls _02068F4C mov r3, #0x0 _02068F4C: add r2, #0x58 mov r4, #0x79 add r3, r2, r3 b _02068FCA _02068F54: cmp r3, #0x1 bls _02068F5A mov r3, #0x0 _02068F5A: add r2, #0x5c mov r4, #0x79 add r3, r2, r3 b _02068FCA _02068F62: cmp r3, #0x11 bls _02068F68 mov r3, #0x0 _02068F68: lsr r1, r2, #0x1 add r1, #0x60 lsl r0, r3, #0x1 mov r4, #0x79 add r3, r1, r0 b _02068FCA _02068F74: cmp r3, #0x3 bls _02068F7A mov r3, #0x0 _02068F7A: lsl r0, r2, #0x1 add r0, #0x40 mov r4, #0x79 add r3, r3, r0 b _02068FCA _02068F84: cmp r3, #0x3 bls _02068F8A mov r3, #0x0 _02068F8A: lsr r1, r2, #0x1 lsl r0, r3, #0x1 mov r4, #0x79 add r3, r1, r0 b _02068FCA _02068F94: cmp r3, #0x1c blo _02068F9A mov r3, #0x0 _02068F9A: lsr r1, r2, #0x1 add r1, #0x8 lsl r0, r3, #0x1 mov r4, #0x79 add r3, r1, r0 b _02068FCA _02068FA6: cmp r3, #0x1 bls _02068FAC mov r3, #0x0 _02068FAC: mov r4, #0x79 add r3, #0x84 b _02068FCA _02068FB2: mov r4, #0x79 mov r3, #0x84 b _02068FCA _02068FB8: mov r4, #0x5 cmp r1, #0x1 beq _02068FC2 mov r1, #0x1 b _02068FC4 _02068FC2: mov r1, #0x0 _02068FC4: lsl r0, r0, #0x2 add r0, r2, r0 add r3, r0, r1 _02068FCA: add r0, sp, #0x0 add r1, r4, #0x0 add r2, r3, #0x0 bl FUN_020064F0 add r0, sp, #0x0 ldrb r0, [r0, #0x0] pop {r3-r5, pc} nop _02068FDC: .word 0x000001A5 thumb_func_start FUN_02068FE0 FUN_02068FE0: ; 0x02068FE0 push {r4, lr} add r4, r0, #0x0 cmp r2, #0x2 bne _02068FEE mov r0, #0x3c strh r0, [r4, #0x0] b _02068FFC _02068FEE: mov r0, #0x6 strh r0, [r4, #0x0] add r0, r1, #0x0 bl FUN_0206AA30 lsl r0, r0, #0x10 lsr r1, r0, #0x10 _02068FFC: lsl r0, r1, #0x1 strh r0, [r4, #0x2] add r0, r0, #0x1 strh r0, [r4, #0x4] mov r0, #0x0 strh r0, [r4, #0x6] strb r0, [r4, #0x8] str r0, [r4, #0xc] pop {r4, pc} .balign 4 thumb_func_start FUN_02069010 FUN_02069010: ; 0x02069010 push {r3-r5, lr} sub sp, #0x20 add r5, r1, #0x0 mov r3, #0x1c add r4, r0, #0x0 str r3, [sp, #0x0] add r0, sp, #0x4 mov r1, #0x72 mov r2, #0x0 mul r3, r5 bl FUN_02006548 add r0, sp, #0xc add r1, r4, #0x0 mov r2, #0x14 blx MI_CpuCopy8 add sp, #0x20 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02069038 FUN_02069038: ; 0x02069038 push {r3-r7, lr} sub sp, #0x28 add r4, r0, #0x0 add r6, r2, #0x0 add r5, r3, #0x0 mov r3, #0x1c add r0, sp, #0x8 add r7, r1, #0x0 str r3, [sp, #0x0] add r0, #0x2 mov r1, #0x72 mov r2, #0x0 mul r3, r6 bl FUN_02006548 cmp r5, #0x2 bne _0206906C add r1, sp, #0x4 mov r0, #0x6 ldrsb r0, [r1, r0] strh r0, [r1, #0x0] ldrb r0, [r1, #0x7] strh r0, [r1, #0x2] ldr r0, [sp, #0x44] strb r0, [r1, #0x4] b _02069096 _0206906C: ldr r0, [sp, #0x40] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_02014C3C add r5, r0, #0x0 cmp r5, #0x3 blt _02069080 bl ErrorHandling _02069080: lsl r2, r5, #0x1 add r0, sp, #0xc ldrsb r1, [r0, r2] add r0, sp, #0x4 strh r1, [r0, #0x0] add r1, sp, #0xc add r1, #0x1 ldrb r1, [r1, r2] strh r1, [r0, #0x2] ldr r1, [sp, #0x44] strb r1, [r0, #0x4] _02069096: ldr r3, [sp, #0x48] add r0, r4, #0x0 lsl r3, r3, #0x18 add r1, r7, #0x0 add r2, sp, #0x4 lsr r3, r3, #0x18 bl FUN_02014C54 add sp, #0x28 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020690AC FUN_020690AC: ; 0x020690AC mov r2, #0x3c strh r2, [r0, #0x0] lsl r1, r1, #0x1 strh r1, [r0, #0x2] add r1, r1, #0x1 strh r1, [r0, #0x4] mov r1, #0x0 strh r1, [r0, #0x6] strb r1, [r0, #0x8] str r1, [r0, #0xc] bx lr .balign 4 thumb_func_start FUN_020690C4 FUN_020690C4: ; 0x020690C4 mov r0, #0xec bx lr thumb_func_start FUN_020690C8 FUN_020690C8: ; 0x020690C8 mov r0, #0x88 bx lr thumb_func_start FUN_020690CC FUN_020690CC: ; 0x020690CC ldr r3, _020690D0 ; =FUN_020690D4 bx r3 .balign 4 _020690D0: .word FUN_020690D4 thumb_func_start FUN_020690D4 FUN_020690D4: ; 0x020690D4 push {r3, lr} mov r1, #0x70 mov r2, #0x0 bl FUN_020672BC lsl r0, r0, #0x18 lsr r0, r0, #0x18 pop {r3, pc} thumb_func_start FUN_020690E4 FUN_020690E4: ; 0x020690E4 bx lr .balign 4 thumb_func_start FUN_020690E8 FUN_020690E8: ; 0x020690E8 push {r3-r5, lr} sub sp, #0x8 mov r1, #0x5 mov r2, #0x0 add r4, r0, #0x0 bl FUN_020671BC lsl r0, r0, #0x10 lsr r5, r0, #0x10 add r0, r4, #0x0 mov r1, #0xa0 mov r2, #0x0 bl FUN_020671BC add r1, r0, #0x1 add r0, sp, #0x0 strb r1, [r0, #0x0] add r0, r4, #0x0 mov r1, #0x8 mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0x4] add r0, r5, #0x0 mov r1, #0x15 bl FUN_02068678 mov r1, #0x64 add r5, r0, #0x0 bl FUN_02068788 ldr r1, [sp, #0x4] cmp r1, r0 bls _02069138 str r0, [sp, #0x4] add r0, r4, #0x0 mov r1, #0x8 add r2, sp, #0x4 bl FUN_02067830 _02069138: add r0, sp, #0x0 ldrb r1, [r0, #0x0] cmp r1, #0x64 bls _02069146 add sp, #0x8 mov r0, #0x0 pop {r3-r5, pc} _02069146: add r0, r5, #0x0 bl FUN_02068788 ldr r1, [sp, #0x4] cmp r1, r0 blo _02069162 add r0, r4, #0x0 mov r1, #0xa0 add r2, sp, #0x0 bl FUN_02067830 add sp, #0x8 mov r0, #0x1 pop {r3-r5, pc} _02069162: mov r0, #0x0 add sp, #0x8 pop {r3-r5, pc} thumb_func_start FUN_02069168 FUN_02069168: ; 0x02069168 push {r4-r7, lr} sub sp, #0x44 add r7, r1, #0x0 str r0, [sp, #0x0] mov r6, #0x0 add r4, r2, #0x0 add r0, r7, #0x0 mov r1, #0x5 add r2, r6, #0x0 str r3, [sp, #0x4] ldr r5, [sp, #0x58] bl FUN_020671BC lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x2c] add r0, r7, #0x0 mov r1, #0x6 add r2, r6, #0x0 bl FUN_020671BC lsl r0, r0, #0x10 lsr r0, r0, #0x10 add r1, r6, #0x0 str r0, [sp, #0x28] add r0, r7, #0x0 add r2, r1, #0x0 bl FUN_020671BC str r0, [sp, #0x30] add r0, r7, #0x0 mov r1, #0x14 add r2, r6, #0x0 bl FUN_020671BC lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x10] ldr r1, _020694A0 ; =0xFFFF0000 ldr r0, [sp, #0x30] add r2, r6, #0x0 and r0, r1 lsr r0, r0, #0x10 lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x1c] ldr r0, [sp, #0x28] mov r1, #0x1 bl FUN_0206E7B8 lsl r0, r0, #0x18 lsr r1, r0, #0x18 ldr r0, [sp, #0x2c] cmp r0, #0x40 beq _020691E4 cmp r1, #0x3f bne _020691E4 cmp r4, #0x3 beq _020691E4 add sp, #0x44 add r0, r6, #0x0 pop {r4-r7, pc} _020691E4: cmp r5, #0x0 bne _020691EA add r5, sp, #0x40 _020691EA: mov r0, #0x0 mov r1, #0x2a bl FUN_02016998 str r0, [sp, #0x18] ldr r0, [sp, #0x2c] ldr r1, [sp, #0x18] bl FUN_0206A394 cmp r4, #0x3 bls _02069202 b _0206954A _02069202: add r0, r4, r4 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0206920E: ; jump table (using 16-bit offset) .short _02069216 - _0206920E - 2; case 0 .short _02069486 - _0206920E - 2; case 1 .short _020694BE - _0206920E - 2; case 2 .short _020694BE - _0206920E - 2; case 3 _02069216: add r0, r7, #0x0 mov r1, #0xa0 mov r2, #0x0 bl FUN_020671BC lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x14] add r0, r7, #0x0 mov r1, #0x9 mov r2, #0x0 bl FUN_020671BC lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x20] mov r0, #0x0 str r0, [sp, #0x24] ldr r0, [sp, #0x1c] mov r1, #0xa ldr r4, [sp, #0x18] blx _s32_div_f str r1, [sp, #0x8] _02069246: ldrh r0, [r4, #0x0] cmp r0, #0x1a bls _0206924E b _02069472 _0206924E: add r1, r0, r0 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0206925A: ; jump table (using 16-bit offset) .short _02069472 - _0206925A - 2; case 0 .short _02069290 - _0206925A - 2; case 1 .short _0206929E - _0206925A - 2; case 2 .short _020692B4 - _0206925A - 2; case 3 .short _020692CA - _0206925A - 2; case 4 .short _02069472 - _0206925A - 2; case 5 .short _02069472 - _0206925A - 2; case 6 .short _02069472 - _0206925A - 2; case 7 .short _020692DA - _0206925A - 2; case 8 .short _02069306 - _0206925A - 2; case 9 .short _02069332 - _0206925A - 2; case 10 .short _0206935E - _0206925A - 2; case 11 .short _02069376 - _0206925A - 2; case 12 .short _0206938C - _0206925A - 2; case 13 .short _0206939C - _0206925A - 2; case 14 .short _020693A2 - _0206925A - 2; case 15 .short _02069472 - _0206925A - 2; case 16 .short _02069472 - _0206925A - 2; case 17 .short _020693B2 - _0206925A - 2; case 18 .short _020693CA - _0206925A - 2; case 19 .short _020693E2 - _0206925A - 2; case 20 .short _020693F6 - _0206925A - 2; case 21 .short _0206940E - _0206925A - 2; case 22 .short _0206942C - _0206925A - 2; case 23 .short _0206944A - _0206925A - 2; case 24 .short _02069458 - _0206925A - 2; case 25 .short _02069466 - _0206925A - 2; case 26 _02069290: ldr r0, [sp, #0x20] cmp r0, #0xdc blo _0206936C ldrh r6, [r4, #0x4] mov r0, #0x1 str r0, [r5, #0x0] b _02069472 _0206929E: bl FUN_0201277C cmp r0, #0x0 bne _0206936C ldr r0, [sp, #0x20] cmp r0, #0xdc blo _0206936C ldrh r6, [r4, #0x4] mov r0, #0x2 str r0, [r5, #0x0] b _02069472 _020692B4: bl FUN_0201277C cmp r0, #0x1 bne _0206936C ldr r0, [sp, #0x20] cmp r0, #0xdc blo _0206936C ldrh r6, [r4, #0x4] mov r0, #0x3 str r0, [r5, #0x0] b _02069472 _020692CA: ldrh r1, [r4, #0x2] ldr r0, [sp, #0x14] cmp r1, r0 bgt _0206936C ldrh r6, [r4, #0x4] mov r0, #0x4 str r0, [r5, #0x0] b _02069472 _020692DA: ldrh r1, [r4, #0x2] ldr r0, [sp, #0x14] cmp r1, r0 bgt _0206936C add r0, r7, #0x0 mov r1, #0xa4 mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0x34] add r0, r7, #0x0 mov r1, #0xa5 mov r2, #0x0 bl FUN_020671BC ldr r1, [sp, #0x34] cmp r1, r0 bls _0206936C ldrh r6, [r4, #0x4] mov r0, #0x8 str r0, [r5, #0x0] b _02069472 _02069306: ldrh r1, [r4, #0x2] ldr r0, [sp, #0x14] cmp r1, r0 bgt _0206936C add r0, r7, #0x0 mov r1, #0xa4 mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0x38] add r0, r7, #0x0 mov r1, #0xa5 mov r2, #0x0 bl FUN_020671BC ldr r1, [sp, #0x38] cmp r1, r0 bne _0206936C ldrh r6, [r4, #0x4] mov r0, #0x9 str r0, [r5, #0x0] b _02069472 _02069332: ldrh r1, [r4, #0x2] ldr r0, [sp, #0x14] cmp r1, r0 bgt _0206936C add r0, r7, #0x0 mov r1, #0xa4 mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0x3c] add r0, r7, #0x0 mov r1, #0xa5 mov r2, #0x0 bl FUN_020671BC ldr r1, [sp, #0x3c] cmp r1, r0 bhs _0206936C ldrh r6, [r4, #0x4] mov r0, #0xa str r0, [r5, #0x0] b _02069472 _0206935E: ldrh r1, [r4, #0x2] ldr r0, [sp, #0x14] cmp r1, r0 bgt _0206936C ldr r0, [sp, #0x8] cmp r0, #0x5 blt _0206936E _0206936C: b _02069472 _0206936E: ldrh r6, [r4, #0x4] mov r0, #0xb str r0, [r5, #0x0] b _02069472 _02069376: ldrh r1, [r4, #0x2] ldr r0, [sp, #0x14] cmp r1, r0 bgt _02069472 ldr r0, [sp, #0x8] cmp r0, #0x5 blt _02069472 ldrh r6, [r4, #0x4] mov r0, #0xc str r0, [r5, #0x0] b _02069472 _0206938C: ldrh r1, [r4, #0x2] ldr r0, [sp, #0x14] cmp r1, r0 bgt _02069472 ldrh r6, [r4, #0x4] mov r0, #0xd str r0, [r5, #0x0] b _02069472 _0206939C: mov r0, #0xe str r0, [r5, #0x0] b _02069472 _020693A2: ldrh r1, [r4, #0x2] ldr r0, [sp, #0x10] cmp r1, r0 bgt _02069472 ldrh r6, [r4, #0x4] mov r0, #0xf str r0, [r5, #0x0] b _02069472 _020693B2: bl FUN_0201277C cmp r0, #0x0 bne _02069472 ldrh r1, [r4, #0x2] ldr r0, [sp, #0x28] cmp r0, r1 bne _02069472 ldrh r6, [r4, #0x4] mov r0, #0x12 str r0, [r5, #0x0] b _02069472 _020693CA: bl FUN_0201277C cmp r0, #0x1 bne _02069472 ldrh r1, [r4, #0x2] ldr r0, [sp, #0x28] cmp r0, r1 bne _02069472 ldrh r6, [r4, #0x4] mov r0, #0x13 str r0, [r5, #0x0] b _02069472 _020693E2: ldrh r1, [r4, #0x2] add r0, r7, #0x0 bl FUN_02069A38 cmp r0, #0x1 bne _02069472 ldrh r6, [r4, #0x4] mov r0, #0x14 str r0, [r5, #0x0] b _02069472 _020693F6: ldr r0, [sp, #0x0] cmp r0, #0x0 beq _02069472 ldrh r1, [r4, #0x2] bl FUN_0206BAE4 cmp r0, #0x1 bne _02069472 ldrh r6, [r4, #0x4] mov r0, #0x15 str r0, [r5, #0x0] b _02069472 _0206940E: add r0, r7, #0x0 mov r1, #0x6f mov r2, #0x0 bl FUN_020671BC cmp r0, #0x0 bne _02069472 ldrh r1, [r4, #0x2] ldr r0, [sp, #0x14] cmp r1, r0 bgt _02069472 ldrh r6, [r4, #0x4] mov r0, #0x16 str r0, [r5, #0x0] b _02069472 _0206942C: add r0, r7, #0x0 mov r1, #0x6f mov r2, #0x0 bl FUN_020671BC cmp r0, #0x1 bne _02069472 ldrh r1, [r4, #0x2] ldr r0, [sp, #0x14] cmp r1, r0 bgt _02069472 ldrh r6, [r4, #0x4] mov r0, #0x17 str r0, [r5, #0x0] b _02069472 _0206944A: ldr r1, [sp, #0x4] cmp r1, r0 bne _02069472 ldrh r6, [r4, #0x4] mov r0, #0x18 str r0, [r5, #0x0] b _02069472 _02069458: ldr r1, [sp, #0x4] cmp r1, r0 bne _02069472 ldrh r6, [r4, #0x4] mov r0, #0x19 str r0, [r5, #0x0] b _02069472 _02069466: ldr r1, [sp, #0x4] cmp r1, r0 bne _02069472 ldrh r6, [r4, #0x4] mov r0, #0x1a str r0, [r5, #0x0] _02069472: cmp r6, #0x0 bne _0206954A ldr r0, [sp, #0x24] add r4, r4, #0x6 add r0, r0, #0x1 str r0, [sp, #0x24] cmp r0, #0x7 bge _02069484 b _02069246 _02069484: b _0206954A _02069486: ldr r3, [sp, #0x18] mov r4, #0x0 mov r7, #0x6 mov r2, #0x5 _0206948E: ldrh r0, [r3, #0x0] cmp r0, #0x5 beq _0206949A cmp r0, #0x6 beq _020694A4 b _020694B0 _0206949A: ldrh r6, [r3, #0x4] str r2, [r5, #0x0] b _020694B0 .balign 4 _020694A0: .word 0xFFFF0000 _020694A4: ldrh r1, [r3, #0x2] ldr r0, [sp, #0x28] cmp r0, r1 bne _020694B0 ldrh r6, [r3, #0x4] str r7, [r5, #0x0] _020694B0: cmp r6, #0x0 bne _0206954A add r4, r4, #0x1 add r3, r3, #0x6 cmp r4, #0x7 blt _0206948E b _0206954A _020694BE: mov r0, #0x0 ldr r4, [sp, #0x18] str r0, [sp, #0xc] _020694C4: ldrh r2, [r4, #0x0] cmp r2, #0x7 bne _020694E4 ldrh r1, [r4, #0x2] ldr r0, [sp, #0x4] cmp r0, r1 bne _020694E4 ldr r0, [sp, #0xc] mov r1, #0x6 mul r1, r0 ldr r0, [sp, #0x18] add r0, r0, r1 ldrh r6, [r0, #0x4] mov r0, #0x0 str r0, [r5, #0x0] b _0206954A _020694E4: cmp r2, #0x10 bne _02069510 add r0, r7, #0x0 mov r1, #0x6f mov r2, #0x0 bl FUN_020671BC cmp r0, #0x0 bne _02069510 ldrh r1, [r4, #0x2] ldr r0, [sp, #0x4] cmp r0, r1 bne _02069510 ldr r0, [sp, #0xc] mov r1, #0x6 mul r1, r0 ldr r0, [sp, #0x18] add r0, r0, r1 ldrh r6, [r0, #0x4] mov r0, #0x0 str r0, [r5, #0x0] b _0206954A _02069510: ldrh r0, [r4, #0x0] cmp r0, #0x11 bne _0206953E add r0, r7, #0x0 mov r1, #0x6f mov r2, #0x0 bl FUN_020671BC cmp r0, #0x1 bne _0206953E ldrh r1, [r4, #0x2] ldr r0, [sp, #0x4] cmp r0, r1 bne _0206953E ldr r0, [sp, #0xc] mov r1, #0x6 mul r1, r0 ldr r0, [sp, #0x18] add r0, r0, r1 ldrh r6, [r0, #0x4] mov r0, #0x0 str r0, [r5, #0x0] b _0206954A _0206953E: ldr r0, [sp, #0xc] add r4, r4, #0x6 add r0, r0, #0x1 str r0, [sp, #0xc] cmp r0, #0x7 blt _020694C4 _0206954A: ldr r0, [sp, #0x18] bl FUN_02016A18 add r0, r6, #0x0 add sp, #0x44 pop {r4-r7, pc} .balign 4 thumb_func_start FUN_02069558 FUN_02069558: ; 0x02069558 push {r3-r4, lr} sub sp, #0x4c add r4, r0, #0x0 mov r1, #0x0 add r0, sp, #0x0 strh r1, [r0, #0x0] ldr r0, _020695A0 ; =0x000001EE cmp r4, r0 blo _0206956E bl ErrorHandling _0206956E: add r0, sp, #0x4 blx FS_InitFile ldr r1, _020695A4 ; =0x02105FC8 add r0, sp, #0x4 blx FS_OpenFile add r0, sp, #0x4 lsl r1, r4, #0x1 mov r2, #0x0 blx FS_SeekFile add r0, sp, #0x4 add r1, sp, #0x0 mov r2, #0x2 blx FS_ReadFile add r0, sp, #0x4 blx FS_CloseFile add r0, sp, #0x0 ldrh r0, [r0, #0x0] add sp, #0x4c pop {r3-r4, pc} nop _020695A0: .word 0x000001EE _020695A4: .word 0x02105FC8 thumb_func_start FUN_020695A8 FUN_020695A8: ; 0x020695A8 push {r3, lr} cmp r0, #0xb9 bgt _020695CC cmp r0, #0xb7 blt _020695BA beq _020695EC cmp r0, #0xb9 beq _020695EC b _020695E8 _020695BA: cmp r0, #0x7a bgt _020695C6 bge _020695EC cmp r0, #0x71 beq _020695EC b _020695E8 _020695C6: cmp r0, #0x8f beq _020695EC b _020695E8 _020695CC: cmp r0, #0xe2 bgt _020695D8 bge _020695EC cmp r0, #0xca beq _020695EC b _020695E8 _020695D8: ldr r1, _020695F0 ; =0x0000013B cmp r0, r1 bgt _020695E2 beq _020695EC b _020695E8 _020695E2: add r1, #0x2b cmp r0, r1 beq _020695EC _020695E8: bl FUN_02069558 _020695EC: pop {r3, pc} nop _020695F0: .word 0x0000013B thumb_func_start FUN_020695F4 FUN_020695F4: ; 0x020695F4 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 mov r0, #0x0 mov r1, #0x2c bl FUN_02016998 str r0, [sp, #0x0] add r0, r5, #0x0 bl FUN_02066A6C str r0, [sp, #0x4] add r0, r5, #0x0 mov r1, #0x5 mov r2, #0x0 bl FUN_020672BC lsl r0, r0, #0x10 lsr r4, r0, #0x10 add r0, r5, #0x0 mov r1, #0x70 mov r2, #0x0 bl FUN_020672BC add r7, r0, #0x0 add r0, r5, #0x0 bl FUN_020687C8 lsl r0, r0, #0x18 lsr r6, r0, #0x18 ldr r2, [sp, #0x0] add r0, r4, #0x0 add r1, r7, #0x0 bl FUN_02069F9C ldr r0, [sp, #0x0] ldrh r1, [r0, #0x0] ldr r0, _02069690 ; =0x0000FFFF cmp r1, r0 beq _0206967C ldr r4, [sp, #0x0] lsl r7, r6, #0x9 _02069648: ldrh r1, [r4, #0x0] mov r0, #0xfe lsl r0, r0, #0x8 and r0, r1 cmp r0, r7 bgt _0206967C ldr r0, _02069694 ; =0x000001FF and r0, r1 lsl r0, r0, #0x10 lsr r6, r0, #0x10 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_020696A8 ldr r1, _02069690 ; =0x0000FFFF cmp r0, r1 bne _02069672 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02069718 _02069672: add r4, r4, #0x2 ldrh r1, [r4, #0x0] ldr r0, _02069690 ; =0x0000FFFF cmp r1, r0 bne _02069648 _0206967C: ldr r0, [sp, #0x0] bl FUN_02016A18 ldr r1, [sp, #0x4] add r0, r5, #0x0 bl FUN_02066A94 add sp, #0x8 pop {r3-r7, pc} nop _02069690: .word 0x0000FFFF _02069694: .word 0x000001FF thumb_func_start FUN_02069698 FUN_02069698: ; 0x02069698 push {r4, lr} add r4, r1, #0x0 bl FUN_020690E4 add r1, r4, #0x0 bl FUN_020696A8 pop {r4, pc} thumb_func_start FUN_020696A8 FUN_020696A8: ; 0x020696A8 push {r3-r7, lr} sub sp, #0x8 add r5, r1, #0x0 ldr r1, _02069700 ; =0x0000FFFF add r6, r0, #0x0 str r1, [sp, #0x4] bl FUN_02066A6C mov r4, #0x0 str r0, [sp, #0x0] add r7, r4, #0x0 _020696BE: add r1, r4, #0x0 add r0, r6, #0x0 add r1, #0x36 add r2, r7, #0x0 bl FUN_020672BC lsl r0, r0, #0x10 lsr r0, r0, #0x10 bne _020696E0 lsl r2, r4, #0x18 add r0, r6, #0x0 add r1, r5, #0x0 lsr r2, r2, #0x18 bl FUN_020697D4 str r5, [sp, #0x4] b _020696F0 _020696E0: cmp r0, r5 bne _020696EA ldr r0, _02069704 ; =0x0000FFFE str r0, [sp, #0x4] b _020696F0 _020696EA: add r4, r4, #0x1 cmp r4, #0x4 blt _020696BE _020696F0: ldr r1, [sp, #0x0] add r0, r6, #0x0 bl FUN_02066A94 ldr r0, [sp, #0x4] add sp, #0x8 pop {r3-r7, pc} nop _02069700: .word 0x0000FFFF _02069704: .word 0x0000FFFE thumb_func_start FUN_02069708 FUN_02069708: ; 0x02069708 push {r4, lr} add r4, r1, #0x0 bl FUN_020690E4 add r1, r4, #0x0 bl FUN_02069718 pop {r4, pc} thumb_func_start FUN_02069718 FUN_02069718: ; 0x02069718 push {r3-r7, lr} sub sp, #0x20 add r5, r0, #0x0 str r1, [sp, #0x0] bl FUN_02066A6C str r0, [sp, #0xc] add r0, sp, #0x18 mov r4, #0x0 str r0, [sp, #0x4] add r7, sp, #0x14 add r6, sp, #0x10 _02069730: add r1, r4, #0x0 add r0, r5, #0x0 add r1, #0x37 mov r2, #0x0 bl FUN_020672BC ldr r1, [sp, #0x4] mov r2, #0x0 strh r0, [r1, #0x0] add r1, r4, #0x0 add r0, r5, #0x0 add r1, #0x3b bl FUN_020672BC add r1, r4, #0x0 strb r0, [r7, #0x0] add r0, r5, #0x0 add r1, #0x3f mov r2, #0x0 bl FUN_020672BC strb r0, [r6, #0x0] ldr r0, [sp, #0x4] add r4, r4, #0x1 add r0, r0, #0x2 str r0, [sp, #0x4] add r7, r7, #0x1 add r6, r6, #0x1 cmp r4, #0x3 blt _02069730 ldr r0, [sp, #0x0] add r1, sp, #0x10 strh r0, [r1, #0xe] ldr r0, [sp, #0x0] mov r1, #0x5 bl FUN_0206AB18 add r1, sp, #0x10 strb r0, [r1, #0x7] mov r4, #0x0 add r0, sp, #0x18 strb r4, [r1, #0x3] str r0, [sp, #0x8] add r7, sp, #0x14 add r6, sp, #0x10 _0206978A: add r1, r4, #0x0 ldr r2, [sp, #0x8] add r0, r5, #0x0 add r1, #0x36 bl FUN_02067960 add r1, r4, #0x0 add r0, r5, #0x0 add r1, #0x3a add r2, r7, #0x0 bl FUN_02067960 add r1, r4, #0x0 add r0, r5, #0x0 add r1, #0x3e add r2, r6, #0x0 bl FUN_02067960 ldr r0, [sp, #0x8] add r4, r4, #0x1 add r0, r0, #0x2 str r0, [sp, #0x8] add r7, r7, #0x1 add r6, r6, #0x1 cmp r4, #0x4 blt _0206978A ldr r1, [sp, #0xc] add r0, r5, #0x0 bl FUN_02066A94 add sp, #0x20 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020697CC FUN_020697CC: ; 0x020697CC ldr r3, _020697D0 ; =FUN_020697D4 bx r3 .balign 4 _020697D0: .word FUN_020697D4 thumb_func_start FUN_020697D4 FUN_020697D4: ; 0x020697D4 push {r0-r3} push {r3-r5, lr} add r4, r2, #0x0 add r1, r4, #0x0 add r1, #0x36 add r2, sp, #0x14 add r5, r0, #0x0 bl FUN_02067960 add r1, r4, #0x0 add r0, r5, #0x0 add r1, #0x3e mov r2, #0x0 bl FUN_020672BC lsl r0, r0, #0x18 lsr r1, r0, #0x18 add r0, sp, #0x10 ldrh r0, [r0, #0x4] bl FUN_0206AB30 add r1, sp, #0x0 strb r0, [r1, #0x0] add r4, #0x3a add r0, r5, #0x0 add r1, r4, #0x0 add r2, sp, #0x0 bl FUN_02067960 pop {r3-r5} pop {r3} add sp, #0x10 bx r3 .balign 4 thumb_func_start FUN_02069818 FUN_02069818: ; 0x02069818 push {r3-r7, lr} sub sp, #0x10 add r7, r0, #0x0 add r5, r1, #0x0 mov r0, #0x0 mov r1, #0x2c str r2, [sp, #0x0] str r0, [sp, #0x8] bl FUN_02016998 add r4, r0, #0x0 add r0, r7, #0x0 mov r1, #0x5 mov r2, #0x0 bl FUN_020671BC lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x4] add r0, r7, #0x0 mov r1, #0x70 mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0xc] add r0, r7, #0x0 mov r1, #0xa0 mov r2, #0x0 bl FUN_020671BC lsl r0, r0, #0x18 lsr r6, r0, #0x18 ldr r0, [sp, #0x4] ldr r1, [sp, #0xc] add r2, r4, #0x0 bl FUN_02069F9C ldr r0, [r5, #0x0] lsl r0, r0, #0x1 ldrh r2, [r4, r0] ldr r0, _020698D8 ; =0x0000FFFF cmp r2, r0 bne _0206987A add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x10 mov r0, #0x0 pop {r3-r7, pc} _0206987A: mov r0, #0xfe lsl r0, r0, #0x8 add r3, r2, #0x0 and r3, r0 lsl r6, r6, #0x9 cmp r6, r3 beq _020698AC ldr r1, _020698D8 ; =0x0000FFFF _0206988A: ldr r2, [r5, #0x0] add r2, r2, #0x1 str r2, [r5, #0x0] lsl r2, r2, #0x1 ldrh r2, [r4, r2] cmp r2, r1 bne _020698A4 add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x10 mov r0, #0x0 pop {r3-r7, pc} _020698A4: add r3, r2, #0x0 and r3, r0 cmp r6, r3 bne _0206988A _020698AC: cmp r6, r3 bne _020698CC ldr r0, _020698DC ; =0x000001FF add r1, r2, #0x0 and r1, r0 ldr r0, [sp, #0x0] strh r1, [r0, #0x0] ldr r0, [r5, #0x0] ldr r1, [sp, #0x0] add r0, r0, #0x1 str r0, [r5, #0x0] ldrh r1, [r1, #0x0] add r0, r7, #0x0 bl FUN_02069698 str r0, [sp, #0x8] _020698CC: add r0, r4, #0x0 bl FUN_02016A18 ldr r0, [sp, #0x8] add sp, #0x10 pop {r3-r7, pc} .balign 4 _020698D8: .word 0x0000FFFF _020698DC: .word 0x000001FF thumb_func_start FUN_020698E0 FUN_020698E0: ; 0x020698E0 ldr r3, _020698E4 ; =FUN_020698E8 bx r3 .balign 4 _020698E4: .word FUN_020698E8 thumb_func_start FUN_020698E8 FUN_020698E8: ; 0x020698E8 push {r4-r6, lr} sub sp, #0x8 add r4, r1, #0x0 add r6, r2, #0x0 add r1, #0x36 mov r2, #0x0 add r5, r0, #0x0 bl FUN_020672BC add r1, sp, #0x0 strh r0, [r1, #0x4] add r1, r4, #0x0 add r0, r5, #0x0 add r1, #0x3a mov r2, #0x0 bl FUN_020672BC add r1, sp, #0x0 strb r0, [r1, #0x2] add r1, r4, #0x0 add r0, r5, #0x0 add r1, #0x3e mov r2, #0x0 bl FUN_020672BC add r1, sp, #0x0 strb r0, [r1, #0x0] add r1, r6, #0x0 add r0, r5, #0x0 add r1, #0x36 mov r2, #0x0 bl FUN_020672BC add r1, sp, #0x0 strh r0, [r1, #0x6] add r1, r6, #0x0 add r0, r5, #0x0 add r1, #0x3a mov r2, #0x0 bl FUN_020672BC add r1, sp, #0x0 strb r0, [r1, #0x3] add r1, r6, #0x0 add r0, r5, #0x0 add r1, #0x3e mov r2, #0x0 bl FUN_020672BC add r1, sp, #0x0 strb r0, [r1, #0x1] add r1, r4, #0x0 add r2, sp, #0x4 add r0, r5, #0x0 add r1, #0x36 add r2, #0x2 bl FUN_02067960 add r1, r4, #0x0 add r2, sp, #0x0 add r0, r5, #0x0 add r1, #0x3a add r2, #0x3 bl FUN_02067960 add r4, #0x3e add r2, sp, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 add r2, #0x1 bl FUN_02067960 add r1, r6, #0x0 add r0, r5, #0x0 add r1, #0x36 add r2, sp, #0x4 bl FUN_02067960 add r1, r6, #0x0 add r2, sp, #0x0 add r0, r5, #0x0 add r1, #0x3a add r2, #0x2 bl FUN_02067960 add r6, #0x3e add r0, r5, #0x0 add r1, r6, #0x0 add r2, sp, #0x0 bl FUN_02067960 add sp, #0x8 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_020699A4 FUN_020699A4: ; 0x020699A4 push {r3-r7, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x3 bhs _02069A0A mov r7, #0x0 add r6, sp, #0x0 _020699B2: add r1, r4, #0x0 add r0, r5, #0x0 add r1, #0x37 add r2, r7, #0x0 bl FUN_020671BC add r1, r4, #0x0 strh r0, [r6, #0x2] add r0, r5, #0x0 add r1, #0x3b mov r2, #0x0 bl FUN_020671BC add r1, r4, #0x0 strb r0, [r6, #0x1] add r0, r5, #0x0 add r1, #0x3f mov r2, #0x0 bl FUN_020671BC add r1, r4, #0x0 add r2, sp, #0x0 strb r0, [r6, #0x0] add r0, r5, #0x0 add r1, #0x36 add r2, #0x2 bl FUN_02067830 add r1, r4, #0x0 add r2, sp, #0x0 add r0, r5, #0x0 add r1, #0x3a add r2, #0x1 bl FUN_02067830 add r1, r4, #0x0 add r0, r5, #0x0 add r1, #0x3e add r2, sp, #0x0 bl FUN_02067830 add r4, r4, #0x1 cmp r4, #0x3 blo _020699B2 _02069A0A: mov r1, #0x0 add r0, sp, #0x0 strh r1, [r0, #0x2] strb r1, [r0, #0x1] strb r1, [r0, #0x0] add r2, sp, #0x0 add r0, r5, #0x0 mov r1, #0x39 add r2, #0x2 bl FUN_02067830 add r2, sp, #0x0 add r0, r5, #0x0 mov r1, #0x3d add r2, #0x1 bl FUN_02067830 add r0, r5, #0x0 mov r1, #0x41 add r2, sp, #0x0 bl FUN_02067830 pop {r3-r7, pc} thumb_func_start FUN_02069A38 FUN_02069A38: ; 0x02069A38 push {r3-r7, lr} mov r4, #0x0 add r6, r0, #0x0 add r5, r1, #0x0 add r7, r4, #0x0 _02069A42: add r1, r4, #0x0 add r0, r6, #0x0 add r1, #0x36 add r2, r7, #0x0 bl FUN_020671BC cmp r5, r0 beq _02069A58 add r4, r4, #0x1 cmp r4, #0x4 blt _02069A42 _02069A58: cmp r4, #0x4 beq _02069A60 mov r0, #0x1 pop {r3-r7, pc} _02069A60: mov r0, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02069A64 FUN_02069A64: ; 0x02069A64 push {r4-r5, lr} sub sp, #0x1c add r5, r0, #0x0 add r4, r1, #0x0 mov r0, #0x0 str r0, [sp, #0x0] add r3, r4, #0x0 mov r2, #0x11 _02069A74: ldmia r5!, {r0-r1} stmia r3!, {r0-r1} sub r2, r2, #0x1 bne _02069A74 ldrh r1, [r4, #0x4] lsl r0, r1, #0x1e lsr r0, r0, #0x1f beq _02069A8E mov r0, #0x1 bic r1, r0 mov r0, #0x1 orr r0, r1 strh r0, [r4, #0x4] _02069A8E: add r0, r4, #0x0 mov r1, #0x9f add r2, sp, #0x0 bl FUN_02067830 add r0, r4, #0x0 mov r1, #0xa2 add r2, sp, #0x0 bl FUN_02067830 add r0, r4, #0x0 mov r1, #0xa3 add r2, sp, #0x0 bl FUN_02067830 mov r0, #0x0 bl FUN_020256BC add r5, r0, #0x0 add r0, r4, #0x0 mov r1, #0xa9 add r2, r5, #0x0 bl FUN_02067830 add r0, r5, #0x0 bl FUN_02016A18 add r0, r4, #0x0 mov r1, #0xa1 add r2, sp, #0x0 bl FUN_02067830 mov r0, #0x0 add r1, sp, #0x4 mov r2, #0x18 blx MIi_CpuClearFast add r0, r4, #0x0 mov r1, #0xaa add r2, sp, #0x4 bl FUN_02067830 add r0, r4, #0x0 bl FUN_02066ED8 add sp, #0x1c pop {r4-r5, pc} thumb_func_start FUN_02069AEC FUN_02069AEC: ; 0x02069AEC push {r3-r7, lr} str r0, [sp, #0x0] bl FUN_0206B9AC add r7, r0, #0x0 mov r6, #0x1 mov r5, #0x0 cmp r7, #0x0 ble _02069B3C _02069AFE: ldr r0, [sp, #0x0] add r1, r5, #0x0 bl FUN_0206B9B0 mov r1, #0x5 mov r2, #0x0 add r4, r0, #0x0 bl FUN_020671BC cmp r0, #0x0 beq _02069B36 add r0, r4, #0x0 mov r1, #0x4c mov r2, #0x0 bl FUN_020671BC cmp r0, #0x0 bne _02069B36 add r0, r4, #0x0 mov r1, #0xa0 mov r2, #0x0 bl FUN_020671BC lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r0, r6 bls _02069B36 add r6, r0, #0x0 _02069B36: add r5, r5, #0x1 cmp r5, r7 blt _02069AFE _02069B3C: add r0, r6, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02069B40 FUN_02069B40: ; 0x02069B40 push {r3, lr} sub sp, #0x8 add r3, r0, #0x0 mov r0, #0x2 str r0, [sp, #0x0] add r0, sp, #0x4 mov r1, #0x6d mov r2, #0x0 lsl r3, r3, #0x1 bl FUN_02006548 add r0, sp, #0x4 ldrh r0, [r0, #0x0] add sp, #0x8 pop {r3, pc} .balign 4 thumb_func_start FUN_02069B60 FUN_02069B60: ; 0x02069B60 push {r3, lr} sub sp, #0x8 add r3, r0, #0x0 mov r2, #0x0 add r0, sp, #0x4 strh r2, [r0, #0x0] cmp r3, #0x97 bhi _02069B7E mov r0, #0x2 str r0, [sp, #0x0] add r0, sp, #0x4 mov r1, #0x91 lsl r3, r3, #0x1 bl FUN_02006548 _02069B7E: add r0, sp, #0x4 ldrh r0, [r0, #0x0] add sp, #0x8 pop {r3, pc} .balign 4 thumb_func_start FUN_02069B88 FUN_02069B88: ; 0x02069B88 push {r3-r4} add r4, r0, #0x0 add r3, r1, #0x0 mov r2, #0x1d _02069B90: ldmia r4!, {r0-r1} stmia r3!, {r0-r1} sub r2, r2, #0x1 bne _02069B90 ldr r0, [r4, #0x0] str r0, [r3, #0x0] pop {r3-r4} bx lr thumb_func_start FUN_02069BA0 FUN_02069BA0: ; 0x02069BA0 push {r3-r4} add r4, r0, #0x0 add r3, r1, #0x0 mov r2, #0x11 _02069BA8: ldmia r4!, {r0-r1} stmia r3!, {r0-r1} sub r2, r2, #0x1 bne _02069BA8 pop {r3-r4} bx lr thumb_func_start FUN_02069BB4 FUN_02069BB4: ; 0x02069BB4 push {r3-r4} add r4, r0, #0x0 add r3, r1, #0x0 mov r2, #0x11 _02069BBC: ldmia r4!, {r0-r1} stmia r3!, {r0-r1} sub r2, r2, #0x1 bne _02069BBC pop {r3-r4} bx lr thumb_func_start FUN_02069BC8 FUN_02069BC8: ; 0x02069BC8 ldr r3, _02069BCC ; =FUN_02069BD0 bx r3 .balign 4 _02069BCC: .word FUN_02069BD0 thumb_func_start FUN_02069BD0 FUN_02069BD0: ; 0x02069BD0 push {r4, lr} add r4, r1, #0x0 mov r1, #0x0 add r2, r1, #0x0 bl FUN_020672BC add r1, r4, #0x0 bl FUN_02069BE4 pop {r4, pc} thumb_func_start FUN_02069BE4 FUN_02069BE4: ; 0x02069BE4 push {r4, lr} add r4, r1, #0x0 bl FUN_02068884 lsl r1, r0, #0x2 add r1, r0, r1 ldr r0, _02069BF8 ; =0x020F7F16 add r0, r0, r1 ldrsb r0, [r4, r0] pop {r4, pc} .balign 4 _02069BF8: .word 0x020F7F16 thumb_func_start FUN_02069BFC FUN_02069BFC: ; 0x02069BFC push {r3-r7, lr} add r4, r0, #0x0 add r7, r1, #0x0 mov r0, #0x0 mov r1, #0x2c add r5, r2, #0x0 bl FUN_02016998 add r6, r0, #0x0 add r0, r4, #0x0 add r1, r7, #0x0 add r2, r6, #0x0 bl FUN_02069F9C ldrh r1, [r6, #0x0] ldr r0, _02069C44 ; =0x0000FFFF mov r4, #0x0 cmp r1, r0 beq _02069C3A ldr r1, _02069C48 ; =0x000001FF ldr r2, _02069C44 ; =0x0000FFFF add r0, r6, #0x0 _02069C28: ldrh r3, [r0, #0x0] add r0, r0, #0x2 add r4, r4, #0x1 and r3, r1 strh r3, [r5, #0x0] ldrh r3, [r0, #0x0] add r5, r5, #0x2 cmp r3, r2 bne _02069C28 _02069C3A: add r0, r6, #0x0 bl FUN_02016A18 add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 _02069C44: .word 0x0000FFFF _02069C48: .word 0x000001FF thumb_func_start FUN_02069C4C FUN_02069C4C: ; 0x02069C4C push {r3-r7, lr} add r5, r0, #0x0 bl FUN_0206B9AC add r6, r0, #0x0 bl FUN_0201B9EC mov r1, #0x1 lsl r1, r1, #0xe cmp r0, r1 beq _02069C70 lsl r1, r1, #0x1 cmp r0, r1 beq _02069C70 mov r1, #0x3 lsl r1, r1, #0xe cmp r0, r1 bne _02069CF2 _02069C70: bl FUN_0201B9EC add r1, r6, #0x0 blx _s32_div_f add r0, r5, #0x0 add r7, r1, #0x0 bl FUN_0206B9B0 mov r1, #0x5 mov r2, #0x0 add r4, r0, #0x0 bl FUN_020671BC cmp r0, #0x0 beq _02069C70 add r0, r4, #0x0 mov r1, #0x4c mov r2, #0x0 bl FUN_020671BC cmp r0, #0x0 bne _02069C70 add r0, r7, #0x0 bl FUN_0206A92C add r1, r0, #0x0 lsl r1, r1, #0x18 add r0, r5, #0x0 lsr r1, r1, #0x18 bl FUN_02069CF4 cmp r0, #0x0 bne _02069CF2 add r5, sp, #0x0 mov r6, #0x7 _02069CB8: bl FUN_0201B9EC strb r0, [r5, #0x0] ldrb r2, [r5, #0x0] add r1, r2, #0x0 and r1, r6 beq _02069CB8 mov r0, #0xf0 tst r0, r2 beq _02069CD0 add r0, sp, #0x0 strb r1, [r0, #0x0] _02069CD0: add r1, sp, #0x0 ldrb r2, [r1, #0x0] lsl r0, r2, #0x4 orr r0, r2 strb r0, [r1, #0x0] ldrb r2, [r1, #0x0] mov r0, #0xf3 and r0, r2 strb r0, [r1, #0x0] ldrb r0, [r1, #0x0] add r2, sp, #0x0 add r0, r0, #0x1 strb r0, [r1, #0x0] add r0, r4, #0x0 mov r1, #0x99 bl FUN_02067830 _02069CF2: pop {r3-r7, pc} thumb_func_start FUN_02069CF4 FUN_02069CF4: ; 0x02069CF4 push {r3-r7, lr} mov r6, #0x0 add r5, r1, #0x0 str r0, [sp, #0x0] mov r4, #0x1 add r7, r6, #0x0 cmp r5, #0x0 beq _02069D32 _02069D04: mov r0, #0x1 tst r0, r5 beq _02069D26 ldr r0, [sp, #0x0] add r1, r6, #0x0 bl FUN_0206B9B0 mov r1, #0x99 mov r2, #0x0 bl FUN_020671BC cmp r0, #0x0 beq _02069D26 add r0, r7, #0x0 orr r0, r4 lsl r0, r0, #0x18 lsr r7, r0, #0x18 _02069D26: lsl r0, r5, #0x17 add r6, r6, #0x1 lsl r4, r4, #0x1 lsr r5, r0, #0x18 bne _02069D04 b _02069D4A _02069D32: add r1, r6, #0x0 bl FUN_0206B9B0 mov r1, #0x99 add r2, r6, #0x0 bl FUN_020671BC cmp r0, #0x0 beq _02069D4A add r0, r7, #0x1 lsl r0, r0, #0x18 lsr r7, r0, #0x18 _02069D4A: add r0, r7, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02069D50 FUN_02069D50: ; 0x02069D50 push {r4-r7, lr} sub sp, #0xc str r0, [sp, #0x0] add r5, r1, #0x0 bl FUN_0206B9AC mov r6, #0x0 str r0, [sp, #0x4] cmp r0, #0x0 ble _02069DC2 add r4, sp, #0x8 _02069D66: ldr r0, [sp, #0x0] add r1, r6, #0x0 bl FUN_0206B9B0 mov r1, #0x5 mov r2, #0x0 add r7, r0, #0x0 bl FUN_020671BC cmp r0, #0x0 beq _02069DBA add r0, r7, #0x0 mov r1, #0x99 mov r2, #0x0 bl FUN_020671BC strb r0, [r4, #0x0] ldrb r1, [r4, #0x0] mov r0, #0xf and r0, r1 beq _02069DBA cmp r0, r5 blt _02069D98 cmp r5, #0x4 ble _02069DA2 _02069D98: ldrb r1, [r4, #0x0] mov r0, #0xf0 and r0, r1 strb r0, [r4, #0x0] b _02069DA6 _02069DA2: sub r0, r1, r5 strb r0, [r4, #0x0] _02069DA6: ldrb r0, [r4, #0x0] cmp r0, #0x0 bne _02069DB0 mov r0, #0x10 strb r0, [r4, #0x0] _02069DB0: add r0, r7, #0x0 mov r1, #0x99 add r2, sp, #0x8 bl FUN_02067830 _02069DBA: ldr r0, [sp, #0x4] add r6, r6, #0x1 cmp r6, r0 blt _02069D66 _02069DC2: add sp, #0xc pop {r4-r7, pc} .balign 4 thumb_func_start FUN_02069DC8 FUN_02069DC8: ; 0x02069DC8 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 bl FUN_0206B9AC add r7, r0, #0x0 bl FUN_0201B9EC mov r1, #0x3 blx _s32_div_f cmp r1, #0x0 bne _02069E70 mov r4, #0x0 cmp r7, #0x0 ble _02069E70 sub r0, r7, #0x1 str r0, [sp, #0x0] _02069DEC: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0206B9B0 mov r1, #0x5 mov r2, #0x0 add r6, r0, #0x0 bl FUN_020671BC cmp r0, #0x0 beq _02069E6A add r0, r6, #0x0 mov r1, #0x99 mov r2, #0x0 bl FUN_020671BC add r1, sp, #0x4 strb r0, [r1, #0x0] add r0, r1, #0x0 ldrb r1, [r0, #0x0] mov r0, #0xf tst r0, r1 beq _02069E6A cmp r4, #0x0 beq _02069E40 add r0, r5, #0x0 sub r1, r4, #0x1 bl FUN_0206B9B0 mov r1, #0x99 mov r2, #0x0 add r6, r0, #0x0 bl FUN_020671BC mov r1, #0xf0 tst r0, r1 bne _02069E40 add r0, r6, #0x0 mov r1, #0x99 add r2, sp, #0x4 bl FUN_02067830 _02069E40: ldr r0, [sp, #0x0] cmp r4, r0 bge _02069E6A add r0, r5, #0x0 add r1, r4, #0x1 bl FUN_0206B9B0 mov r1, #0x99 mov r2, #0x0 add r6, r0, #0x0 bl FUN_020671BC mov r1, #0xf0 tst r0, r1 bne _02069E6A add r0, r6, #0x0 mov r1, #0x99 add r2, sp, #0x4 bl FUN_02067830 add r4, r4, #0x1 _02069E6A: add r4, r4, #0x1 cmp r4, r7 blt _02069DEC _02069E70: add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_02069E74 FUN_02069E74: ; 0x02069E74 ldr r3, _02069E78 ; =FUN_02069E7C bx r3 .balign 4 _02069E78: .word FUN_02069E7C thumb_func_start FUN_02069E7C FUN_02069E7C: ; 0x02069E7C push {r3, lr} mov r1, #0x99 mov r2, #0x0 bl FUN_020672BC mov r1, #0xf tst r0, r1 beq _02069E90 mov r0, #0x1 pop {r3, pc} _02069E90: mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_02069E94 FUN_02069E94: ; 0x02069E94 ldr r3, _02069E98 ; =FUN_02069E9C bx r3 .balign 4 _02069E98: .word FUN_02069E9C thumb_func_start FUN_02069E9C FUN_02069E9C: ; 0x02069E9C push {r3, lr} mov r1, #0x99 mov r2, #0x0 bl FUN_020672BC lsl r0, r0, #0x18 lsr r1, r0, #0x18 mov r0, #0xf tst r0, r1 beq _02069EB4 mov r0, #0x0 pop {r3, pc} _02069EB4: mov r0, #0xf0 tst r0, r1 beq _02069EBE mov r0, #0x1 pop {r3, pc} _02069EBE: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_02069EC4 FUN_02069EC4: ; 0x02069EC4 ldr r3, _02069EC8 ; =FUN_02069ECC bx r3 .balign 4 _02069EC8: .word FUN_02069ECC thumb_func_start FUN_02069ECC FUN_02069ECC: ; 0x02069ECC push {r3-r6, lr} sub sp, #0x4 add r5, r0, #0x0 mov r1, #0x5 mov r2, #0x0 bl FUN_020672BC add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0xa mov r2, #0x0 bl FUN_020672BC add r6, r0, #0x0 add r0, r5, #0x0 mov r1, #0x6 mov r2, #0x0 bl FUN_020672BC ldr r1, _02069F20 ; =0x000001ED cmp r4, r1 bne _02069F1C cmp r6, #0x79 bne _02069F1C lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r1, #0x1 mov r2, #0x0 bl FUN_0206E7B8 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_02069F24 str r0, [sp, #0x0] add r0, r5, #0x0 mov r1, #0x70 add r2, sp, #0x0 bl FUN_02067960 _02069F1C: add sp, #0x4 pop {r3-r6, pc} .balign 4 _02069F20: .word 0x000001ED thumb_func_start FUN_02069F24 FUN_02069F24: ; 0x02069F24 sub r0, #0x7d cmp r0, #0xf bhi _02069F96 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02069F36: ; jump table (using 16-bit offset) .short _02069F56 - _02069F36 - 2; case 0 .short _02069F5A - _02069F36 - 2; case 1 .short _02069F5E - _02069F36 - 2; case 2 .short _02069F62 - _02069F36 - 2; case 3 .short _02069F66 - _02069F36 - 2; case 4 .short _02069F6A - _02069F36 - 2; case 5 .short _02069F6E - _02069F36 - 2; case 6 .short _02069F72 - _02069F36 - 2; case 7 .short _02069F76 - _02069F36 - 2; case 8 .short _02069F7A - _02069F36 - 2; case 9 .short _02069F7E - _02069F36 - 2; case 10 .short _02069F82 - _02069F36 - 2; case 11 .short _02069F86 - _02069F36 - 2; case 12 .short _02069F8A - _02069F36 - 2; case 13 .short _02069F8E - _02069F36 - 2; case 14 .short _02069F92 - _02069F36 - 2; case 15 _02069F56: mov r0, #0xa bx lr _02069F5A: mov r0, #0xb bx lr _02069F5E: mov r0, #0xd bx lr _02069F62: mov r0, #0xc bx lr _02069F66: mov r0, #0xf bx lr _02069F6A: mov r0, #0x1 bx lr _02069F6E: mov r0, #0x3 bx lr _02069F72: mov r0, #0x4 bx lr _02069F76: mov r0, #0x2 bx lr _02069F7A: mov r0, #0xe bx lr _02069F7E: mov r0, #0x6 bx lr _02069F82: mov r0, #0x5 bx lr _02069F86: mov r0, #0x7 bx lr _02069F8A: mov r0, #0x10 bx lr _02069F8E: mov r0, #0x11 bx lr _02069F92: mov r0, #0x8 bx lr _02069F96: mov r0, #0x0 bx lr .balign 4 thumb_func_start FUN_02069F9C FUN_02069F9C: ; 0x02069F9C push {r4, lr} add r4, r2, #0x0 bl FUN_0206A8FC add r2, r0, #0x0 add r0, r4, #0x0 mov r1, #0x21 bl FUN_020064F0 pop {r4, pc} thumb_func_start FUN_02069FB0 FUN_02069FB0: ; 0x02069FB0 push {r3-r7, lr} add r7, r0, #0x0 ldr r0, _0206A010 ; =0x000001B9 add r4, r2, #0x0 add r5, r1, #0x0 add r6, r3, #0x0 cmp r4, r0 bne _02069FFC add r0, r5, #0x0 bl FUN_02005F14 cmp r0, #0x0 bne _02069FE2 mov r0, #0x1 bl FUN_02005E80 ldr r0, [sp, #0x20] ldr r3, [sp, #0x18] str r0, [sp, #0x0] add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_020056AC pop {r3-r7, pc} _02069FE2: ldr r0, [sp, #0x1c] cmp r0, #0x0 beq _02069FEE mov r0, #0x1 bl FUN_02005E80 _02069FEE: ldr r2, [sp, #0x18] add r0, r7, #0x0 mov r1, #0x0 add r3, r6, #0x0 bl FUN_02005E90 pop {r3-r7, pc} _02069FFC: ldr r0, [sp, #0x20] ldr r3, [sp, #0x18] str r0, [sp, #0x0] add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_020056AC pop {r3-r7, pc} nop _0206A010: .word 0x000001B9 thumb_func_start FUN_0206A014 FUN_0206A014: ; 0x0206A014 push {r3-r6, lr} sub sp, #0xc ldr r6, [sp, #0x20] add r5, r0, #0x0 str r6, [sp, #0x0] ldr r6, [sp, #0x24] add r4, r2, #0x0 str r6, [sp, #0x4] bl FUN_0206A054 cmp r4, #0xe bne _0206A050 add r0, r5, #0x0 mov r1, #0xa3 mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0x8] add r0, r5, #0x0 mov r1, #0xa2 add r2, sp, #0x8 bl FUN_02067830 mov r0, #0x0 str r0, [sp, #0x8] add r0, r5, #0x0 mov r1, #0x9f add r2, sp, #0x8 bl FUN_02067830 _0206A050: add sp, #0xc pop {r3-r6, pc} thumb_func_start FUN_0206A054 FUN_0206A054: ; 0x0206A054 push {r0-r3} push {r3-r4, lr} sub sp, #0x4 ldr r2, [sp, #0x24] add r4, r0, #0x0 str r2, [sp, #0x0] mov r2, #0x0 bl FUN_020808AC ldr r2, _0206A090 ; =0x020ECAC0 add r0, r4, #0x0 mov r1, #0x79 bl FUN_02067960 add r0, r4, #0x0 mov r1, #0x9a add r2, sp, #0x18 bl FUN_02067960 add r0, r4, #0x0 mov r1, #0x9d add r2, sp, #0x20 bl FUN_02067960 add sp, #0x4 pop {r3-r4} pop {r3} add sp, #0x10 bx r3 nop _0206A090: .word 0x020ECAC0 thumb_func_start FUN_0206A094 FUN_0206A094: ; 0x0206A094 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 mov r0, #0x81 add r7, r2, #0x0 tst r0, r1 bne _0206A12E bl FUN_0201B9EC mov r1, #0x64 blx _s32_div_f add r4, r1, #0x0 add r0, r5, #0x0 mov r1, #0x5 mov r2, #0x0 bl FUN_020671BC lsl r0, r0, #0x10 lsr r6, r0, #0x10 add r0, r5, #0x0 mov r1, #0x70 mov r2, #0x0 bl FUN_020671BC lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x0] ldr r1, [sp, #0x0] add r0, r6, #0x0 mov r2, #0x10 bl FUN_02068654 add r1, sp, #0x4 strh r0, [r1, #0x2] ldr r1, [sp, #0x0] add r0, r6, #0x0 mov r2, #0x11 bl FUN_02068654 add r1, sp, #0x4 strh r0, [r1, #0x0] ldrh r2, [r1, #0x2] ldrh r0, [r1, #0x0] cmp r2, r0 bne _0206A104 cmp r2, #0x0 beq _0206A104 add r2, sp, #0x4 add r0, r5, #0x0 mov r1, #0x6 add r2, #0x2 bl FUN_02067830 add sp, #0x8 pop {r3-r7, pc} _0206A104: ldr r0, _0206A134 ; =0x020F7ECC lsl r1, r7, #0x2 ldrh r0, [r0, r1] cmp r4, r0 blo _0206A12E ldr r0, _0206A138 ; =0x020F7ECE ldrh r0, [r0, r1] cmp r4, r0 add r2, sp, #0x4 bhs _0206A126 add r0, r5, #0x0 mov r1, #0x6 add r2, #0x2 bl FUN_02067830 add sp, #0x8 pop {r3-r7, pc} _0206A126: add r0, r5, #0x0 mov r1, #0x6 bl FUN_02067830 _0206A12E: add sp, #0x8 pop {r3-r7, pc} nop _0206A134: .word 0x020F7ECC _0206A138: .word 0x020F7ECE thumb_func_start FUN_0206A13C FUN_0206A13C: ; 0x0206A13C ldr r3, _0206A140 ; =FUN_0206A144 bx r3 .balign 4 _0206A140: .word FUN_0206A144 thumb_func_start FUN_0206A144 FUN_0206A144: ; 0x0206A144 push {r4-r6, lr} add r6, r1, #0x0 mov r1, #0xad mov r2, #0x0 add r5, r0, #0x0 bl FUN_020672BC lsl r0, r0, #0x10 lsr r4, r0, #0x10 add r0, r5, #0x0 mov r1, #0x70 mov r2, #0x0 bl FUN_020672BC add r1, r0, #0x0 add r0, r4, #0x0 add r2, r6, #0x0 bl FUN_0206A16C pop {r4-r6, pc} thumb_func_start FUN_0206A16C FUN_0206A16C: ; 0x0206A16C push {r4, lr} ldr r3, _0206A1C0 ; =0x000001EE cmp r0, r3 bne _0206A178 mov r0, #0x0 pop {r4, pc} _0206A178: cmp r2, #0x20 bhs _0206A186 mov r3, #0x1 add r4, r3, #0x0 lsl r4, r2 mov r2, #0x1d b _0206A1B0 _0206A186: cmp r2, #0x40 bhs _0206A196 mov r3, #0x1 sub r2, #0x20 add r4, r3, #0x0 lsl r4, r2 mov r2, #0x1e b _0206A1B0 _0206A196: cmp r2, #0x60 bhs _0206A1A6 mov r3, #0x1 sub r2, #0x40 add r4, r3, #0x0 lsl r4, r2 mov r2, #0x1f b _0206A1B0 _0206A1A6: mov r3, #0x1 sub r2, #0x60 add r4, r3, #0x0 lsl r4, r2 mov r2, #0x20 _0206A1B0: bl FUN_02068654 tst r0, r4 beq _0206A1BC mov r0, #0x1 pop {r4, pc} _0206A1BC: mov r0, #0x0 pop {r4, pc} .balign 4 _0206A1C0: .word 0x000001EE thumb_func_start FUN_0206A1C4 FUN_0206A1C4: ; 0x0206A1C4 ldr r3, _0206A1C8 ; =FUN_0206A1CC bx r3 .balign 4 _0206A1C8: .word FUN_0206A1CC thumb_func_start FUN_0206A1CC FUN_0206A1CC: ; 0x0206A1CC push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 bl FUN_02066A6C add r7, r0, #0x0 add r0, r5, #0x0 mov r1, #0x5 mov r2, #0x0 bl FUN_020672BC mov r1, #0x0 add r4, r0, #0x0 add r0, r5, #0x0 add r2, r1, #0x0 bl FUN_020672BC add r6, r0, #0x0 add r0, r4, #0x0 mov r1, #0x18 bl FUN_02068678 str r0, [sp, #0x4] add r0, r4, #0x0 mov r1, #0x19 bl FUN_02068678 str r0, [sp, #0x0] cmp r0, #0x0 beq _0206A226 mov r0, #0x1 tst r0, r6 beq _0206A21A add r0, r5, #0x0 mov r1, #0xa add r2, sp, #0x0 bl FUN_02067960 b _0206A230 _0206A21A: add r0, r5, #0x0 mov r1, #0xa add r2, sp, #0x4 bl FUN_02067960 b _0206A230 _0206A226: add r0, r5, #0x0 mov r1, #0xa add r2, sp, #0x4 bl FUN_02067960 _0206A230: add r0, r5, #0x0 add r1, r7, #0x0 bl FUN_02066A94 add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_0206A23C FUN_0206A23C: ; 0x0206A23C push {r4-r7, lr} sub sp, #0x1c add r5, r0, #0x0 mov r0, #0x0 str r1, [sp, #0x0] bl FUN_020669C0 str r0, [sp, #0x4] ldr r1, [sp, #0x4] add r0, r5, #0x0 bl FUN_02069B88 ldr r0, [sp, #0x4] ldr r1, [r5, #0x0] mov r2, #0x0 bl FUN_0206A418 add r4, r0, #0x0 ldr r0, [sp, #0x4] ldr r1, [r5, #0x0] mov r2, #0x1 bl FUN_0206A418 add r6, r0, #0x0 ldr r0, [sp, #0x4] ldr r1, [r5, #0x0] mov r2, #0x2 bl FUN_0206A418 add r7, r0, #0x0 ldr r0, [sp, #0x4] ldr r1, [r5, #0x0] mov r2, #0x3 bl FUN_0206A418 str r0, [sp, #0x8] ldr r1, [sp, #0x0] add r0, r5, #0x0 mov r2, #0x0 bl FUN_0206A418 str r0, [sp, #0xc] ldr r1, [sp, #0x0] add r0, r5, #0x0 mov r2, #0x1 bl FUN_0206A418 str r0, [sp, #0x10] ldr r1, [sp, #0x0] add r0, r5, #0x0 mov r2, #0x2 bl FUN_0206A418 str r0, [sp, #0x14] ldr r1, [sp, #0x0] add r0, r5, #0x0 mov r2, #0x3 bl FUN_0206A418 ldr r2, [sp, #0x4] str r0, [sp, #0x18] ldr r0, [sp, #0x4] ldrh r2, [r2, #0x6] add r0, #0x8 mov r1, #0x80 bl FUN_0206A3D0 add r0, r5, #0x0 ldr r2, [r5, #0x0] add r0, #0x88 mov r1, #0x64 bl FUN_0206A3D0 add r0, r5, #0x0 ldrh r2, [r5, #0x6] add r0, #0x8 mov r1, #0x80 bl FUN_0206A3D0 ldr r0, [sp, #0x0] str r0, [r5, #0x0] ldr r2, [sp, #0xc] ldmia r4!, {r0-r1} stmia r2!, {r0-r1} str r2, [sp, #0xc] ldmia r4!, {r0-r1} stmia r2!, {r0-r1} str r2, [sp, #0xc] ldmia r4!, {r0-r1} stmia r2!, {r0-r1} str r2, [sp, #0xc] ldmia r4!, {r0-r1} stmia r2!, {r0-r1} str r2, [sp, #0xc] ldr r2, [sp, #0x10] ldmia r6!, {r0-r1} stmia r2!, {r0-r1} str r2, [sp, #0x10] ldmia r6!, {r0-r1} stmia r2!, {r0-r1} str r2, [sp, #0x10] ldmia r6!, {r0-r1} stmia r2!, {r0-r1} str r2, [sp, #0x10] ldmia r6!, {r0-r1} stmia r2!, {r0-r1} str r2, [sp, #0x10] ldr r2, [sp, #0x14] ldmia r7!, {r0-r1} stmia r2!, {r0-r1} str r2, [sp, #0x14] ldmia r7!, {r0-r1} stmia r2!, {r0-r1} str r2, [sp, #0x14] ldmia r7!, {r0-r1} stmia r2!, {r0-r1} str r2, [sp, #0x14] ldmia r7!, {r0-r1} stmia r2!, {r0-r1} str r2, [sp, #0x14] mov r0, #0x10 _0206A32E: ldr r1, [sp, #0x8] ldrh r2, [r1, #0x0] add r1, r1, #0x2 str r1, [sp, #0x8] ldr r1, [sp, #0x18] strh r2, [r1, #0x0] add r1, r1, #0x2 str r1, [sp, #0x18] sub r0, r0, #0x1 bne _0206A32E add r0, r5, #0x0 add r0, #0x8 mov r1, #0x80 bl FUN_0206A3F8 strh r0, [r5, #0x6] add r0, r5, #0x0 ldrh r2, [r5, #0x6] add r0, #0x8 mov r1, #0x80 bl FUN_0206A3A4 add r0, r5, #0x0 ldr r2, [r5, #0x0] add r0, #0x88 mov r1, #0x64 bl FUN_0206A3A4 ldr r0, [sp, #0x4] bl FUN_02016A18 add sp, #0x1c pop {r4-r7, pc} thumb_func_start FUN_0206A370 FUN_0206A370: ; 0x0206A370 ldr r3, _0206A37C ; =FUN_020064F0 add r2, r0, #0x0 add r0, r1, #0x0 mov r1, #0x2 bx r3 nop _0206A37C: .word FUN_020064F0 thumb_func_start FUN_0206A380 FUN_0206A380: ; 0x0206A380 push {r4, lr} add r4, r2, #0x0 bl FUN_0206A8FC add r2, r0, #0x0 add r0, r4, #0x0 mov r1, #0x2 bl FUN_020064F0 pop {r4, pc} thumb_func_start FUN_0206A394 FUN_0206A394: ; 0x0206A394 ldr r3, _0206A3A0 ; =FUN_020064F0 add r2, r0, #0x0 add r0, r1, #0x0 mov r1, #0x22 bx r3 nop _0206A3A0: .word FUN_020064F0 thumb_func_start FUN_0206A3A4 FUN_0206A3A4: ; 0x0206A3A4 push {r0-r3} push {r3-r7, lr} add r5, r0, #0x0 mov r4, #0x0 lsr r6, r1, #0x1 beq _0206A3C6 add r7, sp, #0x20 _0206A3B2: add r0, r7, #0x0 bl FUN_0206A3D8 ldrh r1, [r5, #0x0] add r4, r4, #0x1 eor r0, r1 strh r0, [r5, #0x0] add r5, r5, #0x2 cmp r4, r6 blo _0206A3B2 _0206A3C6: pop {r3-r7} pop {r3} add sp, #0x10 bx r3 .balign 4 thumb_func_start FUN_0206A3D0 FUN_0206A3D0: ; 0x0206A3D0 ldr r3, _0206A3D4 ; =FUN_0206A3A4 bx r3 .balign 4 _0206A3D4: .word FUN_0206A3A4 thumb_func_start FUN_0206A3D8 FUN_0206A3D8: ; 0x0206A3D8 ldr r2, [r0, #0x0] ldr r1, _0206A3F0 ; =0x41C64E6D add r3, r2, #0x0 mul r3, r1 ldr r1, _0206A3F4 ; =0x00006073 add r1, r3, r1 str r1, [r0, #0x0] lsr r0, r1, #0x10 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bx lr nop _0206A3F0: .word 0x41C64E6D _0206A3F4: .word 0x00006073 thumb_func_start FUN_0206A3F8 FUN_0206A3F8: ; 0x0206A3F8 push {r3-r4} mov r3, #0x0 add r2, r3, #0x0 lsr r4, r1, #0x1 beq _0206A412 _0206A402: ldrh r1, [r0, #0x0] add r2, r2, #0x1 add r0, r0, #0x2 add r1, r3, r1 lsl r1, r1, #0x10 lsr r3, r1, #0x10 cmp r2, r4 blo _0206A402 _0206A412: add r0, r3, #0x0 pop {r3-r4} bx lr thumb_func_start FUN_0206A418 FUN_0206A418: ; 0x0206A418 push {r3, lr} mov r3, #0x3e lsl r3, r3, #0xc and r3, r1 lsr r3, r3, #0xd cmp r3, #0x1f bhi _0206A478 add r3, r3, r3 add r3, pc ldrh r3, [r3, #0x6] lsl r3, r3, #0x10 asr r3, r3, #0x10 add pc, r3 _0206A432: ; jump table (using 16-bit offset) .short _0206A472 - _0206A432 - 2; case 0 .short _0206A4A4 - _0206A432 - 2; case 1 .short _0206A4D4 - _0206A432 - 2; case 2 .short _0206A504 - _0206A432 - 2; case 3 .short _0206A534 - _0206A432 - 2; case 4 .short _0206A564 - _0206A432 - 2; case 5 .short _0206A594 - _0206A432 - 2; case 6 .short _0206A5C6 - _0206A432 - 2; case 7 .short _0206A5F6 - _0206A432 - 2; case 8 .short _0206A626 - _0206A432 - 2; case 9 .short _0206A656 - _0206A432 - 2; case 10 .short _0206A686 - _0206A432 - 2; case 11 .short _0206A6B6 - _0206A432 - 2; case 12 .short _0206A6E8 - _0206A432 - 2; case 13 .short _0206A718 - _0206A432 - 2; case 14 .short _0206A748 - _0206A432 - 2; case 15 .short _0206A778 - _0206A432 - 2; case 16 .short _0206A7A8 - _0206A432 - 2; case 17 .short _0206A7D8 - _0206A432 - 2; case 18 .short _0206A80A - _0206A432 - 2; case 19 .short _0206A83A - _0206A432 - 2; case 20 .short _0206A86A - _0206A432 - 2; case 21 .short _0206A89A - _0206A432 - 2; case 22 .short _0206A8CA - _0206A432 - 2; case 23 .short _0206A472 - _0206A432 - 2; case 24 .short _0206A4A4 - _0206A432 - 2; case 25 .short _0206A4D4 - _0206A432 - 2; case 26 .short _0206A504 - _0206A432 - 2; case 27 .short _0206A534 - _0206A432 - 2; case 28 .short _0206A564 - _0206A432 - 2; case 29 .short _0206A594 - _0206A432 - 2; case 30 .short _0206A5C6 - _0206A432 - 2; case 31 _0206A472: add r0, #0x8 cmp r2, #0x3 bls _0206A47A _0206A478: b _0206A8F8 _0206A47A: add r2, r2, r2 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _0206A486: ; jump table (using 16-bit offset) .short _0206A48E - _0206A486 - 2; case 0 .short _0206A492 - _0206A486 - 2; case 1 .short _0206A498 - _0206A486 - 2; case 2 .short _0206A49E - _0206A486 - 2; case 3 _0206A48E: add r1, r0, #0x0 b _0206A8F8 _0206A492: add r1, r0, #0x0 add r1, #0x20 b _0206A8F8 _0206A498: add r1, r0, #0x0 add r1, #0x40 b _0206A8F8 _0206A49E: add r1, r0, #0x0 add r1, #0x60 b _0206A8F8 _0206A4A4: add r0, #0x8 cmp r2, #0x3 bhi _0206A59A add r2, r2, r2 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _0206A4B6: ; jump table (using 16-bit offset) .short _0206A4BE - _0206A4B6 - 2; case 0 .short _0206A4C2 - _0206A4B6 - 2; case 1 .short _0206A4C8 - _0206A4B6 - 2; case 2 .short _0206A4CE - _0206A4B6 - 2; case 3 _0206A4BE: add r1, r0, #0x0 b _0206A8F8 _0206A4C2: add r1, r0, #0x0 add r1, #0x20 b _0206A8F8 _0206A4C8: add r1, r0, #0x0 add r1, #0x60 b _0206A8F8 _0206A4CE: add r1, r0, #0x0 add r1, #0x40 b _0206A8F8 _0206A4D4: add r0, #0x8 cmp r2, #0x3 bhi _0206A59A add r2, r2, r2 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _0206A4E6: ; jump table (using 16-bit offset) .short _0206A4EE - _0206A4E6 - 2; case 0 .short _0206A4F2 - _0206A4E6 - 2; case 1 .short _0206A4F8 - _0206A4E6 - 2; case 2 .short _0206A4FE - _0206A4E6 - 2; case 3 _0206A4EE: add r1, r0, #0x0 b _0206A8F8 _0206A4F2: add r1, r0, #0x0 add r1, #0x40 b _0206A8F8 _0206A4F8: add r1, r0, #0x0 add r1, #0x20 b _0206A8F8 _0206A4FE: add r1, r0, #0x0 add r1, #0x60 b _0206A8F8 _0206A504: add r0, #0x8 cmp r2, #0x3 bhi _0206A59A add r2, r2, r2 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _0206A516: ; jump table (using 16-bit offset) .short _0206A51E - _0206A516 - 2; case 0 .short _0206A522 - _0206A516 - 2; case 1 .short _0206A528 - _0206A516 - 2; case 2 .short _0206A52E - _0206A516 - 2; case 3 _0206A51E: add r1, r0, #0x0 b _0206A8F8 _0206A522: add r1, r0, #0x0 add r1, #0x60 b _0206A8F8 _0206A528: add r1, r0, #0x0 add r1, #0x20 b _0206A8F8 _0206A52E: add r1, r0, #0x0 add r1, #0x40 b _0206A8F8 _0206A534: add r0, #0x8 cmp r2, #0x3 bhi _0206A59A add r2, r2, r2 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _0206A546: ; jump table (using 16-bit offset) .short _0206A54E - _0206A546 - 2; case 0 .short _0206A552 - _0206A546 - 2; case 1 .short _0206A558 - _0206A546 - 2; case 2 .short _0206A55E - _0206A546 - 2; case 3 _0206A54E: add r1, r0, #0x0 b _0206A8F8 _0206A552: add r1, r0, #0x0 add r1, #0x40 b _0206A8F8 _0206A558: add r1, r0, #0x0 add r1, #0x60 b _0206A8F8 _0206A55E: add r1, r0, #0x0 add r1, #0x20 b _0206A8F8 _0206A564: add r0, #0x8 cmp r2, #0x3 bhi _0206A59A add r2, r2, r2 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _0206A576: ; jump table (using 16-bit offset) .short _0206A57E - _0206A576 - 2; case 0 .short _0206A582 - _0206A576 - 2; case 1 .short _0206A588 - _0206A576 - 2; case 2 .short _0206A58E - _0206A576 - 2; case 3 _0206A57E: add r1, r0, #0x0 b _0206A8F8 _0206A582: add r1, r0, #0x0 add r1, #0x60 b _0206A8F8 _0206A588: add r1, r0, #0x0 add r1, #0x40 b _0206A8F8 _0206A58E: add r1, r0, #0x0 add r1, #0x20 b _0206A8F8 _0206A594: add r0, #0x8 cmp r2, #0x3 bls _0206A59C _0206A59A: b _0206A8F8 _0206A59C: add r2, r2, r2 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _0206A5A8: ; jump table (using 16-bit offset) .short _0206A5B0 - _0206A5A8 - 2; case 0 .short _0206A5B6 - _0206A5A8 - 2; case 1 .short _0206A5BA - _0206A5A8 - 2; case 2 .short _0206A5C0 - _0206A5A8 - 2; case 3 _0206A5B0: add r1, r0, #0x0 add r1, #0x20 b _0206A8F8 _0206A5B6: add r1, r0, #0x0 b _0206A8F8 _0206A5BA: add r1, r0, #0x0 add r1, #0x40 b _0206A8F8 _0206A5C0: add r1, r0, #0x0 add r1, #0x60 b _0206A8F8 _0206A5C6: add r0, #0x8 cmp r2, #0x3 bhi _0206A6BC add r2, r2, r2 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _0206A5D8: ; jump table (using 16-bit offset) .short _0206A5E0 - _0206A5D8 - 2; case 0 .short _0206A5E6 - _0206A5D8 - 2; case 1 .short _0206A5EA - _0206A5D8 - 2; case 2 .short _0206A5F0 - _0206A5D8 - 2; case 3 _0206A5E0: add r1, r0, #0x0 add r1, #0x20 b _0206A8F8 _0206A5E6: add r1, r0, #0x0 b _0206A8F8 _0206A5EA: add r1, r0, #0x0 add r1, #0x60 b _0206A8F8 _0206A5F0: add r1, r0, #0x0 add r1, #0x40 b _0206A8F8 _0206A5F6: add r0, #0x8 cmp r2, #0x3 bhi _0206A6BC add r2, r2, r2 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _0206A608: ; jump table (using 16-bit offset) .short _0206A610 - _0206A608 - 2; case 0 .short _0206A616 - _0206A608 - 2; case 1 .short _0206A61A - _0206A608 - 2; case 2 .short _0206A620 - _0206A608 - 2; case 3 _0206A610: add r1, r0, #0x0 add r1, #0x40 b _0206A8F8 _0206A616: add r1, r0, #0x0 b _0206A8F8 _0206A61A: add r1, r0, #0x0 add r1, #0x20 b _0206A8F8 _0206A620: add r1, r0, #0x0 add r1, #0x60 b _0206A8F8 _0206A626: add r0, #0x8 cmp r2, #0x3 bhi _0206A6BC add r2, r2, r2 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _0206A638: ; jump table (using 16-bit offset) .short _0206A640 - _0206A638 - 2; case 0 .short _0206A646 - _0206A638 - 2; case 1 .short _0206A64A - _0206A638 - 2; case 2 .short _0206A650 - _0206A638 - 2; case 3 _0206A640: add r1, r0, #0x0 add r1, #0x60 b _0206A8F8 _0206A646: add r1, r0, #0x0 b _0206A8F8 _0206A64A: add r1, r0, #0x0 add r1, #0x20 b _0206A8F8 _0206A650: add r1, r0, #0x0 add r1, #0x40 b _0206A8F8 _0206A656: add r0, #0x8 cmp r2, #0x3 bhi _0206A6BC add r2, r2, r2 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _0206A668: ; jump table (using 16-bit offset) .short _0206A670 - _0206A668 - 2; case 0 .short _0206A676 - _0206A668 - 2; case 1 .short _0206A67A - _0206A668 - 2; case 2 .short _0206A680 - _0206A668 - 2; case 3 _0206A670: add r1, r0, #0x0 add r1, #0x40 b _0206A8F8 _0206A676: add r1, r0, #0x0 b _0206A8F8 _0206A67A: add r1, r0, #0x0 add r1, #0x60 b _0206A8F8 _0206A680: add r1, r0, #0x0 add r1, #0x20 b _0206A8F8 _0206A686: add r0, #0x8 cmp r2, #0x3 bhi _0206A6BC add r2, r2, r2 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _0206A698: ; jump table (using 16-bit offset) .short _0206A6A0 - _0206A698 - 2; case 0 .short _0206A6A6 - _0206A698 - 2; case 1 .short _0206A6AA - _0206A698 - 2; case 2 .short _0206A6B0 - _0206A698 - 2; case 3 _0206A6A0: add r1, r0, #0x0 add r1, #0x60 b _0206A8F8 _0206A6A6: add r1, r0, #0x0 b _0206A8F8 _0206A6AA: add r1, r0, #0x0 add r1, #0x40 b _0206A8F8 _0206A6B0: add r1, r0, #0x0 add r1, #0x20 b _0206A8F8 _0206A6B6: add r0, #0x8 cmp r2, #0x3 bls _0206A6BE _0206A6BC: b _0206A8F8 _0206A6BE: add r2, r2, r2 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _0206A6CA: ; jump table (using 16-bit offset) .short _0206A6D2 - _0206A6CA - 2; case 0 .short _0206A6D8 - _0206A6CA - 2; case 1 .short _0206A6DE - _0206A6CA - 2; case 2 .short _0206A6E2 - _0206A6CA - 2; case 3 _0206A6D2: add r1, r0, #0x0 add r1, #0x20 b _0206A8F8 _0206A6D8: add r1, r0, #0x0 add r1, #0x40 b _0206A8F8 _0206A6DE: add r1, r0, #0x0 b _0206A8F8 _0206A6E2: add r1, r0, #0x0 add r1, #0x60 b _0206A8F8 _0206A6E8: add r0, #0x8 cmp r2, #0x3 bhi _0206A7DE add r2, r2, r2 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _0206A6FA: ; jump table (using 16-bit offset) .short _0206A702 - _0206A6FA - 2; case 0 .short _0206A708 - _0206A6FA - 2; case 1 .short _0206A70E - _0206A6FA - 2; case 2 .short _0206A712 - _0206A6FA - 2; case 3 _0206A702: add r1, r0, #0x0 add r1, #0x20 b _0206A8F8 _0206A708: add r1, r0, #0x0 add r1, #0x60 b _0206A8F8 _0206A70E: add r1, r0, #0x0 b _0206A8F8 _0206A712: add r1, r0, #0x0 add r1, #0x40 b _0206A8F8 _0206A718: add r0, #0x8 cmp r2, #0x3 bhi _0206A7DE add r2, r2, r2 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _0206A72A: ; jump table (using 16-bit offset) .short _0206A732 - _0206A72A - 2; case 0 .short _0206A738 - _0206A72A - 2; case 1 .short _0206A73E - _0206A72A - 2; case 2 .short _0206A742 - _0206A72A - 2; case 3 _0206A732: add r1, r0, #0x0 add r1, #0x40 b _0206A8F8 _0206A738: add r1, r0, #0x0 add r1, #0x20 b _0206A8F8 _0206A73E: add r1, r0, #0x0 b _0206A8F8 _0206A742: add r1, r0, #0x0 add r1, #0x60 b _0206A8F8 _0206A748: add r0, #0x8 cmp r2, #0x3 bhi _0206A7DE add r2, r2, r2 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _0206A75A: ; jump table (using 16-bit offset) .short _0206A762 - _0206A75A - 2; case 0 .short _0206A768 - _0206A75A - 2; case 1 .short _0206A76E - _0206A75A - 2; case 2 .short _0206A772 - _0206A75A - 2; case 3 _0206A762: add r1, r0, #0x0 add r1, #0x60 b _0206A8F8 _0206A768: add r1, r0, #0x0 add r1, #0x20 b _0206A8F8 _0206A76E: add r1, r0, #0x0 b _0206A8F8 _0206A772: add r1, r0, #0x0 add r1, #0x40 b _0206A8F8 _0206A778: add r0, #0x8 cmp r2, #0x3 bhi _0206A7DE add r2, r2, r2 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _0206A78A: ; jump table (using 16-bit offset) .short _0206A792 - _0206A78A - 2; case 0 .short _0206A798 - _0206A78A - 2; case 1 .short _0206A79E - _0206A78A - 2; case 2 .short _0206A7A2 - _0206A78A - 2; case 3 _0206A792: add r1, r0, #0x0 add r1, #0x40 b _0206A8F8 _0206A798: add r1, r0, #0x0 add r1, #0x60 b _0206A8F8 _0206A79E: add r1, r0, #0x0 b _0206A8F8 _0206A7A2: add r1, r0, #0x0 add r1, #0x20 b _0206A8F8 _0206A7A8: add r0, #0x8 cmp r2, #0x3 bhi _0206A7DE add r2, r2, r2 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _0206A7BA: ; jump table (using 16-bit offset) .short _0206A7C2 - _0206A7BA - 2; case 0 .short _0206A7C8 - _0206A7BA - 2; case 1 .short _0206A7CE - _0206A7BA - 2; case 2 .short _0206A7D2 - _0206A7BA - 2; case 3 _0206A7C2: add r1, r0, #0x0 add r1, #0x60 b _0206A8F8 _0206A7C8: add r1, r0, #0x0 add r1, #0x40 b _0206A8F8 _0206A7CE: add r1, r0, #0x0 b _0206A8F8 _0206A7D2: add r1, r0, #0x0 add r1, #0x20 b _0206A8F8 _0206A7D8: add r0, #0x8 cmp r2, #0x3 bls _0206A7E0 _0206A7DE: b _0206A8F8 _0206A7E0: add r2, r2, r2 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _0206A7EC: ; jump table (using 16-bit offset) .short _0206A7F4 - _0206A7EC - 2; case 0 .short _0206A7FA - _0206A7EC - 2; case 1 .short _0206A800 - _0206A7EC - 2; case 2 .short _0206A806 - _0206A7EC - 2; case 3 _0206A7F4: add r1, r0, #0x0 add r1, #0x20 b _0206A8F8 _0206A7FA: add r1, r0, #0x0 add r1, #0x40 b _0206A8F8 _0206A800: add r1, r0, #0x0 add r1, #0x60 b _0206A8F8 _0206A806: add r1, r0, #0x0 b _0206A8F8 _0206A80A: add r0, #0x8 cmp r2, #0x3 bhi _0206A8F8 add r2, r2, r2 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _0206A81C: ; jump table (using 16-bit offset) .short _0206A824 - _0206A81C - 2; case 0 .short _0206A82A - _0206A81C - 2; case 1 .short _0206A830 - _0206A81C - 2; case 2 .short _0206A836 - _0206A81C - 2; case 3 _0206A824: add r1, r0, #0x0 add r1, #0x20 b _0206A8F8 _0206A82A: add r1, r0, #0x0 add r1, #0x60 b _0206A8F8 _0206A830: add r1, r0, #0x0 add r1, #0x40 b _0206A8F8 _0206A836: add r1, r0, #0x0 b _0206A8F8 _0206A83A: add r0, #0x8 cmp r2, #0x3 bhi _0206A8F8 add r2, r2, r2 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _0206A84C: ; jump table (using 16-bit offset) .short _0206A854 - _0206A84C - 2; case 0 .short _0206A85A - _0206A84C - 2; case 1 .short _0206A860 - _0206A84C - 2; case 2 .short _0206A866 - _0206A84C - 2; case 3 _0206A854: add r1, r0, #0x0 add r1, #0x40 b _0206A8F8 _0206A85A: add r1, r0, #0x0 add r1, #0x20 b _0206A8F8 _0206A860: add r1, r0, #0x0 add r1, #0x60 b _0206A8F8 _0206A866: add r1, r0, #0x0 b _0206A8F8 _0206A86A: add r0, #0x8 cmp r2, #0x3 bhi _0206A8F8 add r2, r2, r2 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _0206A87C: ; jump table (using 16-bit offset) .short _0206A884 - _0206A87C - 2; case 0 .short _0206A88A - _0206A87C - 2; case 1 .short _0206A890 - _0206A87C - 2; case 2 .short _0206A896 - _0206A87C - 2; case 3 _0206A884: add r1, r0, #0x0 add r1, #0x60 b _0206A8F8 _0206A88A: add r1, r0, #0x0 add r1, #0x20 b _0206A8F8 _0206A890: add r1, r0, #0x0 add r1, #0x40 b _0206A8F8 _0206A896: add r1, r0, #0x0 b _0206A8F8 _0206A89A: add r0, #0x8 cmp r2, #0x3 bhi _0206A8F8 add r2, r2, r2 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _0206A8AC: ; jump table (using 16-bit offset) .short _0206A8B4 - _0206A8AC - 2; case 0 .short _0206A8BA - _0206A8AC - 2; case 1 .short _0206A8C0 - _0206A8AC - 2; case 2 .short _0206A8C6 - _0206A8AC - 2; case 3 _0206A8B4: add r1, r0, #0x0 add r1, #0x40 b _0206A8F8 _0206A8BA: add r1, r0, #0x0 add r1, #0x60 b _0206A8F8 _0206A8C0: add r1, r0, #0x0 add r1, #0x20 b _0206A8F8 _0206A8C6: add r1, r0, #0x0 b _0206A8F8 _0206A8CA: add r0, #0x8 cmp r2, #0x3 bhi _0206A8F8 add r2, r2, r2 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _0206A8DC: ; jump table (using 16-bit offset) .short _0206A8E4 - _0206A8DC - 2; case 0 .short _0206A8EA - _0206A8DC - 2; case 1 .short _0206A8F0 - _0206A8DC - 2; case 2 .short _0206A8F6 - _0206A8DC - 2; case 3 _0206A8E4: add r1, r0, #0x0 add r1, #0x60 b _0206A8F8 _0206A8EA: add r1, r0, #0x0 add r1, #0x40 b _0206A8F8 _0206A8F0: add r1, r0, #0x0 add r1, #0x20 b _0206A8F8 _0206A8F6: add r1, r0, #0x0 _0206A8F8: add r0, r1, #0x0 pop {r3, pc} thumb_func_start FUN_0206A8FC FUN_0206A8FC: ; 0x0206A8FC ldr r3, _0206A928 ; =0x00000182 cmp r0, r3 beq _0206A90C add r2, r3, #0x0 add r2, #0x1b cmp r0, r2 beq _0206A91A bx lr _0206A90C: cmp r1, #0x0 beq _0206A926 cmp r1, #0x3 bgt _0206A926 add r3, #0x6d add r0, r1, r3 bx lr _0206A91A: cmp r1, #0x0 beq _0206A926 cmp r1, #0x2 bgt _0206A926 add r3, #0x70 add r0, r1, r3 _0206A926: bx lr .balign 4 _0206A928: .word 0x00000182 thumb_func_start FUN_0206A92C FUN_0206A92C: ; 0x0206A92C push {r3-r5, lr} add r5, r0, #0x0 mov r4, #0x1 cmp r5, #0x20 blt _0206A93A bl ErrorHandling _0206A93A: mov r0, #0x0 cmp r5, #0x0 ble _0206A948 _0206A940: add r0, r0, #0x1 lsl r4, r4, #0x1 cmp r0, r5 blt _0206A940 _0206A948: add r0, r4, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0206A94C FUN_0206A94C: ; 0x0206A94C mov r3, #0x1 mov r2, #0x0 _0206A950: add r1, r0, #0x0 tst r1, r3 bne _0206A95E add r2, r2, #0x1 lsl r3, r3, #0x1 cmp r2, #0x20 blt _0206A950 _0206A95E: add r0, r2, #0x0 bx lr .balign 4 thumb_func_start FUN_0206A964 FUN_0206A964: ; 0x0206A964 ldr r3, _0206A980 ; =0x020F7EF2 mov r2, #0x0 _0206A968: ldrh r1, [r3, #0x0] cmp r0, r1 bne _0206A972 mov r0, #0x1 bx lr _0206A972: add r2, r2, #0x1 add r3, r3, #0x2 cmp r2, #0x12 blo _0206A968 mov r0, #0x0 bx lr nop _0206A980: .word 0x020F7EF2 thumb_func_start FUN_0206A984 FUN_0206A984: ; 0x0206A984 cmp r0, #0x12 blo _0206A98A mov r0, #0x0 _0206A98A: lsl r1, r0, #0x1 ldr r0, _0206A994 ; =0x020F7EF2 ldrh r0, [r0, r1] bx lr nop _0206A994: .word 0x020F7EF2 thumb_func_start FUN_0206A998 FUN_0206A998: ; 0x0206A998 push {r3, lr} mov r1, #0x5 mov r2, #0x0 bl FUN_020671BC lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_0206A964 pop {r3, pc} thumb_func_start FUN_0206A9AC FUN_0206A9AC: ; 0x0206A9AC push {r3-r7, lr} sub sp, #0x10 add r4, r1, #0x0 add r5, r0, #0x0 add r0, r4, #0x0 add r6, r2, #0x0 bl FUN_020239BC str r0, [sp, #0x0] add r0, r5, #0x0 mov r1, #0x7 mov r2, #0x0 bl FUN_020672BC str r0, [sp, #0x4] add r0, r4, #0x0 bl FUN_020239CC str r0, [sp, #0x8] add r0, r5, #0x0 mov r1, #0x9c mov r2, #0x0 bl FUN_020672BC str r0, [sp, #0xc] add r0, r4, #0x0 add r1, r6, #0x0 bl FUN_020239A0 add r7, r0, #0x0 mov r0, #0x8 add r1, r6, #0x0 bl FUN_020219F4 add r6, r0, #0x0 add r0, r5, #0x0 mov r1, #0x90 add r2, r6, #0x0 mov r4, #0x0 bl FUN_020672BC ldr r1, [sp, #0x0] ldr r0, [sp, #0x4] cmp r1, r0 bne _0206AA1C ldr r1, [sp, #0x8] ldr r0, [sp, #0xc] cmp r1, r0 bne _0206AA1C add r0, r7, #0x0 add r1, r6, #0x0 bl FUN_02021CE0 cmp r0, #0x0 bne _0206AA1C mov r4, #0x1 _0206AA1C: add r0, r6, #0x0 bl FUN_02021A20 add r0, r7, #0x0 bl FUN_02021A20 add r0, r4, #0x0 add sp, #0x10 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0206AA30 FUN_0206AA30: ; 0x0206AA30 push {r3, lr} cmp r0, #0x3f bgt _0206AA48 bge _0206AA6C cmp r0, #0x1 bgt _0206AA74 cmp r0, #0x0 blt _0206AA74 beq _0206AA82 cmp r0, #0x1 beq _0206AA82 b _0206AA74 _0206AA48: cmp r0, #0x5a bgt _0206AA50 beq _0206AA70 b _0206AA74 _0206AA50: add r1, r0, #0x0 sub r1, #0x5b cmp r1, #0x3 bhi _0206AA74 add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0206AA64: ; jump table (using 16-bit offset) .short _0206AA70 - _0206AA64 - 2; case 0 .short _0206AA70 - _0206AA64 - 2; case 1 .short _0206AA70 - _0206AA64 - 2; case 2 .short _0206AA70 - _0206AA64 - 2; case 3 _0206AA6C: mov r0, #0x2 pop {r3, pc} _0206AA70: sub r0, #0x57 pop {r3, pc} _0206AA74: bl FUN_0206AE00 cmp r0, #0x1 bne _0206AA80 mov r0, #0x1 pop {r3, pc} _0206AA80: mov r0, #0x0 _0206AA82: pop {r3, pc} thumb_func_start FUN_0206AA84 FUN_0206AA84: ; 0x0206AA84 push {r3-r4, lr} sub sp, #0x1c add r4, r0, #0x0 mov r0, #0x0 add r1, sp, #0x0 strb r0, [r1, #0x0] add r1, sp, #0x0 add r1, #0x1 mov r2, #0x18 blx MIi_CpuClearFast add r0, r4, #0x0 mov r1, #0xa1 add r2, sp, #0x0 bl FUN_02067830 add r2, sp, #0x0 add r0, r4, #0x0 mov r1, #0xaa add r2, #0x1 bl FUN_02067830 add sp, #0x1c pop {r3-r4, pc} thumb_func_start FUN_0206AAB4 FUN_0206AAB4: ; 0x0206AAB4 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 bl FUN_02066A6C mov r4, #0x0 str r0, [sp, #0x0] add r7, r4, #0x0 add r6, sp, #0x4 _0206AAC6: add r1, r4, #0x0 add r0, r5, #0x0 add r1, #0x36 add r2, r7, #0x0 bl FUN_020672BC cmp r0, #0x0 beq _0206AAF0 add r1, r4, #0x0 add r0, r5, #0x0 add r1, #0x42 mov r2, #0x0 bl FUN_020672BC add r1, r4, #0x0 strb r0, [r6, #0x0] add r0, r5, #0x0 add r1, #0x3a add r2, sp, #0x4 bl FUN_02067960 _0206AAF0: add r4, r4, #0x1 cmp r4, #0x4 blt _0206AAC6 ldr r1, [sp, #0x0] add r0, r5, #0x0 bl FUN_02066A94 add sp, #0x8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0206AB04 FUN_0206AB04: ; 0x0206AB04 push {r3, lr} mov r1, #0x75 lsl r1, r1, #0x6 mov r2, #0x0 str r1, [sp, #0x0] mov r1, #0x9 add r3, r2, #0x0 bl FUN_02006548 pop {r3, pc} thumb_func_start FUN_0206AB18 FUN_0206AB18: ; 0x0206AB18 push {r4, lr} sub sp, #0x10 add r4, r1, #0x0 add r1, sp, #0x0 bl FUN_0206ABB4 add r0, sp, #0x0 add r1, r4, #0x0 bl FUN_0206AB58 add sp, #0x10 pop {r4, pc} thumb_func_start FUN_0206AB30 FUN_0206AB30: ; 0x0206AB30 push {r3-r5, lr} add r5, r1, #0x0 cmp r5, #0x3 bls _0206AB3A mov r5, #0x3 _0206AB3A: mov r1, #0x5 bl FUN_0206AB18 lsl r0, r0, #0x18 lsr r4, r0, #0x18 mov r0, #0x14 mul r0, r4 mul r0, r5 mov r1, #0x64 blx _s32_div_f add r0, r4, r0 lsl r0, r0, #0x18 lsr r0, r0, #0x18 pop {r3-r5, pc} thumb_func_start FUN_0206AB58 FUN_0206AB58: ; 0x0206AB58 cmp r1, #0xb bhi _0206ABB0 add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0206AB68: ; jump table (using 16-bit offset) .short _0206AB80 - _0206AB68 - 2; case 0 .short _0206AB84 - _0206AB68 - 2; case 1 .short _0206AB88 - _0206AB68 - 2; case 2 .short _0206AB8C - _0206AB68 - 2; case 3 .short _0206AB90 - _0206AB68 - 2; case 4 .short _0206AB94 - _0206AB68 - 2; case 5 .short _0206AB98 - _0206AB68 - 2; case 6 .short _0206AB9C - _0206AB68 - 2; case 7 .short _0206ABA0 - _0206AB68 - 2; case 8 .short _0206ABA6 - _0206AB68 - 2; case 9 .short _0206ABAA - _0206AB68 - 2; case 10 .short _0206ABAE - _0206AB68 - 2; case 11 _0206AB80: ldrh r0, [r0, #0x0] bx lr _0206AB84: ldrb r0, [r0, #0x2] bx lr _0206AB88: ldrb r0, [r0, #0x3] bx lr _0206AB8C: ldrb r0, [r0, #0x4] bx lr _0206AB90: ldrb r0, [r0, #0x5] bx lr _0206AB94: ldrb r0, [r0, #0x6] bx lr _0206AB98: ldrb r0, [r0, #0x7] bx lr _0206AB9C: ldrh r0, [r0, #0x8] bx lr _0206ABA0: mov r1, #0xa ldrsb r0, [r0, r1] bx lr _0206ABA6: ldrb r0, [r0, #0xb] bx lr _0206ABAA: ldrb r0, [r0, #0xc] bx lr _0206ABAE: ldrb r0, [r0, #0xd] _0206ABB0: bx lr .balign 4 thumb_func_start FUN_0206ABB4 FUN_0206ABB4: ; 0x0206ABB4 ldr r3, _0206ABC0 ; =FUN_020064F0 add r2, r0, #0x0 add r0, r1, #0x0 mov r1, #0x9 bx r3 nop _0206ABC0: .word FUN_020064F0 thumb_func_start FUN_0206ABC4 FUN_0206ABC4: ; 0x0206ABC4 push {r3-r7, lr} sub sp, #0x48 str r2, [sp, #0x4] ldr r2, _0206AC70 ; =0x0000022F str r0, [sp, #0x0] add r4, r1, #0x0 ldr r3, [sp, #0x4] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C str r0, [sp, #0x10] add r0, r4, #0x0 bl FUN_02024EC0 bl FUN_02024EE8 ldr r4, [sp, #0x0] str r0, [sp, #0xc] add r0, r4, #0x0 add r5, r4, #0x0 mov r7, #0x0 str r0, [sp, #0x8] add r5, #0x3c _0206ABF4: ldr r0, [r4, #0x18] cmp r0, #0x0 beq _0206AC48 add r1, sp, #0x14 bl FUN_0206ADE0 ldr r3, [sp, #0x8] add r6, sp, #0x14 add r3, #0x28 mov r2, #0x6 _0206AC08: ldmia r6!, {r0-r1} stmia r3!, {r0-r1} sub r2, r2, #0x1 bne _0206AC08 ldr r0, [r6, #0x0] str r0, [r3, #0x0] add r0, sp, #0x14 ldrb r0, [r0, #0x1] cmp r0, #0x3f bne _0206AC26 ldr r1, [sp, #0xc] add r0, r5, #0x0 bl StringCopy b _0206AC3E _0206AC26: ldr r0, [sp, #0x10] ldr r1, [r4, #0x18] bl FUN_0200A914 add r6, r0, #0x0 add r1, r5, #0x0 mov r2, #0x8 bl FUN_02021EF0 add r0, r6, #0x0 bl FUN_02021A20 _0206AC3E: ldr r0, [sp, #0x0] ldr r2, [sp, #0x4] add r1, r7, #0x0 bl FUN_0206AE0C _0206AC48: ldr r0, [sp, #0x8] add r7, r7, #0x1 add r0, #0x34 add r4, r4, #0x4 add r5, #0x34 str r0, [sp, #0x8] cmp r7, #0x4 blt _0206ABF4 ldr r0, [sp, #0x0] ldr r1, [r0, #0x0] ldr r0, [sp, #0x24] orr r1, r0 ldr r0, [sp, #0x0] str r1, [r0, #0x0] ldr r0, [sp, #0x10] bl FUN_0200A8B8 add sp, #0x48 pop {r3-r7, pc} nop _0206AC70: .word 0x0000022F thumb_func_start FUN_0206AC74 FUN_0206AC74: ; 0x0206AC74 push {r4-r5, lr} sub sp, #0x34 add r5, r1, #0x0 add r1, sp, #0x0 bl FUN_0206ADE0 cmp r5, #0x9 bhi _0206ACCC add r0, r5, r5 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0206AC90: ; jump table (using 16-bit offset) .short _0206ACA4 - _0206AC90 - 2; case 0 .short _0206ACAA - _0206AC90 - 2; case 1 .short _0206ACB0 - _0206AC90 - 2; case 2 .short _0206ACB6 - _0206AC90 - 2; case 3 .short _0206ACBC - _0206AC90 - 2; case 4 .short _0206ACBC - _0206AC90 - 2; case 5 .short _0206ACBC - _0206AC90 - 2; case 6 .short _0206ACBC - _0206AC90 - 2; case 7 .short _0206ACC6 - _0206AC90 - 2; case 8 .short _0206ACCA - _0206AC90 - 2; case 9 _0206ACA4: add r0, sp, #0x0 ldrb r4, [r0, #0x0] b _0206ACCC _0206ACAA: add r0, sp, #0x0 ldrb r4, [r0, #0x1] b _0206ACCC _0206ACB0: add r0, sp, #0x0 ldrb r4, [r0, #0x2] b _0206ACCC _0206ACB6: add r0, sp, #0x0 ldrb r4, [r0, #0x3] b _0206ACCC _0206ACBC: sub r0, r5, #0x4 lsl r1, r0, #0x1 add r0, sp, #0x4 ldrh r4, [r0, r1] b _0206ACCC _0206ACC6: ldr r4, [sp, #0xc] b _0206ACCC _0206ACCA: ldr r4, [sp, #0x10] _0206ACCC: add r0, r4, #0x0 add sp, #0x34 pop {r4-r5, pc} .balign 4 thumb_func_start FUN_0206ACD4 FUN_0206ACD4: ; 0x0206ACD4 push {r4-r7, lr} sub sp, #0x14 add r5, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x4] add r7, r1, #0x0 ldr r1, [sp, #0x4] mov r0, #0x3b add r4, r2, #0x0 bl FUN_020065A4 add r6, r0, #0x0 mov r0, #0x2 str r0, [sp, #0x0] add r0, sp, #0xc mov r1, #0x89 mov r2, #0x0 lsl r3, r5, #0x1 bl FUN_02006548 mov r0, #0x3b add r1, r4, #0x0 bl FUN_02006670 add r4, sp, #0xc ldrh r2, [r4, #0x0] str r0, [sp, #0x8] cmp r2, r6 beq _0206AD40 _0206AD0E: add r0, sp, #0xc add r0, #0x2 str r0, [sp, #0x0] ldr r0, [sp, #0x8] mov r1, #0x0 mov r3, #0x4 bl FUN_02006814 ldrh r1, [r4, #0x2] cmp r1, r5 bne _0206AD30 ldrh r0, [r4, #0x4] cmp r0, r7 bne _0206AD30 mov r0, #0x1 str r0, [sp, #0x4] b _0206AD40 _0206AD30: cmp r1, r5 bne _0206AD40 ldrh r0, [r4, #0x0] add r0, r0, #0x4 strh r0, [r4, #0x0] ldrh r2, [r4, #0x0] cmp r2, r6 bne _0206AD0E _0206AD40: ldr r0, [sp, #0x8] bl FUN_020066F4 ldr r0, [sp, #0x4] add sp, #0x14 pop {r4-r7, pc} thumb_func_start FUN_0206AD4C FUN_0206AD4C: ; 0x0206AD4C push {r3-r7, lr} sub sp, #0x18 add r6, r0, #0x0 add r7, r1, #0x0 mov r0, #0x3b mov r1, #0x0 str r2, [sp, #0x4] str r3, [sp, #0x8] bl FUN_020065A4 add r5, r0, #0x0 mov r0, #0x2 str r0, [sp, #0x0] add r0, sp, #0x10 mov r1, #0x89 mov r2, #0x0 lsl r3, r6, #0x1 bl FUN_02006548 ldr r1, [sp, #0x8] mov r0, #0x3b bl FUN_02006670 add r4, sp, #0x10 ldrh r2, [r4, #0x0] str r0, [sp, #0xc] cmp r2, r5 beq _0206ADC2 _0206AD84: add r0, sp, #0x10 add r0, #0x2 str r0, [sp, #0x0] ldr r0, [sp, #0xc] mov r1, #0x0 mov r3, #0x4 bl FUN_02006814 ldrh r0, [r4, #0x2] cmp r0, r6 bne _0206ADB6 ldrh r0, [r4, #0x4] cmp r0, r7 bne _0206ADB6 ldr r0, [sp, #0x4] add r2, sp, #0x10 str r0, [sp, #0x0] ldrh r2, [r2, #0x0] ldr r1, _0206ADDC ; =0x0000022E ldr r3, [sp, #0x8] mov r0, #0x1a lsr r2, r2, #0x2 bl FUN_0200A648 b _0206ADC2 _0206ADB6: ldrh r0, [r4, #0x0] add r0, r0, #0x4 strh r0, [r4, #0x0] ldrh r2, [r4, #0x0] cmp r2, r5 bne _0206AD84 _0206ADC2: ldr r0, [sp, #0xc] bl FUN_020066F4 add r0, sp, #0x10 ldrh r0, [r0, #0x0] cmp r0, r5 bne _0206ADD6 ldr r0, [sp, #0x4] bl FUN_02021A4C _0206ADD6: add sp, #0x18 pop {r3-r7, pc} nop _0206ADDC: .word 0x0000022E thumb_func_start FUN_0206ADE0 FUN_0206ADE0: ; 0x0206ADE0 ldr r3, _0206ADEC ; =FUN_020064F0 add r2, r0, #0x0 add r0, r1, #0x0 mov r1, #0x39 bx r3 nop _0206ADEC: .word FUN_020064F0 thumb_func_start FUN_0206ADF0 FUN_0206ADF0: ; 0x0206ADF0 ldr r3, _0206ADFC ; =FUN_020064F0 add r2, r0, #0x0 add r0, r1, #0x0 mov r1, #0x3a bx r3 nop _0206ADFC: .word FUN_020064F0 thumb_func_start FUN_0206AE00 FUN_0206AE00: ; 0x0206AE00 ldr r1, _0206AE08 ; =0x020F8010 ldrb r0, [r1, r0] bx lr nop _0206AE08: .word 0x020F8010 thumb_func_start FUN_0206AE0C FUN_0206AE0C: ; 0x0206AE0C push {r3-r7, lr} sub sp, #0x50 add r7, r1, #0x0 add r4, r0, #0x0 add r5, r2, #0x0 bl FUN_0201B9D4 lsl r6, r7, #0x2 str r0, [sp, #0x44] add r0, r4, r6 ldr r0, [r0, #0x4] mov r1, #0x6 bl FUN_0206B8CC add r0, r5, #0x0 mov r1, #0x60 bl FUN_02016998 str r0, [sp, #0x4c] add r0, r5, #0x0 bl FUN_020669C0 str r0, [sp, #0x40] add r0, r4, r6 ldr r0, [r0, #0x18] ldr r1, [sp, #0x4c] bl FUN_0206ADF0 mov r0, #0x34 add r5, r7, #0x0 mul r5, r0 add r0, r4, r5 add r0, #0x29 ldrb r0, [r0, #0x0] bl FUN_0206AE00 cmp r0, #0x1 bne _0206AE5E mov r0, #0x78 str r0, [sp, #0x10] b _0206AE62 _0206AE5E: mov r0, #0x88 str r0, [sp, #0x10] _0206AE62: add r0, r4, r5 add r0, #0x28 ldrb r0, [r0, #0x0] cmp r0, #0x3 bhi _0206AF26 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0206AE78: ; jump table (using 16-bit offset) .short _0206AE80 - _0206AE78 - 2; case 0 .short _0206AF28 - _0206AE78 - 2; case 1 .short _0206AFE8 - _0206AE78 - 2; case 2 .short _0206B08C - _0206AE78 - 2; case 3 _0206AE80: mov r0, #0x0 str r0, [sp, #0x48] add r0, r4, r5 add r0, #0x2b ldrb r0, [r0, #0x0] cmp r0, #0x0 ble _0206AF26 ldr r0, [sp, #0x4c] str r0, [sp, #0x28] add r0, r4, r6 str r0, [sp, #0x24] _0206AE96: ldr r0, [sp, #0x24] ldr r2, [sp, #0x28] ldr r1, [r0, #0x18] ldr r0, [sp, #0x28] ldrh r3, [r2, #0x0] ldrh r2, [r2, #0x2] ldrh r0, [r0, #0x4] add r2, r3, r2 add r0, r0, r2 add r7, r1, r0 add r0, r7, #0x0 bl FUN_0201B9E0 add r0, r4, r5 add r0, #0x29 ldrb r0, [r0, #0x0] mov r6, #0x0 cmp r0, #0x0 ble _0206AECE _0206AEBC: bl FUN_0201B9EC add r7, r0, #0x0 add r0, r4, r5 add r0, #0x29 ldrb r0, [r0, #0x0] add r6, r6, #0x1 cmp r6, r0 blt _0206AEBC _0206AECE: ldr r0, [sp, #0x10] lsl r1, r7, #0x8 add r6, r1, r0 ldr r0, [sp, #0x28] ldrh r1, [r0, #0x0] mov r0, #0x1f mul r0, r1 mov r1, #0xff blx _s32_div_f add r3, r0, #0x0 mov r0, #0x1 str r0, [sp, #0x0] lsl r3, r3, #0x18 str r6, [sp, #0x4] mov r0, #0x2 str r0, [sp, #0x8] mov r0, #0x0 str r0, [sp, #0xc] ldr r1, [sp, #0x28] ldr r2, [sp, #0x28] ldrh r1, [r1, #0x4] ldrh r2, [r2, #0x2] ldr r0, [sp, #0x40] lsr r3, r3, #0x18 bl FUN_02066ACC ldr r0, [sp, #0x24] ldr r1, [sp, #0x40] ldr r0, [r0, #0x4] bl FUN_0206B900 ldr r0, [sp, #0x28] add r0, r0, #0x6 str r0, [sp, #0x28] ldr r0, [sp, #0x48] add r0, r0, #0x1 str r0, [sp, #0x48] add r0, r4, r5 add r0, #0x2b ldrb r1, [r0, #0x0] ldr r0, [sp, #0x48] cmp r0, r1 blt _0206AE96 _0206AF26: b _0206B156 _0206AF28: mov r0, #0x0 str r0, [sp, #0x18] add r0, r4, r5 add r0, #0x2b ldrb r0, [r0, #0x0] cmp r0, #0x0 ble _0206AFE6 ldr r0, [sp, #0x4c] str r0, [sp, #0x30] add r0, r4, r6 str r0, [sp, #0x2c] _0206AF3E: ldr r0, [sp, #0x2c] ldr r2, [sp, #0x30] ldr r1, [r0, #0x18] ldr r0, [sp, #0x30] ldrh r3, [r2, #0x0] ldrh r2, [r2, #0x2] ldrh r0, [r0, #0x4] add r2, r3, r2 add r0, r0, r2 add r7, r1, r0 add r0, r7, #0x0 bl FUN_0201B9E0 add r0, r4, r5 add r0, #0x29 ldrb r0, [r0, #0x0] mov r6, #0x0 cmp r0, #0x0 ble _0206AF76 _0206AF64: bl FUN_0201B9EC add r7, r0, #0x0 add r0, r4, r5 add r0, #0x29 ldrb r0, [r0, #0x0] add r6, r6, #0x1 cmp r6, r0 blt _0206AF64 _0206AF76: ldr r0, [sp, #0x10] lsl r1, r7, #0x8 add r6, r1, r0 ldr r0, [sp, #0x30] ldrh r1, [r0, #0x0] mov r0, #0x1f mul r0, r1 mov r1, #0xff blx _s32_div_f add r3, r0, #0x0 mov r0, #0x1 str r0, [sp, #0x0] lsl r3, r3, #0x18 str r6, [sp, #0x4] mov r0, #0x2 str r0, [sp, #0x8] mov r0, #0x0 str r0, [sp, #0xc] ldr r1, [sp, #0x30] ldr r2, [sp, #0x30] ldrh r1, [r1, #0x4] ldrh r2, [r2, #0x2] ldr r0, [sp, #0x40] lsr r3, r3, #0x18 bl FUN_02066ACC ldr r7, [sp, #0x30] mov r6, #0x0 _0206AFB0: ldrh r1, [r7, #0x6] lsl r2, r6, #0x18 ldr r0, [sp, #0x40] lsr r2, r2, #0x18 bl FUN_020697CC add r6, r6, #0x1 add r7, r7, #0x2 cmp r6, #0x4 blt _0206AFB0 ldr r0, [sp, #0x2c] ldr r1, [sp, #0x40] ldr r0, [r0, #0x4] bl FUN_0206B900 ldr r0, [sp, #0x30] add r0, #0xe str r0, [sp, #0x30] ldr r0, [sp, #0x18] add r0, r0, #0x1 str r0, [sp, #0x18] add r0, r4, r5 add r0, #0x2b ldrb r1, [r0, #0x0] ldr r0, [sp, #0x18] cmp r0, r1 blt _0206AF3E _0206AFE6: b _0206B156 _0206AFE8: mov r0, #0x0 str r0, [sp, #0x1c] add r0, r4, r5 add r0, #0x2b ldrb r0, [r0, #0x0] cmp r0, #0x0 ble _0206B08A add r0, r4, r6 ldr r7, [sp, #0x4c] str r0, [sp, #0x34] _0206AFFC: ldr r0, [sp, #0x34] ldrh r3, [r7, #0x0] ldrh r2, [r7, #0x2] ldr r1, [r0, #0x18] ldrh r0, [r7, #0x4] add r2, r3, r2 add r0, r0, r2 add r0, r1, r0 str r0, [sp, #0x14] bl FUN_0201B9E0 add r0, r4, r5 add r0, #0x29 ldrb r0, [r0, #0x0] mov r6, #0x0 cmp r0, #0x0 ble _0206B030 _0206B01E: bl FUN_0201B9EC str r0, [sp, #0x14] add r0, r4, r5 add r0, #0x29 ldrb r0, [r0, #0x0] add r6, r6, #0x1 cmp r6, r0 blt _0206B01E _0206B030: ldr r0, [sp, #0x14] lsl r1, r0, #0x8 ldr r0, [sp, #0x10] add r6, r1, r0 ldrh r1, [r7, #0x0] mov r0, #0x1f mul r0, r1 mov r1, #0xff blx _s32_div_f add r3, r0, #0x0 mov r0, #0x1 str r0, [sp, #0x0] lsl r3, r3, #0x18 str r6, [sp, #0x4] mov r0, #0x2 str r0, [sp, #0x8] mov r0, #0x0 str r0, [sp, #0xc] ldrh r1, [r7, #0x4] ldrh r2, [r7, #0x2] ldr r0, [sp, #0x40] lsr r3, r3, #0x18 bl FUN_02066ACC ldr r0, [sp, #0x40] mov r1, #0x6 add r2, r7, #0x6 bl FUN_02067830 ldr r0, [sp, #0x34] ldr r1, [sp, #0x40] ldr r0, [r0, #0x4] bl FUN_0206B900 ldr r0, [sp, #0x1c] add r7, #0x8 add r0, r0, #0x1 str r0, [sp, #0x1c] add r0, r4, r5 add r0, #0x2b ldrb r1, [r0, #0x0] ldr r0, [sp, #0x1c] cmp r0, r1 blt _0206AFFC _0206B08A: b _0206B156 _0206B08C: mov r0, #0x0 str r0, [sp, #0x20] add r0, r4, r5 add r0, #0x2b ldrb r0, [r0, #0x0] cmp r0, #0x0 ble _0206B156 ldr r0, [sp, #0x4c] str r0, [sp, #0x3c] add r0, r4, r6 str r0, [sp, #0x38] _0206B0A2: ldr r0, [sp, #0x38] ldr r2, [sp, #0x3c] ldr r1, [r0, #0x18] ldr r0, [sp, #0x3c] ldrh r3, [r2, #0x0] ldrh r2, [r2, #0x2] ldrh r0, [r0, #0x4] add r2, r3, r2 add r0, r0, r2 add r7, r1, r0 add r0, r7, #0x0 bl FUN_0201B9E0 add r0, r4, r5 add r0, #0x29 ldrb r0, [r0, #0x0] mov r6, #0x0 cmp r0, #0x0 ble _0206B0DA _0206B0C8: bl FUN_0201B9EC add r7, r0, #0x0 add r0, r4, r5 add r0, #0x29 ldrb r0, [r0, #0x0] add r6, r6, #0x1 cmp r6, r0 blt _0206B0C8 _0206B0DA: ldr r0, [sp, #0x10] lsl r1, r7, #0x8 add r6, r1, r0 ldr r0, [sp, #0x3c] ldrh r1, [r0, #0x0] mov r0, #0x1f mul r0, r1 mov r1, #0xff blx _s32_div_f add r3, r0, #0x0 mov r0, #0x1 str r0, [sp, #0x0] lsl r3, r3, #0x18 str r6, [sp, #0x4] mov r0, #0x2 str r0, [sp, #0x8] mov r0, #0x0 str r0, [sp, #0xc] ldr r1, [sp, #0x3c] ldr r2, [sp, #0x3c] ldrh r1, [r1, #0x4] ldrh r2, [r2, #0x2] ldr r0, [sp, #0x40] lsr r3, r3, #0x18 bl FUN_02066ACC ldr r2, [sp, #0x3c] ldr r0, [sp, #0x40] mov r1, #0x6 add r2, r2, #0x6 bl FUN_02067830 ldr r7, [sp, #0x3c] mov r6, #0x0 _0206B120: ldrh r1, [r7, #0x8] lsl r2, r6, #0x18 ldr r0, [sp, #0x40] lsr r2, r2, #0x18 bl FUN_020697CC add r6, r6, #0x1 add r7, r7, #0x2 cmp r6, #0x4 blt _0206B120 ldr r0, [sp, #0x38] ldr r1, [sp, #0x40] ldr r0, [r0, #0x4] bl FUN_0206B900 ldr r0, [sp, #0x3c] add r0, #0x10 str r0, [sp, #0x3c] ldr r0, [sp, #0x20] add r0, r0, #0x1 str r0, [sp, #0x20] add r0, r4, r5 add r0, #0x2b ldrb r1, [r0, #0x0] ldr r0, [sp, #0x20] cmp r0, r1 blt _0206B0A2 _0206B156: ldr r0, [sp, #0x4c] bl FUN_02016A18 ldr r0, [sp, #0x40] bl FUN_02016A18 ldr r0, [sp, #0x44] bl FUN_0201B9E0 add sp, #0x50 pop {r3-r7, pc} thumb_func_start FUN_0206B16C FUN_0206B16C: ; 0x0206B16C push {r3, lr} bl FUN_0206B180 bl FUN_02022830 pop {r3, pc} thumb_func_start FUN_0206B178 FUN_0206B178: ; 0x0206B178 ldr r0, _0206B17C ; =0x000121C8 bx lr .balign 4 _0206B17C: .word 0x000121C8 thumb_func_start FUN_0206B180 FUN_0206B180: ; 0x0206B180 push {r3-r7, lr} str r0, [sp, #0x0] mov r7, #0x0 add r6, r0, #0x4 _0206B188: mov r4, #0x0 add r5, r6, #0x0 _0206B18C: add r0, r5, #0x0 bl FUN_020669A0 add r4, r4, #0x1 add r5, #0x88 cmp r4, #0x1e blo _0206B18C mov r0, #0xff lsl r0, r0, #0x4 add r7, r7, #0x1 add r6, r6, r0 cmp r7, #0x12 blo _0206B188 mov r3, #0x0 ldr r1, _0206B200 ; =0x000121B4 add r4, r3, #0x0 add r2, r3, #0x0 _0206B1AE: ldr r0, [sp, #0x0] add r0, r0, r3 strb r4, [r0, r1] add r4, r4, #0x1 cmp r4, #0x10 blo _0206B1BC add r4, r2, #0x0 _0206B1BC: add r3, r3, #0x1 cmp r3, #0x12 blo _0206B1AE ldr r1, _0206B204 ; =0x000121C6 ldr r0, [sp, #0x0] mov r3, #0x0 strb r3, [r0, r1] mov r0, #0x1 mov r1, #0x1a mov r2, #0xe bl FUN_0200A86C add r6, r0, #0x0 beq _0206B1F8 ldr r1, _0206B208 ; =0x00011EE4 ldr r0, [sp, #0x0] mov r5, #0x0 add r4, r0, r1 _0206B1E0: add r0, r6, #0x0 add r1, r5, #0x6 add r2, r4, #0x0 bl FUN_0200A968 add r5, r5, #0x1 add r4, #0x28 cmp r5, #0x12 blo _0206B1E0 add r0, r6, #0x0 bl FUN_0200A8B8 _0206B1F8: ldr r0, [sp, #0x0] mov r1, #0x0 str r1, [r0, #0x0] pop {r3-r7, pc} .balign 4 _0206B200: .word 0x000121B4 _0206B204: .word 0x000121C6 _0206B208: .word 0x00011EE4 thumb_func_start FUN_0206B20C FUN_0206B20C: ; 0x0206B20C push {r3-r7, lr} add r5, r0, #0x0 ldr r4, [r5, #0x0] add r6, r1, #0x0 mov r7, #0x0 _0206B216: add r0, r6, #0x0 bl FUN_0206AAB4 add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_0206B244 cmp r0, #0x0 beq _0206B232 bl FUN_02022830 mov r0, #0x1 pop {r3-r7, pc} _0206B232: add r4, r4, #0x1 cmp r4, #0x12 blo _0206B23A add r4, r7, #0x0 _0206B23A: ldr r0, [r5, #0x0] cmp r4, r0 bne _0206B216 mov r0, #0x0 pop {r3-r7, pc} thumb_func_start FUN_0206B244 FUN_0206B244: ; 0x0206B244 push {r3-r7, lr} sub sp, #0x8 add r6, r0, #0x0 add r0, r2, #0x0 add r5, r1, #0x0 str r2, [sp, #0x0] bl FUN_0206AAB4 mov r0, #0x0 mvn r0, r0 cmp r5, r0 bne _0206B25E ldr r5, [r6, #0x0] _0206B25E: mov r0, #0xff lsl r0, r0, #0x4 add r1, r6, #0x4 mul r0, r5 mov r4, #0x0 add r5, r1, r0 str r5, [sp, #0x4] mov r6, #0x5 add r7, r4, #0x0 _0206B270: add r0, r5, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 bl FUN_020672BC cmp r0, #0x0 bne _0206B2A0 mov r0, #0x88 add r1, r4, #0x0 mul r1, r0 ldr r0, [sp, #0x4] mov r3, #0x11 add r4, r0, r1 _0206B28A: ldr r2, [sp, #0x0] sub r3, r3, #0x1 ldmia r2!, {r0-r1} str r2, [sp, #0x0] stmia r4!, {r0-r1} bne _0206B28A bl FUN_02022830 add sp, #0x8 mov r0, #0x1 pop {r3-r7, pc} _0206B2A0: add r4, r4, #0x1 add r5, #0x88 cmp r4, #0x1e blo _0206B270 mov r0, #0x0 add sp, #0x8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0206B2B0 FUN_0206B2B0: ; 0x0206B2B0 push {r3-r7, lr} add r7, r3, #0x0 add r5, r0, #0x0 add r0, r7, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 bl FUN_0206AAB4 mov r0, #0x0 mvn r0, r0 cmp r4, r0 bne _0206B2CA ldr r4, [r5, #0x0] _0206B2CA: cmp r4, #0x12 bhs _0206B2F4 cmp r6, #0x1e bhs _0206B2F4 mov r0, #0xff lsl r0, r0, #0x4 mul r0, r4 add r1, r5, r0 mov r0, #0x88 mul r0, r6 add r0, r1, r0 add r3, r0, #0x4 mov r2, #0x11 _0206B2E4: ldmia r7!, {r0-r1} stmia r3!, {r0-r1} sub r2, r2, #0x1 bne _0206B2E4 bl FUN_02022830 mov r0, #0x1 pop {r3-r7, pc} _0206B2F4: bl ErrorHandling mov r0, #0x0 pop {r3-r7, pc} thumb_func_start FUN_0206B2FC FUN_0206B2FC: ; 0x0206B2FC push {r3, lr} mov r3, #0x0 mvn r3, r3 cmp r1, r3 bne _0206B308 ldr r1, [r0, #0x0] _0206B308: cmp r2, #0x1e bhs _0206B32A cmp r1, #0x12 bhs _0206B32A add r3, r0, #0x4 mov r0, #0xff lsl r0, r0, #0x4 mul r0, r1 add r1, r3, r0 mov r0, #0x88 mul r0, r2 add r0, r1, r0 bl FUN_020669A0 bl FUN_02022830 pop {r3, pc} _0206B32A: bl ErrorHandling pop {r3, pc} thumb_func_start FUN_0206B330 FUN_0206B330: ; 0x0206B330 ldr r0, [r0, #0x0] bx lr thumb_func_start FUN_0206B334 FUN_0206B334: ; 0x0206B334 push {r3-r7, lr} sub sp, #0x8 str r0, [sp, #0x0] ldr r6, [r0, #0x0] add r0, r0, #0x4 mov r7, #0xab str r0, [sp, #0x4] _0206B342: mov r0, #0xff lsl r0, r0, #0x4 add r1, r6, #0x0 mul r1, r0 ldr r0, [sp, #0x4] mov r4, #0x0 add r5, r0, r1 _0206B350: add r0, r5, #0x0 add r1, r7, #0x0 mov r2, #0x0 bl FUN_020672BC cmp r0, #0x0 bne _0206B364 add sp, #0x8 add r0, r6, #0x0 pop {r3-r7, pc} _0206B364: add r4, r4, #0x1 add r5, #0x88 cmp r4, #0x1e blt _0206B350 add r6, r6, #0x1 cmp r6, #0x12 blt _0206B374 mov r6, #0x0 _0206B374: ldr r0, [sp, #0x0] ldr r0, [r0, #0x0] cmp r6, r0 bne _0206B342 mov r0, #0x12 add sp, #0x8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0206B384 FUN_0206B384: ; 0x0206B384 push {r3-r7, lr} add r6, r1, #0x0 str r2, [sp, #0x0] mov r1, #0x0 ldr r2, [r6, #0x0] mvn r1, r1 cmp r2, r1 bne _0206B398 ldr r1, [r0, #0x0] str r1, [r6, #0x0] _0206B398: ldr r1, [sp, #0x0] ldr r4, [r6, #0x0] ldr r5, [r1, #0x0] add r7, r0, #0x4 b _0206B3C8 _0206B3A2: mov r0, #0xff lsl r0, r0, #0x4 mul r0, r4 add r1, r7, r0 mov r0, #0x88 mul r0, r5 add r0, r1, r0 mov r1, #0xab mov r2, #0x0 bl FUN_020672BC cmp r0, #0x0 bne _0206B3C6 ldr r0, [sp, #0x0] str r4, [r6, #0x0] str r5, [r0, #0x0] mov r0, #0x1 pop {r3-r7, pc} _0206B3C6: add r5, r5, #0x1 _0206B3C8: cmp r5, #0x1e blt _0206B3A2 add r4, r4, #0x1 cmp r4, #0x12 blt _0206B3D4 mov r4, #0x0 _0206B3D4: ldr r0, [r6, #0x0] cmp r4, r0 beq _0206B3DE mov r5, #0x0 b _0206B3C8 _0206B3DE: mov r0, #0x12 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0206B3E4 FUN_0206B3E4: ; 0x0206B3E4 push {r3-r7, lr} sub sp, #0x8 mov r6, #0x0 add r0, r0, #0x4 str r6, [sp, #0x4] str r0, [sp, #0x0] mov r7, #0xab _0206B3F2: ldr r5, [sp, #0x0] mov r4, #0x0 _0206B3F6: add r0, r5, #0x0 add r1, r7, #0x0 mov r2, #0x0 bl FUN_020672BC cmp r0, #0x0 beq _0206B406 add r6, r6, #0x1 _0206B406: add r4, r4, #0x1 add r5, #0x88 cmp r4, #0x1e blt _0206B3F6 mov r0, #0xff ldr r1, [sp, #0x0] lsl r0, r0, #0x4 add r0, r1, r0 str r0, [sp, #0x0] ldr r0, [sp, #0x4] add r0, r0, #0x1 str r0, [sp, #0x4] cmp r0, #0x12 blt _0206B3F2 add r0, r6, #0x0 add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_0206B428 FUN_0206B428: ; 0x0206B428 push {r3, lr} cmp r1, #0x12 bhs _0206B436 str r1, [r0, #0x0] bl FUN_02022830 pop {r3, pc} _0206B436: bl ErrorHandling pop {r3, pc} thumb_func_start FUN_0206B43C FUN_0206B43C: ; 0x0206B43C push {r3, lr} cmp r1, #0x12 bhs _0206B44A add r1, r0, r1 ldr r0, _0206B454 ; =0x000121B4 ldrb r0, [r1, r0] pop {r3, pc} _0206B44A: bl ErrorHandling mov r0, #0x0 pop {r3, pc} nop _0206B454: .word 0x000121B4 thumb_func_start FUN_0206B458 FUN_0206B458: ; 0x0206B458 push {r3, lr} mov r3, #0x0 mvn r3, r3 cmp r1, r3 bne _0206B464 ldr r1, [r0, #0x0] _0206B464: cmp r1, #0x12 bhs _0206B478 cmp r2, #0x18 bhs _0206B478 add r1, r0, r1 ldr r0, _0206B480 ; =0x000121B4 strb r2, [r1, r0] bl FUN_02022830 pop {r3, pc} _0206B478: bl ErrorHandling pop {r3, pc} nop _0206B480: .word 0x000121B4 thumb_func_start FUN_0206B484 FUN_0206B484: ; 0x0206B484 push {r3, lr} add r3, r0, #0x0 mov r0, #0x0 mvn r0, r0 cmp r1, r0 bne _0206B492 ldr r1, [r3, #0x0] _0206B492: cmp r1, #0x12 bhs _0206B4A8 add r0, r2, #0x0 ldr r2, _0206B4B0 ; =0x00011EE4 add r3, r3, r2 mov r2, #0x28 mul r2, r1 add r1, r3, r2 bl FUN_02021E28 pop {r3, pc} _0206B4A8: bl ErrorHandling pop {r3, pc} nop _0206B4B0: .word 0x00011EE4 thumb_func_start FUN_0206B4B4 FUN_0206B4B4: ; 0x0206B4B4 push {r3, lr} add r3, r0, #0x0 mov r0, #0x0 mvn r0, r0 cmp r1, r0 bne _0206B4C2 ldr r1, [r3, #0x0] _0206B4C2: cmp r1, #0x12 bhs _0206B4DC add r0, r2, #0x0 ldr r2, _0206B4E0 ; =0x00011EE4 add r3, r3, r2 mov r2, #0x28 mul r2, r1 add r1, r3, r2 mov r2, #0x14 bl FUN_02021EF0 bl FUN_02022830 _0206B4DC: pop {r3, pc} nop _0206B4E0: .word 0x00011EE4 thumb_func_start FUN_0206B4E4 FUN_0206B4E4: ; 0x0206B4E4 push {r3-r7, lr} mov r2, #0x0 mvn r2, r2 cmp r1, r2 bne _0206B4F0 ldr r1, [r0, #0x0] _0206B4F0: cmp r1, #0x12 bhs _0206B520 add r2, r0, #0x4 mov r0, #0xff lsl r0, r0, #0x4 mov r4, #0x0 mul r0, r1 add r6, r4, #0x0 add r5, r2, r0 mov r7, #0xab _0206B504: add r0, r5, #0x0 add r1, r7, #0x0 mov r2, #0x0 bl FUN_020672BC cmp r0, #0x0 beq _0206B514 add r4, r4, #0x1 _0206B514: add r6, r6, #0x1 add r5, #0x88 cmp r6, #0x1e blt _0206B504 add r0, r4, #0x0 pop {r3-r7, pc} _0206B520: bl ErrorHandling mov r0, #0x0 pop {r3-r7, pc} thumb_func_start FUN_0206B528 FUN_0206B528: ; 0x0206B528 push {r3-r7, lr} mov r2, #0x0 mvn r2, r2 cmp r1, r2 bne _0206B534 ldr r1, [r0, #0x0] _0206B534: cmp r1, #0x12 bhs _0206B572 add r2, r0, #0x4 mov r0, #0xff lsl r0, r0, #0x4 mov r4, #0x0 mul r0, r1 add r6, r4, #0x0 add r5, r2, r0 mov r7, #0xab _0206B548: add r0, r5, #0x0 add r1, r7, #0x0 mov r2, #0x0 bl FUN_020672BC cmp r0, #0x0 beq _0206B566 add r0, r5, #0x0 mov r1, #0x4c mov r2, #0x0 bl FUN_020672BC cmp r0, #0x0 bne _0206B566 add r4, r4, #0x1 _0206B566: add r6, r6, #0x1 add r5, #0x88 cmp r6, #0x1e blt _0206B548 add r0, r4, #0x0 pop {r3-r7, pc} _0206B572: bl ErrorHandling mov r0, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0206B57C FUN_0206B57C: ; 0x0206B57C push {r4-r6, lr} mov r5, #0x0 add r6, r0, #0x0 add r4, r5, #0x0 _0206B584: add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_0206B528 add r5, r5, #0x1 add r4, r4, r0 cmp r5, #0x12 blo _0206B584 add r0, r4, #0x0 pop {r4-r6, pc} thumb_func_start FUN_0206B598 FUN_0206B598: ; 0x0206B598 push {r3-r7, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r6, r2, #0x0 add r7, r3, #0x0 cmp r4, #0x12 blo _0206B5B2 mov r0, #0x0 mvn r0, r0 cmp r4, r0 beq _0206B5B2 bl ErrorHandling _0206B5B2: cmp r6, #0x1e blo _0206B5BA bl ErrorHandling _0206B5BA: mov r0, #0x0 mvn r0, r0 cmp r4, r0 bne _0206B5C4 ldr r4, [r5, #0x0] _0206B5C4: mov r0, #0xff lsl r0, r0, #0x4 add r1, r5, #0x4 mul r0, r4 add r1, r1, r0 mov r0, #0x88 mul r0, r6 add r0, r1, r0 ldr r2, [sp, #0x18] add r1, r7, #0x0 bl FUN_02067960 bl FUN_02022830 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0206B5E4 FUN_0206B5E4: ; 0x0206B5E4 push {r4-r6, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r6, r2, #0x0 cmp r4, #0x12 blo _0206B5FC mov r0, #0x0 mvn r0, r0 cmp r4, r0 beq _0206B5FC bl ErrorHandling _0206B5FC: cmp r6, #0x1e blo _0206B604 bl ErrorHandling _0206B604: mov r0, #0x0 mvn r0, r0 cmp r4, r0 bne _0206B60E ldr r4, [r5, #0x0] _0206B60E: mov r0, #0xff lsl r0, r0, #0x4 add r1, r5, #0x4 mul r0, r4 add r1, r1, r0 mov r0, #0x88 mul r0, r6 add r0, r1, r0 pop {r4-r6, pc} thumb_func_start FUN_0206B620 FUN_0206B620: ; 0x0206B620 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x8 blo _0206B62E bl ErrorHandling _0206B62E: ldr r0, _0206B640 ; =0x000121C6 mov r1, #0x1 ldrb r2, [r5, r0] lsl r1, r4 orr r1, r2 strb r1, [r5, r0] bl FUN_02022830 pop {r3-r5, pc} .balign 4 _0206B640: .word 0x000121C6 thumb_func_start FUN_0206B644 FUN_0206B644: ; 0x0206B644 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 cmp r4, #0x8 blo _0206B652 bl ErrorHandling _0206B652: ldr r0, _0206B664 ; =0x000121C6 ldrb r2, [r5, r0] mov r0, #0x1 add r1, r0, #0x0 lsl r1, r4 tst r1, r2 bne _0206B662 mov r0, #0x0 _0206B662: pop {r3-r5, pc} .balign 4 _0206B664: .word 0x000121C6 thumb_func_start FUN_0206B668 FUN_0206B668: ; 0x0206B668 push {r4-r6, lr} mov r4, #0x0 add r6, r0, #0x0 add r5, r4, #0x0 _0206B670: add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_0206B644 cmp r0, #0x0 beq _0206B67E add r5, r5, #0x1 _0206B67E: add r4, r4, #0x1 cmp r4, #0x8 blo _0206B670 add r0, r5, #0x0 pop {r4-r6, pc} thumb_func_start FUN_0206B688 FUN_0206B688: ; 0x0206B688 push {r3-r7, lr} add r5, r0, #0x0 bl FUN_02066A6C add r7, r0, #0x0 add r0, r5, #0x0 mov r1, #0x5 mov r2, #0x0 bl FUN_020672BC add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x4c mov r2, #0x0 bl FUN_020672BC add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_0206B754 add r2, r0, #0x0 add r0, r4, #0x0 add r1, r6, #0x0 bl FUN_0206B6D4 add r4, r0, #0x0 add r0, r5, #0x0 add r1, r7, #0x0 bl FUN_02066A94 add r0, r4, #0x0 pop {r3-r7, pc} thumb_func_start FUN_0206B6C8 FUN_0206B6C8: ; 0x0206B6C8 push {r3, lr} bl FUN_020690E4 bl FUN_0206B688 pop {r3, pc} thumb_func_start FUN_0206B6D4 FUN_0206B6D4: ; 0x0206B6D4 cmp r1, #0x1 bne _0206B6E8 ldr r1, _0206B748 ; =0x000001EA cmp r0, r1 bne _0206B6E2 add r1, #0xc b _0206B6E4 _0206B6E2: add r1, #0xb _0206B6E4: add r0, r1, #0x0 bx lr _0206B6E8: cmp r2, #0x0 beq _0206B73A ldr r3, _0206B74C ; =0x00000182 cmp r0, r3 bne _0206B6F8 add r3, #0x74 add r0, r2, r3 bx lr _0206B6F8: cmp r0, #0xc9 bne _0206B702 add r3, #0x78 add r0, r2, r3 bx lr _0206B702: add r1, r3, #0x0 add r1, #0x1a cmp r0, r1 bne _0206B710 add r3, #0x93 add r0, r2, r3 bx lr _0206B710: add r1, r3, #0x0 add r1, #0x1b cmp r0, r1 bne _0206B71E add r3, #0x95 add r0, r2, r3 bx lr _0206B71E: add r1, r3, #0x0 add r1, #0x24 cmp r0, r1 bne _0206B72C add r3, #0x97 add r0, r2, r3 bx lr _0206B72C: add r1, r3, #0x0 add r1, #0x25 cmp r0, r1 bne _0206B73A add r3, #0x98 add r0, r2, r3 bx lr _0206B73A: ldr r1, _0206B750 ; =0x000001ED cmp r0, r1 bls _0206B742 mov r0, #0x0 _0206B742: add r0, r0, #0x7 bx lr nop _0206B748: .word 0x000001EA _0206B74C: .word 0x00000182 _0206B750: .word 0x000001ED thumb_func_start FUN_0206B754 FUN_0206B754: ; 0x0206B754 push {r4, lr} mov r1, #0xad mov r2, #0x0 add r4, r0, #0x0 bl FUN_020672BC ldr r2, _0206B7B8 ; =0x0000019D cmp r0, r2 bhi _0206B784 sub r1, r2, #0x1 cmp r0, r1 blo _0206B774 beq _0206B7A4 cmp r0, r2 beq _0206B7A4 b _0206B7B4 _0206B774: cmp r0, #0xc9 bhi _0206B77C beq _0206B79C b _0206B7B4 _0206B77C: sub r2, #0x1b cmp r0, r2 beq _0206B7A4 b _0206B7B4 _0206B784: add r1, r2, #0x0 add r1, #0x9 cmp r0, r1 bhi _0206B794 add r2, #0x9 cmp r0, r2 beq _0206B7A4 b _0206B7B4 _0206B794: add r2, #0xa cmp r0, r2 beq _0206B7A4 b _0206B7B4 _0206B79C: add r0, r4, #0x0 bl FUN_020690D4 pop {r4, pc} _0206B7A4: add r0, r4, #0x0 mov r1, #0x70 mov r2, #0x0 bl FUN_020672BC lsl r0, r0, #0x10 lsr r0, r0, #0x10 pop {r4, pc} _0206B7B4: mov r0, #0x0 pop {r4, pc} .balign 4 _0206B7B8: .word 0x0000019D thumb_func_start FUN_0206B7BC FUN_0206B7BC: ; 0x0206B7BC cmp r2, #0x1 bne _0206B7CE ldr r1, _0206B830 ; =0x000001EA cmp r0, r1 bne _0206B7CA add r0, r1, #0x5 b _0206B82A _0206B7CA: add r0, r1, #0x4 b _0206B82A _0206B7CE: ldr r3, _0206B834 ; =0x000001ED cmp r0, r3 bls _0206B7D8 mov r0, #0x0 b _0206B82A _0206B7D8: cmp r1, #0x0 beq _0206B82A add r2, r3, #0x0 sub r2, #0x6b cmp r0, r2 bne _0206B7EA add r0, r3, #0x2 add r0, r1, r0 b _0206B82A _0206B7EA: cmp r0, #0xc9 bne _0206B7F4 add r0, r3, #0x5 add r0, r1, r0 b _0206B82A _0206B7F4: add r2, r3, #0x0 sub r2, #0x51 cmp r0, r2 bne _0206B802 add r3, #0x21 add r0, r1, r3 b _0206B82A _0206B802: add r2, r3, #0x0 sub r2, #0x50 cmp r0, r2 bne _0206B810 add r3, #0x23 add r0, r1, r3 b _0206B82A _0206B810: add r2, r3, #0x0 sub r2, #0x47 cmp r0, r2 bne _0206B81E add r3, #0x25 add r0, r1, r3 b _0206B82A _0206B81E: add r2, r3, #0x0 sub r2, #0x46 cmp r0, r2 bne _0206B82A add r3, #0x26 add r0, r1, r3 _0206B82A: ldr r1, _0206B838 ; =0x020F8074 ldrb r0, [r1, r0] bx lr .balign 4 _0206B830: .word 0x000001EA _0206B834: .word 0x000001ED _0206B838: .word 0x020F8074 thumb_func_start FUN_0206B83C FUN_0206B83C: ; 0x0206B83C push {r3-r7, lr} add r5, r0, #0x0 bl FUN_02066A6C add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0206B754 add r6, r0, #0x0 add r0, r5, #0x0 mov r1, #0x5 mov r2, #0x0 bl FUN_020672BC add r7, r0, #0x0 add r0, r5, #0x0 mov r1, #0x4c mov r2, #0x0 bl FUN_020672BC str r0, [sp, #0x0] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02066A94 ldr r2, [sp, #0x0] add r0, r7, #0x0 add r1, r6, #0x0 bl FUN_0206B7BC pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0206B87C FUN_0206B87C: ; 0x0206B87C push {r3, lr} bl FUN_020690E4 bl FUN_0206B83C pop {r3, pc} thumb_func_start FUN_0206B888 FUN_0206B888: ; 0x0206B888 mov r0, #0x0 bx lr thumb_func_start FUN_0206B88C FUN_0206B88C: ; 0x0206B88C mov r0, #0x2 bx lr thumb_func_start FUN_0206B890 FUN_0206B890: ; 0x0206B890 mov r0, #0x4 bx lr thumb_func_start FUN_0206B894 FUN_0206B894: ; 0x0206B894 mov r0, #0x6 bx lr thumb_func_start FUN_0206B898 FUN_0206B898: ; 0x0206B898 mov r0, #0x1 bx lr thumb_func_start FUN_0206B89C FUN_0206B89C: ; 0x0206B89C mov r0, #0x3 bx lr thumb_func_start FUN_0206B8A0 FUN_0206B8A0: ; 0x0206B8A0 mov r0, #0x5 bx lr thumb_func_start FUN_0206B8A4 FUN_0206B8A4: ; 0x0206B8A4 mov r0, #0x59 lsl r0, r0, #0x4 bx lr .balign 4 thumb_func_start FUN_0206B8AC FUN_0206B8AC: ; 0x0206B8AC push {r4, lr} mov r1, #0x59 lsl r1, r1, #0x4 bl FUN_02016998 add r4, r0, #0x0 bl FUN_0206B8C0 add r0, r4, #0x0 pop {r4, pc} thumb_func_start FUN_0206B8C0 FUN_0206B8C0: ; 0x0206B8C0 ldr r3, _0206B8C8 ; =FUN_0206B8CC mov r1, #0x6 bx r3 nop _0206B8C8: .word FUN_0206B8CC thumb_func_start FUN_0206B8CC FUN_0206B8CC: ; 0x0206B8CC push {r4-r6, lr} add r6, r1, #0x0 add r5, r0, #0x0 cmp r6, #0x6 ble _0206B8DA bl ErrorHandling _0206B8DA: mov r2, #0x59 add r0, r5, #0x0 mov r1, #0x0 lsl r2, r2, #0x4 blx FUN_020DF4A4 mov r4, #0x0 str r4, [r5, #0x4] str r6, [r5, #0x0] add r5, #0x8 _0206B8EE: add r0, r5, #0x0 bl FUN_02066978 add r4, r4, #0x1 add r5, #0xec cmp r4, #0x6 blt _0206B8EE pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0206B900 FUN_0206B900: ; 0x0206B900 push {r4-r5} add r3, r0, #0x0 add r2, r1, #0x0 ldr r1, [r3, #0x4] ldr r0, [r3, #0x0] cmp r1, r0 blt _0206B914 mov r0, #0x0 pop {r4-r5} bx lr _0206B914: mov r0, #0xec mul r0, r1 add r5, r3, r0 add r5, #0x8 mov r4, #0x1d _0206B91E: ldmia r2!, {r0-r1} stmia r5!, {r0-r1} sub r4, r4, #0x1 bne _0206B91E ldr r0, [r2, #0x0] str r0, [r5, #0x0] ldr r0, [r3, #0x4] add r0, r0, #0x1 str r0, [r3, #0x4] mov r0, #0x1 pop {r4-r5} bx lr .balign 4 thumb_func_start FUN_0206B938 FUN_0206B938: ; 0x0206B938 push {r3-r7, lr} add r7, r0, #0x0 add r4, r1, #0x0 bpl _0206B944 bl ErrorHandling _0206B944: ldr r0, [r7, #0x4] cmp r4, r0 blt _0206B94E bl ErrorHandling _0206B94E: ldr r0, [r7, #0x0] cmp r4, r0 blt _0206B958 bl ErrorHandling _0206B958: ldr r0, [r7, #0x4] cmp r0, #0x0 bgt _0206B962 bl ErrorHandling _0206B962: ldr r0, [r7, #0x4] sub r0, r0, #0x1 cmp r4, r0 bge _0206B992 mov r0, #0xec mul r0, r4 add r6, r7, r0 _0206B970: add r5, r6, #0x0 add r3, r6, #0x0 add r5, #0xf4 add r3, #0x8 mov r2, #0x1d _0206B97A: ldmia r5!, {r0-r1} stmia r3!, {r0-r1} sub r2, r2, #0x1 bne _0206B97A ldr r0, [r5, #0x0] add r4, r4, #0x1 str r0, [r3, #0x0] ldr r0, [r7, #0x4] add r6, #0xec sub r0, r0, #0x1 cmp r4, r0 blt _0206B970 _0206B992: add r1, r7, #0x0 mov r0, #0xec add r1, #0x8 mul r0, r4 add r0, r1, r0 bl FUN_02066978 ldr r0, [r7, #0x4] sub r0, r0, #0x1 str r0, [r7, #0x4] mov r0, #0x1 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0206B9AC FUN_0206B9AC: ; 0x0206B9AC ldr r0, [r0, #0x4] bx lr thumb_func_start FUN_0206B9B0 FUN_0206B9B0: ; 0x0206B9B0 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bpl _0206B9BC bl ErrorHandling _0206B9BC: ldr r0, [r5, #0x4] cmp r4, r0 blt _0206B9C6 bl ErrorHandling _0206B9C6: ldr r0, [r5, #0x0] cmp r4, r0 blt _0206B9D0 bl ErrorHandling _0206B9D0: mov r0, #0xec add r5, #0x8 mul r0, r4 add r0, r5, r0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0206B9DC FUN_0206B9DC: ; 0x0206B9DC push {r3-r7, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r6, r2, #0x0 cmp r4, #0x0 bge _0206B9EC bl ErrorHandling _0206B9EC: ldr r0, [r5, #0x4] cmp r4, r0 blt _0206B9F6 bl ErrorHandling _0206B9F6: ldr r0, [r5, #0x0] cmp r4, r0 blt _0206BA00 bl ErrorHandling _0206BA00: add r1, r5, #0x0 mov r0, #0xec add r1, #0x8 mul r0, r4 add r4, r1, r0 add r0, r4, #0x0 mov r1, #0xab mov r2, #0x0 bl FUN_020671BC add r7, r0, #0x0 add r0, r6, #0x0 mov r1, #0xab mov r2, #0x0 bl FUN_020671BC sub r2, r7, r0 mov r3, #0x1d _0206BA24: ldmia r6!, {r0-r1} stmia r4!, {r0-r1} sub r3, r3, #0x1 bne _0206BA24 ldr r0, [r6, #0x0] str r0, [r4, #0x0] ldr r0, [r5, #0x4] add r0, r0, r2 str r0, [r5, #0x4] pop {r3-r7, pc} thumb_func_start FUN_0206BA38 FUN_0206BA38: ; 0x0206BA38 push {r3-r7, lr} add r5, r1, #0x0 add r4, r0, #0x0 add r6, r2, #0x0 cmp r5, #0x0 bge _0206BA48 bl ErrorHandling _0206BA48: ldr r0, [r4, #0x4] cmp r5, r0 blt _0206BA52 bl ErrorHandling _0206BA52: ldr r0, [r4, #0x0] cmp r5, r0 blt _0206BA5C bl ErrorHandling _0206BA5C: cmp r6, #0x0 bge _0206BA64 bl ErrorHandling _0206BA64: ldr r0, [r4, #0x4] cmp r6, r0 blt _0206BA6E bl ErrorHandling _0206BA6E: ldr r0, [r4, #0x0] cmp r6, r0 blt _0206BA78 bl ErrorHandling _0206BA78: mov r0, #0x0 mov r1, #0xec bl FUN_02016998 mov r12, r0 add r1, r4, #0x0 mov r0, #0xec add r1, #0x8 mul r0, r5 add r3, r1, r0 add r5, r3, #0x0 mov r2, r12 mov r7, #0x1d _0206BA92: ldmia r5!, {r0-r1} stmia r2!, {r0-r1} sub r7, r7, #0x1 bne _0206BA92 ldr r0, [r5, #0x0] add r4, #0x8 str r0, [r2, #0x0] mov r0, #0xec mul r0, r6 add r2, r4, r0 add r5, r2, #0x0 mov r4, #0x1d _0206BAAA: ldmia r5!, {r0-r1} stmia r3!, {r0-r1} sub r4, r4, #0x1 bne _0206BAAA ldr r0, [r5, #0x0] mov r4, r12 str r0, [r3, #0x0] mov r3, #0x1d _0206BABA: ldmia r4!, {r0-r1} stmia r2!, {r0-r1} sub r3, r3, #0x1 bne _0206BABA ldr r0, [r4, #0x0] str r0, [r2, #0x0] mov r0, r12 bl FUN_02016A18 mov r0, #0x0 pop {r3-r7, pc} thumb_func_start FUN_0206BAD0 FUN_0206BAD0: ; 0x0206BAD0 push {r3-r4} add r4, r0, #0x0 add r3, r1, #0x0 mov r2, #0xb2 _0206BAD8: ldmia r4!, {r0-r1} stmia r3!, {r0-r1} sub r2, r2, #0x1 bne _0206BAD8 pop {r3-r4} bx lr thumb_func_start FUN_0206BAE4 FUN_0206BAE4: ; 0x0206BAE4 push {r3-r7, lr} add r6, r0, #0x0 ldr r0, [r6, #0x4] add r7, r1, #0x0 mov r4, #0x0 cmp r0, #0x0 ble _0206BB0E add r5, r6, #0x0 add r5, #0x8 _0206BAF6: add r0, r5, #0x0 mov r1, #0x5 mov r2, #0x0 bl FUN_020671BC cmp r7, r0 beq _0206BB0E ldr r0, [r6, #0x4] add r4, r4, #0x1 add r5, #0xec cmp r4, r0 blt _0206BAF6 _0206BB0E: ldr r0, [r6, #0x4] cmp r4, r0 beq _0206BB18 mov r0, #0x1 pop {r3-r7, pc} _0206BB18: mov r0, #0x0 pop {r3-r7, pc} thumb_func_start FUN_0206BB1C FUN_0206BB1C: ; 0x0206BB1C ldr r3, _0206BB24 ; =FUN_02022610 mov r1, #0x2 bx r3 nop _0206BB24: .word FUN_02022610 thumb_func_start FUN_0206BB28 FUN_0206BB28: ; 0x0206BB28 push {r3, lr} bl FUN_02024DA0 bl FUN_0206BB34 pop {r3, pc} thumb_func_start FUN_0206BB34 FUN_0206BB34: ; 0x0206BB34 push {r3, lr} bl FUN_02024CA4 cmp r0, #0x1 bne _0206BB42 mov r0, #0x1 pop {r3, pc} _0206BB42: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0206BB48 FUN_0206BB48: ; 0x0206BB48 push {r3, lr} cmp r0, #0x0 bne _0206BB58 lsl r0, r1, #0x10 lsr r0, r0, #0x10 bl FUN_02069B40 add r1, r0, #0x0 _0206BB58: add r0, r1, #0x0 pop {r3, pc} thumb_func_start FUN_0206BB5C FUN_0206BB5C: ; 0x0206BB5C push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02087A6C mov r1, #0x0 add r2, r5, #0x0 add r4, r0, #0x0 bl FUN_02087A98 add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0206BB74 FUN_0206BB74: ; 0x0206BB74 push {r4, lr} add r4, r0, #0x0 bl FUN_02087B0C add r0, r4, #0x0 bl FUN_02087A84 pop {r4, pc} thumb_func_start FUN_0206BB84 FUN_0206BB84: ; 0x0206BB84 push {r3-r7, lr} add r7, r1, #0x0 add r4, r0, #0x0 str r2, [sp, #0x0] add r0, r7, #0x0 mov r1, #0x5 mov r2, #0x0 bl FUN_020671BC lsl r0, r0, #0x10 lsr r6, r0, #0x10 cmp r4, #0x0 bne _0206BBA2 mov r0, #0x1 pop {r3-r7, pc} _0206BBA2: add r0, r4, #0x0 mov r1, #0x2 bl FUN_02023B0C add r5, r0, #0x0 add r0, r7, #0x0 mov r1, #0xa0 mov r2, #0x0 bl FUN_020671BC cmp r0, r5 bls _0206BBBE mov r0, #0x0 pop {r3-r7, pc} _0206BBBE: add r0, r7, #0x0 mov r1, #0x4c mov r2, #0x0 bl FUN_020671BC cmp r0, #0x0 beq _0206BBD0 mov r0, #0x0 pop {r3-r7, pc} _0206BBD0: add r0, r4, #0x0 mov r1, #0x4 bl FUN_02023B0C cmp r0, #0x0 bne _0206BBEA add r0, r6, #0x0 bl FUN_020695A8 cmp r6, r0 beq _0206BBEA mov r0, #0x0 pop {r3-r7, pc} _0206BBEA: add r0, r4, #0x0 mov r1, #0x5 bl FUN_02023B0C add r5, r0, #0x0 beq _0206BC14 ldr r0, [sp, #0x0] add r1, r6, #0x0 bl FUN_02087B58 cmp r5, #0x0 ble _0206BC0A cmp r0, r5 bge _0206BC14 mov r0, #0x0 pop {r3-r7, pc} _0206BC0A: neg r1, r5 cmp r0, r1 ble _0206BC14 mov r0, #0x0 pop {r3-r7, pc} _0206BC14: add r0, r4, #0x0 mov r1, #0x7 bl FUN_02023B0C mov r1, #0xa add r5, r0, #0x0 mul r5, r1 beq _0206BC42 ldr r0, [sp, #0x0] add r1, r6, #0x0 bl FUN_02087B78 cmp r5, #0x0 ble _0206BC38 cmp r0, r5 bge _0206BC42 mov r0, #0x0 pop {r3-r7, pc} _0206BC38: neg r1, r5 cmp r0, r1 ble _0206BC42 mov r0, #0x0 pop {r3-r7, pc} _0206BC42: add r0, r4, #0x0 mov r1, #0xb bl FUN_02023B0C cmp r0, #0x0 bne _0206BC5C add r0, r7, #0x0 bl FUN_0206A998 cmp r0, #0x0 beq _0206BC5C mov r0, #0x0 pop {r3-r7, pc} _0206BC5C: mov r0, #0x1 pop {r3-r7, pc} thumb_func_start FUN_0206BC60 FUN_0206BC60: ; 0x0206BC60 push {r3-r7, lr} sub sp, #0x30 str r0, [sp, #0x0] mov r0, #0x0 str r0, [sp, #0x14] str r0, [sp, #0x10] ldr r0, [sp, #0x0] str r1, [sp, #0x4] str r2, [sp, #0x8] str r3, [sp, #0xc] cmp r0, #0x0 bne _0206BC7E ldr r0, [sp, #0x14] add sp, #0x30 pop {r3-r7, pc} _0206BC7E: ldr r1, [sp, #0x14] add r2, sp, #0x24 add r3, sp, #0x18 mov r0, #0x0 _0206BC86: ldr r4, [sp, #0xc] strh r0, [r2, #0x0] strh r0, [r3, #0x0] ldrb r4, [r4, r1] cmp r4, #0x0 beq _0206BC98 ldr r4, [sp, #0x14] add r4, r4, #0x1 str r4, [sp, #0x14] _0206BC98: add r1, r1, #0x1 add r2, r2, #0x2 add r3, r3, #0x2 cmp r1, #0x6 blt _0206BC86 ldr r0, [sp, #0x0] mov r1, #0x1 bl FUN_02023B0C ldr r1, [sp, #0x14] cmp r1, r0 beq _0206BCB6 add sp, #0x30 mov r0, #0x4 pop {r3-r7, pc} _0206BCB6: mov r5, #0x0 add r7, sp, #0x24 add r6, sp, #0x18 _0206BCBC: ldr r0, [sp, #0xc] ldrb r1, [r0, r5] cmp r1, #0x0 beq _0206BD0A ldr r0, [sp, #0x4] sub r1, r1, #0x1 bl FUN_0206B9B0 add r4, r0, #0x0 ldr r0, [sp, #0x0] ldr r2, [sp, #0x8] add r1, r4, #0x0 bl FUN_0206BB84 cmp r0, #0x0 bne _0206BCE2 add sp, #0x30 mov r0, #0x5 pop {r3-r7, pc} _0206BCE2: add r0, r4, #0x0 mov r1, #0x5 mov r2, #0x0 bl FUN_020671BC strh r0, [r7, #0x0] add r0, r4, #0x0 mov r1, #0x6 mov r2, #0x0 bl FUN_020671BC strh r0, [r6, #0x0] add r0, r4, #0x0 mov r1, #0xa0 mov r2, #0x0 bl FUN_020671BC ldr r1, [sp, #0x10] add r0, r1, r0 str r0, [sp, #0x10] _0206BD0A: add r5, r5, #0x1 add r7, r7, #0x2 add r6, r6, #0x2 cmp r5, #0x6 blt _0206BCBC ldr r0, [sp, #0x0] mov r1, #0x3 bl FUN_02023B0C ldr r1, [sp, #0x10] cmp r1, r0 ble _0206BD2C cmp r0, #0x0 beq _0206BD2C add sp, #0x30 mov r0, #0x1 pop {r3-r7, pc} _0206BD2C: ldr r0, [sp, #0x0] mov r1, #0xa bl FUN_02023B0C cmp r0, #0x0 bne _0206BD70 ldr r0, [sp, #0x14] cmp r0, #0x1 ble _0206BD70 add r4, sp, #0x24 mov r0, #0x0 add r2, r4, #0x0 _0206BD44: add r3, r0, #0x1 cmp r3, #0x6 bge _0206BD68 ldrh r6, [r4, #0x0] lsl r1, r3, #0x1 add r5, r2, r1 _0206BD50: ldrh r1, [r5, #0x0] cmp r6, r1 bne _0206BD60 cmp r6, #0x0 beq _0206BD60 add sp, #0x30 mov r0, #0x2 pop {r3-r7, pc} _0206BD60: add r3, r3, #0x1 add r5, r5, #0x2 cmp r3, #0x6 blt _0206BD50 _0206BD68: add r0, r0, #0x1 add r4, r4, #0x2 cmp r0, #0x5 blt _0206BD44 _0206BD70: ldr r0, [sp, #0x0] mov r1, #0x9 bl FUN_02023B0C cmp r0, #0x0 bne _0206BDC0 ldr r0, [sp, #0x14] cmp r0, #0x1 ble _0206BDC0 add r2, sp, #0x18 mov r5, #0x0 add r7, sp, #0x24 mov r12, r2 _0206BD8A: add r6, r5, #0x1 cmp r6, #0x6 bge _0206BDB6 lsl r1, r6, #0x1 mov r0, r12 add r3, r0, r1 ldrh r4, [r2, #0x0] ldrh r0, [r7, #0x0] _0206BD9A: ldrh r1, [r3, #0x0] cmp r4, r1 bne _0206BDAE cmp r0, #0x0 beq _0206BDAE cmp r4, #0x0 beq _0206BDAE add sp, #0x30 mov r0, #0x3 pop {r3-r7, pc} _0206BDAE: add r6, r6, #0x1 add r3, r3, #0x2 cmp r6, #0x6 blt _0206BD9A _0206BDB6: add r5, r5, #0x1 add r2, r2, #0x2 add r7, r7, #0x2 cmp r5, #0x5 blt _0206BD8A _0206BDC0: mov r0, #0x0 add sp, #0x30 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0206BDC8 FUN_0206BDC8: ; 0x0206BDC8 push {r4-r7, lr} sub sp, #0x1c str r0, [sp, #0xc] ldr r0, [sp, #0x30] str r1, [sp, #0x10] lsl r0, r0, #0x1 ldr r1, [sp, #0xc] str r0, [sp, #0x18] ldrh r0, [r1, r0] add r6, r2, #0x0 str r3, [sp, #0x14] ldr r5, [sp, #0x38] ldr r7, [sp, #0x34] cmp r0, #0x0 beq _0206BE12 ldr r0, [sp, #0x18] ldrh r0, [r6, r0] cmp r0, #0x0 bne _0206BE12 ldr r1, [sp, #0x10] ldr r0, [sp, #0x18] ldrh r1, [r1, r0] add r0, r3, #0x0 sub r0, r0, r1 str r0, [sp, #0x14] bpl _0206BE02 add sp, #0x1c mov r0, #0x0 pop {r4-r7, pc} _0206BE02: sub r7, r7, #0x1 bne _0206BE0C add sp, #0x1c mov r0, #0x1 pop {r4-r7, pc} _0206BE0C: ldr r0, [sp, #0x18] mov r1, #0x1 strh r1, [r6, r0] _0206BE12: ldr r0, [sp, #0x30] add r4, r0, #0x1 cmp r4, r5 bge _0206BE3C _0206BE1A: str r4, [sp, #0x0] str r7, [sp, #0x4] ldr r0, [sp, #0xc] ldr r1, [sp, #0x10] ldr r3, [sp, #0x14] add r2, r6, #0x0 str r5, [sp, #0x8] bl FUN_0206BDC8 cmp r0, #0x0 beq _0206BE36 add sp, #0x1c mov r0, #0x1 pop {r4-r7, pc} _0206BE36: add r4, r4, #0x1 cmp r4, r5 blt _0206BE1A _0206BE3C: ldr r1, [sp, #0x18] mov r0, #0x0 strh r0, [r6, r1] add sp, #0x1c pop {r4-r7, pc} .balign 4 thumb_func_start FUN_0206BE48 FUN_0206BE48: ; 0x0206BE48 push {r4-r7, lr} sub sp, #0x54 str r0, [sp, #0xc] add r0, r1, #0x0 str r1, [sp, #0x10] str r2, [sp, #0x14] bl FUN_0206B9AC str r0, [sp, #0x20] add r6, r0, #0x0 add r0, sp, #0x30 mov r1, #0x0 mov r2, #0xc blx MI_CpuFill8 ldr r0, [sp, #0x20] mov r7, #0x0 cmp r0, #0x0 ble _0206BEB2 add r4, sp, #0x48 add r5, sp, #0x3c _0206BE72: ldr r0, [sp, #0x10] add r1, r7, #0x0 bl FUN_0206B9B0 str r0, [sp, #0x24] mov r1, #0x5 mov r2, #0x0 bl FUN_020671BC strh r0, [r4, #0x0] ldr r0, [sp, #0x24] mov r1, #0xa0 mov r2, #0x0 bl FUN_020671BC strh r0, [r5, #0x0] ldr r0, [sp, #0xc] ldr r1, [sp, #0x24] ldr r2, [sp, #0x14] bl FUN_0206BB84 cmp r0, #0x0 bne _0206BEA6 mov r0, #0x0 strh r0, [r4, #0x0] sub r6, r6, #0x1 _0206BEA6: ldr r0, [sp, #0x20] add r7, r7, #0x1 add r4, r4, #0x2 add r5, r5, #0x2 cmp r7, r0 blt _0206BE72 _0206BEB2: ldr r0, [sp, #0xc] mov r1, #0xa bl FUN_02023B0C cmp r0, #0x0 bne _0206BF32 ldr r0, [sp, #0x20] cmp r0, #0x1 ble _0206BF32 mov r0, #0x0 str r0, [sp, #0x18] ldr r0, [sp, #0x20] sub r0, r0, #0x1 str r0, [sp, #0x28] cmp r0, #0x0 ble _0206BF32 add r0, sp, #0x3c add r3, sp, #0x48 str r0, [sp, #0x1c] str r3, [sp, #0x2c] mov r12, r0 _0206BEDC: ldr r0, [sp, #0x18] add r2, r0, #0x1 ldr r0, [sp, #0x20] cmp r2, r0 bge _0206BF1E ldr r1, [sp, #0x2c] lsl r0, r2, #0x1 add r4, r1, r0 mov r1, r12 add r5, r1, r0 ldr r0, [sp, #0x1c] ldrh r7, [r0, #0x0] _0206BEF4: ldrh r1, [r3, #0x0] ldrh r0, [r4, #0x0] cmp r1, r0 bne _0206BF12 cmp r1, #0x0 beq _0206BF12 ldrh r0, [r5, #0x0] cmp r7, r0 bls _0206BF0C mov r0, #0x0 strh r0, [r3, #0x0] b _0206BF10 _0206BF0C: mov r0, #0x0 strh r0, [r4, #0x0] _0206BF10: sub r6, r6, #0x1 _0206BF12: ldr r0, [sp, #0x20] add r2, r2, #0x1 add r4, r4, #0x2 add r5, r5, #0x2 cmp r2, r0 blt _0206BEF4 _0206BF1E: ldr r0, [sp, #0x1c] add r3, r3, #0x2 add r0, r0, #0x2 str r0, [sp, #0x1c] ldr r0, [sp, #0x18] add r1, r0, #0x1 ldr r0, [sp, #0x28] str r1, [sp, #0x18] cmp r1, r0 blt _0206BEDC _0206BF32: ldr r0, [sp, #0xc] mov r1, #0x1 bl FUN_02023B0C add r7, r0, #0x0 cmp r6, r7 bge _0206BF46 add sp, #0x54 mov r0, #0x4 pop {r4-r7, pc} _0206BF46: ldr r0, [sp, #0xc] mov r1, #0x3 bl FUN_02023B0C add r5, r0, #0x0 bne _0206BF58 add sp, #0x54 mov r0, #0x0 pop {r4-r7, pc} _0206BF58: ldr r0, [sp, #0x20] mov r4, #0x0 cmp r0, #0x0 ble _0206BF88 add r6, sp, #0x48 _0206BF62: str r4, [sp, #0x0] ldr r0, [sp, #0x20] str r7, [sp, #0x4] str r0, [sp, #0x8] add r0, r6, #0x0 add r1, sp, #0x3c add r2, sp, #0x30 add r3, r5, #0x0 bl FUN_0206BDC8 cmp r0, #0x0 beq _0206BF80 add sp, #0x54 mov r0, #0x0 pop {r4-r7, pc} _0206BF80: ldr r0, [sp, #0x20] add r4, r4, #0x1 cmp r4, r0 blt _0206BF62 _0206BF88: mov r0, #0x1 add sp, #0x54 pop {r4-r7, pc} .balign 4 thumb_func_start FUN_0206BF90 FUN_0206BF90: ; 0x0206BF90 push {r4-r6, lr} add r5, r0, #0x0 mov r0, #0x5 mov r1, #0x8 bl FUN_02016998 add r4, r0, #0x0 mov r0, #0x5 mov r1, #0x8 bl FUN_02016998 add r6, r0, #0x0 ldr r0, _0206BFE4 ; =0x020F828C mov r1, #0xc add r2, r5, #0x0 bl FUN_0202D8D0 str r5, [r4, #0x0] mov r0, #0x0 strb r0, [r4, #0x4] str r5, [r6, #0x0] strb r0, [r6, #0x4] add r0, r5, #0x0 add r1, r4, #0x4 bl FUN_02231344 add r0, r5, #0x0 add r1, r6, #0x4 bl FUN_02231350 ldr r0, _0206BFE8 ; =FUN_0206C550 add r1, r4, #0x0 mov r2, #0x0 bl FUN_0200CA44 ldr r0, _0206BFEC ; =FUN_0206C5DC add r1, r6, #0x0 mov r2, #0x0 bl FUN_0200CA44 pop {r4-r6, pc} nop _0206BFE4: .word 0x020F828C _0206BFE8: .word FUN_0206C550 _0206BFEC: .word FUN_0206C5DC thumb_func_start FUN_0206BFF0 FUN_0206BFF0: ; 0x0206BFF0 ldr r3, _0206BFFC ; =FUN_0202D8D0 add r2, r0, #0x0 ldr r0, _0206C000 ; =0x020F828C mov r1, #0xc bx r3 nop _0206BFFC: .word FUN_0202D8D0 _0206C000: .word 0x020F828C thumb_func_start FUN_0206C004 FUN_0206C004: ; 0x0206C004 mov r0, #0x4 bx lr thumb_func_start FUN_0206C008 FUN_0206C008: ; 0x0206C008 ldr r3, _0206C00C ; =FUN_02023924 bx r3 .balign 4 _0206C00C: .word FUN_02023924 thumb_func_start FUN_0206C010 FUN_0206C010: ; 0x0206C010 ldr r3, _0206C014 ; =FUN_0206B8A4 bx r3 .balign 4 _0206C014: .word FUN_0206B8A4 thumb_func_start FUN_0206C018 FUN_0206C018: ; 0x0206C018 mov r0, #0xfa lsl r0, r0, #0x2 bx lr .balign 4 thumb_func_start FUN_0206C020 FUN_0206C020: ; 0x0206C020 mov r0, #0x34 bx lr thumb_func_start FUN_0206C024 FUN_0206C024: ; 0x0206C024 ldr r3, [r1, #0x0] mov r1, #0x80 ldr r2, [r3, #0x0] tst r1, r2 beq _0206C038 lsl r0, r0, #0x3 add r0, r3, r0 add r0, #0xf8 ldr r0, [r0, #0x0] bx lr _0206C038: lsl r0, r0, #0x2 add r0, r3, r0 add r0, #0xf8 ldr r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_0206C044 FUN_0206C044: ; 0x0206C044 ldr r1, [r1, #0x0] mov r2, #0x80 ldr r3, [r1, #0x0] tst r2, r3 beq _0206C05A lsl r2, r0, #0x1 mov r0, #0x34 add r1, #0x28 mul r0, r2 add r0, r1, r0 bx lr _0206C05A: mov r2, #0x34 add r1, #0x28 mul r2, r0 add r0, r1, r2 bx lr thumb_func_start FUN_0206C064 FUN_0206C064: ; 0x0206C064 ldr r3, [r1, #0x0] mov r1, #0x80 ldr r2, [r3, #0x0] tst r1, r2 beq _0206C076 lsl r0, r0, #0x3 add r0, r3, r0 ldr r0, [r0, #0x4] bx lr _0206C076: lsl r0, r0, #0x2 add r0, r3, r0 ldr r0, [r0, #0x4] bx lr .balign 4 thumb_func_start FUN_0206C080 FUN_0206C080: ; 0x0206C080 ldr r3, [r1, #0x0] mov r1, #0x80 ldr r2, [r3, #0x0] tst r2, r1 beq _0206C094 lsl r0, r0, #0x3 add r0, r3, r0 add r1, #0x98 ldr r0, [r0, r1] bx lr _0206C094: lsl r0, r0, #0x2 add r0, r3, r0 add r1, #0x98 ldr r0, [r0, r1] bx lr .balign 4 thumb_func_start FUN_0206C0A0 FUN_0206C0A0: ; 0x0206C0A0 ldr r0, [r1, #0x0] add r0, #0x5c bx lr .balign 4 thumb_func_start FUN_0206C0A8 FUN_0206C0A8: ; 0x0206C0A8 ldr r0, [r1, #0x0] add r0, #0xc4 bx lr .balign 4 thumb_func_start FUN_0206C0B0 FUN_0206C0B0: ; 0x0206C0B0 ldr r0, [r1, #0x0] ldr r0, [r0, #0x8] bx lr .balign 4 thumb_func_start FUN_0206C0B8 FUN_0206C0B8: ; 0x0206C0B8 ldr r0, [r1, #0x0] ldr r0, [r0, #0x10] bx lr .balign 4 thumb_func_start FUN_0206C0C0 FUN_0206C0C0: ; 0x0206C0C0 lsl r0, r0, #0x2 add r0, r1, r0 ldr r0, [r0, #0x10] bx lr thumb_func_start FUN_0206C0C8 FUN_0206C0C8: ; 0x0206C0C8 push {r4-r7, lr} sub sp, #0xc str r0, [sp, #0x0] str r1, [sp, #0x4] mov r0, #0x5 mov r1, #0x4 str r2, [sp, #0x8] add r7, r3, #0x0 bl FUN_02016998 add r6, r0, #0x0 ldr r0, [sp, #0x0] bl FUN_022300D4 add r5, r0, #0x0 ldr r0, [sp, #0x0] bl FUN_022300F4 add r4, r0, #0x0 ldr r0, [sp, #0x0] bl FUN_02230100 mov r12, r0 add r0, sp, #0x10 ldrh r3, [r4, #0x0] ldrb r0, [r0, #0x10] add r1, r3, #0x5 add r2, r1, r0 mov r1, #0x1 lsl r1, r1, #0xc cmp r2, r1 bls _0206C110 mov r1, r12 strh r3, [r1, #0x0] mov r1, #0x0 strh r1, [r4, #0x0] _0206C110: ldr r1, [sp, #0x4] mov r3, #0x0 strb r1, [r6, #0x0] ldr r1, [sp, #0x8] strb r1, [r6, #0x1] add r1, sp, #0x10 ldrb r1, [r1, #0x10] strh r1, [r6, #0x2] _0206C120: ldrb r2, [r6, r3] ldrh r1, [r4, #0x0] add r3, r3, #0x1 strb r2, [r5, r1] ldrh r1, [r4, #0x0] add r1, r1, #0x1 strh r1, [r4, #0x0] cmp r3, #0x4 blo _0206C120 mov r3, #0x0 cmp r0, #0x0 ble _0206C14A _0206C138: ldrb r2, [r7, r3] ldrh r1, [r4, #0x0] add r3, r3, #0x1 strb r2, [r5, r1] ldrh r1, [r4, #0x0] add r1, r1, #0x1 strh r1, [r4, #0x0] cmp r3, r0 blt _0206C138 _0206C14A: add r0, r6, #0x0 bl FUN_02016A18 add sp, #0xc pop {r4-r7, pc} thumb_func_start FUN_0206C154 FUN_0206C154: ; 0x0206C154 push {r3-r7, lr} str r3, [sp, #0x0] add r0, r3, #0x0 add r5, r1, #0x0 add r6, r2, #0x0 bl FUN_022300DC add r7, r0, #0x0 ldr r0, [sp, #0x0] bl FUN_02230118 add r4, r0, #0x0 ldr r0, [sp, #0x0] bl FUN_02230124 ldrh r1, [r4, #0x0] add r2, r1, r5 add r3, r2, #0x1 mov r2, #0x1 lsl r2, r2, #0xc cmp r3, r2 ble _0206C186 strh r1, [r0, #0x0] mov r0, #0x0 strh r0, [r4, #0x0] _0206C186: mov r0, #0x0 cmp r5, #0x0 ble _0206C19E _0206C18C: ldrb r2, [r6, r0] ldrh r1, [r4, #0x0] add r0, r0, #0x1 strb r2, [r7, r1] ldrh r1, [r4, #0x0] add r1, r1, #0x1 strh r1, [r4, #0x0] cmp r0, r5 blt _0206C18C _0206C19E: pop {r3-r7, pc} thumb_func_start FUN_0206C1A0 FUN_0206C1A0: ; 0x0206C1A0 push {r0-r3} push {r3, lr} bl FUN_02030C58 mov r1, #0x42 lsl r1, r1, #0x2 cmp r0, r1 beq _0206C1BA mov r0, #0x0 pop {r3} pop {r3} add sp, #0x10 bx r3 _0206C1BA: mov r0, #0x33 bl FUN_020315D8 cmp r0, #0x0 bne _0206C1CE mov r0, #0x0 pop {r3} pop {r3} add sp, #0x10 bx r3 _0206C1CE: mov r0, #0x18 add r1, sp, #0xc mov r2, #0x4 bl FUN_02030ADC pop {r3} pop {r3} add sp, #0x10 bx r3 thumb_func_start FUN_0206C1E0 FUN_0206C1E0: ; 0x0206C1E0 ldr r1, [r3, #0x0] lsl r0, r0, #0x2 add r1, r1, r0 mov r0, #0x5f ldr r2, [r2, #0x0] lsl r0, r0, #0x2 str r2, [r1, r0] ldr r0, _0206C1F8 ; =0x00001020 ldrb r1, [r3, r0] add r1, r1, #0x1 strb r1, [r3, r0] bx lr .balign 4 _0206C1F8: .word 0x00001020 thumb_func_start FUN_0206C1FC FUN_0206C1FC: ; 0x0206C1FC push {r4, lr} add r4, r0, #0x0 bl FUN_02030C58 mov r1, #0x42 lsl r1, r1, #0x2 cmp r0, r1 beq _0206C210 mov r0, #0x0 pop {r4, pc} _0206C210: ldr r0, [r4, #0x0] add r4, #0x20 add r0, #0xf8 ldr r0, [r0, #0x0] add r1, r4, #0x0 bl FUN_0202393C mov r0, #0x1 pop {r4, pc} .balign 4 thumb_func_start FUN_0206C224 FUN_0206C224: ; 0x0206C224 push {r4, lr} add r4, r0, #0x0 bl FUN_02030C58 mov r1, #0x42 lsl r1, r1, #0x2 cmp r0, r1 beq _0206C238 mov r0, #0x0 pop {r4, pc} _0206C238: mov r0, #0x34 bl FUN_020315D8 cmp r0, #0x0 bne _0206C246 mov r0, #0x0 pop {r4, pc} _0206C246: bl FUN_02023924 add r4, #0x20 add r2, r0, #0x0 mov r0, #0x19 add r1, r4, #0x0 bl FUN_02030A78 pop {r4, pc} thumb_func_start FUN_0206C258 FUN_0206C258: ; 0x0206C258 ldr r0, _0206C264 ; =0x00001020 ldrb r1, [r3, r0] add r1, r1, #0x1 strb r1, [r3, r0] bx lr nop _0206C264: .word 0x00001020 thumb_func_start FUN_0206C268 FUN_0206C268: ; 0x0206C268 push {r4, lr} add r4, r0, #0x0 bl FUN_02030C58 mov r1, #0x42 lsl r1, r1, #0x2 cmp r0, r1 beq _0206C27C mov r0, #0x0 pop {r4, pc} _0206C27C: ldr r3, [r4, #0x0] add r4, #0x20 add r3, #0x28 mov r2, #0x6 _0206C284: ldmia r3!, {r0-r1} stmia r4!, {r0-r1} sub r2, r2, #0x1 bne _0206C284 ldr r0, [r3, #0x0] str r0, [r4, #0x0] mov r0, #0x1 pop {r4, pc} thumb_func_start FUN_0206C294 FUN_0206C294: ; 0x0206C294 push {r4, lr} add r4, r0, #0x0 bl FUN_02030C58 mov r1, #0x42 lsl r1, r1, #0x2 cmp r0, r1 beq _0206C2A8 mov r0, #0x0 pop {r4, pc} _0206C2A8: mov r0, #0x35 bl FUN_020315D8 cmp r0, #0x0 bne _0206C2B6 mov r0, #0x0 pop {r4, pc} _0206C2B6: add r4, #0x20 mov r0, #0x1a add r1, r4, #0x0 mov r2, #0x34 bl FUN_02030A78 pop {r4, pc} thumb_func_start FUN_0206C2C4 FUN_0206C2C4: ; 0x0206C2C4 ldr r0, _0206C2D0 ; =0x00001020 ldrb r1, [r3, r0] add r1, r1, #0x1 strb r1, [r3, r0] bx lr nop _0206C2D0: .word 0x00001020 thumb_func_start FUN_0206C2D4 FUN_0206C2D4: ; 0x0206C2D4 push {r4, lr} add r4, r0, #0x0 bl FUN_02030C58 mov r1, #0x42 lsl r1, r1, #0x2 cmp r0, r1 beq _0206C2E8 mov r0, #0x0 pop {r4, pc} _0206C2E8: ldr r0, [r4, #0x0] add r4, #0x20 ldr r0, [r0, #0x4] add r1, r4, #0x0 bl FUN_0206BAD0 mov r0, #0x1 pop {r4, pc} thumb_func_start FUN_0206C2F8 FUN_0206C2F8: ; 0x0206C2F8 push {r4, lr} add r4, r0, #0x0 bl FUN_02030C58 mov r1, #0x42 lsl r1, r1, #0x2 cmp r0, r1 beq _0206C30C mov r0, #0x0 pop {r4, pc} _0206C30C: mov r0, #0x36 bl FUN_020315D8 cmp r0, #0x0 bne _0206C31A mov r0, #0x0 pop {r4, pc} _0206C31A: bl FUN_0206B8A4 add r4, #0x20 add r2, r0, #0x0 mov r0, #0x1b add r1, r4, #0x0 bl FUN_02030A78 pop {r4, pc} thumb_func_start FUN_0206C32C FUN_0206C32C: ; 0x0206C32C ldr r0, _0206C338 ; =0x00001020 ldrb r1, [r3, r0] add r1, r1, #0x1 strb r1, [r3, r0] bx lr nop _0206C338: .word 0x00001020 thumb_func_start FUN_0206C33C FUN_0206C33C: ; 0x0206C33C push {r4, lr} add r4, r0, #0x0 bl FUN_02030C58 mov r1, #0x42 lsl r1, r1, #0x2 cmp r0, r1 beq _0206C350 mov r0, #0x0 pop {r4, pc} _0206C350: ldr r2, [r4, #0x0] add r1, #0x10 add r0, r4, #0x0 ldr r1, [r2, r1] add r0, #0x20 bl FUN_02029F9C mov r0, #0x1 pop {r4, pc} .balign 4 thumb_func_start FUN_0206C364 FUN_0206C364: ; 0x0206C364 push {r4, lr} add r4, r0, #0x0 bl FUN_02030C58 mov r1, #0x42 lsl r1, r1, #0x2 cmp r0, r1 beq _0206C378 mov r0, #0x0 pop {r4, pc} _0206C378: mov r0, #0x37 bl FUN_020315D8 cmp r0, #0x0 bne _0206C386 mov r0, #0x0 pop {r4, pc} _0206C386: add r4, #0x20 mov r2, #0xfa mov r0, #0x1c add r1, r4, #0x0 lsl r2, r2, #0x2 bl FUN_02030A78 pop {r4, pc} .balign 4 thumb_func_start FUN_0206C398 FUN_0206C398: ; 0x0206C398 push {r3-r7, lr} add r5, r0, #0x0 bl FUN_02030C58 mov r1, #0x42 lsl r1, r1, #0x2 cmp r0, r1 beq _0206C3AC mov r0, #0x0 pop {r3-r7, pc} _0206C3AC: ldr r4, [r5, #0x0] mov r0, #0x80 ldr r1, [r4, #0x0] tst r0, r1 beq _0206C3BE bl FUN_02031190 lsl r0, r0, #0x3 b _0206C3C4 _0206C3BE: bl FUN_02031190 lsl r0, r0, #0x2 _0206C3C4: add r0, r4, r0 mov r1, #0x53 add r0, #0xf8 lsl r1, r1, #0x2 add r2, r5, #0x0 ldr r0, [r0, #0x0] ldr r1, [r4, r1] add r2, #0x20 bl FUN_0206C66C mov r4, #0x0 mov r6, #0x5 mov r7, #0x88 _0206C3DE: add r0, r6, #0x0 add r1, r7, #0x0 bl FUN_02016998 str r0, [r5, #0x10] add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, #0x4 blt _0206C3DE mov r0, #0x1 pop {r3-r7, pc} thumb_func_start FUN_0206C3F4 FUN_0206C3F4: ; 0x0206C3F4 push {r4, lr} add r4, r0, #0x0 bl FUN_02030C58 mov r1, #0x42 lsl r1, r1, #0x2 cmp r0, r1 beq _0206C408 mov r0, #0x0 pop {r4, pc} _0206C408: mov r0, #0x38 bl FUN_020315D8 cmp r0, #0x0 bne _0206C416 mov r0, #0x0 pop {r4, pc} _0206C416: add r4, #0x20 mov r2, #0xfa mov r0, #0x21 add r1, r4, #0x0 lsl r2, r2, #0x2 bl FUN_02030A78 pop {r4, pc} .balign 4 thumb_func_start FUN_0206C428 FUN_0206C428: ; 0x0206C428 ldr r0, _0206C434 ; =0x00001020 ldrb r1, [r3, r0] add r1, r1, #0x1 strb r1, [r3, r0] bx lr nop _0206C434: .word 0x00001020 thumb_func_start FUN_0206C438 FUN_0206C438: ; 0x0206C438 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_02030C58 mov r1, #0x42 lsl r1, r1, #0x2 cmp r0, r1 beq _0206C44E mov r0, #0x0 pop {r3-r5, pc} _0206C44E: ldr r1, [r5, #0x0] mov r0, #0x34 mul r0, r4 add r3, r1, r0 add r3, #0x28 add r5, #0x20 mov r2, #0x6 _0206C45C: ldmia r3!, {r0-r1} stmia r5!, {r0-r1} sub r2, r2, #0x1 bne _0206C45C ldr r0, [r3, #0x0] str r0, [r5, #0x0] mov r0, #0x1 pop {r3-r5, pc} thumb_func_start FUN_0206C46C FUN_0206C46C: ; 0x0206C46C push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 bl FUN_02030C58 mov r1, #0x42 lsl r1, r1, #0x2 cmp r0, r1 beq _0206C484 mov r0, #0x0 pop {r4-r6, pc} _0206C484: lsl r0, r6, #0x18 lsr r0, r0, #0x18 bl FUN_020315D8 cmp r0, #0x0 bne _0206C494 mov r0, #0x0 pop {r4-r6, pc} _0206C494: cmp r4, #0x1 bne _0206C4A6 add r5, #0x20 mov r0, #0x1d add r1, r5, #0x0 mov r2, #0x34 bl FUN_02030A78 pop {r4-r6, pc} _0206C4A6: add r5, #0x20 mov r0, #0x1e add r1, r5, #0x0 mov r2, #0x34 bl FUN_02030A78 pop {r4-r6, pc} thumb_func_start FUN_0206C4B4 FUN_0206C4B4: ; 0x0206C4B4 ldr r0, _0206C4C0 ; =0x00001020 ldrb r1, [r3, r0] add r1, r1, #0x1 strb r1, [r3, r0] bx lr nop _0206C4C0: .word 0x00001020 thumb_func_start FUN_0206C4C4 FUN_0206C4C4: ; 0x0206C4C4 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_02030C58 mov r1, #0x42 lsl r1, r1, #0x2 cmp r0, r1 beq _0206C4DA mov r0, #0x0 pop {r3-r5, pc} _0206C4DA: ldr r1, [r5, #0x0] lsl r0, r4, #0x2 add r0, r1, r0 add r5, #0x20 ldr r0, [r0, #0x4] add r1, r5, #0x0 bl FUN_0206BAD0 mov r0, #0x1 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0206C4F0 FUN_0206C4F0: ; 0x0206C4F0 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 bl FUN_02030C58 mov r1, #0x42 lsl r1, r1, #0x2 cmp r0, r1 beq _0206C508 mov r0, #0x0 pop {r4-r6, pc} _0206C508: lsl r0, r6, #0x18 lsr r0, r0, #0x18 bl FUN_020315D8 cmp r0, #0x0 bne _0206C518 mov r0, #0x0 pop {r4-r6, pc} _0206C518: cmp r4, #0x1 bne _0206C52E bl FUN_0206B8A4 add r5, #0x20 add r2, r0, #0x0 mov r0, #0x1f add r1, r5, #0x0 bl FUN_02030A78 pop {r4-r6, pc} _0206C52E: bl FUN_0206B8A4 add r5, #0x20 add r2, r0, #0x0 mov r0, #0x20 add r1, r5, #0x0 bl FUN_02030A78 pop {r4-r6, pc} thumb_func_start FUN_0206C540 FUN_0206C540: ; 0x0206C540 ldr r0, _0206C54C ; =0x00001020 ldrb r1, [r3, r0] add r1, r1, #0x1 strb r1, [r3, r0] bx lr nop _0206C54C: .word 0x00001020 thumb_func_start FUN_0206C550 FUN_0206C550: ; 0x0206C550 push {r3-r7, lr} sub sp, #0x8 add r5, r1, #0x0 str r0, [sp, #0x0] ldr r0, [r5, #0x0] bl FUN_022300D4 add r6, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_022300E8 add r4, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_022300F4 str r0, [sp, #0x4] ldr r0, [r5, #0x0] bl FUN_02230100 add r7, r0, #0x0 ldrb r0, [r5, #0x4] cmp r0, #0x0 beq _0206C582 cmp r0, #0xff b _0206C5CC _0206C582: bl FUN_02030C58 mov r1, #0x42 lsl r1, r1, #0x2 cmp r0, r1 bne _0206C5D8 ldr r0, [sp, #0x4] ldrh r1, [r4, #0x0] ldrh r0, [r0, #0x0] cmp r1, r0 beq _0206C5D8 ldrh r0, [r7, #0x0] cmp r1, r0 bne _0206C5A4 mov r0, #0x0 strh r0, [r4, #0x0] strh r0, [r7, #0x0] _0206C5A4: ldrh r1, [r4, #0x0] add r0, r1, #0x2 ldrb r2, [r6, r0] add r0, r1, #0x3 ldrb r0, [r6, r0] add r1, r6, r1 lsl r0, r0, #0x8 orr r0, r2 add r5, r0, #0x4 mov r0, #0x17 add r2, r5, #0x0 bl FUN_02030ADC cmp r0, #0x1 bne _0206C5D8 ldrh r0, [r4, #0x0] add sp, #0x8 add r0, r0, r5 strh r0, [r4, #0x0] pop {r3-r7, pc} _0206C5CC: add r0, r5, #0x0 bl FUN_02016A18 ldr r0, [sp, #0x0] bl FUN_0200CAB4 _0206C5D8: add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_0206C5DC FUN_0206C5DC: ; 0x0206C5DC push {r3-r7, lr} add r5, r1, #0x0 str r0, [sp, #0x0] ldr r0, [r5, #0x0] bl FUN_022300DC add r6, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_0223010C add r4, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_02230118 add r7, r0, #0x0 ldr r0, [r5, #0x0] bl FUN_02230124 ldrb r1, [r5, #0x4] cmp r1, #0x0 beq _0206C60A cmp r1, #0xff b _0206C63E _0206C60A: ldrh r1, [r4, #0x0] ldrh r2, [r7, #0x0] cmp r1, r2 beq _0206C64A ldrh r2, [r0, #0x0] cmp r1, r2 bne _0206C61E mov r1, #0x0 strh r1, [r4, #0x0] strh r1, [r0, #0x0] _0206C61E: ldrh r1, [r4, #0x0] ldr r0, [r5, #0x0] add r1, r6, r1 bl FUN_022567E0 ldrh r0, [r4, #0x0] add r1, r0, #0x2 ldrb r2, [r6, r1] add r1, r0, #0x3 ldrb r1, [r6, r1] lsl r1, r1, #0x8 orr r1, r2 add r1, r1, #0x4 add r0, r0, r1 strh r0, [r4, #0x0] pop {r3-r7, pc} _0206C63E: add r0, r5, #0x0 bl FUN_02016A18 ldr r0, [sp, #0x0] bl FUN_0200CAB4 _0206C64A: pop {r3-r7, pc} thumb_func_start FUN_0206C64C FUN_0206C64C: ; 0x0206C64C push {r4, lr} add r4, r3, #0x0 add r0, r4, #0x0 mov r1, #0xff bl FUN_0223135C add r0, r4, #0x0 mov r1, #0xff bl FUN_02231368 add r0, r4, #0x0 mov r1, #0x1 bl FUN_02231374 pop {r4, pc} .balign 4 thumb_func_start FUN_0206C66C FUN_0206C66C: ; 0x0206C66C push {r4-r6, lr} add r4, r2, #0x0 add r6, r0, #0x0 add r5, r1, #0x0 bl FUN_0202398C add r1, r0, #0x0 add r0, r4, #0x0 bl StringCopy add r0, r6, #0x0 bl FUN_020239BC str r0, [r4, #0x10] add r0, r6, #0x0 bl FUN_02023A70 strb r0, [r4, #0x14] add r0, r6, #0x0 bl FUN_02023A68 strb r0, [r4, #0x15] add r0, r6, #0x0 bl FUN_020239CC strb r0, [r4, #0x16] mov r0, #0x0 add r1, r4, #0x0 _0206C6A4: ldr r2, [r5, #0x10] str r2, [r1, #0x18] ldrb r3, [r5, #0x15] add r2, r4, r0 add r2, #0x58 strb r3, [r2, #0x0] add r2, r4, r0 ldrb r3, [r5, #0x14] add r2, #0x68 add r1, r1, #0x4 strb r3, [r2, #0x0] add r2, r4, r0 ldrb r3, [r5, #0x16] add r2, #0x78 add r0, r0, #0x1 add r5, #0x88 strb r3, [r2, #0x0] cmp r0, #0x10 blt _0206C6A4 pop {r4-r6, pc} thumb_func_start FUN_0206C6CC FUN_0206C6CC: ; 0x0206C6CC push {r4-r6, lr} add r5, r0, #0x0 add r6, r2, #0x0 add r4, r3, #0x0 bl FUN_02031190 cmp r5, r0 beq _0206C6EE mov r0, #0x53 ldr r1, [r4, #0x0] lsl r0, r0, #0x2 ldr r0, [r1, r0] add r1, r6, #0x0 mov r2, #0x1 mov r3, #0x5 bl FUN_02025520 _0206C6EE: ldr r0, _0206C6F8 ; =0x00001020 ldrb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, r0] pop {r4-r6, pc} .balign 4 _0206C6F8: .word 0x00001020 thumb_func_start FUN_0206C6FC FUN_0206C6FC: ; 0x0206C6FC mov r0, #0x88 bx lr thumb_func_start FUN_0206C700 FUN_0206C700: ; 0x0206C700 push {r4-r7, lr} sub sp, #0x24 ldr r5, [sp, #0x54] add r6, r0, #0x0 str r1, [sp, #0x14] add r0, r5, #0x0 mov r1, #0x80 add r7, r2, #0x0 str r3, [sp, #0x18] bl FUN_02016998 add r4, r0, #0x0 mov r0, #0x0 add r1, r4, #0x0 mov r2, #0x80 blx MIi_CpuClearFast bl FUN_020222F0 str r0, [sp, #0x1c] bl FUN_020222E8 add r1, r0, #0x0 ldr r2, [sp, #0x1c] mov r0, #0x0 blx MIi_CpuClear16 bl FUN_02022300 str r0, [sp, #0x20] bl FUN_020222F8 add r1, r0, #0x0 ldr r2, [sp, #0x20] mov r0, #0x0 blx MIi_CpuClear16 ldr r0, [sp, #0x14] str r6, [r4, #0x24] mov r1, #0x5 mov r2, #0x0 str r0, [r4, #0x28] bl FUN_020671BC add r1, r4, #0x0 add r1, #0x60 strh r0, [r1, #0x0] add r0, r4, #0x0 add r0, #0x62 strh r7, [r0, #0x0] str r5, [r4, #0x5c] add r0, r5, #0x0 bl FUN_02002FD0 str r0, [r4, #0x14] mov r1, #0x1 bl FUN_020038F0 mov r2, #0x2 ldr r0, [r4, #0x14] mov r1, #0x0 lsl r2, r2, #0x8 add r3, r5, #0x0 bl FUN_02003008 mov r1, #0x1 ldr r0, [r4, #0x14] lsl r2, r1, #0x9 add r3, r5, #0x0 bl FUN_02003008 mov r2, #0x7 ldr r0, [r4, #0x14] mov r1, #0x2 lsl r2, r2, #0x6 add r3, r5, #0x0 bl FUN_02003008 mov r2, #0x2 ldr r0, [r4, #0x14] mov r1, #0x3 lsl r2, r2, #0x8 add r3, r5, #0x0 bl FUN_02003008 add r0, r5, #0x0 bl FUN_02016B94 str r0, [r4, #0x0] add r0, r5, #0x0 mov r1, #0x1 bl FUN_02018FF4 str r0, [r4, #0x4] ldr r0, [sp, #0x18] str r0, [r4, #0x2c] add r0, r5, #0x0 bl FUN_0206DE78 str r0, [r4, #0x34] bl FUN_0206DE24 bl FUN_0206DE4C bl FUN_0206DF18 ldr r1, [r4, #0x0] add r0, r4, #0x0 bl FUN_0206D9B4 mov r0, #0x13 str r0, [sp, #0x0] mov r0, #0x1b str r0, [sp, #0x4] mov r0, #0x4 str r0, [sp, #0x8] mov r0, #0xb str r0, [sp, #0xc] mov r0, #0x1f str r0, [sp, #0x10] ldr r0, [r4, #0x0] ldr r1, [r4, #0x4] mov r2, #0x1 mov r3, #0x2 bl FUN_02019064 ldr r0, [r4, #0x4] mov r1, #0xff bl FUN_02019620 ldr r0, [r4, #0x4] mov r1, #0x0 mov r2, #0x1 mov r3, #0xa bl FUN_0200D0BC add r0, r5, #0x0 bl FUN_02006D98 str r0, [r4, #0x18] add r0, r5, #0x0 mov r1, #0x1 mov r2, #0x0 bl FUN_02014BF4 str r0, [r4, #0x44] add r0, r4, #0x0 mov r2, #0x51 mov r1, #0x0 add r0, #0x67 strb r1, [r0, #0x0] add r0, r4, #0x0 mov r1, #0x2 add r0, #0x66 strb r1, [r0, #0x0] mov r0, #0x1 mov r1, #0x1a lsl r2, r2, #0x2 add r3, r5, #0x0 bl FUN_0200A86C str r0, [r4, #0x8] add r0, r5, #0x0 bl FUN_0200AA80 str r0, [r4, #0xc] mov r0, #0x5 lsl r0, r0, #0x6 add r1, r5, #0x0 bl FUN_020219F4 str r0, [r4, #0x10] add r0, r5, #0x0 mov r1, #0x30 bl FUN_02016998 str r0, [r4, #0x3c] ldr r1, [r4, #0x3c] mov r0, #0x0 mov r2, #0x30 blx MIi_CpuClearFast ldr r1, [sp, #0x38] ldr r0, [r4, #0x3c] str r1, [r0, #0x2c] ldr r0, [sp, #0x3c] str r0, [r4, #0x48] ldr r0, [sp, #0x40] str r0, [r4, #0x4c] ldr r0, [sp, #0x44] str r0, [r4, #0x50] ldr r0, [sp, #0x48] str r0, [r4, #0x54] ldr r0, [sp, #0x4c] str r0, [r4, #0x78] ldr r0, [sp, #0x50] str r0, [r4, #0x7c] add r0, r4, #0x0 bl FUN_0206DC80 mov r0, #0x10 str r0, [sp, #0x0] mov r0, #0x0 str r0, [sp, #0x4] str r0, [sp, #0x8] ldr r0, [r4, #0x14] ldr r2, _0206C8E4 ; =0x0000FFFF mov r1, #0xf mov r3, #0x1 bl FUN_02003210 mov r2, #0x0 str r2, [sp, #0x0] ldr r0, [r4, #0x18] mov r1, #0x10 add r3, r2, #0x0 bl FUN_02007E98 ldr r0, [r4, #0x14] mov r1, #0x0 mov r2, #0xb add r3, r5, #0x0 bl FUN_020142EC mov r1, #0x1 str r0, [r4, #0x58] bl FUN_020143A8 ldr r0, _0206C8E8 ; =FUN_0206C8EC add r1, r4, #0x0 mov r2, #0x0 bl FUN_0200CA44 mov r0, #0x1 bl FUN_02002B60 bl FUN_02033E74 add r0, r4, #0x0 add sp, #0x24 pop {r4-r7, pc} nop _0206C8E4: .word 0x0000FFFF _0206C8E8: .word FUN_0206C8EC thumb_func_start FUN_0206C8EC FUN_0206C8EC: ; 0x0206C8EC push {r3-r5, lr} add r5, r1, #0x0 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0206C9C0 ldr r0, [r5, #0x18] bl FUN_02006ED4 bl FUN_0206DF58 mov r0, #0x1 mov r1, #0x0 bl FUN_020222B4 add r5, #0x67 ldrb r0, [r5, #0x0] cmp r0, #0x0 beq _0206C918 add r0, r4, #0x0 bl FUN_0200CAB4 _0206C918: pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0206C91C FUN_0206C91C: ; 0x0206C91C add r0, #0x67 ldrb r0, [r0, #0x0] cmp r0, #0x1 bne _0206C928 mov r0, #0x1 bx lr _0206C928: mov r0, #0x0 bx lr thumb_func_start FUN_0206C92C FUN_0206C92C: ; 0x0206C92C push {r4, lr} add r4, r0, #0x0 mov r0, #0x0 add r1, r0, #0x0 bl FUN_0200E3A0 mov r0, #0x1 mov r1, #0x0 bl FUN_0200E3A0 mov r0, #0x0 add r1, r0, #0x0 bl FUN_02015F10 ldr r0, [r4, #0x4] mov r1, #0x1 bl FUN_020191A4 ldr r0, [r4, #0x14] mov r1, #0x0 bl FUN_02003038 ldr r0, [r4, #0x14] mov r1, #0x1 bl FUN_02003038 ldr r0, [r4, #0x14] mov r1, #0x2 bl FUN_02003038 ldr r0, [r4, #0x14] mov r1, #0x3 bl FUN_02003038 ldr r0, [r4, #0x14] bl FUN_02002FEC ldr r0, [r4, #0x18] bl FUN_020072E8 ldr r0, [r4, #0x44] bl FUN_02014C28 ldr r0, [r4, #0x34] bl FUN_020223BC ldr r0, [r4, #0x0] bl FUN_0206DC48 ldr r0, [r4, #0x8] bl FUN_0200A8B8 ldr r0, [r4, #0xc] bl FUN_0200AB18 ldr r0, [r4, #0x10] bl FUN_02016A18 ldr r0, [r4, #0x3c] bl FUN_02016A18 ldr r0, [r4, #0x58] bl FUN_020143D0 ldr r0, [r4, #0x0] bl FUN_02016A18 add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x0 bl FUN_02002B60 pop {r4, pc} thumb_func_start FUN_0206C9C0 FUN_0206C9C0: ; 0x0206C9C0 push {r3-r4, lr} sub sp, #0x54 add r4, r0, #0x0 add r0, #0x70 ldrb r1, [r0, #0x0] cmp r1, #0x0 beq _0206CA9C mov r0, #0x1 tst r0, r1 ldr r0, [r4, #0x1c] bne _0206CA2E add r2, r4, #0x0 add r2, #0x71 ldrb r2, [r2, #0x0] mov r1, #0xc neg r2, r2 bl FUN_020079E0 add r2, r4, #0x0 add r2, #0x71 ldrb r2, [r2, #0x0] ldr r0, [r4, #0x1c] mov r1, #0xd neg r2, r2 bl FUN_020079E0 add r2, r4, #0x0 add r2, #0x71 ldrb r2, [r2, #0x0] ldr r0, [r4, #0x20] mov r1, #0xc bl FUN_020079E0 add r2, r4, #0x0 add r2, #0x71 ldrb r2, [r2, #0x0] ldr r0, [r4, #0x20] mov r1, #0xd bl FUN_020079E0 ldr r0, [r4, #0x1c] mov r1, #0xc bl FUN_0200782C cmp r0, #0x0 bne _0206CA9C add r0, r4, #0x0 add r0, #0x70 ldrb r1, [r0, #0x0] mov r0, #0x1 eor r1, r0 add r0, r4, #0x0 add r0, #0x70 strb r1, [r0, #0x0] b _0206CA9C _0206CA2E: add r2, r4, #0x0 add r2, #0x71 ldrb r2, [r2, #0x0] mov r1, #0xc bl FUN_020079E0 add r2, r4, #0x0 add r2, #0x71 ldrb r2, [r2, #0x0] ldr r0, [r4, #0x1c] mov r1, #0xd bl FUN_020079E0 add r2, r4, #0x0 add r2, #0x71 ldrb r2, [r2, #0x0] ldr r0, [r4, #0x20] mov r1, #0xc neg r2, r2 bl FUN_020079E0 add r2, r4, #0x0 add r2, #0x71 ldrb r2, [r2, #0x0] ldr r0, [r4, #0x20] mov r1, #0xd neg r2, r2 bl FUN_020079E0 ldr r0, [r4, #0x20] mov r1, #0xc bl FUN_0200782C cmp r0, #0x0 bne _0206CA9C add r0, r4, #0x0 add r0, #0x70 ldrb r1, [r0, #0x0] mov r0, #0x1 eor r1, r0 add r0, r4, #0x0 add r0, #0x70 strb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x71 ldrb r0, [r0, #0x0] cmp r0, #0x40 bhs _0206CA9C add r0, r4, #0x0 add r0, #0x71 ldrb r0, [r0, #0x0] lsl r1, r0, #0x1 add r0, r4, #0x0 add r0, #0x71 strb r1, [r0, #0x0] _0206CA9C: ldr r1, [r4, #0x7c] mov r0, #0x1 tst r0, r1 beq _0206CAD6 add r0, r4, #0x0 add r0, #0x64 ldrb r0, [r0, #0x0] cmp r0, #0x8 bne _0206CAD6 ldr r0, _0206CE0C ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #0x2 tst r0, r1 beq _0206CAD6 mov r3, #0x0 str r3, [sp, #0x0] mov r0, #0x10 str r0, [sp, #0x4] ldr r0, _0206CE10 ; =0x00007FFF ldr r2, _0206CE14 ; =0x0000F3FF str r0, [sp, #0x8] ldr r0, [r4, #0x14] mov r1, #0xf bl FUN_02003210 add r0, r4, #0x0 mov r1, #0x29 add r0, #0x64 strb r1, [r0, #0x0] _0206CAD6: add r0, r4, #0x0 add r0, #0x64 ldrb r0, [r0, #0x0] cmp r0, #0x2d bhi _0206CBA8 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0206CAEC: ; jump table (using 16-bit offset) .short _0206CB48 - _0206CAEC - 2; case 0 .short _0206CB70 - _0206CAEC - 2; case 1 .short _0206CB9E - _0206CAEC - 2; case 2 .short _0206CBCC - _0206CAEC - 2; case 3 .short _0206CBE4 - _0206CAEC - 2; case 4 .short _0206CC66 - _0206CAEC - 2; case 5 .short _0206CCB2 - _0206CAEC - 2; case 6 .short _0206CD34 - _0206CAEC - 2; case 7 .short _0206CDC8 - _0206CAEC - 2; case 8 .short _0206CE8A - _0206CAEC - 2; case 9 .short _0206CF18 - _0206CAEC - 2; case 10 .short _0206CF7E - _0206CAEC - 2; case 11 .short _0206CFFA - _0206CAEC - 2; case 12 .short _0206D06E - _0206CAEC - 2; case 13 .short _0206D0E8 - _0206CAEC - 2; case 14 .short _0206D188 - _0206CAEC - 2; case 15 .short _0206D12C - _0206CAEC - 2; case 16 .short _0206D188 - _0206CAEC - 2; case 17 .short _0206D162 - _0206CAEC - 2; case 18 .short _0206D188 - _0206CAEC - 2; case 19 .short _0206D1C0 - _0206CAEC - 2; case 20 .short _0206D20E - _0206CAEC - 2; case 21 .short _0206D260 - _0206CAEC - 2; case 22 .short _0206D2E2 - _0206CAEC - 2; case 23 .short _0206D360 - _0206CAEC - 2; case 24 .short _0206D480 - _0206CAEC - 2; case 25 .short _0206D188 - _0206CAEC - 2; case 26 .short _0206D4A6 - _0206CAEC - 2; case 27 .short _0206D188 - _0206CAEC - 2; case 28 .short _0206D4F8 - _0206CAEC - 2; case 29 .short _0206D188 - _0206CAEC - 2; case 30 .short _0206D51E - _0206CAEC - 2; case 31 .short _0206D398 - _0206CAEC - 2; case 32 .short _0206D188 - _0206CAEC - 2; case 33 .short _0206D3CC - _0206CAEC - 2; case 34 .short _0206D3EE - _0206CAEC - 2; case 35 .short _0206D44E - _0206CAEC - 2; case 36 .short _0206D5AA - _0206CAEC - 2; case 37 .short _0206D5C8 - _0206CAEC - 2; case 38 .short _0206D5F4 - _0206CAEC - 2; case 39 .short _0206D628 - _0206CAEC - 2; case 40 .short _0206D648 - _0206CAEC - 2; case 41 .short _0206D6EE - _0206CAEC - 2; case 42 .short _0206D748 - _0206CAEC - 2; case 43 .short _0206D79C - _0206CAEC - 2; case 44 .short _0206D7F6 - _0206CAEC - 2; case 45 _0206CB48: add r0, r4, #0x0 add r0, #0x66 ldrb r0, [r0, #0x0] sub r1, r0, #0x1 add r0, r4, #0x0 add r0, #0x66 strb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x66 ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _0206CBA8 add r0, r4, #0x0 add r0, #0x64 ldrb r0, [r0, #0x0] add r4, #0x64 add sp, #0x54 add r0, r0, #0x1 strb r0, [r4, #0x0] pop {r3-r4, pc} _0206CB70: mov r0, #0x0 bl FUN_0200E394 mov r0, #0x1 bl FUN_0200E394 ldr r0, [r4, #0x58] mov r1, #0x0 bl FUN_020143A8 ldr r1, [r4, #0x7c] mov r0, #0x2 tst r1, r0 beq _0206CB94 add r4, #0x64 add sp, #0x54 strb r0, [r4, #0x0] pop {r3-r4, pc} _0206CB94: mov r0, #0x4 add r4, #0x64 add sp, #0x54 strb r0, [r4, #0x0] pop {r3-r4, pc} _0206CB9E: ldr r0, [r4, #0x14] bl FUN_020038E4 cmp r0, #0x0 beq _0206CBAC _0206CBA8: bl _0206D806 _0206CBAC: mov r1, #0xe5 add r0, r4, #0x0 lsl r1, r1, #0x2 bl FUN_0206DD6C add r1, r4, #0x0 add r1, #0x65 strb r0, [r1, #0x0] add r0, r4, #0x0 add r0, #0x64 ldrb r0, [r0, #0x0] add r4, #0x64 add sp, #0x54 add r0, r0, #0x1 strb r0, [r4, #0x0] pop {r3-r4, pc} _0206CBCC: add r0, r4, #0x0 add r0, #0x65 ldrb r0, [r0, #0x0] bl FUN_0201BD70 cmp r0, #0x0 bne _0206CCCA mov r0, #0x4 add r4, #0x64 add sp, #0x54 strb r0, [r4, #0x0] pop {r3-r4, pc} _0206CBE4: ldr r0, [r4, #0x14] bl FUN_020038E4 cmp r0, #0x0 bne _0206CCCA mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x4] str r0, [sp, #0x8] add r2, r4, #0x0 add r2, #0x60 ldrh r2, [r2, #0x0] ldr r0, [r4, #0x44] ldr r1, [r4, #0x1c] mov r3, #0x2 bl FUN_02069038 add r1, r4, #0x0 add r1, #0x60 ldrh r1, [r1, #0x0] add r0, sp, #0x40 bl FUN_02069010 ldr r0, [r4, #0x1c] add r1, sp, #0x40 bl FUN_0200737C ldr r0, [r4, #0x1c] mov r1, #0x0 bl FUN_02007314 add r0, r4, #0x0 add r0, #0x60 ldrh r0, [r0, #0x0] bl FUN_02005578 ldr r0, [r4, #0x28] bl FUN_020690E4 add r2, r0, #0x0 ldr r0, [r4, #0xc] mov r1, #0x0 bl FUN_0200ACF8 ldr r1, [r4, #0x7c] mov r0, #0x2 tst r0, r1 beq _0206CC4E ldr r1, _0206CE18 ; =0x00000395 add r0, r4, #0x0 bl FUN_0206DD6C b _0206CC56 _0206CC4E: ldr r1, _0206CE1C ; =0x00000393 add r0, r4, #0x0 bl FUN_0206DD6C _0206CC56: add r1, r4, #0x0 add r1, #0x65 strb r0, [r1, #0x0] mov r0, #0x5 add r4, #0x64 add sp, #0x54 strb r0, [r4, #0x0] pop {r3-r4, pc} _0206CC66: add r0, r4, #0x0 add r0, #0x65 ldrb r0, [r0, #0x0] bl FUN_0201BD70 cmp r0, #0x0 bne _0206CCCA bl FUN_02005670 cmp r0, #0x0 bne _0206CCCA ldr r0, [r4, #0x44] mov r1, #0x0 bl FUN_02014D7C cmp r0, #0x1 bne _0206CCCA ldr r0, [r4, #0x1c] bl FUN_02007390 cmp r0, #0x0 bne _0206CCCA ldr r0, [r4, #0x58] mov r1, #0x1 bl FUN_020143A8 ldr r0, _0206CE20 ; =0x00000475 bl FUN_020051F4 add r0, r4, #0x0 mov r1, #0x14 add r0, #0x66 strb r1, [r0, #0x0] mov r0, #0x6 add r4, #0x64 add sp, #0x54 strb r0, [r4, #0x0] pop {r3-r4, pc} _0206CCB2: add r0, r4, #0x0 add r0, #0x66 ldrb r0, [r0, #0x0] sub r1, r0, #0x1 add r0, r4, #0x0 add r0, #0x66 strb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x66 ldrb r0, [r0, #0x0] cmp r0, #0x0 beq _0206CCCE _0206CCCA: bl _0206D806 _0206CCCE: ldr r0, [r4, #0x5c] str r0, [sp, #0x10] mov r0, #0x0 str r0, [sp, #0x14] add r0, sp, #0x10 bl FUN_0206E07C mov r1, #0x0 str r0, [r4, #0x30] bl FUN_0206E0AC ldr r0, _0206CE10 ; =0x00007FFF mov r1, #0x0 str r0, [sp, #0x0] ldr r0, [r4, #0x1c] mov r2, #0x10 mov r3, #0x4 bl FUN_02007E68 ldr r0, _0206CE10 ; =0x00007FFF mov r1, #0x0 str r0, [sp, #0x0] ldr r0, [r4, #0x20] mov r2, #0x10 mov r3, #0x4 bl FUN_02007E68 ldr r0, [r4, #0x5c] bl FUN_02016AF8 mov r1, #0x2 lsl r1, r1, #0xe cmp r0, r1 bhi _0206CD16 bl ErrorHandling _0206CD16: ldr r0, _0206CE24 ; =0x000005F9 bl FUN_020054C8 add r0, r4, #0x0 mov r1, #0x28 add r0, #0x66 strb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x64 ldrb r0, [r0, #0x0] add r4, #0x64 add sp, #0x54 add r0, r0, #0x1 strb r0, [r4, #0x0] pop {r3-r4, pc} _0206CD34: add r0, r4, #0x0 add r0, #0x73 ldrb r0, [r0, #0x0] cmp r0, #0x28 bhs _0206CD5A add r0, r4, #0x0 add r0, #0x73 ldrb r0, [r0, #0x0] add r1, r0, #0x2 add r0, r4, #0x0 add r0, #0x73 strb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x75 ldrb r0, [r0, #0x0] sub r1, r0, #0x2 add r0, r4, #0x0 add r0, #0x75 strb r1, [r0, #0x0] _0206CD5A: add r0, r4, #0x0 add r0, #0x66 ldrb r0, [r0, #0x0] sub r1, r0, #0x1 add r0, r4, #0x0 add r0, #0x66 strb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x66 ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _0206CDD2 ldr r0, [r4, #0x30] mov r1, #0x1 bl FUN_0206E0AC ldr r0, [r4, #0x30] mov r1, #0x2 bl FUN_0206E0AC ldr r0, [r4, #0x30] mov r1, #0x7 bl FUN_0206E0AC ldr r0, [r4, #0x30] mov r1, #0x8 bl FUN_0206E0AC ldr r0, [r4, #0x30] mov r1, #0x9 bl FUN_0206E0AC ldr r0, [r4, #0x30] mov r1, #0xb bl FUN_0206E0AC ldr r0, _0206CE28 ; =0x000005FA bl FUN_020054C8 add r0, r4, #0x0 mov r1, #0x10 add r0, #0x70 strb r1, [r0, #0x0] add r0, r4, #0x0 mov r1, #0x8 add r0, #0x71 strb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x64 ldrb r0, [r0, #0x0] add r4, #0x64 add sp, #0x54 add r0, r0, #0x1 strb r0, [r4, #0x0] pop {r3-r4, pc} _0206CDC8: ldr r0, [r4, #0x30] bl FUN_0206E0C8 cmp r0, #0x0 beq _0206CDD6 _0206CDD2: bl _0206D806 _0206CDD6: ldr r0, [r4, #0x30] mov r1, #0x3 bl FUN_0206E0AC ldr r0, [r4, #0x30] mov r1, #0x4 bl FUN_0206E0AC ldr r0, [r4, #0x30] mov r1, #0x5 bl FUN_0206E0AC ldr r0, [r4, #0x30] mov r1, #0x6 bl FUN_0206E0AC ldr r0, [r4, #0x30] mov r1, #0xa bl FUN_0206E0AC mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x10 str r0, [sp, #0x4] ldr r0, _0206CE10 ; =0x00007FFF ldr r2, _0206CE14 ; =0x0000F3FF b _0206CE2C .balign 4 _0206CE0C: .word 0x021C48B8 _0206CE10: .word 0x00007FFF _0206CE14: .word 0x0000F3FF _0206CE18: .word 0x00000395 _0206CE1C: .word 0x00000393 _0206CE20: .word 0x00000475 _0206CE24: .word 0x000005F9 _0206CE28: .word 0x000005FA _0206CE2C: str r0, [sp, #0x8] ldr r0, [r4, #0x14] mov r1, #0xf mov r3, #0x2 bl FUN_02003210 ldr r0, [r4, #0x1c] mov r1, #0xc mov r2, #0x0 bl FUN_02007558 ldr r0, [r4, #0x1c] mov r1, #0xd mov r2, #0x0 bl FUN_02007558 mov r1, #0xc add r2, r1, #0x0 ldr r0, [r4, #0x20] add r2, #0xf4 bl FUN_02007558 mov r1, #0xd add r2, r1, #0x0 ldr r0, [r4, #0x20] add r2, #0xf3 bl FUN_02007558 ldr r0, _0206D1C8 ; =0x000005FB bl FUN_020054C8 add r0, r4, #0x0 mov r1, #0x0 add r0, #0x70 strb r1, [r0, #0x0] add r0, r4, #0x0 mov r1, #0x8 add r0, #0x66 strb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x64 ldrb r0, [r0, #0x0] add r4, #0x64 add sp, #0x54 add r0, r0, #0x1 strb r0, [r4, #0x0] pop {r3-r4, pc} _0206CE8A: add r0, r4, #0x0 add r0, #0x73 ldrb r0, [r0, #0x0] cmp r0, #0x0 beq _0206CEB0 add r0, r4, #0x0 add r0, #0x73 ldrb r0, [r0, #0x0] sub r1, r0, #0x2 add r0, r4, #0x0 add r0, #0x73 strb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x75 ldrb r0, [r0, #0x0] add r1, r0, #0x2 add r0, r4, #0x0 add r0, #0x75 strb r1, [r0, #0x0] _0206CEB0: ldr r0, [r4, #0x14] bl FUN_020038E4 cmp r0, #0x0 bne _0206CF2C add r0, r4, #0x0 add r0, #0x66 ldrb r0, [r0, #0x0] sub r1, r0, #0x1 add r0, r4, #0x0 add r0, #0x66 strb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x66 ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _0206CF2C ldr r0, [r4, #0x30] mov r1, #0xc bl FUN_0206E0AC mov r0, #0x10 str r0, [sp, #0x0] mov r0, #0x0 str r0, [sp, #0x4] ldr r0, _0206D1CC ; =0x00007FFF ldr r2, _0206D1D0 ; =0x0000F3FF str r0, [sp, #0x8] ldr r0, [r4, #0x14] mov r1, #0xf mov r3, #0x4 bl FUN_02003210 ldr r0, _0206D1CC ; =0x00007FFF mov r1, #0x10 str r0, [sp, #0x0] ldr r0, [r4, #0x18] mov r2, #0x0 mov r3, #0x3 bl FUN_02007E98 ldr r0, _0206D1D4 ; =0x000005FC bl FUN_020054C8 add r0, r4, #0x0 add r0, #0x64 ldrb r0, [r0, #0x0] add r4, #0x64 add sp, #0x54 add r0, r0, #0x1 strb r0, [r4, #0x0] pop {r3-r4, pc} _0206CF18: ldr r0, [r4, #0x14] bl FUN_020038E4 cmp r0, #0x0 bne _0206CF2C ldr r0, [r4, #0x30] bl FUN_0206E0C8 cmp r0, #0x0 beq _0206CF30 _0206CF2C: bl _0206D806 _0206CF30: mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x4] str r0, [sp, #0x8] add r2, r4, #0x0 add r2, #0x62 ldrh r2, [r2, #0x0] ldr r0, [r4, #0x44] ldr r1, [r4, #0x20] mov r3, #0x2 bl FUN_02069038 add r1, r4, #0x0 add r1, #0x62 ldrh r1, [r1, #0x0] add r0, sp, #0x2c bl FUN_02069010 ldr r0, [r4, #0x20] add r1, sp, #0x2c bl FUN_0200737C ldr r0, [r4, #0x20] mov r1, #0x0 bl FUN_02007314 add r0, r4, #0x0 add r0, #0x62 ldrh r0, [r0, #0x0] bl FUN_02005578 add r0, r4, #0x0 add r0, #0x64 ldrb r0, [r0, #0x0] add r4, #0x64 add sp, #0x54 add r0, r0, #0x1 strb r0, [r4, #0x0] pop {r3-r4, pc} _0206CF7E: bl FUN_02005670 cmp r0, #0x0 bne _0206D084 ldr r0, [r4, #0x44] mov r1, #0x0 bl FUN_02014D7C cmp r0, #0x1 bne _0206D084 ldr r0, [r4, #0x20] bl FUN_02007390 cmp r0, #0x0 bne _0206D084 add r2, r4, #0x0 ldr r0, [r4, #0x28] mov r1, #0x5 add r2, #0x62 bl FUN_02067830 ldr r0, [r4, #0x28] bl FUN_0206A1C4 ldr r0, [r4, #0x28] bl FUN_02066ED8 ldr r0, [r4, #0x28] bl FUN_020690E4 add r2, r0, #0x0 ldr r0, [r4, #0xc] mov r1, #0x0 bl FUN_0200ACF8 ldr r0, [r4, #0x28] bl FUN_020690E4 add r2, r0, #0x0 ldr r0, [r4, #0xc] mov r1, #0x1 bl FUN_0200AC60 ldr r1, _0206D1D8 ; =0x00000396 add r0, r4, #0x0 bl FUN_0206DD6C add r1, r4, #0x0 add r1, #0x65 strb r0, [r1, #0x0] add r0, r4, #0x0 mov r1, #0x28 add r0, #0x66 strb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x64 ldrb r0, [r0, #0x0] add r4, #0x64 add sp, #0x54 add r0, r0, #0x1 strb r0, [r4, #0x0] pop {r3-r4, pc} _0206CFFA: add r0, r4, #0x0 add r0, #0x65 ldrb r0, [r0, #0x0] bl FUN_0201BD70 cmp r0, #0x0 bne _0206D084 add r0, r4, #0x0 add r0, #0x66 ldrb r0, [r0, #0x0] sub r1, r0, #0x1 add r0, r4, #0x0 add r0, #0x66 strb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x66 ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _0206D084 ldr r0, [r4, #0x48] ldr r1, [r4, #0x28] bl FUN_02024AF0 ldr r0, [r4, #0x50] mov r1, #0xc bl FUN_0202A0E8 ldr r0, [r4, #0x50] mov r1, #0x16 bl FUN_0202A170 ldr r0, [r4, #0x28] bl FUN_020690E4 add r1, r0, #0x0 ldr r0, [r4, #0x54] bl FUN_0204C104 ldr r0, [r4, #0x28] mov r1, #0x4d mov r2, #0x0 bl FUN_020671BC cmp r0, #0x0 bne _0206D05E ldr r0, [r4, #0x28] mov r1, #0xb2 mov r2, #0x0 bl FUN_02067830 _0206D05E: add r0, r4, #0x0 add r0, #0x64 ldrb r0, [r0, #0x0] add r4, #0x64 add sp, #0x54 add r0, r0, #0x1 strb r0, [r4, #0x0] pop {r3-r4, pc} _0206D06E: add r1, r4, #0x0 ldr r0, [r4, #0x28] add r1, #0x68 add r2, sp, #0xc bl FUN_02069818 cmp r0, #0x0 beq _0206D08E ldr r1, _0206D1DC ; =0x0000FFFE cmp r0, r1 bne _0206D086 _0206D084: b _0206D806 _0206D086: add r1, r1, #0x1 cmp r0, r1 beq _0206D098 b _0206D0AC _0206D08E: mov r0, #0x27 add r4, #0x64 add sp, #0x54 strb r0, [r4, #0x0] pop {r3-r4, pc} _0206D098: add r0, sp, #0xc ldrh r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x6c strh r1, [r0, #0x0] mov r0, #0xe add r4, #0x64 add sp, #0x54 strb r0, [r4, #0x0] pop {r3-r4, pc} _0206D0AC: ldr r0, [r4, #0x28] bl FUN_020690E4 add r2, r0, #0x0 ldr r0, [r4, #0xc] mov r1, #0x0 bl FUN_0200ACF8 add r2, sp, #0xc ldrh r2, [r2, #0x0] ldr r0, [r4, #0xc] mov r1, #0x1 bl FUN_0200AD5C add r0, r4, #0x0 mov r1, #0x4 bl FUN_0206DD6C add r1, r4, #0x0 add r1, #0x65 strb r0, [r1, #0x0] add r0, r4, #0x0 mov r1, #0x14 add r0, #0x66 strb r1, [r0, #0x0] mov r0, #0x25 add r4, #0x64 add sp, #0x54 strb r0, [r4, #0x0] pop {r3-r4, pc} _0206D0E8: ldr r0, [r4, #0x28] bl FUN_020690E4 add r2, r0, #0x0 ldr r0, [r4, #0xc] mov r1, #0x0 bl FUN_0200ACF8 add r2, r4, #0x0 add r2, #0x6c ldrh r2, [r2, #0x0] ldr r0, [r4, #0xc] mov r1, #0x1 bl FUN_0200AD5C ldr r1, _0206D1E0 ; =0x000004A9 add r0, r4, #0x0 bl FUN_0206DD6C add r1, r4, #0x0 add r1, #0x65 strb r0, [r1, #0x0] add r0, r4, #0x0 mov r1, #0x14 add r0, #0x66 strb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x64 ldrb r0, [r0, #0x0] add r4, #0x64 add sp, #0x54 add r0, r0, #0x1 strb r0, [r4, #0x0] pop {r3-r4, pc} _0206D12C: ldr r0, [r4, #0x28] bl FUN_020690E4 add r2, r0, #0x0 ldr r0, [r4, #0xc] mov r1, #0x0 bl FUN_0200ACF8 ldr r1, _0206D1E4 ; =0x000004AA add r0, r4, #0x0 bl FUN_0206DD6C add r1, r4, #0x0 add r1, #0x65 strb r0, [r1, #0x0] add r0, r4, #0x0 mov r1, #0x14 add r0, #0x66 strb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x64 ldrb r0, [r0, #0x0] add r4, #0x64 add sp, #0x54 add r0, r0, #0x1 strb r0, [r4, #0x0] pop {r3-r4, pc} _0206D162: ldr r1, _0206D1E8 ; =0x000004AB add r0, r4, #0x0 bl FUN_0206DD6C add r1, r4, #0x0 add r1, #0x65 strb r0, [r1, #0x0] add r0, r4, #0x0 mov r1, #0x1 add r0, #0x66 strb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x64 ldrb r0, [r0, #0x0] add r4, #0x64 add sp, #0x54 add r0, r0, #0x1 strb r0, [r4, #0x0] pop {r3-r4, pc} _0206D188: add r0, r4, #0x0 add r0, #0x65 ldrb r0, [r0, #0x0] bl FUN_0201BD70 cmp r0, #0x0 bne _0206D1AE add r0, r4, #0x0 add r0, #0x66 ldrb r0, [r0, #0x0] sub r1, r0, #0x1 add r0, r4, #0x0 add r0, #0x66 strb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x66 ldrb r0, [r0, #0x0] cmp r0, #0x0 beq _0206D1B0 _0206D1AE: b _0206D806 _0206D1B0: add r0, r4, #0x0 add r0, #0x64 ldrb r0, [r0, #0x0] add r4, #0x64 add sp, #0x54 add r0, r0, #0x1 strb r0, [r4, #0x0] pop {r3-r4, pc} _0206D1C0: ldr r0, [r4, #0x5c] ldr r1, _0206D1EC ; =0x020F8320 b _0206D1F0 nop _0206D1C8: .word 0x000005FB _0206D1CC: .word 0x00007FFF _0206D1D0: .word 0x0000F3FF _0206D1D4: .word 0x000005FC _0206D1D8: .word 0x00000396 _0206D1DC: .word 0x0000FFFE _0206D1E0: .word 0x000004A9 _0206D1E4: .word 0x000004AA _0206D1E8: .word 0x000004AB _0206D1EC: .word 0x020F8320 _0206D1F0: str r0, [sp, #0x0] ldr r0, [r4, #0x0] mov r2, #0x1 mov r3, #0x8 bl FUN_02002198 str r0, [r4, #0x40] add r0, r4, #0x0 add r0, #0x64 ldrb r0, [r0, #0x0] add r4, #0x64 add sp, #0x54 add r0, r0, #0x1 strb r0, [r4, #0x0] pop {r3-r4, pc} _0206D20E: ldr r0, [r4, #0x40] ldr r1, [r4, #0x5c] bl FUN_020021AC cmp r0, #0x0 beq _0206D226 mov r1, #0x1 mvn r1, r1 cmp r0, r1 beq _0206D256 add sp, #0x54 pop {r3-r4, pc} _0206D226: add r0, r4, #0x0 mov r1, #0x16 add r0, #0x64 strb r1, [r0, #0x0] mov r1, #0x0 str r1, [sp, #0x0] mov r0, #0x10 str r0, [sp, #0x4] str r1, [sp, #0x8] ldr r0, [r4, #0x14] ldr r2, _0206D540 ; =0x0000FFFF mov r1, #0xf mov r3, #0x1 bl FUN_02003210 mov r1, #0x0 str r1, [sp, #0x0] ldr r0, [r4, #0x18] mov r2, #0x10 add r3, r1, #0x0 bl FUN_02007E98 add sp, #0x54 pop {r3-r4, pc} _0206D256: mov r0, #0x20 add r4, #0x64 add sp, #0x54 strb r0, [r4, #0x0] pop {r3-r4, pc} _0206D260: ldr r0, [r4, #0x14] bl FUN_020038E4 cmp r0, #0x0 bne _0206D2EC mov r0, #0x0 add r1, r0, #0x0 bl FUN_0200E3A0 mov r0, #0x1 mov r1, #0x0 bl FUN_0200E3A0 ldr r0, [r4, #0x0] bl FUN_0206DC48 ldr r0, [r4, #0x1c] mov r1, #0x6 mov r2, #0x1 bl FUN_02007558 ldr r0, [r4, #0x20] mov r1, #0x6 mov r2, #0x1 bl FUN_02007558 ldr r1, [r4, #0x28] ldr r0, [r4, #0x3c] mov r2, #0x1 str r1, [r0, #0x0] ldr r1, [r4, #0x2c] ldr r0, [r4, #0x3c] str r1, [r0, #0x4] ldr r1, [r4, #0x3c] mov r0, #0x0 strb r0, [r1, #0x11] ldr r1, [r4, #0x3c] strb r0, [r1, #0x14] ldr r1, [r4, #0x3c] strb r2, [r1, #0x13] add r1, r4, #0x0 add r1, #0x6c ldrh r2, [r1, #0x0] ldr r1, [r4, #0x3c] strh r2, [r1, #0x18] ldr r1, [r4, #0x3c] mov r2, #0x2 strb r2, [r1, #0x12] ldr r1, [r4, #0x3c] str r0, [r1, #0x28] ldr r0, [r4, #0x3c] ldr r1, _0206D544 ; =0x020F831C bl FUN_0207B000 add r0, r4, #0x0 bl FUN_0206DE0C add r0, r4, #0x0 add r0, #0x64 ldrb r0, [r0, #0x0] add r4, #0x64 add sp, #0x54 add r0, r0, #0x1 strb r0, [r4, #0x0] pop {r3-r4, pc} _0206D2E2: ldr r0, [r4, #0x38] bl FUN_02006290 cmp r0, #0x0 bne _0206D2EE _0206D2EC: b _0206D806 _0206D2EE: ldr r0, [r4, #0x38] bl FUN_02006260 ldr r1, [r4, #0x0] add r0, r4, #0x0 bl FUN_0206D9B4 ldr r0, [r4, #0x4] mov r1, #0x0 mov r2, #0x1 mov r3, #0xa bl FUN_0200D0BC ldr r0, [r4, #0x1c] mov r1, #0x6 mov r2, #0x0 bl FUN_02007558 ldr r0, [r4, #0x20] mov r1, #0x6 mov r2, #0x0 bl FUN_02007558 ldr r0, [r4, #0x1c] bl FUN_020080D0 ldr r0, [r4, #0x20] bl FUN_020080D0 mov r0, #0x10 str r0, [sp, #0x0] mov r0, #0x0 str r0, [sp, #0x4] str r0, [sp, #0x8] ldr r0, [r4, #0x14] ldr r2, _0206D540 ; =0x0000FFFF mov r1, #0xf mov r3, #0x1 bl FUN_02003210 mov r2, #0x0 str r2, [sp, #0x0] ldr r0, [r4, #0x18] mov r1, #0x10 add r3, r2, #0x0 bl FUN_02007E98 bl FUN_02033E74 add r0, r4, #0x0 add r0, #0x64 ldrb r0, [r0, #0x0] add r4, #0x64 add sp, #0x54 add r0, r0, #0x1 strb r0, [r4, #0x0] pop {r3-r4, pc} _0206D360: mov r0, #0x0 bl FUN_0200E394 mov r0, #0x1 bl FUN_0200E394 ldr r0, [r4, #0x14] bl FUN_020038E4 cmp r0, #0x0 bne _0206D474 ldr r0, [r4, #0x3c] ldrb r1, [r0, #0x16] cmp r1, #0x4 bne _0206D388 mov r0, #0x20 add r4, #0x64 add sp, #0x54 strb r0, [r4, #0x0] pop {r3-r4, pc} _0206D388: add r0, r4, #0x0 add r0, #0x6e strb r1, [r0, #0x0] mov r0, #0x19 add r4, #0x64 add sp, #0x54 strb r0, [r4, #0x0] pop {r3-r4, pc} _0206D398: add r2, r4, #0x0 add r2, #0x6c ldrh r2, [r2, #0x0] ldr r0, [r4, #0xc] mov r1, #0x0 bl FUN_0200AD5C ldr r1, _0206D548 ; =0x000004AD add r0, r4, #0x0 bl FUN_0206DD6C add r1, r4, #0x0 add r1, #0x65 strb r0, [r1, #0x0] add r0, r4, #0x0 mov r1, #0x1 add r0, #0x66 strb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x64 ldrb r0, [r0, #0x0] add r4, #0x64 add sp, #0x54 add r0, r0, #0x1 strb r0, [r4, #0x0] pop {r3-r4, pc} _0206D3CC: ldr r0, [r4, #0x5c] ldr r1, _0206D54C ; =0x020F8320 str r0, [sp, #0x0] ldr r0, [r4, #0x0] mov r2, #0x1 mov r3, #0x8 bl FUN_02002198 str r0, [r4, #0x40] add r0, r4, #0x0 add r0, #0x64 ldrb r0, [r0, #0x0] add r4, #0x64 add sp, #0x54 add r0, r0, #0x1 strb r0, [r4, #0x0] pop {r3-r4, pc} _0206D3EE: ldr r0, [r4, #0x40] ldr r1, [r4, #0x5c] bl FUN_020021AC cmp r0, #0x0 beq _0206D406 mov r1, #0x1 mvn r1, r1 cmp r0, r1 beq _0206D444 add sp, #0x54 pop {r3-r4, pc} _0206D406: ldr r0, [r4, #0x28] bl FUN_020690E4 add r2, r0, #0x0 ldr r0, [r4, #0xc] mov r1, #0x0 bl FUN_0200ACF8 add r2, r4, #0x0 add r2, #0x6c ldrh r2, [r2, #0x0] ldr r0, [r4, #0xc] mov r1, #0x1 bl FUN_0200AD5C ldr r1, _0206D550 ; =0x000004AE add r0, r4, #0x0 bl FUN_0206DD6C add r1, r4, #0x0 add r1, #0x65 strb r0, [r1, #0x0] add r0, r4, #0x0 mov r1, #0x14 add r0, #0x66 strb r1, [r0, #0x0] mov r0, #0x24 add r4, #0x64 add sp, #0x54 strb r0, [r4, #0x0] pop {r3-r4, pc} _0206D444: mov r0, #0xe add r4, #0x64 add sp, #0x54 strb r0, [r4, #0x0] pop {r3-r4, pc} _0206D44E: add r0, r4, #0x0 add r0, #0x65 ldrb r0, [r0, #0x0] bl FUN_0201BD70 cmp r0, #0x0 bne _0206D474 add r0, r4, #0x0 add r0, #0x66 ldrb r0, [r0, #0x0] sub r1, r0, #0x1 add r0, r4, #0x0 add r0, #0x66 strb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x66 ldrb r0, [r0, #0x0] cmp r0, #0x0 beq _0206D476 _0206D474: b _0206D806 _0206D476: mov r0, #0xd add r4, #0x64 add sp, #0x54 strb r0, [r4, #0x0] pop {r3-r4, pc} _0206D480: ldr r1, _0206D554 ; =0x000004AF add r0, r4, #0x0 bl FUN_0206DD6C add r1, r4, #0x0 add r1, #0x65 strb r0, [r1, #0x0] add r0, r4, #0x0 mov r1, #0x14 add r0, #0x66 strb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x64 ldrb r0, [r0, #0x0] add r4, #0x64 add sp, #0x54 add r0, r0, #0x1 strb r0, [r4, #0x0] pop {r3-r4, pc} _0206D4A6: ldr r0, [r4, #0x28] bl FUN_020690E4 add r2, r0, #0x0 ldr r0, [r4, #0xc] mov r1, #0x0 bl FUN_0200ACF8 add r1, r4, #0x0 add r1, #0x6e ldrb r1, [r1, #0x0] ldr r0, [r4, #0x28] mov r2, #0x0 add r1, #0x36 bl FUN_020671BC add r2, r0, #0x0 ldr r0, [r4, #0xc] mov r1, #0x1 bl FUN_0200AD5C mov r1, #0x4b add r0, r4, #0x0 lsl r1, r1, #0x4 bl FUN_0206DD6C add r1, r4, #0x0 add r1, #0x65 strb r0, [r1, #0x0] add r0, r4, #0x0 mov r1, #0x14 add r0, #0x66 strb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x64 ldrb r0, [r0, #0x0] add r4, #0x64 add sp, #0x54 add r0, r0, #0x1 strb r0, [r4, #0x0] pop {r3-r4, pc} _0206D4F8: ldr r1, _0206D558 ; =0x000004B1 add r0, r4, #0x0 bl FUN_0206DD6C add r1, r4, #0x0 add r1, #0x65 strb r0, [r1, #0x0] add r0, r4, #0x0 mov r1, #0x14 add r0, #0x66 strb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x64 ldrb r0, [r0, #0x0] add r4, #0x64 add sp, #0x54 add r0, r0, #0x1 strb r0, [r4, #0x0] pop {r3-r4, pc} _0206D51E: ldr r0, [r4, #0x28] bl FUN_020690E4 add r2, r0, #0x0 ldr r0, [r4, #0xc] mov r1, #0x0 bl FUN_0200ACF8 add r2, r4, #0x0 add r2, #0x6c ldrh r2, [r2, #0x0] ldr r0, [r4, #0xc] mov r1, #0x1 bl FUN_0200AD5C ldr r1, _0206D55C ; =0x000004B2 b _0206D560 .balign 4 _0206D540: .word 0x0000FFFF _0206D544: .word 0x020F831C _0206D548: .word 0x000004AD _0206D54C: .word 0x020F8320 _0206D550: .word 0x000004AE _0206D554: .word 0x000004AF _0206D558: .word 0x000004B1 _0206D55C: .word 0x000004B2 _0206D560: add r0, r4, #0x0 bl FUN_0206DD6C add r1, r4, #0x0 add r1, #0x65 strb r0, [r1, #0x0] add r0, r4, #0x0 add r2, r4, #0x0 mov r1, #0x0 add r0, #0x66 strb r1, [r0, #0x0] add r1, r4, #0x0 add r1, #0x6e ldrb r1, [r1, #0x0] ldr r0, [r4, #0x28] add r2, #0x66 add r1, #0x3e bl FUN_02067830 add r1, r4, #0x0 add r2, r4, #0x0 add r1, #0x6c add r2, #0x6e ldrh r1, [r1, #0x0] ldrb r2, [r2, #0x0] ldr r0, [r4, #0x28] bl FUN_020697CC add r0, r4, #0x0 mov r1, #0x14 add r0, #0x66 strb r1, [r0, #0x0] mov r0, #0x25 add r4, #0x64 add sp, #0x54 strb r0, [r4, #0x0] pop {r3-r4, pc} _0206D5AA: add r0, r4, #0x0 add r0, #0x65 ldrb r0, [r0, #0x0] bl FUN_0201BD70 cmp r0, #0x0 bne _0206D5E8 add r0, r4, #0x0 add r0, #0x64 ldrb r0, [r0, #0x0] add r4, #0x64 add sp, #0x54 add r0, r0, #0x1 strb r0, [r4, #0x0] pop {r3-r4, pc} _0206D5C8: bl FUN_02005CBC cmp r0, #0x0 bne _0206D5E8 add r0, r4, #0x0 add r0, #0x66 ldrb r0, [r0, #0x0] sub r1, r0, #0x1 add r0, r4, #0x0 add r0, #0x66 strb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x66 ldrb r0, [r0, #0x0] cmp r0, #0x0 beq _0206D5EA _0206D5E8: b _0206D806 _0206D5EA: mov r0, #0xd add r4, #0x64 add sp, #0x54 strb r0, [r4, #0x0] pop {r3-r4, pc} _0206D5F4: mov r1, #0x0 str r1, [sp, #0x0] mov r0, #0x10 str r0, [sp, #0x4] str r1, [sp, #0x8] ldr r0, [r4, #0x14] ldr r2, _0206D80C ; =0x0000FFFF mov r1, #0xf mov r3, #0x1 bl FUN_02003210 mov r1, #0x0 str r1, [sp, #0x0] ldr r0, [r4, #0x18] mov r2, #0x10 add r3, r1, #0x0 bl FUN_02007E98 add r0, r4, #0x0 add r0, #0x64 ldrb r0, [r0, #0x0] add r4, #0x64 add sp, #0x54 add r0, r0, #0x1 strb r0, [r4, #0x0] pop {r3-r4, pc} _0206D628: ldr r0, [r4, #0x14] bl FUN_020038E4 cmp r0, #0x0 bne _0206D6F8 ldr r0, [r4, #0x30] bl FUN_0206E0DC add r0, r4, #0x0 bl FUN_0206D820 mov r0, #0x1 add r4, #0x67 add sp, #0x54 strb r0, [r4, #0x0] pop {r3-r4, pc} _0206D648: ldr r0, [r4, #0x14] bl FUN_020038E4 cmp r0, #0x0 bne _0206D6F8 mov r1, #0xc add r2, r1, #0x0 ldr r0, [r4, #0x1c] add r2, #0xf4 bl FUN_02007558 mov r1, #0xd add r2, r1, #0x0 ldr r0, [r4, #0x1c] add r2, #0xf3 bl FUN_02007558 ldr r0, [r4, #0x20] mov r1, #0xc mov r2, #0x0 bl FUN_02007558 ldr r0, [r4, #0x20] mov r1, #0xd mov r2, #0x0 bl FUN_02007558 ldr r0, [r4, #0x20] mov r1, #0x6 mov r2, #0x1 bl FUN_02007558 mov r0, #0x10 str r0, [sp, #0x0] mov r3, #0x0 ldr r0, _0206D810 ; =0x00007FFF str r3, [sp, #0x4] str r0, [sp, #0x8] ldr r0, [r4, #0x14] ldr r2, _0206D814 ; =0x0000F3FF mov r1, #0xf bl FUN_02003210 ldr r0, _0206D810 ; =0x00007FFF mov r2, #0x0 str r0, [sp, #0x0] ldr r0, [r4, #0x18] mov r1, #0x10 add r3, r2, #0x0 bl FUN_02007E98 add r0, r4, #0x0 mov r1, #0x0 add r0, #0x72 strb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x73 strb r1, [r0, #0x0] add r0, r4, #0x0 mov r2, #0xff add r0, #0x74 strb r2, [r0, #0x0] add r0, r4, #0x0 mov r2, #0xa0 add r0, #0x75 strb r2, [r0, #0x0] add r0, r4, #0x0 add r0, #0x70 strb r1, [r0, #0x0] ldr r0, _0206D818 ; =0x00000475 bl FUN_02005350 ldr r0, [r4, #0x30] bl FUN_0206E0DC add r0, r4, #0x0 add r0, #0x64 ldrb r0, [r0, #0x0] add r4, #0x64 add sp, #0x54 add r0, r0, #0x1 strb r0, [r4, #0x0] pop {r3-r4, pc} _0206D6EE: ldr r0, [r4, #0x14] bl FUN_020038E4 cmp r0, #0x0 beq _0206D6FA _0206D6F8: b _0206D806 _0206D6FA: mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x4] str r0, [sp, #0x8] add r2, r4, #0x0 add r2, #0x60 ldrh r2, [r2, #0x0] ldr r0, [r4, #0x44] ldr r1, [r4, #0x1c] mov r3, #0x2 bl FUN_02069038 add r1, r4, #0x0 add r1, #0x60 ldrh r1, [r1, #0x0] add r0, sp, #0x18 bl FUN_02069010 ldr r0, [r4, #0x1c] add r1, sp, #0x18 bl FUN_0200737C ldr r0, [r4, #0x1c] mov r1, #0x0 bl FUN_02007314 add r0, r4, #0x0 add r0, #0x60 ldrh r0, [r0, #0x0] bl FUN_02005578 add r0, r4, #0x0 add r0, #0x64 ldrb r0, [r0, #0x0] add r4, #0x64 add sp, #0x54 add r0, r0, #0x1 strb r0, [r4, #0x0] pop {r3-r4, pc} _0206D748: bl FUN_02005670 cmp r0, #0x0 bne _0206D806 ldr r0, [r4, #0x44] mov r1, #0x0 bl FUN_02014D7C cmp r0, #0x1 bne _0206D806 ldr r0, [r4, #0x1c] bl FUN_02007390 cmp r0, #0x0 bne _0206D806 ldr r0, [r4, #0x28] bl FUN_020690E4 add r2, r0, #0x0 ldr r0, [r4, #0xc] mov r1, #0x0 bl FUN_0200ACF8 ldr r1, _0206D81C ; =0x00000397 add r0, r4, #0x0 bl FUN_0206DD6C add r1, r4, #0x0 add r1, #0x65 strb r0, [r1, #0x0] add r0, r4, #0x0 mov r1, #0x14 add r0, #0x66 strb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x64 ldrb r0, [r0, #0x0] add r4, #0x64 add sp, #0x54 add r0, r0, #0x1 strb r0, [r4, #0x0] pop {r3-r4, pc} _0206D79C: add r0, r4, #0x0 add r0, #0x65 ldrb r0, [r0, #0x0] bl FUN_0201BD70 cmp r0, #0x0 bne _0206D806 add r0, r4, #0x0 add r0, #0x66 ldrb r0, [r0, #0x0] sub r1, r0, #0x1 add r0, r4, #0x0 add r0, #0x66 strb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x66 ldrb r0, [r0, #0x0] cmp r0, #0x0 bne _0206D806 mov r1, #0x0 str r1, [sp, #0x0] mov r0, #0x10 str r0, [sp, #0x4] str r1, [sp, #0x8] ldr r0, [r4, #0x14] ldr r2, _0206D80C ; =0x0000FFFF mov r1, #0xf mov r3, #0x1 bl FUN_02003210 mov r1, #0x0 str r1, [sp, #0x0] ldr r0, [r4, #0x18] mov r2, #0x10 add r3, r1, #0x0 bl FUN_02007E98 add r0, r4, #0x0 add r0, #0x64 ldrb r0, [r0, #0x0] add r4, #0x64 add sp, #0x54 add r0, r0, #0x1 strb r0, [r4, #0x0] pop {r3-r4, pc} _0206D7F6: ldr r0, [r4, #0x14] bl FUN_020038E4 cmp r0, #0x0 bne _0206D806 mov r0, #0x1 add r4, #0x67 strb r0, [r4, #0x0] _0206D806: add sp, #0x54 pop {r3-r4, pc} nop _0206D80C: .word 0x0000FFFF _0206D810: .word 0x00007FFF _0206D814: .word 0x0000F3FF _0206D818: .word 0x00000475 _0206D81C: .word 0x00000397 thumb_func_start FUN_0206D820 FUN_0206D820: ; 0x0206D820 push {r4-r6, lr} sub sp, #0x20 add r4, r0, #0x0 ldr r0, [r4, #0x78] cmp r0, #0x6 bgt _0206D834 bne _0206D830 b _0206D9A0 _0206D830: add sp, #0x20 pop {r4-r6, pc} _0206D834: sub r0, #0xd cmp r0, #0x6 bhi _0206D86C add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0206D846: ; jump table (using 16-bit offset) .short _0206D854 - _0206D846 - 2; case 0 .short _0206D854 - _0206D846 - 2; case 1 .short _0206D9AE - _0206D846 - 2; case 2 .short _0206D9AE - _0206D846 - 2; case 3 .short _0206D9AE - _0206D846 - 2; case 4 .short _0206D9A0 - _0206D846 - 2; case 5 .short _0206D9A0 - _0206D846 - 2; case 6 _0206D854: ldr r0, [r4, #0x4c] ldr r2, [r4, #0x5c] mov r1, #0x4 bl FUN_0206EEF8 cmp r0, #0x0 beq _0206D86C ldr r0, [r4, #0x24] bl FUN_0206B9AC cmp r0, #0x6 blt _0206D86E _0206D86C: b _0206D9AE _0206D86E: ldr r0, [r4, #0x5c] bl FUN_020669C0 add r5, r0, #0x0 ldr r0, [r4, #0x28] add r1, r5, #0x0 bl FUN_02069B88 mov r0, #0x49 lsl r0, r0, #0x2 str r0, [sp, #0x0] add r0, r5, #0x0 mov r1, #0x5 add r2, sp, #0x0 bl FUN_02067830 mov r0, #0x4 str r0, [sp, #0x0] add r0, r5, #0x0 mov r1, #0x9a add r2, sp, #0x0 bl FUN_02067830 mov r0, #0x0 str r0, [sp, #0x0] add r0, r5, #0x0 mov r1, #0x6 add r2, sp, #0x0 bl FUN_02067830 add r0, r5, #0x0 mov r1, #0xb add r2, sp, #0x0 bl FUN_02067830 mov r1, #0x19 str r1, [sp, #0x4] add r6, sp, #0x0 _0206D8BA: add r0, r5, #0x0 add r2, r6, #0x0 bl FUN_02067830 ldr r0, [sp, #0x4] add r1, r0, #0x1 str r1, [sp, #0x4] cmp r1, #0x36 blt _0206D8BA mov r1, #0x4e str r1, [sp, #0x4] add r6, sp, #0x0 _0206D8D2: add r0, r5, #0x0 add r2, r6, #0x0 bl FUN_02067830 ldr r0, [sp, #0x4] add r1, r0, #0x1 str r1, [sp, #0x4] cmp r1, #0x6e blt _0206D8D2 mov r1, #0x7a str r1, [sp, #0x4] add r6, sp, #0x0 _0206D8EA: add r0, r5, #0x0 add r2, r6, #0x0 bl FUN_02067830 ldr r0, [sp, #0x4] add r1, r0, #0x1 str r1, [sp, #0x4] cmp r1, #0x8f blt _0206D8EA add r0, r5, #0x0 mov r1, #0xb2 mov r2, #0x0 bl FUN_02067830 add r0, r5, #0x0 mov r1, #0x4d add r2, sp, #0x0 bl FUN_02067830 add r0, r5, #0x0 mov r1, #0x9f add r2, sp, #0x0 bl FUN_02067830 ldr r0, [r4, #0x5c] bl FUN_020256BC add r6, r0, #0x0 add r0, r5, #0x0 mov r1, #0xa9 add r2, r6, #0x0 bl FUN_02067830 add r0, r6, #0x0 bl FUN_02016A18 add r0, r5, #0x0 mov r1, #0xa1 add r2, sp, #0x0 bl FUN_02067830 mov r0, #0x0 add r1, sp, #0x8 mov r2, #0x18 blx MIi_CpuClearFast add r0, r5, #0x0 mov r1, #0xaa add r2, sp, #0x8 bl FUN_02067830 add r0, r5, #0x0 bl FUN_0206A1C4 add r0, r5, #0x0 bl FUN_02066ED8 ldr r0, [r4, #0x24] add r1, r5, #0x0 bl FUN_0206B900 ldr r0, [r4, #0x48] add r1, r5, #0x0 bl FUN_02024AF0 ldr r0, [r4, #0x50] mov r1, #0xc bl FUN_0202A0E8 ldr r0, [r4, #0x50] mov r1, #0x16 bl FUN_0202A170 add r0, r5, #0x0 bl FUN_020690E4 add r1, r0, #0x0 ldr r0, [r4, #0x54] bl FUN_0204C104 add r0, r5, #0x0 bl FUN_02016A18 ldr r0, [r4, #0x4c] ldr r3, [r4, #0x5c] mov r1, #0x4 mov r2, #0x1 bl FUN_0206EDD4 add sp, #0x20 pop {r4-r6, pc} _0206D9A0: mov r0, #0x0 str r0, [sp, #0x4] ldr r0, [r4, #0x28] mov r1, #0x6 add r2, sp, #0x4 bl FUN_02067830 _0206D9AE: add sp, #0x20 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0206D9B4 FUN_0206D9B4: ; 0x0206D9B4 push {r4-r6, lr} sub sp, #0xb8 add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_0201E6D8 ldr r6, _0206DC28 ; =0x020F8354 add r3, sp, #0x3c mov r2, #0x5 _0206D9C6: ldmia r6!, {r0-r1} stmia r3!, {r0-r1} sub r2, r2, #0x1 bne _0206D9C6 add r0, sp, #0x3c bl FUN_0201E66C mov r1, #0x6 mov r2, #0x2 mov r0, #0x0 lsl r1, r1, #0x18 lsl r2, r2, #0x12 blx MIi_CpuClear32 mov r1, #0x62 mov r2, #0x2 mov r0, #0x0 lsl r1, r1, #0x14 lsl r2, r2, #0x10 blx MIi_CpuClear32 mov r1, #0x19 mov r2, #0x1 mov r0, #0x0 lsl r1, r1, #0x16 lsl r2, r2, #0x12 blx MIi_CpuClear32 mov r1, #0x66 mov r2, #0x2 mov r0, #0x0 lsl r1, r1, #0x14 lsl r2, r2, #0x10 blx MIi_CpuClear32 ldr r6, _0206DC2C ; =0x020F8328 add r3, sp, #0x2c add r2, r3, #0x0 ldmia r6!, {r0-r1} stmia r3!, {r0-r1} ldmia r6!, {r0-r1} stmia r3!, {r0-r1} add r0, r2, #0x0 bl FUN_02016BBC ldr r6, _0206DC30 ; =0x020F837C add r3, sp, #0x64 mov r2, #0xa _0206DA26: ldmia r6!, {r0-r1} stmia r3!, {r0-r1} sub r2, r2, #0x1 bne _0206DA26 ldr r0, [r6, #0x0] mov r1, #0x1 str r0, [r3, #0x0] add r0, r4, #0x0 add r2, sp, #0x64 mov r3, #0x0 bl FUN_02016C18 add r0, r4, #0x0 mov r1, #0x1 bl FUN_02018744 add r0, r4, #0x0 mov r1, #0x2 add r2, sp, #0x80 mov r3, #0x0 bl FUN_02016C18 add r0, r4, #0x0 mov r1, #0x2 bl FUN_02018744 add r0, r4, #0x0 mov r1, #0x3 add r2, sp, #0x9c mov r3, #0x0 bl FUN_02016C18 add r0, r4, #0x0 mov r1, #0x3 bl FUN_02018744 ldr r1, _0206DC34 ; =0x04000008 mov r0, #0x3 ldrh r2, [r1, #0x0] bic r2, r0 mov r0, #0x1 orr r2, r0 strh r2, [r1, #0x0] add r1, r0, #0x0 bl FUN_0201E6E4 ldr r6, _0206DC38 ; =0x020F8338 add r3, sp, #0x10 ldmia r6!, {r0-r1} add r2, r3, #0x0 stmia r3!, {r0-r1} ldmia r6!, {r0-r1} stmia r3!, {r0-r1} ldmia r6!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r6, #0x0] mov r1, #0x4 str r0, [r3, #0x0] add r0, r4, #0x0 mov r3, #0x0 bl FUN_02016C18 add r0, r4, #0x0 mov r1, #0x4 bl FUN_02018744 ldr r0, [r5, #0x2c] bl FUN_02025084 add r6, r0, #0x0 lsl r0, r6, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] ldr r0, [r5, #0x5c] mov r1, #0x1 str r0, [sp, #0x4] add r0, r4, #0x0 add r2, r1, #0x0 mov r3, #0xa bl FUN_0200D274 mov r1, #0x0 str r1, [sp, #0x0] str r1, [sp, #0x4] mov r0, #0x1 str r0, [sp, #0x8] ldr r0, [r5, #0x5c] add r2, r4, #0x0 str r0, [sp, #0xc] mov r0, #0x76 mov r3, #0x3 bl FUN_0200687C mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x4] mov r1, #0x1 str r1, [sp, #0x8] ldr r0, [r5, #0x5c] add r2, r4, #0x0 str r0, [sp, #0xc] mov r0, #0x76 mov r3, #0x3 bl FUN_020068C8 mov r1, #0x0 str r1, [sp, #0x0] mov r0, #0x40 str r0, [sp, #0x4] str r1, [sp, #0x8] ldr r0, [r5, #0x14] ldr r3, [r5, #0x5c] mov r1, #0x76 mov r2, #0x8 bl FUN_020030E8 add r0, r6, #0x0 bl FUN_0200CD64 add r2, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x20 str r0, [sp, #0x4] mov r0, #0xa0 str r0, [sp, #0x8] ldr r0, [r5, #0x14] ldr r3, [r5, #0x5c] mov r1, #0x26 bl FUN_020030E8 mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x20 str r0, [sp, #0x4] mov r0, #0xb0 str r0, [sp, #0x8] ldr r0, [r5, #0x14] ldr r3, [r5, #0x5c] mov r1, #0xe mov r2, #0x7 bl FUN_020030E8 ldr r0, [r5, #0x5c] mov r1, #0x2 str r0, [sp, #0x0] ldr r0, [r5, #0x0] mov r2, #0x1 mov r3, #0x0 bl FUN_0200CABC bl FUN_0200CAFC add r2, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x20 str r0, [sp, #0x4] mov r0, #0x80 str r0, [sp, #0x8] ldr r0, [r5, #0x14] ldr r3, [r5, #0x5c] mov r1, #0x26 bl FUN_020030E8 mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x4] mov r0, #0x1 str r0, [sp, #0x8] ldr r0, [r5, #0x5c] mov r1, #0xa str r0, [sp, #0xc] mov r0, #0xc add r2, r4, #0x0 mov r3, #0x4 bl FUN_0200687C mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x4] mov r0, #0x1 str r0, [sp, #0x8] ldr r0, [r5, #0x5c] mov r1, #0xb str r0, [sp, #0xc] mov r0, #0xc add r2, r4, #0x0 mov r3, #0x4 bl FUN_020068C8 mov r0, #0x1 str r0, [sp, #0x0] mov r0, #0x20 str r0, [sp, #0x4] mov r0, #0x0 str r0, [sp, #0x8] mov r1, #0xc ldr r0, [r5, #0x14] ldr r3, [r5, #0x5c] add r2, r1, #0x0 bl FUN_020030E8 mov r0, #0x1 lsl r0, r0, #0x1a ldr r1, [r0, #0x0] ldr r2, _0206DC3C ; =0xFFFF1FFF add r3, r1, #0x0 and r3, r2 lsr r1, r0, #0xd orr r1, r3 ldr r3, _0206DC40 ; =0x04001000 str r1, [r0, #0x0] ldr r1, [r3, #0x0] and r1, r2 str r1, [r3, #0x0] add r3, r0, #0x0 add r3, #0x48 ldrh r4, [r3, #0x0] mov r2, #0x3f mov r1, #0x1f bic r4, r2 orr r1, r4 strh r1, [r3, #0x0] add r0, #0x4a ldrh r3, [r0, #0x0] mov r1, #0x12 bic r3, r2 orr r1, r3 strh r1, [r0, #0x0] add r0, r5, #0x0 mov r1, #0x0 add r0, #0x72 strb r1, [r0, #0x0] add r0, r5, #0x0 add r0, #0x73 strb r1, [r0, #0x0] add r0, r5, #0x0 mov r1, #0xff add r0, #0x74 strb r1, [r0, #0x0] add r0, r5, #0x0 mov r1, #0xa0 add r0, #0x75 strb r1, [r0, #0x0] bl FUN_0201E788 mov r0, #0x10 mov r1, #0x1 bl FUN_0201E6E4 ldr r0, _0206DC44 ; =FUN_0206DD08 add r1, r5, #0x0 bl FUN_02015F10 add sp, #0xb8 pop {r4-r6, pc} .balign 4 _0206DC28: .word 0x020F8354 _0206DC2C: .word 0x020F8328 _0206DC30: .word 0x020F837C _0206DC34: .word 0x04000008 _0206DC38: .word 0x020F8338 _0206DC3C: .word 0xFFFF1FFF _0206DC40: .word 0x04001000 _0206DC44: .word FUN_0206DD08 thumb_func_start FUN_0206DC48 FUN_0206DC48: ; 0x0206DC48 push {r4, lr} add r4, r0, #0x0 mov r0, #0x1 mov r1, #0x0 bl FUN_0201E6E4 mov r0, #0x2 mov r1, #0x0 bl FUN_0201E6E4 add r0, r4, #0x0 mov r1, #0x1 bl FUN_020178A0 add r0, r4, #0x0 mov r1, #0x2 bl FUN_020178A0 add r0, r4, #0x0 mov r1, #0x3 bl FUN_020178A0 add r0, r4, #0x0 mov r1, #0x4 bl FUN_020178A0 pop {r4, pc} .balign 4 thumb_func_start FUN_0206DC80 FUN_0206DC80: ; 0x0206DC80 push {r3-r5, lr} sub sp, #0x20 add r4, r0, #0x0 ldr r1, [r4, #0x28] add r0, sp, #0x10 mov r2, #0x2 bl FUN_02068B68 mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x4] str r0, [sp, #0x8] str r0, [sp, #0xc] ldr r0, [r4, #0x18] add r1, sp, #0x10 mov r2, #0x80 mov r3, #0x50 bl FUN_020073A0 str r0, [r4, #0x1c] ldr r0, [r4, #0x5c] bl FUN_020669C0 add r5, r0, #0x0 ldr r0, [r4, #0x28] add r1, r5, #0x0 bl FUN_02069B88 add r2, r4, #0x0 add r0, r5, #0x0 mov r1, #0x5 add r2, #0x62 bl FUN_02067830 add r0, r5, #0x0 bl FUN_02066ED8 add r0, sp, #0x10 add r1, r5, #0x0 mov r2, #0x2 bl FUN_02068B68 add r0, r5, #0x0 bl FUN_02016A18 mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x4] str r0, [sp, #0x8] str r0, [sp, #0xc] ldr r0, [r4, #0x18] add r1, sp, #0x10 mov r2, #0x80 mov r3, #0x50 bl FUN_020073A0 str r0, [r4, #0x20] mov r1, #0xc mov r2, #0x0 bl FUN_02007558 ldr r0, [r4, #0x20] mov r1, #0xd mov r2, #0x0 bl FUN_02007558 add sp, #0x20 pop {r3-r5, pc} thumb_func_start FUN_0206DD08 FUN_0206DD08: ; 0x0206DD08 push {r3-r5, lr} add r4, r0, #0x0 add r0, #0x75 ldrb r2, [r0, #0x0] add r0, r4, #0x0 add r0, #0x73 ldrb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x72 ldrb r0, [r0, #0x0] mov r3, #0xff lsl r3, r3, #0x8 lsl r0, r0, #0x8 add r5, r0, #0x0 add r0, r4, #0x0 add r0, #0x74 lsl r1, r1, #0x8 and r1, r3 ldrb r0, [r0, #0x0] and r5, r3 orr r1, r2 orr r5, r0 ldr r0, _0206DD60 ; =0x04000040 strh r5, [r0, #0x0] strh r1, [r0, #0x4] ldr r0, [r4, #0x18] bl FUN_020081C4 bl FUN_0201C30C ldr r0, [r4, #0x14] bl FUN_0200372C ldr r0, [r4, #0x0] bl FUN_0201AB60 ldr r3, _0206DD64 ; =0x027E0000 ldr r1, _0206DD68 ; =0x00003FF8 mov r0, #0x1 ldr r2, [r3, r1] orr r0, r2 str r0, [r3, r1] pop {r3-r5, pc} nop _0206DD60: .word 0x04000040 _0206DD64: .word 0x027E0000 _0206DD68: .word 0x00003FF8 thumb_func_start FUN_0206DD6C FUN_0206DD6C: ; 0x0206DD6C push {r4-r5, lr} sub sp, #0xc add r4, r0, #0x0 ldr r0, [r4, #0x8] bl FUN_0200A914 add r5, r0, #0x0 ldr r0, [r4, #0xc] ldr r1, [r4, #0x10] add r2, r5, #0x0 bl FUN_0200B7B8 add r0, r5, #0x0 bl FUN_02016A18 ldr r0, [r4, #0x4] mov r1, #0xff bl FUN_02019620 ldr r0, [r4, #0x2c] bl FUN_02024FF4 mov r3, #0x0 str r3, [sp, #0x0] str r0, [sp, #0x4] ldr r0, _0206DDB0 ; =FUN_0206DDB4 mov r1, #0x1 str r0, [sp, #0x8] ldr r0, [r4, #0x4] ldr r2, [r4, #0x10] bl FUN_0201BD84 add sp, #0xc pop {r4-r5, pc} .balign 4 _0206DDB0: .word FUN_0206DDB4 thumb_func_start FUN_0206DDB4 FUN_0206DDB4: ; 0x0206DDB4 push {r4, lr} mov r4, #0x0 cmp r1, #0x5 bhi _0206DDFA add r0, r1, r1 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0206DDC8: ; jump table (using 16-bit offset) .short _0206DDFA - _0206DDC8 - 2; case 0 .short _0206DDD4 - _0206DDC8 - 2; case 1 .short _0206DDDC - _0206DDC8 - 2; case 2 .short _0206DDE4 - _0206DDC8 - 2; case 3 .short _0206DDEC - _0206DDC8 - 2; case 4 .short _0206DDF4 - _0206DDC8 - 2; case 5 _0206DDD4: bl FUN_02005514 add r4, r0, #0x0 b _0206DDFA _0206DDDC: bl FUN_02005CBC add r4, r0, #0x0 b _0206DDFA _0206DDE4: ldr r0, _0206DE00 ; =0x00000484 bl FUN_02005C28 b _0206DDFA _0206DDEC: ldr r0, _0206DE04 ; =0x000005E6 bl FUN_020054C8 b _0206DDFA _0206DDF4: ldr r0, _0206DE08 ; =0x00000483 bl FUN_02005C28 _0206DDFA: add r0, r4, #0x0 pop {r4, pc} nop _0206DE00: .word 0x00000484 _0206DE04: .word 0x000005E6 _0206DE08: .word 0x00000483 thumb_func_start FUN_0206DE0C FUN_0206DE0C: ; 0x0206DE0C push {r4, lr} add r4, r0, #0x0 ldr r0, _0206DE20 ; =0x020FA6E8 ldr r1, [r4, #0x3c] ldr r2, [r4, #0x5c] bl FUN_02006234 str r0, [r4, #0x38] pop {r4, pc} nop _0206DE20: .word 0x020FA6E8 thumb_func_start FUN_0206DE24 FUN_0206DE24: ; 0x0206DE24 push {r3, lr} bl FUN_0201E6D8 bl FUN_0201E740 mov r2, #0x1 lsl r2, r2, #0x1a ldr r1, [r2, #0x0] ldr r0, _0206DE44 ; =0xFFFFE0FF and r1, r0 str r1, [r2, #0x0] ldr r2, _0206DE48 ; =0x04001000 ldr r1, [r2, #0x0] and r0, r1 str r0, [r2, #0x0] pop {r3, pc} .balign 4 _0206DE44: .word 0xFFFFE0FF _0206DE48: .word 0x04001000 thumb_func_start FUN_0206DE4C FUN_0206DE4C: ; 0x0206DE4C push {r3, lr} mov r0, #0x7 str r0, [sp, #0x0] ldr r0, _0206DE70 ; =0x04000050 mov r1, #0x0 mov r2, #0xe mov r3, #0xb blx FUN_020C74DC mov r0, #0x8 str r0, [sp, #0x0] ldr r0, _0206DE74 ; =0x04001050 mov r1, #0x0 mov r2, #0xe mov r3, #0x7 blx FUN_020C74DC pop {r3, pc} .balign 4 _0206DE70: .word 0x04000050 _0206DE74: .word 0x04001050 thumb_func_start FUN_0206DE78 FUN_0206DE78: ; 0x0206DE78 push {r3, lr} sub sp, #0x8 mov r2, #0x2 ldr r1, _0206DE90 ; =FUN_0206DE94 str r2, [sp, #0x0] str r1, [sp, #0x4] mov r1, #0x0 add r3, r1, #0x0 bl FUN_02022318 add sp, #0x8 pop {r3, pc} .balign 4 _0206DE90: .word FUN_0206DE94 thumb_func_start FUN_0206DE94 FUN_0206DE94: ; 0x0206DE94 push {r3, lr} mov r0, #0x1 add r1, r0, #0x0 bl FUN_0201E6E4 ldr r0, _0206DF00 ; =0x04000008 mov r1, #0x3 ldrh r2, [r0, #0x0] bic r2, r1 mov r1, #0x1 orr r1, r2 strh r1, [r0, #0x0] add r0, #0x58 ldrh r2, [r0, #0x0] ldr r1, _0206DF04 ; =0xFFFFCFFD and r2, r1 strh r2, [r0, #0x0] add r2, r1, #0x2 ldrh r3, [r0, #0x0] add r1, r1, #0x2 and r3, r2 mov r2, #0x10 orr r2, r3 strh r2, [r0, #0x0] ldrh r3, [r0, #0x0] ldr r2, _0206DF08 ; =0x0000CFFB and r3, r2 strh r3, [r0, #0x0] ldrh r3, [r0, #0x0] sub r2, #0x1c and r3, r1 mov r1, #0x8 orr r1, r3 strh r1, [r0, #0x0] ldrh r1, [r0, #0x0] and r1, r2 strh r1, [r0, #0x0] mov r0, #0x0 add r1, r0, #0x0 add r2, r0, #0x0 add r3, r0, #0x0 blx FUN_020C7C28 mov r0, #0x0 ldr r2, _0206DF0C ; =0x00007FFF add r1, r0, #0x0 mov r3, #0x3f str r0, [sp, #0x0] blx FUN_020C7B3C ldr r1, _0206DF10 ; =0xBFFF0000 ldr r0, _0206DF14 ; =0x04000580 str r1, [r0, #0x0] pop {r3, pc} .balign 4 _0206DF00: .word 0x04000008 _0206DF04: .word 0xFFFFCFFD _0206DF08: .word 0x0000CFFB _0206DF0C: .word 0x00007FFF _0206DF10: .word 0xBFFF0000 _0206DF14: .word 0x04000580 thumb_func_start FUN_0206DF18 FUN_0206DF18: ; 0x0206DF18 push {r3-r5, lr} ldr r3, _0206DF50 ; =0x021064B8 mov r0, #0x2 mov r1, #0x0 ldr r3, [r3, #0x0] lsl r0, r0, #0xe add r2, r1, #0x0 blx r3 ldr r3, _0206DF54 ; =0x021064C0 mov r1, #0x0 add r4, r0, #0x0 ldr r3, [r3, #0x0] mov r0, #0xa0 add r2, r1, #0x0 blx r3 add r5, r0, #0x0 cmp r4, #0x0 bne _0206DF40 bl ErrorHandling _0206DF40: cmp r5, #0x0 bne _0206DF48 bl ErrorHandling _0206DF48: bl FUN_02012CC8 pop {r3-r5, pc} nop _0206DF50: .word 0x021064B8 _0206DF54: .word 0x021064C0 thumb_func_start FUN_0206DF58 FUN_0206DF58: ; 0x0206DF58 push {r3, lr} bl FUN_020222AC bl FUN_02013364 cmp r0, #0x0 ble _0206DF6E bl FUN_020222AC blx FUN_020B02C8 _0206DF6E: bl FUN_02013388 mov r0, #0x1 mov r1, #0x0 bl FUN_020222B4 pop {r3, pc} thumb_func_start FUN_0206DF7C FUN_0206DF7C: ; 0x0206DF7C push {r4, lr} ldr r3, _0206DF94 ; =0x021064B8 mov r2, #0x0 ldr r3, [r3, #0x0] blx r3 add r4, r0, #0x0 bl FUN_0201327C lsl r0, r4, #0x10 lsr r0, r0, #0xd pop {r4, pc} nop _0206DF94: .word 0x021064B8 thumb_func_start FUN_0206DF98 FUN_0206DF98: ; 0x0206DF98 push {r4, lr} ldr r3, _0206DFB0 ; =0x021064C0 mov r2, #0x0 ldr r3, [r3, #0x0] blx r3 add r4, r0, #0x0 bl FUN_020132BC lsl r0, r4, #0x10 lsr r0, r0, #0xd pop {r4, pc} nop _0206DFB0: .word 0x021064C0 thumb_func_start FUN_0206DFB4 FUN_0206DFB4: ; 0x0206DFB4 push {r4, lr} sub sp, #0x8 mov r1, #0x12 lsl r1, r1, #0xa add r4, r0, #0x0 bl FUN_02016998 add r2, r0, #0x0 mov r0, #0x1 str r0, [sp, #0x0] mov r3, #0x12 ldr r0, _0206DFF4 ; =FUN_0206DF7C ldr r1, _0206DFF8 ; =FUN_0206DF98 lsl r3, r3, #0xa str r4, [sp, #0x4] bl FUN_02012CDC add r4, r0, #0x0 bl FUN_0201343C add r2, r0, #0x0 beq _0206DFEC mov r0, #0x1 mov r1, #0xe1 lsl r0, r0, #0xc lsl r1, r1, #0xe bl FUN_0201EC94 _0206DFEC: add r0, r4, #0x0 add sp, #0x8 pop {r4, pc} nop _0206DFF4: .word FUN_0206DF7C _0206DFF8: .word FUN_0206DF98 thumb_func_start FUN_0206DFFC FUN_0206DFFC: ; 0x0206DFFC push {r3-r7, lr} add r5, r0, #0x0 add r6, r1, #0x0 add r7, r2, #0x0 bl FUN_0206DFB4 add r4, r0, #0x0 add r0, r6, #0x0 add r1, r7, #0x0 add r2, r5, #0x0 bl FUN_0201318C add r1, r0, #0x0 add r0, r4, #0x0 mov r2, #0xa mov r3, #0x1 bl FUN_02013194 add r0, r4, #0x0 pop {r3-r7, pc} thumb_func_start FUN_0206E024 FUN_0206E024: ; 0x0206E024 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_020133E8 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02012DE4 add r0, r4, #0x0 bl FUN_02016A18 pop {r3-r5, pc} thumb_func_start FUN_0206E03C FUN_0206E03C: ; 0x0206E03C push {r3} sub sp, #0xc add r1, sp, #0x0 mov r2, #0x0 str r2, [r1, #0x0] str r2, [r1, #0x4] str r2, [r1, #0x8] mov r1, #0x56 lsl r1, r1, #0x4 str r2, [sp, #0x0] str r2, [sp, #0x8] str r1, [sp, #0x4] ldr r1, [r0, #0x20] ldr r1, [r1, #0x0] ldr r1, [r1, #0x4] add r1, r2, r1 str r1, [r0, #0x28] ldr r1, [r0, #0x20] ldr r2, [sp, #0x4] ldr r1, [r1, #0x0] ldr r1, [r1, #0x8] add r1, r2, r1 str r1, [r0, #0x2c] ldr r1, [r0, #0x20] ldr r2, [sp, #0x8] ldr r1, [r1, #0x0] ldr r1, [r1, #0xc] add r1, r2, r1 str r1, [r0, #0x30] add sp, #0xc pop {r3} bx lr thumb_func_start FUN_0206E07C FUN_0206E07C: ; 0x0206E07C push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] mov r1, #0x10 bl FUN_02016998 add r4, r0, #0x0 bne _0206E090 bl ErrorHandling _0206E090: ldr r0, [r5, #0x0] ldr r2, [r5, #0x4] mov r1, #0x7c str r0, [r4, #0x0] str r2, [r4, #0x4] ldr r0, [r4, #0x0] bl FUN_0206DFFC mov r1, #0x1 str r0, [r4, #0xc] bl FUN_02013440 add r0, r4, #0x0 pop {r3-r5, pc} thumb_func_start FUN_0206E0AC FUN_0206E0AC: ; 0x0206E0AC push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0xc] ldr r2, _0206E0C4 ; =FUN_0206E03C add r3, r4, #0x0 bl FUN_020133AC ldr r0, [r4, #0xc] mov r1, #0x1 bl FUN_02013440 pop {r4, pc} .balign 4 _0206E0C4: .word FUN_0206E03C thumb_func_start FUN_0206E0C8 FUN_0206E0C8: ; 0x0206E0C8 push {r3, lr} ldr r0, [r0, #0xc] bl FUN_020133C8 cmp r0, #0x0 beq _0206E0D8 mov r0, #0x1 pop {r3, pc} _0206E0D8: mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_0206E0DC FUN_0206E0DC: ; 0x0206E0DC push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0xc] bl FUN_0206E024 add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} .balign 4 thumb_func_start FUN_0206E0F0 FUN_0206E0F0: ; 0x0206E0F0 push {r4, lr} add r4, r0, #0x0 cmp r4, #0x17 blo _0206E0FC bl ErrorHandling _0206E0FC: ldr r0, _0206E104 ; =0x020F83E0 lsl r1, r4, #0x2 ldr r0, [r0, r1] pop {r4, pc} .balign 4 _0206E104: .word 0x020F83E0 thumb_func_start FUN_0206E108 FUN_0206E108: ; 0x0206E108 mov r0, #0x26 bx lr thumb_func_start FUN_0206E10C FUN_0206E10C: ; 0x0206E10C mov r0, #0xb2 bx lr thumb_func_start FUN_0206E110 FUN_0206E110: ; 0x0206E110 mov r0, #0xb3 bx lr thumb_func_start FUN_0206E114 FUN_0206E114: ; 0x0206E114 push {r4, lr} add r4, r0, #0x0 cmp r4, #0x17 blo _0206E120 bl ErrorHandling _0206E120: ldr r0, _0206E128 ; =0x020F843C ldrb r0, [r0, r4] pop {r4, pc} nop _0206E128: .word 0x020F843C thumb_func_start FUN_0206E12C FUN_0206E12C: ; 0x0206E12C mov r0, #0x1b bx lr thumb_func_start FUN_0206E130 FUN_0206E130: ; 0x0206E130 push {r3-r7, lr} sub sp, #0x10 add r7, r3, #0x0 add r5, r0, #0x0 add r6, r1, #0x0 add r4, r2, #0x0 bl FUN_0206E12C str r0, [sp, #0xc] add r0, r7, #0x0 bl FUN_0206E0F0 add r3, r0, #0x0 mov r0, #0x1 str r0, [sp, #0x0] ldr r0, [sp, #0x28] str r4, [sp, #0x4] str r0, [sp, #0x8] ldr r2, [sp, #0xc] add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_0200C00C add sp, #0x10 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0206E164 FUN_0206E164: ; 0x0206E164 push {r4-r7, lr} sub sp, #0x14 add r6, r0, #0x0 add r7, r1, #0x0 add r5, r2, #0x0 add r4, r3, #0x0 bl FUN_0206E12C str r0, [sp, #0x10] bl FUN_0206E108 add r3, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x3 str r0, [sp, #0x4] str r5, [sp, #0x8] ldr r2, [sp, #0x10] add r0, r6, #0x0 add r1, r7, #0x0 str r4, [sp, #0xc] bl FUN_0200C06C add sp, #0x14 pop {r4-r7, pc} .balign 4 thumb_func_start FUN_0206E198 FUN_0206E198: ; 0x0206E198 push {r4-r7, lr} sub sp, #0x1c add r5, r0, #0x0 add r6, r1, #0x0 add r7, r2, #0x0 str r3, [sp, #0x18] bl FUN_0206E12C add r4, r0, #0x0 bl FUN_0206E108 str r4, [sp, #0x0] str r0, [sp, #0x4] mov r0, #0x0 str r0, [sp, #0x8] mov r0, #0x3 str r0, [sp, #0xc] ldr r0, [sp, #0x30] ldr r3, [sp, #0x18] str r0, [sp, #0x10] ldr r0, [sp, #0x34] add r1, r6, #0x0 str r0, [sp, #0x14] add r0, r5, #0x0 add r2, r7, #0x0 bl FUN_0200C0DC add sp, #0x1c pop {r4-r7, pc} .balign 4 thumb_func_start FUN_0206E1D4 FUN_0206E1D4: ; 0x0206E1D4 push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 add r7, r3, #0x0 bl FUN_0206E12C str r0, [sp, #0x8] bl FUN_0206E10C add r3, r0, #0x0 mov r0, #0x1 str r0, [sp, #0x0] ldr r2, [sp, #0x8] add r0, r5, #0x0 add r1, r4, #0x0 str r6, [sp, #0x4] bl FUN_0200C124 bl FUN_0206E12C add r6, r0, #0x0 bl FUN_0206E110 add r3, r0, #0x0 mov r0, #0x1 str r0, [sp, #0x0] add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 str r7, [sp, #0x4] bl FUN_0200C13C add sp, #0xc pop {r4-r7, pc} thumb_func_start FUN_0206E21C FUN_0206E21C: ; 0x0206E21C ldr r3, _0206E220 ; =FUN_0200C358 bx r3 .balign 4 _0206E220: .word FUN_0200C358 thumb_func_start FUN_0206E224 FUN_0206E224: ; 0x0206E224 ldr r3, _0206E228 ; =FUN_0200C368 bx r3 .balign 4 _0206E228: .word FUN_0200C368 thumb_func_start FUN_0206E22C FUN_0206E22C: ; 0x0206E22C push {r3-r5, lr} add r5, r0, #0x0 add r4, r2, #0x0 bl FUN_0200C378 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0200C388 pop {r3-r5, pc} thumb_func_start FUN_0206E240 FUN_0206E240: ; 0x0206E240 push {r4-r7, lr} sub sp, #0x34 add r6, r3, #0x0 add r4, r0, #0x0 add r7, r1, #0x0 add r5, sp, #0x0 mov r3, #0x6 _0206E24E: ldmia r6!, {r0-r1} stmia r5!, {r0-r1} sub r3, r3, #0x1 bne _0206E24E ldr r0, [r6, #0x0] str r0, [r5, #0x0] add r0, r2, #0x0 bl FUN_0206E114 str r0, [sp, #0xc] add r0, r4, #0x0 add r1, r7, #0x0 add r2, sp, #0x0 bl FUN_0200C154 add sp, #0x34 pop {r4-r7, pc} thumb_func_start FUN_0206E270 FUN_0206E270: ; 0x0206E270 ldr r3, _0206E274 ; =FUN_0200C3DC bx r3 .balign 4 _0206E274: .word FUN_0200C3DC thumb_func_start FUN_0206E278 FUN_0206E278: ; 0x0206E278 push {r4, lr} add r4, r0, #0x0 cmp r4, #0x3 blo _0206E284 bl ErrorHandling _0206E284: ldr r0, _0206E28C ; =0x020F83D4 lsl r1, r4, #0x2 ldr r0, [r0, r1] pop {r4, pc} .balign 4 _0206E28C: .word 0x020F83D4 thumb_func_start FUN_0206E290 FUN_0206E290: ; 0x0206E290 push {r4, lr} add r4, r0, #0x0 cmp r4, #0x3 blo _0206E29C bl ErrorHandling _0206E29C: ldr r0, _0206E2A4 ; =0x020F83D0 ldrb r0, [r0, r4] pop {r4, pc} nop _0206E2A4: .word 0x020F83D0 thumb_func_start FUN_0206E2A8 FUN_0206E2A8: ; 0x0206E2A8 mov r0, #0x1b bx lr thumb_func_start FUN_0206E2AC FUN_0206E2AC: ; 0x0206E2AC push {r3-r7, lr} sub sp, #0x10 add r7, r3, #0x0 add r5, r0, #0x0 add r6, r1, #0x0 add r4, r2, #0x0 bl FUN_0206E2A8 str r0, [sp, #0xc] add r0, r7, #0x0 bl FUN_0206E278 add r3, r0, #0x0 mov r0, #0x1 str r0, [sp, #0x0] ldr r0, [sp, #0x28] str r4, [sp, #0x4] str r0, [sp, #0x8] ldr r2, [sp, #0xc] add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_0200C00C add sp, #0x10 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0206E2E0 FUN_0206E2E0: ; 0x0206E2E0 ldr r3, _0206E2E4 ; =FUN_0200C358 bx r3 .balign 4 _0206E2E4: .word FUN_0200C358 thumb_func_start FUN_0206E2E8 FUN_0206E2E8: ; 0x0206E2E8 ldr r3, _0206E2EC ; =FUN_0200C3DC bx r3 .balign 4 _0206E2EC: .word FUN_0200C3DC thumb_func_start FUN_0206E2F0 FUN_0206E2F0: ; 0x0206E2F0 push {r4, lr} mov r1, #0x78 bl FUN_02016998 mov r1, #0x0 mov r2, #0x78 add r4, r0, #0x0 blx FUN_020DF4A4 add r0, r4, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_0206E308 FUN_0206E308: ; 0x0206E308 mov r0, #0x78 bx lr thumb_func_start FUN_0206E30C FUN_0206E30C: ; 0x0206E30C add r0, #0x65 strb r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_0206E314 FUN_0206E314: ; 0x0206E314 push {r4-r6, lr} add r4, r1, #0x0 add r1, r2, #0x0 add r5, r0, #0x0 add r6, r3, #0x0 bl FUN_0206E30C str r4, [r5, #0x0] str r6, [r5, #0x6c] mov r0, #0x0 add r5, #0x66 strh r0, [r5, #0x0] pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0206E330 FUN_0206E330: ; 0x0206E330 push {r3-r4} mov r4, #0xc mul r4, r3 add r0, r0, r4 str r1, [r0, #0x4] strb r2, [r0, #0xc] pop {r3-r4} bx lr thumb_func_start FUN_0206E340 FUN_0206E340: ; 0x0206E340 add r1, r0, #0x0 add r1, #0x76 ldrh r2, [r1, #0x0] mov r1, #0x1 add r0, #0x76 bic r2, r1 mov r1, #0x1 orr r1, r2 strh r1, [r0, #0x0] bx lr thumb_func_start FUN_0206E354 FUN_0206E354: ; 0x0206E354 str r1, [r0, #0x70] bx lr thumb_func_start FUN_0206E358 FUN_0206E358: ; 0x0206E358 add r0, #0x74 strb r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_0206E360 FUN_0206E360: ; 0x0206E360 add r2, r0, #0x0 add r2, #0x76 ldrh r3, [r2, #0x0] ldr r2, _0206E378 ; =0xFFFF0001 lsl r1, r1, #0x11 and r2, r3 lsr r1, r1, #0x10 orr r1, r2 add r0, #0x76 strh r1, [r0, #0x0] bx lr nop _0206E378: .word 0xFFFF0001 thumb_func_start FUN_0206E37C FUN_0206E37C: ; 0x0206E37C add r0, #0x66 ldrh r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_0206E384 FUN_0206E384: ; 0x0206E384 add r0, #0x68 ldrh r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_0206E38C FUN_0206E38C: ; 0x0206E38C add r0, #0x74 ldrb r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_0206E394 FUN_0206E394: ; 0x0206E394 add r0, #0x75 ldrb r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_0206E39C FUN_0206E39C: ; 0x0206E39C push {r3, lr} bl FUN_0202390C bl FUN_02028930 pop {r3, pc} thumb_func_start FUN_0206E3A8 FUN_0206E3A8: ; 0x0206E3A8 push {r4-r6, lr} bl FUN_02029C80 add r6, r0, #0x0 mov r5, #0x0 mov r4, #0x1 _0206E3B4: add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_02029E2C add r4, r4, #0x1 add r5, r5, r0 cmp r4, #0x50 bls _0206E3B4 add r0, r5, #0x0 pop {r4-r6, pc} thumb_func_start FUN_0206E3C8 FUN_0206E3C8: ; 0x0206E3C8 push {r3, lr} bl FUN_02027E24 bl FUN_0202708C bl FUN_02027168 pop {r3, pc} thumb_func_start FUN_0206E3D8 FUN_0206E3D8: ; 0x0206E3D8 push {r3, lr} bl FUN_02027E24 bl FUN_0202708C bl FUN_02027184 pop {r3, pc} thumb_func_start FUN_0206E3E8 FUN_0206E3E8: ; 0x0206E3E8 push {r3, lr} bl FUN_0202A8D8 mov r1, #0x0 add r2, r1, #0x0 bl FUN_0202A3B4 pop {r3, pc} thumb_func_start FUN_0206E3F8 FUN_0206E3F8: ; 0x0206E3F8 push {r4-r7, lr} sub sp, #0xc add r7, r0, #0x0 str r1, [sp, #0x8] add r5, r2, #0x0 add r4, r3, #0x0 mov r0, #0x0 mov r1, #0x1a mov r2, #0x7 bl FUN_0200A86C add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_0200AA80 add r4, r0, #0x0 cmp r5, #0x0 bne _0206E428 add r0, r6, #0x0 mov r1, #0x63 bl FUN_0200A914 add r5, r0, #0x0 b _0206E4FA _0206E428: mov r1, #0x1b lsl r1, r1, #0x4 cmp r5, r1 bne _0206E454 add r0, r6, #0x0 mov r1, #0x61 bl FUN_0200A914 add r5, r0, #0x0 add r0, r7, #0x0 bl FUN_0206E3E8 mov r1, #0x0 add r2, r0, #0x0 str r1, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] add r0, r4, #0x0 mov r3, #0x4 bl FUN_0200AD38 b _0206E4FA _0206E454: add r2, r1, #0x2 cmp r5, r2 bne _0206E47E add r0, r6, #0x0 mov r1, #0x5c bl FUN_0200A914 add r5, r0, #0x0 add r0, r7, #0x0 bl FUN_0206E3A8 mov r1, #0x0 add r2, r0, #0x0 str r1, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] add r0, r4, #0x0 mov r3, #0x4 bl FUN_0200AD38 b _0206E4FA _0206E47E: add r2, r1, #0x3 cmp r5, r2 bne _0206E4C0 add r0, r6, #0x0 mov r1, #0x5d bl FUN_0200A914 add r5, r0, #0x0 add r0, r7, #0x0 bl FUN_0206E3C8 mov r1, #0x0 add r2, r0, #0x0 str r1, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] add r0, r4, #0x0 mov r3, #0x3 bl FUN_0200AD38 add r0, r7, #0x0 bl FUN_0206E3D8 add r2, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] mov r1, #0x1 add r0, r4, #0x0 mov r3, #0x2 str r1, [sp, #0x4] bl FUN_0200AD38 b _0206E4FA _0206E4C0: add r1, #0xc cmp r5, r1 bne _0206E4EA add r0, r6, #0x0 mov r1, #0x39 bl FUN_0200A914 add r5, r0, #0x0 add r0, r7, #0x0 bl FUN_0206E39C mov r1, #0x0 add r2, r0, #0x0 str r1, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] add r0, r4, #0x0 mov r3, #0x5 bl FUN_0200AD38 b _0206E4FA _0206E4EA: bl FUN_0200AB18 add r0, r6, #0x0 bl FUN_0200A8B8 add sp, #0xc mov r0, #0x0 pop {r4-r7, pc} _0206E4FA: ldr r1, [sp, #0x8] add r0, r4, #0x0 add r2, r5, #0x0 bl FUN_0200B7B8 add r0, r5, #0x0 bl FUN_02021A20 add r0, r4, #0x0 bl FUN_0200AB18 add r0, r6, #0x0 bl FUN_0200A8B8 mov r0, #0x1 add sp, #0xc pop {r4-r7, pc} thumb_func_start FUN_0206E51C FUN_0206E51C: ; 0x0206E51C push {r3-r7, lr} add r5, r1, #0x0 str r0, [sp, #0x0] ldr r4, [sp, #0x18] cmp r3, #0x1 beq _0206E52E cmp r3, #0x2 beq _0206E54C b _0206E56A _0206E52E: mov r0, #0x1 mov r1, #0x1a mov r2, #0x7 add r3, r4, #0x0 bl FUN_0200A86C add r4, r0, #0x0 mov r1, #0x38 add r2, r5, #0x0 bl FUN_0200A8E0 add r0, r4, #0x0 bl FUN_0200A8B8 pop {r3-r7, pc} _0206E54C: mov r0, #0x1 mov r1, #0x1a mov r2, #0x7 add r3, r4, #0x0 bl FUN_0200A86C add r4, r0, #0x0 mov r1, #0x6f add r2, r5, #0x0 bl FUN_0200A8E0 add r0, r4, #0x0 bl FUN_0200A8B8 pop {r3-r7, pc} _0206E56A: mov r0, #0x1 mov r1, #0x1a mov r2, #0xc7 add r3, r4, #0x0 bl FUN_0200A86C add r7, r0, #0x0 add r0, r4, #0x0 bl FUN_0200AA80 add r4, r0, #0x0 add r0, r7, #0x0 mov r1, #0x24 bl FUN_0200A914 add r6, r0, #0x0 ldr r2, [sp, #0x0] add r0, r4, #0x0 mov r1, #0x0 bl FUN_0200ABC0 add r0, r4, #0x0 add r1, r5, #0x0 add r2, r6, #0x0 bl FUN_0200B7B8 add r0, r6, #0x0 bl FUN_02021A20 add r0, r4, #0x0 bl FUN_0200AB18 add r0, r7, #0x0 bl FUN_0200A8B8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0206E5B4 FUN_0206E5B4: ; 0x0206E5B4 push {r3-r6} add r3, r0, #0x0 add r0, r2, #0x0 cmp r1, r0 beq _0206E63A lsl r2, r1, #0x2 ldrh r4, [r3, r2] add r5, r3, r2 add r2, sp, #0x0 strh r4, [r2, #0x0] ldrh r4, [r5, #0x2] strh r4, [r2, #0x2] cmp r0, r1 bls _0206E600 sub r0, r0, #0x1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 lsl r1, r1, #0x10 lsl r2, r0, #0x10 asr r1, r1, #0x10 asr r5, r2, #0x10 cmp r1, r5 bge _0206E62C lsl r2, r1, #0x2 add r2, r3, r2 add r4, r2, #0x0 _0206E5E8: ldrh r6, [r2, #0x4] add r1, r1, #0x1 lsl r1, r1, #0x10 strh r6, [r4, #0x0] ldrh r6, [r2, #0x6] asr r1, r1, #0x10 add r2, r2, #0x4 strh r6, [r4, #0x2] add r4, r4, #0x4 cmp r1, r5 blt _0206E5E8 b _0206E62C _0206E600: lsl r1, r1, #0x10 asr r5, r1, #0x10 lsl r1, r0, #0x10 asr r4, r1, #0x10 cmp r5, r4 ble _0206E62C lsl r1, r5, #0x2 add r1, r3, r1 add r2, r1, #0x0 _0206E612: sub r6, r1, #0x4 ldrh r6, [r6, #0x0] sub r5, r5, #0x1 lsl r5, r5, #0x10 strh r6, [r2, #0x0] sub r6, r1, #0x2 ldrh r6, [r6, #0x0] asr r5, r5, #0x10 sub r1, r1, #0x4 strh r6, [r2, #0x2] sub r2, r2, #0x4 cmp r5, r4 bgt _0206E612 _0206E62C: lsl r4, r0, #0x2 add r0, sp, #0x0 ldrh r1, [r0, #0x0] add r2, r3, r4 strh r1, [r3, r4] ldrh r0, [r0, #0x2] strh r0, [r2, #0x2] _0206E63A: pop {r3-r6} bx lr .balign 4 thumb_func_start FUN_0206E640 FUN_0206E640: ; 0x0206E640 cmp r1, #0x3 bhi _0206E6B2 add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0206E650: ; jump table (using 16-bit offset) .short _0206E658 - _0206E650 - 2; case 0 .short _0206E66A - _0206E650 - 2; case 1 .short _0206E684 - _0206E650 - 2; case 2 .short _0206E6A0 - _0206E650 - 2; case 3 _0206E658: cmp r0, #0x0 beq _0206E6B2 ldr r1, _0206E6B8 ; =0x0000FFFF cmp r0, r1 beq _0206E6B2 lsl r1, r0, #0x3 ldr r0, _0206E6BC ; =0x020F85B4 ldrh r0, [r0, r1] bx lr _0206E66A: cmp r0, #0x0 bne _0206E672 ldr r0, _0206E6C0 ; =0x000002BB bx lr _0206E672: ldr r1, _0206E6B8 ; =0x0000FFFF cmp r0, r1 bne _0206E67C ldr r0, _0206E6C4 ; =0x000002BD bx lr _0206E67C: lsl r1, r0, #0x3 ldr r0, _0206E6C8 ; =0x020F85B6 ldrh r0, [r0, r1] bx lr _0206E684: cmp r0, #0x0 bne _0206E68E mov r0, #0xaf lsl r0, r0, #0x2 bx lr _0206E68E: ldr r1, _0206E6B8 ; =0x0000FFFF cmp r0, r1 bne _0206E698 ldr r0, _0206E6CC ; =0x000002BE bx lr _0206E698: lsl r1, r0, #0x3 ldr r0, _0206E6D0 ; =0x020F85B8 ldrh r0, [r0, r1] bx lr _0206E6A0: cmp r0, #0x0 beq _0206E6B2 ldr r1, _0206E6B8 ; =0x0000FFFF cmp r0, r1 beq _0206E6B2 lsl r1, r0, #0x3 ldr r0, _0206E6D4 ; =0x020F85BA ldrh r0, [r0, r1] bx lr _0206E6B2: mov r0, #0x0 bx lr nop _0206E6B8: .word 0x0000FFFF _0206E6BC: .word 0x020F85B4 _0206E6C0: .word 0x000002BB _0206E6C4: .word 0x000002BD _0206E6C8: .word 0x020F85B6 _0206E6CC: .word 0x000002BE _0206E6D0: .word 0x020F85B8 _0206E6D4: .word 0x020F85BA thumb_func_start FUN_0206E6D8 FUN_0206E6D8: ; 0x0206E6D8 push {r3-r4} mov r2, #0x1d ldr r3, _0206E704 ; =0x020F85B4 mov r4, #0x1 lsl r2, r2, #0x4 _0206E6E2: lsl r1, r4, #0x3 add r1, r3, r1 ldrh r1, [r1, #0x6] cmp r0, r1 bne _0206E6F2 add r0, r4, #0x0 pop {r3-r4} bx lr _0206E6F2: add r1, r4, #0x1 lsl r1, r1, #0x10 lsr r4, r1, #0x10 cmp r4, r2 bls _0206E6E2 mov r0, #0x0 pop {r3-r4} bx lr nop _0206E704: .word 0x020F85B4 thumb_func_start FUN_0206E708 FUN_0206E708: ; 0x0206E708 mov r0, #0x1 bx lr thumb_func_start FUN_0206E70C FUN_0206E70C: ; 0x0206E70C mov r0, #0x0 bx lr thumb_func_start FUN_0206E710 FUN_0206E710: ; 0x0206E710 push {r3, lr} add r3, r0, #0x0 mov r0, #0x1d lsl r0, r0, #0x4 cmp r3, r0 bls _0206E71E mov r3, #0x0 _0206E71E: cmp r1, #0x0 beq _0206E72C cmp r1, #0x1 beq _0206E73A cmp r1, #0x2 beq _0206E748 b _0206E756 _0206E72C: ldr r1, _0206E75C ; =0x020F85B4 lsl r3, r3, #0x3 ldrh r1, [r1, r3] mov r0, #0xf bl FUN_0200650C pop {r3, pc} _0206E73A: ldr r1, _0206E760 ; =0x020F85B6 lsl r3, r3, #0x3 ldrh r1, [r1, r3] mov r0, #0x10 bl FUN_0200650C pop {r3, pc} _0206E748: ldr r1, _0206E764 ; =0x020F85B8 lsl r3, r3, #0x3 ldrh r1, [r1, r3] mov r0, #0x10 bl FUN_0200650C pop {r3, pc} _0206E756: mov r0, #0x0 pop {r3, pc} nop _0206E75C: .word 0x020F85B4 _0206E760: .word 0x020F85B6 _0206E764: .word 0x020F85B8 thumb_func_start FUN_0206E768 FUN_0206E768: ; 0x0206E768 push {r4-r6, lr} add r3, r2, #0x0 mov r2, #0x56 add r5, r0, #0x0 add r4, r1, #0x0 mov r0, #0x1 mov r1, #0x1a lsl r2, r2, #0x2 bl FUN_0200A86C add r6, r0, #0x0 add r1, r4, #0x0 add r2, r5, #0x0 bl FUN_0200A8E0 add r0, r6, #0x0 bl FUN_0200A8B8 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0206E790 FUN_0206E790: ; 0x0206E790 push {r4-r6, lr} add r3, r2, #0x0 add r5, r0, #0x0 add r4, r1, #0x0 ldr r2, _0206E7B4 ; =0x00000157 mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r6, r0, #0x0 add r1, r4, #0x0 add r2, r5, #0x0 bl FUN_0200A8E0 add r0, r6, #0x0 bl FUN_0200A8B8 pop {r4-r6, pc} .balign 4 _0206E7B4: .word 0x00000157 thumb_func_start FUN_0206E7B8 FUN_0206E7B8: ; 0x0206E7B8 push {r4-r6, lr} add r4, r1, #0x0 mov r1, #0x0 add r5, r2, #0x0 bl FUN_0206E710 add r6, r0, #0x0 add r1, r4, #0x0 bl FUN_0206E7DC add r4, r0, #0x0 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02016A8C add r0, r4, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0206E7DC FUN_0206E7DC: ; 0x0206E7DC push {r3, lr} cmp r1, #0xe bhi _0206E85C add r2, r1, r1 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _0206E7EE: ; jump table (using 16-bit offset) .short _0206E80C - _0206E7EE - 2; case 0 .short _0206E810 - _0206E7EE - 2; case 1 .short _0206E814 - _0206E7EE - 2; case 2 .short _0206E818 - _0206E7EE - 2; case 3 .short _0206E820 - _0206E7EE - 2; case 4 .short _0206E828 - _0206E7EE - 2; case 5 .short _0206E830 - _0206E7EE - 2; case 6 .short _0206E834 - _0206E7EE - 2; case 7 .short _0206E838 - _0206E7EE - 2; case 8 .short _0206E83C - _0206E7EE - 2; case 9 .short _0206E840 - _0206E7EE - 2; case 10 .short _0206E844 - _0206E7EE - 2; case 11 .short _0206E848 - _0206E7EE - 2; case 12 .short _0206E850 - _0206E7EE - 2; case 13 .short _0206E858 - _0206E7EE - 2; case 14 _0206E80C: ldrh r0, [r0, #0x0] pop {r3, pc} _0206E810: ldrb r0, [r0, #0x2] pop {r3, pc} _0206E814: ldrb r0, [r0, #0x3] pop {r3, pc} _0206E818: ldrh r0, [r0, #0x8] lsl r0, r0, #0x1a lsr r0, r0, #0x1f pop {r3, pc} _0206E820: ldrh r0, [r0, #0x8] lsl r0, r0, #0x19 lsr r0, r0, #0x1f pop {r3, pc} _0206E828: ldrh r0, [r0, #0x8] lsl r0, r0, #0x15 lsr r0, r0, #0x1c pop {r3, pc} _0206E830: ldrb r0, [r0, #0xa] pop {r3, pc} _0206E834: ldrb r0, [r0, #0xb] pop {r3, pc} _0206E838: ldrb r0, [r0, #0x4] pop {r3, pc} _0206E83C: ldrb r0, [r0, #0x5] pop {r3, pc} _0206E840: ldrb r0, [r0, #0x6] pop {r3, pc} _0206E844: ldrb r0, [r0, #0x7] pop {r3, pc} _0206E848: ldrh r0, [r0, #0x8] lsl r0, r0, #0x1b lsr r0, r0, #0x1b pop {r3, pc} _0206E850: ldrh r0, [r0, #0x8] lsl r0, r0, #0x10 lsr r0, r0, #0x1b pop {r3, pc} _0206E858: ldrb r0, [r0, #0xc] pop {r3, pc} _0206E85C: ldrb r2, [r0, #0xc] cmp r2, #0x0 beq _0206E868 cmp r2, #0x1 beq _0206E86C b _0206E874 _0206E868: ldrb r0, [r0, #0xe] pop {r3, pc} _0206E86C: add r0, #0xe bl FUN_0206E878 pop {r3, pc} _0206E874: mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_0206E878 FUN_0206E878: ; 0x0206E878 sub r1, #0xf cmp r1, #0x2b bls _0206E880 b _0206EA2A _0206E880: add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0206E88C: ; jump table (using 16-bit offset) .short _0206E8E4 - _0206E88C - 2; case 0 .short _0206E8EC - _0206E88C - 2; case 1 .short _0206E8F4 - _0206E88C - 2; case 2 .short _0206E8FC - _0206E88C - 2; case 3 .short _0206E904 - _0206E88C - 2; case 4 .short _0206E90C - _0206E88C - 2; case 5 .short _0206E914 - _0206E88C - 2; case 6 .short _0206E91C - _0206E88C - 2; case 7 .short _0206E924 - _0206E88C - 2; case 8 .short _0206E92C - _0206E88C - 2; case 9 .short _0206E934 - _0206E88C - 2; case 10 .short _0206E93C - _0206E88C - 2; case 11 .short _0206E944 - _0206E88C - 2; case 12 .short _0206E94C - _0206E88C - 2; case 13 .short _0206E954 - _0206E88C - 2; case 14 .short _0206E95C - _0206E88C - 2; case 15 .short _0206E964 - _0206E88C - 2; case 16 .short _0206E96C - _0206E88C - 2; case 17 .short _0206E974 - _0206E88C - 2; case 18 .short _0206E97C - _0206E88C - 2; case 19 .short _0206E984 - _0206E88C - 2; case 20 .short _0206E98C - _0206E88C - 2; case 21 .short _0206E994 - _0206E88C - 2; case 22 .short _0206E99C - _0206E88C - 2; case 23 .short _0206E9A4 - _0206E88C - 2; case 24 .short _0206E9AC - _0206E88C - 2; case 25 .short _0206E9B4 - _0206E88C - 2; case 26 .short _0206E9BC - _0206E88C - 2; case 27 .short _0206E9C4 - _0206E88C - 2; case 28 .short _0206E9CC - _0206E88C - 2; case 29 .short _0206E9D4 - _0206E88C - 2; case 30 .short _0206E9DC - _0206E88C - 2; case 31 .short _0206E9E4 - _0206E88C - 2; case 32 .short _0206E9EC - _0206E88C - 2; case 33 .short _0206E9F2 - _0206E88C - 2; case 34 .short _0206E9F8 - _0206E88C - 2; case 35 .short _0206E9FE - _0206E88C - 2; case 36 .short _0206EA04 - _0206E88C - 2; case 37 .short _0206EA0A - _0206E88C - 2; case 38 .short _0206EA10 - _0206E88C - 2; case 39 .short _0206EA14 - _0206E88C - 2; case 40 .short _0206EA18 - _0206E88C - 2; case 41 .short _0206EA1E - _0206E88C - 2; case 42 .short _0206EA24 - _0206E88C - 2; case 43 _0206E8E4: ldrb r0, [r0, #0x0] lsl r0, r0, #0x1f lsr r0, r0, #0x1f bx lr _0206E8EC: ldrb r0, [r0, #0x0] lsl r0, r0, #0x1e lsr r0, r0, #0x1f bx lr _0206E8F4: ldrb r0, [r0, #0x0] lsl r0, r0, #0x1d lsr r0, r0, #0x1f bx lr _0206E8FC: ldrb r0, [r0, #0x0] lsl r0, r0, #0x1c lsr r0, r0, #0x1f bx lr _0206E904: ldrb r0, [r0, #0x0] lsl r0, r0, #0x1b lsr r0, r0, #0x1f bx lr _0206E90C: ldrb r0, [r0, #0x0] lsl r0, r0, #0x1a lsr r0, r0, #0x1f bx lr _0206E914: ldrb r0, [r0, #0x0] lsl r0, r0, #0x19 lsr r0, r0, #0x1f bx lr _0206E91C: ldrb r0, [r0, #0x0] lsl r0, r0, #0x18 lsr r0, r0, #0x1f bx lr _0206E924: ldrb r0, [r0, #0x1] lsl r0, r0, #0x1f lsr r0, r0, #0x1f bx lr _0206E92C: ldrb r0, [r0, #0x1] lsl r0, r0, #0x1e lsr r0, r0, #0x1f bx lr _0206E934: ldrb r0, [r0, #0x1] lsl r0, r0, #0x1d lsr r0, r0, #0x1f bx lr _0206E93C: ldrb r0, [r0, #0x1] lsl r0, r0, #0x1c lsr r0, r0, #0x1f bx lr _0206E944: ldrb r0, [r0, #0x1] lsl r0, r0, #0x18 lsr r0, r0, #0x1c bx lr _0206E94C: ldrb r0, [r0, #0x2] lsl r0, r0, #0x1c lsr r0, r0, #0x1c bx lr _0206E954: ldrb r0, [r0, #0x2] lsl r0, r0, #0x18 lsr r0, r0, #0x1c bx lr _0206E95C: ldrb r0, [r0, #0x3] lsl r0, r0, #0x1c lsr r0, r0, #0x1c bx lr _0206E964: ldrb r0, [r0, #0x3] lsl r0, r0, #0x18 lsr r0, r0, #0x1c bx lr _0206E96C: ldrb r0, [r0, #0x4] lsl r0, r0, #0x1c lsr r0, r0, #0x1c bx lr _0206E974: ldrb r0, [r0, #0x4] lsl r0, r0, #0x1a lsr r0, r0, #0x1e bx lr _0206E97C: ldrb r0, [r0, #0x4] lsl r0, r0, #0x19 lsr r0, r0, #0x1f bx lr _0206E984: ldrb r0, [r0, #0x4] lsl r0, r0, #0x18 lsr r0, r0, #0x1f bx lr _0206E98C: ldrb r0, [r0, #0x5] lsl r0, r0, #0x1f lsr r0, r0, #0x1f bx lr _0206E994: ldrb r0, [r0, #0x5] lsl r0, r0, #0x1e lsr r0, r0, #0x1f bx lr _0206E99C: ldrb r0, [r0, #0x5] lsl r0, r0, #0x1d lsr r0, r0, #0x1f bx lr _0206E9A4: ldrb r0, [r0, #0x5] lsl r0, r0, #0x1c lsr r0, r0, #0x1f bx lr _0206E9AC: ldrb r0, [r0, #0x5] lsl r0, r0, #0x1b lsr r0, r0, #0x1f bx lr _0206E9B4: ldrb r0, [r0, #0x5] lsl r0, r0, #0x1a lsr r0, r0, #0x1f bx lr _0206E9BC: ldrb r0, [r0, #0x5] lsl r0, r0, #0x19 lsr r0, r0, #0x1f bx lr _0206E9C4: ldrb r0, [r0, #0x5] lsl r0, r0, #0x18 lsr r0, r0, #0x1f bx lr _0206E9CC: ldrb r0, [r0, #0x6] lsl r0, r0, #0x1f lsr r0, r0, #0x1f bx lr _0206E9D4: ldrb r0, [r0, #0x6] lsl r0, r0, #0x1e lsr r0, r0, #0x1f bx lr _0206E9DC: ldrb r0, [r0, #0x6] lsl r0, r0, #0x1d lsr r0, r0, #0x1f bx lr _0206E9E4: ldrb r0, [r0, #0x6] lsl r0, r0, #0x1c lsr r0, r0, #0x1f bx lr _0206E9EC: mov r1, #0x7 ldrsb r0, [r0, r1] bx lr _0206E9F2: mov r1, #0x8 ldrsb r0, [r0, r1] bx lr _0206E9F8: mov r1, #0x9 ldrsb r0, [r0, r1] bx lr _0206E9FE: mov r1, #0xa ldrsb r0, [r0, r1] bx lr _0206EA04: mov r1, #0xb ldrsb r0, [r0, r1] bx lr _0206EA0A: mov r1, #0xc ldrsb r0, [r0, r1] bx lr _0206EA10: ldrb r0, [r0, #0xd] bx lr _0206EA14: ldrb r0, [r0, #0xe] bx lr _0206EA18: mov r1, #0xf ldrsb r0, [r0, r1] bx lr _0206EA1E: mov r1, #0x10 ldrsb r0, [r0, r1] bx lr _0206EA24: mov r1, #0x11 ldrsb r0, [r0, r1] bx lr _0206EA2A: mov r0, #0x0 bx lr .balign 4 thumb_func_start FUN_0206EA30 FUN_0206EA30: ; 0x0206EA30 mov r2, #0x52 lsl r2, r2, #0x2 cmp r0, r2 blo _0206EA40 add r1, r2, #0x0 add r1, #0x63 cmp r0, r1 bls _0206EA44 _0206EA40: mov r0, #0x0 bx lr _0206EA44: sub r0, r0, r2 lsl r0, r0, #0x10 lsr r1, r0, #0xf ldr r0, _0206EA50 ; =0x020F84EC ldrh r0, [r0, r1] bx lr .balign 4 _0206EA50: .word 0x020F84EC thumb_func_start FUN_0206EA54 FUN_0206EA54: ; 0x0206EA54 ldr r2, _0206EA78 ; =0x020F84EC mov r3, #0x0 _0206EA58: lsl r1, r3, #0x1 add r1, r2, r1 add r1, #0xb8 ldrh r1, [r1, #0x0] cmp r0, r1 bne _0206EA68 mov r0, #0x1 bx lr _0206EA68: add r1, r3, #0x1 lsl r1, r1, #0x18 lsr r3, r1, #0x18 cmp r3, #0x8 blo _0206EA58 mov r0, #0x0 bx lr nop _0206EA78: .word 0x020F84EC thumb_func_start FUN_0206EA7C FUN_0206EA7C: ; 0x0206EA7C mov r2, #0x52 lsl r2, r2, #0x2 cmp r0, r2 blo _0206EA8C add r1, r2, #0x0 add r1, #0x63 cmp r0, r1 bls _0206EA90 _0206EA8C: mov r0, #0x0 bx lr _0206EA90: sub r0, r0, r2 lsl r0, r0, #0x18 lsr r0, r0, #0x18 bx lr thumb_func_start FUN_0206EA98 FUN_0206EA98: ; 0x0206EA98 ldr r3, _0206EAB4 ; =0x020F8454 mov r2, #0x0 _0206EA9C: ldrh r1, [r3, #0x0] cmp r0, r1 bne _0206EAA6 mov r0, #0x1 bx lr _0206EAA6: add r2, r2, #0x1 add r3, r3, #0x2 cmp r2, #0xc blo _0206EA9C mov r0, #0x0 bx lr nop _0206EAB4: .word 0x020F8454 thumb_func_start FUN_0206EAB8 FUN_0206EAB8: ; 0x0206EAB8 ldr r3, _0206EAD4 ; =0x020F8454 mov r2, #0x0 _0206EABC: ldrh r1, [r3, #0x0] cmp r0, r1 bne _0206EAC8 lsl r0, r2, #0x18 lsr r0, r0, #0x18 bx lr _0206EAC8: add r2, r2, #0x1 add r3, r3, #0x2 cmp r2, #0xc blo _0206EABC mov r0, #0x0 bx lr .balign 4 _0206EAD4: .word 0x020F8454 thumb_func_start FUN_0206EAD8 FUN_0206EAD8: ; 0x0206EAD8 cmp r0, #0xc blo _0206EAE0 mov r0, #0x0 bx lr _0206EAE0: lsl r1, r0, #0x1 ldr r0, _0206EAE8 ; =0x020F8454 ldrh r0, [r0, r1] bx lr .balign 4 _0206EAE8: .word 0x020F8454 thumb_func_start FUN_0206EAEC FUN_0206EAEC: ; 0x0206EAEC ldr r3, _0206EB08 ; =0x020F846C mov r2, #0x0 _0206EAF0: ldrh r1, [r3, #0x0] cmp r0, r1 bne _0206EAFA mov r0, #0x1 bx lr _0206EAFA: add r2, r2, #0x1 add r3, r3, #0x2 cmp r2, #0x40 blo _0206EAF0 mov r0, #0x0 bx lr nop _0206EB08: .word 0x020F846C thumb_func_start FUN_0206EB0C FUN_0206EB0C: ; 0x0206EB0C cmp r0, #0x95 bhs _0206EB14 mov r0, #0xff bx lr _0206EB14: sub r0, #0x95 lsl r0, r0, #0x18 lsr r0, r0, #0x18 bx lr thumb_func_start FUN_0206EB1C FUN_0206EB1C: ; 0x0206EB1C cmp r0, #0x40 blo _0206EB24 ldr r0, _0206EB2C ; =0x0000FFFF bx lr _0206EB24: lsl r1, r0, #0x1 ldr r0, _0206EB30 ; =0x020F846C ldrh r0, [r0, r1] bx lr .balign 4 _0206EB2C: .word 0x0000FFFF _0206EB30: .word 0x020F846C thumb_func_start FUN_0206EB34 FUN_0206EB34: ; 0x0206EB34 ldr r1, _0206EB4C ; =0x0000FFDE add r0, r0, r1 lsl r0, r0, #0x10 lsr r0, r0, #0x10 cmp r0, #0x3 bhi _0206EB44 mov r0, #0x1 b _0206EB46 _0206EB44: mov r0, #0x0 _0206EB46: lsl r0, r0, #0x18 lsr r0, r0, #0x18 bx lr .balign 4 _0206EB4C: .word 0x0000FFDE thumb_func_start FUN_0206EB50 FUN_0206EB50: ; 0x0206EB50 push {r3-r4, lr} sub sp, #0x4 add r4, r0, #0x0 mov r0, #0x1d lsl r0, r0, #0x4 mov r1, #0x0 bl FUN_0206E640 mov r1, #0x24 mul r1, r0 str r1, [sp, #0x0] mov r1, #0x0 mov r0, #0xf add r2, r4, #0x0 add r3, r1, #0x0 bl FUN_02006564 add sp, #0x4 pop {r3-r4, pc} .balign 4 thumb_func_start FUN_0206EB78 FUN_0206EB78: ; 0x0206EB78 mov r2, #0x24 mul r2, r1 add r0, r0, r2 bx lr thumb_func_start FUN_0206EB80 FUN_0206EB80: ; 0x0206EB80 ldr r0, _0206EB84 ; =0x00000774 bx lr .balign 4 _0206EB84: .word 0x00000774 thumb_func_start FUN_0206EB88 FUN_0206EB88: ; 0x0206EB88 push {r4, lr} ldr r1, _0206EB9C ; =0x00000774 bl FUN_02016998 add r4, r0, #0x0 bl FUN_0206EBA0 add r0, r4, #0x0 pop {r4, pc} nop _0206EB9C: .word 0x00000774 thumb_func_start FUN_0206EBA0 FUN_0206EBA0: ; 0x0206EBA0 ldr r3, _0206EBAC ; =MIi_CpuClear16 add r1, r0, #0x0 mov r0, #0x0 ldr r2, _0206EBB0 ; =0x00000774 bx r3 nop _0206EBAC: .word MIi_CpuClear16 _0206EBB0: .word 0x00000774 thumb_func_start FUN_0206EBB4 FUN_0206EBB4: ; 0x0206EBB4 ldr r3, _0206EBBC ; =MI_CpuCopy8 ldr r2, _0206EBC0 ; =0x00000774 bx r3 nop _0206EBBC: .word MI_CpuCopy8 _0206EBC0: .word 0x00000774 thumb_func_start FUN_0206EBC4 FUN_0206EBC4: ; 0x0206EBC4 mov r1, #0x77 lsl r1, r1, #0x4 ldr r0, [r0, r1] bx lr thumb_func_start FUN_0206EBCC FUN_0206EBCC: ; 0x0206EBCC mov r2, #0x77 lsl r2, r2, #0x4 str r1, [r0, r2] bx lr thumb_func_start FUN_0206EBD4 FUN_0206EBD4: ; 0x0206EBD4 push {r4-r6, lr} add r5, r2, #0x0 add r4, r0, #0x0 add r0, r1, #0x0 ldr r2, [sp, #0x10] mov r1, #0x5 add r6, r3, #0x0 bl FUN_0206E7B8 cmp r0, #0x7 bhi _0206EC64 add r1, r0, r0 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0206EBF6: ; jump table (using 16-bit offset) .short _0206EC14 - _0206EBF6 - 2; case 0 .short _0206EC28 - _0206EBF6 - 2; case 1 .short _0206EC34 - _0206EBF6 - 2; case 2 .short _0206EC58 - _0206EBF6 - 2; case 3 .short _0206EC1C - _0206EBF6 - 2; case 4 .short _0206EC4C - _0206EBF6 - 2; case 5 .short _0206EC40 - _0206EBF6 - 2; case 6 .short _0206EC06 - _0206EBF6 - 2; case 7 _0206EC06: mov r1, #0xa5 lsl r1, r1, #0x2 add r1, r4, r1 str r1, [r5, #0x0] mov r1, #0x32 str r1, [r6, #0x0] pop {r4-r6, pc} _0206EC14: str r4, [r5, #0x0] mov r1, #0xa5 str r1, [r6, #0x0] pop {r4-r6, pc} _0206EC1C: ldr r1, _0206EC68 ; =0x000005BC add r1, r4, r1 str r1, [r5, #0x0] mov r1, #0x40 str r1, [r6, #0x0] pop {r4-r6, pc} _0206EC28: ldr r1, _0206EC6C ; =0x0000051C add r1, r4, r1 str r1, [r5, #0x0] mov r1, #0x28 str r1, [r6, #0x0] pop {r4-r6, pc} _0206EC34: ldr r1, _0206EC70 ; =0x000006BC add r1, r4, r1 str r1, [r5, #0x0] mov r1, #0xf str r1, [r6, #0x0] pop {r4-r6, pc} _0206EC40: ldr r1, _0206EC74 ; =0x000006F8 add r1, r4, r1 str r1, [r5, #0x0] mov r1, #0x1e str r1, [r6, #0x0] pop {r4-r6, pc} _0206EC4C: ldr r1, _0206EC78 ; =0x000004EC add r1, r4, r1 str r1, [r5, #0x0] mov r1, #0xc str r1, [r6, #0x0] pop {r4-r6, pc} _0206EC58: mov r1, #0xd7 lsl r1, r1, #0x2 add r1, r4, r1 str r1, [r5, #0x0] mov r1, #0x64 str r1, [r6, #0x0] _0206EC64: pop {r4-r6, pc} nop _0206EC68: .word 0x000005BC _0206EC6C: .word 0x0000051C _0206EC70: .word 0x000006BC _0206EC74: .word 0x000006F8 _0206EC78: .word 0x000004EC thumb_func_start FUN_0206EC7C FUN_0206EC7C: ; 0x0206EC7C push {r4-r7} add r5, r1, #0x0 mov r1, #0x0 add r7, r0, #0x0 add r4, r2, #0x0 mov r12, r3 mvn r1, r1 mov r0, #0x0 cmp r5, #0x0 bls _0206ECCA add r2, r7, #0x0 add r3, r1, #0x0 _0206EC94: ldrh r6, [r2, #0x0] cmp r4, r6 bne _0206ECB2 lsl r0, r0, #0x2 add r0, r7, r0 ldrh r2, [r0, #0x2] mov r1, r12 add r2, r1, r2 add r1, sp, #0x0 ldrh r1, [r1, #0x10] cmp r2, r1 ble _0206ECDC mov r0, #0x0 pop {r4-r7} bx lr _0206ECB2: cmp r1, r3 bne _0206ECC2 cmp r6, #0x0 bne _0206ECC2 ldrh r6, [r2, #0x2] cmp r6, #0x0 bne _0206ECC2 add r1, r0, #0x0 _0206ECC2: add r0, r0, #0x1 add r2, r2, #0x4 cmp r0, r5 blo _0206EC94 _0206ECCA: mov r0, #0x0 mvn r0, r0 cmp r1, r0 bne _0206ECD8 mov r0, #0x0 pop {r4-r7} bx lr _0206ECD8: lsl r0, r1, #0x2 add r0, r7, r0 _0206ECDC: pop {r4-r7} bx lr thumb_func_start FUN_0206ECE0 FUN_0206ECE0: ; 0x0206ECE0 push {r4-r5, lr} sub sp, #0xc add r4, r2, #0x0 str r3, [sp, #0x0] add r2, sp, #0x8 add r3, sp, #0x4 add r5, r1, #0x0 bl FUN_0206EBD4 cmp r0, #0x3 bne _0206ED0A mov r0, #0x63 str r0, [sp, #0x0] ldr r0, [sp, #0x8] ldr r1, [sp, #0x4] add r2, r5, #0x0 add r3, r4, #0x0 bl FUN_0206EC7C add sp, #0xc pop {r4-r5, pc} _0206ED0A: ldr r0, _0206ED20 ; =0x000003E7 add r2, r5, #0x0 str r0, [sp, #0x0] ldr r0, [sp, #0x8] ldr r1, [sp, #0x4] add r3, r4, #0x0 bl FUN_0206EC7C add sp, #0xc pop {r4-r5, pc} nop _0206ED20: .word 0x000003E7 thumb_func_start FUN_0206ED24 FUN_0206ED24: ; 0x0206ED24 push {r3, lr} bl FUN_0206ECE0 cmp r0, #0x0 beq _0206ED32 mov r0, #0x1 pop {r3, pc} _0206ED32: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0206ED38 FUN_0206ED38: ; 0x0206ED38 push {r4-r7, lr} sub sp, #0xc add r7, r0, #0x0 add r5, r1, #0x0 add r4, r2, #0x0 add r6, r3, #0x0 bl FUN_0206ECE0 str r0, [sp, #0x8] cmp r0, #0x0 bne _0206ED54 add sp, #0xc mov r0, #0x0 pop {r4-r7, pc} _0206ED54: strh r5, [r0, #0x0] ldr r1, [sp, #0x8] add r2, sp, #0x8 ldrh r0, [r1, #0x2] add r3, sp, #0x4 add r0, r0, r4 strh r0, [r1, #0x2] add r0, r7, #0x0 add r1, r5, #0x0 str r6, [sp, #0x0] bl FUN_0206EBD4 sub r0, r0, #0x3 cmp r0, #0x1 bhi _0206ED7A ldr r0, [sp, #0x8] ldr r1, [sp, #0x4] bl FUN_0206EF94 _0206ED7A: mov r0, #0x1 add sp, #0xc pop {r4-r7, pc} thumb_func_start FUN_0206ED80 FUN_0206ED80: ; 0x0206ED80 push {r3-r6} mov r5, #0x0 cmp r1, #0x0 bls _0206EDA8 add r6, r0, #0x0 _0206ED8A: ldrh r4, [r6, #0x0] cmp r2, r4 bne _0206EDA0 lsl r1, r5, #0x2 add r0, r0, r1 ldrh r1, [r0, #0x2] cmp r1, r3 bhs _0206EDAA mov r0, #0x0 pop {r3-r6} bx lr _0206EDA0: add r5, r5, #0x1 add r6, r6, #0x4 cmp r5, r1 blo _0206ED8A _0206EDA8: mov r0, #0x0 _0206EDAA: pop {r3-r6} bx lr .balign 4 thumb_func_start FUN_0206EDB0 FUN_0206EDB0: ; 0x0206EDB0 push {r4-r5, lr} sub sp, #0xc add r4, r2, #0x0 str r3, [sp, #0x0] add r2, sp, #0x8 add r3, sp, #0x4 add r5, r1, #0x0 bl FUN_0206EBD4 ldr r0, [sp, #0x8] ldr r1, [sp, #0x4] add r2, r5, #0x0 add r3, r4, #0x0 bl FUN_0206ED80 add sp, #0xc pop {r4-r5, pc} .balign 4 thumb_func_start FUN_0206EDD4 FUN_0206EDD4: ; 0x0206EDD4 push {r4-r7, lr} sub sp, #0xc add r6, r0, #0x0 add r7, r1, #0x0 add r5, r2, #0x0 add r4, r3, #0x0 bl FUN_0206EDB0 str r0, [sp, #0x8] cmp r0, #0x0 bne _0206EDF0 add sp, #0xc mov r0, #0x0 pop {r4-r7, pc} _0206EDF0: ldrh r1, [r0, #0x2] sub r1, r1, r5 strh r1, [r0, #0x2] ldr r1, [sp, #0x8] ldrh r0, [r1, #0x2] cmp r0, #0x0 bne _0206EE02 mov r0, #0x0 strh r0, [r1, #0x0] _0206EE02: str r4, [sp, #0x0] add r0, r6, #0x0 add r1, r7, #0x0 add r2, sp, #0x8 add r3, sp, #0x4 bl FUN_0206EBD4 ldr r0, [sp, #0x8] ldr r1, [sp, #0x4] bl FUN_0206EF48 mov r0, #0x1 add sp, #0xc pop {r4-r7, pc} .balign 4 thumb_func_start FUN_0206EE20 FUN_0206EE20: ; 0x0206EE20 push {r4-r6, lr} add r5, r0, #0x0 add r6, r1, #0x0 add r4, r3, #0x0 bl FUN_0206ED80 cmp r0, #0x0 bne _0206EE34 mov r0, #0x0 pop {r4-r6, pc} _0206EE34: ldrh r1, [r0, #0x2] sub r1, r1, r4 strh r1, [r0, #0x2] ldrh r1, [r0, #0x2] cmp r1, #0x0 bne _0206EE44 mov r1, #0x0 strh r1, [r0, #0x0] _0206EE44: add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_0206EF48 mov r0, #0x1 pop {r4-r6, pc} thumb_func_start FUN_0206EE50 FUN_0206EE50: ; 0x0206EE50 push {r3, lr} bl FUN_0206EDB0 cmp r0, #0x0 beq _0206EE5E mov r0, #0x1 pop {r3, pc} _0206EE5E: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0206EE64 FUN_0206EE64: ; 0x0206EE64 cmp r1, #0x7 bhi _0206EEC4 add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0206EE74: ; jump table (using 16-bit offset) .short _0206EE8E - _0206EE74 - 2; case 0 .short _0206EE9A - _0206EE74 - 2; case 1 .short _0206EEA2 - _0206EE74 - 2; case 2 .short _0206EEBA - _0206EE74 - 2; case 3 .short _0206EE92 - _0206EE74 - 2; case 4 .short _0206EEB2 - _0206EE74 - 2; case 5 .short _0206EEAA - _0206EE74 - 2; case 6 .short _0206EE84 - _0206EE74 - 2; case 7 _0206EE84: mov r1, #0xa5 lsl r1, r1, #0x2 add r0, r0, r1 mov r2, #0x32 b _0206EEC8 _0206EE8E: mov r2, #0xa5 b _0206EEC8 _0206EE92: ldr r1, _0206EEE4 ; =0x000005BC mov r2, #0x40 add r0, r0, r1 b _0206EEC8 _0206EE9A: ldr r1, _0206EEE8 ; =0x0000051C mov r2, #0x28 add r0, r0, r1 b _0206EEC8 _0206EEA2: ldr r1, _0206EEEC ; =0x000006BC mov r2, #0xf add r0, r0, r1 b _0206EEC8 _0206EEAA: ldr r1, _0206EEF0 ; =0x000006F8 mov r2, #0x1e add r0, r0, r1 b _0206EEC8 _0206EEB2: ldr r1, _0206EEF4 ; =0x000004EC mov r2, #0xc add r0, r0, r1 b _0206EEC8 _0206EEBA: mov r1, #0xd7 lsl r1, r1, #0x2 add r0, r0, r1 mov r2, #0x64 b _0206EEC8 _0206EEC4: mov r0, #0x0 bx lr _0206EEC8: mov r3, #0x0 cmp r2, #0x0 bls _0206EEE0 _0206EECE: ldrh r1, [r0, #0x0] cmp r1, #0x0 beq _0206EED8 mov r0, #0x1 bx lr _0206EED8: add r3, r3, #0x1 add r0, r0, #0x4 cmp r3, r2 blo _0206EECE _0206EEE0: mov r0, #0x0 bx lr .balign 4 _0206EEE4: .word 0x000005BC _0206EEE8: .word 0x0000051C _0206EEEC: .word 0x000006BC _0206EEF0: .word 0x000006F8 _0206EEF4: .word 0x000004EC thumb_func_start FUN_0206EEF8 FUN_0206EEF8: ; 0x0206EEF8 push {r3, lr} add r3, r2, #0x0 mov r2, #0x1 bl FUN_0206EDB0 cmp r0, #0x0 bne _0206EF0A mov r0, #0x0 pop {r3, pc} _0206EF0A: ldrh r0, [r0, #0x2] pop {r3, pc} .balign 4 thumb_func_start FUN_0206EF10 FUN_0206EF10: ; 0x0206EF10 push {r3, lr} mov r3, #0x1 bl FUN_0206ED80 cmp r0, #0x0 bne _0206EF20 mov r0, #0x0 pop {r3, pc} _0206EF20: ldrh r0, [r0, #0x2] pop {r3, pc} thumb_func_start FUN_0206EF24 FUN_0206EF24: ; 0x0206EF24 push {r3} sub sp, #0x4 ldrh r3, [r0, #0x0] add r2, sp, #0x0 strh r3, [r2, #0x0] ldrh r3, [r0, #0x2] strh r3, [r2, #0x2] ldrh r3, [r1, #0x0] strh r3, [r0, #0x0] ldrh r3, [r1, #0x2] strh r3, [r0, #0x2] ldrh r0, [r2, #0x0] strh r0, [r1, #0x0] ldrh r0, [r2, #0x2] strh r0, [r1, #0x2] add sp, #0x4 pop {r3} bx lr thumb_func_start FUN_0206EF48 FUN_0206EF48: ; 0x0206EF48 push {r4-r7, lr} sub sp, #0xc str r0, [sp, #0x0] mov r0, #0x0 add r7, r1, #0x0 str r0, [sp, #0x4] sub r0, r7, #0x1 str r0, [sp, #0x8] beq _0206EF8E ldr r4, [sp, #0x0] _0206EF5C: ldr r0, [sp, #0x4] add r6, r0, #0x1 cmp r6, r7 bhs _0206EF80 ldr r0, [sp, #0x0] lsl r1, r6, #0x2 add r5, r0, r1 _0206EF6A: ldrh r0, [r4, #0x2] cmp r0, #0x0 bne _0206EF78 add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_0206EF24 _0206EF78: add r6, r6, #0x1 add r5, r5, #0x4 cmp r6, r7 blo _0206EF6A _0206EF80: ldr r0, [sp, #0x4] add r4, r4, #0x4 add r1, r0, #0x1 ldr r0, [sp, #0x8] str r1, [sp, #0x4] cmp r1, r0 blo _0206EF5C _0206EF8E: add sp, #0xc pop {r4-r7, pc} .balign 4 thumb_func_start FUN_0206EF94 FUN_0206EF94: ; 0x0206EF94 push {r4-r7, lr} sub sp, #0xc str r0, [sp, #0x0] mov r0, #0x0 add r7, r1, #0x0 str r0, [sp, #0x4] sub r0, r7, #0x1 str r0, [sp, #0x8] beq _0206EFE8 ldr r4, [sp, #0x0] _0206EFA8: ldr r0, [sp, #0x4] add r6, r0, #0x1 cmp r6, r7 bhs _0206EFDA ldr r0, [sp, #0x0] lsl r1, r6, #0x2 add r5, r0, r1 _0206EFB6: ldrh r0, [r4, #0x2] cmp r0, #0x0 beq _0206EFCA ldrh r0, [r5, #0x2] cmp r0, #0x0 beq _0206EFD2 ldrh r1, [r4, #0x0] ldrh r0, [r5, #0x0] cmp r1, r0 bls _0206EFD2 _0206EFCA: add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_0206EF24 _0206EFD2: add r6, r6, #0x1 add r5, r5, #0x4 cmp r6, r7 blo _0206EFB6 _0206EFDA: ldr r0, [sp, #0x4] add r4, r4, #0x4 add r1, r0, #0x1 ldr r0, [sp, #0x8] str r1, [sp, #0x4] cmp r1, r0 blo _0206EFA8 _0206EFE8: add sp, #0xc pop {r4-r7, pc} thumb_func_start FUN_0206EFEC FUN_0206EFEC: ; 0x0206EFEC push {r3-r7, lr} add r5, r0, #0x0 lsl r0, r2, #0x18 add r7, r1, #0x0 lsr r0, r0, #0x18 bl FUN_0206E2F0 add r6, r0, #0x0 ldrb r0, [r7, #0x0] mov r4, #0x0 cmp r0, #0xff beq _0206F0BE _0206F004: ldrb r0, [r7, r4] cmp r0, #0x7 bhi _0206F0B6 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0206F016: ; jump table (using 16-bit offset) .short _0206F03A - _0206F016 - 2; case 0 .short _0206F05C - _0206F016 - 2; case 1 .short _0206F06E - _0206F016 - 2; case 2 .short _0206F0A4 - _0206F016 - 2; case 3 .short _0206F04A - _0206F016 - 2; case 4 .short _0206F092 - _0206F016 - 2; case 5 .short _0206F080 - _0206F016 - 2; case 6 .short _0206F026 - _0206F016 - 2; case 7 _0206F026: mov r1, #0xa5 lsl r1, r1, #0x2 lsl r3, r4, #0x18 add r0, r6, #0x0 add r1, r5, r1 mov r2, #0x7 lsr r3, r3, #0x18 bl FUN_0206E330 b _0206F0B6 _0206F03A: lsl r3, r4, #0x18 add r0, r6, #0x0 add r1, r5, #0x0 mov r2, #0x0 lsr r3, r3, #0x18 bl FUN_0206E330 b _0206F0B6 _0206F04A: ldr r1, _0206F0C4 ; =0x000005BC lsl r3, r4, #0x18 add r0, r6, #0x0 add r1, r5, r1 mov r2, #0x4 lsr r3, r3, #0x18 bl FUN_0206E330 b _0206F0B6 _0206F05C: ldr r1, _0206F0C8 ; =0x0000051C lsl r3, r4, #0x18 add r0, r6, #0x0 add r1, r5, r1 mov r2, #0x1 lsr r3, r3, #0x18 bl FUN_0206E330 b _0206F0B6 _0206F06E: ldr r1, _0206F0CC ; =0x000006BC lsl r3, r4, #0x18 add r0, r6, #0x0 add r1, r5, r1 mov r2, #0x2 lsr r3, r3, #0x18 bl FUN_0206E330 b _0206F0B6 _0206F080: ldr r1, _0206F0D0 ; =0x000006F8 lsl r3, r4, #0x18 add r0, r6, #0x0 add r1, r5, r1 mov r2, #0x6 lsr r3, r3, #0x18 bl FUN_0206E330 b _0206F0B6 _0206F092: ldr r1, _0206F0D4 ; =0x000004EC lsl r3, r4, #0x18 add r0, r6, #0x0 add r1, r5, r1 mov r2, #0x5 lsr r3, r3, #0x18 bl FUN_0206E330 b _0206F0B6 _0206F0A4: mov r1, #0xd7 lsl r1, r1, #0x2 lsl r3, r4, #0x18 add r0, r6, #0x0 add r1, r5, r1 mov r2, #0x3 lsr r3, r3, #0x18 bl FUN_0206E330 _0206F0B6: add r4, r4, #0x1 ldrb r0, [r7, r4] cmp r0, #0xff bne _0206F004 _0206F0BE: add r0, r6, #0x0 pop {r3-r7, pc} nop _0206F0C4: .word 0x000005BC _0206F0C8: .word 0x0000051C _0206F0CC: .word 0x000006BC _0206F0D0: .word 0x000006F8 _0206F0D4: .word 0x000004EC thumb_func_start FUN_0206F0D8 FUN_0206F0D8: ; 0x0206F0D8 cmp r1, #0x7 bhi _0206F136 add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0206F0E8: ; jump table (using 16-bit offset) .short _0206F102 - _0206F0E8 - 2; case 0 .short _0206F10E - _0206F0E8 - 2; case 1 .short _0206F116 - _0206F0E8 - 2; case 2 .short _0206F12E - _0206F0E8 - 2; case 3 .short _0206F106 - _0206F0E8 - 2; case 4 .short _0206F126 - _0206F0E8 - 2; case 5 .short _0206F11E - _0206F0E8 - 2; case 6 .short _0206F0F8 - _0206F0E8 - 2; case 7 _0206F0F8: mov r1, #0xa5 lsl r1, r1, #0x2 add r0, r0, r1 mov r3, #0x32 b _0206F136 _0206F102: mov r3, #0xa5 b _0206F136 _0206F106: ldr r1, _0206F144 ; =0x000005BC mov r3, #0x40 add r0, r0, r1 b _0206F136 _0206F10E: ldr r1, _0206F148 ; =0x0000051C mov r3, #0x28 add r0, r0, r1 b _0206F136 _0206F116: ldr r1, _0206F14C ; =0x000006BC mov r3, #0xf add r0, r0, r1 b _0206F136 _0206F11E: ldr r1, _0206F150 ; =0x000006F8 mov r3, #0x1e add r0, r0, r1 b _0206F136 _0206F126: ldr r1, _0206F154 ; =0x000004EC mov r3, #0xc add r0, r0, r1 b _0206F136 _0206F12E: mov r1, #0xd7 lsl r1, r1, #0x2 add r0, r0, r1 mov r3, #0x64 _0206F136: cmp r2, r3 blo _0206F13E mov r0, #0x0 bx lr _0206F13E: lsl r1, r2, #0x2 add r0, r0, r1 bx lr .balign 4 _0206F144: .word 0x000005BC _0206F148: .word 0x0000051C _0206F14C: .word 0x000006BC _0206F150: .word 0x000006F8 _0206F154: .word 0x000004EC thumb_func_start FUN_0206F158 FUN_0206F158: ; 0x0206F158 ldr r3, _0206F160 ; =FUN_02022610 mov r1, #0x3 bx r3 nop _0206F160: .word FUN_02022610 thumb_func_start FUN_0206F164 FUN_0206F164: ; 0x0206F164 push {r4, lr} mov r1, #0x24 bl FUN_02016998 add r4, r0, #0x0 mov r0, #0x0 add r1, r4, #0x0 mov r2, #0x24 blx MIi_CpuClear16 add r0, r4, #0x0 pop {r4, pc} thumb_func_start FUN_0206F17C FUN_0206F17C: ; 0x0206F17C push {r3-r4} add r4, r0, r1 ldrb r4, [r4, #0x8] strb r4, [r2, #0x0] ldrb r0, [r0, r1] strb r0, [r3, #0x0] pop {r3-r4} bx lr thumb_func_start FUN_0206F18C FUN_0206F18C: ; 0x0206F18C ldrh r0, [r0, #0x10] bx lr thumb_func_start FUN_0206F190 FUN_0206F190: ; 0x0206F190 push {r3-r4} add r4, r0, r1 strb r2, [r4, #0x8] strb r3, [r0, r1] pop {r3-r4} bx lr thumb_func_start FUN_0206F19C FUN_0206F19C: ; 0x0206F19C strh r1, [r0, #0x10] bx lr thumb_func_start FUN_0206F1A0 FUN_0206F1A0: ; 0x0206F1A0 add r1, r0, r1 ldrb r0, [r1, #0x19] strb r0, [r2, #0x0] ldrb r0, [r1, #0x14] strb r0, [r3, #0x0] bx lr thumb_func_start FUN_0206F1AC FUN_0206F1AC: ; 0x0206F1AC ldrh r0, [r0, #0x1e] bx lr thumb_func_start FUN_0206F1B0 FUN_0206F1B0: ; 0x0206F1B0 ldrh r0, [r0, #0x20] bx lr thumb_func_start FUN_0206F1B4 FUN_0206F1B4: ; 0x0206F1B4 ldrh r0, [r0, #0x22] bx lr thumb_func_start FUN_0206F1B8 FUN_0206F1B8: ; 0x0206F1B8 add r0, r0, r1 strb r2, [r0, #0x19] strb r3, [r0, #0x14] bx lr thumb_func_start FUN_0206F1C0 FUN_0206F1C0: ; 0x0206F1C0 push {r4-r6, lr} mov r4, #0x0 add r5, r0, #0x0 add r6, r4, #0x0 _0206F1C8: add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 add r3, r6, #0x0 bl FUN_0206F1B8 add r4, r4, #0x1 cmp r4, #0x5 blo _0206F1C8 add r0, r5, #0x0 mov r1, #0x0 bl FUN_0206F1EC pop {r4-r6, pc} thumb_func_start FUN_0206F1E4 FUN_0206F1E4: ; 0x0206F1E4 strh r1, [r0, #0x1e] strh r2, [r0, #0x20] bx lr .balign 4 thumb_func_start FUN_0206F1EC FUN_0206F1EC: ; 0x0206F1EC strh r1, [r0, #0x22] bx lr thumb_func_start FUN_0206F1F0 FUN_0206F1F0: ; 0x0206F1F0 push {r4-r6, lr} add r6, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 add r0, r6, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldr r0, [r4, #0x4] cmp r0, #0xb bls _0206F20A b _0206F37C _0206F20A: add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0206F216: ; jump table (using 16-bit offset) .short _0206F22E - _0206F216 - 2; case 0 .short _0206F234 - _0206F216 - 2; case 1 .short _0206F25A - _0206F216 - 2; case 2 .short _0206F26C - _0206F216 - 2; case 3 .short _0206F31A - _0206F216 - 2; case 4 .short _0206F330 - _0206F216 - 2; case 5 .short _0206F336 - _0206F216 - 2; case 6 .short _0206F344 - _0206F216 - 2; case 7 .short _0206F34A - _0206F216 - 2; case 8 .short _0206F366 - _0206F216 - 2; case 9 .short _0206F366 - _0206F216 - 2; case 10 .short _0206F366 - _0206F216 - 2; case 11 _0206F22E: ldr r1, [r5, #0xc] ldr r0, [r4, #0x0] str r1, [r0, #0x0] _0206F234: ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] ldr r0, [r4, #0x0] ldr r0, [r0, #0x4] cmp r0, #0x1 bne _0206F24C ldr r0, [r5, #0xc] bl FUN_0203384C cmp r0, #0x0 bne _0206F24E _0206F24C: b _0206F380 _0206F24E: mov r0, #0xa str r0, [r4, #0x4] ldr r0, [r4, #0x8] mov r1, #0x0 strh r1, [r0, #0x0] b _0206F380 _0206F25A: ldr r1, _0206F384 ; =0x020F943C ldr r2, [r4, #0x0] add r0, r6, #0x0 bl FUN_02046500 ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _0206F380 _0206F26C: ldr r0, [r5, #0xc] bl FUN_0203384C cmp r0, #0x0 beq _0206F280 ldr r0, [r5, #0xc] bl FUN_020462AC bl FUN_0205F304 _0206F280: ldr r0, [r4, #0x0] ldr r0, [r0, #0x4] cmp r0, #0xa bhi _0206F380 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0206F294: ; jump table (using 16-bit offset) .short _0206F380 - _0206F294 - 2; case 0 .short _0206F2B8 - _0206F294 - 2; case 1 .short _0206F2C6 - _0206F294 - 2; case 2 .short _0206F2AA - _0206F294 - 2; case 3 .short _0206F2E0 - _0206F294 - 2; case 4 .short _0206F2EE - _0206F294 - 2; case 5 .short _0206F2D4 - _0206F294 - 2; case 6 .short _0206F2FC - _0206F294 - 2; case 7 .short _0206F30E - _0206F294 - 2; case 8 .short _0206F314 - _0206F294 - 2; case 9 .short _0206F302 - _0206F294 - 2; case 10 _0206F2AA: mov r0, #0x0 strb r0, [r4, #0xc] mov r0, #0x1 strb r0, [r4, #0xd] mov r0, #0x4 str r0, [r4, #0x4] b _0206F380 _0206F2B8: mov r0, #0x32 strb r0, [r4, #0xc] mov r0, #0x1 strb r0, [r4, #0xd] mov r0, #0x4 str r0, [r4, #0x4] b _0206F380 _0206F2C6: mov r0, #0x64 strb r0, [r4, #0xc] mov r0, #0x1 strb r0, [r4, #0xd] mov r0, #0x4 str r0, [r4, #0x4] b _0206F380 _0206F2D4: mov r0, #0x0 strb r0, [r4, #0xc] strb r0, [r4, #0xd] mov r0, #0x4 str r0, [r4, #0x4] b _0206F380 _0206F2E0: mov r0, #0x32 strb r0, [r4, #0xc] mov r0, #0x0 strb r0, [r4, #0xd] mov r0, #0x4 str r0, [r4, #0x4] b _0206F380 _0206F2EE: mov r0, #0x64 strb r0, [r4, #0xc] mov r0, #0x0 strb r0, [r4, #0xd] mov r0, #0x4 str r0, [r4, #0x4] b _0206F380 _0206F2FC: mov r0, #0x6 str r0, [r4, #0x4] b _0206F380 _0206F302: ldr r0, [r4, #0x8] mov r1, #0x1 strh r1, [r0, #0x0] mov r0, #0xb str r0, [r4, #0x4] b _0206F380 _0206F30E: mov r0, #0x9 str r0, [r4, #0x4] b _0206F380 _0206F314: mov r0, #0x8 str r0, [r4, #0x4] b _0206F380 _0206F31A: ldr r1, [r4, #0x0] ldrb r2, [r4, #0xc] ldrb r3, [r4, #0xd] ldr r1, [r1, #0x8] add r0, r6, #0x0 bl FUN_020471C0 ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _0206F380 _0206F330: mov r0, #0x2 str r0, [r4, #0x4] b _0206F380 _0206F336: add r0, r6, #0x0 bl FUN_020383D8 ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _0206F380 _0206F344: mov r0, #0x2 str r0, [r4, #0x4] b _0206F380 _0206F34A: ldr r2, _0206F388 ; =0x00040100 mov r0, #0x3 mov r1, #0x36 bl FUN_0201681C bl FUN_02088878 mov r0, #0x36 bl FUN_02211E60 mov r0, #0x0 blx OS_ResetSystem b _0206F380 _0206F366: ldr r0, [r4, #0x0] bl FUN_02016A18 add r0, r4, #0x0 bl FUN_02016A18 ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] mov r0, #0x1 pop {r4-r6, pc} _0206F37C: mov r0, #0x1 pop {r4-r6, pc} _0206F380: mov r0, #0x0 pop {r4-r6, pc} .balign 4 _0206F384: .word 0x020F943C _0206F388: .word 0x00040100 thumb_func_start FUN_0206F38C FUN_0206F38C: ; 0x0206F38C push {r4, lr} mov r0, #0xb mov r1, #0x10 bl FUN_020169D8 mov r1, #0x0 mov r2, #0x10 add r4, r0, #0x0 blx MI_CpuFill8 mov r0, #0xb mov r1, #0xc bl FUN_020169D8 mov r1, #0x0 mov r2, #0xc str r0, [r4, #0x0] blx MI_CpuFill8 add r0, r4, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_0206F3B8 FUN_0206F3B8: ; 0x0206F3B8 push {r4, lr} add r4, r0, #0x0 bl FUN_0206F38C add r2, r0, #0x0 ldr r0, [r2, #0x0] mov r1, #0x2 str r1, [r0, #0x4] ldr r1, _0206F3D4 ; =FUN_0206F1F0 add r0, r4, #0x0 bl FUN_0204640C pop {r4, pc} nop _0206F3D4: .word FUN_0206F1F0 thumb_func_start FUN_0206F3D8 FUN_0206F3D8: ; 0x0206F3D8 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_0206F38C add r2, r0, #0x0 ldr r0, [r2, #0x0] mov r1, #0x1 str r1, [r0, #0x4] ldr r1, _0206F3F8 ; =FUN_0206F1F0 add r0, r5, #0x0 str r4, [r2, #0x8] bl FUN_0204640C pop {r3-r5, pc} nop _0206F3F8: .word FUN_0206F1F0 thumb_func_start FUN_0206F3FC FUN_0206F3FC: ; 0x0206F3FC push {r3-r4, lr} sub sp, #0xc add r4, r0, #0x0 mov r0, #0x0 add r1, r0, #0x0 bl FUN_02015F10 bl FUN_02015F1C bl FUN_0201E6D8 bl FUN_0201E740 mov r0, #0x1 lsl r0, r0, #0x1a ldr r2, [r0, #0x0] ldr r1, _0206F594 ; =0xFFFFE0FF ldr r3, _0206F598 ; =0x04001000 and r2, r1 str r2, [r0, #0x0] ldr r2, [r3, #0x0] add r0, #0x50 and r1, r2 str r1, [r3, #0x0] mov r1, #0x0 strh r1, [r0, #0x0] add r3, #0x50 strh r1, [r3, #0x0] mov r0, #0x4 mov r1, #0x8 bl FUN_0201669C mov r2, #0x2 mov r0, #0x3 mov r1, #0xc lsl r2, r2, #0x10 bl FUN_0201681C add r0, r4, #0x0 bl FUN_0206FE74 add r4, r0, #0x0 mov r0, #0x6 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] mov r1, #0xc str r1, [sp, #0x8] mov r1, #0x3 add r2, r1, #0x0 mov r3, #0x0 bl FUN_0200E1D0 add r0, r4, #0x0 bl FUN_0206FF74 bl FUN_0206FB80 ldr r0, [r4, #0x0] bl FUN_0206FBA0 add r0, r4, #0x0 bl FUN_0206FD24 bl FUN_0201CC08 mov r0, #0x4 bl FUN_0201CC24 mov r1, #0x0 mov r0, #0x39 add r2, r1, #0x0 bl FUN_0200433C add r0, r4, #0x0 bl FUN_02072590 add r0, r4, #0x0 bl FUN_02073710 add r0, r4, #0x0 bl FUN_0207388C add r0, r4, #0x0 bl FUN_0206FFB4 add r0, r4, #0x0 bl FUN_0207047C ldr r1, _0206F59C ; =0x00000B25 add r0, r4, #0x0 ldrb r1, [r4, r1] mov r2, #0x1 bl FUN_020713EC ldr r1, _0206F5A0 ; =0x000005A4 ldr r3, [r4, r1] add r0, r3, #0x0 add r0, #0x20 ldrb r2, [r0, #0x0] cmp r2, #0x5 beq _0206F4CC cmp r2, #0x10 bne _0206F4E2 _0206F4CC: ldrh r0, [r3, #0x24] bl FUN_02076144 cmp r0, #0x0 bne _0206F564 add r0, r4, #0x0 mov r1, #0x20 mov r2, #0x1 bl FUN_020731C0 b _0206F564 _0206F4E2: cmp r2, #0x6 bne _0206F4F2 add r0, r4, #0x0 mov r1, #0x21 mov r2, #0x1 bl FUN_020731C0 b _0206F564 _0206F4F2: cmp r2, #0x9 beq _0206F4FA cmp r2, #0xe bne _0206F506 _0206F4FA: add r0, r4, #0x0 mov r1, #0x1f mov r2, #0x1 bl FUN_020731C0 b _0206F564 _0206F506: cmp r2, #0x7 beq _0206F51A cmp r2, #0x8 beq _0206F51A add r0, r2, #0x0 add r0, #0xf5 lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r0, #0x1 bhi _0206F526 _0206F51A: ldr r0, _0206F5A4 ; =0x000005C8 mov r1, #0x1 ldr r0, [r4, r0] bl FUN_0200C664 b _0206F564 _0206F526: cmp r2, #0x2 beq _0206F52E cmp r2, #0x11 bne _0206F53A _0206F52E: add r0, r4, #0x0 mov r1, #0x22 mov r2, #0x1 bl FUN_020731C0 b _0206F564 _0206F53A: cmp r2, #0xf bne _0206F54A add r0, r4, #0x0 mov r1, #0x22 mov r2, #0x1 bl FUN_020731C0 b _0206F564 _0206F54A: cmp r2, #0xa beq _0206F55A add r0, r4, #0x0 mov r1, #0x1d mov r2, #0x1 bl FUN_020731C0 b _0206F564 _0206F55A: add r1, #0x24 ldr r0, [r4, r1] mov r1, #0x1 bl FUN_0200C664 _0206F564: add r0, r4, #0x0 bl FUN_02072720 add r0, r4, #0x0 bl FUN_02070AA4 add r0, r4, #0x0 bl FUN_0207248C cmp r0, #0x0 bne _0206F582 mov r0, #0x1 mov r1, #0x0 bl FUN_0201E74C _0206F582: ldr r0, _0206F5A8 ; =FUN_0206FB58 add r1, r4, #0x0 bl FUN_02015F10 bl FUN_02033F20 mov r0, #0x1 add sp, #0xc pop {r3-r4, pc} .balign 4 _0206F594: .word 0xFFFFE0FF _0206F598: .word 0x04001000 _0206F59C: .word 0x00000B25 _0206F5A0: .word 0x000005A4 _0206F5A4: .word 0x000005C8 _0206F5A8: .word FUN_0206FB58 thumb_func_start FUN_0206F5AC FUN_0206F5AC: ; 0x0206F5AC push {r3-r5, lr} add r4, r1, #0x0 bl FUN_02006278 ldr r1, [r4, #0x0] add r5, r0, #0x0 cmp r1, #0x1c bhi _0206F61C add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0206F5C8: ; jump table (using 16-bit offset) .short _0206F602 - _0206F5C8 - 2; case 0 .short _0206F60A - _0206F5C8 - 2; case 1 .short _0206F612 - _0206F5C8 - 2; case 2 .short _0206F624 - _0206F5C8 - 2; case 3 .short _0206F62C - _0206F5C8 - 2; case 4 .short _0206F634 - _0206F5C8 - 2; case 5 .short _0206F63E - _0206F5C8 - 2; case 6 .short _0206F646 - _0206F5C8 - 2; case 7 .short _0206F64E - _0206F5C8 - 2; case 8 .short _0206F656 - _0206F5C8 - 2; case 9 .short _0206F65E - _0206F5C8 - 2; case 10 .short _0206F666 - _0206F5C8 - 2; case 11 .short _0206F66E - _0206F5C8 - 2; case 12 .short _0206F676 - _0206F5C8 - 2; case 13 .short _0206F67E - _0206F5C8 - 2; case 14 .short _0206F686 - _0206F5C8 - 2; case 15 .short _0206F68E - _0206F5C8 - 2; case 16 .short _0206F696 - _0206F5C8 - 2; case 17 .short _0206F69E - _0206F5C8 - 2; case 18 .short _0206F6A6 - _0206F5C8 - 2; case 19 .short _0206F6AE - _0206F5C8 - 2; case 20 .short _0206F6B6 - _0206F5C8 - 2; case 21 .short _0206F6BE - _0206F5C8 - 2; case 22 .short _0206F6C6 - _0206F5C8 - 2; case 23 .short _0206F6CE - _0206F5C8 - 2; case 24 .short _0206F6E6 - _0206F5C8 - 2; case 25 .short _0206F6F4 - _0206F5C8 - 2; case 26 .short _0206F6FC - _0206F5C8 - 2; case 27 .short _0206F70A - _0206F5C8 - 2; case 28 _0206F602: bl FUN_0206F750 str r0, [r4, #0x0] b _0206F722 _0206F60A: bl FUN_0206F7D8 str r0, [r4, #0x0] b _0206F722 _0206F612: add r1, r4, #0x0 bl FUN_020718CC cmp r0, #0x1 beq _0206F61E _0206F61C: b _0206F722 _0206F61E: mov r0, #0x1 str r0, [r4, #0x0] b _0206F722 _0206F624: bl FUN_020754D0 str r0, [r4, #0x0] b _0206F722 _0206F62C: bl FUN_0206F874 str r0, [r4, #0x0] b _0206F722 _0206F634: ldr r1, _0206F740 ; =0x00000B14 ldr r1, [r5, r1] blx r1 str r0, [r4, #0x0] b _0206F722 _0206F63E: bl FUN_02077110 str r0, [r4, #0x0] b _0206F722 _0206F646: bl FUN_020761A0 str r0, [r4, #0x0] b _0206F722 _0206F64E: bl FUN_0206F8B4 str r0, [r4, #0x0] b _0206F722 _0206F656: bl FUN_02072170 str r0, [r4, #0x0] b _0206F722 _0206F65E: bl FUN_02072194 str r0, [r4, #0x0] b _0206F722 _0206F666: bl FUN_02072140 str r0, [r4, #0x0] b _0206F722 _0206F66E: bl FUN_0207230C str r0, [r4, #0x0] b _0206F722 _0206F676: bl FUN_0206F8F4 str r0, [r4, #0x0] b _0206F722 _0206F67E: bl FUN_02071F58 str r0, [r4, #0x0] b _0206F722 _0206F686: bl FUN_0207405C str r0, [r4, #0x0] b _0206F722 _0206F68E: bl FUN_0207436C str r0, [r4, #0x0] b _0206F722 _0206F696: bl FUN_0206FA14 str r0, [r4, #0x0] b _0206F722 _0206F69E: bl FUN_02076D3C str r0, [r4, #0x0] b _0206F722 _0206F6A6: bl FUN_02074F6C str r0, [r4, #0x0] b _0206F722 _0206F6AE: bl FUN_0206F980 str r0, [r4, #0x0] b _0206F722 _0206F6B6: bl FUN_0206F9A4 str r0, [r4, #0x0] b _0206F722 _0206F6BE: bl FUN_0206F9C8 str r0, [r4, #0x0] b _0206F722 _0206F6C6: bl FUN_0206F9D4 str r0, [r4, #0x0] b _0206F722 _0206F6CE: bl FUN_020714D0 cmp r0, #0x0 bne _0206F6DC mov r0, #0x19 str r0, [r4, #0x0] b _0206F722 _0206F6DC: cmp r0, #0x3 bne _0206F722 mov r0, #0x1 str r0, [r4, #0x0] b _0206F722 _0206F6E6: bl FUN_020746D4 cmp r0, #0x1 bne _0206F722 mov r0, #0x1 str r0, [r4, #0x0] b _0206F722 _0206F6F4: bl FUN_02071970 str r0, [r4, #0x0] b _0206F722 _0206F6FC: mov r0, #0x1 mov r1, #0xc bl FUN_02079A70 mov r0, #0x1c str r0, [r4, #0x0] b _0206F722 _0206F70A: bl FUN_0200E308 cmp r0, #0x1 bne _0206F722 ldr r0, _0206F744 ; =0x00000B25 ldrb r1, [r5, r0] ldr r0, _0206F748 ; =0x000005A4 ldr r0, [r5, r0] add r0, #0x22 strb r1, [r0, #0x0] mov r0, #0x1 pop {r3-r5, pc} _0206F722: add r0, r5, #0x0 bl FUN_02073BEC add r0, r5, #0x0 bl FUN_02073D6C add r0, r5, #0x0 bl FUN_02070F14 ldr r0, _0206F74C ; =0x000005AC ldr r0, [r5, r0] bl FUN_0200BC1C mov r0, #0x0 pop {r3-r5, pc} .balign 4 _0206F740: .word 0x00000B14 _0206F744: .word 0x00000B25 _0206F748: .word 0x000005A4 _0206F74C: .word 0x000005AC thumb_func_start FUN_0206F750 FUN_0206F750: ; 0x0206F750 push {r4, lr} add r4, r0, #0x0 bl FUN_0200E308 cmp r0, #0x1 bne _0206F7CA ldr r0, _0206F7D0 ; =0x000005A4 ldr r2, [r4, r0] add r0, r2, #0x0 add r0, #0x20 ldrb r1, [r0, #0x0] cmp r1, #0x5 beq _0206F76E cmp r1, #0x10 bne _0206F786 _0206F76E: ldrh r0, [r2, #0x24] bl FUN_02076144 cmp r0, #0x1 bne _0206F782 ldr r0, _0206F7D4 ; =0x00000B22 mov r1, #0x0 strb r1, [r4, r0] mov r0, #0x7 pop {r4, pc} _0206F782: mov r0, #0x4 pop {r4, pc} _0206F786: cmp r1, #0x6 bne _0206F78E mov r0, #0x11 pop {r4, pc} _0206F78E: cmp r1, #0x7 bne _0206F79A add r0, r4, #0x0 bl FUN_02076C94 pop {r4, pc} _0206F79A: cmp r1, #0x8 bne _0206F7A6 add r0, r4, #0x0 bl FUN_02076890 pop {r4, pc} _0206F7A6: add r0, r1, #0x0 add r0, #0xf5 lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r0, #0x1 bhi _0206F7B6 mov r0, #0xc pop {r4, pc} _0206F7B6: cmp r1, #0x9 bne _0206F7BE mov r0, #0x8 pop {r4, pc} _0206F7BE: cmp r1, #0xa bne _0206F7C6 mov r0, #0xe pop {r4, pc} _0206F7C6: mov r0, #0x1 pop {r4, pc} _0206F7CA: mov r0, #0x0 pop {r4, pc} nop _0206F7D0: .word 0x000005A4 _0206F7D4: .word 0x00000B22 thumb_func_start FUN_0206F7D8 FUN_0206F7D8: ; 0x0206F7D8 push {r4, lr} add r4, r0, #0x0 bl FUN_02070F94 cmp r0, #0x0 bne _0206F81E ldr r0, _0206F870 ; =0x000005A4 ldr r1, [r4, r0] add r0, r1, #0x0 add r0, #0x20 ldrb r0, [r0, #0x0] cmp r0, #0x3 beq _0206F7F6 cmp r0, #0x14 bne _0206F800 _0206F7F6: mov r0, #0x0 add r1, #0x23 strb r0, [r1, #0x0] mov r0, #0x1b pop {r4, pc} _0206F800: cmp r0, #0xe bne _0206F80E add r0, r4, #0x0 bl FUN_02077248 mov r0, #0x14 pop {r4, pc} _0206F80E: cmp r0, #0x13 bne _0206F81A add r0, r4, #0x0 bl FUN_02072420 pop {r4, pc} _0206F81A: mov r0, #0x2 pop {r4, pc} _0206F81E: cmp r0, #0x4 bne _0206F82A add r0, r4, #0x0 bl FUN_0207155C pop {r4, pc} _0206F82A: cmp r0, #0x3 bne _0206F83C ldr r0, _0206F870 ; =0x000005A4 mov r1, #0x0 ldr r0, [r4, r0] add r0, #0x23 strb r1, [r0, #0x0] mov r0, #0x1b pop {r4, pc} _0206F83C: cmp r0, #0x2 bne _0206F86A ldr r0, _0206F870 ; =0x000005A4 ldr r2, [r4, r0] add r1, r2, #0x0 add r1, #0x20 ldrb r1, [r1, #0x0] cmp r1, #0xf beq _0206F858 mov r0, #0x1 add r2, #0x23 strb r0, [r2, #0x0] mov r0, #0x1b pop {r4, pc} _0206F858: add r0, #0x24 ldr r0, [r4, r0] mov r1, #0x1 bl FUN_0200C664 add r0, r4, #0x0 bl FUN_02075118 pop {r4, pc} _0206F86A: mov r0, #0x1 pop {r4, pc} nop _0206F870: .word 0x000005A4 thumb_func_start FUN_0206F874 FUN_0206F874: ; 0x0206F874 push {r4, lr} add r4, r0, #0x0 bl FUN_02071D48 cmp r0, #0x0 beq _0206F884 cmp r0, #0x2 bne _0206F896 _0206F884: ldr r0, _0206F8AC ; =0x000005C8 mov r1, #0x1 ldr r0, [r4, r0] bl FUN_0200C664 add r0, r4, #0x0 bl FUN_02071DF4 pop {r4, pc} _0206F896: cmp r0, #0x3 bne _0206F8A8 ldr r0, _0206F8B0 ; =0x000005A4 mov r1, #0x0 ldr r0, [r4, r0] add r0, #0x23 strb r1, [r0, #0x0] mov r0, #0x1b pop {r4, pc} _0206F8A8: mov r0, #0x4 pop {r4, pc} .balign 4 _0206F8AC: .word 0x000005C8 _0206F8B0: .word 0x000005A4 thumb_func_start FUN_0206F8B4 FUN_0206F8B4: ; 0x0206F8B4 push {r4, lr} add r4, r0, #0x0 bl FUN_02071D48 cmp r0, #0x0 beq _0206F8C4 cmp r0, #0x2 bne _0206F8D6 _0206F8C4: ldr r0, _0206F8EC ; =0x000005C8 mov r1, #0x1 ldr r0, [r4, r0] bl FUN_0200C664 add r0, r4, #0x0 bl FUN_02071F58 pop {r4, pc} _0206F8D6: cmp r0, #0x3 bne _0206F8E8 ldr r0, _0206F8F0 ; =0x000005A4 mov r1, #0x0 ldr r0, [r4, r0] add r0, #0x23 strb r1, [r0, #0x0] mov r0, #0x1b pop {r4, pc} _0206F8E8: mov r0, #0x8 pop {r4, pc} .balign 4 _0206F8EC: .word 0x000005C8 _0206F8F0: .word 0x000005A4 thumb_func_start FUN_0206F8F4 FUN_0206F8F4: ; 0x0206F8F4 push {r3-r4, lr} sub sp, #0x4 add r4, r0, #0x0 ldr r0, _0206F974 ; =0x000006FC ldr r0, [r4, r0] bl FUN_02001C78 add r2, r0, #0x0 mov r0, #0x1 mvn r0, r0 cmp r2, r0 beq _0206F914 add r0, r0, #0x1 cmp r2, r0 beq _0206F96E b _0206F962 _0206F914: mov r0, #0x85 lsl r0, r0, #0x2 add r0, r4, r0 mov r1, #0x1 bl FUN_0200D0E0 mov r0, #0x8d lsl r0, r0, #0x2 add r0, r4, r0 mov r1, #0x1 bl FUN_0200CCF8 mov r0, #0x8d lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_0201958C ldr r0, _0206F974 ; =0x000006FC mov r1, #0x0 ldr r0, [r4, r0] bl FUN_02001C5C ldr r0, _0206F978 ; =0x000006F8 ldr r0, [r4, r0] bl FUN_02012870 add r0, r4, #0x0 mov r1, #0x1d mov r2, #0x1 bl FUN_020731C0 ldr r0, _0206F97C ; =0x000005C8 mov r1, #0x0 ldr r0, [r4, r0] bl FUN_0200C664 add sp, #0x4 mov r0, #0x1 pop {r3-r4, pc} _0206F962: add r0, r4, #0x0 add r1, sp, #0x0 blx r2 ldr r0, [sp, #0x0] add sp, #0x4 pop {r3-r4, pc} _0206F96E: mov r0, #0xd add sp, #0x4 pop {r3-r4, pc} .balign 4 _0206F974: .word 0x000006FC _0206F978: .word 0x000006F8 _0206F97C: .word 0x000005C8 thumb_func_start FUN_0206F980 FUN_0206F980: ; 0x0206F980 push {r4, lr} add r4, r0, #0x0 ldr r0, _0206F99C ; =0x00000B24 ldrb r0, [r4, r0] bl FUN_0201BD70 cmp r0, #0x0 bne _0206F996 ldr r0, _0206F9A0 ; =0x00000B22 ldrb r0, [r4, r0] pop {r4, pc} _0206F996: mov r0, #0x14 pop {r4, pc} nop _0206F99C: .word 0x00000B24 _0206F9A0: .word 0x00000B22 thumb_func_start FUN_0206F9A4 FUN_0206F9A4: ; 0x0206F9A4 push {r3, lr} ldr r0, _0206F9C0 ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #0x3 tst r0, r1 beq _0206F9BA ldr r0, _0206F9C4 ; =0x000005DC bl FUN_020054C8 mov r0, #0x1b pop {r3, pc} _0206F9BA: mov r0, #0x15 pop {r3, pc} nop _0206F9C0: .word 0x021C48B8 _0206F9C4: .word 0x000005DC thumb_func_start FUN_0206F9C8 FUN_0206F9C8: ; 0x0206F9C8 push {r3, lr} bl FUN_020732CC mov r0, #0x17 pop {r3, pc} .balign 4 thumb_func_start FUN_0206F9D4 FUN_0206F9D4: ; 0x0206F9D4 push {r4, lr} add r4, r0, #0x0 ldr r0, _0206FA08 ; =0x000006FC mov r1, #0xc ldr r0, [r4, r0] bl FUN_020021AC cmp r0, #0x0 beq _0206F9F0 mov r1, #0x1 mvn r1, r1 cmp r0, r1 beq _0206F9FA b _0206FA04 _0206F9F0: ldr r1, _0206FA0C ; =0x00000B18 add r0, r4, #0x0 ldr r1, [r4, r1] blx r1 pop {r4, pc} _0206F9FA: ldr r1, _0206FA10 ; =0x00000B1C add r0, r4, #0x0 ldr r1, [r4, r1] blx r1 pop {r4, pc} _0206FA04: mov r0, #0x17 pop {r4, pc} .balign 4 _0206FA08: .word 0x000006FC _0206FA0C: .word 0x00000B18 _0206FA10: .word 0x00000B1C thumb_func_start FUN_0206FA14 FUN_0206FA14: ; 0x0206FA14 push {r4, lr} add r4, r0, #0x0 bl FUN_02071D48 cmp r0, #0x0 beq _0206FA24 cmp r0, #0x2 bne _0206FA78 _0206FA24: ldr r0, _0206FA90 ; =0x000005C8 mov r1, #0x1 ldr r0, [r4, r0] bl FUN_0200C664 ldr r0, _0206FA94 ; =0x00000B25 mov r1, #0x2c ldrb r0, [r4, r0] add r2, r0, #0x0 mul r2, r1 mov r0, #0x71 add r2, r4, r2 lsl r0, r0, #0x4 ldrb r0, [r2, r0] cmp r0, #0x1 beq _0206FA4C add r0, r4, #0x0 bl FUN_02076AF8 pop {r4, pc} _0206FA4C: add r0, r4, #0x0 sub r1, #0x2d mov r2, #0x1 bl FUN_020731E8 ldr r1, _0206FA98 ; =0x000005A4 mov r2, #0x0 ldr r0, [r4, r1] add r1, #0xf8 add r0, #0x23 strb r2, [r0, #0x0] ldr r0, _0206FA9C ; =0x00000B22 mov r2, #0x15 strb r2, [r4, r0] ldr r2, _0206FAA0 ; =0x000006A4 ldr r0, [r4, r1] ldr r2, [r4, r2] mov r1, #0x69 bl FUN_0200A8E0 mov r0, #0x14 pop {r4, pc} _0206FA78: cmp r0, #0x3 bne _0206FA8A ldr r0, _0206FA98 ; =0x000005A4 mov r1, #0x0 ldr r0, [r4, r0] add r0, #0x23 strb r1, [r0, #0x0] mov r0, #0x1b pop {r4, pc} _0206FA8A: mov r0, #0x11 pop {r4, pc} nop _0206FA90: .word 0x000005C8 _0206FA94: .word 0x00000B25 _0206FA98: .word 0x000005A4 _0206FA9C: .word 0x00000B22 _0206FAA0: .word 0x000006A4 thumb_func_start FUN_0206FAA4 FUN_0206FAA4: ; 0x0206FAA4 push {r3-r7, lr} str r0, [sp, #0x0] bl FUN_02006278 add r6, r0, #0x0 mov r0, #0x0 add r1, r0, #0x0 bl FUN_02015F10 add r0, r6, #0x0 bl FUN_02073A2C add r0, r6, #0x0 bl FUN_020726F0 ldr r0, [r6, #0x0] bl FUN_0206FCD4 bl FUN_0201CD04 bl FUN_0201C29C mov r7, #0x7 mov r4, #0x0 add r5, r6, #0x0 lsl r7, r7, #0x8 _0206FAD8: ldr r0, [r5, r7] bl FUN_02021A20 add r4, r4, #0x1 add r5, #0x2c cmp r4, #0x6 blo _0206FAD8 ldr r0, _0206FB40 ; =0x000006A4 ldr r0, [r6, r0] bl FUN_02021A20 ldr r0, _0206FB44 ; =0x000006A8 ldr r0, [r6, r0] bl FUN_02021A20 ldr r7, _0206FB48 ; =0x000006AC mov r5, #0x0 add r4, r6, #0x0 _0206FAFC: ldr r0, [r4, r7] bl FUN_02021A20 add r5, r5, #0x1 add r4, r4, #0x4 cmp r5, #0x13 blo _0206FAFC ldr r0, _0206FB4C ; =0x0000069C ldr r0, [r6, r0] bl FUN_0200A8B8 ldr r0, _0206FB50 ; =0x00000698 ldr r0, [r6, r0] bl FUN_0200B990 mov r0, #0x6a lsl r0, r0, #0x4 ldr r0, [r6, r0] bl FUN_0200AB18 ldr r0, _0206FB54 ; =0x00000B34 ldr r0, [r6, r0] cmp r0, #0x0 beq _0206FB30 bl FUN_0206BB74 _0206FB30: ldr r0, [sp, #0x0] bl FUN_0200627C mov r0, #0xc bl FUN_020168D0 mov r0, #0x1 pop {r3-r7, pc} .balign 4 _0206FB40: .word 0x000006A4 _0206FB44: .word 0x000006A8 _0206FB48: .word 0x000006AC _0206FB4C: .word 0x0000069C _0206FB50: .word 0x00000698 _0206FB54: .word 0x00000B34 thumb_func_start FUN_0206FB58 FUN_0206FB58: ; 0x0206FB58 push {r3, lr} ldr r0, [r0, #0x0] bl FUN_0201AB60 bl FUN_0201C30C bl FUN_0200BC30 ldr r3, _0206FB78 ; =0x027E0000 ldr r1, _0206FB7C ; =0x00003FF8 mov r0, #0x1 ldr r2, [r3, r1] orr r0, r2 str r0, [r3, r1] pop {r3, pc} nop _0206FB78: .word 0x027E0000 _0206FB7C: .word 0x00003FF8 thumb_func_start FUN_0206FB80 FUN_0206FB80: ; 0x0206FB80 push {r4, lr} sub sp, #0x28 ldr r4, _0206FB9C ; =0x020F9564 add r3, sp, #0x0 mov r2, #0x5 _0206FB8A: ldmia r4!, {r0-r1} stmia r3!, {r0-r1} sub r2, r2, #0x1 bne _0206FB8A add r0, sp, #0x0 bl FUN_0201E66C add sp, #0x28 pop {r4, pc} .balign 4 _0206FB9C: .word 0x020F9564 thumb_func_start FUN_0206FBA0 FUN_0206FBA0: ; 0x0206FBA0 push {r3-r5, lr} sub sp, #0xb8 ldr r5, _0206FCB8 ; =0x020F9458 add r3, sp, #0xa8 add r4, r0, #0x0 add r2, r3, #0x0 ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} add r0, r2, #0x0 bl FUN_02016BBC ldr r5, _0206FCBC ; =0x020F94D4 add r3, sp, #0x8c ldmia r5!, {r0-r1} add r2, r3, #0x0 stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r5, #0x0] mov r1, #0x0 str r0, [r3, #0x0] add r0, r4, #0x0 add r3, r1, #0x0 bl FUN_02016C18 add r0, r4, #0x0 mov r1, #0x0 bl FUN_02018744 ldr r5, _0206FCC0 ; =0x020F94F0 add r3, sp, #0x70 ldmia r5!, {r0-r1} add r2, r3, #0x0 stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r5, #0x0] mov r1, #0x1 str r0, [r3, #0x0] add r0, r4, #0x0 mov r3, #0x0 bl FUN_02016C18 add r0, r4, #0x0 mov r1, #0x1 bl FUN_02018744 ldr r5, _0206FCC4 ; =0x020F949C add r3, sp, #0x54 ldmia r5!, {r0-r1} add r2, r3, #0x0 stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r5, #0x0] mov r1, #0x2 str r0, [r3, #0x0] add r0, r4, #0x0 mov r3, #0x0 bl FUN_02016C18 add r0, r4, #0x0 mov r1, #0x2 bl FUN_02018744 ldr r5, _0206FCC8 ; =0x020F9480 add r3, sp, #0x38 ldmia r5!, {r0-r1} add r2, r3, #0x0 stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r5, #0x0] mov r1, #0x3 str r0, [r3, #0x0] add r0, r4, #0x0 mov r3, #0x0 bl FUN_02016C18 ldr r5, _0206FCCC ; =0x020F950C add r3, sp, #0x1c ldmia r5!, {r0-r1} add r2, r3, #0x0 stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r5, #0x0] str r0, [r3, #0x0] add r0, r4, #0x0 mov r1, #0x4 mov r3, #0x0 bl FUN_02016C18 add r0, r4, #0x0 mov r1, #0x4 bl FUN_02018744 ldr r5, _0206FCD0 ; =0x020F9528 add r3, sp, #0x0 ldmia r5!, {r0-r1} add r2, r3, #0x0 stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r5, #0x0] mov r1, #0x5 str r0, [r3, #0x0] add r0, r4, #0x0 mov r3, #0x0 bl FUN_02016C18 mov r0, #0x0 mov r1, #0x20 add r2, r0, #0x0 mov r3, #0xc bl FUN_02017F18 mov r0, #0x4 mov r1, #0x20 mov r2, #0x0 mov r3, #0xc bl FUN_02017F18 add sp, #0xb8 pop {r3-r5, pc} nop _0206FCB8: .word 0x020F9458 _0206FCBC: .word 0x020F94D4 _0206FCC0: .word 0x020F94F0 _0206FCC4: .word 0x020F949C _0206FCC8: .word 0x020F9480 _0206FCCC: .word 0x020F950C _0206FCD0: .word 0x020F9528 thumb_func_start FUN_0206FCD4 FUN_0206FCD4: ; 0x0206FCD4 push {r4, lr} add r4, r0, #0x0 mov r0, #0x1f mov r1, #0x0 bl FUN_0201E6E4 mov r0, #0x13 mov r1, #0x0 bl FUN_0201E74C add r0, r4, #0x0 mov r1, #0x5 bl FUN_020178A0 add r0, r4, #0x0 mov r1, #0x4 bl FUN_020178A0 add r0, r4, #0x0 mov r1, #0x3 bl FUN_020178A0 add r0, r4, #0x0 mov r1, #0x2 bl FUN_020178A0 add r0, r4, #0x0 mov r1, #0x1 bl FUN_020178A0 add r0, r4, #0x0 mov r1, #0x0 bl FUN_020178A0 mov r0, #0xc add r1, r4, #0x0 bl FUN_02016A8C pop {r4, pc} .balign 4 thumb_func_start FUN_0206FD24 FUN_0206FD24: ; 0x0206FD24 push {r4-r5, lr} sub sp, #0x14 add r5, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x4] str r0, [sp, #0x8] mov r0, #0xc str r0, [sp, #0xc] ldr r2, [r5, #0x0] mov r0, #0x14 mov r1, #0xf mov r3, #0x3 bl FUN_0200687C mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x4] str r0, [sp, #0x8] mov r0, #0xc str r0, [sp, #0xc] ldr r2, [r5, #0x0] mov r0, #0x14 mov r1, #0x11 mov r3, #0x3 bl FUN_020068C8 mov r0, #0x14 mov r1, #0x10 mov r2, #0xc bl FUN_0200650C add r1, sp, #0x10 add r4, r0, #0x0 blx FUN_020B0138 ldr r2, [sp, #0x10] mov r0, #0x3 ldr r1, [r2, #0xc] ldr r2, [r2, #0x8] mov r3, #0x0 lsl r2, r2, #0x10 lsr r2, r2, #0x10 bl FUN_02017FB4 ldr r1, [sp, #0x10] ldr r0, _0206FE6C ; =0x000004A4 ldr r1, [r1, #0xc] mov r2, #0x1 add r0, r5, r0 add r1, #0x60 lsl r2, r2, #0x8 blx FUN_020DF438 mov r0, #0xc add r1, r4, #0x0 bl FUN_02016A8C mov r1, #0x1a mov r0, #0x0 lsl r1, r1, #0x4 mov r2, #0xc bl FUN_02002EEC mov r1, #0x0 str r1, [sp, #0x0] mov r0, #0xc str r0, [sp, #0x4] ldr r0, [r5, #0x0] mov r2, #0x1 mov r3, #0xe bl FUN_0200CB00 ldr r0, _0206FE70 ; =0x000005A4 ldr r0, [r5, r0] ldr r0, [r0, #0xc] bl FUN_02025084 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0xc str r0, [sp, #0x4] ldr r0, [r5, #0x0] mov r1, #0x0 mov r2, #0xa mov r3, #0xf bl FUN_0200CD68 mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x4] str r0, [sp, #0x8] mov r0, #0xc str r0, [sp, #0xc] ldr r2, [r5, #0x0] mov r0, #0x14 mov r1, #0x3 mov r3, #0x4 bl FUN_0200687C mov r3, #0x20 mov r1, #0x4 str r3, [sp, #0x0] mov r0, #0xc str r0, [sp, #0x4] mov r0, #0x14 add r2, r1, #0x0 bl FUN_02006930 mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x4] str r0, [sp, #0x8] mov r1, #0xc str r1, [sp, #0xc] ldr r2, [r5, #0x0] mov r0, #0x14 mov r3, #0x5 bl FUN_0200687C mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x4] str r0, [sp, #0x8] mov r0, #0xc str r0, [sp, #0xc] ldr r2, [r5, #0x0] mov r0, #0x14 mov r1, #0xe mov r3, #0x5 bl FUN_020068C8 mov r0, #0x20 str r0, [sp, #0x0] mov r0, #0xc str r0, [sp, #0x4] mov r0, #0x14 mov r1, #0xd mov r2, #0x4 mov r3, #0x0 bl FUN_02006930 mov r2, #0x99 lsl r2, r2, #0x2 mov r3, #0xf9 add r1, r5, r2 add r2, #0xc0 lsl r3, r3, #0x2 mov r0, #0xc add r2, r5, r2 add r3, r5, r3 bl FUN_020724D4 mov r0, #0x0 add r1, r0, #0x0 bl FUN_02017FE4 mov r0, #0x4 mov r1, #0x0 bl FUN_02017FE4 add sp, #0x14 pop {r4-r5, pc} .balign 4 _0206FE6C: .word 0x000004A4 _0206FE70: .word 0x000005A4 thumb_func_start FUN_0206FE74 FUN_0206FE74: ; 0x0206FE74 push {r3-r7, lr} ldr r1, _0206FF50 ; =0x00000B38 mov r2, #0xc add r4, r0, #0x0 bl FUN_02006268 ldr r2, _0206FF50 ; =0x00000B38 mov r1, #0x0 add r6, r0, #0x0 blx FUN_020DF4A4 add r0, r4, #0x0 bl FUN_0200628C ldr r1, _0206FF54 ; =0x000005A4 str r0, [r6, r1] mov r0, #0xc bl FUN_02016B94 str r0, [r6, #0x0] ldr r0, _0206FF54 ; =0x000005A4 ldr r1, [r6, r0] add r0, r1, #0x0 add r0, #0x20 ldrb r0, [r0, #0x0] cmp r0, #0x2 bne _0206FEBC ldr r0, [r1, #0x14] cmp r0, #0x0 beq _0206FEBC mov r0, #0xc bl FUN_0206BB5C ldr r1, _0206FF58 ; =0x00000B34 str r0, [r6, r1] b _0206FEC2 _0206FEBC: ldr r0, _0206FF58 ; =0x00000B34 mov r1, #0x0 str r1, [r6, r0] _0206FEC2: ldr r2, _0206FF5C ; =0x00000192 mov r0, #0x0 mov r1, #0x1a mov r3, #0xc bl FUN_0200A86C ldr r1, _0206FF60 ; =0x0000069C mov r2, #0x0 str r0, [r6, r1] mov r0, #0xf mov r1, #0xe mov r3, #0xc bl FUN_0200B870 ldr r1, _0206FF64 ; =0x00000698 str r0, [r6, r1] mov r0, #0xc bl FUN_0200AA80 mov r1, #0x6a lsl r1, r1, #0x4 add r7, r1, #0x0 str r0, [r6, r1] mov r4, #0x0 add r5, r6, #0x0 add r7, #0x60 _0206FEF6: mov r0, #0xb mov r1, #0xc bl FUN_020219F4 str r0, [r5, r7] add r4, r4, #0x1 add r5, #0x2c cmp r4, #0x6 blo _0206FEF6 mov r0, #0x1 lsl r0, r0, #0x8 mov r1, #0xc bl FUN_020219F4 ldr r1, _0206FF68 ; =0x000006A4 str r0, [r6, r1] mov r0, #0x1 lsl r0, r0, #0x8 mov r1, #0xc bl FUN_020219F4 ldr r1, _0206FF6C ; =0x000006A8 mov r5, #0x0 str r0, [r6, r1] add r4, r6, #0x0 add r7, r1, #0x4 _0206FF2A: mov r0, #0x20 mov r1, #0xc bl FUN_020219F4 str r0, [r4, r7] add r5, r5, #0x1 add r4, r4, #0x4 cmp r5, #0x13 blo _0206FF2A ldr r0, _0206FF54 ; =0x000005A4 ldr r0, [r6, r0] add r0, #0x22 ldrb r1, [r0, #0x0] ldr r0, _0206FF70 ; =0x00000B25 strb r1, [r6, r0] add r0, r0, #0x1 strb r1, [r6, r0] add r0, r6, #0x0 pop {r3-r7, pc} .balign 4 _0206FF50: .word 0x00000B38 _0206FF54: .word 0x000005A4 _0206FF58: .word 0x00000B34 _0206FF5C: .word 0x00000192 _0206FF60: .word 0x0000069C _0206FF64: .word 0x00000698 _0206FF68: .word 0x000006A4 _0206FF6C: .word 0x000006A8 _0206FF70: .word 0x00000B25 thumb_func_start FUN_0206FF74 FUN_0206FF74: ; 0x0206FF74 push {r3-r4} ldr r2, _0206FFAC ; =0x000005A4 mov r3, #0x80 ldr r1, [r0, r2] add r1, #0x20 ldrb r1, [r1, #0x0] tst r1, r3 beq _0206FF9E ldr r1, _0206FFB0 ; =0x00000B23 ldrb r4, [r0, r1] orr r4, r3 strb r4, [r0, r1] ldr r1, [r0, r2] add r0, r1, #0x0 add r0, #0x20 ldrb r0, [r0, #0x0] add r1, #0x20 eor r0, r3 strb r0, [r1, #0x0] pop {r3-r4} bx lr _0206FF9E: ldr r2, _0206FFB0 ; =0x00000B23 mov r1, #0x80 ldrb r3, [r0, r2] bic r3, r1 strb r3, [r0, r2] pop {r3-r4} bx lr .balign 4 _0206FFAC: .word 0x000005A4 _0206FFB0: .word 0x00000B23 thumb_func_start FUN_0206FFB4 FUN_0206FFB4: ; 0x0206FFB4 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _02070064 ; =0x000005A4 mov r4, #0x3 ldr r1, [r5, r0] add r0, r1, #0x0 add r0, #0x21 ldrb r0, [r0, #0x0] cmp r0, #0x2 bne _0206FFD0 ldr r1, _02070068 ; =0x020F95CC ldr r0, _0207006C ; =0x00000808 str r1, [r5, r0] b _0206FFEA _0206FFD0: add r1, #0x20 ldrb r0, [r1, #0x0] cmp r0, #0x2 beq _0206FFDC cmp r0, #0x11 bne _0206FFE4 _0206FFDC: ldr r1, _02070070 ; =0x020F960C ldr r0, _0207006C ; =0x00000808 str r1, [r5, r0] b _0206FFEA _0206FFE4: ldr r1, _02070074 ; =0x020F958C ldr r0, _0207006C ; =0x00000808 str r1, [r5, r0] _0206FFEA: ldr r0, _02070064 ; =0x000005A4 ldr r1, [r5, r0] add r1, #0x20 ldrb r1, [r1, #0x0] cmp r1, #0x2 beq _0207003C cmp r1, #0x11 beq _0207003C add r0, #0x2c ldr r0, [r5, r0] mov r1, #0x0 bl FUN_020200A0 ldr r0, _02070078 ; =0x000005D4 mov r1, #0x0 ldr r0, [r5, r0] bl FUN_02020130 ldr r0, _02070078 ; =0x000005D4 add r1, sp, #0x0 ldr r0, [r5, r0] add r1, #0x2 add r2, sp, #0x0 bl FUN_0200C75C ldr r0, _02070078 ; =0x000005D4 add r3, sp, #0x0 mov r2, #0x0 ldrsh r2, [r3, r2] mov r1, #0x2 ldrsh r1, [r3, r1] sub r2, #0x8 lsl r2, r2, #0x10 ldr r0, [r5, r0] asr r2, r2, #0x10 bl FUN_0200C6E4 mov r0, #0x1 eor r0, r4 lsl r0, r0, #0x18 lsr r4, r0, #0x18 _0207003C: ldr r0, _02070064 ; =0x000005A4 ldr r1, [r5, r0] add r1, #0x20 ldrb r1, [r1, #0x0] cmp r1, #0x4 bne _0207005A add r0, #0x30 ldr r0, [r5, r0] mov r1, #0x0 bl FUN_020200A0 mov r0, #0x2 eor r0, r4 lsl r0, r0, #0x18 lsr r4, r0, #0x18 _0207005A: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02073094 pop {r3-r5, pc} .balign 4 _02070064: .word 0x000005A4 _02070068: .word 0x020F95CC _0207006C: .word 0x00000808 _02070070: .word 0x020F960C _02070074: .word 0x020F958C _02070078: .word 0x000005D4 thumb_func_start FUN_0207007C FUN_0207007C: ; 0x0207007C mov r2, #0x2c mul r2, r1 add r1, r0, r2 ldr r0, _02070088 ; =0x00000729 ldrb r0, [r1, r0] bx lr .balign 4 _02070088: .word 0x00000729 thumb_func_start FUN_0207008C FUN_0207008C: ; 0x0207008C push {r4-r7, lr} sub sp, #0xc str r1, [sp, #0x0] add r5, r0, #0x0 ldr r0, [sp, #0x0] mov r1, #0x2c add r4, r0, #0x0 ldr r0, _020701D8 ; =0x00000729 mul r4, r1 add r0, r5, r0 mov r1, #0x0 str r0, [sp, #0x8] strb r1, [r0, r4] ldr r0, _020701DC ; =0x000005A4 ldr r0, [r5, r0] ldr r0, [r0, #0x0] bl FUN_0206B9AC ldr r1, [sp, #0x0] cmp r0, r1 bgt _020700BC add sp, #0xc mov r0, #0x0 pop {r4-r7, pc} _020700BC: ldr r0, _020701DC ; =0x000005A4 ldr r0, [r5, r0] ldr r0, [r0, #0x0] bl FUN_0206B9B0 mov r1, #0x5 mov r2, #0x0 add r7, r0, #0x0 bl FUN_020671BC lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x4] bne _020700DE add sp, #0xc mov r0, #0x0 pop {r4-r7, pc} _020700DE: ldr r2, [sp, #0x0] add r0, r5, #0x0 add r1, r7, #0x0 bl FUN_02072A00 ldr r0, [sp, #0x0] mov r1, #0x2c add r6, r0, #0x0 mul r6, r1 ldr r1, _020701E0 ; =0x00000704 ldr r0, [sp, #0x4] add r2, r5, r6 strh r0, [r2, r1] add r0, r7, #0x0 mov r1, #0xa2 mov r2, #0x0 bl FUN_020671BC ldr r1, _020701E4 ; =0x00000706 add r2, r5, r6 strh r0, [r2, r1] add r0, r7, #0x0 mov r1, #0xa3 mov r2, #0x0 bl FUN_020671BC ldr r1, _020701E8 ; =0x00000708 add r2, r5, r6 strh r0, [r2, r1] add r0, r7, #0x0 mov r1, #0xa0 mov r2, #0x0 bl FUN_020671BC ldr r1, _020701EC ; =0x0000070A add r2, r5, r6 strh r0, [r2, r1] add r0, r7, #0x0 mov r1, #0x6 mov r2, #0x0 bl FUN_020671BC ldr r1, _020701F0 ; =0x0000070C add r2, r5, r6 strh r0, [r2, r1] add r0, r7, #0x0 mov r1, #0xa1 mov r2, #0x0 bl FUN_020671BC ldr r1, _020701F4 ; =0x00000712 add r2, r5, r6 strh r0, [r2, r1] add r0, r7, #0x0 mov r1, #0x4c mov r2, #0x0 bl FUN_020671BC mov r1, #0x71 add r2, r5, r6 lsl r1, r1, #0x4 strb r0, [r2, r1] add r0, r7, #0x0 mov r1, #0x70 mov r2, #0x0 bl FUN_020671BC ldr r1, _020701F8 ; =0x00000711 add r2, r5, r6 strb r0, [r2, r1] add r0, r7, #0x0 mov r1, #0xaf mov r2, #0x0 bl FUN_020671BC cmp r0, #0x1 ldr r0, _020701FC ; =0x0000070E bne _02070184 add r2, r5, r0 ldrh r1, [r2, r4] ldr r0, _02070200 ; =0xFFFFEFFF and r0, r1 b _0207018E _02070184: add r2, r5, r0 ldrh r1, [r2, r4] mov r0, #0x1 lsl r0, r0, #0xc orr r0, r1 _0207018E: strh r0, [r2, r4] ldr r0, _020701FC ; =0x0000070E add r6, r5, r0 add r0, r7, #0x0 bl FUN_020689E0 lsl r0, r0, #0x1e ldrh r2, [r6, r4] ldr r1, _02070204 ; =0xFFFF9FFF lsr r0, r0, #0x11 and r1, r2 orr r0, r1 strh r0, [r6, r4] ldr r0, [sp, #0x8] mov r1, #0x1 strb r1, [r0, r4] add r0, r7, #0x0 bl FUN_0207C2D4 lsl r0, r0, #0x18 ldrh r1, [r6, r4] ldr r2, _02070208 ; =0xFFFFF000 lsr r0, r0, #0x18 and r1, r2 lsr r2, r2, #0x14 and r0, r2 orr r0, r1 strh r0, [r6, r4] ldr r2, [sp, #0x0] add r0, r5, #0x0 add r1, r7, #0x0 bl FUN_0207020C mov r0, #0x1 add sp, #0xc pop {r4-r7, pc} nop _020701D8: .word 0x00000729 _020701DC: .word 0x000005A4 _020701E0: .word 0x00000704 _020701E4: .word 0x00000706 _020701E8: .word 0x00000708 _020701EC: .word 0x0000070A _020701F0: .word 0x0000070C _020701F4: .word 0x00000712 _020701F8: .word 0x00000711 _020701FC: .word 0x0000070E _02070200: .word 0xFFFFEFFF _02070204: .word 0xFFFF9FFF _02070208: .word 0xFFFFF000 thumb_func_start FUN_0207020C FUN_0207020C: ; 0x0207020C push {r3-r7, lr} add r7, r0, #0x0 ldr r0, _0207029C ; =0x000005A4 add r5, r1, #0x0 ldr r1, [r7, r0] add r0, r1, #0x0 add r0, #0x20 ldrb r0, [r0, #0x0] cmp r0, #0xd bne _0207029A mov r0, #0x2c add r6, r2, #0x0 mul r6, r0 mov r0, #0x71 add r3, r7, r6 lsl r0, r0, #0x4 ldrb r2, [r3, r0] cmp r2, #0x1 beq _0207023A sub r0, #0xa ldrh r0, [r3, r0] cmp r0, #0x0 bne _02070248 _0207023A: ldr r0, _020702A0 ; =0x0000070E add r2, r7, r0 ldrh r1, [r2, r6] ldr r0, _020702A4 ; =0xFFFF7FFF and r0, r1 strh r0, [r2, r6] pop {r3-r7, pc} _02070248: add r1, #0x2a ldrb r1, [r1, #0x0] add r0, r5, #0x0 bl FUN_020702A8 str r0, [sp, #0x0] mov r4, #0x0 _02070256: add r1, r4, #0x0 add r0, r5, #0x0 add r1, #0x36 mov r2, #0x0 bl FUN_020671BC cmp r0, #0x0 beq _0207026C add r4, r4, #0x1 cmp r4, #0x4 blo _02070256 _0207026C: ldr r0, _0207029C ; =0x000005A4 ldr r0, [r7, r0] add r0, #0x2b ldrb r1, [r0, #0x0] ldr r0, [sp, #0x0] cmp r1, r0 bhi _0207028E cmp r4, #0x2 blo _0207028E ldr r0, _020702A0 ; =0x0000070E add r2, r7, r0 ldrh r1, [r2, r6] mov r0, #0x2 lsl r0, r0, #0xe orr r0, r1 strh r0, [r2, r6] pop {r3-r7, pc} _0207028E: ldr r0, _020702A0 ; =0x0000070E add r2, r7, r0 ldrh r1, [r2, r6] ldr r0, _020702A4 ; =0xFFFF7FFF and r0, r1 strh r0, [r2, r6] _0207029A: pop {r3-r7, pc} .balign 4 _0207029C: .word 0x000005A4 _020702A0: .word 0x0000070E _020702A4: .word 0xFFFF7FFF thumb_func_start FUN_020702A8 FUN_020702A8: ; 0x020702A8 push {r3-r5, lr} add r5, r0, #0x0 cmp r1, #0x4 bls _020702B2 b _020703B6 _020702B2: add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _020702BE: ; jump table (using 16-bit offset) .short _020702C8 - _020702BE - 2; case 0 .short _020702F8 - _020702BE - 2; case 1 .short _02070328 - _020702BE - 2; case 2 .short _02070358 - _020702BE - 2; case 3 .short _02070388 - _020702BE - 2; case 4 _020702C8: mov r1, #0x7a mov r2, #0x0 bl FUN_020671BC add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x7b mov r2, #0x0 bl FUN_020671BC add r4, r4, r0 add r0, r5, #0x0 mov r1, #0x7c mov r2, #0x0 bl FUN_020671BC add r4, r4, r0 add r0, r5, #0x0 mov r1, #0x7d mov r2, #0x0 bl FUN_020671BC add r4, r4, r0 b _020703B6 _020702F8: mov r1, #0x7e mov r2, #0x0 bl FUN_020671BC add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x7f mov r2, #0x0 bl FUN_020671BC add r4, r4, r0 add r0, r5, #0x0 mov r1, #0x80 mov r2, #0x0 bl FUN_020671BC add r4, r4, r0 add r0, r5, #0x0 mov r1, #0x81 mov r2, #0x0 bl FUN_020671BC add r4, r4, r0 b _020703B6 _02070328: mov r1, #0x82 mov r2, #0x0 bl FUN_020671BC add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x83 mov r2, #0x0 bl FUN_020671BC add r4, r4, r0 add r0, r5, #0x0 mov r1, #0x84 mov r2, #0x0 bl FUN_020671BC add r4, r4, r0 add r0, r5, #0x0 mov r1, #0x85 mov r2, #0x0 bl FUN_020671BC add r4, r4, r0 b _020703B6 _02070358: mov r1, #0x86 mov r2, #0x0 bl FUN_020671BC add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x87 mov r2, #0x0 bl FUN_020671BC add r4, r4, r0 add r0, r5, #0x0 mov r1, #0x88 mov r2, #0x0 bl FUN_020671BC add r4, r4, r0 add r0, r5, #0x0 mov r1, #0x89 mov r2, #0x0 bl FUN_020671BC add r4, r4, r0 b _020703B6 _02070388: mov r1, #0x8a mov r2, #0x0 bl FUN_020671BC add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x8b mov r2, #0x0 bl FUN_020671BC add r4, r4, r0 add r0, r5, #0x0 mov r1, #0x8c mov r2, #0x0 bl FUN_020671BC add r4, r4, r0 add r0, r5, #0x0 mov r1, #0x8d mov r2, #0x0 bl FUN_020671BC add r4, r4, r0 _020703B6: add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020703BC FUN_020703BC: ; 0x020703BC mov r1, #0x39 lsl r1, r1, #0x4 add r0, r0, r1 bx lr thumb_func_start FUN_020703C4 FUN_020703C4: ; 0x020703C4 push {r4-r7, lr} sub sp, #0x1c add r4, r1, #0x0 add r5, r0, #0x0 add r6, r2, #0x0 add r7, r3, #0x0 cmp r4, #0x0 beq _020703E4 ldr r0, _02070474 ; =0x000005A4 ldr r0, [r5, r0] add r0, #0x21 ldrb r0, [r0, #0x0] cmp r0, #0x0 beq _020703EC cmp r4, #0x1 bne _020703EC _020703E4: mov r0, #0x99 lsl r0, r0, #0x2 add r0, r5, r0 b _020703F2 _020703EC: mov r0, #0xc9 lsl r0, r0, #0x2 add r0, r5, r0 _020703F2: mov r1, #0x2c mul r1, r4 ldr r2, _02070478 ; =0x00000714 add r1, r5, r1 strb r6, [r1, r2] add r2, r2, #0x1 strb r7, [r1, r2] mov r2, #0x10 str r2, [sp, #0x0] mov r1, #0x6 str r1, [sp, #0x4] str r0, [sp, #0x8] mov r0, #0x0 str r0, [sp, #0xc] str r0, [sp, #0x10] str r2, [sp, #0x14] str r1, [sp, #0x18] ldr r0, [r5, #0x0] mov r1, #0x2 add r2, r6, #0x0 add r3, r7, #0x0 bl FUN_02018170 add r0, sp, #0x20 ldrb r0, [r0, #0x10] cmp r0, #0x0 bne _0207044C add r0, r7, #0x3 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x9 str r0, [sp, #0x4] mov r0, #0x1 str r0, [sp, #0x8] mov r0, #0x10 add r3, r6, #0x6 str r0, [sp, #0xc] lsl r3, r3, #0x18 ldr r0, [r5, #0x0] mov r1, #0x2 mov r2, #0x17 lsr r3, r3, #0x18 bl FUN_02018540 _0207044C: mov r0, #0x10 str r0, [sp, #0x0] mov r0, #0x6 str r0, [sp, #0x4] add r0, r4, #0x3 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x8] ldr r0, [r5, #0x0] mov r1, #0x2 add r2, r6, #0x0 add r3, r7, #0x0 bl FUN_020186B4 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_020709FC add sp, #0x1c pop {r4-r7, pc} .balign 4 _02070474: .word 0x000005A4 _02070478: .word 0x00000714 thumb_func_start FUN_0207047C FUN_0207047C: ; 0x0207047C push {r4, lr} add r4, r0, #0x0 ldr r0, _020704E4 ; =0x000005A4 ldr r2, [r4, r0] add r0, r2, #0x0 add r0, #0x21 ldrb r0, [r0, #0x0] cmp r0, #0x2 bne _02070492 ldr r1, _020704E8 ; =0x020F9694 b _02070494 _02070492: ldr r1, _020704EC ; =0x020F964C _02070494: add r2, #0x20 ldrb r0, [r2, #0x0] cmp r0, #0x10 bne _020704A4 add r0, r4, #0x0 bl FUN_02070600 b _020704D2 _020704A4: cmp r0, #0x6 bne _020704B0 add r0, r4, #0x0 bl FUN_020706E0 b _020704D2 _020704B0: cmp r0, #0xd bne _020704BC add r0, r4, #0x0 bl FUN_020707C0 b _020704D2 _020704BC: cmp r0, #0x2 beq _020704C4 cmp r0, #0x11 bne _020704CC _020704C4: add r0, r4, #0x0 bl FUN_020708A0 b _020704D2 _020704CC: add r0, r4, #0x0 bl FUN_020704F0 _020704D2: ldr r0, [r4, #0x0] mov r1, #0x2 bl FUN_0201AC68 ldr r0, [r4, #0x0] mov r1, #0x4 bl FUN_0201AC68 pop {r4, pc} .balign 4 _020704E4: .word 0x000005A4 _020704E8: .word 0x020F9694 _020704EC: .word 0x020F964C thumb_func_start FUN_020704F0 FUN_020704F0: ; 0x020704F0 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 add r6, r1, #0x0 mov r4, #0x0 _020704FA: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0207008C cmp r0, #0x1 bne _020705D4 mov r0, #0x2c mul r0, r4 add r1, r5, r0 mov r0, #0x71 lsl r0, r0, #0x4 ldrb r0, [r1, r0] str r1, [sp, #0x4] cmp r0, #0x1 bne _0207053A mov r0, #0xc add r2, r4, #0x0 mul r2, r0 mov r0, #0x0 str r0, [sp, #0x0] add r3, r6, r2 ldrh r2, [r6, r2] ldrh r3, [r3, #0x2] add r0, r5, #0x0 lsl r2, r2, #0x18 lsl r3, r3, #0x18 add r1, r4, #0x0 lsr r2, r2, #0x18 lsr r3, r3, #0x18 bl FUN_020703C4 b _0207055A _0207053A: mov r0, #0xc add r2, r4, #0x0 mul r2, r0 mov r0, #0x1 str r0, [sp, #0x0] add r3, r6, r2 ldrh r2, [r6, r2] ldrh r3, [r3, #0x2] add r0, r5, #0x0 lsl r2, r2, #0x18 lsl r3, r3, #0x18 add r1, r4, #0x0 lsr r2, r2, #0x18 lsr r3, r3, #0x18 bl FUN_020703C4 _0207055A: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02072D1C mov r0, #0xc mul r0, r4 add r7, r6, r0 ldrh r2, [r7, #0x4] ldrh r3, [r7, #0x6] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_020737D0 ldrh r2, [r7, #0x8] ldrh r3, [r7, #0xa] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_020739E4 ldr r3, [sp, #0x4] ldr r2, _020705F8 ; =0x0000070C add r0, r5, #0x0 ldrh r2, [r3, r2] add r1, r4, #0x0 bl FUN_02073A78 mov r2, #0x4 mov r3, #0x6 ldrsh r2, [r7, r2] ldrsh r3, [r7, r3] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02073AD8 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02073B3C add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02073B0C mov r2, #0x2c mul r2, r4 add r3, r5, r2 ldr r2, _020705FC ; =0x0000070E add r0, r5, #0x0 ldrh r2, [r3, r2] add r1, r4, #0x0 lsl r2, r2, #0x14 lsr r2, r2, #0x14 lsl r2, r2, #0x18 lsr r2, r2, #0x18 bl FUN_02073A4C add r0, r5, #0x0 add r1, r4, #0x0 mov r2, #0x0 bl FUN_020717E8 b _020705EA _020705D4: mov r0, #0xc add r2, r4, #0x0 mul r2, r0 add r7, r6, r2 mov r3, #0x2 ldrsh r2, [r6, r2] ldrsh r3, [r7, r3] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02070988 _020705EA: add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #0x6 blo _020704FA add sp, #0x8 pop {r3-r7, pc} .balign 4 _020705F8: .word 0x0000070C _020705FC: .word 0x0000070E thumb_func_start FUN_02070600 FUN_02070600: ; 0x02070600 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 str r1, [sp, #0x4] mov r4, #0x0 _0207060A: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0207008C cmp r0, #0x1 bne _020706B0 mov r0, #0xc add r2, r4, #0x0 mul r2, r0 ldr r0, [sp, #0x4] ldr r3, [sp, #0x4] add r6, r0, r2 mov r0, #0x0 str r0, [sp, #0x0] ldrh r2, [r3, r2] ldrh r3, [r6, #0x2] add r0, r5, #0x0 lsl r2, r2, #0x18 lsl r3, r3, #0x18 add r1, r4, #0x0 lsr r2, r2, #0x18 lsr r3, r3, #0x18 bl FUN_020703C4 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02072E4C ldrh r2, [r6, #0x4] ldrh r3, [r6, #0x6] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_020737D0 ldrh r2, [r6, #0x8] ldrh r3, [r6, #0xa] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_020739E4 mov r0, #0x2c add r7, r4, #0x0 mul r7, r0 ldr r2, _020706D8 ; =0x0000070C add r3, r5, r7 ldrh r2, [r3, r2] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02073A78 mov r2, #0x4 mov r3, #0x6 ldrsh r2, [r6, r2] ldrsh r3, [r6, r3] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02073AD8 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02073B3C add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02073B0C ldr r2, _020706DC ; =0x0000070E add r3, r5, r7 ldrh r2, [r3, r2] add r0, r5, #0x0 add r1, r4, #0x0 lsl r2, r2, #0x14 lsr r2, r2, #0x14 lsl r2, r2, #0x18 lsr r2, r2, #0x18 bl FUN_02073A4C add r0, r5, #0x0 add r1, r4, #0x0 mov r2, #0x0 bl FUN_020717E8 b _020706CA _020706B0: mov r0, #0xc add r2, r4, #0x0 mul r2, r0 ldr r0, [sp, #0x4] ldr r6, [sp, #0x4] add r3, r0, r2 ldrsh r2, [r6, r2] mov r6, #0x2 ldrsh r3, [r3, r6] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02070988 _020706CA: add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #0x6 blo _0207060A add sp, #0x8 pop {r3-r7, pc} .balign 4 _020706D8: .word 0x0000070C _020706DC: .word 0x0000070E thumb_func_start FUN_020706E0 FUN_020706E0: ; 0x020706E0 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 str r1, [sp, #0x4] mov r4, #0x0 _020706EA: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0207008C cmp r0, #0x1 bne _02070790 mov r0, #0xc add r2, r4, #0x0 mul r2, r0 ldr r0, [sp, #0x4] ldr r3, [sp, #0x4] add r6, r0, r2 mov r0, #0x0 str r0, [sp, #0x0] ldrh r2, [r3, r2] ldrh r3, [r6, #0x2] add r0, r5, #0x0 lsl r2, r2, #0x18 lsl r3, r3, #0x18 add r1, r4, #0x0 lsr r2, r2, #0x18 lsr r3, r3, #0x18 bl FUN_020703C4 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02072EE4 ldrh r2, [r6, #0x4] ldrh r3, [r6, #0x6] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_020737D0 ldrh r2, [r6, #0x8] ldrh r3, [r6, #0xa] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_020739E4 mov r0, #0x2c add r7, r4, #0x0 mul r7, r0 ldr r2, _020707B8 ; =0x0000070C add r3, r5, r7 ldrh r2, [r3, r2] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02073A78 mov r2, #0x4 mov r3, #0x6 ldrsh r2, [r6, r2] ldrsh r3, [r6, r3] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02073AD8 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02073B3C add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02073B0C ldr r2, _020707BC ; =0x0000070E add r3, r5, r7 ldrh r2, [r3, r2] add r0, r5, #0x0 add r1, r4, #0x0 lsl r2, r2, #0x14 lsr r2, r2, #0x14 lsl r2, r2, #0x18 lsr r2, r2, #0x18 bl FUN_02073A4C add r0, r5, #0x0 add r1, r4, #0x0 mov r2, #0x0 bl FUN_020717E8 b _020707AA _02070790: mov r0, #0xc add r2, r4, #0x0 mul r2, r0 ldr r0, [sp, #0x4] ldr r6, [sp, #0x4] add r3, r0, r2 ldrsh r2, [r6, r2] mov r6, #0x2 ldrsh r3, [r3, r6] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02070988 _020707AA: add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #0x6 blo _020706EA add sp, #0x8 pop {r3-r7, pc} .balign 4 _020707B8: .word 0x0000070C _020707BC: .word 0x0000070E thumb_func_start FUN_020707C0 FUN_020707C0: ; 0x020707C0 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 str r1, [sp, #0x4] mov r4, #0x0 _020707CA: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0207008C cmp r0, #0x1 bne _02070870 mov r0, #0xc add r2, r4, #0x0 mul r2, r0 ldr r0, [sp, #0x4] ldr r3, [sp, #0x4] add r6, r0, r2 mov r0, #0x0 str r0, [sp, #0x0] ldrh r2, [r3, r2] ldrh r3, [r6, #0x2] add r0, r5, #0x0 lsl r2, r2, #0x18 lsl r3, r3, #0x18 add r1, r4, #0x0 lsr r2, r2, #0x18 lsr r3, r3, #0x18 bl FUN_020703C4 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02072F78 ldrh r2, [r6, #0x4] ldrh r3, [r6, #0x6] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_020737D0 ldrh r2, [r6, #0x8] ldrh r3, [r6, #0xa] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_020739E4 mov r0, #0x2c add r7, r4, #0x0 mul r7, r0 ldr r2, _02070898 ; =0x0000070C add r3, r5, r7 ldrh r2, [r3, r2] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02073A78 mov r2, #0x4 mov r3, #0x6 ldrsh r2, [r6, r2] ldrsh r3, [r6, r3] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02073AD8 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02073B3C add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02073B0C ldr r2, _0207089C ; =0x0000070E add r3, r5, r7 ldrh r2, [r3, r2] add r0, r5, #0x0 add r1, r4, #0x0 lsl r2, r2, #0x14 lsr r2, r2, #0x14 lsl r2, r2, #0x18 lsr r2, r2, #0x18 bl FUN_02073A4C add r0, r5, #0x0 add r1, r4, #0x0 mov r2, #0x0 bl FUN_020717E8 b _0207088A _02070870: mov r0, #0xc add r2, r4, #0x0 mul r2, r0 ldr r0, [sp, #0x4] ldr r6, [sp, #0x4] add r3, r0, r2 ldrsh r2, [r6, r2] mov r6, #0x2 ldrsh r3, [r3, r6] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02070988 _0207088A: add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #0x6 blo _020707CA add sp, #0x8 pop {r3-r7, pc} .balign 4 _02070898: .word 0x0000070C _0207089C: .word 0x0000070E thumb_func_start FUN_020708A0 FUN_020708A0: ; 0x020708A0 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 str r1, [sp, #0x4] mov r4, #0x0 _020708AA: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0207008C cmp r0, #0x1 bne _02070958 mov r0, #0xc add r2, r4, #0x0 mul r2, r0 ldr r0, [sp, #0x4] ldr r3, [sp, #0x4] add r6, r0, r2 mov r0, #0x0 str r0, [sp, #0x0] ldrh r2, [r3, r2] ldrh r3, [r6, #0x2] add r0, r5, #0x0 lsl r2, r2, #0x18 lsl r3, r3, #0x18 add r1, r4, #0x0 lsr r2, r2, #0x18 lsr r3, r3, #0x18 bl FUN_020703C4 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02072FDC add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02073024 ldrh r2, [r6, #0x4] ldrh r3, [r6, #0x6] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_020737D0 ldrh r2, [r6, #0x8] ldrh r3, [r6, #0xa] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_020739E4 mov r0, #0x2c add r7, r4, #0x0 mul r7, r0 ldr r2, _02070980 ; =0x0000070C add r3, r5, r7 ldrh r2, [r3, r2] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02073A78 mov r2, #0x4 mov r3, #0x6 ldrsh r2, [r6, r2] ldrsh r3, [r6, r3] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02073AD8 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02073B3C add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02073B0C ldr r2, _02070984 ; =0x0000070E add r3, r5, r7 ldrh r2, [r3, r2] add r0, r5, #0x0 add r1, r4, #0x0 lsl r2, r2, #0x14 lsr r2, r2, #0x14 lsl r2, r2, #0x18 lsr r2, r2, #0x18 bl FUN_02073A4C add r0, r5, #0x0 add r1, r4, #0x0 mov r2, #0x0 bl FUN_020717E8 b _02070972 _02070958: mov r0, #0xc add r2, r4, #0x0 mul r2, r0 ldr r0, [sp, #0x4] ldr r6, [sp, #0x4] add r3, r0, r2 ldrsh r2, [r6, r2] mov r6, #0x2 ldrsh r3, [r3, r6] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02070988 _02070972: add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #0x6 blo _020708AA add sp, #0x8 pop {r3-r7, pc} .balign 4 _02070980: .word 0x0000070C _02070984: .word 0x0000070E thumb_func_start FUN_02070988 FUN_02070988: ; 0x02070988 push {r4-r7, lr} sub sp, #0x1c add r7, r1, #0x0 add r4, r2, #0x0 mov r1, #0x10 mov r2, #0xf9 add r5, r0, #0x0 lsl r2, r2, #0x2 add r6, r3, #0x0 lsl r3, r6, #0x18 str r1, [sp, #0x0] mov r0, #0x6 str r0, [sp, #0x4] add r2, r5, r2 str r2, [sp, #0x8] mov r2, #0x0 str r2, [sp, #0xc] str r2, [sp, #0x10] str r1, [sp, #0x14] str r0, [sp, #0x18] lsl r2, r4, #0x18 ldr r0, [r5, #0x0] mov r1, #0x2 lsr r2, r2, #0x18 lsr r3, r3, #0x18 bl FUN_02018170 mov r0, #0x10 str r0, [sp, #0x0] mov r0, #0x6 str r0, [sp, #0x4] mov r0, #0x1 str r0, [sp, #0x8] lsl r2, r4, #0x18 lsl r3, r6, #0x18 ldr r0, [r5, #0x0] mov r1, #0x2 lsr r2, r2, #0x18 lsr r3, r3, #0x18 bl FUN_020186B4 add r0, r5, #0x0 add r1, r7, #0x0 mov r2, #0x7 bl FUN_02073A4C add r0, r5, #0x0 add r1, r7, #0x0 mov r2, #0x0 bl FUN_02073A78 add r0, r5, #0x0 add r1, r7, #0x0 bl FUN_02073B3C add sp, #0x1c pop {r4-r7, pc} .balign 4 thumb_func_start FUN_020709FC FUN_020709FC: ; 0x020709FC push {r4-r6, lr} add r5, r0, #0x0 ldr r0, _02070A78 ; =0x000005A4 add r6, r1, #0x0 ldr r0, [r5, r0] ldr r0, [r0, #0x0] bl FUN_0206B9B0 ldr r1, _02070A7C ; =0x00000B23 ldrb r2, [r5, r1] lsl r3, r2, #0x19 lsr r3, r3, #0x1f cmp r3, #0x1 bne _02070A2C add r1, r1, #0x2 ldrb r1, [r5, r1] cmp r6, r1 beq _02070A28 lsl r1, r2, #0x1a lsr r1, r1, #0x1a cmp r6, r1 bne _02070A2C _02070A28: mov r4, #0x7 b _02070A60 _02070A2C: ldr r1, _02070A80 ; =0x00000B25 ldrb r1, [r5, r1] cmp r6, r1 bne _02070A38 mov r4, #0x4 b _02070A3A _02070A38: mov r4, #0x0 _02070A3A: mov r1, #0xa2 mov r2, #0x0 bl FUN_020671BC cmp r0, #0x0 bne _02070A4E add r0, r4, #0x2 lsl r0, r0, #0x18 lsr r4, r0, #0x18 b _02070A60 _02070A4E: add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02070A88 cmp r0, #0x1 bne _02070A60 add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 _02070A60: ldr r1, _02070A84 ; =0x000004A4 add r3, r6, #0x3 add r2, r5, r1 lsl r1, r4, #0x5 lsl r3, r3, #0x15 add r1, r2, r1 mov r0, #0x2 mov r2, #0x10 lsr r3, r3, #0x10 bl FUN_02017FB4 pop {r4-r6, pc} .balign 4 _02070A78: .word 0x000005A4 _02070A7C: .word 0x00000B23 _02070A80: .word 0x00000B25 _02070A84: .word 0x000004A4 thumb_func_start FUN_02070A88 FUN_02070A88: ; 0x02070A88 ldr r2, _02070AA0 ; =0x000005A4 ldr r0, [r0, r2] add r0, #0x21 ldrb r0, [r0, #0x0] cmp r0, #0x2 bne _02070A9A mov r0, #0x1 tst r1, r0 bne _02070A9C _02070A9A: mov r0, #0x0 _02070A9C: bx lr nop _02070AA0: .word 0x000005A4 thumb_func_start FUN_02070AA4 FUN_02070AA4: ; 0x02070AA4 push {r4, lr} sub sp, #0x10 add r4, r0, #0x0 mov r3, #0x0 ldr r0, _02070AF4 ; =0x00000B25 str r3, [sp, #0x0] ldrb r0, [r4, r0] add r1, sp, #0xc add r1, #0x1 str r0, [sp, #0x4] mov r0, #0x4 str r0, [sp, #0x8] ldr r0, _02070AF8 ; =0x00000808 add r2, sp, #0xc ldr r0, [r4, r0] bl FUN_0201C638 ldr r0, _02070AFC ; =0x000005A4 ldr r1, _02070AF4 ; =0x00000B25 ldr r0, [r4, r0] ldrb r1, [r4, r1] add r0, #0x21 ldrb r0, [r0, #0x0] bl FUN_020714BC add r1, r0, #0x0 ldr r0, _02070B00 ; =0x000005C8 ldr r0, [r4, r0] bl FUN_02020130 ldr r0, _02070B00 ; =0x000005C8 add r2, sp, #0xc ldrb r1, [r2, #0x1] ldrb r2, [r2, #0x0] ldr r0, [r4, r0] bl FUN_0200C6E4 add sp, #0x10 pop {r4, pc} nop _02070AF4: .word 0x00000B25 _02070AF8: .word 0x00000808 _02070AFC: .word 0x000005A4 _02070B00: .word 0x000005C8 thumb_func_start FUN_02070B04 FUN_02070B04: ; 0x02070B04 push {r4, lr} add r4, r0, #0x0 bl FUN_02070B28 cmp r0, #0x1 bne _02070B14 mov r0, #0x1 pop {r4, pc} _02070B14: add r0, r4, #0x0 bl FUN_02070D90 cmp r0, #0x1 bne _02070B22 mov r0, #0x2 pop {r4, pc} _02070B22: mov r0, #0x5 pop {r4, pc} .balign 4 thumb_func_start FUN_02070B28 FUN_02070B28: ; 0x02070B28 push {r3-r6, lr} sub sp, #0x4 add r5, r0, #0x0 ldr r0, _02070CC0 ; =0x021C48B8 mov r1, #0x40 ldr r0, [r0, #0x4c] mov r3, #0x4 tst r1, r0 beq _02070B3E mov r3, #0x0 b _02070B5A _02070B3E: mov r1, #0x80 tst r1, r0 beq _02070B48 mov r3, #0x1 b _02070B5A _02070B48: mov r1, #0x20 tst r1, r0 beq _02070B52 mov r3, #0x2 b _02070B5A _02070B52: mov r1, #0x10 tst r0, r1 beq _02070B5A mov r3, #0x3 _02070B5A: cmp r3, #0x4 bne _02070B64 add sp, #0x4 mov r0, #0x0 pop {r3-r6, pc} _02070B64: ldr r4, _02070CC4 ; =0x00000B25 ldrb r0, [r5, r4] cmp r0, #0x6 bne _02070BA0 cmp r3, #0x0 add r1, sp, #0x0 bne _02070B92 add r4, r4, #0x1 ldrb r6, [r5, r4] mov r4, #0x1 ldr r3, _02070CC8 ; =0x020F9468 and r4, r6 add r6, r4, #0x2 mov r4, #0x6 mul r4, r6 add r0, r5, #0x0 add r1, #0x1 add r2, sp, #0x0 add r3, r3, r4 bl FUN_02070D2C add r6, r0, #0x0 b _02070C1A _02070B92: add r0, r5, #0x0 add r1, #0x1 add r2, sp, #0x0 bl FUN_02070CDC add r6, r0, #0x0 b _02070C1A _02070BA0: cmp r0, #0x7 bne _02070C0C ldr r0, _02070CCC ; =0x000005A4 ldr r0, [r5, r0] add r0, #0x20 ldrb r0, [r0, #0x0] cmp r0, #0x2 beq _02070BDA cmp r0, #0x11 beq _02070BDA cmp r3, #0x0 bne _02070BDA add r4, r4, #0x1 ldrb r6, [r5, r4] mov r4, #0x1 add r1, sp, #0x0 and r4, r6 add r6, r4, #0x2 mov r4, #0x6 ldr r3, _02070CC8 ; =0x020F9468 mul r4, r6 add r0, r5, #0x0 add r1, #0x1 add r2, sp, #0x0 add r3, r3, r4 bl FUN_02070D2C add r6, r0, #0x0 b _02070C1A _02070BDA: cmp r3, #0x1 add r1, sp, #0x0 bne _02070BFE ldr r4, _02070CD0 ; =0x00000B26 ldr r3, _02070CC8 ; =0x020F9468 ldrb r6, [r5, r4] mov r4, #0x1 add r0, r5, #0x0 and r6, r4 mov r4, #0x6 mul r4, r6 add r1, #0x1 add r2, sp, #0x0 add r3, r3, r4 bl FUN_02070D2C add r6, r0, #0x0 b _02070C1A _02070BFE: add r0, r5, #0x0 add r1, #0x1 add r2, sp, #0x0 bl FUN_02070CDC add r6, r0, #0x0 b _02070C1A _02070C0C: add r1, sp, #0x0 add r0, r5, #0x0 add r1, #0x1 add r2, sp, #0x0 bl FUN_02070CDC add r6, r0, #0x0 _02070C1A: ldr r0, _02070CC4 ; =0x00000B25 ldrb r0, [r5, r0] cmp r6, r0 beq _02070CB8 cmp r6, #0xff beq _02070CB8 add r0, r6, #0x0 add r0, #0xfa lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r0, #0x1 bhi _02070C3E ldr r0, _02070CD4 ; =0x000005C8 mov r1, #0x0 ldr r0, [r5, r0] bl FUN_020200A0 b _02070C6E _02070C3E: ldr r0, _02070CCC ; =0x000005A4 add r1, r6, #0x0 ldr r0, [r5, r0] add r0, #0x21 ldrb r0, [r0, #0x0] bl FUN_020714BC add r1, r0, #0x0 ldr r0, _02070CD4 ; =0x000005C8 ldr r0, [r5, r0] bl FUN_02020130 ldr r0, _02070CD4 ; =0x000005C8 mov r1, #0x1 ldr r0, [r5, r0] bl FUN_020200A0 ldr r0, _02070CD4 ; =0x000005C8 add r2, sp, #0x0 ldrb r1, [r2, #0x1] ldrb r2, [r2, #0x0] ldr r0, [r5, r0] bl FUN_0200C6E4 _02070C6E: ldr r0, _02070CC4 ; =0x00000B25 mov r2, #0x0 ldrb r4, [r5, r0] strb r6, [r5, r0] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_020713EC ldr r1, _02070CC4 ; =0x00000B25 add r0, r5, #0x0 ldrb r1, [r5, r1] mov r2, #0x1 bl FUN_020713EC ldr r0, _02070CD8 ; =0x000005DC bl FUN_020054C8 cmp r4, #0x6 bhs _02070CA6 add r0, r5, #0x0 add r1, r4, #0x0 mov r2, #0x0 bl FUN_020717E8 ldr r0, [r5, #0x0] mov r1, #0x4 bl FUN_0201AC68 _02070CA6: cmp r4, #0x6 beq _02070CB2 cmp r4, #0x7 beq _02070CB2 ldr r0, _02070CD0 ; =0x00000B26 strb r4, [r5, r0] _02070CB2: add sp, #0x4 mov r0, #0x1 pop {r3-r6, pc} _02070CB8: mov r0, #0x0 add sp, #0x4 pop {r3-r6, pc} nop _02070CC0: .word 0x021C48B8 _02070CC4: .word 0x00000B25 _02070CC8: .word 0x020F9468 _02070CCC: .word 0x000005A4 _02070CD0: .word 0x00000B26 _02070CD4: .word 0x000005C8 _02070CD8: .word 0x000005DC thumb_func_start FUN_02070CDC FUN_02070CDC: ; 0x02070CDC push {r3-r7, lr} sub sp, #0x10 add r5, r0, #0x0 ldr r0, _02070D24 ; =0x00000B25 add r7, r1, #0x0 ldrb r4, [r5, r0] str r2, [sp, #0xc] add r6, r3, #0x0 _02070CEC: mov r0, #0x0 str r0, [sp, #0x0] str r4, [sp, #0x4] ldr r0, _02070D28 ; =0x00000808 str r6, [sp, #0x8] ldr r0, [r5, r0] ldr r2, [sp, #0xc] add r1, r7, #0x0 mov r3, #0x0 bl FUN_0201C638 add r4, r0, #0x0 cmp r4, #0x6 beq _02070D1C cmp r4, #0x7 beq _02070D1C cmp r4, #0xff beq _02070D1C add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0207007C cmp r0, #0x0 beq _02070CEC _02070D1C: add r0, r4, #0x0 add sp, #0x10 pop {r3-r7, pc} nop _02070D24: .word 0x00000B25 _02070D28: .word 0x00000808 thumb_func_start FUN_02070D2C FUN_02070D2C: ; 0x02070D2C push {r3-r7, lr} sub sp, #0x10 add r6, r0, #0x0 add r7, r1, #0x0 str r2, [sp, #0xc] add r5, r3, #0x0 mov r4, #0x0 _02070D3A: cmp r4, #0x6 beq _02070D70 ldrb r1, [r5, r4] add r0, r6, #0x0 bl FUN_0207007C cmp r0, #0x0 beq _02070D68 mov r3, #0x0 str r3, [sp, #0x0] ldrb r0, [r5, r4] ldr r2, [sp, #0xc] add r1, r7, #0x0 str r0, [sp, #0x4] mov r0, #0x4 str r0, [sp, #0x8] ldr r0, _02070D8C ; =0x00000808 ldr r0, [r6, r0] bl FUN_0201C638 add sp, #0x10 ldrb r0, [r5, r4] pop {r3-r7, pc} _02070D68: add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 b _02070D3A _02070D70: mov r3, #0x0 str r3, [sp, #0x0] str r3, [sp, #0x4] mov r0, #0x4 str r0, [sp, #0x8] ldr r0, _02070D8C ; =0x00000808 ldr r2, [sp, #0xc] ldr r0, [r6, r0] add r1, r7, #0x0 bl FUN_0201C638 mov r0, #0x0 add sp, #0x10 pop {r3-r7, pc} .balign 4 _02070D8C: .word 0x00000808 thumb_func_start FUN_02070D90 FUN_02070D90: ; 0x02070D90 push {r3-r5, lr} sub sp, #0x10 add r5, r0, #0x0 bl FUN_02071870 mov r1, #0x0 mvn r1, r1 cmp r0, r1 beq _02070E42 ldr r1, _02070E48 ; =0x00000B25 mov r2, #0x0 ldrb r4, [r5, r1] strb r0, [r5, r1] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_020713EC ldr r1, _02070E48 ; =0x00000B25 add r0, r5, #0x0 ldrb r1, [r5, r1] mov r2, #0x1 bl FUN_020713EC cmp r4, #0x6 bhs _02070DCC add r0, r5, #0x0 add r1, r4, #0x0 mov r2, #0x0 bl FUN_020717E8 _02070DCC: mov r3, #0x0 ldr r0, _02070E48 ; =0x00000B25 str r3, [sp, #0x0] ldrb r0, [r5, r0] add r1, sp, #0xc add r1, #0x1 str r0, [sp, #0x4] mov r0, #0x4 str r0, [sp, #0x8] ldr r0, _02070E4C ; =0x00000808 add r2, sp, #0xc ldr r0, [r5, r0] bl FUN_0201C638 ldr r0, _02070E50 ; =0x000005A4 ldr r1, _02070E48 ; =0x00000B25 ldr r0, [r5, r0] ldrb r1, [r5, r1] add r0, #0x21 ldrb r0, [r0, #0x0] bl FUN_020714BC add r1, r0, #0x0 ldr r0, _02070E54 ; =0x000005C8 ldr r0, [r5, r0] bl FUN_02020130 ldr r0, _02070E54 ; =0x000005C8 mov r1, #0x1 ldr r0, [r5, r0] bl FUN_020200A0 ldr r0, _02070E54 ; =0x000005C8 add r2, sp, #0xc ldrb r1, [r2, #0x1] ldrb r2, [r2, #0x0] ldr r0, [r5, r0] bl FUN_0200C6E4 mov r0, #0xb2 mov r1, #0x1 lsl r0, r0, #0x4 strb r1, [r5, r0] add r1, r0, #0x5 ldrb r1, [r5, r1] add r0, r0, #0x1 strb r1, [r5, r0] ldr r0, _02070E58 ; =0x000005E4 bl FUN_020054C8 cmp r4, #0x6 beq _02070E3C cmp r4, #0x7 beq _02070E3C ldr r0, _02070E5C ; =0x00000B26 strb r4, [r5, r0] _02070E3C: add sp, #0x10 mov r0, #0x1 pop {r3-r5, pc} _02070E42: mov r0, #0x0 add sp, #0x10 pop {r3-r5, pc} .balign 4 _02070E48: .word 0x00000B25 _02070E4C: .word 0x00000808 _02070E50: .word 0x000005A4 _02070E54: .word 0x000005C8 _02070E58: .word 0x000005E4 _02070E5C: .word 0x00000B26 thumb_func_start FUN_02070E60 FUN_02070E60: ; 0x02070E60 push {r4-r6, lr} sub sp, #0x10 add r6, r1, #0x0 add r5, r0, #0x0 add r0, r6, #0x0 add r0, #0xfa lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r0, #0x1 bhi _02070E80 ldr r0, _02070F04 ; =0x000005C8 mov r1, #0x0 ldr r0, [r5, r0] bl FUN_020200A0 b _02070ECC _02070E80: mov r3, #0x0 ldr r0, _02070F08 ; =0x00000B25 str r3, [sp, #0x0] ldrb r0, [r5, r0] add r1, sp, #0xc add r1, #0x1 str r0, [sp, #0x4] mov r0, #0x4 str r0, [sp, #0x8] ldr r0, _02070F0C ; =0x00000808 add r2, sp, #0xc ldr r0, [r5, r0] bl FUN_0201C638 ldr r0, _02070F10 ; =0x000005A4 add r1, r6, #0x0 ldr r0, [r5, r0] add r0, #0x21 ldrb r0, [r0, #0x0] bl FUN_020714BC add r1, r0, #0x0 ldr r0, _02070F04 ; =0x000005C8 ldr r0, [r5, r0] bl FUN_02020130 ldr r0, _02070F04 ; =0x000005C8 mov r1, #0x1 ldr r0, [r5, r0] bl FUN_020200A0 ldr r0, _02070F04 ; =0x000005C8 add r2, sp, #0xc ldrb r1, [r2, #0x1] ldrb r2, [r2, #0x0] ldr r0, [r5, r0] bl FUN_0200C6E4 _02070ECC: ldr r0, _02070F08 ; =0x00000B25 mov r2, #0x0 ldrb r4, [r5, r0] strb r6, [r5, r0] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_020713EC ldr r1, _02070F08 ; =0x00000B25 add r0, r5, #0x0 ldrb r1, [r5, r1] mov r2, #0x1 bl FUN_020713EC cmp r4, #0x6 bhs _02070EFE add r0, r5, #0x0 add r1, r4, #0x0 mov r2, #0x0 bl FUN_020717E8 ldr r0, [r5, #0x0] mov r1, #0x4 bl FUN_0201AC68 _02070EFE: add sp, #0x10 pop {r4-r6, pc} nop _02070F04: .word 0x000005C8 _02070F08: .word 0x00000B25 _02070F0C: .word 0x00000808 _02070F10: .word 0x000005A4 thumb_func_start FUN_02070F14 FUN_02070F14: ; 0x02070F14 push {r3-r4, lr} sub sp, #0x4 mov r1, #0xb2 add r4, r0, #0x0 lsl r1, r1, #0x4 ldrb r2, [r4, r1] cmp r2, #0x0 beq _02070F8A cmp r2, #0x1 beq _02070F30 cmp r2, #0x2 beq _02070F70 add sp, #0x4 pop {r3-r4, pc} _02070F30: add r0, r1, #0x1 ldrb r0, [r4, r0] add r1, sp, #0x0 add r1, #0x2 add r2, sp, #0x0 bl FUN_02071850 add r3, sp, #0x0 mov r1, #0x2 mov r2, #0x0 ldrsh r1, [r3, r1] ldrsh r2, [r3, r2] add r0, r4, #0x0 bl FUN_02073D1C ldr r1, _02070F90 ; =0x00000B21 add r0, r4, #0x0 ldrb r1, [r4, r1] mov r2, #0x2 bl FUN_020717E8 ldr r0, [r4, #0x0] mov r1, #0x4 bl FUN_0201AC68 mov r0, #0xb2 lsl r0, r0, #0x4 ldrb r1, [r4, r0] add sp, #0x4 add r1, r1, #0x1 strb r1, [r4, r0] pop {r3-r4, pc} _02070F70: add r1, r1, #0x1 ldrb r1, [r4, r1] mov r2, #0x1 bl FUN_020717E8 ldr r0, [r4, #0x0] mov r1, #0x4 bl FUN_0201AC68 mov r0, #0xb2 mov r1, #0x0 lsl r0, r0, #0x4 strb r1, [r4, r0] _02070F8A: add sp, #0x4 pop {r3-r4, pc} nop _02070F90: .word 0x00000B21 thumb_func_start FUN_02070F94 FUN_02070F94: ; 0x02070F94 push {r4, lr} add r4, r0, #0x0 ldr r0, _020710AC ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #0x1 tst r0, r1 beq _0207104A ldr r0, _020710B0 ; =0x00000B25 ldrb r1, [r4, r0] cmp r1, #0x6 bne _02070FAE mov r0, #0x4 pop {r4, pc} _02070FAE: cmp r1, #0x7 bne _02070FC6 ldr r0, _020710B4 ; =0x000005DC bl FUN_020054C8 ldr r0, _020710B8 ; =0x00000B23 ldrb r0, [r4, r0] lsl r0, r0, #0x18 lsr r0, r0, #0x1f bne _0207104A mov r0, #0x3 pop {r4, pc} _02070FC6: ldr r0, _020710BC ; =0x000005A4 ldr r2, [r4, r0] add r2, #0x20 ldrb r2, [r2, #0x0] cmp r2, #0x3 beq _02070FD6 cmp r2, #0x13 bne _02070FE0 _02070FD6: ldr r0, _020710B4 ; =0x000005DC bl FUN_020054C8 mov r0, #0x0 pop {r4, pc} _02070FE0: cmp r2, #0x14 beq _02070FE8 cmp r2, #0xe bne _0207100C _02070FE8: mov r0, #0x2c mul r0, r1 add r1, r4, r0 mov r0, #0x71 lsl r0, r0, #0x4 ldrb r0, [r1, r0] cmp r0, #0x0 bne _02071002 ldr r0, _020710B4 ; =0x000005DC bl FUN_020054C8 mov r0, #0x0 pop {r4, pc} _02071002: ldr r0, _020710C0 ; =0x000005F2 bl FUN_020054C8 mov r0, #0x5 pop {r4, pc} _0207100C: cmp r2, #0xf bne _0207103A mov r2, #0x2c mul r2, r1 mov r1, #0x71 add r2, r4, r2 lsl r1, r1, #0x4 ldrb r1, [r2, r1] cmp r1, #0x0 bne _02071030 add r0, #0x38 bl FUN_020054C8 add r0, r4, #0x0 bl FUN_020710C4 mov r0, #0x0 pop {r4, pc} _02071030: add r0, #0x4e bl FUN_020054C8 mov r0, #0x5 pop {r4, pc} _0207103A: add r0, #0x38 bl FUN_020054C8 add r0, r4, #0x0 bl FUN_020710C4 mov r0, #0x0 pop {r4, pc} _0207104A: ldr r0, _020710AC ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #0x2 tst r0, r1 beq _0207106E ldr r0, _020710B8 ; =0x00000B23 ldrb r0, [r4, r0] lsl r0, r0, #0x18 lsr r0, r0, #0x1f bne _0207106E ldr r0, _020710B4 ; =0x000005DC bl FUN_020054C8 ldr r0, _020710B0 ; =0x00000B25 mov r1, #0x7 strb r1, [r4, r0] mov r0, #0x3 pop {r4, pc} _0207106E: add r0, r4, #0x0 bl FUN_02070B04 cmp r0, #0x2 bne _020710AA ldr r1, _020710BC ; =0x000005A4 ldr r1, [r4, r1] add r1, #0x20 ldrb r1, [r1, #0x0] cmp r1, #0x14 beq _0207108E add r1, #0xf2 lsl r1, r1, #0x18 lsr r1, r1, #0x18 cmp r1, #0x1 bhi _020710AA _0207108E: ldr r1, _020710B0 ; =0x00000B25 ldrb r2, [r4, r1] mov r1, #0x2c mul r1, r2 add r2, r4, r1 mov r1, #0x71 lsl r1, r1, #0x4 ldrb r1, [r2, r1] cmp r1, #0x0 beq _020710AA ldr r0, _020710C0 ; =0x000005F2 bl FUN_020054C8 mov r0, #0x5 _020710AA: pop {r4, pc} .balign 4 _020710AC: .word 0x021C48B8 _020710B0: .word 0x00000B25 _020710B4: .word 0x000005DC _020710B8: .word 0x00000B23 _020710BC: .word 0x000005A4 _020710C0: .word 0x000005F2 thumb_func_start FUN_020710C4 FUN_020710C4: ; 0x020710C4 push {r3-r5, lr} add r5, r0, #0x0 mov r0, #0x81 lsl r0, r0, #0x2 add r0, r5, r0 mov r1, #0x1 bl FUN_0200D0E0 mov r0, #0xc mov r1, #0x8 bl FUN_02016998 add r4, r0, #0x0 ldr r0, _02071174 ; =0x000005A4 ldr r0, [r5, r0] add r0, #0x20 ldrb r0, [r0, #0x0] cmp r0, #0xf bgt _020710FC bge _02071124 cmp r0, #0x2 bgt _0207113C cmp r0, #0x0 blt _0207113C beq _0207110C cmp r0, #0x2 beq _02071118 b _0207113C _020710FC: cmp r0, #0x12 bgt _0207113C cmp r0, #0x11 blt _0207113C beq _02071118 cmp r0, #0x12 beq _02071130 b _0207113C _0207110C: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0207117C add r2, r0, #0x0 b _02071146 _02071118: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_020712F0 add r2, r0, #0x0 b _02071146 _02071124: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02071274 add r2, r0, #0x0 b _02071146 _02071130: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02071280 add r2, r0, #0x0 b _02071146 _0207113C: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_020712B4 add r2, r0, #0x0 _02071146: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02072844 mov r0, #0xc add r1, r4, #0x0 bl FUN_02016A8C add r0, r5, #0x0 bl FUN_0207295C mov r1, #0x0 add r0, r5, #0x0 mvn r1, r1 mov r2, #0x1 bl FUN_020731D4 ldr r0, _02071178 ; =0x000005C8 mov r1, #0x1 ldr r0, [r5, r0] bl FUN_0200C664 pop {r3-r5, pc} .balign 4 _02071174: .word 0x000005A4 _02071178: .word 0x000005C8 thumb_func_start FUN_0207117C FUN_0207117C: ; 0x0207117C push {r4-r7, lr} sub sp, #0xc str r1, [sp, #0x4] ldr r1, _02071268 ; =0x000005A4 str r0, [sp, #0x0] ldr r0, [r0, r1] ldr r2, _0207126C ; =0x00000B25 ldr r1, [sp, #0x0] ldr r0, [r0, #0x0] ldrb r1, [r1, r2] bl FUN_0206B9B0 str r0, [sp, #0x8] ldr r0, [sp, #0x4] mov r1, #0x1 strb r1, [r0, #0x0] mov r4, #0x0 add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 ldr r1, _02071268 ; =0x000005A4 ldr r0, [sp, #0x0] ldr r0, [r0, r1] ldr r0, [r0, #0x1c] bl FUN_02060144 cmp r0, #0x0 bne _02071258 ldr r1, _0207126C ; =0x00000B25 ldr r0, [sp, #0x0] ldrb r1, [r0, r1] mov r0, #0x2c add r2, r1, #0x0 mul r2, r0 ldr r0, [sp, #0x0] add r1, r0, r2 mov r0, #0x71 lsl r0, r0, #0x4 ldrb r0, [r1, r0] cmp r0, #0x0 bne _0207124C add r6, r4, #0x0 _020711D0: add r1, r6, #0x0 ldr r0, [sp, #0x8] add r1, #0x36 mov r2, #0x0 bl FUN_020671BC lsl r0, r0, #0x10 lsr r7, r0, #0x10 beq _02071210 add r0, r7, #0x0 bl FUN_02071948 cmp r0, #0xff beq _02071206 ldr r1, [sp, #0x4] add r2, r4, #0x0 strb r0, [r1, r5] add r0, r5, #0x1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 ldr r0, [sp, #0x0] add r1, r7, #0x0 bl FUN_020727FC add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 _02071206: add r0, r6, #0x1 lsl r0, r0, #0x18 lsr r6, r0, #0x18 cmp r6, #0x4 blo _020711D0 _02071210: ldr r0, [sp, #0x4] mov r1, #0x0 strb r1, [r0, r5] add r0, r5, #0x1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 ldr r1, _0207126C ; =0x00000B25 ldr r0, [sp, #0x0] ldrb r1, [r0, r1] mov r0, #0x2c add r2, r1, #0x0 mul r2, r0 ldr r0, [sp, #0x0] add r1, r0, r2 ldr r0, _02071270 ; =0x0000070C ldrh r0, [r1, r0] bl FUN_0206EA98 cmp r0, #0x1 bne _0207123E mov r1, #0x5 ldr r0, [sp, #0x4] b _02071242 _0207123E: ldr r0, [sp, #0x4] mov r1, #0x2 _02071242: strb r1, [r0, r5] add r0, r5, #0x1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 b _02071258 _0207124C: ldr r0, [sp, #0x4] add r1, r4, #0x0 strb r1, [r0, r5] add r0, r5, #0x1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 _02071258: ldr r0, [sp, #0x4] mov r1, #0x9 strb r1, [r0, r5] add r0, r5, #0x1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 add sp, #0xc pop {r4-r7, pc} .balign 4 _02071268: .word 0x000005A4 _0207126C: .word 0x00000B25 _02071270: .word 0x0000070C thumb_func_start FUN_02071274 FUN_02071274: ; 0x02071274 mov r0, #0xe strb r0, [r1, #0x0] mov r0, #0x9 strb r0, [r1, #0x1] mov r0, #0x2 bx lr thumb_func_start FUN_02071280 FUN_02071280: ; 0x02071280 ldr r2, _020712B0 ; =0x00000B25 ldrb r3, [r0, r2] mov r2, #0x2c mul r2, r3 add r2, r0, r2 mov r0, #0x71 lsl r0, r0, #0x4 ldrb r0, [r2, r0] cmp r0, #0x0 bne _020712A4 mov r0, #0x8 strb r0, [r1, #0x0] mov r0, #0x1 strb r0, [r1, #0x1] mov r0, #0x9 strb r0, [r1, #0x2] mov r0, #0x3 bx lr _020712A4: mov r0, #0x1 strb r0, [r1, #0x0] mov r0, #0x9 strb r0, [r1, #0x1] mov r0, #0x2 bx lr .balign 4 _020712B0: .word 0x00000B25 thumb_func_start FUN_020712B4 FUN_020712B4: ; 0x020712B4 ldr r2, _020712E8 ; =0x00000B25 ldrb r3, [r0, r2] mov r2, #0x2c mul r2, r3 add r2, r0, r2 ldr r0, _020712EC ; =0x0000070E ldrh r0, [r2, r0] lsl r0, r0, #0x10 lsr r0, r0, #0x1f cmp r0, #0x1 bne _020712DA mov r0, #0xd strb r0, [r1, #0x0] mov r0, #0x1 strb r0, [r1, #0x1] mov r0, #0x9 strb r0, [r1, #0x2] mov r0, #0x3 bx lr _020712DA: mov r0, #0x1 strb r0, [r1, #0x0] mov r0, #0x9 strb r0, [r1, #0x1] mov r0, #0x2 bx lr nop _020712E8: .word 0x00000B25 _020712EC: .word 0x0000070E thumb_func_start FUN_020712F0 FUN_020712F0: ; 0x020712F0 push {r4, lr} add r4, r1, #0x0 ldr r1, _0207133C ; =0x00000B25 ldrb r1, [r0, r1] bl FUN_02071340 cmp r0, #0x0 beq _0207130A cmp r0, #0x1 beq _02071316 cmp r0, #0x2 beq _02071326 b _02071336 _0207130A: mov r0, #0x1 strb r0, [r4, #0x0] mov r0, #0x9 strb r0, [r4, #0x1] mov r0, #0x2 pop {r4, pc} _02071316: mov r0, #0xb strb r0, [r4, #0x0] mov r0, #0x1 strb r0, [r4, #0x1] mov r0, #0x9 strb r0, [r4, #0x2] mov r0, #0x3 pop {r4, pc} _02071326: mov r0, #0xc strb r0, [r4, #0x0] mov r0, #0x1 strb r0, [r4, #0x1] mov r0, #0x9 strb r0, [r4, #0x2] mov r0, #0x3 pop {r4, pc} _02071336: mov r0, #0x0 pop {r4, pc} nop _0207133C: .word 0x00000B25 thumb_func_start FUN_02071340 FUN_02071340: ; 0x02071340 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, _020713E0 ; =0x000005A4 add r4, r1, #0x0 ldr r2, [r5, r0] ldr r0, [r2, #0x14] cmp r0, #0x0 beq _0207136E ldr r0, [r2, #0x0] bl FUN_0206B9B0 add r1, r0, #0x0 ldr r0, _020713E0 ; =0x000005A4 ldr r2, _020713E4 ; =0x00000B34 ldr r0, [r5, r0] ldr r2, [r5, r2] ldr r0, [r0, #0x14] bl FUN_0206BB84 cmp r0, #0x0 bne _0207136E mov r0, #0x0 pop {r4-r6, pc} _0207136E: ldr r0, _020713E0 ; =0x000005A4 ldr r0, [r5, r0] add r0, #0x20 ldrb r0, [r0, #0x0] cmp r0, #0x11 bne _02071390 mov r0, #0x2c mul r0, r4 add r1, r5, r0 ldr r0, _020713E8 ; =0x00000704 ldrh r0, [r1, r0] bl FUN_0206A964 cmp r0, #0x1 bne _02071390 mov r0, #0x0 pop {r4-r6, pc} _02071390: ldr r1, _020713E0 ; =0x000005A4 mov r0, #0x0 ldr r2, [r5, r1] add r1, r2, #0x0 add r1, #0x32 ldrb r1, [r1, #0x0] lsl r1, r1, #0x18 lsr r3, r1, #0x1c beq _020713BC add r1, r4, #0x1 _020713A4: add r6, r2, r0 add r6, #0x2c ldrb r6, [r6, #0x0] cmp r1, r6 bne _020713B2 mov r0, #0x2 pop {r4-r6, pc} _020713B2: add r0, r0, #0x1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r0, r3 blo _020713A4 _020713BC: mov r0, #0x2c mul r0, r4 add r3, r5, r0 mov r0, #0x71 lsl r0, r0, #0x4 ldrb r1, [r3, r0] cmp r1, #0x1 beq _020713D8 sub r0, r0, #0x6 add r2, #0x33 ldrh r1, [r3, r0] ldrb r0, [r2, #0x0] cmp r1, r0 ble _020713DC _020713D8: mov r0, #0x0 pop {r4-r6, pc} _020713DC: mov r0, #0x1 pop {r4-r6, pc} .balign 4 _020713E0: .word 0x000005A4 _020713E4: .word 0x00000B34 _020713E8: .word 0x00000704 thumb_func_start FUN_020713EC FUN_020713EC: ; 0x020713EC push {r4-r6, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r6, r2, #0x0 cmp r4, #0x6 bne _02071426 mov r0, #0x5d lsl r0, r0, #0x4 ldr r0, [r5, r0] bl FUN_020201DC lsl r0, r0, #0x18 lsr r1, r0, #0x18 cmp r6, #0x0 bne _02071410 mov r0, #0x2 and r0, r1 b _02071416 _02071410: mov r0, #0x2 and r0, r1 add r0, r0, #0x1 _02071416: lsl r0, r0, #0x18 lsr r1, r0, #0x18 mov r0, #0x5d lsl r0, r0, #0x4 ldr r0, [r5, r0] bl FUN_02020130 pop {r4-r6, pc} _02071426: cmp r4, #0x7 bne _02071454 ldr r0, _020714B4 ; =0x000005D4 ldr r0, [r5, r0] bl FUN_020201DC lsl r0, r0, #0x18 lsr r1, r0, #0x18 cmp r6, #0x0 bne _02071440 mov r0, #0x2 and r0, r1 b _02071446 _02071440: mov r0, #0x2 and r0, r1 add r0, r0, #0x1 _02071446: lsl r0, r0, #0x18 lsr r1, r0, #0x18 ldr r0, _020714B4 ; =0x000005D4 ldr r0, [r5, r0] bl FUN_02020130 pop {r4-r6, pc} _02071454: cmp r6, #0x0 ldr r1, _020714B8 ; =0x00000716 bne _02071482 mov r0, #0x2c add r3, r5, r1 mul r0, r4 ldrsh r2, [r3, r0] add r1, r1, #0x2 sub r2, r2, #0x2 strh r2, [r3, r0] add r2, r5, r1 ldrsh r1, [r2, r0] sub r1, r1, #0x2 strh r1, [r2, r0] lsl r0, r4, #0x2 add r1, r5, r0 mov r0, #0x5b lsl r0, r0, #0x4 ldr r0, [r1, r0] mov r1, #0x0 bl FUN_02020130 b _020714A8 _02071482: mov r0, #0x2c add r3, r5, r1 mul r0, r4 ldrsh r2, [r3, r0] add r1, r1, #0x2 add r2, r2, #0x2 strh r2, [r3, r0] add r2, r5, r1 ldrsh r1, [r2, r0] add r1, r1, #0x2 strh r1, [r2, r0] lsl r0, r4, #0x2 add r1, r5, r0 mov r0, #0x5b lsl r0, r0, #0x4 ldr r0, [r1, r0] mov r1, #0x1 bl FUN_02020130 _020714A8: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_020709FC pop {r4-r6, pc} nop _020714B4: .word 0x000005D4 _020714B8: .word 0x00000716 thumb_func_start FUN_020714BC FUN_020714BC: ; 0x020714BC cmp r1, #0x0 beq _020714C8 cmp r0, #0x0 beq _020714CC cmp r1, #0x1 bne _020714CC _020714C8: mov r0, #0x1 bx lr _020714CC: mov r0, #0x0 bx lr thumb_func_start FUN_020714D0 FUN_020714D0: ; 0x020714D0 push {r4, lr} ldr r1, _02071550 ; =0x021C48B8 add r4, r0, #0x0 ldr r2, [r1, #0x48] mov r1, #0x1 tst r1, r2 beq _0207150C ldr r0, _02071554 ; =0x000005DC bl FUN_020054C8 ldr r0, _02071558 ; =0x00000B25 ldrb r1, [r4, r0] cmp r1, #0x6 bhs _020714F8 sub r0, r0, #0x2 ldrb r0, [r4, r0] lsl r0, r0, #0x1a lsr r0, r0, #0x1a cmp r1, r0 bne _02071502 _020714F8: add r0, r4, #0x0 bl FUN_02074538 mov r0, #0x3 pop {r4, pc} _02071502: add r0, r4, #0x0 bl FUN_02074584 mov r0, #0x0 pop {r4, pc} _0207150C: mov r1, #0x2 tst r1, r2 beq _02071522 ldr r0, _02071554 ; =0x000005DC bl FUN_020054C8 add r0, r4, #0x0 bl FUN_02074538 mov r0, #0x3 pop {r4, pc} _02071522: bl FUN_02070B04 cmp r0, #0x2 bne _0207154C ldr r0, _02071558 ; =0x00000B25 ldrb r1, [r4, r0] sub r0, r0, #0x2 ldrb r0, [r4, r0] lsl r0, r0, #0x1a lsr r0, r0, #0x1a cmp r1, r0 bne _02071544 add r0, r4, #0x0 bl FUN_02074538 mov r0, #0x3 pop {r4, pc} _02071544: add r0, r4, #0x0 bl FUN_02074584 mov r0, #0x0 _0207154C: pop {r4, pc} nop _02071550: .word 0x021C48B8 _02071554: .word 0x000005DC _02071558: .word 0x00000B25 thumb_func_start FUN_0207155C FUN_0207155C: ; 0x0207155C push {r3-r5, lr} sub sp, #0x8 ldr r1, _02071738 ; =0x000005A4 add r4, r0, #0x0 ldr r3, [r4, r1] mov r0, #0x0 add r1, r3, #0x0 add r1, #0x32 ldrb r1, [r1, #0x0] lsl r1, r1, #0x1c lsr r1, r1, #0x1c beq _02071606 _02071574: add r2, r3, r0 add r2, #0x2c ldrb r2, [r2, #0x0] cmp r2, #0x0 bne _020715FC add r3, #0x32 ldrb r0, [r3, #0x0] lsl r0, r0, #0x18 lsr r0, r0, #0x1c cmp r0, #0x6 bhi _020715E0 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02071596: ; jump table (using 16-bit offset) .short _020715E0 - _02071596 - 2; case 0 .short _020715E0 - _02071596 - 2; case 1 .short _020715A4 - _02071596 - 2; case 2 .short _020715B0 - _02071596 - 2; case 3 .short _020715BC - _02071596 - 2; case 4 .short _020715C8 - _02071596 - 2; case 5 .short _020715D4 - _02071596 - 2; case 6 _020715A4: add r0, r4, #0x0 mov r1, #0x6b mov r2, #0x1 bl FUN_020731E8 b _020715EA _020715B0: add r0, r4, #0x0 mov r1, #0x77 mov r2, #0x1 bl FUN_020731E8 b _020715EA _020715BC: add r0, r4, #0x0 mov r1, #0x78 mov r2, #0x1 bl FUN_020731E8 b _020715EA _020715C8: add r0, r4, #0x0 mov r1, #0x79 mov r2, #0x1 bl FUN_020731E8 b _020715EA _020715D4: add r0, r4, #0x0 mov r1, #0x7a mov r2, #0x1 bl FUN_020731E8 b _020715EA _020715E0: add r0, r4, #0x0 mov r1, #0x1d mov r2, #0x1 bl FUN_020731E8 _020715EA: ldr r0, _0207173C ; =0x00000B22 mov r1, #0x13 strb r1, [r4, r0] ldr r0, _02071740 ; =0x000005F2 bl FUN_020054C8 add sp, #0x8 mov r0, #0x14 pop {r3-r5, pc} _020715FC: add r0, r0, #0x1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r0, r1 blo _02071574 _02071606: ldr r0, [r3, #0x14] cmp r0, #0x0 beq _020716CA ldr r2, _02071744 ; =0x00000B34 ldr r1, [r3, #0x0] ldr r2, [r4, r2] add r3, #0x2c bl FUN_0206BC60 cmp r0, #0x3 bhi _020716CA add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02071628: ; jump table (using 16-bit offset) .short _020716CA - _02071628 - 2; case 0 .short _02071630 - _02071628 - 2; case 1 .short _02071692 - _02071628 - 2; case 2 .short _020716AE - _02071628 - 2; case 3 _02071630: ldr r0, _02071748 ; =0x0000069C mov r1, #0xb8 ldr r0, [r4, r0] bl FUN_0200A914 add r5, r0, #0x0 ldr r0, _02071738 ; =0x000005A4 mov r1, #0x3 ldr r0, [r4, r0] ldr r0, [r0, #0x14] bl FUN_02023B0C mov r1, #0x0 add r2, r0, #0x0 str r1, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] mov r0, #0x6a lsl r0, r0, #0x4 ldr r0, [r4, r0] mov r3, #0x3 bl FUN_0200AD38 mov r1, #0x6a lsl r1, r1, #0x4 ldr r0, [r4, r1] add r1, r1, #0x4 ldr r1, [r4, r1] add r2, r5, #0x0 bl FUN_0200B7B8 add r0, r5, #0x0 bl FUN_02021A20 mov r1, #0x0 add r0, r4, #0x0 mvn r1, r1 mov r2, #0x1 bl FUN_020731E8 ldr r0, _0207173C ; =0x00000B22 mov r1, #0x13 strb r1, [r4, r0] ldr r0, _02071740 ; =0x000005F2 bl FUN_020054C8 add sp, #0x8 mov r0, #0x14 pop {r3-r5, pc} _02071692: add r0, r4, #0x0 mov r1, #0xb6 mov r2, #0x1 bl FUN_020731E8 ldr r0, _0207173C ; =0x00000B22 mov r1, #0x13 strb r1, [r4, r0] ldr r0, _02071740 ; =0x000005F2 bl FUN_020054C8 add sp, #0x8 mov r0, #0x14 pop {r3-r5, pc} _020716AE: add r0, r4, #0x0 mov r1, #0xb7 mov r2, #0x1 bl FUN_020731E8 ldr r0, _0207173C ; =0x00000B22 mov r1, #0x13 strb r1, [r4, r0] ldr r0, _02071740 ; =0x000005F2 bl FUN_020054C8 add sp, #0x8 mov r0, #0x14 pop {r3-r5, pc} _020716CA: ldr r0, _02071738 ; =0x000005A4 ldr r0, [r4, r0] add r0, #0x20 ldrb r0, [r0, #0x0] cmp r0, #0x11 bne _02071722 add r0, r4, #0x0 bl FUN_0207174C cmp r0, #0x0 beq _02071722 cmp r0, #0x1 beq _020716EA cmp r0, #0x2 beq _02071706 b _02071722 _020716EA: add r0, r4, #0x0 mov r1, #0xb6 mov r2, #0x1 bl FUN_020731E8 ldr r0, _0207173C ; =0x00000B22 mov r1, #0x13 strb r1, [r4, r0] ldr r0, _02071740 ; =0x000005F2 bl FUN_020054C8 add sp, #0x8 mov r0, #0x14 pop {r3-r5, pc} _02071706: add r0, r4, #0x0 mov r1, #0xb7 mov r2, #0x1 bl FUN_020731E8 ldr r0, _0207173C ; =0x00000B22 mov r1, #0x13 strb r1, [r4, r0] ldr r0, _02071740 ; =0x000005F2 bl FUN_020054C8 add sp, #0x8 mov r0, #0x14 pop {r3-r5, pc} _02071722: ldr r0, _02071738 ; =0x000005A4 mov r2, #0x0 ldr r1, [r4, r0] add r0, #0x38 add r1, #0x23 strb r2, [r1, #0x0] bl FUN_020054C8 mov r0, #0x1b add sp, #0x8 pop {r3-r5, pc} .balign 4 _02071738: .word 0x000005A4 _0207173C: .word 0x00000B22 _02071740: .word 0x000005F2 _02071744: .word 0x00000B34 _02071748: .word 0x0000069C thumb_func_start FUN_0207174C FUN_0207174C: ; 0x0207174C push {r4-r7} add r5, r0, #0x0 mov r0, #0x0 mov r12, r0 ldr r0, _020717E0 ; =0x000005A4 ldr r4, [r5, r0] _02071758: mov r0, r12 add r0, r4, r0 add r0, #0x2c ldrb r0, [r0, #0x0] cmp r0, #0x0 beq _020717DA mov r0, r12 add r0, r0, #0x1 lsl r0, r0, #0x18 lsr r3, r0, #0x18 cmp r3, #0x6 bhs _020717CC mov r0, r12 add r7, r4, r0 _02071774: add r0, r4, r3 add r0, #0x2c ldrb r0, [r0, #0x0] cmp r0, #0x0 beq _020717CC add r0, r4, r3 add r0, #0x2c ldrb r1, [r0, #0x0] mov r0, #0x2c ldr r6, _020717E4 ; =0x000006D8 mul r0, r1 add r2, r5, r0 add r0, r7, #0x0 add r0, #0x2c ldrb r1, [r0, #0x0] mov r0, #0x2c ldrh r6, [r2, r6] mul r0, r1 add r1, r5, r0 ldr r0, _020717E4 ; =0x000006D8 ldrh r0, [r1, r0] cmp r0, r6 bne _020717A8 mov r0, #0x1 pop {r4-r7} bx lr _020717A8: mov r0, #0x6e lsl r0, r0, #0x4 ldrh r0, [r1, r0] cmp r0, #0x0 beq _020717C2 mov r1, #0x6e lsl r1, r1, #0x4 ldrh r1, [r2, r1] cmp r0, r1 bne _020717C2 mov r0, #0x2 pop {r4-r7} bx lr _020717C2: add r0, r3, #0x1 lsl r0, r0, #0x18 lsr r3, r0, #0x18 cmp r3, #0x6 blo _02071774 _020717CC: mov r0, r12 add r0, r0, #0x1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 mov r12, r0 cmp r0, #0x5 blo _02071758 _020717DA: mov r0, #0x0 pop {r4-r7} bx lr .balign 4 _020717E0: .word 0x000005A4 _020717E4: .word 0x000006D8 thumb_func_start FUN_020717E8 FUN_020717E8: ; 0x020717E8 push {r3-r7, lr} ldr r0, [r0, #0x0] add r5, r1, #0x0 add r4, r2, #0x0 mov r1, #0x4 bl FUN_0201886C lsl r1, r5, #0x1 mov r3, #0x19 add r5, r4, #0x0 mul r5, r3 ldr r3, _02071844 ; =0x00001005 mov r2, #0x0 add r3, r5, r3 lsl r3, r3, #0x10 lsr r4, r3, #0x10 ldr r3, _02071848 ; =0x020F944C ldrb r3, [r3, r1] lsl r3, r3, #0x1 add r0, r0, r3 mov r12, r0 ldr r0, _0207184C ; =0x020F944D ldrb r7, [r0, r1] _02071816: lsl r0, r2, #0x2 add r5, r2, r0 add r0, r7, r2 lsl r1, r0, #0x6 mov r0, r12 mov r3, #0x0 add r6, r0, r1 _02071824: add r0, r3, r5 add r1, r4, r0 lsl r0, r3, #0x1 strh r1, [r6, r0] add r0, r3, #0x1 lsl r0, r0, #0x18 lsr r3, r0, #0x18 cmp r3, #0x5 blo _02071824 add r0, r2, #0x1 lsl r0, r0, #0x18 lsr r2, r0, #0x18 cmp r2, #0x5 blo _02071816 pop {r3-r7, pc} nop _02071844: .word 0x00001005 _02071848: .word 0x020F944C _0207184C: .word 0x020F944D thumb_func_start FUN_02071850 FUN_02071850: ; 0x02071850 lsl r3, r0, #0x1 ldr r0, _02071868 ; =0x020F944C ldrb r0, [r0, r3] lsl r0, r0, #0x3 add r0, #0x14 strh r0, [r1, #0x0] ldr r0, _0207186C ; =0x020F944D ldrb r0, [r0, r3] lsl r0, r0, #0x3 add r0, #0x14 strh r0, [r2, #0x0] bx lr .balign 4 _02071868: .word 0x020F944C _0207186C: .word 0x020F944D thumb_func_start FUN_02071870 FUN_02071870: ; 0x02071870 push {r3-r5, lr} sub sp, #0x8 add r5, r0, #0x0 bl FUN_0207248C cmp r0, #0x0 bne _02071886 mov r0, #0x0 add sp, #0x8 mvn r0, r0 pop {r3-r5, pc} _02071886: ldr r0, _020718C0 ; =0x020F94B8 bl FUN_02020988 add r4, r0, #0x0 mov r0, #0x0 mvn r0, r0 cmp r4, r0 beq _020718BA ldr r1, _020718C4 ; =0x0000FFFE add r0, sp, #0x4 strh r1, [r0, #0x0] add r0, sp, #0x4 str r0, [sp, #0x0] ldr r3, _020718C8 ; =0x021C48F8 ldr r0, [r5, #0x0] ldrh r2, [r3, #0x1c] ldrh r3, [r3, #0x1e] mov r1, #0x4 bl FUN_0201AFBC cmp r0, #0x0 bne _020718BA mov r0, #0x0 add sp, #0x8 mvn r0, r0 pop {r3-r5, pc} _020718BA: add r0, r4, #0x0 add sp, #0x8 pop {r3-r5, pc} .balign 4 _020718C0: .word 0x020F94B8 _020718C4: .word 0x0000FFFE _020718C8: .word 0x021C48F8 thumb_func_start FUN_020718CC FUN_020718CC: ; 0x020718CC push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _0207193C ; =0x000006FC add r4, r1, #0x0 ldr r0, [r5, r0] bl FUN_02001C78 add r2, r0, #0x0 mov r0, #0x1 mvn r0, r0 cmp r2, r0 beq _020718EC add r0, r0, #0x1 cmp r2, r0 beq _02071938 b _02071932 _020718EC: mov r0, #0x85 lsl r0, r0, #0x2 add r0, r5, r0 mov r1, #0x1 bl FUN_0200D0E0 add r0, r5, #0x0 bl FUN_02073DB4 ldr r0, _02071940 ; =0x000005A4 ldr r0, [r5, r0] add r0, #0x20 ldrb r0, [r0, #0x0] cmp r0, #0x2 beq _0207190E cmp r0, #0x11 bne _0207191A _0207190E: add r0, r5, #0x0 mov r1, #0x22 mov r2, #0x1 bl FUN_020731C0 b _02071924 _0207191A: add r0, r5, #0x0 mov r1, #0x1d mov r2, #0x1 bl FUN_020731C0 _02071924: ldr r0, _02071944 ; =0x000005C8 mov r1, #0x0 ldr r0, [r5, r0] bl FUN_0200C664 mov r0, #0x1 pop {r3-r5, pc} _02071932: add r0, r5, #0x0 add r1, r4, #0x0 blx r2 _02071938: mov r0, #0x0 pop {r3-r5, pc} .balign 4 _0207193C: .word 0x000006FC _02071940: .word 0x000005A4 _02071944: .word 0x000005C8 thumb_func_start FUN_02071948 FUN_02071948: ; 0x02071948 ldr r2, _0207196C ; =0x020F9544 mov r3, #0x0 _0207194C: lsl r1, r3, #0x1 ldrh r1, [r2, r1] cmp r0, r1 bne _0207195C add r3, #0xf lsl r0, r3, #0x18 lsr r0, r0, #0x18 bx lr _0207195C: add r1, r3, #0x1 lsl r1, r1, #0x18 lsr r3, r1, #0x18 cmp r3, #0xf blo _0207194C mov r0, #0xff bx lr nop _0207196C: .word 0x020F9544 thumb_func_start FUN_02071970 FUN_02071970: ; 0x02071970 push {r4-r6, lr} sub sp, #0x8 ldr r1, _02071C18 ; =0x00000B2A add r4, r0, #0x0 ldrh r2, [r4, r1] cmp r2, #0x4 bhi _02071A7A add r2, r2, r2 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _0207198A: ; jump table (using 16-bit offset) .short _02071994 - _0207198A - 2; case 0 .short _02071AD2 - _0207198A - 2; case 1 .short _02071B0C - _0207198A - 2; case 2 .short _02071B34 - _0207198A - 2; case 3 .short _02071BE0 - _0207198A - 2; case 4 _02071994: ldr r2, _02071C1C ; =0x021C48B8 ldr r3, [r2, #0x48] mov r2, #0x1 tst r2, r3 beq _02071A26 sub r1, r1, #0x5 ldrb r1, [r4, r1] cmp r1, #0x6 blo _020719B8 ldr r0, _02071C20 ; =0x000005DC bl FUN_020054C8 add r0, r4, #0x0 bl FUN_02074538 add sp, #0x8 mov r0, #0x1 pop {r4-r6, pc} _020719B8: bl FUN_02071C48 cmp r0, #0x0 beq _020719CA cmp r0, #0x1 beq _02071A08 cmp r0, #0x2 beq _02071A1A b _02071A26 _020719CA: ldr r0, _02071C24 ; =0x000005EC bl FUN_020054C8 ldr r0, _02071C28 ; =0x000005C8 mov r1, #0x1 ldr r0, [r4, r0] bl FUN_0200C664 ldr r0, _02071C2C ; =0x00000B25 mov r1, #0x2c ldrb r2, [r4, r0] mul r1, r2 add r3, r4, r1 ldr r1, _02071C30 ; =0x00000708 ldrh r2, [r3, r1] sub r1, r1, #0x2 ldrh r1, [r3, r1] sub r2, r2, r1 add r1, r0, #0x3 ldrh r1, [r4, r1] cmp r2, r1 bge _020719FA add r0, r0, #0x3 strh r2, [r4, r0] _020719FA: ldr r0, _02071C18 ; =0x00000B2A mov r1, #0x2 strh r1, [r4, r0] mov r1, #0x0 add r0, r0, #0x2 strh r1, [r4, r0] b _02071A26 _02071A08: ldr r0, _02071C20 ; =0x000005DC bl FUN_020054C8 ldr r0, _02071C18 ; =0x00000B2A mov r1, #0x1 strh r1, [r4, r0] add sp, #0x8 mov r0, #0x14 pop {r4-r6, pc} _02071A1A: ldr r0, _02071C34 ; =0x000005F2 bl FUN_020054C8 add sp, #0x8 mov r0, #0x1a pop {r4-r6, pc} _02071A26: ldr r0, _02071C1C ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #0x2 tst r0, r1 beq _02071A42 ldr r0, _02071C20 ; =0x000005DC bl FUN_020054C8 add r0, r4, #0x0 bl FUN_02074538 add sp, #0x8 mov r0, #0x1 pop {r4-r6, pc} _02071A42: add r0, r4, #0x0 bl FUN_02070B04 cmp r0, #0x2 bne _02071A7A ldr r0, _02071C2C ; =0x00000B25 ldrb r1, [r4, r0] sub r0, r0, #0x2 ldrb r0, [r4, r0] lsl r0, r0, #0x1a lsr r0, r0, #0x1a cmp r1, r0 bne _02071A68 add r0, r4, #0x0 bl FUN_02074538 add sp, #0x8 mov r0, #0x1 pop {r4-r6, pc} _02071A68: add r0, r4, #0x0 bl FUN_02071C48 cmp r0, #0x0 beq _02071A7C cmp r0, #0x1 beq _02071ABA cmp r0, #0x2 beq _02071AC6 _02071A7A: b _02071C12 _02071A7C: ldr r0, _02071C24 ; =0x000005EC bl FUN_020054C8 ldr r0, _02071C28 ; =0x000005C8 mov r1, #0x1 ldr r0, [r4, r0] bl FUN_0200C664 ldr r0, _02071C2C ; =0x00000B25 mov r1, #0x2c ldrb r2, [r4, r0] mul r1, r2 add r3, r4, r1 ldr r1, _02071C30 ; =0x00000708 ldrh r2, [r3, r1] sub r1, r1, #0x2 ldrh r1, [r3, r1] sub r2, r2, r1 add r1, r0, #0x3 ldrh r1, [r4, r1] cmp r2, r1 bge _02071AAC add r0, r0, #0x3 strh r2, [r4, r0] _02071AAC: ldr r0, _02071C18 ; =0x00000B2A mov r1, #0x2 strh r1, [r4, r0] mov r1, #0x0 add r0, r0, #0x2 strh r1, [r4, r0] b _02071C12 _02071ABA: ldr r0, _02071C18 ; =0x00000B2A mov r1, #0x1 strh r1, [r4, r0] add sp, #0x8 mov r0, #0x14 pop {r4-r6, pc} _02071AC6: ldr r0, _02071C34 ; =0x000005F2 bl FUN_020054C8 add sp, #0x8 mov r0, #0x1a pop {r4-r6, pc} _02071AD2: ldr r0, _02071C1C ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #0x3 tst r0, r1 bne _02071ADE b _02071C12 _02071ADE: ldr r0, _02071C20 ; =0x000005DC bl FUN_020054C8 mov r0, #0x89 lsl r0, r0, #0x2 add r0, r4, r0 mov r1, #0x1 bl FUN_0200D0E0 ldr r0, _02071C28 ; =0x000005C8 mov r1, #0x0 ldr r0, [r4, r0] bl FUN_0200C664 add r0, r4, #0x0 mov r1, #0x24 mov r2, #0x1 bl FUN_020731C0 ldr r0, _02071C18 ; =0x00000B2A mov r1, #0x0 strh r1, [r4, r0] b _02071C12 _02071B0C: sub r1, r1, #0x7 ldrb r1, [r4, r1] mov r2, #0x0 mvn r2, r2 lsl r1, r1, #0x1a lsr r1, r1, #0x1a bl FUN_02071CB4 cmp r0, #0x1 bne _02071C12 ldr r0, _02071C24 ; =0x000005EC bl FUN_020054C8 ldr r0, _02071C18 ; =0x00000B2A mov r1, #0x3 strh r1, [r4, r0] mov r1, #0x0 add r0, r0, #0x2 strh r1, [r4, r0] b _02071C12 _02071B34: sub r1, r1, #0x5 ldrb r1, [r4, r1] mov r2, #0x1 bl FUN_02071CB4 cmp r0, #0x1 bne _02071C12 ldr r0, _02071C38 ; =0x000005A4 ldr r1, _02071C2C ; =0x00000B25 ldr r0, [r4, r0] ldrb r1, [r4, r1] ldr r0, [r0, #0x0] bl FUN_0206B9B0 add r6, r0, #0x0 ldr r0, _02071C3C ; =0x0000069C mov r1, #0x40 ldr r0, [r4, r0] bl FUN_0200A914 add r5, r0, #0x0 add r0, r6, #0x0 bl FUN_020690E4 add r2, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 ldr r0, [r4, r0] mov r1, #0x0 bl FUN_0200ACF8 mov r0, #0x0 str r0, [sp, #0x0] mov r1, #0x1 mov r0, #0x6a ldr r2, _02071C40 ; =0x00000B2C str r1, [sp, #0x4] lsl r0, r0, #0x4 ldrh r2, [r4, r2] ldr r0, [r4, r0] mov r3, #0x3 bl FUN_0200AD38 mov r1, #0x6a lsl r1, r1, #0x4 ldr r0, [r4, r1] add r1, r1, #0x4 ldr r1, [r4, r1] add r2, r5, #0x0 bl FUN_0200B7B8 add r0, r5, #0x0 bl FUN_02021A20 mov r1, #0x0 add r0, r4, #0x0 mvn r1, r1 mov r2, #0x1 bl FUN_020731E8 ldr r0, _02071C44 ; =0x00000B2E mov r1, #0x0 ldrh r0, [r4, r0] mov r2, #0xc lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_0202914C add r1, r0, #0x0 ldr r0, _02071C38 ; =0x000005A4 mov r2, #0x1 ldr r0, [r4, r0] ldr r0, [r0, #0x1c] add r0, #0x98 ldr r0, [r0, #0x0] bl FUN_02028AD4 ldr r0, _02071C18 ; =0x00000B2A mov r1, #0x4 strh r1, [r4, r0] mov r1, #0x1a sub r0, #0x8 strb r1, [r4, r0] add sp, #0x8 mov r0, #0x14 pop {r4-r6, pc} _02071BE0: ldr r0, _02071C1C ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #0x3 tst r0, r1 beq _02071C12 ldr r0, _02071C20 ; =0x000005DC bl FUN_020054C8 mov r0, #0x89 lsl r0, r0, #0x2 add r0, r4, r0 mov r1, #0x1 bl FUN_0200D0E0 ldr r0, _02071C28 ; =0x000005C8 mov r1, #0x0 ldr r0, [r4, r0] bl FUN_0200C664 add r0, r4, #0x0 bl FUN_02074538 add sp, #0x8 mov r0, #0x1 pop {r4-r6, pc} _02071C12: mov r0, #0x1a add sp, #0x8 pop {r4-r6, pc} .balign 4 _02071C18: .word 0x00000B2A _02071C1C: .word 0x021C48B8 _02071C20: .word 0x000005DC _02071C24: .word 0x000005EC _02071C28: .word 0x000005C8 _02071C2C: .word 0x00000B25 _02071C30: .word 0x00000708 _02071C34: .word 0x000005F2 _02071C38: .word 0x000005A4 _02071C3C: .word 0x0000069C _02071C40: .word 0x00000B2C _02071C44: .word 0x00000B2E thumb_func_start FUN_02071C48 FUN_02071C48: ; 0x02071C48 push {r3-r5, lr} ldr r2, _02071CA8 ; =0x00000B25 add r4, r0, #0x0 ldrb r1, [r4, r2] mov r0, #0x2c mov r3, #0x71 mul r0, r1 add r0, r4, r0 lsl r3, r3, #0x4 ldrb r5, [r0, r3] cmp r5, #0x0 beq _02071C64 mov r0, #0x2 pop {r3-r5, pc} _02071C64: sub r2, r2, #0x2 ldrb r2, [r4, r2] lsl r2, r2, #0x1a lsr r2, r2, #0x1a cmp r1, r2 beq _02071C82 add r1, r3, #0x0 sub r1, #0xa ldrh r1, [r0, r1] cmp r1, #0x0 beq _02071C82 sub r3, #0x8 ldrh r0, [r0, r3] cmp r1, r0 bne _02071CA4 _02071C82: ldr r0, _02071CAC ; =0x000005C8 mov r1, #0x1 ldr r0, [r4, r0] bl FUN_0200C664 add r0, r4, #0x0 mov r1, #0x83 mov r2, #0x1 bl FUN_020731E8 ldr r1, _02071CB0 ; =0x00000B2A mov r0, #0x1 strh r0, [r4, r1] mov r2, #0x1a sub r1, #0x8 strb r2, [r4, r1] pop {r3-r5, pc} _02071CA4: mov r0, #0x0 pop {r3-r5, pc} .balign 4 _02071CA8: .word 0x00000B25 _02071CAC: .word 0x000005C8 _02071CB0: .word 0x00000B2A thumb_func_start FUN_02071CB4 FUN_02071CB4: ; 0x02071CB4 push {r3-r7, lr} add r6, r1, #0x0 mov r3, #0x2c add r4, r6, #0x0 mul r4, r3 ldr r3, _02071D34 ; =0x00000706 add r5, r0, #0x0 add r7, r5, r3 lsl r2, r2, #0x10 ldrh r3, [r7, r4] lsr r2, r2, #0x10 add r2, r3, r2 ldr r3, _02071D38 ; =0x00000B2C strh r2, [r7, r4] ldrh r2, [r5, r3] add r2, r2, #0x1 strh r2, [r5, r3] bl FUN_02072BBC lsl r1, r6, #0x2 add r1, r6, r1 add r1, r1, #0x3 add r0, r5, #0x4 lsl r1, r1, #0x4 add r0, r0, r1 mov r1, #0x0 bl FUN_02019620 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02072B7C add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02072C28 ldr r1, _02071D3C ; =0x00000B28 ldrh r0, [r5, r1] add r1, r1, #0x4 ldrh r1, [r5, r1] cmp r0, r1 beq _02071D14 ldr r1, _02071D40 ; =0x00000708 add r2, r5, r4 ldrh r0, [r7, r4] ldrh r1, [r2, r1] cmp r0, r1 bne _02071D30 _02071D14: ldr r0, _02071D44 ; =0x000005A4 add r1, r6, #0x0 ldr r0, [r5, r0] ldr r0, [r0, #0x0] bl FUN_0206B9B0 ldrh r1, [r7, r4] add r2, sp, #0x0 str r1, [sp, #0x0] mov r1, #0xa2 bl FUN_02067830 mov r0, #0x1 pop {r3-r7, pc} _02071D30: mov r0, #0x0 pop {r3-r7, pc} .balign 4 _02071D34: .word 0x00000706 _02071D38: .word 0x00000B2C _02071D3C: .word 0x00000B28 _02071D40: .word 0x00000708 _02071D44: .word 0x000005A4 thumb_func_start FUN_02071D48 FUN_02071D48: ; 0x02071D48 push {r4, lr} ldr r1, _02071DE0 ; =0x021C48B8 add r4, r0, #0x0 ldr r2, [r1, #0x48] mov r1, #0x1 tst r1, r2 beq _02071D96 ldr r0, _02071DE4 ; =0x00000B25 ldrb r1, [r4, r0] cmp r1, #0x7 bne _02071D72 sub r0, r0, #0x2 ldrb r0, [r4, r0] lsl r0, r0, #0x18 lsr r0, r0, #0x1f bne _02071D92 ldr r0, _02071DE8 ; =0x000005DC bl FUN_020054C8 mov r0, #0x3 pop {r4, pc} _02071D72: mov r0, #0x2c mul r0, r1 add r1, r4, r0 mov r0, #0x71 lsl r0, r0, #0x4 ldrb r0, [r1, r0] cmp r0, #0x0 bne _02071D8C ldr r0, _02071DE8 ; =0x000005DC bl FUN_020054C8 mov r0, #0x0 pop {r4, pc} _02071D8C: ldr r0, _02071DEC ; =0x000005F2 bl FUN_020054C8 _02071D92: mov r0, #0x5 pop {r4, pc} _02071D96: mov r1, #0x2 tst r1, r2 beq _02071DBA ldr r0, _02071DF0 ; =0x00000B23 ldrb r0, [r4, r0] lsl r0, r0, #0x18 lsr r0, r0, #0x1f bne _02071DB6 ldr r0, _02071DE8 ; =0x000005DC bl FUN_020054C8 ldr r0, _02071DE4 ; =0x00000B25 mov r1, #0x7 strb r1, [r4, r0] mov r0, #0x3 pop {r4, pc} _02071DB6: mov r0, #0x5 pop {r4, pc} _02071DBA: bl FUN_02070B04 cmp r0, #0x2 bne _02071DDE ldr r1, _02071DE4 ; =0x00000B25 ldrb r2, [r4, r1] mov r1, #0x2c mul r1, r2 add r2, r4, r1 mov r1, #0x71 lsl r1, r1, #0x4 ldrb r1, [r2, r1] cmp r1, #0x0 beq _02071DDE ldr r0, _02071DEC ; =0x000005F2 bl FUN_020054C8 mov r0, #0x5 _02071DDE: pop {r4, pc} .balign 4 _02071DE0: .word 0x021C48B8 _02071DE4: .word 0x00000B25 _02071DE8: .word 0x000005DC _02071DEC: .word 0x000005F2 _02071DF0: .word 0x00000B23 thumb_func_start FUN_02071DF4 FUN_02071DF4: ; 0x02071DF4 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _02071F1C ; =0x000005A4 mov r1, #0x0 ldr r0, [r5, r0] mov r2, #0xc ldrh r0, [r0, #0x24] bl FUN_0206E710 mov r1, #0x22 add r4, r0, #0x0 bl FUN_0206E7DC cmp r0, #0x0 bne _02071E1E add r0, r4, #0x0 mov r1, #0x23 bl FUN_0206E7DC cmp r0, #0x0 beq _02071E30 _02071E1E: add r0, r4, #0x0 bl FUN_02016A18 add r0, r5, #0x0 mov r1, #0x0 bl FUN_0207703C mov r0, #0x6 pop {r3-r5, pc} _02071E30: add r0, r4, #0x0 mov r1, #0x24 bl FUN_0206E7DC cmp r0, #0x0 beq _02071E5A add r0, r4, #0x0 mov r1, #0x25 bl FUN_0206E7DC cmp r0, #0x0 bne _02071E5A add r0, r4, #0x0 bl FUN_02016A18 add r0, r5, #0x0 mov r1, #0x1 bl FUN_0207703C mov r0, #0x6 pop {r3-r5, pc} _02071E5A: add r0, r4, #0x0 bl FUN_02016A18 ldr r0, _02071F1C ; =0x000005A4 ldr r2, _02071F20 ; =0x00000B25 ldr r1, [r5, r0] mov r0, #0xc str r0, [sp, #0x0] ldr r0, [r1, #0x0] ldrh r1, [r1, #0x24] ldrb r2, [r5, r2] mov r3, #0x0 bl FUN_020847F8 cmp r0, #0x1 bne _02071F02 ldr r0, _02071F1C ; =0x000005A4 mov r2, #0x1 ldr r1, [r5, r0] mov r3, #0xc ldr r0, [r1, #0x4] ldrh r1, [r1, #0x24] bl FUN_0206EDD4 add r0, r4, #0x0 mov r1, #0x1a bl FUN_0206E7DC cmp r0, #0x0 ldr r0, _02071F1C ; =0x000005A4 beq _02071ECC ldr r1, _02071F20 ; =0x00000B25 ldr r0, [r5, r0] ldrb r1, [r5, r1] ldr r0, [r0, #0x0] bl FUN_0206B9B0 add r1, r0, #0x0 ldr r0, _02071F1C ; =0x000005A4 mov r2, #0x3 ldr r3, [r5, r0] add r0, r3, #0x0 add r0, #0x3c str r0, [sp, #0x0] ldrh r3, [r3, #0x24] mov r0, #0x0 bl FUN_02069168 ldr r1, _02071F1C ; =0x000005A4 ldr r2, [r5, r1] strh r0, [r2, #0x38] ldr r0, [r5, r1] mov r2, #0x8 add r0, #0x23 strb r2, [r0, #0x0] mov r0, #0x1b pop {r3-r5, pc} _02071ECC: ldr r0, [r5, r0] ldrh r0, [r0, #0x24] bl FUN_0206EB34 cmp r0, #0x1 bne _02071EFA ldr r0, _02071F1C ; =0x000005A4 ldr r1, [r5, r0] ldr r0, [r1, #0x10] cmp r0, #0x0 beq _02071EFA ldr r0, [r1, #0x0] ldr r1, _02071F20 ; =0x00000B25 ldrb r1, [r5, r1] bl FUN_0206B9B0 add r1, r0, #0x0 ldr r0, _02071F1C ; =0x000005A4 ldr r2, [r5, r0] ldr r0, [r2, #0x10] ldrh r2, [r2, #0x24] bl FUN_02061618 _02071EFA: add r0, r5, #0x0 bl FUN_02075C54 b _02071F18 _02071F02: add r0, r5, #0x0 mov r1, #0x69 mov r2, #0x1 bl FUN_020731E8 ldr r0, _02071F20 ; =0x00000B25 mov r1, #0x7 strb r1, [r5, r0] ldr r1, _02071F24 ; =FUN_02075CE4 sub r0, #0x11 str r1, [r5, r0] _02071F18: mov r0, #0x5 pop {r3-r5, pc} .balign 4 _02071F1C: .word 0x000005A4 _02071F20: .word 0x00000B25 _02071F24: .word FUN_02075CE4 thumb_func_start FUN_02071F28 FUN_02071F28: ; 0x02071F28 push {r3, lr} ldr r1, _02071F50 ; =0x00000B25 ldrb r2, [r0, r1] mov r1, #0x2c mul r1, r2 add r1, r0, r1 ldr r0, _02071F54 ; =0x0000070C ldrh r0, [r1, r0] cmp r0, #0x0 bne _02071F40 mov r0, #0x0 pop {r3, pc} _02071F40: bl FUN_0206EA98 cmp r0, #0x1 bne _02071F4C mov r0, #0x2 pop {r3, pc} _02071F4C: mov r0, #0x1 pop {r3, pc} .balign 4 _02071F50: .word 0x00000B25 _02071F54: .word 0x0000070C thumb_func_start FUN_02071F58 FUN_02071F58: ; 0x02071F58 push {r3-r7, lr} add r5, r0, #0x0 ldr r0, _02072074 ; =0x000005A4 ldr r1, _02072078 ; =0x00000B25 ldr r0, [r5, r0] ldrb r1, [r5, r1] ldr r0, [r0, #0x0] bl FUN_0206B9B0 add r6, r0, #0x0 mov r7, #0x89 add r0, r5, #0x0 lsl r7, r7, #0x2 bl FUN_02071F28 cmp r0, #0x0 beq _02071F84 cmp r0, #0x1 beq _02071FF2 cmp r0, #0x2 beq _02072044 b _02072054 _02071F84: ldr r0, _02072074 ; =0x000005A4 ldr r0, [r5, r0] ldrh r0, [r0, #0x24] bl FUN_0206EA98 cmp r0, #0x1 bne _02071FA0 ldr r0, _02072074 ; =0x000005A4 mov r1, #0x6 ldr r0, [r5, r0] add r0, #0x23 strb r1, [r0, #0x0] mov r0, #0x1b pop {r3-r7, pc} _02071FA0: add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02072080 ldr r2, _0207207C ; =0x0000069C mov r1, #0x76 ldr r0, [r5, r2] add r2, #0xc ldr r2, [r5, r2] bl FUN_0200A8E0 add r0, r6, #0x0 bl FUN_020690E4 add r2, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 ldr r0, [r5, r0] mov r1, #0x0 bl FUN_0200ACF8 mov r2, #0x6a lsl r2, r2, #0x4 ldr r0, [r5, r2] sub r2, #0xfc ldr r2, [r5, r2] mov r1, #0x1 ldrh r2, [r2, #0x24] bl FUN_0200AE38 mov r2, #0x6a lsl r2, r2, #0x4 add r1, r2, #0x4 ldr r0, [r5, r2] add r2, #0x8 ldr r1, [r5, r1] ldr r2, [r5, r2] bl FUN_0200B7B8 mov r4, #0xb b _02072054 _02071FF2: ldr r2, _0207207C ; =0x0000069C mov r1, #0x4e ldr r0, [r5, r2] add r2, #0xc ldr r2, [r5, r2] bl FUN_0200A8E0 add r0, r6, #0x0 bl FUN_020690E4 add r2, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 ldr r0, [r5, r0] mov r1, #0x0 bl FUN_0200ACF8 ldr r2, _02072078 ; =0x00000B25 mov r3, #0x6a ldrb r4, [r5, r2] mov r2, #0x2c lsl r3, r3, #0x4 mul r2, r4 ldr r0, [r5, r3] add r2, r5, r2 add r3, #0x6c ldrh r2, [r2, r3] mov r1, #0x1 bl FUN_0200AE70 mov r2, #0x6a lsl r2, r2, #0x4 add r1, r2, #0x4 ldr r0, [r5, r2] add r2, #0x8 ldr r1, [r5, r1] ldr r2, [r5, r2] bl FUN_0200B7B8 mov r4, #0x9 b _02072054 _02072044: ldr r2, _0207207C ; =0x0000069C mov r1, #0x4d ldr r0, [r5, r2] add r2, #0x8 ldr r2, [r5, r2] bl FUN_0200A8E0 mov r4, #0xb _02072054: add r0, r5, r7 mov r1, #0x1 mov r2, #0xa mov r3, #0xf bl FUN_0200D0BC add r0, r5, r7 mov r1, #0xf bl FUN_02019620 add r0, r5, #0x0 bl FUN_0207322C add r0, r4, #0x0 pop {r3-r7, pc} nop _02072074: .word 0x000005A4 _02072078: .word 0x00000B25 _0207207C: .word 0x0000069C thumb_func_start FUN_02072080 FUN_02072080: ; 0x02072080 push {r3-r5, lr} add r4, r0, #0x0 ldr r0, _020720D4 ; =0x000005A4 add r5, r1, #0x0 ldr r1, [r4, r0] mov r2, #0x1 ldrh r1, [r1, #0x24] mov r3, #0xc str r1, [sp, #0x0] ldr r1, [r4, r0] ldr r0, [r1, #0x4] ldrh r1, [r1, #0x24] bl FUN_0206EDD4 add r0, r5, #0x0 mov r1, #0x6 add r2, sp, #0x0 bl FUN_02067830 add r0, r5, #0x0 bl FUN_02069EC4 ldr r1, _020720D8 ; =0x00000B25 ldr r0, _020720D4 ; =0x000005A4 ldrb r3, [r4, r1] ldr r0, [r4, r0] mov r2, #0x2c add r5, r3, #0x0 mul r5, r2 ldrh r0, [r0, #0x24] ldr r3, _020720DC ; =0x0000070C add r5, r4, r5 strh r0, [r5, r3] ldrb r1, [r4, r1] add r0, r4, #0x0 mul r2, r1 add r2, r4, r2 ldrh r2, [r2, r3] bl FUN_02073A78 pop {r3-r5, pc} nop _020720D4: .word 0x000005A4 _020720D8: .word 0x00000B25 _020720DC: .word 0x0000070C thumb_func_start FUN_020720E0 FUN_020720E0: ; 0x020720E0 push {r0-r3} push {r3-r5, lr} add r4, r0, #0x0 ldr r0, _02072134 ; =0x000005A4 add r5, r1, #0x0 ldr r0, [r4, r0] lsl r1, r2, #0x10 ldr r0, [r0, #0x4] lsr r1, r1, #0x10 mov r2, #0x1 mov r3, #0xc bl FUN_0206ED38 add r0, r5, #0x0 mov r1, #0x6 add r2, sp, #0x1c bl FUN_02067830 add r0, r5, #0x0 bl FUN_02069EC4 ldr r1, _02072138 ; =0x00000B25 mov r2, #0x2c ldrb r3, [r4, r1] ldr r0, [sp, #0x1c] add r5, r3, #0x0 mul r5, r2 ldr r3, _0207213C ; =0x0000070C add r5, r4, r5 strh r0, [r5, r3] ldrb r1, [r4, r1] add r0, r4, #0x0 mul r2, r1 add r2, r4, r2 ldrh r2, [r2, r3] bl FUN_02073A78 pop {r3-r5} pop {r3} add sp, #0x10 bx r3 nop _02072134: .word 0x000005A4 _02072138: .word 0x00000B25 _0207213C: .word 0x0000070C thumb_func_start FUN_02072140 FUN_02072140: ; 0x02072140 push {r4, lr} add r4, r0, #0x0 ldr r0, _02072168 ; =0x00000B24 ldrb r0, [r4, r0] bl FUN_0201BD70 cmp r0, #0x0 bne _02072162 ldr r0, _0207216C ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #0x3 tst r0, r1 beq _02072162 add r0, r4, #0x0 bl FUN_020722B8 pop {r4, pc} _02072162: mov r0, #0xb pop {r4, pc} nop _02072168: .word 0x00000B24 _0207216C: .word 0x021C48B8 thumb_func_start FUN_02072170 FUN_02072170: ; 0x02072170 push {r4, lr} add r4, r0, #0x0 ldr r0, _02072190 ; =0x00000B24 ldrb r0, [r4, r0] bl FUN_0201BD70 cmp r0, #0x0 bne _0207218A add r0, r4, #0x0 bl FUN_020732CC mov r0, #0xa pop {r4, pc} _0207218A: mov r0, #0x9 pop {r4, pc} nop _02072190: .word 0x00000B24 thumb_func_start FUN_02072194 FUN_02072194: ; 0x02072194 push {r3-r7, lr} add r5, r0, #0x0 ldr r0, _020722A4 ; =0x000006FC mov r1, #0xc ldr r0, [r5, r0] bl FUN_020021AC cmp r0, #0x0 beq _020721B0 mov r1, #0x1 mvn r1, r1 cmp r0, r1 beq _02072298 b _020722A0 _020721B0: ldr r0, _020722A8 ; =0x000005A4 ldr r1, _020722AC ; =0x00000B25 ldr r0, [r5, r0] ldrb r1, [r5, r1] ldr r0, [r0, #0x0] bl FUN_0206B9B0 add r7, r0, #0x0 ldr r0, _020722A8 ; =0x000005A4 ldr r0, [r5, r0] ldrh r6, [r0, #0x24] ldr r0, _020722AC ; =0x00000B25 ldrb r1, [r5, r0] mov r0, #0x2c mul r0, r1 add r1, r5, r0 ldr r0, _020722B0 ; =0x0000070C ldrh r4, [r1, r0] add r0, r5, #0x0 add r1, r7, #0x0 bl FUN_02072080 ldr r0, _020722A8 ; =0x000005A4 add r1, r4, #0x0 ldr r0, [r5, r0] mov r2, #0x1 ldr r0, [r0, #0x4] mov r3, #0xc bl FUN_0206ED38 cmp r0, #0x0 bne _0207220C add r0, r5, #0x0 add r1, r7, #0x0 add r2, r6, #0x0 add r3, r4, #0x0 bl FUN_020720E0 ldr r2, _020722B4 ; =0x0000069C mov r1, #0x53 ldr r0, [r5, r2] add r2, #0x8 ldr r2, [r5, r2] bl FUN_0200A8E0 b _02072282 _0207220C: ldr r0, _020722A8 ; =0x000005A4 ldr r0, [r5, r0] ldrh r0, [r0, #0x24] bl FUN_0206EA98 cmp r0, #0x1 bne _02072246 ldr r0, _020722A8 ; =0x000005A4 lsl r1, r4, #0x10 ldr r0, [r5, r0] lsr r1, r1, #0x10 ldr r0, [r0, #0x4] mov r2, #0x1 mov r3, #0xc bl FUN_0206EDD4 add r0, r5, #0x0 add r1, r7, #0x0 add r2, r6, #0x0 add r3, r4, #0x0 bl FUN_020720E0 ldr r0, _020722A8 ; =0x000005A4 mov r1, #0x6 ldr r0, [r5, r0] add r0, #0x23 strb r1, [r0, #0x0] mov r0, #0x1b pop {r3-r7, pc} _02072246: ldr r2, _020722B4 ; =0x0000069C mov r1, #0x54 ldr r0, [r5, r2] add r2, #0xc ldr r2, [r5, r2] bl FUN_0200A8E0 mov r0, #0x6a lsl r0, r0, #0x4 ldr r0, [r5, r0] mov r1, #0x1 add r2, r4, #0x0 bl FUN_0200AE38 mov r0, #0x6a lsl r0, r0, #0x4 ldr r0, [r5, r0] mov r1, #0x2 add r2, r6, #0x0 bl FUN_0200AE38 mov r2, #0x6a lsl r2, r2, #0x4 add r1, r2, #0x4 ldr r0, [r5, r2] add r2, #0x8 ldr r1, [r5, r1] ldr r2, [r5, r2] bl FUN_0200B7B8 _02072282: mov r0, #0x89 lsl r0, r0, #0x2 add r0, r5, r0 mov r1, #0xf bl FUN_02019620 add r0, r5, #0x0 bl FUN_0207322C mov r0, #0xb pop {r3-r7, pc} _02072298: add r0, r5, #0x0 bl FUN_020722B8 pop {r3-r7, pc} _020722A0: mov r0, #0xa pop {r3-r7, pc} .balign 4 _020722A4: .word 0x000006FC _020722A8: .word 0x000005A4 _020722AC: .word 0x00000B25 _020722B0: .word 0x0000070C _020722B4: .word 0x0000069C thumb_func_start FUN_020722B8 FUN_020722B8: ; 0x020722B8 push {r4, lr} add r4, r0, #0x0 ldr r0, _02072304 ; =0x000005A4 ldr r1, [r4, r0] add r0, r1, #0x0 add r0, #0x20 ldrb r0, [r0, #0x0] cmp r0, #0xa bne _020722F8 mov r0, #0x89 lsl r0, r0, #0x2 add r0, r4, r0 mov r1, #0x1 bl FUN_0200D0E0 add r0, r4, #0x0 mov r1, #0x1d mov r2, #0x1 bl FUN_020731C0 ldr r0, _02072308 ; =0x000005C8 mov r1, #0x0 ldr r0, [r4, r0] bl FUN_0200C664 ldr r0, _02072304 ; =0x000005A4 mov r1, #0x0 ldr r0, [r4, r0] add r0, #0x20 strb r1, [r0, #0x0] mov r0, #0x1 pop {r4, pc} _020722F8: mov r0, #0xa add r1, #0x23 strb r0, [r1, #0x0] mov r0, #0x1b pop {r4, pc} nop _02072304: .word 0x000005A4 _02072308: .word 0x000005C8 thumb_func_start FUN_0207230C FUN_0207230C: ; 0x0207230C push {r3-r7, lr} add r5, r0, #0x0 ldr r0, _02072410 ; =0x000005A4 ldr r1, _02072414 ; =0x00000B25 ldr r0, [r5, r0] ldrb r1, [r5, r1] ldr r0, [r0, #0x0] bl FUN_0206B9B0 add r7, r0, #0x0 ldr r0, _02072410 ; =0x000005A4 ldr r0, [r5, r0] ldrh r6, [r0, #0x24] ldr r0, _02072414 ; =0x00000B25 ldrb r1, [r5, r0] mov r0, #0x2c mul r0, r1 add r1, r5, r0 ldr r0, _02072418 ; =0x0000070C ldrh r4, [r1, r0] add r0, r5, #0x0 add r1, r7, #0x0 bl FUN_02072080 cmp r4, #0x0 bne _02072388 ldr r2, _0207241C ; =0x0000069C mov r1, #0x76 ldr r0, [r5, r2] add r2, #0xc ldr r2, [r5, r2] bl FUN_0200A8E0 add r0, r7, #0x0 bl FUN_020690E4 add r2, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 ldr r0, [r5, r0] mov r1, #0x0 bl FUN_0200ACF8 mov r2, #0x6a lsl r2, r2, #0x4 ldr r0, [r5, r2] sub r2, #0xfc ldr r2, [r5, r2] mov r1, #0x1 ldrh r2, [r2, #0x24] bl FUN_0200AE38 mov r2, #0x6a lsl r2, r2, #0x4 add r1, r2, #0x4 ldr r0, [r5, r2] add r2, #0x8 ldr r1, [r5, r1] ldr r2, [r5, r2] bl FUN_0200B7B8 b _020723D6 _02072388: ldr r0, _02072410 ; =0x000005A4 lsl r1, r4, #0x10 ldr r0, [r5, r0] lsr r1, r1, #0x10 ldr r0, [r0, #0x4] mov r2, #0x1 mov r3, #0xc bl FUN_0206ED38 ldr r2, _0207241C ; =0x0000069C mov r1, #0x54 ldr r0, [r5, r2] add r2, #0xc ldr r2, [r5, r2] bl FUN_0200A8E0 mov r0, #0x6a lsl r0, r0, #0x4 ldr r0, [r5, r0] mov r1, #0x1 add r2, r4, #0x0 bl FUN_0200AE38 mov r0, #0x6a lsl r0, r0, #0x4 ldr r0, [r5, r0] mov r1, #0x2 add r2, r6, #0x0 bl FUN_0200AE38 mov r2, #0x6a lsl r2, r2, #0x4 add r1, r2, #0x4 ldr r0, [r5, r2] add r2, #0x8 ldr r1, [r5, r1] ldr r2, [r5, r2] bl FUN_0200B7B8 _020723D6: mov r0, #0x89 lsl r0, r0, #0x2 add r0, r5, r0 mov r1, #0x1 mov r2, #0xa mov r3, #0xf bl FUN_0200D0BC mov r0, #0x89 lsl r0, r0, #0x2 add r0, r5, r0 mov r1, #0xf bl FUN_02019620 add r0, r5, #0x0 bl FUN_0207322C ldr r0, _02072410 ; =0x000005A4 ldr r1, [r5, r0] add r0, r1, #0x0 add r0, #0x20 ldrb r0, [r0, #0x0] cmp r0, #0xc bne _0207240C mov r0, #0xa add r1, #0x20 strb r0, [r1, #0x0] _0207240C: mov r0, #0xb pop {r3-r7, pc} .balign 4 _02072410: .word 0x000005A4 _02072414: .word 0x00000B25 _02072418: .word 0x0000070C _0207241C: .word 0x0000069C thumb_func_start FUN_02072420 FUN_02072420: ; 0x02072420 push {r4, lr} add r4, r0, #0x0 ldr r0, _02072470 ; =0x00000B25 ldrb r1, [r4, r0] mov r0, #0x2c mul r0, r1 add r1, r4, r0 ldr r0, _02072474 ; =0x00000712 ldrh r0, [r1, r0] cmp r0, #0x0 bne _02072444 ldr r0, _02072478 ; =0x000005A4 mov r1, #0x0 ldr r0, [r4, r0] add r0, #0x23 strb r1, [r0, #0x0] mov r0, #0x1b pop {r4, pc} _02072444: ldr r0, _0207247C ; =0x000005C8 mov r1, #0x1 ldr r0, [r4, r0] bl FUN_0200C664 add r0, r4, #0x0 mov r1, #0xc3 mov r2, #0x1 bl FUN_020731E8 ldr r0, _02072480 ; =FUN_02074428 ldr r1, _02072484 ; =0x00000B18 ldr r2, _02072488 ; =FUN_02074454 str r0, [r4, r1] add r0, r1, #0x4 str r2, [r4, r0] mov r0, #0x16 add r1, #0xa strb r0, [r4, r1] mov r0, #0x14 pop {r4, pc} nop _02072470: .word 0x00000B25 _02072474: .word 0x00000712 _02072478: .word 0x000005A4 _0207247C: .word 0x000005C8 _02072480: .word FUN_02074428 _02072484: .word 0x00000B18 _02072488: .word FUN_02074454 thumb_func_start FUN_0207248C FUN_0207248C: ; 0x0207248C ldr r1, _020724C0 ; =0x000005A4 ldr r0, [r0, r1] add r0, #0x20 ldrb r0, [r0, #0x0] cmp r0, #0x5 beq _020724B8 cmp r0, #0x6 beq _020724B8 cmp r0, #0x7 beq _020724B8 cmp r0, #0x8 beq _020724B8 cmp r0, #0x9 beq _020724B8 cmp r0, #0xb beq _020724B8 cmp r0, #0xe beq _020724B8 cmp r0, #0x10 beq _020724B8 cmp r0, #0x14 bne _020724BC _020724B8: mov r0, #0x0 bx lr _020724BC: mov r0, #0x1 bx lr .balign 4 _020724C0: .word 0x000005A4 thumb_func_start FUN_020724C4 FUN_020724C4: ; 0x020724C4 mov r0, #0x14 bx lr thumb_func_start FUN_020724C8 FUN_020724C8: ; 0x020724C8 mov r0, #0x15 bx lr thumb_func_start FUN_020724CC FUN_020724CC: ; 0x020724CC mov r0, #0x13 bx lr thumb_func_start FUN_020724D0 FUN_020724D0: ; 0x020724D0 mov r0, #0x12 bx lr thumb_func_start FUN_020724D4 FUN_020724D4: ; 0x020724D4 push {r3-r7, lr} sub sp, #0x10 add r4, r0, #0x0 add r5, r1, #0x0 add r6, r2, #0x0 mov r0, #0x14 mov r1, #0x16 add r2, r4, #0x0 add r7, r3, #0x0 bl FUN_0200650C add r1, sp, #0xc str r0, [sp, #0x8] blx FUN_020B0180 ldr r0, [sp, #0xc] mov r4, #0x0 str r0, [sp, #0x4] add r0, #0xc str r0, [sp, #0x4] str r0, [sp, #0x0] _020724FE: ldr r1, [sp, #0x0] add r0, r5, #0x0 mov r2, #0x20 blx FUN_020DF438 add r1, r4, #0x6 lsl r2, r1, #0x6 ldr r1, [sp, #0x4] add r0, r6, #0x0 add r1, r1, r2 mov r2, #0x20 blx FUN_020DF438 add r1, r4, #0x0 add r1, #0xc lsl r2, r1, #0x6 ldr r1, [sp, #0x4] add r0, r7, #0x0 add r1, r1, r2 mov r2, #0x20 blx FUN_020DF438 ldr r0, [sp, #0x0] add r4, r4, #0x1 add r0, #0x40 str r0, [sp, #0x0] add r5, #0x20 add r6, #0x20 add r7, #0x20 cmp r4, #0x6 blo _020724FE ldr r0, [sp, #0x8] bl FUN_02016A18 add sp, #0x10 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02072548 FUN_02072548: ; 0x02072548 push {r4-r6, lr} add r5, r1, #0x0 add r4, r2, #0x0 add r6, r0, #0x0 bl FUN_02019150 add r1, r5, #0x0 add r2, r4, #0x0 add r0, r6, #0x0 add r1, #0x10 add r2, #0x8 bl FUN_02019150 add r1, r5, #0x0 add r2, r4, #0x0 add r0, r6, #0x0 add r1, #0x20 add r2, #0x10 bl FUN_02019150 add r1, r5, #0x0 add r2, r4, #0x0 add r0, r6, #0x0 add r1, #0x30 add r2, #0x18 bl FUN_02019150 add r5, #0x40 add r4, #0x20 add r0, r6, #0x0 add r1, r5, #0x0 add r2, r4, #0x0 bl FUN_02019150 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02072590 FUN_02072590: ; 0x02072590 push {r3-r5, lr} sub sp, #0x8 add r5, r0, #0x0 ldr r4, _020726C0 ; =0x020F975C ldr r0, [r5, #0x0] add r1, r5, #0x4 add r2, r4, #0x0 bl FUN_02072548 add r1, r5, #0x0 ldr r0, [r5, #0x0] ldr r2, _020726C4 ; =0x020F97AC add r1, #0xa4 bl FUN_02072548 mov r1, #0x51 lsl r1, r1, #0x2 ldr r0, [r5, #0x0] ldr r2, _020726C8 ; =0x020F97FC add r1, r5, r1 bl FUN_02072548 ldr r0, _020726CC ; =0x000005A4 ldr r0, [r5, r0] add r0, #0x21 ldrb r0, [r0, #0x0] cmp r0, #0x2 ldr r0, [r5, #0x0] bne _020725F8 add r1, r5, #0x0 add r2, r4, #0x0 add r1, #0x54 add r2, #0xf0 bl FUN_02072548 mov r2, #0x46 add r1, r5, #0x0 lsl r2, r2, #0x2 ldr r0, [r5, #0x0] add r1, #0xf4 add r2, r4, r2 bl FUN_02072548 mov r2, #0x65 lsl r2, r2, #0x2 add r1, r5, r2 sub r2, #0x54 ldr r0, [r5, #0x0] add r2, r4, r2 bl FUN_02072548 b _02072622 _020725F8: add r1, r5, #0x0 add r2, r4, #0x0 add r1, #0x54 add r2, #0x28 bl FUN_02072548 add r1, r5, #0x0 add r2, r4, #0x0 ldr r0, [r5, #0x0] add r1, #0xf4 add r2, #0x78 bl FUN_02072548 mov r1, #0x65 lsl r1, r1, #0x2 add r4, #0xc8 ldr r0, [r5, #0x0] add r1, r5, r1 add r2, r4, #0x0 bl FUN_02072548 _02072622: ldr r0, _020726CC ; =0x000005A4 ldr r0, [r5, r0] add r0, #0x20 ldrb r0, [r0, #0x0] cmp r0, #0x2 beq _02072632 cmp r0, #0x11 bne _0207265A _02072632: ldr r1, _020726D0 ; =0x020F96EC add r0, sp, #0x0 ldrh r3, [r1, #0x38] add r2, sp, #0x0 strh r3, [r0, #0x0] ldrh r3, [r1, #0x3a] strh r3, [r0, #0x2] ldrh r3, [r1, #0x3c] ldrh r1, [r1, #0x3e] strh r3, [r0, #0x4] strh r1, [r0, #0x6] mov r1, #0x16 strb r1, [r0, #0x2] mov r1, #0x7d lsl r1, r1, #0x2 ldr r0, [r5, #0x0] add r1, r5, r1 bl FUN_02019150 b _02072668 _0207265A: mov r1, #0x7d lsl r1, r1, #0x2 ldr r0, [r5, #0x0] ldr r2, _020726D4 ; =0x020F9724 add r1, r5, r1 bl FUN_02019150 _02072668: mov r1, #0x79 lsl r1, r1, #0x2 ldr r0, [r5, #0x0] ldr r2, _020726D8 ; =0x020F972C add r1, r5, r1 bl FUN_02019150 mov r1, #0x81 lsl r1, r1, #0x2 ldr r0, [r5, #0x0] ldr r2, _020726DC ; =0x020F9734 add r1, r5, r1 bl FUN_02019150 mov r1, #0x85 lsl r1, r1, #0x2 ldr r0, [r5, #0x0] ldr r2, _020726E0 ; =0x020F973C add r1, r5, r1 bl FUN_02019150 mov r1, #0x89 lsl r1, r1, #0x2 ldr r0, [r5, #0x0] ldr r2, _020726E4 ; =0x020F9744 add r1, r5, r1 bl FUN_02019150 mov r1, #0x8d lsl r1, r1, #0x2 ldr r0, [r5, #0x0] ldr r2, _020726E8 ; =0x020F974C add r1, r5, r1 bl FUN_02019150 mov r1, #0x91 lsl r1, r1, #0x2 ldr r0, [r5, #0x0] ldr r2, _020726EC ; =0x020F9754 add r1, r5, r1 bl FUN_02019150 add sp, #0x8 pop {r3-r5, pc} .balign 4 _020726C0: .word 0x020F975C _020726C4: .word 0x020F97AC _020726C8: .word 0x020F97FC _020726CC: .word 0x000005A4 _020726D0: .word 0x020F96EC _020726D4: .word 0x020F9724 _020726D8: .word 0x020F972C _020726DC: .word 0x020F9734 _020726E0: .word 0x020F973C _020726E4: .word 0x020F9744 _020726E8: .word 0x020F974C _020726EC: .word 0x020F9754 thumb_func_start FUN_020726F0 FUN_020726F0: ; 0x020726F0 push {r4-r6, lr} add r6, r0, #0x0 mov r5, #0x0 add r4, r6, #0x4 _020726F8: lsl r0, r5, #0x4 add r0, r4, r0 bl FUN_02019178 add r0, r5, #0x1 lsl r0, r0, #0x10 lsr r5, r0, #0x10 cmp r5, #0x25 blo _020726F8 mov r4, #0x95 lsl r4, r4, #0x2 add r0, r6, r4 bl FUN_02019048 cmp r0, #0x1 bne _0207271E add r0, r6, r4 bl FUN_02019178 _0207271E: pop {r4-r6, pc} thumb_func_start FUN_02072720 FUN_02072720: ; 0x02072720 push {r4, lr} ldr r2, _020727F8 ; =0x0000069C add r4, r0, #0x0 ldr r0, [r4, r2] add r2, #0x10 ldr r2, [r4, r2] mov r1, #0x91 bl FUN_0200A8E0 ldr r2, _020727F8 ; =0x0000069C mov r1, #0x92 ldr r0, [r4, r2] add r2, #0x14 ldr r2, [r4, r2] bl FUN_0200A8E0 ldr r2, _020727F8 ; =0x0000069C mov r1, #0x93 ldr r0, [r4, r2] add r2, #0x18 ldr r2, [r4, r2] bl FUN_0200A8E0 ldr r2, _020727F8 ; =0x0000069C mov r1, #0xa0 ldr r0, [r4, r2] add r2, #0x1c ldr r2, [r4, r2] bl FUN_0200A8E0 ldr r2, _020727F8 ; =0x0000069C mov r1, #0xa1 ldr r0, [r4, r2] add r2, #0x20 ldr r2, [r4, r2] bl FUN_0200A8E0 ldr r2, _020727F8 ; =0x0000069C mov r1, #0x94 ldr r0, [r4, r2] add r2, #0x24 ldr r2, [r4, r2] bl FUN_0200A8E0 ldr r2, _020727F8 ; =0x0000069C mov r1, #0x95 ldr r0, [r4, r2] add r2, #0x28 ldr r2, [r4, r2] bl FUN_0200A8E0 ldr r2, _020727F8 ; =0x0000069C mov r1, #0x96 ldr r0, [r4, r2] add r2, #0x2c ldr r2, [r4, r2] bl FUN_0200A8E0 ldr r2, _020727F8 ; =0x0000069C mov r1, #0x97 ldr r0, [r4, r2] add r2, #0x30 ldr r2, [r4, r2] bl FUN_0200A8E0 ldr r2, _020727F8 ; =0x0000069C mov r1, #0x98 ldr r0, [r4, r2] add r2, #0x34 ldr r2, [r4, r2] bl FUN_0200A8E0 ldr r2, _020727F8 ; =0x0000069C mov r1, #0x99 ldr r0, [r4, r2] add r2, #0x38 ldr r2, [r4, r2] bl FUN_0200A8E0 ldr r2, _020727F8 ; =0x0000069C mov r1, #0x9a ldr r0, [r4, r2] add r2, #0x3c ldr r2, [r4, r2] bl FUN_0200A8E0 ldr r2, _020727F8 ; =0x0000069C mov r1, #0x9b ldr r0, [r4, r2] add r2, #0x40 ldr r2, [r4, r2] bl FUN_0200A8E0 ldr r2, _020727F8 ; =0x0000069C mov r1, #0x9a ldr r0, [r4, r2] add r2, #0x44 ldr r2, [r4, r2] bl FUN_0200A8E0 ldr r2, _020727F8 ; =0x0000069C mov r1, #0xa6 ldr r0, [r4, r2] add r2, #0x48 ldr r2, [r4, r2] bl FUN_0200A8E0 pop {r4, pc} .balign 4 _020727F8: .word 0x0000069C thumb_func_start FUN_020727FC FUN_020727FC: ; 0x020727FC push {r3-r7, lr} add r5, r0, #0x0 ldr r0, _02072840 ; =0x0000069C add r4, r2, #0x0 add r7, r1, #0x0 add r1, r4, #0x0 ldr r0, [r5, r0] add r1, #0x9c bl FUN_0200A914 add r6, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 ldr r0, [r5, r0] mov r1, #0x0 add r2, r7, #0x0 bl FUN_0200AD5C mov r1, #0x6a add r4, #0xf lsl r1, r1, #0x4 lsl r2, r4, #0x2 ldr r0, [r5, r1] add r2, r5, r2 add r1, #0xc ldr r1, [r2, r1] add r2, r6, #0x0 bl FUN_0200B7B8 add r0, r6, #0x0 bl FUN_02021A20 pop {r3-r7, pc} nop _02072840: .word 0x0000069C thumb_func_start FUN_02072844 FUN_02072844: ; 0x02072844 push {r4-r7, lr} sub sp, #0x24 add r5, r0, #0x0 add r7, r1, #0x0 lsl r0, r2, #0x1 mov r1, #0x17 sub r1, r1, r0 lsl r1, r1, #0x18 str r2, [sp, #0x14] lsr r1, r1, #0x18 str r1, [sp, #0x0] mov r1, #0xc lsl r0, r0, #0x18 str r1, [sp, #0x4] lsr r0, r0, #0x18 mov r1, #0x9 str r0, [sp, #0x8] mov r2, #0x0 str r2, [sp, #0xc] lsl r1, r1, #0x6 str r1, [sp, #0x10] add r1, #0x14 ldr r0, [r5, #0x0] add r1, r5, r1 mov r3, #0x13 bl FUN_02019064 ldr r0, [sp, #0x14] mov r1, #0xc bl FUN_02012838 ldr r1, _0207294C ; =0x000006F8 mov r6, #0x0 str r0, [r5, r1] ldr r0, [sp, #0x14] add r4, r6, #0x0 cmp r0, #0x0 ble _020728D8 _02072890: ldrb r0, [r7, r4] cmp r0, #0xf blo _020728B4 bl FUN_02073DA8 lsl r1, r6, #0x2 add r2, r0, #0x0 ldr r0, _0207294C ; =0x000006F8 add r3, r5, r1 ldr r1, _02072950 ; =0x000006E8 ldr r0, [r5, r0] ldr r1, [r3, r1] bl FUN_020128A0 add r0, r6, #0x1 lsl r0, r0, #0x10 lsr r6, r0, #0x10 b _020728CC _020728B4: bl FUN_02073DA8 ldrb r1, [r7, r4] add r2, r0, #0x0 ldr r0, _0207294C ; =0x000006F8 lsl r1, r1, #0x2 add r3, r5, r1 ldr r1, _02072954 ; =0x000006AC ldr r0, [r5, r0] ldr r1, [r3, r1] bl FUN_020128A0 _020728CC: add r0, r4, #0x1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 ldr r0, [sp, #0x14] cmp r4, r0 blt _02072890 _020728D8: ldr r0, _0207294C ; =0x000006F8 mov r1, #0x0 ldr r0, [r5, r0] str r0, [sp, #0x18] mov r0, #0x95 lsl r0, r0, #0x2 add r0, r5, r0 str r0, [sp, #0x1c] add r0, sp, #0x18 strb r1, [r0, #0x8] mov r1, #0x1 strb r1, [r0, #0x9] ldr r1, [sp, #0x14] strb r1, [r0, #0xa] ldrb r2, [r0, #0xb] mov r1, #0xf bic r2, r1 strb r2, [r0, #0xb] ldrb r2, [r0, #0xb] mov r1, #0x30 bic r2, r1 strb r2, [r0, #0xb] ldr r1, [sp, #0x14] ldrb r2, [r0, #0xb] cmp r1, #0x4 blo _02072918 mov r1, #0xc0 bic r2, r1 mov r1, #0x40 orr r1, r2 strb r1, [r0, #0xb] b _0207291E _02072918: mov r1, #0xc0 bic r2, r1 strb r2, [r0, #0xb] _0207291E: mov r0, #0x95 lsl r0, r0, #0x2 mov r1, #0x1 add r0, r5, r0 add r2, r1, #0x0 mov r3, #0xe bl FUN_0200CCA4 mov r0, #0xc str r0, [sp, #0x0] mov r0, #0x2 mov r2, #0x0 str r0, [sp, #0x4] add r0, sp, #0x18 mov r1, #0x8 add r3, r2, #0x0 bl FUN_02001C14 ldr r1, _02072958 ; =0x000006FC str r0, [r5, r1] add sp, #0x24 pop {r4-r7, pc} nop _0207294C: .word 0x000006F8 _02072950: .word 0x000006E8 _02072954: .word 0x000006AC _02072958: .word 0x000006FC thumb_func_start FUN_0207295C FUN_0207295C: ; 0x0207295C push {r4-r6, lr} add r5, r0, #0x0 ldr r0, _020729C4 ; =0x000005A4 ldr r2, [r5, r0] add r1, r2, #0x0 add r1, #0x20 ldrb r1, [r1, #0x0] cmp r1, #0xf bne _0207297E ldr r2, _020729C8 ; =0x000006A4 add r0, #0xf8 ldr r0, [r5, r0] ldr r2, [r5, r2] mov r1, #0x2a bl FUN_0200A8E0 pop {r4-r6, pc} _0207297E: ldr r1, _020729CC ; =0x00000B25 ldr r0, [r2, #0x0] ldrb r1, [r5, r1] bl FUN_0206B9B0 add r6, r0, #0x0 ldr r0, _020729D0 ; =0x0000069C mov r1, #0x25 ldr r0, [r5, r0] bl FUN_0200A914 add r4, r0, #0x0 add r0, r6, #0x0 bl FUN_020690E4 add r2, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 ldr r0, [r5, r0] mov r1, #0x0 bl FUN_0200ACF8 mov r1, #0x6a lsl r1, r1, #0x4 ldr r0, [r5, r1] add r1, r1, #0x4 ldr r1, [r5, r1] add r2, r4, #0x0 bl FUN_0200B7B8 add r0, r4, #0x0 bl FUN_02021A20 pop {r4-r6, pc} nop _020729C4: .word 0x000005A4 _020729C8: .word 0x000006A4 _020729CC: .word 0x00000B25 _020729D0: .word 0x0000069C thumb_func_start FUN_020729D4 FUN_020729D4: ; 0x020729D4 push {r3-r4, lr} sub sp, #0x4 add r2, r0, #0x0 mov r0, #0x2 str r0, [sp, #0x0] ldr r0, _020729FC ; =0x00000698 add r4, r1, #0x0 ldr r0, [r2, r0] add r3, r2, #0x4 lsl r2, r4, #0x2 add r2, r4, r2 add r2, r2, #0x2 lsl r2, r2, #0x4 add r2, r3, r2 mov r1, #0x0 mov r3, #0x1c bl FUN_0200B9A8 add sp, #0x4 pop {r3-r4, pc} .balign 4 _020729FC: .word 0x00000698 thumb_func_start FUN_02072A00 FUN_02072A00: ; 0x02072A00 push {r3-r7, lr} add r7, r1, #0x0 add r4, r2, #0x0 add r5, r0, #0x0 ldr r0, _02072A4C ; =0x0000069C ldr r1, _02072A50 ; =0x020F96F4 lsl r2, r4, #0x3 ldrh r1, [r1, r2] ldr r0, [r5, r0] bl FUN_0200A914 add r6, r0, #0x0 add r0, r7, #0x0 bl FUN_020690E4 add r2, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 ldr r0, [r5, r0] mov r1, #0x0 bl FUN_0200ACF8 mov r2, #0x6a mov r1, #0x2c lsl r2, r2, #0x4 mul r1, r4 ldr r0, [r5, r2] add r1, r5, r1 add r2, #0x60 ldr r1, [r1, r2] add r2, r6, #0x0 bl FUN_0200B7B8 add r0, r6, #0x0 bl FUN_02021A20 pop {r3-r7, pc} nop _02072A4C: .word 0x0000069C _02072A50: .word 0x020F96F4 thumb_func_start FUN_02072A54 FUN_02072A54: ; 0x02072A54 push {r3-r7, lr} sub sp, #0x10 add r5, r0, #0x0 lsl r0, r1, #0x2 add r0, r1, r0 lsl r6, r0, #0x4 add r7, r1, #0x0 mov r0, #0x2c mul r7, r0 mov r1, #0x0 mov r2, #0x7 str r1, [sp, #0x0] mov r0, #0xff str r0, [sp, #0x4] ldr r0, _02072B14 ; =0x000F0E00 add r3, r5, r7 str r0, [sp, #0x8] add r4, r5, #0x4 str r1, [sp, #0xc] lsl r2, r2, #0x8 ldr r2, [r3, r2] add r0, r4, r6 add r3, r1, #0x0 bl FUN_0201BDE0 mov r2, #0x71 add r0, r5, r7 lsl r2, r2, #0x4 ldrb r0, [r0, r2] cmp r0, #0x1 bne _02072A9C add r0, r4, r6 bl FUN_02019220 add sp, #0x10 pop {r3-r7, pc} _02072A9C: sub r0, r2, #0x2 add r0, r5, r0 ldrh r0, [r0, r7] lsl r1, r0, #0x13 lsr r1, r1, #0x1f bne _02072B0A lsl r0, r0, #0x11 lsr r0, r0, #0x1e bne _02072ADC add r0, r2, #0x0 sub r0, #0x74 sub r2, #0x68 ldr r0, [r5, r0] ldr r2, [r5, r2] mov r1, #0x1b bl FUN_0200A8E0 mov r1, #0x0 str r1, [sp, #0x0] mov r0, #0xff str r0, [sp, #0x4] mov r0, #0xc1 lsl r0, r0, #0xa str r0, [sp, #0x8] ldr r2, _02072B18 ; =0x000006A8 str r1, [sp, #0xc] ldr r2, [r5, r2] add r0, r4, r6 mov r3, #0x40 bl FUN_0201BDE0 b _02072B0A _02072ADC: cmp r0, #0x1 bne _02072B0A add r0, r2, #0x0 sub r0, #0x74 sub r2, #0x68 ldr r0, [r5, r0] ldr r2, [r5, r2] mov r1, #0x1c bl FUN_0200A8E0 mov r1, #0x0 str r1, [sp, #0x0] mov r0, #0xff str r0, [sp, #0x4] ldr r0, _02072B1C ; =0x00050600 ldr r2, _02072B18 ; =0x000006A8 str r0, [sp, #0x8] str r1, [sp, #0xc] ldr r2, [r5, r2] add r0, r4, r6 mov r3, #0x40 bl FUN_0201BDE0 _02072B0A: add r0, r4, r6 bl FUN_02019220 add sp, #0x10 pop {r3-r7, pc} .balign 4 _02072B14: .word 0x000F0E00 _02072B18: .word 0x000006A8 _02072B1C: .word 0x00050600 thumb_func_start FUN_02072B20 FUN_02072B20: ; 0x02072B20 push {r4, lr} sub sp, #0x10 lsl r2, r1, #0x2 add r2, r1, r2 add r2, r2, #0x1 add r3, r0, #0x4 lsl r2, r2, #0x4 add r4, r3, r2 mov r2, #0x2c mul r2, r1 ldr r3, _02072B78 ; =0x0000070E add r2, r0, r2 ldrh r1, [r2, r3] lsl r1, r1, #0x14 lsr r1, r1, #0x14 cmp r1, #0x7 beq _02072B4C add r0, r4, #0x0 bl FUN_02019220 add sp, #0x10 pop {r4, pc} _02072B4C: mov r1, #0x0 str r1, [sp, #0x0] str r4, [sp, #0x4] mov r1, #0x5 str r1, [sp, #0x8] mov r1, #0x2 str r1, [sp, #0xc] add r1, r3, #0x0 sub r3, r3, #0x4 sub r1, #0x76 ldrh r2, [r2, r3] ldr r0, [r0, r1] mov r1, #0x1 mov r3, #0x3 bl FUN_0200BA78 add r0, r4, #0x0 bl FUN_02019220 add sp, #0x10 pop {r4, pc} nop _02072B78: .word 0x0000070E thumb_func_start FUN_02072B7C FUN_02072B7C: ; 0x02072B7C push {r4-r5, lr} sub sp, #0xc add r2, r0, #0x0 lsl r0, r1, #0x2 add r0, r1, r0 add r0, r0, #0x2 add r3, r2, #0x4 lsl r0, r0, #0x4 add r4, r3, r0 mov r3, #0x2c mul r3, r1 add r1, r2, r3 str r4, [sp, #0x0] mov r0, #0x4 str r0, [sp, #0x4] mov r0, #0x2 ldr r5, _02072BB8 ; =0x00000698 str r0, [sp, #0x8] ldr r0, [r2, r5] add r5, #0x6e ldrh r1, [r1, r5] mov r2, #0x3 mov r3, #0x1 bl FUN_0200B9EC add r0, r4, #0x0 bl FUN_02019220 add sp, #0xc pop {r4-r5, pc} .balign 4 _02072BB8: .word 0x00000698 thumb_func_start FUN_02072BBC FUN_02072BBC: ; 0x02072BBC push {r3-r5, lr} sub sp, #0x8 add r5, r0, #0x4 lsl r0, r1, #0x2 add r0, r1, r0 add r0, r0, #0x2 lsl r4, r0, #0x4 mov r0, #0x18 str r0, [sp, #0x0] mov r0, #0x10 mov r1, #0x0 str r0, [sp, #0x4] add r0, r5, r4 mov r2, #0x4 add r3, r1, #0x0 bl FUN_020196F4 add r0, r5, r4 bl FUN_02019220 add sp, #0x8 pop {r3-r5, pc} thumb_func_start FUN_02072BE8 FUN_02072BE8: ; 0x02072BE8 push {r4-r5, lr} sub sp, #0xc add r2, r0, #0x0 lsl r0, r1, #0x2 add r0, r1, r0 add r0, r0, #0x2 add r3, r2, #0x4 lsl r0, r0, #0x4 add r4, r3, r0 mov r3, #0x2c mul r3, r1 add r1, r2, r3 str r4, [sp, #0x0] mov r0, #0x24 str r0, [sp, #0x4] mov r0, #0x2 ldr r5, _02072C24 ; =0x00000698 str r0, [sp, #0x8] ldr r0, [r2, r5] add r5, #0x70 ldrh r1, [r1, r5] mov r2, #0x3 mov r3, #0x0 bl FUN_0200B9EC add r0, r4, #0x0 bl FUN_02019220 add sp, #0xc pop {r4-r5, pc} .balign 4 _02072C24: .word 0x00000698 thumb_func_start FUN_02072C28 FUN_02072C28: ; 0x02072C28 push {r4-r7, lr} sub sp, #0xc lsl r2, r1, #0x2 add r2, r1, r2 add r5, r0, #0x0 add r2, r2, #0x3 add r0, r5, #0x4 lsl r2, r2, #0x4 add r4, r0, r2 mov r0, #0x2c add r6, r1, #0x0 mul r6, r0 ldr r0, _02072D0C ; =0x00000708 mov r2, #0x30 add r7, r5, r0 sub r0, r0, #0x2 add r0, r5, r0 str r0, [sp, #0x8] ldrh r0, [r0, r6] ldrh r1, [r7, r6] bl FUN_02079A54 cmp r0, #0x4 bhi _02072CBE add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02072C64: ; jump table (using 16-bit offset) .short _02072C6E - _02072C64 - 2; case 0 .short _02072CA8 - _02072C64 - 2; case 1 .short _02072C90 - _02072C64 - 2; case 2 .short _02072C78 - _02072C64 - 2; case 3 .short _02072C78 - _02072C64 - 2; case 4 _02072C6E: add r0, r4, #0x0 bl FUN_02019220 add sp, #0xc pop {r4-r7, pc} _02072C78: ldrb r3, [r4, #0x9] ldr r1, _02072D10 ; =0x000004B6 mov r0, #0x1 lsl r3, r3, #0x4 add r3, #0x9 lsl r3, r3, #0x11 add r1, r5, r1 mov r2, #0x4 lsr r3, r3, #0x10 bl FUN_02017FB4 b _02072CBE _02072C90: ldrb r3, [r4, #0x9] ldr r1, _02072D14 ; =0x000004D6 mov r0, #0x1 lsl r3, r3, #0x4 add r3, #0x9 lsl r3, r3, #0x11 add r1, r5, r1 mov r2, #0x4 lsr r3, r3, #0x10 bl FUN_02017FB4 b _02072CBE _02072CA8: ldrb r3, [r4, #0x9] ldr r1, _02072D18 ; =0x000004F6 mov r0, #0x1 lsl r3, r3, #0x4 add r3, #0x9 lsl r3, r3, #0x11 add r1, r5, r1 mov r2, #0x4 lsr r3, r3, #0x10 bl FUN_02017FB4 _02072CBE: ldr r0, [sp, #0x8] ldrh r1, [r7, r6] ldrh r0, [r0, r6] mov r2, #0x30 bl FUN_02079A0C add r5, r0, #0x0 str r5, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] add r0, r4, #0x0 mov r1, #0xa mov r2, #0x0 mov r3, #0x2 bl FUN_020196F4 str r5, [sp, #0x0] mov r0, #0x2 str r0, [sp, #0x4] add r0, r4, #0x0 mov r1, #0x9 mov r2, #0x0 mov r3, #0x3 bl FUN_020196F4 str r5, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] add r0, r4, #0x0 mov r1, #0xa mov r2, #0x0 mov r3, #0x5 bl FUN_020196F4 add r0, r4, #0x0 bl FUN_02019220 add sp, #0xc pop {r4-r7, pc} .balign 4 _02072D0C: .word 0x00000708 _02072D10: .word 0x000004B6 _02072D14: .word 0x000004D6 _02072D18: .word 0x000004F6 thumb_func_start FUN_02072D1C FUN_02072D1C: ; 0x02072D1C push {r3-r7, lr} sub sp, #0x18 add r6, r1, #0x0 add r5, r0, #0x0 lsl r0, r6, #0x2 add r4, r6, r0 add r0, r5, #0x4 str r0, [sp, #0x0] lsl r0, r4, #0x4 ldr r1, [sp, #0x0] str r0, [sp, #0x4] add r0, r1, r0 mov r1, #0x0 bl FUN_02019620 add r0, r4, #0x1 lsl r0, r0, #0x4 add r7, r5, #0x4 str r0, [sp, #0x8] add r0, r7, r0 mov r1, #0x0 bl FUN_02019620 add r0, r7, #0x0 str r0, [sp, #0xc] add r0, r4, #0x2 lsl r0, r0, #0x4 ldr r1, [sp, #0xc] str r0, [sp, #0x10] add r0, r1, r0 mov r1, #0x0 bl FUN_02019620 add r0, r7, #0x0 str r0, [sp, #0x14] add r0, r4, #0x3 lsl r4, r0, #0x4 ldr r0, [sp, #0x14] mov r1, #0x0 add r0, r0, r4 bl FUN_02019620 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02072A54 mov r0, #0x2c mul r0, r6 add r1, r5, r0 mov r0, #0x71 lsl r0, r0, #0x4 ldrb r0, [r1, r0] cmp r0, #0x1 bne _02072DB0 ldr r1, [sp, #0x0] ldr r0, [sp, #0x4] add r0, r1, r0 bl FUN_02019220 ldr r0, [sp, #0x8] add r0, r7, r0 bl FUN_02019220 ldr r1, [sp, #0xc] ldr r0, [sp, #0x10] add r0, r1, r0 bl FUN_02019220 ldr r0, [sp, #0x14] add r0, r0, r4 bl FUN_02019220 add sp, #0x18 pop {r3-r7, pc} _02072DB0: add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_020729D4 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02072B20 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02072B7C add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02072BE8 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02072C28 add sp, #0x18 pop {r3-r7, pc} thumb_func_start FUN_02072DDC FUN_02072DDC: ; 0x02072DDC push {r3-r5, lr} add r5, r0, #0x0 lsl r0, r1, #0x2 add r4, r1, r0 add r1, r5, #0x4 lsl r0, r4, #0x4 add r0, r1, r0 bl FUN_02019548 add r0, r4, #0x1 add r1, r5, #0x4 lsl r0, r0, #0x4 add r0, r1, r0 bl FUN_02019548 add r0, r4, #0x2 add r1, r5, #0x4 lsl r0, r0, #0x4 add r0, r1, r0 bl FUN_02019548 add r0, r4, #0x3 add r1, r5, #0x4 lsl r0, r0, #0x4 add r0, r1, r0 bl FUN_02019548 pop {r3-r5, pc} thumb_func_start FUN_02072E14 FUN_02072E14: ; 0x02072E14 push {r3-r5, lr} add r5, r0, #0x0 lsl r0, r1, #0x2 add r4, r1, r0 add r1, r5, #0x4 lsl r0, r4, #0x4 add r0, r1, r0 bl FUN_0201958C add r0, r4, #0x1 add r1, r5, #0x4 lsl r0, r0, #0x4 add r0, r1, r0 bl FUN_0201958C add r0, r4, #0x2 add r1, r5, #0x4 lsl r0, r0, #0x4 add r0, r1, r0 bl FUN_0201958C add r0, r4, #0x3 add r1, r5, #0x4 lsl r0, r0, #0x4 add r0, r1, r0 bl FUN_0201958C pop {r3-r5, pc} thumb_func_start FUN_02072E4C FUN_02072E4C: ; 0x02072E4C push {r3-r6, lr} sub sp, #0x4 add r4, r1, #0x0 add r5, r0, #0x0 lsl r0, r4, #0x2 add r6, r4, r0 add r1, r5, #0x4 lsl r0, r6, #0x4 add r0, r1, r0 mov r1, #0x0 bl FUN_02019620 add r0, r6, #0x1 add r1, r5, #0x4 lsl r0, r0, #0x4 add r0, r1, r0 mov r1, #0x0 bl FUN_02019620 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02072A54 mov r0, #0x2c mul r0, r4 add r1, r5, r0 mov r0, #0x71 lsl r0, r0, #0x4 ldrb r0, [r1, r0] cmp r0, #0x1 bne _02072E98 add r0, r5, #0x0 add r1, r4, #0x0 mov r2, #0x1 bl FUN_020732F4 add sp, #0x4 pop {r3-r6, pc} _02072E98: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02072B20 ldr r0, _02072EE0 ; =0x000005A4 add r1, r4, #0x0 ldr r0, [r5, r0] ldr r0, [r0, #0x0] bl FUN_0206B9B0 add r1, r0, #0x0 mov r0, #0x0 ldr r3, _02072EE0 ; =0x000005A4 str r0, [sp, #0x0] ldr r3, [r5, r3] mov r2, #0x3 ldrh r3, [r3, #0x24] bl FUN_02069168 cmp r0, #0x0 bne _02072ED0 add r0, r5, #0x0 add r1, r4, #0x0 mov r2, #0x1 bl FUN_020732F4 add sp, #0x4 pop {r3-r6, pc} _02072ED0: add r0, r5, #0x0 add r1, r4, #0x0 mov r2, #0x0 bl FUN_020732F4 add sp, #0x4 pop {r3-r6, pc} nop _02072EE0: .word 0x000005A4 thumb_func_start FUN_02072EE4 FUN_02072EE4: ; 0x02072EE4 push {r4-r6, lr} add r4, r1, #0x0 add r5, r0, #0x0 lsl r0, r4, #0x2 add r6, r4, r0 add r1, r5, #0x4 lsl r0, r6, #0x4 add r0, r1, r0 mov r1, #0x0 bl FUN_02019620 add r0, r6, #0x1 add r1, r5, #0x4 lsl r0, r0, #0x4 add r0, r1, r0 mov r1, #0x0 bl FUN_02019620 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02072A54 mov r0, #0x2c mul r0, r4 add r1, r5, r0 mov r0, #0x71 lsl r0, r0, #0x4 ldrb r0, [r1, r0] cmp r0, #0x1 bne _02072F2C add r0, r5, #0x0 add r1, r4, #0x0 mov r2, #0x1 bl FUN_02073364 pop {r4-r6, pc} _02072F2C: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02072B20 ldr r0, _02072F74 ; =0x000005A4 add r1, r4, #0x0 ldr r0, [r5, r0] ldr r0, [r0, #0x0] bl FUN_0206B9B0 add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_02076AA0 cmp r0, #0xff bne _02072F58 add r0, r5, #0x0 add r1, r4, #0x0 mov r2, #0x1 bl FUN_02073364 pop {r4-r6, pc} _02072F58: cmp r0, #0xfd bne _02072F68 add r0, r5, #0x0 add r1, r4, #0x0 mov r2, #0x2 bl FUN_02073364 pop {r4-r6, pc} _02072F68: add r0, r5, #0x0 add r1, r4, #0x0 mov r2, #0x0 bl FUN_02073364 pop {r4-r6, pc} .balign 4 _02072F74: .word 0x000005A4 thumb_func_start FUN_02072F78 FUN_02072F78: ; 0x02072F78 push {r4-r6, lr} add r4, r1, #0x0 add r5, r0, #0x0 lsl r0, r4, #0x2 add r6, r4, r0 add r1, r5, #0x4 lsl r0, r6, #0x4 add r0, r1, r0 mov r1, #0x0 bl FUN_02019620 add r0, r6, #0x1 add r1, r5, #0x4 lsl r0, r0, #0x4 add r0, r1, r0 mov r1, #0x0 bl FUN_02019620 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02072A54 mov r0, #0x2c add r6, r4, #0x0 mul r6, r0 mov r0, #0x71 add r1, r5, r6 lsl r0, r0, #0x4 ldrb r0, [r1, r0] cmp r0, #0x1 beq _02072FBE add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02072B20 _02072FBE: ldr r2, _02072FD8 ; =0x0000070E add r3, r5, r6 ldrh r2, [r3, r2] add r0, r5, #0x0 add r1, r4, #0x0 lsl r2, r2, #0x10 lsr r2, r2, #0x1f lsl r2, r2, #0x18 lsr r2, r2, #0x18 bl FUN_020733E4 pop {r4-r6, pc} nop _02072FD8: .word 0x0000070E thumb_func_start FUN_02072FDC FUN_02072FDC: ; 0x02072FDC push {r4-r6, lr} add r4, r1, #0x0 add r5, r0, #0x0 lsl r0, r4, #0x2 add r6, r4, r0 add r1, r5, #0x4 lsl r0, r6, #0x4 add r0, r1, r0 mov r1, #0x0 bl FUN_02019620 add r0, r6, #0x1 add r1, r5, #0x4 lsl r0, r0, #0x4 add r0, r1, r0 mov r1, #0x0 bl FUN_02019620 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02072A54 mov r0, #0x2c mul r0, r4 add r1, r5, r0 mov r0, #0x71 lsl r0, r0, #0x4 ldrb r0, [r1, r0] cmp r0, #0x1 beq _02073020 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02072B20 _02073020: pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02073024 FUN_02073024: ; 0x02073024 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, _02073080 ; =0x000005A4 add r4, r1, #0x0 ldr r1, [r5, r0] mov r2, #0x0 add r0, r1, #0x0 add r0, #0x32 ldrb r0, [r0, #0x0] lsl r0, r0, #0x18 lsr r3, r0, #0x1c beq _0207305C add r0, r4, #0x1 _0207303E: add r6, r1, r2 add r6, #0x2c ldrb r6, [r6, #0x0] cmp r0, r6 bne _02073052 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02073448 pop {r4-r6, pc} _02073052: add r2, r2, #0x1 lsl r2, r2, #0x18 lsr r2, r2, #0x18 cmp r2, r3 blo _0207303E _0207305C: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02071340 cmp r0, #0x0 bne _02073074 add r0, r5, #0x0 add r1, r4, #0x0 mov r2, #0x8 bl FUN_02073448 pop {r4-r6, pc} _02073074: add r0, r5, #0x0 add r1, r4, #0x0 mov r2, #0x7 bl FUN_02073448 pop {r4-r6, pc} .balign 4 _02073080: .word 0x000005A4 thumb_func_start FUN_02073084 FUN_02073084: ; 0x02073084 push {r4, lr} add r4, r2, #0x0 mov r2, #0x0 bl FUN_02002E14 sub r0, r4, r0 lsr r0, r0, #0x1 pop {r4, pc} thumb_func_start FUN_02073094 FUN_02073094: ; 0x02073094 push {r3-r5, lr} sub sp, #0x10 add r5, r0, #0x0 mov r0, #0x79 lsl r0, r0, #0x2 add r4, r1, #0x0 add r0, r5, r0 mov r1, #0x0 bl FUN_02019620 mov r0, #0x7d lsl r0, r0, #0x2 add r0, r5, r0 mov r1, #0x0 bl FUN_02019620 mov r0, #0x1 tst r0, r4 beq _020730FE ldr r2, _0207314C ; =0x0000069C mov r1, #0x0 ldr r0, [r5, r2] add r2, #0xc ldr r2, [r5, r2] bl FUN_0200A8E0 ldr r2, _02073150 ; =0x000001EB ldr r1, _02073154 ; =0x000006A8 ldrb r2, [r5, r2] ldr r1, [r5, r1] mov r0, #0x0 lsl r2, r2, #0x3 bl FUN_02073084 mov r1, #0x0 add r3, r0, #0x0 str r1, [sp, #0x0] mov r2, #0xff str r2, [sp, #0x4] ldr r0, _02073158 ; =0x000F0E00 add r2, #0xe5 str r0, [sp, #0x8] add r0, r5, r2 ldr r2, _02073154 ; =0x000006A8 str r1, [sp, #0xc] ldr r2, [r5, r2] bl FUN_0201BDE0 mov r0, #0x79 lsl r0, r0, #0x2 add r0, r5, r0 bl FUN_02019220 _020730FE: mov r0, #0x2 tst r0, r4 beq _02073148 ldr r2, _0207314C ; =0x0000069C mov r1, #0x1 ldr r0, [r5, r2] add r2, #0xc ldr r2, [r5, r2] bl FUN_0200A8E0 ldr r2, _0207315C ; =0x000001FB ldr r1, _02073154 ; =0x000006A8 ldrb r2, [r5, r2] ldr r1, [r5, r1] mov r0, #0x0 lsl r2, r2, #0x3 bl FUN_02073084 mov r1, #0x0 add r3, r0, #0x0 str r1, [sp, #0x0] mov r2, #0xff str r2, [sp, #0x4] ldr r0, _02073158 ; =0x000F0E00 add r2, #0xf5 str r0, [sp, #0x8] add r0, r5, r2 ldr r2, _02073154 ; =0x000006A8 str r1, [sp, #0xc] ldr r2, [r5, r2] bl FUN_0201BDE0 mov r0, #0x7d lsl r0, r0, #0x2 add r0, r5, r0 bl FUN_02019220 _02073148: add sp, #0x10 pop {r3-r5, pc} .balign 4 _0207314C: .word 0x0000069C _02073150: .word 0x000001EB _02073154: .word 0x000006A8 _02073158: .word 0x000F0E00 _0207315C: .word 0x000001FB thumb_func_start FUN_02073160 FUN_02073160: ; 0x02073160 push {r3-r6, lr} sub sp, #0xc add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 cmp r3, #0x1 bne _0207317A add r0, r4, #0x0 mov r1, #0x1 mov r2, #0xa mov r3, #0xf bl FUN_0200D0BC _0207317A: add r0, r4, #0x0 mov r1, #0xf bl FUN_02019620 mov r0, #0x0 mvn r0, r0 cmp r6, r0 beq _02073198 ldr r2, _020731B8 ; =0x0000069C add r1, r6, #0x0 ldr r0, [r5, r2] add r2, #0x8 ldr r2, [r5, r2] bl FUN_0200A8E0 _02073198: mov r3, #0x0 str r3, [sp, #0x0] mov r0, #0xff str r0, [sp, #0x4] ldr r2, _020731BC ; =0x000006A4 str r3, [sp, #0x8] ldr r2, [r5, r2] add r0, r4, #0x0 mov r1, #0x1 bl FUN_0201BD84 add r0, r4, #0x0 bl FUN_02019220 add sp, #0xc pop {r3-r6, pc} .balign 4 _020731B8: .word 0x0000069C _020731BC: .word 0x000006A4 thumb_func_start FUN_020731C0 FUN_020731C0: ; 0x020731C0 push {r4, lr} add r4, r1, #0x0 mov r1, #0x81 lsl r1, r1, #0x2 add r3, r2, #0x0 add r1, r0, r1 add r2, r4, #0x0 bl FUN_02073160 pop {r4, pc} thumb_func_start FUN_020731D4 FUN_020731D4: ; 0x020731D4 push {r4, lr} add r4, r1, #0x0 mov r1, #0x85 lsl r1, r1, #0x2 add r3, r2, #0x0 add r1, r0, r1 add r2, r4, #0x0 bl FUN_02073160 pop {r4, pc} thumb_func_start FUN_020731E8 FUN_020731E8: ; 0x020731E8 push {r4-r6, lr} mov r6, #0x89 add r5, r0, #0x0 add r4, r1, #0x0 lsl r6, r6, #0x2 cmp r2, #0x1 bne _02073202 add r0, r5, r6 mov r1, #0x1 mov r2, #0xa mov r3, #0xf bl FUN_0200D0BC _02073202: add r0, r5, r6 mov r1, #0xf bl FUN_02019620 mov r0, #0x0 mvn r0, r0 cmp r4, r0 beq _02073220 ldr r2, _02073228 ; =0x0000069C add r1, r4, #0x0 ldr r0, [r5, r2] add r2, #0x8 ldr r2, [r5, r2] bl FUN_0200A8E0 _02073220: add r0, r5, #0x0 bl FUN_0207322C pop {r4-r6, pc} .balign 4 _02073228: .word 0x0000069C thumb_func_start FUN_0207322C FUN_0207322C: ; 0x0207322C push {r3-r4, lr} sub sp, #0xc add r4, r0, #0x0 mov r0, #0x1 bl FUN_02002B60 mov r0, #0x0 bl FUN_02002B7C ldr r0, _0207326C ; =0x000005A4 ldr r0, [r4, r0] ldr r0, [r0, #0xc] bl FUN_02024FF4 mov r3, #0x0 str r3, [sp, #0x0] str r0, [sp, #0x4] ldr r0, _02073270 ; =FUN_0207327C ldr r2, _02073274 ; =0x000006A4 str r0, [sp, #0x8] mov r0, #0x89 lsl r0, r0, #0x2 ldr r2, [r4, r2] add r0, r4, r0 mov r1, #0x1 bl FUN_0201BD84 ldr r1, _02073278 ; =0x00000B24 strb r0, [r4, r1] add sp, #0xc pop {r3-r4, pc} nop _0207326C: .word 0x000005A4 _02073270: .word FUN_0207327C _02073274: .word 0x000006A4 _02073278: .word 0x00000B24 thumb_func_start FUN_0207327C FUN_0207327C: ; 0x0207327C push {r3, lr} cmp r1, #0x5 bhi _020732BE add r0, r1, r1 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0207328E: ; jump table (using 16-bit offset) .short _020732BE - _0207328E - 2; case 0 .short _0207329A - _0207328E - 2; case 1 .short _020732A0 - _0207328E - 2; case 2 .short _020732A6 - _0207328E - 2; case 3 .short _020732AE - _0207328E - 2; case 4 .short _020732B6 - _0207328E - 2; case 5 _0207329A: bl FUN_02005514 pop {r3, pc} _020732A0: bl FUN_02005CBC pop {r3, pc} _020732A6: ldr r0, _020732C4 ; =0x000005E6 bl FUN_020054C8 b _020732BE _020732AE: ldr r0, _020732C8 ; =0x00000483 bl FUN_02005C28 b _020732BE _020732B6: ldr r0, _020732C4 ; =0x000005E6 bl FUN_02005508 pop {r3, pc} _020732BE: mov r0, #0x0 pop {r3, pc} nop _020732C4: .word 0x000005E6 _020732C8: .word 0x00000483 thumb_func_start FUN_020732CC FUN_020732CC: ; 0x020732CC push {r3-r4, lr} sub sp, #0x4 add r4, r0, #0x0 mov r0, #0xc str r0, [sp, #0x0] ldr r0, [r4, #0x0] ldr r1, _020732EC ; =0x020F96EC mov r2, #0x1 mov r3, #0xe bl FUN_02002198 ldr r1, _020732F0 ; =0x000006FC str r0, [r4, r1] add sp, #0x4 pop {r3-r4, pc} nop _020732EC: .word 0x020F96EC _020732F0: .word 0x000006FC thumb_func_start FUN_020732F4 FUN_020732F4: ; 0x020732F4 push {r4-r7, lr} sub sp, #0x14 add r5, r0, #0x0 lsl r0, r1, #0x2 add r0, r1, r0 add r0, r0, #0x4 add r4, r5, #0x4 lsl r6, r0, #0x4 add r0, r4, r6 mov r1, #0x0 add r7, r2, #0x0 bl FUN_02019620 cmp r7, #0x0 beq _02073318 cmp r7, #0x1 beq _02073326 b _02073332 _02073318: ldr r0, _0207335C ; =0x0000069C mov r1, #0xb2 ldr r0, [r5, r0] bl FUN_0200A914 str r0, [sp, #0x10] b _02073332 _02073326: ldr r0, _0207335C ; =0x0000069C mov r1, #0xb3 ldr r0, [r5, r0] bl FUN_0200A914 str r0, [sp, #0x10] _02073332: mov r1, #0x0 str r1, [sp, #0x0] mov r0, #0xff str r0, [sp, #0x4] ldr r0, _02073360 ; =0x000F0E00 ldr r2, [sp, #0x10] str r0, [sp, #0x8] add r0, r4, r6 add r3, r1, #0x0 str r1, [sp, #0xc] bl FUN_0201BDE0 ldr r0, [sp, #0x10] bl FUN_02021A20 add r0, r4, r6 bl FUN_02019220 add sp, #0x14 pop {r4-r7, pc} nop _0207335C: .word 0x0000069C _02073360: .word 0x000F0E00 thumb_func_start FUN_02073364 FUN_02073364: ; 0x02073364 push {r4-r7, lr} sub sp, #0x14 add r5, r0, #0x0 lsl r0, r1, #0x2 add r0, r1, r0 add r0, r0, #0x4 add r4, r5, #0x4 lsl r7, r0, #0x4 add r0, r4, r7 mov r1, #0x0 add r6, r2, #0x0 bl FUN_02019620 cmp r6, #0x0 beq _0207338C cmp r6, #0x1 beq _0207339A cmp r6, #0x2 beq _020733A8 b _020733B4 _0207338C: ldr r0, _020733DC ; =0x0000069C mov r1, #0xaf ldr r0, [r5, r0] bl FUN_0200A914 str r0, [sp, #0x10] b _020733B4 _0207339A: ldr r0, _020733DC ; =0x0000069C mov r1, #0xb0 ldr r0, [r5, r0] bl FUN_0200A914 str r0, [sp, #0x10] b _020733B4 _020733A8: ldr r0, _020733DC ; =0x0000069C mov r1, #0xb1 ldr r0, [r5, r0] bl FUN_0200A914 str r0, [sp, #0x10] _020733B4: mov r1, #0x0 str r1, [sp, #0x0] mov r0, #0xff str r0, [sp, #0x4] ldr r0, _020733E0 ; =0x000F0E00 ldr r2, [sp, #0x10] str r0, [sp, #0x8] add r0, r4, r7 add r3, r1, #0x0 str r1, [sp, #0xc] bl FUN_0201BDE0 ldr r0, [sp, #0x10] bl FUN_02021A20 add r0, r4, r7 bl FUN_02019220 add sp, #0x14 pop {r4-r7, pc} .balign 4 _020733DC: .word 0x0000069C _020733E0: .word 0x000F0E00 thumb_func_start FUN_020733E4 FUN_020733E4: ; 0x020733E4 push {r3-r7, lr} sub sp, #0x10 add r5, r0, #0x0 lsl r0, r1, #0x2 add r0, r1, r0 add r0, r0, #0x4 add r4, r5, #0x4 lsl r6, r0, #0x4 add r0, r4, r6 mov r1, #0x0 add r7, r2, #0x0 bl FUN_02019620 cmp r7, #0x0 ldr r0, _02073440 ; =0x0000069C bne _0207340E ldr r0, [r5, r0] mov r1, #0xb5 bl FUN_0200A914 b _02073416 _0207340E: ldr r0, [r5, r0] mov r1, #0xb4 bl FUN_0200A914 _02073416: mov r1, #0x0 add r5, r0, #0x0 str r1, [sp, #0x0] mov r0, #0xff str r0, [sp, #0x4] ldr r0, _02073444 ; =0x000F0E00 add r2, r5, #0x0 str r0, [sp, #0x8] add r0, r4, r6 add r3, r1, #0x0 str r1, [sp, #0xc] bl FUN_0201BDE0 add r0, r5, #0x0 bl FUN_02021A20 add r0, r4, r6 bl FUN_02019220 add sp, #0x10 pop {r3-r7, pc} .balign 4 _02073440: .word 0x0000069C _02073444: .word 0x000F0E00 thumb_func_start FUN_02073448 FUN_02073448: ; 0x02073448 push {r3-r7, lr} sub sp, #0x10 add r5, r0, #0x0 lsl r0, r1, #0x2 add r0, r1, r0 add r0, r0, #0x4 add r4, r5, #0x4 lsl r7, r0, #0x4 add r0, r4, r7 mov r1, #0x0 add r6, r2, #0x0 bl FUN_02019620 cmp r6, #0x6 ldr r0, _020734B8 ; =0x0000069C bhs _02073476 add r6, #0xa9 ldr r0, [r5, r0] add r1, r6, #0x0 bl FUN_0200A914 add r5, r0, #0x0 b _02073490 _02073476: cmp r6, #0x7 bne _02073486 ldr r0, [r5, r0] mov r1, #0xa7 bl FUN_0200A914 add r5, r0, #0x0 b _02073490 _02073486: ldr r0, [r5, r0] mov r1, #0xa8 bl FUN_0200A914 add r5, r0, #0x0 _02073490: mov r1, #0x0 str r1, [sp, #0x0] mov r0, #0xff str r0, [sp, #0x4] ldr r0, _020734BC ; =0x000F0E00 add r2, r5, #0x0 str r0, [sp, #0x8] add r0, r4, r7 add r3, r1, #0x0 str r1, [sp, #0xc] bl FUN_0201BDE0 add r0, r5, #0x0 bl FUN_02021A20 add r0, r4, r7 bl FUN_02019220 add sp, #0x10 pop {r3-r7, pc} .balign 4 _020734B8: .word 0x0000069C _020734BC: .word 0x000F0E00 thumb_func_start FUN_020734C0 FUN_020734C0: ; 0x020734C0 push {r4-r7, lr} sub sp, #0x2c add r5, r0, #0x0 ldr r0, _02073628 ; =0x000005A4 ldr r1, _0207362C ; =0x00000B25 ldr r0, [r5, r0] ldrb r1, [r5, r1] ldr r0, [r0, #0x0] bl FUN_0206B9B0 mov r1, #0xa3 mov r2, #0x0 add r4, r0, #0x0 bl FUN_020671BC add r1, sp, #0x20 strh r0, [r1, #0x0] add r0, r4, #0x0 mov r1, #0xa4 mov r2, #0x0 bl FUN_020671BC add r1, sp, #0x20 strh r0, [r1, #0x2] add r0, r4, #0x0 mov r1, #0xa5 mov r2, #0x0 bl FUN_020671BC add r1, sp, #0x20 strh r0, [r1, #0x4] add r0, r4, #0x0 mov r1, #0xa7 mov r2, #0x0 bl FUN_020671BC add r1, sp, #0x20 strh r0, [r1, #0x6] add r0, r4, #0x0 mov r1, #0xa8 mov r2, #0x0 bl FUN_020671BC add r1, sp, #0x20 strh r0, [r1, #0x8] add r0, r4, #0x0 mov r1, #0xa6 mov r2, #0x0 bl FUN_020671BC add r1, sp, #0x20 strh r0, [r1, #0xa] mov r3, #0x1 mov r1, #0x9 str r3, [sp, #0x0] mov r0, #0xe str r0, [sp, #0x4] mov r0, #0xc str r0, [sp, #0x8] mov r2, #0x0 str r2, [sp, #0xc] lsl r1, r1, #0x6 str r1, [sp, #0x10] add r1, #0x14 ldr r0, [r5, #0x0] add r1, r5, r1 bl FUN_02019064 mov r0, #0x95 lsl r0, r0, #0x2 mov r1, #0x1 add r0, r5, r0 add r2, r1, #0x0 mov r3, #0xe bl FUN_0200CCA4 mov r0, #0x95 lsl r0, r0, #0x2 add r0, r5, r0 mov r1, #0xf bl FUN_02019620 mov r4, #0x0 str r4, [sp, #0x14] add r7, r5, #0x0 add r6, sp, #0x20 _0207356C: ldr r0, _02073630 ; =0x0000069C ldr r1, [sp, #0x14] ldr r0, [r5, r0] add r1, #0xb9 bl FUN_0200A914 str r0, [sp, #0x18] mov r1, #0x0 str r4, [sp, #0x0] mov r0, #0xff str r0, [sp, #0x4] mov r0, #0x0 str r0, [sp, #0x8] mov r0, #0x95 lsl r0, r0, #0x2 ldr r2, [sp, #0x18] add r0, r5, r0 add r3, r1, #0x0 bl FUN_0201BD84 ldr r0, [sp, #0x18] bl FUN_02021A20 ldr r0, _02073630 ; =0x0000069C mov r1, #0xbf ldr r0, [r5, r0] bl FUN_0200A914 str r0, [sp, #0x1c] mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] ldr r2, _02073634 ; =0x00000B28 mov r0, #0x6a lsl r0, r0, #0x4 ldrh r3, [r6, #0x0] ldrh r2, [r7, r2] ldr r0, [r5, r0] mov r1, #0x0 sub r2, r3, r2 mov r3, #0x2 bl FUN_0200AD38 mov r0, #0x6a ldr r1, _02073638 ; =0x000006A4 lsl r0, r0, #0x4 ldr r0, [r5, r0] ldr r1, [r5, r1] ldr r2, [sp, #0x1c] bl FUN_0200B7B8 ldr r0, [sp, #0x1c] bl FUN_02021A20 ldr r1, _02073638 ; =0x000006A4 mov r0, #0x0 ldr r1, [r5, r1] add r2, r0, #0x0 bl FUN_02002E14 mov r1, #0x68 sub r3, r1, r0 str r4, [sp, #0x0] mov r0, #0xff str r0, [sp, #0x4] mov r0, #0x0 str r0, [sp, #0x8] ldr r2, _02073638 ; =0x000006A4 mov r0, #0x95 lsl r0, r0, #0x2 ldr r2, [r5, r2] add r0, r5, r0 mov r1, #0x0 bl FUN_0201BD84 ldrh r1, [r6, #0x0] ldr r0, _02073634 ; =0x00000B28 add r4, #0x10 strh r1, [r7, r0] ldr r0, [sp, #0x14] add r7, r7, #0x2 add r0, r0, #0x1 add r6, r6, #0x2 str r0, [sp, #0x14] cmp r0, #0x6 blo _0207356C mov r0, #0x95 lsl r0, r0, #0x2 add r0, r5, r0 bl FUN_02019220 add sp, #0x2c pop {r4-r7, pc} .balign 4 _02073628: .word 0x000005A4 _0207362C: .word 0x00000B25 _02073630: .word 0x0000069C _02073634: .word 0x00000B28 _02073638: .word 0x000006A4 thumb_func_start FUN_0207363C FUN_0207363C: ; 0x0207363C push {r4-r7, lr} sub sp, #0x14 add r5, r0, #0x0 mov r0, #0x20 str r0, [sp, #0x0] mov r0, #0x70 str r0, [sp, #0x4] mov r0, #0x95 lsl r0, r0, #0x2 add r0, r5, r0 mov r1, #0xf mov r2, #0x50 mov r3, #0x0 bl FUN_020196F4 ldr r0, _020736E8 ; =0x0000069C mov r1, #0xc0 ldr r0, [r5, r0] bl FUN_0200A914 str r0, [sp, #0xc] mov r0, #0x0 str r0, [sp, #0x10] add r6, r5, #0x0 add r4, r0, #0x0 _0207366E: mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] ldr r2, _020736EC ; =0x00000B28 mov r0, #0x6a lsl r0, r0, #0x4 ldrh r2, [r6, r2] ldr r0, [r5, r0] mov r1, #0x0 mov r3, #0x3 bl FUN_0200AD38 mov r0, #0x6a ldr r1, _020736F0 ; =0x000006A4 lsl r0, r0, #0x4 ldr r0, [r5, r0] ldr r1, [r5, r1] ldr r2, [sp, #0xc] bl FUN_0200B7B8 ldr r1, _020736F0 ; =0x000006A4 mov r0, #0x0 ldr r1, [r5, r1] add r2, r0, #0x0 bl FUN_02002E14 add r7, r0, #0x0 mov r3, #0x68 str r4, [sp, #0x0] mov r0, #0xff str r0, [sp, #0x4] mov r0, #0x0 str r0, [sp, #0x8] ldr r2, _020736F0 ; =0x000006A4 mov r0, #0x95 lsl r0, r0, #0x2 ldr r2, [r5, r2] add r0, r5, r0 mov r1, #0x0 sub r3, r3, r7 bl FUN_0201BD84 ldr r0, [sp, #0x10] add r6, r6, #0x2 add r0, r0, #0x1 add r4, #0x10 str r0, [sp, #0x10] cmp r0, #0x6 blo _0207366E ldr r0, [sp, #0xc] bl FUN_02021A20 mov r0, #0x95 lsl r0, r0, #0x2 add r0, r5, r0 bl FUN_02019220 add sp, #0x14 pop {r4-r7, pc} nop _020736E8: .word 0x0000069C _020736EC: .word 0x00000B28 _020736F0: .word 0x000006A4 thumb_func_start FUN_020736F4 FUN_020736F4: ; 0x020736F4 push {r4, lr} add r4, r0, #0x0 mov r0, #0x95 lsl r0, r0, #0x2 add r0, r4, r0 mov r1, #0x0 bl FUN_0200CCF8 mov r0, #0x95 lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_02019178 pop {r4, pc} thumb_func_start FUN_02073710 FUN_02073710: ; 0x02073710 push {r3-r7, lr} sub sp, #0x50 add r4, r0, #0x0 mov r0, #0x10 mov r1, #0x1 bl FUN_0201E6E4 mov r0, #0x10 mov r1, #0x1 bl FUN_0201E74C mov r0, #0x20 mov r1, #0xc bl FUN_0201C24C mov r0, #0xc bl FUN_0200BB14 ldr r1, _020737BC ; =0x000005A8 str r0, [r4, r1] ldr r0, [r4, r1] bl FUN_0200BB34 ldr r7, _020737C0 ; =0x000005AC add r2, sp, #0x30 ldr r3, _020737C4 ; =0x020F98F4 str r0, [r4, r7] ldmia r3!, {r0-r1} add r6, r2, #0x0 stmia r2!, {r0-r1} ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldmia r3!, {r0-r1} ldr r5, _020737C8 ; =0x020F98C4 stmia r2!, {r0-r1} add r3, sp, #0x1c ldmia r5!, {r0-r1} add r2, r3, #0x0 stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r5, #0x0] add r1, r6, #0x0 str r0, [r3, #0x0] sub r0, r7, #0x4 ldr r0, [r4, r0] mov r3, #0x20 bl FUN_0200BB6C sub r1, r7, #0x4 ldr r0, [r4, r1] add r1, r1, #0x4 ldr r1, [r4, r1] mov r2, #0x23 bl FUN_0200BBF0 sub r0, r7, #0x4 ldr r0, [r4, r0] bl FUN_0200BB68 mov r2, #0x1 mov r1, #0x0 lsl r2, r2, #0x14 bl FUN_02008D24 ldr r5, _020737CC ; =0x020F98D8 add r3, sp, #0x0 ldmia r5!, {r0-r1} add r2, r3, #0x0 stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r5, #0x0] sub r1, r7, #0x4 str r0, [r3, #0x0] ldr r0, [r4, r1] add r1, r1, #0x4 ldr r1, [r4, r1] bl FUN_0200BD20 add sp, #0x50 pop {r3-r7, pc} .balign 4 _020737BC: .word 0x000005A8 _020737C0: .word 0x000005AC _020737C4: .word 0x020F98F4 _020737C8: .word 0x020F98C4 _020737CC: .word 0x020F98D8 thumb_func_start FUN_020737D0 FUN_020737D0: ; 0x020737D0 push {r4-r7, lr} sub sp, #0x3c add r5, r0, #0x0 ldr r0, _02073878 ; =0x000005A4 str r3, [sp, #0x8] ldr r0, [r5, r0] add r4, r2, #0x0 ldr r0, [r0, #0x0] add r7, r1, #0x0 bl FUN_0206B9B0 lsl r1, r4, #0x10 asr r6, r1, #0x10 mov r1, #0x2c mul r1, r7 str r1, [sp, #0xc] add r2, r5, r1 ldr r1, _0207387C ; =0x00000716 str r0, [sp, #0x10] strh r6, [r2, r1] ldr r3, [sp, #0x8] add r1, r1, #0x2 lsl r3, r3, #0x10 asr r4, r3, #0x10 strh r4, [r2, r1] add r7, r7, #0x4 bl FUN_0206B6C8 add r3, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] ldr r1, _02073880 ; =0x000005A8 str r7, [sp, #0x4] ldr r0, [r5, r1] add r1, r1, #0x4 ldr r1, [r5, r1] mov r2, #0x13 bl FUN_0200C9D8 ldr r0, [sp, #0x10] mov r1, #0x4c mov r2, #0x0 bl FUN_020671BC add r2, r0, #0x0 str r7, [sp, #0x14] add r0, sp, #0x14 strh r6, [r0, #0x4] strh r4, [r0, #0x6] mov r1, #0x0 strh r1, [r0, #0x8] strh r1, [r0, #0xa] ldr r0, [sp, #0xc] str r1, [sp, #0x20] ldr r1, _02073884 ; =0x00000704 add r3, r5, r0 ldrh r0, [r3, r1] add r1, #0xd ldrb r1, [r3, r1] bl FUN_0206B7BC add r0, r0, #0x3 str r0, [sp, #0x24] mov r0, #0x1 str r0, [sp, #0x28] mov r0, #0x0 ldr r1, _02073880 ; =0x000005A8 str r0, [sp, #0x2c] str r0, [sp, #0x30] str r0, [sp, #0x34] str r0, [sp, #0x38] ldr r0, [r5, r1] add r1, r1, #0x4 ldr r1, [r5, r1] add r2, sp, #0x14 bl FUN_0200BE38 ldr r1, [sp, #0xc] add r2, r5, r1 ldr r1, _02073888 ; =0x00000724 str r0, [r2, r1] add sp, #0x3c pop {r4-r7, pc} nop _02073878: .word 0x000005A4 _0207387C: .word 0x00000716 _02073880: .word 0x000005A8 _02073884: .word 0x00000704 _02073888: .word 0x00000724 thumb_func_start FUN_0207388C FUN_0207388C: ; 0x0207388C push {r4-r7, lr} sub sp, #0x14 ldr r1, _020739AC ; =0x000005A8 add r5, r0, #0x0 ldr r0, [r5, r1] add r1, r1, #0x4 ldr r1, [r5, r1] ldr r2, _020739B0 ; =0x020F9914 bl FUN_0200BE38 ldr r1, _020739B4 ; =0x000005C8 ldr r2, _020739B8 ; =0x020F993C str r0, [r5, r1] add r0, r1, #0x0 sub r0, #0x20 sub r1, #0x1c ldr r0, [r5, r0] ldr r1, [r5, r1] bl FUN_0200BE38 ldr r1, _020739BC ; =0x000005CC ldr r2, _020739C0 ; =0x020F9964 str r0, [r5, r1] add r0, r1, #0x0 sub r0, #0x24 sub r1, #0x20 ldr r0, [r5, r0] ldr r1, [r5, r1] bl FUN_0200BE38 mov r1, #0x5d lsl r1, r1, #0x4 str r0, [r5, r1] add r0, r1, #0x0 sub r0, #0x28 sub r1, #0x24 ldr r0, [r5, r0] ldr r1, [r5, r1] ldr r2, _020739C4 ; =0x020F998C bl FUN_0200BE38 ldr r1, _020739C8 ; =0x000005D4 ldr r2, _020739CC ; =0x020F9C84 str r0, [r5, r1] add r0, r1, #0x0 sub r0, #0x2c sub r1, #0x28 ldr r0, [r5, r0] ldr r1, [r5, r1] bl FUN_0200BE38 mov r1, #0x62 lsl r1, r1, #0x4 str r0, [r5, r1] ldr r0, _020739B0 ; =0x020F9914 mov r4, #0x0 str r4, [sp, #0x4] add r6, r5, #0x0 str r0, [sp, #0x0] add r7, r5, #0x0 str r0, [sp, #0x8] str r0, [sp, #0xc] str r0, [sp, #0x10] _0207390A: ldr r0, _020739AC ; =0x000005A8 ldr r1, _020739D0 ; =0x000005AC add r3, r4, #0x0 ldr r2, [sp, #0x8] add r3, #0xa0 ldr r0, [r5, r0] ldr r1, [r5, r1] add r2, r2, r3 bl FUN_0200BE38 ldr r1, _020739D4 ; =0x000005D8 str r0, [r6, r1] ldr r1, [sp, #0x0] mov r0, #0xa4 ldrsh r1, [r1, r0] ldr r0, _020739D8 ; =0x0000071A strh r1, [r7, r0] ldr r1, [sp, #0x0] mov r0, #0xa6 ldrsh r1, [r1, r0] ldr r0, _020739DC ; =0x0000071C strh r1, [r7, r0] ldr r0, _020739D4 ; =0x000005D8 mov r1, #0x0 ldr r0, [r6, r0] bl FUN_020200A0 mov r2, #0x19 ldr r0, _020739AC ; =0x000005A8 ldr r1, _020739D0 ; =0x000005AC lsl r2, r2, #0x4 add r3, r4, r2 ldr r2, [sp, #0xc] ldr r0, [r5, r0] ldr r1, [r5, r1] add r2, r2, r3 bl FUN_0200BE38 mov r1, #0x5f lsl r1, r1, #0x4 mov r2, #0xa str r0, [r6, r1] add r0, r1, #0x0 lsl r2, r2, #0x6 sub r0, #0x48 sub r1, #0x44 add r3, r4, r2 ldr r2, [sp, #0x10] ldr r0, [r5, r0] ldr r1, [r5, r1] add r2, r2, r3 bl FUN_0200BE38 ldr r1, _020739E0 ; =0x00000608 add r4, #0x28 str r0, [r6, r1] ldr r0, [sp, #0x0] add r6, r6, #0x4 add r0, #0x28 str r0, [sp, #0x0] ldr r0, [sp, #0x4] add r7, #0x2c add r0, r0, #0x1 str r0, [sp, #0x4] cmp r0, #0x6 blo _0207390A add r0, r1, #0x0 sub r0, #0x3c ldr r0, [r5, r0] mov r1, #0x0 bl FUN_020200A0 mov r0, #0x62 lsl r0, r0, #0x4 ldr r0, [r5, r0] mov r1, #0x0 bl FUN_020200A0 add sp, #0x14 pop {r4-r7, pc} nop _020739AC: .word 0x000005A8 _020739B0: .word 0x020F9914 _020739B4: .word 0x000005C8 _020739B8: .word 0x020F993C _020739BC: .word 0x000005CC _020739C0: .word 0x020F9964 _020739C4: .word 0x020F998C _020739C8: .word 0x000005D4 _020739CC: .word 0x020F9C84 _020739D0: .word 0x000005AC _020739D4: .word 0x000005D8 _020739D8: .word 0x0000071A _020739DC: .word 0x0000071C _020739E0: .word 0x00000608 thumb_func_start FUN_020739E4 FUN_020739E4: ; 0x020739E4 push {r3-r5, lr} sub sp, #0x28 add r4, r1, #0x0 mov r1, #0x0 add r5, r0, #0x0 str r1, [sp, #0x0] add r0, sp, #0x0 strh r2, [r0, #0x4] strh r3, [r0, #0x6] strh r1, [r0, #0x8] strh r1, [r0, #0xa] mov r0, #0x1 str r1, [sp, #0x10] str r1, [sp, #0x18] str r1, [sp, #0x1c] str r1, [sp, #0x20] str r1, [sp, #0x24] ldr r1, _02073A28 ; =0x000005A8 str r0, [sp, #0xc] str r0, [sp, #0x14] ldr r0, [r5, r1] add r1, r1, #0x4 ldr r1, [r5, r1] add r2, sp, #0x0 bl FUN_0200BE38 lsl r1, r4, #0x2 add r2, r5, r1 mov r1, #0x5b lsl r1, r1, #0x4 str r0, [r2, r1] add sp, #0x28 pop {r3-r5, pc} nop _02073A28: .word 0x000005A8 thumb_func_start FUN_02073A2C FUN_02073A2C: ; 0x02073A2C push {r4, lr} ldr r1, _02073A48 ; =0x000005A8 add r4, r0, #0x0 ldr r0, [r4, r1] add r1, r1, #0x4 ldr r1, [r4, r1] bl FUN_0200BCE0 ldr r0, _02073A48 ; =0x000005A8 ldr r0, [r4, r0] bl FUN_0200BD04 pop {r4, pc} nop _02073A48: .word 0x000005A8 thumb_func_start FUN_02073A4C FUN_02073A4C: ; 0x02073A4C push {r3-r5, lr} mov r3, #0x5b lsl r3, r3, #0x4 add r1, #0xa add r5, r0, r3 lsl r4, r1, #0x2 cmp r2, #0x7 ldr r0, [r5, r4] bne _02073A66 mov r1, #0x0 bl FUN_020200A0 pop {r3-r5, pc} _02073A66: add r1, r2, #0x0 bl FUN_02020130 ldr r0, [r5, r4] mov r1, #0x1 bl FUN_020200A0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02073A78 FUN_02073A78: ; 0x02073A78 push {r3-r5, lr} mov r3, #0x5b lsl r3, r3, #0x4 add r1, #0x10 add r5, r0, r3 lsl r4, r1, #0x2 cmp r2, #0x0 bne _02073A92 ldr r0, [r5, r4] mov r1, #0x0 bl FUN_020200A0 pop {r3-r5, pc} _02073A92: add r0, r2, #0x0 bl FUN_0206EA98 cmp r0, #0x1 ldr r0, [r5, r4] bne _02073AA6 mov r1, #0x1 bl FUN_02020130 b _02073AAC _02073AA6: mov r1, #0x0 bl FUN_02020130 _02073AAC: ldr r0, [r5, r4] mov r1, #0x1 bl FUN_020200A0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02073AB8 FUN_02073AB8: ; 0x02073AB8 push {r3-r5, lr} mov r2, #0x5b lsl r2, r2, #0x4 add r1, #0x10 lsl r4, r1, #0x2 add r5, r0, r2 ldr r0, [r5, r4] mov r1, #0x1 bl FUN_02020130 ldr r0, [r5, r4] mov r1, #0x1 bl FUN_020200A0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02073AD8 FUN_02073AD8: ; 0x02073AD8 push {r4-r6, lr} ldr r6, _02073B08 ; =0x0000071E add r5, r1, #0x0 mov r4, #0x2c mul r5, r4 add r1, #0x10 lsl r1, r1, #0x2 add r4, r0, r6 add r2, #0x8 strh r2, [r4, r5] add r2, r6, #0x2 add r2, r0, r2 add r3, #0x8 add r1, r0, r1 mov r0, #0x5b strh r3, [r2, r5] lsl r0, r0, #0x4 ldr r0, [r1, r0] ldrsh r1, [r4, r5] ldrsh r2, [r2, r5] bl FUN_0200C6E4 pop {r4-r6, pc} nop _02073B08: .word 0x0000071E thumb_func_start FUN_02073B0C FUN_02073B0C: ; 0x02073B0C add r2, r0, #0x0 add r3, r1, #0x0 mov r0, #0x2c mul r3, r0 add r1, #0x16 lsl r0, r1, #0x2 add r1, r2, r0 mov r0, #0x5b add r3, r2, r3 lsl r0, r0, #0x4 ldr r2, _02073B34 ; =0x0000071E ldr r0, [r1, r0] ldrsh r1, [r3, r2] add r2, r2, #0x2 ldrsh r2, [r3, r2] add r1, #0x8 lsl r1, r1, #0x10 ldr r3, _02073B38 ; =FUN_0200C6E4 asr r1, r1, #0x10 bx r3 .balign 4 _02073B34: .word 0x0000071E _02073B38: .word FUN_0200C6E4 thumb_func_start FUN_02073B3C FUN_02073B3C: ; 0x02073B3C push {r4, lr} mov r2, #0x5b mov r4, #0x2c lsl r2, r2, #0x4 add r3, r0, r2 add r2, r1, #0x0 mul r4, r1 add r1, r0, r4 ldr r0, _02073B6C ; =0x00000712 add r2, #0x16 ldrh r0, [r1, r0] lsl r2, r2, #0x2 cmp r0, #0x0 ldr r0, [r3, r2] bne _02073B62 mov r1, #0x0 bl FUN_020200A0 pop {r4, pc} _02073B62: mov r1, #0x1 bl FUN_020200A0 pop {r4, pc} nop _02073B6C: .word 0x00000712 thumb_func_start FUN_02073B70 FUN_02073B70: ; 0x02073B70 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_020201DC cmp r4, r0 beq _02073B8E add r0, r5, #0x0 mov r1, #0x0 bl FUN_02020208 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02020130 _02073B8E: pop {r3-r5, pc} thumb_func_start FUN_02073B90 FUN_02073B90: ; 0x02073B90 push {r3, lr} add r2, r0, #0x0 ldrh r0, [r2, #0x6] cmp r0, #0x0 bne _02073B9E mov r0, #0x0 pop {r3, pc} _02073B9E: ldrh r1, [r2, #0xe] lsl r1, r1, #0x14 lsr r1, r1, #0x14 cmp r1, #0x7 beq _02073BB4 cmp r1, #0x0 beq _02073BB4 cmp r1, #0x6 beq _02073BB4 mov r0, #0x5 pop {r3, pc} _02073BB4: ldrh r1, [r2, #0x8] mov r2, #0x30 bl FUN_02079A54 cmp r0, #0x4 bhi _02073BE6 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02073BCC: ; jump table (using 16-bit offset) .short _02073BE6 - _02073BCC - 2; case 0 .short _02073BE2 - _02073BCC - 2; case 1 .short _02073BDE - _02073BCC - 2; case 2 .short _02073BDA - _02073BCC - 2; case 3 .short _02073BD6 - _02073BCC - 2; case 4 _02073BD6: mov r0, #0x1 pop {r3, pc} _02073BDA: mov r0, #0x2 pop {r3, pc} _02073BDE: mov r0, #0x3 pop {r3, pc} _02073BE2: mov r0, #0x4 pop {r3, pc} _02073BE6: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_02073BEC FUN_02073BEC: ; 0x02073BEC push {r3-r7, lr} add r6, r0, #0x0 mov r0, #0x7 lsl r0, r0, #0x8 add r0, r6, r0 mov r5, #0x0 str r0, [sp, #0x0] _02073BFA: mov r0, #0x2c add r1, r5, #0x0 mul r1, r0 ldr r0, [sp, #0x0] add r4, r0, r1 add r0, r4, #0x0 add r0, #0x29 ldrb r0, [r0, #0x0] cmp r0, #0x0 beq _02073C9A mov r0, #0xb1 lsl r0, r0, #0x4 ldrb r0, [r6, r0] cmp r0, #0x1 bne _02073C2C ldr r0, _02073CA8 ; =0x00000B0C ldrb r0, [r6, r0] cmp r0, r5 beq _02073C28 ldr r0, _02073CAC ; =0x00000B0D ldrb r0, [r6, r0] cmp r0, r5 bne _02073C2C _02073C28: mov r7, #0x0 b _02073C34 _02073C2C: add r0, r4, #0x0 bl FUN_02073B90 add r7, r0, #0x0 _02073C34: lsl r1, r7, #0x18 ldr r0, [r4, #0x24] lsr r1, r1, #0x18 bl FUN_02073B70 mov r1, #0x1 ldr r0, [r4, #0x24] lsl r1, r1, #0xc bl FUN_020201E4 ldr r0, _02073CB0 ; =0x00000B25 ldrb r0, [r6, r0] cmp r0, r5 bne _02073C8C cmp r7, #0x0 beq _02073C8C cmp r7, #0x5 beq _02073C8C ldr r0, [r4, #0x24] bl FUN_0202022C cmp r0, #0x0 ldr r0, [r4, #0x24] bne _02073C78 mov r2, #0x18 ldrsh r2, [r4, r2] mov r1, #0x16 ldrsh r1, [r4, r1] sub r2, r2, #0x3 lsl r2, r2, #0x10 asr r2, r2, #0x10 bl FUN_0200C6E4 b _02073C9A _02073C78: mov r2, #0x18 ldrsh r2, [r4, r2] mov r1, #0x16 ldrsh r1, [r4, r1] add r2, r2, #0x1 lsl r2, r2, #0x10 asr r2, r2, #0x10 bl FUN_0200C6E4 b _02073C9A _02073C8C: mov r1, #0x16 mov r2, #0x18 ldrsh r1, [r4, r1] ldrsh r2, [r4, r2] ldr r0, [r4, #0x24] bl FUN_0200C6E4 _02073C9A: add r0, r5, #0x1 lsl r0, r0, #0x10 lsr r5, r0, #0x10 cmp r5, #0x6 blo _02073BFA pop {r3-r7, pc} nop _02073CA8: .word 0x00000B0C _02073CAC: .word 0x00000B0D _02073CB0: .word 0x00000B25 thumb_func_start FUN_02073CB4 FUN_02073CB4: ; 0x02073CB4 push {r3-r6, lr} sub sp, #0x4 add r5, r0, #0x0 ldr r0, _02073D10 ; =0x00000808 add r4, r1, #0x0 ldr r1, [r5, r0] lsl r0, r4, #0x3 add r0, r1, r0 add r1, sp, #0x0 add r6, r2, #0x0 add r1, #0x1 add r2, sp, #0x0 bl FUN_0201C620 ldr r0, _02073D14 ; =0x000005A4 add r1, r4, #0x0 ldr r0, [r5, r0] add r0, #0x21 ldrb r0, [r0, #0x0] bl FUN_020714BC add r1, r0, #0x0 ldr r0, _02073D18 ; =0x000005C8 ldr r0, [r5, r0] bl FUN_02020130 ldr r0, _02073D18 ; =0x000005C8 mov r1, #0x1 ldr r0, [r5, r0] bl FUN_020200A0 ldr r0, _02073D18 ; =0x000005C8 add r2, sp, #0x0 ldrb r1, [r2, #0x1] ldrb r2, [r2, #0x0] ldr r0, [r5, r0] bl FUN_0200C6E4 ldr r0, _02073D18 ; =0x000005C8 add r1, r6, #0x0 ldr r0, [r5, r0] bl FUN_0200C664 add sp, #0x4 pop {r3-r6, pc} nop _02073D10: .word 0x00000808 _02073D14: .word 0x000005A4 _02073D18: .word 0x000005C8 thumb_func_start FUN_02073D1C FUN_02073D1C: ; 0x02073D1C push {r3-r4, lr} sub sp, #0xc add r4, r0, #0x0 lsl r0, r1, #0xc str r0, [sp, #0x0] mov r0, #0x1 lsl r1, r2, #0xc lsl r0, r0, #0x14 str r1, [sp, #0x4] add r0, r1, r0 str r0, [sp, #0x4] mov r0, #0x0 str r0, [sp, #0x8] mov r0, #0x62 lsl r0, r0, #0x4 ldr r0, [r4, r0] add r1, sp, #0x0 bl FUN_02020044 mov r0, #0x62 lsl r0, r0, #0x4 ldr r0, [r4, r0] mov r1, #0x1 bl FUN_020200A0 mov r0, #0x62 lsl r0, r0, #0x4 ldr r0, [r4, r0] mov r1, #0x0 bl FUN_02020208 mov r0, #0x62 lsl r0, r0, #0x4 ldr r0, [r4, r0] mov r1, #0x0 bl FUN_02020130 add sp, #0xc pop {r3-r4, pc} .balign 4 thumb_func_start FUN_02073D6C FUN_02073D6C: ; 0x02073D6C push {r4, lr} add r4, r0, #0x0 mov r0, #0x62 lsl r0, r0, #0x4 ldr r0, [r4, r0] bl FUN_02020128 cmp r0, #0x1 bne _02073DA6 mov r0, #0x62 lsl r0, r0, #0x4 mov r1, #0x1 ldr r0, [r4, r0] lsl r1, r1, #0xc bl FUN_020201E4 mov r0, #0x62 lsl r0, r0, #0x4 ldr r0, [r4, r0] bl FUN_0202022C cmp r0, #0x2 bne _02073DA6 mov r0, #0x62 lsl r0, r0, #0x4 ldr r0, [r4, r0] mov r1, #0x0 bl FUN_020200A0 _02073DA6: pop {r4, pc} thumb_func_start FUN_02073DA8 FUN_02073DA8: ; 0x02073DA8 lsl r1, r0, #0x2 ldr r0, _02073DB0 ; =0x020F9CAC ldr r0, [r0, r1] bx lr .balign 4 _02073DB0: .word 0x020F9CAC thumb_func_start FUN_02073DB4 FUN_02073DB4: ; 0x02073DB4 push {r4, lr} add r4, r0, #0x0 mov r0, #0x95 lsl r0, r0, #0x2 add r0, r4, r0 mov r1, #0x1 bl FUN_0200CCF8 mov r0, #0x95 lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_0201958C ldr r0, _02073DEC ; =0x000006FC mov r1, #0x0 ldr r0, [r4, r0] bl FUN_02001C5C ldr r0, _02073DF0 ; =0x000006F8 ldr r0, [r4, r0] bl FUN_02012870 mov r0, #0x95 lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_02019178 pop {r4, pc} .balign 4 _02073DEC: .word 0x000006FC _02073DF0: .word 0x000006F8 thumb_func_start FUN_02073DF4 FUN_02073DF4: ; 0x02073DF4 push {r3-r6, lr} sub sp, #0x14 add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_02073DB4 add r0, r5, #0x0 mov r1, #0x26 mov r2, #0x0 bl FUN_020731D4 mov r0, #0x3 mov r1, #0xc bl FUN_02012838 ldr r1, _02073EB0 ; =0x000006F8 str r0, [r5, r1] mov r0, #0x3 bl FUN_02073DA8 ldr r1, _02073EB0 ; =0x000006F8 add r2, r0, #0x0 ldr r0, [r5, r1] sub r1, #0x40 ldr r1, [r5, r1] bl FUN_020128A0 mov r0, #0x4 bl FUN_02073DA8 ldr r1, _02073EB0 ; =0x000006F8 add r2, r0, #0x0 ldr r0, [r5, r1] sub r1, #0x3c ldr r1, [r5, r1] bl FUN_020128A0 mov r0, #0x9 bl FUN_02073DA8 ldr r1, _02073EB0 ; =0x000006F8 add r2, r0, #0x0 ldr r0, [r5, r1] sub r1, #0x28 ldr r1, [r5, r1] bl FUN_020128A0 ldr r0, _02073EB0 ; =0x000006F8 mov r1, #0x0 ldr r0, [r5, r0] add r2, sp, #0x8 str r0, [sp, #0x8] mov r0, #0x8d lsl r0, r0, #0x2 add r0, r5, r0 str r0, [sp, #0xc] strb r1, [r2, #0x8] mov r1, #0x1 strb r1, [r2, #0x9] mov r3, #0x3 strb r3, [r2, #0xa] ldrb r6, [r2, #0xb] mov r3, #0xf bic r6, r3 strb r6, [r2, #0xb] ldrb r6, [r2, #0xb] mov r3, #0x30 bic r6, r3 strb r6, [r2, #0xb] ldrb r6, [r2, #0xb] mov r3, #0xc0 bic r6, r3 strb r6, [r2, #0xb] add r2, r1, #0x0 mov r3, #0xe bl FUN_0200CCA4 mov r0, #0xc str r0, [sp, #0x0] mov r0, #0x2 mov r2, #0x0 str r0, [sp, #0x4] add r0, sp, #0x8 mov r1, #0x8 add r3, r2, #0x0 bl FUN_02001C14 ldr r1, _02073EB4 ; =0x000006FC str r0, [r5, r1] mov r0, #0xd str r0, [r4, #0x0] add sp, #0x14 pop {r3-r6, pc} nop _02073EB0: .word 0x000006F8 _02073EB4: .word 0x000006FC thumb_func_start FUN_02073EB8 FUN_02073EB8: ; 0x02073EB8 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _02073EE0 ; =0x000006FC add r4, r1, #0x0 ldr r0, [r5, r0] mov r1, #0x0 bl FUN_02001C5C ldr r0, _02073EE4 ; =0x000006F8 ldr r0, [r5, r0] bl FUN_02012870 ldr r0, _02073EE8 ; =0x000005A4 mov r1, #0x3 ldr r0, [r5, r0] add r0, #0x23 strb r1, [r0, #0x0] mov r0, #0x1b str r0, [r4, #0x0] pop {r3-r5, pc} .balign 4 _02073EE0: .word 0x000006FC _02073EE4: .word 0x000006F8 _02073EE8: .word 0x000005A4 thumb_func_start FUN_02073EEC FUN_02073EEC: ; 0x02073EEC push {r3-r6, lr} sub sp, #0x4 add r5, r0, #0x0 mov r0, #0x8d lsl r0, r0, #0x2 add r4, r1, #0x0 add r0, r5, r0 mov r1, #0x1 bl FUN_0200CCF8 ldr r0, _02074044 ; =0x000006FC mov r1, #0x0 ldr r0, [r5, r0] bl FUN_02001C5C ldr r0, _02074048 ; =0x000006F8 ldr r0, [r5, r0] bl FUN_02012870 ldr r0, _0207404C ; =0x00000B25 ldrb r1, [r5, r0] mov r0, #0x2c mul r0, r1 add r2, r5, r0 ldr r0, _02074050 ; =0x0000070C ldrh r2, [r2, r0] ldr r0, _02074054 ; =0x000005A4 cmp r2, #0x0 bne _02073F66 ldr r0, [r5, r0] ldr r0, [r0, #0x0] bl FUN_0206B9B0 ldr r2, _02074058 ; =0x0000069C add r6, r0, #0x0 ldr r0, [r5, r2] add r2, #0xc ldr r2, [r5, r2] mov r1, #0x51 bl FUN_0200A8E0 add r0, r6, #0x0 bl FUN_020690E4 add r2, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 ldr r0, [r5, r0] mov r1, #0x0 bl FUN_0200ACF8 mov r2, #0x6a lsl r2, r2, #0x4 add r1, r2, #0x4 ldr r0, [r5, r2] add r2, #0x8 ldr r1, [r5, r1] ldr r2, [r5, r2] bl FUN_0200B7B8 b _02074018 _02073F66: ldr r0, [r5, r0] add r1, r2, #0x0 ldr r0, [r0, #0x4] mov r2, #0x1 mov r3, #0xc bl FUN_0206ED38 cmp r0, #0x1 bne _0207400A ldr r0, _02074054 ; =0x000005A4 ldr r1, _0207404C ; =0x00000B25 ldr r0, [r5, r0] ldrb r1, [r5, r1] ldr r0, [r0, #0x0] bl FUN_0206B9B0 mov r1, #0x0 str r1, [sp, #0x0] add r6, r0, #0x0 mov r1, #0x6 add r2, sp, #0x0 bl FUN_02067830 add r0, r6, #0x0 bl FUN_02069EC4 ldr r2, _02074058 ; =0x0000069C mov r1, #0x52 ldr r0, [r5, r2] add r2, #0xc ldr r2, [r5, r2] bl FUN_0200A8E0 add r0, r6, #0x0 bl FUN_020690E4 add r2, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 ldr r0, [r5, r0] mov r1, #0x0 bl FUN_0200ACF8 ldr r2, _0207404C ; =0x00000B25 mov r3, #0x6a ldrb r6, [r5, r2] mov r2, #0x2c lsl r3, r3, #0x4 mul r2, r6 ldr r0, [r5, r3] add r2, r5, r2 add r3, #0x6c ldrh r2, [r2, r3] mov r1, #0x1 bl FUN_0200AE38 mov r2, #0x6a lsl r2, r2, #0x4 add r1, r2, #0x4 ldr r0, [r5, r2] add r2, #0x8 ldr r1, [r5, r1] ldr r2, [r5, r2] bl FUN_0200B7B8 ldr r1, _0207404C ; =0x00000B25 mov r2, #0x2c ldrb r3, [r5, r1] mov r0, #0x0 add r6, r3, #0x0 mul r6, r2 ldr r3, _02074050 ; =0x0000070C add r6, r5, r6 strh r0, [r6, r3] ldrb r1, [r5, r1] add r0, r5, #0x0 mul r2, r1 add r2, r5, r2 ldrh r2, [r2, r3] bl FUN_02073A78 b _02074018 _0207400A: ldr r2, _02074058 ; =0x0000069C mov r1, #0x53 ldr r0, [r5, r2] add r2, #0x8 ldr r2, [r5, r2] bl FUN_0200A8E0 _02074018: mov r0, #0x89 lsl r0, r0, #0x2 add r0, r5, r0 mov r1, #0x1 mov r2, #0xa mov r3, #0xf bl FUN_0200D0BC mov r0, #0x89 lsl r0, r0, #0x2 add r0, r5, r0 mov r1, #0xf bl FUN_02019620 add r0, r5, #0x0 bl FUN_0207322C mov r0, #0xf str r0, [r4, #0x0] add sp, #0x4 pop {r3-r6, pc} nop _02074044: .word 0x000006FC _02074048: .word 0x000006F8 _0207404C: .word 0x00000B25 _02074050: .word 0x0000070C _02074054: .word 0x000005A4 _02074058: .word 0x0000069C thumb_func_start FUN_0207405C FUN_0207405C: ; 0x0207405C push {r4, lr} add r4, r0, #0x0 ldr r0, _020740A0 ; =0x00000B24 ldrb r0, [r4, r0] bl FUN_0201BD70 cmp r0, #0x0 bne _0207409A ldr r0, _020740A4 ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #0x3 tst r0, r1 beq _0207409A mov r0, #0x89 lsl r0, r0, #0x2 add r0, r4, r0 mov r1, #0x1 bl FUN_0200D0E0 add r0, r4, #0x0 mov r1, #0x1d mov r2, #0x1 bl FUN_020731C0 ldr r0, _020740A8 ; =0x000005C8 mov r1, #0x0 ldr r0, [r4, r0] bl FUN_0200C664 mov r0, #0x1 pop {r4, pc} _0207409A: mov r0, #0xf pop {r4, pc} nop _020740A0: .word 0x00000B24 _020740A4: .word 0x021C48B8 _020740A8: .word 0x000005C8 thumb_func_start FUN_020740AC FUN_020740AC: ; 0x020740AC push {r3-r6, lr} sub sp, #0x14 add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_02073DB4 add r0, r5, #0x0 mov r1, #0x27 mov r2, #0x0 bl FUN_020731D4 mov r0, #0x3 mov r1, #0xc bl FUN_02012838 ldr r1, _02074168 ; =0x000006F8 str r0, [r5, r1] mov r0, #0x6 bl FUN_02073DA8 ldr r1, _02074168 ; =0x000006F8 add r2, r0, #0x0 ldr r0, [r5, r1] sub r1, #0x34 ldr r1, [r5, r1] bl FUN_020128A0 mov r0, #0x7 bl FUN_02073DA8 ldr r1, _02074168 ; =0x000006F8 add r2, r0, #0x0 ldr r0, [r5, r1] sub r1, #0x30 ldr r1, [r5, r1] bl FUN_020128A0 mov r0, #0x9 bl FUN_02073DA8 ldr r1, _02074168 ; =0x000006F8 add r2, r0, #0x0 ldr r0, [r5, r1] sub r1, #0x28 ldr r1, [r5, r1] bl FUN_020128A0 ldr r0, _02074168 ; =0x000006F8 mov r1, #0x0 ldr r0, [r5, r0] add r2, sp, #0x8 str r0, [sp, #0x8] mov r0, #0x8d lsl r0, r0, #0x2 add r0, r5, r0 str r0, [sp, #0xc] strb r1, [r2, #0x8] mov r1, #0x1 strb r1, [r2, #0x9] mov r3, #0x3 strb r3, [r2, #0xa] ldrb r6, [r2, #0xb] mov r3, #0xf bic r6, r3 strb r6, [r2, #0xb] ldrb r6, [r2, #0xb] mov r3, #0x30 bic r6, r3 strb r6, [r2, #0xb] ldrb r6, [r2, #0xb] mov r3, #0xc0 bic r6, r3 strb r6, [r2, #0xb] add r2, r1, #0x0 mov r3, #0xe bl FUN_0200CCA4 mov r0, #0xc str r0, [sp, #0x0] mov r0, #0x2 mov r2, #0x0 str r0, [sp, #0x4] add r0, sp, #0x8 mov r1, #0x8 add r3, r2, #0x0 bl FUN_02001C14 ldr r1, _0207416C ; =0x000006FC str r0, [r5, r1] mov r0, #0xd str r0, [r4, #0x0] add sp, #0x14 pop {r3-r6, pc} nop _02074168: .word 0x000006F8 _0207416C: .word 0x000006FC thumb_func_start FUN_02074170 FUN_02074170: ; 0x02074170 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _02074198 ; =0x000006FC add r4, r1, #0x0 ldr r0, [r5, r0] mov r1, #0x0 bl FUN_02001C5C ldr r0, _0207419C ; =0x000006F8 ldr r0, [r5, r0] bl FUN_02012870 ldr r0, _020741A0 ; =0x000005A4 mov r1, #0x7 ldr r0, [r5, r0] add r0, #0x23 strb r1, [r0, #0x0] mov r0, #0x1b str r0, [r4, #0x0] pop {r3-r5, pc} .balign 4 _02074198: .word 0x000006FC _0207419C: .word 0x000006F8 _020741A0: .word 0x000005A4 thumb_func_start FUN_020741A4 FUN_020741A4: ; 0x020741A4 push {r3-r5, lr} add r5, r0, #0x0 mov r0, #0x8d lsl r0, r0, #0x2 add r4, r1, #0x0 add r0, r5, r0 mov r1, #0x1 bl FUN_0200CCF8 ldr r0, _020741EC ; =0x000006FC mov r1, #0x0 ldr r0, [r5, r0] bl FUN_02001C5C ldr r0, _020741F0 ; =0x000006F8 ldr r0, [r5, r0] bl FUN_02012870 add r0, r5, #0x0 mov r1, #0x2b mov r2, #0x1 bl FUN_020731E8 ldr r0, _020741F4 ; =FUN_02074200 ldr r1, _020741F8 ; =0x00000B18 ldr r2, _020741FC ; =FUN_02074278 str r0, [r5, r1] add r0, r1, #0x4 str r2, [r5, r0] mov r0, #0x16 add r1, #0xa strb r0, [r5, r1] mov r0, #0x14 str r0, [r4, #0x0] pop {r3-r5, pc} nop _020741EC: .word 0x000006FC _020741F0: .word 0x000006F8 _020741F4: .word FUN_02074200 _020741F8: .word 0x00000B18 _020741FC: .word FUN_02074278 thumb_func_start FUN_02074200 FUN_02074200: ; 0x02074200 push {r3-r5, lr} add r4, r0, #0x0 ldr r0, _02074268 ; =0x000005A4 ldr r1, _0207426C ; =0x00000B25 ldr r0, [r4, r0] ldrb r1, [r4, r1] ldr r0, [r0, #0x0] bl FUN_0206B9B0 add r1, r0, #0x0 ldr r0, _02074268 ; =0x000005A4 mov r2, #0xc ldr r0, [r4, r0] ldr r0, [r0, #0x8] bl FUN_02085644 mov r1, #0x0 mvn r1, r1 cmp r0, r1 beq _02074254 ldr r1, _0207426C ; =0x00000B25 mov r2, #0x2c ldrb r3, [r4, r1] mov r0, #0x0 add r5, r3, #0x0 mul r5, r2 ldr r3, _02074270 ; =0x0000070C add r5, r4, r5 strh r0, [r5, r3] ldrb r1, [r4, r1] add r0, r4, #0x0 mul r2, r1 add r2, r4, r2 ldrh r2, [r2, r3] bl FUN_02073A78 add r0, r4, #0x0 mov r1, #0x2e mov r2, #0x0 bl FUN_020731E8 b _0207425E _02074254: add r0, r4, #0x0 mov r1, #0x32 mov r2, #0x0 bl FUN_020731E8 _0207425E: ldr r0, _02074274 ; =0x00000B22 mov r1, #0x10 strb r1, [r4, r0] mov r0, #0x14 pop {r3-r5, pc} .balign 4 _02074268: .word 0x000005A4 _0207426C: .word 0x00000B25 _02074270: .word 0x0000070C _02074274: .word 0x00000B22 thumb_func_start FUN_02074278 FUN_02074278: ; 0x02074278 push {r4, lr} mov r1, #0x2f mov r2, #0x0 add r4, r0, #0x0 bl FUN_020731E8 ldr r0, _0207429C ; =FUN_020742A8 ldr r1, _020742A0 ; =0x00000B18 ldr r2, _020742A4 ; =FUN_02074340 str r0, [r4, r1] add r0, r1, #0x4 str r2, [r4, r0] mov r0, #0x16 add r1, #0xa strb r0, [r4, r1] mov r0, #0x14 pop {r4, pc} nop _0207429C: .word FUN_020742A8 _020742A0: .word 0x00000B18 _020742A4: .word FUN_02074340 thumb_func_start FUN_020742A8 FUN_020742A8: ; 0x020742A8 push {r3-r5, lr} ldr r1, _02074330 ; =0x00000B25 add r4, r0, #0x0 ldrb r2, [r4, r1] mov r1, #0x2c ldr r0, _02074334 ; =0x000005A4 mul r1, r2 add r2, r4, r1 ldr r1, _02074338 ; =0x0000070C ldr r0, [r4, r0] ldrh r1, [r2, r1] ldr r0, [r0, #0x4] mov r2, #0x1 mov r3, #0xc bl FUN_0206ED38 cmp r0, #0x1 bne _0207431A ldr r0, _02074334 ; =0x000005A4 ldr r1, _02074330 ; =0x00000B25 ldr r0, [r4, r0] ldrb r1, [r4, r1] ldr r0, [r0, #0x0] bl FUN_0206B9B0 mov r1, #0x0 str r1, [sp, #0x0] add r5, r0, #0x0 mov r1, #0x6 add r2, sp, #0x0 bl FUN_02067830 add r0, r5, #0x0 bl FUN_02069EC4 ldr r1, _02074330 ; =0x00000B25 mov r2, #0x2c ldrb r3, [r4, r1] mov r0, #0x0 add r5, r3, #0x0 mul r5, r2 ldr r3, _02074338 ; =0x0000070C add r5, r4, r5 strh r0, [r5, r3] ldrb r1, [r4, r1] add r0, r4, #0x0 mul r2, r1 add r2, r4, r2 ldrh r2, [r2, r3] bl FUN_02073A78 add r0, r4, #0x0 mov r1, #0x33 mov r2, #0x0 bl FUN_020731E8 b _02074324 _0207431A: add r0, r4, #0x0 mov r1, #0x53 mov r2, #0x0 bl FUN_020731E8 _02074324: ldr r0, _0207433C ; =0x00000B22 mov r1, #0x10 strb r1, [r4, r0] mov r0, #0x14 pop {r3-r5, pc} nop _02074330: .word 0x00000B25 _02074334: .word 0x000005A4 _02074338: .word 0x0000070C _0207433C: .word 0x00000B22 thumb_func_start FUN_02074340 FUN_02074340: ; 0x02074340 push {r4, lr} add r4, r0, #0x0 mov r0, #0x89 lsl r0, r0, #0x2 add r0, r4, r0 mov r1, #0x1 bl FUN_0200D0E0 add r0, r4, #0x0 mov r1, #0x1d mov r2, #0x1 bl FUN_020731C0 ldr r0, _02074368 ; =0x000005C8 mov r1, #0x0 ldr r0, [r4, r0] bl FUN_0200C664 mov r0, #0x1 pop {r4, pc} .balign 4 _02074368: .word 0x000005C8 thumb_func_start FUN_0207436C FUN_0207436C: ; 0x0207436C push {r4, lr} add r4, r0, #0x0 ldr r0, _020743A4 ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #0x3 tst r0, r1 beq _0207439E mov r0, #0x89 lsl r0, r0, #0x2 add r0, r4, r0 mov r1, #0x1 bl FUN_0200D0E0 add r0, r4, #0x0 mov r1, #0x1d mov r2, #0x1 bl FUN_020731C0 ldr r0, _020743A8 ; =0x000005C8 mov r1, #0x0 ldr r0, [r4, r0] bl FUN_0200C664 mov r0, #0x1 pop {r4, pc} _0207439E: mov r0, #0x10 pop {r4, pc} nop _020743A4: .word 0x021C48B8 _020743A8: .word 0x000005C8 thumb_func_start FUN_020743AC FUN_020743AC: ; 0x020743AC push {r3-r5, lr} add r4, r1, #0x0 ldr r1, _0207440C ; =0x00000B25 add r5, r0, #0x0 ldrb r2, [r5, r1] mov r1, #0x2c mul r1, r2 add r2, r5, r1 ldr r1, _02074410 ; =0x00000712 ldrh r2, [r2, r1] cmp r2, #0x0 bne _020743E6 sub r1, #0x16 ldr r0, [r5, r1] mov r1, #0x0 bl FUN_02001C5C ldr r0, _02074414 ; =0x000006F8 ldr r0, [r5, r0] bl FUN_02012870 ldr r0, _02074418 ; =0x000005A4 mov r1, #0x0 ldr r0, [r5, r0] add r0, #0x23 strb r1, [r0, #0x0] mov r0, #0x1b str r0, [r4, #0x0] pop {r3-r5, pc} _020743E6: bl FUN_02073DB4 add r0, r5, #0x0 mov r1, #0xc3 mov r2, #0x1 bl FUN_020731E8 ldr r0, _0207441C ; =FUN_02074428 ldr r1, _02074420 ; =0x00000B18 ldr r2, _02074424 ; =FUN_02074454 str r0, [r5, r1] add r0, r1, #0x4 str r2, [r5, r0] mov r0, #0x16 add r1, #0xa strb r0, [r5, r1] mov r0, #0x14 str r0, [r4, #0x0] pop {r3-r5, pc} .balign 4 _0207440C: .word 0x00000B25 _02074410: .word 0x00000712 _02074414: .word 0x000006F8 _02074418: .word 0x000005A4 _0207441C: .word FUN_02074428 _02074420: .word 0x00000B18 _02074424: .word FUN_02074454 thumb_func_start FUN_02074428 FUN_02074428: ; 0x02074428 push {r4, lr} add r4, r0, #0x0 ldr r0, _0207444C ; =0x000005A4 ldr r1, _02074450 ; =0x00000B25 ldr r0, [r4, r0] ldrb r1, [r4, r1] ldr r0, [r0, #0x0] bl FUN_0206B9B0 bl FUN_0206AA84 ldr r0, _0207444C ; =0x000005A4 mov r1, #0x0 ldr r0, [r4, r0] add r0, #0x23 strb r1, [r0, #0x0] mov r0, #0x1b pop {r4, pc} .balign 4 _0207444C: .word 0x000005A4 _02074450: .word 0x00000B25 thumb_func_start FUN_02074454 FUN_02074454: ; 0x02074454 push {r4, lr} add r4, r0, #0x0 mov r0, #0x89 lsl r0, r0, #0x2 add r0, r4, r0 mov r1, #0x1 bl FUN_0200D0E0 add r0, r4, #0x0 mov r1, #0x1d mov r2, #0x1 bl FUN_020731C0 ldr r0, _0207447C ; =0x000005C8 mov r1, #0x0 ldr r0, [r4, r0] bl FUN_0200C664 mov r0, #0x1 pop {r4, pc} .balign 4 _0207447C: .word 0x000005C8 thumb_func_start FUN_02074480 FUN_02074480: ; 0x02074480 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _02074528 ; =0x00000B23 add r4, r1, #0x0 ldrb r2, [r5, r0] mov r1, #0x40 orr r1, r2 strb r1, [r5, r0] ldrb r1, [r5, r0] mov r2, #0x3f bic r1, r2 add r2, r0, #0x2 ldrb r3, [r5, r2] mov r2, #0x3f and r2, r3 orr r1, r2 strb r1, [r5, r0] ldr r0, _0207452C ; =0x000005C8 mov r1, #0x0 ldr r0, [r5, r0] bl FUN_0200C664 ldr r0, _0207452C ; =0x000005C8 add r1, sp, #0x0 ldr r0, [r5, r0] add r1, #0x2 add r2, sp, #0x0 bl FUN_0200C75C ldr r0, _02074530 ; =0x000005CC add r3, sp, #0x0 mov r1, #0x2 mov r2, #0x0 ldrsh r1, [r3, r1] ldrsh r2, [r3, r2] ldr r0, [r5, r0] bl FUN_0200C6E4 ldr r0, _02074534 ; =0x000005A4 ldr r1, _02074528 ; =0x00000B23 ldr r0, [r5, r0] ldrb r1, [r5, r1] add r0, #0x21 ldrb r0, [r0, #0x0] lsl r1, r1, #0x1a lsr r1, r1, #0x1a bl FUN_020714BC add r1, r0, #0x0 ldr r0, _02074530 ; =0x000005CC add r1, r1, #0x2 ldr r0, [r5, r0] bl FUN_02020130 ldr r0, _02074530 ; =0x000005CC mov r1, #0x1 ldr r0, [r5, r0] bl FUN_020200A0 ldr r1, _02074528 ; =0x00000B23 add r0, r5, #0x0 ldrb r1, [r5, r1] lsl r1, r1, #0x1a lsr r1, r1, #0x1a bl FUN_020709FC mov r0, #0x85 lsl r0, r0, #0x2 add r0, r5, r0 mov r1, #0x1 bl FUN_0200D0E0 add r0, r5, #0x0 bl FUN_02073DB4 add r0, r5, #0x0 mov r1, #0x1e mov r2, #0x1 bl FUN_020731C0 mov r0, #0x18 str r0, [r4, #0x0] pop {r3-r5, pc} nop _02074528: .word 0x00000B23 _0207452C: .word 0x000005C8 _02074530: .word 0x000005CC _02074534: .word 0x000005A4 thumb_func_start FUN_02074538 FUN_02074538: ; 0x02074538 push {r4, lr} ldr r1, _02074578 ; =0x00000B23 add r4, r0, #0x0 ldrb r2, [r4, r1] mov r0, #0x40 bic r2, r0 strb r2, [r4, r1] ldr r0, _0207457C ; =0x000005CC mov r1, #0x0 ldr r0, [r4, r0] bl FUN_020200A0 ldr r0, _02074580 ; =0x00000B25 ldrb r1, [r4, r0] cmp r1, #0x6 bhs _0207455E add r0, r4, #0x0 bl FUN_020709FC _0207455E: ldr r1, _02074578 ; =0x00000B23 add r0, r4, #0x0 ldrb r1, [r4, r1] lsl r1, r1, #0x1a lsr r1, r1, #0x1a bl FUN_020709FC add r0, r4, #0x0 mov r1, #0x1d mov r2, #0x1 bl FUN_020731C0 pop {r4, pc} .balign 4 _02074578: .word 0x00000B23 _0207457C: .word 0x000005CC _02074580: .word 0x00000B25 thumb_func_start FUN_02074584 FUN_02074584: ; 0x02074584 push {r3-r7, lr} sub sp, #0x28 ldr r2, _020746AC ; =0x00000B25 add r6, r0, #0x0 ldrb r1, [r6, r2] add r0, r2, #0x0 sub r0, #0x19 strb r1, [r6, r0] sub r0, r2, #0x2 ldrb r0, [r6, r0] add r3, r2, #0x0 sub r3, #0x13 lsl r0, r0, #0x1a lsr r1, r0, #0x1a add r0, r2, #0x0 sub r0, #0x18 strb r1, [r6, r0] add r0, r2, #0x0 mov r1, #0x1 sub r0, #0x15 strb r1, [r6, r0] mov r0, #0x0 strb r0, [r6, r3] add r3, r2, #0x0 sub r3, #0x14 strb r0, [r6, r3] add r3, r2, #0x0 sub r3, #0x19 ldrb r3, [r6, r3] tst r3, r1 beq _020745C8 sub r2, #0x17 strb r1, [r6, r2] b _020745CC _020745C8: sub r2, #0x17 strb r0, [r6, r2] _020745CC: ldr r0, _020746B0 ; =0x00000B0D mov r1, #0x1 ldrb r2, [r6, r0] tst r2, r1 beq _020745D8 b _020745DA _020745D8: mov r1, #0x0 _020745DA: add r0, r0, #0x2 strb r1, [r6, r0] ldr r0, [r6, #0x0] mov r1, #0x2 bl FUN_0201886C str r0, [sp, #0x14] ldr r0, [r6, #0x0] mov r1, #0x1 bl FUN_0201886C ldr r1, _020746B4 ; =0x00000B0C str r0, [sp, #0x10] ldrb r3, [r6, r1] add r1, r1, #0x1 mov r2, #0x2c add r0, r3, #0x0 ldrb r3, [r6, r1] mul r0, r2 mov r4, #0x0 add r1, r3, #0x0 add r3, r6, r0 ldr r0, _020746B8 ; =0x00000715 mul r1, r2 ldrsb r2, [r3, r0] str r2, [sp, #0xc] sub r2, r0, #0x1 ldrsb r2, [r3, r2] str r2, [sp, #0x8] add r2, r6, r1 ldrsb r1, [r2, r0] sub r0, r0, #0x1 ldrsb r0, [r2, r0] str r1, [sp, #0x4] str r0, [sp, #0x0] ldr r0, _020746BC ; =0x0000080C add r0, r6, r0 str r0, [sp, #0x18] ldr r0, _020746C0 ; =0x0000098C add r0, r6, r0 str r0, [sp, #0x1c] ldr r0, _020746C4 ; =0x000008CC add r0, r6, r0 str r0, [sp, #0x20] ldr r0, _020746C8 ; =0x00000A4C add r0, r6, r0 str r0, [sp, #0x24] _02074638: ldr r0, [sp, #0xc] lsl r5, r4, #0x5 add r0, r0, r4 lsl r1, r0, #0x5 ldr r0, [sp, #0x8] mov r2, #0x20 add r0, r0, r1 lsl r7, r0, #0x1 ldr r0, [sp, #0x18] ldr r1, [sp, #0x14] add r0, r0, r5 add r1, r1, r7 blx FUN_020DF438 ldr r0, [sp, #0x1c] ldr r1, [sp, #0x10] add r0, r0, r5 add r1, r1, r7 mov r2, #0x20 blx FUN_020DF438 ldr r0, [sp, #0x4] mov r2, #0x20 add r0, r0, r4 lsl r1, r0, #0x5 ldr r0, [sp, #0x0] add r0, r0, r1 lsl r7, r0, #0x1 ldr r0, [sp, #0x20] ldr r1, [sp, #0x14] add r0, r0, r5 add r1, r1, r7 blx FUN_020DF438 ldr r0, [sp, #0x24] ldr r1, [sp, #0x10] add r0, r0, r5 add r1, r1, r7 mov r2, #0x20 blx FUN_020DF438 add r0, r4, #0x1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, #0x6 blo _02074638 ldr r0, _020746CC ; =0x000005C8 mov r1, #0x0 ldr r0, [r6, r0] bl FUN_020200A0 ldr r0, _020746D0 ; =0x000005CC mov r1, #0x0 ldr r0, [r6, r0] bl FUN_020200A0 add sp, #0x28 pop {r3-r7, pc} .balign 4 _020746AC: .word 0x00000B25 _020746B0: .word 0x00000B0D _020746B4: .word 0x00000B0C _020746B8: .word 0x00000715 _020746BC: .word 0x0000080C _020746C0: .word 0x0000098C _020746C4: .word 0x000008CC _020746C8: .word 0x00000A4C _020746CC: .word 0x000005C8 _020746D0: .word 0x000005CC thumb_func_start FUN_020746D4 FUN_020746D4: ; 0x020746D4 push {r3-r5, lr} ldr r1, _02074828 ; =0x0000080C add r5, r0, #0x0 ldr r2, _0207482C ; =0x00000305 add r4, r5, r1 ldrb r1, [r4, r2] cmp r1, #0x4 bls _020746E6 b _02074822 _020746E6: add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _020746F2: ; jump table (using 16-bit offset) .short _020746FC - _020746F2 - 2; case 0 .short _0207470C - _020746F2 - 2; case 1 .short _0207475C - _020746F2 - 2; case 2 .short _02074770 - _020746F2 - 2; case 3 .short _020747CE - _020746F2 - 2; case 4 _020746FC: mov r0, #0x6a lsl r0, r0, #0x4 bl FUN_020054C8 ldr r0, _0207482C ; =0x00000305 mov r1, #0x1 strb r1, [r4, r0] b _02074822 _0207470C: add r1, r2, #0x1 ldrb r1, [r4, r1] add r3, r1, #0x1 add r1, r2, #0x1 strb r3, [r4, r1] mov r1, #0x0 bl FUN_02074848 add r0, r5, #0x0 mov r1, #0x1 bl FUN_02074848 ldr r2, _02074830 ; =0x00000302 add r0, r5, #0x0 ldrb r2, [r4, r2] mov r1, #0x0 bl FUN_0207499C ldr r2, _02074834 ; =0x00000303 add r0, r5, #0x0 ldrb r2, [r4, r2] mov r1, #0x1 bl FUN_0207499C ldr r0, [r5, #0x0] mov r1, #0x2 bl FUN_0201AC68 ldr r0, [r5, #0x0] mov r1, #0x1 bl FUN_0201AC68 ldr r0, _02074838 ; =0x00000306 ldrb r1, [r4, r0] cmp r1, #0x10 bne _02074822 mov r1, #0x2 sub r0, r0, #0x1 strb r1, [r4, r0] b _02074822 _0207475C: bl FUN_02074AF4 mov r0, #0x6a lsl r0, r0, #0x4 bl FUN_020054C8 ldr r0, _0207482C ; =0x00000305 mov r1, #0x3 strb r1, [r4, r0] b _02074822 _02074770: add r1, r2, #0x1 ldrb r1, [r4, r1] sub r3, r1, #0x1 add r1, r2, #0x1 strb r3, [r4, r1] mov r1, #0x0 bl FUN_02074848 add r0, r5, #0x0 mov r1, #0x1 bl FUN_02074848 ldr r2, _02074830 ; =0x00000302 add r0, r5, #0x0 ldrb r3, [r4, r2] mov r2, #0x1 mov r1, #0x0 eor r2, r3 lsl r2, r2, #0x18 lsr r2, r2, #0x18 bl FUN_0207499C ldr r2, _02074834 ; =0x00000303 mov r1, #0x1 ldrb r2, [r4, r2] add r0, r5, #0x0 eor r2, r1 lsl r2, r2, #0x18 lsr r2, r2, #0x18 bl FUN_0207499C ldr r0, [r5, #0x0] mov r1, #0x2 bl FUN_0201AC68 ldr r0, [r5, #0x0] mov r1, #0x1 bl FUN_0201AC68 ldr r0, _02074838 ; =0x00000306 ldrb r1, [r4, r0] cmp r1, #0x0 bne _02074822 mov r1, #0x4 sub r0, r0, #0x1 strb r1, [r4, r0] b _02074822 _020747CE: ldr r0, _0207483C ; =0x000005A4 sub r1, r2, #0x5 ldr r0, [r5, r0] sub r2, r2, #0x4 ldrb r1, [r4, r1] ldrb r2, [r4, r2] ldr r0, [r0, #0x0] bl FUN_0206BA38 ldr r0, _02074840 ; =0x000005C8 mov r1, #0x1 ldr r0, [r5, r0] bl FUN_020200A0 mov r0, #0xc1 mov r1, #0x0 lsl r0, r0, #0x2 strb r1, [r4, r0] ldr r1, _02074844 ; =0x00000B23 mov r0, #0x40 ldrb r2, [r5, r1] bic r2, r0 strb r2, [r5, r1] add r1, r1, #0x2 ldrb r1, [r5, r1] add r0, r5, #0x0 bl FUN_020709FC ldr r1, _02074844 ; =0x00000B23 add r0, r5, #0x0 ldrb r1, [r5, r1] lsl r1, r1, #0x1a lsr r1, r1, #0x1a bl FUN_020709FC add r0, r5, #0x0 mov r1, #0x1d mov r2, #0x0 bl FUN_020731C0 mov r0, #0x1 pop {r3-r5, pc} _02074822: mov r0, #0x0 pop {r3-r5, pc} nop _02074828: .word 0x0000080C _0207482C: .word 0x00000305 _02074830: .word 0x00000302 _02074834: .word 0x00000303 _02074838: .word 0x00000306 _0207483C: .word 0x000005A4 _02074840: .word 0x000005C8 _02074844: .word 0x00000B23 thumb_func_start FUN_02074848 FUN_02074848: ; 0x02074848 push {r3-r7, lr} sub sp, #0x28 add r5, r0, #0x0 ldr r0, _02074990 ; =0x0000080C str r1, [sp, #0x1c] ldr r1, [sp, #0x1c] add r4, r5, r0 add r2, r4, r1 mov r1, #0x3 lsl r1, r1, #0x8 ldrb r2, [r2, r1] mov r1, #0x2c mul r1, r2 add r2, r5, r1 add r1, r0, #0x0 sub r1, #0xf8 ldrsb r7, [r2, r1] sub r0, #0xf7 ldrb r6, [r2, r0] lsl r0, r7, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x20] str r6, [sp, #0x0] mov r1, #0x10 str r1, [sp, #0x4] mov r0, #0x6 str r0, [sp, #0x8] str r1, [sp, #0xc] ldr r0, [r5, #0x0] ldr r3, [sp, #0x20] mov r1, #0x2 mov r2, #0x0 bl FUN_02018540 str r6, [sp, #0x0] mov r1, #0x10 str r1, [sp, #0x4] mov r0, #0x6 str r0, [sp, #0x8] str r1, [sp, #0xc] ldr r0, [r5, #0x0] ldr r3, [sp, #0x20] mov r1, #0x1 mov r2, #0x0 bl FUN_02018540 ldr r0, [sp, #0x1c] add r1, r4, r0 ldr r0, _02074994 ; =0x00000302 ldrb r1, [r1, r0] cmp r1, #0x0 bne _02074918 add r0, r0, #0x4 ldrb r2, [r4, r0] ldr r0, [sp, #0x1c] mov r3, #0x10 add r7, r0, #0x0 sub r0, r3, r2 lsl r0, r0, #0x18 mov r1, #0xc0 lsr r0, r0, #0x18 mul r7, r1 str r0, [sp, #0x0] mov r1, #0x6 str r1, [sp, #0x4] add r0, r4, r7 str r0, [sp, #0x8] str r2, [sp, #0xc] mov r0, #0x0 str r0, [sp, #0x10] str r3, [sp, #0x14] str r1, [sp, #0x18] ldr r0, [r5, #0x0] ldr r2, [sp, #0x20] mov r1, #0x2 add r3, r6, #0x0 bl FUN_02018170 ldr r0, _02074998 ; =0x00000306 mov r3, #0x10 ldrb r2, [r4, r0] mov r1, #0x6 sub r0, r3, r2 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] lsl r0, r1, #0x6 add r0, r4, r0 str r1, [sp, #0x4] add r0, r0, r7 str r0, [sp, #0x8] str r2, [sp, #0xc] mov r0, #0x0 str r0, [sp, #0x10] str r3, [sp, #0x14] str r1, [sp, #0x18] ldr r0, [r5, #0x0] ldr r2, [sp, #0x20] mov r1, #0x1 add r3, r6, #0x0 bl FUN_02018170 add sp, #0x28 pop {r3-r7, pc} _02074918: ldr r1, [sp, #0x1c] mov r2, #0xc0 mul r2, r1 str r2, [sp, #0x24] add r0, r0, #0x4 ldrb r2, [r4, r0] mov r3, #0x10 ldr r1, [sp, #0x24] sub r0, r3, r2 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x6 str r0, [sp, #0x4] add r1, r4, r1 str r1, [sp, #0x8] mov r1, #0x0 str r1, [sp, #0xc] str r1, [sp, #0x10] str r3, [sp, #0x14] add r2, r7, r2 str r0, [sp, #0x18] lsl r2, r2, #0x18 ldr r0, [r5, #0x0] mov r1, #0x2 lsr r2, r2, #0x18 add r3, r6, #0x0 bl FUN_02018170 ldr r0, _02074998 ; =0x00000306 ldrb r2, [r4, r0] mov r0, #0x10 sub r0, r0, r2 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x6 lsl r1, r0, #0x6 add r3, r4, r1 ldr r1, [sp, #0x24] add r2, r7, r2 add r1, r3, r1 str r0, [sp, #0x4] str r1, [sp, #0x8] mov r1, #0x0 str r1, [sp, #0xc] str r1, [sp, #0x10] mov r1, #0x10 str r1, [sp, #0x14] str r0, [sp, #0x18] lsl r2, r2, #0x18 ldr r0, [r5, #0x0] mov r1, #0x1 lsr r2, r2, #0x18 add r3, r6, #0x0 bl FUN_02018170 add sp, #0x28 pop {r3-r7, pc} nop _02074990: .word 0x0000080C _02074994: .word 0x00000302 _02074998: .word 0x00000306 thumb_func_start FUN_0207499C FUN_0207499C: ; 0x0207499C push {r3-r7, lr} add r5, r0, #0x0 ldr r0, _02074AE0 ; =0x0000080C add r4, r1, #0x0 add r1, r5, r0 mov r0, #0x3 lsl r0, r0, #0x8 add r6, r1, r0 ldrb r0, [r6, r4] add r7, r2, #0x0 add r2, sp, #0x0 lsl r0, r0, #0x2 add r1, r5, r0 mov r0, #0x5b lsl r0, r0, #0x4 ldr r0, [r1, r0] add r1, sp, #0x0 add r1, #0x2 bl FUN_0200C75C cmp r7, #0x0 ldr r0, _02074AE4 ; =0x00000716 bne _02074A04 ldrb r3, [r6, r4] mov r7, #0x2c add r2, r5, r0 add r1, r3, #0x0 mul r1, r7 ldrsh r3, [r2, r1] sub r3, #0x8 strh r3, [r2, r1] ldrb r3, [r6, r4] add r1, r0, #0x4 add r2, r5, r1 add r1, r3, #0x0 mul r1, r7 ldrsh r3, [r2, r1] add r0, #0x8 add r0, r5, r0 sub r3, #0x8 strh r3, [r2, r1] ldrb r1, [r6, r4] add r2, r1, #0x0 mul r2, r7 ldrsh r1, [r0, r2] sub r1, #0x8 strh r1, [r0, r2] add r1, sp, #0x0 mov r0, #0x2 ldrsh r0, [r1, r0] sub r0, #0x8 b _02074A3C _02074A04: ldrb r3, [r6, r4] mov r7, #0x2c add r2, r5, r0 add r1, r3, #0x0 mul r1, r7 ldrsh r3, [r2, r1] add r3, #0x8 strh r3, [r2, r1] ldrb r3, [r6, r4] add r1, r0, #0x4 add r2, r5, r1 add r1, r3, #0x0 mul r1, r7 ldrsh r3, [r2, r1] add r0, #0x8 add r0, r5, r0 add r3, #0x8 strh r3, [r2, r1] ldrb r1, [r6, r4] add r2, r1, #0x0 mul r2, r7 ldrsh r1, [r0, r2] add r1, #0x8 strh r1, [r0, r2] add r1, sp, #0x0 mov r0, #0x2 ldrsh r0, [r1, r0] add r0, #0x8 _02074A3C: strh r0, [r1, #0x2] ldrb r1, [r6, r4] mov r0, #0x2c ldr r2, _02074AE8 ; =0x00000724 mul r0, r1 add r3, r5, r0 add r1, r2, #0x0 ldr r0, [r3, r2] sub r1, #0xe sub r2, #0xc ldrsh r1, [r3, r1] ldrsh r2, [r3, r2] bl FUN_0200C6E4 ldrb r2, [r6, r4] mov r0, #0x2c ldr r3, _02074AEC ; =0x0000071A add r1, r2, #0x0 add r2, #0xa mul r1, r0 lsl r0, r2, #0x2 add r2, r5, r0 mov r0, #0x5b lsl r0, r0, #0x4 ldr r0, [r2, r0] add r2, r5, r1 ldrsh r1, [r2, r3] add r3, r3, #0x2 ldrsh r2, [r2, r3] bl FUN_0200C6E4 ldrb r2, [r6, r4] mov r0, #0x2c ldr r3, _02074AF0 ; =0x0000071E add r1, r2, #0x0 add r2, #0x10 mul r1, r0 lsl r0, r2, #0x2 add r2, r5, r0 mov r0, #0x5b lsl r0, r0, #0x4 ldr r0, [r2, r0] add r2, r5, r1 ldrsh r1, [r2, r3] add r3, r3, #0x2 ldrsh r2, [r2, r3] bl FUN_0200C6E4 ldrb r2, [r6, r4] mov r0, #0x2c ldr r3, _02074AF0 ; =0x0000071E add r1, r2, #0x0 add r2, #0x16 mul r1, r0 lsl r0, r2, #0x2 add r2, r5, r0 mov r0, #0x5b lsl r0, r0, #0x4 ldr r0, [r2, r0] add r2, r5, r1 ldrsh r1, [r2, r3] add r3, r3, #0x2 ldrsh r2, [r2, r3] add r1, #0x8 lsl r1, r1, #0x10 asr r1, r1, #0x10 bl FUN_0200C6E4 ldrb r0, [r6, r4] add r3, sp, #0x0 mov r2, #0x0 lsl r0, r0, #0x2 add r1, r5, r0 mov r0, #0x5b lsl r0, r0, #0x4 ldr r0, [r1, r0] mov r1, #0x2 ldrsh r1, [r3, r1] ldrsh r2, [r3, r2] bl FUN_0200C6E4 pop {r3-r7, pc} .balign 4 _02074AE0: .word 0x0000080C _02074AE4: .word 0x00000716 _02074AE8: .word 0x00000724 _02074AEC: .word 0x0000071A _02074AF0: .word 0x0000071E thumb_func_start FUN_02074AF4 FUN_02074AF4: ; 0x02074AF4 push {r4-r7, lr} sub sp, #0x1c add r5, r0, #0x0 ldr r0, _02074DD0 ; =0x0000080C mov r1, #0x2c add r4, r5, r0 mov r0, #0xc bl FUN_02016998 add r7, r0, #0x0 mov r0, #0x3 lsl r0, r0, #0x8 ldrb r1, [r4, r0] mov r0, #0x2c add r3, r7, #0x0 mul r0, r1 add r1, r5, r0 mov r0, #0x7 lsl r0, r0, #0x8 add r6, r1, r0 mov r2, #0x5 _02074B1E: ldmia r6!, {r0-r1} stmia r3!, {r0-r1} sub r2, r2, #0x1 bne _02074B1E ldr r0, [r6, #0x0] mov r1, #0x3 lsl r1, r1, #0x8 str r0, [r3, #0x0] ldrb r0, [r4, r1] add r1, r1, #0x1 ldrb r1, [r4, r1] mov r2, #0x2c add r3, r0, #0x0 mul r3, r2 mul r2, r1 mov r1, #0x7 add r0, r5, r3 lsl r1, r1, #0x8 add r2, r5, r2 add r6, r2, r1 add r3, r0, r1 mov r2, #0x5 _02074B4A: ldmia r6!, {r0-r1} stmia r3!, {r0-r1} sub r2, r2, #0x1 bne _02074B4A ldr r0, [r6, #0x0] add r6, r7, #0x0 str r0, [r3, #0x0] ldr r0, _02074DD4 ; =0x00000301 mov r2, #0x5 ldrb r1, [r4, r0] mov r0, #0x2c mul r0, r1 add r1, r5, r0 mov r0, #0x7 lsl r0, r0, #0x8 add r3, r1, r0 _02074B6A: ldmia r6!, {r0-r1} stmia r3!, {r0-r1} sub r2, r2, #0x1 bne _02074B6A ldr r0, [r6, #0x0] add r1, r7, #0x0 str r0, [r3, #0x0] mov r0, #0xc bl FUN_02016A8C mov r1, #0x3 lsl r1, r1, #0x8 ldrb r3, [r4, r1] ldr r0, _02074DD8 ; =0x00000716 add r2, r5, r0 mov r0, #0x2c add r7, r3, #0x0 mul r7, r0 ldrsh r3, [r2, r7] str r3, [sp, #0x0] add r3, r1, #0x1 ldrb r3, [r4, r3] add r6, r3, #0x0 mul r6, r0 ldr r3, _02074DD8 ; =0x00000716 add r6, r5, r6 ldrsh r3, [r6, r3] strh r3, [r2, r7] add r2, r1, #0x1 ldrb r2, [r4, r2] add r3, r2, #0x0 mul r3, r0 add r6, r5, r3 ldr r3, [sp, #0x0] ldr r2, _02074DD8 ; =0x00000716 strh r3, [r6, r2] add r2, r2, #0x2 add r3, r5, r2 ldrb r2, [r4, r1] add r7, r2, #0x0 mul r7, r0 ldrsh r2, [r3, r7] str r2, [sp, #0x4] add r2, r1, #0x1 ldrb r2, [r4, r2] add r6, r2, #0x0 mul r6, r0 add r2, r5, r6 ldr r6, _02074DD8 ; =0x00000716 add r6, r6, #0x2 ldrsh r2, [r2, r6] strh r2, [r3, r7] add r2, r1, #0x1 ldrb r2, [r4, r2] add r3, r2, #0x0 mul r3, r0 add r2, r5, r3 ldr r3, _02074DD8 ; =0x00000716 add r6, r3, #0x2 ldr r3, [sp, #0x4] strh r3, [r2, r6] ldr r2, _02074DD8 ; =0x00000716 add r2, r2, #0x4 add r3, r5, r2 ldrb r2, [r4, r1] add r7, r2, #0x0 mul r7, r0 ldrsh r2, [r3, r7] str r2, [sp, #0x8] add r2, r1, #0x1 ldrb r2, [r4, r2] add r6, r2, #0x0 mul r6, r0 add r2, r5, r6 ldr r6, _02074DD8 ; =0x00000716 add r6, r6, #0x4 ldrsh r2, [r2, r6] strh r2, [r3, r7] add r2, r1, #0x1 ldrb r2, [r4, r2] add r3, r2, #0x0 mul r3, r0 add r2, r5, r3 ldr r3, _02074DD8 ; =0x00000716 add r6, r3, #0x4 ldr r3, [sp, #0x8] strh r3, [r2, r6] ldr r2, _02074DD8 ; =0x00000716 add r2, r2, #0x6 add r3, r5, r2 ldrb r2, [r4, r1] add r7, r2, #0x0 mul r7, r0 ldrsh r2, [r3, r7] str r2, [sp, #0xc] add r2, r1, #0x1 ldrb r2, [r4, r2] add r6, r2, #0x0 mul r6, r0 add r2, r5, r6 ldr r6, _02074DD8 ; =0x00000716 add r6, r6, #0x6 ldrsh r2, [r2, r6] strh r2, [r3, r7] add r2, r1, #0x1 ldrb r2, [r4, r2] add r3, r2, #0x0 mul r3, r0 add r2, r5, r3 ldr r3, _02074DD8 ; =0x00000716 add r6, r3, #0x6 ldr r3, [sp, #0xc] strh r3, [r2, r6] ldr r2, _02074DD8 ; =0x00000716 add r2, #0x8 add r6, r5, r2 ldrb r2, [r4, r1] add r7, r2, #0x0 mul r7, r0 ldrsh r2, [r6, r7] str r2, [sp, #0x10] add r2, r1, #0x1 ldrb r2, [r4, r2] add r3, r2, #0x0 mul r3, r0 add r2, r5, r3 ldr r3, _02074DD8 ; =0x00000716 add r3, #0x8 ldrsh r2, [r2, r3] strh r2, [r6, r7] add r2, r1, #0x1 ldrb r2, [r4, r2] add r3, r2, #0x0 mul r3, r0 add r6, r5, r3 ldr r3, _02074DD8 ; =0x00000716 ldr r2, [sp, #0x10] add r3, #0x8 strh r2, [r6, r3] ldr r2, _02074DD8 ; =0x00000716 add r2, #0xa add r6, r5, r2 ldrb r2, [r4, r1] add r7, r2, #0x0 mul r7, r0 ldrsh r2, [r6, r7] str r2, [sp, #0x14] add r2, r1, #0x1 ldrb r2, [r4, r2] add r3, r2, #0x0 mul r3, r0 add r2, r5, r3 ldr r3, _02074DD8 ; =0x00000716 add r3, #0xa ldrsh r2, [r2, r3] strh r2, [r6, r7] add r2, r1, #0x1 ldrb r2, [r4, r2] add r3, r2, #0x0 mul r3, r0 add r6, r5, r3 ldr r3, _02074DD8 ; =0x00000716 ldr r2, [sp, #0x14] add r3, #0xa strh r2, [r6, r3] ldr r2, _02074DD8 ; =0x00000716 sub r2, r2, #0x2 add r3, r5, r2 ldrb r2, [r4, r1] add r7, r2, #0x0 mul r7, r0 ldrsb r2, [r3, r7] str r2, [sp, #0x18] add r2, r1, #0x1 ldrb r2, [r4, r2] add r6, r2, #0x0 mul r6, r0 add r2, r5, r6 ldr r6, _02074DD8 ; =0x00000716 sub r6, r6, #0x2 ldrsb r2, [r2, r6] strb r2, [r3, r7] add r2, r1, #0x1 ldrb r2, [r4, r2] add r3, r2, #0x0 mul r3, r0 add r2, r5, r3 ldr r3, _02074DD8 ; =0x00000716 sub r6, r3, #0x2 ldr r3, [sp, #0x18] strb r3, [r2, r6] ldr r2, _02074DD8 ; =0x00000716 sub r2, r2, #0x1 add r6, r5, r2 ldrb r2, [r4, r1] add r7, r2, #0x0 mul r7, r0 ldrsb r2, [r6, r7] mov r12, r2 add r2, r1, #0x1 ldrb r2, [r4, r2] add r3, r2, #0x0 ldr r2, _02074DD8 ; =0x00000716 mul r3, r0 add r3, r5, r3 sub r2, r2, #0x1 ldrsb r2, [r3, r2] strb r2, [r6, r7] add r2, r1, #0x1 ldrb r2, [r4, r2] mul r0, r2 ldr r2, _02074DD8 ; =0x00000716 add r0, r5, r0 sub r3, r2, #0x1 mov r2, r12 strb r2, [r0, r3] ldrb r1, [r4, r1] add r0, r5, #0x0 bl FUN_02072D1C ldr r1, _02074DD4 ; =0x00000301 add r0, r5, #0x0 ldrb r1, [r4, r1] bl FUN_02072D1C mov r1, #0x3 lsl r1, r1, #0x8 ldrb r1, [r4, r1] add r0, r5, #0x0 bl FUN_02072E14 ldr r1, _02074DD4 ; =0x00000301 add r0, r5, #0x0 ldrb r1, [r4, r1] bl FUN_02072E14 add r0, r5, #0x0 mov r1, #0x0 bl FUN_02074DE4 add r0, r5, #0x0 mov r1, #0x1 bl FUN_02074DE4 mov r0, #0x3 lsl r0, r0, #0x8 ldrb r1, [r4, r0] mov r2, #0x2c add r0, r5, #0x0 mul r2, r1 add r3, r5, r2 ldr r2, _02074DDC ; =0x0000070E ldrh r2, [r3, r2] lsl r2, r2, #0x14 lsr r2, r2, #0x14 lsl r2, r2, #0x18 lsr r2, r2, #0x18 bl FUN_02073A4C ldr r0, _02074DD4 ; =0x00000301 mov r2, #0x2c ldrb r1, [r4, r0] add r0, r5, #0x0 mul r2, r1 add r3, r5, r2 ldr r2, _02074DDC ; =0x0000070E ldrh r2, [r3, r2] lsl r2, r2, #0x14 lsr r2, r2, #0x14 lsl r2, r2, #0x18 lsr r2, r2, #0x18 bl FUN_02073A4C mov r0, #0x3 lsl r0, r0, #0x8 ldrb r1, [r4, r0] mov r2, #0x2c add r0, r5, #0x0 mul r2, r1 add r3, r5, r2 ldr r2, _02074DE0 ; =0x0000070C ldrh r2, [r3, r2] bl FUN_02073A78 ldr r0, _02074DD4 ; =0x00000301 mov r2, #0x2c ldrb r1, [r4, r0] add r0, r5, #0x0 mul r2, r1 add r3, r5, r2 ldr r2, _02074DE0 ; =0x0000070C ldrh r2, [r3, r2] bl FUN_02073A78 mov r1, #0x3 lsl r1, r1, #0x8 ldrb r1, [r4, r1] add r0, r5, #0x0 bl FUN_02073B3C ldr r1, _02074DD4 ; =0x00000301 add r0, r5, #0x0 ldrb r1, [r4, r1] bl FUN_02073B3C add sp, #0x1c pop {r4-r7, pc} .balign 4 _02074DD0: .word 0x0000080C _02074DD4: .word 0x00000301 _02074DD8: .word 0x00000716 _02074DDC: .word 0x0000070E _02074DE0: .word 0x0000070C thumb_func_start FUN_02074DE4 FUN_02074DE4: ; 0x02074DE4 push {r3-r7, lr} add r7, r1, #0x0 ldr r1, _02074E6C ; =0x0000080C add r6, r0, #0x0 add r4, r6, r1 mov r1, #0xc0 mul r1, r7 add r5, r4, r1 bl FUN_020703BC add r3, r0, #0x0 mov r0, #0x3 add r1, r4, r7 lsl r0, r0, #0x8 ldrb r1, [r1, r0] mov r0, #0x2c mul r0, r1 add r1, r6, r0 mov r0, #0x71 lsl r0, r0, #0x4 ldrb r0, [r1, r0] cmp r0, #0x1 bne _02074E3C mov r3, #0xf mov r1, #0x0 lsl r3, r3, #0xc mov r4, #0x17 _02074E1A: lsl r0, r1, #0x1 add r2, r5, r0 add r2, #0x6c ldrh r2, [r2, #0x0] add r0, r5, r0 add r0, #0x6c and r2, r3 lsl r2, r2, #0x10 lsr r2, r2, #0x10 orr r2, r4 strh r2, [r0, #0x0] add r0, r1, #0x1 lsl r0, r0, #0x10 lsr r1, r0, #0x10 cmp r1, #0x9 blo _02074E1A pop {r3-r7, pc} _02074E3C: mov r6, #0xf ldr r0, _02074E70 ; =0x00000FFF mov r4, #0x0 lsl r6, r6, #0xc _02074E44: lsl r2, r4, #0x1 add r1, r5, r2 add r1, #0x6c ldrh r1, [r1, #0x0] ldrh r7, [r3, r2] and r1, r6 lsl r1, r1, #0x10 lsr r1, r1, #0x10 and r7, r0 orr r7, r1 add r1, r5, r2 add r1, #0x6c strh r7, [r1, #0x0] add r1, r4, #0x1 lsl r1, r1, #0x10 lsr r4, r1, #0x10 cmp r4, #0x9 blo _02074E44 pop {r3-r7, pc} nop _02074E6C: .word 0x0000080C _02074E70: .word 0x00000FFF thumb_func_start FUN_02074E74 FUN_02074E74: ; 0x02074E74 push {r4-r6, lr} add r5, r0, #0x0 mov r0, #0x85 lsl r0, r0, #0x2 add r6, r1, #0x0 add r0, r5, r0 mov r1, #0x1 bl FUN_0200D0E0 add r0, r5, #0x0 bl FUN_02073DB4 ldr r0, _02074F5C ; =0x000005A4 mov r4, #0x0 ldr r0, [r5, r0] add r1, r0, #0x0 add r1, #0x32 ldrb r1, [r1, #0x0] lsl r1, r1, #0x18 lsr r1, r1, #0x1c beq _02074EFA _02074E9E: add r2, r0, r4 add r2, #0x2c ldrb r2, [r2, #0x0] cmp r2, #0x0 bne _02074EF0 ldr r1, _02074F60 ; =0x00000B25 add r0, r0, r4 ldrb r2, [r5, r1] add r0, #0x2c add r2, r2, #0x1 strb r2, [r0, #0x0] ldrb r1, [r5, r1] add r0, r5, #0x0 bl FUN_02073024 add r0, r5, #0x0 mov r1, #0x22 mov r2, #0x1 bl FUN_020731C0 ldr r0, _02074F64 ; =0x000005C8 mov r1, #0x0 ldr r0, [r5, r0] bl FUN_0200C664 ldr r0, _02074F5C ; =0x000005A4 ldr r0, [r5, r0] add r0, #0x32 ldrb r0, [r0, #0x0] lsl r0, r0, #0x18 lsr r0, r0, #0x1c sub r0, r0, #0x1 cmp r4, r0 bne _02074EEA add r0, r5, #0x0 mov r1, #0x6 bl FUN_02070E60 _02074EEA: mov r0, #0x1 str r0, [r6, #0x0] pop {r4-r6, pc} _02074EF0: add r2, r4, #0x1 lsl r2, r2, #0x18 lsr r4, r2, #0x18 cmp r4, r1 blo _02074E9E _02074EFA: cmp r1, #0x5 bhi _02074F50 add r0, r1, r1 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02074F0A: ; jump table (using 16-bit offset) .short _02074F50 - _02074F0A - 2; case 0 .short _02074F16 - _02074F0A - 2; case 1 .short _02074F22 - _02074F0A - 2; case 2 .short _02074F2E - _02074F0A - 2; case 3 .short _02074F3A - _02074F0A - 2; case 4 .short _02074F46 - _02074F0A - 2; case 5 _02074F16: add r0, r5, #0x0 mov r1, #0x7b mov r2, #0x1 bl FUN_020731E8 b _02074F50 _02074F22: add r0, r5, #0x0 mov r1, #0x64 mov r2, #0x1 bl FUN_020731E8 b _02074F50 _02074F2E: add r0, r5, #0x0 mov r1, #0x7c mov r2, #0x1 bl FUN_020731E8 b _02074F50 _02074F3A: add r0, r5, #0x0 mov r1, #0x7d mov r2, #0x1 bl FUN_020731E8 b _02074F50 _02074F46: add r0, r5, #0x0 mov r1, #0x7e mov r2, #0x1 bl FUN_020731E8 _02074F50: ldr r0, _02074F68 ; =0x00000B22 mov r1, #0x13 strb r1, [r5, r0] mov r0, #0x14 str r0, [r6, #0x0] pop {r4-r6, pc} .balign 4 _02074F5C: .word 0x000005A4 _02074F60: .word 0x00000B25 _02074F64: .word 0x000005C8 _02074F68: .word 0x00000B22 thumb_func_start FUN_02074F6C FUN_02074F6C: ; 0x02074F6C push {r4, lr} add r4, r0, #0x0 ldr r0, _02074FA4 ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #0x3 tst r0, r1 beq _02074F9E mov r0, #0x89 lsl r0, r0, #0x2 add r0, r4, r0 mov r1, #0x1 bl FUN_0200D0E0 add r0, r4, #0x0 mov r1, #0x22 mov r2, #0x1 bl FUN_020731C0 ldr r0, _02074FA8 ; =0x000005C8 mov r1, #0x0 ldr r0, [r4, r0] bl FUN_0200C664 mov r0, #0x1 pop {r4, pc} _02074F9E: mov r0, #0x13 pop {r4, pc} nop _02074FA4: .word 0x021C48B8 _02074FA8: .word 0x000005C8 thumb_func_start FUN_02074FAC FUN_02074FAC: ; 0x02074FAC push {r3-r7, lr} add r5, r0, #0x0 ldr r0, _02075080 ; =0x000005A4 str r1, [sp, #0x0] ldr r1, [r5, r0] mov r4, #0x0 add r0, r1, #0x0 add r0, #0x32 ldrb r0, [r0, #0x0] lsl r0, r0, #0x18 lsr r2, r0, #0x1c beq _0207502C ldr r0, _02075084 ; =0x00000B25 ldrb r0, [r5, r0] add r0, r0, #0x1 _02074FCA: add r3, r1, r4 add r3, #0x2c ldrb r3, [r3, #0x0] cmp r0, r3 bne _02075022 add r0, r1, r4 mov r2, #0x0 add r0, #0x2c strb r2, [r0, #0x0] ldr r0, _02075080 ; =0x000005A4 ldr r6, [r5, r0] add r0, r6, #0x0 add r0, #0x32 ldrb r0, [r0, #0x0] lsl r0, r0, #0x18 lsr r0, r0, #0x1c sub r0, r0, #0x1 cmp r4, r0 bge _0207502C ldr r0, _02075080 ; =0x000005A4 add r1, r0, #0x0 _02074FF4: add r3, r6, r4 add r3, #0x2d ldrb r3, [r3, #0x0] add r6, r6, r4 add r6, #0x2c strb r3, [r6, #0x0] ldr r3, [r5, r0] add r3, r3, r4 add r3, #0x2d strb r2, [r3, #0x0] add r3, r4, #0x1 lsl r3, r3, #0x18 ldr r6, [r5, r1] lsr r4, r3, #0x18 add r3, r6, #0x0 add r3, #0x32 ldrb r3, [r3, #0x0] lsl r3, r3, #0x18 lsr r3, r3, #0x1c sub r3, r3, #0x1 cmp r4, r3 blt _02074FF4 b _0207502C _02075022: add r3, r4, #0x1 lsl r3, r3, #0x18 lsr r4, r3, #0x18 cmp r4, r2 blo _02074FCA _0207502C: ldr r6, _02075088 ; =0x00000729 mov r4, #0x0 mov r7, #0x2c _02075032: add r0, r4, #0x0 mul r0, r7 add r0, r5, r0 ldrb r0, [r0, r6] cmp r0, #0x0 beq _02075046 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02073024 _02075046: add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #0x6 blo _02075032 mov r0, #0x85 lsl r0, r0, #0x2 add r0, r5, r0 mov r1, #0x1 bl FUN_0200D0E0 add r0, r5, #0x0 bl FUN_02073DB4 add r0, r5, #0x0 mov r1, #0x1d mov r2, #0x1 bl FUN_020731C0 ldr r0, _0207508C ; =0x000005C8 mov r1, #0x0 ldr r0, [r5, r0] bl FUN_0200C664 ldr r0, [sp, #0x0] mov r1, #0x1 str r1, [r0, #0x0] pop {r3-r7, pc} nop _02075080: .word 0x000005A4 _02075084: .word 0x00000B25 _02075088: .word 0x00000729 _0207508C: .word 0x000005C8 thumb_func_start FUN_02075090 FUN_02075090: ; 0x02075090 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _020750B8 ; =0x000005A4 add r4, r1, #0x0 ldr r0, [r5, r0] mov r1, #0x0 add r0, #0x23 strb r1, [r0, #0x0] ldr r0, _020750BC ; =0x000006FC ldr r0, [r5, r0] bl FUN_02001C5C ldr r0, _020750C0 ; =0x000006F8 ldr r0, [r5, r0] bl FUN_02012870 mov r0, #0x1b str r0, [r4, #0x0] pop {r3-r5, pc} nop _020750B8: .word 0x000005A4 _020750BC: .word 0x000006FC _020750C0: .word 0x000006F8 thumb_func_start FUN_020750C4 FUN_020750C4: ; 0x020750C4 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _020750EC ; =0x000005A4 add r4, r1, #0x0 ldr r0, [r5, r0] mov r1, #0x1 add r0, #0x23 strb r1, [r0, #0x0] ldr r0, _020750F0 ; =0x000006FC mov r1, #0x0 ldr r0, [r5, r0] bl FUN_02001C5C ldr r0, _020750F4 ; =0x000006F8 ldr r0, [r5, r0] bl FUN_02012870 mov r0, #0x1b str r0, [r4, #0x0] pop {r3-r5, pc} .balign 4 _020750EC: .word 0x000005A4 _020750F0: .word 0x000006FC _020750F4: .word 0x000006F8 thumb_func_start FUN_020750F8 FUN_020750F8: ; 0x020750F8 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_02073DB4 mov r0, #0x85 lsl r0, r0, #0x2 add r0, r5, r0 mov r1, #0x1 bl FUN_0200D0E0 add r0, r5, #0x0 bl FUN_02075118 str r0, [r4, #0x0] pop {r3-r5, pc} thumb_func_start FUN_02075118 FUN_02075118: ; 0x02075118 push {r4, lr} add r4, r0, #0x0 ldr r0, _02075190 ; =0x000005A4 ldr r1, _02075194 ; =0x00000B25 ldr r0, [r4, r0] ldrb r1, [r4, r1] ldr r0, [r0, #0x0] bl FUN_0206B9B0 mov r1, #0xa1 mov r2, #0x0 bl FUN_020671BC cmp r0, #0x0 ldr r2, _02075198 ; =0x0000069C bne _0207515C ldr r0, [r4, r2] add r2, #0x8 ldr r2, [r4, r2] mov r1, #0x81 bl FUN_0200A8E0 ldr r0, _02075194 ; =0x00000B25 ldrb r0, [r4, r0] add r0, #0x16 lsl r0, r0, #0x2 add r1, r4, r0 mov r0, #0x5b lsl r0, r0, #0x4 ldr r0, [r1, r0] mov r1, #0x1 bl FUN_020200A0 b _0207516E _0207515C: ldr r0, [r4, r2] add r2, #0x8 ldr r2, [r4, r2] mov r1, #0x82 bl FUN_0200A8E0 ldr r0, _02075194 ; =0x00000B25 mov r1, #0x7 strb r1, [r4, r0] _0207516E: mov r1, #0x0 add r0, r4, #0x0 mvn r1, r1 mov r2, #0x1 bl FUN_020731E8 ldr r0, _02075190 ; =0x000005A4 mov r1, #0x0 ldr r0, [r4, r0] add r0, #0x23 strb r1, [r0, #0x0] ldr r0, _0207519C ; =0x00000B22 mov r1, #0x15 strb r1, [r4, r0] mov r0, #0x14 pop {r4, pc} nop _02075190: .word 0x000005A4 _02075194: .word 0x00000B25 _02075198: .word 0x0000069C _0207519C: .word 0x00000B22 thumb_func_start FUN_020751A0 FUN_020751A0: ; 0x020751A0 push {r4-r6, lr} add r6, r1, #0x0 add r4, r0, #0x0 ldr r1, _02075234 ; =0x000005A4 mov r0, #0x1 ldr r1, [r4, r1] add r1, #0x23 ldrb r1, [r1, #0x0] sub r1, #0xb lsl r1, r1, #0x10 lsr r1, r1, #0x10 bl FUN_02063948 add r1, r0, #0x0 beq _020751C8 ldr r0, _02075234 ; =0x000005A4 ldr r0, [r4, r0] ldr r0, [r0, #0x18] blx r1 b _020751CA _020751C8: mov r0, #0x1 _020751CA: cmp r0, #0x4 bhi _0207520A add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _020751DA: ; jump table (using 16-bit offset) .short _020751E4 - _020751DA - 2; case 0 .short _020751FC - _020751DA - 2; case 1 .short _02075200 - _020751DA - 2; case 2 .short _02075204 - _020751DA - 2; case 3 .short _02075208 - _020751DA - 2; case 4 _020751E4: ldr r0, _02075238 ; =0x000006FC mov r1, #0x0 ldr r0, [r4, r0] bl FUN_02001C5C ldr r0, _0207523C ; =0x000006F8 ldr r0, [r4, r0] bl FUN_02012870 mov r0, #0x1b str r0, [r6, #0x0] pop {r4-r6, pc} _020751FC: mov r5, #0x68 b _0207520A _02075200: mov r5, #0x4c b _0207520A _02075204: mov r5, #0xc4 b _0207520A _02075208: mov r5, #0x66 _0207520A: mov r0, #0x85 lsl r0, r0, #0x2 add r0, r4, r0 mov r1, #0x1 bl FUN_0200D0E0 add r0, r4, #0x0 bl FUN_02073DB4 add r0, r4, #0x0 add r1, r5, #0x0 mov r2, #0x1 bl FUN_020731E8 ldr r0, _02075240 ; =0x00000B22 mov r1, #0x3 strb r1, [r4, r0] mov r0, #0x14 str r0, [r6, #0x0] pop {r4-r6, pc} nop _02075234: .word 0x000005A4 _02075238: .word 0x000006FC _0207523C: .word 0x000006F8 _02075240: .word 0x00000B22 thumb_func_start FUN_02075244 FUN_02075244: ; 0x02075244 ldr r2, _02075254 ; =0x000005A4 mov r3, #0xb ldr r2, [r0, r2] add r2, #0x23 strb r3, [r2, #0x0] ldr r3, _02075258 ; =FUN_020751A0 bx r3 nop _02075254: .word 0x000005A4 _02075258: .word FUN_020751A0 thumb_func_start FUN_0207525C FUN_0207525C: ; 0x0207525C ldr r2, _0207526C ; =0x000005A4 mov r3, #0x10 ldr r2, [r0, r2] add r2, #0x23 strb r3, [r2, #0x0] ldr r3, _02075270 ; =FUN_020751A0 bx r3 nop _0207526C: .word 0x000005A4 _02075270: .word FUN_020751A0 thumb_func_start FUN_02075274 FUN_02075274: ; 0x02075274 ldr r2, _02075284 ; =0x000005A4 mov r3, #0xe ldr r2, [r0, r2] add r2, #0x23 strb r3, [r2, #0x0] ldr r3, _02075288 ; =FUN_020751A0 bx r3 nop _02075284: .word 0x000005A4 _02075288: .word FUN_020751A0 thumb_func_start FUN_0207528C FUN_0207528C: ; 0x0207528C ldr r2, _0207529C ; =0x000005A4 mov r3, #0xd ldr r2, [r0, r2] add r2, #0x23 strb r3, [r2, #0x0] ldr r3, _020752A0 ; =FUN_020751A0 bx r3 nop _0207529C: .word 0x000005A4 _020752A0: .word FUN_020751A0 thumb_func_start FUN_020752A4 FUN_020752A4: ; 0x020752A4 ldr r2, _020752B4 ; =0x000005A4 mov r3, #0xf ldr r2, [r0, r2] add r2, #0x23 strb r3, [r2, #0x0] ldr r3, _020752B8 ; =FUN_020751A0 bx r3 nop _020752B4: .word 0x000005A4 _020752B8: .word FUN_020751A0 thumb_func_start FUN_020752BC FUN_020752BC: ; 0x020752BC ldr r2, _020752CC ; =0x000005A4 mov r3, #0x12 ldr r2, [r0, r2] add r2, #0x23 strb r3, [r2, #0x0] ldr r3, _020752D0 ; =FUN_020751A0 bx r3 nop _020752CC: .word 0x000005A4 _020752D0: .word FUN_020751A0 thumb_func_start FUN_020752D4 FUN_020752D4: ; 0x020752D4 ldr r2, _020752E4 ; =0x000005A4 mov r3, #0xc ldr r2, [r0, r2] add r2, #0x23 strb r3, [r2, #0x0] ldr r3, _020752E8 ; =FUN_020751A0 bx r3 nop _020752E4: .word 0x000005A4 _020752E8: .word FUN_020751A0 thumb_func_start FUN_020752EC FUN_020752EC: ; 0x020752EC ldr r2, _020752FC ; =0x000005A4 mov r3, #0x11 ldr r2, [r0, r2] add r2, #0x23 strb r3, [r2, #0x0] ldr r3, _02075300 ; =FUN_020751A0 bx r3 nop _020752FC: .word 0x000005A4 _02075300: .word FUN_020751A0 thumb_func_start FUN_02075304 FUN_02075304: ; 0x02075304 ldr r2, _02075314 ; =0x000005A4 mov r3, #0x13 ldr r2, [r0, r2] add r2, #0x23 strb r3, [r2, #0x0] ldr r3, _02075318 ; =FUN_020751A0 bx r3 nop _02075314: .word 0x000005A4 _02075318: .word FUN_020751A0 thumb_func_start FUN_0207531C FUN_0207531C: ; 0x0207531C ldr r2, _0207532C ; =0x000005A4 mov r3, #0x14 ldr r2, [r0, r2] add r2, #0x23 strb r3, [r2, #0x0] ldr r3, _02075330 ; =FUN_020751A0 bx r3 nop _0207532C: .word 0x000005A4 _02075330: .word FUN_020751A0 thumb_func_start FUN_02075334 FUN_02075334: ; 0x02075334 ldr r2, _02075344 ; =0x000005A4 mov r3, #0x15 ldr r2, [r0, r2] add r2, #0x23 strb r3, [r2, #0x0] ldr r3, _02075348 ; =FUN_020751A0 bx r3 nop _02075344: .word 0x000005A4 _02075348: .word FUN_020751A0 thumb_func_start FUN_0207534C FUN_0207534C: ; 0x0207534C ldr r2, _0207535C ; =0x000005A4 mov r3, #0x16 ldr r2, [r0, r2] add r2, #0x23 strb r3, [r2, #0x0] ldr r3, _02075360 ; =FUN_020751A0 bx r3 nop _0207535C: .word 0x000005A4 _02075360: .word FUN_020751A0 thumb_func_start FUN_02075364 FUN_02075364: ; 0x02075364 ldr r2, _02075374 ; =0x000005A4 mov r3, #0x17 ldr r2, [r0, r2] add r2, #0x23 strb r3, [r2, #0x0] ldr r3, _02075378 ; =FUN_020751A0 bx r3 nop _02075374: .word 0x000005A4 _02075378: .word FUN_020751A0 thumb_func_start FUN_0207537C FUN_0207537C: ; 0x0207537C push {r3-r5, lr} add r4, r0, #0x0 add r5, r1, #0x0 bl FUN_020753B4 str r0, [r5, #0x0] cmp r0, #0x1a bne _02075392 ldr r0, _02075394 ; =0x00000B2E mov r1, #0xd strh r1, [r4, r0] _02075392: pop {r3-r5, pc} .balign 4 _02075394: .word 0x00000B2E thumb_func_start FUN_02075398 FUN_02075398: ; 0x02075398 push {r3-r5, lr} add r4, r0, #0x0 add r5, r1, #0x0 bl FUN_020753B4 str r0, [r5, #0x0] cmp r0, #0x1a bne _020753AE ldr r0, _020753B0 ; =0x00000B2E mov r1, #0xe strh r1, [r4, r0] _020753AE: pop {r3-r5, pc} .balign 4 _020753B0: .word 0x00000B2E thumb_func_start FUN_020753B4 FUN_020753B4: ; 0x020753B4 push {r3-r4, lr} sub sp, #0x4 add r4, r0, #0x0 mov r0, #0x85 lsl r0, r0, #0x2 add r0, r4, r0 mov r1, #0x1 bl FUN_0200D0E0 add r0, r4, #0x0 bl FUN_02073DB4 ldr r0, _020754A8 ; =0x00000B25 ldrb r1, [r4, r0] mov r0, #0x2c mul r0, r1 add r1, r4, r0 ldr r0, _020754AC ; =0x00000708 ldrh r0, [r1, r0] mov r1, #0x5 blx _s32_div_f ldr r1, _020754B0 ; =0x00000B28 strh r0, [r4, r1] sub r0, r1, #0x3 ldrb r2, [r4, r0] mov r0, #0x2c mul r0, r2 add r2, r4, r0 ldr r0, _020754B4 ; =0x00000706 ldrh r2, [r2, r0] ldrh r0, [r4, r1] cmp r2, r0 bhi _0207540E add r0, r4, #0x0 mov r1, #0x8a mov r2, #0x1 bl FUN_020731E8 ldr r0, _020754B8 ; =0x00000B22 mov r1, #0x3 strb r1, [r4, r0] add sp, #0x4 mov r0, #0x14 pop {r3-r4, pc} _0207540E: sub r0, r1, #0x5 ldrb r2, [r4, r0] mov r0, #0x40 orr r2, r0 sub r0, r1, #0x5 strb r2, [r4, r0] ldrb r0, [r4, r0] mov r2, #0x3f bic r0, r2 sub r2, r1, #0x3 ldrb r3, [r4, r2] mov r2, #0x3f and r2, r3 orr r2, r0 sub r0, r1, #0x5 strb r2, [r4, r0] ldr r0, _020754BC ; =0x000005C8 mov r1, #0x0 ldr r0, [r4, r0] bl FUN_0200C664 ldr r0, _020754BC ; =0x000005C8 add r1, sp, #0x0 ldr r0, [r4, r0] add r1, #0x2 add r2, sp, #0x0 bl FUN_0200C75C ldr r0, _020754C0 ; =0x000005CC add r3, sp, #0x0 mov r1, #0x2 mov r2, #0x0 ldrsh r1, [r3, r1] ldrsh r2, [r3, r2] ldr r0, [r4, r0] bl FUN_0200C6E4 ldr r0, _020754C4 ; =0x000005A4 ldr r1, _020754C8 ; =0x00000B23 ldr r0, [r4, r0] ldrb r1, [r4, r1] add r0, #0x21 ldrb r0, [r0, #0x0] lsl r1, r1, #0x1a lsr r1, r1, #0x1a bl FUN_020714BC add r1, r0, #0x0 ldr r0, _020754C0 ; =0x000005CC add r1, r1, #0x2 ldr r0, [r4, r0] bl FUN_02020130 ldr r0, _020754C0 ; =0x000005CC mov r1, #0x1 ldr r0, [r4, r0] bl FUN_020200A0 ldr r1, _020754C8 ; =0x00000B23 add r0, r4, #0x0 ldrb r1, [r4, r1] lsl r1, r1, #0x1a lsr r1, r1, #0x1a bl FUN_020709FC add r0, r4, #0x0 mov r1, #0x24 mov r2, #0x1 bl FUN_020731C0 ldr r0, _020754CC ; =0x00000B2A mov r1, #0x0 strh r1, [r4, r0] mov r0, #0x1a add sp, #0x4 pop {r3-r4, pc} nop _020754A8: .word 0x00000B25 _020754AC: .word 0x00000708 _020754B0: .word 0x00000B28 _020754B4: .word 0x00000706 _020754B8: .word 0x00000B22 _020754BC: .word 0x000005C8 _020754C0: .word 0x000005CC _020754C4: .word 0x000005A4 _020754C8: .word 0x00000B23 _020754CC: .word 0x00000B2A thumb_func_start FUN_020754D0 FUN_020754D0: ; 0x020754D0 push {r4, lr} add r4, r0, #0x0 ldr r0, _02075504 ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #0x3 tst r1, r0 beq _02075500 mov r0, #0x89 lsl r0, r0, #0x2 add r0, r4, r0 mov r1, #0x1 bl FUN_0200D0E0 add r0, r4, #0x0 mov r1, #0x1d mov r2, #0x1 bl FUN_020731C0 ldr r0, _02075508 ; =0x000005C8 mov r1, #0x0 ldr r0, [r4, r0] bl FUN_0200C664 mov r0, #0x1 _02075500: pop {r4, pc} nop _02075504: .word 0x021C48B8 _02075508: .word 0x000005C8 thumb_func_start FUN_0207550C FUN_0207550C: ; 0x0207550C push {r3-r5, lr} mov r1, #0x0 mov r2, #0xc bl FUN_0206E710 mov r1, #0xe add r4, r0, #0x0 bl FUN_0206E7DC cmp r0, #0x1 beq _0207552C add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x1c pop {r3-r5, pc} _0207552C: add r0, r4, #0x0 mov r1, #0x1b bl FUN_0206E7DC cmp r0, #0x0 bne _02075580 add r0, r4, #0x0 mov r1, #0x1c bl FUN_0206E7DC cmp r0, #0x0 bne _02075580 add r0, r4, #0x0 mov r1, #0x1d bl FUN_0206E7DC cmp r0, #0x0 bne _02075580 add r0, r4, #0x0 mov r1, #0x1e bl FUN_0206E7DC cmp r0, #0x0 bne _02075580 add r0, r4, #0x0 mov r1, #0x1f bl FUN_0206E7DC cmp r0, #0x0 bne _02075580 add r0, r4, #0x0 mov r1, #0x20 bl FUN_0206E7DC cmp r0, #0x0 bne _02075580 add r0, r4, #0x0 mov r1, #0x21 bl FUN_0206E7DC cmp r0, #0x0 beq _0207558A _02075580: add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x0 pop {r3-r5, pc} _0207558A: add r0, r4, #0x0 mov r1, #0x18 bl FUN_0206E7DC cmp r0, #0x0 beq _020755A0 add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x1 pop {r3-r5, pc} _020755A0: add r0, r4, #0x0 mov r1, #0x19 bl FUN_0206E7DC cmp r0, #0x0 beq _020755B6 add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x2 pop {r3-r5, pc} _020755B6: add r0, r4, #0x0 mov r1, #0xf bl FUN_0206E7DC add r5, r0, #0x0 add r0, r4, #0x0 mov r1, #0x10 bl FUN_0206E7DC lsl r0, r0, #0x1 add r5, r5, r0 add r0, r4, #0x0 mov r1, #0x11 bl FUN_0206E7DC lsl r0, r0, #0x2 add r5, r5, r0 add r0, r4, #0x0 mov r1, #0x12 bl FUN_0206E7DC lsl r0, r0, #0x3 add r5, r5, r0 add r0, r4, #0x0 mov r1, #0x13 bl FUN_0206E7DC lsl r0, r0, #0x4 add r5, r5, r0 add r0, r4, #0x0 mov r1, #0x14 bl FUN_0206E7DC lsl r0, r0, #0x5 add r5, r5, r0 cmp r5, #0x10 bgt _02075624 bge _0207565A cmp r5, #0x8 bhi _0207568E add r0, r5, r5 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02075612: ; jump table (using 16-bit offset) .short _0207568E - _02075612 - 2; case 0 .short _02075632 - _02075612 - 2; case 1 .short _0207563C - _02075612 - 2; case 2 .short _0207568E - _02075612 - 2; case 3 .short _02075646 - _02075612 - 2; case 4 .short _0207568E - _02075612 - 2; case 5 .short _0207568E - _02075612 - 2; case 6 .short _0207568E - _02075612 - 2; case 7 .short _02075650 - _02075612 - 2; case 8 _02075624: cmp r5, #0x20 bgt _0207562C beq _02075664 b _0207568E _0207562C: cmp r5, #0x3f beq _0207566E b _0207568E _02075632: add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x3 pop {r3-r5, pc} _0207563C: add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x4 pop {r3-r5, pc} _02075646: add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x5 pop {r3-r5, pc} _02075650: add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x6 pop {r3-r5, pc} _0207565A: add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x7 pop {r3-r5, pc} _02075664: add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x8 pop {r3-r5, pc} _0207566E: add r0, r4, #0x0 mov r1, #0x26 bl FUN_0206E7DC cmp r0, #0x0 beq _02075684 add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0xb pop {r3-r5, pc} _02075684: add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x9 pop {r3-r5, pc} _0207568E: add r0, r4, #0x0 mov r1, #0x15 bl FUN_0206E7DC cmp r0, #0x0 beq _020756A4 add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0xa pop {r3-r5, pc} _020756A4: add r0, r4, #0x0 mov r1, #0x26 bl FUN_0206E7DC cmp r0, #0x0 beq _020756BA add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0xb pop {r3-r5, pc} _020756BA: add r0, r4, #0x0 mov r1, #0x30 bl FUN_0206E7DC cmp r0, #0x0 ble _020756D0 add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0xc pop {r3-r5, pc} _020756D0: bge _020756DC add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x12 pop {r3-r5, pc} _020756DC: add r0, r4, #0x0 mov r1, #0x31 bl FUN_0206E7DC cmp r0, #0x0 ble _020756F2 add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0xd pop {r3-r5, pc} _020756F2: bge _020756FE add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x13 pop {r3-r5, pc} _020756FE: add r0, r4, #0x0 mov r1, #0x32 bl FUN_0206E7DC cmp r0, #0x0 ble _02075714 add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0xe pop {r3-r5, pc} _02075714: bge _02075720 add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x14 pop {r3-r5, pc} _02075720: add r0, r4, #0x0 mov r1, #0x33 bl FUN_0206E7DC cmp r0, #0x0 ble _02075736 add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0xf pop {r3-r5, pc} _02075736: bge _02075742 add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x15 pop {r3-r5, pc} _02075742: add r0, r4, #0x0 mov r1, #0x34 bl FUN_0206E7DC cmp r0, #0x0 ble _02075758 add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x10 pop {r3-r5, pc} _02075758: bge _02075764 add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x16 pop {r3-r5, pc} _02075764: add r0, r4, #0x0 mov r1, #0x35 bl FUN_0206E7DC cmp r0, #0x0 ble _0207577A add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x11 pop {r3-r5, pc} _0207577A: bge _02075786 add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x17 pop {r3-r5, pc} _02075786: add r0, r4, #0x0 mov r1, #0x1a bl FUN_0206E7DC cmp r0, #0x0 beq _0207579C add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x18 pop {r3-r5, pc} _0207579C: add r0, r4, #0x0 mov r1, #0x22 bl FUN_0206E7DC cmp r0, #0x0 beq _020757B2 add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x19 pop {r3-r5, pc} _020757B2: add r0, r4, #0x0 mov r1, #0x23 bl FUN_0206E7DC cmp r0, #0x0 beq _020757C8 add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x1a pop {r3-r5, pc} _020757C8: add r0, r4, #0x0 mov r1, #0x24 bl FUN_0206E7DC cmp r0, #0x0 bne _020757E0 add r0, r4, #0x0 mov r1, #0x25 bl FUN_0206E7DC cmp r0, #0x0 beq _020757EA _020757E0: add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x1b pop {r3-r5, pc} _020757EA: add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x1c pop {r3-r5, pc} thumb_func_start FUN_020757F4 FUN_020757F4: ; 0x020757F4 push {r4-r6, lr} add r4, r0, #0x0 ldr r0, _02075B8C ; =0x000005A4 add r6, r1, #0x0 ldr r1, _02075B90 ; =0x00000B25 ldr r0, [r4, r0] ldrb r1, [r4, r1] ldr r0, [r0, #0x0] add r5, r2, #0x0 bl FUN_0206B9B0 bl FUN_020690E4 add r2, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 ldr r0, [r4, r0] mov r1, #0x0 bl FUN_0200ACF8 add r0, r6, #0x0 bl FUN_0207550C cmp r0, #0x1b bls _02075828 b _02075C40 _02075828: add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02075834: ; jump table (using 16-bit offset) .short _02075C40 - _02075834 - 2; case 0 .short _02075C40 - _02075834 - 2; case 1 .short _02075C40 - _02075834 - 2; case 2 .short _02075890 - _02075834 - 2; case 3 .short _0207586C - _02075834 - 2; case 4 .short _020758B4 - _02075834 - 2; case 5 .short _020758D8 - _02075834 - 2; case 6 .short _020758FC - _02075834 - 2; case 7 .short _02075920 - _02075834 - 2; case 8 .short _02075968 - _02075834 - 2; case 9 .short _02075944 - _02075834 - 2; case 10 .short _02075C40 - _02075834 - 2; case 11 .short _0207598C - _02075834 - 2; case 12 .short _020759BE - _02075834 - 2; case 13 .short _020759F0 - _02075834 - 2; case 14 .short _02075A22 - _02075834 - 2; case 15 .short _02075A54 - _02075834 - 2; case 16 .short _02075A86 - _02075834 - 2; case 17 .short _02075AB8 - _02075834 - 2; case 18 .short _02075AEC - _02075834 - 2; case 19 .short _02075B20 - _02075834 - 2; case 20 .short _02075B54 - _02075834 - 2; case 21 .short _02075B88 - _02075834 - 2; case 22 .short _02075BCA - _02075834 - 2; case 23 .short _02075C40 - _02075834 - 2; case 24 .short _02075BFE - _02075834 - 2; case 25 .short _02075BFE - _02075834 - 2; case 26 .short _02075C30 - _02075834 - 2; case 27 _0207586C: ldr r0, _02075B94 ; =0x0000069C mov r1, #0x41 ldr r0, [r4, r0] bl FUN_0200A914 mov r1, #0x6a add r5, r0, #0x0 lsl r1, r1, #0x4 ldr r0, [r4, r1] add r1, r1, #0x4 ldr r1, [r4, r1] add r2, r5, #0x0 bl FUN_0200B7B8 add r0, r5, #0x0 bl FUN_02021A20 pop {r4-r6, pc} _02075890: ldr r0, _02075B94 ; =0x0000069C mov r1, #0x5b ldr r0, [r4, r0] bl FUN_0200A914 mov r1, #0x6a add r5, r0, #0x0 lsl r1, r1, #0x4 ldr r0, [r4, r1] add r1, r1, #0x4 ldr r1, [r4, r1] add r2, r5, #0x0 bl FUN_0200B7B8 add r0, r5, #0x0 bl FUN_02021A20 pop {r4-r6, pc} _020758B4: ldr r0, _02075B94 ; =0x0000069C mov r1, #0x43 ldr r0, [r4, r0] bl FUN_0200A914 mov r1, #0x6a add r5, r0, #0x0 lsl r1, r1, #0x4 ldr r0, [r4, r1] add r1, r1, #0x4 ldr r1, [r4, r1] add r2, r5, #0x0 bl FUN_0200B7B8 add r0, r5, #0x0 bl FUN_02021A20 pop {r4-r6, pc} _020758D8: ldr r0, _02075B94 ; =0x0000069C mov r1, #0x44 ldr r0, [r4, r0] bl FUN_0200A914 mov r1, #0x6a add r5, r0, #0x0 lsl r1, r1, #0x4 ldr r0, [r4, r1] add r1, r1, #0x4 ldr r1, [r4, r1] add r2, r5, #0x0 bl FUN_0200B7B8 add r0, r5, #0x0 bl FUN_02021A20 pop {r4-r6, pc} _020758FC: ldr r0, _02075B94 ; =0x0000069C mov r1, #0x42 ldr r0, [r4, r0] bl FUN_0200A914 mov r1, #0x6a add r5, r0, #0x0 lsl r1, r1, #0x4 ldr r0, [r4, r1] add r1, r1, #0x4 ldr r1, [r4, r1] add r2, r5, #0x0 bl FUN_0200B7B8 add r0, r5, #0x0 bl FUN_02021A20 pop {r4-r6, pc} _02075920: ldr r0, _02075B94 ; =0x0000069C mov r1, #0x49 ldr r0, [r4, r0] bl FUN_0200A914 mov r1, #0x6a add r5, r0, #0x0 lsl r1, r1, #0x4 ldr r0, [r4, r1] add r1, r1, #0x4 ldr r1, [r4, r1] add r2, r5, #0x0 bl FUN_0200B7B8 add r0, r5, #0x0 bl FUN_02021A20 pop {r4-r6, pc} _02075944: ldr r0, _02075B94 ; =0x0000069C mov r1, #0x4a ldr r0, [r4, r0] bl FUN_0200A914 mov r1, #0x6a add r5, r0, #0x0 lsl r1, r1, #0x4 ldr r0, [r4, r1] add r1, r1, #0x4 ldr r1, [r4, r1] add r2, r5, #0x0 bl FUN_0200B7B8 add r0, r5, #0x0 bl FUN_02021A20 pop {r4-r6, pc} _02075968: ldr r0, _02075B94 ; =0x0000069C mov r1, #0x47 ldr r0, [r4, r0] bl FUN_0200A914 mov r1, #0x6a add r5, r0, #0x0 lsl r1, r1, #0x4 ldr r0, [r4, r1] add r1, r1, #0x4 ldr r1, [r4, r1] add r2, r5, #0x0 bl FUN_0200B7B8 add r0, r5, #0x0 bl FUN_02021A20 pop {r4-r6, pc} _0207598C: ldr r0, _02075B94 ; =0x0000069C mov r1, #0x4b ldr r0, [r4, r0] bl FUN_0200A914 add r5, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 ldr r0, [r4, r0] mov r1, #0x1 mov r2, #0x0 bl FUN_0200AF50 mov r1, #0x6a lsl r1, r1, #0x4 ldr r0, [r4, r1] add r1, r1, #0x4 ldr r1, [r4, r1] add r2, r5, #0x0 bl FUN_0200B7B8 add r0, r5, #0x0 bl FUN_02021A20 pop {r4-r6, pc} _020759BE: ldr r0, _02075B94 ; =0x0000069C mov r1, #0x4b ldr r0, [r4, r0] bl FUN_0200A914 add r5, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 mov r1, #0x1 ldr r0, [r4, r0] add r2, r1, #0x0 bl FUN_0200AF50 mov r1, #0x6a lsl r1, r1, #0x4 ldr r0, [r4, r1] add r1, r1, #0x4 ldr r1, [r4, r1] add r2, r5, #0x0 bl FUN_0200B7B8 add r0, r5, #0x0 bl FUN_02021A20 pop {r4-r6, pc} _020759F0: ldr r0, _02075B94 ; =0x0000069C mov r1, #0x4b ldr r0, [r4, r0] bl FUN_0200A914 add r5, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 ldr r0, [r4, r0] mov r1, #0x1 mov r2, #0x2 bl FUN_0200AF50 mov r1, #0x6a lsl r1, r1, #0x4 ldr r0, [r4, r1] add r1, r1, #0x4 ldr r1, [r4, r1] add r2, r5, #0x0 bl FUN_0200B7B8 add r0, r5, #0x0 bl FUN_02021A20 pop {r4-r6, pc} _02075A22: ldr r0, _02075B94 ; =0x0000069C mov r1, #0x4b ldr r0, [r4, r0] bl FUN_0200A914 add r5, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 ldr r0, [r4, r0] mov r1, #0x1 mov r2, #0x3 bl FUN_0200AF50 mov r1, #0x6a lsl r1, r1, #0x4 ldr r0, [r4, r1] add r1, r1, #0x4 ldr r1, [r4, r1] add r2, r5, #0x0 bl FUN_0200B7B8 add r0, r5, #0x0 bl FUN_02021A20 pop {r4-r6, pc} _02075A54: ldr r0, _02075B94 ; =0x0000069C mov r1, #0x4b ldr r0, [r4, r0] bl FUN_0200A914 add r5, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 ldr r0, [r4, r0] mov r1, #0x1 mov r2, #0x4 bl FUN_0200AF50 mov r1, #0x6a lsl r1, r1, #0x4 ldr r0, [r4, r1] add r1, r1, #0x4 ldr r1, [r4, r1] add r2, r5, #0x0 bl FUN_0200B7B8 add r0, r5, #0x0 bl FUN_02021A20 pop {r4-r6, pc} _02075A86: ldr r0, _02075B94 ; =0x0000069C mov r1, #0x4b ldr r0, [r4, r0] bl FUN_0200A914 add r5, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 ldr r0, [r4, r0] mov r1, #0x1 mov r2, #0x5 bl FUN_0200AF50 mov r1, #0x6a lsl r1, r1, #0x4 ldr r0, [r4, r1] add r1, r1, #0x4 ldr r1, [r4, r1] add r2, r5, #0x0 bl FUN_0200B7B8 add r0, r5, #0x0 bl FUN_02021A20 pop {r4-r6, pc} _02075AB8: ldr r0, _02075B94 ; =0x0000069C add r5, #0x6e ldr r0, [r4, r0] add r1, r5, #0x0 bl FUN_0200A914 add r5, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 ldr r0, [r4, r0] mov r1, #0x1 mov r2, #0x0 bl FUN_0200AF50 mov r1, #0x6a lsl r1, r1, #0x4 ldr r0, [r4, r1] add r1, r1, #0x4 ldr r1, [r4, r1] add r2, r5, #0x0 bl FUN_0200B7B8 add r0, r5, #0x0 bl FUN_02021A20 pop {r4-r6, pc} _02075AEC: ldr r0, _02075B94 ; =0x0000069C add r5, #0x6e ldr r0, [r4, r0] add r1, r5, #0x0 bl FUN_0200A914 add r5, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 mov r1, #0x1 ldr r0, [r4, r0] add r2, r1, #0x0 bl FUN_0200AF50 mov r1, #0x6a lsl r1, r1, #0x4 ldr r0, [r4, r1] add r1, r1, #0x4 ldr r1, [r4, r1] add r2, r5, #0x0 bl FUN_0200B7B8 add r0, r5, #0x0 bl FUN_02021A20 pop {r4-r6, pc} _02075B20: ldr r0, _02075B94 ; =0x0000069C add r5, #0x6e ldr r0, [r4, r0] add r1, r5, #0x0 bl FUN_0200A914 add r5, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 ldr r0, [r4, r0] mov r1, #0x1 mov r2, #0x2 bl FUN_0200AF50 mov r1, #0x6a lsl r1, r1, #0x4 ldr r0, [r4, r1] add r1, r1, #0x4 ldr r1, [r4, r1] add r2, r5, #0x0 bl FUN_0200B7B8 add r0, r5, #0x0 bl FUN_02021A20 pop {r4-r6, pc} _02075B54: ldr r0, _02075B94 ; =0x0000069C add r5, #0x6e ldr r0, [r4, r0] add r1, r5, #0x0 bl FUN_0200A914 add r5, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 ldr r0, [r4, r0] mov r1, #0x1 mov r2, #0x3 bl FUN_0200AF50 mov r1, #0x6a lsl r1, r1, #0x4 ldr r0, [r4, r1] add r1, r1, #0x4 ldr r1, [r4, r1] add r2, r5, #0x0 bl FUN_0200B7B8 add r0, r5, #0x0 bl FUN_02021A20 pop {r4-r6, pc} _02075B88: ldr r0, _02075B94 ; =0x0000069C b _02075B98 .balign 4 _02075B8C: .word 0x000005A4 _02075B90: .word 0x00000B25 _02075B94: .word 0x0000069C _02075B98: add r5, #0x6e ldr r0, [r4, r0] add r1, r5, #0x0 bl FUN_0200A914 add r5, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 ldr r0, [r4, r0] mov r1, #0x1 mov r2, #0x4 bl FUN_0200AF50 mov r1, #0x6a lsl r1, r1, #0x4 ldr r0, [r4, r1] add r1, r1, #0x4 ldr r1, [r4, r1] add r2, r5, #0x0 bl FUN_0200B7B8 add r0, r5, #0x0 bl FUN_02021A20 pop {r4-r6, pc} _02075BCA: ldr r0, _02075C50 ; =0x0000069C add r5, #0x6e ldr r0, [r4, r0] add r1, r5, #0x0 bl FUN_0200A914 add r5, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 ldr r0, [r4, r0] mov r1, #0x1 mov r2, #0x5 bl FUN_0200AF50 mov r1, #0x6a lsl r1, r1, #0x4 ldr r0, [r4, r1] add r1, r1, #0x4 ldr r1, [r4, r1] add r2, r5, #0x0 bl FUN_0200B7B8 add r0, r5, #0x0 bl FUN_02021A20 pop {r4-r6, pc} _02075BFE: ldr r0, _02075C50 ; =0x0000069C mov r1, #0x48 ldr r0, [r4, r0] bl FUN_0200A914 add r6, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 ldr r0, [r4, r0] mov r1, #0x0 add r2, r5, #0x0 bl FUN_0200AD5C mov r1, #0x6a lsl r1, r1, #0x4 ldr r0, [r4, r1] add r1, r1, #0x4 ldr r1, [r4, r1] add r2, r6, #0x0 bl FUN_0200B7B8 add r0, r6, #0x0 bl FUN_02021A20 pop {r4-r6, pc} _02075C30: ldr r2, _02075C50 ; =0x0000069C mov r1, #0x45 ldr r0, [r4, r2] add r2, #0x8 ldr r2, [r4, r2] bl FUN_0200A8E0 pop {r4-r6, pc} _02075C40: ldr r2, _02075C50 ; =0x0000069C mov r1, #0x69 ldr r0, [r4, r2] add r2, #0x8 ldr r2, [r4, r2] bl FUN_0200A8E0 pop {r4-r6, pc} .balign 4 _02075C50: .word 0x0000069C thumb_func_start FUN_02075C54 FUN_02075C54: ; 0x02075C54 push {r4, lr} add r4, r0, #0x0 ldr r0, _02075CCC ; =0x000005A4 ldr r0, [r4, r0] ldrh r0, [r0, #0x24] bl FUN_0207550C cmp r0, #0x1c bhi _02075CCA add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02075C72: ; jump table (using 16-bit offset) .short _02075CCA - _02075C72 - 2; case 0 .short _02075CCA - _02075C72 - 2; case 1 .short _02075CAC - _02075C72 - 2; case 2 .short _02075CB4 - _02075C72 - 2; case 3 .short _02075CB4 - _02075C72 - 2; case 4 .short _02075CB4 - _02075C72 - 2; case 5 .short _02075CB4 - _02075C72 - 2; case 6 .short _02075CB4 - _02075C72 - 2; case 7 .short _02075CB4 - _02075C72 - 2; case 8 .short _02075CB4 - _02075C72 - 2; case 9 .short _02075CB4 - _02075C72 - 2; case 10 .short _02075CC4 - _02075C72 - 2; case 11 .short _02075CB4 - _02075C72 - 2; case 12 .short _02075CB4 - _02075C72 - 2; case 13 .short _02075CB4 - _02075C72 - 2; case 14 .short _02075CB4 - _02075C72 - 2; case 15 .short _02075CB4 - _02075C72 - 2; case 16 .short _02075CB4 - _02075C72 - 2; case 17 .short _02075CBC - _02075C72 - 2; case 18 .short _02075CBC - _02075C72 - 2; case 19 .short _02075CBC - _02075C72 - 2; case 20 .short _02075CBC - _02075C72 - 2; case 21 .short _02075CBC - _02075C72 - 2; case 22 .short _02075CBC - _02075C72 - 2; case 23 .short _02075CCA - _02075C72 - 2; case 24 .short _02075CB4 - _02075C72 - 2; case 25 .short _02075CB4 - _02075C72 - 2; case 26 .short _02075CB4 - _02075C72 - 2; case 27 .short _02075CCA - _02075C72 - 2; case 28 _02075CAC: ldr r1, _02075CD0 ; =FUN_0207640C ldr r0, _02075CD4 ; =0x00000B14 str r1, [r4, r0] pop {r4, pc} _02075CB4: ldr r1, _02075CD8 ; =FUN_02075D20 ldr r0, _02075CD4 ; =0x00000B14 str r1, [r4, r0] pop {r4, pc} _02075CBC: ldr r1, _02075CDC ; =FUN_02075DC0 ldr r0, _02075CD4 ; =0x00000B14 str r1, [r4, r0] pop {r4, pc} _02075CC4: ldr r1, _02075CE0 ; =FUN_02075F60 ldr r0, _02075CD4 ; =0x00000B14 str r1, [r4, r0] _02075CCA: pop {r4, pc} .balign 4 _02075CCC: .word 0x000005A4 _02075CD0: .word FUN_0207640C _02075CD4: .word 0x00000B14 _02075CD8: .word FUN_02075D20 _02075CDC: .word FUN_02075DC0 _02075CE0: .word FUN_02075F60 thumb_func_start FUN_02075CE4 FUN_02075CE4: ; 0x02075CE4 push {r4, lr} add r4, r0, #0x0 ldr r0, _02075D14 ; =0x00000B24 ldrb r0, [r4, r0] bl FUN_0201BD70 cmp r0, #0x0 beq _02075CF8 mov r0, #0x5 pop {r4, pc} _02075CF8: ldr r0, _02075D18 ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #0x3 tst r0, r1 beq _02075D10 ldr r0, _02075D1C ; =0x000005A4 mov r1, #0x0 ldr r0, [r4, r0] add r0, #0x23 strb r1, [r0, #0x0] mov r0, #0x1b pop {r4, pc} _02075D10: mov r0, #0x5 pop {r4, pc} .balign 4 _02075D14: .word 0x00000B24 _02075D18: .word 0x021C48B8 _02075D1C: .word 0x000005A4 thumb_func_start FUN_02075D20 FUN_02075D20: ; 0x02075D20 push {r3-r5, lr} sub sp, #0x8 ldr r1, _02075DA8 ; =0x000005A4 add r5, r0, #0x0 ldr r4, [r5, r1] bl FUN_020772CC str r0, [sp, #0x0] mov r0, #0xc str r0, [sp, #0x4] ldr r2, _02075DAC ; =0x00000B25 ldrh r1, [r4, #0x24] ldrb r2, [r5, r2] ldr r0, [r4, #0x0] mov r3, #0x0 bl FUN_02084DD0 ldr r1, _02075DAC ; =0x00000B25 add r0, r5, #0x0 ldrb r1, [r5, r1] bl FUN_0207008C ldr r1, _02075DAC ; =0x00000B25 add r0, r5, #0x0 ldrb r1, [r5, r1] bl FUN_02072D1C ldr r1, _02075DAC ; =0x00000B25 add r0, r5, #0x0 ldrb r1, [r5, r1] bl FUN_02072DDC ldr r0, _02075DAC ; =0x00000B25 mov r2, #0x2c ldrb r1, [r5, r0] add r0, r5, #0x0 mul r2, r1 add r3, r5, r2 ldr r2, _02075DB0 ; =0x0000070E ldrh r2, [r3, r2] lsl r2, r2, #0x14 lsr r2, r2, #0x14 lsl r2, r2, #0x18 lsr r2, r2, #0x18 bl FUN_02073A4C ldr r1, _02075DA8 ; =0x000005A4 add r0, r5, #0x0 ldr r1, [r5, r1] mov r2, #0x0 ldrh r1, [r1, #0x24] bl FUN_020757F4 mov r1, #0x0 add r0, r5, #0x0 mvn r1, r1 mov r2, #0x1 bl FUN_020731E8 ldr r0, _02075DB4 ; =0x000005EC bl FUN_020054C8 ldr r1, _02075DB8 ; =FUN_02075CE4 ldr r0, _02075DBC ; =0x00000B14 str r1, [r5, r0] mov r0, #0x5 add sp, #0x8 pop {r3-r5, pc} .balign 4 _02075DA8: .word 0x000005A4 _02075DAC: .word 0x00000B25 _02075DB0: .word 0x0000070E _02075DB4: .word 0x000005EC _02075DB8: .word FUN_02075CE4 _02075DBC: .word 0x00000B14 thumb_func_start FUN_02075DC0 FUN_02075DC0: ; 0x02075DC0 push {r3-r7, lr} sub sp, #0x20 add r5, r0, #0x0 ldr r0, _02075F4C ; =0x000005A4 ldr r1, _02075F50 ; =0x00000B25 ldr r0, [r5, r0] ldrb r1, [r5, r1] ldr r0, [r0, #0x0] bl FUN_0206B9B0 mov r1, #0xd mov r2, #0x0 add r4, r0, #0x0 bl FUN_020671BC lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x1c] add r0, r4, #0x0 mov r1, #0xe mov r2, #0x0 bl FUN_020671BC lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x18] add r0, r4, #0x0 mov r1, #0xf mov r2, #0x0 bl FUN_020671BC lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x14] add r0, r4, #0x0 mov r1, #0x10 mov r2, #0x0 bl FUN_020671BC lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x10] add r0, r4, #0x0 mov r1, #0x11 mov r2, #0x0 bl FUN_020671BC lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0xc] add r0, r4, #0x0 mov r1, #0x12 mov r2, #0x0 bl FUN_020671BC lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x8] add r0, r4, #0x0 mov r1, #0x9 mov r2, #0x0 bl FUN_020671BC lsl r0, r0, #0x18 lsr r7, r0, #0x18 ldr r0, _02075F4C ; =0x000005A4 ldr r6, [r5, r0] add r0, r5, #0x0 bl FUN_020772CC str r0, [sp, #0x0] mov r0, #0xc str r0, [sp, #0x4] ldr r2, _02075F50 ; =0x00000B25 ldrh r1, [r6, #0x24] ldrb r2, [r5, r2] ldr r0, [r6, #0x0] mov r3, #0x0 bl FUN_02084DD0 ldr r1, _02075F50 ; =0x00000B25 add r0, r5, #0x0 ldrb r1, [r5, r1] bl FUN_0207008C ldr r1, _02075F50 ; =0x00000B25 add r0, r5, #0x0 ldrb r1, [r5, r1] bl FUN_02072D1C ldr r1, _02075F50 ; =0x00000B25 add r0, r5, #0x0 ldrb r1, [r5, r1] bl FUN_02072DDC ldr r0, _02075F50 ; =0x00000B25 mov r2, #0x2c ldrb r1, [r5, r0] add r0, r5, #0x0 mul r2, r1 add r3, r5, r2 ldr r2, _02075F54 ; =0x0000070E ldrh r2, [r3, r2] lsl r2, r2, #0x14 lsr r2, r2, #0x14 lsl r2, r2, #0x18 lsr r2, r2, #0x18 bl FUN_02073A4C add r0, r4, #0x0 mov r1, #0xd mov r2, #0x0 bl FUN_020671BC ldr r1, [sp, #0x1c] cmp r1, r0 bne _02075EFA add r0, r4, #0x0 mov r1, #0xe mov r2, #0x0 bl FUN_020671BC ldr r1, [sp, #0x18] cmp r1, r0 bne _02075EFA add r0, r4, #0x0 mov r1, #0xf mov r2, #0x0 bl FUN_020671BC ldr r1, [sp, #0x14] cmp r1, r0 bne _02075EFA add r0, r4, #0x0 mov r1, #0x10 mov r2, #0x0 bl FUN_020671BC ldr r1, [sp, #0x10] cmp r1, r0 bne _02075EFA add r0, r4, #0x0 mov r1, #0x11 mov r2, #0x0 bl FUN_020671BC ldr r1, [sp, #0xc] cmp r1, r0 bne _02075EFA add r0, r4, #0x0 mov r1, #0x12 mov r2, #0x0 bl FUN_020671BC ldr r1, [sp, #0x8] cmp r1, r0 beq _02075F26 _02075EFA: add r0, r4, #0x0 mov r1, #0x9 mov r2, #0x0 bl FUN_020671BC cmp r7, r0 ldr r1, _02075F4C ; =0x000005A4 beq _02075F18 ldr r1, [r5, r1] add r0, r5, #0x0 ldrh r1, [r1, #0x24] mov r2, #0x0 bl FUN_020757F4 b _02075F34 _02075F18: ldr r1, [r5, r1] add r0, r5, #0x0 ldrh r1, [r1, #0x24] mov r2, #0x1 bl FUN_020757F4 b _02075F34 _02075F26: ldr r1, _02075F4C ; =0x000005A4 add r0, r5, #0x0 ldr r1, [r5, r1] mov r2, #0x2 ldrh r1, [r1, #0x24] bl FUN_020757F4 _02075F34: mov r1, #0x0 add r0, r5, #0x0 mvn r1, r1 mov r2, #0x1 bl FUN_020731E8 ldr r1, _02075F58 ; =FUN_02075CE4 ldr r0, _02075F5C ; =0x00000B14 str r1, [r5, r0] mov r0, #0x5 add sp, #0x20 pop {r3-r7, pc} .balign 4 _02075F4C: .word 0x000005A4 _02075F50: .word 0x00000B25 _02075F54: .word 0x0000070E _02075F58: .word FUN_02075CE4 _02075F5C: .word 0x00000B14 thumb_func_start FUN_02075F60 FUN_02075F60: ; 0x02075F60 push {r4-r7, lr} sub sp, #0xc ldr r1, _02076080 ; =0x000005A4 add r5, r0, #0x0 ldr r4, [r5, r1] bl FUN_020772CC str r0, [sp, #0x0] mov r0, #0xc str r0, [sp, #0x4] ldr r2, _02076084 ; =0x00000B25 ldrh r1, [r4, #0x24] ldrb r2, [r5, r2] ldr r0, [r4, #0x0] mov r3, #0x0 bl FUN_02084DD0 ldr r0, _02076080 ; =0x000005A4 ldr r1, _02076084 ; =0x00000B25 ldr r0, [r5, r0] ldrb r1, [r5, r1] ldr r0, [r0, #0x0] bl FUN_0206B9B0 mov r1, #0xa2 mov r2, #0x0 str r0, [sp, #0x8] bl FUN_020671BC add r4, r0, #0x0 ldr r0, _02076084 ; =0x00000B25 ldrb r1, [r5, r0] mov r0, #0x2c mul r0, r1 add r1, r5, r0 ldr r0, _02076088 ; =0x00000706 ldrh r1, [r1, r0] cmp r1, #0x0 bne _02075FBC sub r0, #0x6a ldr r0, [r5, r0] mov r1, #0x46 bl FUN_0200A914 add r7, r0, #0x0 b _02075FDA _02075FBC: cmp r4, r1 bne _02075FCE sub r0, #0x6a ldr r0, [r5, r0] mov r1, #0x47 bl FUN_0200A914 add r7, r0, #0x0 b _02075FDA _02075FCE: sub r0, #0x6a ldr r0, [r5, r0] mov r1, #0x40 bl FUN_0200A914 add r7, r0, #0x0 _02075FDA: ldr r0, [sp, #0x8] bl FUN_020690E4 add r2, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 ldr r0, [r5, r0] mov r1, #0x0 bl FUN_0200ACF8 mov r0, #0x0 mov r3, #0x6a str r0, [sp, #0x0] mov r1, #0x1 ldr r2, _02076084 ; =0x00000B25 str r1, [sp, #0x4] ldrb r6, [r5, r2] mov r2, #0x2c lsl r3, r3, #0x4 mul r2, r6 ldr r0, [r5, r3] add r2, r5, r2 add r3, #0x66 ldrh r2, [r2, r3] mov r3, #0x3 sub r2, r4, r2 bl FUN_0200AD38 mov r1, #0x6a lsl r1, r1, #0x4 ldr r0, [r5, r1] add r1, r1, #0x4 ldr r1, [r5, r1] add r2, r7, #0x0 bl FUN_0200B7B8 add r0, r7, #0x0 bl FUN_02021A20 ldr r0, [sp, #0x8] bl FUN_0207C2D4 add r4, r0, #0x0 ldr r1, _02076084 ; =0x00000B25 lsl r2, r4, #0x18 ldrb r1, [r5, r1] add r0, r5, #0x0 lsr r2, r2, #0x18 bl FUN_02073A4C cmp r4, #0x7 bne _02076062 ldr r1, _02076084 ; =0x00000B25 ldr r0, _0207608C ; =0x0000070E ldrb r3, [r5, r1] add r2, r5, r0 mov r0, #0x2c mul r0, r3 ldrh r4, [r2, r0] ldr r3, _02076090 ; =0xFFFFF000 and r4, r3 mov r3, #0x7 orr r3, r4 strh r3, [r2, r0] ldrb r1, [r5, r1] add r0, r5, #0x0 bl FUN_02072B20 _02076062: ldr r1, _02076084 ; =0x00000B25 add r0, r5, #0x0 ldrb r1, [r5, r1] bl FUN_020709FC ldr r1, _02076094 ; =FUN_020760A0 ldr r0, _02076098 ; =0x00000B14 str r1, [r5, r0] ldr r0, _0207609C ; =0x000005EC bl FUN_020054C8 mov r0, #0x5 add sp, #0xc pop {r4-r7, pc} nop _02076080: .word 0x000005A4 _02076084: .word 0x00000B25 _02076088: .word 0x00000706 _0207608C: .word 0x0000070E _02076090: .word 0xFFFFF000 _02076094: .word FUN_020760A0 _02076098: .word 0x00000B14 _0207609C: .word 0x000005EC thumb_func_start FUN_020760A0 FUN_020760A0: ; 0x020760A0 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _02076130 ; =0x000005A4 ldr r1, _02076134 ; =0x00000B25 ldr r0, [r5, r0] ldrb r1, [r5, r1] ldr r0, [r0, #0x0] bl FUN_0206B9B0 mov r1, #0xa2 mov r2, #0x0 bl FUN_020671BC ldr r1, _02076134 ; =0x00000B25 add r4, r0, #0x0 ldrb r2, [r5, r1] ldr r0, _02076138 ; =0x00000706 mov r1, #0x2c add r3, r2, #0x0 add r0, r5, r0 mul r3, r1 ldrh r1, [r0, r3] cmp r4, r1 beq _020760D4 add r1, r1, #0x1 strh r1, [r0, r3] _020760D4: ldr r1, _02076134 ; =0x00000B25 add r0, r5, #0x0 ldrb r1, [r5, r1] bl FUN_02072BBC ldr r1, _02076134 ; =0x00000B25 add r0, r5, #0x4 ldrb r2, [r5, r1] lsl r1, r2, #0x2 add r1, r2, r1 add r1, r1, #0x3 lsl r1, r1, #0x4 add r0, r0, r1 mov r1, #0x0 bl FUN_02019620 ldr r1, _02076134 ; =0x00000B25 add r0, r5, #0x0 ldrb r1, [r5, r1] bl FUN_02072B7C ldr r1, _02076134 ; =0x00000B25 add r0, r5, #0x0 ldrb r1, [r5, r1] bl FUN_02072C28 ldr r0, _02076134 ; =0x00000B25 mov r1, #0x2c ldrb r0, [r5, r0] add r2, r0, #0x0 mul r2, r1 ldr r0, _02076138 ; =0x00000706 add r2, r5, r2 ldrh r0, [r2, r0] cmp r4, r0 bne _0207612C add r0, r5, #0x0 sub r1, #0x2d mov r2, #0x1 bl FUN_020731E8 ldr r1, _0207613C ; =FUN_02075CE4 ldr r0, _02076140 ; =0x00000B14 str r1, [r5, r0] _0207612C: mov r0, #0x5 pop {r3-r5, pc} .balign 4 _02076130: .word 0x000005A4 _02076134: .word 0x00000B25 _02076138: .word 0x00000706 _0207613C: .word FUN_02075CE4 _02076140: .word 0x00000B14 thumb_func_start FUN_02076144 FUN_02076144: ; 0x02076144 push {r3, lr} mov r1, #0x18 mov r2, #0xc bl FUN_0206E7B8 cmp r0, #0x0 beq _02076156 mov r0, #0x1 pop {r3, pc} _02076156: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_0207615C FUN_0207615C: ; 0x0207615C push {r3-r6} cmp r1, #0x6 blo _02076168 mov r0, #0xff pop {r3-r6} bx lr _02076168: bhs _02076194 ldr r2, _0207619C ; =0x00000706 mov r3, #0x2c add r4, r2, #0x0 add r4, #0x23 _02076172: add r5, r1, #0x0 mul r5, r3 add r6, r0, r5 ldrb r5, [r6, r4] cmp r5, #0x0 beq _0207618A ldrh r5, [r6, r2] cmp r5, #0x0 bne _0207618A add r0, r1, #0x0 pop {r3-r6} bx lr _0207618A: add r1, r1, #0x1 lsl r1, r1, #0x18 lsr r1, r1, #0x18 cmp r1, #0x6 blo _02076172 _02076194: mov r0, #0xff pop {r3-r6} bx lr nop _0207619C: .word 0x00000706 thumb_func_start FUN_020761A0 FUN_020761A0: ; 0x020761A0 push {r3-r7, lr} ldr r1, _020763DC ; =0x00000B22 add r4, r0, #0x0 ldrb r2, [r4, r1] cmp r2, #0x3 bls _020761AE b _020763D6 _020761AE: add r2, r2, r2 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _020761BA: ; jump table (using 16-bit offset) .short _020761C2 - _020761BA - 2; case 0 .short _02076212 - _020761BA - 2; case 1 .short _020762DC - _020761BA - 2; case 2 .short _02076360 - _020761BA - 2; case 3 _020761C2: mov r1, #0x0 bl FUN_0207615C ldr r1, _020763E0 ; =0x00000B25 strb r0, [r4, r1] ldrb r0, [r4, r1] cmp r0, #0xff bne _02076206 ldr r2, _020763E4 ; =0x0000069C mov r1, #0x69 ldr r0, [r4, r2] add r2, #0x8 ldr r2, [r4, r2] bl FUN_0200A8E0 mov r1, #0x0 add r0, r4, #0x0 mvn r1, r1 mov r2, #0x1 bl FUN_020731E8 ldr r1, _020763E8 ; =FUN_02075CE4 ldr r0, _020763EC ; =0x00000B14 mov r2, #0x1 str r1, [r4, r0] add r0, r4, #0x0 mov r1, #0x0 bl FUN_02073CB4 ldr r0, _020763E0 ; =0x00000B25 mov r1, #0x7 strb r1, [r4, r0] mov r0, #0x5 pop {r3-r7, pc} _02076206: cmp r0, #0x0 beq _02076212 add r0, r4, #0x0 mov r1, #0x0 bl FUN_020709FC _02076212: ldr r0, _020763F0 ; =0x000005A4 ldr r1, _020763E0 ; =0x00000B25 ldr r0, [r4, r0] ldrb r1, [r4, r1] ldr r0, [r0, #0x0] bl FUN_0206B9B0 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_020772CC add r3, r0, #0x0 mov r0, #0xc str r0, [sp, #0x0] ldr r1, _020763F0 ; =0x000005A4 add r0, r5, #0x0 ldr r1, [r4, r1] mov r2, #0x0 ldrh r1, [r1, #0x24] bl FUN_02084810 add r0, r5, #0x0 mov r1, #0xa2 mov r2, #0x0 bl FUN_020671BC ldr r0, _020763E4 ; =0x0000069C mov r1, #0x46 ldr r0, [r4, r0] bl FUN_0200A914 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_020690E4 add r2, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 ldr r0, [r4, r0] mov r1, #0x0 bl FUN_0200ACF8 mov r1, #0x6a lsl r1, r1, #0x4 ldr r0, [r4, r1] add r1, r1, #0x4 ldr r1, [r4, r1] add r2, r6, #0x0 bl FUN_0200B7B8 add r0, r6, #0x0 bl FUN_02021A20 ldr r7, _020763E0 ; =0x00000B25 ldr r3, _020763F4 ; =0x0000070E ldrb r5, [r4, r7] mov r2, #0x2c add r1, r4, r3 add r0, r5, #0x0 mul r0, r2 ldrh r6, [r1, r0] ldr r5, _020763F8 ; =0xFFFFF000 and r6, r5 mov r5, #0x7 orr r5, r6 strh r5, [r1, r0] ldrb r1, [r4, r7] add r0, r4, #0x0 mul r2, r1 add r2, r4, r2 ldrh r2, [r2, r3] lsl r2, r2, #0x14 lsr r2, r2, #0x14 lsl r2, r2, #0x18 lsr r2, r2, #0x18 bl FUN_02073A4C add r1, r7, #0x0 ldrb r1, [r4, r1] add r0, r4, #0x0 bl FUN_02072B20 add r1, r7, #0x0 ldrb r1, [r4, r1] add r0, r4, #0x0 bl FUN_020709FC add r1, r7, #0x0 ldrb r1, [r4, r1] add r0, r4, #0x0 mov r2, #0x1 bl FUN_02073CB4 ldr r0, _020763FC ; =0x000005EC bl FUN_020054C8 sub r0, r7, #0x3 ldrb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, r0] b _020763D6 _020762DC: ldr r0, _020763F0 ; =0x000005A4 add r1, r1, #0x3 ldr r0, [r4, r0] ldrb r1, [r4, r1] ldr r0, [r0, #0x0] bl FUN_0206B9B0 mov r1, #0xa2 mov r2, #0x0 bl FUN_020671BC ldr r2, _020763E0 ; =0x00000B25 add r5, r0, #0x0 ldr r0, _02076400 ; =0x00000706 ldrb r3, [r4, r2] add r1, r4, r0 mov r0, #0x2c mul r0, r3 ldrh r3, [r1, r0] add r3, r3, #0x1 strh r3, [r1, r0] ldrb r1, [r4, r2] add r0, r4, #0x0 bl FUN_02072BBC ldr r1, _020763E0 ; =0x00000B25 add r0, r4, #0x4 ldrb r2, [r4, r1] lsl r1, r2, #0x2 add r1, r2, r1 add r1, r1, #0x3 lsl r1, r1, #0x4 add r0, r0, r1 mov r1, #0x0 bl FUN_02019620 ldr r1, _020763E0 ; =0x00000B25 add r0, r4, #0x0 ldrb r1, [r4, r1] bl FUN_02072B7C ldr r1, _020763E0 ; =0x00000B25 add r0, r4, #0x0 ldrb r1, [r4, r1] bl FUN_02072C28 ldr r0, _020763E0 ; =0x00000B25 mov r1, #0x2c ldrb r0, [r4, r0] add r2, r0, #0x0 mul r2, r1 ldr r0, _02076400 ; =0x00000706 add r2, r4, r2 ldrh r0, [r2, r0] cmp r5, r0 bne _020763D6 add r0, r4, #0x0 sub r1, #0x2d mov r2, #0x1 bl FUN_020731E8 ldr r0, _020763DC ; =0x00000B22 ldrb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, r0] b _020763D6 _02076360: add r0, r1, #0x2 ldrb r0, [r4, r0] bl FUN_0201BD70 cmp r0, #0x0 bne _020763D6 ldr r0, _02076404 ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #0x3 tst r0, r1 beq _020763D6 ldr r0, _02076408 ; =0x000005DC bl FUN_020054C8 ldr r0, _020763E0 ; =0x00000B25 ldrb r5, [r4, r0] add r0, r4, #0x0 add r1, r5, #0x1 lsl r1, r1, #0x18 lsr r1, r1, #0x18 bl FUN_0207615C ldr r1, _020763E0 ; =0x00000B25 strb r0, [r4, r1] ldrb r0, [r4, r1] cmp r0, #0xff beq _020763B2 mov r0, #0x89 lsl r0, r0, #0x2 add r0, r4, r0 mov r1, #0x0 bl FUN_0200D0E0 add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_020709FC ldr r0, _020763DC ; =0x00000B22 mov r1, #0x1 strb r1, [r4, r0] b _020763D6 _020763B2: ldr r0, _020763F0 ; =0x000005A4 mov r2, #0x1 ldr r1, [r4, r0] mov r3, #0xc ldr r0, [r1, #0x4] ldrh r1, [r1, #0x24] bl FUN_0206EDD4 ldr r0, _020763F0 ; =0x000005A4 mov r1, #0x0 ldr r0, [r4, r0] add r0, #0x23 strb r1, [r0, #0x0] ldr r0, _020763E0 ; =0x00000B25 mov r1, #0x7 strb r1, [r4, r0] mov r0, #0x1b pop {r3-r7, pc} _020763D6: mov r0, #0x7 pop {r3-r7, pc} nop _020763DC: .word 0x00000B22 _020763E0: .word 0x00000B25 _020763E4: .word 0x0000069C _020763E8: .word FUN_02075CE4 _020763EC: .word 0x00000B14 _020763F0: .word 0x000005A4 _020763F4: .word 0x0000070E _020763F8: .word 0xFFFFF000 _020763FC: .word 0x000005EC _02076400: .word 0x00000706 _02076404: .word 0x021C48B8 _02076408: .word 0x000005DC thumb_func_start FUN_0207640C FUN_0207640C: ; 0x0207640C push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 ldr r0, _020765B0 ; =0x000005A4 ldr r1, _020765B4 ; =0x00000B25 ldr r0, [r5, r0] ldrb r1, [r5, r1] ldr r0, [r0, #0x0] bl FUN_0206B9B0 mov r1, #0xa3 mov r2, #0x0 add r4, r0, #0x0 bl FUN_020671BC ldr r1, _020765B8 ; =0x00000B28 mov r2, #0x0 strh r0, [r5, r1] add r0, r4, #0x0 mov r1, #0xa4 bl FUN_020671BC ldr r1, _020765BC ; =0x00000B2A mov r2, #0x0 strh r0, [r5, r1] add r0, r4, #0x0 mov r1, #0xa5 bl FUN_020671BC ldr r1, _020765C0 ; =0x00000B2C mov r2, #0x0 strh r0, [r5, r1] add r0, r4, #0x0 mov r1, #0xa7 bl FUN_020671BC ldr r1, _020765C4 ; =0x00000B2E mov r2, #0x0 strh r0, [r5, r1] add r0, r4, #0x0 mov r1, #0xa8 bl FUN_020671BC mov r1, #0xb3 lsl r1, r1, #0x4 strh r0, [r5, r1] add r0, r4, #0x0 mov r1, #0xa6 mov r2, #0x0 bl FUN_020671BC ldr r1, _020765C8 ; =0x00000B32 strh r0, [r5, r1] ldr r0, _020765B0 ; =0x000005A4 ldr r6, [r5, r0] add r0, r5, #0x0 bl FUN_020772CC str r0, [sp, #0x0] mov r0, #0xc str r0, [sp, #0x4] ldr r2, _020765B4 ; =0x00000B25 ldrh r1, [r6, #0x24] ldrb r2, [r5, r2] ldr r0, [r6, #0x0] mov r3, #0x0 bl FUN_02084DD0 add r0, r4, #0x0 mov r1, #0xa0 mov r2, #0x0 bl FUN_020671BC ldr r1, _020765B4 ; =0x00000B25 ldrb r2, [r5, r1] mov r1, #0x2c mul r1, r2 add r2, r5, r1 ldr r1, _020765CC ; =0x0000070A strh r0, [r2, r1] add r0, r4, #0x0 mov r1, #0xa2 mov r2, #0x0 bl FUN_020671BC ldr r1, _020765B4 ; =0x00000B25 ldrb r2, [r5, r1] mov r1, #0x2c mul r1, r2 add r2, r5, r1 ldr r1, _020765D0 ; =0x00000706 strh r0, [r2, r1] add r0, r4, #0x0 mov r1, #0xa3 mov r2, #0x0 bl FUN_020671BC ldr r1, _020765B4 ; =0x00000B25 ldrb r2, [r5, r1] mov r1, #0x2c mul r1, r2 add r2, r5, r1 ldr r1, _020765D4 ; =0x00000708 strh r0, [r2, r1] sub r1, #0x6c ldr r0, [r5, r1] mov r1, #0xc1 bl FUN_0200A914 add r7, r0, #0x0 add r0, r4, #0x0 bl FUN_020690E4 add r2, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 ldr r0, [r5, r0] mov r1, #0x0 bl FUN_0200ACF8 mov r0, #0x0 mov r3, #0x6a str r0, [sp, #0x0] mov r1, #0x1 ldr r2, _020765B4 ; =0x00000B25 str r1, [sp, #0x4] ldrb r6, [r5, r2] mov r2, #0x2c lsl r3, r3, #0x4 mul r2, r6 ldr r0, [r5, r3] add r2, r5, r2 add r3, #0x6a ldrh r2, [r2, r3] mov r3, #0x3 bl FUN_0200AD38 mov r1, #0x6a lsl r1, r1, #0x4 ldr r0, [r5, r1] add r1, r1, #0x4 ldr r1, [r5, r1] add r2, r7, #0x0 bl FUN_0200B7B8 add r0, r7, #0x0 bl FUN_02021A20 add r0, r4, #0x0 bl FUN_0207C2D4 add r4, r0, #0x0 ldr r1, _020765B4 ; =0x00000B25 lsl r2, r4, #0x18 ldrb r1, [r5, r1] add r0, r5, #0x0 lsr r2, r2, #0x18 bl FUN_02073A4C cmp r4, #0x7 bne _0207656E ldr r1, _020765B4 ; =0x00000B25 ldr r0, _020765D8 ; =0x0000070E ldrb r3, [r5, r1] add r2, r5, r0 mov r0, #0x2c mul r0, r3 ldrh r4, [r2, r0] ldr r3, _020765DC ; =0xFFFFF000 and r4, r3 mov r3, #0x7 orr r3, r4 strh r3, [r2, r0] ldrb r1, [r5, r1] add r0, r5, #0x0 bl FUN_02072B20 _0207656E: ldr r1, _020765B4 ; =0x00000B25 add r0, r5, #0x0 ldrb r1, [r5, r1] bl FUN_020709FC ldr r0, _020765E0 ; =FUN_020760A0 ldr r1, _020765E4 ; =0x00000B14 str r0, [r5, r1] add r1, #0x11 ldrb r1, [r5, r1] add r0, r5, #0x0 bl FUN_02072D1C ldr r1, _020765B4 ; =0x00000B25 add r0, r5, #0x0 ldrb r1, [r5, r1] bl FUN_02072DDC mov r1, #0x0 add r0, r5, #0x0 mvn r1, r1 mov r2, #0x1 bl FUN_020731E8 ldr r1, _020765E8 ; =FUN_020765EC ldr r0, _020765E4 ; =0x00000B14 str r1, [r5, r0] mov r1, #0x0 add r0, #0x13 strb r1, [r5, r0] mov r0, #0x5 add sp, #0x8 pop {r3-r7, pc} .balign 4 _020765B0: .word 0x000005A4 _020765B4: .word 0x00000B25 _020765B8: .word 0x00000B28 _020765BC: .word 0x00000B2A _020765C0: .word 0x00000B2C _020765C4: .word 0x00000B2E _020765C8: .word 0x00000B32 _020765CC: .word 0x0000070A _020765D0: .word 0x00000706 _020765D4: .word 0x00000708 _020765D8: .word 0x0000070E _020765DC: .word 0xFFFFF000 _020765E0: .word FUN_020760A0 _020765E4: .word 0x00000B14 _020765E8: .word FUN_020765EC thumb_func_start FUN_020765EC FUN_020765EC: ; 0x020765EC push {r3-r5, lr} ldr r1, _0207686C ; =0x00000B27 add r4, r0, #0x0 ldrb r0, [r4, r1] cmp r0, #0x6 bhi _020766A8 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02076604: ; jump table (using 16-bit offset) .short _02076612 - _02076604 - 2; case 0 .short _0207663C - _02076604 - 2; case 1 .short _0207665A - _02076604 - 2; case 2 .short _02076680 - _02076604 - 2; case 3 .short _02076780 - _02076604 - 2; case 4 .short _020767A4 - _02076604 - 2; case 5 .short _02076814 - _02076604 - 2; case 6 _02076612: sub r0, r1, #0x3 ldrb r0, [r4, r0] bl FUN_0201BD70 cmp r0, #0x0 bne _020766A8 ldr r0, _02076870 ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #0x3 tst r0, r1 beq _020766A8 ldr r0, _02076874 ; =0x000005DC bl FUN_020054C8 add r0, r4, #0x0 bl FUN_020734C0 ldr r0, _0207686C ; =0x00000B27 mov r1, #0x1 strb r1, [r4, r0] b _02076868 _0207663C: ldr r0, _02076870 ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #0x3 tst r0, r1 beq _020766A8 ldr r0, _02076874 ; =0x000005DC bl FUN_020054C8 add r0, r4, #0x0 bl FUN_0207363C ldr r0, _0207686C ; =0x00000B27 mov r1, #0x2 strb r1, [r4, r0] b _02076868 _0207665A: ldr r0, _02076870 ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #0x3 tst r0, r1 beq _020766A8 ldr r0, _02076874 ; =0x000005DC bl FUN_020054C8 add r0, r4, #0x0 bl FUN_020736F4 ldr r0, _0207686C ; =0x00000B27 mov r1, #0x3 strb r1, [r4, r0] ldr r0, _02076878 ; =0x000005A4 mov r1, #0x0 ldr r0, [r4, r0] str r1, [r0, #0x34] b _02076868 _02076680: ldr r0, _02076878 ; =0x000005A4 sub r1, r1, #0x2 ldr r0, [r4, r0] ldrb r1, [r4, r1] ldr r0, [r0, #0x0] bl FUN_0206B9B0 ldr r1, _02076878 ; =0x000005A4 add r5, r0, #0x0 ldr r2, [r4, r1] add r1, r2, #0x0 add r1, #0x34 add r2, #0x26 bl FUN_02069818 cmp r0, #0x0 beq _020766B2 ldr r1, _0207687C ; =0x0000FFFE cmp r0, r1 bne _020766AA _020766A8: b _02076868 _020766AA: add r1, r1, #0x1 cmp r0, r1 beq _020766BA b _02076724 _020766B2: ldr r0, _0207686C ; =0x00000B27 mov r1, #0x6 strb r1, [r4, r0] b _02076868 _020766BA: add r0, r5, #0x0 bl FUN_020690E4 add r2, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 ldr r0, [r4, r0] mov r1, #0x0 bl FUN_0200ACF8 mov r2, #0x6a lsl r2, r2, #0x4 ldr r0, [r4, r2] sub r2, #0xfc ldr r2, [r4, r2] mov r1, #0x1 ldrh r2, [r2, #0x26] bl FUN_0200AD5C ldr r0, _02076880 ; =0x0000069C mov r1, #0x34 ldr r0, [r4, r0] bl FUN_0200A914 mov r1, #0x6a add r5, r0, #0x0 lsl r1, r1, #0x4 ldr r0, [r4, r1] add r1, r1, #0x4 ldr r1, [r4, r1] add r2, r5, #0x0 bl FUN_0200B7B8 add r0, r5, #0x0 bl FUN_02021A20 mov r1, #0x0 add r0, r4, #0x0 mvn r1, r1 mov r2, #0x0 bl FUN_020731E8 ldr r0, _02076884 ; =FUN_02076950 ldr r1, _02076888 ; =0x00000B18 ldr r2, _0207688C ; =FUN_020769A4 str r0, [r4, r1] add r0, r1, #0x4 str r2, [r4, r0] mov r0, #0x16 add r1, #0xa strb r0, [r4, r1] mov r0, #0x14 pop {r3-r5, pc} _02076724: add r0, r5, #0x0 bl FUN_020690E4 add r2, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 ldr r0, [r4, r0] mov r1, #0x0 bl FUN_0200ACF8 mov r2, #0x6a lsl r2, r2, #0x4 ldr r0, [r4, r2] sub r2, #0xfc ldr r2, [r4, r2] mov r1, #0x1 ldrh r2, [r2, #0x26] bl FUN_0200AD5C ldr r0, _02076880 ; =0x0000069C mov r1, #0xc2 ldr r0, [r4, r0] bl FUN_0200A914 mov r1, #0x6a add r5, r0, #0x0 lsl r1, r1, #0x4 ldr r0, [r4, r1] add r1, r1, #0x4 ldr r1, [r4, r1] add r2, r5, #0x0 bl FUN_0200B7B8 add r0, r5, #0x0 bl FUN_02021A20 mov r1, #0x0 add r0, r4, #0x0 mvn r1, r1 mov r2, #0x0 bl FUN_020731E8 ldr r0, _0207686C ; =0x00000B27 mov r1, #0x4 strb r1, [r4, r0] b _02076868 _02076780: sub r0, r1, #0x3 ldrb r0, [r4, r0] bl FUN_0201BD70 cmp r0, #0x0 bne _02076868 ldr r0, _02076870 ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #0x3 tst r0, r1 beq _02076868 ldr r0, _02076874 ; =0x000005DC bl FUN_020054C8 ldr r0, _0207686C ; =0x00000B27 mov r1, #0x3 strb r1, [r4, r0] b _02076868 _020767A4: ldr r0, _02076870 ; =0x021C48B8 ldr r2, [r0, #0x48] mov r0, #0x3 tst r0, r2 beq _02076868 ldr r0, _02076878 ; =0x000005A4 sub r1, r1, #0x2 ldr r0, [r4, r0] ldrb r1, [r4, r1] ldr r0, [r0, #0x0] bl FUN_0206B9B0 ldr r2, _02076878 ; =0x000005A4 add r1, r0, #0x0 ldr r2, [r4, r2] add r0, r4, #0x0 add r2, #0x28 ldrb r2, [r2, #0x0] bl FUN_02076F2C ldr r0, _02076880 ; =0x0000069C mov r1, #0x3d ldr r0, [r4, r0] bl FUN_0200A914 mov r2, #0x6a lsl r2, r2, #0x4 add r5, r0, #0x0 ldr r0, [r4, r2] sub r2, #0xfc ldr r2, [r4, r2] mov r1, #0x1 ldrh r2, [r2, #0x26] bl FUN_0200AD5C mov r1, #0x6a lsl r1, r1, #0x4 ldr r0, [r4, r1] add r1, r1, #0x4 ldr r1, [r4, r1] add r2, r5, #0x0 bl FUN_0200B7B8 add r0, r5, #0x0 bl FUN_02021A20 mov r1, #0x0 add r0, r4, #0x0 mvn r1, r1 mov r2, #0x0 bl FUN_020731E8 ldr r0, _0207686C ; =0x00000B27 mov r1, #0x4 strb r1, [r4, r0] b _02076868 _02076814: ldr r0, _02076878 ; =0x000005A4 sub r1, r1, #0x2 ldr r0, [r4, r0] ldrb r1, [r4, r1] ldr r0, [r0, #0x0] bl FUN_0206B9B0 add r5, r0, #0x0 ldr r0, _02076878 ; =0x000005A4 ldr r0, [r4, r0] ldr r0, [r0, #0x1c] ldr r0, [r0, #0x1c] ldr r0, [r0, #0x0] bl FUN_02034A04 add r3, r0, #0x0 ldr r0, _02076878 ; =0x000005A4 lsl r3, r3, #0x10 ldr r1, [r4, r0] mov r2, #0x0 add r0, r1, #0x0 add r0, #0x3c str r0, [sp, #0x0] ldr r0, [r1, #0x0] add r1, r5, #0x0 lsr r3, r3, #0x10 bl FUN_02069168 ldr r1, _02076878 ; =0x000005A4 ldr r2, [r4, r1] strh r0, [r2, #0x38] ldr r1, [r4, r1] ldrh r0, [r1, #0x38] cmp r0, #0x0 beq _0207685E mov r0, #0x9 b _02076860 _0207685E: mov r0, #0x0 _02076860: add r1, #0x23 strb r0, [r1, #0x0] mov r0, #0x1b pop {r3-r5, pc} _02076868: mov r0, #0x5 pop {r3-r5, pc} .balign 4 _0207686C: .word 0x00000B27 _02076870: .word 0x021C48B8 _02076874: .word 0x000005DC _02076878: .word 0x000005A4 _0207687C: .word 0x0000FFFE _02076880: .word 0x0000069C _02076884: .word FUN_02076950 _02076888: .word 0x00000B18 _0207688C: .word FUN_020769A4 thumb_func_start FUN_02076890 FUN_02076890: ; 0x02076890 push {r3-r5, lr} add r4, r0, #0x0 ldr r0, _0207693C ; =FUN_020765EC ldr r1, _02076940 ; =0x00000B14 mov r2, #0x3 str r0, [r4, r1] add r0, r1, #0x0 add r0, #0x13 strb r2, [r4, r0] ldr r0, _02076944 ; =0x000005A4 add r1, #0x11 ldr r0, [r4, r0] ldrb r1, [r4, r1] ldr r0, [r0, #0x0] bl FUN_0206B9B0 add r5, r0, #0x0 bl FUN_020690E4 add r2, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 ldr r0, [r4, r0] mov r1, #0x0 bl FUN_0200ACF8 ldr r0, _02076944 ; =0x000005A4 ldr r2, [r4, r0] add r1, r2, #0x0 add r1, #0x28 ldrb r1, [r1, #0x0] cmp r1, #0x4 bne _020768E6 add r0, #0xfc ldrh r2, [r2, #0x26] ldr r0, [r4, r0] mov r1, #0x1 bl FUN_0200AD5C add r0, r4, #0x0 bl FUN_020769A4 pop {r3-r5, pc} _020768E6: add r0, r5, #0x0 add r1, #0x36 mov r2, #0x0 bl FUN_020671BC add r2, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 ldr r0, [r4, r0] mov r1, #0x1 bl FUN_0200AD5C ldr r0, _02076948 ; =0x0000069C mov r1, #0x3c ldr r0, [r4, r0] bl FUN_0200A914 mov r1, #0x6a add r5, r0, #0x0 lsl r1, r1, #0x4 ldr r0, [r4, r1] add r1, r1, #0x4 ldr r1, [r4, r1] add r2, r5, #0x0 bl FUN_0200B7B8 add r0, r5, #0x0 bl FUN_02021A20 mov r1, #0x0 add r0, r4, #0x0 mvn r1, r1 mov r2, #0x1 bl FUN_020731E8 ldr r0, _0207694C ; =0x00000B22 mov r1, #0x5 strb r1, [r4, r0] add r0, r0, #0x5 strb r1, [r4, r0] mov r0, #0x14 pop {r3-r5, pc} nop _0207693C: .word FUN_020765EC _02076940: .word 0x00000B14 _02076944: .word 0x000005A4 _02076948: .word 0x0000069C _0207694C: .word 0x00000B22 thumb_func_start FUN_02076950 FUN_02076950: ; 0x02076950 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _02076998 ; =0x0000069C mov r1, #0x3b ldr r0, [r5, r0] bl FUN_0200A914 mov r1, #0x6a add r4, r0, #0x0 lsl r1, r1, #0x4 ldr r0, [r5, r1] add r1, r1, #0x4 ldr r1, [r5, r1] add r2, r4, #0x0 bl FUN_0200B7B8 add r0, r4, #0x0 bl FUN_02021A20 mov r1, #0x0 add r0, r5, #0x0 mvn r1, r1 mov r2, #0x0 bl FUN_020731E8 ldr r0, _0207699C ; =0x000005A4 mov r1, #0x5 ldr r0, [r5, r0] add r0, #0x23 strb r1, [r0, #0x0] ldr r0, _020769A0 ; =0x00000B22 mov r1, #0x15 strb r1, [r5, r0] mov r0, #0x14 pop {r3-r5, pc} nop _02076998: .word 0x0000069C _0207699C: .word 0x000005A4 _020769A0: .word 0x00000B22 thumb_func_start FUN_020769A4 FUN_020769A4: ; 0x020769A4 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _020769EC ; =0x0000069C mov r1, #0x37 ldr r0, [r5, r0] bl FUN_0200A914 mov r1, #0x6a add r4, r0, #0x0 lsl r1, r1, #0x4 ldr r0, [r5, r1] add r1, r1, #0x4 ldr r1, [r5, r1] add r2, r4, #0x0 bl FUN_0200B7B8 add r0, r4, #0x0 bl FUN_02021A20 mov r1, #0x0 add r0, r5, #0x0 mvn r1, r1 mov r2, #0x1 bl FUN_020731E8 ldr r0, _020769F0 ; =FUN_020769FC ldr r1, _020769F4 ; =0x00000B18 ldr r2, _020769F8 ; =FUN_02076A48 str r0, [r5, r1] add r0, r1, #0x4 str r2, [r5, r0] mov r0, #0x16 add r1, #0xa strb r0, [r5, r1] mov r0, #0x14 pop {r3-r5, pc} .balign 4 _020769EC: .word 0x0000069C _020769F0: .word FUN_020769FC _020769F4: .word 0x00000B18 _020769F8: .word FUN_02076A48 thumb_func_start FUN_020769FC FUN_020769FC: ; 0x020769FC push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _02076A40 ; =0x0000069C mov r1, #0x3a ldr r0, [r5, r0] bl FUN_0200A914 mov r1, #0x6a add r4, r0, #0x0 lsl r1, r1, #0x4 ldr r0, [r5, r1] add r1, r1, #0x4 ldr r1, [r5, r1] add r2, r4, #0x0 bl FUN_0200B7B8 add r0, r4, #0x0 bl FUN_02021A20 mov r1, #0x0 add r0, r5, #0x0 mvn r1, r1 mov r2, #0x0 bl FUN_020731E8 ldr r0, _02076A44 ; =0x00000B22 mov r1, #0x5 strb r1, [r5, r0] mov r1, #0x4 add r0, r0, #0x5 strb r1, [r5, r0] mov r0, #0x14 pop {r3-r5, pc} nop _02076A40: .word 0x0000069C _02076A44: .word 0x00000B22 thumb_func_start FUN_02076A48 FUN_02076A48: ; 0x02076A48 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _02076A90 ; =0x0000069C mov r1, #0x34 ldr r0, [r5, r0] bl FUN_0200A914 mov r1, #0x6a add r4, r0, #0x0 lsl r1, r1, #0x4 ldr r0, [r5, r1] add r1, r1, #0x4 ldr r1, [r5, r1] add r2, r4, #0x0 bl FUN_0200B7B8 add r0, r4, #0x0 bl FUN_02021A20 mov r1, #0x0 add r0, r5, #0x0 mvn r1, r1 mov r2, #0x0 bl FUN_020731E8 ldr r0, _02076A94 ; =FUN_02076950 ldr r1, _02076A98 ; =0x00000B18 ldr r2, _02076A9C ; =FUN_020769A4 str r0, [r5, r1] add r0, r1, #0x4 str r2, [r5, r0] mov r0, #0x16 add r1, #0xa strb r0, [r5, r1] mov r0, #0x14 pop {r3-r5, pc} .balign 4 _02076A90: .word 0x0000069C _02076A94: .word FUN_02076950 _02076A98: .word 0x00000B18 _02076A9C: .word FUN_020769A4 thumb_func_start FUN_02076AA0 FUN_02076AA0: ; 0x02076AA0 push {r3-r7, lr} ldr r7, _02076AF4 ; =0x000005A4 add r5, r0, #0x0 add r6, r1, #0x0 mov r4, #0x0 _02076AAA: add r1, r4, #0x0 add r0, r6, #0x0 add r1, #0x36 mov r2, #0x0 bl FUN_020671BC lsl r0, r0, #0x10 lsr r2, r0, #0x10 ldr r0, [r5, r7] ldrh r1, [r0, #0x26] cmp r2, r1 bne _02076AC6 mov r0, #0xfd pop {r3-r7, pc} _02076AC6: cmp r2, #0x0 beq _02076AD4 add r1, r4, #0x1 lsl r1, r1, #0x18 lsr r4, r1, #0x18 cmp r4, #0x4 blo _02076AAA _02076AD4: ldrh r0, [r0, #0x24] bl FUN_0206EA7C add r1, r0, #0x0 add r0, r6, #0x0 bl FUN_0206A13C cmp r0, #0x0 bne _02076AEA mov r0, #0xff pop {r3-r7, pc} _02076AEA: cmp r4, #0x4 bne _02076AF0 mov r4, #0xfe _02076AF0: add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 _02076AF4: .word 0x000005A4 thumb_func_start FUN_02076AF8 FUN_02076AF8: ; 0x02076AF8 push {r4-r6, lr} add r4, r0, #0x0 ldr r0, _02076C78 ; =0x000005A4 ldr r1, _02076C7C ; =0x00000B25 ldr r0, [r4, r0] ldrb r1, [r4, r1] ldr r0, [r0, #0x0] bl FUN_0206B9B0 add r6, r0, #0x0 add r0, r4, #0x0 add r1, r6, #0x0 bl FUN_02076AA0 add r5, r0, #0x0 add r0, r6, #0x0 bl FUN_020690E4 add r2, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 ldr r0, [r4, r0] mov r1, #0x0 bl FUN_0200ACF8 mov r2, #0x6a lsl r2, r2, #0x4 ldr r0, [r4, r2] sub r2, #0xfc ldr r2, [r4, r2] mov r1, #0x1 ldrh r2, [r2, #0x26] bl FUN_0200AD5C cmp r5, #0xfd bhi _02076B5A bhs _02076BB2 cmp r5, #0x3 bhi _02076B60 add r0, r5, r5 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02076B52: ; jump table (using 16-bit offset) .short _02076B68 - _02076B52 - 2; case 0 .short _02076B68 - _02076B52 - 2; case 1 .short _02076B68 - _02076B52 - 2; case 2 .short _02076B68 - _02076B52 - 2; case 3 _02076B5A: cmp r5, #0xfe bhi _02076B62 beq _02076BF2 _02076B60: b _02076C72 _02076B62: cmp r5, #0xff beq _02076C34 b _02076C72 _02076B68: add r0, r4, #0x0 add r1, r6, #0x0 add r2, r5, #0x0 bl FUN_02076F2C ldr r0, _02076C80 ; =0x0000069C mov r1, #0x3d ldr r0, [r4, r0] bl FUN_0200A914 mov r1, #0x6a add r5, r0, #0x0 lsl r1, r1, #0x4 ldr r0, [r4, r1] add r1, r1, #0x4 ldr r1, [r4, r1] add r2, r5, #0x0 bl FUN_0200B7B8 add r0, r5, #0x0 bl FUN_02021A20 mov r1, #0x0 add r0, r4, #0x0 mvn r1, r1 mov r2, #0x1 bl FUN_020731E8 ldr r0, _02076C78 ; =0x000005A4 mov r1, #0x0 ldr r0, [r4, r0] add r0, #0x23 strb r1, [r0, #0x0] ldr r0, _02076C84 ; =0x00000B22 mov r1, #0x15 strb r1, [r4, r0] b _02076C72 _02076BB2: ldr r0, _02076C80 ; =0x0000069C mov r1, #0x3f ldr r0, [r4, r0] bl FUN_0200A914 mov r1, #0x6a add r5, r0, #0x0 lsl r1, r1, #0x4 ldr r0, [r4, r1] add r1, r1, #0x4 ldr r1, [r4, r1] add r2, r5, #0x0 bl FUN_0200B7B8 add r0, r5, #0x0 bl FUN_02021A20 mov r1, #0x0 add r0, r4, #0x0 mvn r1, r1 mov r2, #0x1 bl FUN_020731E8 ldr r0, _02076C78 ; =0x000005A4 mov r1, #0x0 ldr r0, [r4, r0] add r0, #0x23 strb r1, [r0, #0x0] ldr r0, _02076C84 ; =0x00000B22 mov r1, #0x15 strb r1, [r4, r0] b _02076C72 _02076BF2: ldr r0, _02076C80 ; =0x0000069C mov r1, #0x34 ldr r0, [r4, r0] bl FUN_0200A914 mov r1, #0x6a add r5, r0, #0x0 lsl r1, r1, #0x4 ldr r0, [r4, r1] add r1, r1, #0x4 ldr r1, [r4, r1] add r2, r5, #0x0 bl FUN_0200B7B8 add r0, r5, #0x0 bl FUN_02021A20 mov r1, #0x0 add r0, r4, #0x0 mvn r1, r1 mov r2, #0x1 bl FUN_020731E8 ldr r0, _02076C88 ; =FUN_02076DD4 ldr r1, _02076C8C ; =0x00000B18 ldr r2, _02076C90 ; =FUN_02076E28 str r0, [r4, r1] add r0, r1, #0x4 str r2, [r4, r0] mov r0, #0x16 add r1, #0xa strb r0, [r4, r1] b _02076C72 _02076C34: ldr r0, _02076C80 ; =0x0000069C mov r1, #0x3e ldr r0, [r4, r0] bl FUN_0200A914 mov r1, #0x6a add r5, r0, #0x0 lsl r1, r1, #0x4 ldr r0, [r4, r1] add r1, r1, #0x4 ldr r1, [r4, r1] add r2, r5, #0x0 bl FUN_0200B7B8 add r0, r5, #0x0 bl FUN_02021A20 mov r1, #0x0 add r0, r4, #0x0 mvn r1, r1 mov r2, #0x1 bl FUN_020731E8 ldr r0, _02076C78 ; =0x000005A4 mov r1, #0x0 ldr r0, [r4, r0] add r0, #0x23 strb r1, [r0, #0x0] ldr r0, _02076C84 ; =0x00000B22 mov r1, #0x15 strb r1, [r4, r0] _02076C72: mov r0, #0x14 pop {r4-r6, pc} nop _02076C78: .word 0x000005A4 _02076C7C: .word 0x00000B25 _02076C80: .word 0x0000069C _02076C84: .word 0x00000B22 _02076C88: .word FUN_02076DD4 _02076C8C: .word 0x00000B18 _02076C90: .word FUN_02076E28 thumb_func_start FUN_02076C94 FUN_02076C94: ; 0x02076C94 push {r3-r5, lr} add r4, r0, #0x0 ldr r0, _02076D2C ; =0x000005A4 ldr r1, _02076D30 ; =0x00000B25 ldr r0, [r4, r0] ldrb r1, [r4, r1] ldr r0, [r0, #0x0] bl FUN_0206B9B0 add r5, r0, #0x0 bl FUN_020690E4 add r2, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 ldr r0, [r4, r0] mov r1, #0x0 bl FUN_0200ACF8 ldr r0, _02076D2C ; =0x000005A4 ldr r2, [r4, r0] add r1, r2, #0x0 add r1, #0x28 ldrb r1, [r1, #0x0] cmp r1, #0x4 bne _02076CDC add r0, #0xfc ldrh r2, [r2, #0x26] ldr r0, [r4, r0] mov r1, #0x1 bl FUN_0200AD5C add r0, r4, #0x0 bl FUN_02076E28 pop {r3-r5, pc} _02076CDC: add r0, r5, #0x0 add r1, #0x36 mov r2, #0x0 bl FUN_020671BC add r2, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 ldr r0, [r4, r0] mov r1, #0x1 bl FUN_0200AD5C ldr r0, _02076D34 ; =0x0000069C mov r1, #0x3c ldr r0, [r4, r0] bl FUN_0200A914 mov r1, #0x6a add r5, r0, #0x0 lsl r1, r1, #0x4 ldr r0, [r4, r1] add r1, r1, #0x4 ldr r1, [r4, r1] add r2, r5, #0x0 bl FUN_0200B7B8 add r0, r5, #0x0 bl FUN_02021A20 mov r1, #0x0 add r0, r4, #0x0 mvn r1, r1 mov r2, #0x1 bl FUN_020731E8 ldr r0, _02076D38 ; =0x00000B22 mov r1, #0x12 strb r1, [r4, r0] mov r0, #0x14 pop {r3-r5, pc} .balign 4 _02076D2C: .word 0x000005A4 _02076D30: .word 0x00000B25 _02076D34: .word 0x0000069C _02076D38: .word 0x00000B22 thumb_func_start FUN_02076D3C FUN_02076D3C: ; 0x02076D3C push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _02076DC0 ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #0x3 tst r0, r1 beq _02076DBC ldr r0, _02076DC4 ; =0x000005A4 ldr r1, _02076DC8 ; =0x00000B25 ldr r0, [r5, r0] ldrb r1, [r5, r1] ldr r0, [r0, #0x0] bl FUN_0206B9B0 ldr r2, _02076DC4 ; =0x000005A4 add r1, r0, #0x0 ldr r2, [r5, r2] add r0, r5, #0x0 add r2, #0x28 ldrb r2, [r2, #0x0] bl FUN_02076F2C ldr r0, _02076DCC ; =0x0000069C mov r1, #0x3d ldr r0, [r5, r0] bl FUN_0200A914 mov r2, #0x6a lsl r2, r2, #0x4 add r4, r0, #0x0 ldr r0, [r5, r2] sub r2, #0xfc ldr r2, [r5, r2] mov r1, #0x1 ldrh r2, [r2, #0x26] bl FUN_0200AD5C mov r1, #0x6a lsl r1, r1, #0x4 ldr r0, [r5, r1] add r1, r1, #0x4 ldr r1, [r5, r1] add r2, r4, #0x0 bl FUN_0200B7B8 add r0, r4, #0x0 bl FUN_02021A20 mov r1, #0x0 add r0, r5, #0x0 mvn r1, r1 mov r2, #0x0 bl FUN_020731E8 ldr r0, _02076DC4 ; =0x000005A4 mov r1, #0x0 ldr r0, [r5, r0] add r0, #0x23 strb r1, [r0, #0x0] ldr r0, _02076DD0 ; =0x00000B22 mov r1, #0x15 strb r1, [r5, r0] mov r0, #0x14 pop {r3-r5, pc} _02076DBC: mov r0, #0x12 pop {r3-r5, pc} .balign 4 _02076DC0: .word 0x021C48B8 _02076DC4: .word 0x000005A4 _02076DC8: .word 0x00000B25 _02076DCC: .word 0x0000069C _02076DD0: .word 0x00000B22 thumb_func_start FUN_02076DD4 FUN_02076DD4: ; 0x02076DD4 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _02076E1C ; =0x0000069C mov r1, #0x3b ldr r0, [r5, r0] bl FUN_0200A914 mov r1, #0x6a add r4, r0, #0x0 lsl r1, r1, #0x4 ldr r0, [r5, r1] add r1, r1, #0x4 ldr r1, [r5, r1] add r2, r4, #0x0 bl FUN_0200B7B8 add r0, r4, #0x0 bl FUN_02021A20 mov r1, #0x0 add r0, r5, #0x0 mvn r1, r1 mov r2, #0x0 bl FUN_020731E8 ldr r0, _02076E20 ; =0x000005A4 mov r1, #0x4 ldr r0, [r5, r0] add r0, #0x23 strb r1, [r0, #0x0] ldr r0, _02076E24 ; =0x00000B22 mov r1, #0x15 strb r1, [r5, r0] mov r0, #0x14 pop {r3-r5, pc} nop _02076E1C: .word 0x0000069C _02076E20: .word 0x000005A4 _02076E24: .word 0x00000B22 thumb_func_start FUN_02076E28 FUN_02076E28: ; 0x02076E28 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _02076E70 ; =0x0000069C mov r1, #0x37 ldr r0, [r5, r0] bl FUN_0200A914 mov r1, #0x6a add r4, r0, #0x0 lsl r1, r1, #0x4 ldr r0, [r5, r1] add r1, r1, #0x4 ldr r1, [r5, r1] add r2, r4, #0x0 bl FUN_0200B7B8 add r0, r4, #0x0 bl FUN_02021A20 mov r1, #0x0 add r0, r5, #0x0 mvn r1, r1 mov r2, #0x1 bl FUN_020731E8 ldr r0, _02076E74 ; =FUN_02076E80 ldr r1, _02076E78 ; =0x00000B18 ldr r2, _02076E7C ; =FUN_02076ED4 str r0, [r5, r1] add r0, r1, #0x4 str r2, [r5, r0] mov r0, #0x16 add r1, #0xa strb r0, [r5, r1] mov r0, #0x14 pop {r3-r5, pc} .balign 4 _02076E70: .word 0x0000069C _02076E74: .word FUN_02076E80 _02076E78: .word 0x00000B18 _02076E7C: .word FUN_02076ED4 thumb_func_start FUN_02076E80 FUN_02076E80: ; 0x02076E80 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _02076EC8 ; =0x0000069C mov r1, #0x3a ldr r0, [r5, r0] bl FUN_0200A914 mov r1, #0x6a add r4, r0, #0x0 lsl r1, r1, #0x4 ldr r0, [r5, r1] add r1, r1, #0x4 ldr r1, [r5, r1] add r2, r4, #0x0 bl FUN_0200B7B8 add r0, r4, #0x0 bl FUN_02021A20 mov r1, #0x0 add r0, r5, #0x0 mvn r1, r1 mov r2, #0x0 bl FUN_020731E8 ldr r0, _02076ECC ; =0x000005A4 mov r1, #0x0 ldr r0, [r5, r0] add r0, #0x23 strb r1, [r0, #0x0] ldr r0, _02076ED0 ; =0x00000B22 mov r1, #0x15 strb r1, [r5, r0] mov r0, #0x14 pop {r3-r5, pc} nop _02076EC8: .word 0x0000069C _02076ECC: .word 0x000005A4 _02076ED0: .word 0x00000B22 thumb_func_start FUN_02076ED4 FUN_02076ED4: ; 0x02076ED4 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _02076F1C ; =0x0000069C mov r1, #0x34 ldr r0, [r5, r0] bl FUN_0200A914 mov r1, #0x6a add r4, r0, #0x0 lsl r1, r1, #0x4 ldr r0, [r5, r1] add r1, r1, #0x4 ldr r1, [r5, r1] add r2, r4, #0x0 bl FUN_0200B7B8 add r0, r4, #0x0 bl FUN_02021A20 mov r1, #0x0 add r0, r5, #0x0 mvn r1, r1 mov r2, #0x0 bl FUN_020731E8 ldr r0, _02076F20 ; =FUN_02076DD4 ldr r1, _02076F24 ; =0x00000B18 ldr r2, _02076F28 ; =FUN_02076E28 str r0, [r5, r1] add r0, r1, #0x4 str r2, [r5, r0] mov r0, #0x16 add r1, #0xa strb r0, [r5, r1] mov r0, #0x14 pop {r3-r5, pc} .balign 4 _02076F1C: .word 0x0000069C _02076F20: .word FUN_02076DD4 _02076F24: .word 0x00000B18 _02076F28: .word FUN_02076E28 thumb_func_start FUN_02076F2C FUN_02076F2C: ; 0x02076F2C push {r3-r6, lr} sub sp, #0x4 add r5, r0, #0x0 ldr r0, _02076FAC ; =0x000005A4 add r6, r2, #0x0 ldr r0, [r5, r0] add r4, r1, #0x0 ldrh r0, [r0, #0x26] add r1, r6, #0x0 add r1, #0x36 str r0, [sp, #0x0] add r0, r4, #0x0 add r2, sp, #0x0 bl FUN_02067830 mov r0, #0x0 add r1, r6, #0x0 str r0, [sp, #0x0] add r0, r4, #0x0 add r1, #0x3e add r2, sp, #0x0 bl FUN_02067830 ldr r0, _02076FAC ; =0x000005A4 mov r1, #0x0 ldr r0, [r5, r0] ldrh r0, [r0, #0x26] bl FUN_0206AB30 add r6, #0x3a str r0, [sp, #0x0] add r0, r4, #0x0 add r1, r6, #0x0 add r2, sp, #0x0 bl FUN_02067830 ldr r0, _02076FAC ; =0x000005A4 ldr r1, [r5, r0] ldrh r0, [r1, #0x24] cmp r0, #0x0 beq _02076FA8 ldrh r0, [r1, #0x26] bl FUN_0206EA54 cmp r0, #0x0 bne _02076F98 ldr r0, _02076FAC ; =0x000005A4 mov r2, #0x1 ldr r1, [r5, r0] mov r3, #0xc ldr r0, [r1, #0x4] ldrh r1, [r1, #0x24] bl FUN_0206EDD4 _02076F98: add r0, r5, #0x0 bl FUN_020772CC add r2, r0, #0x0 add r0, r4, #0x0 mov r1, #0x4 bl FUN_020688E8 _02076FA8: add sp, #0x4 pop {r3-r6, pc} .balign 4 _02076FAC: .word 0x000005A4 thumb_func_start FUN_02076FB0 FUN_02076FB0: ; 0x02076FB0 push {r3-r7, lr} add r5, r0, #0x0 ldr r0, _0207702C ; =0x000005A4 add r6, r1, #0x0 ldr r1, _02077030 ; =0x00000B25 ldr r0, [r5, r0] ldrb r1, [r5, r1] ldr r0, [r0, #0x0] bl FUN_0206B9B0 add r1, r6, #0x0 add r1, #0x36 mov r2, #0x0 bl FUN_020671BC lsl r0, r0, #0x10 lsr r4, r0, #0x10 ldr r0, _02077034 ; =0x0000069C add r1, r6, #0x0 ldr r0, [r5, r0] add r1, #0xa2 bl FUN_0200A914 add r7, r0, #0x0 mov r0, #0x6a lsl r0, r0, #0x4 ldr r0, [r5, r0] mov r1, #0x0 add r2, r4, #0x0 bl FUN_0200AD5C mov r1, #0x6a lsl r1, r1, #0x4 ldr r0, [r5, r1] add r1, #0x8 ldr r1, [r5, r1] add r2, r7, #0x0 bl FUN_0200B7B8 add r0, r7, #0x0 bl FUN_02021A20 cmp r4, #0x0 ldr r1, _02077038 ; =0x000006F8 bne _0207701C ldr r0, [r5, r1] sub r1, #0x50 mov r2, #0x2 ldr r1, [r5, r1] mvn r2, r2 bl FUN_020128A0 mov r0, #0x0 pop {r3-r7, pc} _0207701C: ldr r0, [r5, r1] sub r1, #0x50 ldr r1, [r5, r1] add r2, r6, #0x0 bl FUN_020128A0 mov r0, #0x1 pop {r3-r7, pc} .balign 4 _0207702C: .word 0x000005A4 _02077030: .word 0x00000B25 _02077034: .word 0x0000069C _02077038: .word 0x000006F8 thumb_func_start FUN_0207703C FUN_0207703C: ; 0x0207703C push {r4-r5, lr} sub sp, #0x14 add r4, r0, #0x0 cmp r1, #0x0 bne _02077050 mov r1, #0x29 mov r2, #0x1 bl FUN_020731D4 b _02077058 _02077050: mov r1, #0x28 mov r2, #0x1 bl FUN_020731D4 _02077058: mov r0, #0x4 mov r1, #0xc bl FUN_02012838 ldr r1, _02077108 ; =0x000006F8 str r0, [r4, r1] add r0, r4, #0x0 mov r1, #0x0 bl FUN_02076FB0 add r5, r0, #0x0 add r0, r4, #0x0 mov r1, #0x1 bl FUN_02076FB0 add r0, r5, r0 lsl r0, r0, #0x18 lsr r5, r0, #0x18 add r0, r4, #0x0 mov r1, #0x2 bl FUN_02076FB0 add r0, r5, r0 lsl r0, r0, #0x18 lsr r5, r0, #0x18 add r0, r4, #0x0 mov r1, #0x3 bl FUN_02076FB0 add r0, r5, r0 lsl r0, r0, #0x18 lsr r1, r0, #0x18 ldr r0, _02077108 ; =0x000006F8 mov r2, #0x0 ldr r0, [r4, r0] str r0, [sp, #0x8] mov r0, #0x91 lsl r0, r0, #0x2 add r0, r4, r0 str r0, [sp, #0xc] add r0, sp, #0x8 strb r2, [r0, #0x8] mov r2, #0x1 strb r2, [r0, #0x9] mov r2, #0x4 strb r2, [r0, #0xa] ldrb r3, [r0, #0xb] mov r2, #0xf bic r3, r2 strb r3, [r0, #0xb] ldrb r3, [r0, #0xb] mov r2, #0x30 bic r3, r2 strb r3, [r0, #0xb] cmp r1, #0x4 ldrb r2, [r0, #0xb] bne _020770D6 mov r1, #0xc0 bic r2, r1 mov r1, #0x40 orr r1, r2 strb r1, [r0, #0xb] b _020770DC _020770D6: mov r1, #0xc0 bic r2, r1 strb r2, [r0, #0xb] _020770DC: mov r0, #0x91 lsl r0, r0, #0x2 mov r1, #0x1 add r0, r4, r0 add r2, r1, #0x0 mov r3, #0xe bl FUN_0200CCA4 mov r0, #0xc str r0, [sp, #0x0] mov r0, #0x2 mov r2, #0x0 str r0, [sp, #0x4] add r0, sp, #0x8 mov r1, #0x8 add r3, r2, #0x0 bl FUN_02001C14 ldr r1, _0207710C ; =0x000006FC str r0, [r4, r1] add sp, #0x14 pop {r4-r5, pc} .balign 4 _02077108: .word 0x000006F8 _0207710C: .word 0x000006FC thumb_func_start FUN_02077110 FUN_02077110: ; 0x02077110 push {r4-r6, lr} sub sp, #0x8 add r5, r0, #0x0 ldr r0, _0207722C ; =0x000006FC ldr r0, [r5, r0] bl FUN_02001C78 add r4, r0, #0x0 mov r0, #0x1 mvn r0, r0 cmp r4, r0 beq _02077130 add r0, r0, #0x1 cmp r4, r0 beq _02077226 b _0207716A _02077130: mov r0, #0x85 lsl r0, r0, #0x2 add r0, r5, r0 mov r1, #0x1 bl FUN_0200D0E0 mov r0, #0x91 lsl r0, r0, #0x2 add r0, r5, r0 mov r1, #0x1 bl FUN_0200CCF8 ldr r0, _0207722C ; =0x000006FC mov r1, #0x0 ldr r0, [r5, r0] bl FUN_02001C5C ldr r0, _02077230 ; =0x000006F8 ldr r0, [r5, r0] bl FUN_02012870 add r0, r5, #0x0 mov r1, #0x20 mov r2, #0x1 bl FUN_020731C0 add sp, #0x8 mov r0, #0x4 pop {r4-r6, pc} _0207716A: mov r0, #0x85 lsl r0, r0, #0x2 add r0, r5, r0 mov r1, #0x1 bl FUN_0200D0E0 mov r0, #0x91 lsl r0, r0, #0x2 add r0, r5, r0 mov r1, #0x1 bl FUN_0200CCF8 ldr r0, _0207722C ; =0x000006FC mov r1, #0x0 ldr r0, [r5, r0] bl FUN_02001C5C ldr r0, _02077230 ; =0x000006F8 ldr r0, [r5, r0] bl FUN_02012870 ldr r0, _02077234 ; =0x000005A4 ldr r6, [r5, r0] add r0, r5, #0x0 bl FUN_020772CC str r0, [sp, #0x0] mov r0, #0xc str r0, [sp, #0x4] ldr r2, _02077238 ; =0x00000B25 lsl r3, r4, #0x18 ldrh r1, [r6, #0x24] ldrb r2, [r5, r2] ldr r0, [r6, #0x0] lsr r3, r3, #0x18 bl FUN_02084DD0 cmp r0, #0x1 bne _020771F6 ldr r0, _02077234 ; =0x000005A4 ldr r1, _02077238 ; =0x00000B25 ldr r0, [r5, r0] ldrb r1, [r5, r1] ldr r0, [r0, #0x0] bl FUN_0206B9B0 add r4, #0x36 add r1, r4, #0x0 mov r2, #0x0 bl FUN_020671BC ldr r1, _02077234 ; =0x000005A4 add r2, r0, #0x0 ldr r1, [r5, r1] add r0, r5, #0x0 ldrh r1, [r1, #0x24] bl FUN_020757F4 ldr r0, _02077234 ; =0x000005A4 mov r2, #0x1 ldr r1, [r5, r0] mov r3, #0xc ldr r0, [r1, #0x4] ldrh r1, [r1, #0x24] bl FUN_0206EDD4 ldr r0, _0207723C ; =0x000005EC bl FUN_020054C8 b _02077204 _020771F6: ldr r2, _02077240 ; =0x0000069C mov r1, #0x69 ldr r0, [r5, r2] add r2, #0x8 ldr r2, [r5, r2] bl FUN_0200A8E0 _02077204: mov r1, #0x0 add r0, r5, #0x0 mvn r1, r1 mov r2, #0x1 bl FUN_020731E8 ldr r0, _02077234 ; =0x000005A4 mov r1, #0x0 ldr r0, [r5, r0] add sp, #0x8 add r0, #0x23 strb r1, [r0, #0x0] ldr r0, _02077244 ; =0x00000B22 mov r1, #0x15 strb r1, [r5, r0] mov r0, #0x14 pop {r4-r6, pc} _02077226: mov r0, #0x6 add sp, #0x8 pop {r4-r6, pc} .balign 4 _0207722C: .word 0x000006FC _02077230: .word 0x000006F8 _02077234: .word 0x000005A4 _02077238: .word 0x00000B25 _0207723C: .word 0x000005EC _02077240: .word 0x0000069C _02077244: .word 0x00000B22 thumb_func_start FUN_02077248 FUN_02077248: ; 0x02077248 push {r4, lr} add r4, r0, #0x0 mov r0, #0x81 lsl r0, r0, #0x2 add r0, r4, r0 mov r1, #0x1 bl FUN_0200D0E0 ldr r0, _020772BC ; =0x00000B25 ldr r2, _020772C0 ; =0x0000070C ldrb r1, [r4, r0] mov r0, #0x2c mul r0, r1 add r0, r4, r0 ldrh r0, [r0, r2] cmp r0, #0x0 bne _02077286 add r0, r2, #0x0 sub r0, #0x70 sub r2, #0x68 ldr r0, [r4, r0] ldr r2, [r4, r2] mov r1, #0x7f bl FUN_0200A8E0 ldr r1, _020772BC ; =0x00000B25 add r0, r4, #0x0 ldrb r1, [r4, r1] bl FUN_02073AB8 b _0207729C _02077286: add r0, r2, #0x0 sub r0, #0x70 sub r2, #0x68 ldr r0, [r4, r0] ldr r2, [r4, r2] mov r1, #0x80 bl FUN_0200A8E0 ldr r0, _020772BC ; =0x00000B25 mov r1, #0x7 strb r1, [r4, r0] _0207729C: mov r1, #0x0 add r0, r4, #0x0 mvn r1, r1 mov r2, #0x1 bl FUN_020731E8 ldr r0, _020772C4 ; =0x000005A4 mov r1, #0x0 ldr r0, [r4, r0] add r0, #0x23 strb r1, [r0, #0x0] ldr r0, _020772C8 ; =0x00000B22 mov r1, #0x15 strb r1, [r4, r0] pop {r4, pc} nop _020772BC: .word 0x00000B25 _020772C0: .word 0x0000070C _020772C4: .word 0x000005A4 _020772C8: .word 0x00000B22 thumb_func_start FUN_020772CC FUN_020772CC: ; 0x020772CC push {r3, lr} ldr r1, _020772E4 ; =0x000005A4 ldr r0, [r0, r1] ldr r0, [r0, #0x1c] ldr r0, [r0, #0x1c] ldr r0, [r0, #0x0] bl FUN_02034824 lsl r0, r0, #0x10 lsr r0, r0, #0x10 pop {r3, pc} nop _020772E4: .word 0x000005A4 thumb_func_start FUN_020772E8 FUN_020772E8: ; 0x020772E8 push {r3-r6, lr} sub sp, #0xc add r5, r1, #0x0 ldr r1, [r5, #0x0] add r6, r0, #0x0 cmp r1, #0x0 beq _020772FE cmp r1, #0x1 bne _020772FC b _02077456 _020772FC: b _02077490 _020772FE: mov r0, #0x0 add r1, r0, #0x0 bl FUN_02015F10 bl FUN_02015F1C bl FUN_0201E6D8 bl FUN_0201E740 mov r2, #0x1 lsl r2, r2, #0x1a ldr r1, [r2, #0x0] ldr r0, _02077498 ; =0xFFFFE0FF and r1, r0 str r1, [r2, #0x0] ldr r2, _0207749C ; =0x04001000 ldr r1, [r2, #0x0] and r0, r1 str r0, [r2, #0x0] mov r2, #0xa mov r0, #0x3 mov r1, #0x12 lsl r2, r2, #0xe bl FUN_0201681C mov r1, #0x5d add r0, r6, #0x0 lsl r1, r1, #0x4 mov r2, #0x12 bl FUN_02006268 mov r2, #0x5d mov r1, #0x0 lsl r2, r2, #0x4 add r4, r0, #0x0 blx FUN_020DF4A4 mov r0, #0x12 bl FUN_02016B94 mov r1, #0x16 lsl r1, r1, #0x4 str r0, [r4, r1] mov r0, #0x12 bl FUN_0200AA80 mov r2, #0x5a lsl r2, r2, #0x2 str r0, [r4, r2] mov r0, #0x0 mov r1, #0x1a add r2, #0xb mov r3, #0x12 bl FUN_0200A86C mov r2, #0x5b lsl r2, r2, #0x2 str r0, [r4, r2] mov r0, #0x1 mov r1, #0x1a add r2, #0xc mov r3, #0x12 bl FUN_0200A86C mov r2, #0x17 lsl r2, r2, #0x4 str r0, [r4, r2] mov r0, #0x1 mov r1, #0x1a sub r2, #0x2c mov r3, #0x12 bl FUN_0200A86C mov r1, #0x5d lsl r1, r1, #0x2 str r0, [r4, r1] mov r0, #0x4 mov r1, #0x8 bl FUN_0201669C bl FUN_02077B24 mov r0, #0x16 lsl r0, r0, #0x4 ldr r0, [r4, r0] bl FUN_02077B44 add r0, r6, #0x0 bl FUN_0200628C add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_02077B08 add r0, r4, #0x0 bl FUN_02077FE8 mov r0, #0x2 mov r1, #0x12 bl FUN_02002C50 ldr r0, _020774A0 ; =FUN_02077AE8 mov r1, #0x0 bl FUN_02015F10 add r0, r4, #0x0 add r1, r6, #0x0 bl FUN_02077CD4 mov r0, #0x0 mov r1, #0x12 bl FUN_02002C84 bl FUN_02078110 add r0, r4, #0x0 bl FUN_02078140 add r0, r4, #0x0 bl FUN_0207835C add r0, r4, #0x0 add r1, r6, #0x0 bl FUN_0207890C ldr r0, _020774A4 ; =0x000004C4 mov r3, #0x5f add r1, r4, r0 lsl r3, r3, #0x2 str r1, [sp, #0x0] ldr r1, [r4, r3] add r2, r3, #0x0 str r1, [sp, #0x4] sub r2, #0x24 sub r0, #0xcc add r1, r4, #0x0 sub r3, #0x22 ldrh r2, [r4, r2] add r0, r4, r0 add r1, #0xd8 add r3, r4, r3 bl FUN_0207907C mov r1, #0x0 mov r0, #0x34 add r2, r1, #0x0 bl FUN_0200433C mov r0, #0x10 str r0, [sp, #0x0] mov r1, #0x1 str r1, [sp, #0x4] mov r0, #0x12 str r0, [sp, #0x8] mov r0, #0x0 add r2, r1, #0x0 add r3, r0, #0x0 bl FUN_0200E1D0 mov r0, #0x1 bl FUN_02077C84 ldr r0, _020774A8 ; =0x021C4918 mov r1, #0x1 strb r1, [r0, #0x5] bl FUN_0201E7A0 ldr r0, [r5, #0x0] add r0, r0, #0x1 str r0, [r5, #0x0] b _02077490 _02077456: bl FUN_02006278 add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x1 bne _02077472 ldr r1, _020774AC ; =0x000004B8 ldr r2, [r4, #0x4] ldr r0, [r4, r1] add r1, #0x8 ldr r1, [r4, r1] ldr r3, [r4, #0x8] bl FUN_020774B8 _02077472: ldr r0, _020774B0 ; =0x021C5C54 mov r1, #0x1 str r4, [r0, #0x0] mov r0, #0x0 mov r2, #0xc mov r3, #0x12 bl FUN_020142EC ldr r1, _020774B4 ; =0x000005C4 add sp, #0xc str r0, [r4, r1] mov r0, #0x0 str r0, [r5, #0x0] mov r0, #0x1 pop {r3-r6, pc} _02077490: mov r0, #0x0 add sp, #0xc pop {r3-r6, pc} nop _02077498: .word 0xFFFFE0FF _0207749C: .word 0x04001000 _020774A0: .word FUN_02077AE8 _020774A4: .word 0x000004C4 _020774A8: .word 0x021C4918 _020774AC: .word 0x000004B8 _020774B0: .word 0x021C5C54 _020774B4: .word 0x000005C4 thumb_func_start FUN_020774B8 FUN_020774B8: ; 0x020774B8 push {r4-r6, lr} add r4, r1, #0x0 add r5, r2, #0x0 mov r2, #0x2 ldr r0, [r0, #0x14] ldr r1, _020774E8 ; =0x000057E0 add r6, r3, #0x0 lsl r2, r2, #0x8 blx FUN_020C92F4 ldr r4, [r4, #0xc] add r0, r5, #0x0 add r1, r6, #0x0 mov r2, #0x0 bl FUN_0206B7BC lsl r0, r0, #0x5 add r0, r4, r0 mov r1, #0xc0 mov r2, #0x20 blx FUN_020C9480 pop {r4-r6, pc} nop _020774E8: .word 0x000057E0 thumb_func_start FUN_020774EC FUN_020774EC: ; 0x020774EC push {r4-r6, lr} sub sp, #0x10 add r5, r1, #0x0 add r6, r0, #0x0 bl FUN_02006278 ldr r1, [r5, #0x0] add r4, r0, #0x0 cmp r1, #0x3 bhi _02077550 add r2, r1, r1 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _0207750C: ; jump table (using 16-bit offset) .short _02077514 - _0207750C - 2; case 0 .short _02077528 - _0207750C - 2; case 1 .short _0207755C - _0207750C - 2; case 2 .short _0207768A - _0207750C - 2; case 3 _02077514: bl FUN_0200E308 cmp r0, #0x0 beq _02077550 mov r0, #0x1 str r0, [r5, #0x0] ldr r0, _020776A8 ; =0x000005CC mov r1, #0x0 str r1, [r4, r0] b _02077698 _02077528: ldr r1, _020776A8 ; =0x000005CC ldr r2, [r4, r1] add r2, r2, #0x1 str r2, [r4, r1] bl FUN_020798C4 mov r2, #0x49 lsl r2, r2, #0x4 add r0, r4, r2 mov r1, #0xcb sub r2, #0x30 lsl r1, r1, #0x2 ldr r2, [r4, r2] add r1, r4, r1 bl FUN_02079834 ldr r0, _020776A8 ; =0x000005CC ldr r1, [r4, r0] cmp r1, #0x5 bgt _02077552 _02077550: b _02077698 _02077552: mov r1, #0x2 str r1, [r5, #0x0] mov r1, #0x0 str r1, [r4, r0] b _02077698 _0207755C: ldr r3, _020776AC ; =0x0000045C ldr r2, [r4, r3] cmp r2, #0x7 bhi _02077636 add r2, r2, r2 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _02077570: ; jump table (using 16-bit offset) .short _02077636 - _02077570 - 2; case 0 .short _02077636 - _02077570 - 2; case 1 .short _02077636 - _02077570 - 2; case 2 .short _02077636 - _02077570 - 2; case 3 .short _02077580 - _02077570 - 2; case 4 .short _02077594 - _02077570 - 2; case 5 .short _020775E0 - _02077570 - 2; case 6 .short _0207760C - _02077570 - 2; case 7 _02077580: ldr r2, [r4, #0x34] cmp r2, #0x0 bne _0207758C bl FUN_020776C4 str r0, [r5, #0x0] _0207758C: add r0, r4, #0x0 bl FUN_020798C4 b _02077636 _02077594: add r1, r6, #0x0 bl FUN_02077E90 ldr r0, _020776B0 ; =0x00000448 mov r1, #0xf add r0, r4, r0 bl FUN_02019620 ldr r0, _020776B0 ; =0x00000448 mov r2, #0x1 add r0, r4, r0 mov r1, #0x0 lsl r2, r2, #0x8 mov r3, #0xa bl FUN_0200D0BC mov r3, #0x0 mov r2, #0x6 ldr r0, _020776B0 ; =0x00000448 str r3, [sp, #0x0] mov r1, #0x1 str r1, [sp, #0x4] str r3, [sp, #0x8] lsl r2, r2, #0x6 ldr r2, [r4, r2] add r0, r4, r0 bl FUN_0201BD84 ldr r1, _020776B4 ; =0x00000458 str r0, [r4, r1] sub r1, #0x10 add r0, r4, r1 bl FUN_020191D0 ldr r0, _020776AC ; =0x0000045C mov r1, #0x6 str r1, [r4, r0] b _02077636 _020775E0: sub r0, r3, #0x4 ldr r0, [r4, r0] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_0201BD70 cmp r0, #0x0 bne _02077636 ldr r0, _020776B8 ; =0x000005E2 bl FUN_020054C8 ldr r1, _020776BC ; =0x000004A8 mov r2, #0x0 ldr r0, [r4, r1] add r0, r0, #0x1 str r0, [r4, r1] ldr r0, _020776A8 ; =0x000005CC sub r1, #0x4c str r2, [r4, r0] mov r0, #0x7 str r0, [r4, r1] b _02077636 _0207760C: ldr r0, _020776A8 ; =0x000005CC ldr r1, [r4, r0] add r1, r1, #0x1 str r1, [r4, r0] ldr r0, [r4, r0] cmp r0, #0x1e ble _02077636 mov r0, #0x10 str r0, [sp, #0x0] mov r1, #0x0 mov r0, #0x1 str r0, [sp, #0x4] mov r0, #0x12 str r0, [sp, #0x8] mov r0, #0x2 add r2, r1, #0x0 add r3, r1, #0x0 bl FUN_0200E1D0 mov r0, #0x3 str r0, [r5, #0x0] _02077636: ldr r3, _020776C0 ; =0x00000464 mov r1, #0xcb add r0, r4, r3 str r0, [sp, #0x0] add r0, r3, #0x4 add r0, r4, r0 lsl r1, r1, #0x2 str r0, [sp, #0x4] add r0, r4, r1 str r0, [sp, #0x8] add r0, r3, #0x0 add r0, #0x4c ldr r0, [r4, r0] add r2, r3, #0x0 ldr r0, [r0, #0x14] add r1, #0x8c str r0, [sp, #0xc] mov r0, #0x16 lsl r0, r0, #0x4 sub r3, r3, #0x4 sub r2, #0x8 ldr r0, [r4, r0] ldr r3, [r4, r3] add r1, r4, r1 add r2, r4, r2 bl FUN_020786B0 mov r2, #0x49 lsl r2, r2, #0x4 add r0, r4, r2 mov r1, #0xcb sub r2, #0x30 lsl r1, r1, #0x2 ldr r2, [r4, r2] add r1, r4, r1 bl FUN_02079834 add r0, r4, #0x0 add r0, #0x38 bl FUN_02078E3C b _02077698 _0207768A: bl FUN_0200E308 cmp r0, #0x0 beq _02077698 add sp, #0x10 mov r0, #0x1 pop {r4-r6, pc} _02077698: mov r0, #0x62 lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_0201FDEC mov r0, #0x0 add sp, #0x10 pop {r4-r6, pc} .balign 4 _020776A8: .word 0x000005CC _020776AC: .word 0x0000045C _020776B0: .word 0x00000448 _020776B4: .word 0x00000458 _020776B8: .word 0x000005E2 _020776BC: .word 0x000004A8 _020776C0: .word 0x00000464 thumb_func_start FUN_020776C4 FUN_020776C4: ; 0x020776C4 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_02078C98 ldr r0, _020777BC ; =0x021C48B8 mov r1, #0x4 ldr r0, [r0, #0x48] tst r1, r0 beq _02077746 ldr r0, [r5, #0x0] cmp r0, #0x4 beq _0207771E ldr r1, _020777C0 ; =0x0000045C mov r0, #0x0 str r0, [r5, r1] add r2, r1, #0x4 ldr r2, [r5, r2] add r3, r2, #0x1 add r2, r1, #0x4 str r3, [r5, r2] ldr r2, [r5, r2] cmp r2, #0x3 blt _020776F8 add r1, r1, #0x4 str r0, [r5, r1] _020776F8: mov r2, #0x49 lsl r2, r2, #0x4 add r1, r2, #0x0 sub r1, #0x30 ldr r1, [r5, r1] add r0, r5, r2 lsl r3, r1, #0x2 ldr r1, [r0, r3] sub r2, #0x30 add r1, r1, #0x1 str r1, [r0, r3] add r0, r5, #0x0 ldr r1, [r5, r2] add r0, #0x3a bl FUN_0207916C ldr r0, _020777C4 ; =0x0000069E bl FUN_020054C8 _0207771E: mov r2, #0x49 lsl r2, r2, #0x4 add r1, r2, #0x0 sub r1, #0x30 ldr r1, [r5, r1] add r0, r5, r2 lsl r3, r1, #0x2 ldr r1, [r0, r3] sub r2, #0x30 add r1, r1, #0x1 str r1, [r0, r3] add r0, r5, #0x0 ldr r1, [r5, r2] add r0, #0x3a bl FUN_0207916C ldr r0, _020777C4 ; =0x0000069E bl FUN_020054C8 b _020777B8 _02077746: mov r2, #0x1 add r1, r0, #0x0 tst r1, r2 beq _0207776C ldr r3, [r5, #0x20] mov r1, #0x1a mul r1, r3 add r3, r5, r1 ldr r1, [r5, #0x1c] add r0, r5, #0x0 lsl r1, r1, #0x1 add r1, r3, r1 ldrh r1, [r1, #0x3a] bl FUN_020791C0 add r4, r0, #0x0 mov r0, #0x1 str r0, [r5, #0x30] b _020777B8 _0207776C: ldr r1, _020777C8 ; =0x000005C8 ldr r1, [r5, r1] cmp r1, #0x1 bne _02077794 ldr r2, [r5, #0x20] mov r1, #0x1a mul r1, r2 add r2, r5, r1 ldr r1, [r5, #0x1c] add r0, r5, #0x0 lsl r1, r1, #0x1 add r1, r2, r1 ldrh r1, [r1, #0x3a] mov r2, #0x0 bl FUN_020791C0 add r4, r0, #0x0 mov r0, #0x0 str r0, [r5, #0x30] b _020777B8 _02077794: mov r1, #0x2 add r3, r0, #0x0 tst r3, r1 beq _020777A8 ldr r1, _020777CC ; =0x0000E007 add r0, r5, #0x0 bl FUN_020791C0 add r4, r0, #0x0 b _020777B8 _020777A8: add r1, #0xfe tst r0, r1 beq _020777B8 ldr r1, _020777D0 ; =0x0000E006 add r0, r5, #0x0 bl FUN_020791C0 add r4, r0, #0x0 _020777B8: add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 _020777BC: .word 0x021C48B8 _020777C0: .word 0x0000045C _020777C4: .word 0x0000069E _020777C8: .word 0x000005C8 _020777CC: .word 0x0000E007 _020777D0: .word 0x0000E006 thumb_func_start FUN_020777D4 FUN_020777D4: ; 0x020777D4 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] add r4, r1, #0x0 cmp r0, #0x0 bne _02077836 ldr r0, [r5, #0x4] cmp r0, #0x0 bne _020777FE bl FUN_0201B9EC mov r1, #0x12 blx _s32_div_f mov r0, #0x17 lsl r0, r0, #0x4 ldr r0, [r5, r0] bl FUN_0200A914 add r6, r0, #0x0 b _0207781A _020777FE: cmp r0, #0x1 bne _0207781A bl FUN_0201B9EC mov r1, #0x12 blx _s32_div_f mov r0, #0x17 lsl r0, r0, #0x4 ldr r0, [r5, r0] add r1, #0x12 bl FUN_0200A914 add r6, r0, #0x0 _0207781A: ldr r0, [r4, #0x18] add r1, r6, #0x0 bl FUN_02021A74 add r0, r6, #0x0 bl FUN_02021A20 ldr r0, [r4, #0x18] add r4, #0x1c add r1, r4, #0x0 mov r2, #0xa bl FUN_02021EF0 pop {r4-r6, pc} _02077836: cmp r0, #0x3 bne _02077864 mov r0, #0x17 lsl r0, r0, #0x4 ldr r0, [r5, r0] mov r1, #0x58 bl FUN_0200A914 add r5, r0, #0x0 ldr r0, [r4, #0x18] add r1, r5, #0x0 bl FUN_02021A74 add r0, r5, #0x0 bl FUN_02021A20 ldr r0, [r4, #0x18] add r4, #0x1c add r1, r4, #0x0 mov r2, #0xa bl FUN_02021EF0 pop {r4-r6, pc} _02077864: mov r0, #0x1 str r0, [r4, #0x14] pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0207786C FUN_0207786C: ; 0x0207786C push {r4-r5} ldr r1, _0207788C ; =0x000001DE ldr r2, _02077890 ; =0x0000FFFF mov r5, #0x1 mov r3, #0x0 _02077876: ldrh r4, [r0, #0x0] cmp r4, r2 beq _02077886 cmp r4, r1 beq _02077882 add r5, r3, #0x0 _02077882: add r0, r0, #0x2 b _02077876 _02077886: add r0, r5, #0x0 pop {r4-r5} bx lr .balign 4 _0207788C: .word 0x000001DE _02077890: .word 0x0000FFFF thumb_func_start FUN_02077894 FUN_02077894: ; 0x02077894 push {r4-r7, lr} sub sp, #0x14 str r0, [sp, #0x10] bl FUN_02006278 add r4, r0, #0x0 ldr r0, [sp, #0x10] bl FUN_0200628C add r5, r0, #0x0 mov r0, #0x56 lsl r0, r0, #0x2 ldrh r0, [r4, r0] ldr r1, _02077A6C ; =0x0000FFFF lsl r0, r0, #0x1 add r0, r4, r0 add r0, #0xd8 strh r1, [r0, #0x0] ldr r0, [r4, #0x0] cmp r0, #0x1 bne _020778DE mov r0, #0x12 bl FUN_020669C0 mov r3, #0xa str r3, [sp, #0x0] str r3, [sp, #0x4] str r3, [sp, #0x8] str r3, [sp, #0xc] ldr r1, [r4, #0x4] add r6, r0, #0x0 mov r2, #0x5 bl FUN_02066ACC add r0, r6, #0x0 bl FUN_02016A18 _020778DE: mov r1, #0x56 lsl r1, r1, #0x2 ldrh r0, [r4, r1] cmp r0, #0x0 beq _02077904 add r0, r4, #0x0 sub r1, #0x40 add r0, #0xd8 add r1, r4, r1 bl StringNotEqual cmp r0, #0x0 beq _02077904 add r0, r4, #0x0 add r0, #0xd8 bl FUN_0207786C cmp r0, #0x0 beq _0207790E _02077904: add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_020777D4 b _02077932 _0207790E: mov r0, #0x46 lsl r0, r0, #0x2 add r1, r4, #0x0 add r0, r4, r0 add r1, #0xd8 bl StringCopy add r0, r5, #0x0 add r1, r4, #0x0 add r0, #0x1c add r1, #0xd8 bl StringCopy add r1, r4, #0x0 ldr r0, [r5, #0x18] add r1, #0xd8 bl FUN_02021E28 _02077932: mov r0, #0x61 lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02021A20 mov r7, #0xe7 mov r6, #0x0 add r5, r4, #0x0 lsl r7, r7, #0x2 _02077944: ldr r0, [r5, r7] bl FUN_0200621C add r6, r6, #0x1 add r5, r5, #0x4 cmp r6, #0x7 blt _02077944 mov r0, #0xb1 lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02009C0C mov r0, #0xb5 lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02009C0C mov r0, #0xb2 lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02009E04 mov r0, #0xb6 lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02009E04 mov r7, #0xad mov r6, #0x0 add r5, r4, #0x0 lsl r7, r7, #0x2 _02077982: ldr r0, [r5, r7] bl FUN_02008E2C add r6, r6, #0x1 add r5, r5, #0x4 cmp r6, #0x4 blt _02077982 mov r0, #0x62 lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_0201FD58 bl FUN_02009FA0 ldr r1, _02077A70 ; =0x000004AC mov r0, #0x12 ldr r1, [r4, r1] bl FUN_02016A8C ldr r0, [r4, #0x0] cmp r0, #0x1 bne _020779C2 ldr r1, _02077A74 ; =0x000004B4 mov r0, #0x12 ldr r1, [r4, r1] bl FUN_02016A8C ldr r1, _02077A78 ; =0x000004BC mov r0, #0x12 ldr r1, [r4, r1] bl FUN_02016A8C _020779C2: mov r0, #0x16 lsl r0, r0, #0x4 ldr r0, [r4, r0] mov r1, #0x7 bl FUN_020178A0 bl FUN_0201D12C bl FUN_0201E08C mov r0, #0x16 lsl r0, r0, #0x4 mov r1, #0xee lsl r1, r1, #0x2 ldr r0, [r4, r0] add r1, r4, r1 bl FUN_02077FA8 mov r0, #0x0 bl FUN_02002CC0 mov r2, #0x1 lsl r2, r2, #0x1a ldr r1, [r2, #0x0] ldr r0, _02077A7C ; =0xFFFF1FFF and r0, r1 str r0, [r2, #0x0] mov r0, #0x2 bl FUN_02002CF8 mov r0, #0x6 lsl r0, r0, #0x6 ldr r0, [r4, r0] cmp r0, #0x0 beq _02077A0C bl FUN_02021A20 _02077A0C: mov r0, #0x5e lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02021A20 mov r0, #0x5f lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02021A20 mov r0, #0x5d lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_0200A8B8 mov r0, #0x17 lsl r0, r0, #0x4 ldr r0, [r4, r0] bl FUN_0200A8B8 mov r0, #0x5b lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_0200A8B8 mov r0, #0x5a lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_0200AB18 ldr r0, [sp, #0x10] bl FUN_0200627C mov r0, #0x0 add r1, r0, #0x0 bl FUN_02015F10 mov r0, #0x12 bl FUN_020168D0 ldr r0, _02077A80 ; =0x021C4918 mov r1, #0x0 strb r1, [r0, #0x5] bl FUN_0201E7A0 mov r0, #0x1 add sp, #0x14 pop {r4-r7, pc} .balign 4 _02077A6C: .word 0x0000FFFF _02077A70: .word 0x000004AC _02077A74: .word 0x000004B4 _02077A78: .word 0x000004BC _02077A7C: .word 0xFFFF1FFF _02077A80: .word 0x021C4918 thumb_func_start FUN_02077A84 FUN_02077A84: ; 0x02077A84 push {r3-r7, lr} add r6, r1, #0x0 mov r1, #0x50 str r0, [sp, #0x0] add r7, r2, #0x0 add r5, r3, #0x0 bl FUN_02016998 add r4, r0, #0x0 str r6, [r4, #0x0] str r7, [r4, #0x4] str r5, [r4, #0xc] mov r0, #0x0 str r0, [r4, #0x14] ldr r0, _02077AC0 ; =0x0000FFFF ldr r1, [sp, #0x0] strh r0, [r4, #0x1c] add r0, r5, #0x1 bl FUN_020219F4 str r0, [r4, #0x18] mov r1, #0x0 str r1, [r4, #0x44] str r1, [r4, #0x48] ldr r0, [sp, #0x18] str r1, [r4, #0x10] str r0, [r4, #0x4c] str r1, [r4, #0x8] add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 _02077AC0: .word 0x0000FFFF thumb_func_start FUN_02077AC4 FUN_02077AC4: ; 0x02077AC4 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x18] cmp r0, #0x0 bne _02077AD2 bl ErrorHandling _02077AD2: cmp r4, #0x0 bne _02077ADA bl ErrorHandling _02077ADA: ldr r0, [r4, #0x18] bl FUN_02021A20 add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} thumb_func_start FUN_02077AE8 FUN_02077AE8: ; 0x02077AE8 push {r3, lr} bl FUN_0201C30C bl FUN_02009F80 ldr r3, _02077B00 ; =0x027E0000 ldr r1, _02077B04 ; =0x00003FF8 mov r0, #0x1 ldr r2, [r3, r1] orr r0, r2 str r0, [r3, r1] pop {r3, pc} .balign 4 _02077B00: .word 0x027E0000 _02077B04: .word 0x00003FF8 thumb_func_start FUN_02077B08 FUN_02077B08: ; 0x02077B08 ldr r2, [r1, #0x0] str r2, [r0, #0x0] ldr r2, [r1, #0x4] str r2, [r0, #0x4] ldr r2, [r1, #0x8] str r2, [r0, #0x8] ldr r2, [r1, #0xc] str r2, [r0, #0xc] ldr r2, [r1, #0x10] str r2, [r0, #0x10] ldr r1, [r1, #0x4c] str r1, [r0, #0x18] bx lr .balign 4 thumb_func_start FUN_02077B24 FUN_02077B24: ; 0x02077B24 push {r4, lr} sub sp, #0x28 ldr r4, _02077B40 ; =0x020FA12C add r3, sp, #0x0 mov r2, #0x5 _02077B2E: ldmia r4!, {r0-r1} stmia r3!, {r0-r1} sub r2, r2, #0x1 bne _02077B2E add r0, sp, #0x0 bl FUN_0201E66C add sp, #0x28 pop {r4, pc} .balign 4 _02077B40: .word 0x020FA12C thumb_func_start FUN_02077B44 FUN_02077B44: ; 0x02077B44 push {r3-r5, lr} sub sp, #0x80 ldr r5, _02077C68 ; =0x020F9D4C add r3, sp, #0x70 add r4, r0, #0x0 add r2, r3, #0x0 ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} add r0, r2, #0x0 bl FUN_02016BBC ldr r5, _02077C6C ; =0x020F9EC0 add r3, sp, #0x54 ldmia r5!, {r0-r1} add r2, r3, #0x0 stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r5, #0x0] mov r1, #0x0 str r0, [r3, #0x0] add r0, r4, #0x0 add r3, r1, #0x0 bl FUN_02016C18 add r0, r4, #0x0 mov r1, #0x0 bl FUN_02018744 ldr r5, _02077C70 ; =0x020F9FA0 add r3, sp, #0x38 ldmia r5!, {r0-r1} add r2, r3, #0x0 stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r5, #0x0] mov r1, #0x1 str r0, [r3, #0x0] add r0, r4, #0x0 mov r3, #0x0 bl FUN_02016C18 add r0, r4, #0x0 mov r1, #0x1 bl FUN_02018744 ldr r5, _02077C74 ; =0x020FA064 add r3, sp, #0x1c ldmia r5!, {r0-r1} add r2, r3, #0x0 stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r5, #0x0] mov r1, #0x2 str r0, [r3, #0x0] add r0, r4, #0x0 mov r3, #0x0 bl FUN_02016C18 add r0, r4, #0x0 mov r1, #0x2 bl FUN_02018744 ldr r5, _02077C78 ; =0x020F9DFC add r3, sp, #0x0 ldmia r5!, {r0-r1} add r2, r3, #0x0 stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r5, #0x0] mov r1, #0x4 str r0, [r3, #0x0] add r0, r4, #0x0 mov r3, #0x0 bl FUN_02016C18 add r0, r4, #0x0 mov r1, #0x4 bl FUN_02018744 mov r0, #0x0 bl FUN_02077C84 mov r0, #0x0 mov r1, #0x20 add r2, r0, #0x0 mov r3, #0x12 bl FUN_02017F18 mov r0, #0x4 mov r1, #0x20 mov r2, #0x0 mov r3, #0x12 bl FUN_02017F18 mov r0, #0x1 lsl r0, r0, #0x1a add r4, r0, #0x0 ldr r2, [r0, #0x0] ldr r1, _02077C7C ; =0xFFFF1FFF add r4, #0x48 and r2, r1 lsr r1, r0, #0xd orr r1, r2 str r1, [r0, #0x0] ldrh r3, [r4, #0x0] mov r2, #0x3f mov r1, #0x14 bic r3, r2 orr r1, r3 mov r3, #0x20 orr r1, r3 strh r1, [r4, #0x0] add r4, r0, #0x0 add r4, #0x4a ldrh r5, [r4, #0x0] mov r1, #0x1f bic r5, r2 orr r1, r5 orr r1, r3 strh r1, [r4, #0x0] add r1, r0, #0x0 mov r2, #0xff add r1, #0x40 strh r2, [r1, #0x0] mov r1, #0x40 add r0, #0x44 strh r1, [r0, #0x0] ldr r0, _02077C80 ; =0x04001050 mov r1, #0x0 strh r1, [r0, #0x0] add sp, #0x80 pop {r3-r5, pc} .balign 4 _02077C68: .word 0x020F9D4C _02077C6C: .word 0x020F9EC0 _02077C70: .word 0x020F9FA0 _02077C74: .word 0x020FA064 _02077C78: .word 0x020F9DFC _02077C7C: .word 0xFFFF1FFF _02077C80: .word 0x04001050 thumb_func_start FUN_02077C84 FUN_02077C84: ; 0x02077C84 push {r4, lr} add r4, r0, #0x0 lsl r1, r4, #0x18 mov r0, #0x1 lsr r1, r1, #0x18 bl FUN_0201E6E4 lsl r1, r4, #0x18 mov r0, #0x2 lsr r1, r1, #0x18 bl FUN_0201E6E4 lsl r1, r4, #0x18 mov r0, #0x4 lsr r1, r1, #0x18 bl FUN_0201E6E4 mov r0, #0x8 mov r1, #0x0 bl FUN_0201E6E4 lsl r1, r4, #0x18 mov r0, #0x10 lsr r1, r1, #0x18 bl FUN_0201E6E4 lsl r1, r4, #0x18 mov r0, #0x1 lsr r1, r1, #0x18 bl FUN_0201E74C mov r0, #0x2 mov r1, #0x0 bl FUN_0201E74C mov r0, #0x10 mov r1, #0x0 bl FUN_0201E74C pop {r4, pc} thumb_func_start FUN_02077CD4 FUN_02077CD4: ; 0x02077CD4 push {r3-r7, lr} sub sp, #0x10 add r4, r0, #0x0 add r0, r1, #0x0 bl FUN_0200628C add r7, r0, #0x0 ldr r0, _02077E7C ; =0x0000045C mov r1, #0x4 str r1, [r4, r0] add r0, #0xc add r0, r4, r0 mov r1, #0x0 bl FUN_02078BA8 ldr r6, _02077E80 ; =0x00000464 mov r0, #0x16 ldr r3, [r4, r6] mov r5, #0xc lsl r0, r0, #0x4 lsl r1, r3, #0x18 mul r5, r3 add r3, r4, r5 add r5, r6, #0x4 ldr r0, [r4, r0] ldr r3, [r3, r5] lsr r1, r1, #0x18 mov r2, #0x0 bl FUN_020179E0 ldr r3, [r4, r6] mov r5, #0xc mov r0, #0x16 lsl r0, r0, #0x4 lsl r1, r3, #0x18 mul r5, r3 add r3, r4, r5 add r6, #0x8 ldr r0, [r4, r0] ldr r3, [r3, r6] lsr r1, r1, #0x18 mov r2, #0x3 bl FUN_020179E0 ldr r6, _02077E80 ; =0x00000464 mov r0, #0x1 ldr r1, [r4, r6] mov r5, #0xc add r3, r1, #0x0 eor r3, r0 mov r0, #0x16 lsl r0, r0, #0x4 lsl r1, r3, #0x18 mul r5, r3 add r3, r4, r5 add r5, r6, #0x4 ldr r0, [r4, r0] ldr r3, [r3, r5] lsr r1, r1, #0x18 mov r2, #0x0 bl FUN_020179E0 ldr r1, [r4, r6] mov r0, #0x1 add r3, r1, #0x0 eor r3, r0 mov r5, #0xc mov r0, #0x16 lsl r0, r0, #0x4 lsl r1, r3, #0x18 mul r5, r3 add r3, r4, r5 add r6, #0x8 ldr r0, [r4, r0] ldr r3, [r3, r6] lsr r1, r1, #0x18 mov r2, #0x3 bl FUN_020179E0 mov r1, #0x46 ldr r0, _02077E84 ; =0x0000FFFF lsl r1, r1, #0x2 strh r0, [r4, r1] ldr r0, [r7, #0x18] cmp r0, #0x0 beq _02077D88 add r1, r4, r1 mov r2, #0x20 bl FUN_02021EF0 _02077D88: add r1, r4, #0x0 mov r0, #0x1 add r1, #0xd8 mov r2, #0x40 blx MIi_CpuClear16 ldr r0, [r4, #0x0] cmp r0, #0x1 bne _02077DCE mov r0, #0x12 bl FUN_020669C0 mov r3, #0xa str r3, [sp, #0x0] str r3, [sp, #0x4] str r3, [sp, #0x8] str r3, [sp, #0xc] ldr r1, [r4, #0x4] add r5, r0, #0x0 mov r2, #0x5 bl FUN_02066ACC add r0, r5, #0x0 bl FUN_020690E4 add r2, r0, #0x0 mov r0, #0x5a lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 bl FUN_0200AC60 add r0, r5, #0x0 bl FUN_02016A18 _02077DCE: ldr r0, [r7, #0x44] cmp r0, #0x0 beq _02077DD8 mov r0, #0x1 str r0, [r4, #0x14] _02077DD8: ldr r2, [r4, #0x0] mov r1, #0x5a lsl r1, r1, #0x2 lsl r3, r2, #0x2 ldr r2, _02077E88 ; =0x020FA0A0 ldr r0, [r4, r1] add r1, r1, #0x4 ldr r2, [r2, r3] ldr r1, [r4, r1] mov r3, #0x12 bl FUN_0200A9C4 mov r1, #0x5e lsl r1, r1, #0x2 str r0, [r4, r1] add r0, r1, #0x0 sub r0, #0x10 sub r1, #0xc ldr r0, [r4, r0] ldr r1, [r4, r1] mov r2, #0x8 mov r3, #0x12 bl FUN_0200A9C4 mov r1, #0x5f lsl r1, r1, #0x2 str r0, [r4, r1] sub r1, #0x10 ldr r0, [r4, r1] mov r1, #0x7 bl FUN_0200A914 mov r1, #0x61 lsl r1, r1, #0x2 str r0, [r4, r1] sub r1, #0x6c add r0, r4, r1 bl StringLength mov r1, #0x56 lsl r1, r1, #0x2 strh r0, [r4, r1] mov r0, #0x0 str r0, [r4, #0x1c] mov r1, #0x1 str r1, [r4, #0x20] sub r1, r1, #0x2 str r1, [r4, #0x24] str r1, [r4, #0x28] str r0, [r4, #0x30] ldr r2, _02077E8C ; =0x00000484 str r0, [r4, #0x34] str r1, [r4, r2] add r1, r2, #0x4 str r0, [r4, r1] add r2, #0x8 str r0, [r4, r2] ldr r1, [r4, #0xc] ldr r2, _02077E84 ; =0x0000FFFF lsl r1, r1, #0x1 add r1, r4, r1 add r1, #0xd8 strh r2, [r1, #0x0] mov r1, #0x49 add r3, r4, #0x0 add r2, r0, #0x0 lsl r1, r1, #0x4 _02077E5E: add r0, r0, #0x1 str r2, [r3, r1] add r3, r3, #0x4 cmp r0, #0x7 blt _02077E5E ldr r0, [r4, #0x0] cmp r0, #0x4 beq _02077E76 mov r0, #0x49 mov r1, #0x1 lsl r0, r0, #0x4 str r1, [r4, r0] _02077E76: add sp, #0x10 pop {r3-r7, pc} nop _02077E7C: .word 0x0000045C _02077E80: .word 0x00000464 _02077E84: .word 0x0000FFFF _02077E88: .word 0x020FA0A0 _02077E8C: .word 0x00000484 thumb_func_start FUN_02077E90 FUN_02077E90: ; 0x02077E90 push {r4-r7, lr} sub sp, #0x14 add r5, r0, #0x0 add r0, r1, #0x0 bl FUN_0200628C add r4, r0, #0x0 ldr r0, [r4, #0x44] cmp r0, #0x0 beq _02077FA0 mov r0, #0xc8 mov r1, #0x12 bl FUN_020219F4 add r7, r0, #0x0 mov r0, #0x6 mov r1, #0x0 lsl r0, r0, #0x6 str r1, [r5, r0] ldr r0, [r4, #0x48] bl FUN_0206B330 add r6, r0, #0x0 ldr r0, [r4, #0x48] bl FUN_0206B334 str r0, [sp, #0x10] mov r0, #0x5a lsl r0, r0, #0x2 ldr r0, [r5, r0] ldr r2, [r4, #0x48] mov r1, #0x1 add r3, r6, #0x0 bl FUN_0200B410 ldr r0, [sp, #0x10] cmp r6, r0 beq _02077EF4 mov r0, #0x5a lsl r0, r0, #0x2 ldr r0, [r5, r0] ldr r2, [r4, #0x48] ldr r3, [sp, #0x10] mov r1, #0x2 bl FUN_0200B410 ldr r0, [r4, #0x44] add r0, r0, #0x2 str r0, [r4, #0x44] b _02077F04 _02077EF4: mov r0, #0x5a lsl r0, r0, #0x2 ldr r0, [r5, r0] ldr r2, [r4, #0x48] mov r1, #0x2 add r3, r6, #0x0 bl FUN_0200B410 _02077F04: mov r0, #0x56 lsl r0, r0, #0x2 ldrh r0, [r5, r0] cmp r0, #0x0 beq _02077F1A add r0, r5, #0x0 add r0, #0xd8 bl FUN_0207786C cmp r0, #0x0 beq _02077F50 _02077F1A: mov r0, #0x12 bl FUN_020669C0 mov r3, #0x0 str r3, [sp, #0x0] str r3, [sp, #0x4] str r3, [sp, #0x8] str r3, [sp, #0xc] ldr r1, [r5, #0x4] add r6, r0, #0x0 mov r2, #0x1 bl FUN_02066ACC add r0, r6, #0x0 bl FUN_020690E4 add r2, r0, #0x0 mov r0, #0x5a lsl r0, r0, #0x2 ldr r0, [r5, r0] mov r1, #0x0 bl FUN_0200AC60 add r0, r6, #0x0 bl FUN_02016A18 b _02077F7E _02077F50: mov r1, #0x56 lsl r1, r1, #0x2 ldrh r1, [r5, r1] ldr r0, _02077FA4 ; =0x0000FFFF lsl r1, r1, #0x1 add r1, r5, r1 add r1, #0xd8 strh r0, [r1, #0x0] add r1, r5, #0x0 add r0, r7, #0x0 add r1, #0xd8 bl FUN_02021E28 mov r1, #0x0 str r1, [sp, #0x0] mov r0, #0x5a str r1, [sp, #0x4] lsl r0, r0, #0x2 ldr r0, [r5, r0] add r2, r7, #0x0 add r3, r1, #0x0 bl FUN_0200ABB4 _02077F7E: mov r1, #0x5a lsl r1, r1, #0x2 ldr r0, [r5, r1] add r1, #0xc ldr r1, [r5, r1] ldr r2, [r4, #0x44] mov r3, #0x12 bl FUN_0200A9C4 mov r1, #0x6 lsl r1, r1, #0x6 str r0, [r5, r1] mov r0, #0x1 str r0, [r5, #0x14] add r0, r7, #0x0 bl FUN_02021A20 _02077FA0: add sp, #0x14 pop {r4-r7, pc} .balign 4 _02077FA4: .word 0x0000FFFF thumb_func_start FUN_02077FA8 FUN_02077FA8: ; 0x02077FA8 push {r4-r6, lr} add r6, r0, #0x0 add r5, r1, #0x0 mov r4, #0x0 _02077FB0: add r0, r5, #0x0 bl FUN_02019178 add r4, r4, #0x1 add r5, #0x10 cmp r4, #0xa blt _02077FB0 add r0, r6, #0x0 mov r1, #0x4 bl FUN_020178A0 add r0, r6, #0x0 mov r1, #0x2 bl FUN_020178A0 add r0, r6, #0x0 mov r1, #0x1 bl FUN_020178A0 add r0, r6, #0x0 mov r1, #0x0 bl FUN_020178A0 mov r0, #0x12 add r1, r6, #0x0 bl FUN_02016A8C pop {r4-r6, pc} thumb_func_start FUN_02077FE8 FUN_02077FE8: ; 0x02077FE8 push {r3-r5, lr} sub sp, #0x10 add r5, r0, #0x0 mov r0, #0x16 lsl r0, r0, #0x4 ldr r4, [r5, r0] mov r1, #0x0 mov r0, #0x60 str r0, [sp, #0x0] mov r0, #0x12 str r0, [sp, #0x4] mov r0, #0x1f add r2, r1, #0x0 add r3, r1, #0x0 bl FUN_02006930 mov r0, #0x20 str r0, [sp, #0x0] mov r0, #0x12 str r0, [sp, #0x4] mov r0, #0xc add r1, r0, #0x0 mov r2, #0x4 mov r3, #0x0 bl FUN_02006930 mov r0, #0x4 mov r1, #0x0 bl FUN_02017FE4 mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x2 lsl r0, r0, #0xc str r0, [sp, #0x4] mov r0, #0x1 str r0, [sp, #0x8] mov r0, #0x12 mov r1, #0x2 str r0, [sp, #0xc] mov r0, #0x1f add r2, r4, #0x0 add r3, r1, #0x0 bl FUN_0200687C mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x6 lsl r0, r0, #0x8 str r0, [sp, #0x4] mov r0, #0x1 str r0, [sp, #0x8] mov r0, #0x12 str r0, [sp, #0xc] mov r0, #0x1f mov r1, #0x4 add r2, r4, #0x0 mov r3, #0x2 bl FUN_020068C8 mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x2 lsl r0, r0, #0xc str r0, [sp, #0x4] mov r3, #0x1 str r3, [sp, #0x8] mov r0, #0x12 str r0, [sp, #0xc] mov r0, #0x1f mov r1, #0x2 add r2, r4, #0x0 bl FUN_0200687C mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0xe lsl r0, r0, #0x6 str r0, [sp, #0x4] mov r3, #0x1 str r3, [sp, #0x8] mov r0, #0x12 str r0, [sp, #0xc] mov r0, #0x1f mov r1, #0x6 add r2, r4, #0x0 bl FUN_020068C8 mov r3, #0x0 mov r0, #0xe str r3, [sp, #0x0] lsl r0, r0, #0x6 str r0, [sp, #0x4] mov r0, #0x1 str r0, [sp, #0x8] mov r0, #0x12 str r0, [sp, #0xc] mov r0, #0x1f mov r1, #0x7 add r2, r4, #0x0 bl FUN_020068C8 mov r1, #0x6 mov r0, #0x0 lsl r1, r1, #0x6 mov r2, #0x12 bl FUN_02002EEC ldr r0, [r5, #0x18] bl FUN_02025084 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x12 str r0, [sp, #0x4] mov r0, #0x16 lsl r0, r0, #0x4 mov r1, #0x4 add r2, r1, #0x0 ldr r0, [r5, r0] add r2, #0xfc mov r3, #0xa bl FUN_0200CD68 mov r1, #0x6 mov r0, #0x4 lsl r1, r1, #0x6 mov r2, #0x12 bl FUN_02002EEC mov r3, #0x4b mov r0, #0x12 lsl r3, r3, #0x4 str r0, [sp, #0x0] mov r0, #0x1f mov r1, #0x10 mov r2, #0x1 add r3, r5, r3 bl FUN_02006BB0 ldr r1, _0207810C ; =0x000004AC str r0, [r5, r1] add sp, #0x10 pop {r3-r5, pc} nop _0207810C: .word 0x000004AC thumb_func_start FUN_02078110 FUN_02078110: ; 0x02078110 push {r4, lr} sub sp, #0x10 ldr r4, _0207813C ; =0x020F9D5C add r3, sp, #0x0 add r2, r3, #0x0 ldmia r4!, {r0-r1} stmia r3!, {r0-r1} ldmia r4!, {r0-r1} stmia r3!, {r0-r1} add r0, r2, #0x0 bl FUN_0201D040 mov r0, #0x14 mov r1, #0x12 bl FUN_0201E00C bl FUN_0201D168 bl FUN_0201E0BC add sp, #0x10 pop {r4, pc} .balign 4 _0207813C: .word 0x020F9D5C thumb_func_start FUN_02078140 FUN_02078140: ; 0x02078140 push {r4-r7, lr} sub sp, #0x14 add r5, r0, #0x0 blx FUN_020B0FC0 mov r0, #0x0 str r0, [sp, #0x0] mov r1, #0x80 str r1, [sp, #0x4] str r0, [sp, #0x8] mov r3, #0x20 str r3, [sp, #0xc] mov r2, #0x12 str r2, [sp, #0x10] add r2, r0, #0x0 bl FUN_02009EAC mov r1, #0x63 lsl r1, r1, #0x2 mov r0, #0x2c add r1, r5, r1 mov r2, #0x12 bl FUN_02008C9C mov r1, #0x62 lsl r1, r1, #0x2 str r0, [r5, r1] add r0, r1, #0x4 mov r2, #0x1 add r0, r5, r0 mov r1, #0x0 lsl r2, r2, #0x14 bl FUN_02008D24 mov r7, #0xad mov r6, #0x0 add r4, r5, #0x0 lsl r7, r7, #0x2 _0207818C: mov r0, #0x2 add r1, r6, #0x0 mov r2, #0x12 bl FUN_02008DEC str r0, [r4, r7] add r6, r6, #0x1 add r4, r4, #0x4 cmp r6, #0x4 blt _0207818C mov r0, #0x0 str r0, [sp, #0x0] mov r3, #0x1 str r3, [sp, #0x4] mov r0, #0x12 str r0, [sp, #0x8] mov r0, #0xad lsl r0, r0, #0x2 ldr r0, [r5, r0] mov r1, #0x1f mov r2, #0xa bl FUN_02008F34 mov r1, #0xb1 lsl r1, r1, #0x2 str r0, [r5, r1] mov r3, #0x0 str r3, [sp, #0x0] mov r2, #0x1 str r2, [sp, #0x4] mov r0, #0x9 str r0, [sp, #0x8] mov r0, #0x12 sub r1, #0xc str r0, [sp, #0xc] ldr r0, [r5, r1] mov r1, #0x1f bl FUN_02008FEC mov r1, #0xb2 lsl r1, r1, #0x2 str r0, [r5, r1] mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x2 str r0, [sp, #0x4] mov r0, #0x12 sub r1, #0xc str r0, [sp, #0x8] ldr r0, [r5, r1] mov r1, #0x1f mov r2, #0xc mov r3, #0x1 bl FUN_020090AC mov r1, #0xb3 lsl r1, r1, #0x2 str r0, [r5, r1] mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x3 str r0, [sp, #0x4] mov r0, #0x12 sub r1, #0xc str r0, [sp, #0x8] ldr r0, [r5, r1] mov r1, #0x1f mov r2, #0xe mov r3, #0x1 bl FUN_020090AC mov r1, #0x2d lsl r1, r1, #0x4 str r0, [r5, r1] ldr r0, [r5, #0x0] cmp r0, #0x1 bne _02078272 ldr r0, [r5, #0x4] ldr r2, [r5, #0x8] mov r1, #0x0 bl FUN_0206B6D4 ldr r3, _0207831C ; =0x000004B8 add r1, r0, #0x0 mov r0, #0x12 str r0, [sp, #0x0] mov r0, #0x13 mov r2, #0x0 add r3, r5, r3 bl FUN_02006BB0 ldr r1, _02078320 ; =0x000004B4 str r0, [r5, r1] add r0, r1, #0x4 mov r1, #0x2 ldr r0, [r5, r0] lsl r1, r1, #0x8 blx DC_FlushRange bl FUN_0206B888 add r1, r0, #0x0 mov r0, #0x13 lsl r2, r0, #0x6 add r2, r5, r2 mov r3, #0x12 bl FUN_02006C08 ldr r1, _02078324 ; =0x000004BC str r0, [r5, r1] add r0, r1, #0x4 ldr r0, [r5, r0] mov r1, #0x80 blx DC_FlushRange _02078272: mov r3, #0x1 str r3, [sp, #0x0] mov r0, #0x2 str r0, [sp, #0x4] mov r0, #0x12 str r0, [sp, #0x8] mov r0, #0xad lsl r0, r0, #0x2 ldr r0, [r5, r0] mov r1, #0x1f mov r2, #0xb bl FUN_02008F34 mov r1, #0xb5 lsl r1, r1, #0x2 str r0, [r5, r1] mov r2, #0x1 str r2, [sp, #0x0] mov r0, #0x2 str r0, [sp, #0x4] mov r0, #0x3 str r0, [sp, #0x8] mov r0, #0x12 sub r1, #0x1c str r0, [sp, #0xc] ldr r0, [r5, r1] mov r1, #0x1f mov r3, #0x0 bl FUN_02008FEC mov r1, #0xb6 lsl r1, r1, #0x2 str r0, [r5, r1] mov r3, #0x1 str r3, [sp, #0x0] mov r0, #0x2 str r0, [sp, #0x4] mov r0, #0x12 sub r1, #0x1c str r0, [sp, #0x8] ldr r0, [r5, r1] mov r1, #0x1f mov r2, #0xd bl FUN_020090AC mov r1, #0xb7 lsl r1, r1, #0x2 str r0, [r5, r1] mov r3, #0x1 str r3, [sp, #0x0] mov r0, #0x3 str r0, [sp, #0x4] mov r0, #0x12 sub r1, #0x1c str r0, [sp, #0x8] ldr r0, [r5, r1] mov r1, #0x1f mov r2, #0xf bl FUN_020090AC mov r1, #0x2e lsl r1, r1, #0x4 str r0, [r5, r1] sub r1, #0x1c ldr r0, [r5, r1] bl FUN_02009A50 mov r0, #0xb5 lsl r0, r0, #0x2 ldr r0, [r5, r0] bl FUN_02009A50 mov r0, #0xb2 lsl r0, r0, #0x2 ldr r0, [r5, r0] bl FUN_02009CF0 mov r0, #0xb6 lsl r0, r0, #0x2 ldr r0, [r5, r0] bl FUN_02009CF0 add sp, #0x14 pop {r4-r7, pc} nop _0207831C: .word 0x000004B8 _02078320: .word 0x000004B4 _02078324: .word 0x000004BC thumb_func_start FUN_02078328 FUN_02078328: ; 0x02078328 push {r3-r4, lr} sub sp, #0xc add r4, r1, #0x0 ldr r0, [r4, #0x0] bl FUN_0202011C ldr r1, [r0, #0x0] ldr r0, [r4, #0x8] add r0, r1, r0 str r0, [sp, #0x0] ldr r0, [r4, #0xc] lsl r1, r0, #0x4 ldr r0, _02078358 ; =0x020FA1D8 ldr r0, [r0, r1] add r1, sp, #0x0 lsl r0, r0, #0xc str r0, [sp, #0x4] mov r0, #0x0 str r0, [sp, #0x8] ldr r0, [r4, #0x4] bl FUN_02020044 add sp, #0xc pop {r3-r4, pc} .balign 4 _02078358: .word 0x020FA1D8 thumb_func_start FUN_0207835C FUN_0207835C: ; 0x0207835C push {r4-r7, lr} sub sp, #0x5c mov r1, #0x0 add r6, r0, #0x0 str r1, [sp, #0x0] sub r0, r1, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] mov r2, #0xad str r1, [sp, #0xc] mov r0, #0x1 lsl r2, r2, #0x2 str r0, [sp, #0x10] ldr r0, [r6, r2] add r3, r1, #0x0 str r0, [sp, #0x14] add r0, r2, #0x4 ldr r0, [r6, r0] str r0, [sp, #0x18] add r0, r2, #0x0 add r0, #0x8 ldr r0, [r6, r0] str r0, [sp, #0x1c] add r0, r2, #0x0 add r0, #0xc ldr r0, [r6, r0] add r2, #0x30 str r0, [sp, #0x20] str r1, [sp, #0x24] add r0, r6, r2 add r2, r1, #0x0 str r1, [sp, #0x28] bl FUN_02008AA4 mov r1, #0x1 mov r3, #0xad str r1, [sp, #0x0] sub r0, r1, #0x2 str r0, [sp, #0x4] str r0, [sp, #0x8] mov r0, #0x0 str r0, [sp, #0xc] str r0, [sp, #0x10] lsl r3, r3, #0x2 ldr r2, [r6, r3] str r2, [sp, #0x14] add r2, r3, #0x4 ldr r2, [r6, r2] str r2, [sp, #0x18] add r2, r3, #0x0 add r2, #0x8 ldr r2, [r6, r2] str r2, [sp, #0x1c] add r2, r3, #0x0 add r2, #0xc ldr r2, [r6, r2] add r3, #0x54 str r2, [sp, #0x20] str r0, [sp, #0x24] str r0, [sp, #0x28] add r0, r6, r3 add r2, r1, #0x0 add r3, r1, #0x0 bl FUN_02008AA4 mov r0, #0x62 lsl r0, r0, #0x2 ldr r0, [r6, r0] mov r1, #0x2 str r0, [sp, #0x2c] mov r0, #0xb9 lsl r0, r0, #0x2 add r0, r6, r0 str r0, [sp, #0x30] mov r0, #0x6 lsl r1, r1, #0x10 lsl r0, r0, #0x10 str r0, [sp, #0x38] lsr r0, r1, #0x5 mov r7, #0x0 str r1, [sp, #0x34] str r7, [sp, #0x3c] str r0, [sp, #0x40] str r0, [sp, #0x44] str r0, [sp, #0x48] add r0, sp, #0x2c strh r7, [r0, #0x20] mov r0, #0x1 str r0, [sp, #0x50] str r0, [sp, #0x54] mov r0, #0x12 ldr r4, _02078528 ; =0x020FA1D4 str r0, [sp, #0x58] add r5, r6, #0x0 _02078418: ldr r0, [r4, #0x0] lsl r0, r0, #0xc str r0, [sp, #0x34] ldr r0, [r4, #0x4] lsl r0, r0, #0xc str r0, [sp, #0x38] add r0, sp, #0x2c bl FUN_0201FE94 mov r1, #0xcb lsl r1, r1, #0x2 str r0, [r5, r1] add r0, r1, #0x0 ldr r0, [r5, r0] mov r1, #0x1 bl FUN_020200BC mov r0, #0xcb lsl r0, r0, #0x2 ldr r0, [r5, r0] ldr r1, [r4, #0x8] bl FUN_02020130 mov r0, #0xcb lsl r0, r0, #0x2 ldr r0, [r5, r0] ldr r1, [r4, #0xc] bl FUN_02020310 add r7, r7, #0x1 add r4, #0x10 add r5, r5, #0x4 cmp r7, #0x9 blt _02078418 mov r0, #0xcf lsl r0, r0, #0x2 ldr r0, [r6, r0] mov r1, #0x0 bl FUN_020200A0 mov r0, #0xd3 lsl r0, r0, #0x2 ldr r0, [r6, r0] mov r1, #0x0 bl FUN_020200A0 ldr r7, _02078528 ; =0x020FA1D4 mov r5, #0x0 add r4, r6, #0x0 _0207847A: ldr r0, _0207852C ; =FUN_02078328 mov r1, #0x10 mov r2, #0x5 mov r3, #0x12 bl FUN_020061E8 mov r1, #0xe7 lsl r1, r1, #0x2 str r0, [r4, r1] add r0, r1, #0x0 ldr r0, [r4, r0] bl FUN_0201B6C8 mov r1, #0xd2 lsl r1, r1, #0x2 ldr r1, [r6, r1] str r1, [r0, #0x0] mov r1, #0xcb lsl r1, r1, #0x2 ldr r1, [r4, r1] add r4, r4, #0x4 str r1, [r0, #0x4] ldr r1, [r7, #0x0] add r7, #0x10 lsl r1, r1, #0xc str r1, [r0, #0x8] str r5, [r0, #0xc] add r5, r5, #0x1 cmp r5, #0x7 blt _0207847A ldr r2, [r6, #0xc] mov r7, #0x0 cmp r2, #0x0 ble _020784FA mov r5, #0x50 add r4, r6, #0x0 _020784C2: lsl r0, r5, #0xc str r0, [sp, #0x34] mov r0, #0x27 lsl r0, r0, #0xc str r0, [sp, #0x38] add r0, sp, #0x2c bl FUN_0201FE94 mov r1, #0xd9 lsl r1, r1, #0x2 str r0, [r4, r1] add r0, r1, #0x0 ldr r0, [r4, r0] mov r1, #0x1 bl FUN_020200BC mov r0, #0xd9 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x2b bl FUN_02020130 ldr r2, [r6, #0xc] add r7, r7, #0x1 add r5, #0xc add r4, r4, #0x4 cmp r7, r2 blt _020784C2 _020784FA: mov r1, #0x56 lsl r1, r1, #0x2 mov r0, #0xd9 lsl r0, r0, #0x2 ldrh r1, [r6, r1] add r0, r6, r0 bl FUN_02079710 add r0, r6, #0x0 add r1, sp, #0x2c bl FUN_02078530 mov r0, #0x10 mov r1, #0x1 bl FUN_0201E6E4 mov r0, #0x10 mov r1, #0x1 bl FUN_0201E74C add sp, #0x5c pop {r4-r7, pc} nop _02078528: .word 0x020FA1D4 _0207852C: .word FUN_02078328 thumb_func_start FUN_02078530 FUN_02078530: ; 0x02078530 push {r3-r5, lr} add r4, r0, #0x0 mov r0, #0x6 add r5, r1, #0x0 lsl r0, r0, #0xe str r0, [r5, #0x8] mov r0, #0x2 lsl r0, r0, #0xe str r0, [r5, #0xc] add r0, r5, #0x0 bl FUN_0201FE94 mov r1, #0xe5 lsl r1, r1, #0x2 str r0, [r4, r1] ldr r0, [r4, r1] mov r1, #0x1 bl FUN_020200BC ldr r0, [r4, #0x0] cmp r0, #0x7 bhi _02078626 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02078568: ; jump table (using 16-bit offset) .short _02078578 - _02078568 - 2; case 0 .short _020785E0 - _02078568 - 2; case 1 .short _020785D2 - _02078568 - 2; case 2 .short _0207859A - _02078568 - 2; case 3 .short _020785C4 - _02078568 - 2; case 4 .short _020785B6 - _02078568 - 2; case 5 .short _020785A8 - _02078568 - 2; case 6 .short _020785C4 - _02078568 - 2; case 7 _02078578: ldr r0, [r4, #0x4] cmp r0, #0x0 bne _0207858C mov r0, #0xe5 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x30 bl FUN_02020130 pop {r3-r5, pc} _0207858C: mov r0, #0xe5 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x31 bl FUN_02020130 pop {r3-r5, pc} _0207859A: mov r0, #0xe5 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x33 bl FUN_02020130 pop {r3-r5, pc} _020785A8: mov r0, #0xe5 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x37 bl FUN_02020130 pop {r3-r5, pc} _020785B6: mov r0, #0xe5 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x36 bl FUN_02020130 pop {r3-r5, pc} _020785C4: mov r0, #0xe5 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x35 bl FUN_02020130 pop {r3-r5, pc} _020785D2: mov r0, #0xe5 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x2f bl FUN_02020130 pop {r3-r5, pc} _020785E0: mov r0, #0xe5 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x32 bl FUN_02020130 ldr r0, [r4, #0x10] cmp r0, #0x2 beq _02078626 ldr r1, [r4, #0xc] mov r0, #0xd mul r0, r1 add r0, #0x50 lsl r0, r0, #0xc str r0, [r5, #0x8] mov r0, #0x1b lsl r0, r0, #0xc str r0, [r5, #0xc] add r0, r5, #0x0 bl FUN_0201FE94 mov r1, #0xe6 lsl r1, r1, #0x2 str r0, [r4, r1] ldr r0, [r4, #0x10] cmp r0, #0x0 ldr r0, [r4, r1] bne _02078620 mov r1, #0x2d bl FUN_02020130 pop {r3-r5, pc} _02078620: mov r1, #0x2e bl FUN_02020130 _02078626: pop {r3-r5, pc} thumb_func_start FUN_02078628 FUN_02078628: ; 0x02078628 push {r4-r5, lr} sub sp, #0xc add r4, r1, #0x0 add r5, r0, #0x0 ldr r0, [r4, #0xc] str r0, [sp, #0x4] mov r0, #0x0 str r0, [sp, #0x8] ldr r0, [r4, #0x4] cmp r0, #0x6 bhi _020786A6 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0207864A: ; jump table (using 16-bit offset) .short _02078658 - _0207864A - 2; case 0 .short _020786A6 - _0207864A - 2; case 1 .short _0207866C - _0207864A - 2; case 2 .short _020786A6 - _0207864A - 2; case 3 .short _02078680 - _0207864A - 2; case 4 .short _020786A6 - _0207864A - 2; case 5 .short _02078694 - _0207864A - 2; case 6 _02078658: mov r0, #0x1 ldr r1, [r4, #0x8] lsl r0, r0, #0xe add r0, r1, r0 str r0, [sp, #0x0] ldr r0, [r4, #0x0] add r1, sp, #0x0 bl FUN_02020044 b _020786A6 _0207866C: mov r0, #0x3 ldr r1, [r4, #0x8] lsl r0, r0, #0xc sub r0, r1, r0 str r0, [sp, #0x0] ldr r0, [r4, #0x0] add r1, sp, #0x0 bl FUN_02020044 b _020786A6 _02078680: mov r0, #0x2 ldr r1, [r4, #0x8] lsl r0, r0, #0xc add r0, r1, r0 str r0, [sp, #0x0] ldr r0, [r4, #0x0] add r1, sp, #0x0 bl FUN_02020044 b _020786A6 _02078694: ldr r0, [r4, #0x8] add r1, sp, #0x0 str r0, [sp, #0x0] ldr r0, [r4, #0x0] bl FUN_02020044 add r0, r5, #0x0 bl FUN_0200621C _020786A6: ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] add sp, #0xc pop {r4-r5, pc} thumb_func_start FUN_020786B0 FUN_020786B0: ; 0x020786B0 push {r3-r7, lr} sub sp, #0x28 str r1, [sp, #0x14] ldr r1, [sp, #0x40] add r5, r2, #0x0 str r1, [sp, #0x40] ldr r1, [sp, #0x48] mov r2, #0x1 str r1, [sp, #0x48] ldr r1, [sp, #0x40] str r0, [sp, #0x10] ldr r6, [r1, #0x0] add r7, r3, #0x0 add r1, r6, #0x0 eor r1, r2 str r1, [sp, #0x18] ldr r1, [r5, #0x0] ldr r4, [sp, #0x44] cmp r1, #0x4 bls _020786DA b _0207887E _020786DA: add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _020786E6: ; jump table (using 16-bit offset) .short _020786F0 - _020786E6 - 2; case 0 .short _0207873C - _020786E6 - 2; case 1 .short _02078762 - _020786E6 - 2; case 2 .short _020787FC - _020786E6 - 2; case 3 .short _0207887E - _020786E6 - 2; case 4 _020786F0: mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0xe lsl r0, r0, #0x6 str r0, [sp, #0x4] str r2, [sp, #0x8] mov r0, #0x12 str r0, [sp, #0xc] ldr r2, [sp, #0x10] mov r0, #0x1f add r1, r7, #0x6 add r3, r6, #0x0 bl FUN_020068C8 add r0, r4, #0x0 add r1, r6, #0x0 bl FUN_02078BA8 ldr r0, _02078884 ; =0x020F9D2C lsl r2, r6, #0x4 ldrb r1, [r0, r7] ldr r0, [sp, #0x4c] ldr r3, _02078888 ; =0x000E0F00 str r0, [sp, #0x0] ldr r0, [sp, #0x14] add r0, r0, r2 lsl r2, r1, #0x4 orr r1, r2 lsl r1, r1, #0x10 lsr r1, r1, #0x10 add r2, r7, #0x0 bl FUN_0207974C ldr r0, [r5, #0x0] add sp, #0x28 add r0, r0, #0x1 str r0, [r5, #0x0] pop {r3-r7, pc} _0207873C: lsl r1, r6, #0x18 lsr r1, r1, #0x18 mov r2, #0x0 mov r3, #0xee bl FUN_020179E0 mov r2, #0x3 lsl r1, r6, #0x18 add r3, r2, #0x0 ldr r0, [sp, #0x10] lsr r1, r1, #0x18 sub r3, #0x53 bl FUN_020179E0 ldr r0, [r5, #0x0] add sp, #0x28 add r0, r0, #0x1 str r0, [r5, #0x0] pop {r3-r7, pc} _02078762: mov r1, #0xc add r0, r6, #0x0 mul r0, r1 ldr r2, [r4, r0] str r0, [sp, #0x1c] sub r2, #0x18 str r2, [r4, r0] ldr r0, [r4, r0] sub r1, #0xd cmp r0, r1 bge _020787BA ldr r0, _0207888C ; =FUN_02078628 mov r1, #0x10 mov r2, #0x0 mov r3, #0x12 bl FUN_020061E8 bl FUN_0201B6C8 add r7, r0, #0x0 ldr r0, [sp, #0x48] ldr r0, [r0, #0x1c] str r0, [r7, #0x0] mov r0, #0x0 str r0, [r7, #0x4] ldr r0, [sp, #0x48] ldr r0, [r0, #0x1c] bl FUN_0202011C ldr r0, [r0, #0x0] str r0, [r7, #0x8] ldr r0, [sp, #0x48] ldr r0, [r0, #0x1c] bl FUN_0202011C ldr r0, [r0, #0x4] mov r1, #0xa str r0, [r7, #0xc] ldr r0, [sp, #0x1c] mvn r1, r1 str r1, [r4, r0] ldr r0, [r5, #0x0] add r0, r0, #0x1 str r0, [r5, #0x0] _020787BA: ldr r0, [sp, #0x18] mov r1, #0xc add r7, r0, #0x0 add r5, r4, #0x4 mul r7, r1 ldr r0, [r5, r7] sub r0, #0xa str r0, [r5, r7] add r0, r1, #0x0 ldr r2, [r5, r7] sub r0, #0xd0 cmp r2, r0 bge _020787D8 sub r1, #0xd0 str r1, [r5, r7] _020787D8: ldr r3, [sp, #0x1c] lsl r1, r6, #0x18 ldr r0, [sp, #0x10] ldr r3, [r4, r3] lsr r1, r1, #0x18 mov r2, #0x0 bl FUN_020179E0 ldr r1, [sp, #0x18] ldr r0, [sp, #0x10] lsl r1, r1, #0x18 ldr r3, [r5, r7] lsr r1, r1, #0x18 mov r2, #0x3 bl FUN_020179E0 add sp, #0x28 pop {r3-r7, pc} _020787FC: ldr r1, [sp, #0x18] mov r0, #0xc add r2, r1, #0x0 mul r2, r0 str r2, [sp, #0x20] add r7, r4, #0x4 ldr r2, [r7, r2] ldr r1, [sp, #0x20] sub r2, #0xa str r2, [r7, r1] ldr r2, [r7, r1] add r1, r0, #0x0 sub r1, #0xd0 cmp r2, r1 bge _02078820 ldr r1, [sp, #0x20] sub r0, #0xd0 str r0, [r7, r1] _02078820: mov r0, #0xc mul r0, r6 str r0, [sp, #0x24] ldr r3, [sp, #0x24] lsl r1, r6, #0x18 ldr r0, [sp, #0x10] ldr r3, [r4, r3] lsr r1, r1, #0x18 mov r2, #0x0 bl FUN_020179E0 ldr r1, [sp, #0x18] ldr r3, [sp, #0x20] lsl r1, r1, #0x18 ldr r0, [sp, #0x10] ldr r3, [r7, r3] lsr r1, r1, #0x18 mov r2, #0x3 bl FUN_020179E0 ldr r0, [sp, #0x24] mov r1, #0xa ldr r0, [r4, r0] mvn r1, r1 cmp r0, r1 bne _0207887E ldr r0, [sp, #0x20] sub r1, #0xb9 ldr r0, [r7, r0] cmp r0, r1 bne _0207887E ldr r0, [r5, #0x0] add r2, r4, #0x0 add r0, r0, #0x1 str r0, [r5, #0x0] ldr r0, [sp, #0x40] ldr r1, [r0, #0x0] mov r0, #0x1 eor r1, r0 ldr r0, [sp, #0x40] str r1, [r0, #0x0] ldr r0, [sp, #0x10] bl FUN_02078B88 ldr r0, _02078890 ; =0x0000069B bl FUN_020054C8 _0207887E: add sp, #0x28 pop {r3-r7, pc} nop _02078884: .word 0x020F9D2C _02078888: .word 0x000E0F00 _0207888C: .word FUN_02078628 _02078890: .word 0x0000069B thumb_func_start FUN_02078894 FUN_02078894: ; 0x02078894 push {r4-r5, lr} sub sp, #0xc add r4, r2, #0x0 mov r2, #0x1 mov r1, #0x0 lsl r2, r2, #0x8 mov r3, #0xa add r5, r0, #0x0 bl FUN_0200D0BC mov r3, #0x0 str r3, [sp, #0x0] str r3, [sp, #0x4] add r0, r5, #0x0 mov r1, #0x1 add r2, r4, #0x0 str r3, [sp, #0x8] bl FUN_0201BD84 add r0, r5, #0x0 bl FUN_020191D0 add sp, #0xc pop {r4-r5, pc} thumb_func_start FUN_020788C4 FUN_020788C4: ; 0x020788C4 push {r4-r6, lr} sub sp, #0x10 add r5, r0, #0x0 add r6, r2, #0x0 mov r0, #0x0 add r1, r6, #0x0 add r2, r0, #0x0 mov r4, #0x10 bl FUN_02002E14 cmp r0, #0x82 ble _020788DE mov r4, #0x0 _020788DE: add r0, r5, #0x0 mov r1, #0x1 bl FUN_02019620 mov r1, #0x0 str r1, [sp, #0x0] ldr r0, _02078908 ; =0x000E0F01 str r1, [sp, #0x4] str r0, [sp, #0x8] add r0, r5, #0x0 add r2, r6, #0x0 add r3, r4, #0x0 str r1, [sp, #0xc] bl FUN_0201BDE0 add r0, r5, #0x0 bl FUN_020191D0 add sp, #0x10 pop {r4-r6, pc} nop _02078908: .word 0x000E0F01 thumb_func_start FUN_0207890C FUN_0207890C: ; 0x0207890C push {r4-r7, lr} sub sp, #0x14 add r6, r1, #0x0 mov r1, #0x1 add r5, r0, #0x0 str r1, [sp, #0x0] mov r0, #0x1a str r0, [sp, #0x4] mov r0, #0xc str r0, [sp, #0x8] str r1, [sp, #0xc] add r0, #0xf4 str r0, [sp, #0x10] mov r0, #0x16 lsl r0, r0, #0x4 mov r1, #0xee lsl r1, r1, #0x2 ldr r0, [r5, r0] add r1, r5, r1 mov r2, #0x0 mov r3, #0x2 bl FUN_02019064 mov r2, #0x1 mov r1, #0xf2 lsl r1, r1, #0x2 str r2, [sp, #0x0] mov r0, #0x1a str r0, [sp, #0x4] mov r0, #0xc str r0, [sp, #0x8] mov r0, #0x8e str r2, [sp, #0xc] lsl r0, r0, #0x2 str r0, [sp, #0x10] sub r0, #0xd8 ldr r0, [r5, r0] add r1, r5, r1 mov r3, #0x2 bl FUN_02019064 ldr r0, [r5, #0x0] cmp r0, #0x4 bne _020789AE mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0xe lsl r0, r0, #0x6 str r0, [sp, #0x4] mov r3, #0x1 mov r2, #0x16 str r3, [sp, #0x8] mov r0, #0x12 str r0, [sp, #0xc] lsl r2, r2, #0x4 ldr r2, [r5, r2] mov r0, #0x1f mov r1, #0x9 bl FUN_020068C8 mov r0, #0x46 mov r1, #0x4 lsl r0, r0, #0x4 str r1, [r5, r0] add r0, r5, #0x0 add r0, #0x3a bl FUN_0207916C mov r0, #0x4b lsl r0, r0, #0x4 ldr r1, [r5, r0] sub r0, #0xe8 ldr r1, [r1, #0x14] ldr r3, _02078B6C ; =0x000E0F00 str r1, [sp, #0x0] ldr r1, _02078B70 ; =0x00000A0A add r0, r5, r0 mov r2, #0x4 bl FUN_0207974C b _020789D8 _020789AE: mov r0, #0x46 mov r1, #0x0 lsl r0, r0, #0x4 str r1, [r5, r0] add r0, r5, #0x0 add r0, #0x3a bl FUN_0207916C mov r1, #0x4b lsl r1, r1, #0x4 ldr r0, [r5, r1] ldr r3, _02078B6C ; =0x000E0F00 ldr r0, [r0, #0x14] mov r2, #0x0 str r0, [sp, #0x0] add r0, r1, #0x0 sub r0, #0xe8 add r0, r5, r0 sub r1, #0xac bl FUN_0207974C _020789D8: mov r2, #0x2 str r2, [sp, #0x0] mov r3, #0x16 str r3, [sp, #0x4] mov r1, #0x37 str r2, [sp, #0x8] mov r0, #0x0 str r0, [sp, #0xc] lsl r1, r1, #0x4 str r1, [sp, #0x10] lsl r0, r3, #0x4 add r1, #0x68 ldr r0, [r5, r0] add r1, r5, r1 mov r3, #0x7 bl FUN_02019064 ldr r1, [r5, #0xc] mov r0, #0xc add r2, r1, #0x0 mul r2, r0 asr r0, r2, #0x2 lsr r0, r0, #0x1d add r0, r2, r0 asr r0, r0, #0x3 add r4, r0, #0x1 mov r0, #0x3 str r0, [sp, #0x0] lsl r0, r4, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x4] mov r2, #0x2 mov r1, #0xe7 str r2, [sp, #0x8] mov r0, #0x0 str r0, [sp, #0xc] lsl r1, r1, #0x2 mov r0, #0x16 str r1, [sp, #0x10] lsl r0, r0, #0x4 add r1, #0x4c ldr r0, [r5, r0] add r1, r5, r1 mov r3, #0xa bl FUN_02019064 mov r0, #0xfa lsl r0, r0, #0x2 add r0, r5, r0 mov r1, #0x1 bl FUN_02019620 mov r0, #0x3 str r0, [sp, #0x0] mov r0, #0x7 str r0, [sp, #0x4] mov r2, #0x2 mov r1, #0xf add r4, #0x9 lsl r3, r4, #0x18 str r2, [sp, #0x8] mov r0, #0x0 str r0, [sp, #0xc] lsl r1, r1, #0x6 mov r0, #0x16 str r1, [sp, #0x10] lsl r0, r0, #0x4 add r1, #0x78 ldr r0, [r5, r0] add r1, r5, r1 lsr r3, r3, #0x18 bl FUN_02019064 ldr r0, _02078B74 ; =0x00000438 mov r1, #0x1 add r0, r5, r0 bl FUN_02019620 ldr r1, [r5, #0x0] cmp r1, #0x5 bne _02078A90 mov r2, #0x61 ldr r0, _02078B74 ; =0x00000438 lsl r2, r2, #0x2 ldr r2, [r5, r2] add r0, r5, r0 bl FUN_020788C4 ldr r0, _02078B74 ; =0x00000438 add r0, r5, r0 bl FUN_020191D0 _02078A90: mov r0, #0x13 str r0, [sp, #0x0] mov r0, #0x1b str r0, [sp, #0x4] mov r2, #0x4 ldr r1, _02078B78 ; =0x00000448 str r2, [sp, #0x8] mov r0, #0xc str r0, [sp, #0xc] mov r0, #0x84 str r0, [sp, #0x10] add r0, #0xdc ldr r0, [r5, r0] add r1, r5, r1 mov r3, #0x2 bl FUN_02019064 ldr r0, _02078B78 ; =0x00000448 mov r1, #0xf add r0, r5, r0 bl FUN_02019620 mov r2, #0x5e ldr r0, _02078B78 ; =0x00000448 lsl r2, r2, #0x2 ldr r1, [r5, #0x0] ldr r2, [r5, r2] add r0, r5, r0 bl FUN_02078894 add r0, r6, #0x0 bl FUN_0200628C mov r1, #0x46 lsl r1, r1, #0x2 ldrh r2, [r5, r1] ldr r0, _02078B7C ; =0x0000FFFF cmp r2, r0 beq _02078B06 add r0, r5, #0x0 add r0, #0xd8 add r1, r5, r1 bl StringCopy mov r0, #0xc str r0, [sp, #0x0] mov r2, #0x0 add r1, r5, #0x0 ldr r0, _02078B80 ; =0x000E0F01 str r2, [sp, #0x4] str r0, [sp, #0x8] mov r0, #0xfa lsl r0, r0, #0x2 add r0, r5, r0 add r1, #0xd8 add r3, r2, #0x0 str r2, [sp, #0xc] bl FUN_02078E7C _02078B06: mov r0, #0xee lsl r0, r0, #0x2 mov r4, #0x0 add r7, r5, r0 _02078B0E: add r0, r4, #0x4 lsl r6, r0, #0x4 mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x2 str r0, [sp, #0x4] str r0, [sp, #0x8] mov r0, #0x0 str r0, [sp, #0xc] mov r0, #0x78 str r0, [sp, #0x10] add r0, #0xe8 ldr r0, [r5, r0] add r1, r7, r6 mov r2, #0x2 mov r3, #0x0 bl FUN_02019064 add r0, r7, r6 mov r1, #0x0 bl FUN_02019620 add r4, r4, #0x1 cmp r4, #0x3 blt _02078B0E mov r3, #0x0 str r3, [sp, #0x0] mov r0, #0x10 str r0, [sp, #0x4] mov r2, #0x2 str r2, [sp, #0x8] ldr r1, _02078B84 ; =0x00000428 str r3, [sp, #0xc] mov r0, #0x84 str r0, [sp, #0x10] add r0, #0xdc ldr r0, [r5, r0] add r1, r5, r1 bl FUN_02019064 ldr r0, _02078B84 ; =0x00000428 mov r1, #0x0 add r0, r5, r0 bl FUN_02019620 add sp, #0x14 pop {r4-r7, pc} .balign 4 _02078B6C: .word 0x000E0F00 _02078B70: .word 0x00000A0A _02078B74: .word 0x00000438 _02078B78: .word 0x00000448 _02078B7C: .word 0x0000FFFF _02078B80: .word 0x000E0F01 _02078B84: .word 0x00000428 thumb_func_start FUN_02078B88 FUN_02078B88: ; 0x02078B88 push {r4, lr} add r4, r1, #0x0 lsl r0, r4, #0x18 lsr r0, r0, #0x18 mov r1, #0x1 bl FUN_020178BC mov r0, #0x1 eor r0, r4 lsl r0, r0, #0x18 lsr r0, r0, #0x18 mov r1, #0x2 bl FUN_020178BC pop {r4, pc} .balign 4 thumb_func_start FUN_02078BA8 FUN_02078BA8: ; 0x02078BA8 push {r3-r4} mov r3, #0xc add r4, r1, #0x0 mul r4, r3 mov r2, #0xee str r2, [r0, r4] add r2, r3, #0x0 sub r2, #0x5c add r4, r0, r4 str r2, [r4, #0x4] mov r4, #0x1 eor r1, r4 mul r3, r1 sub r4, #0xc str r4, [r0, r3] add r0, r0, r3 str r2, [r0, #0x4] pop {r3-r4} bx lr .balign 4 thumb_func_start FUN_02078BD0 FUN_02078BD0: ; 0x02078BD0 cmp r0, r2 blt _02078BD6 add r0, r1, #0x0 _02078BD6: cmp r0, r1 bge _02078BDC sub r0, r2, #0x1 _02078BDC: bx lr .balign 4 thumb_func_start FUN_02078BE0 FUN_02078BE0: ; 0x02078BE0 push {r3-r7, lr} add r5, r0, #0x0 cmp r1, #0x0 beq _02078C84 ldr r3, [r5, #0x20] mov r2, #0x1a mul r2, r3 ldr r0, [r5, #0x1c] add r3, r5, r2 lsl r2, r0, #0x1 add r2, r3, r2 ldrh r2, [r2, #0x3a] lsl r6, r1, #0x3 ldr r1, _02078C88 ; =0x020FA154 str r2, [sp, #0x0] ldr r1, [r1, r6] mov r2, #0xd add r0, r0, r1 mov r1, #0x0 bl FUN_02078BD0 add r4, r0, #0x0 ldr r0, _02078C8C ; =0x020FA158 ldr r1, [r5, #0x20] ldr r0, [r0, r6] mov r2, #0x6 add r0, r1, r0 mov r1, #0x0 bl FUN_02078BD0 add r7, r0, #0x0 ldr r0, _02078C88 ; =0x020FA154 add r6, r0, r6 b _02078C62 _02078C24: ldr r1, [r5, #0x28] cmp r1, #0x0 bne _02078C46 ldr r1, _02078C90 ; =0x0000D004 cmp r0, r1 bne _02078C46 ldr r0, [r6, #0x4] cmp r0, #0x0 beq _02078C46 ldr r0, [r5, #0x2c] mov r1, #0x0 add r0, r4, r0 mov r2, #0xd bl FUN_02078BD0 add r4, r0, #0x0 b _02078C62 _02078C46: ldr r0, [r6, #0x0] mov r1, #0x0 add r0, r4, r0 mov r2, #0xd bl FUN_02078BD0 add r4, r0, #0x0 ldr r0, [r6, #0x4] mov r1, #0x0 add r0, r7, r0 mov r2, #0x6 bl FUN_02078BD0 add r7, r0, #0x0 _02078C62: mov r0, #0x1a mul r0, r7 lsl r1, r4, #0x1 add r0, r5, r0 add r0, r1, r0 ldrh r0, [r0, #0x3a] ldr r1, _02078C90 ; =0x0000D004 cmp r0, r1 beq _02078C24 ldr r1, [sp, #0x0] cmp r1, r0 bne _02078C80 ldr r1, _02078C94 ; =0x0000E001 cmp r0, r1 bhi _02078C24 _02078C80: str r4, [r5, #0x1c] str r7, [r5, #0x20] _02078C84: pop {r3-r7, pc} nop _02078C88: .word 0x020FA154 _02078C8C: .word 0x020FA158 _02078C90: .word 0x0000D004 _02078C94: .word 0x0000E001 thumb_func_start FUN_02078C98 FUN_02078C98: ; 0x02078C98 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, _02078D70 ; =0x021C48B8 mov r4, #0x0 ldr r1, [r0, #0x4c] mov r0, #0x40 add r6, r4, #0x0 tst r0, r1 beq _02078CC0 ldr r0, _02078D74 ; =0x000005DC bl FUN_020054C8 mov r0, #0xd3 lsl r0, r0, #0x2 ldr r0, [r5, r0] mov r1, #0x1 bl FUN_020200A0 mov r6, #0x1 add r4, r4, #0x1 _02078CC0: ldr r0, _02078D70 ; =0x021C48B8 ldr r1, [r0, #0x4c] mov r0, #0x80 tst r0, r1 beq _02078CE0 ldr r0, _02078D74 ; =0x000005DC bl FUN_020054C8 mov r0, #0xd3 lsl r0, r0, #0x2 ldr r0, [r5, r0] mov r1, #0x1 bl FUN_020200A0 mov r6, #0x2 add r4, r4, #0x1 _02078CE0: ldr r0, _02078D70 ; =0x021C48B8 ldr r1, [r0, #0x4c] mov r0, #0x20 tst r0, r1 beq _02078D00 ldr r0, _02078D74 ; =0x000005DC bl FUN_020054C8 mov r0, #0xd3 lsl r0, r0, #0x2 ldr r0, [r5, r0] mov r1, #0x1 bl FUN_020200A0 mov r6, #0x3 add r4, r4, #0x1 _02078D00: ldr r0, _02078D70 ; =0x021C48B8 ldr r1, [r0, #0x4c] mov r0, #0x10 tst r0, r1 beq _02078D20 ldr r0, _02078D74 ; =0x000005DC bl FUN_020054C8 mov r0, #0xd3 lsl r0, r0, #0x2 ldr r0, [r5, r0] mov r1, #0x1 bl FUN_020200A0 mov r6, #0x4 add r4, r4, #0x1 _02078D20: ldr r0, _02078D70 ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #0x8 tst r0, r1 beq _02078D46 ldr r0, _02078D74 ; =0x000005DC bl FUN_020054C8 mov r0, #0xd3 lsl r0, r0, #0x2 ldr r0, [r5, r0] mov r1, #0x1 bl FUN_020200A0 mov r0, #0xc str r0, [r5, #0x1c] mov r0, #0x0 str r0, [r5, #0x20] add r4, r4, #0x1 _02078D46: add r0, r5, #0x0 bl FUN_02079930 ldr r1, _02078D78 ; =0x000005C8 str r0, [r5, r1] ldr r0, [r5, r1] cmp r0, #0x1 bne _02078D5A mov r6, #0x0 add r4, r4, #0x1 _02078D5A: cmp r4, #0x0 beq _02078D6E add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02078BE0 add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02078D7C _02078D6E: pop {r4-r6, pc} .balign 4 _02078D70: .word 0x021C48B8 _02078D74: .word 0x000005DC _02078D78: .word 0x000005C8 thumb_func_start FUN_02078D7C FUN_02078D7C: ; 0x02078D7C push {r3-r5, lr} sub sp, #0x18 add r5, r0, #0x0 add r4, r1, #0x0 ldr r1, [r5, #0x20] cmp r1, #0x0 beq _02078DC6 ldr r0, [r5, #0x28] cmp r0, #0x0 bne _02078DA0 cmp r0, r1 beq _02078DA0 mov r0, #0xd3 lsl r0, r0, #0x2 ldr r0, [r5, r0] mov r1, #0x27 bl FUN_02020130 _02078DA0: ldr r0, [r5, #0x1c] lsl r0, r0, #0x4 add r0, #0x1a lsl r0, r0, #0xc str r0, [sp, #0xc] ldr r0, [r5, #0x20] sub r1, r0, #0x1 mov r0, #0x13 mul r0, r1 add r0, #0x5b lsl r0, r0, #0xc str r0, [sp, #0x10] mov r0, #0xd3 lsl r0, r0, #0x2 ldr r0, [r5, r0] add r1, sp, #0xc bl FUN_02020044 b _02078E02 _02078DC6: mov r0, #0x1a mul r0, r1 add r1, r5, r0 ldr r0, [r5, #0x1c] lsl r0, r0, #0x1 add r0, r1, r0 ldrh r1, [r0, #0x3a] ldr r0, _02078E2C ; =0x0000E002 sub r1, r1, r0 ldr r0, _02078E30 ; =0x020F9D6C lsl r2, r1, #0x1 ldrh r0, [r0, r2] ldr r2, _02078E34 ; =0x020F9D38 lsl r0, r0, #0xc str r0, [sp, #0x0] mov r0, #0x11 lsl r0, r0, #0xe str r0, [sp, #0x4] mov r0, #0xd3 lsl r0, r0, #0x2 ldrb r1, [r2, r1] ldr r0, [r5, r0] bl FUN_02020130 mov r0, #0xd3 lsl r0, r0, #0x2 ldr r0, [r5, r0] add r1, sp, #0x0 bl FUN_02020044 _02078E02: mov r0, #0xb4 strh r0, [r5, #0x38] mov r0, #0xd3 lsl r0, r0, #0x2 ldr r0, [r5, r0] mov r1, #0x0 bl FUN_02020208 ldr r0, [r5, #0x1c] lsl r1, r4, #0x3 str r0, [r5, #0x24] ldr r0, [r5, #0x20] str r0, [r5, #0x28] ldr r0, _02078E38 ; =0x020FA154 ldr r0, [r0, r1] cmp r0, #0x0 beq _02078E26 str r0, [r5, #0x2c] _02078E26: add sp, #0x18 pop {r3-r5, pc} nop _02078E2C: .word 0x0000E002 _02078E30: .word 0x020F9D6C _02078E34: .word 0x020F9D38 _02078E38: .word 0x020FA154 thumb_func_start FUN_02078E3C FUN_02078E3C: ; 0x02078E3C push {r3, lr} ldrh r1, [r0, #0x0] add r1, #0x14 strh r1, [r0, #0x0] ldrh r2, [r0, #0x0] mov r1, #0x5a lsl r1, r1, #0x2 cmp r2, r1 bls _02078E52 mov r1, #0x0 strh r1, [r0, #0x0] _02078E52: ldrh r0, [r0, #0x0] bl FUN_0201B970 mov r1, #0xa mul r1, r0 asr r0, r1, #0xb lsr r0, r0, #0x14 add r0, r1, r0 asr r0, r0, #0xc add r0, #0xf lsl r1, r0, #0x5 mov r0, #0x1d orr r1, r0 add r0, sp, #0x0 strh r1, [r0, #0x0] add r0, sp, #0x0 mov r1, #0x3a mov r2, #0x2 blx FUN_020C9480 pop {r3, pc} thumb_func_start FUN_02078E7C FUN_02078E7C: ; 0x02078E7C push {r4-r7, lr} sub sp, #0x3c str r0, [sp, #0x18] add r7, r1, #0x0 mov r0, #0x2 mov r1, #0x12 str r2, [sp, #0x1c] str r3, [sp, #0x20] mov r4, #0x0 bl FUN_020219F4 str r0, [sp, #0x28] ldrh r1, [r7, #0x0] ldr r0, _02078F6C ; =0x0000FFFF cmp r1, r0 beq _02078F62 ldr r0, [sp, #0x54] ldr r6, [sp, #0x50] str r0, [sp, #0x24] ldr r0, [sp, #0x58] str r0, [sp, #0x34] ldr r0, [sp, #0x20] add r0, r0, #0x2 lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x2c] ldr r0, [sp, #0x5c] str r0, [sp, #0x30] _02078EB4: lsl r0, r4, #0x1 ldrh r1, [r7, r0] ldr r0, _02078F70 ; =0x00002FFF add r0, r1, r0 lsl r0, r0, #0x10 lsr r0, r0, #0x10 cmp r0, #0x2 bhi _02078F00 mov r0, #0xc str r0, [sp, #0x0] str r0, [sp, #0x4] add r2, r4, #0x0 ldr r0, [sp, #0x1c] mul r2, r6 add r0, r0, r2 ldr r2, _02078F74 ; =0x0000D001 lsl r0, r0, #0x10 sub r1, r1, r2 lsl r1, r1, #0x10 lsr r0, r0, #0x10 lsr r2, r1, #0x8 str r0, [sp, #0x8] ldr r0, [sp, #0x2c] lsr r1, r2, #0x1f add r1, r2, r1 str r0, [sp, #0xc] mov r0, #0xc asr r2, r1, #0x1 ldr r1, [sp, #0x30] str r0, [sp, #0x10] str r0, [sp, #0x14] add r1, r1, r2 mov r2, #0x0 ldr r0, [sp, #0x18] add r3, r2, #0x0 bl FUN_02019658 b _02078F56 _02078F00: ldr r0, _02078F78 ; =0x0000D004 cmp r1, r0 bne _02078F0A add r4, r4, #0x1 b _02078F58 _02078F0A: add r0, sp, #0x38 strh r1, [r0, #0x0] ldr r1, _02078F6C ; =0x0000FFFF strh r1, [r0, #0x2] mov r0, #0x0 add r1, sp, #0x38 add r2, r0, #0x0 bl FUN_02002DE0 add r5, r0, #0x0 ldr r0, [sp, #0x28] add r1, sp, #0x38 bl FUN_02021E28 ldr r0, [sp, #0x20] sub r3, r6, r5 str r0, [sp, #0x0] ldr r0, [sp, #0x24] lsr r5, r3, #0x1f add r5, r3, r5 asr r3, r5, #0x1 str r0, [sp, #0x4] ldr r0, [sp, #0x34] mov r12, r3 add r5, r4, #0x0 str r0, [sp, #0x8] mov r0, #0x0 str r0, [sp, #0xc] ldr r3, [sp, #0x1c] mul r5, r6 add r3, r3, r5 mov r5, r12 ldr r0, [sp, #0x18] ldr r2, [sp, #0x28] mov r1, #0x0 add r3, r5, r3 bl FUN_0201BDE0 _02078F56: add r4, r4, #0x1 _02078F58: lsl r0, r4, #0x1 ldrh r1, [r7, r0] ldr r0, _02078F6C ; =0x0000FFFF cmp r1, r0 bne _02078EB4 _02078F62: ldr r0, [sp, #0x28] bl FUN_02021A20 add sp, #0x3c pop {r4-r7, pc} .balign 4 _02078F6C: .word 0x0000FFFF _02078F70: .word 0x00002FFF _02078F74: .word 0x0000D001 _02078F78: .word 0x0000D004 thumb_func_start FUN_02078F7C FUN_02078F7C: ; 0x02078F7C push {r4-r6, lr} sub sp, #0x10 mov r5, #0x0 add r6, r1, #0x0 str r5, [sp, #0x0] mov r1, #0xff str r1, [sp, #0x4] str r3, [sp, #0x8] add r1, r2, #0x0 add r2, r6, #0x0 add r3, r5, #0x0 add r4, r0, #0x0 str r5, [sp, #0xc] bl FUN_0201BDE0 ldr r0, [r4, #0xc] add sp, #0x10 pop {r4-r6, pc} thumb_func_start FUN_02078FA0 FUN_02078FA0: ; 0x02078FA0 push {r3-r7, lr} sub sp, #0x38 add r6, r0, #0x0 str r1, [sp, #0x8] add r0, #0x30 mov r1, #0x0 add r5, r2, #0x0 add r4, r3, #0x0 bl FUN_02019620 add r0, r6, #0x0 ldr r3, _0207906C ; =0x000D0E0F add r0, #0x30 add r1, r4, #0x0 mov r2, #0x2 bl FUN_02078F7C mov r1, #0x2 lsl r1, r1, #0xa blx DC_FlushRange add r7, r6, #0x0 mov r4, #0x0 add r7, #0x30 _02078FD0: mov r0, #0x0 str r0, [sp, #0x0] add r0, r7, #0x0 mov r1, #0x4 mov r2, #0x2 lsl r3, r4, #0x2 str r5, [sp, #0x4] bl FUN_02011B20 mov r1, #0x1 add r0, r5, #0x0 lsl r1, r1, #0x8 blx DC_FlushRange ldr r1, _02079070 ; =0x020F9D28 mov r2, #0x1 ldrb r1, [r1, r4] add r0, r5, #0x0 lsl r2, r2, #0x8 lsl r1, r1, #0x5 blx FUN_020C9294 add r0, r4, #0x1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, #0x4 blo _02078FD0 mov r0, #0x15 mov r1, #0x12 bl FUN_020219F4 add r4, r0, #0x0 mov r5, #0x0 _02079012: ldr r0, [sp, #0x8] lsl r1, r5, #0x1 ldrh r1, [r0, r1] add r0, sp, #0xc lsl r7, r5, #0x4 strh r1, [r0, #0x0] ldr r1, _02079074 ; =0x0000FFFF strh r1, [r0, #0x2] add r0, r6, r7 mov r1, #0x0 bl FUN_02019620 add r0, r4, #0x0 add r1, sp, #0xc bl FUN_02021E28 ldr r3, _0207906C ; =0x000D0E0F add r0, r6, r7 add r1, r4, #0x0 mov r2, #0x2 bl FUN_02078F7C mov r1, #0x80 add r7, r0, #0x0 blx DC_FlushRange ldr r1, _02079078 ; =0x020F9D40 lsl r2, r5, #0x2 ldr r1, [r1, r2] add r0, r7, #0x0 lsl r1, r1, #0x5 mov r2, #0x80 blx FUN_020C9294 add r0, r5, #0x1 lsl r0, r0, #0x10 lsr r5, r0, #0x10 cmp r5, #0x3 blo _02079012 add r0, r4, #0x0 bl FUN_02021A20 add sp, #0x38 pop {r3-r7, pc} nop _0207906C: .word 0x000D0E0F _02079070: .word 0x020F9D28 _02079074: .word 0x0000FFFF _02079078: .word 0x020F9D40 thumb_func_start FUN_0207907C FUN_0207907C: ; 0x0207907C push {r3-r5, lr} cmp r2, #0x0 bne _02079086 ldr r1, _02079158 ; =0x0000D003 b _0207908C _02079086: sub r2, r2, #0x1 lsl r2, r2, #0x1 ldrh r1, [r1, r2] _0207908C: ldr r4, _0207915C ; =0x0000E003 cmp r1, r4 bgt _020790BC bge _020790E2 ldr r2, _02079160 ; =0x0000D004 cmp r1, r2 bgt _020790B4 sub r2, r2, #0x3 sub r2, r1, r2 bmi _020790E4 add r2, r2, r2 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _020790AC: ; jump table (using 16-bit offset) .short _020790E2 - _020790AC - 2; case 0 .short _020790E2 - _020790AC - 2; case 1 .short _020790E2 - _020790AC - 2; case 2 .short _020790E2 - _020790AC - 2; case 3 _020790B4: ldr r2, _02079164 ; =0x0000E002 cmp r1, r2 beq _020790E2 b _020790E4 _020790BC: add r2, r4, #0x1 cmp r1, r2 bgt _020790C6 beq _020790E2 b _020790E4 _020790C6: add r2, r4, #0x2 sub r2, r1, r2 cmp r2, #0x3 bhi _020790E4 add r2, r2, r2 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _020790DA: ; jump table (using 16-bit offset) .short _020790E2 - _020790DA - 2; case 0 .short _020790E2 - _020790DA - 2; case 1 .short _020790E2 - _020790DA - 2; case 2 .short _020790E2 - _020790DA - 2; case 3 _020790E2: mov r1, #0x1 _020790E4: mov r4, #0x0 add r5, r3, #0x0 mov r2, #0x1 _020790EA: add r4, r4, #0x1 strh r2, [r5, #0x0] add r5, r5, #0x2 cmp r4, #0x3 blt _020790EA strh r1, [r3, #0x0] cmp r1, #0x1 beq _0207914A ldr r5, _02079168 ; =0x020FA40E mov r2, #0x0 _020790FE: ldrh r4, [r5, #0x0] cmp r1, r4 bne _02079120 mov r4, #0x6 ldr r5, _02079168 ; =0x020FA40E mul r4, r2 add r4, r5, r4 mov r1, #0x0 add r5, r3, #0x0 _02079110: ldrh r2, [r4, #0x0] add r1, r1, #0x1 add r4, r4, #0x2 strh r2, [r5, #0x0] add r5, r5, #0x2 cmp r1, #0x3 blt _02079110 b _0207914A _02079120: ldrh r4, [r5, #0x4] cmp r1, r4 bne _02079142 mov r4, #0x6 ldr r5, _02079168 ; =0x020FA40E mul r4, r2 add r4, r5, r4 mov r1, #0x0 add r5, r3, #0x0 _02079132: ldrh r2, [r4, #0x0] add r1, r1, #0x1 add r4, r4, #0x2 strh r2, [r5, #0x0] add r5, r5, #0x2 cmp r1, #0x3 blt _02079132 b _0207914A _02079142: add r2, r2, #0x1 add r5, r5, #0x6 cmp r2, #0x52 blo _020790FE _0207914A: add r1, r3, #0x0 ldr r2, [sp, #0x10] ldr r3, [sp, #0x14] bl FUN_02078FA0 pop {r3-r5, pc} nop _02079158: .word 0x0000D003 _0207915C: .word 0x0000E003 _02079160: .word 0x0000D004 _02079164: .word 0x0000E002 _02079168: .word 0x020FA40E thumb_func_start FUN_0207916C FUN_0207916C: ; 0x0207916C push {r4-r7} mov r4, #0x0 ldr r3, _020791B8 ; =0x02106058 add r5, r4, #0x0 add r6, r0, #0x0 lsl r2, r1, #0x2 _02079178: ldr r7, [r3, r2] add r4, r4, #0x1 ldrh r7, [r7, r5] add r5, r5, #0x2 strh r7, [r6, #0x0] add r6, r6, #0x2 cmp r4, #0xd blt _02079178 mov r3, #0x14 ldr r4, _020791BC ; =0x0210606C mul r3, r1 mov r2, #0x0 add r3, r4, r3 add r1, r2, #0x0 _02079194: add r6, r1, #0x0 add r4, r1, #0x0 add r5, r0, #0x0 _0207919A: ldr r7, [r3, #0x0] add r6, r6, #0x1 ldrh r7, [r7, r4] add r4, r4, #0x2 strh r7, [r5, #0x1a] add r5, r5, #0x2 cmp r6, #0xd blt _0207919A add r2, r2, #0x1 add r3, r3, #0x4 add r0, #0x1a cmp r2, #0x5 blt _02079194 pop {r4-r7} bx lr .balign 4 _020791B8: .word 0x02106058 _020791BC: .word 0x0210606C thumb_func_start FUN_020791C0 FUN_020791C0: ; 0x020791C0 push {r4-r6, lr} sub sp, #0x10 add r4, r0, #0x0 ldr r0, _0207952C ; =0x00002FFD add r6, r2, #0x0 add r0, r1, r0 lsl r0, r0, #0x10 lsr r0, r0, #0x10 cmp r0, #0x1 bhi _020791D6 mov r1, #0x1 _020791D6: ldr r0, [r4, #0x0] cmp r0, #0x4 bne _020791EA ldr r0, _02079530 ; =0x00001FFE add r0, r1, r0 lsl r0, r0, #0x10 lsr r0, r0, #0x10 cmp r0, #0x3 bhi _020791EA mov r1, #0x1 _020791EA: ldr r0, _02079534 ; =0x0000E002 cmp r1, r0 bgt _02079208 blt _020791F4 b _0207931C _020791F4: ldr r3, _02079538 ; =0x0000D002 cmp r1, r3 bgt _02079206 sub r0, r3, #0x1 cmp r1, r0 blt _02079206 beq _0207922A cmp r1, r3 beq _0207927C _02079206: b _0207945C _02079208: add r0, r0, #0x1 sub r0, r1, r0 cmp r0, #0x5 bls _02079212 b _0207945C _02079212: add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0207921E: ; jump table (using 16-bit offset) .short _0207931C - _0207921E - 2; case 0 .short _0207931C - _0207921E - 2; case 1 .short _0207931C - _0207921E - 2; case 2 .short _020792CA - _0207921E - 2; case 3 .short _0207935E - _0207921E - 2; case 4 .short _0207940E - _0207921E - 2; case 5 _0207922A: add r0, r4, #0x0 add r0, #0xd8 str r0, [sp, #0x0] mov r0, #0x56 lsl r0, r0, #0x2 ldrh r0, [r4, r0] ldr r3, _0207953C ; =0x0000D001 mov r1, #0x52 str r0, [sp, #0x4] mov r0, #0x2a mov r2, #0x1 bl FUN_020795FC cmp r0, #0x0 bne _0207924A b _02079526 _0207924A: mov r0, #0xfa lsl r0, r0, #0x2 add r0, r4, r0 mov r1, #0x1 bl FUN_02019620 mov r0, #0xc str r0, [sp, #0x0] mov r2, #0x0 ldr r0, _02079540 ; =0x000E0F01 str r2, [sp, #0x4] str r0, [sp, #0x8] mov r0, #0xfa lsl r0, r0, #0x2 add r0, r4, r0 add r4, #0xd8 add r1, r4, #0x0 add r3, r2, #0x0 str r2, [sp, #0xc] bl FUN_02078E7C ldr r0, _02079544 ; =0x000005EB bl FUN_020054C8 b _02079526 _0207927C: add r0, r4, #0x0 add r0, #0xd8 str r0, [sp, #0x0] mov r0, #0x56 lsl r0, r0, #0x2 ldrh r0, [r4, r0] mov r1, #0x52 mov r2, #0x2 str r0, [sp, #0x4] mov r0, #0x48 bl FUN_020795FC cmp r0, #0x0 beq _02079368 mov r0, #0xfa lsl r0, r0, #0x2 add r0, r4, r0 mov r1, #0x1 bl FUN_02019620 mov r0, #0xc str r0, [sp, #0x0] mov r2, #0x0 ldr r0, _02079540 ; =0x000E0F01 str r2, [sp, #0x4] str r0, [sp, #0x8] mov r0, #0xfa lsl r0, r0, #0x2 add r0, r4, r0 add r4, #0xd8 add r1, r4, #0x0 add r3, r2, #0x0 str r2, [sp, #0xc] bl FUN_02078E7C ldr r0, _02079544 ; =0x000005EB bl FUN_020054C8 b _02079526 _020792CA: mov r3, #0x56 lsl r3, r3, #0x2 ldrh r3, [r4, r3] add r2, r4, #0x0 mov r0, #0x0 mov r1, #0x52 add r2, #0xd8 bl FUN_02079590 cmp r0, #0x0 beq _02079368 mov r0, #0xfa lsl r0, r0, #0x2 add r0, r4, r0 mov r1, #0x1 bl FUN_02019620 mov r0, #0xc str r0, [sp, #0x0] mov r2, #0x0 add r1, r4, #0x0 ldr r0, _02079540 ; =0x000E0F01 str r2, [sp, #0x4] str r0, [sp, #0x8] mov r0, #0xfa lsl r0, r0, #0x2 add r0, r4, r0 add r1, #0xd8 add r3, r2, #0x0 str r2, [sp, #0xc] bl FUN_02078E7C mov r0, #0x4a lsl r0, r0, #0x4 ldr r1, [r4, r0] add r1, r1, #0x1 str r1, [r4, r0] ldr r0, _02079544 ; =0x000005EB bl FUN_020054C8 b _02079526 _0207931C: mov r2, #0x46 lsl r2, r2, #0x4 ldr r0, _02079534 ; =0x0000E002 ldr r3, [r4, r2] sub r5, r1, r0 cmp r3, r5 beq _02079368 mov r1, #0x0 sub r0, r2, #0x4 str r1, [r4, r0] str r5, [r4, r2] add r0, r4, #0x0 ldr r1, [r4, r2] add r0, #0x3a bl FUN_0207916C mov r0, #0x49 lsl r0, r0, #0x4 add r2, r4, r0 lsl r1, r5, #0x2 ldr r0, [r2, r1] add r0, r0, #0x1 str r0, [r2, r1] ldr r0, _02079548 ; =0x0000069E bl FUN_020054C8 mov r0, #0xd3 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r1, r6, #0x0 bl FUN_020200A0 b _02079526 _0207935E: mov r1, #0x56 lsl r1, r1, #0x2 ldrh r0, [r4, r1] cmp r0, #0x0 bne _0207936A _02079368: b _02079526 _0207936A: sub r0, r0, #0x1 lsl r0, r0, #0x1 add r0, r4, r0 ldr r2, _0207954C ; =0x0000FFFF add r0, #0xd8 strh r2, [r0, #0x0] ldrh r0, [r4, r1] sub r0, r0, #0x1 strh r0, [r4, r1] mov r0, #0xfa lsl r0, r0, #0x2 add r0, r4, r0 mov r1, #0x1 bl FUN_02019620 mov r0, #0x56 lsl r0, r0, #0x2 ldrh r0, [r4, r0] cmp r0, #0x0 bne _0207939E mov r0, #0xfa lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_020191D0 b _020793BC _0207939E: mov r0, #0xc str r0, [sp, #0x0] mov r2, #0x0 ldr r0, _02079540 ; =0x000E0F01 str r2, [sp, #0x4] str r0, [sp, #0x8] mov r0, #0xfa lsl r0, r0, #0x2 add r1, r4, #0x0 add r0, r4, r0 add r1, #0xd8 add r3, r2, #0x0 str r2, [sp, #0xc] bl FUN_02078E7C _020793BC: ldr r0, _02079550 ; =0x000004C4 mov r3, #0x5f add r1, r4, r0 lsl r3, r3, #0x2 str r1, [sp, #0x0] ldr r1, [r4, r3] add r2, r3, #0x0 str r1, [sp, #0x4] sub r2, #0x24 sub r0, #0xcc add r1, r4, #0x0 sub r3, #0x22 ldrh r2, [r4, r2] add r0, r4, r0 add r1, #0xd8 add r3, r4, r3 bl FUN_0207907C mov r1, #0x56 lsl r1, r1, #0x2 mov r0, #0xd9 lsl r0, r0, #0x2 ldrh r1, [r4, r1] ldr r2, [r4, #0xc] add r0, r4, r0 bl FUN_02079710 ldr r0, _02079554 ; =0x000004A4 ldr r1, [r4, r0] add r1, r1, #0x1 str r1, [r4, r0] ldr r0, _02079558 ; =0x000005DC bl FUN_020054C8 mov r0, #0xd3 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r1, r6, #0x0 bl FUN_020200A0 b _02079526 _0207940E: ldr r0, _0207955C ; =0x000005C4 ldr r0, [r4, r0] bl FUN_020143D0 mov r0, #0xd3 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r1, r6, #0x0 bl FUN_020200A0 ldr r0, [r4, #0x14] cmp r0, #0x0 bne _02079454 ldr r0, _02079560 ; =0x000005E2 bl FUN_020054C8 ldr r0, _02079564 ; =0x000004A8 ldr r1, [r4, r0] add r1, r1, #0x1 str r1, [r4, r0] mov r1, #0x0 mov r0, #0x10 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] mov r0, #0x12 str r0, [sp, #0x8] mov r0, #0x2 add r2, r1, #0x0 add r3, r1, #0x0 bl FUN_0200E1D0 add sp, #0x10 mov r0, #0x3 pop {r4-r6, pc} _02079454: ldr r0, _02079568 ; =0x0000045C mov r1, #0x5 str r1, [r4, r0] b _02079526 _0207945C: mov r0, #0x46 lsl r0, r0, #0x4 ldr r0, [r4, r0] cmp r0, #0x4 bne _02079470 cmp r1, #0x1 bne _02079470 add sp, #0x10 mov r0, #0x2 pop {r4-r6, pc} _02079470: mov r0, #0x56 lsl r0, r0, #0x2 ldrh r2, [r4, r0] ldr r0, [r4, #0xc] cmp r2, r0 beq _02079526 lsl r0, r2, #0x1 add r0, r4, r0 add r0, #0xd8 strh r1, [r0, #0x0] mov r0, #0xfa lsl r0, r0, #0x2 add r0, r4, r0 mov r1, #0x1 bl FUN_02019620 mov r0, #0xc str r0, [sp, #0x0] mov r2, #0x0 add r1, r4, #0x0 ldr r0, _02079540 ; =0x000E0F01 str r2, [sp, #0x4] str r0, [sp, #0x8] mov r0, #0xfa lsl r0, r0, #0x2 add r0, r4, r0 add r1, #0xd8 add r3, r2, #0x0 str r2, [sp, #0xc] bl FUN_02078E7C mov r1, #0x56 lsl r1, r1, #0x2 ldrh r0, [r4, r1] add r0, r0, #0x1 strh r0, [r4, r1] mov r0, #0xd9 lsl r0, r0, #0x2 ldrh r1, [r4, r1] ldr r2, [r4, #0xc] add r0, r4, r0 bl FUN_02079710 ldr r0, _02079544 ; =0x000005EB bl FUN_020054C8 mov r0, #0xd3 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x1 bl FUN_020200A0 mov r0, #0xd3 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x1 bl FUN_02020398 mov r3, #0x8 ldr r0, _0207956C ; =0x04000050 mov r1, #0x0 mov r2, #0x7 str r3, [sp, #0x0] blx FUN_020C74DC mov r0, #0xd3 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x3c bl FUN_02020130 mov r0, #0x1 str r0, [r4, #0x34] ldr r0, _02079550 ; =0x000004C4 mov r3, #0x5f add r1, r4, r0 lsl r3, r3, #0x2 str r1, [sp, #0x0] ldr r1, [r4, r3] add r2, r3, #0x0 str r1, [sp, #0x4] sub r2, #0x24 sub r0, #0xcc add r1, r4, #0x0 sub r3, #0x22 ldrh r2, [r4, r2] add r0, r4, r0 add r1, #0xd8 add r3, r4, r3 bl FUN_0207907C _02079526: mov r0, #0x2 add sp, #0x10 pop {r4-r6, pc} .balign 4 _0207952C: .word 0x00002FFD _02079530: .word 0x00001FFE _02079534: .word 0x0000E002 _02079538: .word 0x0000D002 _0207953C: .word 0x0000D001 _02079540: .word 0x000E0F01 _02079544: .word 0x000005EB _02079548: .word 0x0000069E _0207954C: .word 0x0000FFFF _02079550: .word 0x000004C4 _02079554: .word 0x000004A4 _02079558: .word 0x000005DC _0207955C: .word 0x000005C4 _02079560: .word 0x000005E2 _02079564: .word 0x000004A8 _02079568: .word 0x0000045C _0207956C: .word 0x04000050 thumb_func_start FUN_02079570 FUN_02079570: ; 0x02079570 push {r4-r6, lr} add r5, r0, #0x0 mov r4, #0x0 mov r6, #0x3 _02079578: add r0, r1, #0x1 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_02078BD0 add r1, r0, #0x0 lsl r0, r1, #0x1 ldrh r0, [r5, r0] cmp r0, #0x1 beq _02079578 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02079590 FUN_02079590: ; 0x02079590 push {r3-r7, lr} sub sp, #0x8 add r4, r0, #0x0 add r0, r1, #0x0 str r2, [sp, #0x0] cmp r3, #0x0 bne _020795A4 add sp, #0x8 mov r0, #0x0 pop {r3-r7, pc} _020795A4: sub r1, r3, #0x1 lsl r1, r1, #0x1 str r1, [sp, #0x4] ldrh r3, [r2, r1] cmp r4, r0 bge _020795F2 mov r1, #0x6 ldr r2, _020795F8 ; =0x020FA40E mul r1, r4 add r5, r2, r1 mov r7, #0x0 _020795BA: add r2, r7, #0x0 add r6, r5, #0x0 _020795BE: ldrh r1, [r6, #0x0] cmp r3, r1 bne _020795E2 cmp r3, #0x1 beq _020795E2 mov r0, #0x6 ldr r1, _020795F8 ; =0x020FA40E mul r0, r4 add r0, r1, r0 add r1, r2, #0x0 bl FUN_02079570 ldr r2, [sp, #0x0] ldr r1, [sp, #0x4] add sp, #0x8 strh r0, [r2, r1] mov r0, #0x1 pop {r3-r7, pc} _020795E2: add r2, r2, #0x1 add r6, r6, #0x2 cmp r2, #0x3 blt _020795BE add r4, r4, #0x1 add r5, r5, #0x6 cmp r4, r0 blt _020795BA _020795F2: mov r0, #0x0 add sp, #0x8 pop {r3-r7, pc} .balign 4 _020795F8: .word 0x020FA40E thumb_func_start FUN_020795FC FUN_020795FC: ; 0x020795FC push {r3-r7, lr} add r4, r0, #0x0 add r0, r1, #0x0 ldr r1, [sp, #0x1c] mov lr, r2 mov r12, r3 cmp r1, #0x0 beq _02079618 sub r1, r1, #0x1 ldr r6, [sp, #0x18] lsl r7, r1, #0x1 ldrh r5, [r6, r7] cmp r5, #0x1 bne _0207961C _02079618: mov r0, #0x0 pop {r3-r7, pc} _0207961C: add r2, r4, #0x0 cmp r4, r0 bge _0207964E mov r1, #0x6 ldr r3, _020796F4 ; =0x020FA40E mul r1, r4 add r3, r3, r1 _0207962A: ldrh r1, [r3, #0x0] cmp r5, r1 bne _02079646 add r3, r2, #0x0 mov r0, #0x6 mul r3, r0 mov r0, lr ldr r2, _020796F4 ; =0x020FA40E lsl r1, r0, #0x1 add r0, r2, r3 ldrh r0, [r1, r0] strh r0, [r6, r7] mov r0, #0x1 pop {r3-r7, pc} _02079646: add r2, r2, #0x1 add r3, r3, #0x6 cmp r2, r0 blt _0207962A _0207964E: cmp r4, r0 bge _0207967E mov r2, lr ldr r1, _020796F4 ; =0x020FA40E lsl r2, r2, #0x1 add r1, r1, r2 mov r2, #0x6 mul r2, r4 add r2, r1, r2 _02079660: ldrh r1, [r2, #0x0] cmp r5, r1 bne _02079676 mov r0, #0x6 add r1, r4, #0x0 mul r1, r0 ldr r0, _020796F4 ; =0x020FA40E ldrh r0, [r0, r1] strh r0, [r6, r7] mov r0, #0x1 pop {r3-r7, pc} _02079676: add r4, r4, #0x1 add r2, r2, #0x6 cmp r4, r0 blt _02079660 _0207967E: ldr r1, _020796F8 ; =0x0000D001 mov r0, r12 cmp r0, r1 beq _02079698 add r1, r1, #0x1 mov r0, r12 cmp r0, r1 beq _020796B8 ldr r1, _020796FC ; =0x0000E006 mov r0, r12 cmp r0, r1 beq _020796D8 b _020796F0 _02079698: ldr r1, _02079700 ; =0x020FA1A4 mov r2, #0x0 _0207969C: ldrh r0, [r1, #0x0] cmp r5, r0 bne _020796AE ldr r0, _02079704 ; =0x020FA1A6 lsl r1, r2, #0x2 ldrh r0, [r0, r1] strh r0, [r6, r7] mov r0, #0x1 pop {r3-r7, pc} _020796AE: add r2, r2, #0x1 add r1, r1, #0x4 cmp r2, #0xc blo _0207969C b _020796F0 _020796B8: ldr r1, _02079708 ; =0x020FA17C mov r2, #0x0 _020796BC: ldrh r0, [r1, #0x0] cmp r5, r0 bne _020796CE ldr r0, _0207970C ; =0x020FA17E lsl r1, r2, #0x2 ldrh r0, [r0, r1] strh r0, [r6, r7] mov r0, #0x1 pop {r3-r7, pc} _020796CE: add r2, r2, #0x1 add r1, r1, #0x4 cmp r2, #0xa blo _020796BC b _020796F0 _020796D8: cmp r5, #0x26 bne _020796E4 mov r0, #0x24 strh r0, [r6, r7] mov r0, #0x1 pop {r3-r7, pc} _020796E4: cmp r5, #0x76 bne _020796F0 mov r0, #0x74 strh r0, [r6, r7] mov r0, #0x1 pop {r3-r7, pc} _020796F0: mov r0, #0x0 pop {r3-r7, pc} .balign 4 _020796F4: .word 0x020FA40E _020796F8: .word 0x0000D001 _020796FC: .word 0x0000E006 _02079700: .word 0x020FA1A4 _02079704: .word 0x020FA1A6 _02079708: .word 0x020FA17C _0207970C: .word 0x020FA17E thumb_func_start FUN_02079710 FUN_02079710: ; 0x02079710 push {r3-r7, lr} sub sp, #0x8 add r6, r2, #0x0 mov r4, #0x0 str r0, [sp, #0x0] str r1, [sp, #0x4] cmp r6, #0x0 ble _02079734 add r5, r0, #0x0 mov r7, #0x2b _02079724: ldr r0, [r5, #0x0] add r1, r7, #0x0 bl FUN_02020130 add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, r6 blt _02079724 _02079734: ldr r0, [sp, #0x4] cmp r0, r6 beq _02079746 lsl r1, r0, #0x2 ldr r0, [sp, #0x0] ldr r0, [r0, r1] mov r1, #0x2c bl FUN_02020130 _02079746: add sp, #0x8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0207974C FUN_0207974C: ; 0x0207974C push {r3-r7, lr} sub sp, #0x18 str r2, [sp, #0x10] ldr r2, [sp, #0x30] lsl r1, r1, #0x18 lsr r1, r1, #0x18 add r5, r0, #0x0 str r3, [sp, #0x14] str r2, [sp, #0x30] bl FUN_02019620 ldr r1, _0207982C ; =0x020F9D30 ldr r0, [sp, #0x10] mov r7, #0x0 ldrb r4, [r1, r0] mov r6, #0x10 _0207976C: mov r0, #0x10 str r0, [sp, #0x0] mov r0, #0x13 lsl r2, r6, #0x10 str r0, [sp, #0x4] add r0, r5, #0x0 add r1, r4, #0x0 lsr r2, r2, #0x10 mov r3, #0x0 bl FUN_020196F4 mov r0, #0x10 str r0, [sp, #0x0] mov r0, #0x13 lsl r2, r6, #0x10 str r0, [sp, #0x4] add r0, r5, #0x0 add r1, r4, #0x0 lsr r2, r2, #0x10 mov r3, #0x26 bl FUN_020196F4 mov r0, #0x10 str r0, [sp, #0x0] mov r0, #0x13 lsl r2, r6, #0x10 str r0, [sp, #0x4] add r0, r5, #0x0 add r1, r4, #0x0 lsr r2, r2, #0x10 mov r3, #0x4c bl FUN_020196F4 add r7, r7, #0x1 add r6, #0x20 cmp r7, #0x6 blt _0207976C mov r7, #0x0 add r6, r7, #0x0 _020797BA: mov r0, #0x10 str r0, [sp, #0x0] mov r0, #0x13 lsl r2, r6, #0x10 str r0, [sp, #0x4] add r0, r5, #0x0 add r1, r4, #0x0 lsr r2, r2, #0x10 mov r3, #0x13 bl FUN_020196F4 mov r0, #0x10 str r0, [sp, #0x0] mov r0, #0x13 lsl r2, r6, #0x10 str r0, [sp, #0x4] add r0, r5, #0x0 add r1, r4, #0x0 lsr r2, r2, #0x10 mov r3, #0x39 bl FUN_020196F4 add r7, r7, #0x1 add r6, #0x20 cmp r7, #0x7 blt _020797BA ldr r0, [sp, #0x10] mov r1, #0x14 ldr r2, _02079830 ; =0x0210606C mul r1, r0 mov r7, #0x0 mov r6, #0x4 add r4, r2, r1 _020797FC: mov r0, #0x10 str r0, [sp, #0x0] mov r0, #0xff str r0, [sp, #0x4] ldr r0, [sp, #0x14] mov r2, #0x0 str r0, [sp, #0x8] ldr r0, [sp, #0x30] add r3, r6, #0x0 str r0, [sp, #0xc] ldr r1, [r4, #0x0] add r0, r5, #0x0 bl FUN_02078E7C add r7, r7, #0x1 add r6, #0x13 add r4, r4, #0x4 cmp r7, #0x5 blt _020797FC add r0, r5, #0x0 bl FUN_020191D0 add sp, #0x18 pop {r3-r7, pc} .balign 4 _0207982C: .word 0x020F9D30 _02079830: .word 0x0210606C thumb_func_start FUN_02079834 FUN_02079834: ; 0x02079834 push {r3-r7, lr} sub sp, #0x8 add r6, r1, #0x0 str r0, [sp, #0x0] mov r7, #0x0 add r1, r0, #0x0 _02079840: ldr r0, [r1, #0x0] cmp r0, #0x0 beq _02079876 mov r0, #0x0 ldr r4, _020798B8 ; =0x020FA1D4 str r0, [sp, #0x4] add r5, r6, #0x0 _0207984E: ldr r0, [r5, #0x0] ldr r1, [r4, #0x8] bl FUN_02020130 ldr r0, [sp, #0x4] add r4, #0x10 add r0, r0, #0x1 add r5, r5, #0x4 str r0, [sp, #0x4] cmp r0, #0x3 blt _0207984E ldr r1, _020798BC ; =0x020FA1DC lsl r2, r7, #0x4 lsl r0, r7, #0x2 ldr r1, [r1, r2] ldr r0, [r6, r0] sub r1, r1, #0x3 bl FUN_02020130 b _0207987E _02079876: add r7, r7, #0x1 add r1, r1, #0x4 cmp r7, #0x3 blt _02079840 _0207987E: ldr r4, [sp, #0x0] ldr r5, _020798C0 ; =0x020FA224 mov r7, #0x5 add r4, #0x14 add r6, #0x14 _02079888: ldr r0, [r4, #0x0] cmp r0, #0x0 beq _02079898 ldr r1, [r5, #0x8] ldr r0, [r6, #0x0] add r1, r1, #0x1 bl FUN_02020130 _02079898: add r7, r7, #0x1 add r4, r4, #0x4 add r5, #0x10 add r6, r6, #0x4 cmp r7, #0x7 blt _02079888 mov r2, #0x0 add r1, r2, #0x0 _020798A8: ldr r0, [sp, #0x0] add r2, r2, #0x1 stmia r0!, {r1} str r0, [sp, #0x0] cmp r2, #0x7 blt _020798A8 add sp, #0x8 pop {r3-r7, pc} .balign 4 _020798B8: .word 0x020FA1D4 _020798BC: .word 0x020FA1DC _020798C0: .word 0x020FA224 thumb_func_start FUN_020798C4 FUN_020798C4: ; 0x020798C4 push {r4, lr} add r4, r0, #0x0 mov r0, #0xd3 lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02020388 cmp r0, #0x0 bne _0207992E mov r0, #0x56 lsl r0, r0, #0x2 ldrh r1, [r4, r0] ldr r0, [r4, #0xc] cmp r1, r0 bne _020798F8 mov r0, #0xc str r0, [r4, #0x1c] mov r0, #0x0 str r0, [r4, #0x20] mov r0, #0xd3 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x27 bl FUN_02020130 b _02079904 _020798F8: mov r0, #0xd3 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x27 bl FUN_02020130 _02079904: ldr r0, [r4, #0x30] cmp r0, #0x0 bne _02079918 mov r0, #0xd3 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 bl FUN_020200A0 b _02079920 _02079918: add r0, r4, #0x0 mov r1, #0x0 bl FUN_02078D7C _02079920: mov r1, #0x0 mov r0, #0xd3 str r1, [r4, #0x34] lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02020398 _0207992E: pop {r4, pc} thumb_func_start FUN_02079930 FUN_02079930: ; 0x02079930 push {r3-r7, lr} str r0, [sp, #0x0] mov r0, #0x0 mov r12, r0 ldr r0, [sp, #0x0] ldr r0, [r0, #0x0] cmp r0, #0x4 bne _02079944 mov r0, #0x4 mov r12, r0 _02079944: ldr r2, _020799E0 ; =0x021C48F8 ldrh r0, [r2, #0x20] cmp r0, #0x0 beq _020799DA ldrh r0, [r2, #0x1c] lsl r0, r0, #0x18 lsr r0, r0, #0x18 mov lr, r0 ldrh r0, [r2, #0x1e] lsl r0, r0, #0x18 lsr r7, r0, #0x18 mov r0, r12 cmp r0, #0x47 bhs _020799DA mov r0, #0x6 mov r2, r12 mul r0, r2 ldr r2, _020799E4 ; =0x020FA264 add r2, r2, r0 add r3, r2, #0x0 _0207996C: ldrh r4, [r3, #0x2] ldrb r0, [r2, #0x0] ldrb r6, [r2, #0x1] lsl r4, r4, #0x1e lsr r4, r4, #0x1e beq _02079982 cmp r4, #0x1 beq _02079988 cmp r4, #0x2 beq _0207998E b _02079992 _02079982: mov r5, #0x1f mov r1, #0x16 b _02079992 _02079988: mov r5, #0x20 mov r1, #0x16 b _02079992 _0207998E: mov r5, #0x10 mov r1, #0x13 _02079992: mov r4, lr cmp r4, r0 blo _020799CC cmp r7, r6 blo _020799CC add r4, r0, r5 mov r0, lr cmp r0, r4 bgt _020799CC add r0, r6, r1 cmp r7, r0 bgt _020799CC ldr r2, _020799E4 ; =0x020FA264 mov r1, #0x6 mov r0, r12 mul r1, r0 add r2, r2, r1 ldrb r0, [r2, #0x4] lsl r0, r0, #0x1b lsr r1, r0, #0x1b ldr r0, [sp, #0x0] str r1, [r0, #0x1c] ldrb r0, [r2, #0x5] lsl r0, r0, #0x1b lsr r1, r0, #0x1b ldr r0, [sp, #0x0] str r1, [r0, #0x20] mov r0, #0x1 pop {r3-r7, pc} _020799CC: mov r0, r12 add r0, r0, #0x1 add r2, r2, #0x6 add r3, r3, #0x6 mov r12, r0 cmp r0, #0x47 blo _0207996C _020799DA: mov r0, #0x0 pop {r3-r7, pc} nop _020799E0: .word 0x021C48F8 _020799E4: .word 0x020FA264 thumb_func_start FUN_020799E8 FUN_020799E8: ; 0x020799E8 lsl r1, r0, #0x1 ldr r0, _020799F0 ; =0x020FA60C ldrh r0, [r0, r1] bx lr .balign 4 _020799F0: .word 0x020FA60C thumb_func_start FUN_020799F4 FUN_020799F4: ; 0x020799F4 push {r3, lr} add r2, r0, #0x0 mul r2, r0 add r0, r1, #0x0 mul r0, r1 add r0, r2, r0 lsl r0, r0, #0x4 bl FUN_0200019E lsr r0, r0, #0x2 pop {r3, pc} .balign 4 thumb_func_start FUN_02079A0C FUN_02079A0C: ; 0x02079A0C push {r4, lr} add r4, r0, #0x0 mul r0, r2 blx _u32_div_f lsl r0, r0, #0x18 lsr r0, r0, #0x18 bne _02079A22 cmp r4, #0x0 beq _02079A22 mov r0, #0x1 _02079A22: pop {r4, pc} thumb_func_start FUN_02079A24 FUN_02079A24: ; 0x02079A24 push {r4, lr} add r4, r0, #0x0 lsl r0, r1, #0x8 lsl r4, r4, #0x8 lsr r1, r0, #0x1 cmp r4, r1 bls _02079A36 mov r0, #0x3 pop {r4, pc} _02079A36: mov r1, #0x5 blx _u32_div_f cmp r4, r0 bls _02079A44 mov r0, #0x2 pop {r4, pc} _02079A44: cmp r4, #0x0 beq _02079A4C mov r0, #0x1 b _02079A4E _02079A4C: mov r0, #0x0 _02079A4E: lsl r0, r0, #0x18 lsr r0, r0, #0x18 pop {r4, pc} thumb_func_start FUN_02079A54 FUN_02079A54: ; 0x02079A54 push {r4, lr} add r4, r2, #0x0 cmp r0, r1 bne _02079A60 mov r0, #0x4 pop {r4, pc} _02079A60: lsl r2, r4, #0x18 lsr r2, r2, #0x18 bl FUN_02079A0C add r1, r4, #0x0 bl FUN_02079A24 pop {r4, pc} thumb_func_start FUN_02079A70 FUN_02079A70: ; 0x02079A70 push {lr} sub sp, #0xc cmp r0, #0x0 bne _02079A90 mov r0, #0x6 str r0, [sp, #0x0] mov r2, #0x1 str r2, [sp, #0x4] mov r0, #0x0 str r1, [sp, #0x8] add r1, r2, #0x0 add r3, r0, #0x0 bl FUN_0200E1D0 add sp, #0xc pop {pc} _02079A90: mov r0, #0x6 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] mov r0, #0x0 str r1, [sp, #0x8] add r1, r0, #0x0 add r2, r0, #0x0 add r3, r0, #0x0 bl FUN_0200E1D0 add sp, #0xc pop {pc} .balign 4 thumb_func_start FUN_02079AAC FUN_02079AAC: ; 0x02079AAC push {r4-r5} ldr r3, _02079B5C ; =0x021C48B8 mov r2, #0x0 ldr r3, [r3, #0x4c] mov r5, #0x40 ldrsh r4, [r0, r2] tst r5, r3 beq _02079ADE add r3, r4, #0x1 strh r3, [r0, #0x0] ldrsh r2, [r0, r2] cmp r2, r1 ble _02079ACA mov r1, #0x1 strh r1, [r0, #0x0] _02079ACA: mov r1, #0x0 ldrsh r0, [r0, r1] cmp r0, r4 bne _02079AD8 add r0, r1, #0x0 pop {r4-r5} bx lr _02079AD8: mov r0, #0x1 pop {r4-r5} bx lr _02079ADE: mov r5, #0x80 tst r5, r3 beq _02079B04 sub r3, r4, #0x1 strh r3, [r0, #0x0] ldrsh r2, [r0, r2] cmp r2, #0x0 bgt _02079AF0 strh r1, [r0, #0x0] _02079AF0: mov r1, #0x0 ldrsh r0, [r0, r1] cmp r0, r4 bne _02079AFE add r0, r1, #0x0 pop {r4-r5} bx lr _02079AFE: mov r0, #0x2 pop {r4-r5} bx lr _02079B04: mov r5, #0x20 tst r5, r3 beq _02079B2E add r1, r4, #0x0 sub r1, #0xa strh r1, [r0, #0x0] ldrsh r1, [r0, r2] cmp r1, #0x0 bgt _02079B1A mov r1, #0x1 strh r1, [r0, #0x0] _02079B1A: mov r1, #0x0 ldrsh r0, [r0, r1] cmp r0, r4 bne _02079B28 add r0, r1, #0x0 pop {r4-r5} bx lr _02079B28: mov r0, #0x2 pop {r4-r5} bx lr _02079B2E: mov r5, #0x10 tst r3, r5 beq _02079B56 add r3, r4, #0x0 add r3, #0xa strh r3, [r0, #0x0] ldrsh r2, [r0, r2] cmp r2, r1 ble _02079B42 strh r1, [r0, #0x0] _02079B42: mov r1, #0x0 ldrsh r0, [r0, r1] cmp r0, r4 bne _02079B50 add r0, r1, #0x0 pop {r4-r5} bx lr _02079B50: mov r0, #0x1 pop {r4-r5} bx lr _02079B56: add r0, r2, #0x0 pop {r4-r5} bx lr .balign 4 _02079B5C: .word 0x021C48B8 thumb_func_start FUN_02079B60 FUN_02079B60: ; 0x02079B60 push {r4-r7, lr} sub sp, #0x14 add r7, r1, #0x0 add r6, r0, #0x0 ldr r1, [sp, #0x28] add r0, r3, #0x0 str r2, [sp, #0x4] ldr r5, [sp, #0x2c] ldr r4, [sp, #0x34] bl FUN_020065A4 add r1, r0, #0x0 add r0, r7, #0x0 bl FUN_020169D8 add r7, r0, #0x0 ldr r0, [sp, #0x4] ldr r1, [sp, #0x28] add r2, r7, #0x0 bl FUN_02006774 ldr r0, [sp, #0x30] cmp r0, #0x0 beq _02079B9A cmp r0, #0x1 beq _02079BC6 cmp r0, #0x2 beq _02079C10 b _02079C36 _02079B9A: add r0, r7, #0x0 add r1, sp, #0x10 blx FUN_020B0088 cmp r4, #0x0 bne _02079BAE ldr r0, [sp, #0x10] ldr r0, [r0, #0x10] lsl r0, r0, #0x10 lsr r4, r0, #0x10 _02079BAE: add r0, sp, #0x18 ldrh r0, [r0, #0x20] lsl r1, r5, #0x18 lsr r1, r1, #0x18 str r0, [sp, #0x0] ldr r2, [sp, #0x10] add r0, r6, #0x0 ldr r2, [r2, #0x14] add r3, r4, #0x0 bl FUN_02017E14 b _02079C36 _02079BC6: add r0, r7, #0x0 add r1, sp, #0xc blx FUN_020B0180 cmp r4, #0x0 bne _02079BDA ldr r0, [sp, #0xc] ldr r0, [r0, #0x8] lsl r0, r0, #0x10 lsr r4, r0, #0x10 _02079BDA: lsl r1, r5, #0x18 add r0, r6, #0x0 lsr r1, r1, #0x18 bl FUN_0201886C cmp r0, #0x0 beq _02079BF8 ldr r2, [sp, #0xc] lsl r1, r5, #0x18 add r0, r6, #0x0 lsr r1, r1, #0x18 add r2, #0xc add r3, r4, #0x0 bl FUN_02017DFC _02079BF8: add r0, sp, #0x18 ldrh r0, [r0, #0x20] lsl r1, r5, #0x18 lsr r1, r1, #0x18 str r0, [sp, #0x0] ldr r2, [sp, #0xc] add r0, r6, #0x0 add r2, #0xc add r3, r4, #0x0 bl FUN_02017CE8 b _02079C36 _02079C10: add r0, r7, #0x0 add r1, sp, #0x8 blx FUN_020B0138 cmp r4, #0x0 bne _02079C24 ldr r0, [sp, #0x8] ldr r0, [r0, #0x8] lsl r0, r0, #0x10 lsr r4, r0, #0x10 _02079C24: ldr r1, [sp, #0x8] add r3, sp, #0x18 lsl r0, r5, #0x18 ldrh r3, [r3, #0x20] ldr r1, [r1, #0xc] lsr r0, r0, #0x18 add r2, r4, #0x0 bl FUN_02017FB4 _02079C36: add r0, r7, #0x0 bl FUN_02016A18 add sp, #0x14 pop {r4-r7, pc} thumb_func_start FUN_02079C40 FUN_02079C40: ; 0x02079C40 push {r3-r7, lr} add r5, r2, #0x0 add r6, r0, #0x0 add r0, r1, #0x0 add r1, r5, #0x0 add r7, r3, #0x0 bl FUN_020065A4 add r1, r0, #0x0 ldr r0, [sp, #0x18] bl FUN_02016998 add r4, r0, #0x0 add r0, r6, #0x0 add r1, r5, #0x0 add r2, r4, #0x0 bl FUN_02006774 add r0, r4, #0x0 add r1, r7, #0x0 blx FUN_020B0180 add r0, r4, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02079C70 FUN_02079C70: ; 0x02079C70 push {r3, lr} bl FUN_020462AC bl FUN_0205F184 pop {r3, pc} thumb_func_start FUN_02079C7C FUN_02079C7C: ; 0x02079C7C push {r3-r5, lr} add r4, r0, #0x0 mov r0, #0x0 add r1, r0, #0x0 bl FUN_02015F10 bl FUN_02015F1C bl FUN_0201E6D8 bl FUN_0201E740 mov r1, #0x1 lsl r1, r1, #0x1a ldr r0, [r1, #0x0] ldr r2, _02079DA0 ; =0xFFFFE0FF and r0, r2 str r0, [r1, #0x0] ldr r0, _02079DA4 ; =0x04001000 ldr r3, [r0, #0x0] and r2, r3 str r2, [r0, #0x0] ldr r3, [r1, #0x0] ldr r2, _02079DA8 ; =0xFFFF1FFF and r3, r2 str r3, [r1, #0x0] ldr r3, [r0, #0x0] add r1, #0x50 and r2, r3 str r2, [r0, #0x0] mov r2, #0x0 strh r2, [r1, #0x0] add r0, #0x50 strh r2, [r0, #0x0] mov r0, #0x4 mov r1, #0x8 bl FUN_0201669C mov r2, #0x1 mov r0, #0x3 mov r1, #0x13 lsl r2, r2, #0x12 bl FUN_0201681C ldr r1, _02079DAC ; =0x0000069C add r0, r4, #0x0 mov r2, #0x13 bl FUN_02006268 ldr r2, _02079DAC ; =0x0000069C mov r1, #0x0 add r5, r0, #0x0 blx FUN_020DF4A4 add r0, r4, #0x0 bl FUN_0200628C mov r1, #0x93 lsl r1, r1, #0x2 str r0, [r5, r1] mov r0, #0x13 bl FUN_02016B94 mov r1, #0x1 str r0, [r5, #0x0] mov r0, #0x13 add r2, r1, #0x0 bl FUN_02014BF4 mov r1, #0x2d lsl r1, r1, #0x4 str r0, [r5, r1] mov r0, #0x0 mov r1, #0x13 bl FUN_02002C84 bl FUN_0201CC08 mov r0, #0x4 bl FUN_0201CC24 add r0, r5, #0x0 bl FUN_0207B028 bl FUN_02079F58 ldr r0, [r5, #0x0] bl FUN_02079F78 add r0, r5, #0x0 bl FUN_0207A0CC bl FUN_0207A188 add r0, r5, #0x0 bl FUN_0207EF6C add r0, r5, #0x0 bl FUN_0207A1A0 add r0, r5, #0x0 bl FUN_0207AAB0 add r0, r5, #0x0 bl FUN_0207C328 add r0, r5, #0x0 bl FUN_0207C448 add r0, r5, #0x0 bl FUN_0207F840 add r0, r5, #0x0 bl FUN_0207C71C add r0, r5, #0x0 bl FUN_0207C77C add r0, r5, #0x0 bl FUN_0207D5BC add r0, r5, #0x0 bl FUN_0207AF58 add r0, r5, #0x0 bl FUN_0207F95C add r0, r5, #0x0 bl FUN_0207F098 ldr r0, _02079DB0 ; =FUN_02079F24 add r1, r5, #0x0 bl FUN_02015F10 bl FUN_0201E788 mov r1, #0x0 mov r0, #0x3d add r2, r1, #0x0 bl FUN_0200433C bl FUN_02033F20 mov r0, #0x1 pop {r3-r5, pc} nop _02079DA0: .word 0xFFFFE0FF _02079DA4: .word 0x04001000 _02079DA8: .word 0xFFFF1FFF _02079DAC: .word 0x0000069C _02079DB0: .word FUN_02079F24 thumb_func_start FUN_02079DB4 FUN_02079DB4: ; 0x02079DB4 push {r3-r5, lr} add r4, r1, #0x0 bl FUN_02006278 ldr r1, [r4, #0x0] add r5, r0, #0x0 cmp r1, #0x13 bhi _02079EA2 add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02079DD0: ; jump table (using 16-bit offset) .short _02079DF8 - _02079DD0 - 2; case 0 .short _02079E06 - _02079DD0 - 2; case 1 .short _02079E0E - _02079DD0 - 2; case 2 .short _02079E16 - _02079DD0 - 2; case 3 .short _02079E1E - _02079DD0 - 2; case 4 .short _02079E26 - _02079DD0 - 2; case 5 .short _02079E2E - _02079DD0 - 2; case 6 .short _02079E36 - _02079DD0 - 2; case 7 .short _02079E3E - _02079DD0 - 2; case 8 .short _02079E46 - _02079DD0 - 2; case 9 .short _02079E4E - _02079DD0 - 2; case 10 .short _02079E56 - _02079DD0 - 2; case 11 .short _02079E5E - _02079DD0 - 2; case 12 .short _02079E66 - _02079DD0 - 2; case 13 .short _02079E6E - _02079DD0 - 2; case 14 .short _02079E76 - _02079DD0 - 2; case 15 .short _02079E7E - _02079DD0 - 2; case 16 .short _02079E86 - _02079DD0 - 2; case 17 .short _02079E8E - _02079DD0 - 2; case 18 .short _02079E96 - _02079DD0 - 2; case 19 _02079DF8: mov r0, #0x0 mov r1, #0x13 bl FUN_02079A70 mov r0, #0x1 str r0, [r4, #0x0] b _02079EA2 _02079E06: bl FUN_0207A2D8 str r0, [r4, #0x0] b _02079EA2 _02079E0E: bl FUN_0207A310 str r0, [r4, #0x0] b _02079EA2 _02079E16: bl FUN_0207A448 str r0, [r4, #0x0] b _02079EA2 _02079E1E: bl FUN_0207A45C str r0, [r4, #0x0] b _02079EA2 _02079E26: bl FUN_0207A470 str r0, [r4, #0x0] b _02079EA2 _02079E2E: bl FUN_0207A484 str r0, [r4, #0x0] b _02079EA2 _02079E36: bl FUN_0207A498 str r0, [r4, #0x0] b _02079EA2 _02079E3E: bl FUN_0207A57C str r0, [r4, #0x0] b _02079EA2 _02079E46: bl FUN_0207A654 str r0, [r4, #0x0] b _02079EA2 _02079E4E: bl FUN_0207A760 str r0, [r4, #0x0] b _02079EA2 _02079E56: bl FUN_0207A77C str r0, [r4, #0x0] b _02079EA2 _02079E5E: bl FUN_0207A790 str r0, [r4, #0x0] b _02079EA2 _02079E66: bl FUN_0207A7A4 str r0, [r4, #0x0] b _02079EA2 _02079E6E: bl FUN_0207A818 str r0, [r4, #0x0] b _02079EA2 _02079E76: bl FUN_0207A884 str r0, [r4, #0x0] b _02079EA2 _02079E7E: bl FUN_0207AA20 str r0, [r4, #0x0] b _02079EA2 _02079E86: bl FUN_0207AA70 str r0, [r4, #0x0] b _02079EA2 _02079E8E: bl FUN_0207AA88 str r0, [r4, #0x0] b _02079EA2 _02079E96: bl FUN_0207AA98 cmp r0, #0x1 bne _02079EA2 mov r0, #0x1 pop {r3-r5, pc} _02079EA2: add r0, r5, #0x0 bl FUN_0207C3F4 add r0, r5, #0x0 bl FUN_0207CC88 add r0, r5, #0x0 bl FUN_0207D3F4 ldr r0, _02079EC8 ; =0x00000404 ldr r0, [r5, r0] bl FUN_0200BC1C add r0, r5, #0x0 bl FUN_0207F008 mov r0, #0x0 pop {r3-r5, pc} nop _02079EC8: .word 0x00000404 thumb_func_start FUN_02079ECC FUN_02079ECC: ; 0x02079ECC push {r3-r5, lr} add r4, r0, #0x0 bl FUN_02006278 add r5, r0, #0x0 mov r0, #0x0 add r1, r0, #0x0 bl FUN_02015F10 add r0, r5, #0x0 bl FUN_0207F068 add r0, r5, #0x0 bl FUN_0207C3D4 add r0, r5, #0x0 bl FUN_0207D74C ldr r0, [r5, #0x0] bl FUN_0207A08C bl FUN_0201CD04 bl FUN_0201C29C add r0, r5, #0x0 bl FUN_0207A264 mov r0, #0x0 bl FUN_02002CC0 ldr r0, _02079F20 ; =0x04000050 mov r1, #0x0 strh r1, [r0, #0x0] add r0, r4, #0x0 bl FUN_0200627C mov r0, #0x13 bl FUN_020168D0 mov r0, #0x1 pop {r3-r5, pc} .balign 4 _02079F20: .word 0x04000050 thumb_func_start FUN_02079F24 FUN_02079F24: ; 0x02079F24 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_0201AB60 mov r0, #0xae lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_020081C4 bl FUN_0201C30C bl FUN_0200BC30 ldr r3, _02079F50 ; =0x027E0000 ldr r1, _02079F54 ; =0x00003FF8 mov r0, #0x1 ldr r2, [r3, r1] orr r0, r2 str r0, [r3, r1] pop {r4, pc} nop _02079F50: .word 0x027E0000 _02079F54: .word 0x00003FF8 thumb_func_start FUN_02079F58 FUN_02079F58: ; 0x02079F58 push {r4, lr} sub sp, #0x28 ldr r4, _02079F74 ; =0x020FA6C0 add r3, sp, #0x0 mov r2, #0x5 _02079F62: ldmia r4!, {r0-r1} stmia r3!, {r0-r1} sub r2, r2, #0x1 bne _02079F62 add r0, sp, #0x0 bl FUN_0201E66C add sp, #0x28 pop {r4, pc} .balign 4 _02079F74: .word 0x020FA6C0 thumb_func_start FUN_02079F78 FUN_02079F78: ; 0x02079F78 push {r4-r5, lr} sub sp, #0x9c ldr r5, _0207A074 ; =0x020FA624 add r3, sp, #0x8c add r4, r0, #0x0 add r2, r3, #0x0 ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} add r0, r2, #0x0 bl FUN_02016BBC ldr r5, _0207A078 ; =0x020FA650 add r3, sp, #0x70 ldmia r5!, {r0-r1} add r2, r3, #0x0 stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r5, #0x0] mov r1, #0x1 str r0, [r3, #0x0] add r0, r4, #0x0 mov r3, #0x0 bl FUN_02016C18 add r0, r4, #0x0 mov r1, #0x1 bl FUN_02018744 ldr r5, _0207A07C ; =0x020FA66C add r3, sp, #0x54 ldmia r5!, {r0-r1} add r2, r3, #0x0 stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r5, #0x0] mov r1, #0x2 str r0, [r3, #0x0] add r0, r4, #0x0 mov r3, #0x0 bl FUN_02016C18 add r0, r4, #0x0 mov r1, #0x2 bl FUN_02018744 add r0, r4, #0x0 mov r1, #0x2 mov r2, #0x0 mov r3, #0x88 bl FUN_0201AEE4 ldr r5, _0207A080 ; =0x020FA688 add r3, sp, #0x38 ldmia r5!, {r0-r1} add r2, r3, #0x0 stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r5, #0x0] mov r1, #0x3 str r0, [r3, #0x0] add r0, r4, #0x0 mov r3, #0x0 bl FUN_02016C18 ldr r5, _0207A084 ; =0x020FA6A4 add r3, sp, #0x1c ldmia r5!, {r0-r1} add r2, r3, #0x0 stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r5, #0x0] mov r1, #0x4 str r0, [r3, #0x0] add r0, r4, #0x0 mov r3, #0x0 bl FUN_02016C18 add r0, r4, #0x0 mov r1, #0x4 bl FUN_02018744 ldr r5, _0207A088 ; =0x020FA634 add r3, sp, #0x0 ldmia r5!, {r0-r1} add r2, r3, #0x0 stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r5, #0x0] mov r1, #0x5 str r0, [r3, #0x0] add r0, r4, #0x0 mov r3, #0x0 bl FUN_02016C18 mov r0, #0x1 mov r1, #0x20 mov r2, #0x0 mov r3, #0x13 bl FUN_02017F18 mov r0, #0x4 mov r1, #0x20 mov r2, #0x0 mov r3, #0x13 bl FUN_02017F18 add sp, #0x9c pop {r4-r5, pc} nop _0207A074: .word 0x020FA624 _0207A078: .word 0x020FA650 _0207A07C: .word 0x020FA66C _0207A080: .word 0x020FA688 _0207A084: .word 0x020FA6A4 _0207A088: .word 0x020FA634 thumb_func_start FUN_0207A08C FUN_0207A08C: ; 0x0207A08C push {r4, lr} add r4, r0, #0x0 bl FUN_0201E6D8 bl FUN_0201E740 add r0, r4, #0x0 mov r1, #0x5 bl FUN_020178A0 add r0, r4, #0x0 mov r1, #0x4 bl FUN_020178A0 add r0, r4, #0x0 mov r1, #0x3 bl FUN_020178A0 add r0, r4, #0x0 mov r1, #0x2 bl FUN_020178A0 add r0, r4, #0x0 mov r1, #0x1 bl FUN_020178A0 mov r0, #0x13 add r1, r4, #0x0 bl FUN_02016A8C pop {r4, pc} .balign 4 thumb_func_start FUN_0207A0CC FUN_0207A0CC: ; 0x0207A0CC push {r4, lr} sub sp, #0x10 mov r1, #0x0 str r1, [sp, #0x0] str r1, [sp, #0x4] add r4, r0, #0x0 str r1, [sp, #0x8] mov r0, #0x13 str r0, [sp, #0xc] ldr r2, [r4, #0x0] mov r0, #0x27 mov r3, #0x3 bl FUN_0200687C mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x4] str r0, [sp, #0x8] mov r0, #0x13 str r0, [sp, #0xc] mov r1, #0x3 ldr r2, [r4, #0x0] mov r0, #0x27 add r3, r1, #0x0 bl FUN_020068C8 mov r2, #0x0 str r2, [sp, #0x0] mov r0, #0x13 str r0, [sp, #0x4] mov r0, #0x27 mov r1, #0x1 add r3, r2, #0x0 bl FUN_02006930 mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x4] str r0, [sp, #0x8] mov r0, #0x13 str r0, [sp, #0xc] ldr r2, [r4, #0x0] mov r0, #0x27 mov r1, #0xb mov r3, #0x2 bl FUN_020068C8 mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x4] str r0, [sp, #0x8] mov r0, #0x13 str r0, [sp, #0xc] ldr r2, [r4, #0x0] mov r0, #0x27 mov r1, #0x2 mov r3, #0x4 bl FUN_0200687C mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x4] str r0, [sp, #0x8] mov r0, #0x13 str r0, [sp, #0xc] ldr r2, [r4, #0x0] mov r0, #0x27 mov r1, #0x10 mov r3, #0x5 bl FUN_0200687C mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x4] str r0, [sp, #0x8] mov r0, #0x13 str r0, [sp, #0xc] ldr r2, [r4, #0x0] mov r0, #0x27 mov r1, #0xf mov r3, #0x5 bl FUN_020068C8 mov r3, #0x0 str r3, [sp, #0x0] mov r0, #0x13 str r0, [sp, #0x4] mov r0, #0x27 mov r1, #0xe mov r2, #0x4 bl FUN_02006930 add sp, #0x10 pop {r4, pc} thumb_func_start FUN_0207A188 FUN_0207A188: ; 0x0207A188 push {r3, lr} mov r0, #0x8 str r0, [sp, #0x0] ldr r0, _0207A19C ; =0x04000050 mov r1, #0x1 mov r2, #0x1e mov r3, #0x17 blx FUN_020C74DC pop {r3, pc} .balign 4 _0207A19C: .word 0x04000050 thumb_func_start FUN_0207A1A0 FUN_0207A1A0: ; 0x0207A1A0 push {r4, lr} mov r2, #0x65 add r4, r0, #0x0 mov r0, #0x0 mov r1, #0x1a lsl r2, r2, #0x2 mov r3, #0x13 bl FUN_0200A86C ldr r1, _0207A250 ; =0x00000674 mov r2, #0x79 str r0, [r4, r1] mov r0, #0x1 mov r1, #0x1a lsl r2, r2, #0x2 mov r3, #0x13 bl FUN_0200A86C ldr r1, _0207A254 ; =0x00000678 mov r2, #0x0 str r0, [r4, r1] mov r0, #0x1 mov r1, #0x2 mov r3, #0x13 bl FUN_0200B870 mov r1, #0x67 lsl r1, r1, #0x4 str r0, [r4, r1] mov r0, #0x13 bl FUN_0200AA80 ldr r1, _0207A258 ; =0x0000067C str r0, [r4, r1] mov r0, #0xc mov r1, #0x13 bl FUN_020219F4 mov r1, #0x25 lsl r1, r1, #0x4 str r0, [r4, r1] mov r0, #0xc mov r1, #0x13 bl FUN_020219F4 mov r1, #0x95 lsl r1, r1, #0x2 str r0, [r4, r1] mov r0, #0x8 mov r1, #0x13 bl FUN_020219F4 mov r1, #0x96 lsl r1, r1, #0x2 str r0, [r4, r1] mov r0, #0x80 mov r1, #0x13 bl FUN_020219F4 mov r1, #0x1a lsl r1, r1, #0x6 str r0, [r4, r1] mov r2, #0x93 mov r0, #0x0 mov r1, #0x1a lsl r2, r2, #0x2 mov r3, #0x13 bl FUN_0200A86C ldr r1, _0207A25C ; =0x00000688 str r0, [r4, r1] mov r0, #0x8 mov r1, #0x13 bl FUN_020219F4 ldr r2, _0207A260 ; =0x00000684 str r0, [r4, r2] mov r0, #0x93 lsl r0, r0, #0x2 ldr r0, [r4, r0] ldr r1, [r0, #0x8] cmp r1, #0x0 beq _0207A24C ldr r0, [r4, r2] bl FUN_02021E28 _0207A24C: pop {r4, pc} nop _0207A250: .word 0x00000674 _0207A254: .word 0x00000678 _0207A258: .word 0x0000067C _0207A25C: .word 0x00000688 _0207A260: .word 0x00000684 thumb_func_start FUN_0207A264 FUN_0207A264: ; 0x0207A264 push {r4, lr} add r4, r0, #0x0 ldr r0, _0207A2C4 ; =0x00000688 ldr r0, [r4, r0] bl FUN_0200A8B8 ldr r0, _0207A2C8 ; =0x00000678 ldr r0, [r4, r0] bl FUN_0200A8B8 ldr r0, _0207A2CC ; =0x00000674 ldr r0, [r4, r0] bl FUN_0200A8B8 mov r0, #0x67 lsl r0, r0, #0x4 ldr r0, [r4, r0] bl FUN_0200B990 ldr r0, _0207A2D0 ; =0x0000067C ldr r0, [r4, r0] bl FUN_0200AB18 mov r0, #0x25 lsl r0, r0, #0x4 ldr r0, [r4, r0] bl FUN_02021A20 mov r0, #0x95 lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02021A20 mov r0, #0x96 lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02021A20 mov r0, #0x1a lsl r0, r0, #0x6 ldr r0, [r4, r0] bl FUN_02021A20 ldr r0, _0207A2D4 ; =0x00000684 ldr r0, [r4, r0] bl FUN_02021A20 pop {r4, pc} .balign 4 _0207A2C4: .word 0x00000688 _0207A2C8: .word 0x00000678 _0207A2CC: .word 0x00000674 _0207A2D0: .word 0x0000067C _0207A2D4: .word 0x00000684 thumb_func_start FUN_0207A2D8 FUN_0207A2D8: ; 0x0207A2D8 push {r4, lr} add r4, r0, #0x0 bl FUN_0200E308 cmp r0, #0x1 bne _0207A30C add r0, r4, #0x0 bl FUN_0207F8D0 add r0, r4, #0x0 bl FUN_0207AF20 mov r0, #0x93 lsl r0, r0, #0x2 ldr r0, [r4, r0] ldrb r0, [r0, #0x12] cmp r0, #0x2 bne _0207A300 mov r0, #0x9 pop {r4, pc} _0207A300: cmp r0, #0x4 bne _0207A308 mov r0, #0xf pop {r4, pc} _0207A308: mov r0, #0x2 pop {r4, pc} _0207A30C: mov r0, #0x1 pop {r4, pc} thumb_func_start FUN_0207A310 FUN_0207A310: ; 0x0207A310 push {r4-r6, lr} ldr r3, _0207A438 ; =0x0000068F add r4, r0, #0x0 ldrb r1, [r4, r3] lsl r1, r1, #0x18 lsr r1, r1, #0x1c cmp r1, #0x1 bne _0207A32E mov r0, #0x93 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x1 strb r1, [r0, #0x17] mov r0, #0x12 pop {r4-r6, pc} _0207A32E: ldr r2, _0207A43C ; =0x021C48B8 mov r1, #0x20 ldr r5, [r2, #0x4c] add r6, r5, #0x0 tst r6, r1 beq _0207A344 sub r1, #0x21 bl FUN_0207B178 mov r0, #0x2 pop {r4-r6, pc} _0207A344: mov r1, #0x10 tst r1, r5 beq _0207A354 mov r1, #0x1 bl FUN_0207B178 mov r0, #0x2 pop {r4-r6, pc} _0207A354: mov r1, #0x40 add r6, r5, #0x0 tst r6, r1 beq _0207A366 sub r1, #0x41 bl FUN_0207B3F0 mov r0, #0x2 pop {r4-r6, pc} _0207A366: mov r1, #0x80 tst r1, r5 beq _0207A376 mov r1, #0x1 bl FUN_0207B3F0 mov r0, #0x2 pop {r4-r6, pc} _0207A376: ldr r1, [r2, #0x48] mov r0, #0x2 tst r0, r1 beq _0207A394 sub r3, #0xb2 add r0, r3, #0x0 bl FUN_020054C8 mov r0, #0x93 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x1 strb r1, [r0, #0x17] mov r0, #0x12 pop {r4-r6, pc} _0207A394: mov r0, #0x1 tst r0, r1 beq _0207A420 mov r0, #0x93 lsl r0, r0, #0x2 ldr r0, [r4, r0] ldrb r0, [r0, #0x12] cmp r0, #0x3 bne _0207A3BE sub r0, r3, #0x3 ldrsb r0, [r4, r0] cmp r0, #0x4 bne _0207A3BE sub r3, #0xb2 add r0, r3, #0x0 bl FUN_020054C8 add r0, r4, #0x0 bl FUN_0207C23C pop {r4-r6, pc} _0207A3BE: ldr r0, _0207A440 ; =0x0000068C ldrsb r1, [r4, r0] cmp r1, #0x3 bne _0207A3D6 add r0, #0x10 bl FUN_020054C8 ldr r0, _0207A444 ; =0x0000068E mov r1, #0x0 strb r1, [r4, r0] mov r0, #0x3 pop {r4-r6, pc} _0207A3D6: cmp r1, #0x5 bne _0207A3EA add r0, #0x10 bl FUN_020054C8 ldr r0, _0207A444 ; =0x0000068E mov r1, #0x0 strb r1, [r4, r0] mov r0, #0x5 pop {r4-r6, pc} _0207A3EA: cmp r1, #0x6 bne _0207A408 add r1, r0, #0x0 add r1, #0xd ldrb r1, [r4, r1] cmp r1, #0x0 beq _0207A420 sub r0, #0xaf bl FUN_020054C8 ldr r0, _0207A444 ; =0x0000068E mov r1, #0x0 strb r1, [r4, r0] mov r0, #0xb pop {r4-r6, pc} _0207A408: cmp r1, #0x7 bne _0207A420 sub r0, #0xaf bl FUN_020054C8 mov r0, #0x93 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x1 strb r1, [r0, #0x17] mov r0, #0x12 pop {r4-r6, pc} _0207A420: add r0, r4, #0x0 bl FUN_0207B200 cmp r0, #0x1 bne _0207A434 ldr r0, _0207A444 ; =0x0000068E mov r1, #0x2 strb r1, [r4, r0] mov r0, #0xe pop {r4-r6, pc} _0207A434: mov r0, #0x2 pop {r4-r6, pc} .balign 4 _0207A438: .word 0x0000068F _0207A43C: .word 0x021C48B8 _0207A440: .word 0x0000068C _0207A444: .word 0x0000068E thumb_func_start FUN_0207A448 FUN_0207A448: ; 0x0207A448 push {r3, lr} bl FUN_0207B66C cmp r0, #0x1 bne _0207A456 mov r0, #0x7 pop {r3, pc} _0207A456: mov r0, #0x3 pop {r3, pc} .balign 4 thumb_func_start FUN_0207A45C FUN_0207A45C: ; 0x0207A45C push {r3, lr} bl FUN_0207B788 cmp r0, #0x1 bne _0207A46A mov r0, #0x2 pop {r3, pc} _0207A46A: mov r0, #0x4 pop {r3, pc} .balign 4 thumb_func_start FUN_0207A470 FUN_0207A470: ; 0x0207A470 push {r3, lr} bl FUN_0207BAEC cmp r0, #0x1 bne _0207A47E mov r0, #0x7 pop {r3, pc} _0207A47E: mov r0, #0x5 pop {r3, pc} .balign 4 thumb_func_start FUN_0207A484 FUN_0207A484: ; 0x0207A484 push {r3, lr} bl FUN_0207BBF0 cmp r0, #0x1 bne _0207A492 mov r0, #0x2 pop {r3, pc} _0207A492: mov r0, #0x6 pop {r3, pc} .balign 4 thumb_func_start FUN_0207A498 FUN_0207A498: ; 0x0207A498 push {r4, lr} ldr r1, _0207A568 ; =0x021C48B8 add r4, r0, #0x0 ldr r2, [r1, #0x48] mov r1, #0x40 add r3, r2, #0x0 tst r3, r1 beq _0207A4C2 sub r1, #0x41 bl FUN_0207B878 cmp r0, #0x1 bne _0207A4BE ldr r0, _0207A56C ; =0x000005DC bl FUN_020054C8 add r0, r4, #0x0 bl FUN_0207B8D8 _0207A4BE: mov r0, #0x7 pop {r4, pc} _0207A4C2: mov r1, #0x80 tst r1, r2 beq _0207A4E2 mov r1, #0x1 bl FUN_0207B878 cmp r0, #0x1 bne _0207A4DE ldr r0, _0207A56C ; =0x000005DC bl FUN_020054C8 add r0, r4, #0x0 bl FUN_0207B8D8 _0207A4DE: mov r0, #0x7 pop {r4, pc} _0207A4E2: mov r0, #0x1 tst r0, r2 beq _0207A542 ldr r0, _0207A570 ; =0x0000068D ldrb r1, [r4, r0] lsl r1, r1, #0x1c lsr r1, r1, #0x1c cmp r1, #0x4 bne _0207A510 add r0, #0xf bl FUN_020054C8 ldr r0, _0207A574 ; =0x0000068E mov r1, #0x0 strb r1, [r4, r0] sub r0, r0, #0x2 ldrsb r0, [r4, r0] cmp r0, #0x3 bne _0207A50C mov r0, #0x4 pop {r4, pc} _0207A50C: mov r0, #0x6 pop {r4, pc} _0207A510: mov r1, #0x93 lsl r1, r1, #0x2 ldr r1, [r4, r1] ldrb r1, [r1, #0x12] cmp r1, #0x1 beq _0207A542 sub r0, #0xb0 bl FUN_020054C8 add r0, r4, #0x0 bl FUN_0207CBE8 ldr r2, _0207A570 ; =0x0000068D mov r1, #0xf0 ldrb r3, [r4, r2] add r0, r3, #0x0 bic r0, r1 lsl r1, r3, #0x1c lsr r1, r1, #0x1c lsl r1, r1, #0x1c lsr r1, r1, #0x18 orr r0, r1 strb r0, [r4, r2] mov r0, #0x8 pop {r4, pc} _0207A542: mov r0, #0x2 tst r0, r2 beq _0207A564 ldr r0, _0207A578 ; =0x0000069C bl FUN_020054C8 ldr r0, _0207A574 ; =0x0000068E mov r1, #0x0 strb r1, [r4, r0] sub r0, r0, #0x2 ldrsb r0, [r4, r0] cmp r0, #0x3 bne _0207A560 mov r0, #0x4 pop {r4, pc} _0207A560: mov r0, #0x6 pop {r4, pc} _0207A564: mov r0, #0x7 pop {r4, pc} .balign 4 _0207A568: .word 0x021C48B8 _0207A56C: .word 0x000005DC _0207A570: .word 0x0000068D _0207A574: .word 0x0000068E _0207A578: .word 0x0000069C thumb_func_start FUN_0207A57C FUN_0207A57C: ; 0x0207A57C push {r4, lr} ldr r1, _0207A644 ; =0x021C48B8 add r4, r0, #0x0 ldr r2, [r1, #0x48] mov r1, #0x40 add r3, r2, #0x0 tst r3, r1 beq _0207A5A6 sub r1, #0x41 bl FUN_0207B878 cmp r0, #0x1 bne _0207A5A2 ldr r0, _0207A648 ; =0x000005DC bl FUN_020054C8 add r0, r4, #0x0 bl FUN_0207B8D8 _0207A5A2: mov r0, #0x8 pop {r4, pc} _0207A5A6: mov r1, #0x80 tst r1, r2 beq _0207A5C6 mov r1, #0x1 bl FUN_0207B878 cmp r0, #0x1 bne _0207A5C2 ldr r0, _0207A648 ; =0x000005DC bl FUN_020054C8 add r0, r4, #0x0 bl FUN_0207B8D8 _0207A5C2: mov r0, #0x8 pop {r4, pc} _0207A5C6: mov r0, #0x1 tst r0, r2 beq _0207A622 mov r0, #0x43 lsl r0, r0, #0x4 ldr r0, [r4, r0] mov r1, #0x0 bl FUN_020200A0 ldr r0, _0207A64C ; =0x0000068D ldrb r1, [r4, r0] lsl r2, r1, #0x1c lsr r2, r2, #0x1c cmp r2, #0x4 beq _0207A618 lsl r1, r1, #0x18 lsr r1, r1, #0x1c cmp r2, r1 beq _0207A618 sub r0, #0xb0 bl FUN_020054C8 add r0, r4, #0x0 bl FUN_0207B9C0 ldr r1, _0207A64C ; =0x0000068D add r0, r4, #0x0 ldrb r2, [r4, r1] lsl r1, r2, #0x1c lsl r2, r2, #0x18 lsr r1, r1, #0x1c lsr r2, r2, #0x1c bl FUN_0207CB08 add r0, r4, #0x0 bl FUN_0207ED30 add r0, r4, #0x0 bl FUN_0207B8D8 b _0207A61E _0207A618: ldr r0, _0207A650 ; =0x000005DD bl FUN_020054C8 _0207A61E: mov r0, #0x7 pop {r4, pc} _0207A622: mov r0, #0x2 tst r0, r2 beq _0207A63E ldr r0, _0207A650 ; =0x000005DD bl FUN_020054C8 mov r0, #0x43 lsl r0, r0, #0x4 ldr r0, [r4, r0] mov r1, #0x0 bl FUN_020200A0 mov r0, #0x7 pop {r4, pc} _0207A63E: mov r0, #0x8 pop {r4, pc} nop _0207A644: .word 0x021C48B8 _0207A648: .word 0x000005DC _0207A64C: .word 0x0000068D _0207A650: .word 0x000005DD thumb_func_start FUN_0207A654 FUN_0207A654: ; 0x0207A654 push {r4, lr} ldr r1, _0207A750 ; =0x021C48B8 add r4, r0, #0x0 ldr r2, [r1, #0x48] mov r1, #0x20 add r3, r2, #0x0 tst r3, r1 beq _0207A66E sub r1, #0x21 bl FUN_0207B178 mov r0, #0x9 pop {r4, pc} _0207A66E: mov r1, #0x10 tst r1, r2 beq _0207A67E mov r1, #0x1 bl FUN_0207B178 mov r0, #0x9 pop {r4, pc} _0207A67E: mov r1, #0x40 add r3, r2, #0x0 tst r3, r1 beq _0207A6A0 sub r1, #0x41 bl FUN_0207B878 cmp r0, #0x1 bne _0207A69C ldr r0, _0207A754 ; =0x000005DC bl FUN_020054C8 add r0, r4, #0x0 bl FUN_0207B8D8 _0207A69C: mov r0, #0x9 pop {r4, pc} _0207A6A0: mov r1, #0x80 tst r1, r2 beq _0207A6C0 mov r1, #0x1 bl FUN_0207B878 cmp r0, #0x1 bne _0207A6BC ldr r0, _0207A754 ; =0x000005DC bl FUN_020054C8 add r0, r4, #0x0 bl FUN_0207B8D8 _0207A6BC: mov r0, #0x9 pop {r4, pc} _0207A6C0: mov r0, #0x1 tst r0, r2 beq _0207A72C ldr r0, _0207A758 ; =0x000005DD bl FUN_020054C8 ldr r0, _0207A75C ; =0x0000068D ldrb r0, [r4, r0] lsl r0, r0, #0x1c lsr r0, r0, #0x1c cmp r0, #0x4 beq _0207A712 lsl r0, r0, #0x1 add r1, r4, r0 mov r0, #0xa1 lsl r0, r0, #0x2 ldrh r0, [r1, r0] bl FUN_0206EA54 cmp r0, #0x1 bne _0207A712 mov r0, #0x93 lsl r0, r0, #0x2 ldr r0, [r4, r0] ldrh r0, [r0, #0x18] cmp r0, #0x0 beq _0207A712 mov r0, #0x45 lsl r0, r0, #0x4 ldr r0, [r4, r0] mov r1, #0x0 bl FUN_0200C63C add r0, r4, #0x0 bl FUN_0207BD58 add r0, r4, #0x0 bl FUN_0207EDB4 mov r0, #0xa pop {r4, pc} _0207A712: ldr r0, _0207A75C ; =0x0000068D ldrb r0, [r4, r0] lsl r0, r0, #0x1c lsr r2, r0, #0x1c mov r0, #0x93 lsl r0, r0, #0x2 ldr r1, [r4, r0] strb r2, [r1, #0x16] ldr r0, [r4, r0] mov r1, #0x0 strb r1, [r0, #0x17] mov r0, #0x12 pop {r4, pc} _0207A72C: mov r0, #0x2 tst r0, r2 beq _0207A74C ldr r0, _0207A758 ; =0x000005DD bl FUN_020054C8 mov r0, #0x93 lsl r0, r0, #0x2 ldr r1, [r4, r0] mov r2, #0x4 strb r2, [r1, #0x16] ldr r0, [r4, r0] mov r1, #0x1 strb r1, [r0, #0x17] mov r0, #0x12 pop {r4, pc} _0207A74C: mov r0, #0x9 pop {r4, pc} .balign 4 _0207A750: .word 0x021C48B8 _0207A754: .word 0x000005DC _0207A758: .word 0x000005DD _0207A75C: .word 0x0000068D thumb_func_start FUN_0207A760 FUN_0207A760: ; 0x0207A760 push {r3, lr} ldr r1, _0207A778 ; =0x021C48B8 ldr r2, [r1, #0x48] mov r1, #0x3 tst r1, r2 beq _0207A774 bl FUN_0207B8D8 mov r0, #0x9 pop {r3, pc} _0207A774: mov r0, #0xa pop {r3, pc} .balign 4 _0207A778: .word 0x021C48B8 thumb_func_start FUN_0207A77C FUN_0207A77C: ; 0x0207A77C push {r3, lr} bl FUN_0207BE68 cmp r0, #0x1 bne _0207A78A mov r0, #0xd pop {r3, pc} _0207A78A: mov r0, #0xb pop {r3, pc} .balign 4 thumb_func_start FUN_0207A790 FUN_0207A790: ; 0x0207A790 push {r3, lr} bl FUN_0207BF90 cmp r0, #0x1 bne _0207A79E mov r0, #0x2 pop {r3, pc} _0207A79E: mov r0, #0xc pop {r3, pc} .balign 4 thumb_func_start FUN_0207A7A4 FUN_0207A7A4: ; 0x0207A7A4 push {r3-r5, lr} ldr r3, _0207A80C ; =0x021C48B8 mov r1, #0x20 ldr r2, [r3, #0x4c] add r4, r0, #0x0 add r5, r2, #0x0 tst r5, r1 beq _0207A7BE sub r1, #0x21 bl FUN_0207C07C mov r0, #0xd pop {r3-r5, pc} _0207A7BE: mov r1, #0x10 tst r1, r2 beq _0207A7CE mov r1, #0x1 bl FUN_0207C07C mov r0, #0xd pop {r3-r5, pc} _0207A7CE: mov r1, #0x40 add r5, r2, #0x0 tst r5, r1 beq _0207A7E0 sub r1, #0x44 bl FUN_0207C07C mov r0, #0xd pop {r3-r5, pc} _0207A7E0: mov r1, #0x80 tst r1, r2 beq _0207A7F0 mov r1, #0x4 bl FUN_0207C07C mov r0, #0xd pop {r3-r5, pc} _0207A7F0: ldr r1, [r3, #0x48] mov r0, #0x3 tst r0, r1 beq _0207A808 ldr r0, _0207A810 ; =0x000005DD bl FUN_020054C8 ldr r0, _0207A814 ; =0x0000068E mov r1, #0x0 strb r1, [r4, r0] mov r0, #0xc pop {r3-r5, pc} _0207A808: mov r0, #0xd pop {r3-r5, pc} .balign 4 _0207A80C: .word 0x021C48B8 _0207A810: .word 0x000005DD _0207A814: .word 0x0000068E thumb_func_start FUN_0207A818 FUN_0207A818: ; 0x0207A818 push {r4, lr} add r4, r0, #0x0 bl FUN_0207FB28 cmp r0, #0x1 bne _0207A82A ldr r0, _0207A878 ; =0x0000068E ldrb r0, [r4, r0] pop {r4, pc} _0207A82A: ldr r1, _0207A87C ; =0x00000695 ldrb r0, [r4, r1] cmp r0, #0x1 bne _0207A874 add r1, r1, #0x1 ldrb r1, [r4, r1] add r0, r4, #0x0 bl FUN_0207FC40 add r1, r0, #0x0 cmp r1, #0x7 bne _0207A850 ldr r2, _0207A880 ; =0x0000068F mov r0, #0xf0 ldrb r3, [r4, r2] bic r3, r0 mov r0, #0x10 orr r0, r3 strb r0, [r4, r2] _0207A850: mov r0, #0x2a lsl r0, r0, #0x4 ldr r0, [r4, r0] lsl r0, r0, #0x3 lsr r0, r0, #0x1f cmp r0, #0x1 bne _0207A86E cmp r1, #0x1 beq _0207A866 cmp r1, #0x7 bne _0207A874 _0207A866: add r0, r4, #0x0 bl FUN_0207B0CC b _0207A874 _0207A86E: add r0, r4, #0x0 bl FUN_0207B0CC _0207A874: mov r0, #0xe pop {r4, pc} .balign 4 _0207A878: .word 0x0000068E _0207A87C: .word 0x00000695 _0207A880: .word 0x0000068F thumb_func_start FUN_0207A884 FUN_0207A884: ; 0x0207A884 push {r4-r6, lr} sub sp, #0x8 ldr r1, _0207AA00 ; =0x021C48B8 add r5, r0, #0x0 ldr r2, [r1, #0x48] mov r1, #0x3 tst r1, r2 bne _0207A896 b _0207A9FA _0207A896: mov r1, #0x93 lsl r1, r1, #0x2 ldr r1, [r5, r1] ldrb r1, [r1, #0x11] cmp r1, #0x2 bne _0207A8BA bl FUN_0207B628 add r6, r0, #0x0 mov r0, #0x13 bl FUN_020669C0 add r4, r0, #0x0 add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_02069A64 b _0207A8C0 _0207A8BA: bl FUN_0207B628 add r4, r0, #0x0 _0207A8C0: mov r0, #0x93 lsl r0, r0, #0x2 ldr r0, [r5, r0] add r1, r4, #0x0 ldr r0, [r0, #0x24] bl FUN_0208821C ldr r0, _0207AA04 ; =0x0000068E mov r2, #0x0 strb r2, [r5, r0] ldr r0, _0207AA08 ; =0x00000295 mov r1, #0x13 ldrb r6, [r5, r0] add r0, r4, #0x0 bl FUN_020671BC ldr r1, _0207AA08 ; =0x00000295 strb r0, [r5, r1] ldrb r0, [r5, r1] cmp r6, r0 beq _0207A8F4 ldr r1, _0207AA04 ; =0x0000068E mov r0, #0x1 ldrb r2, [r5, r1] orr r0, r2 strb r0, [r5, r1] _0207A8F4: ldr r0, _0207AA0C ; =0x00000296 mov r1, #0x14 ldrb r6, [r5, r0] add r0, r4, #0x0 mov r2, #0x0 bl FUN_020671BC ldr r1, _0207AA0C ; =0x00000296 strb r0, [r5, r1] ldrb r0, [r5, r1] cmp r6, r0 beq _0207A916 ldr r1, _0207AA04 ; =0x0000068E mov r0, #0x2 ldrb r2, [r5, r1] orr r0, r2 strb r0, [r5, r1] _0207A916: ldr r0, _0207AA10 ; =0x00000297 mov r1, #0x15 ldrb r6, [r5, r0] add r0, r4, #0x0 mov r2, #0x0 bl FUN_020671BC ldr r1, _0207AA10 ; =0x00000297 strb r0, [r5, r1] ldrb r0, [r5, r1] cmp r6, r0 beq _0207A938 ldr r1, _0207AA04 ; =0x0000068E mov r0, #0x4 ldrb r2, [r5, r1] orr r0, r2 strb r0, [r5, r1] _0207A938: mov r0, #0xa6 lsl r0, r0, #0x2 ldrb r6, [r5, r0] add r0, r4, #0x0 mov r1, #0x16 mov r2, #0x0 bl FUN_020671BC mov r1, #0xa6 lsl r1, r1, #0x2 strb r0, [r5, r1] ldrb r0, [r5, r1] cmp r6, r0 beq _0207A95E ldr r1, _0207AA04 ; =0x0000068E mov r0, #0x8 ldrb r2, [r5, r1] orr r0, r2 strb r0, [r5, r1] _0207A95E: ldr r0, _0207AA14 ; =0x00000299 mov r1, #0x17 ldrb r6, [r5, r0] add r0, r4, #0x0 mov r2, #0x0 bl FUN_020671BC ldr r1, _0207AA14 ; =0x00000299 strb r0, [r5, r1] ldrb r0, [r5, r1] cmp r6, r0 beq _0207A980 ldr r1, _0207AA04 ; =0x0000068E mov r0, #0x10 ldrb r2, [r5, r1] orr r0, r2 strb r0, [r5, r1] _0207A980: add r0, r4, #0x0 mov r1, #0x18 mov r2, #0x0 bl FUN_020671BC ldr r1, _0207AA18 ; =0x0000029A strb r0, [r5, r1] sub r1, #0x4e ldr r0, [r5, r1] ldrb r0, [r0, #0x11] cmp r0, #0x2 bne _0207A99E add r0, r4, #0x0 bl FUN_02016A18 _0207A99E: mov r1, #0x7 mov r0, #0x0 lsl r1, r1, #0x6 mov r2, #0x13 bl FUN_02002EEC mov r0, #0x93 lsl r0, r0, #0x2 ldr r0, [r5, r0] ldr r0, [r0, #0x4] bl FUN_02025084 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x13 str r0, [sp, #0x4] ldr r0, [r5, #0x0] ldr r2, _0207AA1C ; =0x000003E2 mov r1, #0x1 mov r3, #0xd bl FUN_0200CD68 ldr r0, _0207AA04 ; =0x0000068E ldrb r0, [r5, r0] cmp r0, #0x0 bne _0207A9E2 add r0, r5, #0x0 mov r1, #0xfe bl FUN_0207EECC add sp, #0x8 mov r0, #0x11 pop {r4-r6, pc} _0207A9E2: add r0, r5, #0x0 bl FUN_0207F608 add r0, r5, #0x0 bl FUN_0207CC24 add r0, r5, #0x0 bl FUN_0207CF78 add sp, #0x8 mov r0, #0x10 pop {r4-r6, pc} _0207A9FA: mov r0, #0xf add sp, #0x8 pop {r4-r6, pc} .balign 4 _0207AA00: .word 0x021C48B8 _0207AA04: .word 0x0000068E _0207AA08: .word 0x00000295 _0207AA0C: .word 0x00000296 _0207AA10: .word 0x00000297 _0207AA14: .word 0x00000299 _0207AA18: .word 0x0000029A _0207AA1C: .word 0x000003E2 thumb_func_start FUN_0207AA20 FUN_0207AA20: ; 0x0207AA20 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _0207AA68 ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #0x3 tst r0, r1 beq _0207AA62 ldr r0, _0207AA6C ; =0x0000068E mov r1, #0x0 ldrb r2, [r5, r0] mov r0, #0x1 _0207AA36: add r4, r0, #0x0 lsl r4, r1 add r3, r2, #0x0 tst r3, r4 beq _0207AA58 add r0, r5, #0x0 bl FUN_0207EECC ldr r0, _0207AA6C ; =0x0000068E ldrb r1, [r5, r0] eor r1, r4 strb r1, [r5, r0] ldrb r0, [r5, r0] cmp r0, #0x0 bne _0207AA62 mov r0, #0x11 pop {r3-r5, pc} _0207AA58: add r1, r1, #0x1 lsl r1, r1, #0x18 lsr r1, r1, #0x18 cmp r1, #0x5 blo _0207AA36 _0207AA62: mov r0, #0x10 pop {r3-r5, pc} nop _0207AA68: .word 0x021C48B8 _0207AA6C: .word 0x0000068E thumb_func_start FUN_0207AA70 FUN_0207AA70: ; 0x0207AA70 ldr r0, _0207AA84 ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #0x3 tst r0, r1 beq _0207AA7E mov r0, #0x12 bx lr _0207AA7E: mov r0, #0x11 bx lr nop _0207AA84: .word 0x021C48B8 thumb_func_start FUN_0207AA88 FUN_0207AA88: ; 0x0207AA88 push {r3, lr} mov r0, #0x1 mov r1, #0x13 bl FUN_02079A70 mov r0, #0x13 pop {r3, pc} .balign 4 thumb_func_start FUN_0207AA98 FUN_0207AA98: ; 0x0207AA98 push {r3, lr} bl FUN_0200E308 cmp r0, #0x1 bne _0207AAA6 mov r0, #0x1 b _0207AAA8 _0207AAA6: mov r0, #0x0 _0207AAA8: lsl r0, r0, #0x18 lsr r0, r0, #0x18 pop {r3, pc} .balign 4 thumb_func_start FUN_0207AAB0 FUN_0207AAB0: ; 0x0207AAB0 push {r4, lr} add r4, r0, #0x0 bl FUN_0207B628 mov r2, #0x93 lsl r2, r2, #0x2 add r1, r0, #0x0 ldr r0, [r4, r2] ldrb r0, [r0, #0x11] cmp r0, #0x2 bne _0207AAD2 add r2, r2, #0x4 add r0, r4, #0x0 add r2, r4, r2 bl FUN_0207AAE0 pop {r4, pc} _0207AAD2: add r2, r2, #0x4 add r0, r4, #0x0 add r2, r4, r2 bl FUN_0207AB0C pop {r4, pc} .balign 4 thumb_func_start FUN_0207AAE0 FUN_0207AAE0: ; 0x0207AAE0 push {r3-r7, lr} add r5, r0, #0x0 mov r0, #0x13 add r6, r1, #0x0 add r7, r2, #0x0 bl FUN_020669C0 add r4, r0, #0x0 add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_02069A64 add r0, r5, #0x0 add r1, r4, #0x0 add r2, r7, #0x0 bl FUN_0207AB0C add r0, r4, #0x0 bl FUN_02016A18 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0207AB0C FUN_0207AB0C: ; 0x0207AB0C push {r3-r7, lr} sub sp, #0x8 add r6, r1, #0x0 add r7, r0, #0x0 add r0, r6, #0x0 add r5, r2, #0x0 bl FUN_020669D4 str r0, [sp, #0x4] add r0, r6, #0x0 mov r1, #0x5 mov r2, #0x0 bl FUN_020671BC strh r0, [r5, #0xc] add r0, r6, #0x0 bl FUN_020690E4 ldr r2, _0207AEAC ; =0x00000674 add r4, r0, #0x0 ldr r0, [r7, r2] add r2, #0xc ldr r2, [r7, r2] mov r1, #0xb bl FUN_0200A8E0 ldr r0, _0207AEB0 ; =0x0000067C mov r1, #0x0 ldr r0, [r7, r0] add r2, r4, #0x0 bl FUN_0200AC60 ldr r2, _0207AEB0 ; =0x0000067C mov r1, #0x25 ldr r0, [r7, r2] lsl r1, r1, #0x4 add r2, r2, #0x4 ldr r1, [r7, r1] ldr r2, [r7, r2] bl FUN_0200B7B8 ldr r2, _0207AEAC ; =0x00000674 mov r1, #0x0 ldr r0, [r7, r2] add r2, #0xc ldr r2, [r7, r2] bl FUN_0200A8E0 ldr r0, _0207AEB0 ; =0x0000067C mov r1, #0x0 ldr r0, [r7, r0] add r2, r4, #0x0 bl FUN_0200ACF8 ldr r2, _0207AEB0 ; =0x0000067C mov r1, #0x95 ldr r0, [r7, r2] lsl r1, r1, #0x2 add r2, r2, #0x4 ldr r1, [r7, r1] ldr r2, [r7, r2] bl FUN_0200B7B8 ldr r2, _0207AEAC ; =0x00000674 mov r1, #0xe ldr r0, [r7, r2] add r2, #0xc ldr r2, [r7, r2] bl FUN_0200A8E0 ldr r0, _0207AEB0 ; =0x0000067C mov r1, #0x0 ldr r0, [r7, r0] add r2, r4, #0x0 bl FUN_0200AD18 ldr r2, _0207AEB0 ; =0x0000067C mov r1, #0x96 ldr r0, [r7, r2] lsl r1, r1, #0x2 add r2, r2, #0x4 ldr r1, [r7, r1] ldr r2, [r7, r2] bl FUN_0200B7B8 add r0, r6, #0x0 mov r1, #0x6 mov r2, #0x0 bl FUN_020671BC strh r0, [r5, #0xe] add r0, r6, #0x0 mov r1, #0xa0 mov r2, #0x0 bl FUN_020671BC ldrb r1, [r5, #0x12] mov r2, #0x7f lsl r0, r0, #0x18 bic r1, r2 lsr r2, r0, #0x18 mov r0, #0x7f and r0, r2 orr r0, r1 strb r0, [r5, #0x12] add r0, r6, #0x0 mov r1, #0x4c mov r2, #0x0 bl FUN_020671BC lsl r0, r0, #0x1f ldr r2, [r5, #0x50] ldr r1, _0207AEB4 ; =0xEFFFFFFF lsr r0, r0, #0x3 and r1, r2 orr r0, r1 str r0, [r5, #0x50] add r0, r6, #0x0 mov r1, #0xaf mov r2, #0x0 bl FUN_020671BC cmp r0, #0x1 bne _0207AC16 ldr r0, [r5, #0x50] lsl r0, r0, #0x3 lsr r0, r0, #0x1f bne _0207AC16 ldrb r1, [r5, #0x12] mov r0, #0x80 bic r1, r0 strb r1, [r5, #0x12] b _0207AC1E _0207AC16: ldrb r1, [r5, #0x12] mov r0, #0x80 orr r0, r1 strb r0, [r5, #0x12] _0207AC1E: add r0, r6, #0x0 bl FUN_020689E0 ldrb r1, [r5, #0x13] mov r2, #0x3 bic r1, r2 mov r2, #0x3 and r0, r2 orr r0, r1 strb r0, [r5, #0x13] add r0, r6, #0x0 mov r1, #0x9a mov r2, #0x0 bl FUN_020671BC lsl r0, r0, #0x18 lsr r0, r0, #0x18 lsl r0, r0, #0x1a ldrb r1, [r5, #0x13] mov r2, #0xfc lsr r0, r0, #0x18 bic r1, r2 orr r0, r1 strb r0, [r5, #0x13] add r0, r6, #0x0 mov r1, #0xb0 mov r2, #0x0 bl FUN_020671BC strb r0, [r5, #0x10] add r0, r6, #0x0 mov r1, #0xb1 mov r2, #0x0 bl FUN_020671BC strb r0, [r5, #0x11] add r0, r6, #0x0 mov r1, #0x7 mov r2, #0x0 bl FUN_020671BC str r0, [r5, #0x14] add r0, r6, #0x0 mov r1, #0x8 mov r2, #0x0 bl FUN_020671BC str r0, [r5, #0x18] add r0, r6, #0x0 mov r1, #0x9c mov r2, #0x0 bl FUN_020671BC add r1, r5, #0x0 add r1, #0x44 strb r0, [r1, #0x0] ldrb r1, [r5, #0x12] ldrh r0, [r5, #0xc] lsl r1, r1, #0x19 lsr r1, r1, #0x19 bl FUN_02068758 str r0, [r5, #0x1c] ldrb r0, [r5, #0x12] lsl r0, r0, #0x19 lsr r1, r0, #0x19 cmp r1, #0x64 bne _0207ACAA ldr r0, [r5, #0x1c] b _0207ACB2 _0207ACAA: ldrh r0, [r5, #0xc] add r1, r1, #0x1 bl FUN_02068758 _0207ACB2: str r0, [r5, #0x20] add r0, r6, #0x0 mov r1, #0xa2 mov r2, #0x0 bl FUN_020671BC strh r0, [r5, #0x24] add r0, r6, #0x0 mov r1, #0xa3 mov r2, #0x0 bl FUN_020671BC strh r0, [r5, #0x26] add r0, r6, #0x0 mov r1, #0xa4 mov r2, #0x0 bl FUN_020671BC strh r0, [r5, #0x28] add r0, r6, #0x0 mov r1, #0xa5 mov r2, #0x0 bl FUN_020671BC strh r0, [r5, #0x2a] add r0, r6, #0x0 mov r1, #0xa7 mov r2, #0x0 bl FUN_020671BC strh r0, [r5, #0x2c] add r0, r6, #0x0 mov r1, #0xa8 mov r2, #0x0 bl FUN_020671BC strh r0, [r5, #0x2e] add r0, r6, #0x0 mov r1, #0xa6 mov r2, #0x0 bl FUN_020671BC strh r0, [r5, #0x30] add r0, r6, #0x0 mov r1, #0xa mov r2, #0x0 bl FUN_020671BC add r1, r5, #0x0 add r1, #0x32 strb r0, [r1, #0x0] add r0, r6, #0x0 bl FUN_02068854 add r1, r5, #0x0 add r1, #0x33 strb r0, [r1, #0x0] mov r4, #0x0 _0207AD26: lsl r0, r4, #0x1 add r0, r5, r0 add r1, r4, #0x0 str r0, [sp, #0x0] add r0, r6, #0x0 add r1, #0x36 mov r2, #0x0 bl FUN_020671BC ldr r1, [sp, #0x0] mov r2, #0x0 strh r0, [r1, #0x34] add r1, r4, #0x0 add r0, r6, #0x0 add r1, #0x3a bl FUN_020671BC add r1, r5, r4 add r1, #0x3c strb r0, [r1, #0x0] add r1, r4, #0x0 add r0, r6, #0x0 add r1, #0x3e mov r2, #0x0 bl FUN_020671BC lsl r0, r0, #0x18 lsr r1, r0, #0x18 ldr r0, [sp, #0x0] ldrh r0, [r0, #0x34] bl FUN_0206AB30 add r1, r5, r4 add r1, #0x40 strb r0, [r1, #0x0] add r0, r4, #0x1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, #0x4 blo _0207AD26 add r0, r6, #0x0 mov r1, #0x13 mov r2, #0x0 bl FUN_020671BC add r1, r5, #0x0 add r1, #0x45 strb r0, [r1, #0x0] add r0, r6, #0x0 mov r1, #0x14 mov r2, #0x0 bl FUN_020671BC add r1, r5, #0x0 add r1, #0x46 strb r0, [r1, #0x0] add r0, r6, #0x0 mov r1, #0x15 mov r2, #0x0 bl FUN_020671BC add r1, r5, #0x0 add r1, #0x47 strb r0, [r1, #0x0] add r0, r6, #0x0 mov r1, #0x16 mov r2, #0x0 bl FUN_020671BC add r1, r5, #0x0 add r1, #0x48 strb r0, [r1, #0x0] add r0, r6, #0x0 mov r1, #0x17 mov r2, #0x0 bl FUN_020671BC add r1, r5, #0x0 add r1, #0x49 strb r0, [r1, #0x0] add r0, r6, #0x0 mov r1, #0x18 mov r2, #0x0 bl FUN_020671BC add r1, r5, #0x0 add r1, #0x4a strb r0, [r1, #0x0] add r0, r5, #0x0 mov r1, #0x5 add r0, #0x4b strb r1, [r0, #0x0] mov r4, #0x0 _0207ADE0: add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_02069BC8 cmp r0, #0x1 bne _0207ADF4 add r0, r5, #0x0 add r0, #0x4b strb r4, [r0, #0x0] b _0207ADFE _0207ADF4: add r0, r4, #0x1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, #0x5 blo _0207ADE0 _0207ADFE: add r0, r6, #0x0 mov r1, #0xb mov r2, #0x0 bl FUN_020671BC add r1, r5, #0x0 add r1, #0x4c strh r0, [r1, #0x0] add r0, r6, #0x0 mov r1, #0x70 mov r2, #0x0 bl FUN_020671BC add r1, r5, #0x0 add r1, #0x4e strh r0, [r1, #0x0] add r0, r6, #0x0 bl FUN_0207C2D4 mov r1, #0xf ldr r2, [r5, #0x50] lsl r1, r1, #0x1c and r2, r1 ldr r1, _0207AEB8 ; =0x0FFFFFFF and r0, r1 orr r0, r2 str r0, [r5, #0x50] add r0, r6, #0x0 bl FUN_02069E94 cmp r0, #0x1 bne _0207AE4E ldr r1, [r5, #0x50] ldr r0, _0207AEBC ; =0x3FFFFFFF and r1, r0 mov r0, #0x2 lsl r0, r0, #0x1e orr r0, r1 str r0, [r5, #0x50] b _0207AE84 _0207AE4E: add r0, r6, #0x0 bl FUN_02069E74 cmp r0, #0x1 bne _0207AE7C ldr r2, [r5, #0x50] ldr r1, _0207AEBC ; =0x3FFFFFFF add r0, r5, #0x0 and r2, r1 add r1, r1, #0x1 orr r1, r2 str r1, [r5, #0x50] lsl r1, r1, #0x4 lsr r1, r1, #0x4 add r0, #0x50 cmp r1, #0x7 bne _0207AE84 mov r1, #0xf ldr r2, [r0, #0x0] lsl r1, r1, #0x1c and r1, r2 str r1, [r0, #0x0] b _0207AE84 _0207AE7C: ldr r1, [r5, #0x50] ldr r0, _0207AEBC ; =0x3FFFFFFF and r0, r1 str r0, [r5, #0x50] _0207AE84: add r0, r6, #0x0 bl FUN_02068A80 cmp r0, #0x1 ldr r1, [r5, #0x50] bne _0207AE98 mov r0, #0x2 lsl r0, r0, #0x1c orr r0, r1 b _0207AE9C _0207AE98: ldr r0, _0207AEC0 ; =0xDFFFFFFF and r0, r1 _0207AE9C: str r0, [r5, #0x50] mov r4, #0x0 str r4, [r5, #0x54] str r4, [r5, #0x58] str r4, [r5, #0x5c] ldr r0, _0207AEC4 ; =0x00000699 b _0207AEC8 nop _0207AEAC: .word 0x00000674 _0207AEB0: .word 0x0000067C _0207AEB4: .word 0xEFFFFFFF _0207AEB8: .word 0x0FFFFFFF _0207AEBC: .word 0x3FFFFFFF _0207AEC0: .word 0xDFFFFFFF _0207AEC4: .word 0x00000699 _0207AEC8: str r4, [r5, #0x60] strb r4, [r7, r0] _0207AECC: lsl r0, r4, #0x18 lsr r0, r0, #0x18 mov r1, #0x0 bl FUN_0207FC5C add r1, r0, #0x0 add r0, r6, #0x0 mov r2, #0x0 bl FUN_020671BC cmp r0, #0x0 beq _0207AF04 lsr r0, r4, #0x5 lsl r0, r0, #0x2 add r0, r5, r0 mov r1, #0x1f add r2, r4, #0x0 and r2, r1 mov r1, #0x1 ldr r3, [r0, #0x54] lsl r1, r2 orr r1, r3 str r1, [r0, #0x54] ldr r0, _0207AF1C ; =0x00000699 ldrb r0, [r7, r0] add r1, r0, #0x1 ldr r0, _0207AF1C ; =0x00000699 strb r1, [r7, r0] _0207AF04: add r0, r4, #0x1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, #0x50 blo _0207AECC ldr r1, [sp, #0x4] add r0, r6, #0x0 bl FUN_02066A20 add sp, #0x8 pop {r3-r7, pc} nop _0207AF1C: .word 0x00000699 thumb_func_start FUN_0207AF20 FUN_0207AF20: ; 0x0207AF20 push {r3, lr} mov r2, #0x2a lsl r2, r2, #0x4 ldr r1, [r0, r2] lsl r1, r1, #0x3 lsr r1, r1, #0x1f bne _0207AF54 add r1, r2, #0x0 sub r1, #0x44 ldrh r3, [r0, r1] add r1, r2, #0x0 sub r1, #0xe7 cmp r3, r1 bne _0207AF4E sub r2, #0x54 ldr r0, [r0, r2] mov r1, #0x0 ldr r0, [r0, #0x28] mov r2, #0x64 add r3, r1, #0x0 bl FUN_02005E90 pop {r3, pc} _0207AF4E: add r0, r3, #0x0 bl FUN_02005578 _0207AF54: pop {r3, pc} .balign 4 thumb_func_start FUN_0207AF58 FUN_0207AF58: ; 0x0207AF58 push {r4, lr} mov r1, #0x93 add r4, r0, #0x0 lsl r1, r1, #0x2 ldr r0, [r4, r1] ldrb r0, [r0, #0x12] cmp r0, #0x4 bhi _0207AFA4 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0207AF74: ; jump table (using 16-bit offset) .short _0207AF7E - _0207AF74 - 2; case 0 .short _0207AF7E - _0207AF74 - 2; case 1 .short _0207AF96 - _0207AF74 - 2; case 2 .short _0207AF9E - _0207AF74 - 2; case 3 .short _0207AF9E - _0207AF74 - 2; case 4 _0207AF7E: add r1, #0x54 ldr r0, [r4, r1] lsl r0, r0, #0x3 lsr r0, r0, #0x1f ldr r0, _0207AFFC ; =0x0000068C bne _0207AF90 mov r1, #0x0 strb r1, [r4, r0] b _0207AFA4 _0207AF90: mov r1, #0x1 strb r1, [r4, r0] b _0207AFA4 _0207AF96: ldr r0, _0207AFFC ; =0x0000068C mov r1, #0x3 strb r1, [r4, r0] b _0207AFA4 _0207AF9E: ldr r0, _0207AFFC ; =0x0000068C mov r1, #0x4 strb r1, [r4, r0] _0207AFA4: add r0, r4, #0x0 mov r1, #0x0 bl FUN_0207CFAC add r0, r4, #0x0 bl FUN_0207C5D4 add r0, r4, #0x0 bl FUN_0207C838 add r0, r4, #0x0 bl FUN_0207D2C8 add r0, r4, #0x0 bl FUN_0207C6A4 add r0, r4, #0x0 bl FUN_0207CE4C add r0, r4, #0x0 bl FUN_0207CC24 add r0, r4, #0x0 bl FUN_0207D604 add r0, r4, #0x0 bl FUN_0207DD88 add r0, r4, #0x0 bl FUN_0207B228 add r0, r4, #0x0 bl FUN_0207F2A0 mov r0, #0x93 lsl r0, r0, #0x2 ldr r0, [r4, r0] ldrb r0, [r0, #0x12] cmp r0, #0x2 bne _0207AFFA add r0, r4, #0x0 bl FUN_0207BA74 _0207AFFA: pop {r4, pc} .balign 4 _0207AFFC: .word 0x0000068C thumb_func_start FUN_0207B000 FUN_0207B000: ; 0x0207B000 push {r3-r6} mov r6, #0x0 strb r6, [r0, #0x15] add r0, #0x15 mov r3, #0x1 _0207B00A: ldrb r5, [r1, r6] cmp r5, #0x8 beq _0207B024 add r2, r3, #0x0 ldrb r4, [r0, #0x0] lsl r2, r5 orr r2, r4 strb r2, [r0, #0x0] add r2, r6, #0x1 lsl r2, r2, #0x18 lsr r6, r2, #0x18 cmp r6, #0x8 blo _0207B00A _0207B024: pop {r3-r6} bx lr thumb_func_start FUN_0207B028 FUN_0207B028: ; 0x0207B028 push {r3-r4} mov r1, #0x93 lsl r1, r1, #0x2 ldr r4, [r0, r1] ldr r1, [r4, #0x2c] cmp r1, #0x1 beq _0207B06C ldrb r2, [r4, #0x15] mov r1, #0x10 add r3, r2, #0x0 tst r3, r1 beq _0207B044 eor r1, r2 strb r1, [r4, #0x15] _0207B044: mov r1, #0x93 lsl r1, r1, #0x2 ldr r4, [r0, r1] mov r1, #0x20 ldrb r2, [r4, #0x15] add r3, r2, #0x0 tst r3, r1 beq _0207B058 eor r1, r2 strb r1, [r4, #0x15] _0207B058: mov r1, #0x93 lsl r1, r1, #0x2 ldr r3, [r0, r1] mov r0, #0x40 ldrb r1, [r3, #0x15] add r2, r1, #0x0 tst r2, r0 beq _0207B06C eor r0, r1 strb r0, [r3, #0x15] _0207B06C: pop {r3-r4} bx lr thumb_func_start FUN_0207B070 FUN_0207B070: ; 0x0207B070 mov r2, #0x2a lsl r2, r2, #0x4 ldr r2, [r0, r2] lsl r2, r2, #0x3 lsr r2, r2, #0x1f beq _0207B088 cmp r1, #0x1 beq _0207B088 cmp r1, #0x7 beq _0207B088 mov r0, #0x0 bx lr _0207B088: mov r2, #0x93 lsl r2, r2, #0x2 ldr r0, [r0, r2] ldrb r2, [r0, #0x15] mov r0, #0x1 lsl r0, r1 and r0, r2 lsl r0, r0, #0x18 lsr r0, r0, #0x18 bx lr thumb_func_start FUN_0207B09C FUN_0207B09C: ; 0x0207B09C push {r3-r4} mov r3, #0x93 lsl r3, r3, #0x2 ldr r0, [r0, r3] mov r2, #0x0 ldrb r0, [r0, #0x15] add r1, r2, #0x0 mov r3, #0x1 _0207B0AC: add r4, r3, #0x0 lsl r4, r1 tst r4, r0 beq _0207B0BA add r2, r2, #0x1 lsl r2, r2, #0x18 lsr r2, r2, #0x18 _0207B0BA: add r1, r1, #0x1 lsl r1, r1, #0x18 lsr r1, r1, #0x18 cmp r1, #0x8 blo _0207B0AC add r0, r2, #0x0 pop {r3-r4} bx lr .balign 4 thumb_func_start FUN_0207B0CC FUN_0207B0CC: ; 0x0207B0CC push {r3-r5, lr} sub sp, #0x10 add r4, r1, #0x0 ldr r1, _0207B174 ; =0x0000068C add r5, r0, #0x0 ldrsb r1, [r5, r1] cmp r1, r4 beq _0207B170 mov r1, #0x93 lsl r1, r1, #0x2 ldr r1, [r5, r1] ldrb r1, [r1, #0x12] cmp r1, #0x2 bne _0207B0EC bl FUN_0207BDD8 _0207B0EC: add r0, r5, #0x0 bl FUN_0207D6F8 ldr r0, _0207B174 ; =0x0000068C mov r1, #0x0 strb r4, [r5, r0] add r0, r5, #0x0 bl FUN_0207CFAC add r0, r5, #0x0 bl FUN_0207C5D4 add r0, r5, #0x0 bl FUN_0207C6A4 add r0, r5, #0x0 bl FUN_0207C838 add r0, r5, #0x0 bl FUN_0207D2C8 add r0, r5, #0x0 bl FUN_0207CC24 add r0, r5, #0x0 bl FUN_0207D604 add r0, r5, #0x0 mov r1, #0x0 bl FUN_0207D418 mov r0, #0x4 str r0, [sp, #0x0] mov r0, #0x13 str r0, [sp, #0x4] mov r0, #0x14 str r0, [sp, #0x8] mov r2, #0x0 str r2, [sp, #0xc] ldr r0, [r5, #0x0] mov r1, #0x1 mov r3, #0xe bl FUN_02018540 ldr r0, [r5, #0x0] mov r1, #0x1 bl FUN_02017CD0 add r0, r5, #0x0 bl FUN_0207DD88 add r0, r5, #0x0 bl FUN_0207B228 add r0, r5, #0x0 bl FUN_0207F2A0 mov r0, #0x93 lsl r0, r0, #0x2 ldr r0, [r5, r0] ldrb r0, [r0, #0x12] cmp r0, #0x2 bne _0207B170 add r0, r5, #0x0 bl FUN_0207BDF4 _0207B170: add sp, #0x10 pop {r3-r5, pc} .balign 4 _0207B174: .word 0x0000068C thumb_func_start FUN_0207B178 FUN_0207B178: ; 0x0207B178 push {r3-r7, lr} add r5, r0, #0x0 ldr r0, _0207B1F8 ; =0x0000068C mov r6, #0x1 ldrsb r4, [r5, r0] mov r0, #0x2a lsl r0, r0, #0x4 ldr r0, [r5, r0] mov r12, r4 lsl r0, r0, #0x3 lsr r0, r0, #0x1f add r7, r6, #0x0 _0207B190: add r2, r4, r1 lsl r2, r2, #0x18 asr r4, r2, #0x18 bpl _0207B19C mov r4, #0x7 b _0207B1A2 _0207B19C: cmp r4, #0x7 ble _0207B1A2 mov r4, #0x0 _0207B1A2: cmp r0, #0x0 bne _0207B1B8 mov r2, #0x93 lsl r2, r2, #0x2 ldr r2, [r5, r2] ldrb r3, [r2, #0x15] add r2, r6, #0x0 lsl r2, r4 tst r2, r3 bne _0207B1D0 b _0207B190 _0207B1B8: mov r2, #0x93 lsl r2, r2, #0x2 ldr r2, [r5, r2] ldrb r3, [r2, #0x15] add r2, r7, #0x0 lsl r2, r4 tst r2, r3 beq _0207B190 cmp r4, #0x1 beq _0207B1D0 cmp r4, #0x7 bne _0207B190 _0207B1D0: mov r0, r12 cmp r4, r0 beq _0207B1F4 ldr r0, _0207B1FC ; =0x000005E1 bl FUN_020054C8 add r0, r5, #0x0 bl FUN_0207FA38 add r0, r5, #0x0 mov r1, #0x0 bl FUN_0207D418 lsl r1, r4, #0x18 add r0, r5, #0x0 lsr r1, r1, #0x18 bl FUN_0207B0CC _0207B1F4: pop {r3-r7, pc} nop _0207B1F8: .word 0x0000068C _0207B1FC: .word 0x000005E1 thumb_func_start FUN_0207B200 FUN_0207B200: ; 0x0207B200 push {r4, lr} add r4, r0, #0x0 bl FUN_0207FA80 cmp r0, #0xff bne _0207B210 mov r0, #0x0 pop {r4, pc} _0207B210: ldr r1, _0207B224 ; =0x00000694 mov r3, #0x0 strb r3, [r4, r1] add r2, r1, #0x2 strb r0, [r4, r2] add r0, r1, #0x1 strb r3, [r4, r0] mov r0, #0x1 pop {r4, pc} nop _0207B224: .word 0x00000694 thumb_func_start FUN_0207B228 FUN_0207B228: ; 0x0207B228 push {r3-r5, lr} sub sp, #0x10 add r5, r0, #0x0 mov r0, #0x93 lsl r0, r0, #0x2 ldr r1, [r5, r0] ldrb r0, [r1, #0x12] cmp r0, #0x2 bne _0207B250 ldrh r0, [r1, #0x18] cmp r0, #0x0 beq _0207B250 ldr r0, _0207B2AC ; =0x0000068C ldrsb r0, [r5, r0] cmp r0, #0x3 bne _0207B24C mov r1, #0xc b _0207B256 _0207B24C: mov r1, #0xd b _0207B256 _0207B250: ldr r0, _0207B2AC ; =0x0000068C ldrsb r0, [r5, r0] add r1, r0, #0x3 _0207B256: mov r0, #0x27 mov r2, #0x13 bl FUN_0200650C add r1, sp, #0xc add r4, r0, #0x0 blx FUN_020B0180 mov r3, #0x0 str r3, [sp, #0x0] mov r0, #0x20 str r0, [sp, #0x4] str r0, [sp, #0x8] ldr r2, [sp, #0xc] ldr r0, [r5, #0x0] mov r1, #0x3 add r2, #0xc bl FUN_02018148 ldr r0, [r5, #0x0] mov r1, #0x3 bl FUN_0201AC68 add r0, r4, #0x0 bl FUN_02016A18 ldr r0, _0207B2AC ; =0x0000068C ldrsb r0, [r5, r0] cmp r0, #0x0 bne _0207B29C add r0, r5, #0x0 bl FUN_0207B364 add sp, #0x10 pop {r3-r5, pc} _0207B29C: cmp r0, #0x2 bne _0207B2A6 add r0, r5, #0x0 bl FUN_0207B2B0 _0207B2A6: add sp, #0x10 pop {r3-r5, pc} nop _0207B2AC: .word 0x0000068C thumb_func_start FUN_0207B2B0 FUN_0207B2B0: ; 0x0207B2B0 push {r4-r7, lr} sub sp, #0x14 mov r1, #0x9d add r6, r0, #0x0 lsl r1, r1, #0x2 ldrh r0, [r6, r1] add r1, r1, #0x2 ldrh r1, [r6, r1] mov r2, #0x30 bl FUN_02079A54 cmp r0, #0x4 bhi _0207B2EC add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0207B2D6: ; jump table (using 16-bit offset) .short _0207B2E0 - _0207B2D6 - 2; case 0 .short _0207B2E8 - _0207B2D6 - 2; case 1 .short _0207B2E4 - _0207B2D6 - 2; case 2 .short _0207B2E0 - _0207B2D6 - 2; case 3 .short _0207B2E0 - _0207B2D6 - 2; case 4 _0207B2E0: ldr r7, _0207B35C ; =0x0000A0C0 b _0207B2EC _0207B2E4: ldr r7, _0207B360 ; =0x0000A0E0 b _0207B2EC _0207B2E8: mov r7, #0xa1 lsl r7, r7, #0x8 _0207B2EC: mov r1, #0x9d lsl r1, r1, #0x2 ldrh r0, [r6, r1] add r1, r1, #0x2 ldrh r1, [r6, r1] mov r2, #0x30 bl FUN_02079A0C add r4, r0, #0x0 add r0, r7, #0x0 add r0, #0x8 lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r5, #0x0 str r0, [sp, #0x10] _0207B30A: cmp r4, #0x8 blo _0207B312 ldr r2, [sp, #0x10] b _0207B318 _0207B312: add r0, r7, r4 lsl r0, r0, #0x10 lsr r2, r0, #0x10 _0207B318: mov r0, #0x6 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] add r3, r5, #0x0 str r0, [sp, #0x8] mov r0, #0x11 add r3, #0x18 str r0, [sp, #0xc] lsl r3, r3, #0x18 ldr r0, [r6, #0x0] mov r1, #0x3 lsr r3, r3, #0x18 bl FUN_02018540 cmp r4, #0x8 bhs _0207B33E mov r4, #0x0 b _0207B344 _0207B33E: sub r4, #0x8 lsl r0, r4, #0x18 lsr r4, r0, #0x18 _0207B344: add r0, r5, #0x1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 cmp r5, #0x6 blo _0207B30A ldr r0, [r6, #0x0] mov r1, #0x3 bl FUN_0201AC68 add sp, #0x14 pop {r4-r7, pc} nop _0207B35C: .word 0x0000A0C0 _0207B360: .word 0x0000A0E0 thumb_func_start FUN_0207B364 FUN_0207B364: ; 0x0207B364 push {r3-r7, lr} sub sp, #0x10 ldr r2, _0207B3EC ; =0x00000262 add r6, r0, #0x0 ldrb r0, [r6, r2] lsl r0, r0, #0x19 lsr r0, r0, #0x19 cmp r0, #0x64 bhs _0207B38C add r0, r2, #0x0 add r1, r2, #0x0 add r0, #0xa add r1, #0xe add r2, r2, #0x6 ldr r0, [r6, r0] ldr r1, [r6, r1] ldr r2, [r6, r2] sub r1, r1, r0 sub r0, r2, r0 b _0207B390 _0207B38C: mov r1, #0x0 add r0, r1, #0x0 _0207B390: mov r2, #0x38 bl FUN_02079A0C add r4, r0, #0x0 mov r5, #0x0 mov r7, #0x17 _0207B39C: cmp r4, #0x8 blo _0207B3A4 mov r2, #0xb4 b _0207B3AC _0207B3A4: add r0, r4, #0x0 add r0, #0xac lsl r0, r0, #0x10 lsr r2, r0, #0x10 _0207B3AC: str r7, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] add r3, r5, #0x0 str r0, [sp, #0x8] mov r0, #0x11 add r3, #0x17 str r0, [sp, #0xc] lsl r3, r3, #0x18 ldr r0, [r6, #0x0] mov r1, #0x3 lsr r3, r3, #0x18 bl FUN_02018540 cmp r4, #0x8 bhs _0207B3D0 mov r4, #0x0 b _0207B3D6 _0207B3D0: sub r4, #0x8 lsl r0, r4, #0x18 lsr r4, r0, #0x18 _0207B3D6: add r0, r5, #0x1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 cmp r5, #0x7 blo _0207B39C ldr r0, [r6, #0x0] mov r1, #0x3 bl FUN_0201AC68 add sp, #0x10 pop {r3-r7, pc} .balign 4 _0207B3EC: .word 0x00000262 thumb_func_start FUN_0207B3F0 FUN_0207B3F0: ; 0x0207B3F0 push {r4, lr} add r4, r0, #0x0 bl FUN_0207B4A4 mov r1, #0x0 mvn r1, r1 cmp r0, r1 beq _0207B49C mov r1, #0x93 lsl r1, r1, #0x2 ldr r1, [r4, r1] strb r0, [r1, #0x14] add r0, r4, #0x0 bl FUN_0207AAB0 add r0, r4, #0x0 bl FUN_0207AF20 add r0, r4, #0x0 bl FUN_0207D768 add r0, r4, #0x0 bl FUN_0207D800 add r0, r4, #0x0 bl FUN_0207D8A0 ldr r0, _0207B4A0 ; =0x0000068C ldrsb r0, [r4, r0] cmp r0, #0x0 bne _0207B436 add r0, r4, #0x0 bl FUN_0207B364 b _0207B44C _0207B436: cmp r0, #0x2 bne _0207B442 add r0, r4, #0x0 bl FUN_0207B2B0 b _0207B44C _0207B442: cmp r0, #0x4 bne _0207B44C add r0, r4, #0x0 bl FUN_0207F608 _0207B44C: add r0, r4, #0x0 bl FUN_0207F934 add r0, r4, #0x0 mov r1, #0x0 bl FUN_0207CFAC add r0, r4, #0x0 bl FUN_0207C5D4 add r0, r4, #0x0 bl FUN_0207C6A4 add r0, r4, #0x0 bl FUN_0207CA44 add r0, r4, #0x0 bl FUN_0207C838 add r0, r4, #0x0 bl FUN_0207D2C8 add r0, r4, #0x0 bl FUN_0207CFEC add r0, r4, #0x0 bl FUN_0207C71C add r0, r4, #0x0 bl FUN_0207C77C add r0, r4, #0x0 bl FUN_0207CC24 add r0, r4, #0x0 bl FUN_0207CE4C add r0, r4, #0x0 bl FUN_0207DD88 _0207B49C: pop {r4, pc} nop _0207B4A0: .word 0x0000068C thumb_func_start FUN_0207B4A4 FUN_0207B4A4: ; 0x0207B4A4 push {r3, lr} mov r2, #0x93 lsl r2, r2, #0x2 ldr r2, [r0, r2] ldrb r2, [r2, #0x11] cmp r2, #0x0 beq _0207B4BC cmp r2, #0x1 beq _0207B4C2 cmp r2, #0x2 beq _0207B4C8 b _0207B4CE _0207B4BC: bl FUN_0207B4FC pop {r3, pc} _0207B4C2: bl FUN_0207B564 pop {r3, pc} _0207B4C8: bl FUN_0207B5C0 pop {r3, pc} _0207B4CE: mov r0, #0x0 mvn r0, r0 pop {r3, pc} thumb_func_start FUN_0207B4D4 FUN_0207B4D4: ; 0x0207B4D4 mov r1, #0x93 lsl r1, r1, #0x2 ldr r1, [r0, r1] ldrb r1, [r1, #0x12] cmp r1, #0x3 bne _0207B4E4 mov r0, #0x0 bx lr _0207B4E4: ldr r1, _0207B4F8 ; =0x0000068C ldrsb r0, [r0, r1] cmp r0, #0x1 beq _0207B4F4 cmp r0, #0x7 beq _0207B4F4 mov r0, #0x0 bx lr _0207B4F4: mov r0, #0x1 bx lr .balign 4 _0207B4F8: .word 0x0000068C thumb_func_start FUN_0207B4FC FUN_0207B4FC: ; 0x0207B4FC push {r3-r7, lr} add r5, r0, #0x0 mov r0, #0x93 lsl r0, r0, #0x2 str r1, [sp, #0x0] ldr r1, [r5, r0] mov r0, #0x14 ldrsb r4, [r1, r0] _0207B50C: ldr r0, [sp, #0x0] add r0, r4, r0 lsl r0, r0, #0x18 asr r4, r0, #0x18 bmi _0207B522 mov r0, #0x93 lsl r0, r0, #0x2 ldr r0, [r5, r0] ldrb r0, [r0, #0x13] cmp r4, r0 blt _0207B528 _0207B522: mov r0, #0x0 mvn r0, r0 pop {r3-r7, pc} _0207B528: bl FUN_020690C4 mov r1, #0x93 lsl r1, r1, #0x2 ldr r1, [r5, r1] add r7, r4, #0x0 ldr r6, [r1, #0x0] mul r7, r0 add r0, r6, r7 mov r1, #0x5 mov r2, #0x0 bl FUN_020671BC cmp r0, #0x0 beq _0207B50C add r0, r6, r7 mov r1, #0x4c mov r2, #0x0 bl FUN_020671BC cmp r0, #0x0 beq _0207B55E add r0, r5, #0x0 bl FUN_0207B4D4 cmp r0, #0x1 bne _0207B50C _0207B55E: add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0207B564 FUN_0207B564: ; 0x0207B564 push {r3-r7, lr} add r5, r0, #0x0 mov r0, #0x93 lsl r0, r0, #0x2 add r7, r1, #0x0 ldr r1, [r5, r0] mov r0, #0x14 ldrsb r4, [r1, r0] _0207B574: add r0, r4, r7 lsl r0, r0, #0x18 asr r4, r0, #0x18 bmi _0207B588 mov r0, #0x93 lsl r0, r0, #0x2 ldr r1, [r5, r0] ldrb r0, [r1, #0x13] cmp r4, r0 blt _0207B58E _0207B588: mov r0, #0x0 mvn r0, r0 pop {r3-r7, pc} _0207B58E: ldr r0, [r1, #0x0] add r1, r4, #0x0 bl FUN_0206B9B0 mov r1, #0x5 mov r2, #0x0 add r6, r0, #0x0 bl FUN_020671BC cmp r0, #0x0 beq _0207B574 add r0, r6, #0x0 mov r1, #0x4c mov r2, #0x0 bl FUN_020671BC cmp r0, #0x0 beq _0207B5BC add r0, r5, #0x0 bl FUN_0207B4D4 cmp r0, #0x1 bne _0207B574 _0207B5BC: add r0, r4, #0x0 pop {r3-r7, pc} thumb_func_start FUN_0207B5C0 FUN_0207B5C0: ; 0x0207B5C0 push {r3-r7, lr} add r5, r0, #0x0 mov r0, #0x93 lsl r0, r0, #0x2 str r1, [sp, #0x0] ldr r1, [r5, r0] mov r0, #0x14 ldrsb r4, [r1, r0] _0207B5D0: ldr r0, [sp, #0x0] add r0, r4, r0 lsl r0, r0, #0x18 asr r4, r0, #0x18 bmi _0207B5E6 mov r0, #0x93 lsl r0, r0, #0x2 ldr r0, [r5, r0] ldrb r0, [r0, #0x13] cmp r4, r0 blt _0207B5EC _0207B5E6: mov r0, #0x0 mvn r0, r0 pop {r3-r7, pc} _0207B5EC: bl FUN_020690C8 mov r1, #0x93 lsl r1, r1, #0x2 ldr r1, [r5, r1] add r7, r4, #0x0 ldr r6, [r1, #0x0] mul r7, r0 add r0, r6, r7 mov r1, #0x5 mov r2, #0x0 bl FUN_020672BC cmp r0, #0x0 beq _0207B5D0 add r0, r6, r7 mov r1, #0x4c mov r2, #0x0 bl FUN_020672BC cmp r0, #0x0 beq _0207B622 add r0, r5, #0x0 bl FUN_0207B4D4 cmp r0, #0x1 bne _0207B5D0 _0207B622: add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0207B628 FUN_0207B628: ; 0x0207B628 push {r4, lr} mov r1, #0x93 lsl r1, r1, #0x2 ldr r4, [r0, r1] ldrb r0, [r4, #0x11] cmp r0, #0x0 beq _0207B640 cmp r0, #0x1 beq _0207B64E cmp r0, #0x2 beq _0207B658 b _0207B666 _0207B640: bl FUN_020690C4 ldrb r1, [r4, #0x14] ldr r2, [r4, #0x0] mul r0, r1 add r0, r2, r0 pop {r4, pc} _0207B64E: ldrb r1, [r4, #0x14] ldr r0, [r4, #0x0] bl FUN_0206B9B0 pop {r4, pc} _0207B658: bl FUN_020690C8 ldrb r1, [r4, #0x14] ldr r2, [r4, #0x0] mul r0, r1 add r0, r2, r0 pop {r4, pc} _0207B666: mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_0207B66C FUN_0207B66C: ; 0x0207B66C push {r4, lr} ldr r1, _0207B774 ; =0x0000068E add r4, r0, #0x0 ldrb r1, [r4, r1] cmp r1, #0x0 beq _0207B682 cmp r1, #0x1 beq _0207B6E2 cmp r1, #0x2 beq _0207B70E b _0207B76E _0207B682: ldr r0, [r4, #0x0] mov r1, #0x2 mov r2, #0x0 mov r3, #0x88 bl FUN_0201AEE4 ldr r0, [r4, #0x0] mov r1, #0x2 mov r2, #0x3 mov r3, #0x0 bl FUN_0201AEE4 add r0, r4, #0x0 mov r1, #0x0 bl FUN_0207C6F0 mov r0, #0x85 lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_0201958C add r0, r4, #0x0 add r0, #0x64 bl FUN_0201958C mov r0, #0x81 lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_0201958C mov r0, #0x8d lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_0201958C add r0, r4, #0x0 mov r1, #0x0 bl FUN_0207CFAC ldr r1, _0207B778 ; =0x0000068D mov r0, #0xf ldrb r2, [r4, r1] bic r2, r0 strb r2, [r4, r1] mov r2, #0x1 add r0, r1, #0x1 strb r2, [r4, r0] b _0207B76E _0207B6E2: ldr r0, [r4, #0x0] mov r1, #0x2 bl FUN_02017B48 cmp r0, #0x40 ldr r0, [r4, #0x0] bgt _0207B702 mov r2, #0x0 mov r1, #0x2 add r3, r2, #0x0 bl FUN_0201AEE4 ldr r0, _0207B774 ; =0x0000068E mov r1, #0x2 strb r1, [r4, r0] b _0207B76E _0207B702: mov r1, #0x2 add r2, r1, #0x0 mov r3, #0x40 bl FUN_0201AEE4 b _0207B76E _0207B70E: bl FUN_0207ECDC mov r0, #0x93 lsl r0, r0, #0x2 ldr r0, [r4, r0] ldrb r0, [r0, #0x12] cmp r0, #0x1 beq _0207B732 add r0, r4, #0x0 mov r1, #0x98 bl FUN_0207D924 mov r1, #0x8d lsl r1, r1, #0x2 add r0, r4, #0x0 add r1, r4, r1 bl FUN_0207CFAC _0207B732: add r0, r4, #0x0 bl FUN_0207B8D8 ldr r0, _0207B77C ; =0x00000434 mov r1, #0x1 ldr r0, [r4, r0] bl FUN_0200C63C add r0, r4, #0x0 bl FUN_0207D06C mov r0, #0x26 lsl r0, r0, #0x4 ldrb r1, [r4, r0] add r0, r0, #0x1 ldrb r0, [r4, r0] cmp r1, r0 beq _0207B760 ldr r0, _0207B780 ; =0x00000438 mov r1, #0x1 ldr r0, [r4, r0] bl FUN_0200C63C _0207B760: ldr r0, _0207B784 ; =0x0000042C mov r1, #0x1 ldr r0, [r4, r0] bl FUN_020200A0 mov r0, #0x1 pop {r4, pc} _0207B76E: mov r0, #0x0 pop {r4, pc} nop _0207B774: .word 0x0000068E _0207B778: .word 0x0000068D _0207B77C: .word 0x00000434 _0207B780: .word 0x00000438 _0207B784: .word 0x0000042C thumb_func_start FUN_0207B788 FUN_0207B788: ; 0x0207B788 push {r4, lr} add r4, r0, #0x0 ldr r0, _0207B864 ; =0x0000068E ldrb r0, [r4, r0] cmp r0, #0x0 beq _0207B79E cmp r0, #0x1 beq _0207B7F8 cmp r0, #0x2 beq _0207B824 b _0207B860 _0207B79E: ldr r0, _0207B868 ; =0x00000434 mov r1, #0x0 ldr r0, [r4, r0] bl FUN_0200C63C ldr r0, _0207B86C ; =0x00000438 mov r1, #0x0 ldr r0, [r4, r0] bl FUN_0200C63C mov r0, #0x45 lsl r0, r0, #0x4 ldr r0, [r4, r0] mov r1, #0x0 bl FUN_0200C63C ldr r0, _0207B870 ; =0x00000454 mov r1, #0x0 ldr r0, [r4, r0] bl FUN_0200C63C ldr r0, _0207B874 ; =0x0000042C mov r1, #0x0 ldr r0, [r4, r0] bl FUN_020200A0 mov r0, #0x8d lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_0201958C add r0, r4, #0x0 mov r1, #0x0 bl FUN_0207CFAC add r0, r4, #0x0 bl FUN_0207ED18 add r0, r4, #0x0 bl FUN_0207EC94 ldr r0, _0207B864 ; =0x0000068E mov r1, #0x1 strb r1, [r4, r0] b _0207B860 _0207B7F8: ldr r0, [r4, #0x0] mov r1, #0x2 bl FUN_02017B48 cmp r0, #0x80 ldr r0, [r4, #0x0] blt _0207B818 mov r1, #0x2 mov r2, #0x0 mov r3, #0x88 bl FUN_0201AEE4 ldr r0, _0207B864 ; =0x0000068E mov r1, #0x2 strb r1, [r4, r0] b _0207B860 _0207B818: mov r1, #0x2 mov r2, #0x1 mov r3, #0x40 bl FUN_0201AEE4 b _0207B860 _0207B824: mov r0, #0x85 lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_02019220 add r0, r4, #0x0 add r0, #0x64 bl FUN_02019220 mov r0, #0x81 lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_02019220 add r0, r4, #0x0 mov r1, #0x81 bl FUN_0207D924 add r0, r4, #0x0 mov r1, #0x1 bl FUN_0207C6F0 mov r1, #0x8d lsl r1, r1, #0x2 add r0, r4, #0x0 add r1, r4, r1 bl FUN_0207CFAC mov r0, #0x1 pop {r4, pc} _0207B860: mov r0, #0x0 pop {r4, pc} .balign 4 _0207B864: .word 0x0000068E _0207B868: .word 0x00000434 _0207B86C: .word 0x00000438 _0207B870: .word 0x00000454 _0207B874: .word 0x0000042C thumb_func_start FUN_0207B878 FUN_0207B878: ; 0x0207B878 push {r4-r7} add r5, r0, #0x0 ldr r0, _0207B8D4 ; =0x0000068D mov r6, #0xa1 ldrb r0, [r5, r0] mov r2, #0x4 lsl r6, r6, #0x2 lsl r0, r0, #0x1c lsr r4, r0, #0x1c add r3, r4, #0x0 mov r0, #0x0 _0207B88E: add r3, r3, r1 lsl r3, r3, #0x18 asr r3, r3, #0x18 bpl _0207B89A add r3, r2, #0x0 b _0207B8A0 _0207B89A: cmp r3, #0x5 bne _0207B8A0 add r3, r0, #0x0 _0207B8A0: lsl r7, r3, #0x1 add r7, r5, r7 ldrh r7, [r7, r6] cmp r7, #0x0 bne _0207B8AE cmp r3, #0x4 bne _0207B88E _0207B8AE: cmp r3, r4 beq _0207B8CC ldr r2, _0207B8D4 ; =0x0000068D mov r1, #0xf ldrb r0, [r5, r2] bic r0, r1 lsl r1, r3, #0x18 lsr r3, r1, #0x18 mov r1, #0xf and r1, r3 orr r0, r1 strb r0, [r5, r2] mov r0, #0x1 pop {r4-r7} bx lr _0207B8CC: mov r0, #0x0 pop {r4-r7} bx lr nop _0207B8D4: .word 0x0000068D thumb_func_start FUN_0207B8D8 FUN_0207B8D8: ; 0x0207B8D8 push {r4, lr} add r4, r0, #0x0 bl FUN_0207CBC0 ldr r2, _0207B95C ; =0x0000068D ldrb r0, [r4, r2] lsl r0, r0, #0x1c lsr r1, r0, #0x1c cmp r1, #0x4 bne _0207B930 mov r0, #0x93 lsl r0, r0, #0x2 ldr r0, [r4, r0] ldrh r1, [r0, #0x18] cmp r1, #0x0 beq _0207B910 sub r0, r2, #0x1 ldrsb r0, [r4, r0] cmp r0, #0x3 bne _0207B908 add r0, r4, #0x0 bl FUN_0207B960 pop {r4, pc} _0207B908: add r0, r4, #0x0 bl FUN_0207B99C pop {r4, pc} _0207B910: sub r0, r2, #0x1 ldrsb r0, [r4, r0] cmp r0, #0x3 bne _0207B924 mov r1, #0x0 add r0, r4, #0x0 mvn r1, r1 bl FUN_0207B960 pop {r4, pc} _0207B924: mov r1, #0x0 add r0, r4, #0x0 mvn r1, r1 bl FUN_0207B99C pop {r4, pc} _0207B930: sub r0, r2, #0x1 ldrsb r0, [r4, r0] cmp r0, #0x3 bne _0207B94A lsl r1, r1, #0x1 add r2, r4, r1 mov r1, #0xa1 lsl r1, r1, #0x2 ldrh r1, [r2, r1] add r0, r4, #0x0 bl FUN_0207B960 pop {r4, pc} _0207B94A: lsl r1, r1, #0x1 add r2, r4, r1 mov r1, #0xa1 lsl r1, r1, #0x2 ldrh r1, [r2, r1] add r0, r4, #0x0 bl FUN_0207B99C pop {r4, pc} .balign 4 _0207B95C: .word 0x0000068D thumb_func_start FUN_0207B960 FUN_0207B960: ; 0x0207B960 push {r3-r5, lr} mov r2, #0x0 add r4, r1, #0x0 mvn r2, r2 add r5, r0, #0x0 cmp r4, r2 bne _0207B980 bl FUN_0207EC94 mov r0, #0x45 lsl r0, r0, #0x4 ldr r0, [r5, r0] mov r1, #0x0 bl FUN_0200C63C pop {r3-r5, pc} _0207B980: bl FUN_0207EB64 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0207CB70 mov r0, #0x45 lsl r0, r0, #0x4 ldr r0, [r5, r0] mov r1, #0x1 bl FUN_0200C63C pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0207B99C FUN_0207B99C: ; 0x0207B99C push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_0207BD84 mov r0, #0x0 mvn r0, r0 cmp r4, r0 bne _0207B9B6 add r0, r5, #0x0 bl FUN_0207EEB0 pop {r3-r5, pc} _0207B9B6: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0207EE2C pop {r3-r5, pc} thumb_func_start FUN_0207B9C0 FUN_0207B9C0: ; 0x0207B9C0 push {r3-r7, lr} add r4, r0, #0x0 bl FUN_0207B628 mov r1, #0x93 lsl r1, r1, #0x2 ldr r1, [r4, r1] ldrb r1, [r1, #0x11] cmp r1, #0x2 ldr r1, _0207BA70 ; =0x0000068D bne _0207B9E6 ldrb r2, [r4, r1] lsl r1, r2, #0x1c lsl r2, r2, #0x18 lsr r1, r1, #0x1c lsr r2, r2, #0x1c bl FUN_020698E8 b _0207B9F4 _0207B9E6: ldrb r2, [r4, r1] lsl r1, r2, #0x1c lsl r2, r2, #0x18 lsr r1, r1, #0x1c lsr r2, r2, #0x1c bl FUN_020698E0 _0207B9F4: ldr r0, _0207BA70 ; =0x0000068D mov r1, #0xa1 ldrb r6, [r4, r0] lsl r1, r1, #0x2 add r5, r4, r1 lsl r2, r6, #0x1c lsl r6, r6, #0x18 lsr r6, r6, #0x1c lsl r6, r6, #0x1 lsr r3, r2, #0x1b add r6, r4, r6 ldrh r2, [r5, r3] ldrh r6, [r6, r1] strh r6, [r5, r3] ldrb r3, [r4, r0] lsl r3, r3, #0x18 lsr r3, r3, #0x1c lsl r3, r3, #0x1 add r3, r4, r3 strh r2, [r3, r1] add r2, r1, #0x0 add r2, #0x8 ldrb r6, [r4, r0] add r5, r4, r2 lsl r2, r6, #0x1c lsl r6, r6, #0x18 lsr r6, r6, #0x1c add r7, r4, r6 add r6, r1, #0x0 lsr r3, r2, #0x1c add r6, #0x8 ldrb r2, [r5, r3] ldrb r6, [r7, r6] strb r6, [r5, r3] ldrb r3, [r4, r0] lsl r3, r3, #0x18 lsr r3, r3, #0x1c add r5, r4, r3 add r3, r1, #0x0 add r3, #0x8 strb r2, [r5, r3] add r2, r1, #0x0 add r2, #0xc ldrb r6, [r4, r0] add r5, r4, r2 lsl r2, r6, #0x1c lsl r6, r6, #0x18 lsr r6, r6, #0x1c add r7, r4, r6 add r6, r1, #0x0 lsr r3, r2, #0x1c add r6, #0xc ldrb r2, [r5, r3] ldrb r6, [r7, r6] add r1, #0xc strb r6, [r5, r3] ldrb r0, [r4, r0] lsl r0, r0, #0x18 lsr r0, r0, #0x1c add r0, r4, r0 strb r2, [r0, r1] pop {r3-r7, pc} .balign 4 _0207BA70: .word 0x0000068D thumb_func_start FUN_0207BA74 FUN_0207BA74: ; 0x0207BA74 push {r4, lr} add r4, r0, #0x0 mov r0, #0x85 lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_0201958C add r0, r4, #0x0 add r0, #0x64 bl FUN_0201958C mov r0, #0x81 lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_0201958C mov r2, #0x0 ldr r0, [r4, #0x0] mov r1, #0x2 add r3, r2, #0x0 bl FUN_0201AEE4 add r0, r4, #0x0 bl FUN_0207ECDC add r0, r4, #0x0 bl FUN_0207B8D8 ldr r0, _0207BAE0 ; =0x00000434 mov r1, #0x1 ldr r0, [r4, r0] bl FUN_0200C63C add r0, r4, #0x0 bl FUN_0207D06C mov r0, #0x26 lsl r0, r0, #0x4 ldrb r1, [r4, r0] add r0, r0, #0x1 ldrb r0, [r4, r0] cmp r1, r0 beq _0207BAD4 ldr r0, _0207BAE4 ; =0x00000438 mov r1, #0x1 ldr r0, [r4, r0] bl FUN_0200C63C _0207BAD4: ldr r0, _0207BAE8 ; =0x0000042C mov r1, #0x1 ldr r0, [r4, r0] bl FUN_020200A0 pop {r4, pc} .balign 4 _0207BAE0: .word 0x00000434 _0207BAE4: .word 0x00000438 _0207BAE8: .word 0x0000042C thumb_func_start FUN_0207BAEC FUN_0207BAEC: ; 0x0207BAEC push {r4, lr} ldr r1, _0207BBE4 ; =0x0000068E add r4, r0, #0x0 ldrb r1, [r4, r1] cmp r1, #0x0 beq _0207BB02 cmp r1, #0x1 beq _0207BB6E cmp r1, #0x2 beq _0207BB9A b _0207BBDE _0207BB02: ldr r0, [r4, #0x0] mov r1, #0x2 mov r2, #0x0 mov r3, #0x88 bl FUN_0201AEE4 mov r2, #0x3 add r3, r2, #0x0 ldr r0, [r4, #0x0] mov r1, #0x2 add r3, #0xfd bl FUN_0201AEE4 mov r1, #0x0 add r0, r4, #0x0 mvn r1, r1 bl FUN_0207BD84 add r0, r4, #0x0 mov r1, #0x0 bl FUN_0207C6F0 mov r0, #0x85 lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_0201958C add r0, r4, #0x0 add r0, #0x64 bl FUN_0201958C mov r0, #0x81 lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_0201958C mov r0, #0x8d lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_0201958C add r0, r4, #0x0 mov r1, #0x0 bl FUN_0207CFAC ldr r1, _0207BBE8 ; =0x0000068D mov r0, #0xf ldrb r2, [r4, r1] bic r2, r0 strb r2, [r4, r1] mov r2, #0x1 add r0, r1, #0x1 strb r2, [r4, r0] b _0207BBDE _0207BB6E: ldr r0, [r4, #0x0] mov r1, #0x2 bl FUN_02017B48 cmp r0, #0x40 ldr r0, [r4, #0x0] bgt _0207BB8E mov r2, #0x0 mov r1, #0x2 add r3, r2, #0x0 bl FUN_0201AEE4 ldr r0, _0207BBE4 ; =0x0000068E mov r1, #0x2 strb r1, [r4, r0] b _0207BBDE _0207BB8E: mov r1, #0x2 add r2, r1, #0x0 mov r3, #0x40 bl FUN_0201AEE4 b _0207BBDE _0207BB9A: bl FUN_0207ECDC mov r0, #0x93 lsl r0, r0, #0x2 ldr r0, [r4, r0] ldrb r0, [r0, #0x12] cmp r0, #0x1 beq _0207BBBE add r0, r4, #0x0 mov r1, #0x98 bl FUN_0207D924 mov r1, #0x8d lsl r1, r1, #0x2 add r0, r4, #0x0 add r1, r4, r1 bl FUN_0207CFAC _0207BBBE: add r0, r4, #0x0 bl FUN_0207B8D8 add r0, r4, #0x0 bl FUN_0207D06C add r0, r4, #0x0 bl FUN_0207D10C ldr r0, _0207BBEC ; =0x0000042C mov r1, #0x1 ldr r0, [r4, r0] bl FUN_020200A0 mov r0, #0x1 pop {r4, pc} _0207BBDE: mov r0, #0x0 pop {r4, pc} nop _0207BBE4: .word 0x0000068E _0207BBE8: .word 0x0000068D _0207BBEC: .word 0x0000042C thumb_func_start FUN_0207BBF0 FUN_0207BBF0: ; 0x0207BBF0 push {r4, lr} ldr r1, _0207BCBC ; =0x0000068E add r4, r0, #0x0 ldrb r1, [r4, r1] cmp r1, #0x0 beq _0207BC06 cmp r1, #0x1 beq _0207BC4E cmp r1, #0x2 beq _0207BC7A b _0207BCB6 _0207BC06: bl FUN_0207D22C ldr r0, _0207BCC0 ; =0x00000454 mov r1, #0x0 ldr r0, [r4, r0] bl FUN_0200C63C mov r1, #0x0 add r0, r4, #0x0 mvn r1, r1 bl FUN_0207BD84 ldr r0, _0207BCC4 ; =0x0000042C mov r1, #0x0 ldr r0, [r4, r0] bl FUN_020200A0 mov r0, #0x8d lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_0201958C add r0, r4, #0x0 mov r1, #0x0 bl FUN_0207CFAC add r0, r4, #0x0 bl FUN_0207ED18 add r0, r4, #0x0 bl FUN_0207EEB0 ldr r0, _0207BCBC ; =0x0000068E mov r1, #0x1 strb r1, [r4, r0] b _0207BCB6 _0207BC4E: ldr r0, [r4, #0x0] mov r1, #0x2 bl FUN_02017B48 cmp r0, #0x80 ldr r0, [r4, #0x0] blt _0207BC6E mov r1, #0x2 mov r2, #0x0 mov r3, #0x88 bl FUN_0201AEE4 ldr r0, _0207BCBC ; =0x0000068E mov r1, #0x2 strb r1, [r4, r0] b _0207BCB6 _0207BC6E: mov r1, #0x2 mov r2, #0x1 mov r3, #0x40 bl FUN_0201AEE4 b _0207BCB6 _0207BC7A: mov r0, #0x85 lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_02019220 add r0, r4, #0x0 add r0, #0x64 bl FUN_02019220 mov r0, #0x81 lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_02019220 add r0, r4, #0x0 mov r1, #0x9e bl FUN_0207D924 add r0, r4, #0x0 mov r1, #0x1 bl FUN_0207C6F0 mov r1, #0x8d lsl r1, r1, #0x2 add r0, r4, #0x0 add r1, r4, r1 bl FUN_0207CFAC mov r0, #0x1 pop {r4, pc} _0207BCB6: mov r0, #0x0 pop {r4, pc} nop _0207BCBC: .word 0x0000068E _0207BCC0: .word 0x00000454 _0207BCC4: .word 0x0000042C thumb_func_start FUN_0207BCC8 FUN_0207BCC8: ; 0x0207BCC8 push {r3-r7, lr} sub sp, #0x10 add r5, r0, #0x0 mov r0, #0x2f str r0, [sp, #0x0] mov r0, #0x1 lsl r6, r2, #0x1 add r4, r1, #0x0 str r0, [sp, #0x4] add r7, r6, #0x2 str r0, [sp, #0x8] mov r0, #0x10 str r0, [sp, #0xc] lsl r3, r7, #0x18 ldr r0, [r5, #0x0] mov r1, #0x2 add r2, r4, #0x0 lsr r3, r3, #0x18 bl FUN_02018540 mov r0, #0x2f str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] add r6, r6, #0x3 str r0, [sp, #0x8] mov r0, #0x10 add r2, r4, #0x1 str r0, [sp, #0xc] lsl r2, r2, #0x10 lsl r3, r6, #0x18 ldr r0, [r5, #0x0] mov r1, #0x2 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 mov r0, #0x30 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] add r2, r4, #0x0 str r0, [sp, #0x8] mov r0, #0x10 add r2, #0x20 str r0, [sp, #0xc] lsl r2, r2, #0x10 lsl r3, r7, #0x18 ldr r0, [r5, #0x0] mov r1, #0x2 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 mov r0, #0x30 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] str r0, [sp, #0x8] mov r0, #0x10 add r4, #0x21 str r0, [sp, #0xc] lsl r2, r4, #0x10 lsl r3, r6, #0x18 ldr r0, [r5, #0x0] mov r1, #0x2 lsr r2, r2, #0x10 lsr r3, r3, #0x18 bl FUN_02018540 add sp, #0x10 pop {r3-r7, pc} thumb_func_start FUN_0207BD58 FUN_0207BD58: ; 0x0207BD58 push {r4-r6, lr} ldr r6, _0207BD80 ; =0x0000012E add r5, r0, #0x0 mov r4, #0x0 _0207BD60: lsl r2, r4, #0x18 add r0, r5, #0x0 add r1, r6, #0x0 lsr r2, r2, #0x18 bl FUN_0207BCC8 add r0, r4, #0x1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, #0x6 blo _0207BD60 ldr r0, [r5, #0x0] mov r1, #0x2 bl FUN_0201AC68 pop {r4-r6, pc} .balign 4 _0207BD80: .word 0x0000012E thumb_func_start FUN_0207BD84 FUN_0207BD84: ; 0x0207BD84 push {r3-r7, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_0207BD58 mov r0, #0x0 mvn r0, r0 cmp r4, r0 beq _0207BDCC add r0, r4, #0x0 mov r1, #0xa bl FUN_0206AB18 bl FUN_02083114 mov r1, #0xa blx _s32_div_f lsl r0, r0, #0x18 asr r6, r0, #0x18 mov r4, #0x0 cmp r6, #0x0 ble _0207BDCC mov r7, #0x4b lsl r7, r7, #0x2 _0207BDB6: lsl r2, r4, #0x18 add r0, r5, #0x0 add r1, r7, #0x0 lsr r2, r2, #0x18 bl FUN_0207BCC8 add r0, r4, #0x1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, r6 blt _0207BDB6 _0207BDCC: ldr r0, [r5, #0x0] mov r1, #0x2 bl FUN_0201AC68 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0207BDD8 FUN_0207BDD8: ; 0x0207BDD8 push {r3, lr} ldr r1, _0207BDF0 ; =0x0000068C ldrsb r1, [r0, r1] cmp r1, #0x3 bne _0207BDE8 bl FUN_0207EC94 pop {r3, pc} _0207BDE8: bl FUN_0207EEB0 pop {r3, pc} nop _0207BDF0: .word 0x0000068C thumb_func_start FUN_0207BDF4 FUN_0207BDF4: ; 0x0207BDF4 push {r4, lr} add r4, r0, #0x0 bl FUN_0207ECDC add r0, r4, #0x0 bl FUN_0207B8D8 add r0, r4, #0x0 bl FUN_0207D06C ldr r0, _0207BE5C ; =0x0000068C ldrsb r0, [r4, r0] cmp r0, #0x3 bne _0207BE46 add r0, r4, #0x0 bl FUN_0207D22C ldr r0, _0207BE60 ; =0x00000434 mov r1, #0x1 ldr r0, [r4, r0] bl FUN_0200C63C mov r0, #0x26 lsl r0, r0, #0x4 ldrb r1, [r4, r0] add r0, r0, #0x1 ldrb r0, [r4, r0] cmp r1, r0 beq _0207BE38 ldr r0, _0207BE64 ; =0x00000438 mov r1, #0x1 ldr r0, [r4, r0] bl FUN_0200C63C _0207BE38: ldr r0, [r4, #0x0] mov r1, #0x2 mov r2, #0x3 mov r3, #0x0 bl FUN_0201AEE4 pop {r4, pc} _0207BE46: add r0, r4, #0x0 bl FUN_0207D10C mov r2, #0x3 add r3, r2, #0x0 ldr r0, [r4, #0x0] mov r1, #0x2 add r3, #0xfd bl FUN_0201AEE4 pop {r4, pc} .balign 4 _0207BE5C: .word 0x0000068C _0207BE60: .word 0x00000434 _0207BE64: .word 0x00000438 thumb_func_start FUN_0207BE68 FUN_0207BE68: ; 0x0207BE68 push {r4, lr} ldr r1, _0207BF78 ; =0x0000068E add r4, r0, #0x0 ldrb r1, [r4, r1] cmp r1, #0x0 beq _0207BE7E cmp r1, #0x1 beq _0207BEEA cmp r1, #0x2 beq _0207BF16 b _0207BF74 _0207BE7E: mov r1, #0x2 add r3, r1, #0x0 ldr r0, [r4, #0x0] mov r2, #0x0 add r3, #0xfe bl FUN_0201AEE4 ldr r0, [r4, #0x0] mov r1, #0x2 mov r2, #0x3 mov r3, #0x0 bl FUN_0201AEE4 add r0, r4, #0x0 mov r1, #0x0 bl FUN_0207C6F0 add r0, r4, #0x0 add r0, #0x64 bl FUN_0201958C mov r0, #0x81 lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_0201958C mov r0, #0x79 lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_0201958C mov r0, #0x8d lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_0201958C mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_0201958C add r0, r4, #0x0 mov r1, #0x0 bl FUN_0207CFAC ldr r1, _0207BF7C ; =0x00000697 mov r2, #0x0 strb r2, [r4, r1] add r0, r1, #0x1 strb r2, [r4, r0] mov r0, #0x1 sub r1, #0x9 strb r0, [r4, r1] b _0207BF74 _0207BEEA: ldr r0, [r4, #0x0] mov r1, #0x2 bl FUN_02017B54 cmp r0, #0x30 ldr r0, [r4, #0x0] blt _0207BF0A mov r1, #0x2 mov r2, #0x3 mov r3, #0x38 bl FUN_0201AEE4 ldr r0, _0207BF78 ; =0x0000068E mov r1, #0x2 strb r1, [r4, r0] b _0207BF74 _0207BF0A: mov r1, #0x2 mov r2, #0x4 mov r3, #0x10 bl FUN_0201AEE4 b _0207BF74 _0207BF16: mov r1, #0xb5 bl FUN_0207D924 mov r1, #0x8d lsl r1, r1, #0x2 add r0, r4, #0x0 add r1, r4, r1 bl FUN_0207CFAC ldr r0, _0207BF80 ; =0x00000514 mov r1, #0x1 ldr r0, [r4, r0] bl FUN_020200A0 mov r0, #0x52 lsl r0, r0, #0x4 ldr r0, [r4, r0] mov r1, #0x1 bl FUN_020200A0 ldr r0, _0207BF84 ; =0x00000504 mov r1, #0x0 ldr r0, [r4, r0] bl FUN_020200A0 ldr r0, _0207BF88 ; =0x00000508 mov r1, #0x0 ldr r0, [r4, r0] bl FUN_020200A0 ldr r0, _0207BF8C ; =0x0000050C mov r1, #0x0 ldr r0, [r4, r0] bl FUN_020200A0 mov r0, #0x51 lsl r0, r0, #0x4 ldr r0, [r4, r0] mov r1, #0x0 bl FUN_020200A0 add r0, r4, #0x0 mov r1, #0x0 bl FUN_0207C07C mov r0, #0x1 pop {r4, pc} _0207BF74: mov r0, #0x0 pop {r4, pc} .balign 4 _0207BF78: .word 0x0000068E _0207BF7C: .word 0x00000697 _0207BF80: .word 0x00000514 _0207BF84: .word 0x00000504 _0207BF88: .word 0x00000508 _0207BF8C: .word 0x0000050C thumb_func_start FUN_0207BF90 FUN_0207BF90: ; 0x0207BF90 push {r4, lr} ldr r1, _0207C078 ; =0x0000068E add r4, r0, #0x0 ldrb r0, [r4, r1] cmp r0, #0x0 beq _0207BFA6 cmp r0, #0x1 beq _0207BFF6 cmp r0, #0x2 beq _0207C022 b _0207C072 _0207BFA6: add r0, r1, #0x0 mov r2, #0x0 add r0, #0x9 strb r2, [r4, r0] add r1, #0xa mov r0, #0x91 strb r2, [r4, r1] lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x10 bl FUN_0201958C mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x20 bl FUN_0201958C mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x30 bl FUN_0201958C mov r0, #0x8d lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_0201958C add r0, r4, #0x0 mov r1, #0x0 bl FUN_0207CFAC add r0, r4, #0x0 bl FUN_0207D2C8 ldr r0, _0207C078 ; =0x0000068E mov r1, #0x1 strb r1, [r4, r0] b _0207C072 _0207BFF6: ldr r0, [r4, #0x0] mov r1, #0x2 bl FUN_02017B54 cmp r0, #0x8 ldr r0, [r4, #0x0] bgt _0207C016 mov r1, #0x2 mov r2, #0x3 mov r3, #0x0 bl FUN_0201AEE4 ldr r0, _0207C078 ; =0x0000068E mov r1, #0x2 strb r1, [r4, r0] b _0207C072 _0207C016: mov r1, #0x2 mov r2, #0x5 mov r3, #0x10 bl FUN_0201AEE4 b _0207C072 _0207C022: add r0, r4, #0x0 add r0, #0x64 bl FUN_02019220 mov r0, #0x81 lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_02019220 mov r0, #0x79 lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_02019220 mov r0, #0x8d lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_02019220 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02019220 add r0, r4, #0x0 mov r1, #0xb4 bl FUN_0207D924 add r0, r4, #0x0 mov r1, #0x1 bl FUN_0207C6F0 mov r1, #0x8d lsl r1, r1, #0x2 add r0, r4, #0x0 add r1, r4, r1 bl FUN_0207CFAC mov r0, #0x1 pop {r4, pc} _0207C072: mov r0, #0x0 pop {r4, pc} nop _0207C078: .word 0x0000068E thumb_func_start FUN_0207C07C FUN_0207C07C: ; 0x0207C07C push {r4-r6, lr} ldr r2, _0207C1D0 ; =0x00000697 add r5, r0, #0x0 add r3, r2, #0x1 ldrb r0, [r5, r2] ldrb r4, [r5, r3] cmp r1, #0x1 bne _0207C0A8 mov r1, #0x3 and r1, r0 cmp r1, #0x3 beq _0207C0B6 lsl r1, r4, #0x2 add r1, r0, r1 add r3, r1, #0x1 add r1, r2, #0x2 ldrb r1, [r5, r1] cmp r3, r1 bge _0207C14A add r1, r0, #0x1 strb r1, [r5, r2] b _0207C14A _0207C0A8: mov r3, #0x0 mvn r3, r3 cmp r1, r3 bne _0207C0BE mov r1, #0x3 tst r1, r0 bne _0207C0B8 _0207C0B6: b _0207C1CE _0207C0B8: sub r1, r0, #0x1 strb r1, [r5, r2] b _0207C14A _0207C0BE: cmp r1, #0x4 bne _0207C12C cmp r0, #0x4 bhs _0207C0F2 add r1, r2, #0x2 ldrb r3, [r5, r1] lsl r1, r4, #0x2 add r1, r0, r1 add r1, r1, #0x4 cmp r1, r3 blt _0207C0EC cmp r3, #0x4 bls _0207C14A lsr r1, r3, #0x1f lsl r6, r3, #0x1e sub r6, r6, r1 mov r3, #0x1e ror r6, r3 add r1, r1, r6 beq _0207C14A add r1, r1, #0x3 strb r1, [r5, r2] b _0207C14A _0207C0EC: add r1, r0, #0x4 strb r1, [r5, r2] b _0207C14A _0207C0F2: add r1, r2, #0x2 ldrb r1, [r5, r1] lsl r3, r4, #0x2 add r3, #0x8 cmp r3, r1 bge _0207C14A add r1, r2, #0x1 ldrb r1, [r5, r1] add r6, r2, #0x1 add r3, r1, #0x1 add r1, r2, #0x1 strb r3, [r5, r1] add r1, r2, #0x2 ldrb r6, [r5, r6] ldrb r3, [r5, r1] ldrb r1, [r5, r2] lsl r6, r6, #0x2 add r1, r1, r6 cmp r1, r3 blt _0207C14A lsr r1, r3, #0x1f lsl r6, r3, #0x1e sub r6, r6, r1 mov r3, #0x1e ror r6, r3 add r1, r1, r6 add r1, r1, #0x3 strb r1, [r5, r2] b _0207C14A _0207C12C: sub r3, r3, #0x3 cmp r1, r3 bne _0207C14A cmp r0, #0x4 blo _0207C13C sub r1, r0, #0x4 strb r1, [r5, r2] b _0207C14A _0207C13C: cmp r4, #0x0 beq _0207C14A add r1, r2, #0x1 ldrb r1, [r5, r1] sub r3, r1, #0x1 add r1, r2, #0x1 strb r3, [r5, r1] _0207C14A: ldr r1, _0207C1D0 ; =0x00000697 ldrb r2, [r5, r1] cmp r0, r2 bne _0207C15A add r0, r1, #0x1 ldrb r0, [r5, r0] cmp r4, r0 beq _0207C160 _0207C15A: ldr r0, _0207C1D4 ; =0x000005DC bl FUN_020054C8 _0207C160: ldr r1, _0207C1D0 ; =0x00000697 add r0, r5, #0x0 ldrb r1, [r5, r1] bl FUN_0207C1E8 ldr r1, _0207C1D8 ; =0x0000069A strb r0, [r5, r1] add r0, r5, #0x0 bl FUN_0207D3C4 ldr r0, _0207C1DC ; =0x00000698 ldrb r0, [r5, r0] cmp r4, r0 beq _0207C182 add r0, r5, #0x0 bl FUN_0207D364 _0207C182: add r0, r5, #0x0 bl FUN_0207E9A0 add r0, r5, #0x0 bl FUN_0207E840 ldr r0, _0207C1DC ; =0x00000698 ldrb r0, [r5, r0] cmp r0, #0x0 ldr r0, _0207C1E0 ; =0x00000518 beq _0207C1A2 ldr r0, [r5, r0] mov r1, #0x1 bl FUN_020200A0 b _0207C1AA _0207C1A2: ldr r0, [r5, r0] mov r1, #0x0 bl FUN_020200A0 _0207C1AA: ldr r0, _0207C1DC ; =0x00000698 ldrb r1, [r5, r0] add r0, r0, #0x1 ldrb r0, [r5, r0] lsl r1, r1, #0x2 add r1, #0x8 cmp r1, r0 ldr r0, _0207C1E4 ; =0x0000051C bge _0207C1C6 ldr r0, [r5, r0] mov r1, #0x1 bl FUN_020200A0 pop {r4-r6, pc} _0207C1C6: ldr r0, [r5, r0] mov r1, #0x0 bl FUN_020200A0 _0207C1CE: pop {r4-r6, pc} .balign 4 _0207C1D0: .word 0x00000697 _0207C1D4: .word 0x000005DC _0207C1D8: .word 0x0000069A _0207C1DC: .word 0x00000698 _0207C1E0: .word 0x00000518 _0207C1E4: .word 0x0000051C thumb_func_start FUN_0207C1E8 FUN_0207C1E8: ; 0x0207C1E8 push {r4-r7} ldr r2, _0207C238 ; =0x00000698 mov r6, #0x0 ldrb r2, [r0, r2] add r4, r6, #0x0 lsl r2, r2, #0x2 add r1, r1, r2 lsl r1, r1, #0x18 lsr r5, r1, #0x18 mov r1, #0xa9 mov r2, #0x1 lsl r1, r1, #0x2 _0207C200: mov r3, #0x1f add r7, r4, #0x0 and r7, r3 add r3, r2, #0x0 lsl r3, r7 lsr r7, r4, #0x5 lsl r7, r7, #0x2 add r7, r0, r7 ldr r7, [r7, r1] tst r3, r7 beq _0207C228 cmp r5, r6 bne _0207C222 lsl r0, r4, #0x18 lsr r0, r0, #0x18 pop {r4-r7} bx lr _0207C222: add r3, r6, #0x1 lsl r3, r3, #0x18 lsr r6, r3, #0x18 _0207C228: add r3, r4, #0x1 lsl r3, r3, #0x10 lsr r4, r3, #0x10 cmp r4, #0x50 blo _0207C200 mov r0, #0x0 pop {r4-r7} bx lr .balign 4 _0207C238: .word 0x00000698 thumb_func_start FUN_0207C23C FUN_0207C23C: ; 0x0207C23C push {r4, lr} sub sp, #0x8 ldr r1, _0207C29C ; =0x0000029A add r4, r0, #0x0 ldrb r0, [r4, r1] cmp r0, #0xff bne _0207C28E mov r0, #0x0 sub r1, #0xda mov r2, #0x13 bl FUN_02002EEC mov r0, #0x93 lsl r0, r0, #0x2 ldr r0, [r4, r0] ldr r0, [r0, #0x4] bl FUN_02025084 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] mov r0, #0x13 str r0, [sp, #0x4] ldr r0, [r4, #0x0] ldr r2, _0207C2A0 ; =0x000003E2 mov r1, #0x1 mov r3, #0xd bl FUN_0200CD68 add r0, r4, #0x0 mov r1, #0xff bl FUN_0207EECC mov r0, #0x93 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x1 strb r1, [r0, #0x17] add sp, #0x8 mov r0, #0x11 pop {r4, pc} _0207C28E: sub r1, #0x4e ldr r0, [r4, r1] mov r2, #0x0 strb r2, [r0, #0x17] mov r0, #0x12 add sp, #0x8 pop {r4, pc} .balign 4 _0207C29C: .word 0x0000029A _0207C2A0: .word 0x000003E2 thumb_func_start FUN_0207C2A4 FUN_0207C2A4: ; 0x0207C2A4 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0202398C str r0, [r5, #0x8] add r0, r4, #0x0 bl FUN_020239BC str r0, [r5, #0xc] add r0, r4, #0x0 bl FUN_020239CC strb r0, [r5, #0x10] pop {r3-r5, pc} thumb_func_start FUN_0207C2C4 FUN_0207C2C4: ; 0x0207C2C4 mov r0, #0x40 bx lr thumb_func_start FUN_0207C2C8 FUN_0207C2C8: ; 0x0207C2C8 mov r0, #0x41 bx lr thumb_func_start FUN_0207C2CC FUN_0207C2CC: ; 0x0207C2CC mov r0, #0x3f bx lr thumb_func_start FUN_0207C2D0 FUN_0207C2D0: ; 0x0207C2D0 mov r0, #0x3e bx lr thumb_func_start FUN_0207C2D4 FUN_0207C2D4: ; 0x0207C2D4 push {r3-r5, lr} add r5, r0, #0x0 mov r1, #0x9f mov r2, #0x0 bl FUN_020671BC add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0xa2 mov r2, #0x0 bl FUN_020671BC cmp r0, #0x0 bne _0207C2F4 mov r0, #0x6 pop {r3-r5, pc} _0207C2F4: mov r0, #0x88 tst r0, r4 beq _0207C2FE mov r0, #0x4 pop {r3-r5, pc} _0207C2FE: mov r0, #0x7 add r1, r4, #0x0 tst r1, r0 beq _0207C30A mov r0, #0x3 pop {r3-r5, pc} _0207C30A: mov r1, #0x10 tst r1, r4 beq _0207C314 mov r0, #0x5 pop {r3-r5, pc} _0207C314: mov r1, #0x20 tst r1, r4 beq _0207C31E mov r0, #0x2 pop {r3-r5, pc} _0207C31E: mov r1, #0x40 tst r1, r4 beq _0207C326 mov r0, #0x1 _0207C326: pop {r3-r5, pc} thumb_func_start FUN_0207C328 FUN_0207C328: ; 0x0207C328 push {r3-r7, lr} sub sp, #0x50 add r4, r0, #0x0 mov r0, #0x10 mov r1, #0x1 bl FUN_0201E6E4 mov r0, #0x10 mov r1, #0x1 bl FUN_0201E74C mov r0, #0x20 mov r1, #0x13 bl FUN_0201C24C mov r0, #0x13 bl FUN_0200BB14 mov r1, #0x1 lsl r1, r1, #0xa str r0, [r4, r1] ldr r0, [r4, r1] bl FUN_0200BB34 ldr r7, _0207C3C4 ; =0x00000404 add r2, sp, #0x30 ldr r3, _0207C3C8 ; =0x020FA73C str r0, [r4, r7] ldmia r3!, {r0-r1} add r6, r2, #0x0 stmia r2!, {r0-r1} ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldmia r3!, {r0-r1} ldr r5, _0207C3CC ; =0x020FA70C stmia r2!, {r0-r1} add r3, sp, #0x1c ldmia r5!, {r0-r1} add r2, r3, #0x0 stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r5, #0x0] add r1, r6, #0x0 str r0, [r3, #0x0] sub r0, r7, #0x4 ldr r0, [r4, r0] mov r3, #0x20 bl FUN_0200BB6C sub r1, r7, #0x4 ldr r0, [r4, r1] add r1, r1, #0x4 ldr r1, [r4, r1] mov r2, #0x4d bl FUN_0200BBF0 ldr r5, _0207C3D0 ; =0x020FA720 add r3, sp, #0x0 ldmia r5!, {r0-r1} add r2, r3, #0x0 stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r5, #0x0] sub r1, r7, #0x4 str r0, [r3, #0x0] ldr r0, [r4, r1] add r1, r1, #0x4 ldr r1, [r4, r1] bl FUN_0200BD20 add sp, #0x50 pop {r3-r7, pc} .balign 4 _0207C3C4: .word 0x00000404 _0207C3C8: .word 0x020FA73C _0207C3CC: .word 0x020FA70C _0207C3D0: .word 0x020FA720 thumb_func_start FUN_0207C3D4 FUN_0207C3D4: ; 0x0207C3D4 push {r4, lr} mov r1, #0x1 add r4, r0, #0x0 lsl r1, r1, #0xa ldr r0, [r4, r1] add r1, r1, #0x4 ldr r1, [r4, r1] bl FUN_0200BCE0 mov r0, #0x1 lsl r0, r0, #0xa ldr r0, [r4, r0] bl FUN_0200BD04 pop {r4, pc} .balign 4 thumb_func_start FUN_0207C3F4 FUN_0207C3F4: ; 0x0207C3F4 push {r4, lr} add r4, r0, #0x0 ldr r0, _0207C438 ; =0x0000045C mov r1, #0x1 ldr r0, [r4, r0] lsl r1, r1, #0xc bl FUN_020201E4 mov r0, #0x46 lsl r0, r0, #0x4 mov r1, #0x1 ldr r0, [r4, r0] lsl r1, r1, #0xc bl FUN_020201E4 ldr r0, _0207C43C ; =0x000004AC mov r1, #0x1 ldr r0, [r4, r0] lsl r1, r1, #0xc bl FUN_020201E4 ldr r0, _0207C440 ; =0x00000518 mov r1, #0x1 ldr r0, [r4, r0] lsl r1, r1, #0xc bl FUN_020201E4 ldr r0, _0207C444 ; =0x0000051C mov r1, #0x1 ldr r0, [r4, r0] lsl r1, r1, #0xc bl FUN_020201E4 pop {r4, pc} .balign 4 _0207C438: .word 0x0000045C _0207C43C: .word 0x000004AC _0207C440: .word 0x00000518 _0207C444: .word 0x0000051C thumb_func_start FUN_0207C448 FUN_0207C448: ; 0x0207C448 push {r3-r7, lr} ldr r6, _0207C550 ; =0x020FA784 ldr r7, _0207C554 ; =0x00000408 add r5, r0, #0x0 mov r4, #0x0 _0207C452: mov r0, #0x1 ldr r1, _0207C558 ; =0x00000404 lsl r0, r0, #0xa mov r2, #0x28 mul r2, r4 ldr r0, [r5, r0] ldr r1, [r5, r1] add r2, r6, r2 bl FUN_0200BE38 lsl r1, r4, #0x2 add r1, r5, r1 str r0, [r1, r7] add r0, r4, #0x1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, #0x4d blo _0207C452 add r0, r5, #0x0 bl FUN_0207C7EC ldr r0, _0207C55C ; =0x0000042C mov r1, #0x0 ldr r0, [r5, r0] bl FUN_020200A0 mov r0, #0x43 lsl r0, r0, #0x4 ldr r0, [r5, r0] mov r1, #0x0 bl FUN_020200A0 ldr r0, _0207C560 ; =0x000004AC mov r1, #0x0 ldr r0, [r5, r0] bl FUN_020200A0 mov r0, #0x4b lsl r0, r0, #0x4 ldr r0, [r5, r0] mov r1, #0x0 bl FUN_020200A0 ldr r0, _0207C564 ; =0x000004B4 mov r1, #0x0 ldr r0, [r5, r0] bl FUN_020200A0 ldr r0, _0207C568 ; =0x000004B8 mov r1, #0x0 ldr r0, [r5, r0] bl FUN_020200A0 ldr r0, _0207C56C ; =0x000004BC mov r1, #0x0 ldr r0, [r5, r0] bl FUN_020200A0 mov r0, #0x13 lsl r0, r0, #0x6 ldr r0, [r5, r0] mov r1, #0x0 bl FUN_020200A0 ldr r0, _0207C570 ; =0x000004C4 mov r1, #0x0 ldr r0, [r5, r0] bl FUN_020200A0 ldr r0, _0207C574 ; =0x000004C8 mov r1, #0x0 ldr r0, [r5, r0] bl FUN_020200A0 ldr r0, _0207C578 ; =0x000004CC mov r1, #0x0 ldr r0, [r5, r0] bl FUN_020200A0 mov r0, #0x4d lsl r0, r0, #0x4 ldr r0, [r5, r0] mov r1, #0x0 bl FUN_020200A0 ldr r0, _0207C57C ; =0x000004D4 mov r1, #0x0 ldr r0, [r5, r0] bl FUN_020200A0 ldr r0, _0207C580 ; =0x000004D8 mov r1, #0x0 ldr r0, [r5, r0] bl FUN_020200A0 ldr r0, _0207C584 ; =0x00000524 mov r1, #0x0 ldr r0, [r5, r0] bl FUN_020200A0 ldr r0, _0207C588 ; =0x00000528 mov r1, #0x0 ldr r0, [r5, r0] bl FUN_020200A0 ldr r0, _0207C58C ; =0x0000052C mov r1, #0x0 ldr r0, [r5, r0] bl FUN_020200A0 mov r0, #0x53 lsl r0, r0, #0x4 ldr r0, [r5, r0] mov r1, #0x0 bl FUN_020200A0 ldr r0, _0207C590 ; =0x00000534 mov r1, #0x0 ldr r0, [r5, r0] bl FUN_020200A0 ldr r0, _0207C594 ; =0x00000538 mov r1, #0x0 ldr r0, [r5, r0] bl FUN_020200A0 pop {r3-r7, pc} .balign 4 _0207C550: .word 0x020FA784 _0207C554: .word 0x00000408 _0207C558: .word 0x00000404 _0207C55C: .word 0x0000042C _0207C560: .word 0x000004AC _0207C564: .word 0x000004B4 _0207C568: .word 0x000004B8 _0207C56C: .word 0x000004BC _0207C570: .word 0x000004C4 _0207C574: .word 0x000004C8 _0207C578: .word 0x000004CC _0207C57C: .word 0x000004D4 _0207C580: .word 0x000004D8 _0207C584: .word 0x00000524 _0207C588: .word 0x00000528 _0207C58C: .word 0x0000052C _0207C590: .word 0x00000534 _0207C594: .word 0x00000538 thumb_func_start FUN_0207C598 FUN_0207C598: ; 0x0207C598 push {r4-r6, lr} mov r5, #0x0 add r6, r0, #0x0 add r4, r5, #0x0 _0207C5A0: add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_0207B070 cmp r0, #0x0 beq _0207C5B2 add r0, r5, #0x1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 _0207C5B2: add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #0x8 blo _0207C5A0 sub r0, r5, #0x1 lsl r1, r0, #0x4 add r1, #0x18 lsr r0, r1, #0x1f add r0, r1, r0 asr r1, r0, #0x1 mov r0, #0xbc sub r0, r0, r1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0207C5D4 FUN_0207C5D4: ; 0x0207C5D4 push {r3-r7, lr} sub sp, #0x10 add r7, r0, #0x0 bl FUN_0207C598 str r0, [sp, #0x4] ldr r0, _0207C69C ; =0x00000408 mov r5, #0x0 add r4, r7, r0 ldr r0, [sp, #0x4] str r5, [sp, #0x8] str r0, [sp, #0x0] add r0, #0x18 str r0, [sp, #0x0] _0207C5F0: add r0, r7, #0x0 add r1, r5, #0x0 bl FUN_0207B070 cmp r0, #0x0 bne _0207C608 lsl r0, r5, #0x2 ldr r0, [r4, r0] mov r1, #0x0 bl FUN_020200A0 b _0207C68E _0207C608: lsl r6, r5, #0x2 ldr r0, [r4, r6] bl FUN_020201DC lsl r0, r0, #0x10 lsr r1, r0, #0x10 ldr r0, _0207C6A0 ; =0x0000068C ldrsb r0, [r7, r0] cmp r0, r5 bne _0207C62A cmp r1, #0x8 bhs _0207C636 ldr r0, [r4, r6] add r1, #0x8 bl FUN_02020130 b _0207C636 _0207C62A: cmp r1, #0x8 blo _0207C636 ldr r0, [r4, r6] sub r1, #0x8 bl FUN_02020130 _0207C636: add r1, sp, #0xc ldr r0, [r4, r6] add r1, #0x2 add r2, sp, #0xc bl FUN_0200C75C ldr r0, _0207C6A0 ; =0x0000068C ldrsb r0, [r7, r0] cmp r0, r5 blt _0207C652 ldr r0, [sp, #0x8] lsl r1, r0, #0x4 ldr r0, [sp, #0x4] b _0207C65A _0207C652: ldr r0, [sp, #0x8] sub r0, r0, #0x1 lsl r1, r0, #0x4 ldr r0, [sp, #0x0] _0207C65A: add r0, r0, r1 lsl r0, r0, #0x10 asr r1, r0, #0x10 add r0, sp, #0xc strh r1, [r0, #0x2] lsl r0, r5, #0x2 add r1, r7, r0 ldr r0, _0207C69C ; =0x00000408 add r2, sp, #0xc ldr r0, [r1, r0] mov r1, #0x2 ldrsh r1, [r2, r1] add r3, r2, #0x0 mov r2, #0x0 ldrsh r2, [r3, r2] bl FUN_0200C6E4 ldr r0, [r4, r6] mov r1, #0x1 bl FUN_020200A0 ldr r0, [sp, #0x8] add r0, r0, #0x1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x8] _0207C68E: add r0, r5, #0x1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 cmp r5, #0x8 blo _0207C5F0 add sp, #0x10 pop {r3-r7, pc} .balign 4 _0207C69C: .word 0x00000408 _0207C6A0: .word 0x0000068C thumb_func_start FUN_0207C6A4 FUN_0207C6A4: ; 0x0207C6A4 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_0207B09C cmp r0, #0x1 bhi _0207C6B8 add r0, r5, #0x0 mov r1, #0x0 bl FUN_0207C6F0 _0207C6B8: add r0, r5, #0x0 bl FUN_0207C598 add r4, r0, #0x0 ldr r0, _0207C6EC ; =0x0000045C add r1, r4, #0x0 sub r1, #0xc lsl r1, r1, #0x10 ldr r0, [r5, r0] asr r1, r1, #0x10 mov r2, #0x18 bl FUN_0200C6E4 mov r1, #0x5d mov r0, #0x46 lsl r1, r1, #0x2 lsl r0, r0, #0x4 sub r1, r1, r4 lsl r1, r1, #0x10 ldr r0, [r5, r0] asr r1, r1, #0x10 mov r2, #0x18 bl FUN_0200C6E4 pop {r3-r5, pc} nop _0207C6EC: .word 0x0000045C thumb_func_start FUN_0207C6F0 FUN_0207C6F0: ; 0x0207C6F0 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_0207B09C cmp r0, #0x1 bhi _0207C700 mov r4, #0x0 _0207C700: ldr r0, _0207C718 ; =0x0000045C add r1, r4, #0x0 ldr r0, [r5, r0] bl FUN_020200A0 mov r0, #0x46 lsl r0, r0, #0x4 ldr r0, [r5, r0] add r1, r4, #0x0 bl FUN_020200A0 pop {r3-r5, pc} .balign 4 _0207C718: .word 0x0000045C thumb_func_start FUN_0207C71C FUN_0207C71C: ; 0x0207C71C push {r4, lr} sub sp, #0x8 add r4, r0, #0x0 ldr r0, _0207C774 ; =0x00000263 ldrb r0, [r4, r0] lsl r0, r0, #0x18 lsr r3, r0, #0x1a bne _0207C730 mov r3, #0x15 b _0207C732 _0207C730: add r3, #0x14 _0207C732: mov r0, #0x0 mov r1, #0x1 str r0, [sp, #0x0] lsl r1, r1, #0xa str r0, [sp, #0x4] ldr r0, [r4, r1] add r1, r1, #0x4 ldr r1, [r4, r1] mov r2, #0x27 bl FUN_0200C9D8 mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x6 mov r1, #0x1 ldr r3, _0207C774 ; =0x00000263 str r0, [sp, #0x4] ldrb r3, [r4, r3] lsl r1, r1, #0xa ldr r0, [r4, r1] add r1, r1, #0x4 lsl r3, r3, #0x18 ldr r1, [r4, r1] lsr r4, r3, #0x1a ldr r3, _0207C778 ; =0x020FA6F8 mov r2, #0x27 ldrb r3, [r3, r4] add r3, #0x25 bl FUN_0200CA0C add sp, #0x8 pop {r4, pc} nop _0207C774: .word 0x00000263 _0207C778: .word 0x020FA6F8 thumb_func_start FUN_0207C77C FUN_0207C77C: ; 0x0207C77C push {r4, lr} add r4, r0, #0x0 mov r0, #0x2a lsl r0, r0, #0x4 ldr r0, [r4, r0] lsl r0, r0, #0x4 lsr r0, r0, #0x4 cmp r0, #0x7 bne _0207C7A4 ldr r0, _0207C7E4 ; =0x00000458 mov r1, #0x0 ldr r0, [r4, r0] bl FUN_020200A0 ldr r0, _0207C7E8 ; =0x00000538 mov r1, #0x0 ldr r0, [r4, r0] bl FUN_020200A0 pop {r4, pc} _0207C7A4: cmp r0, #0x0 ldr r0, _0207C7E8 ; =0x00000538 beq _0207C7D0 ldr r0, [r4, r0] mov r1, #0x0 bl FUN_020200A0 ldr r0, _0207C7E4 ; =0x00000458 mov r1, #0x1 ldr r0, [r4, r0] bl FUN_020200A0 mov r1, #0x2a lsl r1, r1, #0x4 ldr r0, _0207C7E4 ; =0x00000458 ldr r1, [r4, r1] ldr r0, [r4, r0] lsl r1, r1, #0x4 lsr r1, r1, #0x4 bl FUN_02020130 pop {r4, pc} _0207C7D0: ldr r0, [r4, r0] mov r1, #0x1 bl FUN_020200A0 ldr r0, _0207C7E4 ; =0x00000458 mov r1, #0x0 ldr r0, [r4, r0] bl FUN_020200A0 pop {r4, pc} .balign 4 _0207C7E4: .word 0x00000458 _0207C7E8: .word 0x00000538 thumb_func_start FUN_0207C7EC FUN_0207C7EC: ; 0x0207C7EC push {r3-r7, lr} add r5, r0, #0x0 bl FUN_0207CA44 mov r6, #0xa1 mov r4, #0x0 mov r7, #0x3 lsl r6, r6, #0x2 _0207C7FC: lsl r0, r4, #0x1 add r0, r5, r0 ldrh r0, [r0, r6] cmp r0, #0x0 beq _0207C826 add r1, r7, #0x0 bl FUN_0206AB18 add r3, r0, #0x0 add r1, r4, #0x0 add r1, #0xd add r2, r4, #0x5 lsl r1, r1, #0x18 lsl r2, r2, #0x18 lsl r3, r3, #0x18 add r0, r5, #0x0 lsr r1, r1, #0x18 lsr r2, r2, #0x18 lsr r3, r3, #0x18 bl FUN_0207CA6C _0207C826: add r0, r4, #0x1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, #0x4 blo _0207C7FC add r0, r5, #0x0 bl FUN_0207CFEC pop {r3-r7, pc} thumb_func_start FUN_0207C838 FUN_0207C838: ; 0x0207C838 push {r3-r7, lr} ldr r6, _0207CA2C ; =0x00000408 add r5, r0, #0x0 mov r4, #0xb mov r7, #0x0 _0207C842: lsl r0, r4, #0x2 add r0, r5, r0 ldr r0, [r0, r6] add r1, r7, #0x0 bl FUN_0200C63C add r0, r4, #0x1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, #0x13 bls _0207C842 ldr r0, _0207CA30 ; =0x0000068C ldrsb r0, [r5, r0] cmp r0, #0x0 beq _0207C86C cmp r0, #0x3 beq _0207C8B4 cmp r0, #0x5 bne _0207C86A b _0207C96E _0207C86A: pop {r3-r7, pc} _0207C86C: ldr r0, _0207CA34 ; =0x00000434 mov r1, #0x1 ldr r0, [r5, r0] bl FUN_0200C63C mov r0, #0x26 lsl r0, r0, #0x4 ldrb r1, [r5, r0] add r0, r0, #0x1 ldrb r0, [r5, r0] cmp r1, r0 ldr r0, _0207CA34 ; =0x00000434 bne _0207C892 ldr r0, [r5, r0] mov r1, #0xd8 mov r2, #0x50 bl FUN_0200C6E4 pop {r3-r7, pc} _0207C892: ldr r0, [r5, r0] mov r1, #0xc7 mov r2, #0x50 bl FUN_0200C6E4 ldr r0, _0207CA38 ; =0x00000438 mov r1, #0x1 ldr r0, [r5, r0] bl FUN_0200C63C ldr r0, _0207CA38 ; =0x00000438 mov r1, #0xe9 ldr r0, [r5, r0] mov r2, #0x50 bl FUN_0200C6E4 pop {r3-r7, pc} _0207C8B4: mov r7, #0xa1 mov r4, #0x0 lsl r7, r7, #0x2 _0207C8BA: lsl r0, r4, #0x1 add r0, r5, r0 ldrh r0, [r0, r7] cmp r0, #0x0 beq _0207C904 mov r1, #0x3 bl FUN_0206AB18 add r3, r0, #0x0 add r1, r4, #0x0 add r1, #0xd add r2, r4, #0x5 lsl r1, r1, #0x18 lsl r2, r2, #0x18 lsl r3, r3, #0x18 add r0, r5, #0x0 lsr r1, r1, #0x18 lsr r2, r2, #0x18 lsr r3, r3, #0x18 bl FUN_0207CA6C lsl r0, r4, #0x2 add r6, r5, r0 ldr r0, _0207CA3C ; =0x0000043C mov r1, #0x1 ldr r0, [r6, r0] bl FUN_0200C63C ldr r0, _0207CA3C ; =0x0000043C lsl r2, r4, #0x5 add r2, #0x2a lsl r2, r2, #0x10 ldr r0, [r6, r0] mov r1, #0x97 asr r2, r2, #0x10 bl FUN_0200C6E4 _0207C904: add r0, r4, #0x1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, #0x4 blo _0207C8BA mov r0, #0x93 lsl r0, r0, #0x2 ldr r0, [r5, r0] ldrh r0, [r0, #0x18] cmp r0, #0x0 beq _0207C946 mov r1, #0x3 bl FUN_0206AB18 add r3, r0, #0x0 lsl r3, r3, #0x18 add r0, r5, #0x0 mov r1, #0x11 mov r2, #0x9 lsr r3, r3, #0x18 bl FUN_0207CA6C ldr r0, _0207CA40 ; =0x0000044C mov r1, #0x1 ldr r0, [r5, r0] bl FUN_0200C63C ldr r0, _0207CA40 ; =0x0000044C mov r1, #0x97 ldr r0, [r5, r0] mov r2, #0xaa bl FUN_0200C6E4 _0207C946: ldr r0, _0207CA34 ; =0x00000434 mov r1, #0x3f ldr r0, [r5, r0] mov r2, #0x34 bl FUN_0200C6E4 ldr r0, _0207CA38 ; =0x00000438 mov r1, #0x61 ldr r0, [r5, r0] mov r2, #0x34 bl FUN_0200C6E4 mov r0, #0x45 lsl r0, r0, #0x4 ldr r0, [r5, r0] mov r1, #0x6c mov r2, #0x48 bl FUN_0200C6E4 pop {r3-r7, pc} _0207C96E: mov r7, #0xa1 mov r4, #0x0 lsl r7, r7, #0x2 _0207C974: lsl r0, r4, #0x1 add r0, r5, r0 ldrh r0, [r0, r7] cmp r0, #0x0 beq _0207C9C0 mov r1, #0xb bl FUN_0206AB18 add r3, r0, #0x0 add r1, r4, #0x0 add r1, #0xd add r2, r4, #0x5 add r3, #0x12 lsl r1, r1, #0x18 lsl r2, r2, #0x18 lsl r3, r3, #0x18 add r0, r5, #0x0 lsr r1, r1, #0x18 lsr r2, r2, #0x18 lsr r3, r3, #0x18 bl FUN_0207CA6C lsl r0, r4, #0x2 add r6, r5, r0 ldr r0, _0207CA3C ; =0x0000043C mov r1, #0x1 ldr r0, [r6, r0] bl FUN_0200C63C ldr r0, _0207CA3C ; =0x0000043C lsl r2, r4, #0x5 add r2, #0x2a lsl r2, r2, #0x10 ldr r0, [r6, r0] mov r1, #0x97 asr r2, r2, #0x10 bl FUN_0200C6E4 _0207C9C0: add r0, r4, #0x1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, #0x4 blo _0207C974 mov r0, #0x93 lsl r0, r0, #0x2 ldr r0, [r5, r0] ldrh r0, [r0, #0x18] cmp r0, #0x0 beq _0207CA04 mov r1, #0xb bl FUN_0206AB18 add r3, r0, #0x0 add r3, #0x12 lsl r3, r3, #0x18 add r0, r5, #0x0 mov r1, #0x11 mov r2, #0x9 lsr r3, r3, #0x18 bl FUN_0207CA6C ldr r0, _0207CA40 ; =0x0000044C mov r1, #0x1 ldr r0, [r5, r0] bl FUN_0200C63C ldr r0, _0207CA40 ; =0x0000044C mov r1, #0x97 ldr r0, [r5, r0] mov r2, #0xaa bl FUN_0200C6E4 _0207CA04: ldr r0, _0207CA34 ; =0x00000434 mov r1, #0x3f ldr r0, [r5, r0] mov r2, #0x34 bl FUN_0200C6E4 ldr r0, _0207CA38 ; =0x00000438 mov r1, #0x61 ldr r0, [r5, r0] mov r2, #0x34 bl FUN_0200C6E4 mov r0, #0x45 lsl r0, r0, #0x4 ldr r0, [r5, r0] mov r1, #0x6c mov r2, #0x48 bl FUN_0200C6E4 pop {r3-r7, pc} .balign 4 _0207CA2C: .word 0x00000408 _0207CA30: .word 0x0000068C _0207CA34: .word 0x00000434 _0207CA38: .word 0x00000438 _0207CA3C: .word 0x0000043C _0207CA40: .word 0x0000044C thumb_func_start FUN_0207CA44 FUN_0207CA44: ; 0x0207CA44 push {r4, lr} mov r3, #0x26 add r4, r0, #0x0 lsl r3, r3, #0x4 ldrb r3, [r4, r3] mov r1, #0xb mov r2, #0x3 bl FUN_0207CA6C ldr r3, _0207CA68 ; =0x00000261 add r0, r4, #0x0 ldrb r3, [r4, r3] mov r1, #0xc mov r2, #0x4 bl FUN_0207CA6C pop {r4, pc} nop _0207CA68: .word 0x00000261 thumb_func_start FUN_0207CA6C FUN_0207CA6C: ; 0x0207CA6C push {r4-r7, lr} sub sp, #0xc add r7, r3, #0x0 add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 bl FUN_0206E12C str r0, [sp, #0x8] add r0, r7, #0x0 bl FUN_0206E0F0 add r3, r0, #0x0 mov r0, #0x1 str r0, [sp, #0x0] ldr r1, _0207CAB4 ; =0x00000404 str r6, [sp, #0x4] lsl r0, r0, #0xa ldr r0, [r5, r0] ldr r1, [r5, r1] ldr r2, [sp, #0x8] bl FUN_0200C9D8 add r0, r7, #0x0 bl FUN_0206E114 add r2, r0, #0x0 lsl r0, r4, #0x2 add r1, r5, r0 ldr r0, _0207CAB8 ; =0x00000408 ldr r0, [r1, r0] add r1, r2, #0x3 bl FUN_0200C664 add sp, #0xc pop {r4-r7, pc} .balign 4 _0207CAB4: .word 0x00000404 _0207CAB8: .word 0x00000408 thumb_func_start FUN_0207CABC FUN_0207CABC: ; 0x0207CABC push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 add r0, r1, #0x0 ldrb r0, [r0, #0x0] str r1, [sp, #0x0] str r2, [sp, #0x4] lsl r0, r0, #0x5 add r0, #0x2a lsl r0, r0, #0x10 add r4, r3, #0x0 asr r7, r0, #0x10 mov r6, #0x0 _0207CAD6: ldr r0, _0207CB04 ; =0x0000043C ldr r1, [sp, #0x4] ldr r0, [r5, r0] add r2, r4, #0x0 bl FUN_0200C75C mov r0, #0x0 ldrsh r0, [r4, r0] cmp r7, r0 bne _0207CAF2 ldr r0, [sp, #0x0] add sp, #0x8 strb r6, [r0, #0x0] pop {r3-r7, pc} _0207CAF2: add r0, r6, #0x1 lsl r0, r0, #0x10 asr r6, r0, #0x10 add r5, r5, #0x4 cmp r6, #0x4 blt _0207CAD6 add sp, #0x8 pop {r3-r7, pc} nop _0207CB04: .word 0x0000043C thumb_func_start FUN_0207CB08 FUN_0207CB08: ; 0x0207CB08 push {r0-r3} push {r4, lr} sub sp, #0x8 add r2, sp, #0x4 add r1, sp, #0x14 add r2, #0x2 add r3, sp, #0x4 add r4, r0, #0x0 bl FUN_0207CABC add r2, sp, #0x0 add r0, r4, #0x0 add r1, sp, #0x18 add r2, #0x2 add r3, sp, #0x0 bl FUN_0207CABC add r0, sp, #0x10 ldrb r0, [r0, #0x4] add r3, sp, #0x0 mov r2, #0x0 add r0, #0xd lsl r0, r0, #0x2 add r1, r4, r0 ldr r0, _0207CB6C ; =0x00000408 ldrsh r2, [r3, r2] ldr r0, [r1, r0] mov r1, #0x2 ldrsh r1, [r3, r1] bl FUN_0200C6E4 add r0, sp, #0x10 ldrb r0, [r0, #0x8] add r3, sp, #0x0 mov r2, #0x4 add r0, #0xd lsl r0, r0, #0x2 add r1, r4, r0 ldr r0, _0207CB6C ; =0x00000408 ldrsh r2, [r3, r2] ldr r0, [r1, r0] mov r1, #0x6 ldrsh r1, [r3, r1] bl FUN_0200C6E4 add sp, #0x8 pop {r4} pop {r3} add sp, #0x10 bx r3 .balign 4 _0207CB6C: .word 0x00000408 thumb_func_start FUN_0207CB70 FUN_0207CB70: ; 0x0207CB70 push {r4-r6, lr} sub sp, #0x8 add r5, r0, #0x0 add r0, r1, #0x0 mov r1, #0x1 bl FUN_0206AB18 add r4, r0, #0x0 bl FUN_0206E2A8 add r6, r0, #0x0 add r0, r4, #0x0 bl FUN_0206E278 mov r1, #0x1 add r3, r0, #0x0 str r1, [sp, #0x0] mov r0, #0xa str r0, [sp, #0x4] lsl r0, r1, #0xa ldr r1, _0207CBBC ; =0x00000404 ldr r0, [r5, r0] ldr r1, [r5, r1] add r2, r6, #0x0 bl FUN_0200C9D8 add r0, r4, #0x0 bl FUN_0206E290 add r1, r0, #0x0 mov r0, #0x45 lsl r0, r0, #0x4 ldr r0, [r5, r0] add r1, r1, #0x3 bl FUN_0200C664 add sp, #0x8 pop {r4-r6, pc} .balign 4 _0207CBBC: .word 0x00000404 thumb_func_start FUN_0207CBC0 FUN_0207CBC0: ; 0x0207CBC0 ldr r2, _0207CBDC ; =0x0000068D add r3, r0, #0x0 ldrb r2, [r3, r2] ldr r0, _0207CBE0 ; =0x0000042C mov r1, #0xc2 lsl r2, r2, #0x1c lsr r2, r2, #0x1c lsl r2, r2, #0x5 ldr r0, [r3, r0] add r2, #0x30 lsl r2, r2, #0x10 ldr r3, _0207CBE4 ; =FUN_0200C6E4 asr r2, r2, #0x10 bx r3 .balign 4 _0207CBDC: .word 0x0000068D _0207CBE0: .word 0x0000042C _0207CBE4: .word FUN_0200C6E4 thumb_func_start FUN_0207CBE8 FUN_0207CBE8: ; 0x0207CBE8 push {r3-r4, lr} sub sp, #0x4 add r4, r0, #0x0 ldr r0, _0207CC20 ; =0x0000042C add r1, sp, #0x0 ldr r0, [r4, r0] add r1, #0x2 add r2, sp, #0x0 bl FUN_0200C75C mov r0, #0x43 lsl r0, r0, #0x4 add r3, sp, #0x0 mov r1, #0x2 mov r2, #0x0 ldrsh r1, [r3, r1] ldrsh r2, [r3, r2] ldr r0, [r4, r0] bl FUN_0200C6E4 mov r0, #0x43 lsl r0, r0, #0x4 ldr r0, [r4, r0] mov r1, #0x1 bl FUN_020200A0 add sp, #0x4 pop {r3-r4, pc} .balign 4 _0207CC20: .word 0x0000042C thumb_func_start FUN_0207CC24 FUN_0207CC24: ; 0x0207CC24 push {r3-r7, lr} mov r2, #0x69 lsl r2, r2, #0x4 mov r1, #0x0 strb r1, [r0, r2] add r3, r2, #0x3 strb r1, [r0, r3] add r3, r2, #0x2 strb r1, [r0, r3] ldr r3, _0207CC80 ; =0x0000029A ldrb r3, [r0, r3] cmp r3, #0x0 bne _0207CC44 add r2, r2, #0x1 strb r1, [r0, r2] b _0207CC5A _0207CC44: cmp r3, #0xff bne _0207CC50 mov r3, #0xc add r1, r2, #0x1 strb r3, [r0, r1] b _0207CC5A _0207CC50: mov r1, #0xc mul r1, r3 asr r3, r1, #0x8 add r1, r2, #0x1 strb r3, [r0, r1] _0207CC5A: ldr r7, _0207CC84 ; =0x00000408 add r5, r0, #0x0 mov r4, #0x1d add r5, #0x74 add r6, r7, #0x0 _0207CC64: ldr r0, [r5, r7] mov r1, #0x0 bl FUN_020200A0 ldr r0, [r5, r6] mov r1, #0x0 bl FUN_02020208 add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, #0x28 bls _0207CC64 pop {r3-r7, pc} nop _0207CC80: .word 0x0000029A _0207CC84: .word 0x00000408 thumb_func_start FUN_0207CC88 FUN_0207CC88: ; 0x0207CC88 push {r3-r7, lr} add r4, r0, #0x0 ldr r0, _0207CE38 ; =0x0000068C ldrsb r1, [r4, r0] cmp r1, #0x4 bne _0207CC9C add r1, r0, #0x5 ldrb r1, [r4, r1] cmp r1, #0x0 bne _0207CC9E _0207CC9C: b _0207CE34 _0207CC9E: add r2, r0, #0x4 ldrb r2, [r4, r2] cmp r2, #0x4 bhi _0207CCCC add r2, r2, r2 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _0207CCB2: ; jump table (using 16-bit offset) .short _0207CCBC - _0207CCB2 - 2; case 0 .short _0207CCE0 - _0207CCB2 - 2; case 1 .short _0207CD50 - _0207CCB2 - 2; case 2 .short _0207CD70 - _0207CCB2 - 2; case 3 .short _0207CDCA - _0207CCB2 - 2; case 4 _0207CCBC: add r1, r0, #0x7 ldrb r1, [r4, r1] add r2, r1, #0x1 add r1, r0, #0x7 strb r2, [r4, r1] ldrb r1, [r4, r1] cmp r1, #0x8 beq _0207CCCE _0207CCCC: b _0207CDE8 _0207CCCE: mov r2, #0x1 add r1, r0, #0x4 strb r2, [r4, r1] add r1, r0, #0x7 mov r2, #0x0 strb r2, [r4, r1] add r0, r0, #0x6 strb r2, [r4, r0] b _0207CDE8 _0207CCE0: add r1, r0, #0x7 ldrb r1, [r4, r1] cmp r1, #0x0 bne _0207CD3E add r0, r0, #0x6 ldrb r0, [r4, r0] add r0, #0x1d lsl r0, r0, #0x2 add r1, r4, r0 ldr r0, _0207CE3C ; =0x00000408 ldr r0, [r1, r0] mov r1, #0x1 bl FUN_020200A0 ldr r0, _0207CE40 ; =0x00000692 ldrb r0, [r4, r0] add r0, #0x1d lsl r0, r0, #0x2 add r1, r4, r0 ldr r0, _0207CE3C ; =0x00000408 ldr r0, [r1, r0] mov r1, #0x0 bl FUN_02020208 ldr r0, _0207CE40 ; =0x00000692 ldrb r0, [r4, r0] add r0, #0x1d lsl r0, r0, #0x2 add r1, r4, r0 ldr r0, _0207CE3C ; =0x00000408 ldr r0, [r1, r0] mov r1, #0x0 bl FUN_02020130 ldr r0, _0207CE40 ; =0x00000692 ldrb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, r0] sub r1, r0, #0x1 ldrb r2, [r4, r0] ldrb r1, [r4, r1] cmp r2, r1 bne _0207CD3E mov r1, #0x2 sub r0, r0, #0x2 strb r1, [r4, r0] b _0207CDE8 _0207CD3E: ldr r0, _0207CE44 ; =0x00000693 mov r1, #0xa ldrb r0, [r4, r0] add r0, r0, #0x1 blx _s32_div_f ldr r0, _0207CE44 ; =0x00000693 strb r1, [r4, r0] b _0207CDE8 _0207CD50: add r1, #0x1c lsl r0, r1, #0x2 add r1, r4, r0 ldr r0, _0207CE3C ; =0x00000408 ldr r0, [r1, r0] bl FUN_02020128 cmp r0, #0x0 bne _0207CDE8 ldr r0, _0207CE44 ; =0x00000693 mov r1, #0x0 strb r1, [r4, r0] mov r1, #0x3 sub r0, r0, #0x3 strb r1, [r4, r0] b _0207CDE8 _0207CD70: add r1, r0, #0x7 ldrb r1, [r4, r1] add r2, r1, #0x1 add r1, r0, #0x7 strb r2, [r4, r1] ldrb r1, [r4, r1] cmp r1, #0x20 bne _0207CDE8 add r0, r0, #0x5 ldrb r0, [r4, r0] mov r6, #0x1d add r0, #0x1d cmp r0, #0x1d bls _0207CDBC add r5, r4, #0x0 ldr r7, _0207CE48 ; =0x00000691 add r5, #0x74 _0207CD92: ldr r0, _0207CE3C ; =0x00000408 mov r1, #0x1 ldr r0, [r5, r0] bl FUN_020200A0 ldr r0, _0207CE3C ; =0x00000408 mov r1, #0x0 ldr r0, [r5, r0] bl FUN_02020208 ldr r0, _0207CE3C ; =0x00000408 mov r1, #0x0 ldr r0, [r5, r0] bl FUN_02020130 ldrb r0, [r4, r7] add r6, r6, #0x1 add r5, r5, #0x4 add r0, #0x1d cmp r6, r0 blo _0207CD92 _0207CDBC: ldr r0, _0207CE44 ; =0x00000693 mov r1, #0x0 strb r1, [r4, r0] mov r1, #0x4 sub r0, r0, #0x3 strb r1, [r4, r0] b _0207CDE8 _0207CDCA: add r1, r0, #0x7 ldrb r1, [r4, r1] add r2, r1, #0x1 add r1, r0, #0x7 strb r2, [r4, r1] ldrb r1, [r4, r1] cmp r1, #0x20 bne _0207CDE8 mov r2, #0x0 add r1, r0, #0x4 strb r2, [r4, r1] add r1, r0, #0x7 strb r2, [r4, r1] add r0, r0, #0x6 strb r2, [r4, r0] _0207CDE8: ldr r0, _0207CE48 ; =0x00000691 mov r6, #0x1d ldrb r0, [r4, r0] add r0, #0x1d cmp r0, #0x1d bls _0207CE34 add r5, r4, #0x0 ldr r7, _0207CE3C ; =0x00000408 add r5, #0x74 _0207CDFA: ldr r0, [r5, r7] bl FUN_02020128 cmp r0, #0x0 beq _0207CE26 ldr r0, _0207CE3C ; =0x00000408 mov r1, #0x1 ldr r0, [r5, r0] lsl r1, r1, #0xc bl FUN_020201E4 ldr r0, _0207CE3C ; =0x00000408 ldr r0, [r5, r0] bl FUN_0202022C cmp r0, #0x6 bne _0207CE26 ldr r0, _0207CE3C ; =0x00000408 mov r1, #0x0 ldr r0, [r5, r0] bl FUN_020200A0 _0207CE26: ldr r0, _0207CE48 ; =0x00000691 add r6, r6, #0x1 ldrb r0, [r4, r0] add r5, r5, #0x4 add r0, #0x1d cmp r6, r0 blo _0207CDFA _0207CE34: pop {r3-r7, pc} nop _0207CE38: .word 0x0000068C _0207CE3C: .word 0x00000408 _0207CE40: .word 0x00000692 _0207CE44: .word 0x00000693 _0207CE48: .word 0x00000691 thumb_func_start FUN_0207CE4C FUN_0207CE4C: ; 0x0207CE4C push {r3-r7, lr} add r6, r0, #0x0 mov r4, #0x0 add r5, r6, #0x0 mov r7, #0x1 _0207CE56: mov r0, #0xa7 lsl r0, r0, #0x2 ldrh r1, [r6, r0] add r0, r7, #0x0 lsl r0, r4 tst r0, r1 ldr r0, _0207CED4 ; =0x00000464 beq _0207CE70 ldr r0, [r5, r0] add r1, r7, #0x0 bl FUN_02020130 b _0207CE78 _0207CE70: ldr r0, [r5, r0] mov r1, #0x0 bl FUN_02020130 _0207CE78: add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, #0x6 blo _0207CE56 mov r0, #0x2a lsl r0, r0, #0x4 ldr r0, [r6, r0] lsl r1, r0, #0x2 lsr r1, r1, #0x1f cmp r1, #0x1 bne _0207CEA0 lsl r0, r0, #0x3 lsr r0, r0, #0x1f bne _0207CEA0 ldr r0, _0207CED8 ; =0x000004DC mov r1, #0x1 ldr r0, [r6, r0] bl FUN_0200C63C b _0207CEAA _0207CEA0: ldr r0, _0207CED8 ; =0x000004DC mov r1, #0x0 ldr r0, [r6, r0] bl FUN_0200C63C _0207CEAA: mov r0, #0x2a lsl r0, r0, #0x4 ldr r0, [r6, r0] lsr r0, r0, #0x1e cmp r0, #0x2 bne _0207CEC4 mov r0, #0x4e lsl r0, r0, #0x4 ldr r0, [r6, r0] mov r1, #0x1 bl FUN_0200C63C pop {r3-r7, pc} _0207CEC4: mov r0, #0x4e lsl r0, r0, #0x4 ldr r0, [r6, r0] mov r1, #0x0 bl FUN_0200C63C pop {r3-r7, pc} nop _0207CED4: .word 0x00000464 _0207CED8: .word 0x000004DC thumb_func_start FUN_0207CEDC FUN_0207CEDC: ; 0x0207CEDC push {r3-r4, lr} sub sp, #0x4 add r4, r0, #0x0 ldr r0, _0207CF50 ; =0x000004AC mov r1, #0x1 ldr r0, [r4, r0] bl FUN_020200A0 ldr r0, _0207CF50 ; =0x000004AC mov r1, #0x0 ldr r0, [r4, r0] bl FUN_02020208 ldr r0, _0207CF50 ; =0x000004AC mov r1, #0x0 ldr r0, [r4, r0] bl FUN_02020130 add r1, sp, #0x0 add r0, r4, #0x0 add r1, #0x2 add r2, sp, #0x0 bl FUN_0207FC04 ldr r0, _0207CF54 ; =0x0000068F add r3, sp, #0x0 ldrb r0, [r4, r0] lsl r0, r0, #0x1c lsr r0, r0, #0x1c ldr r0, _0207CF50 ; =0x000004AC bne _0207CF32 mov r2, #0x0 ldrsh r2, [r3, r2] mov r1, #0x2 ldrsh r1, [r3, r1] add r2, #0xc0 lsl r2, r2, #0x10 ldr r0, [r4, r0] asr r2, r2, #0x10 bl FUN_0200C6E4 add sp, #0x4 pop {r3-r4, pc} _0207CF32: mov r1, #0x2 mov r2, #0x0 ldrsh r1, [r3, r1] ldrsh r2, [r3, r2] ldr r0, [r4, r0] sub r1, r1, #0x4 add r2, #0xc0 lsl r1, r1, #0x10 lsl r2, r2, #0x10 asr r1, r1, #0x10 asr r2, r2, #0x10 bl FUN_0200C6E4 add sp, #0x4 pop {r3-r4, pc} .balign 4 _0207CF50: .word 0x000004AC _0207CF54: .word 0x0000068F thumb_func_start FUN_0207CF58 FUN_0207CF58: ; 0x0207CF58 push {r4, lr} add r4, r0, #0x0 ldr r0, _0207CF74 ; =0x000004AC ldr r0, [r4, r0] bl FUN_0202022C cmp r0, #0x2 bne _0207CF72 ldr r0, _0207CF74 ; =0x000004AC mov r1, #0x0 ldr r0, [r4, r0] bl FUN_020200A0 _0207CF72: pop {r4, pc} .balign 4 _0207CF74: .word 0x000004AC thumb_func_start FUN_0207CF78 FUN_0207CF78: ; 0x0207CF78 push {r3-r7, lr} ldr r7, _0207CFA8 ; =0x0000068E add r5, r0, #0x0 mov r4, #0x0 mov r6, #0x1 _0207CF82: add r0, r6, #0x0 ldrb r1, [r5, r7] lsl r0, r4 tst r0, r1 beq _0207CF9C lsl r0, r4, #0x2 add r1, r5, r0 mov r0, #0x4b lsl r0, r0, #0x4 ldr r0, [r1, r0] add r1, r6, #0x0 bl FUN_020200A0 _0207CF9C: add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #0x5 blo _0207CF82 pop {r3-r7, pc} .balign 4 _0207CFA8: .word 0x0000068E thumb_func_start FUN_0207CFAC FUN_0207CFAC: ; 0x0207CFAC push {r4, lr} add r4, r0, #0x0 cmp r1, #0x0 bne _0207CFC0 ldr r0, _0207CFE8 ; =0x000004C4 mov r1, #0x0 ldr r0, [r4, r0] bl FUN_020200A0 pop {r4, pc} _0207CFC0: add r0, r1, #0x0 bl FUN_0201AB14 add r1, r0, #0x0 ldr r0, _0207CFE8 ; =0x000004C4 lsl r1, r1, #0x3 sub r1, #0xa lsl r1, r1, #0x10 ldr r0, [r4, r0] asr r1, r1, #0x10 mov r2, #0x8 bl FUN_0200C6E4 ldr r0, _0207CFE8 ; =0x000004C4 mov r1, #0x1 ldr r0, [r4, r0] bl FUN_020200A0 pop {r4, pc} nop _0207CFE8: .word 0x000004C4 thumb_func_start FUN_0207CFEC FUN_0207CFEC: ; 0x0207CFEC push {r4, lr} sub sp, #0x8 add r4, r0, #0x0 bl FUN_0207B628 mov r1, #0x93 lsl r1, r1, #0x2 ldr r1, [r4, r1] ldrb r1, [r1, #0x11] cmp r1, #0x2 bne _0207D008 bl FUN_0206B688 b _0207D00C _0207D008: bl FUN_0206B6C8 _0207D00C: add r3, r0, #0x0 mov r0, #0x0 mov r1, #0x1 str r0, [sp, #0x0] mov r0, #0xb lsl r1, r1, #0xa str r0, [sp, #0x4] ldr r0, [r4, r1] add r1, r1, #0x4 ldr r1, [r4, r1] mov r2, #0x13 bl FUN_0200C9D8 mov r2, #0x97 lsl r2, r2, #0x2 add r1, r2, #0x0 ldrh r0, [r4, r2] add r2, #0x44 add r1, #0x42 ldr r2, [r4, r2] ldrh r1, [r4, r1] lsl r2, r2, #0x3 lsr r2, r2, #0x1f bl FUN_0206B7BC add r1, r0, #0x0 ldr r0, _0207D068 ; =0x00000454 add r1, r1, #0x7 ldr r0, [r4, r0] bl FUN_0200C664 mov r0, #0x97 lsl r0, r0, #0x2 ldrh r0, [r4, r0] mov r1, #0x1c bl FUN_02068678 add r2, r0, #0x0 ldr r0, _0207D068 ; =0x00000454 mov r1, #0x1 ldr r0, [r4, r0] eor r1, r2 bl FUN_02020100 add sp, #0x8 pop {r4, pc} .balign 4 _0207D068: .word 0x00000454 thumb_func_start FUN_0207D06C FUN_0207D06C: ; 0x0207D06C push {r4, lr} sub sp, #0x8 add r4, r0, #0x0 bl FUN_0206B888 add r3, r0, #0x0 mov r0, #0x0 mov r1, #0x1 str r0, [sp, #0x0] mov r0, #0x5 lsl r1, r1, #0xa str r0, [sp, #0x4] ldr r0, [r4, r1] add r1, r1, #0x4 ldr r1, [r4, r1] mov r2, #0x13 bl FUN_0200CA0C ldr r0, _0207D0C0 ; =0x0000068C ldrsb r0, [r4, r0] cmp r0, #0x3 ldr r0, _0207D0C4 ; =0x00000454 bne _0207D0A6 ldr r0, [r4, r0] mov r1, #0x18 mov r2, #0x30 bl FUN_0200C6E4 b _0207D0B0 _0207D0A6: ldr r0, [r4, r0] mov r1, #0x20 mov r2, #0x44 bl FUN_0200C6E4 _0207D0B0: ldr r0, _0207D0C4 ; =0x00000454 mov r1, #0x1 ldr r0, [r4, r0] bl FUN_0200C63C add sp, #0x8 pop {r4, pc} nop _0207D0C0: .word 0x0000068C _0207D0C4: .word 0x00000454 thumb_func_start FUN_0207D0C8 FUN_0207D0C8: ; 0x0207D0C8 push {r4, lr} add r4, r2, #0x0 cmp r4, r1 ble _0207D0EE add r0, #0x2c sub r1, r4, r1 mul r1, r0 lsl r0, r1, #0x10 mov r1, #0x4b lsl r1, r1, #0x2 blx _u32_div_f lsr r0, r0, #0x10 lsl r0, r0, #0x10 asr r0, r0, #0x10 sub r0, r4, r0 lsl r0, r0, #0x10 asr r0, r0, #0x10 pop {r4, pc} _0207D0EE: add r0, #0x2c sub r1, r1, r4 mul r1, r0 lsl r0, r1, #0x10 mov r1, #0x4b lsl r1, r1, #0x2 blx _u32_div_f lsr r0, r0, #0x10 lsl r0, r0, #0x10 asr r0, r0, #0x10 add r0, r4, r0 lsl r0, r0, #0x10 asr r0, r0, #0x10 pop {r4, pc} thumb_func_start FUN_0207D10C FUN_0207D10C: ; 0x0207D10C push {r3-r5, lr} add r4, r0, #0x0 ldr r0, _0207D20C ; =0x00000295 mov r1, #0x58 ldrb r0, [r4, r0] add r2, r1, #0x0 bl FUN_0207D0C8 add r5, r0, #0x0 ldr r0, _0207D20C ; =0x00000295 mov r1, #0x31 ldrb r0, [r4, r0] mov r2, #0x49 bl FUN_0207D0C8 add r2, r0, #0x0 ldr r0, _0207D210 ; =0x000004C8 add r1, r5, #0x0 ldr r0, [r4, r0] bl FUN_0200C6E4 ldr r0, _0207D214 ; =0x00000296 mov r1, #0x6e ldrb r0, [r4, r0] mov r2, #0x58 bl FUN_0207D0C8 add r5, r0, #0x0 ldr r0, _0207D214 ; =0x00000296 mov r1, #0x41 ldrb r0, [r4, r0] mov r2, #0x49 bl FUN_0207D0C8 add r2, r0, #0x0 ldr r0, _0207D218 ; =0x000004CC add r1, r5, #0x0 ldr r0, [r4, r0] bl FUN_0200C6E4 ldr r0, _0207D21C ; =0x00000297 mov r1, #0x67 ldrb r0, [r4, r0] mov r2, #0x58 bl FUN_0207D0C8 add r5, r0, #0x0 ldr r0, _0207D21C ; =0x00000297 mov r1, #0x5c ldrb r0, [r4, r0] mov r2, #0x49 bl FUN_0207D0C8 add r2, r0, #0x0 mov r0, #0x4d lsl r0, r0, #0x4 ldr r0, [r4, r0] add r1, r5, #0x0 bl FUN_0200C6E4 mov r0, #0xa6 lsl r0, r0, #0x2 ldrb r0, [r4, r0] mov r1, #0x48 mov r2, #0x57 bl FUN_0207D0C8 add r5, r0, #0x0 mov r0, #0xa6 lsl r0, r0, #0x2 ldrb r0, [r4, r0] mov r1, #0x5c mov r2, #0x49 bl FUN_0207D0C8 add r2, r0, #0x0 ldr r0, _0207D220 ; =0x000004D4 add r1, r5, #0x0 ldr r0, [r4, r0] bl FUN_0200C6E4 ldr r0, _0207D224 ; =0x00000299 mov r1, #0x41 ldrb r0, [r4, r0] mov r2, #0x57 bl FUN_0207D0C8 add r5, r0, #0x0 ldr r0, _0207D224 ; =0x00000299 mov r1, #0x41 ldrb r0, [r4, r0] mov r2, #0x49 bl FUN_0207D0C8 add r2, r0, #0x0 ldr r0, _0207D228 ; =0x000004D8 add r1, r5, #0x0 ldr r0, [r4, r0] bl FUN_0200C6E4 ldr r0, _0207D210 ; =0x000004C8 mov r1, #0x1 ldr r0, [r4, r0] bl FUN_020200A0 ldr r0, _0207D218 ; =0x000004CC mov r1, #0x1 ldr r0, [r4, r0] bl FUN_020200A0 mov r0, #0x4d lsl r0, r0, #0x4 ldr r0, [r4, r0] mov r1, #0x1 bl FUN_020200A0 ldr r0, _0207D220 ; =0x000004D4 mov r1, #0x1 ldr r0, [r4, r0] bl FUN_020200A0 ldr r0, _0207D228 ; =0x000004D8 mov r1, #0x1 ldr r0, [r4, r0] bl FUN_020200A0 pop {r3-r5, pc} nop _0207D20C: .word 0x00000295 _0207D210: .word 0x000004C8 _0207D214: .word 0x00000296 _0207D218: .word 0x000004CC _0207D21C: .word 0x00000297 _0207D220: .word 0x000004D4 _0207D224: .word 0x00000299 _0207D228: .word 0x000004D8 thumb_func_start FUN_0207D22C FUN_0207D22C: ; 0x0207D22C push {r4, lr} add r4, r0, #0x0 ldr r0, _0207D268 ; =0x000004C8 mov r1, #0x0 ldr r0, [r4, r0] bl FUN_020200A0 ldr r0, _0207D26C ; =0x000004CC mov r1, #0x0 ldr r0, [r4, r0] bl FUN_020200A0 mov r0, #0x4d lsl r0, r0, #0x4 ldr r0, [r4, r0] mov r1, #0x0 bl FUN_020200A0 ldr r0, _0207D270 ; =0x000004D4 mov r1, #0x0 ldr r0, [r4, r0] bl FUN_020200A0 ldr r0, _0207D274 ; =0x000004D8 mov r1, #0x0 ldr r0, [r4, r0] bl FUN_020200A0 pop {r4, pc} nop _0207D268: .word 0x000004C8 _0207D26C: .word 0x000004CC _0207D270: .word 0x000004D4 _0207D274: .word 0x000004D8 thumb_func_start FUN_0207D278 FUN_0207D278: ; 0x0207D278 push {r4-r6, lr} sub sp, #0x8 add r6, r1, #0x0 add r5, r0, #0x0 add r0, r6, #0x0 mov r1, #0x1 add r4, r2, #0x0 bl FUN_0207FC5C add r3, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] add r0, r4, #0x0 mov r1, #0x1 add r0, #0x1a lsl r1, r1, #0xa str r0, [sp, #0x4] ldr r0, [r5, r1] add r1, r1, #0x4 ldr r1, [r5, r1] mov r2, #0x27 bl FUN_0200C9D8 add r0, r6, #0x0 mov r1, #0x2 bl FUN_0207FC5C add r4, #0x37 add r2, r0, #0x0 lsl r0, r4, #0x2 add r1, r5, r0 ldr r0, _0207D2C4 ; =0x00000408 ldr r0, [r1, r0] add r1, r2, #0x7 bl FUN_0200C664 add sp, #0x8 pop {r4-r6, pc} .balign 4 _0207D2C4: .word 0x00000408 thumb_func_start FUN_0207D2C8 FUN_0207D2C8: ; 0x0207D2C8 push {r3-r7, lr} sub sp, #0x8 ldr r6, _0207D354 ; =0x00000408 add r5, r0, #0x0 mov r4, #0x37 mov r7, #0x0 _0207D2D4: lsl r0, r4, #0x2 add r0, r5, r0 ldr r0, [r0, r6] add r1, r7, #0x0 bl FUN_020200A0 add r0, r4, #0x1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, #0x46 bls _0207D2D4 ldr r0, _0207D358 ; =0x0000068C ldrsb r0, [r5, r0] cmp r0, #0x6 bne _0207D350 mov r0, #0x0 mov r1, #0x1 str r0, [sp, #0x0] mov r0, #0x5 lsl r1, r1, #0xa str r0, [sp, #0x4] ldr r0, [r5, r1] add r1, r1, #0x4 ldr r1, [r5, r1] mov r2, #0x27 mov r3, #0x88 bl FUN_0200CA0C ldr r7, _0207D35C ; =0x000004E4 ldr r6, _0207D360 ; =0x00000699 mov r4, #0x0 _0207D312: ldrb r0, [r5, r6] cmp r4, r0 bge _0207D33A lsl r0, r4, #0x2 add r0, r5, r0 ldr r0, [r0, r7] mov r1, #0x1 bl FUN_020200A0 lsl r1, r4, #0x18 add r0, r5, #0x0 lsr r1, r1, #0x18 bl FUN_0207C1E8 lsl r2, r4, #0x18 add r1, r0, #0x0 add r0, r5, #0x0 lsr r2, r2, #0x18 bl FUN_0207D278 _0207D33A: add r0, r4, #0x1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, #0xc blo _0207D312 mov r0, #0x52 lsl r0, r0, #0x4 ldr r0, [r5, r0] mov r1, #0x0 bl FUN_02020130 _0207D350: add sp, #0x8 pop {r3-r7, pc} .balign 4 _0207D354: .word 0x00000408 _0207D358: .word 0x0000068C _0207D35C: .word 0x000004E4 _0207D360: .word 0x00000699 thumb_func_start FUN_0207D364 FUN_0207D364: ; 0x0207D364 push {r3-r7, lr} ldr r7, _0207D3BC ; =0x00000698 add r5, r0, #0x0 mov r4, #0x0 add r6, r7, #0x1 _0207D36E: ldrb r0, [r5, r7] lsl r0, r0, #0x2 add r1, r4, r0 ldrb r0, [r5, r6] cmp r1, r0 bge _0207D3A0 lsl r0, r4, #0x2 add r1, r5, r0 ldr r0, _0207D3C0 ; =0x000004E4 ldr r0, [r1, r0] mov r1, #0x1 bl FUN_020200A0 lsl r1, r4, #0x18 add r0, r5, #0x0 lsr r1, r1, #0x18 bl FUN_0207C1E8 lsl r2, r4, #0x18 add r1, r0, #0x0 add r0, r5, #0x0 lsr r2, r2, #0x18 bl FUN_0207D278 b _0207D3AE _0207D3A0: lsl r0, r4, #0x2 add r1, r5, r0 ldr r0, _0207D3C0 ; =0x000004E4 ldr r0, [r1, r0] mov r1, #0x0 bl FUN_020200A0 _0207D3AE: add r0, r4, #0x1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, #0x8 blo _0207D36E pop {r3-r7, pc} nop _0207D3BC: .word 0x00000698 _0207D3C0: .word 0x000004E4 thumb_func_start FUN_0207D3C4 FUN_0207D3C4: ; 0x0207D3C4 ldr r1, _0207D3E8 ; =0x00000697 ldrb r2, [r0, r1] ldr r1, _0207D3EC ; =0x00000514 ldr r0, [r0, r1] lsl r1, r2, #0x1e lsr r3, r2, #0x2 mov r2, #0x28 mul r2, r3 lsr r1, r1, #0x19 add r1, #0x84 add r2, #0x38 lsl r1, r1, #0x10 lsl r2, r2, #0x10 ldr r3, _0207D3F0 ; =FUN_0200C6E4 asr r1, r1, #0x10 asr r2, r2, #0x10 bx r3 nop _0207D3E8: .word 0x00000697 _0207D3EC: .word 0x00000514 _0207D3F0: .word FUN_0200C6E4 thumb_func_start FUN_0207D3F4 FUN_0207D3F4: ; 0x0207D3F4 push {r4, lr} add r4, r0, #0x0 mov r0, #0x52 lsl r0, r0, #0x4 ldr r0, [r4, r0] bl FUN_02020128 cmp r0, #0x1 bne _0207D414 mov r0, #0x52 lsl r0, r0, #0x4 mov r1, #0x1 ldr r0, [r4, r0] lsl r1, r1, #0xc bl FUN_020201E4 _0207D414: pop {r4, pc} .balign 4 thumb_func_start FUN_0207D418 FUN_0207D418: ; 0x0207D418 push {r3-r7, lr} add r5, r0, #0x0 cmp r1, #0x0 bne _0207D43E mov r4, #0x0 ldr r6, _0207D4C0 ; =0x00000524 add r7, r4, #0x0 _0207D426: lsl r0, r4, #0x2 add r0, r5, r0 ldr r0, [r0, r6] add r1, r7, #0x0 bl FUN_020200A0 add r0, r4, #0x1 lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, #0x5 blo _0207D426 pop {r3-r7, pc} _0207D43E: ldr r0, _0207D4C4 ; =0x00000295 ldrb r1, [r5, r0] add r0, r0, #0x1 ldrb r0, [r5, r0] add r4, r1, #0x0 cmp r1, r0 bge _0207D44E add r4, r0, #0x0 _0207D44E: ldr r0, _0207D4C8 ; =0x00000297 ldrb r0, [r5, r0] cmp r4, r0 bge _0207D458 add r4, r0, #0x0 _0207D458: mov r0, #0xa6 lsl r0, r0, #0x2 ldrb r0, [r5, r0] cmp r4, r0 bge _0207D464 add r4, r0, #0x0 _0207D464: ldr r0, _0207D4CC ; =0x00000299 ldrb r0, [r5, r0] cmp r4, r0 bge _0207D46E add r4, r0, #0x0 _0207D46E: ldr r0, _0207D4C0 ; =0x00000524 ldr r3, _0207D4D0 ; =0x020FA75C ldr r0, [r5, r0] add r2, r4, #0x0 bl FUN_0207D4F4 ldr r1, _0207D4D4 ; =0x00000296 ldr r0, _0207D4D8 ; =0x00000528 ldrb r1, [r5, r1] ldr r0, [r5, r0] ldr r3, _0207D4DC ; =0x020FA764 add r2, r4, #0x0 bl FUN_0207D4F4 ldr r1, _0207D4C8 ; =0x00000297 ldr r0, _0207D4E0 ; =0x0000052C ldrb r1, [r5, r1] ldr r0, [r5, r0] ldr r3, _0207D4E4 ; =0x020FA76C add r2, r4, #0x0 bl FUN_0207D4F4 mov r1, #0x53 lsl r1, r1, #0x4 ldr r0, [r5, r1] lsr r1, r1, #0x1 ldrb r1, [r5, r1] ldr r3, _0207D4E8 ; =0x020FA774 add r2, r4, #0x0 bl FUN_0207D4F4 ldr r1, _0207D4CC ; =0x00000299 ldr r0, _0207D4EC ; =0x00000534 ldrb r1, [r5, r1] ldr r0, [r5, r0] ldr r3, _0207D4F0 ; =0x020FA77C add r2, r4, #0x0 bl FUN_0207D4F4 pop {r3-r7, pc} nop _0207D4C0: .word 0x00000524 _0207D4C4: .word 0x00000295 _0207D4C8: .word 0x00000297 _0207D4CC: .word 0x00000299 _0207D4D0: .word 0x020FA75C _0207D4D4: .word 0x00000296 _0207D4D8: .word 0x00000528 _0207D4DC: .word 0x020FA764 _0207D4E0: .word 0x0000052C _0207D4E4: .word 0x020FA76C _0207D4E8: .word 0x020FA774 _0207D4EC: .word 0x00000534 _0207D4F0: .word 0x020FA77C thumb_func_start FUN_0207D4F4 FUN_0207D4F4: ; 0x0207D4F4 push {r4-r6, lr} add r5, r1, #0x0 add r6, r0, #0x0 add r4, r3, #0x0 cmp r5, #0x0 beq _0207D504 cmp r5, r2 beq _0207D50E _0207D504: add r0, r6, #0x0 mov r1, #0x0 bl FUN_020200A0 pop {r4-r6, pc} _0207D50E: mov r1, #0x1 bl FUN_020200A0 mov r0, #0x0 ldrsh r1, [r4, r0] mov r0, #0x4 ldrsh r0, [r4, r0] cmp r1, r0 blt _0207D534 sub r1, r1, r0 lsl r2, r1, #0x8 asr r1, r2, #0x7 lsr r1, r1, #0x18 add r1, r2, r1 asr r1, r1, #0x8 mul r1, r5 lsr r1, r1, #0x8 add r1, r0, r1 b _0207D546 _0207D534: sub r1, r0, r1 lsl r2, r1, #0x8 asr r1, r2, #0x7 lsr r1, r1, #0x18 add r1, r2, r1 asr r1, r1, #0x8 mul r1, r5 lsr r1, r1, #0x8 sub r1, r0, r1 _0207D546: mov r0, #0x2 ldrsh r2, [r4, r0] mov r0, #0x6 ldrsh r0, [r4, r0] cmp r2, r0 blt _0207D566 sub r2, r2, r0 lsl r3, r2, #0x8 asr r2, r3, #0x7 lsr r2, r2, #0x18 add r2, r3, r2 asr r2, r2, #0x8 mul r2, r5 lsr r2, r2, #0x8 add r2, r0, r2 b _0207D578 _0207D566: sub r2, r0, r2 lsl r3, r2, #0x8 asr r2, r3, #0x7 lsr r2, r2, #0x18 add r2, r3, r2 asr r2, r2, #0x8 mul r2, r5 lsr r2, r2, #0x8 sub r2, r0, r2 _0207D578: lsl r1, r1, #0x10 lsl r2, r2, #0x10 add r0, r6, #0x0 asr r1, r1, #0x10 asr r2, r2, #0x10 bl FUN_0200C6E4 add r0, r6, #0x0 mov r1, #0x0 bl FUN_02020208 add r0, r6, #0x0 mov r1, #0x0 bl FUN_02020130 pop {r4-r6, pc} thumb_func_start FUN_0207D598 FUN_0207D598: ; 0x0207D598 push {r3-r7, lr} mov r7, #0x1 ldr r6, _0207D5B8 ; =0x00000524 add r5, r0, #0x0 mov r4, #0x0 lsl r7, r7, #0xc _0207D5A4: ldr r0, [r5, r6] add r1, r7, #0x0 bl FUN_020201E4 add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, #0x5 blo _0207D5A4 pop {r3-r7, pc} nop _0207D5B8: .word 0x00000524 thumb_func_start FUN_0207D5BC FUN_0207D5BC: ; 0x0207D5BC push {r3-r7, lr} add r7, r0, #0x0 mov r5, #0x0 add r4, r7, #0x4 _0207D5C4: ldr r2, _0207D600 ; =0x020FB4AC lsl r6, r5, #0x4 lsl r3, r5, #0x3 ldr r0, [r7, #0x0] add r1, r4, r6 add r2, r2, r3 bl FUN_02019150 add r0, r4, r6 mov r1, #0x0 bl FUN_02019620 add r0, r5, #0x1 lsl r0, r0, #0x10 lsr r5, r0, #0x10 cmp r5, #0x24 blo _0207D5C4 add r0, r7, #0x0 bl FUN_0207DB78 add r0, r7, #0x0 bl FUN_0207D768 add r0, r7, #0x0 bl FUN_0207D800 add r0, r7, #0x0 bl FUN_0207D8A0 pop {r3-r7, pc} .balign 4 _0207D600: .word 0x020FB4AC thumb_func_start FUN_0207D604 FUN_0207D604: ; 0x0207D604 push {r3-r7, lr} add r4, r0, #0x0 ldr r0, _0207D6D8 ; =0x0000068C ldrsb r0, [r4, r0] cmp r0, #0x7 bhi _0207D6D4 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0207D61C: ; jump table (using 16-bit offset) .short _0207D62C - _0207D61C - 2; case 0 .short _0207D638 - _0207D61C - 2; case 1 .short _0207D644 - _0207D61C - 2; case 2 .short _0207D650 - _0207D61C - 2; case 3 .short _0207D674 - _0207D61C - 2; case 4 .short _0207D65C - _0207D61C - 2; case 5 .short _0207D668 - _0207D61C - 2; case 6 .short _0207D674 - _0207D61C - 2; case 7 _0207D62C: mov r0, #0x92 mov r1, #0x6 lsl r0, r0, #0x2 ldr r5, _0207D6DC ; =0x020FB3FC str r1, [r4, r0] b _0207D692 _0207D638: mov r0, #0x92 mov r1, #0x1 lsl r0, r0, #0x2 ldr r5, _0207D6E0 ; =0x020FB38C str r1, [r4, r0] b _0207D692 _0207D644: mov r0, #0x92 mov r1, #0x8 lsl r0, r0, #0x2 ldr r5, _0207D6E4 ; =0x020FB42C str r1, [r4, r0] b _0207D692 _0207D650: mov r0, #0x92 mov r1, #0x8 lsl r0, r0, #0x2 ldr r5, _0207D6E8 ; =0x020FB46C str r1, [r4, r0] b _0207D692 _0207D65C: mov r0, #0x92 mov r1, #0x6 lsl r0, r0, #0x2 ldr r5, _0207D6EC ; =0x020FB3CC str r1, [r4, r0] b _0207D692 _0207D668: mov r0, #0x92 mov r1, #0x4 lsl r0, r0, #0x2 ldr r5, _0207D6F0 ; =0x020FB3AC str r1, [r4, r0] b _0207D692 _0207D674: mov r0, #0x93 lsl r0, r0, #0x2 ldr r0, [r4, r0] ldrb r0, [r0, #0x12] cmp r0, #0x3 beq _0207D684 cmp r0, #0x4 bne _0207D6D4 _0207D684: mov r0, #0x92 mov r1, #0x3 lsl r0, r0, #0x2 ldr r5, _0207D6F4 ; =0x020FB394 str r1, [r4, r0] b _0207D692 _0207D690: pop {r3-r7, pc} _0207D692: mov r1, #0x92 lsl r1, r1, #0x2 ldr r1, [r4, r1] mov r0, #0x13 lsl r1, r1, #0x18 lsr r1, r1, #0x18 bl FUN_02018FF4 mov r1, #0x91 lsl r1, r1, #0x2 str r0, [r4, r1] add r0, r1, #0x4 ldr r0, [r4, r0] mov r6, #0x0 cmp r0, #0x0 bls _0207D6D4 add r7, r6, #0x0 _0207D6B4: mov r1, #0x91 lsl r1, r1, #0x2 ldr r1, [r4, r1] ldr r0, [r4, #0x0] add r1, r1, r7 add r2, r5, #0x0 bl FUN_02019150 mov r0, #0x92 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r6, r6, #0x1 add r5, #0x8 add r7, #0x10 cmp r6, r0 blo _0207D6B4 _0207D6D4: pop {r3-r7, pc} nop _0207D6D8: .word 0x0000068C _0207D6DC: .word 0x020FB3FC _0207D6E0: .word 0x020FB38C _0207D6E4: .word 0x020FB42C _0207D6E8: .word 0x020FB46C _0207D6EC: .word 0x020FB3CC _0207D6F0: .word 0x020FB3AC _0207D6F4: .word 0x020FB394 thumb_func_start FUN_0207D6F8 FUN_0207D6F8: ; 0x0207D6F8 push {r3, lr} add r1, r0, #0x0 ldr r0, _0207D748 ; =0x0000068C ldrsb r0, [r1, r0] cmp r0, #0x7 bhi _0207D744 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0207D710: ; jump table (using 16-bit offset) .short _0207D732 - _0207D710 - 2; case 0 .short _0207D732 - _0207D710 - 2; case 1 .short _0207D732 - _0207D710 - 2; case 2 .short _0207D732 - _0207D710 - 2; case 3 .short _0207D720 - _0207D710 - 2; case 4 .short _0207D732 - _0207D710 - 2; case 5 .short _0207D732 - _0207D710 - 2; case 6 .short _0207D720 - _0207D710 - 2; case 7 _0207D720: mov r0, #0x93 lsl r0, r0, #0x2 ldr r0, [r1, r0] ldrb r0, [r0, #0x12] cmp r0, #0x3 beq _0207D732 cmp r0, #0x4 beq _0207D732 pop {r3, pc} _0207D732: mov r2, #0x91 lsl r2, r2, #0x2 ldr r0, [r1, r2] add r2, r2, #0x4 ldr r1, [r1, r2] lsl r1, r1, #0x18 lsr r1, r1, #0x18 bl FUN_020191A4 _0207D744: pop {r3, pc} nop _0207D748: .word 0x0000068C thumb_func_start FUN_0207D74C FUN_0207D74C: ; 0x0207D74C push {r3-r5, lr} add r5, r0, #0x0 bl FUN_0207D6F8 mov r4, #0x0 add r5, r5, #0x4 _0207D758: add r0, r5, #0x0 bl FUN_02019178 add r4, r4, #0x1 add r5, #0x10 cmp r4, #0x24 blo _0207D758 pop {r3-r5, pc} thumb_func_start FUN_0207D768 FUN_0207D768: ; 0x0207D768 push {r3-r5, lr} sub sp, #0x10 mov r4, #0x89 add r5, r0, #0x0 lsl r4, r4, #0x2 add r0, r5, r4 mov r1, #0x0 bl FUN_02019620 mov r1, #0x0 add r2, r4, #0x0 str r1, [sp, #0x0] mov r0, #0xff str r0, [sp, #0x4] ldr r0, _0207D7F4 ; =0x000F0E00 add r2, #0x30 str r0, [sp, #0x8] str r1, [sp, #0xc] ldr r2, [r5, r2] add r0, r5, r4 add r3, r1, #0x0 bl FUN_0201BDE0 add r0, r4, #0x0 add r0, #0x3e ldrb r1, [r5, r0] lsl r1, r1, #0x18 lsr r1, r1, #0x1f bne _0207D7E8 add r0, r0, #0x1 ldrb r0, [r5, r0] lsl r0, r0, #0x1e lsr r0, r0, #0x1e bne _0207D7CA ldr r2, _0207D7F8 ; =0x00000674 mov r1, #0x1 ldr r0, [r5, r2] add r2, #0xc ldr r2, [r5, r2] bl FUN_0200A8E0 mov r2, #0xc1 add r0, r5, #0x0 add r1, r5, r4 lsl r2, r2, #0xa mov r3, #0x1 bl FUN_0207D998 b _0207D7E8 _0207D7CA: cmp r0, #0x1 bne _0207D7E8 ldr r2, _0207D7F8 ; =0x00000674 mov r1, #0x2 ldr r0, [r5, r2] add r2, #0xc ldr r2, [r5, r2] bl FUN_0200A8E0 ldr r2, _0207D7FC ; =0x00050600 add r0, r5, #0x0 add r1, r5, r4 mov r3, #0x1 bl FUN_0207D998 _0207D7E8: add r0, r5, r4 bl FUN_02019220 add sp, #0x10 pop {r3-r5, pc} nop _0207D7F4: .word 0x000F0E00 _0207D7F8: .word 0x00000674 _0207D7FC: .word 0x00050600 thumb_func_start FUN_0207D800 FUN_0207D800: ; 0x0207D800 push {r4-r6, lr} sub sp, #0x10 mov r6, #0x85 add r5, r0, #0x0 lsl r6, r6, #0x2 add r0, r5, r6 mov r1, #0x0 bl FUN_02019620 add r0, r6, #0x0 add r0, #0x8c ldr r0, [r5, r0] lsl r0, r0, #0x3 lsr r0, r0, #0x1f bne _0207D88A mov r0, #0x5 str r0, [sp, #0x0] mov r0, #0x67 lsl r0, r0, #0x4 ldr r0, [r5, r0] mov r1, #0x1 add r2, r5, r6 mov r3, #0x0 bl FUN_0200B9A8 ldr r0, _0207D894 ; =0x00000674 mov r1, #0x3 ldr r0, [r5, r0] bl FUN_0200A914 mov r1, #0x0 add r4, r0, #0x0 add r2, r6, #0x0 str r1, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] add r2, #0x4e ldrb r2, [r5, r2] ldr r0, _0207D898 ; =0x0000067C mov r3, #0x3 lsl r2, r2, #0x19 ldr r0, [r5, r0] lsr r2, r2, #0x19 bl FUN_0200AD38 ldr r1, _0207D898 ; =0x0000067C add r2, r4, #0x0 ldr r0, [r5, r1] add r1, r1, #0x4 ldr r1, [r5, r1] bl FUN_0200B7B8 add r0, r4, #0x0 bl FUN_02021A20 mov r1, #0x0 mov r2, #0x1a str r1, [sp, #0x0] mov r0, #0xff str r0, [sp, #0x4] ldr r0, _0207D89C ; =0x00010200 lsl r2, r2, #0x6 str r0, [sp, #0x8] str r1, [sp, #0xc] ldr r2, [r5, r2] add r0, r5, r6 mov r3, #0x10 bl FUN_0201BDE0 _0207D88A: add r0, r5, r6 bl FUN_02019220 add sp, #0x10 pop {r4-r6, pc} .balign 4 _0207D894: .word 0x00000674 _0207D898: .word 0x0000067C _0207D89C: .word 0x00010200 thumb_func_start FUN_0207D8A0 FUN_0207D8A0: ; 0x0207D8A0 push {r3-r5, lr} add r5, r0, #0x0 mov r0, #0x81 lsl r0, r0, #0x2 add r0, r5, r0 mov r1, #0x0 bl FUN_02019620 ldr r0, _0207D918 ; =0x0000025E ldrh r2, [r5, r0] cmp r2, #0x0 beq _0207D8E4 ldr r0, _0207D91C ; =0x0000067C mov r1, #0x0 ldr r0, [r5, r0] bl FUN_0200AE38 ldr r0, _0207D920 ; =0x00000674 mov r1, #0x5 ldr r0, [r5, r0] bl FUN_0200A914 add r4, r0, #0x0 ldr r1, _0207D91C ; =0x0000067C add r2, r4, #0x0 ldr r0, [r5, r1] add r1, r1, #0x4 ldr r1, [r5, r1] bl FUN_0200B7B8 add r0, r4, #0x0 bl FUN_02021A20 b _0207D8F2 _0207D8E4: ldr r2, _0207D920 ; =0x00000674 mov r1, #0x6 ldr r0, [r5, r2] add r2, #0xc ldr r2, [r5, r2] bl FUN_0200A8E0 _0207D8F2: mov r2, #0x81 lsl r2, r2, #0x2 add r1, r5, r2 add r0, r5, #0x0 lsl r2, r2, #0x7 mov r3, #0x0 bl FUN_0207D998 add r0, r5, #0x0 add r0, #0x64 bl FUN_02019220 mov r0, #0x81 lsl r0, r0, #0x2 add r0, r5, r0 bl FUN_02019220 pop {r3-r5, pc} nop _0207D918: .word 0x0000025E _0207D91C: .word 0x0000067C _0207D920: .word 0x00000674 thumb_func_start FUN_0207D924 FUN_0207D924: ; 0x0207D924 push {r3-r5, lr} add r5, r0, #0x0 mov r0, #0x8d lsl r0, r0, #0x2 add r4, r1, #0x0 add r0, r5, r0 mov r1, #0x0 bl FUN_02019620 mov r0, #0x0 str r0, [sp, #0x0] ldr r3, _0207D954 ; =0x000F0E00 add r0, r5, #0x0 mov r1, #0x23 add r2, r4, #0x0 bl FUN_0207DA1C mov r0, #0x8d lsl r0, r0, #0x2 add r0, r5, r0 bl FUN_02019220 pop {r3-r5, pc} nop _0207D954: .word 0x000F0E00 thumb_func_start FUN_0207D958 FUN_0207D958: ; 0x0207D958 push {r4, lr} mov r3, #0x93 lsl r3, r3, #0x2 add r1, r0, #0x0 add r2, r3, #0x0 add r2, #0x18 ldr r0, [r1, r3] ldr r4, [r1, r2] ldr r2, [r0, #0xc] cmp r4, r2 bne _0207D98E add r2, r3, #0x0 add r2, #0x48 ldrb r2, [r1, r2] ldrb r0, [r0, #0x10] cmp r2, r0 bne _0207D98E ldr r2, _0207D994 ; =0x00000684 add r3, #0xc ldr r0, [r1, r3] ldr r1, [r1, r2] bl FUN_02021CE0 cmp r0, #0x0 bne _0207D98E mov r0, #0x1 pop {r4, pc} _0207D98E: mov r0, #0x0 pop {r4, pc} nop _0207D994: .word 0x00000684 thumb_func_start FUN_0207D998 FUN_0207D998: ; 0x0207D998 push {r3-r7, lr} sub sp, #0x10 add r4, r0, #0x0 add r6, r1, #0x0 add r7, r2, #0x0 cmp r3, #0x0 beq _0207D9B0 cmp r3, #0x1 beq _0207D9B4 cmp r3, #0x2 beq _0207D9D8 b _0207D9FE _0207D9B0: mov r3, #0x0 b _0207D9FE _0207D9B4: mov r1, #0x1a lsl r1, r1, #0x6 mov r0, #0x0 ldr r1, [r4, r1] add r2, r0, #0x0 bl FUN_02002E14 lsl r0, r0, #0x18 lsr r5, r0, #0x18 add r0, r6, #0x0 bl FUN_0201AB0C lsl r0, r0, #0x1b lsr r0, r0, #0x18 sub r0, r0, r5 lsl r0, r0, #0x18 lsr r3, r0, #0x18 b _0207D9FE _0207D9D8: mov r1, #0x1a lsl r1, r1, #0x6 mov r0, #0x0 ldr r1, [r4, r1] add r2, r0, #0x0 bl FUN_02002E14 lsl r0, r0, #0x18 lsr r5, r0, #0x18 add r0, r6, #0x0 bl FUN_0201AB0C lsl r0, r0, #0x1b lsr r0, r0, #0x18 sub r1, r0, r5 lsr r0, r1, #0x1f add r0, r1, r0 lsl r0, r0, #0x17 lsr r3, r0, #0x18 _0207D9FE: mov r1, #0x0 str r1, [sp, #0x0] mov r0, #0xff str r0, [sp, #0x4] str r7, [sp, #0x8] mov r2, #0x1a str r1, [sp, #0xc] lsl r2, r2, #0x6 ldr r2, [r4, r2] add r0, r6, #0x0 bl FUN_0201BDE0 add sp, #0x10 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0207DA1C FUN_0207DA1C: ; 0x0207DA1C push {r4-r6, lr} add r6, r3, #0x0 ldr r3, _0207DA44 ; =0x00000674 add r5, r0, #0x0 ldr r0, [r5, r3] add r4, r1, #0x0 add r3, #0xc add r1, r2, #0x0 ldr r2, [r5, r3] bl FUN_0200A8E0 add r2, r5, #0x4 lsl r1, r4, #0x4 add r1, r2, r1 ldr r3, [sp, #0x10] add r0, r5, #0x0 add r2, r6, #0x0 bl FUN_0207D998 pop {r4-r6, pc} .balign 4 _0207DA44: .word 0x00000674 thumb_func_start FUN_0207DA48 FUN_0207DA48: ; 0x0207DA48 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 ldr r0, _0207DA8C ; =0x00000674 add r6, r2, #0x0 ldr r0, [r5, r0] add r7, r3, #0x0 bl FUN_0200A914 add r4, r0, #0x0 add r0, sp, #0x10 ldrb r0, [r0, #0x10] mov r1, #0x0 add r2, r6, #0x0 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] ldr r0, _0207DA90 ; =0x0000067C add r3, r7, #0x0 ldr r0, [r5, r0] bl FUN_0200AD38 ldr r1, _0207DA90 ; =0x0000067C add r2, r4, #0x0 ldr r0, [r5, r1] add r1, r1, #0x4 ldr r1, [r5, r1] bl FUN_0200B7B8 add r0, r4, #0x0 bl FUN_02021A20 add sp, #0x8 pop {r3-r7, pc} .balign 4 _0207DA8C: .word 0x00000674 _0207DA90: .word 0x0000067C thumb_func_start FUN_0207DA94 FUN_0207DA94: ; 0x0207DA94 push {r3-r7, lr} sub sp, #0x20 add r4, r0, #0x0 str r3, [sp, #0x10] mov r0, #0x91 lsl r0, r0, #0x2 lsl r7, r1, #0x4 ldr r3, _0207DB70 ; =0x00000674 ldr r5, [r4, r0] ldr r0, [r4, r3] add r3, #0xc add r1, r2, #0x0 ldr r2, [r4, r3] bl FUN_0200A8E0 mov r1, #0x1a lsl r1, r1, #0x6 mov r0, #0x0 ldr r1, [r4, r1] add r2, r0, #0x0 bl FUN_02002E14 add r1, sp, #0x48 ldrb r2, [r1, #0x0] lsr r1, r0, #0x1 sub r1, r2, r1 lsl r1, r1, #0x10 lsr r1, r1, #0x10 add r0, r1, r0 str r1, [sp, #0x14] lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x18] add r0, sp, #0x4c ldrb r0, [r0, #0x0] mov r2, #0x1a mov r1, #0x0 str r0, [sp, #0x1c] str r0, [sp, #0x0] mov r0, #0xff str r0, [sp, #0x4] ldr r0, _0207DB74 ; =0x00010200 lsl r2, r2, #0x6 str r0, [sp, #0x8] str r1, [sp, #0xc] ldr r2, [r4, r2] ldr r3, [sp, #0x14] add r0, r5, r7 bl FUN_0201BDE0 mov r0, #0x0 str r0, [sp, #0x0] add r3, sp, #0x28 ldrh r2, [r3, #0x14] ldrb r3, [r3, #0x1c] ldr r1, [sp, #0x10] add r0, r4, #0x0 bl FUN_0207DA48 mov r1, #0x1a lsl r1, r1, #0x6 mov r0, #0x0 ldr r1, [r4, r1] add r2, r0, #0x0 bl FUN_02002E14 mov r12, r0 ldr r0, [sp, #0x1c] mov r2, #0x1a str r0, [sp, #0x0] mov r0, #0xff str r0, [sp, #0x4] ldr r0, _0207DB74 ; =0x00010200 mov r1, #0x0 str r0, [sp, #0x8] str r1, [sp, #0xc] lsl r2, r2, #0x6 ldr r3, [sp, #0x14] mov r6, r12 ldr r2, [r4, r2] add r0, r5, r7 sub r3, r3, r6 bl FUN_0201BDE0 mov r0, #0x0 str r0, [sp, #0x0] add r3, sp, #0x28 ldrh r2, [r3, #0x18] ldrb r3, [r3, #0x1c] ldr r1, [sp, #0x38] add r0, r4, #0x0 bl FUN_0207DA48 ldr r0, [sp, #0x1c] mov r2, #0x1a str r0, [sp, #0x0] mov r0, #0xff str r0, [sp, #0x4] ldr r0, _0207DB74 ; =0x00010200 mov r1, #0x0 str r0, [sp, #0x8] str r1, [sp, #0xc] lsl r2, r2, #0x6 ldr r2, [r4, r2] ldr r3, [sp, #0x18] add r0, r5, r7 bl FUN_0201BDE0 add sp, #0x20 pop {r3-r7, pc} .balign 4 _0207DB70: .word 0x00000674 _0207DB74: .word 0x00010200 thumb_func_start FUN_0207DB78 FUN_0207DB78: ; 0x0207DB78 push {r4, lr} sub sp, #0x10 ldr r3, _0207DD7C ; =0x000F0E00 mov r1, #0x0 mov r2, #0x7 add r4, r0, #0x0 str r1, [sp, #0x0] bl FUN_0207DA1C mov r0, #0x0 str r0, [sp, #0x0] ldr r3, _0207DD7C ; =0x000F0E00 add r0, r4, #0x0 mov r1, #0x1 mov r2, #0x17 bl FUN_0207DA1C mov r0, #0x0 str r0, [sp, #0x0] ldr r3, _0207DD7C ; =0x000F0E00 add r0, r4, #0x0 mov r1, #0x2 mov r2, #0x6d bl FUN_0207DA1C mov r0, #0x0 str r0, [sp, #0x0] ldr r3, _0207DD7C ; =0x000F0E00 add r0, r4, #0x0 mov r1, #0x3 mov r2, #0x7e bl FUN_0207DA1C mov r0, #0x0 str r0, [sp, #0x0] ldr r3, _0207DD7C ; =0x000F0E00 add r0, r4, #0x0 mov r1, #0x4 mov r2, #0x80 bl FUN_0207DA1C mov r0, #0x0 str r0, [sp, #0x0] ldr r3, _0207DD7C ; =0x000F0E00 add r0, r4, #0x0 mov r1, #0x5 mov r2, #0x9d bl FUN_0207DA1C mov r0, #0x0 str r0, [sp, #0x0] ldr r3, _0207DD7C ; =0x000F0E00 add r0, r4, #0x0 mov r1, #0x6 mov r2, #0x4 bl FUN_0207DA1C mov r0, #0x0 str r0, [sp, #0x0] ldr r3, _0207DD7C ; =0x000F0E00 add r0, r4, #0x0 mov r1, #0x7 mov r2, #0x8 bl FUN_0207DA1C mov r0, #0x0 str r0, [sp, #0x0] ldr r3, _0207DD7C ; =0x000F0E00 add r0, r4, #0x0 mov r1, #0x8 mov r2, #0xa bl FUN_0207DA1C mov r0, #0x0 str r0, [sp, #0x0] ldr r3, _0207DD7C ; =0x000F0E00 add r0, r4, #0x0 mov r1, #0x9 mov r2, #0xc bl FUN_0207DA1C mov r0, #0x0 str r0, [sp, #0x0] ldr r3, _0207DD7C ; =0x000F0E00 add r0, r4, #0x0 mov r1, #0xa mov r2, #0xd bl FUN_0207DA1C mov r0, #0x0 str r0, [sp, #0x0] ldr r3, _0207DD7C ; =0x000F0E00 add r0, r4, #0x0 mov r1, #0xb mov r2, #0xf bl FUN_0207DA1C mov r0, #0x0 str r0, [sp, #0x0] ldr r3, _0207DD7C ; =0x000F0E00 add r0, r4, #0x0 mov r1, #0xc mov r2, #0x11 bl FUN_0207DA1C mov r0, #0x0 str r0, [sp, #0x0] ldr r3, _0207DD7C ; =0x000F0E00 add r0, r4, #0x0 mov r1, #0xd mov r2, #0x13 bl FUN_0207DA1C mov r0, #0x0 str r0, [sp, #0x0] ldr r3, _0207DD7C ; =0x000F0E00 add r0, r4, #0x0 mov r1, #0xf mov r2, #0x6e bl FUN_0207DA1C mov r0, #0x0 str r0, [sp, #0x0] ldr r3, _0207DD7C ; =0x000F0E00 add r0, r4, #0x0 mov r1, #0x10 mov r2, #0x6f bl FUN_0207DA1C mov r0, #0x0 str r0, [sp, #0x0] ldr r3, _0207DD7C ; =0x000F0E00 add r0, r4, #0x0 mov r1, #0x11 mov r2, #0x70 bl FUN_0207DA1C mov r0, #0x0 str r0, [sp, #0x0] ldr r3, _0207DD7C ; =0x000F0E00 add r0, r4, #0x0 mov r1, #0x12 mov r2, #0x71 bl FUN_0207DA1C mov r0, #0x0 str r0, [sp, #0x0] ldr r3, _0207DD7C ; =0x000F0E00 add r0, r4, #0x0 mov r1, #0x13 mov r2, #0x72 bl FUN_0207DA1C mov r0, #0x0 str r0, [sp, #0x0] ldr r3, _0207DD7C ; =0x000F0E00 add r0, r4, #0x0 mov r1, #0x14 mov r2, #0x73 bl FUN_0207DA1C mov r0, #0x0 str r0, [sp, #0x0] ldr r3, _0207DD7C ; =0x000F0E00 add r0, r4, #0x0 mov r1, #0x15 mov r2, #0x74 bl FUN_0207DA1C mov r0, #0x0 str r0, [sp, #0x0] ldr r3, _0207DD7C ; =0x000F0E00 add r0, r4, #0x0 mov r1, #0x16 mov r2, #0x7f bl FUN_0207DA1C ldr r2, _0207DD80 ; =0x00000674 mov r1, #0x92 ldr r0, [r4, r2] add r2, #0xc ldr r2, [r4, r2] bl FUN_0200A8E0 mov r0, #0x2 str r0, [sp, #0x0] mov r2, #0xff str r2, [sp, #0x4] ldr r0, _0207DD7C ; =0x000F0E00 mov r1, #0x0 str r0, [sp, #0x8] add r2, #0x85 add r0, r4, r2 mov r2, #0x1a str r1, [sp, #0xc] lsl r2, r2, #0x6 ldr r2, [r4, r2] add r3, r1, #0x0 bl FUN_0201BDE0 mov r0, #0x0 str r0, [sp, #0x0] ldr r3, _0207DD7C ; =0x000F0E00 add r0, r4, #0x0 mov r1, #0x19 mov r2, #0x95 bl FUN_0207DA1C mov r0, #0x0 str r0, [sp, #0x0] ldr r3, _0207DD7C ; =0x000F0E00 add r0, r4, #0x0 mov r1, #0x1a mov r2, #0x93 bl FUN_0207DA1C mov r0, #0x0 str r0, [sp, #0x0] ldr r3, _0207DD7C ; =0x000F0E00 add r0, r4, #0x0 mov r1, #0x1b mov r2, #0x94 bl FUN_0207DA1C mov r0, #0x2 str r0, [sp, #0x0] ldr r3, _0207DD7C ; =0x000F0E00 add r0, r4, #0x0 mov r1, #0x1c mov r2, #0xa2 bl FUN_0207DA1C mov r0, #0x2 str r0, [sp, #0x0] ldr r3, _0207DD84 ; =0x00010200 add r0, r4, #0x0 mov r1, #0x1d mov r2, #0xa0 bl FUN_0207DA1C mov r0, #0x0 str r0, [sp, #0x0] ldr r3, _0207DD84 ; =0x00010200 add r0, r4, #0x0 mov r1, #0x1e mov r2, #0xb6 bl FUN_0207DA1C mov r0, #0x0 str r0, [sp, #0x0] ldr r3, _0207DD7C ; =0x000F0E00 add r0, r4, #0x0 mov r1, #0x1f mov r2, #0xb3 bl FUN_0207DA1C add sp, #0x10 pop {r4, pc} .balign 4 _0207DD7C: .word 0x000F0E00 _0207DD80: .word 0x00000674 _0207DD84: .word 0x00010200 thumb_func_start FUN_0207DD88 FUN_0207DD88: ; 0x0207DD88 push {r4, lr} sub sp, #0x10 mov r2, #0x0 add r4, r0, #0x0 str r2, [sp, #0x0] mov r0, #0x20 str r0, [sp, #0x4] mov r0, #0x2 str r0, [sp, #0x8] mov r0, #0x10 str r0, [sp, #0xc] ldr r0, [r4, #0x0] mov r1, #0x1 add r3, r2, #0x0 bl FUN_02018540 mov r0, #0x2 str r0, [sp, #0x0] mov r0, #0x12 str r0, [sp, #0x4] mov r0, #0x16 str r0, [sp, #0x8] mov r0, #0x10 str r0, [sp, #0xc] ldr r0, [r4, #0x0] mov r1, #0x1 mov r2, #0x0 mov r3, #0xe bl FUN_02018540 ldr r0, _0207DE38 ; =0x0000068C ldrsb r0, [r4, r0] cmp r0, #0x7 bhi _0207DE34 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0207DDD8: ; jump table (using 16-bit offset) .short _0207DDE8 - _0207DDD8 - 2; case 0 .short _0207DDF2 - _0207DDD8 - 2; case 1 .short _0207DDFC - _0207DDD8 - 2; case 2 .short _0207DE10 - _0207DDD8 - 2; case 3 .short _0207DE06 - _0207DDD8 - 2; case 4 .short _0207DE1A - _0207DDD8 - 2; case 5 .short _0207DE24 - _0207DDD8 - 2; case 6 .short _0207DE2E - _0207DDD8 - 2; case 7 _0207DDE8: add r0, r4, #0x0 bl FUN_0207DE3C add sp, #0x10 pop {r4, pc} _0207DDF2: add r0, r4, #0x0 bl FUN_0207E190 add sp, #0x10 pop {r4, pc} _0207DDFC: add r0, r4, #0x0 bl FUN_0207E200 add sp, #0x10 pop {r4, pc} _0207DE06: add r0, r4, #0x0 bl FUN_0207E4A0 add sp, #0x10 pop {r4, pc} _0207DE10: add r0, r4, #0x0 bl FUN_0207E594 add sp, #0x10 pop {r4, pc} _0207DE1A: add r0, r4, #0x0 bl FUN_0207E650 add sp, #0x10 pop {r4, pc} _0207DE24: add r0, r4, #0x0 bl FUN_0207E70C add sp, #0x10 pop {r4, pc} _0207DE2E: add r0, r4, #0x0 bl FUN_0207E788 _0207DE34: add sp, #0x10 pop {r4, pc} .balign 4 _0207DE38: .word 0x0000068C thumb_func_start FUN_0207DE3C FUN_0207DE3C: ; 0x0207DE3C push {r3-r5, lr} sub sp, #0x10 add r4, r0, #0x0 add r0, r4, #0x4 bl FUN_02019220 add r0, r4, #0x0 add r0, #0x74 bl FUN_02019220 add r0, r4, #0x0 add r0, #0x84 bl FUN_02019220 add r0, r4, #0x0 add r0, #0x94 bl FUN_02019220 add r0, r4, #0x0 add r0, #0xa4 bl FUN_02019220 add r0, r4, #0x0 add r0, #0xb4 bl FUN_02019220 add r0, r4, #0x0 add r0, #0xc4 bl FUN_02019220 add r0, r4, #0x0 add r0, #0xd4 bl FUN_02019220 add r0, r4, #0x0 add r0, #0xe4 bl FUN_02019220 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 bl FUN_02019620 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 add r0, #0x10 bl FUN_02019620 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 add r0, #0x20 bl FUN_02019620 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 add r0, #0x30 bl FUN_02019620 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 add r0, #0x40 bl FUN_02019620 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 add r0, #0x50 bl FUN_02019620 mov r1, #0x93 lsl r1, r1, #0x2 ldr r0, [r4, r1] add r1, #0x10 ldrh r1, [r4, r1] ldr r0, [r0, #0x1c] bl FUN_0206BB48 add r2, r0, #0x0 beq _0207DEFE mov r0, #0x2 str r0, [sp, #0x0] add r0, r4, #0x0 mov r1, #0x9 mov r3, #0x3 bl FUN_0207DA48 b _0207DF0C _0207DEFE: ldr r2, _0207E0B4 ; =0x00000674 mov r1, #0x16 ldr r0, [r4, r2] add r2, #0xc ldr r2, [r4, r2] bl FUN_0200A8E0 _0207DF0C: mov r1, #0x2a lsl r1, r1, #0x4 ldr r0, [r4, r1] lsl r0, r0, #0x2 lsr r0, r0, #0x1f bne _0207DF28 sub r1, #0x5c ldr r1, [r4, r1] ldr r2, _0207E0B8 ; =0x00010200 add r0, r4, #0x0 mov r3, #0x2 bl FUN_0207D998 b _0207DF36 _0207DF28: sub r1, #0x5c ldr r1, [r4, r1] ldr r2, _0207E0BC ; =0x00050600 add r0, r4, #0x0 mov r3, #0x2 bl FUN_0207D998 _0207DF36: mov r1, #0x25 lsl r1, r1, #0x4 mov r0, #0x0 ldr r1, [r4, r1] add r2, r0, #0x0 bl FUN_02002E14 mov r2, #0x91 lsl r2, r2, #0x2 ldr r3, [r4, r2] mov r1, #0x0 add r5, r0, #0x0 str r1, [sp, #0x0] mov r0, #0xff str r0, [sp, #0x4] ldr r0, _0207E0B8 ; =0x00010200 add r2, #0xc str r0, [sp, #0x8] str r1, [sp, #0xc] add r0, r3, #0x0 ldrb r3, [r3, #0x17] ldr r2, [r4, r2] add r0, #0x10 lsl r3, r3, #0x3 sub r3, r3, r5 lsr r3, r3, #0x1 bl FUN_0201BDE0 mov r1, #0x96 lsl r1, r1, #0x2 mov r0, #0x0 ldr r1, [r4, r1] add r2, r0, #0x0 bl FUN_02002E14 mov r5, #0x91 lsl r5, r5, #0x2 ldr r2, [r4, r5] add r1, r2, #0x0 add r1, #0x27 ldrb r1, [r1, #0x0] lsl r1, r1, #0x3 sub r0, r1, r0 lsr r3, r0, #0x1 add r0, r5, #0x0 add r0, #0x50 ldrb r0, [r4, r0] cmp r0, #0x0 bne _0207DFB6 mov r1, #0x0 str r1, [sp, #0x0] mov r0, #0xff str r0, [sp, #0x4] mov r0, #0xc1 lsl r0, r0, #0xa str r0, [sp, #0x8] add r2, #0x20 str r1, [sp, #0xc] add r5, #0x14 add r0, r2, #0x0 ldr r2, [r4, r5] bl FUN_0201BDE0 b _0207DFD0 _0207DFB6: mov r1, #0x0 str r1, [sp, #0x0] mov r0, #0xff str r0, [sp, #0x4] ldr r0, _0207E0BC ; =0x00050600 add r2, #0x20 str r0, [sp, #0x8] str r1, [sp, #0xc] add r5, #0x14 add r0, r2, #0x0 ldr r2, [r4, r5] bl FUN_0201BDE0 _0207DFD0: mov r0, #0x2 mov r2, #0x99 str r0, [sp, #0x0] lsl r2, r2, #0x2 ldr r2, [r4, r2] add r0, r4, #0x0 lsl r2, r2, #0x10 mov r1, #0x10 lsr r2, r2, #0x10 mov r3, #0x5 bl FUN_0207DA48 mov r1, #0x91 lsl r1, r1, #0x2 ldr r1, [r4, r1] ldr r2, _0207E0B8 ; =0x00010200 add r0, r4, #0x0 add r1, #0x30 mov r3, #0x2 bl FUN_0207D998 mov r0, #0x1 mov r2, #0x9a str r0, [sp, #0x0] lsl r2, r2, #0x2 ldr r2, [r4, r2] add r0, r4, #0x0 mov r1, #0x12 mov r3, #0x7 bl FUN_0207DA48 mov r1, #0x91 lsl r1, r1, #0x2 ldr r1, [r4, r1] ldr r2, _0207E0B8 ; =0x00010200 add r0, r4, #0x0 add r1, #0x40 mov r3, #0x2 bl FUN_0207D998 ldr r3, _0207E0C0 ; =0x00000262 ldrb r0, [r4, r3] lsl r0, r0, #0x19 lsr r0, r0, #0x19 cmp r0, #0x64 bhs _0207E048 mov r0, #0x1 add r2, r3, #0x0 str r0, [sp, #0x0] add r2, #0xe ldr r5, [r4, r2] add r2, r3, #0x6 ldr r2, [r4, r2] add r0, r4, #0x0 mov r1, #0x15 sub r2, r5, r2 mov r3, #0x7 bl FUN_0207DA48 b _0207E058 _0207E048: mov r0, #0x1 str r0, [sp, #0x0] add r0, r4, #0x0 mov r1, #0x15 mov r2, #0x0 mov r3, #0x7 bl FUN_0207DA48 _0207E058: mov r1, #0x91 lsl r1, r1, #0x2 ldr r1, [r4, r1] ldr r2, _0207E0B8 ; =0x00010200 add r0, r4, #0x0 add r1, #0x50 mov r3, #0x2 bl FUN_0207D998 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02019220 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x10 bl FUN_02019220 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x20 bl FUN_02019220 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x30 bl FUN_02019220 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x40 bl FUN_02019220 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x50 bl FUN_02019220 add sp, #0x10 pop {r3-r5, pc} .balign 4 _0207E0B4: .word 0x00000674 _0207E0B8: .word 0x00010200 _0207E0BC: .word 0x00050600 _0207E0C0: .word 0x00000262 thumb_func_start FUN_0207E0C4 FUN_0207E0C4: ; 0x0207E0C4 push {r3-r5, lr} sub sp, #0x10 add r5, r0, #0x0 add r0, r1, #0x0 add r1, r2, #0x0 mov r2, #0x13 bl FUN_0207FD00 add r4, r0, #0x0 ldr r2, [r4, #0x18] cmp r2, #0x0 beq _0207E0F8 ldr r0, [r4, #0x14] mov r1, #0x0 sub r0, r0, #0x1 lsl r0, r0, #0x4 str r0, [sp, #0x0] mov r0, #0xff str r0, [sp, #0x4] ldr r0, _0207E18C ; =0x00010200 add r3, r1, #0x0 str r0, [sp, #0x8] add r0, r5, #0x0 str r1, [sp, #0xc] bl FUN_0201BDE0 _0207E0F8: ldr r2, [r4, #0x20] cmp r2, #0x0 beq _0207E11A ldr r0, [r4, #0x1c] mov r1, #0x0 sub r0, r0, #0x1 lsl r0, r0, #0x4 str r0, [sp, #0x0] mov r0, #0xff str r0, [sp, #0x4] ldr r0, _0207E18C ; =0x00010200 add r3, r1, #0x0 str r0, [sp, #0x8] add r0, r5, #0x0 str r1, [sp, #0xc] bl FUN_0201BDE0 _0207E11A: ldr r2, [r4, #0x28] cmp r2, #0x0 beq _0207E13C ldr r0, [r4, #0x24] mov r1, #0x0 sub r0, r0, #0x1 lsl r0, r0, #0x4 str r0, [sp, #0x0] mov r0, #0xff str r0, [sp, #0x4] ldr r0, _0207E18C ; =0x00010200 add r3, r1, #0x0 str r0, [sp, #0x8] add r0, r5, #0x0 str r1, [sp, #0xc] bl FUN_0201BDE0 _0207E13C: ldr r2, [r4, #0x30] cmp r2, #0x0 beq _0207E15E ldr r0, [r4, #0x2c] mov r1, #0x0 sub r0, r0, #0x1 lsl r0, r0, #0x4 str r0, [sp, #0x0] mov r0, #0xff str r0, [sp, #0x4] ldr r0, _0207E18C ; =0x00010200 add r3, r1, #0x0 str r0, [sp, #0x8] add r0, r5, #0x0 str r1, [sp, #0xc] bl FUN_0201BDE0 _0207E15E: ldr r2, [r4, #0x38] cmp r2, #0x0 beq _0207E180 ldr r0, [r4, #0x34] mov r1, #0x0 sub r0, r0, #0x1 lsl r0, r0, #0x4 str r0, [sp, #0x0] mov r0, #0xff str r0, [sp, #0x4] ldr r0, _0207E18C ; =0x00010200 add r3, r1, #0x0 str r0, [sp, #0x8] add r0, r5, #0x0 str r1, [sp, #0xc] bl FUN_0201BDE0 _0207E180: add r0, r4, #0x0 bl FUN_02080094 add sp, #0x10 pop {r3-r5, pc} nop _0207E18C: .word 0x00010200 thumb_func_start FUN_0207E190 FUN_0207E190: ; 0x0207E190 push {r3-r7, lr} add r5, r0, #0x0 add r0, #0x14 bl FUN_02019220 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r5, r0] mov r1, #0x0 bl FUN_02019620 add r0, r5, #0x0 bl FUN_0207B628 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_0207D958 add r7, r0, #0x0 mov r0, #0x93 lsl r0, r0, #0x2 ldr r1, [r5, r0] ldrb r1, [r1, #0x11] cmp r1, #0x2 bne _0207E1E8 mov r0, #0x13 bl FUN_020669C0 add r4, r0, #0x0 add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_02069A64 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r5, r0] add r1, r4, #0x0 add r2, r7, #0x0 bl FUN_0207E0C4 add r0, r4, #0x0 bl FUN_02016A18 b _0207E1F4 _0207E1E8: sub r0, #0x8 ldr r0, [r5, r0] add r1, r6, #0x0 add r2, r7, #0x0 bl FUN_0207E0C4 _0207E1F4: mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r5, r0] bl FUN_02019220 pop {r3-r7, pc} thumb_func_start FUN_0207E200 FUN_0207E200: ; 0x0207E200 push {r3-r5, lr} sub sp, #0x18 add r4, r0, #0x0 add r0, #0x24 bl FUN_02019220 add r0, r4, #0x0 add r0, #0xf4 bl FUN_02019220 mov r0, #0x41 lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_02019220 mov r0, #0x45 lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_02019220 mov r0, #0x49 lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_02019220 mov r0, #0x4d lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_02019220 mov r0, #0x51 lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_02019220 mov r0, #0x55 lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_02019220 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 bl FUN_02019620 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 add r0, #0x10 bl FUN_02019620 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 add r0, #0x20 bl FUN_02019620 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 add r0, #0x30 bl FUN_02019620 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 add r0, #0x40 bl FUN_02019620 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 add r0, #0x50 bl FUN_02019620 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 add r0, #0x60 bl FUN_02019620 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 add r0, #0x70 bl FUN_02019620 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_0201AB0C mov r1, #0x76 str r1, [sp, #0x0] mov r1, #0x9d lsl r1, r1, #0x2 ldrh r2, [r4, r1] lsl r0, r0, #0x1a add r1, r1, #0x2 str r2, [sp, #0x4] ldrh r1, [r4, r1] lsr r0, r0, #0x18 mov r2, #0x75 str r1, [sp, #0x8] mov r1, #0x3 str r1, [sp, #0xc] str r0, [sp, #0x10] mov r1, #0x0 add r0, r4, #0x0 mov r3, #0x77 str r1, [sp, #0x14] bl FUN_0207DA94 mov r0, #0x0 mov r2, #0x9e str r0, [sp, #0x0] lsl r2, r2, #0x2 ldrh r2, [r4, r2] add r0, r4, #0x0 mov r1, #0x78 mov r3, #0x3 bl FUN_0207DA48 mov r1, #0x91 lsl r1, r1, #0x2 ldr r1, [r4, r1] ldr r2, _0207E484 ; =0x00010200 add r0, r4, #0x0 add r1, #0x10 mov r3, #0x1 bl FUN_0207D998 mov r0, #0x0 str r0, [sp, #0x0] ldr r2, _0207E488 ; =0x0000027A add r0, r4, #0x0 ldrh r2, [r4, r2] mov r1, #0x79 mov r3, #0x3 bl FUN_0207DA48 mov r1, #0x91 lsl r1, r1, #0x2 ldr r1, [r4, r1] ldr r2, _0207E484 ; =0x00010200 add r0, r4, #0x0 add r1, #0x20 mov r3, #0x1 bl FUN_0207D998 mov r0, #0x0 mov r2, #0x9f str r0, [sp, #0x0] lsl r2, r2, #0x2 ldrh r2, [r4, r2] add r0, r4, #0x0 mov r1, #0x7a mov r3, #0x3 bl FUN_0207DA48 mov r1, #0x91 lsl r1, r1, #0x2 ldr r1, [r4, r1] ldr r2, _0207E484 ; =0x00010200 add r0, r4, #0x0 add r1, #0x30 mov r3, #0x1 bl FUN_0207D998 mov r0, #0x0 str r0, [sp, #0x0] ldr r2, _0207E48C ; =0x0000027E add r0, r4, #0x0 ldrh r2, [r4, r2] mov r1, #0x7b mov r3, #0x3 bl FUN_0207DA48 mov r1, #0x91 lsl r1, r1, #0x2 ldr r1, [r4, r1] ldr r2, _0207E484 ; =0x00010200 add r0, r4, #0x0 add r1, #0x40 mov r3, #0x1 bl FUN_0207D998 mov r0, #0x0 mov r2, #0xa str r0, [sp, #0x0] lsl r2, r2, #0x6 ldrh r2, [r4, r2] add r0, r4, #0x0 mov r1, #0x7c mov r3, #0x3 bl FUN_0207DA48 mov r1, #0x91 lsl r1, r1, #0x2 ldr r1, [r4, r1] ldr r2, _0207E484 ; =0x00010200 add r0, r4, #0x0 add r1, #0x50 mov r3, #0x1 bl FUN_0207D998 ldr r2, _0207E490 ; =0x00000282 ldr r0, _0207E494 ; =0x0000067C ldrb r2, [r4, r2] ldr r0, [r4, r0] mov r1, #0x0 bl FUN_0200ADCC ldr r0, _0207E498 ; =0x00000674 mov r1, #0x7d ldr r0, [r4, r0] bl FUN_0200A914 add r5, r0, #0x0 ldr r1, _0207E494 ; =0x0000067C add r2, r5, #0x0 ldr r0, [r4, r1] add r1, r1, #0x4 ldr r1, [r4, r1] bl FUN_0200B7B8 add r0, r5, #0x0 bl FUN_02021A20 mov r1, #0x91 lsl r1, r1, #0x2 ldr r1, [r4, r1] ldr r2, _0207E484 ; =0x00010200 add r0, r4, #0x0 add r1, #0x60 mov r3, #0x0 bl FUN_0207D998 ldr r2, _0207E49C ; =0x0000022A mov r0, #0x1 mov r1, #0x1a mov r3, #0x13 bl FUN_0200A86C ldr r1, _0207E490 ; =0x00000282 mov r2, #0x1a lsl r2, r2, #0x6 ldrb r1, [r4, r1] ldr r2, [r4, r2] add r5, r0, #0x0 bl FUN_0200A8E0 add r0, r5, #0x0 bl FUN_0200A8B8 mov r1, #0x91 lsl r1, r1, #0x2 ldr r1, [r4, r1] ldr r2, _0207E484 ; =0x00010200 add r0, r4, #0x0 add r1, #0x70 mov r3, #0x0 bl FUN_0207D998 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02019220 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x10 bl FUN_02019220 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x20 bl FUN_02019220 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x30 bl FUN_02019220 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x40 bl FUN_02019220 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x50 bl FUN_02019220 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x60 bl FUN_02019220 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x70 bl FUN_02019220 add sp, #0x18 pop {r3-r5, pc} nop _0207E484: .word 0x00010200 _0207E488: .word 0x0000027A _0207E48C: .word 0x0000027E _0207E490: .word 0x00000282 _0207E494: .word 0x0000067C _0207E498: .word 0x00000674 _0207E49C: .word 0x0000022A thumb_func_start FUN_0207E4A0 FUN_0207E4A0: ; 0x0207E4A0 push {r4, lr} sub sp, #0x10 add r4, r0, #0x0 add r0, #0x34 bl FUN_02019220 mov r0, #0x59 lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_02019220 mov r0, #0x93 lsl r0, r0, #0x2 ldr r0, [r4, r0] ldrb r0, [r0, #0x12] cmp r0, #0x3 beq _0207E4C6 cmp r0, #0x4 bne _0207E580 _0207E4C6: mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 add r0, #0x10 bl FUN_02019620 ldr r2, _0207E584 ; =0x00000674 mov r1, #0xa5 ldr r0, [r4, r2] add r2, #0xc ldr r2, [r4, r2] bl FUN_0200A8E0 mov r1, #0x91 lsl r1, r1, #0x2 ldr r1, [r4, r1] ldr r2, _0207E588 ; =0x000F0E00 add r0, r4, #0x0 add r1, #0x10 mov r3, #0x0 bl FUN_0207D998 ldr r1, _0207E58C ; =0x0000029B ldr r2, _0207E584 ; =0x00000674 ldrb r1, [r4, r1] ldr r0, [r4, r2] add r2, #0xc ldr r2, [r4, r2] add r1, #0xa6 bl FUN_0200A8E0 mov r0, #0x10 str r0, [sp, #0x0] mov r0, #0xff str r0, [sp, #0x4] ldr r0, _0207E590 ; =0x00010200 mov r1, #0x0 str r0, [sp, #0x8] mov r0, #0x91 mov r2, #0x1a str r1, [sp, #0xc] lsl r0, r0, #0x2 ldr r0, [r4, r0] lsl r2, r2, #0x6 ldr r2, [r4, r2] add r0, #0x10 add r3, r1, #0x0 bl FUN_0201BDE0 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x10 bl FUN_02019220 mov r0, #0x93 lsl r0, r0, #0x2 ldr r1, [r4, r0] ldrb r1, [r1, #0x12] cmp r1, #0x3 bne _0207E580 sub r0, #0x8 ldr r0, [r4, r0] mov r1, #0x0 bl FUN_02019620 ldr r2, _0207E584 ; =0x00000674 mov r1, #0xa3 ldr r0, [r4, r2] add r2, #0xc ldr r2, [r4, r2] bl FUN_0200A8E0 mov r1, #0x91 lsl r1, r1, #0x2 ldr r1, [r4, r1] ldr r2, _0207E588 ; =0x000F0E00 add r0, r4, #0x0 mov r3, #0x0 bl FUN_0207D998 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02019220 mov r1, #0x91 lsl r1, r1, #0x2 ldr r1, [r4, r1] add r0, r4, #0x0 bl FUN_0207CFAC _0207E580: add sp, #0x10 pop {r4, pc} .balign 4 _0207E584: .word 0x00000674 _0207E588: .word 0x000F0E00 _0207E58C: .word 0x0000029B _0207E590: .word 0x00010200 thumb_func_start FUN_0207E594 FUN_0207E594: ; 0x0207E594 push {r4, lr} add r4, r0, #0x0 add r0, #0x44 bl FUN_02019220 mov r0, #0x93 lsl r0, r0, #0x2 ldr r0, [r4, r0] ldrb r0, [r0, #0x12] cmp r0, #0x2 bne _0207E5B4 add r0, r4, #0x0 mov r1, #0x9b bl FUN_0207D924 b _0207E5BC _0207E5B4: add r0, r4, #0x0 mov r1, #0x81 bl FUN_0207D924 _0207E5BC: mov r1, #0x8d lsl r1, r1, #0x2 add r0, r4, #0x0 add r1, r4, r1 bl FUN_0207CFAC mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 bl FUN_02019620 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 add r0, #0x10 bl FUN_02019620 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 add r0, #0x20 bl FUN_02019620 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 add r0, #0x30 bl FUN_02019620 add r0, r4, #0x0 mov r1, #0x0 bl FUN_0207EA44 add r0, r4, #0x0 mov r1, #0x1 bl FUN_0207EA44 add r0, r4, #0x0 mov r1, #0x2 bl FUN_0207EA44 add r0, r4, #0x0 mov r1, #0x3 bl FUN_0207EA44 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02019220 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x10 bl FUN_02019220 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x20 bl FUN_02019220 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x30 bl FUN_02019220 pop {r4, pc} .balign 4 thumb_func_start FUN_0207E650 FUN_0207E650: ; 0x0207E650 push {r4, lr} add r4, r0, #0x0 add r0, #0x54 bl FUN_02019220 mov r0, #0x93 lsl r0, r0, #0x2 ldr r0, [r4, r0] ldrb r0, [r0, #0x12] cmp r0, #0x2 bne _0207E670 add r0, r4, #0x0 mov r1, #0x9f bl FUN_0207D924 b _0207E678 _0207E670: add r0, r4, #0x0 mov r1, #0x9e bl FUN_0207D924 _0207E678: mov r1, #0x8d lsl r1, r1, #0x2 add r0, r4, #0x0 add r1, r4, r1 bl FUN_0207CFAC mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 bl FUN_02019620 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 add r0, #0x10 bl FUN_02019620 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 add r0, #0x20 bl FUN_02019620 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 add r0, #0x30 bl FUN_02019620 add r0, r4, #0x0 mov r1, #0x0 bl FUN_0207EA44 add r0, r4, #0x0 mov r1, #0x1 bl FUN_0207EA44 add r0, r4, #0x0 mov r1, #0x2 bl FUN_0207EA44 add r0, r4, #0x0 mov r1, #0x3 bl FUN_0207EA44 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02019220 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x10 bl FUN_02019220 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x20 bl FUN_02019220 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x30 bl FUN_02019220 pop {r4, pc} .balign 4 thumb_func_start FUN_0207E70C FUN_0207E70C: ; 0x0207E70C push {r3-r4, lr} sub sp, #0x4 add r4, r0, #0x0 mov r0, #0x7d lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_02019220 mov r0, #0x79 lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_02019220 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 bl FUN_02019620 mov r0, #0x0 str r0, [sp, #0x0] ldr r2, _0207E780 ; =0x00000699 add r0, r4, #0x0 ldrb r2, [r4, r2] mov r1, #0xb7 mov r3, #0x3 bl FUN_0207DA48 mov r1, #0x91 lsl r1, r1, #0x2 ldr r1, [r4, r1] ldr r2, _0207E784 ; =0x00010200 add r0, r4, #0x0 mov r3, #0x0 bl FUN_0207D998 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02019220 ldr r0, _0207E780 ; =0x00000699 ldrb r0, [r4, r0] cmp r0, #0x0 beq _0207E77A add r0, r4, #0x0 mov r1, #0xb4 bl FUN_0207D924 mov r1, #0x8d lsl r1, r1, #0x2 add r0, r4, #0x0 add r1, r4, r1 bl FUN_0207CFAC _0207E77A: add sp, #0x4 pop {r3-r4, pc} nop _0207E780: .word 0x00000699 _0207E784: .word 0x00010200 thumb_func_start FUN_0207E788 FUN_0207E788: ; 0x0207E788 push {r4, lr} sub sp, #0x10 add r4, r0, #0x0 mov r0, #0x71 lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_02019220 add r0, r4, #0x0 mov r1, #0xa1 bl FUN_0207D924 mov r1, #0x8d lsl r1, r1, #0x2 add r0, r4, #0x0 add r1, r4, r1 bl FUN_0207CFAC mov r0, #0x93 lsl r0, r0, #0x2 ldr r0, [r4, r0] ldrb r0, [r0, #0x12] cmp r0, #0x3 beq _0207E7BC cmp r0, #0x4 bne _0207E82C _0207E7BC: mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 add r0, #0x10 bl FUN_02019620 ldr r2, _0207E830 ; =0x00000674 mov r1, #0xa5 ldr r0, [r4, r2] add r2, #0xc ldr r2, [r4, r2] bl FUN_0200A8E0 mov r1, #0x91 lsl r1, r1, #0x2 ldr r1, [r4, r1] ldr r2, _0207E834 ; =0x000F0E00 add r0, r4, #0x0 add r1, #0x10 mov r3, #0x0 bl FUN_0207D998 ldr r1, _0207E838 ; =0x0000029B ldr r2, _0207E830 ; =0x00000674 ldrb r1, [r4, r1] ldr r0, [r4, r2] add r2, #0xc ldr r2, [r4, r2] add r1, #0xa6 bl FUN_0200A8E0 mov r0, #0x10 str r0, [sp, #0x0] mov r0, #0xff str r0, [sp, #0x4] ldr r0, _0207E83C ; =0x00010200 mov r1, #0x0 str r0, [sp, #0x8] mov r0, #0x91 mov r2, #0x1a str r1, [sp, #0xc] lsl r0, r0, #0x2 ldr r0, [r4, r0] lsl r2, r2, #0x6 ldr r2, [r4, r2] add r0, #0x10 add r3, r1, #0x0 bl FUN_0201BDE0 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x10 bl FUN_02019220 _0207E82C: add sp, #0x10 pop {r4, pc} .balign 4 _0207E830: .word 0x00000674 _0207E834: .word 0x000F0E00 _0207E838: .word 0x0000029B _0207E83C: .word 0x00010200 thumb_func_start FUN_0207E840 FUN_0207E840: ; 0x0207E840 push {r4-r6, lr} sub sp, #0x10 add r5, r0, #0x0 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r5, r0] mov r1, #0x0 add r0, #0x10 bl FUN_02019620 ldr r0, _0207E994 ; =0x00000674 mov r1, #0xba ldr r0, [r5, r0] bl FUN_0200A914 mov r1, #0x0 add r4, r0, #0x0 ldr r2, _0207E998 ; =0x0000067C str r1, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] ldr r0, [r5, r2] add r2, #0x1d ldrb r2, [r5, r2] mov r3, #0x3 bl FUN_0200AD38 ldr r1, _0207E998 ; =0x0000067C add r2, r4, #0x0 ldr r0, [r5, r1] add r1, r1, #0x4 ldr r1, [r5, r1] bl FUN_0200B7B8 add r0, r4, #0x0 bl FUN_02021A20 mov r1, #0x1a lsl r1, r1, #0x6 mov r0, #0x0 ldr r1, [r5, r1] add r2, r0, #0x0 bl FUN_02002E14 lsl r0, r0, #0x18 lsr r1, r0, #0x18 mov r0, #0x38 sub r0, r0, r1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 mov r1, #0x0 mov r2, #0x1a str r1, [sp, #0x0] mov r0, #0xff str r0, [sp, #0x4] ldr r0, _0207E99C ; =0x00010200 lsl r2, r2, #0x6 str r0, [sp, #0x8] mov r0, #0x91 str r1, [sp, #0xc] lsl r0, r0, #0x2 ldr r0, [r5, r0] ldr r2, [r5, r2] add r0, #0x10 add r3, r4, #0x0 bl FUN_0201BDE0 ldr r0, _0207E994 ; =0x00000674 mov r1, #0xb9 ldr r0, [r5, r0] bl FUN_0200A914 add r6, r0, #0x0 mov r0, #0x0 add r1, r6, #0x0 add r2, r0, #0x0 bl FUN_02002E14 lsl r0, r0, #0x18 lsr r0, r0, #0x18 sub r0, r4, r0 lsl r0, r0, #0x18 lsr r4, r0, #0x18 mov r1, #0x0 str r1, [sp, #0x0] mov r0, #0xff str r0, [sp, #0x4] ldr r0, _0207E99C ; =0x00010200 add r2, r6, #0x0 str r0, [sp, #0x8] mov r0, #0x91 str r1, [sp, #0xc] lsl r0, r0, #0x2 ldr r0, [r5, r0] add r3, r4, #0x0 add r0, #0x10 bl FUN_0201BDE0 add r0, r6, #0x0 bl FUN_02021A20 ldr r0, _0207E994 ; =0x00000674 mov r1, #0xb8 ldr r0, [r5, r0] bl FUN_0200A914 mov r1, #0x0 ldr r2, _0207E998 ; =0x0000067C add r6, r0, #0x0 add r3, r2, #0x0 str r1, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] ldr r0, [r5, r2] add r2, #0x1c add r3, #0x1b ldrb r2, [r5, r2] ldrb r3, [r5, r3] lsl r2, r2, #0x2 add r2, r3, r2 add r2, r2, #0x1 mov r3, #0x3 bl FUN_0200AD38 ldr r1, _0207E998 ; =0x0000067C add r2, r6, #0x0 ldr r0, [r5, r1] add r1, r1, #0x4 ldr r1, [r5, r1] bl FUN_0200B7B8 add r0, r6, #0x0 bl FUN_02021A20 mov r1, #0x1a lsl r1, r1, #0x6 mov r0, #0x0 ldr r1, [r5, r1] add r2, r0, #0x0 bl FUN_02002E14 lsl r0, r0, #0x18 lsr r0, r0, #0x18 sub r0, r4, r0 lsl r0, r0, #0x18 mov r1, #0x0 lsr r3, r0, #0x18 mov r2, #0x1a str r1, [sp, #0x0] mov r0, #0xff str r0, [sp, #0x4] ldr r0, _0207E99C ; =0x00010200 lsl r2, r2, #0x6 str r0, [sp, #0x8] mov r0, #0x91 str r1, [sp, #0xc] lsl r0, r0, #0x2 ldr r0, [r5, r0] ldr r2, [r5, r2] add r0, #0x10 bl FUN_0201BDE0 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r5, r0] add r0, #0x10 bl FUN_02019220 add sp, #0x10 pop {r4-r6, pc} .balign 4 _0207E994: .word 0x00000674 _0207E998: .word 0x0000067C _0207E99C: .word 0x00010200 thumb_func_start FUN_0207E9A0 FUN_0207E9A0: ; 0x0207E9A0 push {r4, lr} add r4, r0, #0x0 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 add r0, #0x20 bl FUN_02019620 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] mov r1, #0x0 add r0, #0x30 bl FUN_02019620 ldr r0, _0207EA34 ; =0x0000069A mov r1, #0x3 ldrb r0, [r4, r0] bl FUN_0207FC5C ldr r2, _0207EA38 ; =0x00000678 add r1, r0, #0x0 ldr r0, [r4, r2] add r2, #0x8 ldr r2, [r4, r2] bl FUN_0200A8E0 mov r1, #0x91 lsl r1, r1, #0x2 ldr r1, [r4, r1] ldr r2, _0207EA3C ; =0x000F0E00 add r0, r4, #0x0 add r1, #0x20 mov r3, #0x0 bl FUN_0207D998 mov r0, #0x93 lsl r0, r0, #0x2 ldr r1, _0207EA34 ; =0x0000069A ldr r0, [r4, r0] ldrb r1, [r4, r1] ldr r0, [r0, #0x20] bl FUN_0207FCC0 ldr r2, _0207EA38 ; =0x00000678 add r1, r0, #0x0 ldr r0, [r4, r2] add r2, #0x8 ldr r2, [r4, r2] bl FUN_0200A8E0 mov r1, #0x91 lsl r1, r1, #0x2 ldr r1, [r4, r1] ldr r2, _0207EA40 ; =0x00010200 add r0, r4, #0x0 add r1, #0x30 mov r3, #0x0 bl FUN_0207D998 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x20 bl FUN_02019220 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x30 bl FUN_02019220 pop {r4, pc} .balign 4 _0207EA34: .word 0x0000069A _0207EA38: .word 0x00000678 _0207EA3C: .word 0x000F0E00 _0207EA40: .word 0x00010200 thumb_func_start FUN_0207EA44 FUN_0207EA44: ; 0x0207EA44 push {r4-r7, lr} sub sp, #0x24 add r5, r0, #0x0 mov r0, #0x91 add r7, r1, #0x0 lsl r0, r0, #0x2 lsl r6, r7, #0x4 ldr r4, [r5, r0] cmp r7, #0x4 beq _0207EA76 lsl r1, r7, #0x1 add r2, r5, r1 add r1, r0, #0x0 add r1, #0x40 ldrh r1, [r2, r1] add r2, r0, #0x0 add r2, #0x48 str r1, [sp, #0x20] add r1, r5, r7 ldrb r2, [r1, r2] add r0, #0x4c str r2, [sp, #0x1c] ldrb r0, [r1, r0] str r0, [sp, #0x18] b _0207EA88 _0207EA76: add r0, #0x8 ldr r0, [r5, r0] mov r1, #0x0 ldrh r0, [r0, #0x18] str r0, [sp, #0x20] bl FUN_0206AB30 str r0, [sp, #0x1c] str r0, [sp, #0x18] _0207EA88: ldr r2, _0207EB54 ; =0x00000688 ldr r1, [sp, #0x20] ldr r0, [r5, r2] sub r2, #0x8 ldr r2, [r5, r2] bl FUN_0200A8E0 mov r0, #0x2 str r0, [sp, #0x0] mov r0, #0xff str r0, [sp, #0x4] ldr r0, _0207EB58 ; =0x000F0E00 mov r2, #0x1a str r0, [sp, #0x8] mov r1, #0x0 str r1, [sp, #0xc] lsl r2, r2, #0x6 ldr r2, [r5, r2] add r0, r4, r6 mov r3, #0x1 bl FUN_0201BDE0 ldr r0, [sp, #0x20] ldr r2, _0207EB5C ; =0x00000674 cmp r0, #0x0 beq _0207EB10 ldr r0, [r5, r2] add r2, #0xc ldr r2, [r5, r2] mov r1, #0x87 bl FUN_0200A8E0 mov r3, #0x10 mov r2, #0x1a str r3, [sp, #0x0] mov r0, #0xff str r0, [sp, #0x4] ldr r0, _0207EB60 ; =0x00010200 mov r1, #0x0 str r0, [sp, #0x8] str r1, [sp, #0xc] lsl r2, r2, #0x6 ldr r2, [r5, r2] add r0, r4, r6 bl FUN_0201BDE0 add r0, r7, #0x0 add r0, #0x8d str r0, [sp, #0x0] ldr r0, [sp, #0x1c] add r1, r7, #0x0 str r0, [sp, #0x4] ldr r0, [sp, #0x18] add r7, #0x88 str r0, [sp, #0x8] mov r0, #0x2 str r0, [sp, #0xc] mov r0, #0x3c str r0, [sp, #0x10] mov r0, #0x10 str r0, [sp, #0x14] add r0, r5, #0x0 mov r2, #0x75 add r3, r7, #0x0 bl FUN_0207DA94 add sp, #0x24 pop {r4-r7, pc} _0207EB10: ldr r0, [r5, r2] add r2, #0xc ldr r2, [r5, r2] mov r1, #0x99 bl FUN_0200A8E0 mov r1, #0x1a lsl r1, r1, #0x6 mov r0, #0x0 ldr r1, [r5, r1] add r2, r0, #0x0 bl FUN_02002E14 add r3, r0, #0x0 mov r0, #0x10 str r0, [sp, #0x0] mov r0, #0xff str r0, [sp, #0x4] ldr r0, _0207EB60 ; =0x00010200 mov r2, #0x1a str r0, [sp, #0x8] mov r1, #0x0 add r0, r4, r6 lsr r4, r3, #0x1 mov r3, #0x3c str r1, [sp, #0xc] lsl r2, r2, #0x6 ldr r2, [r5, r2] sub r3, r3, r4 bl FUN_0201BDE0 add sp, #0x24 pop {r4-r7, pc} nop _0207EB54: .word 0x00000688 _0207EB58: .word 0x000F0E00 _0207EB5C: .word 0x00000674 _0207EB60: .word 0x00010200 thumb_func_start FUN_0207EB64 FUN_0207EB64: ; 0x0207EB64 push {r3-r6, lr} sub sp, #0x4 add r5, r0, #0x0 mov r0, #0x65 lsl r0, r0, #0x2 add r0, r5, r0 add r4, r1, #0x0 bl FUN_02019220 mov r0, #0x69 lsl r0, r0, #0x2 add r0, r5, r0 bl FUN_02019220 mov r0, #0x6d lsl r0, r0, #0x2 add r0, r5, r0 bl FUN_02019220 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r5, r0] mov r1, #0x0 add r0, #0x50 bl FUN_02019620 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r5, r0] mov r1, #0x0 add r0, #0x60 bl FUN_02019620 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r5, r0] mov r1, #0x0 add r0, #0x70 bl FUN_02019620 add r0, r4, #0x0 mov r1, #0x2 bl FUN_0206AB18 add r2, r0, #0x0 cmp r2, #0x1 bhi _0207EBD2 ldr r2, _0207EC88 ; =0x00000674 mov r1, #0x9a ldr r0, [r5, r2] add r2, #0xc ldr r2, [r5, r2] bl FUN_0200A8E0 b _0207EBE0 _0207EBD2: mov r0, #0x1 str r0, [sp, #0x0] add r0, r5, #0x0 mov r1, #0x96 mov r3, #0x3 bl FUN_0207DA48 _0207EBE0: mov r1, #0x91 lsl r1, r1, #0x2 ldr r1, [r5, r1] ldr r2, _0207EC8C ; =0x00010200 add r0, r5, #0x0 add r1, #0x50 mov r3, #0x2 bl FUN_0207D998 add r0, r4, #0x0 mov r1, #0x4 bl FUN_0206AB18 add r2, r0, #0x0 bne _0207EC0E ldr r2, _0207EC88 ; =0x00000674 mov r1, #0x9a ldr r0, [r5, r2] add r2, #0xc ldr r2, [r5, r2] bl FUN_0200A8E0 b _0207EC1C _0207EC0E: mov r0, #0x1 str r0, [sp, #0x0] add r0, r5, #0x0 mov r1, #0x97 mov r3, #0x3 bl FUN_0207DA48 _0207EC1C: mov r1, #0x91 lsl r1, r1, #0x2 ldr r1, [r5, r1] ldr r2, _0207EC8C ; =0x00010200 add r0, r5, #0x0 add r1, #0x60 mov r3, #0x2 bl FUN_0207D998 ldr r2, _0207EC90 ; =0x0000024B mov r0, #0x1 mov r1, #0x1a mov r3, #0x13 bl FUN_0200A86C mov r2, #0x1a lsl r2, r2, #0x6 ldr r2, [r5, r2] add r1, r4, #0x0 add r6, r0, #0x0 bl FUN_0200A8E0 mov r1, #0x91 lsl r1, r1, #0x2 ldr r1, [r5, r1] ldr r2, _0207EC8C ; =0x00010200 add r0, r5, #0x0 add r1, #0x70 mov r3, #0x0 bl FUN_0207D998 add r0, r6, #0x0 bl FUN_0200A8B8 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r5, r0] add r0, #0x50 bl FUN_02019220 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r5, r0] add r0, #0x60 bl FUN_02019220 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r5, r0] add r0, #0x70 bl FUN_02019220 add sp, #0x4 pop {r3-r6, pc} .balign 4 _0207EC88: .word 0x00000674 _0207EC8C: .word 0x00010200 _0207EC90: .word 0x0000024B thumb_func_start FUN_0207EC94 FUN_0207EC94: ; 0x0207EC94 push {r4, lr} add r4, r0, #0x0 mov r0, #0x65 lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_0201958C mov r0, #0x69 lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_0201958C mov r0, #0x6d lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_0201958C mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x50 bl FUN_0201958C mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x60 bl FUN_0201958C mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x70 bl FUN_0201958C pop {r4, pc} thumb_func_start FUN_0207ECDC FUN_0207ECDC: ; 0x0207ECDC push {r4, lr} add r4, r0, #0x0 mov r0, #0x93 lsl r0, r0, #0x2 ldr r1, [r4, r0] ldrh r1, [r1, #0x18] cmp r1, #0x0 beq _0207ED0E sub r0, #0x8 ldr r0, [r4, r0] mov r1, #0x0 add r0, #0x40 bl FUN_02019620 add r0, r4, #0x0 mov r1, #0x4 bl FUN_0207EA44 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x40 bl FUN_02019220 pop {r4, pc} _0207ED0E: sub r0, #0xc8 add r0, r4, r0 bl FUN_02019220 pop {r4, pc} thumb_func_start FUN_0207ED18 FUN_0207ED18: ; 0x0207ED18 push {r4, lr} add r4, r0, #0x0 mov r0, #0x61 lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_0201958C ldr r0, [r4, #0x0] mov r1, #0x1 bl FUN_0201AC68 pop {r4, pc} thumb_func_start FUN_0207ED30 FUN_0207ED30: ; 0x0207ED30 push {r4, lr} add r4, r0, #0x0 mov r0, #0x91 lsl r0, r0, #0x2 ldr r1, [r4, r0] ldr r0, _0207EDB0 ; =0x0000068D ldrb r0, [r4, r0] lsl r0, r0, #0x1c lsr r0, r0, #0x1c lsl r0, r0, #0x4 add r0, r1, r0 mov r1, #0x0 bl FUN_02019620 mov r0, #0x91 lsl r0, r0, #0x2 ldr r1, [r4, r0] ldr r0, _0207EDB0 ; =0x0000068D ldrb r0, [r4, r0] lsl r0, r0, #0x18 lsr r0, r0, #0x1c lsl r0, r0, #0x4 add r0, r1, r0 mov r1, #0x0 bl FUN_02019620 ldr r1, _0207EDB0 ; =0x0000068D add r0, r4, #0x0 ldrb r1, [r4, r1] lsl r1, r1, #0x1c lsr r1, r1, #0x1c bl FUN_0207EA44 ldr r1, _0207EDB0 ; =0x0000068D add r0, r4, #0x0 ldrb r1, [r4, r1] lsl r1, r1, #0x18 lsr r1, r1, #0x1c bl FUN_0207EA44 mov r0, #0x91 lsl r0, r0, #0x2 ldr r1, [r4, r0] ldr r0, _0207EDB0 ; =0x0000068D ldrb r0, [r4, r0] lsl r0, r0, #0x1c lsr r0, r0, #0x1c lsl r0, r0, #0x4 add r0, r1, r0 bl FUN_02019220 mov r0, #0x91 lsl r0, r0, #0x2 ldr r1, [r4, r0] ldr r0, _0207EDB0 ; =0x0000068D ldrb r0, [r4, r0] lsl r0, r0, #0x18 lsr r0, r0, #0x1c lsl r0, r0, #0x4 add r0, r1, r0 bl FUN_02019220 pop {r4, pc} nop _0207EDB0: .word 0x0000068D thumb_func_start FUN_0207EDB4 FUN_0207EDB4: ; 0x0207EDB4 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _0207EE20 ; =0x0000068C ldrsb r0, [r5, r0] cmp r0, #0x3 bne _0207EDEE mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r5, r0] add r0, #0x50 bl FUN_0201958C mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r5, r0] add r0, #0x60 bl FUN_0201958C mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r5, r0] add r0, #0x70 bl FUN_0201958C mov r0, #0x91 lsl r0, r0, #0x2 ldr r4, [r5, r0] add r4, #0x70 b _0207EDF6 _0207EDEE: mov r0, #0x91 lsl r0, r0, #0x2 ldr r4, [r5, r0] add r4, #0x50 _0207EDF6: add r0, r4, #0x0 mov r1, #0x0 bl FUN_02019620 ldr r2, _0207EE24 ; =0x00000674 mov r1, #0x9c ldr r0, [r5, r2] add r2, #0xc ldr r2, [r5, r2] bl FUN_0200A8E0 ldr r2, _0207EE28 ; =0x00010200 add r0, r5, #0x0 add r1, r4, #0x0 mov r3, #0x0 bl FUN_0207D998 add r0, r4, #0x0 bl FUN_02019220 pop {r3-r5, pc} .balign 4 _0207EE20: .word 0x0000068C _0207EE24: .word 0x00000674 _0207EE28: .word 0x00010200 thumb_func_start FUN_0207EE2C FUN_0207EE2C: ; 0x0207EE2C push {r4-r6, lr} sub sp, #0x10 add r5, r0, #0x0 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r5, r0] add r4, r1, #0x0 add r0, #0x50 mov r1, #0x0 bl FUN_02019620 add r0, r4, #0x0 mov r1, #0xa bl FUN_0206AB18 bl FUN_0208315C add r4, r0, #0x0 mov r0, #0x0 mov r1, #0x1a mov r2, #0xc5 mov r3, #0x13 bl FUN_0200A86C mov r2, #0x1a lsl r2, r2, #0x6 ldr r2, [r5, r2] add r1, r4, #0x0 add r6, r0, #0x0 bl FUN_0200A8E0 mov r1, #0x0 mov r2, #0x1a str r1, [sp, #0x0] mov r0, #0xff str r0, [sp, #0x4] ldr r0, _0207EEAC ; =0x00010200 lsl r2, r2, #0x6 str r0, [sp, #0x8] mov r0, #0x91 str r1, [sp, #0xc] lsl r0, r0, #0x2 ldr r0, [r5, r0] ldr r2, [r5, r2] add r0, #0x50 add r3, r1, #0x0 bl FUN_0201BDE0 add r0, r6, #0x0 bl FUN_0200A8B8 mov r0, #0x75 lsl r0, r0, #0x2 add r0, r5, r0 bl FUN_02019220 mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r5, r0] add r0, #0x50 bl FUN_02019220 add sp, #0x10 pop {r4-r6, pc} .balign 4 _0207EEAC: .word 0x00010200 thumb_func_start FUN_0207EEB0 FUN_0207EEB0: ; 0x0207EEB0 push {r4, lr} add r4, r0, #0x0 mov r0, #0x75 lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_0201958C mov r0, #0x91 lsl r0, r0, #0x2 ldr r0, [r4, r0] add r0, #0x50 bl FUN_0201958C pop {r4, pc} thumb_func_start FUN_0207EECC FUN_0207EECC: ; 0x0207EECC push {r4-r6, lr} sub sp, #0x10 add r4, r0, #0x0 cmp r1, #0x4 bgt _0207EEF0 cmp r1, #0x0 blt _0207EF0E add r0, r1, r1 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0207EEE6: ; jump table (using 16-bit offset) .short _0207EEF6 - _0207EEE6 - 2; case 0 .short _0207EEFA - _0207EEE6 - 2; case 1 .short _0207EEFE - _0207EEE6 - 2; case 2 .short _0207EF02 - _0207EEE6 - 2; case 3 .short _0207EF06 - _0207EEE6 - 2; case 4 _0207EEF0: cmp r1, #0xfe beq _0207EF0A b _0207EF0E _0207EEF6: mov r5, #0xac b _0207EF10 _0207EEFA: mov r5, #0xae b _0207EF10 _0207EEFE: mov r5, #0xaf b _0207EF10 _0207EF02: mov r5, #0xb0 b _0207EF10 _0207EF06: mov r5, #0xad b _0207EF10 _0207EF0A: mov r5, #0xb1 b _0207EF10 _0207EF0E: mov r5, #0xb2 _0207EF10: mov r0, #0x91 lsl r0, r0, #0x2 ldr r6, [r4, r0] ldr r2, _0207EF60 ; =0x000003E2 add r6, #0x20 add r0, r6, #0x0 mov r1, #0x1 mov r3, #0xd bl FUN_0200D0BC add r0, r6, #0x0 mov r1, #0xf bl FUN_02019620 ldr r2, _0207EF64 ; =0x00000674 add r1, r5, #0x0 ldr r0, [r4, r2] add r2, #0xc ldr r2, [r4, r2] bl FUN_0200A8E0 mov r3, #0x0 mov r2, #0x1a str r3, [sp, #0x0] mov r0, #0xff str r0, [sp, #0x4] ldr r0, _0207EF68 ; =0x0001020F lsl r2, r2, #0x6 str r0, [sp, #0x8] str r3, [sp, #0xc] ldr r2, [r4, r2] add r0, r6, #0x0 mov r1, #0x1 bl FUN_0201BDE0 add r0, r6, #0x0 bl FUN_02019220 add sp, #0x10 pop {r4-r6, pc} .balign 4 _0207EF60: .word 0x000003E2 _0207EF64: .word 0x00000674 _0207EF68: .word 0x0001020F thumb_func_start FUN_0207EF6C FUN_0207EF6C: ; 0x0207EF6C push {r3-r4, lr} sub sp, #0x4 blx FUN_020BB7F4 blx FUN_020C7E94 blx FUN_020C7D28 ldr r0, _0207EFEC ; =0x04000060 ldr r1, _0207EFF0 ; =0xFFFFCFFD ldrh r2, [r0, #0x0] ldr r3, _0207EFF4 ; =0x0000CFFB and r2, r1 strh r2, [r0, #0x0] ldrh r2, [r0, #0x0] and r2, r3 strh r2, [r0, #0x0] add r2, r1, #0x2 ldrh r4, [r0, #0x0] add r1, r1, #0x2 sub r3, #0x1c and r4, r2 mov r2, #0x8 orr r2, r4 strh r2, [r0, #0x0] ldrh r2, [r0, #0x0] and r2, r1 mov r1, #0x10 orr r1, r2 strh r1, [r0, #0x0] ldrh r1, [r0, #0x0] and r1, r3 strh r1, [r0, #0x0] mov r0, #0x0 add r1, r0, #0x0 add r2, r0, #0x0 add r3, r0, #0x0 blx FUN_020C7C28 mov r0, #0x0 ldr r2, _0207EFF8 ; =0x00007FFF add r1, r0, #0x0 mov r3, #0x3f str r0, [sp, #0x0] blx FUN_020C7B3C ldr r1, _0207EFFC ; =0x04000540 mov r0, #0x0 str r0, [r1, #0x0] ldr r0, _0207F000 ; =0xBFFF0000 str r0, [r1, #0x40] mov r0, #0x1 add r1, r0, #0x0 bl FUN_0201E6E4 ldr r1, _0207F004 ; =0x04000008 mov r0, #0x3 ldrh r2, [r1, #0x0] bic r2, r0 mov r0, #0x2 orr r0, r2 strh r0, [r1, #0x0] add sp, #0x4 pop {r3-r4, pc} .balign 4 _0207EFEC: .word 0x04000060 _0207EFF0: .word 0xFFFFCFFD _0207EFF4: .word 0x0000CFFB _0207EFF8: .word 0x00007FFF _0207EFFC: .word 0x04000540 _0207F000: .word 0xBFFF0000 _0207F004: .word 0x04000008 thumb_func_start FUN_0207F008 FUN_0207F008: ; 0x0207F008 push {r4, lr} add r4, r0, #0x0 ldr r0, _0207F05C ; =0x0000068C ldrsb r0, [r4, r0] cmp r0, #0x4 bne _0207F046 bl FUN_020222AC bl FUN_0201EBA4 ldr r2, _0207F060 ; =0x04000440 mov r3, #0x0 add r1, r2, #0x0 str r3, [r2, #0x0] add r1, #0x14 str r3, [r1, #0x0] mov r0, #0x2 str r0, [r2, #0x0] str r3, [r1, #0x0] blx FUN_020B849C mov r0, #0xb7 lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_0207F108 blx FUN_020B849C add r0, r4, #0x0 bl FUN_0207F1A4 _0207F046: blx FUN_020B02C8 mov r0, #0xae lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02006ED4 ldr r0, _0207F064 ; =0x04000540 mov r1, #0x1 str r1, [r0, #0x0] pop {r4, pc} .balign 4 _0207F05C: .word 0x0000068C _0207F060: .word 0x04000440 _0207F064: .word 0x04000540 thumb_func_start FUN_0207F068 FUN_0207F068: ; 0x0207F068 push {r4, lr} add r4, r0, #0x0 mov r0, #0xad lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_0201EB70 mov r0, #0x2d lsl r0, r0, #0x4 ldr r0, [r4, r0] mov r1, #0x0 bl FUN_02014D9C mov r0, #0x2d lsl r0, r0, #0x4 ldr r0, [r4, r0] bl FUN_02014C28 mov r0, #0xae lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_020072E8 pop {r4, pc} thumb_func_start FUN_0207F098 FUN_0207F098: ; 0x0207F098 push {r3-r4, lr} sub sp, #0x1c ldr r3, _0207F100 ; =0x020FB5CC add r4, r0, #0x0 ldmia r3!, {r0-r1} add r2, sp, #0x10 stmia r2!, {r0-r1} ldr r0, [r3, #0x0] add r1, sp, #0x8 str r0, [r2, #0x0] mov r0, #0x0 strh r0, [r1, #0x0] strh r0, [r1, #0x2] strh r0, [r1, #0x4] strh r0, [r1, #0x6] mov r0, #0x13 bl FUN_0201EB64 mov r1, #0xad lsl r1, r1, #0x2 str r0, [r4, r1] mov r2, #0x1 str r2, [sp, #0x0] ldr r0, [r4, r1] lsl r1, r2, #0x10 str r0, [sp, #0x4] ldr r3, _0207F104 ; =0x000005C1 add r0, sp, #0x10 add r2, sp, #0x8 bl FUN_0201ED10 mov r2, #0xad lsl r2, r2, #0x2 mov r1, #0x19 ldr r2, [r4, r2] mov r0, #0x0 lsl r1, r1, #0xe bl FUN_0201EC94 mov r0, #0xad lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_0201EC88 mov r0, #0xad lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_0201EB8C add sp, #0x1c pop {r3-r4, pc} nop _0207F100: .word 0x020FB5CC _0207F104: .word 0x000005C1 thumb_func_start FUN_0207F108 FUN_0207F108: ; 0x0207F108 push {r4-r7} add r4, r0, #0x0 ldr r0, _0207F170 ; =0x121400C0 ldr r1, _0207F174 ; =0x040004A4 ldr r2, _0207F178 ; =0x00003FE8 str r0, [r1, #0x0] mov r0, #0x1 str r0, [r1, #0x5c] ldr r0, _0207F17C ; =0x0400048C mov r3, #0x0 sub r1, #0x24 _0207F11E: str r2, [r1, #0x0] ldrh r7, [r4, #0x2] ldrh r5, [r4, #0x0] ldrh r6, [r4, #0x4] lsl r7, r7, #0x10 orr r5, r7 str r5, [r0, #0x0] str r6, [r0, #0x0] str r2, [r1, #0x0] ldrh r7, [r4, #0x8] ldrh r5, [r4, #0x6] ldrh r6, [r4, #0xa] lsl r7, r7, #0x10 orr r5, r7 str r5, [r0, #0x0] str r6, [r0, #0x0] str r2, [r1, #0x0] ldrh r7, [r4, #0x14] ldrh r5, [r4, #0x12] ldrh r6, [r4, #0x16] lsl r7, r7, #0x10 orr r5, r7 str r5, [r0, #0x0] str r6, [r0, #0x0] str r2, [r1, #0x0] ldrh r7, [r4, #0xe] ldrh r5, [r4, #0xc] ldrh r6, [r4, #0x10] lsl r7, r7, #0x10 orr r5, r7 str r5, [r0, #0x0] add r3, r3, #0x1 add r4, #0x18 str r6, [r0, #0x0] cmp r3, #0x4 blo _0207F11E ldr r0, _0207F180 ; =0x04000504 mov r1, #0x0 str r1, [r0, #0x0] pop {r4-r7} bx lr .balign 4 _0207F170: .word 0x121400C0 _0207F174: .word 0x040004A4 _0207F178: .word 0x00003FE8 _0207F17C: .word 0x0400048C _0207F180: .word 0x04000504 thumb_func_start FUN_0207F184 FUN_0207F184: ; 0x0207F184 mov r2, #0x0 ldrsh r3, [r0, r2] ldrsh r2, [r1, r2] add r2, r3, r2 strh r2, [r0, #0x0] mov r2, #0x2 ldrsh r3, [r0, r2] ldrsh r2, [r1, r2] add r2, r3, r2 strh r2, [r0, #0x2] mov r2, #0x4 ldrsh r3, [r0, r2] ldrsh r1, [r1, r2] add r1, r3, r1 strh r1, [r0, #0x4] bx lr thumb_func_start FUN_0207F1A4 FUN_0207F1A4: ; 0x0207F1A4 push {r3-r7, lr} sub sp, #0x18 mov r2, #0xff lsl r2, r2, #0x2 add r1, r0, #0x0 ldr r1, [r1, r2] str r0, [sp, #0x0] cmp r1, #0x4 bne _0207F1BE bl FUN_0207D598 add sp, #0x18 pop {r3-r7, pc} _0207F1BE: cmp r1, #0x3 bne _0207F1EA add r6, r0, #0x0 add r7, r2, #0x0 mov r0, #0xb7 mov r5, #0x0 sub r7, #0x60 lsl r0, r0, #0x2 _0207F1CE: add r4, r6, r7 add r3, r6, r0 mov r2, #0xc _0207F1D4: ldrh r1, [r4, #0x0] add r4, r4, #0x2 strh r1, [r3, #0x0] add r3, r3, #0x2 sub r2, r2, #0x1 bne _0207F1D4 add r5, r5, #0x1 add r6, #0x18 cmp r5, #0x4 blo _0207F1CE b _0207F274 _0207F1EA: mov r0, #0x0 str r0, [sp, #0x4] ldr r0, [sp, #0x0] sub r2, #0xc0 add r0, r0, r2 str r0, [sp, #0x14] mov r0, #0xb7 lsl r0, r0, #0x2 ldr r1, [sp, #0x0] add r2, r0, #0x0 add r1, r1, r0 str r1, [sp, #0x10] ldr r1, [sp, #0x0] add r2, #0x66 add r1, r1, r2 str r1, [sp, #0xc] ldr r1, [sp, #0x0] add r2, r0, #0x6 add r1, r1, r2 str r1, [sp, #0x8] add r2, r0, #0x0 ldr r1, [sp, #0x0] add r2, #0x6c add r7, r1, r2 add r2, r0, #0x0 add r2, #0xc add r6, r1, r2 add r2, r0, #0x0 add r2, #0x72 add r0, #0x12 add r4, r1, r2 add r5, r1, r0 _0207F22A: ldr r0, [sp, #0x10] ldr r1, [sp, #0x14] bl FUN_0207F184 ldr r0, [sp, #0x8] ldr r1, [sp, #0xc] bl FUN_0207F184 add r0, r6, #0x0 add r1, r7, #0x0 bl FUN_0207F184 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0207F184 ldr r0, [sp, #0x14] add r7, #0x18 add r0, #0x18 str r0, [sp, #0x14] ldr r0, [sp, #0x10] add r6, #0x18 add r0, #0x18 str r0, [sp, #0x10] ldr r0, [sp, #0xc] add r4, #0x18 add r0, #0x18 str r0, [sp, #0xc] ldr r0, [sp, #0x8] add r5, #0x18 add r0, #0x18 str r0, [sp, #0x8] ldr r0, [sp, #0x4] add r0, r0, #0x1 str r0, [sp, #0x4] cmp r0, #0x4 blo _0207F22A _0207F274: mov r1, #0xff ldr r0, [sp, #0x0] lsl r1, r1, #0x2 ldr r0, [r0, r1] add r2, r0, #0x1 ldr r0, [sp, #0x0] str r2, [r0, r1] ldr r0, [r0, r1] cmp r0, #0x4 bne _0207F294 ldr r0, [sp, #0x0] mov r1, #0x1 bl FUN_0207D418 add sp, #0x18 pop {r3-r7, pc} _0207F294: ldr r0, [sp, #0x0] mov r1, #0x0 bl FUN_0207D418 add sp, #0x18 pop {r3-r7, pc} thumb_func_start FUN_0207F2A0 FUN_0207F2A0: ; 0x0207F2A0 push {r3-r7, lr} sub sp, #0x18 ldr r1, _0207F420 ; =0x0000068C ldrsb r1, [r0, r1] cmp r1, #0x4 beq _0207F2AE b _0207F41A _0207F2AE: ldr r7, _0207F424 ; =0x020FB60C add r3, sp, #0x0 ldrh r1, [r7, #0x8] strh r1, [r3, #0x12] ldrh r1, [r7, #0xa] strh r1, [r3, #0x14] ldrh r1, [r7, #0xc] strh r1, [r3, #0x16] mov r1, #0xb7 lsl r1, r1, #0x2 ldrh r5, [r3, #0x12] add r2, r1, #0x2 strh r5, [r0, r1] ldrh r4, [r3, #0x14] strh r4, [r0, r2] ldrh r6, [r3, #0x16] add r2, r1, #0x4 strh r6, [r0, r2] add r2, r1, #0x6 strh r5, [r0, r2] add r2, r1, #0x0 add r2, #0x8 strh r4, [r0, r2] add r2, r1, #0x0 add r2, #0xa strh r6, [r0, r2] add r2, r1, #0x0 add r2, #0xc strh r5, [r0, r2] add r2, r1, #0x0 add r2, #0xe strh r4, [r0, r2] add r2, r1, #0x0 add r2, #0x10 strh r6, [r0, r2] add r2, r1, #0x0 add r2, #0x12 strh r5, [r0, r2] add r2, r1, #0x0 add r2, #0x14 strh r4, [r0, r2] add r2, r1, #0x0 add r2, #0x16 strh r6, [r0, r2] ldrh r2, [r7, #0x3e] ldr r6, _0207F428 ; =0x020FB64C add r7, r1, #0x0 strh r2, [r3, #0xc] ldrh r2, [r6, #0x0] add r7, #0x1c strh r2, [r3, #0xe] ldrh r2, [r6, #0x2] strh r2, [r3, #0x10] add r2, r1, #0x0 ldrh r5, [r3, #0xc] add r2, #0x18 strh r5, [r0, r2] add r2, r1, #0x0 ldrh r4, [r3, #0xe] add r2, #0x1a strh r4, [r0, r2] ldrh r2, [r3, #0x10] strh r2, [r0, r7] add r7, r1, #0x0 add r7, #0x1e strh r5, [r0, r7] add r7, r1, #0x0 add r7, #0x20 strh r4, [r0, r7] add r7, r1, #0x0 add r7, #0x22 strh r2, [r0, r7] add r7, r1, #0x0 add r7, #0x24 strh r5, [r0, r7] add r7, r1, #0x0 add r7, #0x26 strh r4, [r0, r7] add r7, r1, #0x0 add r7, #0x28 strh r2, [r0, r7] add r7, r1, #0x0 add r7, #0x2a strh r5, [r0, r7] add r5, r1, #0x0 add r5, #0x2c strh r4, [r0, r5] add r4, r1, #0x0 add r4, #0x2e strh r2, [r0, r4] ldrh r2, [r6, #0x34] strh r2, [r3, #0x6] ldrh r2, [r6, #0x36] strh r2, [r3, #0x8] ldrh r2, [r6, #0x38] add r6, r1, #0x0 add r6, #0x34 strh r2, [r3, #0xa] add r2, r1, #0x0 ldrh r5, [r3, #0x6] add r2, #0x30 strh r5, [r0, r2] add r2, r1, #0x0 ldrh r4, [r3, #0x8] add r2, #0x32 strh r4, [r0, r2] ldrh r2, [r3, #0xa] strh r2, [r0, r6] add r6, r1, #0x0 add r6, #0x36 strh r5, [r0, r6] add r6, r1, #0x0 add r6, #0x38 strh r4, [r0, r6] add r6, r1, #0x0 add r6, #0x3a strh r2, [r0, r6] add r6, r1, #0x0 add r6, #0x3c strh r5, [r0, r6] add r6, r1, #0x0 add r6, #0x3e strh r4, [r0, r6] add r6, r1, #0x0 add r6, #0x40 strh r2, [r0, r6] add r6, r1, #0x0 add r6, #0x42 strh r5, [r0, r6] add r5, r1, #0x0 add r5, #0x44 strh r4, [r0, r5] add r4, r1, #0x0 add r4, #0x46 strh r2, [r0, r4] ldr r2, _0207F42C ; =0x020FB68C ldrh r4, [r2, #0x2a] strh r4, [r3, #0x0] ldrh r4, [r2, #0x2c] strh r4, [r3, #0x2] ldrh r2, [r2, #0x2e] strh r2, [r3, #0x4] add r2, r1, #0x0 ldrh r5, [r3, #0x0] add r2, #0x48 strh r5, [r0, r2] add r2, r1, #0x0 ldrh r4, [r3, #0x2] add r2, #0x4a strh r4, [r0, r2] ldrh r2, [r3, #0x4] add r3, r1, #0x0 add r3, #0x4c strh r2, [r0, r3] add r3, r1, #0x0 add r3, #0x4e strh r5, [r0, r3] add r3, r1, #0x0 add r3, #0x50 strh r4, [r0, r3] add r3, r1, #0x0 add r3, #0x52 strh r2, [r0, r3] add r3, r1, #0x0 add r3, #0x54 strh r5, [r0, r3] add r3, r1, #0x0 add r3, #0x56 strh r4, [r0, r3] add r3, r1, #0x0 add r3, #0x58 strh r2, [r0, r3] add r3, r1, #0x0 add r3, #0x5a strh r5, [r0, r3] add r3, r1, #0x0 add r3, #0x5c strh r4, [r0, r3] add r1, #0x5e strh r2, [r0, r1] bl FUN_0207F608 _0207F41A: add sp, #0x18 pop {r3-r7, pc} nop _0207F420: .word 0x0000068C _0207F424: .word 0x020FB60C _0207F428: .word 0x020FB64C _0207F42C: .word 0x020FB68C thumb_func_start FUN_0207F430 FUN_0207F430: ; 0x0207F430 push {r4-r5} cmp r2, #0xff bne _0207F446 ldrh r2, [r0, #0x0] strh r2, [r1, #0x0] ldrh r2, [r0, #0x2] strh r2, [r1, #0x2] ldrh r0, [r0, #0x4] strh r0, [r1, #0x4] pop {r4-r5} bx lr _0207F446: cmp r2, #0x0 bne _0207F45A ldrh r2, [r0, #0x6] strh r2, [r1, #0x0] ldrh r2, [r0, #0x8] strh r2, [r1, #0x2] ldrh r0, [r0, #0xa] strh r0, [r1, #0x4] pop {r4-r5} bx lr _0207F45A: mov r3, #0x6 ldrsh r5, [r0, r3] mov r3, #0xc ldrsh r3, [r0, r3] add r4, r3, #0x0 mul r4, r2 add r3, r5, r4 strh r3, [r1, #0x0] mov r3, #0x8 ldrsh r5, [r0, r3] mov r3, #0xe ldrsh r3, [r0, r3] add r4, r3, #0x0 mul r4, r2 add r3, r5, r4 strh r3, [r1, #0x2] mov r3, #0xa ldrsh r4, [r0, r3] mov r3, #0x10 ldrsh r0, [r0, r3] mul r2, r0 add r0, r4, r2 strh r0, [r1, #0x4] pop {r4-r5} bx lr thumb_func_start FUN_0207F48C FUN_0207F48C: ; 0x0207F48C push {r3-r7, lr} add r5, r0, #0x0 add r4, r1, #0x0 mov r0, #0x0 ldrsh r1, [r4, r0] ldrsh r0, [r5, r0] add r6, r2, #0x0 sub r7, r1, r0 add r0, r7, #0x0 blx FUN_020EB534 ldr r1, _0207F600 ; =0x45800000 blx FUN_020EB084 ldr r1, _0207F604 ; =0x40800000 blx FUN_020EB084 mov r1, #0x0 blx FUN_020EAEF0 bls _0207F4E0 add r0, r7, #0x0 blx FUN_020EB534 ldr r1, _0207F600 ; =0x45800000 blx FUN_020EB084 ldr r1, _0207F604 ; =0x40800000 blx FUN_020EB084 add r1, r0, #0x0 ldr r0, _0207F600 ; =0x45800000 blx FUN_020EB5C4 add r1, r0, #0x0 mov r0, #0x3f lsl r0, r0, #0x18 blx FUN_020EA980 blx FUN_020EB4C0 b _0207F506 _0207F4E0: add r0, r7, #0x0 blx FUN_020EB534 ldr r1, _0207F600 ; =0x45800000 blx FUN_020EB084 ldr r1, _0207F604 ; =0x40800000 blx FUN_020EB084 add r1, r0, #0x0 ldr r0, _0207F600 ; =0x45800000 blx FUN_020EB5C4 mov r1, #0x3f lsl r1, r1, #0x18 blx FUN_020EB7B0 blx FUN_020EB4C0 _0207F506: lsl r0, r0, #0x10 asr r0, r0, #0x10 strh r0, [r6, #0x0] mov r0, #0x2 ldrsh r1, [r4, r0] ldrsh r0, [r5, r0] sub r7, r1, r0 add r0, r7, #0x0 blx FUN_020EB534 ldr r1, _0207F600 ; =0x45800000 blx FUN_020EB084 ldr r1, _0207F604 ; =0x40800000 blx FUN_020EB084 mov r1, #0x0 blx FUN_020EAEF0 bls _0207F558 add r0, r7, #0x0 blx FUN_020EB534 ldr r1, _0207F600 ; =0x45800000 blx FUN_020EB084 ldr r1, _0207F604 ; =0x40800000 blx FUN_020EB084 add r1, r0, #0x0 ldr r0, _0207F600 ; =0x45800000 blx FUN_020EB5C4 add r1, r0, #0x0 mov r0, #0x3f lsl r0, r0, #0x18 blx FUN_020EA980 blx FUN_020EB4C0 b _0207F57E _0207F558: add r0, r7, #0x0 blx FUN_020EB534 ldr r1, _0207F600 ; =0x45800000 blx FUN_020EB084 ldr r1, _0207F604 ; =0x40800000 blx FUN_020EB084 add r1, r0, #0x0 ldr r0, _0207F600 ; =0x45800000 blx FUN_020EB5C4 mov r1, #0x3f lsl r1, r1, #0x18 blx FUN_020EB7B0 blx FUN_020EB4C0 _0207F57E: lsl r0, r0, #0x10 asr r0, r0, #0x10 strh r0, [r6, #0x2] mov r0, #0x4 ldrsh r1, [r4, r0] ldrsh r0, [r5, r0] sub r4, r1, r0 add r0, r4, #0x0 blx FUN_020EB534 ldr r1, _0207F600 ; =0x45800000 blx FUN_020EB084 ldr r1, _0207F604 ; =0x40800000 blx FUN_020EB084 mov r1, #0x0 blx FUN_020EAEF0 bls _0207F5D0 add r0, r4, #0x0 blx FUN_020EB534 ldr r1, _0207F600 ; =0x45800000 blx FUN_020EB084 ldr r1, _0207F604 ; =0x40800000 blx FUN_020EB084 add r1, r0, #0x0 ldr r0, _0207F600 ; =0x45800000 blx FUN_020EB5C4 add r1, r0, #0x0 mov r0, #0x3f lsl r0, r0, #0x18 blx FUN_020EA980 blx FUN_020EB4C0 b _0207F5F6 _0207F5D0: add r0, r4, #0x0 blx FUN_020EB534 ldr r1, _0207F600 ; =0x45800000 blx FUN_020EB084 ldr r1, _0207F604 ; =0x40800000 blx FUN_020EB084 add r1, r0, #0x0 ldr r0, _0207F600 ; =0x45800000 blx FUN_020EB5C4 mov r1, #0x3f lsl r1, r1, #0x18 blx FUN_020EB7B0 blx FUN_020EB4C0 _0207F5F6: lsl r0, r0, #0x10 asr r0, r0, #0x10 strh r0, [r6, #0x4] pop {r3-r7, pc} nop _0207F600: .word 0x45800000 _0207F604: .word 0x40800000 thumb_func_start FUN_0207F608 FUN_0207F608: ; 0x0207F608 push {r3-r7, lr} sub sp, #0x28 ldr r2, _0207F7D0 ; =0x00000295 add r5, r0, #0x0 mov r1, #0xe7 lsl r1, r1, #0x2 ldrb r2, [r5, r2] ldr r0, _0207F7D4 ; =0x020FB5D8 add r1, r5, r1 bl FUN_0207F430 ldr r2, _0207F7D8 ; =0x00000296 ldr r1, _0207F7DC ; =0x000003A2 ldrb r2, [r5, r2] ldr r0, _0207F7E0 ; =0x020FB5EA add r1, r5, r1 bl FUN_0207F430 ldr r2, _0207F7E4 ; =0x00000297 ldr r1, _0207F7E8 ; =0x000003AE ldrb r2, [r5, r2] ldr r0, _0207F7EC ; =0x020FB5FC add r1, r5, r1 bl FUN_0207F430 mov r1, #0xea lsl r1, r1, #0x2 ldr r0, _0207F7F0 ; =0x020FB60E add r1, r5, r1 mov r2, #0x0 bl FUN_0207F430 ldr r2, _0207F7F4 ; =0x00000299 mov r1, #0xed lsl r1, r1, #0x2 ldrb r2, [r5, r2] ldr r0, _0207F7F8 ; =0x020FB620 add r1, r5, r1 bl FUN_0207F430 ldr r2, _0207F7D0 ; =0x00000295 ldr r1, _0207F7FC ; =0x000003BA ldrb r2, [r5, r2] ldr r0, _0207F800 ; =0x020FB632 add r1, r5, r1 bl FUN_0207F430 ldr r1, _0207F804 ; =0x000003C6 ldr r0, _0207F808 ; =0x020FB644 add r1, r5, r1 mov r2, #0x0 bl FUN_0207F430 mov r2, #0xa6 lsl r2, r2, #0x2 mov r1, #0xf lsl r1, r1, #0x6 ldrb r2, [r5, r2] ldr r0, _0207F80C ; =0x020FB656 add r1, r5, r1 bl FUN_0207F430 ldr r2, _0207F7F4 ; =0x00000299 mov r1, #0xf3 lsl r1, r1, #0x2 ldrb r2, [r5, r2] ldr r0, _0207F810 ; =0x020FB668 add r1, r5, r1 bl FUN_0207F430 ldr r1, _0207F814 ; =0x000003D2 ldr r0, _0207F818 ; =0x020FB67A add r1, r5, r1 mov r2, #0x0 bl FUN_0207F430 ldr r2, _0207F7E4 ; =0x00000297 ldr r1, _0207F81C ; =0x000003DE ldrb r2, [r5, r2] ldr r0, _0207F820 ; =0x020FB68C add r1, r5, r1 bl FUN_0207F430 mov r2, #0xa6 lsl r2, r2, #0x2 mov r1, #0xf6 lsl r1, r1, #0x2 ldrb r2, [r5, r2] ldr r0, _0207F824 ; =0x020FB69E add r1, r5, r1 bl FUN_0207F430 mov r1, #0xf9 lsl r1, r1, #0x2 ldr r0, _0207F828 ; =0x020FB6B0 add r1, r5, r1 mov r2, #0x0 bl FUN_0207F430 ldr r2, _0207F7D8 ; =0x00000296 ldr r1, _0207F82C ; =0x000003EA ldrb r2, [r5, r2] ldr r0, _0207F830 ; =0x020FB6C2 add r1, r5, r1 bl FUN_0207F430 ldr r2, _0207F7E4 ; =0x00000297 ldr r1, _0207F834 ; =0x000003F6 ldrb r2, [r5, r2] ldr r0, _0207F838 ; =0x020FB6D4 add r1, r5, r1 bl FUN_0207F430 mov r2, #0xa6 lsl r2, r2, #0x2 mov r1, #0x3f lsl r1, r1, #0x4 ldrb r2, [r5, r2] ldr r0, _0207F83C ; =0x020FB6E6 add r1, r5, r1 bl FUN_0207F430 mov r0, #0x0 str r0, [sp, #0x24] mov r0, #0xcf lsl r0, r0, #0x2 add r1, r5, r0 str r1, [sp, #0x20] add r1, r0, #0x0 add r1, #0x60 add r1, r5, r1 str r1, [sp, #0x1c] add r1, r0, #0x0 sub r1, #0x60 add r1, r5, r1 str r1, [sp, #0x18] add r1, r0, #0x6 add r1, r5, r1 str r1, [sp, #0x14] add r1, r0, #0x0 add r1, #0x66 add r1, r5, r1 str r1, [sp, #0x10] add r1, r0, #0x0 sub r1, #0x5a add r1, r5, r1 str r1, [sp, #0xc] add r1, r0, #0x0 add r1, #0xc add r1, r5, r1 str r1, [sp, #0x8] add r1, r0, #0x0 add r1, #0x6c add r1, r5, r1 str r1, [sp, #0x4] add r1, r0, #0x0 sub r1, #0x54 add r1, r5, r1 str r1, [sp, #0x0] add r1, r0, #0x0 add r1, #0x12 add r7, r5, r1 add r1, r0, #0x0 add r1, #0x72 sub r0, #0x4e add r6, r5, r1 add r4, r5, r0 _0207F756: ldr r0, [sp, #0x18] ldr r1, [sp, #0x1c] ldr r2, [sp, #0x20] bl FUN_0207F48C ldr r0, [sp, #0xc] ldr r1, [sp, #0x10] ldr r2, [sp, #0x14] bl FUN_0207F48C ldr r0, [sp, #0x0] ldr r1, [sp, #0x4] ldr r2, [sp, #0x8] bl FUN_0207F48C add r0, r4, #0x0 add r1, r6, #0x0 add r2, r7, #0x0 bl FUN_0207F48C ldr r0, [sp, #0x20] add r7, #0x18 add r0, #0x18 str r0, [sp, #0x20] ldr r0, [sp, #0x1c] add r6, #0x18 add r0, #0x18 str r0, [sp, #0x1c] ldr r0, [sp, #0x18] add r4, #0x18 add r0, #0x18 str r0, [sp, #0x18] ldr r0, [sp, #0x14] add r0, #0x18 str r0, [sp, #0x14] ldr r0, [sp, #0x10] add r0, #0x18 str r0, [sp, #0x10] ldr r0, [sp, #0xc] add r0, #0x18 str r0, [sp, #0xc] ldr r0, [sp, #0x8] add r0, #0x18 str r0, [sp, #0x8] ldr r0, [sp, #0x4] add r0, #0x18 str r0, [sp, #0x4] ldr r0, [sp, #0x0] add r0, #0x18 str r0, [sp, #0x0] ldr r0, [sp, #0x24] add r0, r0, #0x1 str r0, [sp, #0x24] cmp r0, #0x4 blo _0207F756 mov r0, #0xff mov r1, #0x0 lsl r0, r0, #0x2 str r1, [r5, r0] add sp, #0x28 pop {r3-r7, pc} .balign 4 _0207F7D0: .word 0x00000295 _0207F7D4: .word 0x020FB5D8 _0207F7D8: .word 0x00000296 _0207F7DC: .word 0x000003A2 _0207F7E0: .word 0x020FB5EA _0207F7E4: .word 0x00000297 _0207F7E8: .word 0x000003AE _0207F7EC: .word 0x020FB5FC _0207F7F0: .word 0x020FB60E _0207F7F4: .word 0x00000299 _0207F7F8: .word 0x020FB620 _0207F7FC: .word 0x000003BA _0207F800: .word 0x020FB632 _0207F804: .word 0x000003C6 _0207F808: .word 0x020FB644 _0207F80C: .word 0x020FB656 _0207F810: .word 0x020FB668 _0207F814: .word 0x000003D2 _0207F818: .word 0x020FB67A _0207F81C: .word 0x000003DE _0207F820: .word 0x020FB68C _0207F824: .word 0x020FB69E _0207F828: .word 0x020FB6B0 _0207F82C: .word 0x000003EA _0207F830: .word 0x020FB6C2 _0207F834: .word 0x000003F6 _0207F838: .word 0x020FB6D4 _0207F83C: .word 0x020FB6E6 thumb_func_start FUN_0207F840 FUN_0207F840: ; 0x0207F840 push {r4, lr} sub sp, #0x20 add r4, r0, #0x0 mov r0, #0x13 bl FUN_02006D98 mov r1, #0xae lsl r1, r1, #0x2 str r0, [r4, r1] add r0, r4, #0x0 bl FUN_0207B628 add r1, r0, #0x0 mov r0, #0x93 lsl r0, r0, #0x2 ldr r0, [r4, r0] ldrb r0, [r0, #0x11] cmp r0, #0x2 add r0, sp, #0x10 bne _0207F870 mov r2, #0x2 bl FUN_02068B70 b _0207F876 _0207F870: mov r2, #0x2 bl FUN_02068B68 _0207F876: mov r1, #0xaf lsl r1, r1, #0x2 add r0, r4, r1 sub r1, #0x60 ldrh r1, [r4, r1] bl FUN_02069010 mov r0, #0x97 lsl r0, r0, #0x2 ldrh r0, [r4, r0] mov r1, #0x1c bl FUN_02068678 mov r1, #0x1 eor r0, r1 mov r1, #0xb6 lsl r1, r1, #0x2 str r0, [r4, r1] add r0, r1, #0x0 mov r2, #0x0 str r2, [sp, #0x0] sub r0, #0x1c str r2, [sp, #0x4] add r0, r4, r0 str r0, [sp, #0x8] str r2, [sp, #0xc] sub r1, #0x20 ldr r0, [r4, r1] add r1, sp, #0x10 mov r2, #0x34 mov r3, #0x68 bl FUN_020073A0 mov r2, #0xb5 lsl r2, r2, #0x2 str r0, [r4, r2] ldr r0, [r4, r2] add r2, r2, #0x4 ldr r2, [r4, r2] mov r1, #0x23 bl FUN_02007558 add sp, #0x20 pop {r4, pc} .balign 4 thumb_func_start FUN_0207F8D0 FUN_0207F8D0: ; 0x0207F8D0 push {r3-r4, lr} sub sp, #0xc mov r1, #0x2a add r4, r0, #0x0 lsl r1, r1, #0x4 ldr r0, [r4, r1] lsl r0, r0, #0x3 lsr r0, r0, #0x1f beq _0207F904 mov r2, #0x0 add r0, r1, #0x0 str r2, [sp, #0x0] add r0, #0x38 ldr r0, [r4, r0] mov r3, #0x2 str r0, [sp, #0x4] add r0, r1, #0x0 str r2, [sp, #0x8] add r0, #0x30 add r1, #0x34 ldr r0, [r4, r0] ldr r1, [r4, r1] bl FUN_02069038 add sp, #0xc pop {r3-r4, pc} _0207F904: add r1, #0x34 ldr r0, [r4, r1] mov r1, #0x1 bl FUN_02007314 mov r1, #0x0 mov r2, #0xb6 str r1, [sp, #0x0] lsl r2, r2, #0x2 ldr r0, [r4, r2] mov r3, #0x2 str r0, [sp, #0x4] str r1, [sp, #0x8] add r0, r2, #0x0 sub r1, r2, #0x4 sub r2, #0x7c sub r0, #0x8 ldrh r2, [r4, r2] ldr r0, [r4, r0] ldr r1, [r4, r1] bl FUN_02069038 add sp, #0xc pop {r3-r4, pc} thumb_func_start FUN_0207F934 FUN_0207F934: ; 0x0207F934 push {r4, lr} add r4, r0, #0x0 mov r0, #0x2d lsl r0, r0, #0x4 ldr r0, [r4, r0] mov r1, #0x0 bl FUN_02014D9C mov r0, #0xae lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_020072E8 add r0, r4, #0x0 bl FUN_0207F840 add r0, r4, #0x0 bl FUN_0207F8D0 pop {r4, pc} thumb_func_start FUN_0207F95C FUN_0207F95C: ; 0x0207F95C push {r4, lr} add r4, r0, #0x0 mov r0, #0x93 lsl r0, r0, #0x2 ldr r0, [r4, r0] ldrb r1, [r0, #0x12] cmp r1, #0x3 bhi _0207F9AC add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0207F978: ; jump table (using 16-bit offset) .short _0207F980 - _0207F978 - 2; case 0 .short _0207F980 - _0207F978 - 2; case 1 .short _0207F9AC - _0207F978 - 2; case 2 .short _0207F9AC - _0207F978 - 2; case 3 _0207F980: ldr r0, [r0, #0x2c] ldr r1, _0207F9C4 ; =0x0000068F cmp r0, #0x0 beq _0207F992 ldrb r2, [r4, r1] mov r0, #0xf bic r2, r0 strb r2, [r4, r1] b _0207F9BA _0207F992: ldrb r2, [r4, r1] mov r0, #0xf bic r2, r0 mov r0, #0x1 orr r0, r2 strb r0, [r4, r1] mov r1, #0x4 ldr r0, [r4, #0x0] mov r2, #0x0 add r3, r1, #0x0 bl FUN_0201AEE4 b _0207F9BA _0207F9AC: ldr r1, _0207F9C4 ; =0x0000068F mov r0, #0xf ldrb r2, [r4, r1] bic r2, r0 mov r0, #0xf orr r0, r2 strb r0, [r4, r1] _0207F9BA: add r0, r4, #0x0 bl FUN_0207FA38 pop {r4, pc} nop _0207F9C4: .word 0x0000068F thumb_func_start FUN_0207F9C8 FUN_0207F9C8: ; 0x0207F9C8 push {r3-r7, lr} ldr r0, [r0, #0x0] add r4, r1, #0x0 mov r1, #0x4 add r5, r2, #0x0 bl FUN_0201886C add r7, r0, #0x0 lsl r0, r5, #0x2 add r1, r5, r0 ldrb r2, [r4, #0x0] mov r0, #0x1 mov r3, #0x0 add r5, r2, #0x0 and r5, r0 mov r0, #0xf mul r0, r5 lsr r5, r2, #0x1 mov r2, #0x96 mul r2, r5 add r0, r0, r2 add r0, r1, r0 add r0, #0x1e lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r12, r0 _0207F9FC: mov r0, #0x1e add r1, r3, #0x0 mul r1, r0 mov r0, r12 mov r2, #0x0 add r5, r0, r1 _0207FA08: ldrb r0, [r4, #0x1] ldrb r6, [r4, #0x3] lsl r1, r0, #0xc add r0, r2, r5 add r1, r1, r0 add r6, r3, r6 lsl r6, r6, #0x5 ldrb r0, [r4, #0x2] add r6, r2, r6 add r0, r0, r6 lsl r0, r0, #0x1 strh r1, [r7, r0] add r0, r2, #0x1 lsl r0, r0, #0x18 lsr r2, r0, #0x18 cmp r2, #0x5 blo _0207FA08 add r0, r3, #0x1 lsl r0, r0, #0x18 lsr r3, r0, #0x18 cmp r3, #0x5 blo _0207F9FC pop {r3-r7, pc} .balign 4 thumb_func_start FUN_0207FA38 FUN_0207FA38: ; 0x0207FA38 push {r3-r7, lr} add r6, r0, #0x0 ldr r0, _0207FA78 ; =0x0000068F ldrb r0, [r6, r0] lsl r0, r0, #0x1c lsr r0, r0, #0x1c cmp r0, #0xf beq _0207FA74 lsl r1, r0, #0x2 ldr r0, _0207FA7C ; =0x02106148 mov r5, #0x0 ldr r4, [r0, r1] add r7, r5, #0x0 _0207FA52: lsl r1, r5, #0x2 ldrb r0, [r4, r1] cmp r0, #0xff beq _0207FA6C add r0, r6, #0x0 add r1, r4, r1 add r2, r7, #0x0 bl FUN_0207F9C8 add r0, r5, #0x1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 b _0207FA52 _0207FA6C: ldr r0, [r6, #0x0] mov r1, #0x4 bl FUN_0201AC68 _0207FA74: pop {r3-r7, pc} nop _0207FA78: .word 0x0000068F _0207FA7C: .word 0x02106148 thumb_func_start FUN_0207FA80 FUN_0207FA80: ; 0x0207FA80 push {r3, lr} bl FUN_0207FA98 mov r1, #0x0 mvn r1, r1 cmp r0, r1 beq _0207FA94 lsl r0, r0, #0x18 lsr r0, r0, #0x18 pop {r3, pc} _0207FA94: mov r0, #0xff pop {r3, pc} thumb_func_start FUN_0207FA98 FUN_0207FA98: ; 0x0207FA98 push {r3, lr} ldr r1, _0207FAB8 ; =0x0000068F ldrb r0, [r0, r1] lsl r0, r0, #0x1c lsr r0, r0, #0x1c cmp r0, #0xf bne _0207FAAC mov r0, #0x0 mvn r0, r0 pop {r3, pc} _0207FAAC: lsl r1, r0, #0x2 ldr r0, _0207FABC ; =0x0210613C ldr r0, [r0, r1] bl FUN_02020988 pop {r3, pc} .balign 4 _0207FAB8: .word 0x0000068F _0207FABC: .word 0x0210613C thumb_func_start FUN_0207FAC0 FUN_0207FAC0: ; 0x0207FAC0 push {r3-r5, lr} sub sp, #0x8 add r5, r0, #0x0 ldr r0, _0207FB18 ; =0x0000068F ldrb r0, [r5, r0] lsl r0, r0, #0x1c lsr r0, r0, #0x1c cmp r0, #0xf bne _0207FADA mov r0, #0x0 add sp, #0x8 mvn r0, r0 pop {r3-r5, pc} _0207FADA: lsl r1, r0, #0x2 ldr r0, _0207FB1C ; =0x0210613C ldr r0, [r0, r1] bl FUN_02020968 add r4, r0, #0x0 mov r0, #0x0 mvn r0, r0 cmp r4, r0 beq _0207FB12 ldr r1, _0207FB20 ; =0x0000FFFE add r0, sp, #0x4 strh r1, [r0, #0x0] add r0, sp, #0x4 str r0, [sp, #0x0] ldr r3, _0207FB24 ; =0x021C48F8 ldr r0, [r5, #0x0] ldrh r2, [r3, #0x1c] ldrh r3, [r3, #0x1e] mov r1, #0x4 bl FUN_0201AFBC cmp r0, #0x0 bne _0207FB12 mov r0, #0x0 add sp, #0x8 mvn r0, r0 pop {r3-r5, pc} _0207FB12: add r0, r4, #0x0 add sp, #0x8 pop {r3-r5, pc} .balign 4 _0207FB18: .word 0x0000068F _0207FB1C: .word 0x0210613C _0207FB20: .word 0x0000FFFE _0207FB24: .word 0x021C48F8 thumb_func_start FUN_0207FB28 FUN_0207FB28: ; 0x0207FB28 push {r4-r6, lr} ldr r1, _0207FBF4 ; =0x0000068F add r5, r0, #0x0 ldrb r2, [r5, r1] lsl r2, r2, #0x1c lsr r3, r2, #0x1a ldr r2, _0207FBF8 ; =0x02106148 ldr r4, [r2, r3] add r2, r1, #0x6 ldrb r2, [r5, r2] cmp r2, #0x0 beq _0207FB4A cmp r2, #0x1 beq _0207FB84 cmp r2, #0x2 beq _0207FB8C b _0207FBEE _0207FB4A: sub r1, #0xab add r0, r1, #0x0 bl FUN_020054C8 add r0, r5, #0x0 bl FUN_0207FA38 ldr r1, _0207FBFC ; =0x00000696 add r0, r5, #0x0 ldrb r1, [r5, r1] mov r2, #0x2 lsl r1, r1, #0x2 add r1, r4, r1 bl FUN_0207F9C8 ldr r0, [r5, #0x0] mov r1, #0x4 bl FUN_0201AC68 add r0, r5, #0x0 bl FUN_0207CEDC ldr r0, _0207FC00 ; =0x00000694 mov r1, #0x0 strb r1, [r5, r0] mov r1, #0x1 add r0, r0, #0x1 strb r1, [r5, r0] b _0207FBEE _0207FB84: mov r2, #0x2 add r0, r1, #0x6 strb r2, [r5, r0] b _0207FBEE _0207FB8C: add r2, r1, #0x5 ldrb r2, [r5, r2] cmp r2, #0x3 beq _0207FBA0 add r0, r1, #0x5 ldrb r0, [r5, r0] add r2, r0, #0x1 add r0, r1, #0x5 strb r2, [r5, r0] b _0207FBEE _0207FBA0: bl FUN_0207CF58 ldr r0, _0207FBFC ; =0x00000696 ldrb r6, [r5, r0] add r0, r5, #0x0 bl FUN_0207FAC0 cmp r6, r0 beq _0207FBEE mov r0, #0x2a lsl r0, r0, #0x4 ldr r0, [r5, r0] lsl r0, r0, #0x3 lsr r0, r0, #0x1f beq _0207FBD6 lsl r1, r6, #0x2 ldrb r0, [r4, r1] cmp r0, #0x1 beq _0207FBD6 cmp r0, #0x7 beq _0207FBD6 add r0, r5, #0x0 add r1, r4, r1 mov r2, #0x0 bl FUN_0207F9C8 b _0207FBE2 _0207FBD6: lsl r1, r6, #0x2 add r0, r5, #0x0 add r1, r4, r1 mov r2, #0x1 bl FUN_0207F9C8 _0207FBE2: ldr r0, [r5, #0x0] mov r1, #0x4 bl FUN_0201AC68 mov r0, #0x1 pop {r4-r6, pc} _0207FBEE: mov r0, #0x0 pop {r4-r6, pc} nop _0207FBF4: .word 0x0000068F _0207FBF8: .word 0x02106148 _0207FBFC: .word 0x00000696 _0207FC00: .word 0x00000694 thumb_func_start FUN_0207FC04 FUN_0207FC04: ; 0x0207FC04 push {r4-r5} ldr r4, _0207FC38 ; =0x0000068F ldrb r3, [r0, r4] lsl r3, r3, #0x1c lsr r5, r3, #0x1a ldr r3, _0207FC3C ; =0x02106148 ldr r3, [r3, r5] add r5, r4, #0x7 ldrb r5, [r0, r5] lsl r5, r5, #0x2 add r5, r3, r5 ldrb r5, [r5, #0x2] lsl r5, r5, #0x3 add r5, #0x14 strh r5, [r1, #0x0] add r1, r4, #0x7 ldrb r0, [r0, r1] lsl r0, r0, #0x2 add r0, r3, r0 ldrb r0, [r0, #0x3] lsl r0, r0, #0x3 add r0, #0x14 strh r0, [r2, #0x0] pop {r4-r5} bx lr nop _0207FC38: .word 0x0000068F _0207FC3C: .word 0x02106148 thumb_func_start FUN_0207FC40 FUN_0207FC40: ; 0x0207FC40 ldr r2, _0207FC54 ; =0x0000068F ldrb r0, [r0, r2] lsl r0, r0, #0x1c lsr r2, r0, #0x1a ldr r0, _0207FC58 ; =0x02106148 ldr r2, [r0, r2] lsl r0, r1, #0x2 ldrb r0, [r2, r0] bx lr nop _0207FC54: .word 0x0000068F _0207FC58: .word 0x02106148 thumb_func_start FUN_0207FC5C FUN_0207FC5C: ; 0x0207FC5C cmp r1, #0x4 bhi _0207FCA8 add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0207FC6C: ; jump table (using 16-bit offset) .short _0207FC76 - _0207FC6C - 2; case 0 .short _0207FC80 - _0207FC6C - 2; case 1 .short _0207FC8A - _0207FC6C - 2; case 2 .short _0207FC94 - _0207FC6C - 2; case 3 .short _0207FC9E - _0207FC6C - 2; case 4 _0207FC76: mov r1, #0xc mul r1, r0 ldr r0, _0207FCAC ; =0x020FB788 ldr r0, [r0, r1] bx lr _0207FC80: mov r1, #0xc mul r1, r0 ldr r0, _0207FCB0 ; =0x020FB78C ldrh r0, [r0, r1] bx lr _0207FC8A: mov r1, #0xc mul r1, r0 ldr r0, _0207FCB4 ; =0x020FB78E ldrh r0, [r0, r1] bx lr _0207FC94: mov r1, #0xc mul r1, r0 ldr r0, _0207FCB8 ; =0x020FB790 ldrh r0, [r0, r1] bx lr _0207FC9E: mov r1, #0xc mul r1, r0 ldr r0, _0207FCBC ; =0x020FB792 ldrh r0, [r0, r1] bx lr _0207FCA8: mov r0, #0x0 bx lr .balign 4 _0207FCAC: .word 0x020FB788 _0207FCB0: .word 0x020FB78C _0207FCB4: .word 0x020FB78E _0207FCB8: .word 0x020FB790 _0207FCBC: .word 0x020FB792 thumb_func_start FUN_0207FCC0 FUN_0207FCC0: ; 0x0207FCC0 mov r2, #0xc mul r2, r1 ldr r1, _0207FCDC ; =0x020FB792 ldrh r2, [r1, r2] mov r1, #0x2 lsl r1, r1, #0xe tst r1, r2 beq _0207FCD8 lsl r1, r2, #0x18 lsr r1, r1, #0x18 ldrb r2, [r0, r1] add r2, #0x92 _0207FCD8: add r0, r2, #0x0 bx lr .balign 4 _0207FCDC: .word 0x020FB792 thumb_func_start FUN_0207FCE0 FUN_0207FCE0: ; 0x0207FCE0 mov r1, #0xc mul r1, r0 ldr r0, _0207FCFC ; =0x020FB792 ldrh r1, [r0, r1] mov r0, #0x2 lsl r0, r0, #0xe tst r0, r1 beq _0207FCF6 lsl r0, r1, #0x18 lsr r0, r0, #0x18 bx lr _0207FCF6: mov r0, #0xff bx lr nop _0207FCFC: .word 0x020FB792 thumb_func_start FUN_0207FD00 FUN_0207FD00: ; 0x0207FD00 push {r3-r7, lr} add r7, r2, #0x0 add r5, r0, #0x0 add r6, r1, #0x0 add r0, r7, #0x0 mov r1, #0x3c bl FUN_02016998 add r4, r0, #0x0 mov r2, #0x65 str r7, [r4, #0x0] mov r0, #0x1 mov r1, #0x1a lsl r2, r2, #0x2 add r3, r7, #0x0 bl FUN_0200A86C str r0, [r4, #0x4] ldr r2, [r4, #0x0] mov r0, #0x9 mov r1, #0x20 bl FUN_0200AA90 str r0, [r4, #0x8] str r5, [r4, #0xc] str r6, [r4, #0x10] mov r0, #0x0 str r0, [r4, #0x14] str r0, [r4, #0x18] str r0, [r4, #0x1c] str r0, [r4, #0x20] str r0, [r4, #0x24] str r0, [r4, #0x28] str r0, [r4, #0x2c] str r0, [r4, #0x30] str r0, [r4, #0x34] str r0, [r4, #0x38] ldr r0, [r4, #0xc] ldr r1, [r4, #0x10] ldr r2, [r4, #0x0] bl FUN_020806F4 cmp r0, #0x14 bls _0207FD5A b _02080090 _0207FD5A: add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0207FD66: ; jump table (using 16-bit offset) .short _0207FD90 - _0207FD66 - 2; case 0 .short _0207FDBC - _0207FD66 - 2; case 1 .short _0207FDE8 - _0207FD66 - 2; case 2 .short _0207FE14 - _0207FD66 - 2; case 3 .short _0207FE40 - _0207FD66 - 2; case 4 .short _0207FE6C - _0207FD66 - 2; case 5 .short _0207FE98 - _0207FD66 - 2; case 6 .short _0207FEC4 - _0207FD66 - 2; case 7 .short _0207FEF0 - _0207FD66 - 2; case 8 .short _0207FF1C - _0207FD66 - 2; case 9 .short _0207FF3E - _0207FD66 - 2; case 10 .short _0207FF60 - _0207FD66 - 2; case 11 .short _0207FF82 - _0207FD66 - 2; case 12 .short _0207FFA4 - _0207FD66 - 2; case 13 .short _0207FFC6 - _0207FD66 - 2; case 14 .short _0207FFE8 - _0207FD66 - 2; case 15 .short _02080014 - _0207FD66 - 2; case 16 .short _0208002E - _0207FD66 - 2; case 17 .short _02080046 - _0207FD66 - 2; case 18 .short _02080060 - _0207FD66 - 2; case 19 .short _02080078 - _0207FD66 - 2; case 20 _0207FD90: mov r0, #0x1 str r0, [r4, #0x14] add r0, r4, #0x0 bl FUN_020800E0 mov r0, #0x2 str r0, [r4, #0x1c] add r0, r4, #0x0 mov r1, #0x31 bl FUN_02080108 mov r0, #0x6 str r0, [r4, #0x24] add r0, r4, #0x0 bl FUN_0208048C mov r0, #0x7 str r0, [r4, #0x2c] add r0, r4, #0x0 bl FUN_02080678 b _02080090 _0207FDBC: mov r0, #0x1 str r0, [r4, #0x14] add r0, r4, #0x0 bl FUN_020800E0 mov r0, #0x2 str r0, [r4, #0x1c] add r0, r4, #0x0 mov r1, #0x32 bl FUN_02080108 mov r0, #0x6 str r0, [r4, #0x24] add r0, r4, #0x0 bl FUN_0208048C mov r0, #0x7 str r0, [r4, #0x2c] add r0, r4, #0x0 bl FUN_02080678 b _02080090 _0207FDE8: mov r0, #0x1 str r0, [r4, #0x14] add r0, r4, #0x0 bl FUN_020800E0 mov r0, #0x2 str r0, [r4, #0x1c] add r0, r4, #0x0 mov r1, #0x33 bl FUN_02080108 mov r0, #0x6 str r0, [r4, #0x24] add r0, r4, #0x0 bl FUN_0208048C mov r0, #0x7 str r0, [r4, #0x2c] add r0, r4, #0x0 bl FUN_02080678 b _02080090 _0207FE14: mov r0, #0x1 str r0, [r4, #0x14] add r0, r4, #0x0 bl FUN_020800E0 mov r0, #0x2 str r0, [r4, #0x1c] add r0, r4, #0x0 mov r1, #0x34 bl FUN_02080108 mov r0, #0x8 str r0, [r4, #0x24] add r0, r4, #0x0 bl FUN_0208048C mov r0, #0x9 str r0, [r4, #0x2c] add r0, r4, #0x0 bl FUN_02080678 b _02080090 _0207FE40: mov r0, #0x1 str r0, [r4, #0x14] add r0, r4, #0x0 bl FUN_020800E0 mov r0, #0x2 str r0, [r4, #0x1c] add r0, r4, #0x0 mov r1, #0x35 bl FUN_02080108 mov r0, #0x8 str r0, [r4, #0x24] add r0, r4, #0x0 bl FUN_0208048C mov r0, #0x9 str r0, [r4, #0x2c] add r0, r4, #0x0 bl FUN_02080678 b _02080090 _0207FE6C: mov r0, #0x1 str r0, [r4, #0x14] add r0, r4, #0x0 bl FUN_020800E0 mov r0, #0x2 str r0, [r4, #0x1c] add r0, r4, #0x0 mov r1, #0x36 bl FUN_02080108 mov r0, #0x8 str r0, [r4, #0x24] add r0, r4, #0x0 bl FUN_0208048C mov r0, #0x9 str r0, [r4, #0x2c] add r0, r4, #0x0 bl FUN_02080678 b _02080090 _0207FE98: mov r0, #0x1 str r0, [r4, #0x14] add r0, r4, #0x0 bl FUN_020800E0 mov r0, #0x2 str r0, [r4, #0x1c] add r0, r4, #0x0 mov r1, #0x37 bl FUN_02080108 mov r0, #0x8 str r0, [r4, #0x24] add r0, r4, #0x0 bl FUN_0208048C mov r0, #0x9 str r0, [r4, #0x2c] add r0, r4, #0x0 bl FUN_02080678 b _02080090 _0207FEC4: mov r0, #0x1 str r0, [r4, #0x14] add r0, r4, #0x0 bl FUN_020800E0 mov r0, #0x2 str r0, [r4, #0x1c] add r0, r4, #0x0 mov r1, #0x38 bl FUN_02080108 mov r0, #0x7 str r0, [r4, #0x24] add r0, r4, #0x0 bl FUN_0208048C mov r0, #0x8 str r0, [r4, #0x2c] add r0, r4, #0x0 bl FUN_02080678 b _02080090 _0207FEF0: mov r0, #0x1 str r0, [r4, #0x14] add r0, r4, #0x0 bl FUN_020800E0 mov r0, #0x2 str r0, [r4, #0x1c] add r0, r4, #0x0 mov r1, #0x39 bl FUN_02080108 mov r0, #0x7 str r0, [r4, #0x24] add r0, r4, #0x0 bl FUN_0208048C mov r0, #0x8 str r0, [r4, #0x2c] add r0, r4, #0x0 bl FUN_02080678 b _02080090 _0207FF1C: mov r0, #0x1 str r0, [r4, #0x14] add r0, r4, #0x0 bl FUN_020800E0 mov r0, #0x2 str r0, [r4, #0x1c] add r0, r4, #0x0 mov r1, #0x3a bl FUN_02080108 mov r0, #0x9 str r0, [r4, #0x24] add r0, r4, #0x0 bl FUN_0208048C b _02080090 _0207FF3E: mov r0, #0x1 str r0, [r4, #0x14] add r0, r4, #0x0 bl FUN_020800E0 mov r0, #0x2 str r0, [r4, #0x1c] add r0, r4, #0x0 mov r1, #0x3b bl FUN_02080108 mov r0, #0x9 str r0, [r4, #0x24] add r0, r4, #0x0 bl FUN_0208048C b _02080090 _0207FF60: mov r0, #0x1 str r0, [r4, #0x14] add r0, r4, #0x0 bl FUN_020800E0 mov r0, #0x2 str r0, [r4, #0x1c] add r0, r4, #0x0 mov r1, #0x3c bl FUN_02080108 mov r0, #0x9 str r0, [r4, #0x24] add r0, r4, #0x0 bl FUN_0208048C b _02080090 _0207FF82: mov r0, #0x1 str r0, [r4, #0x14] add r0, r4, #0x0 bl FUN_020800E0 mov r0, #0x2 str r0, [r4, #0x1c] add r0, r4, #0x0 mov r1, #0x3d bl FUN_02080108 mov r0, #0x9 str r0, [r4, #0x24] add r0, r4, #0x0 bl FUN_0208048C b _02080090 _0207FFA4: mov r0, #0x1 str r0, [r4, #0x14] add r0, r4, #0x0 bl FUN_020800E0 mov r0, #0x2 str r0, [r4, #0x1c] add r0, r4, #0x0 mov r1, #0x3e bl FUN_02080108 mov r0, #0x9 str r0, [r4, #0x24] add r0, r4, #0x0 bl FUN_0208048C b _02080090 _0207FFC6: mov r0, #0x1 str r0, [r4, #0x14] add r0, r4, #0x0 bl FUN_020800E0 mov r0, #0x2 str r0, [r4, #0x1c] add r0, r4, #0x0 mov r1, #0x3f bl FUN_02080108 mov r0, #0x9 str r0, [r4, #0x24] add r0, r4, #0x0 bl FUN_0208048C b _02080090 _0207FFE8: mov r0, #0x1 str r0, [r4, #0x14] add r0, r4, #0x0 bl FUN_020800E0 mov r0, #0x2 str r0, [r4, #0x1c] add r0, r4, #0x0 mov r1, #0x40 bl FUN_02080228 mov r0, #0x6 str r0, [r4, #0x24] add r0, r4, #0x0 bl FUN_0208048C mov r0, #0x7 str r0, [r4, #0x2c] add r0, r4, #0x0 bl FUN_02080678 b _02080090 _02080014: mov r0, #0x1 str r0, [r4, #0x1c] add r0, r4, #0x0 mov r1, #0x65 mov r2, #0x0 bl FUN_02080384 mov r0, #0x6 str r0, [r4, #0x34] add r0, r4, #0x0 bl FUN_020806B4 b _02080090 _0208002E: mov r2, #0x1 add r0, r4, #0x0 mov r1, #0x66 str r2, [r4, #0x1c] bl FUN_02080384 mov r0, #0x6 str r0, [r4, #0x34] add r0, r4, #0x0 bl FUN_020806B4 b _02080090 _02080046: mov r0, #0x1 str r0, [r4, #0x1c] add r0, r4, #0x0 mov r1, #0x67 mov r2, #0x0 bl FUN_02080384 mov r0, #0x6 str r0, [r4, #0x34] add r0, r4, #0x0 bl FUN_020806B4 b _02080090 _02080060: mov r2, #0x1 add r0, r4, #0x0 mov r1, #0x67 str r2, [r4, #0x1c] bl FUN_02080384 mov r0, #0x6 str r0, [r4, #0x34] add r0, r4, #0x0 bl FUN_020806B4 b _02080090 _02080078: mov r0, #0x1 str r0, [r4, #0x1c] add r0, r4, #0x0 mov r1, #0x68 mov r2, #0x0 bl FUN_02080384 mov r0, #0x6 str r0, [r4, #0x34] add r0, r4, #0x0 bl FUN_020806B4 _02080090: add r0, r4, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02080094 FUN_02080094: ; 0x02080094 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x18] cmp r0, #0x0 beq _020800A2 bl FUN_02016A18 _020800A2: ldr r0, [r4, #0x20] cmp r0, #0x0 beq _020800AC bl FUN_02016A18 _020800AC: ldr r0, [r4, #0x28] cmp r0, #0x0 beq _020800B6 bl FUN_02016A18 _020800B6: ldr r0, [r4, #0x30] cmp r0, #0x0 beq _020800C0 bl FUN_02016A18 _020800C0: ldr r0, [r4, #0x38] cmp r0, #0x0 beq _020800CA bl FUN_02016A18 _020800CA: ldr r0, [r4, #0x8] bl FUN_0200AB18 ldr r0, [r4, #0x4] bl FUN_0200A8B8 add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} .balign 4 thumb_func_start FUN_020800E0 FUN_020800E0: ; 0x020800E0 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] bl FUN_02068854 add r4, r0, #0x0 cmp r4, #0x18 bgt _02080106 ldr r1, [r5, #0x0] mov r0, #0x48 bl FUN_020219F4 str r0, [r5, #0x18] add r4, #0x18 ldr r0, [r5, #0x4] ldr r2, [r5, #0x18] add r1, r4, #0x0 bl FUN_0200A8E0 _02080106: pop {r3-r5, pc} thumb_func_start FUN_02080108 FUN_02080108: ; 0x02080108 push {r4-r6, lr} sub sp, #0x8 add r5, r0, #0x0 add r6, r1, #0x0 mov r0, #0x9 ldr r1, [r5, #0x0] lsl r0, r0, #0x6 bl FUN_020219F4 add r4, r0, #0x0 mov r0, #0x9 ldr r1, [r5, #0x0] lsl r0, r0, #0x6 bl FUN_020219F4 str r0, [r5, #0x20] ldr r0, [r5, #0x4] add r1, r6, #0x0 add r2, r4, #0x0 bl FUN_0200A8E0 ldr r0, [r5, #0xc] mov r1, #0x94 mov r2, #0x0 bl FUN_020671BC mov r3, #0x2 add r2, r0, #0x0 str r3, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] ldr r0, [r5, #0x8] mov r1, #0x0 bl FUN_0200AD38 ldr r0, [r5, #0xc] mov r1, #0x95 mov r2, #0x0 bl FUN_020671BC add r2, r0, #0x0 ldr r0, [r5, #0x8] mov r1, #0x1 bl FUN_0200B764 ldr r0, [r5, #0xc] mov r1, #0x96 mov r2, #0x0 bl FUN_020671BC add r2, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] mov r1, #0x2 ldr r0, [r5, #0x8] add r3, r1, #0x0 bl FUN_0200AD38 ldr r0, [r5, #0xc] mov r1, #0x9b mov r2, #0x0 bl FUN_020671BC add r2, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] mov r1, #0x3 ldr r0, [r5, #0x8] add r3, r1, #0x0 bl FUN_0200AD38 ldr r0, [r5, #0xc] mov r1, #0x98 mov r2, #0x0 bl FUN_020671BC add r2, r0, #0x0 ldr r0, [r5, #0x8] mov r1, #0x4 bl FUN_0200B59C ldr r0, [r5, #0xc] mov r1, #0x91 mov r2, #0x0 bl FUN_020671BC mov r3, #0x2 add r2, r0, #0x0 str r3, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] ldr r0, [r5, #0x8] mov r1, #0x5 bl FUN_0200AD38 ldr r0, [r5, #0xc] mov r1, #0x92 mov r2, #0x0 bl FUN_020671BC add r2, r0, #0x0 ldr r0, [r5, #0x8] mov r1, #0x6 bl FUN_0200B764 ldr r0, [r5, #0xc] mov r1, #0x93 mov r2, #0x0 bl FUN_020671BC add r2, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] ldr r0, [r5, #0x8] mov r1, #0x7 mov r3, #0x2 bl FUN_0200AD38 ldr r0, [r5, #0xc] mov r1, #0x97 mov r2, #0x0 bl FUN_020671BC add r2, r0, #0x0 ldr r0, [r5, #0x8] mov r1, #0x8 bl FUN_0200B59C ldr r0, [r5, #0x8] ldr r1, [r5, #0x20] add r2, r4, #0x0 bl FUN_0200B7B8 add r0, r4, #0x0 bl FUN_02021A20 add sp, #0x8 pop {r4-r6, pc} thumb_func_start FUN_02080228 FUN_02080228: ; 0x02080228 push {r4-r6, lr} sub sp, #0x8 add r4, r0, #0x0 add r6, r1, #0x0 mov r0, #0x12 ldr r1, [r4, #0x0] lsl r0, r0, #0x4 bl FUN_020219F4 add r5, r0, #0x0 mov r0, #0x12 ldr r1, [r4, #0x0] lsl r0, r0, #0x4 bl FUN_020219F4 str r0, [r4, #0x20] ldr r0, [r4, #0x4] add r1, r6, #0x0 add r2, r5, #0x0 bl FUN_0200A8E0 ldr r0, [r4, #0xc] mov r1, #0x94 mov r2, #0x0 bl FUN_020671BC mov r3, #0x2 add r2, r0, #0x0 str r3, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] ldr r0, [r4, #0x8] mov r1, #0x0 bl FUN_0200AD38 ldr r0, [r4, #0xc] mov r1, #0x95 mov r2, #0x0 bl FUN_020671BC add r2, r0, #0x0 ldr r0, [r4, #0x8] mov r1, #0x1 bl FUN_0200B764 ldr r0, [r4, #0xc] mov r1, #0x96 mov r2, #0x0 bl FUN_020671BC add r2, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] mov r1, #0x2 ldr r0, [r4, #0x8] add r3, r1, #0x0 bl FUN_0200AD38 ldr r0, [r4, #0xc] mov r1, #0x9b mov r2, #0x0 bl FUN_020671BC add r2, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] mov r1, #0x3 ldr r0, [r4, #0x8] add r3, r1, #0x0 bl FUN_0200AD38 ldr r0, [r4, #0xc] mov r1, #0x79 mov r2, #0x0 bl FUN_020671BC cmp r0, #0xf bhi _020802F8 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _020802D8: ; jump table (using 16-bit offset) .short _020802F8 - _020802D8 - 2; case 0 .short _02080334 - _020802D8 - 2; case 1 .short _02080334 - _020802D8 - 2; case 2 .short _02080334 - _020802D8 - 2; case 3 .short _0208030C - _020802D8 - 2; case 4 .short _0208030C - _020802D8 - 2; case 5 .short _020802F8 - _020802D8 - 2; case 6 .short _02080320 - _020802D8 - 2; case 7 .short _02080320 - _020802D8 - 2; case 8 .short _020802F8 - _020802D8 - 2; case 9 .short _0208035C - _020802D8 - 2; case 10 .short _0208035C - _020802D8 - 2; case 11 .short _020802F8 - _020802D8 - 2; case 12 .short _020802F8 - _020802D8 - 2; case 13 .short _020802F8 - _020802D8 - 2; case 14 .short _02080348 - _020802D8 - 2; case 15 _020802F8: mov r0, #0x1 mov r1, #0x7 bl FUN_02015CF8 add r2, r0, #0x0 ldr r0, [r4, #0x8] mov r1, #0x4 bl FUN_0200B59C b _0208036E _0208030C: mov r0, #0x1 mov r1, #0x3 bl FUN_02015CF8 add r2, r0, #0x0 ldr r0, [r4, #0x8] mov r1, #0x4 bl FUN_0200B59C b _0208036E _02080320: mov r0, #0x1 mov r1, #0x4 bl FUN_02015CF8 add r2, r0, #0x0 ldr r0, [r4, #0x8] mov r1, #0x4 bl FUN_0200B59C b _0208036E _02080334: mov r0, #0x1 mov r1, #0x5 bl FUN_02015CF8 add r2, r0, #0x0 ldr r0, [r4, #0x8] mov r1, #0x4 bl FUN_0200B59C b _0208036E _02080348: mov r0, #0x1 mov r1, #0x8 bl FUN_02015CF8 add r2, r0, #0x0 ldr r0, [r4, #0x8] mov r1, #0x4 bl FUN_0200B59C b _0208036E _0208035C: mov r0, #0x1 mov r1, #0x7 bl FUN_02015CF8 add r2, r0, #0x0 ldr r0, [r4, #0x8] mov r1, #0x4 bl FUN_0200B59C _0208036E: ldr r0, [r4, #0x8] ldr r1, [r4, #0x20] add r2, r5, #0x0 bl FUN_0200B7B8 add r0, r5, #0x0 bl FUN_02021A20 add sp, #0x8 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02080384 FUN_02080384: ; 0x02080384 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 add r7, r1, #0x0 mov r0, #0x5a ldr r1, [r5, #0x0] lsl r0, r0, #0x2 add r6, r2, #0x0 bl FUN_020219F4 add r4, r0, #0x0 mov r0, #0x5a ldr r1, [r5, #0x0] lsl r0, r0, #0x2 bl FUN_020219F4 str r0, [r5, #0x20] ldr r0, [r5, #0x4] add r1, r7, #0x0 add r2, r4, #0x0 bl FUN_0200A8E0 cmp r6, #0x0 ldr r0, [r5, #0xc] bne _02080418 mov r1, #0x91 mov r2, #0x0 bl FUN_020671BC mov r3, #0x2 add r2, r0, #0x0 str r3, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] ldr r0, [r5, #0x8] mov r1, #0x5 bl FUN_0200AD38 ldr r0, [r5, #0xc] mov r1, #0x92 mov r2, #0x0 bl FUN_020671BC add r2, r0, #0x0 ldr r0, [r5, #0x8] mov r1, #0x6 bl FUN_0200B764 ldr r0, [r5, #0xc] mov r1, #0x93 mov r2, #0x0 bl FUN_020671BC add r2, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] ldr r0, [r5, #0x8] mov r1, #0x7 mov r3, #0x2 bl FUN_0200AD38 ldr r0, [r5, #0xc] mov r1, #0x97 mov r2, #0x0 bl FUN_020671BC add r2, r0, #0x0 ldr r0, [r5, #0x8] mov r1, #0x8 bl FUN_0200B59C b _02080478 _02080418: mov r1, #0x94 mov r2, #0x0 bl FUN_020671BC mov r3, #0x2 add r2, r0, #0x0 str r3, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] ldr r0, [r5, #0x8] mov r1, #0x5 bl FUN_0200AD38 ldr r0, [r5, #0xc] mov r1, #0x95 mov r2, #0x0 bl FUN_020671BC add r2, r0, #0x0 ldr r0, [r5, #0x8] mov r1, #0x6 bl FUN_0200B764 ldr r0, [r5, #0xc] mov r1, #0x96 mov r2, #0x0 bl FUN_020671BC add r2, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] ldr r0, [r5, #0x8] mov r1, #0x7 mov r3, #0x2 bl FUN_0200AD38 ldr r0, [r5, #0xc] mov r1, #0x98 mov r2, #0x0 bl FUN_020671BC add r2, r0, #0x0 ldr r0, [r5, #0x8] mov r1, #0x8 bl FUN_0200B59C _02080478: ldr r0, [r5, #0x8] ldr r1, [r5, #0x20] add r2, r4, #0x0 bl FUN_0200B7B8 add r0, r4, #0x0 bl FUN_02021A20 add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_0208048C FUN_0208048C: ; 0x0208048C push {r3-r7, lr} sub sp, #0x10 add r4, r0, #0x0 ldr r1, [r4, #0x0] mov r0, #0x48 bl FUN_020219F4 str r0, [r4, #0x28] ldr r0, [r4, #0xc] mov r1, #0x46 mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0xc] ldr r0, [r4, #0xc] mov r1, #0x47 mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0x8] ldr r0, [r4, #0xc] mov r1, #0x48 mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0x4] ldr r0, [r4, #0xc] mov r1, #0x49 mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0x0] ldr r0, [r4, #0xc] mov r1, #0x4a mov r2, #0x0 bl FUN_020671BC add r7, r0, #0x0 ldr r0, [r4, #0xc] mov r1, #0x4b mov r2, #0x0 bl FUN_020671BC add r6, r0, #0x0 mov r1, #0x0 ldr r0, [r4, #0xc] add r2, r1, #0x0 bl FUN_020671BC mov r1, #0x6 blx _u32_div_f cmp r1, #0x5 bhi _02080510 add r0, r1, r1 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02080504: ; jump table (using 16-bit offset) .short _02080510 - _02080504 - 2; case 0 .short _02080548 - _02080504 - 2; case 1 .short _0208057E - _02080504 - 2; case 2 .short _020805B4 - _02080504 - 2; case 3 .short _020805EA - _02080504 - 2; case 4 .short _02080620 - _02080504 - 2; case 5 _02080510: ldr r0, [sp, #0xc] ldr r1, [sp, #0x8] add r2, r0, #0x0 mov r5, #0x0 cmp r2, r1 bge _02080520 mov r5, #0x1 add r0, r1, #0x0 _02080520: ldr r1, [sp, #0x4] cmp r0, r1 bge _0208052A mov r5, #0x2 add r0, r1, #0x0 _0208052A: ldr r1, [sp, #0x0] cmp r0, r1 bge _02080534 mov r5, #0x3 add r0, r1, #0x0 _02080534: cmp r0, r7 bge _0208053C mov r5, #0x4 add r0, r7, #0x0 _0208053C: cmp r0, r6 blt _02080542 b _02080654 _02080542: mov r5, #0x5 add r0, r6, #0x0 b _02080654 _02080548: ldr r0, [sp, #0x8] ldr r1, [sp, #0x4] add r2, r0, #0x0 mov r5, #0x1 cmp r2, r1 bge _02080558 mov r5, #0x2 add r0, r1, #0x0 _02080558: ldr r1, [sp, #0x0] cmp r0, r1 bge _02080562 mov r5, #0x3 add r0, r1, #0x0 _02080562: cmp r0, r7 bge _0208056A mov r5, #0x4 add r0, r7, #0x0 _0208056A: cmp r0, r6 bge _02080572 mov r5, #0x5 add r0, r6, #0x0 _02080572: ldr r1, [sp, #0xc] cmp r0, r1 bge _02080654 mov r5, #0x0 add r0, r1, #0x0 b _02080654 _0208057E: ldr r0, [sp, #0x4] ldr r1, [sp, #0x0] add r2, r0, #0x0 mov r5, #0x2 cmp r2, r1 bge _0208058E mov r5, #0x3 add r0, r1, #0x0 _0208058E: cmp r0, r7 bge _02080596 mov r5, #0x4 add r0, r7, #0x0 _02080596: cmp r0, r6 bge _0208059E mov r5, #0x5 add r0, r6, #0x0 _0208059E: ldr r1, [sp, #0xc] cmp r0, r1 bge _020805A8 mov r5, #0x0 add r0, r1, #0x0 _020805A8: ldr r1, [sp, #0x8] cmp r0, r1 bge _02080654 mov r5, #0x1 add r0, r1, #0x0 b _02080654 _020805B4: ldr r0, [sp, #0x0] mov r5, #0x3 add r1, r0, #0x0 cmp r1, r7 bge _020805C2 mov r5, #0x4 add r0, r7, #0x0 _020805C2: cmp r0, r6 bge _020805CA mov r5, #0x5 add r0, r6, #0x0 _020805CA: ldr r1, [sp, #0xc] cmp r0, r1 bge _020805D4 mov r5, #0x0 add r0, r1, #0x0 _020805D4: ldr r1, [sp, #0x8] cmp r0, r1 bge _020805DE mov r5, #0x1 add r0, r1, #0x0 _020805DE: ldr r1, [sp, #0x4] cmp r0, r1 bge _02080654 mov r5, #0x2 add r0, r1, #0x0 b _02080654 _020805EA: mov r5, #0x4 add r0, r7, #0x0 cmp r7, r6 bge _020805F6 mov r5, #0x5 add r0, r6, #0x0 _020805F6: ldr r1, [sp, #0xc] cmp r0, r1 bge _02080600 mov r5, #0x0 add r0, r1, #0x0 _02080600: ldr r1, [sp, #0x8] cmp r0, r1 bge _0208060A mov r5, #0x1 add r0, r1, #0x0 _0208060A: ldr r1, [sp, #0x4] cmp r0, r1 bge _02080614 mov r5, #0x2 add r0, r1, #0x0 _02080614: ldr r1, [sp, #0x0] cmp r0, r1 bge _02080654 mov r5, #0x3 add r0, r1, #0x0 b _02080654 _02080620: ldr r1, [sp, #0xc] mov r5, #0x5 add r0, r6, #0x0 cmp r6, r1 bge _0208062E mov r5, #0x0 add r0, r1, #0x0 _0208062E: ldr r1, [sp, #0x8] cmp r0, r1 bge _02080638 mov r5, #0x1 add r0, r1, #0x0 _02080638: ldr r1, [sp, #0x4] cmp r0, r1 bge _02080642 mov r5, #0x2 add r0, r1, #0x0 _02080642: ldr r1, [sp, #0x0] cmp r0, r1 bge _0208064C mov r5, #0x3 add r0, r1, #0x0 _0208064C: cmp r0, r7 bge _02080654 mov r5, #0x4 add r0, r7, #0x0 _02080654: mov r1, #0x5 blx _s32_div_f mov r2, #0xa add r6, r5, #0x0 mul r6, r2 ldr r3, _02080674 ; =0x020FBB54 lsl r2, r1, #0x1 add r1, r3, r6 ldrh r1, [r2, r1] ldr r0, [r4, #0x4] ldr r2, [r4, #0x28] bl FUN_0200A8E0 add sp, #0x10 pop {r3-r7, pc} .balign 4 _02080674: .word 0x020FBB54 thumb_func_start FUN_02080678 FUN_02080678: ; 0x02080678 push {r4-r6, lr} add r5, r0, #0x0 ldr r1, [r5, #0x0] mov r0, #0x48 bl FUN_020219F4 mov r6, #0x0 str r0, [r5, #0x30] add r4, r6, #0x0 _0208068A: ldr r0, [r5, #0xc] add r1, r4, #0x0 bl FUN_02069BC8 cmp r0, #0x1 bne _02080698 add r6, r4, #0x1 _02080698: add r4, r4, #0x1 cmp r4, #0x5 blt _0208068A ldr r1, _020806B0 ; =0x020FBB48 lsl r2, r6, #0x1 ldrh r1, [r1, r2] ldr r0, [r5, #0x4] ldr r2, [r5, #0x30] bl FUN_0200A8E0 pop {r4-r6, pc} nop _020806B0: .word 0x020FBB48 thumb_func_start FUN_020806B4 FUN_020806B4: ; 0x020806B4 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0xc] mov r1, #0x9 mov r2, #0x0 bl FUN_020671BC add r4, r0, #0x0 mov r0, #0x12 ldr r1, [r5, #0x0] lsl r0, r0, #0x4 bl FUN_020219F4 str r0, [r5, #0x38] cmp r4, #0x5 bgt _020806D8 mov r1, #0x69 b _020806EA _020806D8: cmp r4, #0xa bgt _020806E0 mov r1, #0x6a b _020806EA _020806E0: cmp r4, #0x28 bgt _020806E8 mov r1, #0x6b b _020806EA _020806E8: mov r1, #0x6c _020806EA: ldr r0, [r5, #0x4] ldr r2, [r5, #0x38] bl FUN_0200A8E0 pop {r3-r5, pc} thumb_func_start FUN_020806F4 FUN_020806F4: ; 0x020806F4 push {r4-r6, lr} add r4, r1, #0x0 mov r1, #0x4c mov r2, #0x0 add r5, r0, #0x0 bl FUN_020671BC cmp r0, #0x0 beq _02080708 b _0208084E _02080708: add r0, r5, #0x0 mov r1, #0x97 mov r2, #0x0 bl FUN_020671BC cmp r0, #0x0 bne _02080774 add r0, r5, #0x0 mov r1, #0x98 mov r2, #0x0 bl FUN_020671BC add r6, r0, #0x0 mov r0, #0x0 mov r1, #0x37 bl FUN_02015CF8 cmp r6, r0 bne _02080732 mov r0, #0xf pop {r4-r6, pc} _02080732: add r0, r5, #0x0 mov r1, #0x6e mov r2, #0x0 bl FUN_020671BC cmp r0, #0x1 bne _0208074C cmp r4, #0x1 bne _02080748 mov r0, #0x7 pop {r4-r6, pc} _02080748: mov r0, #0x8 pop {r4-r6, pc} _0208074C: add r0, r5, #0x0 mov r1, #0x98 mov r2, #0x0 bl FUN_020671BC add r5, r0, #0x0 mov r0, #0x1 add r1, r0, #0x0 bl FUN_02015CF8 cmp r5, r0 bne _02080768 mov r0, #0x2 pop {r4-r6, pc} _02080768: cmp r4, #0x1 bne _02080770 mov r0, #0x0 pop {r4-r6, pc} _02080770: mov r0, #0x1 pop {r4-r6, pc} _02080774: add r0, r5, #0x0 mov r1, #0x6e mov r2, #0x0 bl FUN_020671BC cmp r0, #0x1 bne _020807D6 add r0, r5, #0x0 mov r1, #0x97 mov r2, #0x0 bl FUN_020671BC add r6, r0, #0x0 mov r0, #0x1 mov r1, #0x2 bl FUN_02015CF8 cmp r6, r0 bne _020807A6 cmp r4, #0x1 bne _020807A2 mov r0, #0xd pop {r4-r6, pc} _020807A2: mov r0, #0xe pop {r4-r6, pc} _020807A6: add r0, r5, #0x0 mov r1, #0x97 mov r2, #0x0 bl FUN_020671BC add r5, r0, #0x0 mov r0, #0x2 mov r1, #0x1 bl FUN_02015CF8 cmp r5, r0 bne _020807CA cmp r4, #0x1 bne _020807C6 mov r0, #0xb pop {r4-r6, pc} _020807C6: mov r0, #0xc pop {r4-r6, pc} _020807CA: cmp r4, #0x1 bne _020807D2 mov r0, #0x9 pop {r4-r6, pc} _020807D2: mov r0, #0xa pop {r4-r6, pc} _020807D6: add r0, r5, #0x0 mov r1, #0x97 mov r2, #0x0 bl FUN_020671BC add r6, r0, #0x0 mov r0, #0x1 add r1, r0, #0x0 bl FUN_02015CF8 cmp r6, r0 beq _02080836 add r0, r5, #0x0 mov r1, #0x97 mov r2, #0x0 bl FUN_020671BC add r6, r0, #0x0 mov r0, #0x1 mov r1, #0x0 bl FUN_02015CF8 cmp r6, r0 beq _02080836 add r0, r5, #0x0 mov r1, #0x97 mov r2, #0x0 bl FUN_020671BC add r6, r0, #0x0 mov r0, #0x1 mov r1, #0x9 bl FUN_02015CF8 cmp r6, r0 beq _02080836 add r0, r5, #0x0 mov r1, #0x97 mov r2, #0x0 bl FUN_020671BC add r5, r0, #0x0 mov r0, #0x1 mov r1, #0xa bl FUN_02015CF8 cmp r5, r0 bne _02080842 _02080836: cmp r4, #0x1 bne _0208083E mov r0, #0x5 pop {r4-r6, pc} _0208083E: mov r0, #0x6 pop {r4-r6, pc} _02080842: cmp r4, #0x1 bne _0208084A mov r0, #0x3 pop {r4-r6, pc} _0208084A: mov r0, #0x4 pop {r4-r6, pc} _0208084E: cmp r4, #0x1 bne _02080884 add r0, r5, #0x0 mov r1, #0x6e mov r2, #0x0 bl FUN_020671BC cmp r0, #0x1 bne _02080880 add r0, r5, #0x0 mov r1, #0x97 mov r2, #0x0 bl FUN_020671BC add r4, r0, #0x0 mov r0, #0x2 mov r1, #0x1 bl FUN_02015CF8 cmp r4, r0 bne _0208087C mov r0, #0x14 pop {r4-r6, pc} _0208087C: mov r0, #0x12 pop {r4-r6, pc} _02080880: mov r0, #0x10 pop {r4-r6, pc} _02080884: add r0, r5, #0x0 mov r1, #0x6e mov r2, #0x0 bl FUN_020671BC cmp r0, #0x1 bne _02080896 mov r0, #0x13 pop {r4-r6, pc} _02080896: mov r0, #0x11 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0208089C FUN_0208089C: ; 0x0208089C push {r3-r4, lr} sub sp, #0x4 ldr r4, [sp, #0x10] str r4, [sp, #0x0] bl FUN_020808AC add sp, #0x4 pop {r3-r4, pc} thumb_func_start FUN_020808AC FUN_020808AC: ; 0x020808AC push {r3-r7, lr} add r4, r0, #0x0 add r7, r1, #0x0 add r5, r3, #0x0 ldr r6, [sp, #0x18] cmp r2, #0x6 bls _020808BC b _02080AE0 _020808BC: add r2, r2, r2 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _020808C8: ; jump table (using 16-bit offset) .short _020808D6 - _020808C8 - 2; case 0 .short _0208092A - _020808C8 - 2; case 1 .short _02080974 - _020808C8 - 2; case 2 .short _02080994 - _020808C8 - 2; case 3 .short _020809B0 - _020808C8 - 2; case 4 .short _02080A38 - _020808C8 - 2; case 5 .short _02080A58 - _020808C8 - 2; case 6 _020808D6: mov r0, #0x1 mov r1, #0x0 bl FUN_02015CF8 cmp r5, r0 ble _020808E4 mov r5, #0x0 _020808E4: add r0, r4, #0x0 mov r1, #0x4c mov r2, #0x0 bl FUN_020672BC cmp r0, #0x0 bne _0208090C add r0, r4, #0x0 mov r1, #0x0 bl FUN_02080BA8 add r0, r4, #0x0 add r1, r5, #0x0 mov r2, #0x1 bl FUN_02080B30 add r0, r4, #0x0 bl FUN_02080C08 b _0208091E _0208090C: add r0, r4, #0x0 add r1, r5, #0x0 mov r2, #0x0 bl FUN_02080B30 add r0, r4, #0x0 mov r1, #0x1 bl FUN_02080BA8 _0208091E: add r0, r4, #0x0 add r1, r7, #0x0 add r2, r6, #0x0 bl FUN_02080AE4 pop {r3-r7, pc} _0208092A: mov r1, #0x4c mov r2, #0x0 bl FUN_020672BC cmp r0, #0x0 bne _02080958 add r0, r4, #0x0 mov r1, #0x0 bl FUN_02080BA8 mov r0, #0x1 add r1, r0, #0x0 bl FUN_02015CF8 add r1, r0, #0x0 add r0, r4, #0x0 mov r2, #0x1 bl FUN_02080B30 add r0, r4, #0x0 bl FUN_02080C08 pop {r3-r7, pc} _02080958: add r0, r4, #0x0 mov r1, #0x0 bl FUN_02080BA8 mov r0, #0x1 add r1, r0, #0x0 bl FUN_02015CF8 add r1, r0, #0x0 add r0, r4, #0x0 mov r2, #0x1 bl FUN_02080B30 pop {r3-r7, pc} _02080974: mov r1, #0x0 bl FUN_02080BA8 mov r0, #0x0 mov r1, #0x37 bl FUN_02015CF8 add r1, r0, #0x0 add r0, r4, #0x0 mov r2, #0x1 bl FUN_02080B30 add r0, r4, #0x0 bl FUN_02080C08 pop {r3-r7, pc} _02080994: add r1, r5, #0x0 mov r2, #0x0 bl FUN_02080B30 add r0, r4, #0x0 mov r1, #0x1 bl FUN_02080BA8 add r0, r4, #0x0 add r1, r7, #0x0 add r2, r6, #0x0 bl FUN_02080AE4 pop {r3-r7, pc} _020809B0: add r2, r6, #0x0 bl FUN_0206A9AC cmp r0, #0x1 bne _020809F6 add r0, r4, #0x0 mov r1, #0x4c mov r2, #0x0 bl FUN_020672BC cmp r0, #0x0 bne _020809E2 add r0, r4, #0x0 mov r1, #0x0 bl FUN_02080BA8 add r0, r4, #0x0 add r1, r5, #0x0 mov r2, #0x1 bl FUN_02080B30 add r0, r4, #0x0 bl FUN_02080C08 b _02080A30 _020809E2: add r0, r4, #0x0 add r1, r5, #0x0 mov r2, #0x0 bl FUN_02080B30 add r0, r4, #0x0 mov r1, #0x1 bl FUN_02080BA8 b _02080A30 _020809F6: add r0, r4, #0x0 mov r1, #0x4c mov r2, #0x0 bl FUN_020672BC cmp r0, #0x0 bne _02080A1E add r0, r4, #0x0 mov r1, #0x0 bl FUN_02080BA8 add r0, r4, #0x0 add r1, r5, #0x0 mov r2, #0x1 bl FUN_02080B30 add r0, r4, #0x0 bl FUN_02080C08 b _02080A30 _02080A1E: add r0, r4, #0x0 mov r1, #0x0 bl FUN_02080BA8 add r0, r4, #0x0 add r1, r5, #0x0 mov r2, #0x1 bl FUN_02080B30 _02080A30: add r0, r4, #0x0 bl FUN_02080C28 pop {r3-r7, pc} _02080A38: mov r1, #0x4c mov r2, #0x0 bl FUN_020672BC cmp r0, #0x0 beq _02080AE0 mov r0, #0x1 mov r1, #0x2 bl FUN_02015CF8 add r1, r0, #0x0 add r0, r4, #0x0 mov r2, #0x1 bl FUN_02080B30 pop {r3-r7, pc} _02080A58: mov r0, #0x1 mov r1, #0x0 bl FUN_02015CF8 cmp r5, r0 ble _02080A66 mov r5, #0x0 _02080A66: add r0, r4, #0x0 add r1, r7, #0x0 add r2, r6, #0x0 bl FUN_0206A9AC cmp r0, #0x0 bne _02080ACC add r0, r4, #0x0 mov r1, #0x98 mov r2, #0x0 bl FUN_020672BC str r0, [sp, #0x0] add r0, r4, #0x0 mov r1, #0x97 add r2, sp, #0x0 bl FUN_02067960 add r0, r4, #0x0 mov r1, #0x94 mov r2, #0x0 bl FUN_020672BC str r0, [sp, #0x0] add r0, r4, #0x0 mov r1, #0x91 add r2, sp, #0x0 bl FUN_02067960 add r0, r4, #0x0 mov r1, #0x95 mov r2, #0x0 bl FUN_020672BC str r0, [sp, #0x0] add r0, r4, #0x0 mov r1, #0x92 add r2, sp, #0x0 bl FUN_02067960 add r0, r4, #0x0 mov r1, #0x96 mov r2, #0x0 bl FUN_020672BC str r0, [sp, #0x0] add r0, r4, #0x0 mov r1, #0x93 add r2, sp, #0x0 bl FUN_02067960 _02080ACC: add r0, r4, #0x0 add r1, r5, #0x0 mov r2, #0x1 bl FUN_02080B30 add r0, r4, #0x0 add r1, r7, #0x0 add r2, r6, #0x0 bl FUN_02080AE4 _02080AE0: pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02080AE4 FUN_02080AE4: ; 0x02080AE4 push {r4-r6, lr} sub sp, #0x8 add r4, r1, #0x0 add r5, r0, #0x0 add r0, r4, #0x0 add r6, r2, #0x0 bl FUN_020239BC str r0, [sp, #0x4] add r0, r4, #0x0 bl FUN_020239CC str r0, [sp, #0x0] add r0, r4, #0x0 add r1, r6, #0x0 bl FUN_020239A0 add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x7 add r2, sp, #0x4 bl FUN_02067960 add r0, r5, #0x0 mov r1, #0x9c add r2, sp, #0x0 bl FUN_02067960 add r0, r5, #0x0 mov r1, #0x90 add r2, r4, #0x0 bl FUN_02067960 add r0, r4, #0x0 bl FUN_02021A20 add sp, #0x8 pop {r4-r6, pc} thumb_func_start FUN_02080B30 FUN_02080B30: ; 0x02080B30 push {r0-r3} push {r3-r5, lr} sub sp, #0x10 add r5, r0, #0x0 add r0, sp, #0x0 add r4, r2, #0x0 bl FUN_020126B4 cmp r4, #0x0 add r2, sp, #0x24 bne _02080B76 add r0, r5, #0x0 mov r1, #0x97 bl FUN_02067960 add r0, r5, #0x0 mov r1, #0x91 add r2, sp, #0x0 bl FUN_02067960 add r0, r5, #0x0 mov r1, #0x92 add r2, sp, #0x4 bl FUN_02067960 add r0, r5, #0x0 mov r1, #0x93 add r2, sp, #0x8 bl FUN_02067960 add sp, #0x10 pop {r3-r5} pop {r3} add sp, #0x10 bx r3 _02080B76: add r0, r5, #0x0 mov r1, #0x98 bl FUN_02067960 add r0, r5, #0x0 mov r1, #0x94 add r2, sp, #0x0 bl FUN_02067960 add r0, r5, #0x0 mov r1, #0x95 add r2, sp, #0x4 bl FUN_02067960 add r0, r5, #0x0 mov r1, #0x96 add r2, sp, #0x8 bl FUN_02067960 add sp, #0x10 pop {r3-r5} pop {r3} add sp, #0x10 bx r3 .balign 4 thumb_func_start FUN_02080BA8 FUN_02080BA8: ; 0x02080BA8 push {r3-r4, lr} sub sp, #0x4 mov r2, #0x0 add r4, r0, #0x0 str r2, [sp, #0x0] cmp r1, #0x0 add r2, sp, #0x0 bne _02080BE0 mov r1, #0x97 bl FUN_02067960 add r0, r4, #0x0 mov r1, #0x91 add r2, sp, #0x0 bl FUN_02067960 add r0, r4, #0x0 mov r1, #0x92 add r2, sp, #0x0 bl FUN_02067960 add r0, r4, #0x0 mov r1, #0x93 add r2, sp, #0x0 bl FUN_02067960 add sp, #0x4 pop {r3-r4, pc} _02080BE0: mov r1, #0x98 bl FUN_02067960 add r0, r4, #0x0 mov r1, #0x94 add r2, sp, #0x0 bl FUN_02067960 add r0, r4, #0x0 mov r1, #0x95 add r2, sp, #0x0 bl FUN_02067960 add r0, r4, #0x0 mov r1, #0x96 add r2, sp, #0x0 bl FUN_02067960 add sp, #0x4 pop {r3-r4, pc} thumb_func_start FUN_02080C08 FUN_02080C08: ; 0x02080C08 push {r3-r4, lr} sub sp, #0x4 add r4, r0, #0x0 mov r1, #0xa0 mov r2, #0x0 bl FUN_020672BC str r0, [sp, #0x0] add r0, r4, #0x0 mov r1, #0x9b add r2, sp, #0x0 bl FUN_02067960 add sp, #0x4 pop {r3-r4, pc} .balign 4 thumb_func_start FUN_02080C28 FUN_02080C28: ; 0x02080C28 push {r3, lr} mov r1, #0x1 str r1, [sp, #0x0] mov r1, #0x6e add r2, sp, #0x0 bl FUN_02067960 pop {r3, pc} thumb_func_start FUN_02080C38 FUN_02080C38: ; 0x02080C38 push {r3-r5, lr} add r5, r0, #0x0 mov r0, #0xb mov r1, #0x8 bl FUN_020169D8 mov r1, #0x0 mov r2, #0x8 add r4, r0, #0x0 blx MI_CpuFill8 ldr r1, _02080C5C ; =FUN_02080C60 add r0, r5, #0x0 add r2, r4, #0x0 bl FUN_0204640C pop {r3-r5, pc} nop _02080C5C: .word FUN_02080C60 thumb_func_start FUN_02080C60 FUN_02080C60: ; 0x02080C60 push {r3-r7, lr} sub sp, #0x28 add r5, r0, #0x0 bl FUN_02046528 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldr r0, [r4, #0x4] cmp r0, #0xe bls _02080C7C b _02080DE2 _02080C7C: add r1, r0, r0 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02080C88: ; jump table (using 16-bit offset) .short _02080CA6 - _02080C88 - 2; case 0 .short _02080CB4 - _02080C88 - 2; case 1 .short _02080D16 - _02080C88 - 2; case 2 .short _02080D28 - _02080C88 - 2; case 3 .short _02080D36 - _02080C88 - 2; case 4 .short _02080D48 - _02080C88 - 2; case 5 .short _02080D64 - _02080C88 - 2; case 6 .short _02080D78 - _02080C88 - 2; case 7 .short _02080D8A - _02080C88 - 2; case 8 .short _02080D9C - _02080C88 - 2; case 9 .short _02080DAE - _02080C88 - 2; case 10 .short _02080DC0 - _02080C88 - 2; case 11 .short _02080DCE - _02080C88 - 2; case 12 .short _02080DD4 - _02080C88 - 2; case 13 .short _02080DE6 - _02080C88 - 2; case 14 _02080CA6: add r0, r5, #0x0 bl FUN_0204AF3C ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _02080DF2 _02080CB4: ldr r0, [r6, #0xc] bl FUN_0206BB1C mov r1, #0x0 bl FUN_0206B9B0 add r7, r0, #0x0 add r0, r6, #0x0 bl FUN_020377AC bl FUN_020238F4 mov r1, #0xb str r0, [sp, #0x0] bl FUN_020239A0 add r5, r0, #0x0 mov r1, #0x0 add r0, sp, #0x4 strb r1, [r0, #0x0] strb r1, [r0, #0x1] mov r1, #0x2 strb r1, [r0, #0x2] ldr r0, [sp, #0x0] str r7, [sp, #0xc] str r5, [sp, #0x10] str r0, [sp, #0x14] ldr r0, [r6, #0xc] bl FUN_02027E24 str r0, [sp, #0x18] ldr r0, [r6, #0xc] bl LoadPlayerDataAddress str r0, [sp, #0x1c] add r0, sp, #0x4 bl FUN_02081214 str r0, [r4, #0x0] add r0, r5, #0x0 bl FUN_02021A20 ldr r0, [r4, #0x0] bl FUN_02081DC4 ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _02080DF2 _02080D16: ldr r0, [r4, #0x0] bl FUN_02081EB8 cmp r0, #0x1 bne _02080DF2 ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _02080DF2 _02080D28: mov r0, #0x1 bl FUN_02031588 ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _02080DF2 _02080D36: mov r0, #0x1 bl FUN_020315D8 cmp r0, #0x1 bne _02080DF2 ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _02080DF2 _02080D48: ldr r0, [r4, #0x0] bl FUN_020815D0 ldr r3, [r4, #0x0] ldr r2, _02080DF8 ; =0x000019B8 ldr r1, _02080DFC ; =0x020FBBD8 ldr r2, [r3, r2] add r0, r5, #0x0 bl FUN_02046500 ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _02080DF2 _02080D64: ldr r0, [r4, #0x0] bl FUN_02081668 ldr r0, [r4, #0x0] bl FUN_02081ED4 ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _02080DF2 _02080D78: ldr r0, [r4, #0x0] bl FUN_02081EC0 cmp r0, #0x1 bne _02080DF2 ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _02080DF2 _02080D8A: ldr r1, _02080E00 ; =0x020FBBC8 ldr r2, [r4, #0x0] add r0, r5, #0x0 bl FUN_02046500 ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _02080DF2 _02080D9C: ldr r1, _02080E04 ; =0x020FBBF8 ldr r2, [r4, #0x0] add r0, r5, #0x0 bl FUN_02046500 ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _02080DF2 _02080DAE: ldr r1, _02080E08 ; =0x020FBBE8 ldr r2, [r4, #0x0] add r0, r5, #0x0 bl FUN_02046500 ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _02080DF2 _02080DC0: ldr r0, [r4, #0x0] bl FUN_020814E8 ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _02080DF2 _02080DCE: add r0, r0, #0x1 str r0, [r4, #0x4] b _02080DF2 _02080DD4: add r0, r5, #0x0 bl FUN_0204AF84 ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _02080DF2 _02080DE2: bl ErrorHandling _02080DE6: add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x28 mov r0, #0x1 pop {r3-r7, pc} _02080DF2: mov r0, #0x0 add sp, #0x28 pop {r3-r7, pc} .balign 4 _02080DF8: .word 0x000019B8 _02080DFC: .word 0x020FBBD8 _02080E00: .word 0x020FBBC8 _02080E04: .word 0x020FBBF8 _02080E08: .word 0x020FBBE8 thumb_func_start FUN_02080E0C FUN_02080E0C: ; 0x02080E0C push {r4-r6, lr} add r5, r0, #0x0 add r6, r1, #0x0 mov r0, #0xb mov r1, #0x8 bl FUN_020169D8 mov r1, #0x0 mov r2, #0x8 add r4, r0, #0x0 blx MI_CpuFill8 ldr r0, _02080E50 ; =0x00000121 str r6, [r4, #0x0] ldrb r0, [r6, r0] cmp r0, #0x0 beq _02080E36 cmp r0, #0x1 beq _02080E36 cmp r0, #0x2 bne _02080E42 _02080E36: ldr r1, _02080E54 ; =FUN_02080E5C add r0, r5, #0x0 add r2, r4, #0x0 bl FUN_0204640C pop {r4-r6, pc} _02080E42: ldr r1, _02080E58 ; =FUN_02081000 add r0, r5, #0x0 add r2, r4, #0x0 bl FUN_0204640C pop {r4-r6, pc} nop _02080E50: .word 0x00000121 _02080E54: .word FUN_02080E5C _02080E58: .word FUN_02081000 thumb_func_start FUN_02080E5C FUN_02080E5C: ; 0x02080E5C push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02046528 add r0, r5, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldr r0, [r4, #0x4] cmp r0, #0xd bls _02080E74 b _02080FCE _02080E74: add r1, r0, r0 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02080E80: ; jump table (using 16-bit offset) .short _02080E9C - _02080E80 - 2; case 0 .short _02080EAA - _02080E80 - 2; case 1 .short _02080EC6 - _02080E80 - 2; case 2 .short _02080EDE - _02080E80 - 2; case 3 .short _02080F00 - _02080E80 - 2; case 4 .short _02080F1C - _02080E80 - 2; case 5 .short _02080F3E - _02080E80 - 2; case 6 .short _02080F58 - _02080E80 - 2; case 7 .short _02080F6A - _02080E80 - 2; case 8 .short _02080F8A - _02080E80 - 2; case 9 .short _02080FA8 - _02080E80 - 2; case 10 .short _02080FBA - _02080E80 - 2; case 11 .short _02080FC0 - _02080E80 - 2; case 12 .short _02080FD2 - _02080E80 - 2; case 13 _02080E9C: add r0, r5, #0x0 bl FUN_0204AF3C ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _02080FDC _02080EAA: ldr r0, [r4, #0x0] ldr r1, _02080FE0 ; =0x00000171 ldrb r1, [r0, r1] cmp r1, #0x0 beq _02080EBE bl FUN_02081EC0 cmp r0, #0x1 beq _02080EBE b _02080FDC _02080EBE: ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _02080FDC _02080EC6: ldr r1, [r4, #0x0] ldr r0, _02080FE0 ; =0x00000171 ldrb r0, [r1, r0] cmp r0, #0x1 bne _02080ED6 mov r0, #0x0 bl FUN_02031588 _02080ED6: ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _02080FDC _02080EDE: ldr r2, [r4, #0x0] ldr r1, _02080FE0 ; =0x00000171 ldrb r1, [r2, r1] cmp r1, #0x1 bne _02080EFA mov r0, #0x0 bl FUN_020315D8 cmp r0, #0x1 bne _02080FDC ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _02080FDC _02080EFA: add r0, r0, #0x1 str r0, [r4, #0x4] b _02080FDC _02080F00: ldr r0, [r4, #0x0] bl FUN_020815D0 ldr r3, [r4, #0x0] ldr r2, _02080FE4 ; =0x000019B8 ldr r1, _02080FE8 ; =0x020FBBD8 ldr r2, [r3, r2] add r0, r5, #0x0 bl FUN_02046500 ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _02080FDC _02080F1C: ldr r0, [r4, #0x0] bl FUN_02081668 ldr r0, [r4, #0x0] ldr r1, _02080FE0 ; =0x00000171 ldrb r1, [r0, r1] cmp r1, #0x1 bne _02080F38 bl FUN_02081ED4 ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _02080FDC _02080F38: mov r0, #0x6 str r0, [r4, #0x4] b _02080FDC _02080F3E: ldr r0, [r4, #0x0] ldr r1, _02080FE0 ; =0x00000171 ldrb r1, [r0, r1] cmp r1, #0x0 beq _02080F50 bl FUN_02081EC0 cmp r0, #0x1 bne _02080FDC _02080F50: ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _02080FDC _02080F58: ldr r1, _02080FEC ; =0x020FBBC8 ldr r2, [r4, #0x0] add r0, r5, #0x0 bl FUN_02046500 ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _02080FDC _02080F6A: ldr r2, [r4, #0x0] ldr r0, _02080FF0 ; =0x00000121 ldrb r0, [r2, r0] add r0, #0xff lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r0, #0x1 bhi _02080F82 ldr r1, _02080FF4 ; =0x020FBBF8 add r0, r5, #0x0 bl FUN_02046500 _02080F82: ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _02080FDC _02080F8A: ldr r2, [r4, #0x0] ldr r0, _02080FF0 ; =0x00000121 ldrb r0, [r2, r0] cmp r0, #0x0 beq _02080F98 cmp r0, #0x2 bne _02080FA0 _02080F98: ldr r1, _02080FF8 ; =0x020FBBE8 add r0, r5, #0x0 bl FUN_02046500 _02080FA0: ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _02080FDC _02080FA8: ldr r1, _02080FFC ; =0x020FBBB8 ldr r2, [r4, #0x0] add r0, r5, #0x0 bl FUN_02046500 ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _02080FDC _02080FBA: add r0, r0, #0x1 str r0, [r4, #0x4] b _02080FDC _02080FC0: add r0, r5, #0x0 bl FUN_0204AF84 ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _02080FDC _02080FCE: bl ErrorHandling _02080FD2: add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x1 pop {r3-r5, pc} _02080FDC: mov r0, #0x0 pop {r3-r5, pc} .balign 4 _02080FE0: .word 0x00000171 _02080FE4: .word 0x000019B8 _02080FE8: .word 0x020FBBD8 _02080FEC: .word 0x020FBBC8 _02080FF0: .word 0x00000121 _02080FF4: .word 0x020FBBF8 _02080FF8: .word 0x020FBBE8 _02080FFC: .word 0x020FBBB8 thumb_func_start FUN_02081000 FUN_02081000: ; 0x02081000 push {r3-r7, lr} sub sp, #0x10 add r5, r0, #0x0 bl FUN_02046528 add r0, r5, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldr r0, [r4, #0x4] cmp r0, #0x9 bls _0208101A b _020811A4 _0208101A: add r1, r0, r0 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02081026: ; jump table (using 16-bit offset) .short _0208103A - _02081026 - 2; case 0 .short _02081048 - _02081026 - 2; case 1 .short _02081070 - _02081026 - 2; case 2 .short _0208108A - _02081026 - 2; case 3 .short _02081090 - _02081026 - 2; case 4 .short _020810AE - _02081026 - 2; case 5 .short _020810D2 - _02081026 - 2; case 6 .short _020810F0 - _02081026 - 2; case 7 .short _02081196 - _02081026 - 2; case 8 .short _020811A8 - _02081026 - 2; case 9 _0208103A: add r0, r5, #0x0 bl FUN_0204AF3C ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _020811B4 _02081048: ldr r0, [r4, #0x0] ldr r1, _020811BC ; =0x00000121 ldrb r1, [r0, r1] cmp r1, #0x3 beq _02081056 cmp r1, #0x4 bne _02081068 _02081056: bl FUN_020815D0 ldr r3, [r4, #0x0] ldr r2, _020811C0 ; =0x000019B8 ldr r1, _020811C4 ; =0x020FBBD8 ldr r2, [r3, r2] add r0, r5, #0x0 bl FUN_02046500 _02081068: ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _020811B4 _02081070: ldr r0, [r4, #0x0] ldr r1, _020811BC ; =0x00000121 ldrb r1, [r0, r1] cmp r1, #0x3 beq _0208107E cmp r1, #0x4 bne _02081082 _0208107E: bl FUN_02081668 _02081082: ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _020811B4 _0208108A: add r0, r0, #0x1 str r0, [r4, #0x4] b _020811B4 _02081090: ldr r2, [r4, #0x0] ldr r0, _020811BC ; =0x00000121 ldrb r0, [r2, r0] cmp r0, #0x3 beq _0208109E cmp r0, #0x4 bne _020810A6 _0208109E: ldr r1, _020811C8 ; =0x020FBBC8 add r0, r5, #0x0 bl FUN_02046500 _020810A6: ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _020811B4 _020810AE: ldr r0, [r4, #0x0] ldr r1, _020811BC ; =0x00000121 ldrb r1, [r0, r1] cmp r1, #0x5 beq _020810BC cmp r1, #0x6 bne _020810CA _020810BC: bl FUN_02082D18 ldr r1, _020811CC ; =0x020FBBF8 ldr r2, [r4, #0x0] add r0, r5, #0x0 bl FUN_02046500 _020810CA: ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _020811B4 _020810D2: ldr r2, [r4, #0x0] ldr r0, _020811BC ; =0x00000121 ldrb r0, [r2, r0] cmp r0, #0x7 beq _020810E0 cmp r0, #0x8 bne _020810E8 _020810E0: ldr r1, _020811D0 ; =0x020FBBE8 add r0, r5, #0x0 bl FUN_02046500 _020810E8: ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _020811B4 _020810F0: ldr r1, [r4, #0x0] ldr r0, _020811BC ; =0x00000121 ldrb r0, [r1, r0] cmp r0, #0x8 bhi _0208116E add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02081106: ; jump table (using 16-bit offset) .short _0208116E - _02081106 - 2; case 0 .short _0208116E - _02081106 - 2; case 1 .short _0208116E - _02081106 - 2; case 2 .short _02081118 - _02081106 - 2; case 3 .short _02081118 - _02081106 - 2; case 4 .short _0208113A - _02081106 - 2; case 5 .short _0208113A - _02081106 - 2; case 6 .short _02081156 - _02081106 - 2; case 7 .short _02081156 - _02081106 - 2; case 8 _02081118: mov r5, #0x0 add r6, sp, #0x0 _0208111C: ldr r0, [r4, #0x0] add r1, r5, #0x0 bl FUN_02083308 add r7, r0, #0x0 ldr r0, [r4, #0x0] add r1, r5, #0x0 bl FUN_0208336C add r0, r7, r0 add r5, r5, #0x1 stmia r6!, {r0} cmp r5, #0x4 blt _0208111C b _0208116E _0208113A: mov r2, #0x0 mov r3, #0x4b add r0, r2, #0x0 add r1, sp, #0x0 lsl r3, r3, #0x2 _02081144: ldr r5, [r4, #0x0] add r2, r2, #0x1 add r5, r5, r0 ldrsh r5, [r5, r3] add r0, #0xc cmp r2, #0x4 stmia r1!, {r5} blt _02081144 b _0208116E _02081156: mov r2, #0x0 ldr r3, _020811D4 ; =0x0000012E add r0, r2, #0x0 add r1, sp, #0x0 _0208115E: ldr r5, [r4, #0x0] add r2, r2, #0x1 add r5, r5, r0 ldrsh r5, [r5, r3] add r0, #0xc cmp r2, #0x4 stmia r1!, {r5} blt _0208115E _0208116E: ldr r1, [sp, #0x0] mov r2, #0x0 mov r5, #0x1 add r3, sp, #0x4 _02081176: ldr r0, [r3, #0x0] cmp r1, r0 bge _0208117E add r2, r2, #0x1 _0208117E: add r5, r5, #0x1 add r3, r3, #0x4 cmp r5, #0x4 blt _02081176 mov r0, #0x13 ldr r1, [r4, #0x0] lsl r0, r0, #0x4 strb r2, [r1, r0] ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _020811B4 _02081196: add r0, r5, #0x0 bl FUN_0204AF84 ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _020811B4 _020811A4: bl ErrorHandling _020811A8: add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x10 mov r0, #0x1 pop {r3-r7, pc} _020811B4: mov r0, #0x0 add sp, #0x10 pop {r3-r7, pc} nop _020811BC: .word 0x00000121 _020811C0: .word 0x000019B8 _020811C4: .word 0x020FBBD8 _020811C8: .word 0x020FBBC8 _020811CC: .word 0x020FBBF8 _020811D0: .word 0x020FBBE8 _020811D4: .word 0x0000012E thumb_func_start FUN_020811D8 FUN_020811D8: ; 0x020811D8 push {r4, lr} ldr r1, _02081204 ; =0x000019C4 mov r0, #0x14 bl FUN_02016998 ldr r2, _02081204 ; =0x000019C4 mov r1, #0x0 add r4, r0, #0x0 blx MI_CpuFill8 ldr r0, _02081208 ; =0x00000123 mov r1, #0x0 strb r1, [r4, r0] add r1, r0, #0x4 mov r2, #0x1 strb r2, [r4, r1] mov r1, #0x3 add r0, r0, #0x3 strb r1, [r4, r0] add r0, r4, #0x0 pop {r4, pc} nop _02081204: .word 0x000019C4 _02081208: .word 0x00000123 thumb_func_start FUN_0208120C FUN_0208120C: ; 0x0208120C ldr r3, _02081210 ; =FUN_02016A18 bx r3 .balign 4 _02081210: .word FUN_02016A18 thumb_func_start FUN_02081214 FUN_02081214: ; 0x02081214 push {r3-r7, lr} mov r2, #0x1 add r6, r0, #0x0 mov r0, #0xb mov r1, #0x14 lsl r2, r2, #0xe bl FUN_0201681C bl FUN_020811D8 add r4, r0, #0x0 bl FUN_0201B9D4 mov r1, #0x67 lsl r1, r1, #0x6 str r0, [r4, r1] add r0, r4, #0x0 bl FUN_0208285C ldrb r1, [r6, #0x0] ldr r0, _020813E4 ; =0x0000011F strb r1, [r4, r0] add r1, r0, #0x1 ldrb r2, [r6, #0x1] add r0, r0, #0x2 strb r2, [r4, r1] ldrb r1, [r6, #0x2] strb r1, [r4, r0] ldrb r0, [r6, #0x1] mov r1, #0x0 bl FUN_02083454 ldr r1, _020813E8 ; =0x00000122 mov r7, #0x0 strb r0, [r4, r1] add r0, r1, #0x1 ldrb r2, [r4, r0] sub r0, r1, #0x6 add r5, r4, #0x0 strb r2, [r4, r0] mov r0, #0x64 add r1, r0, #0x0 add r1, #0xc1 strb r0, [r4, r1] add r1, r0, #0x0 add r1, #0xc1 ldrb r2, [r4, r1] add r1, r0, #0x0 add r1, #0xb9 strb r2, [r4, r1] mov r1, #0x1 add r0, #0xba strb r1, [r4, r0] ldr r1, [r6, #0x14] ldr r0, _020813EC ; =0x0000199C str r1, [r4, r0] add r1, r0, #0x0 ldr r2, [r6, #0x18] sub r1, #0x14 str r2, [r4, r1] add r1, r0, #0x0 ldr r2, [r6, #0x1c] sub r1, #0x10 str r2, [r4, r1] add r1, r0, #0x0 ldr r2, [r6, #0x8] sub r1, #0xc str r2, [r4, r1] ldrb r2, [r6, #0x5] sub r1, r0, #0x4 strb r2, [r4, r1] add r1, r0, #0x0 ldr r2, [r6, #0x10] sub r1, #0x8 str r2, [r4, r1] sub r1, r0, #0x3 ldrb r2, [r6, #0x3] sub r0, r0, #0x2 strb r2, [r4, r1] ldrb r1, [r6, #0x4] strb r1, [r4, r0] _020812B6: mov r0, #0x14 bl FUN_02026FE8 add r1, r5, #0x0 add r1, #0xf8 add r7, r7, #0x1 add r5, r5, #0x4 str r0, [r1, #0x0] cmp r7, #0x4 blt _020812B6 mov r3, #0x12 lsl r3, r3, #0x4 ldrb r0, [r4, r3] sub r2, r3, #0x2 sub r3, r3, #0x1 str r0, [sp, #0x0] ldrb r2, [r4, r2] ldrb r3, [r4, r3] add r0, r4, #0x0 mov r1, #0xb bl FUN_02082ED0 mov r0, #0x14 bl FUN_0206B8AC mov r1, #0x56 lsl r1, r1, #0x2 str r0, [r4, r1] mov r7, #0x0 add r5, r4, #0x0 _020812F2: mov r0, #0x14 bl FUN_020669C0 add r7, r7, #0x1 stmia r5!, {r0} cmp r7, #0x4 blt _020812F2 mov r7, #0x0 add r5, r4, #0x0 _02081304: mov r0, #0x14 bl FUN_02029EE4 mov r1, #0x57 lsl r1, r1, #0x2 str r0, [r5, r1] add r7, r7, #0x1 add r5, r5, #0x4 cmp r7, #0x4 blt _02081304 add r0, r1, #0x0 ldr r0, [r4, r0] ldr r1, [r6, #0x20] bl FUN_02029F9C ldr r0, [r6, #0x8] ldr r1, [r4, #0x0] bl FUN_02069B88 mov r0, #0x8 mov r1, #0x14 bl FUN_020219F4 add r1, r4, #0x0 add r1, #0xe8 str r0, [r1, #0x0] add r0, r4, #0x0 add r0, #0xe8 ldr r0, [r0, #0x0] ldr r1, [r6, #0xc] bl FUN_02021A74 ldr r0, [r6, #0x10] bl FUN_020239CC mov r1, #0x42 lsl r1, r1, #0x2 strb r0, [r4, r1] add r0, r1, #0x4 mov r2, #0x0 strb r2, [r4, r0] add r1, #0x17 ldrb r1, [r4, r1] ldr r0, [r4, #0x0] bl FUN_02081540 mov r1, #0x11 lsl r1, r1, #0x4 strb r0, [r4, r1] add r0, r4, #0x0 bl FUN_020832EC cmp r0, #0x0 ldr r0, [r6, #0x10] bne _0208138E bl FUN_020239CC cmp r0, #0x0 bne _02081384 mov r1, #0xba add r0, r1, #0x0 add r0, #0x5a strh r1, [r4, r0] b _020813A8 _02081384: mov r1, #0xbb add r0, r1, #0x0 add r0, #0x59 strh r1, [r4, r0] b _020813A8 _0208138E: bl FUN_020239CC cmp r0, #0x0 bne _020813A0 mov r0, #0x45 mov r1, #0x0 lsl r0, r0, #0x2 strh r1, [r4, r0] b _020813A8 _020813A0: mov r1, #0x61 add r0, r1, #0x0 add r0, #0xb3 strh r1, [r4, r0] _020813A8: ldrb r1, [r6, #0x3] ldrb r2, [r6, #0x4] add r0, r4, #0x0 bl FUN_020813F4 add r0, r4, #0x0 bl FUN_020832EC cmp r0, #0x1 bne _020813D0 ldr r1, _020813F0 ; =0x00000172 mov r5, #0x0 mov r0, #0x3 _020813C2: sub r3, r0, r5 add r2, r4, r5 add r5, r5, #0x1 strb r3, [r2, r1] cmp r5, #0x4 blt _020813C2 b _020813DE _020813D0: ldr r0, _020813F0 ; =0x00000172 mov r2, #0x0 _020813D4: add r1, r4, r2 strb r2, [r1, r0] add r2, r2, #0x1 cmp r2, #0x4 blt _020813D4 _020813DE: add r0, r4, #0x0 pop {r3-r7, pc} nop _020813E4: .word 0x0000011F _020813E8: .word 0x00000122 _020813EC: .word 0x0000199C _020813F0: .word 0x00000172 thumb_func_start FUN_020813F4 FUN_020813F4: ; 0x020813F4 push {r3-r7, lr} sub sp, #0x10 mov r3, #0x12 add r5, r0, #0x0 lsl r3, r3, #0x4 ldrb r4, [r5, r3] str r4, [sp, #0x0] add r4, r3, #0x1 ldrb r4, [r5, r4] sub r3, r3, #0x1 str r4, [sp, #0x4] str r1, [sp, #0x8] str r2, [sp, #0xc] ldrb r3, [r5, r3] mov r1, #0xb mov r2, #0x3 bl FUN_020828E4 add r4, r5, #0x0 add r4, #0x10 mov r7, #0x1 add r6, r5, #0x4 add r4, #0x30 _02081422: ldr r1, [r6, #0x0] add r0, r4, #0x0 mov r2, #0x14 bl FUN_02082D60 add r7, r7, #0x1 add r6, r6, #0x4 add r4, #0x30 cmp r7, #0x4 blt _02081422 mov r6, #0x1 add r4, r5, #0x4 mov r7, #0x8 _0208143C: add r0, r4, #0x0 add r0, #0xe8 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02081454 add r0, r7, #0x0 mov r1, #0x14 bl FUN_020219F4 add r1, r4, #0x0 add r1, #0xe8 str r0, [r1, #0x0] _02081454: add r2, r4, #0x0 add r2, #0xe8 ldr r0, [r4, #0x0] ldr r2, [r2, #0x0] mov r1, #0x90 bl FUN_020671BC add r6, r6, #0x1 add r4, r4, #0x4 cmp r6, #0x4 blt _0208143C add r0, r5, #0x0 add r0, #0x30 mov r2, #0x42 mov r1, #0x1 add r0, #0x30 lsl r2, r2, #0x2 _02081476: ldrh r3, [r0, #0x0] add r0, #0x30 lsl r3, r3, #0x12 lsr r4, r3, #0x1e add r3, r5, r1 add r1, r1, #0x1 strb r4, [r3, r2] cmp r1, #0x4 blt _02081476 add r0, r5, #0x0 add r0, #0x30 mov r2, #0x43 mov r1, #0x1 add r0, #0x30 lsl r2, r2, #0x2 _02081494: ldrh r3, [r0, #0x0] add r0, #0x30 lsl r3, r3, #0x10 lsr r4, r3, #0x1e add r3, r5, r1 add r1, r1, #0x1 strb r4, [r3, r2] cmp r1, #0x4 blt _02081494 add r3, r5, #0x0 mov r1, #0x11 mov r4, #0x1 add r3, #0x30 lsl r1, r1, #0x4 _020814B0: add r0, r3, #0x0 add r0, #0x3e ldrb r2, [r0, #0x0] add r0, r5, r4 add r4, r4, #0x1 add r3, #0x30 strb r2, [r0, r1] cmp r4, #0x4 blt _020814B0 add r2, r5, #0x0 mov r0, #0x45 mov r4, #0x1 add r2, #0x30 add r3, r5, #0x2 lsl r0, r0, #0x2 _020814CE: ldrh r1, [r2, #0x18] add r4, r4, #0x1 add r2, #0x30 strh r1, [r3, r0] add r3, r3, #0x2 cmp r4, #0x4 blt _020814CE add r0, r5, #0x0 mov r1, #0xb bl FUN_02082B90 add sp, #0x10 pop {r3-r7, pc} thumb_func_start FUN_020814E8 FUN_020814E8: ; 0x020814E8 push {r3-r7, lr} add r7, r0, #0x0 mov r0, #0x56 lsl r0, r0, #0x2 ldr r0, [r7, r0] bl FUN_02016A18 mov r6, #0x57 mov r4, #0x0 add r5, r7, #0x0 lsl r6, r6, #0x2 _020814FE: ldr r0, [r5, #0x0] bl FUN_02016A18 add r0, r5, #0x0 add r0, #0xe8 ldr r0, [r0, #0x0] bl FUN_02021A20 add r0, r5, #0x0 add r0, #0xf8 ldr r0, [r0, #0x0] bl FUN_02016A18 ldr r0, [r5, r6] bl FUN_02016A18 add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, #0x4 blt _020814FE mov r0, #0x67 lsl r0, r0, #0x6 ldr r0, [r7, r0] bl FUN_0201B9E0 add r0, r7, #0x0 bl FUN_0208120C mov r0, #0x14 bl FUN_020168D0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02081540 FUN_02081540: ; 0x02081540 push {r3-r7, lr} add r5, r0, #0x0 mov r0, #0x1 add r7, r1, #0x0 str r0, [sp, #0x0] mov r4, #0x0 _0208154C: cmp r7, #0x4 bhi _020815B6 add r0, r7, r7 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0208155C: ; jump table (using 16-bit offset) .short _02081566 - _0208155C - 2; case 0 .short _02081576 - _0208155C - 2; case 1 .short _02081586 - _0208155C - 2; case 2 .short _02081596 - _0208155C - 2; case 3 .short _020815A6 - _0208155C - 2; case 4 _02081566: add r1, r4, #0x0 add r0, r5, #0x0 add r1, #0x7a mov r2, #0x0 bl FUN_020671BC add r6, r0, #0x0 b _020815BA _02081576: add r1, r4, #0x0 add r0, r5, #0x0 add r1, #0x7e mov r2, #0x0 bl FUN_020671BC add r6, r0, #0x0 b _020815BA _02081586: add r1, r4, #0x0 add r0, r5, #0x0 add r1, #0x82 mov r2, #0x0 bl FUN_020671BC add r6, r0, #0x0 b _020815BA _02081596: add r1, r4, #0x0 add r0, r5, #0x0 add r1, #0x86 mov r2, #0x0 bl FUN_020671BC add r6, r0, #0x0 b _020815BA _020815A6: add r1, r4, #0x0 add r0, r5, #0x0 add r1, #0x8a mov r2, #0x0 bl FUN_020671BC add r6, r0, #0x0 b _020815BA _020815B6: bl ErrorHandling _020815BA: cmp r6, #0x0 beq _020815CA ldr r0, [sp, #0x0] add r4, r4, #0x1 add r0, r0, #0x1 str r0, [sp, #0x0] cmp r4, #0x3 ble _0208154C _020815CA: ldr r0, [sp, #0x0] pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020815D0 FUN_020815D0: ; 0x020815D0 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _02081658 ; =0x00000123 ldrb r0, [r5, r0] lsl r0, r0, #0x2 add r0, r5, r0 add r0, #0xf8 ldr r0, [r0, #0x0] bl FUN_02027740 mov r0, #0x14 mov r1, #0x28 bl FUN_02016998 mov r1, #0x0 mov r2, #0x28 add r4, r0, #0x0 blx MI_CpuFill8 ldr r0, _02081658 ; =0x00000123 ldrb r1, [r5, r0] lsl r1, r1, #0x2 ldr r1, [r5, r1] str r1, [r4, #0x0] ldrb r1, [r5, r0] lsl r1, r1, #0x2 add r1, r5, r1 add r1, #0xf8 ldr r1, [r1, #0x0] str r1, [r4, #0x4] sub r1, r0, #0x1 ldrb r1, [r5, r1] str r1, [r4, #0x8] add r1, r0, #0x0 add r1, #0x4e ldrb r1, [r5, r1] cmp r1, #0x1 bne _02081620 mov r0, #0x4 b _02081624 _02081620: sub r0, r0, #0x3 ldrb r0, [r5, r0] _02081624: str r0, [r4, #0xc] ldr r0, _0208165C ; =0x00000121 ldrb r1, [r5, r0] sub r0, r0, #0x2 str r1, [r4, #0x10] ldrb r0, [r5, r0] str r0, [r4, #0x14] ldr r0, _02081660 ; =0x0000199C ldr r0, [r5, r0] bl FUN_0202708C ldr r1, _02081664 ; =0x000019A0 str r0, [r4, #0x18] add r0, r5, r1 str r0, [r4, #0x1c] add r0, r1, #0x0 sub r0, #0x18 ldr r0, [r5, r0] str r0, [r4, #0x20] add r0, r1, #0x0 sub r0, #0xc ldr r0, [r5, r0] add r1, #0x18 str r0, [r4, #0x24] str r4, [r5, r1] pop {r3-r5, pc} .balign 4 _02081658: .word 0x00000123 _0208165C: .word 0x00000121 _02081660: .word 0x0000199C _02081664: .word 0x000019A0 thumb_func_start FUN_02081668 FUN_02081668: ; 0x02081668 push {r4, lr} add r4, r0, #0x0 ldr r0, _0208167C ; =0x000019B8 ldr r0, [r4, r0] bl FUN_02016A18 ldr r0, _0208167C ; =0x000019B8 mov r1, #0x0 str r1, [r4, r0] pop {r4, pc} .balign 4 _0208167C: .word 0x000019B8 thumb_func_start FUN_02081680 FUN_02081680: ; 0x02081680 push {r3-r7, lr} sub sp, #0x10 ldr r2, _020819E8 ; =0x00000176 add r4, r1, #0x0 str r0, [sp, #0x0] ldrb r0, [r4, r2] cmp r0, #0x2f bls _02081692 b _02081D24 _02081692: add r3, r0, r0 add r3, pc ldrh r3, [r3, #0x6] lsl r3, r3, #0x10 asr r3, r3, #0x10 add pc, r3 _0208169E: ; jump table (using 16-bit offset) .short _020816FE - _0208169E - 2; case 0 .short _02081716 - _0208169E - 2; case 1 .short _0208172C - _0208169E - 2; case 2 .short _02081742 - _0208169E - 2; case 3 .short _0208175E - _0208169E - 2; case 4 .short _02081776 - _0208169E - 2; case 5 .short _0208178C - _0208169E - 2; case 6 .short _020817A8 - _0208169E - 2; case 7 .short _020817C4 - _0208169E - 2; case 8 .short _020817DC - _0208169E - 2; case 9 .short _020817F2 - _0208169E - 2; case 10 .short _02081822 - _0208169E - 2; case 11 .short _02081838 - _0208169E - 2; case 12 .short _02081850 - _0208169E - 2; case 13 .short _02081866 - _0208169E - 2; case 14 .short _02081884 - _0208169E - 2; case 15 .short _020818A0 - _0208169E - 2; case 16 .short _020818B8 - _0208169E - 2; case 17 .short _020818CE - _0208169E - 2; case 18 .short _0208190A - _0208169E - 2; case 19 .short _02081940 - _0208169E - 2; case 20 .short _02081958 - _0208169E - 2; case 21 .short _0208196E - _0208169E - 2; case 22 .short _0208198E - _0208169E - 2; case 23 .short _020819DE - _0208169E - 2; case 24 .short _02081A04 - _0208169E - 2; case 25 .short _02081A1A - _0208169E - 2; case 26 .short _02081A54 - _0208169E - 2; case 27 .short _02081A8A - _0208169E - 2; case 28 .short _02081AB6 - _0208169E - 2; case 29 .short _02081ACC - _0208169E - 2; case 30 .short _02081AE8 - _0208169E - 2; case 31 .short _02081B04 - _0208169E - 2; case 32 .short _02081B1C - _0208169E - 2; case 33 .short _02081B32 - _0208169E - 2; case 34 .short _02081B6C - _0208169E - 2; case 35 .short _02081BA2 - _0208169E - 2; case 36 .short _02081BBA - _0208169E - 2; case 37 .short _02081BD0 - _0208169E - 2; case 38 .short _02081BFA - _0208169E - 2; case 39 .short _02081C16 - _0208169E - 2; case 40 .short _02081C2E - _0208169E - 2; case 41 .short _02081C44 - _0208169E - 2; case 42 .short _02081C86 - _0208169E - 2; case 43 .short _02081CBC - _0208169E - 2; case 44 .short _02081CD4 - _0208169E - 2; case 45 .short _02081CEA - _0208169E - 2; case 46 .short _02081D08 - _0208169E - 2; case 47 _020816FE: mov r0, #0x5 bl FUN_02031588 ldr r0, _020819EC ; =0x00000584 mov r1, #0x0 strb r1, [r4, r0] ldr r0, _020819E8 ; =0x00000176 add sp, #0x10 ldrb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, r0] pop {r3-r7, pc} _02081716: mov r0, #0x5 bl FUN_020315D8 cmp r0, #0x1 bne _0208180C ldr r0, _020819E8 ; =0x00000176 add sp, #0x10 ldrb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, r0] pop {r3-r7, pc} _0208172C: add r0, r4, #0x0 bl FUN_02083630 cmp r0, #0x1 bne _0208180C ldr r0, _020819E8 ; =0x00000176 add sp, #0x10 ldrb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, r0] pop {r3-r7, pc} _02081742: ldr r0, _020819EC ; =0x00000584 add r1, r2, #0x0 sub r1, #0x4f ldrb r3, [r4, r0] ldrb r1, [r4, r1] cmp r3, r1 blo _0208180C mov r1, #0x0 strb r1, [r4, r0] ldrb r0, [r4, r2] add sp, #0x10 add r0, r0, #0x1 strb r0, [r4, r2] pop {r3-r7, pc} _0208175E: mov r0, #0x6 bl FUN_02031588 ldr r0, _020819EC ; =0x00000584 mov r1, #0x0 strb r1, [r4, r0] ldr r0, _020819E8 ; =0x00000176 add sp, #0x10 ldrb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, r0] pop {r3-r7, pc} _02081776: mov r0, #0x6 bl FUN_020315D8 cmp r0, #0x1 bne _0208180C ldr r0, _020819E8 ; =0x00000176 add sp, #0x10 ldrb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, r0] pop {r3-r7, pc} _0208178C: sub r2, #0x53 ldrb r1, [r4, r2] ldr r2, [r4, #0x0] add r0, r4, #0x0 bl FUN_020836BC cmp r0, #0x1 bne _0208180C ldr r0, _020819E8 ; =0x00000176 add sp, #0x10 ldrb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, r0] pop {r3-r7, pc} _020817A8: ldr r0, _020819EC ; =0x00000584 add r1, r2, #0x0 sub r1, #0x4f ldrb r3, [r4, r0] ldrb r1, [r4, r1] cmp r3, r1 blo _0208180C mov r1, #0x0 strb r1, [r4, r0] ldrb r0, [r4, r2] add sp, #0x10 add r0, r0, #0x1 strb r0, [r4, r2] pop {r3-r7, pc} _020817C4: mov r0, #0x7 bl FUN_02031588 ldr r0, _020819EC ; =0x00000584 mov r1, #0x0 strb r1, [r4, r0] ldr r0, _020819E8 ; =0x00000176 add sp, #0x10 ldrb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, r0] pop {r3-r7, pc} _020817DC: mov r0, #0x7 bl FUN_020315D8 cmp r0, #0x1 bne _0208180C ldr r0, _020819E8 ; =0x00000176 add sp, #0x10 ldrb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, r0] pop {r3-r7, pc} _020817F2: add r3, r2, #0x0 sub r3, #0x53 ldrb r5, [r4, r3] add r3, r2, #0x0 sub r3, #0x5a ldrb r3, [r4, r3] cmp r5, r3 bne _0208181A add r0, r4, #0x0 bl FUN_0208373C cmp r0, #0x1 beq _0208180E _0208180C: b _02081DBC _0208180E: ldr r0, _020819E8 ; =0x00000176 add sp, #0x10 ldrb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, r0] pop {r3-r7, pc} _0208181A: add r0, r0, #0x1 add sp, #0x10 strb r0, [r4, r2] pop {r3-r7, pc} _02081822: ldr r0, _020819EC ; =0x00000584 ldrb r1, [r4, r0] cmp r1, #0x0 beq _02081912 mov r1, #0x0 strb r1, [r4, r0] ldrb r0, [r4, r2] add sp, #0x10 add r0, r0, #0x1 strb r0, [r4, r2] pop {r3-r7, pc} _02081838: mov r0, #0x8 bl FUN_02031588 ldr r0, _020819EC ; =0x00000584 mov r1, #0x0 strb r1, [r4, r0] ldr r0, _020819E8 ; =0x00000176 add sp, #0x10 ldrb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, r0] pop {r3-r7, pc} _02081850: mov r0, #0x8 bl FUN_020315D8 cmp r0, #0x1 bne _02081912 ldr r0, _020819E8 ; =0x00000176 add sp, #0x10 ldrb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, r0] pop {r3-r7, pc} _02081866: sub r2, #0x53 ldrb r1, [r4, r2] add r2, r4, #0x0 add r0, r4, #0x0 add r2, #0x10 bl FUN_020837B4 cmp r0, #0x1 bne _02081912 ldr r0, _020819E8 ; =0x00000176 add sp, #0x10 ldrb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, r0] pop {r3-r7, pc} _02081884: ldr r0, _020819EC ; =0x00000584 add r1, r2, #0x0 sub r1, #0x4f ldrb r3, [r4, r0] ldrb r1, [r4, r1] cmp r3, r1 blo _02081912 mov r1, #0x0 strb r1, [r4, r0] ldrb r0, [r4, r2] add sp, #0x10 add r0, r0, #0x1 strb r0, [r4, r2] pop {r3-r7, pc} _020818A0: mov r0, #0x9 bl FUN_02031588 ldr r0, _020819EC ; =0x00000584 mov r1, #0x0 strb r1, [r4, r0] ldr r0, _020819E8 ; =0x00000176 add sp, #0x10 ldrb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, r0] pop {r3-r7, pc} _020818B8: mov r0, #0x9 bl FUN_020315D8 cmp r0, #0x1 bne _02081912 ldr r0, _020819E8 ; =0x00000176 add sp, #0x10 ldrb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, r0] pop {r3-r7, pc} _020818CE: add r1, r2, #0x0 sub r1, #0x53 ldrb r3, [r4, r1] add r1, r2, #0x0 sub r1, #0x5a ldrb r1, [r4, r1] cmp r3, r1 bne _02081902 add r0, r2, #0x2 ldr r1, [r4, r0] add r3, r4, #0x0 mov r2, #0x30 add r3, #0x10 mul r2, r1 add r0, r4, #0x0 add r2, r3, r2 bl FUN_020837B4 cmp r0, #0x1 bne _02081912 ldr r0, _020819E8 ; =0x00000176 add sp, #0x10 ldrb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, r0] pop {r3-r7, pc} _02081902: add r0, r0, #0x1 add sp, #0x10 strb r0, [r4, r2] pop {r3-r7, pc} _0208190A: ldr r1, _020819EC ; =0x00000584 ldrb r0, [r4, r1] cmp r0, #0x0 bne _02081914 _02081912: b _02081DBC _02081914: mov r0, #0x0 strb r0, [r4, r1] add r1, r2, #0x2 ldr r1, [r4, r1] add r3, r1, #0x1 add r1, r2, #0x2 str r3, [r4, r1] ldr r1, [r4, r1] cmp r1, #0x4 bge _02081932 ldrb r0, [r4, r2] add sp, #0x10 sub r0, r0, #0x1 strb r0, [r4, r2] pop {r3-r7, pc} _02081932: add r1, r2, #0x2 str r0, [r4, r1] ldrb r0, [r4, r2] add sp, #0x10 add r0, r0, #0x1 strb r0, [r4, r2] pop {r3-r7, pc} _02081940: mov r0, #0xa bl FUN_02031588 ldr r0, _020819EC ; =0x00000584 mov r1, #0x0 strb r1, [r4, r0] ldr r0, _020819E8 ; =0x00000176 add sp, #0x10 ldrb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, r0] pop {r3-r7, pc} _02081958: mov r0, #0xa bl FUN_020315D8 cmp r0, #0x1 bne _02081A5C ldr r0, _020819E8 ; =0x00000176 add sp, #0x10 ldrb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, r0] pop {r3-r7, pc} _0208196E: sub r2, #0x53 ldrb r1, [r4, r2] add r2, r4, #0x0 add r2, #0xe8 ldr r2, [r2, #0x0] add r0, r4, #0x0 bl FUN_020838B4 cmp r0, #0x1 bne _02081A5C ldr r0, _020819E8 ; =0x00000176 add sp, #0x10 ldrb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, r0] pop {r3-r7, pc} _0208198E: ldr r0, _020819EC ; =0x00000584 sub r2, #0x4f ldrb r1, [r4, r2] ldrb r0, [r4, r0] cmp r0, r1 blo _02081A5C mov r5, #0x0 cmp r1, #0x0 ble _020819CC add r6, r4, #0x0 _020819A2: add r0, r5, #0x0 bl FUN_0202DFA4 add r7, r0, #0x0 add r0, r6, #0x0 add r0, #0xe8 ldr r0, [r0, #0x0] bl FUN_02021A4C add r1, r6, #0x0 add r1, #0xe8 ldr r1, [r1, #0x0] add r0, r7, #0x0 bl FUN_02023990 ldr r0, _020819F0 ; =0x00000127 add r5, r5, #0x1 ldrb r0, [r4, r0] add r6, r6, #0x4 cmp r5, r0 blt _020819A2 _020819CC: ldr r0, _020819EC ; =0x00000584 mov r1, #0x0 strb r1, [r4, r0] ldr r0, _020819E8 ; =0x00000176 add sp, #0x10 ldrb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, r0] pop {r3-r7, pc} _020819DE: mov r0, #0xb bl FUN_02031588 ldr r0, _020819EC ; =0x00000584 b _020819F4 .balign 4 _020819E8: .word 0x00000176 _020819EC: .word 0x00000584 _020819F0: .word 0x00000127 _020819F4: mov r1, #0x0 strb r1, [r4, r0] ldr r0, _02081D28 ; =0x00000176 add sp, #0x10 ldrb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, r0] pop {r3-r7, pc} _02081A04: mov r0, #0xb bl FUN_020315D8 cmp r0, #0x1 bne _02081A5C ldr r0, _02081D28 ; =0x00000176 add sp, #0x10 ldrb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, r0] pop {r3-r7, pc} _02081A1A: add r1, r2, #0x0 sub r1, #0x53 ldrb r3, [r4, r1] add r1, r2, #0x0 sub r1, #0x5a ldrb r1, [r4, r1] cmp r3, r1 bne _02081A4C add r0, r2, #0x2 ldr r1, [r4, r0] add r0, r4, #0x0 lsl r2, r1, #0x2 add r2, r4, r2 add r2, #0xe8 ldr r2, [r2, #0x0] bl FUN_020838B4 cmp r0, #0x1 bne _02081A5C ldr r0, _02081D28 ; =0x00000176 add sp, #0x10 ldrb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, r0] pop {r3-r7, pc} _02081A4C: add r0, r0, #0x1 add sp, #0x10 strb r0, [r4, r2] pop {r3-r7, pc} _02081A54: ldr r1, _02081D2C ; =0x00000584 ldrb r0, [r4, r1] cmp r0, #0x0 bne _02081A5E _02081A5C: b _02081DBC _02081A5E: mov r0, #0x0 strb r0, [r4, r1] add r1, r2, #0x2 ldr r1, [r4, r1] add r3, r1, #0x1 add r1, r2, #0x2 str r3, [r4, r1] ldr r1, [r4, r1] cmp r1, #0x4 bge _02081A7C ldrb r0, [r4, r2] add sp, #0x10 sub r0, r0, #0x1 strb r0, [r4, r2] pop {r3-r7, pc} _02081A7C: add r1, r2, #0x2 str r0, [r4, r1] ldrb r0, [r4, r2] add sp, #0x10 add r0, r0, #0x1 strb r0, [r4, r2] pop {r3-r7, pc} _02081A8A: bl FUN_02029EC4 add r2, r0, #0x0 mov r0, #0x57 lsl r0, r0, #0x2 ldr r1, _02081D30 ; =0x00000585 ldr r0, [r4, r0] add r1, r4, r1 blx MI_CpuCopy8 mov r0, #0xc bl FUN_02031588 ldr r0, _02081D2C ; =0x00000584 mov r1, #0x0 strb r1, [r4, r0] ldr r0, _02081D28 ; =0x00000176 add sp, #0x10 ldrb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, r0] pop {r3-r7, pc} _02081AB6: mov r0, #0xc bl FUN_020315D8 cmp r0, #0x1 bne _02081B74 ldr r0, _02081D28 ; =0x00000176 add sp, #0x10 ldrb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, r0] pop {r3-r7, pc} _02081ACC: sub r2, #0x53 ldrb r1, [r4, r2] add r0, r4, #0x0 mov r2, #0x0 bl FUN_02083AD4 cmp r0, #0x1 bne _02081B74 ldr r0, _02081D28 ; =0x00000176 add sp, #0x10 ldrb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, r0] pop {r3-r7, pc} _02081AE8: ldr r0, _02081D2C ; =0x00000584 add r1, r2, #0x0 sub r1, #0x4f ldrb r3, [r4, r0] ldrb r1, [r4, r1] cmp r3, r1 blo _02081B74 mov r1, #0x0 strb r1, [r4, r0] ldrb r0, [r4, r2] add sp, #0x10 add r0, r0, #0x1 strb r0, [r4, r2] pop {r3-r7, pc} _02081B04: mov r0, #0xd bl FUN_02031588 ldr r0, _02081D2C ; =0x00000584 mov r1, #0x0 strb r1, [r4, r0] ldr r0, _02081D28 ; =0x00000176 add sp, #0x10 ldrb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, r0] pop {r3-r7, pc} _02081B1C: mov r0, #0xd bl FUN_020315D8 cmp r0, #0x1 bne _02081B74 ldr r0, _02081D28 ; =0x00000176 add sp, #0x10 ldrb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, r0] pop {r3-r7, pc} _02081B32: add r1, r2, #0x0 sub r1, #0x53 ldrb r3, [r4, r1] add r1, r2, #0x0 sub r1, #0x5a ldrb r1, [r4, r1] cmp r3, r1 bne _02081B64 add r0, r2, #0x2 ldr r1, [r4, r0] sub r2, #0x1a lsl r3, r1, #0x2 add r3, r4, r3 ldr r2, [r3, r2] add r0, r4, #0x0 bl FUN_02083AD4 cmp r0, #0x1 bne _02081B74 ldr r0, _02081D28 ; =0x00000176 add sp, #0x10 ldrb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, r0] pop {r3-r7, pc} _02081B64: add r0, r0, #0x1 add sp, #0x10 strb r0, [r4, r2] pop {r3-r7, pc} _02081B6C: ldr r1, _02081D2C ; =0x00000584 ldrb r0, [r4, r1] cmp r0, #0x0 bne _02081B76 _02081B74: b _02081DBC _02081B76: mov r0, #0x0 strb r0, [r4, r1] add r1, r2, #0x2 ldr r1, [r4, r1] add r3, r1, #0x1 add r1, r2, #0x2 str r3, [r4, r1] ldr r1, [r4, r1] cmp r1, #0x4 bge _02081B94 ldrb r0, [r4, r2] add sp, #0x10 sub r0, r0, #0x1 strb r0, [r4, r2] pop {r3-r7, pc} _02081B94: add r1, r2, #0x2 str r0, [r4, r1] ldrb r0, [r4, r2] add sp, #0x10 add r0, r0, #0x1 strb r0, [r4, r2] pop {r3-r7, pc} _02081BA2: mov r0, #0xe bl FUN_02031588 ldr r0, _02081D2C ; =0x00000584 mov r1, #0x0 strb r1, [r4, r0] ldr r0, _02081D28 ; =0x00000176 add sp, #0x10 ldrb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, r0] pop {r3-r7, pc} _02081BBA: mov r0, #0xe bl FUN_020315D8 cmp r0, #0x1 bne _02081C8E ldr r0, _02081D28 ; =0x00000176 add sp, #0x10 ldrb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, r0] pop {r3-r7, pc} _02081BD0: add r2, sp, #0x8 add r0, r4, #0x0 mov r1, #0x0 add r2, #0x2 bl FUN_02082894 ldr r1, _02081D34 ; =0x00000123 add r2, sp, #0x8 ldrb r1, [r4, r1] add r0, r4, #0x0 add r2, #0x2 bl FUN_02083B48 cmp r0, #0x1 bne _02081C8E ldr r0, _02081D28 ; =0x00000176 add sp, #0x10 ldrb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, r0] pop {r3-r7, pc} _02081BFA: ldr r0, _02081D2C ; =0x00000584 add r1, r2, #0x0 sub r1, #0x4f ldrb r3, [r4, r0] ldrb r1, [r4, r1] cmp r3, r1 blo _02081C8E mov r1, #0x0 strb r1, [r4, r0] ldrb r0, [r4, r2] add sp, #0x10 add r0, r0, #0x1 strb r0, [r4, r2] pop {r3-r7, pc} _02081C16: mov r0, #0xf bl FUN_02031588 ldr r0, _02081D2C ; =0x00000584 mov r1, #0x0 strb r1, [r4, r0] ldr r0, _02081D28 ; =0x00000176 add sp, #0x10 ldrb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, r0] pop {r3-r7, pc} _02081C2E: mov r0, #0xf bl FUN_020315D8 cmp r0, #0x1 bne _02081C8E ldr r0, _02081D28 ; =0x00000176 add sp, #0x10 ldrb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, r0] pop {r3-r7, pc} _02081C44: add r1, r2, #0x0 sub r1, #0x53 ldrb r3, [r4, r1] add r1, r2, #0x0 sub r1, #0x5a ldrb r1, [r4, r1] cmp r3, r1 bne _02081C7E add r1, r2, #0x2 ldr r1, [r4, r1] add r0, r4, #0x0 add r2, sp, #0x4 bl FUN_02082894 mov r1, #0x5e lsl r1, r1, #0x2 ldr r1, [r4, r1] add r0, r4, #0x0 add r2, sp, #0x4 bl FUN_02083B48 cmp r0, #0x1 bne _02081C8E ldr r0, _02081D28 ; =0x00000176 add sp, #0x10 ldrb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, r0] pop {r3-r7, pc} _02081C7E: add r0, r0, #0x1 add sp, #0x10 strb r0, [r4, r2] pop {r3-r7, pc} _02081C86: ldr r1, _02081D2C ; =0x00000584 ldrb r0, [r4, r1] cmp r0, #0x0 bne _02081C90 _02081C8E: b _02081DBC _02081C90: mov r0, #0x0 strb r0, [r4, r1] add r1, r2, #0x2 ldr r1, [r4, r1] add r3, r1, #0x1 add r1, r2, #0x2 str r3, [r4, r1] ldr r1, [r4, r1] cmp r1, #0x4 bge _02081CAE ldrb r0, [r4, r2] add sp, #0x10 sub r0, r0, #0x1 strb r0, [r4, r2] pop {r3-r7, pc} _02081CAE: add r1, r2, #0x2 str r0, [r4, r1] ldrb r0, [r4, r2] add sp, #0x10 add r0, r0, #0x1 strb r0, [r4, r2] pop {r3-r7, pc} _02081CBC: mov r0, #0x10 bl FUN_02031588 ldr r0, _02081D2C ; =0x00000584 mov r1, #0x0 strb r1, [r4, r0] ldr r0, _02081D28 ; =0x00000176 add sp, #0x10 ldrb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, r0] pop {r3-r7, pc} _02081CD4: mov r0, #0x10 bl FUN_020315D8 cmp r0, #0x1 bne _02081DBC ldr r0, _02081D28 ; =0x00000176 add sp, #0x10 ldrb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, r0] pop {r3-r7, pc} _02081CEA: sub r2, #0x53 ldrb r1, [r4, r2] add r2, r4, #0x0 add r0, r4, #0x0 add r2, #0xd0 bl FUN_02083834 cmp r0, #0x1 bne _02081DBC ldr r0, _02081D28 ; =0x00000176 add sp, #0x10 ldrb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, r0] pop {r3-r7, pc} _02081D08: ldr r0, _02081D2C ; =0x00000584 add r1, r2, #0x0 sub r1, #0x4f ldrb r3, [r4, r0] ldrb r1, [r4, r1] cmp r3, r1 blo _02081DBC mov r1, #0x0 strb r1, [r4, r0] ldrb r0, [r4, r2] add sp, #0x10 add r0, r0, #0x1 strb r0, [r4, r2] pop {r3-r7, pc} _02081D24: ldr r0, _02081D38 ; =0x00000127 b _02081D3C .balign 4 _02081D28: .word 0x00000176 _02081D2C: .word 0x00000584 _02081D30: .word 0x00000585 _02081D34: .word 0x00000123 _02081D38: .word 0x00000127 _02081D3C: mov r5, #0x0 ldrb r0, [r4, r0] cmp r0, #0x0 ble _02081D62 mov r7, #0x42 lsl r7, r7, #0x2 add r6, r7, #0x0 add r6, #0x1f _02081D4C: add r0, r5, #0x0 bl FUN_0202DFA4 bl FUN_020239CC add r1, r4, r5 strb r0, [r1, r7] ldrb r0, [r4, r6] add r5, r5, #0x1 cmp r5, r0 blt _02081D4C _02081D62: cmp r5, #0x4 bge _02081D86 add r1, r4, #0x0 mov r0, #0x30 add r1, #0x30 mul r0, r5 add r0, r1, r0 mov r1, #0x42 lsl r1, r1, #0x2 _02081D74: ldrh r2, [r0, #0x0] add r0, #0x30 lsl r2, r2, #0x12 lsr r3, r2, #0x1e add r2, r4, r5 add r5, r5, #0x1 strb r3, [r2, r1] cmp r5, #0x4 blt _02081D74 _02081D86: mov r0, #0x47 lsl r0, r0, #0x2 ldrb r2, [r4, r0] ldr r1, _02081DC0 ; =0x000019B4 strb r2, [r4, r1] add r2, r0, #0x0 add r2, #0x8 ldrb r3, [r4, r2] add r2, r1, #0x1 strb r3, [r4, r2] add r2, r1, #0x2 mov r3, #0x1 strb r3, [r4, r2] add r2, r0, #0x0 add r2, #0xb ldrb r2, [r4, r2] add r1, r1, #0x3 strb r2, [r4, r1] add r1, r0, #0x0 mov r2, #0x0 add r1, #0x64 str r2, [r4, r1] add r0, #0x5a strb r2, [r4, r0] ldr r0, [sp, #0x0] bl FUN_0200CAB4 _02081DBC: add sp, #0x10 pop {r3-r7, pc} .balign 4 _02081DC0: .word 0x000019B4 thumb_func_start FUN_02081DC4 FUN_02081DC4: ; 0x02081DC4 push {r3-r7, lr} add r6, r0, #0x0 bl FUN_02030F40 cmp r0, #0x0 bne _02081DD4 mov r0, #0x0 pop {r3-r7, pc} _02081DD4: ldr r0, _02081EA4 ; =0x00000171 mov r1, #0x1 strb r1, [r6, r0] bl FUN_02030F20 add r4, r0, #0x0 bl FUN_02031190 mov r5, #0x0 str r0, [sp, #0x0] cmp r4, #0x0 ble _02081E0A _02081DEC: add r0, r5, #0x0 bl FUN_0202DFA4 add r7, r0, #0x0 bne _02081DFA bl ErrorHandling _02081DFA: add r0, r7, #0x0 bl FUN_02023A88 cmp r0, #0x0 beq _02081E0A add r5, r5, #0x1 cmp r5, r4 blt _02081DEC _02081E0A: cmp r5, r4 beq _02081E12 mov r1, #0x0 b _02081E14 _02081E12: mov r1, #0x1 _02081E14: ldr r0, _02081EA8 ; =0x00001999 mov r5, #0x0 strb r1, [r6, r0] cmp r4, #0x0 ble _02081E3C _02081E1E: add r0, r5, #0x0 bl FUN_0202DFA4 add r7, r0, #0x0 bne _02081E2C bl ErrorHandling _02081E2C: add r0, r7, #0x0 bl FUN_02023A9C cmp r0, #0x0 beq _02081E3C add r5, r5, #0x1 cmp r5, r4 blt _02081E1E _02081E3C: cmp r5, r4 beq _02081E44 mov r1, #0x0 b _02081E46 _02081E44: mov r1, #0x1 _02081E46: ldr r0, _02081EAC ; =0x0000199A ldr r2, _02081EA8 ; =0x00001999 strb r1, [r6, r0] ldrb r1, [r6, r2] add r2, r2, #0x1 ldrb r2, [r6, r2] add r0, r6, #0x0 bl FUN_020813F4 ldr r0, [sp, #0x0] mov r1, #0x49 lsl r0, r0, #0x18 mov r2, #0x4 lsr r0, r0, #0x18 lsl r1, r1, #0x2 sub r3, r2, r4 strb r0, [r6, r1] add r2, r1, #0x2 strb r3, [r6, r2] add r2, r1, #0x3 strb r4, [r6, r2] sub r1, r1, #0x1 strb r0, [r6, r1] mov r1, #0x64 add r0, r1, #0x0 add r0, #0xc1 strb r1, [r6, r0] add r1, #0xbc ldrb r0, [r6, r1] mov r1, #0x1 bl FUN_02083454 ldr r1, _02081EB0 ; =0x00000122 strb r0, [r6, r1] add r0, r6, #0x0 bl FUN_020834D0 ldr r0, _02081EB4 ; =FUN_02081680 add r1, r6, #0x0 mov r2, #0xa bl FUN_0200CA44 mov r1, #0x6 lsl r1, r1, #0x6 str r0, [r6, r1] mov r0, #0x1 pop {r3-r7, pc} .balign 4 _02081EA4: .word 0x00000171 _02081EA8: .word 0x00001999 _02081EAC: .word 0x0000199A _02081EB0: .word 0x00000122 _02081EB4: .word FUN_02081680 thumb_func_start FUN_02081EB8 FUN_02081EB8: ; 0x02081EB8 ldr r3, _02081EBC ; =FUN_02081EC0 bx r3 .balign 4 _02081EBC: .word FUN_02081EC0 thumb_func_start FUN_02081EC0 FUN_02081EC0: ; 0x02081EC0 mov r1, #0x6 lsl r1, r1, #0x6 ldr r0, [r0, r1] cmp r0, #0x0 bne _02081ECE mov r0, #0x1 bx lr _02081ECE: mov r0, #0x0 bx lr .balign 4 thumb_func_start FUN_02081ED4 FUN_02081ED4: ; 0x02081ED4 push {r4, lr} add r4, r0, #0x0 mov r0, #0x6 lsl r0, r0, #0x6 ldr r0, [r4, r0] cmp r0, #0x0 beq _02081EE6 bl ErrorHandling _02081EE6: ldr r0, _02081F00 ; =0x00000176 mov r1, #0x0 strb r1, [r4, r0] ldr r0, _02081F04 ; =FUN_02081F08 add r1, r4, #0x0 mov r2, #0xa bl FUN_0200CA44 mov r1, #0x6 lsl r1, r1, #0x6 str r0, [r4, r1] pop {r4, pc} nop _02081F00: .word 0x00000176 _02081F04: .word FUN_02081F08 thumb_func_start FUN_02081F08 FUN_02081F08: ; 0x02081F08 push {r4, lr} add r4, r1, #0x0 ldr r1, _02082014 ; =0x00000176 ldrb r2, [r4, r1] cmp r2, #0x7 bhi _02082000 add r3, r2, r2 add r3, pc ldrh r3, [r3, #0x6] lsl r3, r3, #0x10 asr r3, r3, #0x10 add pc, r3 _02081F20: ; jump table (using 16-bit offset) .short _02081F30 - _02081F20 - 2; case 0 .short _02081F46 - _02081F20 - 2; case 1 .short _02081F5A - _02081F20 - 2; case 2 .short _02081F7A - _02081F20 - 2; case 3 .short _02081F94 - _02081F20 - 2; case 4 .short _02081FAA - _02081F20 - 2; case 5 .short _02081FBE - _02081F20 - 2; case 6 .short _02081FEC - _02081F20 - 2; case 7 _02081F30: mov r0, #0x11 bl FUN_02031588 ldr r0, _02082018 ; =0x00000584 mov r1, #0x0 strb r1, [r4, r0] ldr r0, _02082014 ; =0x00000176 ldrb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, r0] pop {r4, pc} _02081F46: mov r0, #0x11 bl FUN_020315D8 cmp r0, #0x1 bne _02082010 ldr r0, _02082014 ; =0x00000176 ldrb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, r0] pop {r4, pc} _02081F5A: sub r1, #0x53 ldrb r1, [r4, r1] add r0, r4, #0x0 lsl r2, r1, #0x2 add r2, r4, r2 add r2, #0xf8 ldr r2, [r2, #0x0] bl FUN_02083930 cmp r0, #0x1 bne _02082010 ldr r0, _02082014 ; =0x00000176 ldrb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, r0] pop {r4, pc} _02081F7A: ldr r0, _02082018 ; =0x00000584 add r2, r1, #0x0 sub r2, #0x4f ldrb r3, [r4, r0] ldrb r2, [r4, r2] cmp r3, r2 blo _02082010 mov r2, #0x0 strb r2, [r4, r0] ldrb r0, [r4, r1] add r0, r0, #0x1 strb r0, [r4, r1] pop {r4, pc} _02081F94: mov r0, #0x12 bl FUN_02031588 ldr r0, _02082018 ; =0x00000584 mov r1, #0x0 strb r1, [r4, r0] ldr r0, _02082014 ; =0x00000176 ldrb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, r0] pop {r4, pc} _02081FAA: mov r0, #0x12 bl FUN_020315D8 cmp r0, #0x1 bne _02082010 ldr r0, _02082014 ; =0x00000176 ldrb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, r0] pop {r4, pc} _02081FBE: add r0, r1, #0x0 sub r0, #0x53 ldrb r3, [r4, r0] add r0, r1, #0x0 sub r0, #0x5a ldrb r0, [r4, r0] cmp r3, r0 bne _02081FE6 add r1, r4, #0x0 add r0, r4, #0x0 add r1, #0xf8 bl FUN_020839C0 cmp r0, #0x1 bne _02082010 ldr r0, _02082014 ; =0x00000176 ldrb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, r0] pop {r4, pc} _02081FE6: add r0, r2, #0x1 strb r0, [r4, r1] pop {r4, pc} _02081FEC: ldr r0, _02082018 ; =0x00000584 ldrb r2, [r4, r0] cmp r2, #0x0 beq _02082010 mov r2, #0x0 strb r2, [r4, r0] ldrb r0, [r4, r1] add r0, r0, #0x1 strb r0, [r4, r1] pop {r4, pc} _02082000: mov r1, #0x6 mov r2, #0x0 lsl r1, r1, #0x6 str r2, [r4, r1] sub r1, #0xa strb r2, [r4, r1] bl FUN_0200CAB4 _02082010: pop {r4, pc} nop _02082014: .word 0x00000176 _02082018: .word 0x00000584 thumb_func_start FUN_0208201C FUN_0208201C: ; 0x0208201C push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r0, r2, #0x0 lsl r2, r4, #0x3 add r2, r5, r2 add r2, #0xd0 ldrh r2, [r2, #0x0] add r1, r3, #0x0 bl FUN_0200B244 pop {r3-r5, pc} thumb_func_start FUN_02082034 FUN_02082034: ; 0x02082034 push {r4-r6, lr} sub sp, #0x8 add r5, r0, #0x0 add r0, r1, #0x0 add r4, r2, #0x0 add r6, r3, #0x0 bl FUN_020832E4 add r3, r0, #0x0 mov r0, #0x1 str r0, [sp, #0x0] mov r0, #0x2 str r0, [sp, #0x4] add r0, r4, #0x0 lsl r2, r3, #0x2 add r4, r5, r3 mov r3, #0x42 add r2, r5, r2 lsl r3, r3, #0x2 add r2, #0xe8 ldrb r3, [r4, r3] ldr r2, [r2, #0x0] add r1, r6, #0x0 bl FUN_0200ABB4 add sp, #0x8 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0208206C FUN_0208206C: ; 0x0208206C push {r4-r6, lr} add r5, r0, #0x0 add r0, r1, #0x0 add r4, r2, #0x0 add r6, r3, #0x0 bl FUN_020832E4 lsl r0, r0, #0x2 ldr r0, [r5, r0] bl FUN_020690E4 add r2, r0, #0x0 add r0, r4, #0x0 add r1, r6, #0x0 bl FUN_0200ACF8 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02082090 FUN_02082090: ; 0x02082090 push {r3-r5, lr} add r4, r2, #0x0 mov r2, #0x12 add r3, r0, #0x0 lsl r2, r2, #0x4 add r5, r1, #0x0 add r1, r2, #0x1 ldrb r0, [r3, r2] add r2, #0x51 ldrb r1, [r3, r1] ldrb r2, [r3, r2] bl FUN_02083228 add r2, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0200B278 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020820B8 FUN_020820B8: ; 0x020820B8 push {r3-r5, lr} add r5, r1, #0x0 ldr r1, _020820D8 ; =0x0000011F add r3, r0, #0x0 ldrb r0, [r3, r1] add r1, r1, #0x2 ldrb r1, [r3, r1] add r4, r2, #0x0 bl FUN_020832A4 add r2, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0200B2AC pop {r3-r5, pc} .balign 4 _020820D8: .word 0x0000011F thumb_func_start FUN_020820DC FUN_020820DC: ; 0x020820DC push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 mov r1, #0x13 add r6, r2, #0x0 mov r0, #0x0 add r3, r5, #0x0 lsl r1, r1, #0x4 _020820EC: ldrb r2, [r3, r1] cmp r2, #0x0 beq _020820FA add r0, r0, #0x1 add r3, #0xc cmp r0, #0x4 blt _020820EC _020820FA: bl FUN_020832DC add r1, r0, #0x0 add r0, r5, #0x0 add r2, r4, #0x0 add r3, r6, #0x0 bl FUN_02082034 pop {r4-r6, pc} thumb_func_start FUN_0208210C FUN_0208210C: ; 0x0208210C push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 mov r1, #0x13 add r6, r2, #0x0 mov r0, #0x0 add r3, r5, #0x0 lsl r1, r1, #0x4 _0208211C: ldrb r2, [r3, r1] cmp r2, #0x0 beq _0208212A add r0, r0, #0x1 add r3, #0xc cmp r0, #0x4 blt _0208211C _0208212A: bl FUN_020832DC add r1, r0, #0x0 add r0, r5, #0x0 add r2, r4, #0x0 add r3, r6, #0x0 bl FUN_0208206C pop {r4-r6, pc} thumb_func_start FUN_0208213C FUN_0208213C: ; 0x0208213C mov r0, #0x1 bx lr thumb_func_start FUN_02082140 FUN_02082140: ; 0x02082140 push {r3, lr} ldr r2, _02082154 ; =0x00000171 ldrb r0, [r0, r2] cmp r0, #0x0 beq _02082150 add r0, r1, #0x0 bl FUN_02031588 _02082150: pop {r3, pc} nop _02082154: .word 0x00000171 thumb_func_start FUN_02082158 FUN_02082158: ; 0x02082158 push {r3, lr} ldr r2, _02082178 ; =0x00000171 ldrb r0, [r0, r2] cmp r0, #0x0 bne _02082166 mov r0, #0x1 pop {r3, pc} _02082166: add r0, r1, #0x0 bl FUN_020315D8 cmp r0, #0x1 bne _02082174 mov r0, #0x1 pop {r3, pc} _02082174: mov r0, #0x0 pop {r3, pc} .balign 4 _02082178: .word 0x00000171 thumb_func_start FUN_0208217C FUN_0208217C: ; 0x0208217C ldr r2, _0208218C ; =0x00000123 mov r1, #0xc ldrb r3, [r0, r2] add r2, #0xd mul r1, r3 add r0, r0, r1 ldrb r0, [r0, r2] bx lr .balign 4 _0208218C: .word 0x00000123 thumb_func_start FUN_02082190 FUN_02082190: ; 0x02082190 push {r3, lr} mov r1, #0x13 mov r3, #0x0 lsl r1, r1, #0x4 _02082198: ldrb r2, [r0, r1] cmp r2, #0x0 bne _020821A6 add r0, r3, #0x0 bl FUN_020832DC pop {r3, pc} _020821A6: add r3, r3, #0x1 add r0, #0xc cmp r3, #0x4 blt _02082198 mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_020821B4 FUN_020821B4: ; 0x020821B4 ldr r1, _020821BC ; =0x00000123 ldr r3, _020821C0 ; =FUN_020832DC ldrb r0, [r0, r1] bx r3 .balign 4 _020821BC: .word 0x00000123 _020821C0: .word FUN_020832DC thumb_func_start FUN_020821C4 FUN_020821C4: ; 0x020821C4 push {r4, lr} add r4, r0, #0x0 add r0, r1, #0x0 bl FUN_020832E4 lsl r0, r0, #0x1 add r1, r4, r0 mov r0, #0x45 lsl r0, r0, #0x2 ldrh r0, [r1, r0] pop {r4, pc} .balign 4 thumb_func_start FUN_020821DC FUN_020821DC: ; 0x020821DC push {r4, lr} add r4, r0, #0x0 add r0, r1, #0x0 bl FUN_020832E4 add r1, r4, r0 mov r0, #0x11 lsl r0, r0, #0x4 ldrb r0, [r1, r0] pop {r4, pc} thumb_func_start FUN_020821F0 FUN_020821F0: ; 0x020821F0 push {r3, lr} ldr r1, _02082210 ; =0x00000171 ldrb r1, [r0, r1] cmp r1, #0x1 bne _020821FE mov r0, #0x1 pop {r3, pc} _020821FE: bl FUN_020832EC cmp r0, #0x1 bne _0208220A mov r0, #0x2 pop {r3, pc} _0208220A: mov r0, #0x0 pop {r3, pc} nop _02082210: .word 0x00000171 thumb_func_start FUN_02082214 FUN_02082214: ; 0x02082214 push {r4-r5} mov r4, #0x12 lsl r4, r4, #0x4 ldrb r5, [r0, r4] strh r5, [r1, #0x0] sub r1, r4, #0x1 ldrb r1, [r0, r1] strh r1, [r2, #0x0] add r1, r4, #0x1 ldrb r1, [r0, r1] strh r1, [r3, #0x0] ldr r1, _02082238 ; =0x00001998 ldrb r1, [r0, r1] ldr r0, [sp, #0x8] strh r1, [r0, #0x0] pop {r4-r5} bx lr nop _02082238: .word 0x00001998 thumb_func_start FUN_0208223C FUN_0208223C: ; 0x0208223C ldr r1, _02082244 ; =0x00000171 ldr r3, _02082248 ; =FUN_020833D4 ldrb r0, [r0, r1] bx r3 .balign 4 _02082244: .word 0x00000171 _02082248: .word FUN_020833D4 thumb_func_start FUN_0208224C FUN_0208224C: ; 0x0208224C ldr r3, _02082250 ; =FUN_02083404 bx r3 .balign 4 _02082250: .word FUN_02083404 thumb_func_start FUN_02082254 FUN_02082254: ; 0x02082254 push {r4, lr} mov r1, #0x12 add r4, r0, #0x0 lsl r1, r1, #0x4 ldrb r0, [r4, r1] sub r1, r1, #0x1 ldrb r1, [r4, r1] bl FUN_0208341C add r1, r0, #0x0 ldr r0, _02082280 ; =0x00001990 mov r2, #0x0 ldr r0, [r4, r0] bl FUN_020671BC cmp r0, #0x0 beq _0208227A mov r0, #0x1 pop {r4, pc} _0208227A: mov r0, #0x0 pop {r4, pc} nop _02082280: .word 0x00001990 thumb_func_start FUN_02082284 FUN_02082284: ; 0x02082284 push {r3-r5, lr} add r4, r1, #0x0 ldr r1, _020822EC ; =0x0000011F add r5, r2, #0x0 ldrb r2, [r0, r1] cmp r2, #0x4 bhi _020822D0 add r2, r2, r2 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _0208229E: ; jump table (using 16-bit offset) .short _020822A8 - _0208229E - 2; case 0 .short _020822B0 - _0208229E - 2; case 1 .short _020822B8 - _0208229E - 2; case 2 .short _020822C0 - _0208229E - 2; case 3 .short _020822C8 - _0208229E - 2; case 4 _020822A8: add r1, r1, #0x1 ldrb r0, [r0, r1] add r0, #0x21 b _020822D6 _020822B0: add r1, r1, #0x1 ldrb r0, [r0, r1] add r0, #0x25 b _020822D6 _020822B8: add r1, r1, #0x1 ldrb r0, [r0, r1] add r0, #0x29 b _020822D6 _020822C0: add r1, r1, #0x1 ldrb r0, [r0, r1] add r0, #0x2d b _020822D6 _020822C8: add r1, r1, #0x1 ldrb r0, [r0, r1] add r0, #0x31 b _020822D6 _020822D0: bl ErrorHandling pop {r3-r5, pc} _020822D6: lsl r0, r0, #0x18 lsr r0, r0, #0x18 mov r1, #0x3 bl FUN_0207FC5C add r2, r0, #0x0 add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_0200AD94 pop {r3-r5, pc} .balign 4 _020822EC: .word 0x0000011F thumb_func_start FUN_020822F0 FUN_020822F0: ; 0x020822F0 push {r3-r5, lr} mov r4, #0x64 add r5, r0, #0x0 add r0, r4, #0x0 add r0, #0xbf ldrb r1, [r5, r0] mov r0, #0xc mul r0, r1 add r1, r5, r0 add r0, r4, #0x0 add r0, #0xcc ldrb r0, [r1, r0] cmp r0, #0x0 beq _02082310 ldr r0, _0208243C ; =0x0000FFFF pop {r3-r5, pc} _02082310: add r0, r4, #0x0 add r0, #0xbb ldrb r0, [r5, r0] cmp r0, #0x4 bhi _02082414 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02082326: ; jump table (using 16-bit offset) .short _02082330 - _02082326 - 2; case 0 .short _0208235E - _02082326 - 2; case 1 .short _0208238C - _02082326 - 2; case 2 .short _020823BA - _02082326 - 2; case 3 .short _020823E8 - _02082326 - 2; case 4 _02082330: add r0, r4, #0x0 add r0, #0xbc ldrb r0, [r5, r0] cmp r0, #0x3 bhi _02082414 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02082346: ; jump table (using 16-bit offset) .short _0208234E - _02082346 - 2; case 0 .short _02082352 - _02082346 - 2; case 1 .short _02082356 - _02082346 - 2; case 2 .short _0208235A - _02082346 - 2; case 3 _0208234E: mov r4, #0x49 b _02082414 _02082352: mov r4, #0x4e b _02082414 _02082356: mov r4, #0x53 b _02082414 _0208235A: mov r4, #0x58 b _02082414 _0208235E: add r0, r4, #0x0 add r0, #0xbc ldrb r0, [r5, r0] cmp r0, #0x3 bhi _02082414 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02082374: ; jump table (using 16-bit offset) .short _0208237C - _02082374 - 2; case 0 .short _02082380 - _02082374 - 2; case 1 .short _02082384 - _02082374 - 2; case 2 .short _02082388 - _02082374 - 2; case 3 _0208237C: mov r4, #0x4a b _02082414 _02082380: mov r4, #0x4f b _02082414 _02082384: mov r4, #0x54 b _02082414 _02082388: mov r4, #0x59 b _02082414 _0208238C: add r0, r4, #0x0 add r0, #0xbc ldrb r0, [r5, r0] cmp r0, #0x3 bhi _02082414 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _020823A2: ; jump table (using 16-bit offset) .short _020823AA - _020823A2 - 2; case 0 .short _020823AE - _020823A2 - 2; case 1 .short _020823B2 - _020823A2 - 2; case 2 .short _020823B6 - _020823A2 - 2; case 3 _020823AA: mov r4, #0x48 b _02082414 _020823AE: mov r4, #0x4d b _02082414 _020823B2: mov r4, #0x52 b _02082414 _020823B6: mov r4, #0x57 b _02082414 _020823BA: add r0, r4, #0x0 add r0, #0xbc ldrb r0, [r5, r0] cmp r0, #0x3 bhi _02082414 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _020823D0: ; jump table (using 16-bit offset) .short _020823D8 - _020823D0 - 2; case 0 .short _020823DC - _020823D0 - 2; case 1 .short _020823E0 - _020823D0 - 2; case 2 .short _020823E4 - _020823D0 - 2; case 3 _020823D8: mov r4, #0x4c b _02082414 _020823DC: mov r4, #0x51 b _02082414 _020823E0: mov r4, #0x56 b _02082414 _020823E4: mov r4, #0x5b b _02082414 _020823E8: add r0, r4, #0x0 add r0, #0xbc ldrb r0, [r5, r0] cmp r0, #0x3 bhi _02082414 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _020823FE: ; jump table (using 16-bit offset) .short _02082406 - _020823FE - 2; case 0 .short _0208240A - _020823FE - 2; case 1 .short _0208240E - _020823FE - 2; case 2 .short _02082412 - _020823FE - 2; case 3 _02082406: mov r4, #0x4b b _02082414 _0208240A: mov r4, #0x50 b _02082414 _0208240E: mov r4, #0x55 b _02082414 _02082412: mov r4, #0x5a _02082414: cmp r4, #0x64 bne _0208241C bl ErrorHandling _0208241C: ldr r0, _02082440 ; =0x0000198C ldr r0, [r5, r0] bl FUN_02027E24 bl FUN_0202708C add r1, r4, #0x0 mov r2, #0x1 bl FUN_020270D8 cmp r0, #0x0 bne _02082438 ldr r0, _0208243C ; =0x0000FFFF pop {r3-r5, pc} _02082438: add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 _0208243C: .word 0x0000FFFF _02082440: .word 0x0000198C thumb_func_start FUN_02082444 FUN_02082444: ; 0x02082444 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, _020824F0 ; =0x000019BC add r6, r1, #0x0 ldr r0, [r5, r0] cmp r0, #0x0 beq _02082456 bl ErrorHandling _02082456: mov r0, #0x4 mov r1, #0x10 bl FUN_020169D8 mov r1, #0x0 mov r2, #0x10 add r4, r0, #0x0 blx MI_CpuFill8 add r0, r6, #0x0 bl FUN_020832E4 strb r0, [r4, #0xc] ldrb r0, [r4, #0xc] mov r1, #0x43 lsl r1, r1, #0x2 add r0, r5, r0 ldrb r2, [r0, r1] mov r0, #0x1 and r0, r2 add r2, r1, #0x0 add r2, #0x65 ldrb r2, [r5, r2] cmp r2, #0x1 bne _02082494 mov r1, #0x6 ldr r2, _020824F4 ; =0x020FBBAC mul r1, r0 add r0, r2, r1 str r0, [r4, #0x4] b _020824DC _02082494: add r1, #0x14 ldrb r1, [r5, r1] cmp r1, #0x3 bhi _020824D2 add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _020824A8: ; jump table (using 16-bit offset) .short _020824B0 - _020824A8 - 2; case 0 .short _020824BC - _020824A8 - 2; case 1 .short _020824C6 - _020824A8 - 2; case 2 .short _020824D2 - _020824A8 - 2; case 3 _020824B0: lsl r1, r0, #0x1 ldr r2, _020824F8 ; =0x020FBB90 add r0, r0, r1 add r0, r2, r0 str r0, [r4, #0x4] b _020824DC _020824BC: ldr r1, _020824FC ; =0x020FBB98 lsl r0, r0, #0x2 add r0, r1, r0 str r0, [r4, #0x4] b _020824DC _020824C6: lsl r1, r0, #0x2 ldr r2, _02082500 ; =0x020FBBA0 add r0, r0, r1 add r0, r2, r0 str r0, [r4, #0x4] b _020824DC _020824D2: mov r1, #0x6 ldr r2, _020824F4 ; =0x020FBBAC mul r1, r0 add r0, r2, r1 str r0, [r4, #0x4] _020824DC: ldr r0, _02082504 ; =FUN_0208251C add r1, r5, #0x0 mov r2, #0x64 bl FUN_0200CA44 str r0, [r4, #0x0] ldr r0, _020824F0 ; =0x000019BC str r4, [r5, r0] pop {r4-r6, pc} nop _020824F0: .word 0x000019BC _020824F4: .word 0x020FBBAC _020824F8: .word 0x020FBB90 _020824FC: .word 0x020FBB98 _02082500: .word 0x020FBBA0 _02082504: .word FUN_0208251C thumb_func_start FUN_02082508 FUN_02082508: ; 0x02082508 ldr r1, _02082518 ; =0x000019BC ldr r0, [r0, r1] cmp r0, #0x0 bne _02082514 mov r0, #0x1 bx lr _02082514: mov r0, #0x0 bx lr .balign 4 _02082518: .word 0x000019BC thumb_func_start FUN_0208251C FUN_0208251C: ; 0x0208251C push {r3-r6, lr} sub sp, #0x4 add r6, r0, #0x0 ldr r0, _02082598 ; =0x000019BC add r5, r1, #0x0 ldr r4, [r5, r0] mov r0, #0x1 bl FUN_0200A344 cmp r0, #0x0 beq _02082594 ldrb r0, [r4, #0xb] cmp r0, #0x0 bne _02082580 mov r0, #0x8 ldrsh r1, [r4, r0] add r1, r1, #0x1 strh r1, [r4, #0x8] ldrsh r2, [r4, r0] ldrb r0, [r4, #0xa] ldr r1, [r4, #0x4] ldrb r0, [r1, r0] cmp r2, r0 ble _02082594 mov r0, #0x1 str r0, [sp, #0x0] mov r0, #0x6 mov r1, #0x0 mov r2, #0x4 mov r3, #0x3f bl FUN_0200A208 ldr r0, _0208259C ; =0x000005F8 bl FUN_020054C8 ldrb r0, [r4, #0xa] add r0, r0, #0x1 strb r0, [r4, #0xa] mov r0, #0x0 strh r0, [r4, #0x8] ldrb r0, [r4, #0xa] ldr r1, [r4, #0x4] ldrb r0, [r1, r0] cmp r0, #0xff bne _02082594 ldrb r0, [r4, #0xb] add sp, #0x4 add r0, r0, #0x1 strb r0, [r4, #0xb] pop {r3-r6, pc} _02082580: ldr r0, _02082598 ; =0x000019BC ldr r0, [r5, r0] bl FUN_02016A18 ldr r0, _02082598 ; =0x000019BC mov r1, #0x0 str r1, [r5, r0] add r0, r6, #0x0 bl FUN_0200CAB4 _02082594: add sp, #0x4 pop {r3-r6, pc} .balign 4 _02082598: .word 0x000019BC _0208259C: .word 0x000005F8 thumb_func_start FUN_020825A0 FUN_020825A0: ; 0x020825A0 push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 mov r0, #0x13 str r2, [sp, #0x4] ldr r6, [sp, #0x20] ldr r7, [sp, #0x24] str r1, [sp, #0x0] str r3, [sp, #0x8] mov r4, #0x0 add r2, r5, #0x0 lsl r0, r0, #0x4 _020825B8: ldrb r1, [r2, r0] cmp r1, #0x0 beq _020825C6 add r4, r4, #0x1 add r2, #0xc cmp r4, #0x4 blt _020825B8 _020825C6: add r0, r4, #0x0 bl FUN_020832DC ldr r1, [sp, #0x0] str r0, [r1, #0x0] ldr r1, _02082628 ; =0x00000171 ldr r0, [sp, #0x4] ldrb r2, [r5, r1] sub r1, #0x4a str r2, [r0, #0x0] ldrb r0, [r5, r1] cmp r4, r0 blt _020825E6 mov r1, #0x1 ldr r0, [sp, #0x8] b _020825EA _020825E6: ldr r0, [sp, #0x8] mov r1, #0x0 _020825EA: str r1, [r0, #0x0] mov r0, #0x0 str r0, [r6, #0x0] str r0, [r7, #0x0] ldr r0, _0208262C ; =0x00000121 ldrb r0, [r5, r0] cmp r0, #0x8 bhi _02082624 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02082606: ; jump table (using 16-bit offset) .short _02082624 - _02082606 - 2; case 0 .short _02082624 - _02082606 - 2; case 1 .short _02082624 - _02082606 - 2; case 2 .short _02082618 - _02082606 - 2; case 3 .short _02082620 - _02082606 - 2; case 4 .short _02082618 - _02082606 - 2; case 5 .short _02082620 - _02082606 - 2; case 6 .short _02082618 - _02082606 - 2; case 7 .short _02082620 - _02082606 - 2; case 8 _02082618: mov r0, #0x1 add sp, #0xc str r0, [r6, #0x0] pop {r4-r7, pc} _02082620: mov r0, #0x1 str r0, [r7, #0x0] _02082624: add sp, #0xc pop {r4-r7, pc} .balign 4 _02082628: .word 0x00000171 _0208262C: .word 0x00000121 thumb_func_start FUN_02082630 FUN_02082630: ; 0x02082630 push {r4-r7, lr} sub sp, #0xc add r4, r0, #0x0 ldr r0, _02082840 ; =0x00000121 str r2, [sp, #0x4] ldrb r0, [r4, r0] add r6, r3, #0x0 mov r5, #0x0 cmp r0, #0x8 bhi _02082666 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02082650: ; jump table (using 16-bit offset) .short _02082666 - _02082650 - 2; case 0 .short _02082666 - _02082650 - 2; case 1 .short _02082666 - _02082650 - 2; case 2 .short _02082662 - _02082650 - 2; case 3 .short _02082662 - _02082650 - 2; case 4 .short _02082662 - _02082650 - 2; case 5 .short _02082662 - _02082650 - 2; case 6 .short _02082662 - _02082650 - 2; case 7 .short _02082662 - _02082650 - 2; case 8 _02082662: add sp, #0xc pop {r4-r7, pc} _02082666: ldr r2, _02082844 ; =0x00000171 ldrb r0, [r4, r2] cmp r0, #0x0 ldr r0, _02082848 ; =0x0000198C beq _02082672 b _02082774 _02082672: ldr r0, [r4, r0] bl FUN_020462AC add r6, r0, #0x0 ldr r0, _02082840 ; =0x00000121 ldrb r1, [r4, r0] cmp r1, #0x2 bne _020826AC sub r0, r0, #0x1 ldrb r0, [r4, r0] cmp r0, #0x3 blo _020826AC add r0, r4, #0x0 bl FUN_0208217C cmp r0, #0x0 bne _020826AC ldr r1, _0208284C ; =0x0000011F add r0, r6, #0x0 ldrb r1, [r4, r1] bl FUN_0205EE60 cmp r0, #0x0 bne _020826AC ldr r1, _0208284C ; =0x0000011F add r0, r6, #0x0 ldrb r1, [r4, r1] bl FUN_0205EE08 _020826AC: add r0, r4, #0x0 bl FUN_0208217C cmp r0, #0x0 bne _020826EA mov r1, #0x1 add r0, sp, #0x8 strb r1, [r0, #0x0] mov r1, #0x12 lsl r1, r1, #0x4 ldrb r0, [r4, r1] sub r1, r1, #0x1 ldrb r1, [r4, r1] bl FUN_0208341C add r6, r0, #0x0 ldr r0, _02082850 ; =0x00001990 add r1, r6, #0x0 ldr r0, [r4, r0] mov r2, #0x0 bl FUN_020671BC cmp r0, #0x0 bne _020826DE mov r5, #0x1 _020826DE: ldr r0, _02082850 ; =0x00001990 add r1, r6, #0x0 ldr r0, [r4, r0] add r2, sp, #0x8 bl FUN_02067830 _020826EA: ldr r0, _02082848 ; =0x0000198C ldr r0, [r4, r0] bl FUN_02022504 ldr r3, _02082854 ; =0x00000123 mov r1, #0xc ldrb r2, [r4, r3] mul r1, r2 add r2, r4, r1 add r1, r3, #0x0 add r1, #0xd ldrb r1, [r2, r1] sub r2, r3, #0x4 sub r3, r3, #0x3 add r1, r1, #0x1 str r1, [sp, #0x0] ldr r1, _02082850 ; =0x00001990 ldrb r2, [r4, r2] ldrb r3, [r4, r3] ldr r1, [r4, r1] bl FUN_02060F10 ldr r0, _02082848 ; =0x0000198C ldr r0, [r4, r0] bl FUN_02029FC8 mov r1, #0x3f add r6, r0, #0x0 bl FUN_0202A0E8 add r0, r4, #0x0 bl FUN_0208217C cmp r0, #0x0 bne _02082740 add r0, r6, #0x0 mov r1, #0x41 bl FUN_0202A0E8 add r0, r6, #0x0 mov r1, #0xd bl FUN_0202A170 _02082740: cmp r5, #0x1 bne _0208274C add r0, r6, #0x0 mov r1, #0x43 bl FUN_0202A0E8 _0208274C: ldr r0, _02082848 ; =0x0000198C ldr r0, [r4, r0] bl FUN_02024DA0 add r7, r0, #0x0 ldr r0, _02082858 ; =0x00000127 ldrb r6, [r4, r0] cmp r6, #0x4 bge _020827E8 lsl r0, r6, #0x2 add r5, r4, r0 _02082762: ldr r1, [r5, #0x0] add r0, r7, #0x0 bl FUN_0202498C add r6, r6, #0x1 add r5, r5, #0x4 cmp r6, #0x4 blt _02082762 b _020827E8 _02082774: add r3, r2, #0x0 sub r3, #0x4e ldrb r5, [r4, r3] add r1, r2, #0x0 mov r3, #0xc mul r3, r5 sub r1, #0x52 add r3, r4, r3 sub r2, #0x41 ldrb r1, [r4, r1] ldrb r2, [r3, r2] ldr r0, [r4, r0] bl FUN_0202C108 ldr r0, _02082848 ; =0x0000198C ldr r0, [r4, r0] bl FUN_02029FC8 mov r1, #0x40 add r5, r0, #0x0 bl FUN_0202A0E8 add r0, r4, #0x0 bl FUN_0208217C cmp r0, #0x0 bne _020827BA add r0, r5, #0x0 mov r1, #0x42 bl FUN_0202A0E8 add r0, r5, #0x0 mov r1, #0x13 bl FUN_0202A170 _020827BA: ldr r1, _02082854 ; =0x00000123 mov r0, #0xc ldrb r2, [r4, r1] add r1, #0xd mul r0, r2 add r0, r4, r0 ldrb r0, [r0, r1] mov r1, #0xb add r0, r0, #0x1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_02029500 add r5, r0, #0x0 ldr r0, _02082848 ; =0x0000198C ldr r0, [r4, r0] bl FUN_020289A4 add r0, r6, #0x0 add r1, r5, #0x0 mov r2, #0x4 bl FUN_02028AD4 _020827E8: add r0, r4, #0x0 bl FUN_0208217C cmp r0, #0x0 bne _02082820 ldr r0, _02082848 ; =0x0000198C ldr r0, [r4, r0] bl FUN_02027E24 ldr r1, _0208284C ; =0x0000011F ldrb r1, [r4, r1] bl FUN_02027044 add r5, r0, #0x0 bl FUN_02027740 ldr r1, _02082854 ; =0x00000123 add r0, r5, #0x0 ldrb r1, [r4, r1] lsl r1, r1, #0x2 add r1, r4, r1 add r1, #0xf8 ldr r1, [r1, #0x0] bl FUN_020278DC add r0, r5, #0x0 bl FUN_02027710 _02082820: add r0, r4, #0x0 bl FUN_0208217C cmp r0, #0x0 bne _0208283A ldr r0, _02082850 ; =0x00001990 ldr r2, [sp, #0x4] ldr r0, [r4, r0] lsl r2, r2, #0x10 mov r1, #0x9 lsr r2, r2, #0x10 bl FUN_020688E8 _0208283A: add sp, #0xc pop {r4-r7, pc} nop _02082840: .word 0x00000121 _02082844: .word 0x00000171 _02082848: .word 0x0000198C _0208284C: .word 0x0000011F _02082850: .word 0x00001990 _02082854: .word 0x00000123 _02082858: .word 0x00000127 thumb_func_start FUN_0208285C FUN_0208285C: ; 0x0208285C push {r4, lr} bl FUN_020126D8 add r4, r0, #0x0 bl FUN_0201B9D4 add r0, #0xa mul r0, r4 lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_0201B9E0 pop {r4, pc} .balign 4 thumb_func_start FUN_02082878 FUN_02082878: ; 0x02082878 ldr r3, _0208287C ; =FUN_0201B9EC bx r3 .balign 4 _0208287C: .word FUN_0201B9EC thumb_func_start FUN_02082880 FUN_02082880: ; 0x02082880 push {r4, lr} add r4, r1, #0x0 bl FUN_0201BA10 str r0, [r4, #0x0] lsr r0, r0, #0x10 lsl r0, r0, #0x10 lsr r0, r0, #0x10 pop {r4, pc} .balign 4 thumb_func_start FUN_02082894 FUN_02082894: ; 0x02082894 push {r4-r5} mov r5, #0x42 add r3, r0, r1 lsl r5, r5, #0x2 ldrb r4, [r3, r5] lsl r1, r1, #0x1 add r0, r0, r1 strb r4, [r2, #0x0] add r4, r5, #0x4 ldrb r4, [r3, r4] strb r4, [r2, #0x1] add r4, r5, #0x0 add r4, #0x8 ldrb r3, [r3, r4] add r5, #0xc strb r3, [r2, #0x2] ldrh r0, [r0, r5] strh r0, [r2, #0x4] pop {r4-r5} bx lr thumb_func_start FUN_020828BC FUN_020828BC: ; 0x020828BC ldr r2, _020828E0 ; =0x00000171 ldrb r1, [r0, r2] cmp r1, #0x0 beq _020828D6 cmp r1, #0x1 bne _020828DA add r1, r2, #0x0 sub r1, #0x55 sub r2, #0x4e ldrb r1, [r0, r1] ldrb r0, [r0, r2] cmp r1, r0 bne _020828DA _020828D6: mov r0, #0x1 bx lr _020828DA: mov r0, #0x0 bx lr nop _020828E0: .word 0x00000171 thumb_func_start FUN_020828E4 FUN_020828E4: ; 0x020828E4 push {r3-r7, lr} sub sp, #0x58 str r0, [sp, #0x4] ldr r0, [sp, #0x70] mov r6, #0x0 str r0, [sp, #0x70] ldr r0, [sp, #0x74] add r5, r1, #0x0 add r4, r3, #0x0 str r2, [sp, #0x8] str r6, [sp, #0x20] str r6, [sp, #0x18] str r6, [sp, #0x1c] cmp r0, #0x8 bhi _0208292A add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0208290E: ; jump table (using 16-bit offset) .short _0208292A - _0208290E - 2; case 0 .short _0208292A - _0208290E - 2; case 1 .short _0208292A - _0208290E - 2; case 2 .short _02082920 - _0208290E - 2; case 3 .short _02082926 - _0208290E - 2; case 4 .short _02082920 - _0208290E - 2; case 5 .short _02082926 - _0208290E - 2; case 6 .short _02082920 - _0208290E - 2; case 7 .short _02082926 - _0208290E - 2; case 8 _02082920: mov r0, #0x1 str r0, [sp, #0x18] b _0208292A _02082926: mov r0, #0x1 str r0, [sp, #0x1c] _0208292A: mov r0, #0x1 mov r1, #0x0 str r0, [sp, #0x0] mov r0, #0x5a add r2, r1, #0x0 add r3, r5, #0x0 bl FUN_02006C98 str r0, [sp, #0x14] mov r0, #0x5a mov r1, #0x0 bl FUN_020065A4 mov r1, #0x30 blx _u32_div_f str r0, [sp, #0x24] ldr r1, [sp, #0x24] add r0, r5, #0x0 add r1, r1, #0x1 bl FUN_020169D8 add r5, r0, #0x0 ldr r0, [sp, #0x78] cmp r0, #0x1 bne _02082968 ldr r0, [sp, #0x7c] cmp r0, #0x1 bne _02082968 mov r0, #0x1 str r0, [sp, #0x20] _02082968: ldr r0, [sp, #0x24] mov r2, #0x0 cmp r0, #0x0 ble _02082A1A ldr r3, [sp, #0x14] _02082972: ldrh r7, [r3, #0x20] lsl r0, r7, #0x1d lsr r1, r0, #0x1d ldr r0, [sp, #0x70] cmp r0, r1 bne _02082A10 ldr r0, [sp, #0x20] cmp r0, #0x1 bne _0208298E lsl r0, r7, #0x14 lsr r0, r0, #0x1e cmp r0, #0x1 beq _02082A10 b _0208299A _0208298E: lsl r0, r7, #0x14 lsr r0, r0, #0x1e cmp r0, #0x2 beq _02082A10 cmp r0, #0x3 beq _02082A10 _0208299A: ldr r0, [sp, #0x18] cmp r0, #0x1 bne _020829AA ldrh r0, [r3, #0x20] lsl r0, r0, #0x16 lsr r0, r0, #0x1f beq _02082A10 b _020829CA _020829AA: ldr r0, [sp, #0x1c] cmp r0, #0x1 ldrh r0, [r3, #0x20] bne _020829BA lsl r0, r0, #0x17 lsr r0, r0, #0x1f beq _02082A10 b _020829CA _020829BA: lsl r1, r0, #0x16 lsr r1, r1, #0x1f cmp r1, #0x1 beq _02082A10 lsl r0, r0, #0x17 lsr r0, r0, #0x1f cmp r0, #0x1 beq _02082A10 _020829CA: cmp r4, #0x0 bne _020829D6 ldrh r0, [r3, #0x20] lsl r0, r0, #0x1c lsr r0, r0, #0x1f bne _02082A06 _020829D6: cmp r4, #0x1 bne _020829E2 ldrh r0, [r3, #0x20] lsl r0, r0, #0x1b lsr r0, r0, #0x1f bne _02082A06 _020829E2: cmp r4, #0x2 bne _020829EE ldrh r0, [r3, #0x20] lsl r0, r0, #0x1a lsr r0, r0, #0x1f bne _02082A06 _020829EE: cmp r4, #0x3 bne _020829FA ldrh r0, [r3, #0x20] lsl r0, r0, #0x19 lsr r0, r0, #0x1f bne _02082A06 _020829FA: cmp r4, #0x4 bne _02082A10 ldrh r0, [r3, #0x20] lsl r0, r0, #0x18 lsr r0, r0, #0x1f beq _02082A10 _02082A06: add r1, r6, #0x1 add r0, r6, #0x0 lsl r1, r1, #0x18 lsr r6, r1, #0x18 strb r2, [r5, r0] _02082A10: ldr r0, [sp, #0x24] add r2, r2, #0x1 add r3, #0x30 cmp r2, r0 blt _02082972 _02082A1A: mov r0, #0xff strb r0, [r5, r6] ldr r0, [sp, #0x1c] cmp r0, #0x0 beq _02082A26 b _02082B4E _02082A26: ldr r0, [sp, #0x8] cmp r6, r0 bge _02082A30 bl ErrorHandling _02082A30: mov r0, #0x0 str r0, [sp, #0x10] cmp r6, #0x0 ble _02082A5A mov r2, #0x30 _02082A3A: ldrb r1, [r5, r0] add r3, r1, #0x0 ldr r1, [sp, #0x14] mul r3, r2 add r1, r1, r3 ldrh r1, [r1, #0x20] lsl r1, r1, #0x14 lsr r1, r1, #0x1e cmp r1, #0x3 bne _02082A54 ldr r1, [sp, #0x10] add r1, r1, #0x1 str r1, [sp, #0x10] _02082A54: add r0, r0, #0x1 cmp r0, r6 blt _02082A3A _02082A5A: ldr r0, [sp, #0x10] cmp r0, #0x0 ble _02082AA2 ldr r0, [sp, #0x4] bl FUN_02082878 ldr r1, [sp, #0x10] blx _s32_div_f mov r3, #0x0 cmp r6, #0x0 ble _02082AA2 mov r0, #0x30 _02082A74: ldrb r4, [r5, r3] add r2, r4, #0x0 ldr r4, [sp, #0x14] mul r2, r0 add r2, r4, r2 ldrh r4, [r2, #0x20] lsl r4, r4, #0x14 lsr r4, r4, #0x1e cmp r4, #0x3 bne _02082A9C cmp r1, #0x0 bne _02082A9A add r4, sp, #0x28 mov r3, #0x6 _02082A90: ldmia r2!, {r0-r1} stmia r4!, {r0-r1} sub r3, r3, #0x1 bne _02082A90 b _02082AA2 _02082A9A: sub r1, r1, #0x1 _02082A9C: add r3, r3, #0x1 cmp r3, r6 blt _02082A74 _02082AA2: ldr r0, [sp, #0x8] mov r1, #0x4 sub r4, r1, r0 add r0, r4, #0x0 str r4, [sp, #0xc] cmp r0, #0x4 bge _02082B16 _02082AB0: ldr r0, [sp, #0x4] bl FUN_02082878 add r1, r6, #0x0 blx _s32_div_f lsl r0, r1, #0x10 lsr r2, r0, #0x10 ldrb r3, [r5, r2] mov r0, #0x30 add r1, r3, #0x0 ldr r3, [sp, #0x14] mul r1, r0 add r7, r3, r1 ldrh r1, [r7, #0x20] lsl r1, r1, #0x14 lsr r1, r1, #0x1e cmp r1, #0x3 bne _02082ADA sub r4, r4, #0x1 b _02082B10 _02082ADA: add r1, r4, #0x0 mul r1, r0 ldr r0, [sp, #0x4] add r3, r0, r1 mov r0, #0x6 add r3, #0x10 mov r12, r0 _02082AE8: ldmia r7!, {r0-r1} stmia r3!, {r0-r1} mov r0, r12 sub r0, r0, #0x1 mov r12, r0 bne _02082AE8 ldrb r1, [r5, r2] add r0, r5, r2 cmp r1, #0xff beq _02082B0A _02082AFC: ldrb r1, [r0, #0x1] add r2, r2, #0x1 strb r1, [r0, #0x0] ldrb r1, [r5, r2] add r0, r5, r2 cmp r1, #0xff bne _02082AFC _02082B0A: sub r0, r6, #0x1 lsl r0, r0, #0x18 lsr r6, r0, #0x18 _02082B10: add r4, r4, #0x1 cmp r4, #0x4 blt _02082AB0 _02082B16: ldr r0, [sp, #0x10] cmp r0, #0x0 ble _02082B7E ldr r0, [sp, #0xc] lsl r0, r0, #0x10 lsr r4, r0, #0x10 ldr r0, [sp, #0x4] bl FUN_02082878 ldr r1, [sp, #0x8] blx _s32_div_f add r0, r4, r1 lsl r0, r0, #0x10 lsr r2, r0, #0x10 add r1, r2, #0x0 mov r0, #0x30 mul r1, r0 ldr r0, [sp, #0x4] add r4, sp, #0x28 add r3, r0, r1 add r3, #0x10 mov r2, #0x6 _02082B44: ldmia r4!, {r0-r1} stmia r3!, {r0-r1} sub r2, r2, #0x1 bne _02082B44 b _02082B7E _02082B4E: cmp r6, #0x4 bhs _02082B56 bl ErrorHandling _02082B56: mov r6, #0x0 mov r7, #0x30 _02082B5A: ldrb r0, [r5, r6] ldr r3, [sp, #0x4] mov r2, #0x6 add r1, r0, #0x0 ldr r0, [sp, #0x14] mul r1, r7 add r4, r0, r1 add r3, #0x10 _02082B6A: ldmia r4!, {r0-r1} stmia r3!, {r0-r1} sub r2, r2, #0x1 bne _02082B6A ldr r0, [sp, #0x4] add r6, r6, #0x1 add r0, #0x30 str r0, [sp, #0x4] cmp r6, #0x4 blt _02082B5A _02082B7E: add r0, r5, #0x0 bl FUN_02016A18 ldr r0, [sp, #0x14] bl FUN_02016A18 add sp, #0x58 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02082B90 FUN_02082B90: ; 0x02082B90 push {r3-r7, lr} sub sp, #0x18 str r0, [sp, #0x8] mov r0, #0x1 add r3, r1, #0x0 str r0, [sp, #0x0] mov r0, #0x5a mov r1, #0x2 mov r2, #0x0 bl FUN_02006C98 str r0, [sp, #0x14] ldr r1, _02082D10 ; =0x00000121 ldr r0, [sp, #0x8] ldrb r0, [r0, r1] cmp r0, #0x4 beq _02082BBA cmp r0, #0x6 beq _02082BBA cmp r0, #0x8 bne _02082BC0 _02082BBA: mov r0, #0x0 str r0, [sp, #0xc] b _02082BC8 _02082BC0: ldr r0, [sp, #0x8] add r1, r1, #0x6 ldrb r0, [r0, r1] str r0, [sp, #0xc] _02082BC8: ldr r0, [sp, #0xc] cmp r0, #0x4 blt _02082BD0 b _02082D06 _02082BD0: mov r1, #0x30 mul r1, r0 ldr r0, [sp, #0x8] add r7, r0, r1 ldr r0, [sp, #0xc] lsl r1, r0, #0x2 ldr r0, [sp, #0x8] add r6, r0, r1 _02082BE0: ldr r1, _02082D14 ; =0x00000122 ldr r0, [sp, #0x8] ldrb r0, [r0, r1] cmp r0, #0xb bhi _02082C6E add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02082BF6: ; jump table (using 16-bit offset) .short _02082C0E - _02082BF6 - 2; case 0 .short _02082C16 - _02082BF6 - 2; case 1 .short _02082C1E - _02082BF6 - 2; case 2 .short _02082C26 - _02082BF6 - 2; case 3 .short _02082C2E - _02082BF6 - 2; case 4 .short _02082C36 - _02082BF6 - 2; case 5 .short _02082C3E - _02082BF6 - 2; case 6 .short _02082C46 - _02082BF6 - 2; case 7 .short _02082C4E - _02082BF6 - 2; case 8 .short _02082C56 - _02082BF6 - 2; case 9 .short _02082C5E - _02082BF6 - 2; case 10 .short _02082C66 - _02082BF6 - 2; case 11 _02082C0E: add r0, r7, #0x0 add r0, #0x32 ldrb r2, [r0, #0x0] b _02082C74 _02082C16: add r0, r7, #0x0 add r0, #0x33 ldrb r2, [r0, #0x0] b _02082C74 _02082C1E: add r0, r7, #0x0 add r0, #0x34 ldrb r2, [r0, #0x0] b _02082C74 _02082C26: add r0, r7, #0x0 add r0, #0x35 ldrb r2, [r0, #0x0] b _02082C74 _02082C2E: add r0, r7, #0x0 add r0, #0x36 ldrb r2, [r0, #0x0] b _02082C74 _02082C36: add r0, r7, #0x0 add r0, #0x37 ldrb r2, [r0, #0x0] b _02082C74 _02082C3E: add r0, r7, #0x0 add r0, #0x38 ldrb r2, [r0, #0x0] b _02082C74 _02082C46: add r0, r7, #0x0 add r0, #0x39 ldrb r2, [r0, #0x0] b _02082C74 _02082C4E: add r0, r7, #0x0 add r0, #0x3a ldrb r2, [r0, #0x0] b _02082C74 _02082C56: add r0, r7, #0x0 add r0, #0x3b ldrb r2, [r0, #0x0] b _02082C74 _02082C5E: add r0, r7, #0x0 add r0, #0x3c ldrb r2, [r0, #0x0] b _02082C74 _02082C66: add r0, r7, #0x0 add r0, #0x3d ldrb r2, [r0, #0x0] b _02082C74 _02082C6E: bl ErrorHandling mov r2, #0x0 _02082C74: mov r0, #0x54 add r1, r2, #0x0 mul r1, r0 ldr r0, [sp, #0x14] add r0, r0, r1 str r0, [sp, #0x10] add r0, r6, #0x0 add r0, #0xf8 ldr r0, [r0, #0x0] bl FUN_02027740 add r0, r6, #0x0 add r0, #0xf8 ldr r2, [sp, #0x10] mov r3, #0x51 ldrsb r2, [r2, r3] ldr r0, [r0, #0x0] ldr r1, [r6, #0x0] bl FUN_02027914 ldr r0, [sp, #0x10] mov r5, #0x0 add r0, #0x50 ldrb r0, [r0, #0x0] cmp r0, #0x0 ble _02082CD2 ldr r4, [sp, #0x10] _02082CAA: ldrb r0, [r4, #0x2] add r1, r5, #0x0 str r0, [sp, #0x0] mov r0, #0x3 ldrsb r0, [r4, r0] str r0, [sp, #0x4] add r0, r6, #0x0 add r0, #0xf8 ldrb r2, [r4, #0x0] ldrb r3, [r4, #0x1] ldr r0, [r0, #0x0] bl FUN_02027964 ldr r0, [sp, #0x10] add r5, r5, #0x1 add r0, #0x50 ldrb r0, [r0, #0x0] add r4, r4, #0x4 cmp r5, r0 blt _02082CAA _02082CD2: ldr r1, [sp, #0x10] add r0, r6, #0x0 add r1, #0x52 add r0, #0xf8 str r1, [sp, #0x10] ldrb r1, [r1, #0x0] ldr r0, [r0, #0x0] bl FUN_0202787C mov r2, #0x12 add r0, r6, #0x0 add r0, #0xf8 ldr r1, [sp, #0x8] lsl r2, r2, #0x4 ldrb r1, [r1, r2] ldr r0, [r0, #0x0] bl FUN_020278AC ldr r0, [sp, #0xc] add r7, #0x30 add r0, r0, #0x1 add r6, r6, #0x4 str r0, [sp, #0xc] cmp r0, #0x4 bge _02082D06 b _02082BE0 _02082D06: ldr r0, [sp, #0x14] bl FUN_02016A18 add sp, #0x18 pop {r3-r7, pc} .balign 4 _02082D10: .word 0x00000121 _02082D14: .word 0x00000122 thumb_func_start FUN_02082D18 FUN_02082D18: ; 0x02082D18 push {r3-r7, lr} add r6, r0, #0x0 mov r7, #0x12 mov r4, #0x0 add r5, r6, #0x0 lsl r7, r7, #0x4 _02082D24: add r0, r5, #0x0 add r0, #0xf8 ldr r0, [r0, #0x0] bl FUN_02027740 add r0, r5, #0x0 add r0, #0xf8 mov r2, #0x0 ldr r0, [r0, #0x0] ldr r1, [r5, #0x0] mvn r2, r2 bl FUN_02027914 add r0, r5, #0x0 add r0, #0xf8 ldr r0, [r0, #0x0] mov r1, #0x0 bl FUN_0202787C add r0, r5, #0x0 add r0, #0xf8 ldrb r1, [r6, r7] ldr r0, [r0, #0x0] bl FUN_020278AC add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, #0x4 blt _02082D24 pop {r3-r7, pc} thumb_func_start FUN_02082D60 FUN_02082D60: ; 0x02082D60 push {r3-r7, lr} sub sp, #0x20 add r7, r0, #0x0 add r6, r1, #0x0 ldrh r1, [r7, #0x20] str r2, [sp, #0x10] ldrh r0, [r7, #0x14] lsl r1, r1, #0x12 lsr r1, r1, #0x1e lsl r1, r1, #0x18 lsr r1, r1, #0x18 mov r2, #0x0 bl FUN_02066E74 mov r1, #0x1 str r1, [sp, #0x0] str r0, [sp, #0x4] mov r0, #0x2 str r0, [sp, #0x8] ldr r0, _02082E60 ; =0x0F0F0F0F mov r2, #0xa str r0, [sp, #0xc] ldrh r1, [r7, #0x14] add r0, r6, #0x0 mov r3, #0x20 bl FUN_02066ACC mov r4, #0x0 add r5, r7, #0x0 _02082D9A: ldrh r1, [r5, #0xc] add r0, sp, #0x18 add r2, sp, #0x1c strh r1, [r0, #0x6] add r1, r4, #0x0 add r0, r6, #0x0 add r1, #0x36 add r2, #0x2 bl FUN_02067830 add r4, r4, #0x1 add r5, r5, #0x2 cmp r4, #0x4 blt _02082D9A ldr r3, [sp, #0x10] mov r0, #0x1 mov r1, #0x1a mov r2, #0xc0 bl FUN_0200A86C ldrh r1, [r7, #0x16] add r4, r0, #0x0 bl FUN_0200A914 add r5, r0, #0x0 ldrh r1, [r7, #0x18] add r0, r4, #0x0 bl FUN_0200A914 str r0, [sp, #0x14] add r0, r6, #0x0 mov r1, #0x76 add r2, r5, #0x0 bl FUN_02067830 ldr r2, [sp, #0x14] add r0, r6, #0x0 mov r1, #0x90 bl FUN_02067830 add r0, r5, #0x0 bl FUN_02021A20 ldr r0, [sp, #0x14] bl FUN_02021A20 add r0, r4, #0x0 bl FUN_0200A8B8 add r2, sp, #0x1c ldrb r1, [r7, #0x1a] add r0, sp, #0x18 add r2, #0x1 strb r1, [r0, #0x5] ldrb r1, [r7, #0x1b] strb r1, [r0, #0x4] ldrb r1, [r7, #0x1c] strb r1, [r0, #0x3] ldrb r1, [r7, #0x1d] strb r1, [r0, #0x2] ldrb r1, [r7, #0x1e] strb r1, [r0, #0x1] ldrb r1, [r7, #0x1f] strb r1, [r0, #0x0] add r0, r6, #0x0 mov r1, #0x13 bl FUN_02067830 add r0, r6, #0x0 mov r1, #0x14 add r2, sp, #0x1c bl FUN_02067830 add r2, sp, #0x18 add r0, r6, #0x0 mov r1, #0x15 add r2, #0x3 bl FUN_02067830 add r2, sp, #0x18 add r0, r6, #0x0 mov r1, #0x16 add r2, #0x2 bl FUN_02067830 add r2, sp, #0x18 add r0, r6, #0x0 mov r1, #0x17 add r2, #0x1 bl FUN_02067830 add r0, r6, #0x0 mov r1, #0x18 add r2, sp, #0x18 bl FUN_02067830 add sp, #0x20 pop {r3-r7, pc} nop _02082E60: .word 0x0F0F0F0F thumb_func_start FUN_02082E64 FUN_02082E64: ; 0x02082E64 push {r4-r7, lr} sub sp, #0x24 add r6, r3, #0x0 add r5, r2, #0x0 lsl r2, r6, #0x18 str r0, [sp, #0x10] add r7, r1, #0x0 add r0, sp, #0x14 add r1, r5, #0x0 lsr r2, r2, #0x18 ldr r4, [sp, #0x38] bl FUN_02068B68 lsl r1, r6, #0x18 add r0, r5, #0x0 lsr r1, r1, #0x18 bl FUN_02068E14 add r5, r0, #0x0 cmp r4, #0x0 beq _02082EB0 ldr r0, [r4, #0x0] cmp r0, #0x0 bne _02082E98 bl ErrorHandling _02082E98: add r1, sp, #0x14 ldrh r0, [r1, #0x0] ldrh r1, [r1, #0x2] ldr r2, [sp, #0x3c] ldr r3, [r4, #0x0] bl FUN_02012420 add r0, sp, #0x14 ldrh r1, [r0, #0x4] str r1, [r4, #0x8] ldrh r0, [r0, #0x0] str r0, [r4, #0x4] _02082EB0: ldr r0, [sp, #0x48] ldr r3, [sp, #0x44] str r0, [sp, #0x0] str r7, [sp, #0x4] mov r0, #0x0 str r0, [sp, #0x8] str r0, [sp, #0xc] ldr r0, [sp, #0x10] ldr r2, [sp, #0x40] add r1, sp, #0x14 add r3, r3, r5 bl FUN_020073A0 add sp, #0x24 pop {r4-r7, pc} .balign 4 thumb_func_start FUN_02082ED0 FUN_02082ED0: ; 0x02082ED0 push {r4-r7, lr} sub sp, #0x24 str r0, [sp, #0x4] str r1, [sp, #0x8] ldr r0, [sp, #0x38] add r7, r3, #0x0 mov r5, #0x0 str r2, [sp, #0xc] str r0, [sp, #0x38] mov r1, #0x1 ldr r3, [sp, #0x8] mov r0, #0x5a add r2, r5, #0x0 add r4, r5, #0x0 str r1, [sp, #0x0] bl FUN_02006C98 str r0, [sp, #0x14] mov r0, #0x5a mov r1, #0x1 bl FUN_020065A4 lsr r0, r0, #0x3 str r0, [sp, #0x18] ldr r1, [sp, #0x18] ldr r0, [sp, #0x8] add r1, r1, #0x1 bl FUN_020169D8 ldr r1, [sp, #0x18] add r6, r0, #0x0 ldr r0, [sp, #0x8] add r1, r1, #0x1 bl FUN_020169D8 str r0, [sp, #0x10] ldr r0, [sp, #0x18] add r2, r5, #0x0 cmp r0, #0x0 ble _0208300A ldr r3, [sp, #0x14] _02082F22: ldrh r0, [r3, #0x4] mov r12, r0 lsl r0, r0, #0x14 lsr r1, r0, #0x1e ldr r0, [sp, #0x38] cmp r0, r1 bne _02083000 cmp r7, #0x0 bne _02082F5A mov r0, r12 lsl r0, r0, #0x1e lsr r0, r0, #0x1e beq _02082F5A cmp r0, #0x1 bls _02082F4E add r0, r4, #0x1 lsl r0, r0, #0x18 add r1, r4, #0x0 lsr r4, r0, #0x18 ldr r0, [sp, #0x10] strb r2, [r0, r1] b _02083000 _02082F4E: add r1, r5, #0x1 add r0, r5, #0x0 lsl r1, r1, #0x18 lsr r5, r1, #0x18 strb r2, [r6, r0] b _02083000 _02082F5A: cmp r7, #0x1 bne _02082F84 ldrh r0, [r3, #0x4] lsl r0, r0, #0x1c lsr r0, r0, #0x1e beq _02082F84 cmp r0, #0x1 bls _02082F78 add r0, r4, #0x1 lsl r0, r0, #0x18 add r1, r4, #0x0 lsr r4, r0, #0x18 ldr r0, [sp, #0x10] strb r2, [r0, r1] b _02083000 _02082F78: add r1, r5, #0x1 add r0, r5, #0x0 lsl r1, r1, #0x18 lsr r5, r1, #0x18 strb r2, [r6, r0] b _02083000 _02082F84: cmp r7, #0x2 bne _02082FAE ldrh r0, [r3, #0x4] lsl r0, r0, #0x1a lsr r0, r0, #0x1e beq _02082FAE cmp r0, #0x1 bls _02082FA2 add r0, r4, #0x1 lsl r0, r0, #0x18 add r1, r4, #0x0 lsr r4, r0, #0x18 ldr r0, [sp, #0x10] strb r2, [r0, r1] b _02083000 _02082FA2: add r1, r5, #0x1 add r0, r5, #0x0 lsl r1, r1, #0x18 lsr r5, r1, #0x18 strb r2, [r6, r0] b _02083000 _02082FAE: cmp r7, #0x3 bne _02082FD8 ldrh r0, [r3, #0x4] lsl r0, r0, #0x18 lsr r0, r0, #0x1e beq _02082FD8 cmp r0, #0x1 bls _02082FCC add r0, r4, #0x1 lsl r0, r0, #0x18 add r1, r4, #0x0 lsr r4, r0, #0x18 ldr r0, [sp, #0x10] strb r2, [r0, r1] b _02083000 _02082FCC: add r1, r5, #0x1 add r0, r5, #0x0 lsl r1, r1, #0x18 lsr r5, r1, #0x18 strb r2, [r6, r0] b _02083000 _02082FD8: cmp r7, #0x4 bne _02083000 ldrh r0, [r3, #0x4] lsl r0, r0, #0x16 lsr r0, r0, #0x1e beq _02083000 cmp r0, #0x1 bls _02082FF6 add r0, r4, #0x1 lsl r0, r0, #0x18 add r1, r4, #0x0 lsr r4, r0, #0x18 ldr r0, [sp, #0x10] strb r2, [r0, r1] b _02083000 _02082FF6: add r1, r5, #0x1 add r0, r5, #0x0 lsl r1, r1, #0x18 lsr r5, r1, #0x18 strb r2, [r6, r0] _02083000: ldr r0, [sp, #0x18] add r2, r2, #0x1 add r3, #0x8 cmp r2, r0 blt _02082F22 _0208300A: mov r1, #0xff ldr r0, [sp, #0x10] strb r1, [r6, r5] strb r1, [r0, r4] cmp r5, #0x2 bhs _0208301A bl ErrorHandling _0208301A: ldr r2, [sp, #0x4] mov r3, #0x0 _0208301E: ldrb r0, [r6, r3] ldr r5, [sp, #0x14] add r3, r3, #0x1 lsl r1, r0, #0x3 ldr r0, [sp, #0x14] ldrh r5, [r5, r1] add r0, r0, r1 add r1, r2, #0x0 add r1, #0xd0 strh r5, [r1, #0x0] add r1, r2, #0x0 ldrh r5, [r0, #0x2] add r1, #0xd2 strh r5, [r1, #0x0] add r1, r2, #0x0 ldrh r5, [r0, #0x4] add r1, #0xd4 strh r5, [r1, #0x0] ldrh r1, [r0, #0x6] add r0, r2, #0x0 add r0, #0xd6 add r2, #0x8 strh r1, [r0, #0x0] cmp r3, #0x2 blt _0208301E cmp r4, #0x1 bhs _02083058 bl ErrorHandling _02083058: ldr r0, [sp, #0x4] bl FUN_02082878 add r1, r4, #0x0 blx _s32_div_f lsl r0, r1, #0x10 lsr r1, r0, #0x10 ldr r0, [sp, #0x10] ldrb r0, [r0, r1] ldr r1, [sp, #0x14] lsl r2, r0, #0x3 ldr r0, [sp, #0x14] add r0, r0, r2 ldrh r2, [r1, r2] ldr r1, [sp, #0x4] add r1, #0xe0 strh r2, [r1, #0x0] ldr r1, [sp, #0x4] ldrh r2, [r0, #0x2] add r1, #0xe2 strh r2, [r1, #0x0] ldr r1, [sp, #0x4] ldrh r2, [r0, #0x4] add r1, #0xe4 strh r2, [r1, #0x0] ldrh r1, [r0, #0x6] ldr r0, [sp, #0x4] ldr r2, _02083110 ; =0x0000011E add r0, #0xe6 strh r1, [r0, #0x0] ldr r1, [sp, #0xc] ldr r0, [sp, #0x4] strb r1, [r0, r2] add r2, r0, #0x0 add r0, r1, #0x0 lsl r1, r0, #0x3 add r2, #0xd0 ldrh r4, [r2, r1] add r0, sp, #0x1c add r3, r2, r1 strh r4, [r0, #0x0] ldrh r4, [r3, #0x2] strh r4, [r0, #0x2] ldrh r4, [r3, #0x4] strh r4, [r0, #0x4] ldrh r4, [r3, #0x6] strh r4, [r0, #0x6] ldr r4, [sp, #0x4] add r4, #0xe0 ldrh r4, [r4, #0x0] strh r4, [r2, r1] ldr r1, [sp, #0x4] add r1, #0xe2 ldrh r1, [r1, #0x0] strh r1, [r3, #0x2] ldr r1, [sp, #0x4] add r1, #0xe4 ldrh r1, [r1, #0x0] strh r1, [r3, #0x4] ldr r1, [sp, #0x4] add r1, #0xe6 ldrh r1, [r1, #0x0] strh r1, [r3, #0x6] ldr r1, [sp, #0x4] ldrh r2, [r0, #0x0] add r1, #0xe0 strh r2, [r1, #0x0] ldr r1, [sp, #0x4] ldrh r2, [r0, #0x2] add r1, #0xe2 strh r2, [r1, #0x0] ldr r1, [sp, #0x4] ldrh r2, [r0, #0x4] add r1, #0xe4 strh r2, [r1, #0x0] ldrh r1, [r0, #0x6] ldr r0, [sp, #0x4] add r0, #0xe6 str r0, [sp, #0x4] strh r1, [r0, #0x0] ldr r0, [sp, #0x10] bl FUN_02016A18 add r0, r6, #0x0 bl FUN_02016A18 ldr r0, [sp, #0x14] bl FUN_02016A18 add sp, #0x24 pop {r4-r7, pc} .balign 4 _02083110: .word 0x0000011E thumb_func_start FUN_02083114 FUN_02083114: ; 0x02083114 push {r4, lr} add r4, r0, #0x0 cmp r4, #0x18 blo _02083120 bl ErrorHandling _02083120: mov r0, #0x1a add r1, r4, #0x0 mul r1, r0 ldr r0, _0208312C ; =0x020FBC6C ldrsb r0, [r0, r1] pop {r4, pc} .balign 4 _0208312C: .word 0x020FBC6C thumb_func_start FUN_02083130 FUN_02083130: ; 0x02083130 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 cmp r5, #0x18 blo _02083140 bl ErrorHandling _02083140: mov r0, #0x1a add r1, r5, #0x0 mul r1, r0 ldr r0, _02083154 ; =0x020FBC68 ldrh r0, [r0, r1] str r0, [r4, #0x0] ldr r0, _02083158 ; =0x020FBC6A ldrh r0, [r0, r1] str r0, [r6, #0x0] pop {r4-r6, pc} .balign 4 _02083154: .word 0x020FBC68 _02083158: .word 0x020FBC6A thumb_func_start FUN_0208315C FUN_0208315C: ; 0x0208315C push {r4, lr} add r4, r0, #0x0 cmp r4, #0x18 blo _02083168 bl ErrorHandling _02083168: add r4, #0x2d add r0, r4, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02083170 FUN_02083170: ; 0x02083170 push {r3-r7, lr} add r4, r0, #0x0 add r7, r1, #0x0 add r5, r2, #0x0 add r6, r3, #0x0 cmp r4, #0x18 blo _02083182 bl ErrorHandling _02083182: cmp r7, #0x4 bhi _0208319C add r0, r7, r7 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02083192: ; jump table (using 16-bit offset) .short _0208319C - _02083192 - 2; case 0 .short _020831B0 - _02083192 - 2; case 1 .short _020831C4 - _02083192 - 2; case 2 .short _020831D8 - _02083192 - 2; case 3 .short _020831EC - _02083192 - 2; case 4 _0208319C: mov r0, #0x1a add r1, r4, #0x0 mul r1, r0 ldr r0, _02083200 ; =0x020FBC6E ldrh r0, [r0, r1] str r0, [r5, #0x0] ldr r0, _02083204 ; =0x020FBC70 ldrb r0, [r0, r1] str r0, [r6, #0x0] pop {r3-r7, pc} _020831B0: mov r0, #0x1a add r1, r4, #0x0 mul r1, r0 ldr r0, _02083208 ; =0x020FBC72 ldrh r0, [r0, r1] str r0, [r5, #0x0] ldr r0, _0208320C ; =0x020FBC74 ldrb r0, [r0, r1] str r0, [r6, #0x0] pop {r3-r7, pc} _020831C4: mov r0, #0x1a add r1, r4, #0x0 mul r1, r0 ldr r0, _02083210 ; =0x020FBC76 ldrh r0, [r0, r1] str r0, [r5, #0x0] ldr r0, _02083214 ; =0x020FBC78 ldrb r0, [r0, r1] str r0, [r6, #0x0] pop {r3-r7, pc} _020831D8: mov r0, #0x1a add r1, r4, #0x0 mul r1, r0 ldr r0, _02083218 ; =0x020FBC7A ldrh r0, [r0, r1] str r0, [r5, #0x0] ldr r0, _0208321C ; =0x020FBC7C ldrb r0, [r0, r1] str r0, [r6, #0x0] pop {r3-r7, pc} _020831EC: mov r0, #0x1a add r1, r4, #0x0 mul r1, r0 ldr r0, _02083220 ; =0x020FBC7E ldrh r0, [r0, r1] str r0, [r5, #0x0] ldr r0, _02083224 ; =0x020FBC80 ldrb r0, [r0, r1] str r0, [r6, #0x0] pop {r3-r7, pc} .balign 4 _02083200: .word 0x020FBC6E _02083204: .word 0x020FBC70 _02083208: .word 0x020FBC72 _0208320C: .word 0x020FBC74 _02083210: .word 0x020FBC76 _02083214: .word 0x020FBC78 _02083218: .word 0x020FBC7A _0208321C: .word 0x020FBC7C _02083220: .word 0x020FBC7E _02083224: .word 0x020FBC80 thumb_func_start FUN_02083228 FUN_02083228: ; 0x02083228 cmp r2, #0x1 bne _02083230 mov r0, #0x33 bx lr _02083230: cmp r1, #0x3 beq _0208323C cmp r1, #0x5 beq _0208323C cmp r1, #0x7 bne _02083240 _0208323C: mov r0, #0x32 bx lr _02083240: cmp r0, #0x3 bhi _02083264 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02083250: ; jump table (using 16-bit offset) .short _02083258 - _02083250 - 2; case 0 .short _0208325C - _02083250 - 2; case 1 .short _02083260 - _02083250 - 2; case 2 .short _02083264 - _02083250 - 2; case 3 _02083258: mov r0, #0x2e bx lr _0208325C: mov r0, #0x2f bx lr _02083260: mov r0, #0x30 bx lr _02083264: mov r0, #0x31 bx lr thumb_func_start FUN_02083268 FUN_02083268: ; 0x02083268 cmp r0, #0x4 bhi _02083292 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02083278: ; jump table (using 16-bit offset) .short _02083282 - _02083278 - 2; case 0 .short _02083286 - _02083278 - 2; case 1 .short _0208328A - _02083278 - 2; case 2 .short _0208328E - _02083278 - 2; case 3 .short _02083292 - _02083278 - 2; case 4 _02083282: mov r0, #0x2e bx lr _02083286: mov r0, #0x2f bx lr _0208328A: mov r0, #0x30 bx lr _0208328E: mov r0, #0x31 bx lr _02083292: mov r0, #0x33 bx lr .balign 4 thumb_func_start FUN_02083298 FUN_02083298: ; 0x02083298 ldr r3, _020832A0 ; =FUN_020832A4 mov r1, #0x2 bx r3 nop _020832A0: .word FUN_020832A4 thumb_func_start FUN_020832A4 FUN_020832A4: ; 0x020832A4 cmp r1, #0x5 bne _020832AC mov r0, #0x34 bx lr _020832AC: cmp r0, #0x4 bhi _020832D6 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _020832BC: ; jump table (using 16-bit offset) .short _020832C6 - _020832BC - 2; case 0 .short _020832CA - _020832BC - 2; case 1 .short _020832CE - _020832BC - 2; case 2 .short _020832D2 - _020832BC - 2; case 3 .short _020832D6 - _020832BC - 2; case 4 _020832C6: mov r0, #0x29 bx lr _020832CA: mov r0, #0x2a bx lr _020832CE: mov r0, #0x2b bx lr _020832D2: mov r0, #0x2c bx lr _020832D6: mov r0, #0x2d bx lr .balign 4 thumb_func_start FUN_020832DC FUN_020832DC: ; 0x020832DC mov r1, #0x3 sub r0, r1, r0 bx lr .balign 4 thumb_func_start FUN_020832E4 FUN_020832E4: ; 0x020832E4 mov r1, #0x3 sub r0, r1, r0 bx lr .balign 4 thumb_func_start FUN_020832EC FUN_020832EC: ; 0x020832EC ldr r1, _02083304 ; =0x00000121 ldrb r0, [r0, r1] cmp r0, #0x3 beq _020832FC cmp r0, #0x5 beq _020832FC cmp r0, #0x7 bne _02083300 _020832FC: mov r0, #0x1 bx lr _02083300: mov r0, #0x0 bx lr .balign 4 _02083304: .word 0x00000121 thumb_func_start FUN_02083308 FUN_02083308: ; 0x02083308 push {r4-r5} sub sp, #0x50 ldr r5, _02083368 ; =0x020FBC18 add r4, sp, #0x0 mov r3, #0x28 _02083312: ldrh r2, [r5, #0x0] add r5, r5, #0x2 strh r2, [r4, #0x0] add r4, r4, #0x2 sub r3, r3, #0x1 bne _02083312 mov r3, #0xc mul r3, r1 add r1, r0, r3 mov r3, #0x4a lsl r3, r3, #0x2 add r4, r3, #0x0 add r4, #0x49 ldrb r4, [r0, r4] mov r2, #0x0 ldrsh r1, [r1, r3] cmp r4, #0x1 bne _0208333A add r4, sp, #0x40 b _02083344 _0208333A: sub r3, #0x8 ldrb r0, [r0, r3] add r4, sp, #0x0 lsl r0, r0, #0x4 add r4, r4, r0 _02083344: mov r3, #0x0 _02083346: ldrh r0, [r4, #0x0] cmp r1, r0 bge _02083354 add sp, #0x50 add r0, r2, #0x0 pop {r4-r5} bx lr _02083354: add r3, r3, #0x1 add r2, r2, #0x1 add r4, r4, #0x2 cmp r3, #0x8 blt _02083346 add r0, r2, #0x0 add sp, #0x50 pop {r4-r5} bx lr nop _02083368: .word 0x020FBC18 thumb_func_start FUN_0208336C FUN_0208336C: ; 0x0208336C push {r4-r5} sub sp, #0x10 ldr r5, _020833CC ; =0x020FBC08 add r4, sp, #0x0 mov r3, #0xf _02083376: ldrb r2, [r5, #0x0] add r5, r5, #0x1 strb r2, [r4, #0x0] add r4, r4, #0x1 sub r3, r3, #0x1 bne _02083376 mov r2, #0xc mul r2, r1 ldr r3, _020833D0 ; =0x0000012A add r1, r0, r2 ldrsh r1, [r1, r3] cmp r1, #0x0 bne _02083398 add sp, #0x10 mov r0, #0x0 pop {r4-r5} bx lr _02083398: add r2, r3, #0x0 add r2, #0x47 ldrb r2, [r0, r2] cmp r2, #0x1 bne _020833A6 add r4, sp, #0xc b _020833B2 _020833A6: sub r3, #0xa ldrb r2, [r0, r3] add r4, sp, #0x0 lsl r0, r2, #0x1 add r0, r2, r0 add r4, r4, r0 _020833B2: mov r0, #0x1 mov r3, #0x0 _020833B6: ldrb r2, [r4, r3] cmp r1, r2 ble _020833C4 add r3, r3, #0x1 add r0, r0, #0x1 cmp r3, #0x3 blt _020833B6 _020833C4: add sp, #0x10 pop {r4-r5} bx lr nop _020833CC: .word 0x020FBC08 _020833D0: .word 0x0000012A thumb_func_start FUN_020833D4 FUN_020833D4: ; 0x020833D4 push {r3, lr} cmp r0, #0x0 bne _020833EE mov r0, #0x1 bl FUN_02002B60 mov r0, #0x3 bl FUN_02002B7C mov r0, #0x1 bl FUN_02002BB8 pop {r3, pc} _020833EE: mov r0, #0x1 bl FUN_02002B7C mov r0, #0x0 bl FUN_02002B60 mov r0, #0x0 bl FUN_02002BB8 pop {r3, pc} .balign 4 thumb_func_start FUN_02083404 FUN_02083404: ; 0x02083404 push {r3, lr} mov r0, #0x0 bl FUN_02002B60 mov r0, #0x0 bl FUN_02002B7C mov r0, #0x0 bl FUN_02002BB8 pop {r3, pc} .balign 4 thumb_func_start FUN_0208341C FUN_0208341C: ; 0x0208341C push {r3, lr} cmp r1, #0x4 bhi _0208344C add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0208342E: ; jump table (using 16-bit offset) .short _02083438 - _0208342E - 2; case 0 .short _0208343C - _0208342E - 2; case 1 .short _02083440 - _0208342E - 2; case 2 .short _02083444 - _0208342E - 2; case 3 .short _02083448 - _0208342E - 2; case 4 _02083438: add r0, #0x7a pop {r3, pc} _0208343C: add r0, #0x7e pop {r3, pc} _02083440: add r0, #0x82 pop {r3, pc} _02083444: add r0, #0x86 pop {r3, pc} _02083448: add r0, #0x8a pop {r3, pc} _0208344C: bl ErrorHandling mov r0, #0x7a pop {r3, pc} thumb_func_start FUN_02083454 FUN_02083454: ; 0x02083454 push {r4-r5, lr} sub sp, #0xc add r5, r0, #0x0 mov r4, #0x0 cmp r5, #0x3 beq _02083464 cmp r1, #0x1 bne _02083474 _02083464: bl FUN_0201B9EC mov r1, #0xc blx _s32_div_f add sp, #0xc add r0, r1, #0x0 pop {r4-r5, pc} _02083474: add r0, sp, #0x0 add r1, r4, #0x0 mov r2, #0xc blx MI_CpuFill8 mov r1, #0x2 add r0, sp, #0x0 strb r1, [r0, #0x0] mov r1, #0x3 strb r1, [r0, #0x1] mov r1, #0x4 add r4, r4, #0x3 strb r1, [r0, #0x2] cmp r5, #0x1 blt _020834A6 mov r0, #0x0 add r2, sp, #0x0 strb r0, [r2, r4] mov r1, #0x1 add r0, r4, #0x1 strb r1, [r2, r0] add r1, r4, #0x2 mov r0, #0x5 add r4, r4, #0x3 strb r0, [r2, r1] _020834A6: cmp r5, #0x2 blt _020834BE mov r0, #0x6 add r2, sp, #0x0 strb r0, [r2, r4] mov r1, #0x7 add r0, r4, #0x1 strb r1, [r2, r0] add r1, r4, #0x2 mov r0, #0x8 add r4, r4, #0x3 strb r0, [r2, r1] _020834BE: bl FUN_0201B9EC add r1, r4, #0x0 blx _s32_div_f add r0, sp, #0x0 ldrb r0, [r0, r1] add sp, #0xc pop {r4-r5, pc} thumb_func_start FUN_020834D0 FUN_020834D0: ; 0x020834D0 ldr r3, _020834DC ; =FUN_0202D8D0 add r2, r0, #0x0 ldr r0, _020834E0 ; =0x020FBED8 mov r1, #0x10 bx r3 nop _020834DC: .word FUN_0202D8D0 _020834E0: .word 0x020FBED8 thumb_func_start FUN_020834E4 FUN_020834E4: ; 0x020834E4 push {r3-r5, lr} add r5, r0, #0x0 mov r0, #0x1 lsl r0, r0, #0xa add r4, r1, #0x0 cmp r2, r0 blt _020834F6 bl ErrorHandling _020834F6: ldr r0, _02083500 ; =0x00000985 add r1, r4, r0 lsl r0, r5, #0xa add r0, r1, r0 pop {r3-r5, pc} .balign 4 _02083500: .word 0x00000985 thumb_func_start FUN_02083504 FUN_02083504: ; 0x02083504 mov r0, #0xa bx lr thumb_func_start FUN_02083508 FUN_02083508: ; 0x02083508 mov r0, #0x8 bx lr thumb_func_start FUN_0208350C FUN_0208350C: ; 0x0208350C bx lr .balign 4 thumb_func_start FUN_02083510 FUN_02083510: ; 0x02083510 push {r3-r7, lr} add r5, r0, #0x0 mov r0, #0x17 lsl r0, r0, #0x4 add r6, r1, #0x0 ldrb r1, [r3, r0] str r2, [sp, #0x0] cmp r1, #0x0 bne _0208352C sub r0, r0, #0x4 ldr r1, [r3, r0] ldr r0, _02083590 ; =0x000004FC add r4, r1, r0 b _0208355E _0208352C: cmp r1, #0x1 bne _0208353A sub r0, r0, #0x4 ldr r1, [r3, r0] ldr r0, _02083594 ; =0x00001158 add r4, r1, r0 b _0208355E _0208353A: cmp r1, #0x2 bne _0208354A sub r0, r0, #0x4 ldr r1, [r3, r0] mov r0, #0xc3 lsl r0, r0, #0x4 add r4, r1, r0 b _0208355E _0208354A: cmp r1, #0x3 bne _02083558 sub r0, r0, #0x4 ldr r1, [r3, r0] ldr r0, _02083598 ; =0x0000085C add r4, r1, r0 b _0208355E _02083558: bl ErrorHandling pop {r3-r7, pc} _0208355E: mov r0, #0x2 lsl r0, r0, #0x8 cmp r6, r0 ble _0208356A bl ErrorHandling _0208356A: ldr r0, _0208359C ; =0x00000A11 add r7, r4, r0 ldrb r0, [r7, r5] cmp r0, #0x0 beq _02083578 bl ErrorHandling _02083578: mov r1, #0x21 lsl r1, r1, #0x4 add r2, r4, r1 lsl r1, r5, #0x9 add r1, r2, r1 ldr r0, [sp, #0x0] add r2, r6, #0x0 blx MI_CpuCopy8 mov r0, #0x1 strb r0, [r7, r5] pop {r3-r7, pc} .balign 4 _02083590: .word 0x000004FC _02083594: .word 0x00001158 _02083598: .word 0x0000085C _0208359C: .word 0x00000A11 thumb_func_start FUN_020835A0 FUN_020835A0: ; 0x020835A0 mov r0, #0x5b lsl r0, r0, #0x2 ldr r0, [r3, r0] ldr r3, _020835AC ; =0x0223D1CD add r1, r2, #0x0 bx r3 .balign 4 _020835AC: .word 0x0223D1CD thumb_func_start FUN_020835B0 FUN_020835B0: ; 0x020835B0 push {r3-r6, lr} sub sp, #0x14 add r5, r1, #0x0 mov r1, #0x61 add r6, r0, #0x0 add r4, r3, #0x0 lsl r1, r1, #0x2 add r0, r2, #0x0 add r2, r4, r1 lsl r1, r6, #0x8 add r1, r2, r1 add r2, r5, #0x0 blx MI_CpuCopy8 ldr r2, _02083628 ; =0x00000584 ldrb r0, [r4, r2] add r0, r0, #0x1 strb r0, [r4, r2] ldr r0, _0208362C ; =0x00000127 ldrb r2, [r4, r2] ldrb r1, [r4, r0] cmp r2, r1 blo _02083622 mov r3, #0x0 cmp r1, #0x0 ble _020835FE add r0, #0x5d add r5, r4, r0 mov r0, #0x1 lsl r0, r0, #0x8 add r2, r0, #0x0 add r6, sp, #0x4 add r2, #0x27 _020835F2: stmia r6!, {r5} ldrb r1, [r4, r2] add r3, r3, #0x1 add r5, r5, r0 cmp r3, r1 blt _020835F2 _020835FE: add r0, sp, #0x4 add r2, sp, #0x0 bl FUN_02083660 mov r1, #0x47 lsl r1, r1, #0x2 strb r0, [r4, r1] add r0, sp, #0x0 ldrb r2, [r0, #0x0] add r0, r1, #0x1 strb r2, [r4, r0] ldrb r0, [r4, r1] lsl r2, r0, #0x2 add r0, sp, #0x4 ldr r0, [r0, r2] ldrb r2, [r0, #0x2] add r0, r1, #0x6 strb r2, [r4, r0] _02083622: add sp, #0x14 pop {r3-r6, pc} nop _02083628: .word 0x00000584 _0208362C: .word 0x00000127 thumb_func_start FUN_02083630 FUN_02083630: ; 0x02083630 push {r3, lr} ldr r1, _0208365C ; =0x00000125 add r3, sp, #0x0 ldrb r2, [r0, r1] strb r2, [r3, #0x0] sub r2, r1, #0x2 ldrb r2, [r0, r2] sub r1, r1, #0x3 strb r2, [r3, #0x1] ldrb r0, [r0, r1] add r1, sp, #0x0 mov r2, #0x4 strb r0, [r3, #0x2] mov r0, #0x1a bl FUN_02030ADC cmp r0, #0x1 bne _02083658 mov r0, #0x1 pop {r3, pc} _02083658: mov r0, #0x0 pop {r3, pc} .balign 4 _0208365C: .word 0x00000125 thumb_func_start FUN_02083660 FUN_02083660: ; 0x02083660 push {r4-r7} mov r5, #0x0 add r4, r5, #0x0 cmp r1, #0x0 ble _02083684 add r6, r0, #0x0 _0208366C: lsl r3, r5, #0x2 ldr r3, [r0, r3] ldr r7, [r6, #0x0] ldrb r3, [r3, #0x0] ldrb r7, [r7, #0x0] cmp r3, r7 bhs _0208367C add r5, r4, #0x0 _0208367C: add r4, r4, #0x1 add r6, r6, #0x4 cmp r4, r1 blt _0208366C _02083684: lsl r1, r5, #0x2 ldr r0, [r0, r1] ldrb r0, [r0, #0x0] strb r0, [r2, #0x0] add r0, r5, #0x0 pop {r4-r7} bx lr .balign 4 thumb_func_start FUN_02083694 FUN_02083694: ; 0x02083694 push {r3-r5, lr} add r5, r2, #0x0 add r4, r3, #0x0 bl FUN_020669BC add r2, r0, #0x0 ldrb r1, [r5, r2] add r0, r5, #0x0 lsl r1, r1, #0x2 ldr r1, [r4, r1] blx MI_CpuCopy8 ldr r0, _020836B8 ; =0x00000584 ldrb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, r0] pop {r3-r5, pc} nop _020836B8: .word 0x00000584 thumb_func_start FUN_020836BC FUN_020836BC: ; 0x020836BC push {r3-r7, lr} add r6, r1, #0x0 add r7, r2, #0x0 bl FUN_020669BC add r4, r0, #0x0 mov r0, #0x14 add r1, r4, #0x1 bl FUN_02016998 add r5, r0, #0x0 add r0, r7, #0x0 add r1, r5, #0x0 add r2, r4, #0x0 blx MI_CpuCopy8 mov r0, #0x1b add r1, r5, #0x0 add r2, r4, #0x1 strb r6, [r5, r4] bl FUN_02030ADC cmp r0, #0x1 bne _020836F0 mov r4, #0x1 b _020836F2 _020836F0: mov r4, #0x0 _020836F2: add r0, r5, #0x0 bl FUN_02016A18 add r0, r4, #0x0 pop {r3-r7, pc} thumb_func_start FUN_020836FC FUN_020836FC: ; 0x020836FC push {r3-r7, lr} sub sp, #0x8 str r2, [sp, #0x0] str r3, [sp, #0x4] bl FUN_020669BC mov r7, #0x0 ldr r4, [sp, #0x4] add r6, r0, #0x0 add r5, r7, #0x0 _02083710: ldr r0, [sp, #0x0] ldr r1, [r4, #0x0] add r0, r0, r5 add r2, r6, #0x0 blx MI_CpuCopy8 add r7, r7, #0x1 add r4, r4, #0x4 add r5, r5, r6 cmp r7, #0x4 blt _02083710 ldr r1, _02083738 ; =0x00000584 ldr r0, [sp, #0x4] ldrb r0, [r0, r1] add r2, r0, #0x1 ldr r0, [sp, #0x4] strb r2, [r0, r1] add sp, #0x8 pop {r3-r7, pc} nop _02083738: .word 0x00000584 thumb_func_start FUN_0208373C FUN_0208373C: ; 0x0208373C push {r3-r7, lr} sub sp, #0x8 add r4, r0, #0x0 add r5, r1, #0x0 bl FUN_020669BC add r6, r0, #0x0 lsl r0, r6, #0x2 str r0, [sp, #0x0] ldr r0, _02083788 ; =0x00000585 mov r7, #0x0 add r0, r4, r0 str r0, [sp, #0x4] add r4, r7, #0x0 _02083758: ldr r1, [sp, #0x4] ldr r0, [r5, #0x0] add r1, r1, r4 add r2, r6, #0x0 blx MI_CpuCopy8 add r7, r7, #0x1 add r4, r4, r6 add r5, r5, #0x4 cmp r7, #0x4 blt _02083758 ldr r1, [sp, #0x4] ldr r2, [sp, #0x0] mov r0, #0x1c bl FUN_02030A78 cmp r0, #0x1 bne _02083782 add sp, #0x8 mov r0, #0x1 pop {r3-r7, pc} _02083782: mov r0, #0x0 add sp, #0x8 pop {r3-r7, pc} .balign 4 _02083788: .word 0x00000585 thumb_func_start FUN_0208378C FUN_0208378C: ; 0x0208378C push {r3-r5, lr} add r0, r2, #0x0 add r2, #0x30 ldrb r1, [r2, #0x0] add r4, r3, #0x0 add r5, r4, #0x0 mov r2, #0x30 add r3, r1, #0x0 add r5, #0x10 mul r3, r2 add r1, r5, r3 blx MI_CpuCopy8 ldr r0, _020837B0 ; =0x00000584 ldrb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, r0] pop {r3-r5, pc} .balign 4 _020837B0: .word 0x00000584 thumb_func_start FUN_020837B4 FUN_020837B4: ; 0x020837B4 push {r4-r6, lr} add r5, r1, #0x0 mov r0, #0x14 mov r1, #0x31 add r6, r2, #0x0 bl FUN_02016998 add r4, r0, #0x0 add r0, r6, #0x0 add r1, r4, #0x0 mov r2, #0x30 blx MI_CpuCopy8 add r0, r4, #0x0 add r0, #0x30 strb r5, [r0, #0x0] mov r0, #0x1d add r1, r4, #0x0 mov r2, #0x31 bl FUN_02030ADC cmp r0, #0x1 bne _020837E6 mov r5, #0x1 b _020837E8 _020837E6: mov r5, #0x0 _020837E8: add r0, r4, #0x0 bl FUN_02016A18 add r0, r5, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_020837F4 FUN_020837F4: ; 0x020837F4 push {r3-r7, lr} add r5, r3, #0x0 add r6, r2, #0x0 str r3, [sp, #0x0] mov r4, #0x0 add r5, #0xd0 mov r7, #0x8 _02083802: lsl r0, r4, #0x3 add r0, r6, r0 add r1, r5, #0x0 add r2, r7, #0x0 blx MI_CpuCopy8 add r4, r4, #0x1 add r5, #0x8 cmp r4, #0x3 blt _02083802 ldrb r2, [r6, #0x18] ldr r1, _0208382C ; =0x0000011E ldr r0, [sp, #0x0] strb r2, [r0, r1] ldr r1, _02083830 ; =0x00000584 ldrb r0, [r0, r1] add r2, r0, #0x1 ldr r0, [sp, #0x0] strb r2, [r0, r1] pop {r3-r7, pc} nop _0208382C: .word 0x0000011E _02083830: .word 0x00000584 thumb_func_start FUN_02083834 FUN_02083834: ; 0x02083834 push {r3-r7, lr} str r0, [sp, #0x0] mov r0, #0x14 mov r1, #0x19 add r5, r2, #0x0 bl FUN_02016998 add r6, r0, #0x0 mov r4, #0x0 mov r7, #0x8 _02083848: lsl r1, r4, #0x3 add r0, r5, #0x0 add r1, r6, r1 add r2, r7, #0x0 blx MI_CpuCopy8 add r4, r4, #0x1 add r5, #0x8 cmp r4, #0x3 blt _02083848 ldr r1, _02083884 ; =0x0000011E ldr r0, [sp, #0x0] mov r2, #0x19 ldrb r0, [r0, r1] add r1, r6, #0x0 strb r0, [r6, #0x18] mov r0, #0x1e bl FUN_02030ADC cmp r0, #0x1 bne _02083876 mov r4, #0x1 b _02083878 _02083876: mov r4, #0x0 _02083878: add r0, r6, #0x0 bl FUN_02016A18 add r0, r4, #0x0 pop {r3-r7, pc} nop _02083884: .word 0x0000011E thumb_func_start FUN_02083888 FUN_02083888: ; 0x02083888 push {r3-r7, lr} add r5, r2, #0x0 ldrb r0, [r5, #0x0] add r6, r3, #0x0 add r4, r6, #0x0 add r4, #0xe8 lsl r7, r0, #0x2 ldr r0, [r4, r7] bl FUN_02021A4C ldr r0, [r4, r7] add r1, r5, #0x4 bl FUN_02021E28 ldr r0, _020838B0 ; =0x00000584 ldrb r1, [r6, r0] add r1, r1, #0x1 strb r1, [r6, r0] pop {r3-r7, pc} nop _020838B0: .word 0x00000584 thumb_func_start FUN_020838B4 FUN_020838B4: ; 0x020838B4 push {r3-r5, lr} sub sp, #0x10 add r5, r1, #0x0 add r0, r2, #0x0 add r1, sp, #0x0 mov r2, #0x8 bl FUN_02021EF0 mov r0, #0x14 add r1, r0, #0x0 bl FUN_02016998 add r4, r0, #0x0 add r0, sp, #0x0 add r1, r4, #0x4 mov r2, #0x10 blx MI_CpuCopy8 strb r5, [r4, #0x0] mov r0, #0x10 strb r0, [r4, #0x1] mov r0, #0x0 strb r0, [r4, #0x2] strb r0, [r4, #0x3] mov r0, #0x1f add r1, r4, #0x0 mov r2, #0x14 bl FUN_02030ADC cmp r0, #0x1 bne _020838F6 mov r5, #0x1 b _020838F8 _020838F6: mov r5, #0x0 _020838F8: add r0, r4, #0x0 bl FUN_02016A18 add r0, r5, #0x0 add sp, #0x10 pop {r3-r5, pc} thumb_func_start FUN_02083904 FUN_02083904: ; 0x02083904 push {r3-r5, lr} add r5, r2, #0x0 add r4, r3, #0x0 bl FUN_02026FE4 add r2, r0, #0x0 ldrb r1, [r5, r2] add r0, r5, #0x0 lsl r1, r1, #0x2 add r1, r4, r1 add r1, #0xf8 ldr r1, [r1, #0x0] blx MI_CpuCopy8 ldr r0, _0208392C ; =0x00000584 ldrb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, r0] pop {r3-r5, pc} nop _0208392C: .word 0x00000584 thumb_func_start FUN_02083930 FUN_02083930: ; 0x02083930 push {r3-r7, lr} add r6, r1, #0x0 add r7, r2, #0x0 bl FUN_02026FE4 add r4, r0, #0x0 mov r0, #0x14 add r1, r4, #0x1 bl FUN_02016998 add r5, r0, #0x0 add r0, r7, #0x0 add r1, r5, #0x0 add r2, r4, #0x0 blx MI_CpuCopy8 mov r0, #0x20 add r1, r5, #0x0 add r2, r4, #0x1 strb r6, [r5, r4] bl FUN_02030ADC cmp r0, #0x1 bne _02083964 mov r4, #0x1 b _02083966 _02083964: mov r4, #0x0 _02083966: add r0, r5, #0x0 bl FUN_02016A18 add r0, r4, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02083970 FUN_02083970: ; 0x02083970 push {r3-r7, lr} sub sp, #0x8 str r2, [sp, #0x0] str r3, [sp, #0x4] bl FUN_02026FE4 add r6, r0, #0x0 mov r0, #0x1 lsl r1, r6, #0x2 lsl r0, r0, #0xa cmp r1, r0 blt _0208398C bl ErrorHandling _0208398C: mov r7, #0x0 ldr r4, [sp, #0x4] add r5, r7, #0x0 _02083992: add r1, r4, #0x0 ldr r0, [sp, #0x0] add r1, #0xf8 ldr r1, [r1, #0x0] add r0, r0, r5 add r2, r6, #0x0 blx MI_CpuCopy8 add r7, r7, #0x1 add r4, r4, #0x4 add r5, r5, r6 cmp r7, #0x4 blt _02083992 ldr r1, _020839BC ; =0x00000584 ldr r0, [sp, #0x4] ldrb r0, [r0, r1] add r2, r0, #0x1 ldr r0, [sp, #0x4] strb r2, [r0, r1] add sp, #0x8 pop {r3-r7, pc} .balign 4 _020839BC: .word 0x00000584 thumb_func_start FUN_020839C0 FUN_020839C0: ; 0x020839C0 push {r3-r7, lr} sub sp, #0x8 add r4, r0, #0x0 add r5, r1, #0x0 bl FUN_02026FE4 add r6, r0, #0x0 mov r1, #0x1 lsl r0, r6, #0x2 lsl r1, r1, #0xa str r0, [sp, #0x0] cmp r0, r1 blt _020839DE bl ErrorHandling _020839DE: ldr r0, _02083A18 ; =0x00000585 mov r7, #0x0 add r0, r4, r0 str r0, [sp, #0x4] add r4, r7, #0x0 _020839E8: ldr r1, [sp, #0x4] ldr r0, [r5, #0x0] add r1, r1, r4 add r2, r6, #0x0 blx MI_CpuCopy8 add r7, r7, #0x1 add r4, r4, r6 add r5, r5, #0x4 cmp r7, #0x4 blt _020839E8 ldr r1, [sp, #0x4] ldr r2, [sp, #0x0] mov r0, #0x21 bl FUN_02030A78 cmp r0, #0x1 bne _02083A12 add sp, #0x8 mov r0, #0x1 pop {r3-r7, pc} _02083A12: mov r0, #0x0 add sp, #0x8 pop {r3-r7, pc} .balign 4 _02083A18: .word 0x00000585 thumb_func_start FUN_02083A1C FUN_02083A1C: ; 0x02083A1C push {r4, lr} add r4, r1, #0x0 ldr r1, _02083A30 ; =0x000019A0 add r0, r2, #0x0 add r1, r3, r1 add r2, r4, #0x0 blx MI_CpuCopy8 pop {r4, pc} nop _02083A30: .word 0x000019A0 thumb_func_start FUN_02083A34 FUN_02083A34: ; 0x02083A34 push {r3, lr} add r3, r0, #0x0 ldrb r0, [r3, #0x16] cmp r0, #0x0 bne _02083A44 str r1, [r3, #0x0] mov r0, #0x1 pop {r3, pc} _02083A44: ldrb r2, [r3, #0x14] ldrb r0, [r3, #0x15] cmp r2, r0 beq _02083A50 mov r0, #0x0 pop {r3, pc} _02083A50: str r1, [r3, #0x8] add r3, #0x8 mov r0, #0x22 add r1, r3, #0x0 mov r2, #0x8 bl FUN_02030ADC cmp r0, #0x1 bne _02083A66 mov r0, #0x1 pop {r3, pc} _02083A66: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_02083A6C FUN_02083A6C: ; 0x02083A6C ldrb r2, [r2, #0x4] add r1, r3, r0 ldr r0, _02083A78 ; =0x000019B0 strb r2, [r1, r0] bx lr nop _02083A78: .word 0x000019B0 thumb_func_start FUN_02083A7C FUN_02083A7C: ; 0x02083A7C push {r3, lr} add r2, r0, #0x0 ldrb r0, [r2, #0x16] cmp r0, #0x0 bne _02083A8C strb r1, [r2, #0x10] mov r0, #0x1 pop {r3, pc} _02083A8C: strb r1, [r2, #0xc] add r2, #0x8 add r1, r2, #0x0 mov r0, #0x23 mov r2, #0x8 bl FUN_02030ADC cmp r0, #0x1 bne _02083AA2 mov r0, #0x1 pop {r3, pc} _02083AA2: mov r0, #0x0 pop {r3, pc} .balign 4 thumb_func_start FUN_02083AA8 FUN_02083AA8: ; 0x02083AA8 push {r3-r5, lr} add r5, r2, #0x0 add r4, r3, #0x0 bl FUN_02029EC4 add r2, r0, #0x0 ldrb r1, [r5, r2] add r0, r5, #0x0 lsl r1, r1, #0x2 add r3, r4, r1 mov r1, #0x57 lsl r1, r1, #0x2 ldr r1, [r3, r1] blx MI_CpuCopy8 ldr r0, _02083AD0 ; =0x00000584 ldrb r1, [r4, r0] add r1, r1, #0x1 strb r1, [r4, r0] pop {r3-r5, pc} .balign 4 _02083AD0: .word 0x00000584 thumb_func_start FUN_02083AD4 FUN_02083AD4: ; 0x02083AD4 push {r3-r7, lr} add r4, r0, #0x0 add r7, r1, #0x0 add r6, r2, #0x0 bl FUN_02029EC4 add r5, r0, #0x0 ldr r0, _02083B0C ; =0x00000585 add r4, r4, r0 cmp r6, #0x0 beq _02083AF4 add r0, r6, #0x0 add r1, r4, #0x0 add r2, r5, #0x0 blx MI_CpuCopy8 _02083AF4: mov r0, #0x24 add r1, r4, #0x0 add r2, r5, #0x1 strb r7, [r4, r5] bl FUN_02030A78 cmp r0, #0x1 bne _02083B08 mov r0, #0x1 pop {r3-r7, pc} _02083B08: mov r0, #0x0 pop {r3-r7, pc} .balign 4 _02083B0C: .word 0x00000585 thumb_func_start FUN_02083B10 FUN_02083B10: ; 0x02083B10 push {r3-r6} ldrb r1, [r2, #0x6] ldrb r4, [r2, #0x0] mov r5, #0x42 add r0, r3, r1 lsl r5, r5, #0x2 strb r4, [r0, r5] ldrb r6, [r2, #0x1] add r4, r5, #0x4 strb r6, [r0, r4] add r4, r5, #0x0 ldrb r6, [r2, #0x2] add r4, #0x8 add r5, #0xc strb r6, [r0, r4] lsl r0, r1, #0x1 ldrh r2, [r2, #0x4] add r0, r3, r0 strh r2, [r0, r5] ldr r0, _02083B44 ; =0x00000584 ldrb r1, [r3, r0] add r1, r1, #0x1 strb r1, [r3, r0] pop {r3-r6} bx lr nop _02083B44: .word 0x00000584 thumb_func_start FUN_02083B48 FUN_02083B48: ; 0x02083B48 push {r4-r6, lr} add r5, r1, #0x0 mov r0, #0x14 mov r1, #0x7 add r6, r2, #0x0 bl FUN_02016998 add r4, r0, #0x0 add r0, r6, #0x0 add r1, r4, #0x0 mov r2, #0x6 blx MI_CpuCopy8 mov r0, #0x25 add r1, r4, #0x0 mov r2, #0x7 strb r5, [r4, #0x6] bl FUN_02030ADC cmp r0, #0x1 bne _02083B76 mov r5, #0x1 b _02083B78 _02083B76: mov r5, #0x0 _02083B78: add r0, r4, #0x0 bl FUN_02016A18 add r0, r5, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02083B84 FUN_02083B84: ; 0x02083B84 ldr r3, _02083B90 ; =FUN_0202D8D0 add r2, r0, #0x0 ldr r0, _02083B94 ; =0x020FBF98 mov r1, #0xb bx r3 nop _02083B90: .word FUN_0202D8D0 _02083B94: .word 0x020FBF98 thumb_func_start FUN_02083B98 FUN_02083B98: ; 0x02083B98 cmp r0, #0xc bne _02083BA0 mov r0, #0xc bx lr _02083BA0: cmp r0, #0x6 bhs _02083BA8 add r0, r0, #0x6 bx lr _02083BA8: sub r0, r0, #0x6 bx lr thumb_func_start FUN_02083BAC FUN_02083BAC: ; 0x02083BAC push {r4-r6, lr} add r3, #0x84 add r5, r0, #0x0 add r6, r2, #0x0 ldr r4, [r3, #0x0] bl FUN_02031190 cmp r5, r0 beq _02083C1A ldr r0, _02083C1C ; =0x0000221C mov r2, #0x59 ldr r0, [r4, r0] add r1, r6, #0x0 lsl r2, r2, #0x4 blx FUN_020DF438 ldr r0, [r4, #0x58] add r0, r0, #0x1 str r0, [r4, #0x58] bl FUN_0206B8A4 mov r1, #0x59 ldr r2, [r4, #0x58] lsl r1, r1, #0x4 mul r1, r2 cmp r1, r0 blt _02083C06 bl FUN_02031190 cmp r0, #0x1 bne _02083BF6 add r0, r4, #0x0 mov r1, #0x1b mov r2, #0x0 bl FUN_0222F440 b _02083C14 _02083BF6: bl FUN_02031190 ldr r1, _02083C20 ; =0x00002218 ldr r2, [r4, #0x50] ldr r1, [r4, r1] bl FUN_0222F480 b _02083C14 _02083C06: bl FUN_02031190 ldr r1, _02083C20 ; =0x00002218 ldr r2, [r4, #0x50] ldr r1, [r4, r1] bl FUN_0222F480 _02083C14: ldr r0, [r4, #0x50] add r0, r0, #0x1 str r0, [r4, #0x50] _02083C1A: pop {r4-r6, pc} .balign 4 _02083C1C: .word 0x0000221C _02083C20: .word 0x00002218 thumb_func_start FUN_02083C24 FUN_02083C24: ; 0x02083C24 push {r4-r6, lr} add r3, #0x84 add r5, r0, #0x0 add r6, r2, #0x0 ldr r4, [r3, #0x0] bl FUN_02031190 cmp r5, r0 beq _02083C40 ldrb r0, [r6, #0x0] bl FUN_02083B98 add r4, #0x8c str r0, [r4, #0x0] _02083C40: pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02083C44 FUN_02083C44: ; 0x02083C44 add r3, #0x84 ldrb r2, [r2, #0x0] ldr r1, [r3, #0x0] lsl r0, r0, #0x2 add r0, r1, r0 str r2, [r0, #0x60] bx lr .balign 4 thumb_func_start FUN_02083C54 FUN_02083C54: ; 0x02083C54 bx lr .balign 4 thumb_func_start FUN_02083C58 FUN_02083C58: ; 0x02083C58 bx lr .balign 4 thumb_func_start FUN_02083C5C FUN_02083C5C: ; 0x02083C5C add r3, #0x84 ldr r0, [r3, #0x0] mov r1, #0x2 str r1, [r0, #0x54] bx lr .balign 4 thumb_func_start FUN_02083C68 FUN_02083C68: ; 0x02083C68 bx lr .balign 4 thumb_func_start FUN_02083C6C FUN_02083C6C: ; 0x02083C6C add r3, #0x84 mov r0, #0x8b ldrb r2, [r2, #0x0] ldr r1, [r3, #0x0] lsl r0, r0, #0x6 str r2, [r1, r0] bx lr .balign 4 thumb_func_start FUN_02083C7C FUN_02083C7C: ; 0x02083C7C push {r4-r6, lr} add r6, r0, #0x0 ldr r0, [r3, #0xc] add r5, r2, #0x0 bl FUN_0202A918 add r4, r0, #0x0 bl FUN_02031190 cmp r6, r0 beq _02083CA8 mov r2, #0x0 _02083C94: ldrb r1, [r5, r2] cmp r1, #0x0 beq _02083CA2 ldrb r0, [r4, r2] cmp r0, r1 beq _02083CA2 strb r1, [r4, r2] _02083CA2: add r2, r2, #0x1 cmp r2, #0xe blt _02083C94 _02083CA8: pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02083CAC FUN_02083CAC: ; 0x02083CAC push {r4-r6, lr} add r3, #0x84 add r5, r0, #0x0 add r6, r2, #0x0 ldr r4, [r3, #0x0] bl FUN_02031190 cmp r5, r0 beq _02083CD0 ldr r0, _02083CD4 ; =0x00002224 add r1, r6, #0x0 ldr r0, [r4, r0] mov r2, #0x1 mov r3, #0x1a bl FUN_02025520 mov r0, #0x3 str r0, [r4, #0x54] _02083CD0: pop {r4-r6, pc} nop _02083CD4: .word 0x00002224 thumb_func_start FUN_02083CD8 FUN_02083CD8: ; 0x02083CD8 push {r4-r6, lr} add r3, #0x84 add r5, r0, #0x0 add r6, r2, #0x0 ldr r4, [r3, #0x0] bl FUN_02031190 cmp r5, r0 beq _02083D0A ldr r1, _02083D0C ; =0x00002E14 mov r2, #0xfb add r3, r4, r1 lsl r2, r2, #0x2 add r1, r5, #0x0 mul r1, r2 add r0, r6, #0x0 add r1, r3, r1 sub r2, r2, #0x4 blx MIi_CpuCopyFast mov r0, #0x4 str r0, [r4, #0x54] mov r0, #0x0 bl FUN_02031400 _02083D0A: pop {r4-r6, pc} .balign 4 _02083D0C: .word 0x00002E14 thumb_func_start FUN_02083D10 FUN_02083D10: ; 0x02083D10 add r0, #0x84 str r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02083D18 FUN_02083D18: ; 0x02083D18 mov r0, #0xfb lsl r0, r0, #0x2 bx lr .balign 4 thumb_func_start FUN_02083D20 FUN_02083D20: ; 0x02083D20 mov r0, #0xe bx lr thumb_func_start FUN_02083D24 FUN_02083D24: ; 0x02083D24 mov r0, #0x88 bx lr thumb_func_start FUN_02083D28 FUN_02083D28: ; 0x02083D28 mov r0, #0x59 lsl r0, r0, #0x4 bx lr .balign 4 thumb_func_start FUN_02083D30 FUN_02083D30: ; 0x02083D30 add r1, #0x84 ldr r2, [r1, #0x0] ldr r1, _02083D44 ; =0x000022F4 add r2, r2, r1 mov r1, #0x59 lsl r1, r1, #0x4 mul r1, r0 add r0, r2, r1 bx lr nop _02083D44: .word 0x000022F4 thumb_func_start FUN_02083D48 FUN_02083D48: ; 0x02083D48 ldr r3, _02083D54 ; =FUN_0202D8D0 add r2, r0, #0x0 ldr r0, _02083D58 ; =0x020FC01C mov r1, #0x6c bx r3 nop _02083D54: .word FUN_0202D8D0 _02083D58: .word 0x020FC01C thumb_func_start FUN_02083D5C FUN_02083D5C: ; 0x02083D5C push {r3-r5, lr} add r5, r2, #0x0 add r4, r3, #0x0 bl FUN_02031190 cmp r0, #0x0 beq _02083DBA mov r3, #0xfb lsl r3, r3, #0x2 ldrb r2, [r5, r3] sub r0, r3, #0x4 add r1, r2, #0x0 mul r1, r0 mov r0, #0xe1 lsl r0, r0, #0x6 cmp r1, r0 ldr r2, _02083DE8 ; =0x000043D0 ble _02083D90 add r2, r4, r2 add r1, r2, r1 mov r2, #0x19 add r0, r5, #0x0 lsl r2, r2, #0x4 blx MIi_CpuCopyFast b _02083D9C _02083D90: add r2, r4, r2 add r1, r2, r1 add r0, r5, #0x0 sub r2, r3, #0x4 blx MIi_CpuCopyFast _02083D9C: mov r1, #0xb5 ldr r0, _02083DE8 ; =0x000043D0 lsl r1, r1, #0x2 mov r2, #0xe1 ldr r1, [r4, r1] add r0, r4, r0 lsl r2, r2, #0x6 blx MIi_CpuCopyFast mov r0, #0xb2 lsl r0, r0, #0x2 add r0, r4, r0 bl FUN_020191D0 pop {r3-r5, pc} _02083DBA: ldr r1, _02083DEC ; =0x000043CC mov r0, #0xfa ldr r2, [r4, r1] lsl r0, r0, #0x2 add r3, r2, #0x0 mul r3, r0 mov r0, #0xe1 lsl r0, r0, #0x6 cmp r3, r0 bge _02083DDC add r0, r2, #0x1 str r0, [r4, r1] ldr r1, [r4, r1] add r0, r4, #0x0 bl FUN_0208402C pop {r3-r5, pc} _02083DDC: mov r1, #0x0 mov r0, #0x7c add r2, r1, #0x0 bl FUN_02030BC4 pop {r3-r5, pc} .balign 4 _02083DE8: .word 0x000043D0 _02083DEC: .word 0x000043CC thumb_func_start FUN_02083DF0 FUN_02083DF0: ; 0x02083DF0 push {r3-r4} cmp r0, #0x0 beq _02083E0E add r4, r0, #0x0 mov r1, #0xa mul r4, r1 ldr r0, _02083E14 ; =0x000093BD add r3, r3, r4 add r3, r3, r0 _02083E02: ldrb r0, [r2, #0x0] add r2, r2, #0x1 strb r0, [r3, #0x0] add r3, r3, #0x1 sub r1, r1, #0x1 bne _02083E02 _02083E0E: pop {r3-r4} bx lr nop _02083E14: .word 0x000093BD thumb_func_start FUN_02083E18 FUN_02083E18: ; 0x02083E18 push {r4-r7} cmp r3, #0x0 beq _02083E42 cmp r0, #0x0 bne _02083E42 ldr r0, _02083E48 ; =0x00004382 mov r7, #0x0 _02083E26: add r6, r2, #0x0 add r5, r3, r0 mov r4, #0xa _02083E2C: ldrb r1, [r6, #0x0] add r6, r6, #0x1 strb r1, [r5, #0x0] add r5, r5, #0x1 sub r4, r4, #0x1 bne _02083E2C add r7, r7, #0x1 add r2, #0xa add r3, #0xa cmp r7, #0x5 blt _02083E26 _02083E42: pop {r4-r7} bx lr nop _02083E48: .word 0x00004382 thumb_func_start FUN_02083E4C FUN_02083E4C: ; 0x02083E4C push {r4, lr} add r4, r3, #0x0 add r0, r4, #0x0 mov r1, #0x3 mov r2, #0x0 bl FUN_021D8B64 ldr r1, _02083E8C ; =0x000043D0 mov r2, #0xe1 mov r0, #0x0 add r1, r4, r1 lsl r2, r2, #0x6 blx MIi_CpuClearFast bl FUN_02031190 cmp r0, #0x0 bne _02083E8A bl FUN_02030F20 mov r1, #0xc6 lsl r1, r1, #0x2 str r0, [r4, r1] bl FUN_0202CB8C mov r1, #0xc7 lsl r1, r1, #0x2 str r0, [r4, r1] ldr r0, _02083E90 ; =0x000093F4 mov r1, #0x1 str r1, [r4, r0] _02083E8A: pop {r4, pc} .balign 4 _02083E8C: .word 0x000043D0 _02083E90: .word 0x000093F4 thumb_func_start FUN_02083E94 FUN_02083E94: ; 0x02083E94 push {r3-r6, lr} sub sp, #0x4 add r6, r0, #0x0 add r5, r2, #0x0 add r4, r3, #0x0 cmp r6, #0x0 beq _02083F2E bl FUN_02031190 cmp r0, #0x0 bne _02083F78 ldrb r0, [r5, #0x0] add r1, sp, #0x0 strb r0, [r1, #0x0] ldrb r0, [r5, #0x1] strb r0, [r1, #0x1] ldrb r0, [r5, #0x2] strb r0, [r1, #0x2] ldrb r0, [r5, #0x3] strb r0, [r1, #0x3] mov r0, #0xc6 strb r6, [r1, #0x0] lsl r0, r0, #0x2 ldr r0, [r4, r0] strb r0, [r1, #0x1] ldrb r0, [r5, #0x2] cmp r0, #0x0 beq _02083ED0 cmp r0, #0x1 b _02083F20 _02083ED0: bl FUN_02030F20 mov r1, #0xc6 lsl r1, r1, #0x2 ldr r1, [r4, r1] cmp r1, r0 bne _02083EFE bl FUN_021D917C mov r1, #0xc6 lsl r1, r1, #0x2 ldr r1, [r4, r1] cmp r1, r0 bne _02083EFE bl FUN_0202CB8C blx FUN_020DDC5C mov r1, #0xc6 lsl r1, r1, #0x2 ldr r1, [r4, r1] cmp r1, r0 beq _02083F06 _02083EFE: mov r1, #0x0 add r0, sp, #0x0 strb r1, [r0, #0x3] b _02083F20 _02083F06: ldr r0, _02083F7C ; =0x000093B4 mov r1, #0x1 add r2, r1, #0x0 ldr r3, [r4, r0] lsl r2, r6 orr r2, r3 str r2, [r4, r0] add r0, sp, #0x0 strb r1, [r0, #0x3] bl FUN_02030F20 bl FUN_02032B6C _02083F20: mov r0, #0x7e add r1, sp, #0x0 mov r2, #0x4 bl FUN_02030BC4 add sp, #0x4 pop {r3-r6, pc} _02083F2E: ldrb r0, [r5, #0x2] cmp r0, #0x0 beq _02083F3C cmp r0, #0x1 beq _02083F6E add sp, #0x4 pop {r3-r6, pc} _02083F3C: ldrb r6, [r5, #0x0] bl FUN_02031190 cmp r6, r0 bne _02083F78 ldrb r0, [r5, #0x3] cmp r0, #0x0 bne _02083F5A add r0, r4, #0x0 mov r1, #0x9 add r2, r6, #0x0 bl FUN_021D8B64 add sp, #0x4 pop {r3-r6, pc} _02083F5A: ldrb r1, [r5, #0x1] ldr r0, _02083F80 ; =0x000093B8 strh r1, [r4, r0] ldrb r2, [r5, #0x0] add r0, r4, #0x0 mov r1, #0x8 bl FUN_021D8B64 add sp, #0x4 pop {r3-r6, pc} _02083F6E: ldrb r2, [r5, #0x0] add r0, r4, #0x0 mov r1, #0x15 bl FUN_021D8B64 _02083F78: add sp, #0x4 pop {r3-r6, pc} .balign 4 _02083F7C: .word 0x000093B4 _02083F80: .word 0x000093B8 thumb_func_start FUN_02083F84 FUN_02083F84: ; 0x02083F84 bx lr .balign 4 thumb_func_start FUN_02083F88 FUN_02083F88: ; 0x02083F88 push {r4, lr} ldrb r2, [r2, #0x0] add r4, r3, #0x0 add r0, r4, #0x0 mov r1, #0x1 bl FUN_021D8B64 bl FUN_02031190 cmp r0, #0x0 bne _02083FB6 mov r0, #0x3 lsl r0, r0, #0x8 ldr r0, [r4, r0] cmp r0, #0x1 bne _02083FB6 ldr r1, _02083FB8 ; =0x000043CC mov r0, #0x0 str r0, [r4, r1] ldr r1, [r4, r1] add r0, r4, #0x0 bl FUN_0208402C _02083FB6: pop {r4, pc} .balign 4 _02083FB8: .word 0x000043CC thumb_func_start FUN_02083FBC FUN_02083FBC: ; 0x02083FBC bx lr .balign 4 thumb_func_start FUN_02083FC0 FUN_02083FC0: ; 0x02083FC0 bx lr .balign 4 thumb_func_start FUN_02083FC4 FUN_02083FC4: ; 0x02083FC4 push {r4, lr} add r4, r3, #0x0 bl FUN_02031190 cmp r0, #0x0 beq _02083FDA add r0, r4, #0x0 mov r1, #0xf mov r2, #0x0 bl FUN_021D8B64 _02083FDA: pop {r4, pc} thumb_func_start FUN_02083FDC FUN_02083FDC: ; 0x02083FDC push {r3-r5, lr} add r5, r0, #0x0 add r4, r3, #0x0 bl FUN_02031190 cmp r0, #0x0 beq _02083FEE bl ErrorHandling _02083FEE: bl FUN_02031190 cmp r0, #0x0 bne _02084012 ldr r0, _0208401C ; =0x000093FC ldr r1, [r4, r0] cmp r1, #0x0 beq _0208400E add r0, sp, #0x0 strb r5, [r0, #0x0] mov r0, #0x7b add r1, sp, #0x0 mov r2, #0x1 bl FUN_02030BC4 b _02084012 _0208400E: mov r1, #0x1 str r1, [r4, r0] _02084012: mov r0, #0x0 mov r1, #0x1 bl FUN_020334E8 pop {r3-r5, pc} .balign 4 _0208401C: .word 0x000093FC thumb_func_start FUN_02084020 FUN_02084020: ; 0x02084020 ldr r0, _02084028 ; =0x000093F4 mov r1, #0x1 str r1, [r3, r0] bx lr .balign 4 _02084028: .word 0x000093F4 thumb_func_start FUN_0208402C FUN_0208402C: ; 0x0208402C push {r3-r5, lr} add r5, r0, #0x0 mov r0, #0xb5 mov r2, #0xfa add r4, r1, #0x0 lsl r0, r0, #0x2 ldr r1, [r5, r0] lsl r2, r2, #0x2 add r0, r4, #0x0 mul r0, r2 add r0, r1, r0 ldr r1, _02084078 ; =0x00007C10 add r1, r5, r1 blx MIi_CpuCopyFast ldr r0, _02084078 ; =0x00007C10 mov r2, #0x0 add r1, r2, #0x0 add r3, r5, r0 _02084052: ldr r0, [r3, #0x0] add r1, r1, #0x1 eor r2, r0 add r3, r3, #0x4 cmp r1, #0xfa blt _02084052 ldr r0, _0208407C ; =0x00007FF8 ldr r1, _02084078 ; =0x00007C10 str r2, [r5, r0] add r0, r0, #0x4 mov r2, #0x3f strb r4, [r5, r0] mov r0, #0x76 add r1, r5, r1 lsl r2, r2, #0x4 bl FUN_02030B3C pop {r3-r5, pc} nop _02084078: .word 0x00007C10 _0208407C: .word 0x00007FF8 thumb_func_start FUN_02084080 FUN_02084080: ; 0x02084080 mov r2, #0x2 lsl r2, r2, #0xe add r2, r1, r2 mov r1, #0x3f lsl r1, r1, #0x4 mul r1, r0 add r0, r2, r1 bx lr thumb_func_start FUN_02084090 FUN_02084090: ; 0x02084090 mov r0, #0x4 bx lr thumb_func_start FUN_02084094 FUN_02084094: ; 0x02084094 mov r0, #0x4 bx lr thumb_func_start FUN_02084098 FUN_02084098: ; 0x02084098 ldr r3, _020840A4 ; =FUN_0202D8D0 add r2, r0, #0x0 ldr r0, _020840A8 ; =0x020FC52C mov r1, #0x6c bx r3 nop _020840A4: .word FUN_0202D8D0 _020840A8: .word 0x020FC52C thumb_func_start FUN_020840AC FUN_020840AC: ; 0x020840AC ldr r0, _020840B8 ; =0x00004A34 ldr r1, [r3, r0] add r1, r1, #0x1 str r1, [r3, r0] bx lr nop _020840B8: .word 0x00004A34 thumb_func_start FUN_020840BC FUN_020840BC: ; 0x020840BC cmp r0, #0x0 bne _020840C6 ldrb r1, [r2, #0x0] ldr r0, _020840C8 ; =0x00004A3C str r1, [r3, r0] _020840C6: bx lr .balign 4 _020840C8: .word 0x00004A3C thumb_func_start FUN_020840CC FUN_020840CC: ; 0x020840CC push {r3-r5, lr} add r5, r0, #0x0 ldr r0, _0208410C ; =0x00004A34 add r4, r3, #0x0 mov r1, #0x0 str r1, [r4, r0] mov r1, #0x1 add r0, #0xc strb r1, [r4, r0] bl FUN_02031190 add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_02084270 add r0, r4, #0x0 bl FUN_021D844C lsl r2, r5, #0x18 add r0, r4, #0x0 mov r1, #0x19 lsr r2, r2, #0x18 bl FUN_021D88E4 mov r0, #0x1 add r1, r0, #0x0 bl FUN_020334E8 ldr r0, _02084110 ; =0x00000658 bl FUN_020054C8 pop {r3-r5, pc} .balign 4 _0208410C: .word 0x00004A34 _02084110: .word 0x00000658 thumb_func_start FUN_02084114 FUN_02084114: ; 0x02084114 add r0, r3, #0x0 ldr r3, _02084120 ; =FUN_021D88E4 mov r1, #0x2 mov r2, #0x0 bx r3 nop _02084120: .word FUN_021D88E4 + 1 thumb_func_start FUN_02084124 FUN_02084124: ; 0x02084124 push {r3-r6, lr} sub sp, #0x4 add r6, r0, #0x0 add r5, r2, #0x0 add r4, r3, #0x0 cmp r6, #0x0 beq _020841BA bl FUN_02031190 cmp r0, #0x0 bne _02084204 ldrb r0, [r5, #0x0] add r1, sp, #0x0 strb r0, [r1, #0x0] ldrb r0, [r5, #0x1] strb r0, [r1, #0x1] ldrb r0, [r5, #0x2] strb r0, [r1, #0x2] ldrb r0, [r5, #0x3] strb r0, [r1, #0x3] ldr r0, _02084208 ; =0x00004A48 strb r6, [r1, #0x0] ldr r0, [r4, r0] strb r0, [r1, #0x1] ldrb r0, [r5, #0x2] cmp r0, #0x0 beq _0208415E cmp r0, #0x1 b _020841AC _0208415E: bl FUN_02030F20 ldr r1, _02084208 ; =0x00004A48 ldr r1, [r4, r1] cmp r1, r0 bne _02084186 bl FUN_021D8C24 ldr r1, _02084208 ; =0x00004A48 ldr r1, [r4, r1] cmp r1, r0 bne _02084186 bl FUN_0202CB8C blx FUN_020DDC5C ldr r1, _02084208 ; =0x00004A48 ldr r2, [r4, r1] cmp r2, r0 beq _0208418E _02084186: mov r1, #0x0 add r0, sp, #0x0 strb r1, [r0, #0x3] b _020841AC _0208418E: add r0, r1, #0x0 add r0, #0x8 mov r2, #0x1 ldr r3, [r4, r0] add r0, r2, #0x0 lsl r0, r6 orr r0, r3 add r1, #0x8 str r0, [r4, r1] add r0, sp, #0x0 strb r2, [r0, #0x3] bl FUN_02030F20 bl FUN_02032B6C _020841AC: mov r0, #0x70 add r1, sp, #0x0 mov r2, #0x4 bl FUN_02030ADC add sp, #0x4 pop {r3-r6, pc} _020841BA: ldrb r0, [r5, #0x2] cmp r0, #0x0 beq _020841C8 cmp r0, #0x1 beq _020841FA add sp, #0x4 pop {r3-r6, pc} _020841C8: ldrb r6, [r5, #0x0] bl FUN_02031190 cmp r6, r0 bne _02084204 ldrb r0, [r5, #0x3] cmp r0, #0x0 bne _020841E6 add r0, r4, #0x0 mov r1, #0x8 add r2, r6, #0x0 bl FUN_021D88E4 add sp, #0x4 pop {r3-r6, pc} _020841E6: ldrb r1, [r5, #0x1] ldr r0, _0208420C ; =0x00004A5C strh r1, [r4, r0] ldrb r2, [r5, #0x0] add r0, r4, #0x0 mov r1, #0x7 bl FUN_021D88E4 add sp, #0x4 pop {r3-r6, pc} _020841FA: ldrb r2, [r5, #0x0] add r0, r4, #0x0 mov r1, #0x13 bl FUN_021D88E4 _02084204: add sp, #0x4 pop {r3-r6, pc} .balign 4 _02084208: .word 0x00004A48 _0208420C: .word 0x00004A5C thumb_func_start FUN_02084210 FUN_02084210: ; 0x02084210 push {r4, lr} ldrb r2, [r2, #0x0] add r4, r3, #0x0 add r0, r4, #0x0 mov r1, #0x1 bl FUN_021D89CC bl FUN_02031190 cmp r0, #0x0 bne _0208422E mov r0, #0x3b mov r1, #0x0 lsl r0, r0, #0x4 str r1, [r4, r0] _0208422E: pop {r4, pc} thumb_func_start FUN_02084230 FUN_02084230: ; 0x02084230 bx lr .balign 4 thumb_func_start FUN_02084234 FUN_02084234: ; 0x02084234 bx lr .balign 4 thumb_func_start FUN_02084238 FUN_02084238: ; 0x02084238 push {r4, lr} add r4, r3, #0x0 bl FUN_02031190 cmp r0, #0x0 beq _0208424E add r0, r4, #0x0 mov r1, #0xd mov r2, #0x0 bl FUN_021D88E4 _0208424E: pop {r4, pc} thumb_func_start FUN_02084250 FUN_02084250: ; 0x02084250 push {r3-r4, lr} sub sp, #0x4 add r4, r0, #0x0 bl FUN_02031190 cmp r0, #0x0 bne _0208426C add r0, sp, #0x0 strb r4, [r0, #0x0] mov r0, #0x6e add r1, sp, #0x0 mov r2, #0x1 bl FUN_02030ADC _0208426C: add sp, #0x4 pop {r3-r4, pc} thumb_func_start FUN_02084270 FUN_02084270: ; 0x02084270 push {r3-r5, lr} add r4, r0, #0x0 mov r0, #0xed mov r3, #0x0 lsl r0, r0, #0x2 add r5, r4, r0 add r2, r3, #0x0 sub r0, #0xc6 _02084280: ldr r1, [r5, #0x0] add r2, r2, #0x1 eor r3, r1 add r5, r5, #0x4 cmp r2, r0 blt _02084280 ldr r0, _020842AC ; =0x00000F6C str r3, [r4, r0] bl FUN_0201B9EC mov r1, #0xf7 lsl r1, r1, #0x4 str r0, [r4, r1] mov r1, #0xed lsl r1, r1, #0x2 mov r2, #0x2f mov r0, #0x74 add r1, r4, r1 lsl r2, r2, #0x6 bl FUN_02030A78 pop {r3-r5, pc} .balign 4 _020842AC: .word 0x00000F6C thumb_func_start FUN_020842B0 FUN_020842B0: ; 0x020842B0 mov r0, #0x0 bx lr thumb_func_start FUN_020842B4 FUN_020842B4: ; 0x020842B4 mov r0, #0x1 bx lr thumb_func_start FUN_020842B8 FUN_020842B8: ; 0x020842B8 mov r0, #0x4 bx lr thumb_func_start FUN_020842BC FUN_020842BC: ; 0x020842BC ldr r2, _020842CC ; =0x00000F74 add r2, r1, r2 mov r1, #0x2f lsl r1, r1, #0x6 mul r1, r0 add r0, r2, r1 bx lr nop _020842CC: .word 0x00000F74 thumb_func_start FUN_020842D0 FUN_020842D0: ; 0x020842D0 ldr r0, _020842D4 ; =0x020FCA3C bx lr .balign 4 _020842D4: .word 0x020FCA3C thumb_func_start FUN_020842D8 FUN_020842D8: ; 0x020842D8 mov r0, #0x9 bx lr thumb_func_start FUN_020842DC FUN_020842DC: ; 0x020842DC push {r3-r7, lr} sub sp, #0x18 str r1, [sp, #0x4] add r6, r0, #0x0 add r7, r2, #0x0 ldr r0, [sp, #0x4] mov r1, #0x0 add r2, r3, #0x0 bl FUN_0206E710 mov r1, #0xe add r4, r0, #0x0 bl FUN_0206E7DC cmp r0, #0x1 beq _02084308 add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x18 mov r0, #0x0 pop {r3-r7, pc} _02084308: add r0, r6, #0x0 mov r1, #0x9f mov r2, #0x0 bl FUN_020671BC add r5, r0, #0x0 add r0, r4, #0x0 mov r1, #0xf bl FUN_0206E7DC cmp r0, #0x0 beq _02084332 mov r0, #0x7 tst r0, r5 beq _02084332 add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x18 mov r0, #0x1 pop {r3-r7, pc} _02084332: add r0, r4, #0x0 mov r1, #0x10 bl FUN_0206E7DC cmp r0, #0x0 beq _02084350 mov r0, #0x88 tst r0, r5 beq _02084350 add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x18 mov r0, #0x1 pop {r3-r7, pc} _02084350: add r0, r4, #0x0 mov r1, #0x11 bl FUN_0206E7DC cmp r0, #0x0 beq _0208436E mov r0, #0x10 tst r0, r5 beq _0208436E add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x18 mov r0, #0x1 pop {r3-r7, pc} _0208436E: add r0, r4, #0x0 mov r1, #0x12 bl FUN_0206E7DC cmp r0, #0x0 beq _0208438C mov r0, #0x20 tst r0, r5 beq _0208438C add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x18 mov r0, #0x1 pop {r3-r7, pc} _0208438C: add r0, r4, #0x0 mov r1, #0x13 bl FUN_0206E7DC cmp r0, #0x0 beq _020843AA mov r0, #0x40 tst r0, r5 beq _020843AA add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x18 mov r0, #0x1 pop {r3-r7, pc} _020843AA: add r0, r6, #0x0 mov r1, #0xa2 mov r2, #0x0 bl FUN_020671BC add r5, r0, #0x0 add r0, r4, #0x0 mov r1, #0x17 bl FUN_0206E7DC cmp r0, #0x0 bne _020843CE add r0, r4, #0x0 mov r1, #0x18 bl FUN_0206E7DC cmp r0, #0x0 beq _020843EA _020843CE: add r0, r4, #0x0 mov r1, #0x19 bl FUN_0206E7DC cmp r0, #0x0 bne _020843EA cmp r5, #0x0 bne _02084414 add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x18 mov r0, #0x1 pop {r3-r7, pc} _020843EA: add r0, r4, #0x0 mov r1, #0x26 bl FUN_0206E7DC cmp r0, #0x0 beq _02084414 cmp r5, #0x0 beq _02084414 add r0, r6, #0x0 mov r1, #0xa3 mov r2, #0x0 bl FUN_020671BC cmp r5, r0 bhs _02084414 add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x18 mov r0, #0x1 pop {r3-r7, pc} _02084414: add r0, r4, #0x0 mov r1, #0x19 bl FUN_0206E7DC cmp r0, #0x0 beq _0208443A add r0, r6, #0x0 mov r1, #0xa0 mov r2, #0x0 bl FUN_020671BC cmp r0, #0x64 bhs _0208443A add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x18 mov r0, #0x1 pop {r3-r7, pc} _0208443A: add r0, r4, #0x0 mov r1, #0x1a bl FUN_0206E7DC cmp r0, #0x0 beq _02084464 mov r0, #0x0 str r0, [sp, #0x0] ldr r3, [sp, #0x4] add r1, r6, #0x0 mov r2, #0x3 bl FUN_02069168 cmp r0, #0x0 beq _02084464 add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x18 mov r0, #0x1 pop {r3-r7, pc} _02084464: add r0, r4, #0x0 mov r1, #0x22 bl FUN_0206E7DC cmp r0, #0x0 bne _0208447C add r0, r4, #0x0 mov r1, #0x23 bl FUN_0206E7DC cmp r0, #0x0 beq _020844B2 _0208447C: add r1, r7, #0x0 add r0, r6, #0x0 add r1, #0x3e mov r2, #0x0 bl FUN_020671BC cmp r0, #0x3 bhs _020844B2 add r1, r7, #0x0 add r0, r6, #0x0 add r1, #0x36 mov r2, #0x0 bl FUN_020671BC lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r1, #0x0 bl FUN_0206AB30 cmp r0, #0x5 blo _020844B2 add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x18 mov r0, #0x1 pop {r3-r7, pc} _020844B2: add r0, r4, #0x0 mov r1, #0x24 bl FUN_0206E7DC cmp r0, #0x0 beq _020844D6 add r0, r6, #0x0 add r1, r7, #0x0 bl FUN_02084DF0 cmp r0, #0x1 bne _020844D6 add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x18 mov r0, #0x1 pop {r3-r7, pc} _020844D6: add r0, r4, #0x0 mov r1, #0x25 bl FUN_0206E7DC cmp r0, #0x0 beq _02084502 mov r5, #0x0 _020844E4: add r0, r6, #0x0 add r1, r5, #0x0 bl FUN_02084DF0 cmp r0, #0x1 bne _020844FC add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x18 mov r0, #0x1 pop {r3-r7, pc} _020844FC: add r5, r5, #0x1 cmp r5, #0x4 blt _020844E4 _02084502: add r0, r6, #0x0 mov r1, #0xd mov r2, #0x0 bl FUN_020671BC add r5, r0, #0x0 add r0, r6, #0x0 mov r1, #0xe mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0x14] add r0, r6, #0x0 mov r1, #0xf mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0x10] add r0, r6, #0x0 mov r1, #0x10 mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0xc] add r0, r6, #0x0 mov r1, #0x11 mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0x8] add r0, r6, #0x0 mov r1, #0x12 mov r2, #0x0 bl FUN_020671BC add r7, r0, #0x0 add r0, r6, #0x0 mov r1, #0x5 mov r2, #0x0 bl FUN_020671BC mov r1, #0x49 lsl r1, r1, #0x2 cmp r0, r1 beq _020845C6 add r0, r4, #0x0 mov r1, #0x27 bl FUN_0206E7DC cmp r0, #0x0 beq _020845C6 add r0, r4, #0x0 mov r1, #0x30 bl FUN_0206E7DC cmp r0, #0x0 ble _0208459C cmp r5, #0x64 bge _020845C6 ldr r0, [sp, #0x14] add r1, r5, r0 ldr r0, [sp, #0x10] add r1, r0, r1 ldr r0, [sp, #0xc] add r1, r0, r1 ldr r0, [sp, #0x8] add r0, r0, r1 add r1, r7, r0 ldr r0, _020847F4 ; =0x000001FE cmp r1, r0 bge _020845C6 add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x18 mov r0, #0x1 pop {r3-r7, pc} _0208459C: bge _020845C6 cmp r5, #0x0 ble _020845AE add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x18 mov r0, #0x1 pop {r3-r7, pc} _020845AE: add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_02085000 cmp r0, #0x1 bne _020845C6 add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x18 mov r0, #0x1 pop {r3-r7, pc} _020845C6: add r0, r4, #0x0 mov r1, #0x28 bl FUN_0206E7DC cmp r0, #0x0 beq _02084632 add r0, r4, #0x0 mov r1, #0x31 bl FUN_0206E7DC cmp r0, #0x0 ble _02084606 ldr r0, [sp, #0x14] cmp r0, #0x64 bge _02084632 add r1, r5, r0 ldr r0, [sp, #0x10] add r1, r0, r1 ldr r0, [sp, #0xc] add r1, r0, r1 ldr r0, [sp, #0x8] add r0, r0, r1 add r1, r7, r0 ldr r0, _020847F4 ; =0x000001FE cmp r1, r0 bge _02084632 add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x18 mov r0, #0x1 pop {r3-r7, pc} _02084606: bge _02084632 ldr r0, [sp, #0x14] cmp r0, #0x0 ble _0208461A add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x18 mov r0, #0x1 pop {r3-r7, pc} _0208461A: add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_02085000 cmp r0, #0x1 bne _02084632 add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x18 mov r0, #0x1 pop {r3-r7, pc} _02084632: add r0, r4, #0x0 mov r1, #0x29 bl FUN_0206E7DC cmp r0, #0x0 beq _020846A0 add r0, r4, #0x0 mov r1, #0x32 bl FUN_0206E7DC cmp r0, #0x0 ble _02084674 ldr r0, [sp, #0x10] cmp r0, #0x64 bge _020846A0 ldr r0, [sp, #0x14] add r1, r5, r0 ldr r0, [sp, #0x10] add r1, r0, r1 ldr r0, [sp, #0xc] add r1, r0, r1 ldr r0, [sp, #0x8] add r0, r0, r1 add r1, r7, r0 ldr r0, _020847F4 ; =0x000001FE cmp r1, r0 bge _020846A0 add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x18 mov r0, #0x1 pop {r3-r7, pc} _02084674: bge _020846A0 ldr r0, [sp, #0x10] cmp r0, #0x0 ble _02084688 add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x18 mov r0, #0x1 pop {r3-r7, pc} _02084688: add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_02085000 cmp r0, #0x1 bne _020846A0 add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x18 mov r0, #0x1 pop {r3-r7, pc} _020846A0: add r0, r4, #0x0 mov r1, #0x2a bl FUN_0206E7DC cmp r0, #0x0 beq _0208470E add r0, r4, #0x0 mov r1, #0x33 bl FUN_0206E7DC cmp r0, #0x0 ble _020846E2 ldr r0, [sp, #0xc] cmp r0, #0x64 bge _0208470E ldr r0, [sp, #0x14] add r1, r5, r0 ldr r0, [sp, #0x10] add r1, r0, r1 ldr r0, [sp, #0xc] add r1, r0, r1 ldr r0, [sp, #0x8] add r0, r0, r1 add r1, r7, r0 ldr r0, _020847F4 ; =0x000001FE cmp r1, r0 bge _0208470E add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x18 mov r0, #0x1 pop {r3-r7, pc} _020846E2: bge _0208470E ldr r0, [sp, #0xc] cmp r0, #0x0 ble _020846F6 add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x18 mov r0, #0x1 pop {r3-r7, pc} _020846F6: add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_02085000 cmp r0, #0x1 bne _0208470E add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x18 mov r0, #0x1 pop {r3-r7, pc} _0208470E: add r0, r4, #0x0 mov r1, #0x2b bl FUN_0206E7DC cmp r0, #0x0 beq _0208477C add r0, r4, #0x0 mov r1, #0x34 bl FUN_0206E7DC cmp r0, #0x0 ble _02084750 ldr r0, [sp, #0x8] cmp r0, #0x64 bge _0208477C ldr r0, [sp, #0x14] add r1, r5, r0 ldr r0, [sp, #0x10] add r1, r0, r1 ldr r0, [sp, #0xc] add r1, r0, r1 ldr r0, [sp, #0x8] add r0, r0, r1 add r1, r7, r0 ldr r0, _020847F4 ; =0x000001FE cmp r1, r0 bge _0208477C add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x18 mov r0, #0x1 pop {r3-r7, pc} _02084750: bge _0208477C ldr r0, [sp, #0x8] cmp r0, #0x0 ble _02084764 add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x18 mov r0, #0x1 pop {r3-r7, pc} _02084764: add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_02085000 cmp r0, #0x1 bne _0208477C add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x18 mov r0, #0x1 pop {r3-r7, pc} _0208477C: add r0, r4, #0x0 mov r1, #0x2c bl FUN_0206E7DC cmp r0, #0x0 beq _020847E6 add r0, r4, #0x0 mov r1, #0x35 bl FUN_0206E7DC cmp r0, #0x0 ble _020847BC cmp r7, #0x64 bge _020847E6 ldr r0, [sp, #0x14] add r1, r5, r0 ldr r0, [sp, #0x10] add r1, r0, r1 ldr r0, [sp, #0xc] add r1, r0, r1 ldr r0, [sp, #0x8] add r0, r0, r1 add r1, r7, r0 ldr r0, _020847F4 ; =0x000001FE cmp r1, r0 bge _020847E6 add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x18 mov r0, #0x1 pop {r3-r7, pc} _020847BC: bge _020847E6 cmp r7, #0x0 ble _020847CE add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x18 mov r0, #0x1 pop {r3-r7, pc} _020847CE: add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_02085000 cmp r0, #0x1 bne _020847E6 add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x18 mov r0, #0x1 pop {r3-r7, pc} _020847E6: add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x0 add sp, #0x18 pop {r3-r7, pc} nop _020847F4: .word 0x000001FE thumb_func_start FUN_020847F8 FUN_020847F8: ; 0x020847F8 push {r3-r5, lr} add r5, r1, #0x0 add r1, r2, #0x0 add r4, r3, #0x0 bl FUN_0206B9B0 ldr r3, [sp, #0x10] add r1, r5, #0x0 add r2, r4, #0x0 bl FUN_020842DC pop {r3-r5, pc} thumb_func_start FUN_02084810 FUN_02084810: ; 0x02084810 push {r3-r7, lr} sub sp, #0x70 add r5, r0, #0x0 ldr r0, [sp, #0x88] str r2, [sp, #0x4] str r0, [sp, #0x88] add r0, r1, #0x0 ldr r2, [sp, #0x88] mov r1, #0x0 str r3, [sp, #0x8] bl FUN_0206E710 mov r1, #0xe add r4, r0, #0x0 bl FUN_0206E7DC cmp r0, #0x1 beq _02084840 add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x70 mov r0, #0x0 pop {r3-r7, pc} _02084840: mov r6, #0x0 add r0, r5, #0x0 mov r1, #0x9f add r2, r6, #0x0 add r7, r6, #0x0 bl FUN_020671BC str r0, [sp, #0x50] str r0, [sp, #0x54] add r0, r4, #0x0 mov r1, #0xf bl FUN_0206E7DC cmp r0, #0x0 beq _02084868 ldr r1, [sp, #0x54] mov r0, #0x7 bic r1, r0 str r1, [sp, #0x54] mov r7, #0x1 _02084868: add r0, r4, #0x0 mov r1, #0x10 bl FUN_0206E7DC cmp r0, #0x0 beq _0208487E ldr r1, [sp, #0x54] ldr r0, _02084A28 ; =0xFFFFF077 mov r7, #0x1 and r0, r1 str r0, [sp, #0x54] _0208487E: add r0, r4, #0x0 mov r1, #0x11 bl FUN_0206E7DC cmp r0, #0x0 beq _02084894 ldr r1, [sp, #0x54] mov r0, #0x10 bic r1, r0 str r1, [sp, #0x54] mov r7, #0x1 _02084894: add r0, r4, #0x0 mov r1, #0x12 bl FUN_0206E7DC cmp r0, #0x0 beq _020848AA ldr r1, [sp, #0x54] mov r0, #0x20 bic r1, r0 str r1, [sp, #0x54] mov r7, #0x1 _020848AA: add r0, r4, #0x0 mov r1, #0x13 bl FUN_0206E7DC cmp r0, #0x0 beq _020848C0 ldr r1, [sp, #0x54] mov r0, #0x40 bic r1, r0 str r1, [sp, #0x54] mov r7, #0x1 _020848C0: ldr r1, [sp, #0x50] ldr r0, [sp, #0x54] cmp r1, r0 beq _020848D4 add r0, r5, #0x0 mov r1, #0x9f add r2, sp, #0x54 bl FUN_02067830 mov r6, #0x1 _020848D4: add r0, r5, #0x0 mov r1, #0xa2 mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0x50] add r0, r5, #0x0 mov r1, #0xa3 mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0x54] add r0, r4, #0x0 mov r1, #0x17 bl FUN_0206E7DC cmp r0, #0x0 bne _02084904 add r0, r4, #0x0 mov r1, #0x18 bl FUN_0206E7DC cmp r0, #0x0 beq _02084930 _02084904: add r0, r4, #0x0 mov r1, #0x19 bl FUN_0206E7DC cmp r0, #0x0 beq _02084930 ldr r0, [sp, #0x50] cmp r0, #0x0 bne _0208492C add r0, r4, #0x0 mov r1, #0x36 bl FUN_0206E7DC add r3, r0, #0x0 ldr r1, [sp, #0x50] ldr r2, [sp, #0x54] add r0, r5, #0x0 bl FUN_02084F68 mov r6, #0x1 _0208492C: mov r7, #0x1 b _0208495C _02084930: add r0, r4, #0x0 mov r1, #0x26 bl FUN_0206E7DC cmp r0, #0x0 beq _0208495C ldr r1, [sp, #0x50] ldr r0, [sp, #0x54] cmp r1, r0 bge _0208495A add r0, r4, #0x0 mov r1, #0x36 bl FUN_0206E7DC add r3, r0, #0x0 ldr r1, [sp, #0x50] ldr r2, [sp, #0x54] add r0, r5, #0x0 bl FUN_02084F68 mov r6, #0x1 _0208495A: mov r7, #0x1 _0208495C: add r0, r5, #0x0 mov r1, #0xa0 mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0x58] add r0, r4, #0x0 mov r1, #0x19 bl FUN_0206E7DC cmp r0, #0x0 beq _020849B4 ldr r0, [sp, #0x58] cmp r0, #0x64 bge _020849B2 add r0, r5, #0x0 bl FUN_020686F8 add r2, r0, #0x0 add r0, r5, #0x0 mov r1, #0x8 bl FUN_02068018 add r0, r5, #0x0 bl FUN_02066ED8 ldr r0, [sp, #0x50] cmp r0, #0x0 bne _020849B0 add r0, r5, #0x0 mov r1, #0xa3 mov r2, #0x0 bl FUN_020671BC add r2, r0, #0x0 ldr r3, [sp, #0x54] ldr r1, [sp, #0x50] add r0, r5, #0x0 sub r3, r2, r3 str r2, [sp, #0x5c] bl FUN_02084F68 _020849B0: mov r6, #0x1 _020849B2: mov r7, #0x1 _020849B4: add r0, r4, #0x0 mov r1, #0x1a bl FUN_0206E7DC cmp r0, #0x0 beq _020849C2 mov r7, #0x1 _020849C2: add r0, r4, #0x0 mov r1, #0x22 bl FUN_0206E7DC cmp r0, #0x0 beq _020849E2 ldr r1, [sp, #0x4] add r0, r5, #0x0 mov r2, #0x1 bl FUN_02084EC0 cmp r0, #0x1 bne _020849DE mov r6, #0x1 _020849DE: mov r7, #0x1 b _02084A00 _020849E2: add r0, r4, #0x0 mov r1, #0x23 bl FUN_0206E7DC cmp r0, #0x0 beq _02084A00 ldr r1, [sp, #0x4] add r0, r5, #0x0 mov r2, #0x3 bl FUN_02084EC0 cmp r0, #0x1 bne _020849FE mov r6, #0x1 _020849FE: mov r7, #0x1 _02084A00: add r0, r4, #0x0 mov r1, #0x24 bl FUN_0206E7DC cmp r0, #0x0 beq _02084A2C add r0, r4, #0x0 mov r1, #0x37 bl FUN_0206E7DC add r2, r0, #0x0 ldr r1, [sp, #0x4] add r0, r5, #0x0 bl FUN_02084E40 cmp r0, #0x1 bne _02084A24 mov r6, #0x1 _02084A24: mov r7, #0x1 b _02084A66 .balign 4 _02084A28: .word 0xFFFFF077 _02084A2C: add r0, r4, #0x0 mov r1, #0x25 bl FUN_0206E7DC cmp r0, #0x0 beq _02084A66 mov r0, #0x0 str r0, [sp, #0x50] cmp r0, #0x4 bge _02084A64 mov r7, #0x37 _02084A42: add r0, r4, #0x0 add r1, r7, #0x0 bl FUN_0206E7DC add r2, r0, #0x0 ldr r1, [sp, #0x50] add r0, r5, #0x0 bl FUN_02084E40 cmp r0, #0x1 bne _02084A5A mov r6, #0x1 _02084A5A: ldr r0, [sp, #0x50] add r0, r0, #0x1 str r0, [sp, #0x50] cmp r0, #0x4 blt _02084A42 _02084A64: mov r7, #0x1 _02084A66: add r0, r5, #0x0 mov r1, #0xd mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0x50] add r0, r5, #0x0 mov r1, #0xe mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0x54] add r0, r5, #0x0 mov r1, #0xf mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0x58] add r0, r5, #0x0 mov r1, #0x10 mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0x5c] add r0, r5, #0x0 mov r1, #0x11 mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0x60] add r0, r5, #0x0 mov r1, #0x12 mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0x64] add r0, r5, #0x0 mov r1, #0x5 mov r2, #0x0 bl FUN_020671BC mov r1, #0x49 lsl r1, r1, #0x2 cmp r0, r1 beq _02084B20 add r0, r4, #0x0 mov r1, #0x27 bl FUN_0206E7DC cmp r0, #0x0 beq _02084B20 add r0, r4, #0x0 mov r1, #0x30 bl FUN_0206E7DC ldr r1, [sp, #0x60] ldr r2, [sp, #0x54] str r1, [sp, #0x10] ldr r1, [sp, #0x5c] str r0, [sp, #0xc] str r1, [sp, #0x14] ldr r1, [sp, #0x58] str r0, [sp, #0x6c] add r2, r2, r1 ldr r1, [sp, #0x14] ldr r3, [sp, #0x64] add r2, r1, r2 ldr r1, [sp, #0x10] ldr r0, [sp, #0x50] add r1, r1, r2 ldr r2, [sp, #0xc] add r1, r3, r1 bl FUN_02084FA8 mov r1, #0x0 mvn r1, r1 str r0, [sp, #0x68] cmp r0, r1 beq _02084B18 str r0, [sp, #0x50] add r0, r5, #0x0 mov r1, #0xd add r2, sp, #0x50 bl FUN_02067830 add r0, r5, #0x0 bl FUN_02066ED8 mov r6, #0x1 _02084B18: ldr r0, [sp, #0x6c] cmp r0, #0x0 ble _02084B20 mov r7, #0x1 _02084B20: add r0, r4, #0x0 mov r1, #0x28 bl FUN_0206E7DC cmp r0, #0x0 beq _02084B80 add r0, r4, #0x0 mov r1, #0x31 bl FUN_0206E7DC ldr r1, [sp, #0x60] ldr r2, [sp, #0x50] str r1, [sp, #0x1c] ldr r1, [sp, #0x5c] str r0, [sp, #0x18] str r1, [sp, #0x20] ldr r1, [sp, #0x58] str r0, [sp, #0x6c] add r2, r2, r1 ldr r1, [sp, #0x20] ldr r3, [sp, #0x64] add r2, r1, r2 ldr r1, [sp, #0x1c] ldr r0, [sp, #0x54] add r1, r1, r2 ldr r2, [sp, #0x18] add r1, r3, r1 bl FUN_02084FA8 mov r1, #0x0 mvn r1, r1 str r0, [sp, #0x68] cmp r0, r1 beq _02084B78 str r0, [sp, #0x54] add r0, r5, #0x0 mov r1, #0xe add r2, sp, #0x54 bl FUN_02067830 add r0, r5, #0x0 bl FUN_02066ED8 mov r6, #0x1 _02084B78: ldr r0, [sp, #0x6c] cmp r0, #0x0 ble _02084B80 mov r7, #0x1 _02084B80: add r0, r4, #0x0 mov r1, #0x29 bl FUN_0206E7DC cmp r0, #0x0 beq _02084BE0 add r0, r4, #0x0 mov r1, #0x32 bl FUN_0206E7DC ldr r1, [sp, #0x60] ldr r2, [sp, #0x50] str r1, [sp, #0x28] ldr r1, [sp, #0x5c] str r0, [sp, #0x24] str r1, [sp, #0x2c] ldr r1, [sp, #0x54] str r0, [sp, #0x6c] add r2, r2, r1 ldr r1, [sp, #0x2c] ldr r3, [sp, #0x64] add r2, r1, r2 ldr r1, [sp, #0x28] ldr r0, [sp, #0x58] add r1, r1, r2 ldr r2, [sp, #0x24] add r1, r3, r1 bl FUN_02084FA8 mov r1, #0x0 mvn r1, r1 str r0, [sp, #0x68] cmp r0, r1 beq _02084BD8 str r0, [sp, #0x58] add r0, r5, #0x0 mov r1, #0xf add r2, sp, #0x58 bl FUN_02067830 add r0, r5, #0x0 bl FUN_02066ED8 mov r6, #0x1 _02084BD8: ldr r0, [sp, #0x6c] cmp r0, #0x0 ble _02084BE0 mov r7, #0x1 _02084BE0: add r0, r4, #0x0 mov r1, #0x2a bl FUN_0206E7DC cmp r0, #0x0 beq _02084C40 add r0, r4, #0x0 mov r1, #0x33 bl FUN_0206E7DC ldr r1, [sp, #0x60] ldr r2, [sp, #0x50] str r1, [sp, #0x34] ldr r1, [sp, #0x58] str r0, [sp, #0x30] str r1, [sp, #0x38] ldr r1, [sp, #0x54] str r0, [sp, #0x6c] add r2, r2, r1 ldr r1, [sp, #0x38] ldr r3, [sp, #0x64] add r2, r1, r2 ldr r1, [sp, #0x34] ldr r0, [sp, #0x5c] add r1, r1, r2 ldr r2, [sp, #0x30] add r1, r3, r1 bl FUN_02084FA8 mov r1, #0x0 mvn r1, r1 str r0, [sp, #0x68] cmp r0, r1 beq _02084C38 str r0, [sp, #0x5c] add r0, r5, #0x0 mov r1, #0x10 add r2, sp, #0x5c bl FUN_02067830 add r0, r5, #0x0 bl FUN_02066ED8 mov r6, #0x1 _02084C38: ldr r0, [sp, #0x6c] cmp r0, #0x0 ble _02084C40 mov r7, #0x1 _02084C40: add r0, r4, #0x0 mov r1, #0x2b bl FUN_0206E7DC cmp r0, #0x0 beq _02084CA0 add r0, r4, #0x0 mov r1, #0x34 bl FUN_0206E7DC ldr r1, [sp, #0x5c] ldr r2, [sp, #0x50] str r1, [sp, #0x40] ldr r1, [sp, #0x58] str r0, [sp, #0x3c] str r1, [sp, #0x44] ldr r1, [sp, #0x54] str r0, [sp, #0x6c] add r2, r2, r1 ldr r1, [sp, #0x44] ldr r3, [sp, #0x64] add r2, r1, r2 ldr r1, [sp, #0x40] ldr r0, [sp, #0x60] add r1, r1, r2 ldr r2, [sp, #0x3c] add r1, r3, r1 bl FUN_02084FA8 mov r1, #0x0 mvn r1, r1 str r0, [sp, #0x68] cmp r0, r1 beq _02084C98 str r0, [sp, #0x60] add r0, r5, #0x0 mov r1, #0x11 add r2, sp, #0x60 bl FUN_02067830 add r0, r5, #0x0 bl FUN_02066ED8 mov r6, #0x1 _02084C98: ldr r0, [sp, #0x6c] cmp r0, #0x0 ble _02084CA0 mov r7, #0x1 _02084CA0: add r0, r4, #0x0 mov r1, #0x2c bl FUN_0206E7DC cmp r0, #0x0 beq _02084D00 add r0, r4, #0x0 mov r1, #0x35 bl FUN_0206E7DC ldr r1, [sp, #0x5c] ldr r2, [sp, #0x50] str r1, [sp, #0x4c] ldr r1, [sp, #0x58] str r0, [sp, #0x48] mov r12, r1 ldr r1, [sp, #0x54] str r0, [sp, #0x6c] add r1, r2, r1 mov r2, r12 add r2, r2, r1 ldr r1, [sp, #0x4c] ldr r3, [sp, #0x60] add r1, r1, r2 ldr r0, [sp, #0x64] ldr r2, [sp, #0x48] add r1, r3, r1 bl FUN_02084FA8 mov r1, #0x0 mvn r1, r1 str r0, [sp, #0x68] cmp r0, r1 beq _02084CF8 str r0, [sp, #0x64] add r0, r5, #0x0 mov r1, #0x12 add r2, sp, #0x64 bl FUN_02067830 add r0, r5, #0x0 bl FUN_02066ED8 mov r6, #0x1 _02084CF8: ldr r0, [sp, #0x6c] cmp r0, #0x0 ble _02084D00 mov r7, #0x1 _02084D00: cmp r6, #0x0 bne _02084D14 cmp r7, #0x1 bne _02084D14 add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x70 mov r0, #0x0 pop {r3-r7, pc} _02084D14: add r0, r5, #0x0 mov r1, #0x9 mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0x50] cmp r0, #0x64 bge _02084D54 add r0, r4, #0x0 mov r1, #0x2d bl FUN_0206E7DC cmp r0, #0x0 beq _02084DC2 add r0, r4, #0x0 mov r1, #0x38 bl FUN_0206E7DC add r2, r0, #0x0 ldr r0, [sp, #0x88] str r0, [sp, #0x0] ldr r1, [sp, #0x50] ldr r3, [sp, #0x8] add r0, r5, #0x0 bl FUN_0208508C add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x70 add r0, r6, #0x0 pop {r3-r7, pc} _02084D54: blt _02084D8A cmp r0, #0xc8 bge _02084D8A add r0, r4, #0x0 mov r1, #0x2e bl FUN_0206E7DC cmp r0, #0x0 beq _02084DC2 add r0, r4, #0x0 mov r1, #0x39 bl FUN_0206E7DC add r2, r0, #0x0 ldr r0, [sp, #0x88] str r0, [sp, #0x0] ldr r1, [sp, #0x50] ldr r3, [sp, #0x8] add r0, r5, #0x0 bl FUN_0208508C add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x70 add r0, r6, #0x0 pop {r3-r7, pc} _02084D8A: cmp r0, #0xc8 blt _02084DC2 cmp r0, #0xff bgt _02084DC2 add r0, r4, #0x0 mov r1, #0x2f bl FUN_0206E7DC cmp r0, #0x0 beq _02084DC2 add r0, r4, #0x0 mov r1, #0x3a bl FUN_0206E7DC add r2, r0, #0x0 ldr r0, [sp, #0x88] str r0, [sp, #0x0] ldr r1, [sp, #0x50] ldr r3, [sp, #0x8] add r0, r5, #0x0 bl FUN_0208508C add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x70 add r0, r6, #0x0 pop {r3-r7, pc} _02084DC2: add r0, r4, #0x0 bl FUN_02016A18 add r0, r6, #0x0 add sp, #0x70 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02084DD0 FUN_02084DD0: ; 0x02084DD0 push {r3-r5, lr} add r5, r1, #0x0 add r1, r2, #0x0 add r4, r3, #0x0 bl FUN_0206B9B0 ldr r1, [sp, #0x14] add r3, sp, #0x0 str r1, [sp, #0x0] ldrh r3, [r3, #0x10] add r1, r5, #0x0 add r2, r4, #0x0 bl FUN_02084810 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02084DF0 FUN_02084DF0: ; 0x02084DF0 push {r3-r7, lr} add r6, r1, #0x0 add r1, #0x36 mov r2, #0x0 add r5, r0, #0x0 bl FUN_020671BC lsl r0, r0, #0x10 lsr r7, r0, #0x10 bne _02084E08 mov r0, #0x0 pop {r3-r7, pc} _02084E08: add r1, r6, #0x0 add r0, r5, #0x0 add r1, #0x3a mov r2, #0x0 bl FUN_020671BC lsl r0, r0, #0x18 add r6, #0x3e lsr r4, r0, #0x18 add r0, r5, #0x0 add r1, r6, #0x0 mov r2, #0x0 bl FUN_020671BC lsl r0, r0, #0x18 lsr r1, r0, #0x18 add r0, r7, #0x0 bl FUN_0206AB30 cmp r4, r0 bhs _02084E36 mov r0, #0x1 b _02084E38 _02084E36: mov r0, #0x0 _02084E38: lsl r0, r0, #0x18 lsr r0, r0, #0x18 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02084E40 FUN_02084E40: ; 0x02084E40 push {r3-r7, lr} sub sp, #0x8 add r5, r1, #0x0 add r4, r2, #0x0 add r1, #0x36 mov r2, #0x0 add r6, r0, #0x0 bl FUN_020671BC lsl r0, r0, #0x10 lsr r7, r0, #0x10 bne _02084E5E add sp, #0x8 mov r0, #0x0 pop {r3-r7, pc} _02084E5E: add r0, r5, #0x0 str r0, [sp, #0x0] add r0, #0x3a str r0, [sp, #0x0] ldr r1, [sp, #0x0] add r0, r6, #0x0 mov r2, #0x0 bl FUN_020671BC add r1, sp, #0x4 strb r0, [r1, #0x0] add r5, #0x3e add r0, r6, #0x0 add r1, r5, #0x0 mov r2, #0x0 bl FUN_020671BC add r1, r0, #0x0 lsl r1, r1, #0x18 add r0, r7, #0x0 lsr r1, r1, #0x18 bl FUN_0206AB30 add r1, sp, #0x4 ldrb r2, [r1, #0x0] cmp r2, r0 bhs _02084EB8 cmp r4, #0x7f bne _02084E9C strb r0, [r1, #0x0] b _02084EA8 _02084E9C: add r2, r2, r4 strb r2, [r1, #0x0] ldrb r2, [r1, #0x0] cmp r2, r0 bls _02084EA8 strb r0, [r1, #0x0] _02084EA8: ldr r1, [sp, #0x0] add r0, r6, #0x0 add r2, sp, #0x4 bl FUN_02067830 add sp, #0x8 mov r0, #0x1 pop {r3-r7, pc} _02084EB8: mov r0, #0x0 add sp, #0x8 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02084EC0 FUN_02084EC0: ; 0x02084EC0 push {r4-r7, lr} sub sp, #0xc add r6, r2, #0x0 add r4, r1, #0x0 str r1, [sp, #0x0] add r1, #0x3e mov r2, #0x0 add r5, r0, #0x0 str r1, [sp, #0x0] bl FUN_020671BC add r1, sp, #0x8 strb r0, [r1, #0x0] ldrb r0, [r1, #0x0] cmp r0, #0x3 bne _02084EE6 add sp, #0xc mov r0, #0x0 pop {r4-r7, pc} _02084EE6: add r1, r4, #0x0 add r0, r5, #0x0 add r1, #0x36 mov r2, #0x0 bl FUN_020671BC lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r1, #0x0 str r0, [sp, #0x4] bl FUN_0206AB30 cmp r0, #0x5 bhs _02084F08 add sp, #0xc mov r0, #0x0 pop {r4-r7, pc} _02084F08: add r4, #0x3a add r0, r5, #0x0 add r1, r4, #0x0 mov r2, #0x0 bl FUN_020671BC add r1, sp, #0x8 strb r0, [r1, #0x1] ldrb r1, [r1, #0x0] ldr r0, [sp, #0x4] bl FUN_0206AB30 add r7, r0, #0x0 add r0, sp, #0x8 ldrb r0, [r0, #0x0] add r0, r0, r6 cmp r0, #0x3 bls _02084F30 mov r0, #0x3 b _02084F34 _02084F30: lsl r0, r0, #0x18 lsr r0, r0, #0x18 _02084F34: add r1, sp, #0x8 strb r0, [r1, #0x0] ldrb r1, [r1, #0x0] ldr r0, [sp, #0x4] bl FUN_0206AB30 add r1, sp, #0x8 ldrb r2, [r1, #0x1] add r0, r2, r0 sub r0, r0, r7 strb r0, [r1, #0x1] ldr r1, [sp, #0x0] add r0, r5, #0x0 add r2, sp, #0x8 bl FUN_02067830 add r2, sp, #0x8 add r0, r5, #0x0 add r1, r4, #0x0 add r2, #0x1 bl FUN_02067830 mov r0, #0x1 add sp, #0xc pop {r4-r7, pc} .balign 4 thumb_func_start FUN_02084F68 FUN_02084F68: ; 0x02084F68 push {r0-r3} push {r3, lr} cmp r2, #0x1 bne _02084F74 mov r3, #0x1 b _02084F8A _02084F74: cmp r3, #0xff bne _02084F7C add r3, r2, #0x0 b _02084F8A _02084F7C: cmp r3, #0xfe bne _02084F84 lsr r3, r2, #0x1 b _02084F8A _02084F84: cmp r3, #0xfd bne _02084F8A lsr r3, r2, #0x2 _02084F8A: ldr r1, [sp, #0xc] add r1, r1, r3 cmp r1, r2 bls _02084F96 str r2, [sp, #0xc] b _02084F98 _02084F96: str r1, [sp, #0xc] _02084F98: mov r1, #0xa2 add r2, sp, #0xc bl FUN_02067830 pop {r3} pop {r3} add sp, #0x10 bx r3 thumb_func_start FUN_02084FA8 FUN_02084FA8: ; 0x02084FA8 push {r3-r4} cmp r0, #0x0 bne _02084FBA cmp r2, #0x0 bge _02084FBA mov r0, #0x0 mvn r0, r0 pop {r3-r4} bx lr _02084FBA: cmp r0, #0x64 blt _02084FCA cmp r2, #0x0 ble _02084FCA mov r0, #0x0 mvn r0, r0 pop {r3-r4} bx lr _02084FCA: ldr r3, _02084FFC ; =0x000001FE add r4, r0, r1 cmp r4, r3 blt _02084FDE cmp r2, #0x0 ble _02084FDE mov r0, #0x0 mvn r0, r0 pop {r3-r4} bx lr _02084FDE: add r0, r0, r2 cmp r0, #0x64 ble _02084FE8 mov r0, #0x64 b _02084FEE _02084FE8: cmp r0, #0x0 bge _02084FEE mov r0, #0x0 _02084FEE: ldr r2, _02084FFC ; =0x000001FE add r3, r0, r1 cmp r3, r2 ble _02084FF8 sub r0, r2, r1 _02084FF8: pop {r3-r4} bx lr .balign 4 _02084FFC: .word 0x000001FE thumb_func_start FUN_02085000 FUN_02085000: ; 0x02085000 push {r4, lr} add r4, r1, #0x0 mov r1, #0x9 mov r2, #0x0 bl FUN_020671BC cmp r0, #0xff blt _02085014 mov r0, #0x0 pop {r4, pc} _02085014: cmp r0, #0x64 bge _02085038 add r0, r4, #0x0 mov r1, #0x2d bl FUN_0206E7DC cmp r0, #0x0 beq _02085034 add r0, r4, #0x0 mov r1, #0x38 bl FUN_0206E7DC cmp r0, #0x0 ble _02085034 mov r0, #0x1 pop {r4, pc} _02085034: mov r0, #0x0 pop {r4, pc} _02085038: blt _0208505E cmp r0, #0xc8 bge _0208505E add r0, r4, #0x0 mov r1, #0x2e bl FUN_0206E7DC cmp r0, #0x0 beq _0208505A add r0, r4, #0x0 mov r1, #0x39 bl FUN_0206E7DC cmp r0, #0x0 ble _0208505A mov r0, #0x1 pop {r4, pc} _0208505A: mov r0, #0x0 pop {r4, pc} _0208505E: cmp r0, #0xc8 blt _02085086 cmp r0, #0xff bge _02085086 add r0, r4, #0x0 mov r1, #0x2f bl FUN_0206E7DC cmp r0, #0x0 beq _02085082 add r0, r4, #0x0 mov r1, #0x3a bl FUN_0206E7DC cmp r0, #0x0 ble _02085082 mov r0, #0x1 pop {r4, pc} _02085082: mov r0, #0x0 pop {r4, pc} _02085086: mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_0208508C FUN_0208508C: ; 0x0208508C push {r0-r3} push {r4-r6, lr} add r4, r1, #0x0 add r5, r0, #0x0 add r6, r3, #0x0 cmp r4, #0xff bne _020850AA ldr r0, [sp, #0x18] cmp r0, #0x0 ble _020850AA mov r0, #0x0 pop {r4-r6} pop {r3} add sp, #0x10 bx r3 _020850AA: cmp r4, #0x0 bne _020850BE ldr r0, [sp, #0x18] cmp r0, #0x0 bge _020850BE mov r0, #0x0 pop {r4-r6} pop {r3} add sp, #0x10 bx r3 _020850BE: ldr r0, [sp, #0x18] cmp r0, #0x0 ble _02085114 add r0, r5, #0x0 mov r1, #0x6 mov r2, #0x0 bl FUN_020671BC lsl r0, r0, #0x10 ldr r2, [sp, #0x20] lsr r0, r0, #0x10 mov r1, #0x1 bl FUN_0206E7B8 cmp r0, #0x34 bne _020850EC ldr r1, [sp, #0x18] mov r0, #0x96 mul r0, r1 mov r1, #0x64 blx _s32_div_f str r0, [sp, #0x18] _020850EC: add r0, r5, #0x0 mov r1, #0x9a mov r2, #0x0 bl FUN_020671BC cmp r0, #0xb bne _02085100 ldr r0, [sp, #0x18] add r0, r0, #0x1 str r0, [sp, #0x18] _02085100: add r0, r5, #0x0 mov r1, #0x97 mov r2, #0x0 bl FUN_020671BC cmp r6, r0 bne _02085114 ldr r0, [sp, #0x18] add r0, r0, #0x1 str r0, [sp, #0x18] _02085114: ldr r0, [sp, #0x18] add r0, r0, r4 str r0, [sp, #0x18] cmp r0, #0xff ble _02085122 mov r0, #0xff str r0, [sp, #0x18] _02085122: ldr r0, [sp, #0x18] cmp r0, #0x0 bge _0208512C mov r0, #0x0 str r0, [sp, #0x18] _0208512C: add r0, r5, #0x0 mov r1, #0x9 add r2, sp, #0x18 bl FUN_02067830 mov r0, #0x1 pop {r4-r6} pop {r3} add sp, #0x10 bx r3 thumb_func_start FUN_02085140 FUN_02085140: ; 0x02085140 push {r4-r7, lr} sub sp, #0xc str r0, [sp, #0x0] bl FUN_0206B9AC mov r7, #0x0 str r0, [sp, #0x4] cmp r0, #0x0 ble _020851B4 mov r6, #0x7f _02085154: ldr r0, [sp, #0x0] add r1, r7, #0x0 bl FUN_0206B9B0 mov r1, #0xab mov r2, #0x0 add r5, r0, #0x0 bl FUN_020671BC cmp r0, #0x0 beq _020851AC add r0, r5, #0x0 mov r1, #0xa3 mov r2, #0x0 bl FUN_020671BC str r0, [sp, #0x8] add r0, r5, #0x0 mov r1, #0xa2 add r2, sp, #0x8 bl FUN_02067830 mov r0, #0x0 str r0, [sp, #0x8] add r0, r5, #0x0 mov r1, #0x9f add r2, sp, #0x8 bl FUN_02067830 mov r4, #0x0 _02085190: add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02084DF0 cmp r0, #0x1 bne _020851A6 add r0, r5, #0x0 add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_02084E40 _020851A6: add r4, r4, #0x1 cmp r4, #0x4 blt _02085190 _020851AC: ldr r0, [sp, #0x4] add r7, r7, #0x1 cmp r7, r0 blt _02085154 _020851B4: add sp, #0xc pop {r4-r7, pc} thumb_func_start FUN_020851B8 FUN_020851B8: ; 0x020851B8 push {r3, lr} mov r1, #0xc bl FUN_02016998 mov r1, #0x0 strb r1, [r0, #0x0] strb r1, [r0, #0x1] strb r1, [r0, #0x2] strb r1, [r0, #0x3] strb r1, [r0, #0x4] strb r1, [r0, #0x5] strb r1, [r0, #0x6] strb r1, [r0, #0x7] strb r1, [r0, #0x8] strb r1, [r0, #0x9] strb r1, [r0, #0xa] strb r1, [r0, #0xb] pop {r3, pc} thumb_func_start FUN_020851DC FUN_020851DC: ; 0x020851DC push {r4-r6, lr} sub r1, #0x95 lsl r1, r1, #0x10 lsr r6, r1, #0x10 add r1, r6, #0x0 add r5, r0, #0x0 add r4, r2, #0x0 bl FUN_02085200 cmp r4, #0x1 bne _020851F4 strb r6, [r5, #0x8] _020851F4: pop {r4-r6, pc} .balign 4 thumb_func_start FUN_020851F8 FUN_020851F8: ; 0x020851F8 strb r1, [r0, #0x9] strb r2, [r0, #0xa] strb r3, [r0, #0xb] bx lr thumb_func_start FUN_02085200 FUN_02085200: ; 0x02085200 push {r3-r6} lsr r6, r1, #0x1f lsl r5, r1, #0x1b lsr r2, r1, #0x5 lsl r4, r2, #0x2 sub r5, r5, r6 mov r1, #0x1b ror r5, r1 ldr r3, [r0, r4] mov r2, #0x1 add r1, r6, r5 lsl r2, r1 add r1, r3, #0x0 orr r1, r2 str r1, [r0, r4] pop {r3-r6} bx lr .balign 4 thumb_func_start FUN_02085224 FUN_02085224: ; 0x02085224 push {r4-r5} lsr r5, r1, #0x1f lsl r4, r1, #0x1b lsr r1, r1, #0x5 lsl r1, r1, #0x2 sub r4, r4, r5 mov r3, #0x1b ror r4, r3 mov r2, #0x1 add r3, r5, r4 add r4, r2, #0x0 lsl r4, r3 ldr r0, [r0, r1] tst r0, r4 bne _02085244 mov r2, #0x0 _02085244: lsl r0, r2, #0x18 lsr r0, r0, #0x18 pop {r4-r5} bx lr thumb_func_start FUN_0208524C FUN_0208524C: ; 0x0208524C ldrb r3, [r0, #0x9] strb r3, [r1, #0x0] ldrb r0, [r0, #0xa] strb r0, [r2, #0x0] bx lr .balign 4 thumb_func_start FUN_02085258 FUN_02085258: ; 0x02085258 ldr r3, _02085260 ; =FUN_02006670 add r1, r0, #0x0 mov r0, #0x44 bx r3 .balign 4 _02085260: .word FUN_02006670 thumb_func_start FUN_02085264 FUN_02085264: ; 0x02085264 ldr r3, _02085268 ; =FUN_02006704 bx r3 .balign 4 _02085268: .word FUN_02006704 thumb_func_start FUN_0208526C FUN_0208526C: ; 0x0208526C ldr r3, _02085270 ; =FUN_020066F4 bx r3 .balign 4 _02085270: .word FUN_020066F4 thumb_func_start FUN_02085274 FUN_02085274: ; 0x02085274 add r3, r0, #0x0 add r2, r1, #0x0 add r1, r3, #0x0 ldr r3, _02085280 ; =FUN_0200650C mov r0, #0x44 bx r3 .balign 4 _02085280: .word FUN_0200650C thumb_func_start FUN_02085284 FUN_02085284: ; 0x02085284 ldr r3, _0208528C ; =FUN_02085274 sub r0, #0x95 bx r3 nop _0208528C: .word FUN_02085274 thumb_func_start FUN_02085290 FUN_02085290: ; 0x02085290 cmp r1, #0xa bhi _020852E2 add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _020852A0: ; jump table (using 16-bit offset) .short _020852B6 - _020852A0 - 2; case 0 .short _020852BA - _020852A0 - 2; case 1 .short _020852BE - _020852A0 - 2; case 2 .short _020852C2 - _020852A0 - 2; case 3 .short _020852C6 - _020852A0 - 2; case 4 .short _020852CA - _020852A0 - 2; case 5 .short _020852CE - _020852A0 - 2; case 6 .short _020852D2 - _020852A0 - 2; case 7 .short _020852D6 - _020852A0 - 2; case 8 .short _020852DA - _020852A0 - 2; case 9 .short _020852DE - _020852A0 - 2; case 10 _020852B6: ldrh r0, [r0, #0x0] bx lr _020852BA: ldrb r0, [r0, #0x2] bx lr _020852BE: ldrb r0, [r0, #0x3] bx lr _020852C2: ldrb r0, [r0, #0x4] bx lr _020852C6: ldrb r0, [r0, #0x5] bx lr _020852CA: ldrb r0, [r0, #0x6] bx lr _020852CE: ldrb r0, [r0, #0x7] bx lr _020852D2: ldrb r0, [r0, #0x8] bx lr _020852D6: ldrb r0, [r0, #0x9] bx lr _020852DA: ldrb r0, [r0, #0xa] bx lr _020852DE: ldrb r0, [r0, #0xb] bx lr _020852E2: mov r0, #0x0 bx lr .balign 4 thumb_func_start FUN_020852E8 FUN_020852E8: ; 0x020852E8 push {r3-r5, lr} ldr r2, _0208530C ; =0x00000175 add r4, r0, #0x0 add r3, r1, #0x0 mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C add r5, r0, #0x0 add r1, r4, #0x0 bl FUN_0200A914 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0200A8B8 add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 _0208530C: .word 0x00000175 thumb_func_start FUN_02085310 FUN_02085310: ; 0x02085310 push {r3-r5, lr} mov r2, #0x5d add r4, r0, #0x0 add r3, r1, #0x0 mov r0, #0x1 mov r1, #0x1a lsl r2, r2, #0x2 bl FUN_0200A86C add r5, r0, #0x0 add r1, r4, #0x0 bl FUN_0200A914 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0200A8B8 add r0, r4, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02085338 FUN_02085338: ; 0x02085338 push {r3-r7, lr} add r5, r0, #0x0 add r7, r1, #0x0 add r0, r3, #0x0 mov r1, #0x24 add r6, r2, #0x0 bl FUN_02016998 add r4, r0, #0x0 strb r5, [r4, #0x0] strb r7, [r4, #0x1] add r0, r6, #0x0 bl FUN_02024DA0 str r0, [r4, #0xc] add r0, r6, #0x0 bl FUN_02013B5C str r0, [r4, #0x10] add r0, r6, #0x0 bl FUN_020462AC bl FUN_0205ED0C strb r0, [r4, #0x4] mov r1, #0x0 strb r1, [r4, #0x5] mov r0, #0x1 strb r0, [r4, #0x2] add r0, r6, #0x0 strb r1, [r4, #0x3] bl LoadPlayerDataAddress bl FUN_02025084 str r0, [r4, #0x8] cmp r5, #0x2 bne _02085390 add r0, r4, #0x0 add r0, #0x14 mov r1, #0x3 bl FUN_0201373C b _020853A0 _02085390: ldr r0, _020853A4 ; =0x0000FFFF mov r1, #0x0 add r2, r4, #0x0 _02085396: add r1, r1, #0x1 strh r0, [r2, #0x1c] add r2, r2, #0x2 cmp r1, #0x2 blt _02085396 _020853A0: add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 _020853A4: .word 0x0000FFFF thumb_func_start FUN_020853A8 FUN_020853A8: ; 0x020853A8 ldr r3, _020853AC ; =FUN_02016A18 bx r3 .balign 4 _020853AC: .word FUN_02016A18 thumb_func_start FUN_020853B0 FUN_020853B0: ; 0x020853B0 strh r1, [r0, #0x1c] bx lr thumb_func_start FUN_020853B4 FUN_020853B4: ; 0x020853B4 strh r1, [r0, #0x1c] strh r2, [r0, #0x1e] bx lr .balign 4 thumb_func_start FUN_020853BC FUN_020853BC: ; 0x020853BC ldrh r2, [r1, #0x0] strh r2, [r0, #0x14] ldrh r2, [r1, #0x2] strh r2, [r0, #0x16] ldrh r2, [r1, #0x4] strh r2, [r0, #0x18] ldrh r1, [r1, #0x6] strh r1, [r0, #0x1a] bx lr .balign 4 thumb_func_start FUN_020853D0 FUN_020853D0: ; 0x020853D0 mov r1, #0x1 strb r1, [r0, #0x2] mov r1, #0x0 strb r1, [r0, #0x3] bx lr .balign 4 thumb_func_start FUN_020853DC FUN_020853DC: ; 0x020853DC mov r1, #0x1 strb r1, [r0, #0x5] bx lr .balign 4 thumb_func_start FUN_020853E4 FUN_020853E4: ; 0x020853E4 ldrb r0, [r0, #0x2] bx lr thumb_func_start FUN_020853E8 FUN_020853E8: ; 0x020853E8 ldrb r0, [r0, #0x3] bx lr thumb_func_start FUN_020853EC FUN_020853EC: ; 0x020853EC ldrh r0, [r0, #0x1c] bx lr thumb_func_start FUN_020853F0 FUN_020853F0: ; 0x020853F0 ldrh r2, [r0, #0x1c] strh r2, [r1, #0x0] ldrh r0, [r0, #0x1e] strh r0, [r1, #0x2] bx lr .balign 4 thumb_func_start FUN_020853FC FUN_020853FC: ; 0x020853FC add r2, r0, #0x0 ldr r3, _02085408 ; =FUN_02013960 add r2, #0x14 add r0, r1, #0x0 add r1, r2, #0x0 bx r3 .balign 4 _02085408: .word FUN_02013960 thumb_func_start FUN_0208540C FUN_0208540C: ; 0x0208540C ldrb r0, [r0, #0x0] bx lr thumb_func_start FUN_02085410 FUN_02085410: ; 0x02085410 ldrb r0, [r0, #0x1] bx lr thumb_func_start FUN_02085414 FUN_02085414: ; 0x02085414 ldr r0, [r0, #0x8] bx lr thumb_func_start FUN_02085418 FUN_02085418: ; 0x02085418 ldr r0, [r0, #0xc] bx lr thumb_func_start FUN_0208541C FUN_0208541C: ; 0x0208541C ldr r0, [r0, #0x10] bx lr thumb_func_start FUN_02085420 FUN_02085420: ; 0x02085420 ldrb r0, [r0, #0x4] bx lr thumb_func_start FUN_02085424 FUN_02085424: ; 0x02085424 ldrb r0, [r0, #0x5] bx lr thumb_func_start FUN_02085428 FUN_02085428: ; 0x02085428 ldrb r3, [r0, #0x0] cmp r3, #0x0 beq _02085438 cmp r3, #0x1 beq _0208543E cmp r3, #0x2 beq _02085448 bx lr _02085438: ldrh r0, [r0, #0x1c] strh r0, [r1, #0x0] bx lr _0208543E: ldrh r2, [r0, #0x1c] strh r2, [r1, #0x0] ldrh r0, [r0, #0x1e] strh r0, [r1, #0x2] bx lr _02085448: ldrh r1, [r0, #0x14] strh r1, [r2, #0x0] ldrh r1, [r0, #0x16] strh r1, [r2, #0x2] ldrh r1, [r0, #0x18] strh r1, [r2, #0x4] ldrh r0, [r0, #0x1a] strh r0, [r2, #0x6] bx lr .balign 4 thumb_func_start FUN_0208545C FUN_0208545C: ; 0x0208545C push {r3, lr} ldrb r3, [r0, #0x0] cmp r3, #0x0 beq _0208546C cmp r3, #0x1 beq _0208547C cmp r3, #0x2 b _02085494 _0208546C: ldrh r1, [r1, #0x0] ldrh r0, [r0, #0x1c] cmp r1, r0 bne _02085478 mov r0, #0x1 pop {r3, pc} _02085478: mov r0, #0x0 pop {r3, pc} _0208547C: ldrh r3, [r1, #0x0] ldrh r2, [r0, #0x1c] cmp r3, r2 bne _02085490 ldrh r1, [r1, #0x2] ldrh r0, [r0, #0x1e] cmp r1, r0 bne _02085490 mov r0, #0x1 pop {r3, pc} _02085490: mov r0, #0x0 pop {r3, pc} _02085494: add r0, #0x14 add r1, r2, #0x0 bl FUN_02013928 pop {r3, pc} .balign 4 thumb_func_start FUN_020854A0 FUN_020854A0: ; 0x020854A0 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 bl FUN_0208545C cmp r0, #0x0 bne _020854B4 mov r0, #0x1 b _020854B6 _020854B4: mov r0, #0x0 _020854B6: strb r0, [r5, #0x3] mov r1, #0x0 strb r1, [r5, #0x2] add r2, r5, #0x0 _020854BE: ldrh r0, [r4, #0x0] add r1, r1, #0x1 add r4, r4, #0x2 strh r0, [r2, #0x1c] add r2, r2, #0x2 cmp r1, #0x2 blt _020854BE ldrh r0, [r6, #0x0] strh r0, [r5, #0x14] ldrh r0, [r6, #0x2] strh r0, [r5, #0x16] ldrh r0, [r6, #0x4] strh r0, [r5, #0x18] ldrh r0, [r6, #0x6] strh r0, [r5, #0x1a] pop {r4-r6, pc} .balign 4 thumb_func_start FUN_020854E0 FUN_020854E0: ; 0x020854E0 push {r3-r7, lr} sub sp, #0x8 add r5, r0, #0x0 add r7, r1, #0x0 add r6, r2, #0x0 str r3, [sp, #0x0] bl FUN_02025838 str r0, [sp, #0x4] ldr r0, [sp, #0x20] mov r1, #0x1c bl FUN_020169D8 mov r1, #0x0 mov r2, #0x1c add r4, r0, #0x0 blx MI_CpuFill8 ldr r0, [sp, #0x0] strb r0, [r4, #0xf] ldr r0, [sp, #0x4] strb r6, [r4, #0xe] str r0, [r4, #0x18] mov r0, #0x1 strh r0, [r4, #0x0] str r7, [r4, #0x8] mov r0, #0x0 strh r0, [r4, #0xc] ldr r0, [sp, #0x20] str r5, [r4, #0x10] bl FUN_020256BC str r0, [r4, #0x14] bl FUN_02025658 ldr r0, [r4, #0x14] mov r1, #0xff add r2, r6, #0x0 add r3, r5, #0x0 bl FUN_020256DC add r0, r4, #0x0 add sp, #0x8 pop {r3-r7, pc} thumb_func_start FUN_02085538 FUN_02085538: ; 0x02085538 push {r3-r7, lr} add r7, r0, #0x0 add r5, r1, #0x0 add r0, r3, #0x0 mov r1, #0x1c add r6, r2, #0x0 str r3, [sp, #0x0] bl FUN_020169D8 mov r1, #0x0 mov r2, #0x1c add r4, r0, #0x0 blx MI_CpuFill8 mov r0, #0x0 strh r0, [r4, #0x0] str r5, [r4, #0x8] strh r6, [r4, #0xc] add r0, r7, #0x0 str r7, [r4, #0x10] bl FUN_02025838 ldr r3, [sp, #0x0] add r1, r5, #0x0 add r2, r6, #0x0 str r0, [r4, #0x18] bl FUN_020258B0 str r0, [r4, #0x14] add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02085578 FUN_02085578: ; 0x02085578 push {r3-r7, lr} add r7, r2, #0x0 add r5, r0, #0x0 add r6, r1, #0x0 add r0, r7, #0x0 mov r1, #0x1c bl FUN_020169D8 mov r1, #0x0 mov r2, #0x1c add r4, r0, #0x0 blx MI_CpuFill8 mov r0, #0x0 strh r0, [r4, #0x0] str r5, [r4, #0x10] add r0, r7, #0x0 bl FUN_020256BC str r0, [r4, #0x14] ldr r2, [r4, #0x14] add r0, r6, #0x0 mov r1, #0xa9 bl FUN_020671BC add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020855B0 FUN_020855B0: ; 0x020855B0 push {r3-r7, lr} add r7, r2, #0x0 add r5, r0, #0x0 add r6, r1, #0x0 add r0, r7, #0x0 mov r1, #0x1c bl FUN_020169D8 mov r1, #0x0 mov r2, #0x1c add r4, r0, #0x0 blx MI_CpuFill8 mov r0, #0x0 strh r0, [r4, #0x0] add r0, r7, #0x0 str r5, [r4, #0x10] bl FUN_020256BC add r1, r6, #0x0 str r0, [r4, #0x14] bl FUN_020257D0 add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020855E4 FUN_020855E4: ; 0x020855E4 ldr r0, [r0, #0x4] bx lr thumb_func_start FUN_020855E8 FUN_020855E8: ; 0x020855E8 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 bl FUN_020855E4 cmp r0, #0x0 bne _020855FC mov r0, #0x0 pop {r4-r6, pc} _020855FC: ldr r0, [r5, #0x18] ldr r3, [r5, #0x14] add r1, r4, #0x0 add r2, r6, #0x0 bl FUN_02025888 mov r0, #0x1 pop {r4-r6, pc} thumb_func_start FUN_0208560C FUN_0208560C: ; 0x0208560C push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_020855E4 cmp r0, #0x0 bne _0208561E mov r0, #0x0 pop {r3-r5, pc} _0208561E: ldr r2, [r5, #0x14] add r0, r4, #0x0 mov r1, #0xa9 bl FUN_02067830 mov r0, #0x1 pop {r3-r5, pc} thumb_func_start FUN_0208562C FUN_0208562C: ; 0x0208562C push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x14] cmp r0, #0x0 beq _0208563A bl FUN_02016A18 _0208563A: add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} .balign 4 thumb_func_start FUN_02085644 FUN_02085644: ; 0x02085644 push {r3-r7, lr} add r5, r1, #0x0 mov r1, #0x0 add r7, r0, #0x0 add r4, r2, #0x0 str r1, [sp, #0x0] bl FUN_02025864 add r6, r0, #0x0 mov r0, #0x0 mvn r0, r0 cmp r6, r0 beq _0208569E add r0, r4, #0x0 bl FUN_020256BC add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0xa9 add r2, r4, #0x0 bl FUN_020671BC add r0, r7, #0x0 mov r1, #0x0 add r2, r6, #0x0 add r3, r4, #0x0 bl FUN_02025888 add r0, r4, #0x0 bl FUN_02025658 add r0, r5, #0x0 mov r1, #0xa9 add r2, r4, #0x0 bl FUN_02067830 add r0, r5, #0x0 mov r1, #0x6 add r2, sp, #0x0 bl FUN_02067830 add r0, r4, #0x0 bl FUN_02016A18 add r0, r6, #0x0 _0208569E: pop {r3-r7, pc} thumb_func_start FUN_020856A0 FUN_020856A0: ; 0x020856A0 push {r3-r7, lr} add r5, r1, #0x0 add r4, r2, #0x0 mov r1, #0x0 add r2, r5, #0x0 add r7, r0, #0x0 str r1, [sp, #0x0] bl FUN_020258B0 add r6, r0, #0x0 bne _020856BC mov r0, #0x0 mvn r0, r0 pop {r3-r7, pc} _020856BC: bl FUN_020257CC bl FUN_0206EAD8 str r0, [sp, #0x0] add r0, r4, #0x0 mov r1, #0xa9 add r2, r6, #0x0 bl FUN_02067830 add r0, r4, #0x0 mov r1, #0x6 add r2, sp, #0x0 bl FUN_02067830 add r0, r7, #0x0 mov r1, #0x0 add r2, r5, #0x0 bl FUN_02025878 add r0, r6, #0x0 bl FUN_02016A18 add r0, r5, #0x0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020856F0 FUN_020856F0: ; 0x020856F0 push {r3-r7, lr} add r5, r1, #0x0 add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x34 bl FUN_02016998 mov r1, #0x0 mov r2, #0x34 add r6, r0, #0x0 blx MI_CpuFill8 mov r0, #0x0 strh r0, [r6, #0x0] add r0, r4, #0x0 bl FUN_020257C0 str r0, [r6, #0x8] mov r0, #0x8 add r1, r5, #0x0 bl FUN_020219F4 str r0, [r6, #0x10] add r0, r4, #0x0 bl FUN_020257C4 add r1, r0, #0x0 ldr r0, [r6, #0x10] bl FUN_02021E28 add r0, r4, #0x0 bl FUN_020257CC strb r0, [r6, #0xf] add r0, r4, #0x0 bl FUN_020257D8 strb r0, [r6, #0xd] add r0, r4, #0x0 bl FUN_020257DC strb r0, [r6, #0xe] mov r5, #0x0 mov r7, #0x2 _02085748: lsl r1, r5, #0x18 add r0, r4, #0x0 lsr r1, r1, #0x18 add r2, r7, #0x0 bl FUN_020257E0 lsl r1, r5, #0x1 add r1, r6, r1 strh r0, [r1, #0x14] add r0, r5, #0x1 lsl r0, r0, #0x10 lsr r5, r0, #0x10 cmp r5, #0x3 blo _02085748 add r7, r6, #0x0 mov r5, #0x0 add r7, #0x1a _0208576A: lsl r1, r5, #0x18 add r0, r4, #0x0 lsr r1, r1, #0x18 bl FUN_02025814 add r1, r0, #0x0 lsl r0, r5, #0x3 add r0, r7, r0 bl FUN_02013960 add r0, r5, #0x1 lsl r0, r0, #0x10 lsr r5, r0, #0x10 cmp r5, #0x3 blo _0208576A add r0, r6, #0x0 pop {r3-r7, pc} thumb_func_start FUN_0208578C FUN_0208578C: ; 0x0208578C push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x10] cmp r0, #0x0 beq _0208579A bl FUN_02021A20 _0208579A: add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} .balign 4 thumb_func_start FUN_020857A4 FUN_020857A4: ; 0x020857A4 push {r3-r7, lr} add r7, r1, #0x0 add r4, r7, #0x0 add r6, r0, #0x0 mov r5, #0x0 add r4, #0x1a _020857B0: lsl r1, r5, #0x3 lsl r2, r5, #0x18 add r0, r6, #0x0 add r1, r4, r1 lsr r2, r2, #0x18 bl FUN_02025824 add r0, r5, #0x1 lsl r0, r0, #0x10 lsr r5, r0, #0x10 cmp r5, #0x3 blo _020857B0 ldrb r1, [r7, #0xf] add r0, r6, #0x0 bl FUN_020257D0 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020857D4 FUN_020857D4: ; 0x020857D4 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x0 beq _020857F4 bl FUN_02006290 cmp r0, #0x0 beq _020857F4 ldr r0, [r4, #0x0] bl FUN_02006260 mov r0, #0x0 str r0, [r4, #0x0] mov r0, #0x1 pop {r4, pc} _020857F4: mov r0, #0x0 pop {r4, pc} thumb_func_start FUN_020857F8 FUN_020857F8: ; 0x020857F8 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_0200628C mov r2, #0x1 add r5, r0, #0x0 mov r0, #0x3 mov r1, #0x28 lsl r2, r2, #0xc bl FUN_0201681C add r0, r4, #0x0 mov r1, #0x1c mov r2, #0x28 bl FUN_02006268 mov r1, #0x0 mov r2, #0x1c add r4, r0, #0x0 blx MI_CpuFill8 mov r1, #0x28 str r1, [r4, #0x0] ldr r0, [r5, #0x14] bl FUN_020856F0 str r0, [r4, #0x10] ldr r0, [r5, #0x10] bl LoadPlayerDataAddress ldr r1, [r4, #0x10] str r0, [r1, #0x4] ldrh r0, [r5, #0x0] cmp r0, #0x1 bne _02085844 ldrb r1, [r5, #0xf] ldr r0, [r4, #0x10] strb r1, [r0, #0xf] _02085844: ldr r1, [r4, #0x10] ldrb r0, [r1, #0xf] cmp r0, #0xc blo _02085850 mov r0, #0x0 strb r0, [r1, #0xf] _02085850: ldrh r1, [r5, #0x0] ldr r0, [r4, #0x10] strh r1, [r0, #0x0] mov r0, #0x1 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0208585C FUN_0208585C: ; 0x0208585C push {r4-r6, lr} add r6, r0, #0x0 add r5, r1, #0x0 bl FUN_02006278 add r4, r0, #0x0 add r0, r6, #0x0 bl FUN_0200628C add r6, r0, #0x0 ldr r0, [r5, #0x0] cmp r0, #0x4 bls _02085878 b _02085990 _02085878: add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02085884: ; jump table (using 16-bit offset) .short _0208588E - _02085884 - 2; case 0 .short _020858A6 - _02085884 - 2; case 1 .short _020858D2 - _02085884 - 2; case 2 .short _02085900 - _02085884 - 2; case 3 .short _0208595E - _02085884 - 2; case 4 _0208588E: ldrh r1, [r6, #0x0] ldr r0, [r4, #0x10] strh r1, [r0, #0x0] ldr r0, _02085994 ; =0x020FCAA8 ldr r1, [r4, #0x10] ldr r2, [r4, #0x0] bl FUN_02006234 str r0, [r4, #0xc] mov r0, #0x1 str r0, [r5, #0x0] b _02085990 _020858A6: add r0, r4, #0x0 add r0, #0xc bl FUN_020857D4 cmp r0, #0x0 beq _02085990 ldr r0, [r4, #0x10] ldrh r1, [r0, #0x0] cmp r1, #0x3 beq _020858C6 ldr r0, _02085998 ; =0x0000FFFF cmp r1, r0 bne _020858CC mov r0, #0x2 str r0, [r5, #0x0] b _02085990 _020858C6: mov r0, #0x2 str r0, [r5, #0x0] b _02085990 _020858CC: mov r0, #0x3 str r0, [r5, #0x0] b _02085990 _020858D2: ldrh r0, [r6, #0x0] cmp r0, #0x1 bne _020858FC ldr r1, [r4, #0x10] ldrh r0, [r1, #0x0] cmp r0, #0x3 bne _020858F8 ldr r0, [r6, #0x14] bl FUN_020857A4 ldr r0, [r6, #0x10] bl FUN_02029FC8 mov r1, #0x2 bl FUN_0202A170 mov r0, #0x1 str r0, [r6, #0x4] b _020858FC _020858F8: mov r0, #0x0 str r0, [r6, #0x4] _020858FC: mov r0, #0x1 pop {r4-r6, pc} _02085900: ldr r2, [r6, #0x10] ldr r3, [r4, #0x0] mov r0, #0x2 mov r1, #0x0 bl FUN_02085338 str r0, [r4, #0x8] ldr r0, [r4, #0x10] add r1, r0, #0x0 ldrb r0, [r0, #0x2] add r1, #0x1a lsl r0, r0, #0x3 add r0, r1, r0 bl FUN_0201385C cmp r0, #0x0 beq _02085938 ldr r1, [r4, #0x10] add r0, r4, #0x0 add r2, r1, #0x0 ldrb r1, [r1, #0x2] add r2, #0x1a add r0, #0x14 lsl r1, r1, #0x3 add r1, r2, r1 bl FUN_02013960 b _02085942 _02085938: add r0, r4, #0x0 add r0, #0x14 mov r1, #0x3 bl FUN_0201373C _02085942: add r1, r4, #0x0 ldr r0, [r4, #0x8] add r1, #0x14 bl FUN_020853BC ldr r0, _0208599C ; =0x020FCAB8 ldr r1, [r4, #0x8] ldr r2, [r4, #0x0] bl FUN_02006234 str r0, [r4, #0xc] mov r0, #0x4 str r0, [r5, #0x0] b _02085990 _0208595E: add r0, r4, #0x0 add r0, #0xc bl FUN_020857D4 cmp r0, #0x0 beq _02085990 ldr r0, [r4, #0x8] bl FUN_020853E4 cmp r0, #0x0 bne _02085986 ldr r1, [r4, #0x10] ldr r0, [r4, #0x8] add r2, r1, #0x0 ldrb r1, [r1, #0x2] add r2, #0x1a lsl r1, r1, #0x3 add r1, r2, r1 bl FUN_020853FC _02085986: ldr r0, [r4, #0x8] bl FUN_020853A8 mov r0, #0x0 str r0, [r5, #0x0] _02085990: mov r0, #0x0 pop {r4-r6, pc} .balign 4 _02085994: .word 0x020FCAA8 _02085998: .word 0x0000FFFF _0208599C: .word 0x020FCAB8 thumb_func_start FUN_020859A0 FUN_020859A0: ; 0x020859A0 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02006278 add r4, r0, #0x0 ldr r0, [r4, #0x10] bl FUN_0208578C add r0, r5, #0x0 bl FUN_0200627C ldr r0, [r4, #0x0] bl FUN_020168D0 mov r0, #0x1 pop {r3-r5, pc} thumb_func_start FUN_020859C0 FUN_020859C0: ; 0x020859C0 push {r3-r7, lr} mov r2, #0x2 add r5, r0, #0x0 mov r0, #0x3 mov r1, #0x35 lsl r2, r2, #0x12 bl FUN_0201681C mov r0, #0x35 bl FUN_02230F3C bl FUN_0222F7E0 ldr r1, _02085BA0 ; =0x0000042C add r0, r5, #0x0 mov r2, #0x35 bl FUN_02006268 ldr r2, _02085BA0 ; =0x0000042C mov r1, #0x0 add r4, r0, #0x0 blx FUN_020DF4A4 bl FUN_0222E2BC mov r1, #0x23 lsl r1, r1, #0x4 str r0, [r4, r1] add r0, r5, #0x0 bl FUN_0200628C str r0, [r4, #0x0] mov r0, #0x35 bl FUN_020669C0 ldr r1, _02085BA4 ; =0x00000428 mov r2, #0xff str r0, [r4, r1] add r0, r4, #0x0 add r0, #0xd4 str r2, [r0, #0x0] mov r0, #0x0 sub r1, #0x10 str r0, [r4, r1] ldr r0, [r4, #0x0] ldr r0, [r0, #0x20] bl FUN_02029E0C asr r1, r0, #0x2 lsr r1, r1, #0x1d add r1, r0, r1 asr r0, r1, #0x3 add r1, r0, #0x1 ldr r0, _02085BA8 ; =0x0000041C str r1, [r4, r0] ldr r1, [r4, r0] cmp r1, #0xa ble _02085A38 mov r1, #0xa str r1, [r4, r0] _02085A38: ldr r0, [r4, #0x0] bl FUN_02085D84 mov r1, #0xf1 lsl r1, r1, #0x2 str r0, [r4, r1] ldr r0, [r4, #0x0] bl FUN_02085D84 mov r1, #0xf2 lsl r1, r1, #0x2 str r0, [r4, r1] ldr r0, [r4, #0x0] ldr r0, [r0, #0x20] bl FUN_02029CEC str r0, [r4, #0x64] mov r6, #0x0 add r5, r4, #0x0 mov r7, #0xff _02085A60: ldr r0, [r4, #0x0] add r1, r6, #0x0 ldr r0, [r0, #0x20] bl FUN_02029C8C str r7, [r5, #0x4] str r0, [r5, #0x8] add r6, r6, #0x1 add r5, #0x8 cmp r6, #0xc blt _02085A60 mov r5, #0x0 add r6, r5, #0x0 mov r7, #0xa1 _02085A7C: ldr r0, [r4, #0x0] add r0, r0, r6 ldr r0, [r0, #0x4] cmp r0, #0x0 beq _02085A9A add r1, r7, #0x0 mov r2, #0x0 bl FUN_020671BC cmp r0, #0x0 beq _02085A9A lsl r0, r0, #0x3 add r0, r4, r0 sub r0, r0, #0x4 str r5, [r0, #0x0] _02085A9A: add r5, r5, #0x1 add r6, r6, #0x4 cmp r5, #0x6 blt _02085A7C mov r0, #0x35 bl FUN_02016B94 add r1, r4, #0x0 add r1, #0xe4 str r0, [r1, #0x0] mov r0, #0x40 mov r1, #0x35 bl FUN_0201C24C mov r0, #0x35 bl FUN_02002FD0 add r1, r4, #0x0 add r1, #0xe8 str r0, [r1, #0x0] add r0, r4, #0x0 add r0, #0xe8 ldr r0, [r0, #0x0] mov r1, #0x1 bl FUN_020038F0 add r0, r4, #0x0 add r0, #0xe8 mov r2, #0x2 ldr r0, [r0, #0x0] mov r1, #0x0 lsl r2, r2, #0x8 mov r3, #0x35 bl FUN_02003008 add r0, r4, #0x0 add r0, #0xe8 mov r1, #0x1 ldr r0, [r0, #0x0] lsl r2, r1, #0x9 mov r3, #0x35 bl FUN_02003008 add r0, r4, #0x0 add r0, #0xe8 mov r1, #0x2 ldr r0, [r0, #0x0] lsl r2, r1, #0x8 mov r3, #0x35 bl FUN_02003008 add r0, r4, #0x0 add r0, #0xe8 mov r2, #0x2 ldr r0, [r0, #0x0] mov r1, #0x3 lsl r2, r2, #0x8 mov r3, #0x35 bl FUN_02003008 add r0, r4, #0x0 add r0, #0xe4 ldr r0, [r0, #0x0] bl FUN_02230F80 bl FUN_0222E360 mov r0, #0x35 bl FUN_02006D98 mov r1, #0x69 lsl r1, r1, #0x2 str r0, [r4, r1] mov r0, #0x35 mov r1, #0x1 mov r2, #0x0 bl FUN_02014BF4 mov r1, #0x97 lsl r1, r1, #0x2 str r0, [r4, r1] ldr r0, [r4, #0x0] ldr r0, [r0, #0x24] bl FUN_02025084 add r5, r0, #0x0 add r0, r4, #0x0 add r1, r4, #0x0 add r0, #0xe4 add r1, #0xe8 ldr r0, [r0, #0x0] ldr r1, [r1, #0x0] add r2, r5, #0x0 bl FUN_0222ED34 add r0, r4, #0x0 add r1, r4, #0x0 add r0, #0xe4 add r1, #0xe8 ldr r0, [r0, #0x0] ldr r1, [r1, #0x0] add r2, r5, #0x0 bl FUN_0222EDBC add r0, r4, #0x0 add r0, #0xd4 bl FUN_0222E7E8 bl FUN_0201CC08 mov r0, #0x4 bl FUN_0201CC24 add r0, r4, #0x0 bl FUN_022300E4 ldr r0, _02085BAC ; =0x022310CD add r1, r4, #0x0 bl FUN_02015F10 add r0, r4, #0x0 bl FUN_0222DD1C mov r1, #0x0 mov r0, #0x3b add r2, r1, #0x0 bl FUN_0200433C mov r0, #0x1 pop {r3-r7, pc} nop _02085BA0: .word 0x0000042C _02085BA4: .word 0x00000428 _02085BA8: .word 0x0000041C _02085BAC: .word 0x022310CD thumb_func_start FUN_02085BB0 FUN_02085BB0: ; 0x02085BB0 push {r3-r5, lr} add r5, r1, #0x0 bl FUN_02006278 ldr r1, [r5, #0x0] add r4, r0, #0x0 cmp r1, #0x0 beq _02085BCA cmp r1, #0x1 beq _02085BD8 cmp r1, #0x2 beq _02085BF6 b _02085C02 _02085BCA: bl FUN_0200E308 cmp r0, #0x1 bne _02085C02 mov r0, #0x1 str r0, [r5, #0x0] b _02085C02 _02085BD8: bl FUN_0222F990 cmp r0, #0x0 bne _02085BE6 mov r0, #0x2 str r0, [r5, #0x0] b _02085C02 _02085BE6: mov r0, #0x69 lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02006ED4 bl FUN_0222E3A0 b _02085C02 _02085BF6: bl FUN_0200E308 cmp r0, #0x1 bne _02085C02 mov r0, #0x1 pop {r3-r5, pc} _02085C02: mov r0, #0x0 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02085C08 FUN_02085C08: ; 0x02085C08 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02006278 add r4, r0, #0x0 mov r0, #0x1 mov r1, #0x0 bl FUN_0201E6E4 mov r0, #0x2 mov r1, #0x0 bl FUN_0201E6E4 mov r0, #0x4 mov r1, #0x0 bl FUN_0201E6E4 mov r0, #0x8 mov r1, #0x0 bl FUN_0201E6E4 mov r0, #0x1 mov r1, #0x0 bl FUN_0201E74C mov r0, #0x2 mov r1, #0x0 bl FUN_0201E74C mov r0, #0x4 mov r1, #0x0 bl FUN_0201E74C mov r0, #0x8 mov r1, #0x0 bl FUN_0201E74C add r0, r4, #0x0 add r0, #0xe4 ldr r0, [r0, #0x0] mov r1, #0x1 bl FUN_020178A0 add r0, r4, #0x0 add r0, #0xe4 ldr r0, [r0, #0x0] mov r1, #0x2 bl FUN_020178A0 add r0, r4, #0x0 add r0, #0xe4 ldr r0, [r0, #0x0] mov r1, #0x3 bl FUN_020178A0 add r0, r4, #0x0 add r0, #0xe4 ldr r0, [r0, #0x0] mov r1, #0x4 bl FUN_020178A0 add r0, r4, #0x0 add r0, #0xe4 ldr r0, [r0, #0x0] mov r1, #0x5 bl FUN_020178A0 add r0, r4, #0x0 add r0, #0xe4 ldr r0, [r0, #0x0] mov r1, #0x6 bl FUN_020178A0 add r0, r4, #0x0 add r0, #0xe4 ldr r0, [r0, #0x0] mov r1, #0x7 bl FUN_020178A0 add r0, r4, #0x0 add r0, #0xe4 ldr r0, [r0, #0x0] bl FUN_02016A18 add r0, r4, #0x0 add r0, #0xe8 ldr r0, [r0, #0x0] mov r1, #0x0 bl FUN_02003038 add r0, r4, #0x0 add r0, #0xe8 ldr r0, [r0, #0x0] mov r1, #0x1 bl FUN_02003038 add r0, r4, #0x0 add r0, #0xe8 ldr r0, [r0, #0x0] mov r1, #0x2 bl FUN_02003038 add r0, r4, #0x0 add r0, #0xe8 ldr r0, [r0, #0x0] mov r1, #0x3 bl FUN_02003038 add r0, r4, #0x0 add r0, #0xe8 ldr r0, [r0, #0x0] bl FUN_02002FEC mov r1, #0xf1 lsl r1, r1, #0x2 ldr r1, [r4, r1] ldr r0, [r4, #0x0] lsl r1, r1, #0x18 lsr r1, r1, #0x18 bl FUN_02085D8C ldr r0, _02085D64 ; =0x00000428 ldr r0, [r4, r0] bl FUN_02016A18 add r0, r4, #0x0 bl FUN_0222DAEC mov r0, #0x73 lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_0202212C mov r0, #0x69 lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_020072E8 mov r0, #0x97 lsl r0, r0, #0x2 ldr r0, [r4, r0] bl FUN_02014C28 add r0, r4, #0x0 bl FUN_0222DD38 add r0, r4, #0x0 add r0, #0xd4 bl FUN_0222E874 bl FUN_0201C29C mov r0, #0x23 lsl r0, r0, #0x4 ldr r0, [r4, r0] bl FUN_020223BC mov r0, #0x35 bl FUN_02230F70 add r0, r5, #0x0 bl FUN_0200627C bl FUN_0201CD04 mov r0, #0x35 bl FUN_020168D0 ldr r0, _02085D68 ; =0x00000008 bl FUN_02005F60 mov r0, #0x1 pop {r3-r5, pc} nop _02085D64: .word 0x00000428 _02085D68: .word 0x00000008 thumb_func_start FUN_02085D6C FUN_02085D6C: ; 0x02085D6C push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, r1 bge _02085D7C bl ErrorHandling mov r1, #0x0 _02085D7C: lsl r0, r1, #0x2 add r0, r4, r0 ldr r0, [r0, #0x4] pop {r4, pc} thumb_func_start FUN_02085D84 FUN_02085D84: ; 0x02085D84 add r0, #0x2c ldrb r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02085D8C FUN_02085D8C: ; 0x02085D8C add r0, #0x2c strb r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02085D94 FUN_02085D94: ; 0x02085D94 add r0, #0x2d ldrb r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02085D9C FUN_02085D9C: ; 0x02085D9C add r0, #0x2d strb r1, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02085DA4 FUN_02085DA4: ; 0x02085DA4 push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 bl FUN_0204652C add r6, r0, #0x0 add r0, r5, #0x0 ldr r7, [r6, #0x8] bl FUN_02046528 str r0, [sp, #0x4] ldr r0, [r6, #0x14] cmp r0, #0x6 bls _02085DC2 b _02085F38 _02085DC2: add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02085DCE: ; jump table (using 16-bit offset) .short _02085DDC - _02085DCE - 2; case 0 .short _02085E38 - _02085DCE - 2; case 1 .short _02085E48 - _02085DCE - 2; case 2 .short _02085E66 - _02085DCE - 2; case 3 .short _02085EA6 - _02085DCE - 2; case 4 .short _02085F14 - _02085DCE - 2; case 5 .short _02085F20 - _02085DCE - 2; case 6 _02085DDC: add r0, r5, #0x0 bl FUN_0204AF3C ldr r0, [r6, #0x10] bl FUN_02029C80 str r0, [r7, #0x20] add r0, r7, #0x0 mov r1, #0x0 bl FUN_02085D8C ldr r0, [r6, #0x10] bl FUN_0206BB1C str r0, [r7, #0x1c] bl FUN_0206B9AC mov r4, #0x0 str r0, [sp, #0x0] str r0, [r7, #0x0] cmp r0, #0x0 ble _02085E1E add r5, r7, #0x0 _02085E0A: ldr r0, [r7, #0x1c] add r1, r4, #0x0 bl FUN_0206B9B0 str r0, [r5, #0x4] ldr r0, [sp, #0x0] add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, r0 blt _02085E0A _02085E1E: cmp r4, #0x6 bge _02085E32 lsl r0, r4, #0x2 add r1, r7, r0 mov r0, #0x0 _02085E28: add r4, r4, #0x1 str r0, [r1, #0x4] add r1, r1, #0x4 cmp r4, #0x6 blt _02085E28 _02085E32: mov r0, #0x1 str r0, [r6, #0x14] b _02085F38 _02085E38: ldr r1, _02085F40 ; =0x020FCAD8 add r0, r5, #0x0 add r2, r7, #0x0 bl FUN_02046500 mov r0, #0x2 str r0, [r6, #0x14] b _02085F38 _02085E48: ldr r0, [r6, #0x8] bl FUN_02085D94 cmp r0, #0x0 beq _02085E5A cmp r0, #0x1 beq _02085E60 bl ErrorHandling _02085E5A: mov r0, #0x5 str r0, [r6, #0x14] b _02085F38 _02085E60: mov r0, #0x3 str r0, [r6, #0x14] b _02085F38 _02085E66: ldr r4, [r6, #0xc] ldr r0, [r7, #0x1c] str r0, [r4, #0x0] ldr r0, [r6, #0x10] bl FUN_0206F158 str r0, [r4, #0x4] ldr r0, [r6, #0x10] bl FUN_02025838 str r0, [r4, #0x8] add r0, r4, #0x0 mov r1, #0x0 add r0, #0x22 strb r1, [r0, #0x0] add r0, r4, #0x0 add r0, #0x21 strb r1, [r0, #0x0] add r0, r4, #0x0 mov r1, #0xf add r0, #0x20 strb r1, [r0, #0x0] ldr r0, [r7, #0x24] ldr r1, _02085F44 ; =0x020F96DC str r0, [r4, #0xc] add r0, r5, #0x0 add r2, r4, #0x0 bl FUN_02046500 mov r0, #0x4 str r0, [r6, #0x14] b _02085F38 _02085EA6: ldr r0, [r6, #0x8] ldr r4, [r6, #0xc] bl FUN_02085D84 add r0, r0, #0x1 str r0, [sp, #0x8] add r4, #0x22 ldrb r1, [r4, #0x0] cmp r1, #0x7 beq _02085F0E ldr r0, [r6, #0x8] bl FUN_02085D6C mov r1, #0xa1 add r2, sp, #0x8 add r5, r0, #0x0 bl FUN_02067830 ldr r1, [sp, #0x8] ldr r0, [r7, #0x20] sub r1, r1, #0x1 bl FUN_02029C8C add r2, r0, #0x0 add r0, r5, #0x0 mov r1, #0xaa bl FUN_02067830 ldr r1, [sp, #0x8] ldr r0, [r7, #0x20] sub r1, r1, #0x1 bl FUN_02029C8C mov r1, #0x0 bl FUN_02029CC8 bl FUN_02029CE0 lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_02085FD0 add r4, r0, #0x0 ldr r0, [sp, #0x4] ldr r0, [r0, #0xc] bl FUN_02022504 lsl r2, r4, #0x18 add r1, r5, #0x0 lsr r2, r2, #0x18 bl FUN_02061798 _02085F0E: mov r0, #0x1 str r0, [r6, #0x14] b _02085F38 _02085F14: add r0, r5, #0x0 bl FUN_0204AF84 mov r0, #0x6 str r0, [r6, #0x14] b _02085F38 _02085F20: ldr r0, [r6, #0xc] bl FUN_02016A18 ldr r0, [r6, #0x8] bl FUN_02016A18 add r0, r6, #0x0 bl FUN_02016A18 add sp, #0xc mov r0, #0x1 pop {r4-r7, pc} _02085F38: mov r0, #0x0 add sp, #0xc pop {r4-r7, pc} nop _02085F40: .word 0x020FCAD8 _02085F44: .word 0x020F96DC thumb_func_start FUN_02085F48 FUN_02085F48: ; 0x02085F48 push {r4-r6, lr} add r6, r0, #0x0 add r5, r1, #0x0 mov r0, #0xb mov r1, #0x18 bl FUN_020169D8 add r4, r0, #0x0 add r2, r4, #0x0 mov r1, #0x18 mov r0, #0x0 _02085F5E: strb r0, [r2, #0x0] add r2, r2, #0x1 sub r1, r1, #0x1 bne _02085F5E mov r0, #0xb mov r1, #0x30 str r5, [r4, #0x10] bl FUN_02016998 mov r1, #0x0 mov r2, #0x30 str r0, [r4, #0x8] blx FUN_020DF4A4 add r0, r5, #0x0 bl LoadPlayerDataAddress ldr r1, [r4, #0x8] str r0, [r1, #0x24] ldr r0, [r4, #0x8] mov r1, #0x40 str r5, [r0, #0x28] mov r0, #0xb bl FUN_02016998 mov r1, #0x0 mov r2, #0x40 str r0, [r4, #0xc] blx FUN_020DF4A4 ldr r1, _02085FA8 ; =FUN_02085DA4 add r0, r6, #0x0 add r2, r4, #0x0 bl FUN_0204640C pop {r4-r6, pc} nop _02085FA8: .word FUN_02085DA4 thumb_func_start FUN_02085FAC FUN_02085FAC: ; 0x02085FAC push {r4, lr} add r4, r0, #0x0 ldr r0, _02085FC8 ; =0x0000032A cmp r4, r0 blo _02085FBA bl ErrorHandling _02085FBA: mov r0, #0xa add r1, r4, #0x0 mul r1, r0 ldr r0, _02085FCC ; =0x020FCAE8 ldrh r0, [r0, r1] pop {r4, pc} nop _02085FC8: .word 0x0000032A _02085FCC: .word 0x020FCAE8 thumb_func_start FUN_02085FD0 FUN_02085FD0: ; 0x02085FD0 push {r4, lr} add r4, r0, #0x0 ldr r0, _02085FEC ; =0x0000032A cmp r4, r0 blo _02085FDE bl ErrorHandling _02085FDE: mov r0, #0xa add r1, r4, #0x0 mul r1, r0 ldr r0, _02085FF0 ; =0x020FCAEA ldrb r0, [r0, r1] pop {r4, pc} nop _02085FEC: .word 0x0000032A _02085FF0: .word 0x020FCAEA thumb_func_start FUN_02085FF4 FUN_02085FF4: ; 0x02085FF4 push {r4, lr} add r4, r0, #0x0 ldr r0, _02086010 ; =0x0000032A cmp r4, r0 blo _02086002 bl ErrorHandling _02086002: mov r0, #0xa add r1, r4, #0x0 mul r1, r0 ldr r0, _02086014 ; =0x020FCAEC ldrb r0, [r0, r1] pop {r4, pc} nop _02086010: .word 0x0000032A _02086014: .word 0x020FCAEC thumb_func_start FUN_02086018 FUN_02086018: ; 0x02086018 push {r4, lr} add r4, r0, #0x0 ldr r0, _02086034 ; =0x0000032A cmp r4, r0 blo _02086026 bl ErrorHandling _02086026: mov r0, #0xa add r1, r4, #0x0 mul r1, r0 ldr r0, _02086038 ; =0x020FCAED ldrb r0, [r0, r1] pop {r4, pc} nop _02086034: .word 0x0000032A _02086038: .word 0x020FCAED thumb_func_start FUN_0208603C FUN_0208603C: ; 0x0208603C push {r4, lr} add r4, r0, #0x0 ldr r0, _02086058 ; =0x0000032A cmp r4, r0 blo _0208604A bl ErrorHandling _0208604A: mov r0, #0xa add r1, r4, #0x0 mul r1, r0 ldr r0, _0208605C ; =0x020FCAEE ldrh r0, [r0, r1] pop {r4, pc} nop _02086058: .word 0x0000032A _0208605C: .word 0x020FCAEE thumb_func_start FUN_02086060 FUN_02086060: ; 0x02086060 push {r4, lr} add r4, r0, #0x0 ldr r0, _0208607C ; =0x0000032A cmp r4, r0 blo _0208606E bl ErrorHandling _0208606E: mov r0, #0xa add r1, r4, #0x0 mul r1, r0 ldr r0, _02086080 ; =0x020FCAF0 ldrb r0, [r0, r1] pop {r4, pc} nop _0208607C: .word 0x0000032A _02086080: .word 0x020FCAF0 thumb_func_start FUN_02086084 FUN_02086084: ; 0x02086084 push {r3-r5, lr} add r5, r0, #0x0 mov r0, #0x0 add r1, r0, #0x0 bl FUN_02015F10 bl FUN_02015F1C mov r2, #0x1 mov r0, #0x3 mov r1, #0x47 lsl r2, r2, #0x12 bl FUN_0201681C add r0, r5, #0x0 mov r1, #0x80 mov r2, #0x47 bl FUN_02006268 mov r1, #0x0 mov r2, #0x80 add r4, r0, #0x0 blx FUN_020DF4A4 add r0, r5, #0x0 bl FUN_0200628C str r0, [r4, #0x0] ldr r0, [r0, #0x10] bl FUN_02024FF4 str r0, [r4, #0x10] ldr r0, [r4, #0x0] ldr r0, [r0, #0x10] bl FUN_02025084 str r0, [r4, #0x14] bl FUN_02086468 str r0, [r4, #0x38] mov r0, #0x47 bl FUN_02006D98 str r0, [r4, #0x3c] mov r0, #0x47 bl FUN_02016B94 str r0, [r4, #0x4] mov r0, #0x40 mov r1, #0x47 bl FUN_0201C24C mov r0, #0x47 mov r1, #0x1 mov r2, #0x0 bl FUN_02014BF4 str r0, [r4, #0x54] mov r0, #0x47 bl FUN_02002FD0 str r0, [r4, #0x8] mov r1, #0x1 bl FUN_020038F0 mov r2, #0x2 ldr r0, [r4, #0x8] mov r1, #0x0 lsl r2, r2, #0x8 mov r3, #0x47 bl FUN_02003008 mov r1, #0x2 ldr r0, [r4, #0x8] lsl r2, r1, #0x8 mov r3, #0x47 bl FUN_02003008 mov r1, #0x1 ldr r0, [r4, #0x8] lsl r2, r1, #0x9 mov r3, #0x47 bl FUN_02003008 mov r2, #0x2 ldr r0, [r4, #0x8] mov r1, #0x3 lsl r2, r2, #0x8 mov r3, #0x47 bl FUN_02003008 bl FUN_02086414 bl FUN_0208643C bl FUN_0208650C ldr r0, [r4, #0x4] bl FUN_0208654C add r0, r4, #0x4 bl FUN_02086E48 bl FUN_0200541C ldr r0, _02086164 ; =FUN_02086664 add r1, r4, #0x0 bl FUN_02015F10 mov r0, #0x1 pop {r3-r5, pc} nop _02086164: .word FUN_02086664 thumb_func_start FUN_02086168 FUN_02086168: ; 0x02086168 push {r3-r5, lr} add r5, r1, #0x0 bl FUN_02006278 ldr r1, [r5, #0x0] add r4, r0, #0x0 cmp r1, #0x0 beq _0208617E cmp r1, #0x1 beq _020861AA b _020861C6 _0208617E: bl FUN_0200E308 cmp r0, #0x1 bne _0208618C ldr r0, [r5, #0x0] add r0, r0, #0x1 str r0, [r5, #0x0] _0208618C: ldr r0, [r4, #0x0] mov r1, #0x5 ldr r0, [r0, #0xc] mov r2, #0x0 bl FUN_020671BC ldr r1, _020861D8 ; =0x000001EA cmp r0, r1 bne _020861A4 mov r0, #0x1 str r0, [r4, #0x58] b _020861D2 _020861A4: mov r0, #0x0 str r0, [r4, #0x58] b _020861D2 _020861AA: bl FUN_02086FA8 cmp r0, #0x0 bne _020861BA ldr r0, [r5, #0x0] add r0, r0, #0x1 str r0, [r5, #0x0] b _020861D2 _020861BA: ldr r0, [r4, #0x3c] bl FUN_02006ED4 bl FUN_02086698 b _020861D2 _020861C6: bl FUN_0200E308 cmp r0, #0x1 bne _020861D2 mov r0, #0x1 pop {r3-r5, pc} _020861D2: mov r0, #0x0 pop {r3-r5, pc} nop _020861D8: .word 0x000001EA thumb_func_start FUN_020861DC FUN_020861DC: ; 0x020861DC push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02006278 add r4, r0, #0x0 ldr r0, [r4, #0x38] bl FUN_020223BC mov r0, #0x1 mov r1, #0x0 bl FUN_0201E6E4 mov r0, #0x2 mov r1, #0x0 bl FUN_0201E6E4 mov r0, #0x3 mov r1, #0x0 bl FUN_0201E6E4 mov r0, #0x4 mov r1, #0x0 bl FUN_0201E74C ldr r0, [r4, #0x8] mov r1, #0x0 bl FUN_02003038 ldr r0, [r4, #0x8] mov r1, #0x2 bl FUN_02003038 ldr r0, [r4, #0x8] mov r1, #0x1 bl FUN_02003038 ldr r0, [r4, #0x8] mov r1, #0x3 bl FUN_02003038 ldr r0, [r4, #0x8] bl FUN_02002FEC ldr r0, [r4, #0x4] mov r1, #0x1 bl FUN_020178A0 ldr r0, [r4, #0x4] mov r1, #0x2 bl FUN_020178A0 ldr r0, [r4, #0x4] mov r1, #0x3 bl FUN_020178A0 ldr r0, [r4, #0x4] mov r1, #0x4 bl FUN_020178A0 ldr r0, [r4, #0x4] bl FUN_02016A18 bl FUN_0201C29C ldr r0, [r4, #0x3c] bl FUN_020072E8 ldr r0, [r4, #0x54] bl FUN_02014C28 add r0, r4, #0x4 bl FUN_02086ED4 add r0, r5, #0x0 bl FUN_0200627C mov r0, #0x47 bl FUN_020168D0 mov r0, #0x1 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02086280 FUN_02086280: ; 0x02086280 push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldr r1, [r4, #0x0] cmp r1, #0x6 bls _02086294 b _020863CE _02086294: add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _020862A0: ; jump table (using 16-bit offset) .short _020862AE - _020862A0 - 2; case 0 .short _020862C4 - _020862A0 - 2; case 1 .short _020862D6 - _020862A0 - 2; case 2 .short _0208633A - _020862A0 - 2; case 3 .short _02086396 - _020862A0 - 2; case 4 .short _020863B6 - _020862A0 - 2; case 5 .short _020863C4 - _020862A0 - 2; case 6 _020862AE: ldr r0, [r4, #0xc] mov r1, #0xb bl FUN_021ED940 add r0, r5, #0x0 bl FUN_0204AF3C ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _020863CE _020862C4: ldr r1, _020863D4 ; =0x020FCE14 add r0, r5, #0x0 add r2, r4, #0x0 bl FUN_02046500 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _020863CE _020862D6: add r0, r5, #0x0 bl FUN_02046528 add r6, r0, #0x0 ldr r5, [r4, #0xc] bl FUN_020377AC bl FUN_020238F4 add r7, r0, #0x0 ldr r0, [r6, #0x1c] ldr r0, [r0, #0x0] bl FUN_02034824 str r0, [sp, #0x4] mov r0, #0x0 str r0, [sp, #0x8] add r0, r5, #0x0 mov r1, #0x4c add r2, sp, #0x8 bl FUN_02067830 mov r0, #0xb str r0, [sp, #0x0] ldr r3, [sp, #0x4] add r0, r5, #0x0 add r1, r7, #0x0 mov r2, #0x6 bl FUN_0208089C add r0, r5, #0x0 mov r1, #0xb2 mov r2, #0x0 bl FUN_02067830 add r0, r6, #0x0 bl FUN_020377AC ldr r1, [r4, #0xc] bl FUN_0202C144 ldr r0, [r4, #0x4] cmp r0, #0x1 bne _02086334 mov r0, #0x3 str r0, [r4, #0x0] b _020863CE _02086334: mov r0, #0x5 str r0, [r4, #0x0] b _020863CE _0208633A: add r0, r5, #0x0 bl FUN_02046528 add r6, r0, #0x0 ldr r0, [r4, #0xc] mov r1, #0x5 mov r2, #0x0 bl FUN_020671BC add r7, r0, #0x0 add r0, r6, #0x0 bl FUN_020377AC bl LoadPlayerDataAddress str r0, [sp, #0x0] mov r0, #0xb mov r1, #0x1 add r2, r7, #0x0 mov r3, #0xa bl FUN_02077A84 str r0, [r4, #0x8] ldr r0, [r4, #0xc] mov r1, #0x6f mov r2, #0x0 bl FUN_020671BC ldr r1, [r4, #0x8] mov r2, #0x0 str r0, [r1, #0x10] ldr r0, [r4, #0xc] mov r1, #0x70 bl FUN_020671BC ldr r1, [r4, #0x8] str r0, [r1, #0x8] ldr r1, _020863D8 ; =0x020FA5FC ldr r2, [r4, #0x8] add r0, r5, #0x0 bl FUN_02046500 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _020863CE _02086396: ldr r2, [r4, #0x8] ldr r0, [r2, #0x14] cmp r0, #0x0 bne _020863A8 ldr r0, [r4, #0xc] ldr r2, [r2, #0x18] mov r1, #0x77 bl FUN_02067830 _020863A8: ldr r0, [r4, #0x8] bl FUN_02077AC4 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _020863CE _020863B6: add r0, r5, #0x0 bl FUN_0204AF84 ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] b _020863CE _020863C4: bl FUN_02016A18 add sp, #0xc mov r0, #0x1 pop {r4-r7, pc} _020863CE: mov r0, #0x0 add sp, #0xc pop {r4-r7, pc} .balign 4 _020863D4: .word 0x020FCE14 _020863D8: .word 0x020FA5FC thumb_func_start FUN_020863DC FUN_020863DC: ; 0x020863DC push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 mov r0, #0xb mov r1, #0x1c bl FUN_020169D8 add r2, r0, #0x0 add r3, r2, #0x0 mov r1, #0x1c mov r0, #0x0 _020863F2: strb r0, [r3, #0x0] add r3, r3, #0x1 sub r1, r1, #0x1 bne _020863F2 add r3, r2, #0x0 add r3, #0xc ldmia r4!, {r0-r1} stmia r3!, {r0-r1} ldmia r4!, {r0-r1} stmia r3!, {r0-r1} ldr r1, _02086410 ; =FUN_02086280 add r0, r5, #0x0 bl FUN_0204640C pop {r3-r5, pc} .balign 4 _02086410: .word FUN_02086280 thumb_func_start FUN_02086414 FUN_02086414: ; 0x02086414 push {r3, lr} bl FUN_0201E6D8 bl FUN_0201E740 mov r2, #0x1 lsl r2, r2, #0x1a ldr r1, [r2, #0x0] ldr r0, _02086434 ; =0xFFFFE0FF and r1, r0 str r1, [r2, #0x0] ldr r2, _02086438 ; =0x04001000 ldr r1, [r2, #0x0] and r0, r1 str r0, [r2, #0x0] pop {r3, pc} .balign 4 _02086434: .word 0xFFFFE0FF _02086438: .word 0x04001000 thumb_func_start FUN_0208643C FUN_0208643C: ; 0x0208643C push {r3, lr} mov r0, #0x7 str r0, [sp, #0x0] ldr r0, _02086460 ; =0x04000050 mov r1, #0x0 mov r2, #0xe mov r3, #0xb blx FUN_020C74DC mov r0, #0x8 str r0, [sp, #0x0] ldr r0, _02086464 ; =0x04001050 mov r1, #0x0 mov r2, #0xe mov r3, #0x7 blx FUN_020C74DC pop {r3, pc} .balign 4 _02086460: .word 0x04000050 _02086464: .word 0x04001050 thumb_func_start FUN_02086468 FUN_02086468: ; 0x02086468 push {r3, lr} sub sp, #0x8 mov r2, #0x2 mov r1, #0x0 ldr r0, _02086484 ; =FUN_02086488 str r2, [sp, #0x0] str r0, [sp, #0x4] mov r0, #0x47 add r3, r1, #0x0 bl FUN_02022318 add sp, #0x8 pop {r3, pc} nop _02086484: .word FUN_02086488 thumb_func_start FUN_02086488 FUN_02086488: ; 0x02086488 push {r3, lr} mov r0, #0x1 add r1, r0, #0x0 bl FUN_0201E6E4 ldr r0, _020864F4 ; =0x04000008 mov r1, #0x3 ldrh r2, [r0, #0x0] bic r2, r1 mov r1, #0x1 orr r1, r2 strh r1, [r0, #0x0] add r0, #0x58 ldrh r2, [r0, #0x0] ldr r1, _020864F8 ; =0xFFFFCFFD and r2, r1 strh r2, [r0, #0x0] add r2, r1, #0x2 ldrh r3, [r0, #0x0] add r1, r1, #0x2 and r3, r2 mov r2, #0x10 orr r2, r3 strh r2, [r0, #0x0] ldrh r3, [r0, #0x0] ldr r2, _020864FC ; =0x0000CFFB and r3, r2 strh r3, [r0, #0x0] ldrh r3, [r0, #0x0] sub r2, #0x1c and r3, r1 mov r1, #0x8 orr r1, r3 strh r1, [r0, #0x0] ldrh r1, [r0, #0x0] and r1, r2 strh r1, [r0, #0x0] mov r0, #0x0 add r1, r0, #0x0 add r2, r0, #0x0 add r3, r0, #0x0 blx FUN_020C7C28 mov r0, #0x0 ldr r2, _02086500 ; =0x00007FFF add r1, r0, #0x0 mov r3, #0x3f str r0, [sp, #0x0] blx FUN_020C7B3C ldr r1, _02086504 ; =0xBFFF0000 ldr r0, _02086508 ; =0x04000580 str r1, [r0, #0x0] pop {r3, pc} .balign 4 _020864F4: .word 0x04000008 _020864F8: .word 0xFFFFCFFD _020864FC: .word 0x0000CFFB _02086500: .word 0x00007FFF _02086504: .word 0xBFFF0000 _02086508: .word 0x04000580 thumb_func_start FUN_0208650C FUN_0208650C: ; 0x0208650C push {r3-r5, lr} ldr r3, _02086544 ; =0x021064B8 mov r0, #0x2 mov r1, #0x0 ldr r3, [r3, #0x0] lsl r0, r0, #0xe add r2, r1, #0x0 blx r3 ldr r3, _02086548 ; =0x021064C0 mov r1, #0x0 add r4, r0, #0x0 ldr r3, [r3, #0x0] mov r0, #0x80 add r2, r1, #0x0 blx r3 add r5, r0, #0x0 cmp r4, #0x0 bne _02086534 bl ErrorHandling _02086534: cmp r5, #0x0 bne _0208653C bl ErrorHandling _0208653C: bl FUN_02012CC8 pop {r3-r5, pc} nop _02086544: .word 0x021064B8 _02086548: .word 0x021064C0 thumb_func_start FUN_0208654C FUN_0208654C: ; 0x0208654C push {r3-r5, lr} sub sp, #0xa8 add r4, r0, #0x0 bl FUN_0201E6D8 ldr r5, _02086650 ; =0x020FCEBC add r3, sp, #0x2c mov r2, #0x5 _0208655C: ldmia r5!, {r0-r1} stmia r3!, {r0-r1} sub r2, r2, #0x1 bne _0208655C add r0, sp, #0x2c bl FUN_0201E66C mov r1, #0x6 mov r2, #0x2 mov r0, #0x0 lsl r1, r1, #0x18 lsl r2, r2, #0x12 blx MIi_CpuClear32 mov r1, #0x62 mov r2, #0x2 mov r0, #0x0 lsl r1, r1, #0x14 lsl r2, r2, #0x10 blx MIi_CpuClear32 mov r1, #0x19 mov r2, #0x1 mov r0, #0x0 lsl r1, r1, #0x16 lsl r2, r2, #0x12 blx MIi_CpuClear32 mov r1, #0x66 mov r2, #0x2 mov r0, #0x0 lsl r1, r1, #0x14 lsl r2, r2, #0x10 blx MIi_CpuClear32 ldr r5, _02086654 ; =0x020FCE24 add r3, sp, #0x1c add r2, r3, #0x0 ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} add r0, r2, #0x0 bl FUN_02016BBC ldr r5, _02086658 ; =0x020FCF84 add r3, sp, #0x54 mov r2, #0xa _020865BC: ldmia r5!, {r0-r1} stmia r3!, {r0-r1} sub r2, r2, #0x1 bne _020865BC ldr r0, [r5, #0x0] mov r1, #0x1 str r0, [r3, #0x0] add r0, r4, #0x0 add r2, sp, #0x54 mov r3, #0x0 bl FUN_02016C18 add r0, r4, #0x0 mov r1, #0x2 add r2, sp, #0x70 mov r3, #0x0 bl FUN_02016C18 add r0, r4, #0x0 mov r1, #0x3 add r2, sp, #0x8c mov r3, #0x0 bl FUN_02016C18 add r0, r4, #0x0 mov r1, #0x1 bl FUN_02018744 add r0, r4, #0x0 mov r1, #0x2 bl FUN_02018744 add r0, r4, #0x0 mov r1, #0x3 bl FUN_02018744 ldr r1, _0208665C ; =0x04000008 mov r0, #0x3 ldrh r2, [r1, #0x0] bic r2, r0 mov r0, #0x1 orr r2, r0 strh r2, [r1, #0x0] add r1, r0, #0x0 bl FUN_0201E6E4 bl FUN_0201E788 mov r0, #0x10 mov r1, #0x1 bl FUN_0201E6E4 ldr r5, _02086660 ; =0x020FCE60 add r3, sp, #0x0 ldmia r5!, {r0-r1} add r2, r3, #0x0 stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r5, #0x0] mov r1, #0x4 str r0, [r3, #0x0] add r0, r4, #0x0 mov r3, #0x0 bl FUN_02016C18 add r0, r4, #0x0 mov r1, #0x4 bl FUN_02018744 add sp, #0xa8 pop {r3-r5, pc} .balign 4 _02086650: .word 0x020FCEBC _02086654: .word 0x020FCE24 _02086658: .word 0x020FCF84 _0208665C: .word 0x04000008 _02086660: .word 0x020FCE60 thumb_func_start FUN_02086664 FUN_02086664: ; 0x02086664 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x3c] bl FUN_020081C4 bl FUN_0201C30C bl FUN_0200BC30 ldr r0, [r4, #0x8] bl FUN_0200372C ldr r0, [r4, #0x4] bl FUN_0201AB60 ldr r3, _02086690 ; =0x027E0000 ldr r1, _02086694 ; =0x00003FF8 mov r0, #0x1 ldr r2, [r3, r1] orr r0, r2 str r0, [r3, r1] pop {r4, pc} .balign 4 _02086690: .word 0x027E0000 _02086694: .word 0x00003FF8 thumb_func_start FUN_02086698 FUN_02086698: ; 0x02086698 push {r3, lr} bl FUN_020222AC bl FUN_02013364 cmp r0, #0x0 ble _020866AE bl FUN_020222AC blx FUN_020B02C8 _020866AE: bl FUN_02013388 mov r0, #0x1 mov r1, #0x0 bl FUN_020222B4 pop {r3, pc} thumb_func_start FUN_020866BC FUN_020866BC: ; 0x020866BC push {lr} sub sp, #0xc mov r0, #0x6 str r0, [sp, #0x0] mov r1, #0x1 str r1, [sp, #0x4] mov r0, #0x47 str r0, [sp, #0x8] mov r0, #0x0 add r2, r1, #0x0 add r3, r0, #0x0 bl FUN_0200E1D0 add sp, #0xc pop {pc} .balign 4 thumb_func_start FUN_020866DC FUN_020866DC: ; 0x020866DC push {lr} sub sp, #0xc mov r0, #0x6 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] mov r0, #0x47 str r0, [sp, #0x8] mov r0, #0x0 add r1, r0, #0x0 add r2, r0, #0x0 add r3, r0, #0x0 bl FUN_0200E1D0 add sp, #0xc pop {pc} thumb_func_start FUN_020866FC FUN_020866FC: ; 0x020866FC push {r3-r6, lr} sub sp, #0xc add r6, r2, #0x0 add r4, r1, #0x0 lsl r1, r6, #0x18 lsr r1, r1, #0x18 str r1, [sp, #0x0] mov r1, #0x47 str r1, [sp, #0x4] mov r1, #0x1 mov r2, #0x14 mov r3, #0xf add r5, r0, #0x0 bl FUN_0200CD68 add r0, r6, #0x0 bl FUN_0200CD64 add r2, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x20 str r0, [sp, #0x4] mov r0, #0xc0 str r0, [sp, #0x8] add r0, r4, #0x0 mov r1, #0x26 mov r3, #0x47 bl FUN_020030E8 mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x47 str r0, [sp, #0x4] add r0, r5, #0x0 mov r1, #0x1 mov r2, #0x32 mov r3, #0xd bl FUN_0200CB00 bl FUN_0200CAFC add r2, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x20 str r0, [sp, #0x4] mov r0, #0xd0 str r0, [sp, #0x8] add r0, r4, #0x0 mov r1, #0x26 mov r3, #0x47 bl FUN_020030E8 mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x20 str r0, [sp, #0x4] mov r0, #0xe0 str r0, [sp, #0x8] add r0, r4, #0x0 mov r1, #0xe mov r2, #0x7 mov r3, #0x47 bl FUN_020030E8 add sp, #0xc pop {r3-r6, pc} thumb_func_start FUN_02086784 FUN_02086784: ; 0x02086784 push {r4-r7, lr} sub sp, #0x14 add r5, r1, #0x0 add r7, r0, #0x0 add r0, r5, #0x0 add r4, r2, #0x0 add r6, r3, #0x0 bl FUN_0201901C ldr r0, [sp, #0x28] lsl r2, r4, #0x18 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] ldr r0, [sp, #0x2c] lsl r3, r6, #0x18 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x4] ldr r0, [sp, #0x30] add r1, r5, #0x0 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x8] ldr r0, [sp, #0x38] lsr r2, r2, #0x18 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0xc] ldr r0, [sp, #0x34] lsr r3, r3, #0x18 lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x10] add r0, r7, #0x0 bl FUN_02019064 add r0, r5, #0x0 mov r1, #0x1 mov r2, #0x14 mov r3, #0xc bl FUN_0200D0BC add r0, r5, #0x0 mov r1, #0xf bl FUN_02019620 add r0, r5, #0x0 bl FUN_020191D0 add sp, #0x14 pop {r4-r7, pc} thumb_func_start FUN_020867EC FUN_020867EC: ; 0x020867EC push {r3-r7, lr} sub sp, #0x18 add r4, r1, #0x0 mov r1, #0xf str r0, [sp, #0xc] str r2, [sp, #0x10] add r6, r3, #0x0 bl FUN_02019620 ldr r2, _02086874 ; =0x0000013F mov r0, #0x0 mov r1, #0x1a mov r3, #0x47 bl FUN_0200A86C add r7, r0, #0x0 mov r0, #0x47 bl FUN_0200AA80 add r5, r0, #0x0 add r0, r7, #0x0 add r1, r4, #0x0 bl FUN_0200A914 str r0, [sp, #0x14] mov r0, #0xff mov r1, #0x47 bl FUN_020219F4 add r4, r0, #0x0 ldr r0, [sp, #0x10] bl FUN_020690E4 add r2, r0, #0x0 add r0, r5, #0x0 mov r1, #0x0 bl FUN_0200AC60 ldr r2, [sp, #0x14] add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0200B7B8 mov r3, #0x0 str r3, [sp, #0x0] str r6, [sp, #0x4] ldr r0, [sp, #0xc] mov r1, #0x1 add r2, r4, #0x0 str r3, [sp, #0x8] bl FUN_0201BD84 add r6, r0, #0x0 add r0, r7, #0x0 bl FUN_0200A8B8 add r0, r4, #0x0 bl FUN_02021A20 ldr r0, [sp, #0x14] bl FUN_02021A20 add r0, r5, #0x0 bl FUN_0200AB18 add r0, r6, #0x0 add sp, #0x18 pop {r3-r7, pc} .balign 4 _02086874: .word 0x0000013F thumb_func_start FUN_02086878 FUN_02086878: ; 0x02086878 push {r4-r7, lr} sub sp, #0x24 add r5, r0, #0x0 add r0, r2, #0x0 add r6, r1, #0x0 str r2, [sp, #0x14] add r4, r3, #0x0 bl FUN_0201901C ldr r0, [sp, #0x3c] ldr r3, [sp, #0x38] lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x0] ldr r0, [sp, #0x40] lsl r2, r4, #0x18 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x4] ldr r0, [sp, #0x44] lsl r3, r3, #0x18 lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x8] ldr r0, [sp, #0x4c] ldr r1, [sp, #0x14] lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0xc] ldr r0, [sp, #0x48] lsr r2, r2, #0x18 lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x10] add r0, r6, #0x0 lsr r3, r3, #0x18 bl FUN_02019064 mov r0, #0x2 mov r1, #0x47 bl FUN_02012838 str r0, [r5, #0x44] ldr r2, _0208695C ; =0x0000013F mov r0, #0x0 mov r1, #0x1a mov r3, #0x47 bl FUN_0200A86C add r7, r0, #0x0 mov r4, #0x0 _020868DE: add r0, r7, #0x0 add r1, r4, #0x2 bl FUN_0200A914 add r6, r0, #0x0 ldr r0, [r5, #0x44] add r1, r6, #0x0 add r2, r4, #0x0 bl FUN_020128A0 add r0, r6, #0x0 bl FUN_02021A20 add r4, r4, #0x1 cmp r4, #0x2 blt _020868DE add r0, r7, #0x0 bl FUN_0200A8B8 ldr r0, [r5, #0x44] mov r1, #0x0 str r0, [sp, #0x18] add r0, sp, #0x18 strb r1, [r0, #0x8] ldr r1, [sp, #0x14] mov r2, #0x2 str r1, [sp, #0x1c] mov r1, #0x1 strb r1, [r0, #0x9] strb r2, [r0, #0xa] ldrb r3, [r0, #0xb] mov r2, #0xf bic r3, r2 strb r3, [r0, #0xb] ldrb r3, [r0, #0xb] mov r2, #0x30 bic r3, r2 strb r3, [r0, #0xb] ldrb r3, [r0, #0xb] mov r2, #0xc0 bic r3, r2 mov r2, #0x40 orr r2, r3 strb r2, [r0, #0xb] ldr r0, [sp, #0x14] mov r2, #0x32 mov r3, #0xd bl FUN_0200CCA4 mov r0, #0x47 str r0, [sp, #0x0] mov r0, #0x2 mov r2, #0x0 str r0, [sp, #0x4] add r0, sp, #0x18 mov r1, #0x8 add r3, r2, #0x0 bl FUN_02001C14 str r0, [r5, #0x48] add sp, #0x24 pop {r4-r7, pc} nop _0208695C: .word 0x0000013F thumb_func_start FUN_02086960 FUN_02086960: ; 0x02086960 push {r4, lr} add r4, r0, #0x0 add r0, #0x28 mov r1, #0x1 bl FUN_0200CCF8 add r0, r4, #0x0 add r0, #0x28 bl FUN_02019570 add r0, r4, #0x0 add r0, #0x28 bl FUN_02019178 ldr r0, [r4, #0x48] mov r1, #0x0 bl FUN_02001C5C ldr r0, [r4, #0x44] bl FUN_02012870 pop {r4, pc} thumb_func_start FUN_0208698C FUN_0208698C: ; 0x0208698C push {r4, lr} add r4, r0, #0x0 bl FUN_02019570 add r0, r4, #0x0 bl FUN_02019178 pop {r4, pc} thumb_func_start FUN_0208699C FUN_0208699C: ; 0x0208699C push {r3-r5, lr} sub sp, #0x10 add r4, r1, #0x0 mov r1, #0x0 add r5, r0, #0x0 str r1, [sp, #0x0] str r1, [sp, #0x4] mov r0, #0x1 str r0, [sp, #0x8] mov r0, #0x47 str r0, [sp, #0xc] mov r0, #0x76 add r2, r5, #0x0 mov r3, #0x3 bl FUN_0200687C mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x4] mov r1, #0x1 str r1, [sp, #0x8] mov r0, #0x47 str r0, [sp, #0xc] mov r0, #0x76 add r2, r5, #0x0 mov r3, #0x3 bl FUN_020068C8 mov r1, #0x0 str r1, [sp, #0x0] mov r0, #0x40 str r0, [sp, #0x4] str r1, [sp, #0x8] add r0, r4, #0x0 mov r1, #0x76 mov r2, #0x8 mov r3, #0x47 bl FUN_020030E8 add sp, #0x10 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020869F0 FUN_020869F0: ; 0x020869F0 push {r3-r5, lr} sub sp, #0x10 add r5, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x4] mov r0, #0x1 str r0, [sp, #0x8] mov r0, #0x47 add r4, r1, #0x0 str r0, [sp, #0xc] mov r0, #0xc mov r1, #0xa add r2, r5, #0x0 mov r3, #0x4 bl FUN_0200687C mov r0, #0x0 str r0, [sp, #0x0] str r0, [sp, #0x4] mov r0, #0x1 str r0, [sp, #0x8] mov r0, #0x47 str r0, [sp, #0xc] mov r0, #0xc mov r1, #0xb add r2, r5, #0x0 mov r3, #0x4 bl FUN_020068C8 mov r0, #0x1 str r0, [sp, #0x0] mov r0, #0x20 str r0, [sp, #0x4] mov r0, #0x0 mov r1, #0xc str r0, [sp, #0x8] add r0, r4, #0x0 add r2, r1, #0x0 mov r3, #0x47 bl FUN_020030E8 add sp, #0x10 pop {r3-r5, pc} thumb_func_start FUN_02086A48 FUN_02086A48: ; 0x02086A48 push {r4, lr} ldr r3, _02086A60 ; =0x021064B8 mov r2, #0x0 ldr r3, [r3, #0x0] blx r3 add r4, r0, #0x0 bl FUN_0201327C lsl r0, r4, #0x10 lsr r0, r0, #0xd pop {r4, pc} nop _02086A60: .word 0x021064B8 thumb_func_start FUN_02086A64 FUN_02086A64: ; 0x02086A64 push {r4, lr} ldr r3, _02086A7C ; =0x021064C0 mov r2, #0x0 ldr r3, [r3, #0x0] blx r3 add r4, r0, #0x0 bl FUN_020132BC lsl r0, r4, #0x10 lsr r0, r0, #0xd pop {r4, pc} nop _02086A7C: .word 0x021064C0 thumb_func_start FUN_02086A80 FUN_02086A80: ; 0x02086A80 push {r4, lr} sub sp, #0x8 mov r1, #0x12 lsl r1, r1, #0xa add r4, r0, #0x0 bl FUN_02016998 add r2, r0, #0x0 mov r0, #0x1 str r0, [sp, #0x0] mov r3, #0x12 ldr r0, _02086AC0 ; =FUN_02086A48 ldr r1, _02086AC4 ; =FUN_02086A64 lsl r3, r3, #0xa str r4, [sp, #0x4] bl FUN_02012CDC add r4, r0, #0x0 bl FUN_0201343C add r2, r0, #0x0 beq _02086AB8 mov r0, #0x1 mov r1, #0xe1 lsl r0, r0, #0xc lsl r1, r1, #0xe bl FUN_0201EC94 _02086AB8: add r0, r4, #0x0 add sp, #0x8 pop {r4, pc} nop _02086AC0: .word FUN_02086A48 _02086AC4: .word FUN_02086A64 thumb_func_start FUN_02086AC8 FUN_02086AC8: ; 0x02086AC8 push {r3-r7, lr} add r5, r0, #0x0 add r6, r1, #0x0 add r7, r2, #0x0 bl FUN_02086A80 add r4, r0, #0x0 add r0, r6, #0x0 add r1, r7, #0x0 add r2, r5, #0x0 bl FUN_0201318C add r1, r0, #0x0 add r0, r4, #0x0 mov r2, #0xa mov r3, #0x1 bl FUN_02013194 add r0, r4, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02086AF0 FUN_02086AF0: ; 0x02086AF0 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_020133E8 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02012DE4 add r0, r4, #0x0 bl FUN_02016A18 pop {r3-r5, pc} thumb_func_start FUN_02086B08 FUN_02086B08: ; 0x02086B08 push {r3} sub sp, #0xc add r2, sp, #0x0 mov r1, #0x0 str r1, [r2, #0x0] str r1, [r2, #0x4] str r1, [r2, #0x8] ldr r1, [r0, #0x20] ldr r2, [sp, #0x0] ldr r1, [r1, #0x0] ldr r1, [r1, #0x4] add r1, r2, r1 str r1, [r0, #0x28] ldr r1, [r0, #0x20] ldr r2, [sp, #0x4] ldr r1, [r1, #0x0] ldr r1, [r1, #0x8] add r1, r2, r1 str r1, [r0, #0x2c] ldr r1, [r0, #0x20] ldr r2, [sp, #0x8] ldr r1, [r1, #0x0] ldr r1, [r1, #0xc] add r1, r2, r1 str r1, [r0, #0x30] add sp, #0xc pop {r3} bx lr thumb_func_start FUN_02086B40 FUN_02086B40: ; 0x02086B40 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] mov r1, #0x10 bl FUN_02016998 add r4, r0, #0x0 bne _02086B54 bl ErrorHandling _02086B54: ldr r0, [r5, #0x0] ldr r2, [r5, #0x4] mov r1, #0x77 str r0, [r4, #0x0] str r2, [r4, #0x4] ldr r0, [r4, #0x0] bl FUN_02086AC8 mov r1, #0x1 str r0, [r4, #0xc] bl FUN_02013440 add r0, r4, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02086B70 FUN_02086B70: ; 0x02086B70 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0xc] ldr r2, _02086B88 ; =FUN_02086B08 add r3, r4, #0x0 bl FUN_020133AC ldr r0, [r4, #0xc] mov r1, #0x1 bl FUN_02013440 pop {r4, pc} .balign 4 _02086B88: .word FUN_02086B08 thumb_func_start FUN_02086B8C FUN_02086B8C: ; 0x02086B8C push {r3, lr} ldr r0, [r0, #0xc] bl FUN_020133C8 cmp r0, #0x0 beq _02086B9C mov r0, #0x1 pop {r3, pc} _02086B9C: mov r0, #0x0 pop {r3, pc} thumb_func_start FUN_02086BA0 FUN_02086BA0: ; 0x02086BA0 ldr r3, _02086BA4 ; =FUN_02016A18 bx r3 .balign 4 _02086BA4: .word FUN_02016A18 thumb_func_start FUN_02086BA8 FUN_02086BA8: ; 0x02086BA8 push {r4-r6, lr} sub sp, #0x38 ldr r3, _02086C8C ; =0x020FCE9C add r2, sp, #0x18 add r6, r0, #0x0 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 r5, [r6, #0x4c] ldr r4, [r6, #0x50] ldr r6, [r6, #0x8] mov r0, #0x1 str r0, [sp, #0x0] str r0, [sp, #0x4] ldr r0, _02086C90 ; =0x00004E20 add r1, r5, #0x0 str r0, [sp, #0x8] ldr r3, [sp, #0x18] add r0, r4, #0x0 mov r2, #0x76 bl FUN_0200C00C mov r0, #0x76 str r0, [sp, #0x0] ldr r0, [sp, #0x1c] mov r1, #0x2 str r0, [sp, #0x4] mov r0, #0x0 str r0, [sp, #0x8] mov r0, #0x1 str r0, [sp, #0xc] str r0, [sp, #0x10] ldr r0, _02086C94 ; =0x00004E21 add r2, r4, #0x0 str r0, [sp, #0x14] add r0, r6, #0x0 add r3, r5, #0x0 bl FUN_0200C0DC mov r0, #0x1 str r0, [sp, #0x0] ldr r0, _02086C98 ; =0x00004E22 add r1, r5, #0x0 str r0, [sp, #0x4] ldr r3, [sp, #0x20] add r0, r4, #0x0 mov r2, #0x76 bl FUN_0200C124 mov r0, #0x1 str r0, [sp, #0x0] ldr r0, _02086C9C ; =0x00004E23 add r1, r5, #0x0 str r0, [sp, #0x4] ldr r3, [sp, #0x24] add r0, r4, #0x0 mov r2, #0x76 bl FUN_0200C13C mov r0, #0x1 str r0, [sp, #0x0] str r0, [sp, #0x4] ldr r0, _02086CA0 ; =0x000061A8 add r1, r5, #0x0 str r0, [sp, #0x8] add r0, r4, #0x0 mov r2, #0x76 mov r3, #0x7 bl FUN_0200C00C mov r0, #0x76 str r0, [sp, #0x0] mov r0, #0xa str r0, [sp, #0x4] mov r0, #0x0 str r0, [sp, #0x8] mov r0, #0x1 str r0, [sp, #0xc] str r0, [sp, #0x10] ldr r0, _02086CA4 ; =0x000061A9 mov r1, #0x2 str r0, [sp, #0x14] add r0, r6, #0x0 add r2, r4, #0x0 add r3, r5, #0x0 bl FUN_0200C0DC mov r0, #0x1 str r0, [sp, #0x0] ldr r0, _02086CA8 ; =0x000061AA add r1, r5, #0x0 str r0, [sp, #0x4] add r0, r4, #0x0 mov r2, #0x76 mov r3, #0x6 bl FUN_0200C124 mov r0, #0x1 str r0, [sp, #0x0] ldr r0, _02086CAC ; =0x000061AB add r1, r5, #0x0 str r0, [sp, #0x4] add r0, r4, #0x0 mov r2, #0x76 mov r3, #0x5 bl FUN_0200C13C add sp, #0x38 pop {r4-r6, pc} .balign 4 _02086C8C: .word 0x020FCE9C _02086C90: .word 0x00004E20 _02086C94: .word 0x00004E21 _02086C98: .word 0x00004E22 _02086C9C: .word 0x00004E23 _02086CA0: .word 0x000061A8 _02086CA4: .word 0x000061A9 _02086CA8: .word 0x000061AA _02086CAC: .word 0x000061AB thumb_func_start FUN_02086CB0 FUN_02086CB0: ; 0x02086CB0 push {r3-r4, lr} sub sp, #0x34 add r4, r0, #0x0 mov r1, #0x80 add r0, sp, #0x0 strh r1, [r0, #0x0] mov r1, #0x78 strh r1, [r0, #0x2] mov r1, #0x0 strh r1, [r0, #0x4] strh r1, [r0, #0x6] mov r0, #0x1 mov r2, #0x2 str r1, [sp, #0x8] str r1, [sp, #0xc] str r1, [sp, #0x30] ldr r1, _02086D4C ; =0x00004E20 str r0, [sp, #0x10] add r0, r1, #0x1 str r0, [sp, #0x18] add r0, r1, #0x2 str r0, [sp, #0x1c] add r0, r1, #0x3 str r0, [sp, #0x20] sub r0, r2, #0x3 str r2, [sp, #0x2c] str r1, [sp, #0x14] str r0, [sp, #0x24] str r0, [sp, #0x28] ldr r0, [r4, #0x50] ldr r1, [r4, #0x4c] add r2, sp, #0x0 bl FUN_0200C154 str r0, [r4, #0x6c] bl FUN_0200C5A8 ldr r0, [r4, #0x6c] mov r1, #0x2 bl FUN_0200C840 mov r2, #0x0 add r0, sp, #0x0 add r1, r2, #0x0 strh r2, [r0, #0x0] sub r1, #0x10 strh r1, [r0, #0x2] ldr r1, _02086D50 ; =0x000061A8 str r2, [sp, #0x2c] add r0, r1, #0x1 str r0, [sp, #0x18] add r0, r1, #0x2 str r0, [sp, #0x1c] add r0, r1, #0x3 str r1, [sp, #0x14] str r0, [sp, #0x20] ldr r0, [r4, #0x50] ldr r1, [r4, #0x4c] add r2, sp, #0x0 bl FUN_0200C154 str r0, [r4, #0x70] bl FUN_0200C5A8 mov r1, #0x90 add r0, sp, #0x0 strh r1, [r0, #0x2] ldr r0, [r4, #0x50] ldr r1, [r4, #0x4c] add r2, sp, #0x0 bl FUN_0200C154 str r0, [r4, #0x74] bl FUN_0200C5A8 add sp, #0x34 pop {r3-r4, pc} nop _02086D4C: .word 0x00004E20 _02086D50: .word 0x000061A8 thumb_func_start FUN_02086D54 FUN_02086D54: ; 0x02086D54 push {r3-r7, lr} add r6, r0, #0x0 add r7, r1, #0x0 add r4, r6, #0x0 ldr r1, [r6, #0x78] add r4, #0x78 cmp r1, #0x0 bne _02086DE6 ldr r0, [r4, #0x4] cmp r0, #0xa blt _02086D74 add r0, r1, #0x1 str r0, [r4, #0x0] mov r0, #0x0 str r0, [r4, #0x4] b _02086DE6 _02086D74: mov r1, #0x14 add r3, r7, #0x0 mul r3, r1 ldr r1, _02086DF4 ; =0x020FCEE4 lsl r2, r0, #0x1 add r1, r1, r3 ldrsh r1, [r2, r1] lsl r0, r0, #0x2 mov r5, #0x0 mov r12, r1 ldr r1, _02086DF8 ; =0x020FCF34 add r1, r1, r3 ldrsh r2, [r2, r1] mov r1, #0x28 add r3, r7, #0x0 mul r3, r1 ldr r1, _02086DFC ; =0x020FCFD8 add r1, r1, r3 ldr r7, [r0, r1] ldr r1, _02086E00 ; =0x020FD078 add r1, r1, r3 ldr r0, [r0, r1] str r0, [sp, #0x0] mov r0, r12 cmp r0, #0xff bne _02086DAC mov r12, r5 add r5, r5, #0x1 _02086DAC: cmp r2, #0xff bne _02086DB4 mov r2, #0x0 add r5, r5, #0x1 _02086DB4: ldr r0, [r6, #0x6c] mov r1, r12 bl FUN_0200C82C mov r0, #0x0 add r1, r7, #0x0 blx FUN_020EB010 beq _02086DD2 ldr r0, [r6, #0x6c] ldr r2, [sp, #0x0] add r1, r7, #0x0 bl FUN_0200C884 b _02086DD4 _02086DD2: add r5, r5, #0x1 _02086DD4: cmp r5, #0x3 beq _02086DE0 ldr r0, [r4, #0x4] add r0, r0, #0x1 str r0, [r4, #0x4] b _02086DEE _02086DE0: ldr r0, [r4, #0x0] add r0, r0, #0x1 str r0, [r4, #0x0] _02086DE6: mov r0, #0x0 str r0, [r4, #0x0] str r0, [r4, #0x4] pop {r3-r7, pc} _02086DEE: mov r0, #0x1 pop {r3-r7, pc} nop _02086DF4: .word 0x020FCEE4 _02086DF8: .word 0x020FCF34 _02086DFC: .word 0x020FCFD8 _02086E00: .word 0x020FD078 thumb_func_start FUN_02086E04 FUN_02086E04: ; 0x02086E04 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_02086D54 cmp r0, #0x0 bne _02086E16 mov r0, #0x2 pop {r3-r5, pc} _02086E16: cmp r4, #0x4 ldr r0, [r5, #0x7c] bne _02086E24 cmp r0, #0x6 bne _02086E2C mov r0, #0x1 pop {r3-r5, pc} _02086E24: cmp r0, #0x6 bne _02086E2C mov r0, #0x1 pop {r3-r5, pc} _02086E2C: mov r0, #0x0 pop {r3-r5, pc} thumb_func_start FUN_02086E30 FUN_02086E30: ; 0x02086E30 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x6c] bl FUN_0200C3DC ldr r0, [r4, #0x70] bl FUN_0200C3DC ldr r0, [r4, #0x74] bl FUN_0200C3DC pop {r4, pc} thumb_func_start FUN_02086E48 FUN_02086E48: ; 0x02086E48 push {r3-r6, lr} sub sp, #0x4c add r4, r0, #0x0 mov r0, #0x47 bl FUN_0200BB14 add r2, sp, #0x2c ldr r5, _02086EC8 ; =0x020FCE7C str r0, [r4, #0x4c] ldmia r5!, {r0-r1} add r3, r2, #0x0 stmia r2!, {r0-r1} ldmia r5!, {r0-r1} stmia r2!, {r0-r1} ldmia r5!, {r0-r1} stmia r2!, {r0-r1} ldmia r5!, {r0-r1} ldr r6, _02086ECC ; =0x020FCE34 stmia r2!, {r0-r1} add r5, sp, #0x18 ldmia r6!, {r0-r1} add r2, r5, #0x0 stmia r5!, {r0-r1} ldmia r6!, {r0-r1} stmia r5!, {r0-r1} ldr r0, [r6, #0x0] add r1, r3, #0x0 str r0, [r5, #0x0] ldr r0, [r4, #0x4c] mov r3, #0x20 bl FUN_0200BB6C ldr r3, _02086ED0 ; =0x020FCE48 add r2, sp, #0x0 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 r0, [r4, #0x4c] bl FUN_0200BB34 str r0, [r4, #0x48] ldr r0, [r4, #0x4c] ldr r1, [r4, #0x48] mov r2, #0xff bl FUN_0200BBF0 cmp r0, #0x0 bne _02086EB2 bl ErrorHandling _02086EB2: ldr r0, [r4, #0x4c] ldr r1, [r4, #0x48] add r2, sp, #0x0 bl FUN_0200BF60 cmp r0, #0x0 bne _02086EC4 bl ErrorHandling _02086EC4: add sp, #0x4c pop {r3-r6, pc} .balign 4 _02086EC8: .word 0x020FCE7C _02086ECC: .word 0x020FCE34 _02086ED0: .word 0x020FCE48 thumb_func_start FUN_02086ED4 FUN_02086ED4: ; 0x02086ED4 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x4c] ldr r1, [r4, #0x48] bl FUN_0200C398 ldr r0, [r4, #0x4c] bl FUN_0200BD04 pop {r4, pc} thumb_func_start FUN_02086EE8 FUN_02086EE8: ; 0x02086EE8 push {r3-r7, lr} sub sp, #0x38 add r5, r0, #0x0 ldr r0, [r5, #0x0] mov r1, #0x5 ldr r4, [r0, #0xc] mov r2, #0x0 add r0, r4, #0x0 bl FUN_020671BC add r6, r0, #0x0 add r0, r4, #0x0 mov r1, #0x2 bl FUN_02068E14 add r7, r0, #0x0 mov r0, #0x0 str r0, [sp, #0x10] add r0, r4, #0x0 mov r1, #0x4c add r2, sp, #0x10 bl FUN_02067830 add r0, sp, #0x28 add r1, r4, #0x0 mov r2, #0x2 bl FUN_02068B68 lsl r1, r6, #0x10 add r0, sp, #0x14 lsr r1, r1, #0x10 bl FUN_02069010 mov r1, #0x0 str r1, [sp, #0x0] add r7, #0x60 str r1, [sp, #0x4] add r0, sp, #0x14 str r0, [sp, #0x8] str r1, [sp, #0xc] ldr r0, [r5, #0x3c] add r1, sp, #0x28 mov r2, #0x80 add r3, r7, #0x0 bl FUN_020073A0 str r0, [r5, #0x68] add sp, #0x38 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02086F4C FUN_02086F4C: ; 0x02086F4C push {r3-r6, lr} sub sp, #0xc add r5, r0, #0x0 ldr r0, [r5, #0x0] mov r1, #0x5 ldr r0, [r0, #0xc] mov r2, #0x0 bl FUN_020671BC add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl FUN_02068854 add r6, r0, #0x0 ldr r0, [r5, #0x68] mov r1, #0x1 bl FUN_02007314 lsl r2, r4, #0x10 str r6, [sp, #0x0] mov r0, #0x0 str r0, [sp, #0x4] str r0, [sp, #0x8] ldr r0, [r5, #0x54] ldr r1, [r5, #0x68] lsr r2, r2, #0x10 mov r3, #0x2 bl FUN_02069038 add sp, #0xc pop {r3-r6, pc} thumb_func_start FUN_02086F8C FUN_02086F8C: ; 0x02086F8C ldr r3, _02086F94 ; =FUN_02007534 ldr r0, [r0, #0x68] bx r3 nop _02086F94: .word FUN_02007534 thumb_func_start FUN_02086F98 FUN_02086F98: ; 0x02086F98 ldr r3, _02086FA4 ; =FUN_02007558 add r2, r1, #0x0 ldr r0, [r0, #0x68] mov r1, #0x6 bx r3 nop _02086FA4: .word FUN_02007558 thumb_func_start FUN_02086FA8 FUN_02086FA8: ; 0x02086FA8 push {r3, lr} ldr r1, [r0, #0x58] lsl r2, r1, #0x2 ldr r1, _02086FB8 ; =0x020FD118 ldr r1, [r1, r2] blx r1 pop {r3, pc} nop _02086FB8: .word 0x020FD118 thumb_func_start FUN_02086FBC FUN_02086FBC: ; 0x02086FBC push {r3-r5, lr} sub sp, #0x20 add r4, r0, #0x0 ldr r1, [r4, #0x5c] mov r5, #0x1 cmp r1, #0x11 bls _02086FCC b _0208720E _02086FCC: add r2, r1, r1 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _02086FD8: ; jump table (using 16-bit offset) .short _02086FFC - _02086FD8 - 2; case 0 .short _0208706A - _02086FD8 - 2; case 1 .short _02087074 - _02086FD8 - 2; case 2 .short _02087092 - _02086FD8 - 2; case 3 .short _020870A2 - _02086FD8 - 2; case 4 .short _020870B2 - _02086FD8 - 2; case 5 .short _020870C2 - _02086FD8 - 2; case 6 .short _020870D2 - _02086FD8 - 2; case 7 .short _0208710E - _02086FD8 - 2; case 8 .short _02087122 - _02086FD8 - 2; case 9 .short _02087132 - _02086FD8 - 2; case 10 .short _02087158 - _02086FD8 - 2; case 11 .short _020871AA - _02086FD8 - 2; case 12 .short _020871E2 - _02086FD8 - 2; case 13 .short _020871EE - _02086FD8 - 2; case 14 .short _020871F4 - _02086FD8 - 2; case 15 .short _020871FE - _02086FD8 - 2; case 16 .short _0208720E - _02086FD8 - 2; case 17 _02086FFC: ldr r0, [r4, #0x4] ldr r1, [r4, #0x8] bl FUN_0208699C ldr r0, [r4, #0x4] ldr r1, [r4, #0x8] bl FUN_020869F0 ldr r0, [r4, #0x4] ldr r1, [r4, #0x8] ldr r2, [r4, #0x14] bl FUN_020866FC mov r0, #0x13 str r0, [sp, #0x0] mov r0, #0x1b str r0, [sp, #0x4] mov r0, #0x4 str r0, [sp, #0x8] mov r0, #0x3b str r0, [sp, #0xc] mov r0, #0xe str r0, [sp, #0x10] add r1, r4, #0x0 ldr r0, [r4, #0x4] add r1, #0x18 add r2, r5, #0x0 mov r3, #0x2 bl FUN_02086784 add r0, r4, #0x0 bl FUN_02086BA8 add r0, r4, #0x0 bl FUN_02086CB0 add r0, r4, #0x0 bl FUN_02086EE8 add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_02086F98 mov r0, #0x47 str r0, [sp, #0x18] mov r0, #0x0 str r0, [sp, #0x1c] add r0, sp, #0x18 bl FUN_02086B40 str r0, [r4, #0x40] ldr r0, [r4, #0x5c] add r0, r0, #0x1 str r0, [r4, #0x5c] b _02087232 _0208706A: bl FUN_020866BC ldr r0, [r4, #0x5c] add r0, r0, #0x1 str r0, [r4, #0x5c] _02087074: bl FUN_0200E308 cmp r0, #0x1 bne _0208712A bl FUN_0200541C ldr r1, _02087240 ; =0x00000475 mov r0, #0xd mov r2, #0x1 bl FUN_0200433C ldr r0, [r4, #0x5c] add r0, r0, #0x1 str r0, [r4, #0x5c] b _02087232 _02087092: bl FUN_0208749C cmp r0, #0x0 bne _0208712A ldr r0, [r4, #0x5c] add r0, r0, #0x1 str r0, [r4, #0x5c] b _02087232 _020870A2: bl FUN_020874E4 cmp r0, #0x0 bne _0208712A ldr r0, [r4, #0x5c] add r0, r0, #0x1 str r0, [r4, #0x5c] b _02087232 _020870B2: bl FUN_02087554 cmp r0, #0x0 bne _0208712A ldr r0, [r4, #0x5c] add r0, r0, #0x1 str r0, [r4, #0x5c] b _02087232 _020870C2: bl FUN_020875AC cmp r0, #0x0 bne _0208712A ldr r0, [r4, #0x5c] add r0, r0, #0x1 str r0, [r4, #0x5c] b _02087232 _020870D2: bl FUN_02087610 cmp r0, #0x0 bne _0208712A add r0, r4, #0x0 bl FUN_02086F4C ldr r0, [r4, #0x0] mov r1, #0x5 ldr r0, [r0, #0xc] mov r2, #0x0 bl FUN_020671BC lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_02005578 ldr r2, [r4, #0x0] add r0, r4, #0x0 ldr r2, [r2, #0xc] ldr r3, [r4, #0x10] add r0, #0x18 mov r1, #0x0 bl FUN_020867EC str r0, [r4, #0xc] ldr r0, [r4, #0x5c] add r0, r0, #0x1 str r0, [r4, #0x5c] b _02087232 _0208710E: bl FUN_02005670 cmp r0, #0x0 bne _0208712A ldr r0, _02087244 ; =0x00000484 bl FUN_02005C28 ldr r0, [r4, #0x5c] add r0, r0, #0x1 str r0, [r4, #0x5c] _02087122: bl FUN_02005CBC cmp r0, #0x0 beq _0208712C _0208712A: b _02087232 _0208712C: ldr r0, [r4, #0x5c] add r0, r0, #0x1 str r0, [r4, #0x5c] _02087132: ldr r0, [r4, #0xc] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_0201BD70 cmp r0, #0x0 bne _02087232 ldr r2, [r4, #0x0] add r0, r4, #0x0 ldr r2, [r2, #0xc] ldr r3, [r4, #0x10] add r0, #0x18 mov r1, #0x1 bl FUN_020867EC str r0, [r4, #0xc] ldr r0, [r4, #0x5c] add r0, r0, #0x1 str r0, [r4, #0x5c] _02087158: ldr r0, [r4, #0xc] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_0201BD70 cmp r0, #0x0 bne _02087232 ldr r0, [r4, #0x54] mov r1, #0x0 bl FUN_02014D7C cmp r0, #0x1 bne _02087232 ldr r0, [r4, #0x68] bl FUN_02007390 cmp r0, #0x0 bne _02087232 mov r0, #0x19 str r0, [sp, #0x0] mov r0, #0xd str r0, [sp, #0x4] mov r0, #0x6 str r0, [sp, #0x8] mov r0, #0x4 str r0, [sp, #0xc] mov r0, #0xa7 str r0, [sp, #0x10] mov r0, #0xe str r0, [sp, #0x14] add r2, r4, #0x0 ldr r1, [r4, #0x4] add r0, r4, #0x0 add r2, #0x28 mov r3, #0x1 bl FUN_02086878 ldr r0, [r4, #0x5c] add r0, r0, #0x1 str r0, [r4, #0x5c] b _02087232 _020871AA: ldr r0, [r4, #0x48] bl FUN_02001C78 sub r1, r5, #0x3 cmp r0, r1 beq _020871BE add r1, r1, #0x1 cmp r0, r1 beq _02087232 b _020871CC _020871BE: ldr r0, [r4, #0x0] mov r1, #0x0 str r1, [r0, #0x4] ldr r0, [r4, #0x5c] add r0, r0, #0x1 str r0, [r4, #0x5c] b _02087232 _020871CC: cmp r0, #0x0 bne _020871D4 add r1, r5, #0x0 b _020871D6 _020871D4: mov r1, #0x0 _020871D6: ldr r0, [r4, #0x0] str r1, [r0, #0x4] ldr r0, [r4, #0x5c] add r0, r0, #0x1 str r0, [r4, #0x5c] b _02087232 _020871E2: bl FUN_02086960 ldr r0, [r4, #0x5c] add r0, r0, #0x1 str r0, [r4, #0x5c] b _02087232 _020871EE: add r0, r1, #0x1 str r0, [r4, #0x5c] b _02087232 _020871F4: bl FUN_020866DC ldr r0, [r4, #0x5c] add r0, r0, #0x1 str r0, [r4, #0x5c] _020871FE: bl FUN_0200E308 cmp r0, #0x1 bne _02087232 ldr r0, [r4, #0x5c] add r0, r0, #0x1 str r0, [r4, #0x5c] b _02087232 _0208720E: add r0, r4, #0x0 bl FUN_02086F8C add r0, r4, #0x0 bl FUN_02086E30 add r0, r4, #0x0 add r0, #0x18 bl FUN_0208698C ldr r0, [r4, #0x40] ldr r0, [r0, #0xc] bl FUN_02086AF0 ldr r0, [r4, #0x40] bl FUN_02086BA0 mov r5, #0x0 _02087232: ldr r0, [r4, #0x4c] bl FUN_0200BC1C add r0, r5, #0x0 add sp, #0x20 pop {r3-r5, pc} nop _02087240: .word 0x00000475 _02087244: .word 0x00000484 thumb_func_start FUN_02087248 FUN_02087248: ; 0x02087248 push {r3-r5, lr} sub sp, #0x20 add r4, r0, #0x0 ldr r1, [r4, #0x5c] mov r5, #0x1 cmp r1, #0x11 bls _02087258 b _02087462 _02087258: add r2, r1, r1 add r2, pc ldrh r2, [r2, #0x6] lsl r2, r2, #0x10 asr r2, r2, #0x10 add pc, r2 _02087264: ; jump table (using 16-bit offset) .short _02087288 - _02087264 - 2; case 0 .short _020872FE - _02087264 - 2; case 1 .short _02087308 - _02087264 - 2; case 2 .short _02087322 - _02087264 - 2; case 3 .short _0208735C - _02087264 - 2; case 4 .short _0208735C - _02087264 - 2; case 5 .short _0208735C - _02087264 - 2; case 6 .short _0208735C - _02087264 - 2; case 7 .short _02087362 - _02087264 - 2; case 8 .short _02087376 - _02087264 - 2; case 9 .short _02087386 - _02087264 - 2; case 10 .short _020873AC - _02087264 - 2; case 11 .short _020873FE - _02087264 - 2; case 12 .short _02087436 - _02087264 - 2; case 13 .short _02087442 - _02087264 - 2; case 14 .short _02087448 - _02087264 - 2; case 15 .short _02087452 - _02087264 - 2; case 16 .short _02087462 - _02087264 - 2; case 17 _02087288: ldr r0, [r4, #0x4] ldr r1, [r4, #0x8] bl FUN_0208699C ldr r0, [r4, #0x4] ldr r1, [r4, #0x8] bl FUN_020869F0 ldr r0, [r4, #0x4] ldr r1, [r4, #0x8] ldr r2, [r4, #0x14] bl FUN_020866FC mov r0, #0x13 str r0, [sp, #0x0] mov r0, #0x1b str r0, [sp, #0x4] mov r0, #0x4 str r0, [sp, #0x8] mov r0, #0x3b str r0, [sp, #0xc] mov r0, #0xe str r0, [sp, #0x10] add r1, r4, #0x0 ldr r0, [r4, #0x4] add r1, #0x18 add r2, r5, #0x0 mov r3, #0x2 bl FUN_02086784 add r0, r4, #0x0 bl FUN_02086BA8 add r0, r4, #0x0 bl FUN_02086CB0 ldr r0, [r4, #0x6c] mov r1, #0x0 bl FUN_0200C644 add r0, r4, #0x0 bl FUN_02086EE8 add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_02086F98 mov r0, #0x47 str r0, [sp, #0x18] add r0, r5, #0x0 str r0, [sp, #0x1c] add r0, sp, #0x18 bl FUN_02086B40 str r0, [r4, #0x40] ldr r0, [r4, #0x5c] add r0, r0, #0x1 str r0, [r4, #0x5c] b _02087486 _020872FE: bl FUN_020866BC ldr r0, [r4, #0x5c] add r0, r0, #0x1 str r0, [r4, #0x5c] _02087308: bl FUN_0200E308 cmp r0, #0x1 bne _0208737E ldr r1, _02087494 ; =0x00000475 mov r0, #0xd mov r2, #0x1 bl FUN_0200433C ldr r0, [r4, #0x5c] add r0, r0, #0x1 str r0, [r4, #0x5c] b _02087486 _02087322: bl FUN_02087820 cmp r0, #0x0 bne _0208737E add r0, r4, #0x0 bl FUN_02086F4C ldr r0, [r4, #0x0] mov r1, #0x5 ldr r0, [r0, #0xc] mov r2, #0x0 bl FUN_020671BC lsl r0, r0, #0x10 lsr r0, r0, #0x10 bl FUN_02005578 ldr r2, [r4, #0x0] add r0, r4, #0x0 ldr r2, [r2, #0xc] ldr r3, [r4, #0x10] add r0, #0x18 mov r1, #0x0 bl FUN_020867EC str r0, [r4, #0xc] mov r0, #0x8 str r0, [r4, #0x5c] b _02087486 _0208735C: bl ErrorHandling b _02087486 _02087362: bl FUN_02005670 cmp r0, #0x0 bne _0208737E ldr r0, _02087498 ; =0x00000484 bl FUN_02005C28 ldr r0, [r4, #0x5c] add r0, r0, #0x1 str r0, [r4, #0x5c] _02087376: bl FUN_02005CBC cmp r0, #0x0 beq _02087380 _0208737E: b _02087486 _02087380: ldr r0, [r4, #0x5c] add r0, r0, #0x1 str r0, [r4, #0x5c] _02087386: ldr r0, [r4, #0xc] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_0201BD70 cmp r0, #0x0 bne _02087486 ldr r2, [r4, #0x0] add r0, r4, #0x0 ldr r2, [r2, #0xc] ldr r3, [r4, #0x10] add r0, #0x18 mov r1, #0x1 bl FUN_020867EC str r0, [r4, #0xc] ldr r0, [r4, #0x5c] add r0, r0, #0x1 str r0, [r4, #0x5c] _020873AC: ldr r0, [r4, #0xc] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_0201BD70 cmp r0, #0x0 bne _02087486 ldr r0, [r4, #0x54] mov r1, #0x0 bl FUN_02014D7C cmp r0, #0x1 bne _02087486 ldr r0, [r4, #0x68] bl FUN_02007390 cmp r0, #0x0 bne _02087486 mov r0, #0x19 str r0, [sp, #0x0] mov r0, #0xd str r0, [sp, #0x4] mov r0, #0x6 str r0, [sp, #0x8] mov r0, #0x4 str r0, [sp, #0xc] mov r0, #0xa7 str r0, [sp, #0x10] mov r0, #0xe str r0, [sp, #0x14] add r2, r4, #0x0 ldr r1, [r4, #0x4] add r0, r4, #0x0 add r2, #0x28 mov r3, #0x1 bl FUN_02086878 ldr r0, [r4, #0x5c] add r0, r0, #0x1 str r0, [r4, #0x5c] b _02087486 _020873FE: ldr r0, [r4, #0x48] bl FUN_02001C78 sub r1, r5, #0x3 cmp r0, r1 beq _02087412 add r1, r1, #0x1 cmp r0, r1 beq _02087486 b _02087420 _02087412: ldr r0, [r4, #0x0] mov r1, #0x0 str r1, [r0, #0x4] ldr r0, [r4, #0x5c] add r0, r0, #0x1 str r0, [r4, #0x5c] b _02087486 _02087420: cmp r0, #0x0 bne _02087428 add r1, r5, #0x0 b _0208742A _02087428: mov r1, #0x0 _0208742A: ldr r0, [r4, #0x0] str r1, [r0, #0x4] ldr r0, [r4, #0x5c] add r0, r0, #0x1 str r0, [r4, #0x5c] b _02087486 _02087436: bl FUN_02086960 ldr r0, [r4, #0x5c] add r0, r0, #0x1 str r0, [r4, #0x5c] b _02087486 _02087442: add r0, r1, #0x1 str r0, [r4, #0x5c] b _02087486 _02087448: bl FUN_020866DC ldr r0, [r4, #0x5c] add r0, r0, #0x1 str r0, [r4, #0x5c] _02087452: bl FUN_0200E308 cmp r0, #0x1 bne _02087486 ldr r0, [r4, #0x5c] add r0, r0, #0x1 str r0, [r4, #0x5c] b _02087486 _02087462: add r0, r4, #0x0 bl FUN_02086F8C add r0, r4, #0x0 bl FUN_02086E30 add r0, r4, #0x0 add r0, #0x18 bl FUN_0208698C ldr r0, [r4, #0x40] ldr r0, [r0, #0xc] bl FUN_02086AF0 ldr r0, [r4, #0x40] bl FUN_02086BA0 mov r5, #0x0 _02087486: ldr r0, [r4, #0x4c] bl FUN_0200BC1C add r0, r5, #0x0 add sp, #0x20 pop {r3-r5, pc} nop _02087494: .word 0x00000475 _02087498: .word 0x00000484 thumb_func_start FUN_0208749C FUN_0208749C: ; 0x0208749C push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x64] cmp r0, #0x0 beq _020874AC cmp r0, #0x1 beq _020874BC b _020874D4 _020874AC: ldr r0, [r4, #0x6c] mov r1, #0x0 bl FUN_0200C61C ldr r0, [r4, #0x64] add r0, r0, #0x1 str r0, [r4, #0x64] b _020874DC _020874BC: ldr r0, [r4, #0x60] add r0, r0, #0x1 str r0, [r4, #0x60] cmp r0, #0x19 blt _020874DC ldr r0, _020874E0 ; =0x00000714 bl FUN_020054C8 ldr r0, [r4, #0x64] add r0, r0, #0x1 str r0, [r4, #0x64] b _020874DC _020874D4: mov r0, #0x0 str r0, [r4, #0x64] str r0, [r4, #0x60] pop {r4, pc} _020874DC: mov r0, #0x1 pop {r4, pc} .balign 4 _020874E0: .word 0x00000714 thumb_func_start FUN_020874E4 FUN_020874E4: ; 0x020874E4 push {r4, lr} add r4, r0, #0x0 ldr r1, [r4, #0x64] cmp r1, #0x0 beq _020874F4 cmp r1, #0x1 beq _0208750E b _02087532 _020874F4: ldr r0, [r4, #0x40] bl FUN_02086B8C cmp r0, #0x1 beq _0208754C ldr r0, [r4, #0x6c] mov r1, #0x1 bl FUN_0200C61C ldr r0, [r4, #0x64] add r0, r0, #0x1 str r0, [r4, #0x64] b _0208754C _0208750E: mov r1, #0x0 bl FUN_02086E04 cmp r0, #0x2 bne _0208754C ldr r0, _02087550 ; =0x00000714 bl FUN_020054C8 ldr r0, [r4, #0x6c] mov r1, #0x2 bl FUN_0200C61C ldr r0, [r4, #0x64] add r0, r0, #0x1 str r0, [r4, #0x64] mov r0, #0x0 str r0, [r4, #0x60] b _0208754C _02087532: mov r1, #0x0 bl FUN_02086E04 cmp r0, #0x2 bne _0208754C ldr r0, [r4, #0x6c] mov r1, #0x2 bl FUN_0200C61C mov r0, #0x0 str r0, [r4, #0x64] str r0, [r4, #0x60] pop {r4, pc} _0208754C: mov r0, #0x1 pop {r4, pc} .balign 4 _02087550: .word 0x00000714 thumb_func_start FUN_02087554 FUN_02087554: ; 0x02087554 push {r3-r5, lr} add r4, r0, #0x0 ldr r1, [r4, #0x64] cmp r1, #0x0 beq _02087564 cmp r1, #0x1 beq _0208756A b _0208759C _02087564: add r0, r1, #0x1 str r0, [r4, #0x64] b _020875A4 _0208756A: mov r1, #0x1 bl FUN_02086E04 add r5, r0, #0x0 cmp r5, #0x1 bne _0208758C ldr r0, _020875A8 ; =0x00000714 bl FUN_020054C8 ldr r0, [r4, #0x6c] mov r1, #0x3 bl FUN_0200C61C ldr r0, [r4, #0x40] mov r1, #0x0 bl FUN_02086B70 _0208758C: cmp r5, #0x2 bne _020875A4 mov r0, #0x0 str r0, [r4, #0x60] ldr r0, [r4, #0x64] add r0, r0, #0x1 str r0, [r4, #0x64] b _020875A4 _0208759C: mov r0, #0x0 str r0, [r4, #0x64] str r0, [r4, #0x60] pop {r3-r5, pc} _020875A4: mov r0, #0x1 pop {r3-r5, pc} .balign 4 _020875A8: .word 0x00000714 thumb_func_start FUN_020875AC FUN_020875AC: ; 0x020875AC push {r3-r5, lr} add r4, r0, #0x0 ldr r1, [r4, #0x64] cmp r1, #0x0 beq _020875BC cmp r1, #0x1 beq _020875CE b _02087600 _020875BC: ldr r0, [r4, #0x40] bl FUN_02086B8C cmp r0, #0x1 beq _02087608 ldr r0, [r4, #0x64] add r0, r0, #0x1 str r0, [r4, #0x64] b _02087608 _020875CE: mov r1, #0x2 bl FUN_02086E04 add r5, r0, #0x0 cmp r5, #0x1 bne _020875F0 ldr r0, _0208760C ; =0x00000714 bl FUN_020054C8 ldr r0, [r4, #0x6c] mov r1, #0x4 bl FUN_0200C61C ldr r0, [r4, #0x40] mov r1, #0x1 bl FUN_02086B70 _020875F0: cmp r5, #0x2 bne _02087608 mov r0, #0x0 str r0, [r4, #0x60] ldr r0, [r4, #0x64] add r0, r0, #0x1 str r0, [r4, #0x64] b _02087608 _02087600: mov r0, #0x0 str r0, [r4, #0x64] str r0, [r4, #0x60] pop {r3-r5, pc} _02087608: mov r0, #0x1 pop {r3-r5, pc} .balign 4 _0208760C: .word 0x00000714 thumb_func_start FUN_02087610 FUN_02087610: ; 0x02087610 push {r4-r6, lr} sub sp, #0x10 add r4, r0, #0x0 ldr r1, [r4, #0x64] cmp r1, #0x5 bls _0208761E b _020877FC _0208761E: add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0208762A: ; jump table (using 16-bit offset) .short _02087636 - _0208762A - 2; case 0 .short _02087658 - _0208762A - 2; case 1 .short _0208769A - _0208762A - 2; case 2 .short _02087702 - _0208762A - 2; case 3 .short _02087794 - _0208762A - 2; case 4 .short _020877E0 - _0208762A - 2; case 5 _02087636: ldr r0, [r4, #0x40] bl FUN_02086B8C cmp r0, #0x1 beq _020876A4 ldr r0, [r4, #0x6c] mov r1, #0x4 bl FUN_0200C61C mov r0, #0x2 mov r1, #0x0 bl FUN_0201E6E4 ldr r0, [r4, #0x64] add r0, r0, #0x1 str r0, [r4, #0x64] b _02087810 _02087658: mov r1, #0x3 bl FUN_02086E04 add r5, r0, #0x0 cmp r5, #0x1 bne _02087682 ldr r0, [r4, #0x6c] mov r1, #0x5 bl FUN_0200C61C ldr r0, _02087818 ; =0x00000707 bl FUN_020054C8 ldr r0, [r4, #0x40] mov r1, #0x2 bl FUN_02086B70 ldr r0, [r4, #0x40] mov r1, #0x3 bl FUN_02086B70 _02087682: cmp r5, #0x2 bne _020876A4 ldr r0, [r4, #0x6c] mov r1, #0x0 bl FUN_0200C644 mov r0, #0x0 str r0, [r4, #0x60] ldr r0, [r4, #0x64] add r0, r0, #0x1 str r0, [r4, #0x64] b _02087810 _0208769A: ldr r0, [r4, #0x60] add r0, r0, #0x1 str r0, [r4, #0x60] cmp r0, #0xa bge _020876A6 _020876A4: b _02087810 _020876A6: mov r3, #0x0 str r3, [r4, #0x60] str r3, [sp, #0x0] mov r0, #0x10 ldr r2, _0208781C ; =0x0000FFFF str r0, [sp, #0x4] str r2, [sp, #0x8] ldr r0, [r4, #0x8] mov r1, #0x1 bl FUN_02003210 ldr r0, [r4, #0x70] ldr r0, [r0, #0x0] bl FUN_02020354 mov r1, #0x1 bl FUN_0201E28C add r5, r0, #0x0 mov r3, #0x0 mov r6, #0x1 str r3, [sp, #0x0] mov r0, #0x10 ldr r2, _0208781C ; =0x0000FFFF str r0, [sp, #0x4] str r2, [sp, #0x8] lsl r6, r5 eor r2, r6 lsl r2, r2, #0x10 ldr r0, [r4, #0x8] mov r1, #0x4 lsr r2, r2, #0x10 bl FUN_02003210 ldr r0, _0208781C ; =0x0000FFFF mov r1, #0x0 str r0, [sp, #0x0] ldr r0, [r4, #0x68] mov r2, #0x10 add r3, r1, #0x0 bl FUN_02007E68 ldr r0, [r4, #0x64] add r0, r0, #0x1 str r0, [r4, #0x64] b _02087810 _02087702: add r1, sp, #0xc ldr r0, [r4, #0x70] mov r5, #0x0 add r1, #0x2 add r2, sp, #0xc bl FUN_0200C7A0 add r0, sp, #0xc add r1, r5, #0x0 ldrsh r2, [r0, r1] add r0, r1, #0x0 sub r0, #0x30 cmp r2, r0 ble _02087728 ldr r0, [r4, #0x70] sub r2, r1, #0x4 bl FUN_0200C82C b _0208772A _02087728: add r5, r5, #0x1 _0208772A: add r1, sp, #0xc ldr r0, [r4, #0x74] add r1, #0x2 add r2, sp, #0xc bl FUN_0200C7A0 add r0, sp, #0xc mov r1, #0x0 ldrsh r0, [r0, r1] cmp r0, #0xc0 bge _0208774A ldr r0, [r4, #0x74] mov r2, #0x4 bl FUN_0200C82C b _0208774C _0208774A: add r5, r5, #0x1 _0208774C: ldr r0, [r4, #0x8] bl FUN_020038E4 cmp r0, #0x0 bne _02087810 cmp r5, #0x2 bne _02087810 ldr r0, [r4, #0x68] bl FUN_02007F20 cmp r0, #0x0 bne _02087810 mov r0, #0x2 mov r1, #0x1 bl FUN_0201E6E4 add r0, r4, #0x0 mov r1, #0x0 bl FUN_02086F98 ldr r0, [r4, #0x6c] mov r1, #0x0 bl FUN_0200C644 ldr r0, [r4, #0x70] mov r1, #0x0 bl FUN_0200C644 ldr r0, [r4, #0x74] mov r1, #0x0 bl FUN_0200C644 ldr r0, [r4, #0x64] add r0, r0, #0x1 str r0, [r4, #0x64] b _02087810 _02087794: ldr r0, [r4, #0x60] add r0, r0, #0x1 str r0, [r4, #0x60] cmp r0, #0x19 blt _02087810 mov r2, #0x0 ldr r0, _0208781C ; =0x0000FFFF str r2, [r4, #0x60] str r0, [sp, #0x0] ldr r0, [r4, #0x68] mov r1, #0x10 add r3, r2, #0x0 bl FUN_02007E68 mov r0, #0x10 str r0, [sp, #0x0] mov r3, #0x0 ldr r2, _0208781C ; =0x0000FFFF str r3, [sp, #0x4] str r2, [sp, #0x8] ldr r0, [r4, #0x8] mov r1, #0x1 bl FUN_02003210 mov r0, #0x10 str r0, [sp, #0x0] mov r3, #0x0 ldr r2, _0208781C ; =0x0000FFFF str r3, [sp, #0x4] str r2, [sp, #0x8] ldr r0, [r4, #0x8] mov r1, #0x4 bl FUN_02003210 ldr r0, [r4, #0x64] add r0, r0, #0x1 str r0, [r4, #0x64] b _02087810 _020877E0: ldr r0, [r4, #0x8] bl FUN_020038E4 cmp r0, #0x0 bne _02087810 ldr r0, [r4, #0x68] bl FUN_02007F20 cmp r0, #0x0 bne _02087810 ldr r0, [r4, #0x64] add r0, r0, #0x1 str r0, [r4, #0x64] b _02087810 _020877FC: ldr r0, [r4, #0x40] bl FUN_02086B8C cmp r0, #0x1 beq _02087810 mov r0, #0x0 str r0, [r4, #0x64] add sp, #0x10 str r0, [r4, #0x60] pop {r4-r6, pc} _02087810: mov r0, #0x1 add sp, #0x10 pop {r4-r6, pc} nop _02087818: .word 0x00000707 _0208781C: .word 0x0000FFFF thumb_func_start FUN_02087820 FUN_02087820: ; 0x02087820 push {r4-r6, lr} sub sp, #0x10 add r4, r0, #0x0 ldr r0, [r4, #0x64] cmp r0, #0x4 bls _0208782E b _020879FC _0208782E: add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0208783A: ; jump table (using 16-bit offset) .short _02087844 - _0208783A - 2; case 0 .short _02087874 - _0208783A - 2; case 1 .short _02087902 - _0208783A - 2; case 2 .short _02087994 - _0208783A - 2; case 3 .short _020879E0 - _0208783A - 2; case 4 _02087844: ldr r0, [r4, #0x40] mov r1, #0x0 bl FUN_02086B70 ldr r0, [r4, #0x40] mov r1, #0x1 bl FUN_02086B70 ldr r0, [r4, #0x40] mov r1, #0x2 bl FUN_02086B70 ldr r0, [r4, #0x40] mov r1, #0x3 bl FUN_02086B70 mov r0, #0x2 mov r1, #0x0 bl FUN_0201E6E4 ldr r0, [r4, #0x64] add r0, r0, #0x1 str r0, [r4, #0x64] b _02087A06 _02087874: ldr r0, [r4, #0x60] cmp r0, #0x19 beq _02087884 cmp r0, #0x50 beq _0208788C cmp r0, #0x8e beq _02087894 b _0208789A _02087884: ldr r0, _02087A0C ; =0x00000806 bl FUN_020054C8 b _0208789A _0208788C: ldr r0, _02087A10 ; =0x000007AA bl FUN_020054C8 b _0208789A _02087894: ldr r0, _02087A14 ; =0x00000815 bl FUN_020054C8 _0208789A: ldr r0, [r4, #0x60] add r0, r0, #0x1 str r0, [r4, #0x60] cmp r0, #0xa0 bge _020878A6 b _02087A06 _020878A6: mov r3, #0x0 str r3, [r4, #0x60] str r3, [sp, #0x0] mov r0, #0x10 ldr r2, _02087A18 ; =0x0000FFFF str r0, [sp, #0x4] str r2, [sp, #0x8] ldr r0, [r4, #0x8] mov r1, #0x1 bl FUN_02003210 ldr r0, [r4, #0x70] ldr r0, [r0, #0x0] bl FUN_02020354 mov r1, #0x1 bl FUN_0201E28C add r5, r0, #0x0 mov r3, #0x0 mov r6, #0x1 str r3, [sp, #0x0] mov r0, #0x10 ldr r2, _02087A18 ; =0x0000FFFF str r0, [sp, #0x4] str r2, [sp, #0x8] lsl r6, r5 eor r2, r6 lsl r2, r2, #0x10 ldr r0, [r4, #0x8] mov r1, #0x4 lsr r2, r2, #0x10 bl FUN_02003210 ldr r0, _02087A18 ; =0x0000FFFF mov r1, #0x0 str r0, [sp, #0x0] ldr r0, [r4, #0x68] mov r2, #0x10 add r3, r1, #0x0 bl FUN_02007E68 ldr r0, [r4, #0x64] add r0, r0, #0x1 str r0, [r4, #0x64] b _02087A06 _02087902: add r1, sp, #0xc ldr r0, [r4, #0x70] mov r5, #0x0 add r1, #0x2 add r2, sp, #0xc bl FUN_0200C7A0 add r0, sp, #0xc add r1, r5, #0x0 ldrsh r2, [r0, r1] add r0, r1, #0x0 sub r0, #0x30 cmp r2, r0 ble _02087928 ldr r0, [r4, #0x70] sub r2, r1, #0x4 bl FUN_0200C82C b _0208792A _02087928: add r5, r5, #0x1 _0208792A: add r1, sp, #0xc ldr r0, [r4, #0x74] add r1, #0x2 add r2, sp, #0xc bl FUN_0200C7A0 add r0, sp, #0xc mov r1, #0x0 ldrsh r0, [r0, r1] cmp r0, #0xc0 bge _0208794A ldr r0, [r4, #0x74] mov r2, #0x4 bl FUN_0200C82C b _0208794C _0208794A: add r5, r5, #0x1 _0208794C: ldr r0, [r4, #0x8] bl FUN_020038E4 cmp r0, #0x0 bne _02087A06 cmp r5, #0x2 bne _02087A06 ldr r0, [r4, #0x68] bl FUN_02007F20 cmp r0, #0x0 bne _02087A06 add r0, r4, #0x0 mov r1, #0x0 bl FUN_02086F98 mov r0, #0x2 mov r1, #0x1 bl FUN_0201E6E4 ldr r0, [r4, #0x6c] mov r1, #0x0 bl FUN_0200C644 ldr r0, [r4, #0x70] mov r1, #0x0 bl FUN_0200C644 ldr r0, [r4, #0x74] mov r1, #0x0 bl FUN_0200C644 ldr r0, [r4, #0x64] add r0, r0, #0x1 str r0, [r4, #0x64] b _02087A06 _02087994: ldr r0, [r4, #0x60] add r0, r0, #0x1 str r0, [r4, #0x60] cmp r0, #0x19 blt _02087A06 mov r2, #0x0 ldr r0, _02087A18 ; =0x0000FFFF str r2, [r4, #0x60] str r0, [sp, #0x0] ldr r0, [r4, #0x68] mov r1, #0x10 add r3, r2, #0x0 bl FUN_02007E68 mov r0, #0x10 str r0, [sp, #0x0] mov r3, #0x0 ldr r2, _02087A18 ; =0x0000FFFF str r3, [sp, #0x4] str r2, [sp, #0x8] ldr r0, [r4, #0x8] mov r1, #0x1 bl FUN_02003210 mov r0, #0x10 str r0, [sp, #0x0] mov r3, #0x0 ldr r2, _02087A18 ; =0x0000FFFF str r3, [sp, #0x4] str r2, [sp, #0x8] ldr r0, [r4, #0x8] mov r1, #0x4 bl FUN_02003210 ldr r0, [r4, #0x64] add r0, r0, #0x1 str r0, [r4, #0x64] b _02087A06 _020879E0: ldr r0, [r4, #0x8] bl FUN_020038E4 cmp r0, #0x0 bne _02087A06 ldr r0, [r4, #0x68] bl FUN_02007F20 cmp r0, #0x0 bne _02087A06 ldr r0, [r4, #0x64] add r0, r0, #0x1 str r0, [r4, #0x64] b _02087A06 _020879FC: mov r0, #0x0 str r0, [r4, #0x64] add sp, #0x10 str r0, [r4, #0x60] pop {r4-r6, pc} _02087A06: mov r0, #0x1 add sp, #0x10 pop {r4-r6, pc} .balign 4 _02087A0C: .word 0x00000806 _02087A10: .word 0x000007AA _02087A14: .word 0x00000815 _02087A18: .word 0x0000FFFF thumb_func_start FUN_02087A1C FUN_02087A1C: ; 0x02087A1C ldr r3, _02087A34 ; =0x020FD13C mov r2, #0x0 _02087A20: ldrb r1, [r3, #0x0] cmp r0, r1 beq _02087A2E add r2, r2, #0x1 add r3, r3, #0x1 cmp r2, #0x6 blt _02087A20 _02087A2E: add r0, r2, #0x0 bx lr nop _02087A34: .word 0x020FD13C thumb_func_start FUN_02087A38 FUN_02087A38: ; 0x02087A38 push {r4, lr} add r4, r0, #0x0 cmp r4, #0x6 blt _02087A44 bl ErrorHandling _02087A44: ldr r0, _02087A4C ; =0x020FD13C ldrb r0, [r0, r4] pop {r4, pc} nop _02087A4C: .word 0x020FD13C thumb_func_start FUN_02087A50 FUN_02087A50: ; 0x02087A50 ldr r3, _02087A68 ; =0x020FD120 mov r2, #0x0 _02087A54: ldrh r1, [r3, #0x0] cmp r0, r1 beq _02087A62 add r2, r2, #0x1 add r3, r3, #0x2 cmp r2, #0xe blt _02087A54 _02087A62: add r0, r2, #0x0 bx lr nop _02087A68: .word 0x020FD120 thumb_func_start FUN_02087A6C FUN_02087A6C: ; 0x02087A6C push {r3, lr} mov r1, #0x18 bl FUN_02016998 add r3, r0, #0x0 mov r2, #0x18 mov r1, #0x0 _02087A7A: strb r1, [r3, #0x0] add r3, r3, #0x1 sub r2, r2, #0x1 bne _02087A7A pop {r3, pc} thumb_func_start FUN_02087A84 FUN_02087A84: ; 0x02087A84 push {r4, lr} add r4, r0, #0x0 bne _02087A8E bl ErrorHandling _02087A8E: add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} .balign 4 thumb_func_start FUN_02087A98 FUN_02087A98: ; 0x02087A98 push {r4-r6, lr} add r5, r0, #0x0 add r6, r1, #0x0 add r4, r2, #0x0 cmp r5, #0x0 bne _02087AA8 bl ErrorHandling _02087AA8: ldr r0, [r5, #0x0] cmp r0, #0x0 beq _02087AB2 bl ErrorHandling _02087AB2: ldr r0, [r5, #0x4] cmp r0, #0x0 beq _02087ABC bl ErrorHandling _02087ABC: add r0, r4, #0x0 bl FUN_02087C18 str r0, [r5, #0x0] add r0, r4, #0x0 bl FUN_02087C2C str r0, [r5, #0x4] cmp r6, #0x0 bne _02087AEE add r0, r5, #0x0 add r1, r5, #0x0 add r0, #0x8 add r1, #0xc add r2, r4, #0x0 bl FUN_02087C40 add r0, r5, #0x0 add r5, #0x14 add r0, #0x10 add r1, r5, #0x0 add r2, r4, #0x0 bl FUN_02087CA0 pop {r4-r6, pc} _02087AEE: add r0, r5, #0x0 add r1, r5, #0x0 add r0, #0x8 add r1, #0xc add r2, r4, #0x0 bl FUN_02087C70 add r0, r5, #0x0 add r5, #0x14 add r0, #0x10 add r1, r5, #0x0 add r2, r4, #0x0 bl FUN_02087CD0 pop {r4-r6, pc} thumb_func_start FUN_02087B0C FUN_02087B0C: ; 0x02087B0C push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x0 bne _02087B1A bl ErrorHandling _02087B1A: ldr r0, [r4, #0x4] cmp r0, #0x0 bne _02087B24 bl ErrorHandling _02087B24: ldr r0, [r4, #0x0] bl FUN_02016A18 ldr r0, [r4, #0x4] bl FUN_02016A18 ldr r0, [r4, #0x8] bl FUN_02016A18 ldr r0, [r4, #0xc] bl FUN_02016A18 ldr r0, [r4, #0x10] bl FUN_02016A18 ldr r0, [r4, #0x14] bl FUN_02016A18 mov r0, #0x0 str r0, [r4, #0x0] str r0, [r4, #0x4] str r0, [r4, #0x8] str r0, [r4, #0xc] str r0, [r4, #0x10] str r0, [r4, #0x14] pop {r4, pc} thumb_func_start FUN_02087B58 FUN_02087B58: ; 0x02087B58 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _02087B66 bl ErrorHandling _02087B66: ldr r0, [r5, #0x0] cmp r0, #0x0 bne _02087B70 bl ErrorHandling _02087B70: ldr r1, [r5, #0x0] lsl r0, r4, #0x2 ldr r0, [r1, r0] pop {r3-r5, pc} thumb_func_start FUN_02087B78 FUN_02087B78: ; 0x02087B78 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _02087B86 bl ErrorHandling _02087B86: ldr r0, [r5, #0x4] cmp r0, #0x0 bne _02087B90 bl ErrorHandling _02087B90: ldr r1, [r5, #0x4] lsl r0, r4, #0x2 ldr r0, [r1, r0] pop {r3-r5, pc} thumb_func_start FUN_02087B98 FUN_02087B98: ; 0x02087B98 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _02087BA6 bl ErrorHandling _02087BA6: ldr r0, [r5, #0x8] cmp r0, #0x0 bne _02087BB0 bl ErrorHandling _02087BB0: ldr r1, [r5, #0x8] lsl r0, r4, #0x1 ldrsh r0, [r1, r0] pop {r3-r5, pc} thumb_func_start FUN_02087BB8 FUN_02087BB8: ; 0x02087BB8 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _02087BC6 bl ErrorHandling _02087BC6: ldr r0, [r5, #0xc] cmp r0, #0x0 bne _02087BD0 bl ErrorHandling _02087BD0: ldr r1, [r5, #0xc] lsl r0, r4, #0x1 ldrsh r0, [r1, r0] pop {r3-r5, pc} thumb_func_start FUN_02087BD8 FUN_02087BD8: ; 0x02087BD8 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _02087BE6 bl ErrorHandling _02087BE6: ldr r0, [r5, #0x10] cmp r0, #0x0 bne _02087BF0 bl ErrorHandling _02087BF0: ldr r1, [r5, #0x10] lsl r0, r4, #0x1 ldrsh r0, [r1, r0] pop {r3-r5, pc} thumb_func_start FUN_02087BF8 FUN_02087BF8: ; 0x02087BF8 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 cmp r5, #0x0 bne _02087C06 bl ErrorHandling _02087C06: ldr r0, [r5, #0x14] cmp r0, #0x0 bne _02087C10 bl ErrorHandling _02087C10: ldr r1, [r5, #0x14] lsl r0, r4, #0x1 ldrsh r0, [r1, r0] pop {r3-r5, pc} thumb_func_start FUN_02087C18 FUN_02087C18: ; 0x02087C18 push {r3, lr} mov r1, #0x0 add r3, r0, #0x0 mov r0, #0x4b add r2, r1, #0x0 str r1, [sp, #0x0] bl FUN_02006C98 pop {r3, pc} .balign 4 thumb_func_start FUN_02087C2C FUN_02087C2C: ; 0x02087C2C push {r3, lr} add r3, r0, #0x0 mov r2, #0x0 mov r0, #0x4b mov r1, #0x1 str r2, [sp, #0x0] bl FUN_02006C98 pop {r3, pc} .balign 4 thumb_func_start FUN_02087C40 FUN_02087C40: ; 0x02087C40 push {r3-r6, lr} sub sp, #0x4 add r6, r2, #0x0 mov r2, #0x0 add r5, r0, #0x0 add r4, r1, #0x0 str r2, [sp, #0x0] mov r0, #0x4b mov r1, #0x9 add r3, r6, #0x0 bl FUN_02006C98 str r0, [r5, #0x0] mov r2, #0x0 mov r0, #0x4b mov r1, #0xa add r3, r6, #0x0 str r2, [sp, #0x0] bl FUN_02006C98 str r0, [r4, #0x0] add sp, #0x4 pop {r3-r6, pc} .balign 4 thumb_func_start FUN_02087C70 FUN_02087C70: ; 0x02087C70 push {r3-r6, lr} sub sp, #0x4 add r6, r2, #0x0 mov r2, #0x0 add r5, r0, #0x0 add r4, r1, #0x0 str r2, [sp, #0x0] mov r0, #0x4b mov r1, #0x7 add r3, r6, #0x0 bl FUN_02006C98 str r0, [r5, #0x0] mov r2, #0x0 mov r0, #0x4b mov r1, #0x8 add r3, r6, #0x0 str r2, [sp, #0x0] bl FUN_02006C98 str r0, [r4, #0x0] add sp, #0x4 pop {r3-r6, pc} .balign 4 thumb_func_start FUN_02087CA0 FUN_02087CA0: ; 0x02087CA0 push {r3-r6, lr} sub sp, #0x4 add r6, r2, #0x0 mov r2, #0x0 add r5, r0, #0x0 add r4, r1, #0x0 str r2, [sp, #0x0] mov r0, #0x4b mov r1, #0x5 add r3, r6, #0x0 bl FUN_02006C98 str r0, [r5, #0x0] mov r2, #0x0 mov r0, #0x4b mov r1, #0x6 add r3, r6, #0x0 str r2, [sp, #0x0] bl FUN_02006C98 str r0, [r4, #0x0] add sp, #0x4 pop {r3-r6, pc} .balign 4 thumb_func_start FUN_02087CD0 FUN_02087CD0: ; 0x02087CD0 push {r3-r6, lr} sub sp, #0x4 add r6, r2, #0x0 mov r2, #0x0 add r5, r0, #0x0 add r4, r1, #0x0 str r2, [sp, #0x0] mov r0, #0x4b mov r1, #0x3 add r3, r6, #0x0 bl FUN_02006C98 str r0, [r5, #0x0] mov r2, #0x0 mov r0, #0x4b mov r1, #0x4 add r3, r6, #0x0 str r2, [sp, #0x0] bl FUN_02006C98 str r0, [r4, #0x0] add sp, #0x4 pop {r3-r6, pc} .balign 4 thumb_func_start FUN_02087D00 FUN_02087D00: ; 0x02087D00 push {r3-r7, lr} sub sp, #0x10 add r4, r0, #0x0 add r5, r1, #0x0 mov r0, #0x0 mov r1, #0xcf str r0, [sp, #0x0] add r0, r5, #0x0 lsl r1, r1, #0x2 bl FUN_02016998 mov r2, #0xcf mov r1, #0x0 lsl r2, r2, #0x2 add r7, r0, #0x0 blx MI_CpuFill8 add r0, r4, #0x0 bl FUN_02028048 str r0, [r7, #0x8] add r0, r4, #0x0 bl FUN_020238F4 str r0, [r7, #0xc] add r0, r4, #0x0 bl FUN_0206BB1C str r0, [r7, #0x10] add r0, r4, #0x0 bl FUN_0206F158 str r0, [r7, #0x14] add r0, r4, #0x0 bl LoadPlayerDataAddress str r0, [r7, #0x18] add r0, r5, #0x0 bl FUN_02027E5C add r4, r0, #0x0 mov r0, #0x1 mov r1, #0x20 add r2, r5, #0x0 bl FUN_0200AA90 str r0, [sp, #0x4] mov r6, #0x0 _02087D60: ldr r0, [r7, #0x8] add r1, r6, #0x0 add r2, r4, #0x0 bl FUN_02028174 add r0, r4, #0x0 bl FUN_02027E34 cmp r0, #0x0 beq _02087DEE add r0, r4, #0x0 add r1, sp, #0x8 bl FUN_02027FBC ldr r0, [sp, #0x0] add r1, r7, #0x0 add r1, #0x1c lsl r0, r0, #0x3 add r5, r1, r0 strb r6, [r1, r0] add r0, r4, #0x0 bl FUN_02027FDC strb r0, [r5, #0x1] add r0, sp, #0x8 ldrb r1, [r0, #0x0] mov r2, #0x1 strb r1, [r5, #0x2] ldrb r0, [r0, #0x6] mov r1, #0x0 strb r0, [r5, #0x3] add r0, sp, #0x8 _02087DA0: add r3, r0, r1 ldrb r3, [r3, #0x1] cmp r3, #0x0 beq _02087DAE ldrb r3, [r5, #0x4] orr r3, r2 strb r3, [r5, #0x4] _02087DAE: add r1, r1, #0x1 lsl r1, r1, #0x18 lsl r2, r2, #0x19 lsr r1, r1, #0x18 lsr r2, r2, #0x18 cmp r1, #0x5 blo _02087DA0 ldrb r1, [r5, #0x4] mov r0, #0x20 orr r0, r1 strb r0, [r5, #0x4] ldrb r2, [r5, #0x4] mov r1, #0x80 add r0, r2, #0x0 bic r0, r1 lsl r1, r2, #0x1a lsr r1, r1, #0x1f lsl r1, r1, #0x1f lsr r1, r1, #0x18 orr r0, r1 strb r0, [r5, #0x4] ldr r0, [sp, #0x0] add r1, r0, #0x0 add r1, r1, #0x1 lsl r1, r1, #0x18 lsr r1, r1, #0x18 str r1, [sp, #0x0] strb r0, [r5, #0x5] mov r0, #0xff strb r0, [r5, #0x6] ldrb r0, [r5, #0x6] strb r0, [r5, #0x7] _02087DEE: add r0, r6, #0x1 lsl r0, r0, #0x18 lsr r6, r0, #0x18 cmp r6, #0x64 blo _02087D60 ldr r0, [sp, #0x4] bl FUN_0200AB18 add r0, r4, #0x0 bl FUN_02016A18 ldr r0, [sp, #0x0] strb r0, [r7, #0x0] mov r0, #0x5 strb r0, [r7, #0x3] add r0, r7, #0x0 add sp, #0x10 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02087E14 FUN_02087E14: ; 0x02087E14 ldr r3, _02087E18 ; =FUN_02016A18 bx r3 .balign 4 _02087E18: .word FUN_02016A18 thumb_func_start FUN_02087E1C FUN_02087E1C: ; 0x02087E1C push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x0 beq _02087E3C bl FUN_02006290 cmp r0, #0x0 beq _02087E3C ldr r0, [r4, #0x0] bl FUN_02006260 mov r0, #0x0 str r0, [r4, #0x0] mov r0, #0x1 pop {r4, pc} _02087E3C: mov r0, #0x0 pop {r4, pc} thumb_func_start FUN_02087E40 FUN_02087E40: ; 0x02087E40 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_0200628C mov r2, #0x1 add r5, r0, #0x0 mov r0, #0x3 mov r1, #0x2c lsl r2, r2, #0xc bl FUN_0201681C add r0, r4, #0x0 mov r1, #0x18 mov r2, #0x2c bl FUN_02006268 mov r1, #0x0 mov r2, #0x18 add r4, r0, #0x0 blx MI_CpuFill8 mov r0, #0x2c str r0, [r4, #0x0] str r5, [r4, #0xc] mov r0, #0x1 pop {r3-r5, pc} thumb_func_start FUN_02087E74 FUN_02087E74: ; 0x02087E74 push {r4, lr} add r4, r1, #0x0 bl FUN_02006278 ldr r1, [r4, #0x0] cmp r1, #0x8 bhi _02087EE4 add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02087E8E: ; jump table (using 16-bit offset) .short _02087EA0 - _02087E8E - 2; case 0 .short _02087EA8 - _02087E8E - 2; case 1 .short _02087EB0 - _02087E8E - 2; case 2 .short _02087EB8 - _02087E8E - 2; case 3 .short _02087EC0 - _02087E8E - 2; case 4 .short _02087EC8 - _02087E8E - 2; case 5 .short _02087ED0 - _02087E8E - 2; case 6 .short _02087ED8 - _02087E8E - 2; case 7 .short _02087EE0 - _02087E8E - 2; case 8 _02087EA0: bl FUN_02087F50 str r0, [r4, #0x0] b _02087EE4 _02087EA8: bl FUN_02087F68 str r0, [r4, #0x0] b _02087EE4 _02087EB0: bl FUN_02087FD4 str r0, [r4, #0x0] b _02087EE4 _02087EB8: bl FUN_0208805C str r0, [r4, #0x0] b _02087EE4 _02087EC0: bl FUN_020880A0 str r0, [r4, #0x0] b _02087EE4 _02087EC8: bl FUN_0208810C str r0, [r4, #0x0] b _02087EE4 _02087ED0: bl FUN_02088130 str r0, [r4, #0x0] b _02087EE4 _02087ED8: bl FUN_020881AC str r0, [r4, #0x0] b _02087EE4 _02087EE0: mov r0, #0x1 pop {r4, pc} _02087EE4: mov r0, #0x0 pop {r4, pc} thumb_func_start FUN_02087EE8 FUN_02087EE8: ; 0x02087EE8 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02006278 add r4, r0, #0x0 bl FUN_02087F08 add r0, r5, #0x0 bl FUN_0200627C ldr r0, [r4, #0x0] bl FUN_020168D0 mov r0, #0x1 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02087F08 FUN_02087F08: ; 0x02087F08 push {r4-r6, lr} add r5, r0, #0x0 ldr r2, [r5, #0xc] mov r0, #0x0 ldrb r1, [r2, #0x0] add r4, r0, #0x0 cmp r1, #0x0 bls _02087F42 mov r6, #0x1 _02087F1A: add r3, r2, #0x0 add r3, #0x1c lsl r1, r4, #0x3 add r1, r3, r1 ldrb r3, [r1, #0x4] lsl r3, r3, #0x19 lsr r3, r3, #0x1f beq _02087F34 ldrb r1, [r1, #0x0] ldr r0, [r2, #0x8] bl FUN_020280B8 add r0, r6, #0x0 _02087F34: add r1, r4, #0x1 lsl r1, r1, #0x18 ldr r2, [r5, #0xc] lsr r4, r1, #0x18 ldrb r1, [r2, #0x0] cmp r4, r1 blo _02087F1A _02087F42: cmp r0, #0x0 beq _02087F4C ldr r0, [r2, #0x8] bl FUN_020280F4 _02087F4C: pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02087F50 FUN_02087F50: ; 0x02087F50 push {r4, lr} add r4, r0, #0x0 ldr r0, _02087F64 ; =0x020FD15C ldr r1, [r4, #0xc] ldr r2, [r4, #0x0] bl FUN_02006234 str r0, [r4, #0x14] mov r0, #0x1 pop {r4, pc} .balign 4 _02087F64: .word 0x020FD15C thumb_func_start FUN_02087F68 FUN_02087F68: ; 0x02087F68 push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x14 bl FUN_02087E1C cmp r0, #0x0 bne _02087F7A mov r0, #0x1 pop {r3-r5, pc} _02087F7A: ldr r1, [r5, #0xc] ldrb r0, [r1, #0x2] cmp r0, #0x0 bne _02087F86 mov r0, #0x8 pop {r3-r5, pc} _02087F86: mov r0, #0x0 strb r0, [r1, #0x2] ldr r0, [r5, #0x0] mov r1, #0x40 bl FUN_02016998 mov r1, #0x0 mov r2, #0x40 add r4, r0, #0x0 blx MI_CpuFill8 ldr r0, [r5, #0xc] mov r1, #0x0 ldr r0, [r0, #0x10] str r0, [r4, #0x0] ldr r0, [r5, #0xc] ldr r0, [r0, #0x14] str r0, [r4, #0x4] add r0, r4, #0x0 add r0, #0x21 strb r1, [r0, #0x0] add r0, r4, #0x0 mov r1, #0x14 add r0, #0x20 strb r1, [r0, #0x0] ldr r0, [r5, #0xc] add r1, r4, #0x0 ldr r0, [r0, #0x18] str r0, [r4, #0xc] ldr r0, _02087FD0 ; =0x020F96DC ldr r2, [r5, #0x0] bl FUN_02006234 str r0, [r5, #0x14] str r4, [r5, #0x10] mov r0, #0x2 pop {r3-r5, pc} .balign 4 _02087FD0: .word 0x020F96DC thumb_func_start FUN_02087FD4 FUN_02087FD4: ; 0x02087FD4 push {r3-r7, lr} add r5, r0, #0x0 add r0, #0x14 bl FUN_02087E1C cmp r0, #0x0 bne _02087FE6 mov r0, #0x2 pop {r3-r7, pc} _02087FE6: ldr r7, [r5, #0x10] add r0, r7, #0x0 add r0, #0x22 ldrb r6, [r0, #0x0] strb r6, [r5, #0x8] ldr r0, [r5, #0x10] bl FUN_02016A18 cmp r6, #0x7 bne _02087FFE mov r0, #0x0 pop {r3-r7, pc} _02087FFE: ldr r0, [r5, #0x0] mov r1, #0x30 bl FUN_02016998 add r4, r0, #0x0 ldr r0, [r5, #0xc] ldr r0, [r0, #0x10] str r0, [r4, #0x0] ldr r0, [r5, #0xc] ldr r0, [r0, #0x18] str r0, [r4, #0x4] mov r0, #0x1 strb r0, [r4, #0x11] strb r6, [r4, #0x14] ldr r0, [r4, #0x0] bl FUN_0206B9AC strb r0, [r4, #0x13] mov r1, #0x0 strh r1, [r4, #0x18] mov r0, #0x3 strb r0, [r4, #0x12] mov r0, #0x1 str r0, [r4, #0x2c] str r1, [r4, #0x28] ldr r1, _02088054 ; =0x020FD158 add r0, r4, #0x0 bl FUN_0207B000 ldr r1, [r5, #0xc] add r0, r4, #0x0 ldr r1, [r1, #0xc] bl FUN_0207C2A4 ldr r0, _02088058 ; =0x020FA6E8 ldr r2, [r5, #0x0] add r1, r7, #0x0 bl FUN_02006234 str r0, [r5, #0x14] str r4, [r5, #0x10] mov r0, #0x3 pop {r3-r7, pc} .balign 4 _02088054: .word 0x020FD158 _02088058: .word 0x020FA6E8 thumb_func_start FUN_0208805C FUN_0208805C: ; 0x0208805C push {r3-r5, lr} add r5, r0, #0x0 add r0, #0x14 bl FUN_02087E1C cmp r0, #0x0 bne _0208806E mov r0, #0x3 pop {r3-r5, pc} _0208806E: ldr r0, [r5, #0x10] ldrb r4, [r0, #0x17] ldrb r0, [r0, #0x14] strb r0, [r5, #0x8] ldr r0, [r5, #0x10] bl FUN_02016A18 cmp r4, #0x1 bne _02088084 mov r0, #0x0 pop {r3-r5, pc} _02088084: ldr r0, [r5, #0xc] add r3, r0, #0x0 ldrb r0, [r0, #0x1] add r3, #0x20 lsl r2, r0, #0x3 ldrb r1, [r3, r2] mov r0, #0x40 orr r0, r1 strb r0, [r3, r2] ldr r0, [r5, #0xc] mov r1, #0x1 strb r1, [r0, #0x2] mov r0, #0x4 pop {r3-r5, pc} thumb_func_start FUN_020880A0 FUN_020880A0: ; 0x020880A0 push {r3-r5, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] mov r1, #0xc bl FUN_02016998 mov r1, #0x0 mov r2, #0xc add r4, r0, #0x0 blx MI_CpuFill8 ldr r1, [r5, #0xc] ldrb r0, [r1, #0x1] lsl r0, r0, #0x3 add r0, r1, r0 ldrb r0, [r0, #0x1e] strh r0, [r4, #0x8] ldr r2, [r5, #0xc] ldrb r1, [r2, #0x1] ldr r0, [r2, #0x8] lsl r1, r1, #0x3 add r1, r2, r1 ldrb r1, [r1, #0x1c] ldr r2, [r5, #0x0] bl FUN_02028190 str r0, [r4, #0x4] ldr r0, [r5, #0xc] ldrb r1, [r5, #0x8] ldr r0, [r0, #0x10] bl FUN_0206B9B0 str r0, [r4, #0x0] ldr r0, [r5, #0xc] ldr r0, [r0, #0x18] bl FUN_02024FF4 strb r0, [r4, #0xa] ldr r0, [r5, #0xc] ldr r0, [r0, #0x18] bl FUN_02025084 strb r0, [r4, #0xb] ldr r0, _02088108 ; =0x020FD16C ldr r2, [r5, #0x0] add r1, r4, #0x0 bl FUN_02006234 str r0, [r5, #0x14] str r4, [r5, #0x10] mov r0, #0x5 pop {r3-r5, pc} .balign 4 _02088108: .word 0x020FD16C thumb_func_start FUN_0208810C FUN_0208810C: ; 0x0208810C push {r4, lr} add r4, r0, #0x0 add r0, #0x14 bl FUN_02087E1C cmp r0, #0x0 bne _0208811E mov r0, #0x5 pop {r4, pc} _0208811E: ldr r4, [r4, #0x10] ldr r0, [r4, #0x4] bl FUN_02016A18 add r0, r4, #0x0 bl FUN_02016A18 mov r0, #0x6 pop {r4, pc} thumb_func_start FUN_02088130 FUN_02088130: ; 0x02088130 push {r4-r6, lr} add r5, r0, #0x0 ldr r0, [r5, #0x0] mov r1, #0x30 bl FUN_02016998 ldr r2, [r5, #0xc] add r4, r0, #0x0 ldrb r1, [r2, #0x1] ldr r0, [r2, #0x8] lsl r1, r1, #0x3 add r1, r2, r1 ldrb r1, [r1, #0x1c] ldr r2, [r5, #0x0] bl FUN_02028190 add r6, r0, #0x0 ldr r0, [r5, #0xc] ldr r0, [r0, #0x10] str r0, [r4, #0x0] ldr r0, [r5, #0xc] ldr r0, [r0, #0x18] str r0, [r4, #0x4] mov r0, #0x1 strb r0, [r4, #0x11] ldrb r0, [r5, #0x8] strb r0, [r4, #0x14] ldr r0, [r4, #0x0] bl FUN_0206B9AC strb r0, [r4, #0x13] mov r1, #0x0 strh r1, [r4, #0x18] mov r0, #0x4 strb r0, [r4, #0x12] str r6, [r4, #0x24] mov r0, #0x1 str r0, [r4, #0x2c] str r1, [r4, #0x28] ldr r1, _020881A4 ; =0x020FD154 add r0, r4, #0x0 bl FUN_0207B000 ldr r1, [r5, #0xc] add r0, r4, #0x0 ldr r1, [r1, #0xc] bl FUN_0207C2A4 ldr r0, _020881A8 ; =0x020FA6E8 ldr r2, [r5, #0x0] add r1, r4, #0x0 bl FUN_02006234 str r0, [r5, #0x14] str r4, [r5, #0x10] mov r0, #0x7 pop {r4-r6, pc} nop _020881A4: .word 0x020FD154 _020881A8: .word 0x020FA6E8 thumb_func_start FUN_020881AC FUN_020881AC: ; 0x020881AC push {r4, lr} add r4, r0, #0x0 add r0, #0x14 bl FUN_02087E1C cmp r0, #0x0 bne _020881BE mov r0, #0x7 pop {r4, pc} _020881BE: ldr r0, [r4, #0x10] ldr r0, [r0, #0x24] bl FUN_02016A18 ldr r0, [r4, #0x10] bl FUN_02016A18 mov r0, #0x0 pop {r4, pc} thumb_func_start FUN_020881D0 FUN_020881D0: ; 0x020881D0 push {r3-r5, lr} sub sp, #0x8 lsl r2, r1, #0x1 ldr r1, _02088214 ; =0x020FD17C ldrb r4, [r1, r2] ldr r1, _02088218 ; =0x020FD17D ldrb r5, [r1, r2] cmp r4, #0x5 bne _020881E8 add sp, #0x8 mov r0, #0x2 pop {r3-r5, pc} _020881E8: add r1, sp, #0x0 bl FUN_02027FBC add r0, r4, #0x1 add r2, sp, #0x0 ldrb r1, [r2, r0] add r0, r5, #0x1 ldrb r0, [r2, r0] cmp r1, r0 bne _02088202 add sp, #0x8 mov r0, #0x2 pop {r3-r5, pc} _02088202: cmp r1, r0 bls _0208820C add sp, #0x8 mov r0, #0x0 pop {r3-r5, pc} _0208820C: mov r0, #0x1 add sp, #0x8 pop {r3-r5, pc} nop _02088214: .word 0x020FD17C _02088218: .word 0x020FD17D thumb_func_start FUN_0208821C FUN_0208821C: ; 0x0208821C push {r3-r7, lr} sub sp, #0x30 add r6, r1, #0x0 add r4, r0, #0x0 add r0, r6, #0x0 bl FUN_02068854 lsl r1, r0, #0x1 ldr r0, _02088310 ; =0x020FD17C ldrb r0, [r0, r1] str r0, [sp, #0x4] ldr r0, _02088314 ; =0x020FD17D ldrb r0, [r0, r1] add r1, sp, #0x10 str r0, [sp, #0x0] add r0, r4, #0x0 bl FUN_02027FBC mov r4, #0x0 add r7, r4, #0x0 add r5, sp, #0x18 _02088246: add r1, r4, #0x0 add r0, r6, #0x0 add r1, #0x13 add r2, r7, #0x0 bl FUN_020671BC lsl r1, r4, #0x2 str r0, [r5, r1] add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #0x6 blo _02088246 add r4, sp, #0x8 mov r1, #0x0 mov r3, #0x1 add r0, sp, #0x10 add r4, #0x1 _0208826A: ldrb r5, [r0, r3] add r2, r1, #0x0 add r1, r1, #0x1 strb r5, [r4, r2] add r2, r3, #0x1 lsl r2, r2, #0x18 lsl r1, r1, #0x18 lsr r3, r2, #0x18 lsr r1, r1, #0x18 cmp r3, #0x6 bls _0208826A ldr r0, [sp, #0x4] cmp r0, #0x5 beq _020882B8 ldrb r0, [r4, r0] blx FUN_020EB57C add r1, r0, #0x0 ldr r0, _02088318 ; =0x3F8CCCCD blx FUN_020EB5C4 blx FUN_020EB4F4 ldr r1, [sp, #0x4] strb r0, [r4, r1] add r4, sp, #0x8 ldr r0, [sp, #0x0] add r4, #0x1 ldrb r0, [r4, r0] blx FUN_020EB57C add r1, r0, #0x0 ldr r0, _0208831C ; =0x3F666666 blx FUN_020EB5C4 blx FUN_020EB4F4 ldr r1, [sp, #0x0] strb r0, [r4, r1] _020882B8: add r7, sp, #0x8 mov r5, #0x0 add r4, sp, #0x18 add r7, #0x1 _020882C0: lsl r2, r5, #0x2 ldrb r0, [r7, r5] ldr r1, [r4, r2] add r0, r1, r0 str r0, [r4, r2] ldr r0, [r4, r2] cmp r0, #0xff ble _020882D4 mov r0, #0xff str r0, [r4, r2] _020882D4: add r1, r5, #0x0 add r0, r6, #0x0 add r1, #0x13 add r2, r4, r2 bl FUN_02067830 add r0, r5, #0x1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 cmp r5, #0x6 blo _020882C0 add r0, r6, #0x0 mov r1, #0x9 mov r2, #0x0 bl FUN_020671BC add r1, sp, #0x8 strb r0, [r1, #0x0] ldrb r0, [r1, #0x0] cmp r0, #0xff bhs _0208830C add r0, r0, #0x1 strb r0, [r1, #0x0] add r0, r6, #0x0 mov r1, #0x9 add r2, sp, #0x8 bl FUN_02067830 _0208830C: add sp, #0x30 pop {r3-r7, pc} .balign 4 _02088310: .word 0x020FD17C _02088314: .word 0x020FD17D _02088318: .word 0x3F8CCCCD _0208831C: .word 0x3F666666 thumb_func_start FUN_02088320 FUN_02088320: ; 0x02088320 push {r3-r7, lr} add r5, r1, #0x0 mov r1, #0x59 lsl r1, r1, #0x2 add r6, r0, #0x0 add r7, r2, #0x0 str r3, [sp, #0x0] bl FUN_02016998 mov r2, #0x59 mov r1, #0x0 lsl r2, r2, #0x2 add r4, r0, #0x0 blx MI_CpuFill8 str r6, [r4, #0x0] cmp r5, #0x10 bls _0208834A mov r0, #0x10 strh r0, [r4, #0xa] b _0208834C _0208834A: strh r7, [r4, #0xa] _0208834C: strh r5, [r4, #0xc] ldr r0, [sp, #0x0] strh r0, [r4, #0xe] ldr r0, [sp, #0x18] str r0, [r4, #0x4] add r0, r4, #0x0 bl FUN_0208837C add r0, r4, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02088360 FUN_02088360: ; 0x02088360 push {r4, lr} add r4, r0, #0x0 bl FUN_0208843C mov r2, #0x59 add r0, r4, #0x0 mov r1, #0x0 lsl r2, r2, #0x2 blx MI_CpuFill8 add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} thumb_func_start FUN_0208837C FUN_0208837C: ; 0x0208837C push {r4-r7, lr} sub sp, #0xc ldr r1, _02088438 ; =0x020FD1C0 str r0, [sp, #0x0] ldrb r2, [r1, #0x0] add r0, sp, #0x8 strb r2, [r0, #0x0] ldrb r2, [r1, #0x1] strb r2, [r0, #0x1] ldrb r2, [r1, #0x2] ldrb r1, [r1, #0x3] strb r2, [r0, #0x2] strb r1, [r0, #0x3] ldr r0, [sp, #0x0] ldr r2, [sp, #0x0] ldr r1, [sp, #0x0] ldrh r0, [r0, #0xc] ldr r2, [r2, #0x0] add r1, #0x14 bl FUN_02008C9C ldr r1, [sp, #0x0] mov r6, #0x15 str r0, [r1, #0x10] add r0, r1, #0x0 ldrh r1, [r0, #0xa] add r0, sp, #0x8 ldr r5, [sp, #0x0] strb r1, [r0, #0x1] mov r0, #0x0 str r0, [sp, #0x4] add r7, sp, #0x8 add r4, r0, #0x0 lsl r6, r6, #0x4 _020883C0: ldr r2, [sp, #0x0] ldrb r0, [r7, #0x0] ldr r1, [sp, #0x4] ldr r2, [r2, #0x0] bl FUN_02008DEC mov r1, #0x5 lsl r1, r1, #0x6 str r0, [r5, r1] ldr r1, [sp, #0x0] ldrb r0, [r7, #0x0] ldr r1, [r1, #0x0] bl FUN_02009424 mov r1, #0x15 lsl r1, r1, #0x4 str r0, [r5, r1] mov r0, #0x15 lsl r0, r0, #0x4 ldr r3, [r5, r0] mov r1, #0x0 ldr r0, [r3, #0x4] cmp r0, #0x0 bls _02088402 add r2, r1, #0x0 _020883F2: ldr r0, [r3, #0x0] add r1, r1, #0x1 str r4, [r0, r2] ldr r3, [r5, r6] add r2, r2, #0x4 ldr r0, [r3, #0x4] cmp r1, r0 blo _020883F2 _02088402: ldr r0, [sp, #0x4] add r7, r7, #0x1 add r0, r0, #0x1 add r5, r5, #0x4 str r0, [sp, #0x4] cmp r0, #0x4 blo _020883C0 ldr r0, [sp, #0x0] bl FUN_020886CC ldr r0, [sp, #0x0] mov r1, #0x4 ldr r0, [r0, #0x0] bl FUN_02016998 mov r2, #0x16 ldr r1, [sp, #0x0] lsl r2, r2, #0x4 str r0, [r1, r2] add r0, r1, #0x0 ldr r0, [r0, r2] mov r1, #0x0 mov r2, #0x4 blx MI_CpuFill8 add sp, #0xc pop {r4-r7, pc} .balign 4 _02088438: .word 0x020FD1C0 thumb_func_start FUN_0208843C FUN_0208843C: ; 0x0208843C push {r3-r7, lr} add r5, r0, #0x0 mov r0, #0x16 lsl r0, r0, #0x4 ldr r0, [r5, r0] bl FUN_02016A18 ldr r0, [r5, #0x10] bl FUN_0201FD58 mov r0, #0x15 lsl r0, r0, #0x4 ldr r0, [r5, r0] bl FUN_02009C30 mov r0, #0x55 lsl r0, r0, #0x2 ldr r0, [r5, r0] bl FUN_02009E28 mov r7, #0x15 lsl r7, r7, #0x4 add r6, r7, #0x0 mov r4, #0x0 sub r6, #0x10 _0208846E: ldr r0, [r5, r7] bl FUN_02009448 ldr r0, [r5, r6] bl FUN_02008E2C add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, #0x4 blo _0208846E pop {r3-r7, pc} thumb_func_start FUN_02088484 FUN_02088484: ; 0x02088484 ldr r3, _0208848C ; =FUN_0201FDEC ldr r0, [r0, #0x10] bx r3 nop _0208848C: .word FUN_0201FDEC thumb_func_start FUN_02088490 FUN_02088490: ; 0x02088490 push {r3-r7, lr} sub sp, #0x70 str r1, [sp, #0x2c] lsl r1, r1, #0x18 lsr r1, r1, #0x18 add r5, r0, #0x0 add r7, r2, #0x0 str r3, [sp, #0x30] bl FUN_020887CC str r0, [sp, #0x3c] cmp r0, #0x0 bge _020884B4 bl ErrorHandling add sp, #0x70 mov r0, #0x0 pop {r3-r7, pc} _020884B4: ldr r0, [r5, #0x0] mov r1, #0x8 bl FUN_02016998 str r0, [sp, #0x38] mov r1, #0x0 mov r2, #0x8 blx MI_CpuFill8 ldr r1, [sp, #0x3c] ldr r0, [sp, #0x38] strh r1, [r0, #0x0] ldr r0, [sp, #0x94] cmp r0, #0x0 bne _020884D6 mov r6, #0x1 b _020884D8 _020884D6: mov r6, #0x2 _020884D8: ldr r0, [sp, #0x3c] mov r1, #0x55 lsl r1, r1, #0x2 lsl r4, r0, #0x2 ldr r0, [r5, r1] ldr r3, [sp, #0x2c] ldr r0, [r0, #0x0] sub r1, #0x10 ldr r0, [r0, r4] mov r2, #0x58 str r0, [sp, #0x34] mov r0, #0x0 str r0, [sp, #0x0] ldr r0, [r5, #0x0] add r3, r3, #0x3 str r0, [sp, #0x4] ldr r0, [r5, r1] ldr r1, [sp, #0x34] bl FUN_02009168 mov r0, #0x55 lsl r0, r0, #0x2 ldr r0, [r5, r0] ldr r0, [r0, #0x0] ldr r0, [r0, r4] bl FUN_02009DE0 ldr r0, [r5, #0x0] mov r1, #0x10 bl FUN_02016998 add r4, r0, #0x0 ldr r0, [r5, #0x0] mov r1, #0x8 bl FUN_02016998 str r0, [r4, #0x8] ldr r0, [r5, #0x0] mov r1, #0x24 bl FUN_02016998 ldr r1, [r4, #0x8] mov r3, #0xe str r0, [r1, #0x0] ldr r0, [r4, #0x8] lsl r3, r3, #0xc ldr r0, [r0, #0x0] mov r1, #0x0 str r0, [r4, #0x4] mov r0, #0x0 str r3, [sp, #0x0] mvn r0, r0 str r0, [sp, #0x4] str r0, [sp, #0x8] str r1, [sp, #0xc] add r0, sp, #0x78 ldrb r0, [r0, #0x14] str r0, [sp, #0x10] mov r0, #0x5 lsl r0, r0, #0x6 ldr r2, [r5, r0] str r2, [sp, #0x14] add r2, r0, #0x4 ldr r2, [r5, r2] str r2, [sp, #0x18] add r2, r0, #0x0 add r2, #0x8 ldr r2, [r5, r2] add r0, #0xc str r2, [sp, #0x1c] ldr r0, [r5, r0] str r0, [sp, #0x20] str r1, [sp, #0x24] str r1, [sp, #0x28] ldr r2, [sp, #0x3c] ldr r0, [r4, #0x4] add r1, r3, #0x0 add r2, r2, r3 bl FUN_02008AA4 ldr r0, [r5, #0x10] cmp r7, #0x0 str r0, [sp, #0x40] ldr r0, [r4, #0x4] str r0, [sp, #0x44] beq _02088596 lsl r0, r7, #0xc blx FUN_020EB534 add r1, r0, #0x0 mov r0, #0x3f lsl r0, r0, #0x18 blx FUN_020EA980 b _020885A4 _02088596: lsl r0, r7, #0xc blx FUN_020EB534 mov r1, #0x3f lsl r1, r1, #0x18 blx FUN_020EB7B0 _020885A4: blx FUN_020EB4C0 str r0, [sp, #0x48] ldr r0, [sp, #0x30] cmp r0, #0x0 beq _020885C2 lsl r0, r0, #0xc blx FUN_020EB534 add r1, r0, #0x0 mov r0, #0x3f lsl r0, r0, #0x18 blx FUN_020EA980 b _020885D0 _020885C2: lsl r0, r0, #0xc blx FUN_020EB534 mov r1, #0x3f lsl r1, r1, #0x18 blx FUN_020EB7B0 _020885D0: blx FUN_020EB4C0 str r0, [sp, #0x4c] add r0, sp, #0x78 ldrh r0, [r0, #0x10] cmp r0, #0x0 beq _020885F0 lsl r0, r0, #0xc blx FUN_020EB534 add r1, r0, #0x0 mov r0, #0x3f lsl r0, r0, #0x18 blx FUN_020EA980 b _020885FE _020885F0: lsl r0, r0, #0xc blx FUN_020EB534 mov r1, #0x3f lsl r1, r1, #0x18 blx FUN_020EB7B0 _020885FE: blx FUN_020EB4C0 str r0, [sp, #0x50] cmp r6, #0x2 bne _02088612 mov r0, #0x3 ldr r1, [sp, #0x4c] lsl r0, r0, #0x12 add r0, r1, r0 str r0, [sp, #0x4c] _02088612: mov r0, #0x1 lsl r0, r0, #0xc str r0, [sp, #0x54] str r0, [sp, #0x58] str r0, [sp, #0x5c] mov r1, #0x0 add r0, sp, #0x40 strh r1, [r0, #0x20] add r0, sp, #0x78 ldrb r0, [r0, #0x18] str r6, [sp, #0x68] str r0, [sp, #0x64] ldr r0, [r5, #0x0] str r0, [sp, #0x6c] add r0, sp, #0x40 bl FUN_0201FE94 str r0, [r4, #0x0] cmp r0, #0x0 beq _02088652 mov r1, #0x0 bl FUN_02020130 ldr r0, [sp, #0x34] add r1, r6, #0x0 bl FUN_02009E88 add r1, r0, #0x0 ldr r0, [r4, #0x0] bl FUN_02020248 b _02088656 _02088652: bl ErrorHandling _02088656: ldr r0, [sp, #0x38] str r4, [r0, #0x4] add sp, #0x70 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_02088660 FUN_02088660: ; 0x02088660 push {r4, lr} sub sp, #0x8 add r3, r2, #0x0 mov r2, #0x55 lsl r2, r2, #0x2 ldr r4, [r0, r2] ldrh r1, [r1, #0x0] ldr r4, [r4, #0x0] sub r2, #0x10 lsl r1, r1, #0x2 ldr r4, [r4, r1] mov r1, #0x0 str r1, [sp, #0x0] ldr r1, [r0, #0x0] add r3, r3, #0x3 str r1, [sp, #0x4] ldr r0, [r0, r2] add r1, r4, #0x0 mov r2, #0x58 bl FUN_02009168 add r0, r4, #0x0 bl FUN_02009DE0 add sp, #0x8 pop {r4, pc} thumb_func_start FUN_02088694 FUN_02088694: ; 0x02088694 push {r3-r5, lr} add r4, r1, #0x0 add r5, r0, #0x0 ldr r0, [r4, #0x4] bl FUN_0200C3DC mov r1, #0x16 ldrh r2, [r4, #0x0] lsl r1, r1, #0x4 ldr r3, [r5, r1] mov r0, #0x0 lsl r2, r2, #0x2 strb r0, [r3, r2] ldrh r2, [r4, #0x0] ldr r3, [r5, r1] lsl r2, r2, #0x2 add r2, r3, r2 strh r0, [r2, #0x2] ldr r2, [r5, r1] ldrh r1, [r4, #0x0] lsl r1, r1, #0x2 add r1, r2, r1 strb r0, [r1, #0x1] add r0, r4, #0x0 bl FUN_02016A18 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020886CC FUN_020886CC: ; 0x020886CC push {r3-r7, lr} sub sp, #0x10 add r5, r0, #0x0 mov r0, #0x15 lsl r0, r0, #0x4 ldr r4, [r5, r0] mov r1, #0xe lsl r1, r1, #0xc str r1, [sp, #0x0] ldrh r1, [r5, #0xe] mov r2, #0x0 sub r0, #0x10 str r1, [sp, #0x4] ldr r1, [r5, #0x0] add r3, r2, #0x0 str r1, [sp, #0x8] ldr r0, [r5, r0] mov r1, #0x58 bl FUN_02008F34 ldr r1, [r4, #0x0] str r0, [r1, #0x0] ldr r0, [r4, #0x0] ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02088704 bl ErrorHandling _02088704: ldr r0, [r5, #0x4] cmp r0, #0x0 beq _02088728 cmp r0, #0x1 beq _02088714 cmp r0, #0x2 beq _0208871E b _02088728 _02088714: ldr r0, [r4, #0x0] ldr r0, [r0, #0x0] bl FUN_02009B04 b _02088730 _0208871E: ldr r0, [r4, #0x0] ldr r0, [r0, #0x0] bl FUN_02009B78 b _02088730 _02088728: ldr r0, [r4, #0x0] ldr r0, [r0, #0x0] bl FUN_02009A50 _02088730: mov r4, #0x0 add r6, r5, #0x0 _02088734: mov r0, #0x56 lsl r0, r0, #0x2 ldr r7, [r6, r0] mov r0, #0xe lsl r0, r0, #0xc str r0, [sp, #0x0] add r0, r4, #0x2 str r0, [sp, #0x4] ldr r0, [r5, #0x0] mov r1, #0x58 str r0, [sp, #0x8] mov r0, #0x52 lsl r0, r0, #0x2 ldr r0, [r6, r0] add r2, r4, #0x1 mov r3, #0x0 bl FUN_020090AC ldr r1, [r7, #0x0] str r0, [r1, #0x0] ldr r0, [r7, #0x0] ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02088768 bl ErrorHandling _02088768: add r4, r4, #0x1 add r6, r6, #0x4 cmp r4, #0x2 blt _02088734 mov r0, #0x55 lsl r0, r0, #0x2 ldr r6, [r5, r0] ldrh r0, [r5, #0xa] mov r7, #0x0 cmp r0, #0x0 ble _020887C6 add r4, r7, #0x0 _02088780: mov r0, #0xe lsl r0, r0, #0xc add r0, r7, r0 str r0, [sp, #0x0] ldrh r0, [r5, #0xe] mov r1, #0x58 mov r2, #0x4 str r0, [sp, #0x4] mov r0, #0x1 str r0, [sp, #0x8] ldr r0, [r5, #0x0] mov r3, #0x0 str r0, [sp, #0xc] mov r0, #0x51 lsl r0, r0, #0x2 ldr r0, [r5, r0] bl FUN_02008FEC ldr r1, [r6, #0x0] str r0, [r1, r4] ldr r0, [r6, #0x0] ldr r0, [r0, r4] cmp r0, #0x0 bne _020887B4 bl ErrorHandling _020887B4: ldr r0, [r6, #0x0] ldr r0, [r0, r4] bl FUN_02009CF0 ldrh r0, [r5, #0xa] add r7, r7, #0x1 add r4, r4, #0x4 cmp r7, r0 blt _02088780 _020887C6: add sp, #0x10 pop {r3-r7, pc} .balign 4 thumb_func_start FUN_020887CC FUN_020887CC: ; 0x020887CC push {r3-r6} ldrh r5, [r0, #0xa] mov r3, #0x0 cmp r5, #0x0 bls _0208880A mov r2, #0x16 lsl r2, r2, #0x4 ldr r4, [r0, r2] _020887DC: lsl r2, r3, #0x2 ldrb r6, [r4, r2] cmp r6, #0x0 bne _02088800 add r4, r4, r2 strh r3, [r4, #0x2] mov r4, #0x16 lsl r4, r4, #0x4 ldr r5, [r0, r4] add r5, r5, r2 strb r1, [r5, #0x1] ldr r0, [r0, r4] mov r1, #0x1 strb r1, [r0, r2] lsl r0, r3, #0x10 asr r0, r0, #0x10 pop {r3-r6} bx lr _02088800: add r2, r3, #0x1 lsl r2, r2, #0x10 lsr r3, r2, #0x10 cmp r3, r5 blo _020887DC _0208880A: mov r0, #0x0 mvn r0, r0 pop {r3-r6} bx lr .balign 4 thumb_func_start FUN_02088814 FUN_02088814: ; 0x02088814 mov r0, #0x3 bx lr thumb_func_start FUN_02088818 FUN_02088818: ; 0x02088818 bx lr .balign 4 thumb_func_start FUN_0208881C FUN_0208881C: ; 0x0208881C ldr r3, _02088828 ; =FUN_0202D8D0 add r2, r0, #0x0 ldr r0, _0208882C ; =0x020FD1C4 mov r1, #0x6c bx r3 nop _02088828: .word FUN_0202D8D0 _0208882C: .word 0x020FD1C4 thumb_func_start FUN_02088830 FUN_02088830: ; 0x02088830 ldr r0, _02088834 ; =0x0000066C bx lr .balign 4 _02088834: .word 0x0000066C thumb_func_start FUN_02088838 FUN_02088838: ; 0x02088838 mov r0, #0x2f lsl r0, r0, #0x6 bx lr .balign 4 thumb_func_start FUN_02088840 FUN_02088840: ; 0x02088840 mov r0, #0x3f lsl r0, r0, #0x4 bx lr .balign 4 thumb_func_start FUN_02088848 FUN_02088848: ; 0x02088848 mov r0, #0xa bx lr thumb_func_start FUN_0208884C FUN_0208884C: ; 0x0208884C mov r0, #0x32 bx lr thumb_func_start FUN_02088850 FUN_02088850: ; 0x02088850 mov r0, #0x4 bx lr thumb_func_start FUN_02088854 FUN_02088854: ; 0x02088854 mov r0, #0x4 bx lr thumb_func_start FUN_02088858 FUN_02088858: ; 0x02088858 ldr r3, _02088860 ; =FUN_02005FDC ldr r0, _02088864 ; =0x00000004 mov r1, #0x2 bx r3 .balign 4 _02088860: .word FUN_02005FDC _02088864: .word 0x00000004 thumb_func_start FUN_02088868 FUN_02088868: ; 0x02088868 ldr r3, _02088870 ; =FUN_02005F60 ldr r0, _02088874 ; =0x00000004 bx r3 nop _02088870: .word FUN_02005F60 _02088874: .word 0x00000004 thumb_func_start FUN_02088878 FUN_02088878: ; 0x02088878 ldr r3, _02088880 ; =FUN_02005FDC ldr r0, _02088884 ; =0x0000000D mov r1, #0x2 bx r3 .balign 4 _02088880: .word FUN_02005FDC _02088884: .word 0x0000000D thumb_func_start FUN_02088888 FUN_02088888: ; 0x02088888 ldr r3, _02088890 ; =FUN_02005F60 ldr r0, _02088894 ; =0x0000000D bx r3 nop _02088890: .word FUN_02005F60 _02088894: .word 0x0000000D thumb_func_start FUN_02088898 FUN_02088898: ; 0x02088898 push {r4, lr} add r4, r1, #0x0 bl FUN_02088858 bl FUN_02088878 add r0, r4, #0x0 bl FUN_02211E60 bl FUN_02088888 bl FUN_02088868 mov r0, #0x0 blx OS_ResetSystem pop {r4, pc} .balign 4 thumb_func_start FUN_020888BC FUN_020888BC: ; 0x020888BC ldr r3, _020888C4 ; =FUN_02005FDC ldr r0, _020888C8 ; =0x0000004F mov r1, #0x2 bx r3 .balign 4 _020888C4: .word FUN_02005FDC _020888C8: .word 0x0000004F thumb_func_start FUN_020888CC FUN_020888CC: ; 0x020888CC ldr r3, _020888D4 ; =FUN_02005F60 ldr r0, _020888D8 ; =0x0000004F bx r3 nop _020888D4: .word FUN_02005F60 _020888D8: .word 0x0000004F thumb_func_start FUN_020888DC FUN_020888DC: ; 0x020888DC push {r4, lr} mov r2, #0x41 add r4, r0, #0x0 mov r0, #0x3 mov r1, #0x31 lsl r2, r2, #0xc bl FUN_0201681C add r0, r4, #0x0 bl FUN_0200628C ldr r0, [r0, #0x8] mov r1, #0x31 bl FUN_02088898 mov r0, #0x31 bl FUN_020168D0 mov r0, #0x0 blx OS_ResetSystem mov r0, #0x1 pop {r4, pc} .balign 4 thumb_func_start FUN_0208890C FUN_0208890C: ; 0x0208890C push {r3-r7, lr} add r6, r0, #0x0 add r5, r1, #0x0 add r0, r2, #0x0 mov r1, #0x20 add r7, r3, #0x0 bl FUN_02016998 add r4, r0, #0x0 mov r1, #0x0 mov r2, #0x20 blx MI_CpuFill8 str r5, [r4, #0xc] add r0, r5, #0x0 bl FUN_02028048 str r0, [r4, #0x8] add r0, r5, #0x0 bl FUN_020238F4 str r0, [r4, #0x10] add r0, r5, #0x0 bl FUN_0206F158 str r0, [r4, #0x14] add r0, r5, #0x0 bl LoadPlayerDataAddress str r0, [r4, #0x18] str r7, [r4, #0x1c] str r6, [r4, #0x4] add r0, r4, #0x0 pop {r3-r7, pc} thumb_func_start FUN_02088950 FUN_02088950: ; 0x02088950 ldr r3, _02088958 ; =FUN_020373D4 add r2, r1, #0x0 ldr r1, _0208895C ; =0x020FD6E4 bx r3 .balign 4 _02088958: .word FUN_020373D4 _0208895C: .word 0x020FD6E4 thumb_func_start FUN_02088960 FUN_02088960: ; 0x02088960 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 bl FUN_020377AC add r3, r5, #0x0 add r3, #0x98 add r1, r0, #0x0 ldr r3, [r3, #0x0] add r0, r4, #0x0 add r2, r6, #0x0 bl FUN_0208890C add r4, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02088950 add r0, r4, #0x0 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_0208898C FUN_0208898C: ; 0x0208898C push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x0] cmp r0, #0x0 beq _020889AC bl FUN_02006290 cmp r0, #0x0 beq _020889AC ldr r0, [r4, #0x0] bl FUN_02006260 mov r0, #0x0 str r0, [r4, #0x0] mov r0, #0x1 pop {r4, pc} _020889AC: mov r0, #0x0 pop {r4, pc} thumb_func_start FUN_020889B0 FUN_020889B0: ; 0x020889B0 push {r3-r5, lr} add r4, r0, #0x0 bl FUN_0200628C mov r2, #0x1 add r5, r0, #0x0 mov r0, #0x3 mov r1, #0x37 lsl r2, r2, #0xe bl FUN_0201681C add r0, r4, #0x0 mov r1, #0x24 mov r2, #0x37 bl FUN_02006268 mov r1, #0x0 mov r2, #0x24 add r4, r0, #0x0 blx MI_CpuFill8 mov r0, #0x37 str r0, [r4, #0x0] str r5, [r4, #0x10] ldr r0, [r4, #0x0] bl FUN_0206F164 str r0, [r4, #0xc] ldr r0, [r5, #0x4] cmp r0, #0x1 bne _020889FA ldrh r1, [r4, #0x6] mov r0, #0xff bic r1, r0 mov r0, #0x1 orr r0, r1 strh r0, [r4, #0x6] _020889FA: mov r0, #0x1 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_02088A00 FUN_02088A00: ; 0x02088A00 push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_02006278 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_0200628C ldr r5, [r4, #0x0] cmp r5, #0x4 bhi _02088A6A add r0, r5, r5 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02088A24: ; jump table (using 16-bit offset) .short _02088A2E - _02088A24 - 2; case 0 .short _02088A3C - _02088A24 - 2; case 1 .short _02088A4A - _02088A24 - 2; case 2 .short _02088A58 - _02088A24 - 2; case 3 .short _02088A66 - _02088A24 - 2; case 4 _02088A2E: add r1, r6, #0x0 add r0, r6, #0x0 add r1, #0x14 bl FUN_02088AAC str r0, [r4, #0x0] b _02088A6A _02088A3C: add r1, r6, #0x0 add r0, r6, #0x0 add r1, #0x14 bl FUN_02088AFC str r0, [r4, #0x0] b _02088A6A _02088A4A: add r1, r6, #0x0 add r0, r6, #0x0 add r1, #0x14 bl FUN_02088B28 str r0, [r4, #0x0] b _02088A6A _02088A58: add r1, r6, #0x0 add r0, r6, #0x0 add r1, #0x14 bl FUN_02088B48 str r0, [r4, #0x0] b _02088A6A _02088A66: mov r0, #0x1 pop {r4-r6, pc} _02088A6A: ldr r0, [r4, #0x0] cmp r5, r0 beq _02088A74 mov r0, #0x0 str r0, [r6, #0x14] _02088A74: mov r0, #0x0 pop {r4-r6, pc} thumb_func_start FUN_02088A78 FUN_02088A78: ; 0x02088A78 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02006278 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_0200628C ldr r0, [r4, #0xc] ldr r6, [r4, #0x0] bl FUN_02016A18 add r0, r4, #0x0 mov r1, #0x0 mov r2, #0x24 blx MI_CpuFill8 add r0, r5, #0x0 bl FUN_0200627C add r0, r6, #0x0 bl FUN_020168D0 mov r0, #0x1 pop {r4-r6, pc} .balign 4 thumb_func_start FUN_02088AAC FUN_02088AAC: ; 0x02088AAC push {r4, lr} add r4, r1, #0x0 ldr r1, [r4, #0x0] cmp r1, #0x5 bhi _02088AF6 add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02088AC2: ; jump table (using 16-bit offset) .short _02088ACE - _02088AC2 - 2; case 0 .short _02088AD6 - _02088AC2 - 2; case 1 .short _02088ADE - _02088AC2 - 2; case 2 .short _02088AE6 - _02088AC2 - 2; case 3 .short _02088AEE - _02088AC2 - 2; case 4 .short _02088AF2 - _02088AC2 - 2; case 5 _02088ACE: bl FUN_02088B4C str r0, [r4, #0x0] b _02088AF6 _02088AD6: bl FUN_02088BA8 str r0, [r4, #0x0] b _02088AF6 _02088ADE: bl FUN_02088C3C str r0, [r4, #0x0] b _02088AF6 _02088AE6: bl FUN_02088CDC str r0, [r4, #0x0] b _02088AF6 _02088AEE: mov r0, #0x1 pop {r4, pc} _02088AF2: mov r0, #0x4 pop {r4, pc} _02088AF6: mov r0, #0x0 pop {r4, pc} .balign 4 thumb_func_start FUN_02088AFC FUN_02088AFC: ; 0x02088AFC push {r3-r5, lr} sub sp, #0x10 ldr r5, _02088B24 ; =0x020FD708 add r3, sp, #0x0 add r4, r0, #0x0 add r2, r3, #0x0 ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} add r0, r2, #0x0 ldr r2, [r4, #0x0] add r1, r4, #0x0 bl FUN_02006234 str r0, [r4, #0x1c] mov r0, #0x2 add sp, #0x10 pop {r3-r5, pc} nop _02088B24: .word 0x020FD708 thumb_func_start FUN_02088B28 FUN_02088B28: ; 0x02088B28 push {r4, lr} add r4, r0, #0x0 add r0, #0x1c bl FUN_0208898C cmp r0, #0x0 bne _02088B3A mov r0, #0x2 pop {r4, pc} _02088B3A: ldr r0, [r4, #0x20] cmp r0, #0x1 bne _02088B44 mov r0, #0x0 pop {r4, pc} _02088B44: mov r0, #0x3 pop {r4, pc} thumb_func_start FUN_02088B48 FUN_02088B48: ; 0x02088B48 mov r0, #0x4 bx lr thumb_func_start FUN_02088B4C FUN_02088B4C: ; 0x02088B4C push {r3-r5, lr} sub sp, #0x10 ldr r3, _02088BA0 ; =0x020FD6F8 add r2, sp, #0x0 add r5, r0, #0x0 ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldr r0, [r5, #0x10] ldr r1, _02088BA4 ; =0x020FD6F4 ldr r0, [r0, #0x14] ldr r2, [r5, #0x0] bl FUN_0206EFEC add r4, r0, #0x0 ldrh r0, [r5, #0x6] lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r0, #0x1 bne _02088B7A mov r2, #0x5 b _02088B7C _02088B7A: mov r2, #0x4 _02088B7C: ldr r1, [r5, #0x10] lsl r2, r2, #0x18 ldr r1, [r1, #0xc] ldr r3, [r5, #0xc] add r0, r4, #0x0 lsr r2, r2, #0x18 bl FUN_0206E314 ldr r2, [r5, #0x0] add r0, sp, #0x0 add r1, r4, #0x0 bl FUN_02006234 str r0, [r5, #0x1c] str r4, [r5, #0x18] mov r0, #0x1 add sp, #0x10 pop {r3-r5, pc} .balign 4 _02088BA0: .word 0x020FD6F8 _02088BA4: .word 0x020FD6F4 thumb_func_start FUN_02088BA8 FUN_02088BA8: ; 0x02088BA8 push {r3-r5, lr} add r4, r0, #0x0 add r0, #0x1c bl FUN_0208898C cmp r0, #0x0 bne _02088BBA mov r0, #0x1 pop {r3-r5, pc} _02088BBA: ldr r0, [r4, #0x0] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_0206E2F0 add r5, r0, #0x0 bl FUN_0206E308 add r2, r0, #0x0 ldr r1, [r4, #0x18] add r0, r5, #0x0 blx FUN_020DF438 ldr r0, [r4, #0x18] bl FUN_02016A18 mov r0, #0x0 str r0, [r4, #0x18] add r0, r5, #0x0 bl FUN_0206E37C str r0, [r4, #0x8] add r0, r5, #0x0 bl FUN_02016A18 add r0, r5, #0x0 bl FUN_0206E384 cmp r0, #0x5 bhi _02088C16 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02088C02: ; jump table (using 16-bit offset) .short _02088C1E - _02088C02 - 2; case 0 .short _02088C0E - _02088C02 - 2; case 1 .short _02088C1E - _02088C02 - 2; case 2 .short _02088C1E - _02088C02 - 2; case 3 .short _02088C1E - _02088C02 - 2; case 4 .short _02088C12 - _02088C02 - 2; case 5 _02088C0E: mov r0, #0x2 pop {r3-r5, pc} _02088C12: mov r0, #0x5 pop {r3-r5, pc} _02088C16: bl ErrorHandling mov r0, #0x95 str r0, [r4, #0x8] _02088C1E: ldr r0, [r4, #0x10] ldr r1, [r4, #0x8] ldr r0, [r0, #0x14] lsl r1, r1, #0x10 ldr r3, [r4, #0x0] lsr r1, r1, #0x10 mov r2, #0x1 bl FUN_0206EDD4 cmp r0, #0x0 bne _02088C38 bl ErrorHandling _02088C38: mov r0, #0x4 pop {r3-r5, pc} thumb_func_start FUN_02088C3C FUN_02088C3C: ; 0x02088C3C push {r3-r7, lr} sub sp, #0x18 add r5, r0, #0x0 ldr r0, [r5, #0x10] ldr r3, _02088CD8 ; =0x020FD718 ldr r0, [r0, #0x14] add r2, sp, #0x8 str r0, [sp, #0x0] ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldmia r3!, {r0-r1} stmia r2!, {r0-r1} ldr r0, [r5, #0x0] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_020851B8 str r0, [r5, #0x18] ldr r1, [r5, #0x8] mov r2, #0x1 lsl r1, r1, #0x10 lsr r1, r1, #0x10 bl FUN_020851DC mov r6, #0x0 add r4, r6, #0x0 _02088C70: add r0, r4, #0x0 bl FUN_0206EB1C lsl r0, r0, #0x18 lsr r7, r0, #0x18 ldr r0, [sp, #0x0] ldr r3, [r5, #0x0] add r1, r7, #0x0 mov r2, #0x1 bl FUN_0206EE50 cmp r0, #0x1 bne _02088C9A ldr r0, [r5, #0x18] add r1, r7, #0x0 mov r2, #0x0 bl FUN_020851DC add r0, r6, #0x1 lsl r0, r0, #0x18 lsr r6, r0, #0x18 _02088C9A: add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #0x40 blo _02088C70 add r3, sp, #0x4 ldr r0, [r5, #0xc] mov r1, #0x4 add r2, sp, #0x4 add r3, #0x1 bl FUN_0206F17C add r2, sp, #0x4 ldrb r1, [r2, #0x1] add r3, r6, #0x2 lsl r3, r3, #0x18 ldrb r2, [r2, #0x0] ldr r0, [r5, #0x18] lsr r3, r3, #0x18 bl FUN_020851F8 ldr r1, [r5, #0x18] ldr r2, [r5, #0x0] add r0, sp, #0x8 bl FUN_02006234 str r0, [r5, #0x1c] mov r0, #0x3 add sp, #0x18 pop {r3-r7, pc} nop _02088CD8: .word 0x020FD718 thumb_func_start FUN_02088CDC FUN_02088CDC: ; 0x02088CDC push {r3-r4, lr} sub sp, #0x4 add r4, r0, #0x0 add r0, #0x1c bl FUN_0208898C cmp r0, #0x0 bne _02088CF2 add sp, #0x4 mov r0, #0x3 pop {r3-r4, pc} _02088CF2: add r1, sp, #0x0 ldr r0, [r4, #0x18] add r1, #0x1 add r2, sp, #0x0 bl FUN_0208524C add r3, sp, #0x0 ldrb r2, [r3, #0x0] ldrb r3, [r3, #0x1] ldr r0, [r4, #0xc] mov r1, #0x4 bl FUN_0206F190 ldr r0, [r4, #0x18] bl FUN_02016A18 mov r0, #0x0 str r0, [r4, #0x18] add sp, #0x4 pop {r3-r4, pc} .balign 4 thumb_func_start FUN_02088D1C FUN_02088D1C: ; 0x02088D1C mov r0, #0x13 bx lr thumb_func_start FUN_02088D20 FUN_02088D20: ; 0x02088D20 ldr r3, _02088D3C ; =0x020FD8C8 mov r2, #0x0 _02088D24: ldrb r1, [r3, #0x0] cmp r0, r1 bne _02088D2E add r0, r2, #0x0 bx lr _02088D2E: add r2, r2, #0x1 add r3, #0xc cmp r2, #0x13 blo _02088D24 mov r0, #0x0 bx lr nop _02088D3C: .word 0x020FD8C8 thumb_func_start FUN_02088D40 FUN_02088D40: ; 0x02088D40 push {r3, lr} bl FUN_02088D20 bl FUN_02088D4C pop {r3, pc} thumb_func_start FUN_02088D4C FUN_02088D4C: ; 0x02088D4C push {r4, lr} add r4, r0, #0x0 cmp r4, #0x13 blo _02088D58 bl ErrorHandling _02088D58: mov r0, #0xc add r1, r4, #0x0 mul r1, r0 ldr r0, _02088D64 ; =0x020FD8CA ldrh r0, [r0, r1] pop {r4, pc} .balign 4 _02088D64: .word 0x020FD8CA thumb_func_start FUN_02088D68 FUN_02088D68: ; 0x02088D68 push {r4, lr} add r4, r0, #0x0 cmp r4, #0x13 blo _02088D74 bl ErrorHandling _02088D74: mov r0, #0xc add r1, r4, #0x0 mul r1, r0 ldr r0, _02088D80 ; =0x020FD8C8 ldrb r0, [r0, r1] pop {r4, pc} .balign 4 _02088D80: .word 0x020FD8C8 thumb_func_start FUN_02088D84 FUN_02088D84: ; 0x02088D84 push {r4, lr} add r4, r0, #0x0 cmp r4, #0x13 blo _02088D90 bl ErrorHandling _02088D90: mov r0, #0xc add r1, r4, #0x0 mul r1, r0 ldr r0, _02088D9C ; =0x020FD8C9 ldrb r0, [r0, r1] pop {r4, pc} .balign 4 _02088D9C: .word 0x020FD8C9 thumb_func_start FUN_02088DA0 FUN_02088DA0: ; 0x02088DA0 push {r4, lr} add r4, r0, #0x0 cmp r4, #0x13 blo _02088DAC bl ErrorHandling _02088DAC: mov r0, #0xc add r1, r4, #0x0 mul r1, r0 ldr r0, _02088DB8 ; =0x020FD8CC ldr r0, [r0, r1] pop {r4, pc} .balign 4 _02088DB8: .word 0x020FD8CC thumb_func_start FUN_02088DBC FUN_02088DBC: ; 0x02088DBC push {r4, lr} add r4, r0, #0x0 cmp r4, #0x13 blo _02088DC8 bl ErrorHandling _02088DC8: mov r0, #0xc add r1, r4, #0x0 mul r1, r0 ldr r0, _02088DD4 ; =0x020FD8D0 ldr r0, [r0, r1] pop {r4, pc} .balign 4 _02088DD4: .word 0x020FD8D0 thumb_func_start FUN_02088DD8 FUN_02088DD8: ; 0x02088DD8 push {r3, lr} mov r1, #0x18 bl FUN_02016998 add r3, r0, #0x0 mov r2, #0x18 mov r1, #0x0 _02088DE6: strb r1, [r3, #0x0] add r3, r3, #0x1 sub r2, r2, #0x1 bne _02088DE6 pop {r3, pc} thumb_func_start FUN_02088DF0 FUN_02088DF0: ; 0x02088DF0 ldr r3, _02088DF4 ; =FUN_02016A18 bx r3 .balign 4 _02088DF4: .word FUN_02016A18 thumb_func_start FUN_02088DF8 FUN_02088DF8: ; 0x02088DF8 push {r3-r7, lr} sub sp, #0x18 str r1, [sp, #0x0] mov r1, #0x5 mov r2, #0x0 add r5, r0, #0x0 bl FUN_020671BC lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0xc] add r0, r5, #0x0 mov r1, #0x70 mov r2, #0x0 bl FUN_020671BC lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x8] add r0, r5, #0x0 mov r1, #0xa0 mov r2, #0x0 bl FUN_020671BC lsl r0, r0, #0x18 lsr r0, r0, #0x18 mov r4, #0x0 str r0, [sp, #0x4] add r7, r4, #0x0 add r6, sp, #0x10 _02088E34: add r1, r4, #0x0 add r0, r5, #0x0 add r1, #0x36 add r2, r7, #0x0 bl FUN_020671BC lsl r1, r4, #0x1 strh r0, [r6, r1] add r0, r4, #0x1 lsl r0, r0, #0x18 lsr r4, r0, #0x18 cmp r4, #0x4 blo _02088E34 ldr r0, [sp, #0x0] mov r1, #0x2c bl FUN_02016998 add r7, r0, #0x0 ldr r0, [sp, #0x0] mov r1, #0x2c bl FUN_02016998 add r4, r0, #0x0 ldr r0, [sp, #0xc] ldr r1, [sp, #0x8] add r2, r7, #0x0 bl FUN_02069F9C mov r2, #0x0 mov r12, r2 _02088E70: mov r0, r12 lsl r0, r0, #0x1 ldrh r5, [r7, r0] ldr r6, _02088EF4 ; =0x0000FFFF cmp r5, r6 bne _02088E82 lsl r0, r2, #0x1 strh r6, [r4, r0] b _02088EE8 _02088E82: mov r1, #0xfe lsl r1, r1, #0x8 and r1, r5 asr r3, r1, #0x9 ldr r1, [sp, #0x4] cmp r3, r1 bgt _02088EDA lsr r1, r6, #0x7 and r1, r5 strh r1, [r7, r0] ldrh r3, [r7, r0] mov r1, #0x0 add r6, sp, #0x10 _02088E9C: lsl r5, r1, #0x1 ldrh r5, [r6, r5] cmp r3, r5 beq _02088EAE add r1, r1, #0x1 lsl r1, r1, #0x18 lsr r1, r1, #0x18 cmp r1, #0x4 blo _02088E9C _02088EAE: cmp r1, #0x4 bne _02088EDA mov r1, #0x0 cmp r2, #0x0 bls _02088ECA _02088EB8: lsl r5, r1, #0x1 ldrh r5, [r4, r5] cmp r5, r3 beq _02088ECA add r1, r1, #0x1 lsl r1, r1, #0x18 lsr r1, r1, #0x18 cmp r1, r2 blo _02088EB8 _02088ECA: cmp r1, r2 bne _02088EDA ldrh r1, [r7, r0] lsl r0, r2, #0x1 strh r1, [r4, r0] add r0, r2, #0x1 lsl r0, r0, #0x18 lsr r2, r0, #0x18 _02088EDA: mov r0, r12 add r0, r0, #0x1 lsl r0, r0, #0x18 lsr r0, r0, #0x18 mov r12, r0 cmp r0, #0x16 blo _02088E70 _02088EE8: add r0, r7, #0x0 bl FUN_02016A18 add r0, r4, #0x0 add sp, #0x18 pop {r3-r7, pc} .balign 4 _02088EF4: .word 0x0000FFFF thumb_func_start FUN_02088EF8 FUN_02088EF8: ; 0x02088EF8 ldrh r1, [r0, #0x0] ldr r0, _02088F08 ; =0x0000FFFF cmp r1, r0 beq _02088F04 mov r0, #0x1 bx lr _02088F04: mov r0, #0x0 bx lr .balign 4 _02088F08: .word 0x0000FFFF thumb_func_start FUN_02088F0C FUN_02088F0C: ; 0x02088F0C push {r4-r6, lr} add r5, r1, #0x0 ldr r1, _02088F44 ; =0x0000195C add r6, r0, #0x0 bl FUN_02016998 add r4, r0, #0x0 add r0, r6, #0x0 str r5, [r4, #0x0] bl FUN_020139D8 str r0, [r4, #0x4] mov r3, #0x0 ldr r0, _02088F48 ; =0x0000189E add r2, r3, #0x0 _02088F2A: add r1, r4, r3 add r3, r3, #0x1 strb r2, [r1, r0] cmp r3, #0xbb blt _02088F2A add r0, r4, #0x0 bl FUN_02088F60 add r0, r4, #0x0 bl FUN_020891D0 add r0, r4, #0x0 pop {r4-r6, pc} .balign 4 _02088F44: .word 0x0000195C _02088F48: .word 0x0000189E thumb_func_start FUN_02088F4C FUN_02088F4C: ; 0x02088F4C push {r4, lr} add r4, r0, #0x0 beq _02088F5E ldr r0, [r4, #0x4] bl FUN_02013A10 add r0, r4, #0x0 bl FUN_02016A18 _02088F5E: pop {r4, pc} thumb_func_start FUN_02088F60 FUN_02088F60: ; 0x02088F60 push {r4-r7, lr} sub sp, #0xc mov r4, #0x0 str r0, [sp, #0x0] add r7, r0, #0x0 str r0, [sp, #0x8] add r0, #0x68 ldr r5, _02088F9C ; =0x020FE17C str r4, [sp, #0x4] str r0, [sp, #0x8] _02088F74: ldr r3, [sp, #0x8] str r4, [r7, #0x38] lsl r6, r4, #0x1 add r3, r3, r6 ldr r0, [sp, #0x0] ldr r1, [r5, #0x4] ldr r2, [r5, #0x8] ldr r6, [r5, #0x0] blx r6 str r0, [r7, #0x8] add r4, r4, r0 ldr r0, [sp, #0x4] add r7, r7, #0x4 add r0, r0, #0x1 add r5, #0xc str r0, [sp, #0x4] cmp r0, #0xc blt _02088F74 add sp, #0xc pop {r4-r7, pc} .balign 4 _02088F9C: .word 0x020FE17C thumb_func_start FUN_02088FA0 FUN_02088FA0: ; 0x02088FA0 push {r4-r7, lr} sub sp, #0xc str r0, [sp, #0x0] ldr r0, [r0, #0x0] str r2, [sp, #0x4] add r5, r1, #0x0 add r4, r3, #0x0 mov r6, #0x0 bl FUN_02085418 str r0, [sp, #0x8] ldr r0, [sp, #0x4] add r7, r6, #0x0 cmp r0, #0x0 bls _02088FF6 _02088FBE: ldrh r1, [r5, #0x0] ldr r0, [sp, #0x8] bl FUN_020245F0 cmp r0, #0x0 beq _02088FEC ldrh r3, [r5, #0x0] ldr r0, [sp, #0x0] mov r2, #0x7 lsr r1, r3, #0x3 add r1, r0, r1 ldr r0, _02088FFC ; =0x0000189E and r3, r2 mov r2, #0x1 ldrb r0, [r1, r0] lsl r2, r3 orr r2, r0 ldr r0, _02088FFC ; =0x0000189E add r6, r6, #0x1 strb r2, [r1, r0] ldrh r0, [r5, #0x0] strh r0, [r4, #0x0] add r4, r4, #0x2 _02088FEC: ldr r0, [sp, #0x4] add r7, r7, #0x1 add r5, r5, #0x2 cmp r7, r0 blo _02088FBE _02088FF6: add r0, r6, #0x0 add sp, #0xc pop {r4-r7, pc} .balign 4 _02088FFC: .word 0x0000189E thumb_func_start FUN_02089000 FUN_02089000: ; 0x02089000 push {r3-r7, lr} str r0, [sp, #0x0] ldr r0, [r0, #0x0] add r5, r1, #0x0 add r7, r2, #0x0 add r4, r3, #0x0 bl FUN_02085420 cmp r0, #0x0 beq _02089046 mov r2, #0x0 cmp r7, #0x0 bls _02089042 _0208901A: ldrh r6, [r5, #0x0] ldr r0, [sp, #0x0] mov r3, #0x7 lsr r1, r6, #0x3 add r1, r0, r1 ldr r0, _0208904C ; =0x0000189E and r6, r3 mov r3, #0x1 ldrb r0, [r1, r0] lsl r3, r6 orr r3, r0 ldr r0, _0208904C ; =0x0000189E add r2, r2, #0x1 strb r3, [r1, r0] ldrh r0, [r5, #0x0] add r5, r5, #0x2 strh r0, [r4, #0x0] add r4, r4, #0x2 cmp r2, r7 blo _0208901A _02089042: add r0, r7, #0x0 pop {r3-r7, pc} _02089046: mov r0, #0x0 pop {r3-r7, pc} nop _0208904C: .word 0x0000189E thumb_func_start FUN_02089050 FUN_02089050: ; 0x02089050 push {r3-r7, lr} sub sp, #0x10 str r0, [sp, #0x0] ldr r0, [r0, #0x0] add r5, r1, #0x0 str r2, [sp, #0x4] add r4, r3, #0x0 bl FUN_0208541C str r0, [sp, #0xc] ldr r0, _020890BC ; =0x00000189 mov r1, #0x0 bl FUN_02013A9C str r0, [sp, #0x8] mov r7, #0x0 ldr r0, [sp, #0x4] add r6, r7, #0x0 cmp r0, #0x0 bls _020890B4 _02089078: ldrh r2, [r5, #0x0] ldr r1, [sp, #0x8] ldr r0, [sp, #0xc] sub r1, r2, r1 bl FUN_02013B68 cmp r0, #0x0 beq _020890AA ldrh r3, [r5, #0x0] ldr r0, [sp, #0x0] mov r2, #0x7 lsr r1, r3, #0x3 add r1, r0, r1 ldr r0, _020890C0 ; =0x0000189E and r3, r2 mov r2, #0x1 ldrb r0, [r1, r0] lsl r2, r3 orr r2, r0 ldr r0, _020890C0 ; =0x0000189E add r6, r6, #0x1 strb r2, [r1, r0] ldrh r0, [r5, #0x0] strh r0, [r4, #0x0] add r4, r4, #0x2 _020890AA: ldr r0, [sp, #0x4] add r7, r7, #0x1 add r5, r5, #0x2 cmp r7, r0 blo _02089078 _020890B4: add r0, r6, #0x0 add sp, #0x10 pop {r3-r7, pc} nop _020890BC: .word 0x00000189 _020890C0: .word 0x0000189E thumb_func_start FUN_020890C4 FUN_020890C4: ; 0x020890C4 push {r4-r7, lr} sub sp, #0x14 str r0, [sp, #0x0] ldr r0, [r0, #0x0] add r5, r1, #0x0 str r2, [sp, #0x4] add r4, r3, #0x0 bl FUN_0208541C str r0, [sp, #0x10] ldr r0, _02089144 ; =0x00000186 mov r1, #0x0 bl FUN_02013A9C add r6, r0, #0x0 add r0, r6, #0x5 lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0xc] mov r7, #0x0 ldr r0, [sp, #0x4] str r7, [sp, #0x8] cmp r0, #0x0 bls _0208913C _020890F4: ldrh r1, [r5, #0x0] cmp r1, r6 blo _0208910C ldr r0, [sp, #0xc] cmp r1, r0 bhi _0208910C ldr r0, [sp, #0x10] sub r1, r1, r6 bl FUN_02013C0C cmp r0, #0x0 beq _0208912E _0208910C: ldrh r3, [r5, #0x0] ldr r0, [sp, #0x0] mov r2, #0x7 lsr r1, r3, #0x3 add r1, r0, r1 ldr r0, _02089148 ; =0x0000189E and r3, r2 mov r2, #0x1 ldrb r0, [r1, r0] lsl r2, r3 orr r2, r0 ldr r0, _02089148 ; =0x0000189E add r7, r7, #0x1 strb r2, [r1, r0] ldrh r0, [r5, #0x0] strh r0, [r4, #0x0] add r4, r4, #0x2 _0208912E: ldr r0, [sp, #0x8] add r5, r5, #0x2 add r1, r0, #0x1 ldr r0, [sp, #0x4] str r1, [sp, #0x8] cmp r1, r0 blo _020890F4 _0208913C: add r0, r7, #0x0 add sp, #0x14 pop {r4-r7, pc} nop _02089144: .word 0x00000186 _02089148: .word 0x0000189E thumb_func_start FUN_0208914C FUN_0208914C: ; 0x0208914C push {r3-r7, lr} add r6, r0, #0x0 mov r0, #0x0 mov lr, r2 mov r12, r0 mov r0, lr add r4, r1, #0x0 add r7, r3, #0x0 cmp r0, #0x0 bls _020891C2 _02089160: ldrh r2, [r4, #0x0] ldr r0, _020891C8 ; =0x0000FFFE cmp r2, r0 bne _02089196 add r0, r4, #0x2 add r4, r4, #0x4 ldrh r2, [r0, #0x0] ldrh r0, [r4, #0x0] cmp r2, #0x0 strh r0, [r7, #0x0] beq _020891B6 _02089176: ldrh r5, [r4, #0x0] mov r3, #0x7 add r4, r4, #0x2 lsr r0, r5, #0x3 add r1, r6, r0 ldr r0, _020891CC ; =0x0000189E and r5, r3 mov r3, #0x1 ldrb r0, [r1, r0] lsl r3, r5 orr r3, r0 ldr r0, _020891CC ; =0x0000189E sub r2, r2, #0x1 strb r3, [r1, r0] bne _02089176 b _020891B6 _02089196: lsr r0, r2, #0x3 ldr r1, _020891CC ; =0x0000189E add r0, r6, r0 ldrb r3, [r0, r1] mov r1, #0x7 mov r5, #0x1 and r1, r2 add r2, r5, #0x0 lsl r2, r1 ldr r1, _020891CC ; =0x0000189E orr r2, r3 strb r2, [r0, r1] ldrh r0, [r4, #0x0] add r4, r4, #0x2 strh r0, [r7, #0x0] add r7, r7, #0x2 _020891B6: mov r0, r12 add r1, r0, #0x1 mov r0, lr mov r12, r1 cmp r1, r0 blo _02089160 _020891C2: mov r0, lr pop {r3-r7, pc} nop _020891C8: .word 0x0000FFFE _020891CC: .word 0x0000189E thumb_func_start FUN_020891D0 FUN_020891D0: ; 0x020891D0 push {r3-r7, lr} add r7, r0, #0x0 mov r4, #0x0 ldr r6, _0208920C ; =0x020FDDF0 str r4, [sp, #0x0] add r5, r7, #0x0 _020891DC: ldr r0, _02089210 ; =0x00000C84 mov r2, #0xcf str r4, [r5, r0] lsl r2, r2, #0x4 ldr r1, [r6, #0x0] add r0, r7, #0x0 add r2, r7, r2 add r3, r4, #0x0 bl FUN_02089218 ldr r1, _02089214 ; =0x00000C18 add r6, r6, #0x4 str r0, [r5, r1] add r0, r1, #0x0 ldr r0, [r5, r0] add r5, r5, #0x4 add r4, r4, r0 ldr r0, [sp, #0x0] add r0, r0, #0x1 str r0, [sp, #0x0] cmp r0, #0x1b blo _020891DC pop {r3-r7, pc} nop _0208920C: .word 0x020FDDF0 _02089210: .word 0x00000C84 _02089214: .word 0x00000C18 thumb_func_start FUN_02089218 FUN_02089218: ; 0x02089218 push {r3-r7, lr} add r7, r1, #0x0 add r6, r0, #0x0 str r2, [sp, #0x0] mov r0, #0x0 mov r12, r0 ldrh r2, [r7, #0x0] ldr r0, _020892B8 ; =0x0000FFFF mov lr, r3 cmp r2, r0 beq _020892B4 _0208922E: ldr r0, _020892BC ; =0x0000FFFE cmp r2, r0 bne _02089280 add r0, r7, #0x2 ldrh r5, [r0, #0x0] add r7, r7, #0x4 mov r3, #0x0 cmp r5, #0x0 bls _0208927A add r4, r7, #0x0 _02089242: ldrh r2, [r4, #0x0] mov r0, #0x7 mov r1, #0x1 and r0, r2 lsl r1, r0 lsr r0, r2, #0x3 add r2, r6, r0 ldr r0, _020892C0 ; =0x0000189E ldrb r0, [r2, r0] tst r0, r1 beq _02089272 lsl r0, r3, #0x1 ldrh r1, [r7, r0] mov r0, lr lsl r2, r0, #0x1 mov r0, lr add r0, r0, #0x1 mov lr, r0 ldr r0, [sp, #0x0] strh r1, [r0, r2] mov r0, r12 add r0, r0, #0x1 mov r12, r0 b _0208927A _02089272: add r3, r3, #0x1 add r4, r4, #0x2 cmp r3, r5 blo _02089242 _0208927A: lsl r0, r5, #0x1 add r7, r7, r0 b _020892AC _02089280: mov r1, #0x1 mov r0, #0x7 and r0, r2 add r3, r1, #0x0 lsl r3, r0 lsr r0, r2, #0x3 add r1, r6, r0 ldr r0, _020892C0 ; =0x0000189E ldrb r0, [r1, r0] tst r0, r3 beq _020892AA mov r1, lr add r1, r1, #0x1 mov r0, lr mov lr, r1 ldr r1, [sp, #0x0] lsl r0, r0, #0x1 strh r2, [r1, r0] mov r0, r12 add r0, r0, #0x1 mov r12, r0 _020892AA: add r7, r7, #0x2 _020892AC: ldrh r2, [r7, #0x0] ldr r0, _020892B8 ; =0x0000FFFF cmp r2, r0 bne _0208922E _020892B4: mov r0, r12 pop {r3-r7, pc} .balign 4 _020892B8: .word 0x0000FFFF _020892BC: .word 0x0000FFFE _020892C0: .word 0x0000189E thumb_func_start FUN_020892C4 FUN_020892C4: ; 0x020892C4 lsl r1, r1, #0x2 add r0, r0, r1 ldr r0, [r0, #0x8] bx lr thumb_func_start FUN_020892CC FUN_020892CC: ; 0x020892CC push {r4, lr} add r4, r0, #0x0 lsl r1, r1, #0x2 add r1, r4, r1 ldr r1, [r1, #0x38] ldr r0, [r4, #0x4] add r1, r1, r2 lsl r1, r1, #0x1 add r1, r4, r1 add r1, #0x68 ldrh r1, [r1, #0x0] add r2, r3, #0x0 bl FUN_02013A30 pop {r4, pc} .balign 4 thumb_func_start FUN_020892EC FUN_020892EC: ; 0x020892EC lsl r1, r1, #0x2 add r1, r0, r1 ldr r1, [r1, #0x38] add r1, r1, r2 lsl r1, r1, #0x1 add r0, r0, r1 add r0, #0x68 ldrh r0, [r0, #0x0] bx lr .balign 4 thumb_func_start FUN_02089300 FUN_02089300: ; 0x02089300 lsl r1, r1, #0x2 add r1, r0, r1 ldr r0, _0208930C ; =0x00000C18 ldr r0, [r1, r0] bx lr nop _0208930C: .word 0x00000C18 thumb_func_start FUN_02089310 FUN_02089310: ; 0x02089310 push {r4-r6, lr} add r4, r3, #0x0 add r5, r0, #0x0 lsl r3, r1, #0x2 add r6, r5, r3 ldr r3, _02089334 ; =0x00000C18 ldr r3, [r6, r3] cmp r3, #0x0 beq _02089330 bl FUN_02089338 add r1, r0, #0x0 ldr r0, [r5, #0x4] add r2, r4, #0x0 bl FUN_02013A30 _02089330: pop {r4-r6, pc} nop _02089334: .word 0x00000C18 thumb_func_start FUN_02089338 FUN_02089338: ; 0x02089338 push {r3-r4} lsl r1, r1, #0x2 ldr r3, _02089360 ; =0x00000C18 add r4, r0, r1 ldr r1, [r4, r3] cmp r1, #0x0 beq _0208935A add r1, r3, #0x0 add r1, #0x6c ldr r1, [r4, r1] add r3, #0xd8 add r1, r2, r1 lsl r1, r1, #0x1 add r0, r0, r1 ldrh r0, [r0, r3] pop {r3-r4} bx lr _0208935A: ldr r0, _02089364 ; =0x0000FFFF pop {r3-r4} bx lr .balign 4 _02089360: .word 0x00000C18 _02089364: .word 0x0000FFFF thumb_func_start FUN_02089368 FUN_02089368: ; 0x02089368 push {r3-r6} mov r1, #0x0 ldr r2, _0208938C ; =0x020FF2FC ldr r5, _02089390 ; =0x020FE17C add r0, r1, #0x0 mov r3, #0xc _02089374: ldrb r4, [r2, #0x0] add r1, r1, #0x1 add r2, r2, #0x1 add r6, r4, #0x0 mul r6, r3 add r4, r5, r6 ldr r4, [r4, #0x8] add r0, r0, r4 cmp r1, #0x5 blo _02089374 pop {r3-r6} bx lr .balign 4 _0208938C: .word 0x020FF2FC _02089390: .word 0x020FE17C thumb_func_start FUN_02089394 FUN_02089394: ; 0x02089394 push {r4-r7} mov r2, #0x0 ldr r3, _020893D8 ; =0x020FF2FC add r1, r2, #0x0 _0208939C: ldrb r5, [r3, #0x0] mov r4, #0xc add r6, r5, #0x0 mul r6, r4 ldr r4, _020893DC ; =0x020FE17C add r5, r4, r6 ldr r7, [r5, #0x8] mov r6, #0x0 ldr r4, [r5, #0x4] cmp r7, #0x0 ble _020893C8 _020893B2: ldrh r5, [r4, #0x0] cmp r0, r5 bne _020893BE add r0, r2, #0x0 pop {r4-r7} bx lr _020893BE: add r6, r6, #0x1 add r2, r2, #0x1 add r4, r4, #0x2 cmp r6, r7 blt _020893B2 _020893C8: add r1, r1, #0x1 add r3, r3, #0x1 cmp r1, #0x5 blo _0208939C mov r0, #0x0 mvn r0, r0 pop {r4-r7} bx lr .balign 4 _020893D8: .word 0x020FF2FC _020893DC: .word 0x020FE17C thumb_func_start FUN_020893E0 FUN_020893E0: ; 0x020893E0 mov r1, #0x0 ldr r0, _020893EC ; =0x02106154 mvn r1, r1 str r1, [r0, #0x0] bx lr nop _020893EC: .word 0x02106154 thumb_func_start FUN_020893F0 FUN_020893F0: ; 0x020893F0 push {r4, lr} add r4, r0, #0x0 mov r0, #0x3 lsl r0, r0, #0xc cmp r2, r0 bhs _0208940A add r0, r1, #0x0 ldr r1, _02089410 ; =0x021C5C58 blx MIi_CpuCopy32 ldr r0, _02089414 ; =0x02106154 str r4, [r0, #0x0] pop {r4, pc} _0208940A: bl ErrorHandling pop {r4, pc} .balign 4 _02089410: .word 0x021C5C58 _02089414: .word 0x02106154 thumb_func_start FUN_02089418 FUN_02089418: ; 0x02089418 push {r3, lr} mov r3, #0x3 lsl r3, r3, #0xc cmp r2, r3 bhs _02089434 ldr r3, _0208943C ; =0x02106154 ldr r3, [r3, #0x0] cmp r0, r3 bne _02089438 ldr r0, _02089440 ; =0x021C5C58 blx MIi_CpuCopy32 mov r0, #0x1 pop {r3, pc} _02089434: bl ErrorHandling _02089438: mov r0, #0x0 pop {r3, pc} .balign 4 _0208943C: .word 0x02106154 _02089440: .word 0x021C5C58 thumb_func_start FUN_02089444 FUN_02089444: ; 0x02089444 push {r4, lr} add r4, r0, #0x0 mov r0, #0x3 lsl r0, r0, #0xc cmp r2, r0 bhs _0208945E add r0, r1, #0x0 ldr r1, _02089464 ; =0x021C5C58 blx MIi_CpuCopyFast ldr r0, _02089468 ; =0x02106154 str r4, [r0, #0x0] pop {r4, pc} _0208945E: bl ErrorHandling pop {r4, pc} .balign 4 _02089464: .word 0x021C5C58 _02089468: .word 0x02106154 thumb_func_start FUN_0208946C FUN_0208946C: ; 0x0208946C push {r3, lr} mov r3, #0x3 lsl r3, r3, #0xc cmp r2, r3 bhs _02089488 ldr r3, _02089490 ; =0x02106154 ldr r3, [r3, #0x0] cmp r0, r3 bne _0208948C ldr r0, _02089494 ; =0x021C5C58 blx MIi_CpuCopyFast mov r0, #0x1 pop {r3, pc} _02089488: bl ErrorHandling _0208948C: mov r0, #0x0 pop {r3, pc} .balign 4 _02089490: .word 0x02106154 _02089494: .word 0x021C5C58 thumb_func_start FUN_02089498 FUN_02089498: ; 0x02089498 push {r3-r5, lr} mov r2, #0x2 add r5, r0, #0x0 mov r0, #0x3 mov r1, #0x58 lsl r2, r2, #0x10 bl FUN_0201681C add r0, r5, #0x0 mov r1, #0x38 mov r2, #0x58 bl FUN_02006268 mov r1, #0x0 mov r2, #0x38 add r4, r0, #0x0 blx FUN_020DF4A4 mov r0, #0x58 str r0, [r4, #0x0] mov r0, #0x0 str r0, [r4, #0x4] add r0, r5, #0x0 bl FUN_0200628C ldr r0, [r0, #0x8] str r0, [r4, #0x30] mov r0, #0x1 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_020894D4 FUN_020894D4: ; 0x020894D4 push {r3-r6, lr} sub sp, #0xc add r5, r1, #0x0 bl FUN_02006278 ldr r1, [r5, #0x0] add r4, r0, #0x0 mov r6, #0x0 cmp r1, #0x3 bhi _020895DA add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _020894F4: ; jump table (using 16-bit offset) .short _020894FC - _020894F4 - 2; case 0 .short _02089588 - _020894F4 - 2; case 1 .short _02089596 - _020894F4 - 2; case 2 .short _020895BC - _020894F4 - 2; case 3 _020894FC: ldr r0, _020895E0 ; =0x00000495 add r1, r6, #0x0 bl FUN_02005350 add r0, r6, #0x0 bl FUN_0200516C add r0, r6, #0x0 bl FUN_0200415C add r0, r6, #0x0 add r1, r0, #0x0 bl FUN_0200E3A0 mov r0, #0x1 add r1, r6, #0x0 bl FUN_0200E3A0 add r0, r6, #0x0 add r1, r0, #0x0 bl FUN_02015F10 add r0, r6, #0x0 add r1, r0, #0x0 bl FUN_02015F34 bl FUN_0201E6D8 bl FUN_0201E740 mov r2, #0x1 lsl r2, r2, #0x1a ldr r1, [r2, #0x0] ldr r0, _020895E4 ; =0xFFFFE0FF and r1, r0 str r1, [r2, #0x0] ldr r2, _020895E8 ; =0x04001000 ldr r1, [r2, #0x0] and r0, r1 str r0, [r2, #0x0] mov r0, #0x4 mov r1, #0x8 bl FUN_0201669C add r0, r4, #0x0 bl FUN_0208961C add r0, r4, #0x0 bl FUN_02089734 ldr r0, _020895EC ; =FUN_02089610 add r1, r4, #0x0 bl FUN_02015F10 bl FUN_0201E788 mov r0, #0x6 mov r1, #0x1 str r0, [sp, #0x0] str r1, [sp, #0x4] ldr r0, [r4, #0x0] add r2, r1, #0x0 str r0, [sp, #0x8] add r0, r6, #0x0 add r3, r0, #0x0 bl FUN_0200E1D0 mov r0, #0x1 str r0, [r5, #0x0] b _020895DA _02089588: bl FUN_0200E308 cmp r0, #0x1 bne _020895DA mov r0, #0x2 str r0, [r5, #0x0] b _020895DA _02089596: bl FUN_02089790 cmp r0, #0x1 bne _020895DA mov r0, #0x6 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] ldr r0, [r4, #0x0] str r0, [sp, #0x8] add r0, r6, #0x0 add r1, r0, #0x0 add r2, r0, #0x0 add r3, r0, #0x0 bl FUN_0200E1D0 mov r0, #0x3 str r0, [r5, #0x0] b _020895DA _020895BC: bl FUN_0200E308 cmp r0, #0x1 bne _020895DA add r0, r4, #0x0 bl FUN_0208977C add r0, r4, #0x0 bl FUN_020896E0 add r0, r6, #0x0 add r1, r0, #0x0 bl FUN_02015F10 mov r6, #0x1 _020895DA: add r0, r6, #0x0 add sp, #0xc pop {r3-r6, pc} .balign 4 _020895E0: .word 0x00000495 _020895E4: .word 0xFFFFE0FF _020895E8: .word 0x04001000 _020895EC: .word FUN_02089610 thumb_func_start FUN_020895F0 FUN_020895F0: ; 0x020895F0 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02006278 ldr r4, [r0, #0x0] add r0, r5, #0x0 bl FUN_0200627C add r0, r4, #0x0 bl FUN_020168D0 mov r0, #0x0 blx OS_ResetSystem mov r0, #0x1 pop {r3-r5, pc} thumb_func_start FUN_02089610 FUN_02089610: ; 0x02089610 ldr r3, _02089618 ; =FUN_0201AB60 ldr r0, [r0, #0x14] bx r3 nop _02089618: .word FUN_0201AB60 thumb_func_start FUN_0208961C FUN_0208961C: ; 0x0208961C push {r4-r5, lr} sub sp, #0x5c ldr r5, _020896C8 ; =0x020FF340 add r4, r0, #0x0 add r3, sp, #0x34 mov r2, #0x5 _02089628: ldmia r5!, {r0-r1} stmia r3!, {r0-r1} sub r2, r2, #0x1 bne _02089628 add r0, sp, #0x34 bl FUN_0201E66C ldr r0, [r4, #0x0] bl FUN_02016B94 add r3, sp, #0x24 ldr r5, _020896CC ; =0x020FF314 str r0, [r4, #0x14] add r2, r3, #0x0 ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} add r0, r2, #0x0 bl FUN_02016BBC ldr r5, _020896D0 ; =0x020FF324 add r3, sp, #0x8 ldmia r5!, {r0-r1} add r2, r3, #0x0 stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r5, #0x0] mov r1, #0x0 str r0, [r3, #0x0] ldr r0, [r4, #0x14] add r3, r1, #0x0 bl FUN_02016C18 ldr r0, [r4, #0x14] mov r1, #0x0 bl FUN_02018744 mov r1, #0x0 str r1, [sp, #0x0] ldr r0, [r4, #0x0] ldr r2, _020896D4 ; =0x000001E2 str r0, [sp, #0x4] ldr r0, [r4, #0x14] mov r3, #0x2 bl FUN_0200CD68 mov r1, #0x0 str r1, [sp, #0x0] ldr r0, [r4, #0x0] ldr r2, _020896D8 ; =0x000001D9 str r0, [sp, #0x4] ldr r0, [r4, #0x14] mov r3, #0x3 bl FUN_0200CB00 ldr r2, [r4, #0x0] mov r0, #0x0 mov r1, #0x20 bl FUN_02002ED0 mov r0, #0x0 ldr r3, [r4, #0x0] mov r1, #0x20 add r2, r0, #0x0 bl FUN_02017F18 ldr r1, _020896DC ; =0x00006C21 mov r0, #0x0 bl FUN_02017FE4 ldr r1, _020896DC ; =0x00006C21 mov r0, #0x4 bl FUN_02017FE4 add sp, #0x5c pop {r4-r5, pc} .balign 4 _020896C8: .word 0x020FF340 _020896CC: .word 0x020FF314 _020896D0: .word 0x020FF324 _020896D4: .word 0x000001E2 _020896D8: .word 0x000001D9 _020896DC: .word 0x00006C21 thumb_func_start FUN_020896E0 FUN_020896E0: ; 0x020896E0 push {r4, lr} add r4, r0, #0x0 mov r0, #0x0 add r1, r0, #0x0 bl FUN_0201797C mov r0, #0x1 mov r1, #0x0 bl FUN_0201797C mov r0, #0x2 mov r1, #0x0 bl FUN_0201797C mov r0, #0x3 mov r1, #0x0 bl FUN_0201797C mov r0, #0x4 mov r1, #0x0 bl FUN_0201797C mov r0, #0x5 mov r1, #0x0 bl FUN_0201797C mov r0, #0x6 mov r1, #0x0 bl FUN_0201797C mov r0, #0x7 mov r1, #0x0 bl FUN_0201797C ldr r0, [r4, #0x14] mov r1, #0x0 bl FUN_020178A0 ldr r0, [r4, #0x14] bl FUN_02016A18 pop {r4, pc} thumb_func_start FUN_02089734 FUN_02089734: ; 0x02089734 push {r4, lr} sub sp, #0x8 add r4, r0, #0x0 ldr r3, [r4, #0x0] mov r0, #0x1 mov r1, #0x1a mov r2, #0x4 bl FUN_0200A86C str r0, [r4, #0x18] bl FUN_0201BD5C mov r0, #0x0 str r0, [r4, #0x8] add r1, r4, #0x0 ldr r0, [r4, #0x14] ldr r2, _02089778 ; =0x020FF304 add r1, #0x1c bl FUN_02019150 mov r0, #0xd8 str r0, [sp, #0x0] mov r0, #0x20 mov r2, #0x0 add r4, #0x1c str r0, [sp, #0x4] add r0, r4, #0x0 mov r1, #0xf add r3, r2, #0x0 bl FUN_020196F4 add sp, #0x8 pop {r4, pc} nop _02089778: .word 0x020FF304 thumb_func_start FUN_0208977C FUN_0208977C: ; 0x0208977C push {r4, lr} add r4, r0, #0x0 add r0, #0x1c bl FUN_02019178 ldr r0, [r4, #0x18] bl FUN_0200A8B8 pop {r4, pc} .balign 4 thumb_func_start FUN_02089790 FUN_02089790: ; 0x02089790 push {r3-r5, lr} sub sp, #0x8 add r4, r0, #0x0 ldr r1, [r4, #0x4] mov r5, #0x0 cmp r1, #0x6 bhi _02089888 add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _020897AA: ; jump table (using 16-bit offset) .short _020897B8 - _020897AA - 2; case 0 .short _020897E2 - _020897AA - 2; case 1 .short _02089802 - _020897AA - 2; case 2 .short _0208982C - _020897AA - 2; case 3 .short _0208984C - _020897AA - 2; case 4 .short _0208986C - _020897AA - 2; case 5 .short _0208987E - _020897AA - 2; case 6 _020897B8: add r1, r5, #0x0 mov r2, #0x1 mov r3, #0x4 bl FUN_0208989C cmp r0, #0x1 bne _02089888 mov r0, #0x1 str r0, [sp, #0x0] ldr r0, [r4, #0x0] ldr r1, _02089890 ; =0x020FF30C str r0, [sp, #0x4] ldr r0, [r4, #0x14] ldr r2, _02089894 ; =0x000001D9 mov r3, #0x3 bl FUN_020020EC str r0, [r4, #0x2c] mov r0, #0x1 str r0, [r4, #0x4] b _02089888 _020897E2: ldr r0, [r4, #0x2c] ldr r1, [r4, #0x0] bl FUN_020021AC cmp r0, #0x0 beq _020897F6 sub r1, r5, #0x2 cmp r0, r1 beq _020897FC b _02089888 _020897F6: mov r0, #0x2 str r0, [r4, #0x4] b _02089888 _020897FC: mov r0, #0x6 str r0, [r4, #0x4] b _02089888 _02089802: mov r1, #0x1 add r2, r1, #0x0 mov r3, #0x4 bl FUN_0208989C cmp r0, #0x1 bne _02089888 mov r0, #0x1 str r0, [sp, #0x0] ldr r0, [r4, #0x0] ldr r1, _02089890 ; =0x020FF30C str r0, [sp, #0x4] ldr r0, [r4, #0x14] ldr r2, _02089894 ; =0x000001D9 mov r3, #0x3 bl FUN_020020EC str r0, [r4, #0x2c] mov r0, #0x3 str r0, [r4, #0x4] b _02089888 _0208982C: ldr r0, [r4, #0x2c] ldr r1, [r4, #0x0] bl FUN_020021AC cmp r0, #0x0 beq _02089840 sub r1, r5, #0x2 cmp r0, r1 beq _02089846 b _02089888 _02089840: mov r0, #0x4 str r0, [r4, #0x4] b _02089888 _02089846: mov r0, #0x6 str r0, [r4, #0x4] b _02089888 _0208984C: mov r1, #0x2 mov r2, #0x1 add r3, r5, #0x0 bl FUN_0208989C cmp r0, #0x1 bne _02089888 add r0, r4, #0x0 ldr r1, _02089898 ; =0x000001E2 add r0, #0x1c bl FUN_0200D858 str r0, [r4, #0x34] mov r0, #0x5 str r0, [r4, #0x4] b _02089888 _0208986C: ldr r0, [r4, #0x30] bl FUN_0202263C ldr r0, [r4, #0x34] bl FUN_0200DBFC mov r0, #0x6 str r0, [r4, #0x4] b _02089888 _0208987E: ldr r0, [r4, #0x14] add r1, r5, #0x0 bl FUN_02018744 mov r5, #0x1 _02089888: add r0, r5, #0x0 add sp, #0x8 pop {r3-r5, pc} nop _02089890: .word 0x020FF30C _02089894: .word 0x000001D9 _02089898: .word 0x000001E2 thumb_func_start FUN_0208989C FUN_0208989C: ; 0x0208989C push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 ldr r0, [r5, #0x8] add r7, r1, #0x0 add r4, r3, #0x0 mov r6, #0x0 cmp r0, #0x0 beq _020898B8 cmp r0, #0x1 beq _02089920 cmp r0, #0x2 beq _0208993C b _02089950 _020898B8: mov r0, #0xd8 str r0, [sp, #0x0] mov r0, #0x20 str r0, [sp, #0x4] add r0, r5, #0x0 add r0, #0x1c mov r1, #0xf add r2, r6, #0x0 add r3, r6, #0x0 bl FUN_020196F4 add r0, r5, #0x0 ldr r2, _02089958 ; =0x000001E2 add r0, #0x1c add r1, r6, #0x0 mov r3, #0x2 bl FUN_0200D0BC mov r0, #0x1 ldr r1, [r5, #0x0] lsl r0, r0, #0xa bl FUN_020219F4 str r0, [r5, #0x10] ldr r0, [r5, #0x18] ldr r2, [r5, #0x10] add r1, r7, #0x0 bl FUN_0200A8E0 add r3, r6, #0x0 str r3, [sp, #0x0] str r4, [sp, #0x4] str r3, [sp, #0x8] add r0, r5, #0x0 ldr r2, [r5, #0x10] add r0, #0x1c mov r1, #0x1 bl FUN_0201BD84 str r0, [r5, #0xc] cmp r4, #0x0 bne _02089918 ldr r0, [r5, #0x10] bl FUN_02021A20 ldr r0, [r5, #0x8] add r0, r0, #0x1 str r0, [r5, #0x8] _02089918: ldr r0, [r5, #0x8] add r0, r0, #0x1 str r0, [r5, #0x8] b _02089950 _02089920: ldr r0, [r5, #0xc] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_0201BD70 cmp r0, #0x0 bne _02089950 ldr r0, [r5, #0x10] bl FUN_02021A20 ldr r0, [r5, #0x8] add r0, r0, #0x1 str r0, [r5, #0x8] b _02089950 _0208993C: cmp r2, #0x0 bne _0208994A ldr r0, _0208995C ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #0x1 tst r0, r1 beq _02089950 _0208994A: mov r0, #0x0 str r0, [r5, #0x8] mov r6, #0x1 _02089950: add r0, r6, #0x0 add sp, #0xc pop {r4-r7, pc} nop _02089958: .word 0x000001E2 _0208995C: .word 0x021C48B8 thumb_func_start FUN_02089960 FUN_02089960: ; 0x02089960 push {r3-r5, lr} mov r2, #0x2 add r5, r0, #0x0 mov r0, #0x3 mov r1, #0x58 lsl r2, r2, #0x10 bl FUN_0201681C add r0, r5, #0x0 mov r1, #0x3c mov r2, #0x58 bl FUN_02006268 mov r1, #0x0 mov r2, #0x3c add r4, r0, #0x0 blx FUN_020DF4A4 mov r0, #0x58 str r0, [r4, #0x0] mov r0, #0x0 str r0, [r4, #0x4] add r0, r5, #0x0 bl FUN_0200628C ldr r0, [r0, #0x8] str r0, [r4, #0x34] mov r0, #0x1 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0208999C FUN_0208999C: ; 0x0208999C push {r4-r6, lr} add r5, r1, #0x0 bl FUN_02006278 ldr r1, [r5, #0x0] add r6, r0, #0x0 mov r4, #0x0 cmp r1, #0x0 beq _020899B8 cmp r1, #0x1 beq _02089A12 cmp r1, #0x2 beq _02089A20 b _02089A34 _020899B8: add r0, r4, #0x0 add r1, r4, #0x0 bl FUN_0200E3A0 mov r0, #0x1 add r1, r4, #0x0 bl FUN_0200E3A0 add r0, r4, #0x0 add r1, r0, #0x0 bl FUN_02015F10 add r0, r4, #0x0 add r1, r0, #0x0 bl FUN_02015F34 bl FUN_0201E6D8 bl FUN_0201E740 mov r2, #0x1 lsl r2, r2, #0x1a ldr r1, [r2, #0x0] ldr r0, _02089A38 ; =0xFFFFE0FF and r1, r0 str r1, [r2, #0x0] ldr r2, _02089A3C ; =0x04001000 ldr r1, [r2, #0x0] and r0, r1 str r0, [r2, #0x0] mov r0, #0x4 mov r1, #0x8 bl FUN_0201669C add r0, r6, #0x0 bl FUN_02089A6C add r0, r6, #0x0 bl FUN_02089B80 bl FUN_0201E788 mov r0, #0x1 str r0, [r5, #0x0] b _02089A34 _02089A12: bl FUN_02089BE0 cmp r0, #0x1 bne _02089A34 mov r0, #0x2 str r0, [r5, #0x0] b _02089A34 _02089A20: bl FUN_02089BCC add r0, r6, #0x0 bl FUN_02089B2C add r0, r4, #0x0 add r1, r0, #0x0 bl FUN_02015F10 mov r4, #0x1 _02089A34: add r0, r4, #0x0 pop {r4-r6, pc} .balign 4 _02089A38: .word 0xFFFFE0FF _02089A3C: .word 0x04001000 thumb_func_start FUN_02089A40 FUN_02089A40: ; 0x02089A40 push {r3-r5, lr} add r5, r0, #0x0 bl FUN_02006278 ldr r4, [r0, #0x0] add r0, r5, #0x0 bl FUN_0200627C add r0, r4, #0x0 bl FUN_020168D0 ldr r0, _02089A64 ; =0x00000053 ldr r1, _02089A68 ; =0x0223A360 bl FUN_02000E7C mov r0, #0x1 pop {r3-r5, pc} nop _02089A64: .word 0x00000053 _02089A68: .word 0x0223A360 thumb_func_start FUN_02089A6C FUN_02089A6C: ; 0x02089A6C push {r4-r5, lr} sub sp, #0x5c ldr r5, _02089B18 ; =0x020FF3AC add r4, r0, #0x0 add r3, sp, #0x34 mov r2, #0x5 _02089A78: ldmia r5!, {r0-r1} stmia r3!, {r0-r1} sub r2, r2, #0x1 bne _02089A78 add r0, sp, #0x34 bl FUN_0201E66C ldr r0, [r4, #0x0] bl FUN_02016B94 add r3, sp, #0x24 ldr r5, _02089B1C ; =0x020FF380 str r0, [r4, #0x18] add r2, r3, #0x0 ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} add r0, r2, #0x0 bl FUN_02016BBC ldr r5, _02089B20 ; =0x020FF390 add r3, sp, #0x8 ldmia r5!, {r0-r1} add r2, r3, #0x0 stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldmia r5!, {r0-r1} stmia r3!, {r0-r1} ldr r0, [r5, #0x0] mov r1, #0x0 str r0, [r3, #0x0] ldr r0, [r4, #0x18] add r3, r1, #0x0 bl FUN_02016C18 ldr r0, [r4, #0x18] mov r1, #0x0 bl FUN_02018744 mov r1, #0x0 str r1, [sp, #0x0] ldr r0, [r4, #0x0] ldr r2, _02089B24 ; =0x000001E2 str r0, [sp, #0x4] ldr r0, [r4, #0x18] mov r3, #0x2 bl FUN_0200CD68 mov r1, #0x0 str r1, [sp, #0x0] ldr r0, [r4, #0x0] ldr r2, _02089B28 ; =0x000001D9 str r0, [sp, #0x4] ldr r0, [r4, #0x18] mov r3, #0x3 bl FUN_0200CB00 ldr r2, [r4, #0x0] mov r0, #0x0 mov r1, #0x20 bl FUN_02002ED0 mov r0, #0x0 ldr r3, [r4, #0x0] mov r1, #0x20 add r2, r0, #0x0 bl FUN_02017F18 mov r0, #0x0 add r1, r0, #0x0 bl FUN_02017FE4 mov r0, #0x4 mov r1, #0x0 bl FUN_02017FE4 add sp, #0x5c pop {r4-r5, pc} .balign 4 _02089B18: .word 0x020FF3AC _02089B1C: .word 0x020FF380 _02089B20: .word 0x020FF390 _02089B24: .word 0x000001E2 _02089B28: .word 0x000001D9 thumb_func_start FUN_02089B2C FUN_02089B2C: ; 0x02089B2C push {r4, lr} add r4, r0, #0x0 mov r0, #0x0 add r1, r0, #0x0 bl FUN_0201797C mov r0, #0x1 mov r1, #0x0 bl FUN_0201797C mov r0, #0x2 mov r1, #0x0 bl FUN_0201797C mov r0, #0x3 mov r1, #0x0 bl FUN_0201797C mov r0, #0x4 mov r1, #0x0 bl FUN_0201797C mov r0, #0x5 mov r1, #0x0 bl FUN_0201797C mov r0, #0x6 mov r1, #0x0 bl FUN_0201797C mov r0, #0x7 mov r1, #0x0 bl FUN_0201797C ldr r0, [r4, #0x18] mov r1, #0x0 bl FUN_020178A0 ldr r0, [r4, #0x18] bl FUN_02016A18 pop {r4, pc} thumb_func_start FUN_02089B80 FUN_02089B80: ; 0x02089B80 push {r4, lr} sub sp, #0x8 add r4, r0, #0x0 ldr r2, _02089BC4 ; =0x00000167 ldr r3, [r4, #0x0] mov r0, #0x1 mov r1, #0x1a bl FUN_0200A86C str r0, [r4, #0x1c] bl FUN_0201BD5C mov r0, #0x0 str r0, [r4, #0xc] add r1, r4, #0x0 ldr r0, [r4, #0x18] ldr r2, _02089BC8 ; =0x020FF378 add r1, #0x20 bl FUN_02019150 mov r0, #0xd8 str r0, [sp, #0x0] mov r0, #0x20 mov r2, #0x0 add r4, #0x20 str r0, [sp, #0x4] add r0, r4, #0x0 mov r1, #0xf add r3, r2, #0x0 bl FUN_020196F4 add sp, #0x8 pop {r4, pc} nop _02089BC4: .word 0x00000167 _02089BC8: .word 0x020FF378 thumb_func_start FUN_02089BCC FUN_02089BCC: ; 0x02089BCC push {r4, lr} add r4, r0, #0x0 add r0, #0x20 bl FUN_02019178 ldr r0, [r4, #0x1c] bl FUN_0200A8B8 pop {r4, pc} .balign 4 thumb_func_start FUN_02089BE0 FUN_02089BE0: ; 0x02089BE0 push {r4-r5, lr} sub sp, #0xc add r4, r0, #0x0 ldr r1, [r4, #0x4] mov r5, #0x0 cmp r1, #0x5 bhi _02089CC2 add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _02089BFA: ; jump table (using 16-bit offset) .short _02089C06 - _02089BFA - 2; case 0 .short _02089C3C - _02089BFA - 2; case 1 .short _02089C68 - _02089BFA - 2; case 2 .short _02089C76 - _02089BFA - 2; case 3 .short _02089CA2 - _02089BFA - 2; case 4 .short _02089CC0 - _02089BFA - 2; case 5 _02089C06: ldr r0, [r4, #0x34] bl FUN_02022800 cmp r0, #0x3 bhi _02089CC2 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _02089C1C: ; jump table (using 16-bit offset) .short _02089C24 - _02089C1C - 2; case 0 .short _02089C24 - _02089C1C - 2; case 1 .short _02089C2A - _02089C1C - 2; case 2 .short _02089C34 - _02089C1C - 2; case 3 _02089C24: mov r0, #0x5 str r0, [r4, #0x4] b _02089CC2 _02089C2A: add r0, r5, #0x0 str r0, [r4, #0x8] mov r0, #0x1 str r0, [r4, #0x4] b _02089CC2 _02089C34: mov r0, #0x1 str r0, [r4, #0x8] str r0, [r4, #0x4] b _02089CC2 _02089C3C: ldr r1, _02089CC8 ; =0x00006C21 add r0, r5, #0x0 bl FUN_02017FE4 ldr r1, _02089CC8 ; =0x00006C21 mov r0, #0x4 bl FUN_02017FE4 mov r0, #0x6 mov r1, #0x1 str r0, [sp, #0x0] str r1, [sp, #0x4] ldr r0, [r4, #0x0] add r2, r1, #0x0 str r0, [sp, #0x8] add r0, r5, #0x0 add r3, r0, #0x0 bl FUN_0200E1D0 mov r0, #0x2 str r0, [r4, #0x4] b _02089CC2 _02089C68: bl FUN_0200E308 cmp r0, #0x1 bne _02089CC2 mov r0, #0x3 str r0, [r4, #0x4] b _02089CC2 _02089C76: ldr r1, [r4, #0x8] add r2, r5, #0x0 mov r3, #0x4 bl FUN_02089CCC cmp r0, #0x1 bne _02089CC2 mov r0, #0x6 str r0, [sp, #0x0] mov r0, #0x1 str r0, [sp, #0x4] ldr r0, [r4, #0x0] str r0, [sp, #0x8] add r0, r5, #0x0 add r1, r0, #0x0 add r2, r0, #0x0 add r3, r0, #0x0 bl FUN_0200E1D0 mov r0, #0x4 str r0, [r4, #0x4] b _02089CC2 _02089CA2: bl FUN_0200E308 cmp r0, #0x1 bne _02089CC2 add r0, r5, #0x0 add r1, r0, #0x0 bl FUN_02017FE4 mov r0, #0x4 add r1, r5, #0x0 bl FUN_02017FE4 mov r0, #0x5 str r0, [r4, #0x4] b _02089CC2 _02089CC0: mov r5, #0x1 _02089CC2: add r0, r5, #0x0 add sp, #0xc pop {r4-r5, pc} .balign 4 _02089CC8: .word 0x00006C21 thumb_func_start FUN_02089CCC FUN_02089CCC: ; 0x02089CCC push {r4-r7, lr} sub sp, #0xc add r5, r0, #0x0 ldr r0, [r5, #0xc] add r7, r1, #0x0 add r4, r3, #0x0 mov r6, #0x0 cmp r0, #0x0 beq _02089CE8 cmp r0, #0x1 beq _02089D50 cmp r0, #0x2 beq _02089D6C b _02089D80 _02089CE8: mov r0, #0xd8 str r0, [sp, #0x0] mov r0, #0x20 str r0, [sp, #0x4] add r0, r5, #0x0 add r0, #0x20 mov r1, #0xf add r2, r6, #0x0 add r3, r6, #0x0 bl FUN_020196F4 add r0, r5, #0x0 ldr r2, _02089D88 ; =0x000001E2 add r0, #0x20 add r1, r6, #0x0 mov r3, #0x2 bl FUN_0200D0BC mov r0, #0x1 ldr r1, [r5, #0x0] lsl r0, r0, #0xa bl FUN_020219F4 str r0, [r5, #0x14] ldr r0, [r5, #0x1c] ldr r2, [r5, #0x14] add r1, r7, #0x0 bl FUN_0200A8E0 add r3, r6, #0x0 str r3, [sp, #0x0] str r4, [sp, #0x4] str r3, [sp, #0x8] add r0, r5, #0x0 ldr r2, [r5, #0x14] add r0, #0x20 mov r1, #0x1 bl FUN_0201BD84 str r0, [r5, #0x10] cmp r4, #0x0 bne _02089D48 ldr r0, [r5, #0x14] bl FUN_02021A20 ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] _02089D48: ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] b _02089D80 _02089D50: ldr r0, [r5, #0x10] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_0201BD70 cmp r0, #0x0 bne _02089D80 ldr r0, [r5, #0x14] bl FUN_02021A20 ldr r0, [r5, #0xc] add r0, r0, #0x1 str r0, [r5, #0xc] b _02089D80 _02089D6C: cmp r2, #0x0 bne _02089D7A ldr r0, _02089D8C ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #0x1 tst r0, r1 beq _02089D80 _02089D7A: mov r0, #0x0 str r0, [r5, #0xc] mov r6, #0x1 _02089D80: add r0, r6, #0x0 add sp, #0xc pop {r4-r7, pc} nop _02089D88: .word 0x000001E2 _02089D8C: .word 0x021C48B8 thumb_func_start FUN_02089D90 FUN_02089D90: ; 0x02089D90 push {r3-r6, lr} sub sp, #0x1c add r4, r0, #0x0 mov r0, #0x0 add r1, r0, #0x0 bl FUN_0200E3A0 mov r0, #0x1 mov r1, #0x0 bl FUN_0200E3A0 mov r0, #0x0 add r1, r0, #0x0 bl FUN_02015F10 mov r0, #0x0 add r1, r0, #0x0 bl FUN_02015F34 bl FUN_0201E6D8 bl FUN_0201E740 mov r2, #0x1 lsl r2, r2, #0x1a ldr r1, [r2, #0x0] ldr r0, _02089EF4 ; =0xFFFFE0FF and r1, r0 str r1, [r2, #0x0] ldr r2, _02089EF8 ; =0x04001000 ldr r1, [r2, #0x0] and r0, r1 str r0, [r2, #0x0] mov r0, #0x4 mov r1, #0x8 bl FUN_0201669C ldr r0, _02089EFC ; =0x021C4918 mov r1, #0x0 strb r1, [r0, #0x5] bl FUN_0201E7A0 ldr r3, _02089F00 ; =0x04000050 mov r0, #0x0 strh r0, [r3, #0x0] ldr r2, _02089F04 ; =0x04001050 sub r3, #0x50 strh r0, [r2, #0x0] ldr r1, [r3, #0x0] ldr r0, _02089F08 ; =0xFFFF1FFF sub r2, #0x50 and r1, r0 str r1, [r3, #0x0] ldr r1, [r2, #0x0] and r0, r1 str r0, [r2, #0x0] ldr r0, _02089F0C ; =0x020FF418 bl FUN_0201E66C add r0, r4, #0x0 bl FUN_02016B94 add r5, r0, #0x0 ldr r0, _02089F10 ; =0x020FF3EC bl FUN_02016BBC mov r1, #0x0 ldr r2, _02089F14 ; =0x020FF3FC add r0, r5, #0x0 add r3, r1, #0x0 bl FUN_02016C18 add r0, r5, #0x0 mov r1, #0x0 bl FUN_02018744 mov r1, #0x0 str r1, [sp, #0x0] ldr r2, _02089F18 ; =0x000001F7 add r0, r5, #0x0 mov r3, #0x2 str r4, [sp, #0x4] bl FUN_0200CB00 mov r0, #0x0 mov r1, #0x20 add r2, r4, #0x0 bl FUN_02002ED0 mov r0, #0x0 mov r1, #0x20 add r2, r0, #0x0 add r3, r4, #0x0 bl FUN_02017F18 ldr r1, _02089F1C ; =0x00006C21 mov r0, #0x0 bl FUN_02017FE4 ldr r1, _02089F1C ; =0x00006C21 mov r0, #0x4 bl FUN_02017FE4 mov r0, #0x1 mov r1, #0x1a mov r2, #0x5 add r3, r4, #0x0 bl FUN_0200A86C add r6, r0, #0x0 mov r0, #0x6 lsl r0, r0, #0x6 add r1, r4, #0x0 bl FUN_020219F4 add r4, r0, #0x0 bl FUN_0201BD5C ldr r2, _02089F20 ; =0x020FF3E4 add r0, r5, #0x0 add r1, sp, #0xc bl FUN_02019150 mov r0, #0xd0 str r0, [sp, #0x0] mov r0, #0x90 mov r2, #0x0 str r0, [sp, #0x4] add r0, sp, #0xc mov r1, #0xf add r3, r2, #0x0 bl FUN_020196F4 ldr r2, _02089F18 ; =0x000001F7 add r0, sp, #0xc mov r1, #0x0 mov r3, #0x2 bl FUN_0200CCA4 add r0, r6, #0x0 mov r1, #0x0 add r2, r4, #0x0 bl FUN_0200A8E0 mov r1, #0x0 str r1, [sp, #0x0] str r1, [sp, #0x4] add r0, sp, #0xc add r2, r4, #0x0 add r3, r1, #0x0 str r1, [sp, #0x8] bl FUN_0201BD84 add r0, r4, #0x0 bl FUN_02021A20 bl FUN_0201E788 mov r0, #0x0 bl FUN_0200E394 mov r0, #0x1 bl FUN_0200E394 mov r0, #0x0 mov r1, #0x3f mov r2, #0x3 bl FUN_0200A274 mov r4, #0x1 _02089EE4: bl FUN_02000FE8 add r0, r4, #0x0 add r1, r4, #0x0 blx OS_WaitIrq b _02089EE4 nop _02089EF4: .word 0xFFFFE0FF _02089EF8: .word 0x04001000 _02089EFC: .word 0x021C4918 _02089F00: .word 0x04000050 _02089F04: .word 0x04001050 _02089F08: .word 0xFFFF1FFF _02089F0C: .word 0x020FF418 _02089F10: .word 0x020FF3EC _02089F14: .word 0x020FF3FC _02089F18: .word 0x000001F7 _02089F1C: .word 0x00006C21 _02089F20: .word 0x020FF3E4 thumb_func_start FUN_02089F24 FUN_02089F24: ; 0x02089F24 push {r3-r6, lr} sub sp, #0x1c add r4, r0, #0x0 mov r0, #0x0 add r1, r0, #0x0 bl FUN_0200E3A0 mov r0, #0x1 mov r1, #0x0 bl FUN_0200E3A0 mov r0, #0x0 add r1, r0, #0x0 bl FUN_02015F10 mov r0, #0x0 add r1, r0, #0x0 bl FUN_02015F34 bl FUN_0201E6D8 bl FUN_0201E740 mov r2, #0x1 lsl r2, r2, #0x1a ldr r1, [r2, #0x0] ldr r0, _0208A088 ; =0xFFFFE0FF and r1, r0 str r1, [r2, #0x0] ldr r2, _0208A08C ; =0x04001000 ldr r1, [r2, #0x0] and r0, r1 str r0, [r2, #0x0] mov r0, #0x4 mov r1, #0x8 bl FUN_0201669C ldr r0, _0208A090 ; =0x021C4918 mov r1, #0x0 strb r1, [r0, #0x5] bl FUN_0201E7A0 ldr r3, _0208A094 ; =0x04000050 mov r0, #0x0 strh r0, [r3, #0x0] ldr r2, _0208A098 ; =0x04001050 sub r3, #0x50 strh r0, [r2, #0x0] ldr r1, [r3, #0x0] ldr r0, _0208A09C ; =0xFFFF1FFF sub r2, #0x50 and r1, r0 str r1, [r3, #0x0] ldr r1, [r2, #0x0] and r0, r1 str r0, [r2, #0x0] ldr r0, _0208A0A0 ; =0x020FF418 bl FUN_0201E66C add r0, r4, #0x0 bl FUN_02016B94 add r5, r0, #0x0 ldr r0, _0208A0A4 ; =0x020FF3EC bl FUN_02016BBC mov r1, #0x0 ldr r2, _0208A0A8 ; =0x020FF3FC add r0, r5, #0x0 add r3, r1, #0x0 bl FUN_02016C18 add r0, r5, #0x0 mov r1, #0x0 bl FUN_02018744 mov r1, #0x0 str r1, [sp, #0x0] ldr r2, _0208A0AC ; =0x000001F7 add r0, r5, #0x0 mov r3, #0x2 str r4, [sp, #0x4] bl FUN_0200CB00 mov r0, #0x0 mov r1, #0x20 add r2, r4, #0x0 bl FUN_02002ED0 mov r0, #0x0 mov r1, #0x20 add r2, r0, #0x0 add r3, r4, #0x0 bl FUN_02017F18 ldr r1, _0208A0B0 ; =0x00006C21 mov r0, #0x0 bl FUN_02017FE4 ldr r1, _0208A0B0 ; =0x00006C21 mov r0, #0x4 bl FUN_02017FE4 mov r0, #0x1 mov r1, #0x1a mov r2, #0x5 add r3, r4, #0x0 bl FUN_0200A86C add r6, r0, #0x0 mov r0, #0x6 lsl r0, r0, #0x6 add r1, r4, #0x0 bl FUN_020219F4 add r4, r0, #0x0 bl FUN_0201BD5C ldr r2, _0208A0B4 ; =0x020FF3E4 add r0, r5, #0x0 add r1, sp, #0xc bl FUN_02019150 mov r0, #0xd0 str r0, [sp, #0x0] mov r0, #0x90 mov r2, #0x0 str r0, [sp, #0x4] add r0, sp, #0xc mov r1, #0xf add r3, r2, #0x0 bl FUN_020196F4 ldr r2, _0208A0AC ; =0x000001F7 add r0, sp, #0xc mov r1, #0x0 mov r3, #0x2 bl FUN_0200CCA4 add r0, r6, #0x0 mov r1, #0x1 add r2, r4, #0x0 bl FUN_0200A8E0 mov r1, #0x0 str r1, [sp, #0x0] str r1, [sp, #0x4] add r0, sp, #0xc add r2, r4, #0x0 add r3, r1, #0x0 str r1, [sp, #0x8] bl FUN_0201BD84 add r0, r4, #0x0 bl FUN_02021A20 bl FUN_0201E788 mov r0, #0x0 bl FUN_0200E394 mov r0, #0x1 bl FUN_0200E394 mov r0, #0x0 mov r1, #0x3f mov r2, #0x3 bl FUN_0200A274 mov r4, #0x1 _0208A078: bl FUN_02000FE8 add r0, r4, #0x0 add r1, r4, #0x0 blx OS_WaitIrq b _0208A078 nop _0208A088: .word 0xFFFFE0FF _0208A08C: .word 0x04001000 _0208A090: .word 0x021C4918 _0208A094: .word 0x04000050 _0208A098: .word 0x04001050 _0208A09C: .word 0xFFFF1FFF _0208A0A0: .word 0x020FF418 _0208A0A4: .word 0x020FF3EC _0208A0A8: .word 0x020FF3FC _0208A0AC: .word 0x000001F7 _0208A0B0: .word 0x00006C21 _0208A0B4: .word 0x020FF3E4 thumb_func_start FUN_0208A0B8 FUN_0208A0B8: ; 0x0208A0B8 push {r4-r7, lr} sub sp, #0x1c add r4, r0, #0x0 cmp r1, #0x0 bne _0208A0C6 mov r6, #0x1 b _0208A0C8 _0208A0C6: mov r6, #0x0 _0208A0C8: mov r0, #0x0 add r1, r0, #0x0 bl FUN_0200E3A0 mov r0, #0x1 mov r1, #0x0 bl FUN_0200E3A0 bl FUN_02015EF4 mov r0, #0x0 add r1, r0, #0x0 bl FUN_02015F10 mov r0, #0x0 add r1, r0, #0x0 bl FUN_02015F34 bl FUN_0201E6D8 bl FUN_0201E740 mov r2, #0x1 lsl r2, r2, #0x1a ldr r1, [r2, #0x0] ldr r0, _0208A228 ; =0xFFFFE0FF and r1, r0 str r1, [r2, #0x0] ldr r2, _0208A22C ; =0x04001000 ldr r1, [r2, #0x0] and r0, r1 str r0, [r2, #0x0] mov r0, #0x4 mov r1, #0x8 bl FUN_0201669C ldr r0, _0208A230 ; =0x021C4918 mov r1, #0x0 strb r1, [r0, #0x5] bl FUN_0201E7A0 ldr r3, _0208A234 ; =0x04000050 mov r1, #0x0 strh r1, [r3, #0x0] ldr r0, _0208A238 ; =0x04001050 sub r3, #0x50 strh r1, [r0, #0x0] ldr r2, [r3, #0x0] ldr r1, _0208A23C ; =0xFFFF1FFF sub r0, #0x50 and r2, r1 str r2, [r3, #0x0] ldr r2, [r0, #0x0] and r1, r2 str r1, [r0, #0x0] ldr r0, _0208A240 ; =0x020FF474 bl FUN_0201E66C add r0, r4, #0x0 bl FUN_02016B94 add r5, r0, #0x0 ldr r0, _0208A244 ; =0x020FF448 bl FUN_02016BBC mov r1, #0x0 ldr r2, _0208A248 ; =0x020FF458 add r0, r5, #0x0 add r3, r1, #0x0 bl FUN_02016C18 add r0, r5, #0x0 mov r1, #0x0 bl FUN_02018744 mov r1, #0x0 str r1, [sp, #0x0] ldr r2, _0208A24C ; =0x000001F7 add r0, r5, #0x0 mov r3, #0x2 str r4, [sp, #0x4] bl FUN_0200CB00 mov r0, #0x0 mov r1, #0x20 add r2, r4, #0x0 bl FUN_02002ED0 mov r0, #0x0 mov r1, #0x20 add r2, r0, #0x0 add r3, r4, #0x0 bl FUN_02017F18 ldr r1, _0208A250 ; =0x00006C21 mov r0, #0x0 bl FUN_02017FE4 ldr r1, _0208A250 ; =0x00006C21 mov r0, #0x4 bl FUN_02017FE4 mov r0, #0x1 mov r1, #0x1a mov r2, #0x6 add r3, r4, #0x0 bl FUN_0200A86C add r7, r0, #0x0 mov r0, #0x6 lsl r0, r0, #0x6 add r1, r4, #0x0 bl FUN_020219F4 add r4, r0, #0x0 bl FUN_0201BD5C ldr r2, _0208A254 ; =0x020FF440 add r0, r5, #0x0 add r1, sp, #0xc bl FUN_02019150 mov r0, #0xd0 str r0, [sp, #0x0] mov r0, #0x90 mov r2, #0x0 str r0, [sp, #0x4] add r0, sp, #0xc mov r1, #0xf add r3, r2, #0x0 bl FUN_020196F4 ldr r2, _0208A24C ; =0x000001F7 add r0, sp, #0xc mov r1, #0x0 mov r3, #0x2 bl FUN_0200CCA4 add r0, r7, #0x0 add r1, r6, #0x0 add r2, r4, #0x0 bl FUN_0200A8E0 mov r1, #0x0 str r1, [sp, #0x0] str r1, [sp, #0x4] add r0, sp, #0xc add r2, r4, #0x0 add r3, r1, #0x0 str r1, [sp, #0x8] bl FUN_0201BD84 add r0, r4, #0x0 bl FUN_02021A20 bl FUN_0201E788 mov r0, #0x0 bl FUN_0200E394 mov r0, #0x1 bl FUN_0200E394 mov r0, #0x0 mov r1, #0x3f mov r2, #0x3 bl FUN_0200A274 mov r4, #0x1 _0208A21A: bl FUN_02000FE8 add r0, r4, #0x0 add r1, r4, #0x0 blx OS_WaitIrq b _0208A21A .balign 4 _0208A228: .word 0xFFFFE0FF _0208A22C: .word 0x04001000 _0208A230: .word 0x021C4918 _0208A234: .word 0x04000050 _0208A238: .word 0x04001050 _0208A23C: .word 0xFFFF1FFF _0208A240: .word 0x020FF474 _0208A244: .word 0x020FF448 _0208A248: .word 0x020FF458 _0208A24C: .word 0x000001F7 _0208A250: .word 0x00006C21 _0208A254: .word 0x020FF440 thumb_func_start FUN_0208A258 FUN_0208A258: ; 0x0208A258 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02046528 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_0204652C add r4, r0, #0x0 ldr r0, _0208A290 ; =0x0000022F ldrb r0, [r4, r0] cmp r0, #0x10 beq _0208A278 cmp r0, #0x11 beq _0208A286 b _0208A28C _0208A278: add r0, r6, #0x0 add r1, r4, #0x0 bl FUN_0208A294 ldr r1, _0208A290 ; =0x0000022F strb r0, [r4, r1] b _0208A28C _0208A286: add r0, r5, #0x0 bl FUN_0208A2C4 _0208A28C: mov r0, #0x0 pop {r4-r6, pc} .balign 4 _0208A290: .word 0x0000022F thumb_func_start FUN_0208A294 FUN_0208A294: ; 0x0208A294 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 bl FUN_0204647C cmp r0, #0x0 beq _0208A2A6 mov r0, #0x10 pop {r3-r5, pc} _0208A2A6: ldr r0, [r4, #0x4] bl FUN_0206E394 mov r1, #0x9 lsl r1, r1, #0x6 strb r0, [r4, r1] ldr r0, [r4, #0x4] bl FUN_02016A18 add r0, r5, #0x0 bl FUN_0204649C mov r0, #0x11 pop {r3-r5, pc} .balign 4 thumb_func_start FUN_0208A2C4 FUN_0208A2C4: ; 0x0208A2C4 push {r4-r6, lr} add r5, r0, #0x0 bl FUN_02046528 add r6, r0, #0x0 add r0, r5, #0x0 bl FUN_0204652C add r4, r0, #0x0 add r0, r6, #0x0 bl FUN_020464A4 cmp r0, #0x0 beq _0208A2F6 mov r0, #0x1 bl FUN_021D7CA4 ldr r1, _0208A2F8 ; =0x0223D4AD add r0, r5, #0x0 add r2, r4, #0x0 bl FUN_020463EC ldr r0, _0208A2FC ; =0x0000022F mov r1, #0x12 strb r1, [r4, r0] _0208A2F6: pop {r4-r6, pc} .balign 4 _0208A2F8: .word 0x0223D4AD _0208A2FC: .word 0x0000022F thumb_func_start FUN_0208A300 FUN_0208A300: ; 0x0208A300 push {r3, lr} mov r1, #0x8 bl FUN_02016998 mov r1, #0x0 strb r1, [r0, #0x0] strb r1, [r0, #0x1] strb r1, [r0, #0x2] strb r1, [r0, #0x3] strb r1, [r0, #0x4] strb r1, [r0, #0x5] strb r1, [r0, #0x6] strb r1, [r0, #0x7] mov r1, #0x2 str r1, [r0, #0x4] pop {r3, pc} thumb_func_start FUN_0208A320 FUN_0208A320: ; 0x0208A320 ldr r3, _0208A324 ; =FUN_02016A18 bx r3 .balign 4 _0208A324: .word FUN_02016A18 thumb_func_start FUN_0208A328 FUN_0208A328: ; 0x0208A328 ldr r0, [r0, #0x0] bx lr thumb_func_start FUN_0208A32C FUN_0208A32C: ; 0x0208A32C str r1, [r0, #0x0] bx lr thumb_func_start FUN_0208A330 FUN_0208A330: ; 0x0208A330 ldr r0, [r0, #0x4] bx lr thumb_func_start FUN_0208A334 FUN_0208A334: ; 0x0208A334 str r1, [r0, #0x4] bx lr thumb_func_start FUN_0208A338 FUN_0208A338: ; 0x0208A338 push {r4-r6, lr} add r6, r0, #0x0 bl FUN_02046528 add r5, r0, #0x0 mov r0, #0x20 mov r1, #0x6c bl FUN_02016998 add r4, r0, #0x0 mov r0, #0x19 str r5, [r4, #0x0] lsl r0, r0, #0x4 mov r1, #0x20 bl FUN_020219F4 str r0, [r4, #0x4] mov r0, #0x19 lsl r0, r0, #0x4 mov r1, #0x20 bl FUN_020219F4 str r0, [r4, #0x8] mov r0, #0x20 bl FUN_0200AA80 str r0, [r4, #0xc] ldr r2, _0208A3C0 ; =0x00000171 mov r0, #0x1 mov r1, #0x1a mov r3, #0x20 bl FUN_0200A86C str r0, [r4, #0x10] mov r0, #0x20 bl FUN_02013690 str r0, [r4, #0x14] ldr r2, [r4, #0x0] mov r0, #0x2 ldr r2, [r2, #0xc] mov r1, #0x0 mov r3, #0x20 bl FUN_02085338 str r0, [r4, #0x50] bl FUN_020853DC add r0, r4, #0x0 add r0, #0x18 bl FUN_0201901C add r0, r4, #0x0 add r0, #0x28 bl FUN_0201901C add r0, r4, #0x0 add r0, #0x38 bl FUN_0201901C mov r0, #0x0 str r0, [r4, #0x54] ldr r1, _0208A3C4 ; =FUN_0208A458 add r0, r6, #0x0 add r2, r4, #0x0 bl FUN_0204640C pop {r4-r6, pc} .balign 4 _0208A3C0: .word 0x00000171 _0208A3C4: .word FUN_0208A458 thumb_func_start FUN_0208A3C8 FUN_0208A3C8: ; 0x0208A3C8 push {r4, lr} add r4, r0, #0x0 ldr r0, [r4, #0x50] bl FUN_020853A8 ldr r0, [r4, #0x14] bl FUN_020136C0 ldr r0, [r4, #0x4] bl FUN_02021A20 ldr r0, [r4, #0x8] bl FUN_02021A20 ldr r0, [r4, #0xc] bl FUN_0200AB18 ldr r0, [r4, #0x10] bl FUN_0200A8B8 add r0, r4, #0x0 bl FUN_0208A400 add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} .balign 4 thumb_func_start FUN_0208A400 FUN_0208A400: ; 0x0208A400 push {r4, lr} add r4, r0, #0x0 add r0, #0x18 bl FUN_02019048 cmp r0, #0x0 beq _0208A41E add r0, r4, #0x0 add r0, #0x18 bl FUN_02019178 add r0, r4, #0x0 add r0, #0x18 bl FUN_0201901C _0208A41E: add r0, r4, #0x0 add r0, #0x28 bl FUN_02019048 cmp r0, #0x0 beq _0208A43A add r0, r4, #0x0 add r0, #0x28 bl FUN_02019178 add r0, r4, #0x0 add r0, #0x28 bl FUN_0201901C _0208A43A: add r0, r4, #0x0 add r0, #0x38 bl FUN_02019048 cmp r0, #0x0 beq _0208A456 add r0, r4, #0x0 add r0, #0x38 bl FUN_02019178 add r4, #0x38 add r0, r4, #0x0 bl FUN_0201901C _0208A456: pop {r4, pc} thumb_func_start FUN_0208A458 FUN_0208A458: ; 0x0208A458 push {r3-r5, lr} bl FUN_0204652C add r4, r0, #0x0 ldr r1, [r4, #0x54] cmp r1, #0xd bhi _0208A4A4 add r1, r1, r1 add r1, pc ldrh r1, [r1, #0x6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _0208A472: ; jump table (using 16-bit offset) .short _0208A48E - _0208A472 - 2; case 0 .short _0208A49C - _0208A472 - 2; case 1 .short _0208A4B8 - _0208A472 - 2; case 2 .short _0208A556 - _0208A472 - 2; case 3 .short _0208A566 - _0208A472 - 2; case 4 .short _0208A57A - _0208A472 - 2; case 5 .short _0208A5A6 - _0208A472 - 2; case 6 .short _0208A5BE - _0208A472 - 2; case 7 .short _0208A5D4 - _0208A472 - 2; case 8 .short _0208A614 - _0208A472 - 2; case 9 .short _0208A628 - _0208A472 - 2; case 10 .short _0208A694 - _0208A472 - 2; case 11 .short _0208A6A2 - _0208A472 - 2; case 12 .short _0208A6C0 - _0208A472 - 2; case 13 _0208A48E: mov r1, #0x0 add r2, r1, #0x0 bl FUN_0208A6D4 mov r0, #0x1 str r0, [r4, #0x54] b _0208A6C8 _0208A49C: bl FUN_0208A750 cmp r0, #0x0 bne _0208A4A6 _0208A4A4: b _0208A6C8 _0208A4A6: add r0, r4, #0x0 bl FUN_0208A760 add r0, r4, #0x0 bl FUN_0208A77C mov r0, #0x2 str r0, [r4, #0x54] b _0208A6C8 _0208A4B8: bl FUN_0208A8DC mov r1, #0x0 mvn r1, r1 str r0, [r4, #0x64] cmp r0, r1 beq _0208A5B0 add r0, r4, #0x0 bl FUN_0208A820 ldr r0, [r4, #0x64] cmp r0, #0x4 bhi _0208A5B0 add r0, r0, r0 add r0, pc ldrh r0, [r0, #0x6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _0208A4DE: ; jump table (using 16-bit offset) .short _0208A4E8 - _0208A4DE - 2; case 0 .short _0208A502 - _0208A4DE - 2; case 1 .short _0208A51C - _0208A4DE - 2; case 2 .short _0208A536 - _0208A4DE - 2; case 3 .short _0208A550 - _0208A4DE - 2; case 4 _0208A4E8: ldr r0, [r4, #0x0] mov r1, #0x0 ldr r0, [r0, #0xc] bl FUN_0202A5F4 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x48 bl FUN_02013960 mov r0, #0x3 str r0, [r4, #0x54] b _0208A6C8 _0208A502: ldr r0, [r4, #0x0] mov r1, #0x1 ldr r0, [r0, #0xc] bl FUN_0202A5F4 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x48 bl FUN_02013960 mov r0, #0x3 str r0, [r4, #0x54] b _0208A6C8 _0208A51C: ldr r0, [r4, #0x0] mov r1, #0x2 ldr r0, [r0, #0xc] bl FUN_0202A5F4 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x48 bl FUN_02013960 mov r0, #0x3 str r0, [r4, #0x54] b _0208A6C8 _0208A536: ldr r0, [r4, #0x0] mov r1, #0x3 ldr r0, [r0, #0xc] bl FUN_0202A5F4 add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x48 bl FUN_02013960 mov r0, #0x3 str r0, [r4, #0x54] b _0208A6C8 _0208A550: mov r0, #0xb str r0, [r4, #0x54] b _0208A6C8 _0208A556: ldr r1, [r4, #0x64] mov r2, #0x0 add r1, r1, #0x1 bl FUN_0208A6D4 mov r0, #0x4 str r0, [r4, #0x54] b _0208A6C8 _0208A566: bl FUN_0208A750 cmp r0, #0x0 beq _0208A5B0 mov r0, #0x0 bl FUN_021D7CA4 mov r0, #0x5 str r0, [r4, #0x54] b _0208A6C8 _0208A57A: bl FUN_0200E308 cmp r0, #0x0 beq _0208A5B0 add r1, r4, #0x0 ldr r0, [r4, #0x50] add r1, #0x48 bl FUN_020853BC ldr r0, [r4, #0x50] bl FUN_020853D0 add r0, r4, #0x0 bl FUN_0208A400 ldr r0, [r4, #0x0] ldr r1, [r4, #0x50] bl FUN_02037E80 mov r0, #0x6 str r0, [r4, #0x54] b _0208A6C8 _0208A5A6: ldr r0, [r4, #0x0] bl FUN_0204647C cmp r0, #0x0 beq _0208A5B2 _0208A5B0: b _0208A6C8 _0208A5B2: ldr r0, [r4, #0x0] bl FUN_0204649C mov r0, #0x7 str r0, [r4, #0x54] b _0208A6C8 _0208A5BE: ldr r0, [r4, #0x0] bl FUN_020464A4 cmp r0, #0x0 beq _0208A6C8 mov r0, #0x1 bl FUN_021D7CA4 mov r0, #0x8 str r0, [r4, #0x54] b _0208A6C8 _0208A5D4: bl FUN_0200E308 cmp r0, #0x0 beq _0208A6C8 ldr r0, [r4, #0x50] bl FUN_020853E4 cmp r0, #0x0 beq _0208A5EC mov r0, #0xb str r0, [r4, #0x54] b _0208A6C8 _0208A5EC: add r1, r4, #0x0 ldr r0, [r4, #0x50] add r1, #0x48 bl FUN_020853FC ldr r0, [r4, #0x0] add r2, r4, #0x0 ldr r0, [r0, #0xc] ldr r1, [r4, #0x64] add r2, #0x48 bl FUN_0202A5D4 add r0, r4, #0x0 mov r1, #0x6 mov r2, #0x0 bl FUN_0208A6D4 mov r0, #0x9 str r0, [r4, #0x54] b _0208A6C8 _0208A614: bl FUN_0208A750 cmp r0, #0x0 beq _0208A6C8 add r0, r4, #0x0 bl FUN_0208A82C mov r0, #0xa str r0, [r4, #0x54] b _0208A6C8 _0208A628: bl FUN_0208A8DC mov r1, #0x0 mvn r1, r1 str r0, [r4, #0x64] cmp r0, r1 beq _0208A6C8 cmp r0, #0x0 beq _0208A63E cmp r0, #0x1 b _0208A656 _0208A63E: add r0, r4, #0x0 bl FUN_0208A8D0 add r0, r4, #0x0 bl FUN_0208A760 add r0, r4, #0x0 bl FUN_0208A77C mov r0, #0x2 str r0, [r4, #0x54] b _0208A6C8 _0208A656: add r0, r4, #0x0 add r0, #0x48 mov r1, #0x0 bl FUN_02013918 add r5, r0, #0x0 add r0, r4, #0x0 bl FUN_0208A8D0 ldr r0, _0208A6CC ; =0x0000FFFF cmp r5, r0 beq _0208A684 ldr r0, [r4, #0xc] mov r1, #0x0 add r2, r5, #0x0 bl FUN_0200B518 add r0, r4, #0x0 mov r1, #0x8 mov r2, #0x1 bl FUN_0208A6D4 b _0208A68E _0208A684: add r0, r4, #0x0 mov r1, #0x7 mov r2, #0x0 bl FUN_0208A6D4 _0208A68E: mov r0, #0xc str r0, [r4, #0x54] b _0208A6C8 _0208A694: mov r1, #0x5 mov r2, #0x0 bl FUN_0208A6D4 mov r0, #0xc str r0, [r4, #0x54] b _0208A6C8 _0208A6A2: bl FUN_0208A750 cmp r0, #0x0 beq _0208A6C8 ldr r0, _0208A6D0 ; =0x021C48B8 ldr r1, [r0, #0x48] mov r0, #0xf3 tst r0, r1 beq _0208A6C8 add r0, r4, #0x0 bl FUN_0208A760 mov r0, #0xd str r0, [r4, #0x54] b _0208A6C8 _0208A6C0: bl FUN_0208A3C8 mov r0, #0x1 pop {r3-r5, pc} _0208A6C8: mov r0, #0x0 pop {r3-r5, pc} .balign 4 _0208A6CC: .word 0x0000FFFF _0208A6D0: .word 0x021C48B8 thumb_func_start FUN_0208A6D4 FUN_0208A6D4: ; 0x0208A6D4 push {r3-r5, lr} add r5, r0, #0x0 add r4, r5, #0x0 add r4, #0x18 cmp r2, #0x0 ldr r0, [r5, #0x10] beq _0208A6F4 ldr r2, [r5, #0x4] bl FUN_0200A8E0 ldr r0, [r5, #0xc] ldr r1, [r5, #0x8] ldr r2, [r5, #0x4] bl FUN_0200B7B8 b _0208A6FA _0208A6F4: ldr r2, [r5, #0x8] bl FUN_0200A8E0 _0208A6FA: add r0, r4, #0x0 bl FUN_02019048 cmp r0, #0x0 bne _0208A722 ldr r0, [r5, #0x0] add r1, r4, #0x0 ldr r0, [r0, #0x8] mov r2, #0x3 bl FUN_020545B8 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl LoadPlayerDataAddress add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_02054608 b _0208A734 _0208A722: add r0, r4, #0x0 bl FUN_0205464C ldr r2, _0208A74C ; =0x000003E2 add r0, r4, #0x0 mov r1, #0x0 mov r3, #0xa bl FUN_0200D0BC _0208A734: ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] bl LoadPlayerDataAddress add r2, r0, #0x0 ldr r1, [r5, #0x8] add r0, r4, #0x0 mov r3, #0x1 bl FUN_02054658 str r0, [r5, #0x58] pop {r3-r5, pc} .balign 4 _0208A74C: .word 0x000003E2 thumb_func_start FUN_0208A750 FUN_0208A750: ; 0x0208A750 ldr r0, [r0, #0x58] ldr r3, _0208A75C ; =FUN_020546C8 lsl r0, r0, #0x18 lsr r0, r0, #0x18 bx r3 nop _0208A75C: .word FUN_020546C8 thumb_func_start FUN_0208A760 FUN_0208A760: ; 0x0208A760 push {r4, lr} add r4, r0, #0x0 add r4, #0x18 add r0, r4, #0x0 bl FUN_02019048 cmp r0, #0x0 beq _0208A778 add r0, r4, #0x0 mov r1, #0x0 bl FUN_0200D0E0 _0208A778: pop {r4, pc} .balign 4 thumb_func_start FUN_0208A77C FUN_0208A77C: ; 0x0208A77C push {r4-r7, lr} sub sp, #0x14 add r5, r0, #0x0 add r7, r5, #0x0 add r7, #0x28 add r0, r7, #0x0 bl FUN_02019048 cmp r0, #0x0 bne _0208A808 mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x20 str r0, [sp, #0x4] ldr r0, [r5, #0x0] mov r1, #0x3 ldr r0, [r0, #0x8] mov r2, #0xa5 mov r3, #0xb bl FUN_0200CB00 mov r1, #0xd str r1, [sp, #0x0] mov r0, #0xe str r0, [sp, #0x4] mov r0, #0xa str r0, [sp, #0x8] str r1, [sp, #0xc] mov r0, #0x1 str r0, [sp, #0x10] ldr r0, [r5, #0x0] add r1, r7, #0x0 ldr r0, [r0, #0x8] mov r2, #0x3 mov r3, #0x11 bl FUN_02019064 add r0, r7, #0x0 mov r1, #0xf bl FUN_02019620 mov r6, #0x0 add r4, r6, #0x0 _0208A7D2: add r1, r6, #0x0 ldr r0, [r5, #0x10] ldr r2, [r5, #0x8] add r1, #0x9 bl FUN_0200A8E0 str r4, [sp, #0x0] mov r0, #0xff str r0, [sp, #0x4] mov r0, #0x0 str r0, [sp, #0x8] ldr r2, [r5, #0x8] add r0, r7, #0x0 mov r1, #0x0 mov r3, #0xc bl FUN_0201BD84 add r6, r6, #0x1 add r4, #0x10 cmp r6, #0x5 blt _0208A7D2 mov r2, #0x0 ldr r0, [r5, #0x14] add r1, r7, #0x0 add r3, r2, #0x0 bl FUN_020136F8 _0208A808: str r7, [r5, #0x68] mov r1, #0x0 str r1, [r5, #0x5c] mov r0, #0x5 str r0, [r5, #0x60] add r0, r7, #0x0 mov r2, #0xa5 mov r3, #0xb bl FUN_0200CCA4 add sp, #0x14 pop {r4-r7, pc} thumb_func_start FUN_0208A820 FUN_0208A820: ; 0x0208A820 ldr r3, _0208A828 ; =FUN_0200CCF8 add r0, #0x28 mov r1, #0x1 bx r3 .balign 4 _0208A828: .word FUN_0200CCF8 thumb_func_start FUN_0208A82C FUN_0208A82C: ; 0x0208A82C push {r4-r7, lr} sub sp, #0x14 add r5, r0, #0x0 add r7, r5, #0x0 add r7, #0x38 add r0, r7, #0x0 bl FUN_02019048 cmp r0, #0x0 bne _0208A8B8 mov r0, #0x0 str r0, [sp, #0x0] mov r0, #0x20 str r0, [sp, #0x4] ldr r0, [r5, #0x0] mov r1, #0x3 ldr r0, [r0, #0x8] mov r2, #0xa5 mov r3, #0xb bl FUN_0200CB00 mov r1, #0xd str r1, [sp, #0x0] mov r0, #0x6 str r0, [sp, #0x4] mov r0, #0x4 str r0, [sp, #0x8] str r1, [sp, #0xc] mov r0, #0x8d str r0, [sp, #0x10] ldr r0, [r5, #0x0] add r1, r7, #0x0 ldr r0, [r0, #0x8] mov r2, #0x3 mov r3, #0x19 bl FUN_02019064 add r0, r7, #0x0 mov r1, #0xf bl FUN_02019620 mov r6, #0x0 add r4, r6, #0x0 _0208A882: add r1, r6, #0x0 ldr r0, [r5, #0x10] ldr r2, [r5, #0x8] add r1, #0xe bl FUN_0200A8E0 str r4, [sp, #0x0] mov r0, #0xff str r0, [sp, #0x4] mov r0, #0x0 str r0, [sp, #0x8] ldr r2, [r5, #0x8] add r0, r7, #0x0 mov r1, #0x0 mov r3, #0xc bl FUN_0201BD84 add r6, r6, #0x1 add r4, #0x10 cmp r6, #0x2 blt _0208A882 mov r2, #0x0 ldr r0, [r5, #0x14] add r1, r7, #0x0 add r3, r2, #0x0 bl FUN_020136F8 _0208A8B8: str r7, [r5, #0x68] mov r1, #0x0 str r1, [r5, #0x5c] mov r0, #0x2 str r0, [r5, #0x60] add r0, r7, #0x0 mov r2, #0xa5 mov r3, #0xb bl FUN_0200CCA4 add sp, #0x14 pop {r4-r7, pc} thumb_func_start FUN_0208A8D0 FUN_0208A8D0: ; 0x0208A8D0 ldr r3, _0208A8D8 ; =FUN_0200CCF8 add r0, #0x38 mov r1, #0x1 bx r3 .balign 4 _0208A8D8: .word FUN_0200CCF8 thumb_func_start FUN_0208A8DC FUN_0208A8DC: ; 0x0208A8DC push {r4, lr} sub sp, #0x8 add r4, r0, #0x0 ldr r0, _0208A990 ; =0x021C48B8 mov r1, #0x40 ldr r0, [r0, #0x48] tst r1, r0 beq _0208A906 ldr r0, [r4, #0x5c] sub r0, r0, #0x1 str r0, [r4, #0x5c] bpl _0208A954 ldr r0, [r4, #0x60] cmp r0, #0x2 ble _0208A900 sub r0, r0, #0x1 str r0, [r4, #0x5c] b _0208A954 _0208A900: mov r0, #0x0 str r0, [r4, #0x5c] b _0208A954 _0208A906: mov r1, #0x80 tst r1, r0 beq _0208A928 ldr r0, [r4, #0x5c] add r1, r0, #0x1 str r1, [r4, #0x5c] ldr r0, [r4, #0x60] cmp r1, r0 blt _0208A954 cmp r0, #0x2 ble _0208A922 mov r0, #0x0 str r0, [r4, #0x5c] b _0208A954 _0208A922: sub r0, r0, #0x1 str r0, [r4, #0x5c] b _0208A954 _0208A928: mov r1, #0x1 tst r1, r0 beq _0208A93A ldr r0, _0208A994 ; =0x000005DC bl FUN_020054C8 add sp, #0x8 ldr r0, [r4, #0x5c] pop {r4, pc} _0208A93A: mov r1, #0x2 tst r0, r1 beq _0208A94E ldr r0, _0208A994 ; =0x000005DC bl FUN_020054C8 ldr r0, [r4, #0x60] add sp, #0x8 sub r0, r0, #0x1 pop {r4, pc} _0208A94E: add sp, #0x8 sub r0, r1, #0x3 pop {r4, pc} _0208A954: ldr r0, [r4, #0x68] mov r1, #0xc str r1, [sp, #0x0] ldrb r1, [r0, #0x8] mov r2, #0x0 add r3, r2, #0x0 lsl r1, r1, #0x13 lsr r1, r1, #0x10 str r1, [sp, #0x4] mov r1, #0xf bl FUN_020196F4 ldr r3, [r4, #0x5c] ldr r0, [r4, #0x14] ldr r1, [r4, #0x68] mov r2, #0x0 lsl r3, r3, #0x4 bl FUN_020136F8 ldr r0, [r4, #0x68] bl FUN_02019548 ldr r0, _0208A994 ; =0x000005DC bl FUN_020054C8 mov r0, #0x0 mvn r0, r0 add sp, #0x8 pop {r4, pc} nop _0208A990: .word 0x021C48B8 _0208A994: .word 0x000005DC thumb_func_start FUN_0208A998 FUN_0208A998: ; 0x0208A998 ldr r3, _0208A9AC ; =0x027E0000 ldr r1, _0208A9B0 ; =0x00003FF8 mov r0, #0x1 ldr r2, [r3, r1] orr r0, r2 str r0, [r3, r1] ldr r3, _0208A9B4 ; =MI_WaitDma mov r0, #0x3 bx r3 nop _0208A9AC: .word 0x027E0000 _0208A9B0: .word 0x00003FF8 _0208A9B4: .word MI_WaitDma thumb_func_start FUN_0208A9B8 FUN_0208A9B8: ; 0x0208A9B8 push {r4-r7, lr} sub sp, #0x24 ldr r0, _0208ABC8 ; =0x021C8C58 ldr r1, [r0, #0x0] cmp r1, #0x1 bne _0208A9C6 b _0208ABC4 _0208A9C6: mov r1, #0x1 str r1, [r0, #0x0] mov r0, #0x0 blx OS_GetInitArenaHi add r1, r0, #0x0 mov r0, #0x0 blx OS_SetArenaHi mov r0, #0x0 blx OS_GetInitArenaLo add r1, r0, #0x0 mov r0, #0x0 blx OS_SetArenaLo mov r1, #0x1 ldr r0, _0208ABCC ; =0x020FF4A4 add r2, r1, #0x0 mov r3, #0x0 bl FUN_020166C8 mov r0, #0x0 add r1, r0, #0x0 bl FUN_0200E3A0 mov r0, #0x1 mov r1, #0x0 bl FUN_0200E3A0 mov r0, #0x1 blx OS_DisableIrqMask ldr r1, _0208ABD0 ; =FUN_0208A998 mov r0, #0x1 blx OS_SetIrqFunction mov r0, #0x1 blx OS_EnableIrqMask mov r0, #0x0 add r1, r0, #0x0 bl FUN_02015F10 mov r0, #0x0 add r1, r0, #0x0 bl FUN_02015F34 bl FUN_0201E6D8 bl FUN_0201E740 mov r2, #0x1 lsl r2, r2, #0x1a ldr r1, [r2, #0x0] ldr r0, _0208ABD4 ; =0xFFFFE0FF and r1, r0 str r1, [r2, #0x0] ldr r2, _0208ABD8 ; =0x04001000 ldr r1, [r2, #0x0] and r0, r1 str r0, [r2, #0x0] mov r0, #0x4 mov r1, #0x8 bl FUN_0201669C ldr r0, _0208ABDC ; =0x021C4918 mov r1, #0x0 strb r1, [r0, #0x5] bl FUN_0201E7A0 ldr r3, _0208ABE0 ; =0x04000050 mov r0, #0x0 strh r0, [r3, #0x0] ldr r2, _0208ABE4 ; =0x04001050 sub r3, #0x50 strh r0, [r2, #0x0] ldr r1, [r3, #0x0] ldr r0, _0208ABE8 ; =0xFFFF1FFF sub r2, #0x50 and r1, r0 str r1, [r3, #0x0] ldr r1, [r2, #0x0] and r0, r1 str r0, [r2, #0x0] ldr r0, _0208ABEC ; =0x020FF4D8 bl FUN_0201E66C mov r0, #0x0 bl FUN_02016B94 str r0, [sp, #0x10] ldr r0, _0208ABF0 ; =0x020FF4AC bl FUN_02016BBC mov r1, #0x0 ldr r0, [sp, #0x10] ldr r2, _0208ABF4 ; =0x020FF4BC add r3, r1, #0x0 bl FUN_02016C18 ldr r0, [sp, #0x10] mov r1, #0x0 bl FUN_02018744 mov r1, #0x0 str r1, [sp, #0x0] ldr r0, [sp, #0x10] ldr r2, _0208ABF8 ; =0x000001F7 mov r3, #0x2 str r1, [sp, #0x4] bl FUN_0200CB00 mov r0, #0x0 mov r1, #0x20 add r2, r0, #0x0 bl FUN_02002ED0 mov r0, #0x0 mov r1, #0x20 add r2, r0, #0x0 add r3, r0, #0x0 bl FUN_02017F18 ldr r1, _0208ABFC ; =0x00006C21 mov r0, #0x0 bl FUN_02017FE4 ldr r1, _0208ABFC ; =0x00006C21 mov r0, #0x4 bl FUN_02017FE4 mov r0, #0x1 mov r1, #0x1a mov r2, #0xc8 mov r3, #0x0 bl FUN_0200A86C str r0, [sp, #0xc] mov r0, #0x6 lsl r0, r0, #0x6 mov r1, #0x0 bl FUN_020219F4 add r4, r0, #0x0 bl FUN_0201BD5C ldr r0, [sp, #0x10] ldr r2, _0208AC00 ; =0x020FF49C add r1, sp, #0x14 bl FUN_02019150 mov r0, #0xd0 str r0, [sp, #0x0] mov r0, #0x90 mov r2, #0x0 str r0, [sp, #0x4] add r0, sp, #0x14 mov r1, #0xf add r3, r2, #0x0 bl FUN_020196F4 ldr r2, _0208ABF8 ; =0x000001F7 add r0, sp, #0x14 mov r1, #0x0 mov r3, #0x2 bl FUN_0200CCA4 ldr r0, [sp, #0xc] mov r1, #0x3 add r2, r4, #0x0 bl FUN_0200A8E0 mov r1, #0x0 str r1, [sp, #0x0] str r1, [sp, #0x4] add r0, sp, #0x14 add r2, r4, #0x0 add r3, r1, #0x0 str r1, [sp, #0x8] bl FUN_0201BD84 add r0, r4, #0x0 bl FUN_02021A20 bl FUN_0201E788 mov r0, #0x0 bl FUN_0200E394 mov r0, #0x1 bl FUN_0200E394 mov r0, #0x0 mov r1, #0x3f mov r2, #0x3 bl FUN_0200A274 bl FUN_02032DAC mov r4, #0x1 _0208AB58: bl FUN_02000FE8 bl FUN_0202FB80 bl FUN_02033678 cmp r0, #0x0 bne _0208AB72 add r0, r4, #0x0 add r1, r4, #0x0 blx OS_WaitIrq b _0208AB58 _0208AB72: ldr r5, _0208AC04 ; =0x04000130 ldr r4, _0208AC08 ; =0x027FFFA8 ldr r7, _0208AC0C ; =0x00002FFF mov r6, #0x1 _0208AB7A: bl FUN_02000FE8 ldrh r1, [r5, #0x0] ldrh r0, [r4, #0x0] orr r1, r0 ldr r0, _0208AC0C ; =0x00002FFF eor r0, r1 and r0, r7 lsl r0, r0, #0x10 lsr r0, r0, #0x10 tst r0, r6 bne _0208AB9C mov r0, #0x1 add r1, r0, #0x0 blx OS_WaitIrq b _0208AB7A _0208AB9C: ldr r1, _0208AC10 ; =0x00007FFF mov r0, #0x0 bl FUN_0200E3A0 ldr r1, _0208AC10 ; =0x00007FFF mov r0, #0x1 bl FUN_0200E3A0 add r0, sp, #0x14 bl FUN_02019178 ldr r0, [sp, #0xc] bl FUN_0200A8B8 ldr r0, [sp, #0x10] bl FUN_02016A18 mov r0, #0x0 blx OS_ResetSystem _0208ABC4: add sp, #0x24 pop {r4-r7, pc} .balign 4 _0208ABC8: .word 0x021C8C58 _0208ABCC: .word 0x020FF4A4 _0208ABD0: .word FUN_0208A998 _0208ABD4: .word 0xFFFFE0FF _0208ABD8: .word 0x04001000 _0208ABDC: .word 0x021C4918 _0208ABE0: .word 0x04000050 _0208ABE4: .word 0x04001050 _0208ABE8: .word 0xFFFF1FFF _0208ABEC: .word 0x020FF4D8 _0208ABF0: .word 0x020FF4AC _0208ABF4: .word 0x020FF4BC _0208ABF8: .word 0x000001F7 _0208ABFC: .word 0x00006C21 _0208AC00: .word 0x020FF49C _0208AC04: .word 0x04000130 _0208AC08: .word 0x027FFFA8 _0208AC0C: .word 0x00002FFF _0208AC10: .word 0x00007FFF